Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 使用docx4j的docx到png转换器_Java_Docx4j - Fatal编程技术网

Java 使用docx4j的docx到png转换器

Java 使用docx4j的docx到png转换器,java,docx4j,Java,Docx4j,使用docx4j将docx转换为png时,获取UnsupportedOperationException。下面是示例代码 public class DocToPng { public static void main(String[] args) throws Docx4JException, IOException { String inPath="D:\\pdfconverterfolder\\test.docx"; String outPath="D:\\pdfconver

使用docx4j将docx转换为png时,获取UnsupportedOperationException。下面是示例代码

public class DocToPng {
public static void main(String[] args) throws Docx4JException, IOException {
    String inPath="D:\\pdfconverterfolder\\test.docx";
    String outPath="D:\\pdfconverterfolder\\pngOutput.png";
     File theFile = new File(inPath);
    File outile=new File(outPath);
    WordprocessingMLPackage wordMLPckg = Docx4J.load(theFile);
    OutputStream os = new FileOutputStream(outile);
    FOSettings settings = Docx4J.createFOSettings();
    settings.setWmlPackage(wordMLPckg);
    settings.setApacheFopMime("images/png");
    Docx4J.toFO(settings, os, Docx4J.FLAG_EXPORT_PREFER_XSL);
    os.close();
    System.out.println("DOne");
}
}
以下是控制台输出:

[main] INFO org.docx4j.org.apache.xml.serializer.ToXMLStream - Using repackaged ToXMLStream
[main] INFO org.docx4j.org.apache.xml.serializer.ToXMLStream - Using repackaged ToXMLStream
[main] ERROR org.docx4j.convert.out.common.AbstractExporter - Exception exporting package
java.lang.UnsupportedOperationException: Don't know how to handle "images/png" as an output format. Neither an FOEventHandler, nor a Renderer could be found for this output format.
    at org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:365)
    at org.apache.fop.fo.FOTreeBuilder.<init>(FOTreeBuilder.java:107)
    at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:104)
    at org.apache.fop.apps.Fop.<init>(Fop.java:78)
    at org.apache.fop.apps.FOUserAgent.newFop(FOUserAgent.java:182)
    at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:219)
    at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:240)
    at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:187)
    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:689)
    at toImage.DocToPng.main(DocToPng.java:26)
Exception in thread "main" org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package
    at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:109)
    at org.docx4j.Docx4J.toFO(Docx4J.java:689)
    at toImage.DocToPng.main(DocToPng.java:26)
Caused by: java.lang.UnsupportedOperationException: Don't know how to handle "images/png" as an output format. Neither an FOEventHandler, nor a Renderer could be found for this output format.
    at org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:365)
    at org.apache.fop.fo.FOTreeBuilder.<init>(FOTreeBuilder.java:107)
    at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:104)
    at org.apache.fop.apps.Fop.<init>(Fop.java:78)
    at org.apache.fop.apps.FOUserAgent.newFop(FOUserAgent.java:182)
    at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:219)
    at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:240)
    at org.docx4j.convert.out.fo.renderers.FORendererApacheFOP.render(FORendererApacheFOP.java:187)
    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)
    ... 2 more
[main]INFO org.docx4j.org.apache.xml.serializer.ToXMLStream-使用重新打包的ToXMLStream
[main]INFO org.docx4j.org.apache.xml.serializer.ToXMLStream-使用重新打包的ToXMLStream
[main]错误org.docx4j.convert.out.common.AbstractExporter-异常导出包
java.lang.UnsupportedOperationException:不知道如何将“images/png”作为输出格式处理。找不到此输出格式的FOEventHandler或渲染器。
位于org.apache.fop.render.renderFactory.createFOEventHandler(renderFactory.java:365)
位于org.apache.fop.fo.FOTreeBuilder(FOTreeBuilder.java:107)
位于org.apache.fop.apps.fop.createDefaultHandler(fop.java:104)
在org.apache.fop.apps.fop.(fop.java:78)
位于org.apache.fop.apps.FOUserAgent.newFop(FOUserAgent.java:182)
位于org.apache.fop.apps.FopFactory.newFop(FopFactory.java:219)
位于org.docx4j.convert.out.fo.renderers.forenderrapachefop.render(forenderrapachefop.java:240)
位于org.docx4j.convert.out.fo.renderers.forenderrapachefop.render(forenderrapachefop.java:187)
位于org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168)
位于org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:47)
位于org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:82)
位于org.docx4j.docx4j.toFO(docx4j.java:689)
位于toImage.DocToPng.main(DocToPng.java:26)
线程“main”org.docx4j.openpackaging.exceptions.docx4jeexception中的异常:异常导出包
位于org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:109)
位于org.docx4j.docx4j.toFO(docx4j.java:689)
位于toImage.DocToPng.main(DocToPng.java:26)
原因:java.lang.UnsupportedOperationException:不知道如何将“images/png”作为输出格式处理。找不到此输出格式的FOEventHandler或渲染器。
位于org.apache.fop.render.renderFactory.createFOEventHandler(renderFactory.java:365)
位于org.apache.fop.fo.FOTreeBuilder(FOTreeBuilder.java:107)
位于org.apache.fop.apps.fop.createDefaultHandler(fop.java:104)
在org.apache.fop.apps.fop.(fop.java:78)
位于org.apache.fop.apps.FOUserAgent.newFop(FOUserAgent.java:182)
位于org.apache.fop.apps.FopFactory.newFop(FopFactory.java:219)
位于org.docx4j.convert.out.fo.renderers.forenderrapachefop.render(forenderrapachefop.java:240)
位于org.docx4j.convert.out.fo.renderers.forenderrapachefop.render(forenderrapachefop.java:187)
位于org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:168)
位于org.docx4j.convert.out.fo.AbstractFOExporter.postprocess(AbstractFOExporter.java:47)
位于org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:82)
... 还有两个
看起来docx4j不支持转换成任何图像格式。有什么建议吗。?谢谢

    settings.setApacheFopMime(MimeConstants.MIME_PNG);
对我有用


我想问题是你有“images/png”,而不是“image/png”

根据上面的链接解决方案,我已经在maven依赖项下面添加了,但是仍然得到了UnsupportedOperationException。org.docx4j docx4j 6.0.1 org.docx4j docx4j export fo 6.0.1任何关于如何在docx中对多个页面进行此转换的想法,它只转换第一个页面,我希望所有页面都发生这种情况。