业务系统中,无论是前端导出PDF,还是服务端导出PDF,都会遇到当某一Sheet宽度超出单张打印纸大小时,需要将该工作表导出到一页纸中。葡萄城前后端表格控件都提供了这种能力,本文会分别介绍前端表格控件和服务端表格控件如何实现该需求。
(1)SpreadJS实现Sheet导出PDF宽度调整为一页
SpreadJS中,导出PDF的设置会受打印信息影响,可以参考学习指南自定制打印,了解基础的打印设置。学子指南中展示的是打印部分API,更多的打印设置可以在API文档中搜索PrintInfo来了解。
如上图所示,fitPagesWidth()设置为1,表示将当前sheet导出到一页至上。fitPagesTall()表示当前sheet导出成PDF时,pdf高多所占的页数,当前需求下,只需要设置fitPagesWidth()即可。下面代码代表设置第一个sheet宽度显示在一页中。
- let printInfo = new GC.Spread.Sheets.Print.PrintInfo();
- printInfo.fitPagesWidth(1)
- let sheet = spread.getSheet(0)
- sheet.printInfo(printInfo)
- spread.print(0)
复制代码 (2) GCExcel实现Sheet导出PDF宽度调整为一页
GCExcel导出PDF相关设置可以参考GCExcel学习指南,实现宽度调整为一页的详细代码为:
- IWorksheet ws = wb.getActiveSheet();
- ws.getPageSetup().setIsPercentScale(false)
- ws.getPageSetup().setTopMargin(0);
- ws.getPageSetup().setLeftMargin(0);
- ws.getPageSetup().setRightMargin(0);
- ws.getPageSetup().setBottomMargin(0);
- ws.getPageSetup().setFitToPagesWide(1);
复制代码
|
|