Word转PDF多了一页空白页

您好,我用的Aspose-word版本是23.6,使用如下代码将Word转换成PDF时,PDF会多出一页空白页,请问该如何实现?

        LoadOptions opt = new LoadOptions();
        Document doc = new Document("/Users/yassen/Desktop/test/final.docx", opt);
        doc.save("/Users/yassen/Desktop/test/final.pdf", SaveFormat.PDF);

word文档:
final.docx (68.8 KB)

pdf文档:
final.pdf (237.3 KB)

@songyassen 很遗憾,我无法在 23.6 版中重现这个问题。能否请您在 “LoadOptions”中指定默认编辑语言并尝试转换文档?

您好,在23.6版本中,设置了默认编辑语言依旧有这个问题,代码如下:

        LoadOptions opt = new LoadOptions();
        opt.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
        Document doc = new Document("/Users/yassen/Desktop/test/final.docx", opt);
        doc.save("/Users/yassen/Desktop/test/final.pdf", SaveFormat.PDF);

word文档:
final.docx (68.8 KB)

pdf文档:
final.pdf (237.3 KB)

@songyassen 遗憾的是,我仍然无法重现这个问题。不过,你可以尝试设置兼容性选项doc.getCompatibilityOptions().optimizeFor(MsWordVersion.WORD_2010);或删除最后一个空段落作为一种变通办法doc.getLastSection().getBody().getLastParagraph().remove();

我使用 doc.getLastSection().getBody().getLastParagraph().remove(); 这段代码可以帮助我解决上面文档的问题,但是换了一个新的文档之后,还是出现了空白页,代码如下:

        LoadOptions opt = new LoadOptions();
        opt.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
        Document doc = new Document("/Users/Desktop/test/test3.docx", opt);
        doc.getLastSection().getBody().getLastParagraph().remove();
        doc.save(response.getOutputStream(), SaveFormat.PDF);

word文档:
test3.docx (23.1 KB)

pdf文档:
pdf2.pdf (105.2 KB)

@songyassen 在本文档中,您不能删除表格后的最后一段。很难为所有文件创建变通方法。顺便说一下,对于最后一个文件,我们已经在另一篇文章中创建了一个问题 WORDSNET-27306。您可以尝试在页脚后配置空格:

HeaderFooter footer = doc.getFirstSection().getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
footer.getFirstParagraph().getParagraphFormat().setSpaceAfter(0);