找回密码
 立即注册

QQ登录

只需一步,快速开始

tianshun2021
金牌服务用户   /  发表于:2023-3-30 11:39  /   查看:1489  /  回复:7
1金币
我的Excel是这样的

image.png428260497.png
在通过GcExcel转pdf的是获取页数是2页 请帮忙看一下,测试代码如下
  1. @Test
  2.     public void previewPDFTest1() {
  3.         Workbook workbook = new Workbook();
  4.         workbook.open("d:/ss.json");
  5.         IWorksheet worksheet0 = workbook.getWorksheets().get(0);
  6.         // 隐藏第一个sheet
  7.         worksheet0.setVisible(Visibility.Hidden);
  8.         IWorksheet contentSheet = workbook.getWorksheets().get("原始记录数据页");
  9.         if (contentSheet != null) {
  10.             contentSheet.setVisible(Visibility.Hidden);
  11.         }
  12.         IWorksheet patchSheet = workbook.getWorksheets().get("原始记录批量导入模板");
  13.         if (patchSheet != null) {
  14.             patchSheet.setVisible(Visibility.Hidden);
  15.         }
  16.         // 把证书基础sheet业移到第一页
  17.         workbook.getWorksheets().get("证书信息").moveBefore(workbook.getWorksheets().get(0));
  18.         IWorksheet resultSheet = workbook.getWorksheets().get("证书结果页");
  19.         resultSheet.getPageSetup().setFitToPagesWide(1);
  20.         PrintManager printManager = new PrintManager();
  21.         List<PageInfo> pages = printManager.paginate(resultSheet);
  22.         int pageSize = pages.size();
  23.         System.out.println("证书结果的页数:" + pageSize);
  24. // workbook.save("d:/test.pdf", SaveFileFormat.Pdf);
  25.     }
复制代码
json文件附件已上传

ss.json

514.9 KB, 下载次数: 204

最佳答案

查看完整内容

已远程,在你的setFitToPagesWide代码前加一句下面的代码即可解决问题。

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-30 11:39:23
来自 8#
已远程,在你的setFitToPagesWide代码前加一句下面的代码即可解决问题。

  1. resultSheet.getPageSetup().setIsPercentScale(false);
复制代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-30 16:03:37
2#
使用5.2.3和当前最新版本都未能重现你的问题,你可以检查一下项目中的代码
仍无法解决可以上传一个重现问题的demo

image.png343333434.png
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-30 17:25:48
3#
Richard.Ma 发表于 2023-3-30 16:03
使用5.2.3和当前最新版本都未能重现你的问题,你可以检查一下项目中的代码
仍无法解决可以上传一个重现问 ...

image.png850932006.png
这是怎么回事?我也是在单元测试中跑的,没有其他代码,ssjson我又下载跟我本地的比对了一下,没有上传错误, 结果怎么不一样,会跟系统、缓存有关系吗?

image.png92933043.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-30 18:05:20
4#
如果是不同机器的话,可以考虑一下系统的字体文件夹是否一样
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-30 19:15:36
5#
Richard.Ma 发表于 2023-3-30 18:05
如果是不同机器的话,可以考虑一下系统的字体文件夹是否一样

我的服务器和本地机器通过GCExcel的这个代码
List<PageInfo> pages = printManager.paginate(resultSheet);
        int pageSize = pages.size();
获取的页数都是2页,不知道您这边为什么会是1页?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-31 10:40:04
6#
这个问题原因不好确认,所有我建议你直接上传一个完整的java demo。我这边编译运行看看结果
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-31 11:10:55
7#
Richard.Ma 发表于 2023-3-31 10:40
这个问题原因不好确认,所有我建议你直接上传一个完整的java demo。我这边编译运行看看结果

你可以通过向日葵远程到我的机器上看下吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部