大Vi 发表于 2024-11-8 17:47:01

【14.0.2】导出pdf文件疑问

printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape)
    printInfo.margin({top: 75, bottom: 75, left: 20, right: 20, header: 10, footer: 20})
    printInfo.centering(GC.Spread.Sheets.Print.PrintCentering.horizontal)
    printInfo.bestFitRows(true)
    printInfo.fitPagesWide(1)以上是我的配置

1、为什么会被重复打印啊?明明内容已经结束了,而且还有空白剩余


2、横向打印,我已经设置了水平居中,但是打印出来后,在纸张上面为什么不是水平居中的,而是靠左


Lynn.Dou 发表于 2024-11-11 09:54:58

您好,
问题1:
您检查下是否设置了重复打印,如学习指南示例:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/print/custom-print/purejs

问题2:
打印出的最终效果受边距、纸张、浏览器打印设置多方面的影响,您可以直接提供下相关文件,我们本地调整看看。

大Vi 发表于 2024-11-12 09:20:44

Lynn.Dou 发表于 2024-11-11 09:54
您好,
问题1:
您检查下是否设置了重复打印,如学习指南示例:


问题二已经解决,因为默认纸张是信纸,和a4尺寸有差别,设置了纸张类型就好了。
问题一,我没有任何重复的设置,发现是bestFitRows引起的,本意是想尽可能一页打印完,内容尽量紧凑,行高可以被内容无限撑高,不懂这个方法为什么会造成重复打印,请问如果要让行高在导出的pdf中可以被内容撑高,完全显示,并且不会重复打印应该怎么实现?
printInfo.bestFitRows(true)

Lynn.Dou 发表于 2024-11-12 13:43:14

本地测试设置了bestFitRows,并未出现重复打印问题。您提供一个相关文件,我们实际验证看看。

大Vi 发表于 2024-11-12 16:52:06

Lynn.Dou 发表于 2024-11-12 13:43
本地测试设置了bestFitRows,并未出现重复打印问题。您提供一个相关文件,我们实际验证看看。
设置了bestFitRows



没有设置bestFitRows



demo已上传


Lynn.Dou 发表于 2024-11-12 17:10:01

文件收到,我先验证下,有结果贴中更新。

Lynn.Dou 发表于 2024-11-14 10:04:39

直接运行您提供的demo,点击print按钮,测试结果如下图,即未复现打印重复的问题。

请问如何重现这个问题呢?请详细描述下复现步骤:
测试浏览器:

大Vi 发表于 2024-11-14 12:49:11

本帖最后由 大Vi 于 2024-11-14 14:07 编辑

Lynn.Dou 发表于 2024-11-14 10:04
直接运行您提供的demo,点击print按钮,测试结果如下图,即未复现打印重复的问题。

请问如何重现这个问 ...我上传代码的时候,把这个注释了,麻烦你放开这个注释再试试,就是加了这个引起的

Lynn.Dou 发表于 2024-11-14 16:59:29

本帖最后由 Lynn.Dou 于 2024-11-14 17:01 编辑

您demo中使用的版本是V11,我将其替换为V14.0.2 (即您标题中描述的版本)。
另外从数据来看更适合用纵向打印,为什么代码中您设置为横向呢?
printInfo.orientation(
            GC.Spread.Sheets.Print.PrintPageOrientation.landscape
          );附件为修改后的代码,您可以参考下,效果如下图所示:
var printInfo = new GC.Spread.Sheets.Print.PrintInfo();
      printInfo.showBorder(false);
      printInfo.showGridLine(false);
      printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4));
      printInfo.headerCenter(`&\"Calibri\"投投投`);
      printInfo.headerLeft("&D &T");
      printInfo.footerLeft(`&\"Calibri\"叫叫叫`);
      printInfo.footerCenter("&P/&N");
      printInfo.orientation(
      GC.Spread.Sheets.Print.PrintPageOrientation.landscape
      );
      printInfo.margin({
      top: 50,
      bottom: 50,
      left: 0,
      right: 0,
      header: 30,
      footer: 30,
      });
      printInfo.centering(GC.Spread.Sheets.Print.PrintCentering.horizontal);
      printInfo.fitPagesTall(1);
      tempSheet.printInfo(printInfo);

大Vi 发表于 2024-11-14 17:19:09

本帖最后由 大Vi 于 2024-11-14 17:23 编辑

Lynn.Dou 发表于 2024-11-14 16:59
您demo中使用的版本是V11,我将其替换为V14.0.2 (即您标题中描述的版本)。
另外从数据来看更适合用纵向 ...
demo版本是11是因为我从官网demo直接下载的,刚好和我项目代码14.0.2是一样的问题,所以没换版本了,然后demo数据是我随便写的,我用横向打印的原因是项目情况列数比较多,横向更好看,我需要在一页的宽度显示完所有的列,不希望纵向打印被拆分开或压缩太多,还有你用这个不行:printInfo.fitPagesTall(1);这样会让所有内容强制在一页显示,真实情况是每行可能内容很多,需要换行的,字数需要让他换行全部展示完全
我就是要横向展示所有列,纵向不限制打印多少页,字数多就换行撑高行高,分页显示
页: [1] 2
查看完整版本: 【14.0.2】导出pdf文件疑问