我使用xdoc报告库将文件从docx转换为PDF。当我在本地服务器上运行appl时,我得到了一个很好的结果。当我在具有Linux shell输出的生产服务器上运行时,pdf被破坏,它打开了,但没有文本,但只有部分存在。 POM:
<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;
}
感谢您的建议