2

我使用 xdoc 报告库将文件从 docx 转换为 PDF。当我在本地服务器上运行 appl 时,我得到了很好的结果。当我在 Linux shell 输出 pdf 损坏的生产服务器上运行时,它打开了,但没有文本,但只有部分存在。起居室:

   <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
       <artifactId>fr.opensagres.xdocreport.converter.docx.xwpf</artifactId>
        <version>1.0.6</version>            
    </dependency>
    <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
        <version>1.0.6</version>
   </dependency>
        <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>fr.opensagres.xdocreport.document.docx</artifactId>
        <version>1.0.6</version>
    </dependency>
  <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>fr.opensagres.xdocreport.template.velocity</artifactId>
        <version>1.0.6</version>
  </dependency>
  <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.4.2</version>
    </dependency>

Java代码:

    InputStream in = new FileInputStream(getTemplatePath());
    IXDocReport report = XDocReportRegistry.getRegistry().loadReport(in,
            TemplateEngineKind.Velocity);
    IContext context = report.createContext();
    FieldsMetadata metadata = report.createFieldsMetadata();

    fillContext(context, metadata, data);

    Options options = Options.getTo(ConverterTypeTo.PDF).via(
            ConverterTypeVia.XWPF);
    report.convert(context, options, stream);

    byte[] toByteArray = stream.toByteArray();
    return toByteArray;
}

感谢您的建议

4

0 回答 0