Проблемы с преобразованием docx в pdf с помощью docx4j

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

Код:

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

person oueslatibilel    schedule 22.07.2013    source источник
comment
Вам нужно будет опубликовать входной документ где-нибудь, пожалуйста   -  person JasonPlutext    schedule 22.07.2013
comment
Я устал от случайных файлов docx, все они ловят одно и то же исключение, поэтому я не добавил шаблон, с которым работаю.   -  person oueslatibilel    schedule 23.07.2013
comment
Если это происходит даже с простым документом hello world, тогда да, вам нужно искать проблему в другом месте. строка 842 из github.com/plutext /docx4j/blob/VERSION_2_8_1/src/main/java/org/ предполагает, что шаблон имеет значение null. github.com/plutext/docx4j/blob/VERSION_2_8_1/src/main/java/org/ в строке 98 должно вызывать исключение. Проверьте ранее в своих журналах.   -  person JasonPlutext    schedule 23.07.2013
comment
Я сменил банку, попробовал 2.8.0, теперь все работает нормально.   -  person oueslatibilel    schedule 24.07.2013
comment
Откуда у тебя баночка 2.8.1?   -  person JasonPlutext    schedule 24.07.2013


Ответы (1)


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

person oueslatibilel    schedule 24.07.2013