Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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转换为PDF,FOP问题/无法执行转换错误_Java_Docx4j - Fatal编程技术网

Java Docx4j转换为PDF,FOP问题/无法执行转换错误

Java Docx4j转换为PDF,FOP问题/无法执行转换错误,java,docx4j,Java,Docx4j,Docx4j版本2.8.1.3 docx是一个非常简单的文档,只有一些文本,但它似乎不适用于任何docx 在docx4j论坛上查看源代码/异常可能更容易。 如果在一个地方得到答复,我将用答复更新这两个地方 这是个例外 fourseasons.general.conversionservice.converter.AbstractConverter FOP issues org.docx4j.openpackaging.exceptions.Docx4JException: FOP issue

Docx4j版本2.8.1.3

docx是一个非常简单的文档,只有一些文本,但它似乎不适用于任何docx

在docx4j论坛上查看源代码/异常可能更容易。

如果在一个地方得到答复,我将用答复更新这两个地方

这是个例外

fourseasons.general.conversionservice.converter.AbstractConverter FOP issues 
org.docx4j.openpackaging.exceptions.Docx4JException: FOP issues

  Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: Cannot perform the transformation
     at org.docx4j.XmlUtils.transform(XmlUtils.java:911)
     at org.docx4j.XmlUtils.transform(XmlUtils.java:802)
     at org.docx4j.convert.out.pdf.viaXSLFO.Conversion.output(Conversion.java:349)
     ... 230 more
  Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException
     at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2405)
     at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
     at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
     at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
     at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400)
     at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2270)
     at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1356)
     at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
     at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1273)
     at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1251)
     at org.docx4j.XmlUtils.transform(XmlUtils.java:909)
     ... 232 more
  Caused by: java.lang.NullPointerException
     at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:282)
     at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:248)
     at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
     at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
     at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400)
创建字节的代码:

     Mapper fontMapper = new IdentityPlusMapper();
     wordmlPackage.setFontMapper(fontMapper);

     org.docx4j.convert.out.pdf.viaXSLFO.Conversion c = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
           wordmlPackage);

     ByteArrayOutputStream os = new ByteArrayOutputStream();
     c.output(os, new PdfSettings());

     os.close();
     binarypdf = os.toByteArray();

我不知道是什么导致了这个问题,但我把它缩小到了无法处理的格式。我只是开始一个接一个地从出错文档的副本中删除页面。然后,当我最终到达文档转换(到PDF)的位置时,我知道我找到了有问题的页面


从那时起,只需从Word中剪切页面内容,将其粘贴到另一个应用程序(在我的例子中为页面)中,然后返回到Word并重新设置该页面的格式。把前面的几页贴回去,瞧。Bug消失了。

我也有同样的问题。Ctrl+A高亮显示所有页面元素并查找无法转换的元素

有几件事需要确认/尝试:(1)你的类路径上有最新版本的Xalan吗?(2) 您是否在没有字体映射元素的情况下进行过测试(即只进行直接转换)?更新:我发现在某些段落上设置“之前分页符”属性(之前也有正常分页符)可能会导致此问题。您可以编辑帖子以补充原始答案。评论不是为了这个目的。