您好,我当前使用的Aspose-word 版本是23.6,我用如下代码将Word转换成PDF时,转换后的PDF多了一页空白页,请问该如何解决这个问题?
代码如下:
String sourcePath = "/Users/yassen/Desktop/test/test3.docx";
LoadOptions opt = new LoadOptions();
opt.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
Document doc = new Document(sourcePath, opt);
doc.save("/Users/yassen/Desktop/test/result3.pdf");
转换前的Word文档:
test3.docx (23.1 KB)
转换后的PDF文档:
result3.pdf (105.2 KB)
@songyassen 遗憾的是,这个问题没有简单的解决办法。感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:
Issue ID(s): WORDSNET-27306
如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务。
您好请问下,这个版本中,在Word转PDF的时候,有没有什么方法可以把转成的PDF的页边距稍微调大一点,或者把PDF的内容压缩的紧凑一点,以此来达到不换页的目的呢,因为我在测试的过程中发现,如果把Word的内容删除掉一行,就不会出现换页了。
@songyassen 您可以使用以下代码:
Document doc = new Document("input.docx");
doc.getFirstSection().getBody().getLastParagraph().getParagraphFormat().setLineSpacing(1.0);
doc.save("output.pdf");
我也存在转换pdf时串行的问题,我在wps中定位到最后一行,然后设置该行的段前间距为0,达到了效果;请问如何获取word文档中每一页中的最后一行呢?
@craspose 为此,您可以使用 LayoutCollector:
Document doc = new Document("input.docx");
LayoutCollector layoutCollector = new LayoutCollector(doc);
for (int pageIndex = 0; pageIndex < doc.getPageCount(); pageIndex++) {
Paragraph lastParagraph = null;
// 遍历文档中的所有段落。
for (Paragraph paragraph : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
// 检查段落是否在当前页上。
if (layoutCollector.getStartPageIndex(paragraph) == pageIndex + 1) {
lastParagraph = paragraph;
}
}
// 打印本页最后一段。
if (lastParagraph != null) {
System.out.println("Last paragraph on page " + (pageIndex + 1) + ": " + lastParagraph.getText());
}
}