我正在尝试使用XDocReport注入ODT并将其转换为PDF,这是我的java代码:
InputStream in= new FileInputStream(new File("D:\\exemple.odt"));
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(in,TemplateEngineKind.Velocity);
IContext context = report.createContext();
context.put("bean", "myMonthReport2016");
Options options = Options.getTo(ConverterTypeTo.PDF);
OutputStream out = new FileOutputStream(new File("exemple_Out.odt"));
report.convert(context, options, out);
该版本使用1.0.6,我在pom.xml中的依赖项:
<!-- XDocReport -->
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.core</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.document</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.template</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.converter</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.document.odt</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.converter.odt.odfdom</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.odftoolkit.odfdom.converter</artifactId>
<version>0.9.8</version>
</dependency>
<dependency>
<groupId>org.odftoolkit</groupId>
<artifactId>odfdom-java</artifactId>
<version>0.8.7</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId> <artifactId>fr.opensagres.xdocreport.template.velocity</artifactId>
<version>${xdocreport.version}</version>
</dependency>
<!-- Velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<scope>provided</scope>
</dependency>
我在测试后得到了这个错误:
fr.opensagres.xdocreport.converter.XDocConverterException: Cannot find converters from=ODT
我已经按照这个问题,但错误没有解决 问题:https://github.com/ricochango1/xdocreport/issues/20
答案 0 :(得分:0)
我遇到了同样的问题,解决方法是更改xdocreport的版本,如下所示:
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
<version>1.0.6</version>
</dependency>
在另一边尝试这样的事情:
URL url = new File("D:\\exemple.odt").toURI().toURL();
InputStream documentAsStream = url.openStream();
IXDocReport xdocReport = ocReportRegistry.getRegistry().loadReport(inputStream, templateEngine);