[英]Text alingment lost when converting Docx to PDF with docx4j
我正在使用下面的代码将 MS Word docx 文件转换为 pdf。
private static ByteArrayOutputStream convertToPDFDocx4j(String inputfilepath) throws Exception {
WordprocessingMLPackage wordMLPackage =
WordprocessingMLPackage.load(new java.io.File(inputfilepath));
FieldUpdater updater = new FieldUpdater(wordMLPackage);
updater.update(true);
Mapper fontMapper = new IdentityPlusMapper();
wordMLPackage.setFontMapper(fontMapper);
FOSettings foSettings = Docx4J.createFOSettings();
foSettings.setWmlPackage(wordMLPackage);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Docx4J.toFO(foSettings, baos, Docx4J.FLAG_EXPORT_PREFER_XSL);
if (wordMLPackage.getMainDocumentPart().getFontTablePart() != null) {
wordMLPackage.getMainDocumentPart().getFontTablePart().deleteEmbeddedFontTempFiles();
}
updater = null;
foSettings = null;
wordMLPackage = null;
return baos;
}
虽然生成了pdf,但它失去了文本对齐方式。
我已经在下面的链接中上传了这个词并生成了 pdf:
您的表格单元格包含:
<w:p>
<w:pPr>
<w:tabs>
<w:tab w:val="right" w:pos="14175"/>
</w:tabs>
<w:rPr>
<w:rFonts w:cs="Arial"/>
<w:b/>
<w:color w:val="FFFFFF" w:themeColor="background1"/>
</w:rPr>
</w:pPr>
w:tabs 元素正在触发https://github.com/plutext/docx4j-export-FO/blob/master/src/main/java/org/docx4j/convert/out/fo/XsltFOFunctions.java#L739但就是这样在这种情况下不需要。
解决方法是删除右对齐的选项卡。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.