找回密码
 立即注册

QQ登录

只需一步,快速开始

whzhang79

注册会员

5

主题

11

帖子

42

积分

注册会员

积分
42
最新发帖
whzhang79
注册会员   /  发表于:2016-1-20 15:45  /   查看:9644  /  回复:11
请问在实现打印功能的时候,能够设定纸张大小吗?比如A3的纸张。同时我还想问一下,Spreadjs支持导出PDF文件吗?如果可以,哪些元素在导出的时候有限制,例如插入的图片等元素,谢谢。

11 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-1-20 17:12:00
沙发
SpreadJS打印的时候,其实并不知道打印设备相关信息。比如你用A3的纸张。你需要通过PageSize调整到合适的尺寸。然后打印设备使用A3.这是技术限制,浏览器前端无法获得这些信息。

导出PDF可以的,不过图片暂时不支持。其他没有什么限制了。
回复 使用道具 举报
whzhang79
注册会员   /  发表于:2016-1-21 11:15:00
板凳
SpreadJS在打印时,如何设置PageSize?有具体的文档说明吗?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-1-21 11:22:00
地板
  1. activeSheet.setRowCount(3, GcSpread.Sheets.SheetArea.viewport);
  2. activeSheet.setColumnCount(3, GcSpread.Sheets.SheetArea.viewport);
  3. activeSheet.isPaintSuspended(true);
  4.             //set value
  5.             for (var r = 0, rc = activeSheet.getRowCount(); r < rc; r++) {
  6.                 for (var c = 0, cc = activeSheet.getColumnCount(); c < cc; c++) {
  7.                     activeSheet.setValue(r, c, r + c);
  8.                 }
  9.             }
  10. activeSheet.isPaintSuspended(false);
  11. $("#button1").click(function () {
  12. var printInfo = activeSheet.printInfo();
  13. printInfo.headerLeft("Header Left");
  14. printInfo.paperSize(new GcSpread.Sheets.PaperSize(GcSpread.Sheets.PaperKind.A4));
  15. spread.print(0);
  16.    });
复制代码
回复 使用道具 举报
whzhang79
注册会员   /  发表于:2016-1-21 11:56:00
5#
printInfo.paperSize(new GcSpread.Sheets.PaperSize(GcSpread.Sheets.PaperKind.A4));

如果是A3,就是把A4改一下吗?还有就是这个PaperSize是否支持自定义的大小,例如:420mm×297mm
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-1-21 12:20:00
6#
对,改成A3就行。
这个PaperSize支持自定义大小,比如PaperSize(1200,800)

评分

参与人数 1满意度 +5 收起 理由
whzhang79 + 5

查看全部评分

回复 使用道具 举报
whzhang79
注册会员   /  发表于:2016-1-21 14:29:00
7#
顺便能请教一下导出PDF的方法吗?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-1-21 15:41:00
8#
先安装 SpreadJS ExcelIO ServerComponent.exe
  1.         private string exportPdfFile(ExportFileModel model, Exporter exporter, MemoryStream stream)
  2.         {
  3.             var pdfSetting = model.pdf;
  4.             PdfExportSettings setting = GetPdfExportSettings(pdfSetting.setting);
  5.             exporter.SavePdf(stream, setting, pdfSetting.sheetIndexes);
  6.             return "application/pdf";
  7.         }
复制代码
回复 使用道具 举报
mjq
论坛元老   /  发表于:2016-1-21 17:07:00
9#
现在这个spreadJs打印的问题能否尽快解决并发布版本,确实很影响这个控件的使用,基本上用到表格控件的必然涉及到打印,
现在是调用spreadJs打印方法在分辨率高的机器上打印出来模糊,用导出pdf的方法有没法打印表格上的图片,
表格上放个公司logo之类的很正常,牵扯到签名之类的肯定得打图片上去。这么看两个打印方法都用不了,这个控件不就变成“鸡肋”了吗!!
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-1-21 18:12:00
10#
打印的问题,我再解释一下,是因为DPI差异造成的。在HTML5的canvas下就是存在这个平台缺陷,目前没有更好的技术方案。
PDF中图片的问题,我也很认可你的应用场景。只是我也有一点奇怪,看起来很normal的一个用例,按理说早应该有其他用户给我们反馈了。

不管怎么说,你这两个问题,我们都提交产品组了。具体时间还没有出来。我建议你目前的替代方案是导出到Excel然后打印或者保存PDF都可以。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部