xDocReport - 无法为输入流创建报告

Posted

技术标签:

【中文标题】xDocReport - 无法为输入流创建报告【英文标题】:xDocReport - Impossible to create report for the input stream 【发布时间】:2012-04-13 21:02:47 【问题描述】:

我无法解决这个问题。来源是:

        try 
        // 1) Load Docx file by filling Velocity template engine and cache it to the registry
        InputStream in = new FileInputStream("/test.docx");
        IXDocReport report = XDocReportRegistry.getRegistry().loadReport(in,TemplateEngineKind.Velocity);

        // 2) Create context Java model
        IContext context = report.createContext();
        context.put("user", variables.get("user"));

        // 3) Generate report by merging Java model with the Docx
        OutputStream out = new FileOutputStream(new File("/test_Out.docx"));
        report.process(context, out);

       catch (IOException e) 
        e.printStackTrace();
       catch (XDocReportException e) 
        e.printStackTrace();
      

当我尝试继续执行此代码时出现错误:

09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1) fr.opensagres.xdocreport.core.XDocReportException: Impossible to create report for the input stream. The report loader supports only [] files type.

09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1)    at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.createReport(XDocReportRegistry.java:328)

09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1)    at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.createReport(XDocReportRegistry.java:313)

09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1)    at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.loadReport(XDocReportRegistry.java:285)

09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1)    at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.loadReport(XDocReportRegistry.java:278)

09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1)    at fr.opensagres.xdocreport.document.registry.XDocReportRegistry.loadReport(XDocReportRegistry.java:264)

它指向这条线:

IXDocReport report = XDocReportRegistry.getRegistry().loadReport(in,TemplateEngineKind.Velocity);

这是什么意思 - 报告加载器仅支持 [] 文件类型。? 从 InputStream 加载数据有什么问题吗? 我不知道如何解决这个问题。请帮忙!

【问题讨论】:

好的,知道了。缺少所需类型的库:fr.opensagres.xdocreport.document.docx - 所以,没有任何已知类型:-) 【参考方案1】:

您的错误意味着您的类路径中没有 XDocReport fr.opensagres.xdocreport.document.docx docx 实现 JAR。我建议你阅读Docx Reporting 解释了这一点,XDocReport download samples 包含你想要做的井 JAR(使用 Velocity/Freemarker、generatefrom ODT、Docx...)

【讨论】:

以上是关于xDocReport - 无法为输入流创建报告的主要内容,如果未能解决你的问题,请参考以下文章

XDocReport:生成的 docx 文档错误“Word 在尝试打开文件时遇到错误”

使用 xdocReport 将 .odt 转换为 .pdf 时的验证错误

XDocReport 将 odt 转换为 pdf 如何设置正确的语言环境

xml 使用apche poi,xdocreport和itext扩展将Docx转换为PDF

JAVA使用xdocreport设置页眉

Sketch遇上劲敌XD?这是一份体验报告