我使用 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;
}
感谢您的建议