Java 使用docx4j将Docx转换为PDF时丢失文本对齐

Java 使用docx4j将Docx转换为PDF时丢失文本对齐,java,pdf,pdf-generation,docx,docx4j,Java,Pdf,Pdf Generation,Docx,Docx4j,我使用下面的代码将MS Word docx文件转换为pdf private static ByteArrayOutputStream convertToPDFDocx4j(String inputfilepath) throws Exception { WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));

我使用下面的代码将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,但它会丢失文本对齐

MS Word格式:

生成的PDF:

我已在以下链接中上传了word并生成了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元素正在触发,但在本例中这是不需要的


解决方法是删除右对齐选项卡。

我按照您的建议更改了对齐方式,但结果完全相同。此外,内容仍然具有该属性。可能我在格式化文档时遗漏了一些内容。我已再次附上您建议的更改文件。我建议您删除您的意思是以编程方式删除它,或者通过MS Word更改文档格式中的某些内容?是的,两者都可以。一开始它是怎么进去的?