自分のサイトで提供されているDocx4jコミュニティパッケージを使用してWordファイルをPDFに変換しようとしています。 (http://www.docx4java.org/docx4j/docx4j-community-3.3.1.zip)Docx4jとFOPでdocxをPDFに変換するときのエラー
docx4jとそのパッケージのFOPとの間に互換性がないようですが、以前にこの問題を抱えていた人がいて、このバージョンのライブラリを知っているのであれば、私は不思議です。
は、ここに私のコードです:
FOSettings foSettings = Docx4J.createFOSettings();
String inputfilepath = "path/to/file.docx";
String outputfilepath = "path/to/file.pdf";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
FileOutputStream os = new java.io.FileOutputStream(outputfilepath);
foSettings.setFoDumpFile(new java.io.File(inputfilepath + ".fo"));
foSettings.setWmlPackage(wordMLPackage);
Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL);
が、私は以下のスタックトレースをコピーしたが、エラーがFOPFactoryがパラメータなしのメソッドのnewInstance()を持っていないことを不平を言っています。 これはFORendererApacheFOP.javaから呼び出されています。以前のバージョンのFOPではこのメソッドを使用していましたが、パッケージのバージョンを置き換えようとしましたが、それは他の依存関係を破ります。私はDocx4j 3.3.1持っているパッケージとFOP任意の助け2.1
おかげで
。
java.lang.NoSuchMethodException:org.docx4j.convert.outでjava.lang.Class.getDeclaredMethod(Class.java:2130)でorg.apache.fop.apps.FopFactory.newInstance() .fo.renderers.FORendererApacheFOP.createFopFactory(FORendererApacheFOP.java:329) at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.getFopFactory(FORendererApacheFOP.java:253) at org.docx4j.convert.out.fo .renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:119) at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168) at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess (AbstractFOExporter.java:47) at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:82) at org.docx4j.Docx4J.toFO(Docx4J.java:568) at org.docx4j.convert.out.fo。 org.docx4j.convert.out.fo.LayoutMasterSetBuilder.getLayoutMasterSetFragmentでorg.docx4j.convert.out.fo.LayoutMasterSetBuilder.fixExtents(LayoutMasterSetBuilder.java:138)でFOPAreaTreeHelper.getAreaTreeViaFOP(FOPAreaTreeHelper.java:191) (LayoutMasterSetBuilder。 Javaの:sun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でorg.docx4j.convert.out.fo.XsltFOFunctions.getLayoutMasterSetFragment(XsltFOFunctions.java:81) で97) (NativeMethodAccessorImpl .java:62) at sun.reflect.DelegatingMethodAccessorImpl.i (org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:343) at org)。 (拡張機能テーブル)。 (FuncExtFunction.java:475) at xalan.templates.ElemCopyOf.execute(ElemCopyOf.java:134) at org.apache.xa lan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplatesでorg.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)で 。java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402) at org.apache。トランスフォーマイムプリ。トランスフォーム。 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253) at org.docx4j。 XmlUtils.transform(XmlUtils.java:1275) at org.docx4j.XmlUt ils.transform(XmlUtils.java:1100) at org.docx4j.convert.out.common.AbstractXsltExporterDelegate.process(AbstractXsltExporterDelegate.java:66) at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter。 java:63) at org.docx4j.convert.out.common.AbstractWmlExporter.process(AbstractWmlExporter.java:32) at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:79) at org.docx4j.Docx4J.toFO(Docx4J.java:568)sun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でPDFConversion.main(PDFConversion.java:26) で(NativeMethodAccessorImpl .java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho dAccessorImpl.java:43) at java.lang.reflect.Mava.49() .NoSuchMethodException:org.apache.fop.apps.FopFactory.newInstance() at java.lang.Class.getDeclaredMethod(Class.java:2130) at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.createFopFactory( org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOPでorg.docx4j.convert.out.fo.renderers.FORendererApacheFOP.getFopFactory(FORendererApacheFOP.java:253) でFORendererApacheFOP.java:329) 。 java:119) at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168) at org.docx4j.convert.out.fo.Ab stractFOExporter.postprocess(AbstractFOExporter.java:47) at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:82) at org.docx4j.Docx4J.toFO(Docx4J.java:568) at sun.reflect.DelegatingMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でPDFConversion.main(PDFConversion.java:26) (DelegatingMethodAccessorImpl .java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) org.docx4j。 openpackaging.exceptions.Docx4JException:またはパッケージ をエクスポートしている例外g.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:109) at org.docx4j.Docx4J.toFO(Docx4J.java:568) at PDFconversion.main(PDFConversion.java:26) at java.lang.reflectのでsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) でsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) .Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 原因:java.lang.NullPointerException at org.docx4j.convert。 out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:199) at org。docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:159) at org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168) at org.docx4j.convert。 org.docx4j.convert.out.common.AbstractExporter.exportでout.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:47) (AbstractExporter.java:82) ... 7もっと
クラスパスにバティックジャーとjaxb-xslfo-1.0.1.jarはありますか? http://www.docx4java.org/docx4j/docx4j-export-fo-nightly-20161012.jarを試して、スタックトレースを報告してください – JasonPlutext