Как создать новый файл DOCX с DOCX4J на Android? - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь создать приложение на Android, которое создает файлы DOCX.Вначале у меня были некоторые трудности с установкой библиотеки docx4j, но после добавления нескольких дополнительных библиотек она, кажется, работает.

Я попытался создать файл docx со следующим кодом:

private class GenerateWord extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... voids) {

        String name = "Test.docx";

        try {

            WordprocessingMLPackage wordPackage = WordprocessingMLPackage.createPackage();
            MainDocumentPart mainDocumentPart = wordPackage.getMainDocumentPart();
            mainDocumentPart.addStyledParagraphOfText("Title", "Some Title");
            mainDocumentPart.addParagraphOfText("Some paragraph");

            String avaliablePath = getFilesDir().getAbsolutePath();
            String doc = avaliablePath + "/" + "Test.docx";
            File exportFile = new File(doc);
            wordPackage.save(exportFile);

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

        return null;
    }
}

Это возвращает ошибку:

10-25 22:12:39.807 3216-3303/com.example.examples W/System.err: log4j:WARN No appenders could be found for logger (org.docx4j.utils.ResourceUtils).
10-25 22:12:39.807 3216-3303/com.example.examples W/System.err: log4j:WARN Please initialize the log4j system properly.
10-25 22:12:39.807 3216-3303/com.example.examples W/System.err: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List org.docx4j.wml.Styles.getStyle()' on a null object reference
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at org.docx4j.model.PropertyResolver.initialiseLiveStyles(PropertyResolver.java:1223)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at org.docx4j.model.PropertyResolver.init(PropertyResolver.java:180)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at org.docx4j.model.PropertyResolver.<init>(PropertyResolver.java:145)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.getPropertyResolver(MainDocumentPart.java:162)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.createStyledParagraphOfText(MainDocumentPart.java:634)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart.addStyledParagraphOfText(MainDocumentPart.java:614)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at com.example.examples.ActivityForTest$GenerateWord.doInBackground(ActivityForTest.java:47)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at com.example.examples.ActivityForTest$GenerateWord.doInBackground(ActivityForTest.java:35)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:292)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-25 22:12:43.471 3216-3303/com.example.examples W/System.err: at java.lang.Thread.run(Thread.java:818)

Ошибка возникает в строке: mainDocumentPart.addStyledParagraphOfText(«Заголовок», «Некоторый заголовок»);

Даже при удалении этой строки возникают другие ошибки.В конце я просто хочу узнать, как правильно создать новый файл docx с docx4j.

...