找回密码
 立即注册

QQ登录

只需一步,快速开始

大Vi

高级会员

160

主题

356

帖子

1126

积分

高级会员

积分
1126
大Vi
高级会员   /  发表于:2024-11-8 17:47  /   查看:327  /  回复:10
1金币
  1. printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape)
  2.     printInfo.margin({top: 75, bottom: 75, left: 20, right: 20, header: 10, footer: 20})
  3.     printInfo.centering(GC.Spread.Sheets.Print.PrintCentering.horizontal)
  4.     printInfo.bestFitRows(true)
  5.     printInfo.fitPagesWide(1)
复制代码
以上是我的配置


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


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


10 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-11 09:54:58
沙发
您好,
问题1:
您检查下是否设置了重复打印,如学习指南示例:
https://demo.grapecity.com.cn/sp ... custom-print/purejs
image.png13444212.png
问题2:
打印出的最终效果受边距、纸张、浏览器打印设置多方面的影响,您可以直接提供下相关文件,我们本地调整看看。
回复 使用道具 举报
大Vi
高级会员   /  发表于:2024-11-12 09:20:44
板凳
Lynn.Dou 发表于 2024-11-11 09:54
您好,
问题1:
您检查下是否设置了重复打印,如学习指南示例:

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

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-12 13:43:14
地板
本地测试设置了bestFitRows,并未出现重复打印问题。您提供一个相关文件,我们实际验证看看。
回复 使用道具 举报
大Vi
高级会员   /  发表于:2024-11-12 16:52:06
5#
Lynn.Dou 发表于 2024-11-12 13:43
本地测试设置了bestFitRows,并未出现重复打印问题。您提供一个相关文件,我们实际验证看看。

设置了bestFitRows image.png620350951.png



没有设置bestFitRows image.png957763061.png



demo已上传


pdf_demo.zip

17.8 MB, 下载次数: 12

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-12 17:10:01
6#
文件收到,我先验证下,有结果贴中更新。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-14 10:04:39
7#
直接运行您提供的demo,点击print按钮,测试结果如下图,即未复现打印重复的问题。
image.png386204833.png
请问如何重现这个问题呢?请详细描述下复现步骤:
测试浏览器:
image.png625698546.png
回复 使用道具 举报
大Vi
高级会员   /  发表于:2024-11-14 12:49:11
8#
本帖最后由 大Vi 于 2024-11-14 14:07 编辑
Lynn.Dou 发表于 2024-11-14 10:04
直接运行您提供的demo,点击print按钮,测试结果如下图,即未复现打印重复的问题。

请问如何重现这个问 ...
image.png918698425.png 我上传代码的时候,把这个注释了,麻烦你放开这个注释再试试,就是加了这个引起的
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-14 16:59:29
9#
本帖最后由 Lynn.Dou 于 2024-11-14 17:01 编辑

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


image.png283784789.png

pdf_demo.zip

17.8 MB, 下载次数: 2

回复 使用道具 举报
大Vi
高级会员   /  发表于:2024-11-14 17:19:09
10#
本帖最后由 大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数据是我随便写的,我用横向打印的原因是项目情况列数比较多,横向更好看,我需要在一页的宽度显示完所有的列,不希望纵向打印被拆分开或压缩太多,还有你用这个不行:
  1. printInfo.fitPagesTall(1);
复制代码
这样会让所有内容强制在一页显示,真实情况是每行可能内容很多,需要换行的,字数需要让他换行全部展示完全
我就是要横向展示所有列,纵向不限制打印多少页,字数多就换行撑高行高,分页显示
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部