(本文档仅供参考)
问题说明:
...
电子表格调整边距后,导出pdf看左边还是宽一点,而导出word是左右一样宽了,但如果再减少左边距的宽度,导出word就又不一样了,而用户要求很精细,请问可以如何处理?
原因说明:
导出word和导出PDF的逻辑本身不一样:导出word是我们纯手打的生成一个Document文档,将excel的内容一个个弄到word文档中,因为本身第三方就没有支持直接转word的办法,所以里面的一些计算都是产品进行的,在某些情况下考虑不足有问题导致导出的word有问题;
导出PDF是是直接调用的第三方接口workbook.save生成的PdfSaveOptions,产品这边传入的参数是整个电子表格workbook是无问题的,使用静态的excel验证也是一样,这种事第三方本身接口的效果问题,产品也不可能获取以及再来一次纯手打生成PDF的过程。
解决方案:
虽然从产品代码层面没有什么好办法可以处理,但经过一些验证发现,当对应的页边距设置为0的时候,效果稍微好一些;因此针对这种情况,看通过服务端宏去针对报表导出PDF和打印的时候设置页边距调整一定效果:
//电子表格服务端宏,电子表格服务端宏-导出PDF-调整页面左边距 function main(spreadsheetReport) { var sheet = spreadsheetReport.workbook.worksheets.get(0); if (sheet === "" || sheet === null) { return; } var type = spreadsheetReport.outputType; //导出类型 // 打印和导出PDF的时候设置页面左边距 if (type == "PRINT" || type == "PDF") { var pageSetup = sheet.getPageSetup(); pageSetup.setLeftMargin(1); } }