找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

261

帖子

1682

积分

超级版主

Rank: 8Rank: 8

积分
1682
Winny
超级版主   /  发表于:2023-3-17 14:59  /   查看:1659  /  回复:0
业务系统中,无论是前端导出PDF,还是服务端导出PDF,都会遇到当某一Sheet宽度超出单张打印纸大小时,需要将该工作表导出到一页纸中。葡萄城前后端表格控件都提供了这种能力,本文会分别介绍前端表格控件和服务端表格控件如何实现该需求。

(1)SpreadJS实现Sheet导出PDF宽度调整为一页
SpreadJS中,导出PDF的设置会受打印信息影响,可以参考学习指南自定制打印,了解基础的打印设置。学子指南中展示的是打印部分API,更多的打印设置可以在API文档中搜索PrintInfo来了解。
1679027252261.png550530089.png
如上图所示,fitPagesWidth()设置为1,表示将当前sheet导出到一页至上。fitPagesTall()表示当前sheet导出成PDF时,pdf高多所占的页数,当前需求下,只需要设置fitPagesWidth()即可。下面代码代表设置第一个sheet宽度显示在一页中。
  1. let printInfo = new GC.Spread.Sheets.Print.PrintInfo();
  2. printInfo.fitPagesWidth(1)
  3. let sheet = spread.getSheet(0)
  4. sheet.printInfo(printInfo)
  5. spread.print(0)
复制代码
(2) GCExcel实现Sheet导出PDF宽度调整为一页
GCExcel导出PDF相关设置可以参考GCExcel学习指南,实现宽度调整为一页的详细代码为:
  1. IWorksheet ws = wb.getActiveSheet();
  2. ws.getPageSetup().setIsPercentScale(false)
  3. ws.getPageSetup().setTopMargin(0);
  4. ws.getPageSetup().setLeftMargin(0);   
  5. ws.getPageSetup().setRightMargin(0);
  6. ws.getPageSetup().setBottomMargin(0);
  7. ws.getPageSetup().setFitToPagesWide(1);
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部