Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用freemarker加载odt文件(文档模板)。如何将odt文件生成为pdf_Java_Spring Mvc_Freemarker_Xdocreport_Xdoc - Fatal编程技术网

Java 使用freemarker加载odt文件(文档模板)。如何将odt文件生成为pdf

Java 使用freemarker加载odt文件(文档模板)。如何将odt文件生成为pdf,java,spring-mvc,freemarker,xdocreport,xdoc,Java,Spring Mvc,Freemarker,Xdocreport,Xdoc,获取此异常: fr.opensagres.xdocreport.core.XDocReportException: java.lang.NoSuchMethodError: freemarker.template.Configuration.setTagSyntax(I)V at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:151) at fr.o

获取此异常:

fr.opensagres.xdocreport.core.XDocReportException: java.lang.NoSuchMethodError: freemarker.template.Configuration.setTagSyntax(I)V
  at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:151)
  at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:83)
  at fr.opensagres.xdocreport.document.AbstractXDocReport.processTemplateEngine(AbstractXDocReport.java:775)
  at fr.opensagres.xdocreport.document.AbstractXDocReport.convert(AbstractXDocReport.java:703)
  at com.altruista.mp.dao.ContactSyncImpl$1.processRow(ContactSyncImpl.java:231)
  at org.springframework.jdbc.core.JdbcTemplate$RowCallbackHandlerResultSetExtractor.extractData(JdbcTemplate.java:1607)
  at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:708)
  at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:695)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:727)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:752)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:762)
  at com.altruista.mp.dao.ContactSyncImpl.applyRemoteChanges(ContactSyncImpl.java:128)
  at com.altruista.mp.sync.SyncController.run(SyncController.java:137)
  at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:634)
  at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:652)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:898)
  at com.altruista.mp.sync.Application.main(Application.java:19)
Caused by: java.lang.NoSuchMethodError: freemarker.template.Configuration.setTagSyntax(I)V
  at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.setFreemarkerConfiguration(FreemarkerTemplateEngine.java:184)
  at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.getDefaultConfiguration(FreemarkerTemplateEngine.java:256)
  at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.getFreemarkerConfiguration(FreemarkerTemplateEngine.java:174)
  at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.processWithCache(FreemarkerTemplateEngine.java:110)
  at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:111)
  ... 19 more
CONTACT: Couchbase [7207d5b6-cea2-48ee-8464-bc73ce21aa5f] <= SQL [ 582375 ]
java.io.FileNotFoundException: Template fr.opensagres.xdocreport.document.odt.ODTReport@fbe57c!content.xml not found.
  at freemarker.template.Configuration.getTemplate(Configuration.java:441)
  at freemarker.template.Configuration.getTemplate(Configuration.java:404)
  at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.processWithCache(FreemarkerTemplateEngine.java:110)
  at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:111)
  at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:83)
  at fr.opensagres.xdocreport.document.AbstractXDocReport.processTemplateEngine(AbstractXDocReport.java:775)
  at fr.opensagres.xdocreport.document.AbstractXDocReport.convert(AbstractXDocReport.java:703)
  at com.altruista.mp.dao.ContactSyncImpl$1.processRow(ContactSyncImpl.java:231)
  at org.springframework.jdbc.core.JdbcTemplate$RowCallbackHandlerResultSetExtractor.extractData(JdbcTemplate.java:1607)
  at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:708)
  at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:695)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:727)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:752)
  at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:762)
  at com.altruista.mp.dao.ContactSyncImpl.applyRemoteChanges(ContactSyncImpl.java:128)
  at com.altruista.mp.sync.SyncController.run(SyncController.java:137)
  at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:634)
  at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:652)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:898)
  at com.altruista.mp.sync.Application.main(Application.java:19)
在demoOffice.odt中:

hello ${name}!

XDocReport是模块化的,因此您必须选择:

  • 您的模板引擎实现。在您的情况下,您希望使用Freemarker,因此必须在pom中声明:

fr.opensagres.xdocreport

我不明白你的问题。您可以反复调用report.convert,否?您说您尝试转换一个
odt
文件,stacktrace的第一行说转换器只支持
docx
格式。这可能是错误的原因(
odt
格式不是
docx
格式)由于此依赖关系,我得到了错误:fr.opensagres.xdocreport fr.opensagres.xdocreport.document.odt 1.0.4现在已解决,但现在得到了另一个异常:fr.opensagres.xdocreport.core.XDocReportException:Null模板引擎。设置模板引擎IXDocReport#设置模板引擎。此处-->IContext context=report.createContext();如前所述,它丢失了fr.opensagres.xdocreport fr.opensagres.xdocreport.template.freemarker 1.0.4是的,我添加了这个并删除了以前的异常,现在得到了上面编辑的新异常::fr.opensagres.xdocreport.core.XDocReportException:java.lang.NoSuchMethodError:freemarker.template.Configuration.setTagSyntax(i)V java.io.FileNotFoundException:模板fr.opensagres.xdocreport.document.odt。ODTReport@fbe57c!content.xml not found.thx用于回复…我已经添加了此项并删除了早期的异常,但现在我收到了此错误…在上面进行了编辑
InputStream in= new FileInputStream(new File("src/main/resources/demoOffice.odt"));
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(
    in, TemplateEngineKind.Freemarker);

// 2) Create Java model context 
IContext context = report.createContext();
context.put("name", "world");

// 3) Set PDF as format converter
Options options = Options.getTo(ConverterTypeTo.PDF);

// 4) Generate report by merging Java model with the ODT and convert it to PDF
OutputStream outputStream = new FileOutputStream(new File("src/main/resources/demoOffice_Out.odt"));
report.convert(context, options, outputStream);
hello ${name}!
<dependency>
  <groupId>fr.opensagres.xdocreport</groupId>
  <artifactId>fr.opensagres.xdocreport.template.freemarker</artifactId>
  <version>1.0.4</version>
</dependency>
<dependency>
  <groupId>fr.opensagres.xdocreport</groupId>
  <artifactId>fr.opensagres.xdocreport.document.odt</artifactId>
  <version>1.0.4</version>
</dependency>
<dependency>
  <groupId>fr.opensagres.xdocreport</groupId>
  <artifactId>fr.opensagres.xdocreport.converter.odt.odfdom</artifactId>
  <version>1.0.4</version>
</dependency>