Search code examples
javadocx4j

Docx4j Convert to PDF, FOP Issues/ Cannot perform the transformation error


Docx4j version 2.8.1.3

The docx is a very simple one with just some text, it doesn't seem to work for any docx though.

May be easier to view source/exception at docx4j forums. http://www.docx4java.org/forums/pdf-output-f27/docx4j-to-pdf-fop-issues-cannot-perform-the-transformation-t1652.html

If answered at one place I will update both with answer

Here is the exception

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)

Code to create the bytes:

     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();

Solution

  • I had this same issue. Ctrl + A to highlight all page elements and find the element that can't be transformed.