coldfusion将docx转换为pdf

时间:2016-03-09 15:56:34

标签: pdf coldfusion docx docx4j cfdocument

我正在一个项目工作,我真的想通过coldfusion将docx文件(放在服务器上)转换为pdf。在服务器上安装了lucee。我尝试了很多,maaany的东西,但我希望有人知道答案。 (我也是冷血新手,所以这让它更难)

那么到目前为止我尝试了什么?

我们已经使用一个名为docx4j的插件来自动填写word文档并通过cf保存它们。这很好用,所以插件也在工作。但是,如果我尝试运行以下代码:

    pdffile = createObject("java", "java.io.File").init(Path_en_bestand_doel_pdf);
    os = null;
    document = createObject("java","org.docx4j.openpackaging.packages.WordprocessingMLPackage").load(createObject("java", "java.io.File").init(Path_en_bestand_oorsprong));
    Docx4J = createObject("java", "org.docx4j.Docx4J");
    fo = Docx4J.createFOSettings();
    fo.setFoDumpFile(createObject("java", "java.io.File").init(Path_en_bestand_oorsprong & ".fo"));
    fo.setWmlPackage(document);
    os = createObject("java", "java.io.FileOutputStream").init(pdffile);
    Docx4J.toFO(fo, os, Docx4J.FLAG_EXPORT_PREFER_XSL);

它出现错误"异常导出包"。我已经尝试过在网上找到的每个例子的组合。我尝试了多个旧版本。但没有运气。 (困难的部分是没有人试图用javascript,但用java)

所以在网上搜索后我也找到了coldfusion选项cfdocument。在文档中认为应该可以将doc(我希望docx)转换为pdf。这是我运行的代码

<cfdocument 
    format="pdf" 
    srcfile="#Path_en_bestand_oorsprong#" 
    filename="#Path_en_bestand_doel_pdf#"
    overwrite=true
    pagetype="a4"
    fontembed="true"></cfdocument>

如果我们采用一个非常简单的docx文件,那么这个输出是一个包含许多奇怪符号的大pdf文件。看起来像一个字符集问题,但可以找到更多信息如何解决这个问题。

那么有人知道可能出现什么问题吗?或者有没有人有另一种解决方案如何简单地将docx文件转换为pdf?

我希望这是可读的,并且有一个答案。我还在下面列出了第一个问题的错误消息:

Exception exporting package
at org.docx4j.utils.ResourceUtils.getResource(ResourceUtils.java:86):86
at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.loadDefaultTemplates(AbstractXsltExporterDelegate.java:97):97
at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.getDefaultTemplate(AbstractXsltExporterDelegate.java:85):85
at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.getTemplates(AbstractXsltExporterDelegate.java:76):76
at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.process(AbstractXsltExporterDelegate.java:64):64
at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:63):63
at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:32):32
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:79):79
at org.docx4j.Docx4J.toFO(Docx4J.java:466):466
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method):-2
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62):62
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43):43
at java.lang.reflect.Method.invoke(Method.java:497):497
at lucee.runtime.reflection.pairs.MethodInstance.invoke(MethodInstance.java:55):55
at lucee.runtime.java.JavaObject.call(JavaObject.java:237):237
at lucee.runtime.java.JavaObject.call(JavaObject.java:259):259
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742):742
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1590):1590
at bmt_opsys_nl644.modules.documenten.doe_pdfconvert_cfm$cf.call(C:\inetpub\wwwroot\bmt.opsys.nl\modules\documenten\doe_pdfconvert.cfm:76):76
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:922):922
at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:56):56
at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:36):36
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2262):2262
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2225):2225
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:456):456
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:47):47
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729):729
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291):291
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206):206
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52):52
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239):239
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206):206
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217):217
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106):106
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502):502
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142):142
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79):79
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88):88
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518):518
at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:844):844
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673):673
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500):1500
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456):1456
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142):1142
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617):617
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61):61
at java.lang.Thread.run(Thread.java:745):745

在给出答案后,我得到一个新的错误,说明字体。 (无法初始化类org.docx4j.fonts.microsoft.MicrosoftFontsRegistry )我会尝试一些事情,但这是完整的错误:

Could not initialize class org.docx4j.fonts.microsoft.MicrosoftFontsRegistry
at org.docx4j.fonts.PhysicalFonts.getBoldForm(PhysicalFonts.java:480):480
at org.docx4j.fonts.Mapper.getBoldForm(Mapper.java:276):276
at org.docx4j.fonts.fop.util.FopConfigUtil.declareFonts(FopConfigUtil.java:138):138
at org.docx4j.fonts.fop.util.FopConfigUtil.createDefaultConfiguration(FopConfigUtil.java:88):88
at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.setupApacheFopConfiguration(FORendererApacheFOP.java:168):168
at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:111):111
at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:139):139
at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:47):47
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:82):82
at org.docx4j.Docx4J.toFO(Docx4J.java:466):466
at org.docx4j.convert.out.fo.FOPAreaTreeHelper.getAreaTreeViaFOP(FOPAreaTreeHelper.java:193):193
at org.docx4j.convert.out.fo.LayoutMasterSetBuilder.fixExtents(LayoutMasterSetBuilder.java:136):136
at org.docx4j.convert.out.fo.LayoutMasterSetBuilder.appendLayoutMasterSetFragment(LayoutMasterSetBuilder.java:178):178
at org.docx4j.convert.out.fo.FOExporterVisitorDelegate.appendDocumentHeader(FOExporterVisitorDelegate.java:50):50
at org.docx4j.convert.out.fo.FOExporterVisitorDelegate.appendDocumentHeader(FOExporterVisitorDelegate.java:34):34
at org.docx4j.convert.out.common.AbstractVisitorExporterDelegate.process(AbstractVisitorExporterDelegate.java:82):82
at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:63):63
at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:32):32
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:79):79
at org.docx4j.Docx4J.toFO(Docx4J.java:466):466

0 个答案:

没有答案