2013-07-22 6 views
0

Я использую docx4j 2.8.1, и я попытался преобразовать несколько файлов docx, но у меня всегда такая же проблема. Возможно, проблема исходит из версии библиотеки или отсутствовала какая-либо зависимость.Проблемы преобразования docx в pdf с использованием docx4j

Код:

package test; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 

import org.docx4j.convert.out.pdf.PdfConversion; 
import org.docx4j.convert.out.pdf.viaXSLFO.PdfSettings; 
import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 


public class pdfConverter { 
    public static void main(String[] args) { 
     createPDF(); 
    } 

    private static void createPDF() { 
     try { 

      // 1) Load DOCX into WordprocessingMLPackage 
      InputStream is = new FileInputStream(
        new File("D:/TestDoc/Res.docx")); 
      WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage 
        .load(is); 

      // 2) Prepare Pdf settings 
      PdfSettings pdfSettings = new PdfSettings(); 

      // 3) Convert WordprocessingMLPackage to Pdf 
      OutputStream out = new FileOutputStream(new File(
        "D:/TestDoc/Res.pdf")); 
      PdfConversion converter = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
        wordMLPackage); 
      converter.output(out, pdfSettings); 

     } catch (Throwable e) { 
      e.printStackTrace(); 
     } 
    } 

} 

Ошибка:

org.docx4j.openpackaging.exceptions.Docx4JException: FOP issues 
    at org.docx4j.convert.out.pdf.viaXSLFO.Conversion.output(Conversion.java:374) 
    at test.pdfConverter.createPDF(pdfConverter.java:42) 
    at test.pdfConverter.main(pdfConverter.java:21) 
Caused by: java.lang.NullPointerException 
    at org.docx4j.XmlUtils.transform(XmlUtils.java:842) 
    at org.docx4j.XmlUtils.transform(XmlUtils.java:802) 
    at org.docx4j.convert.out.pdf.viaXSLFO.Conversion.output(Conversion.java:349) 
    ... 2 more 
+0

Вы должны будете разместить свой вход docx где-нибудь, пожалуйста – JasonPlutext

+0

Я устал случайно файлы docx, все они ловят одно и то же исключение, поэтому я не добавил шаблон, с которым я работаю. – oueslatibilel

+1

Если это происходит даже с простым документом «hello world», то да, вы должны искать в другом месте проблему. строка 842 из https://github.com/plutext/docx4j/blob/VERSION_2_8_1/src/main/java/org/docx4j/XmlUtils.java предлагает шаблон null. https://github.com/plutext/docx4j/blob/VERSION_2_8_1/src/main/java/org/docx4j/convert/out/pdf/viaXSLFO/Conversion.java в строке 98 должно вызывать исключение. Проверьте ранее в своих журналах. – JasonPlutext

ответ

0

решаемые изменения в баночках. Я использовал 2.8.0, и теперь он прекрасен.