页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考,宏代码具备一定场景限制,如和实际应用场景不匹配,需自行调整相关宏代码)

问题说明:

电子表格调整边距后,导出pdf看左边还是宽一点,而导出word是左右一样宽了,但如果再减少左边距的宽度,导出word就又不一样了,而用户要求很精细,请问可以如何处理?

原因说明:

导出word和导出PDF的逻辑本身不一样:导出word是我们纯手打的生成一个Document文档,将excel的内容一个个弄到word文档中,因为本身第三方就没有支持直接转word的办法,所以里面的一些计算都是产品进行的,在某些情况下考虑不足有问题导致导出的word有问题;

导出PDF是是直接调用的第三方接口workbook.save生成的PdfSaveOptions,产品这边传入的参数是整个电子表格workbook是无问题的,使用静态的excel验证也是一样,这种事第三方本身接口的效果问题,产品也不可能获取以及再来一次纯手打生成PDF的过程。

解决方案:

虽然从产品代码层面没有什么好办法可以处理,但经过一些验证发现,当对应的页边距设置为0的时候,效果稍微好一些;因此针对这种情况,看通过服务端宏去针对报表导出PDF和打印的时候设置页边距调整一定效果:


//电子表格服务端宏,电子表格服务端宏-导出PDF-调整页面左边距
//类型:ServerSide    对象:spreadsheetReport    事件:onBeforeOutput
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);
    }
} 



  • 无标签