在Android设备上离线生成PDF的好方法...尝试过DOCX4J

问题描述 投票:0回答:0

有没有在Android设备上生成PDF文档的好方法?我有一个 DOCX 文件作为基础。

我知道这是可能的: 这是一个非常好的应用程序https://play.google.com/store/apps/details?id=cn.wps.moffice_eng

他们离线渲染它。

一些想法?

我已经尝试过 DOCX4J,并且它正在正确生成 DOCX 文件,但是使用

WordprocessingMLPackage wordMLPackage
准备PDF,上面写着:

E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.ExceptionInInitializerError
            at org.plutext.DocxToHtml.AndroidDocxToHtmlActivity$1.onClick(AndroidDocxToHtmlActivity.java:215)
            at android.view.View.performClick(View.java:4209)
            at android.view.View$PerformClick.run(View.java:17431)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:153)
            at android.app.ActivityThread.main(ActivityThread.java:5297)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at **org.docx4j.utils.ResourceUtils.getResource(ResourceUtils.java:45)
            at org.docx4j.convert.out.pdf.viaXSLFO.Conversion.<clinit>(Conversion.java:101)**
            at org.plutext.DocxToHtml.AndroidDocxToHtmlActivity$1.onClick(AndroidDocxToHtmlActivity.java:215)
            at android.view.View.performClick(View.java:4209)
            at android.view.View$PerformClick.run(View.java:17431)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:153)
            at android.app.ActivityThread.main(ActivityThread.java:5297)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

这是我使用的代码:

 // 2) Prepare Pdf settings
                        PdfSettings pdfSettings = new PdfSettings();
                        pdfSettings.setImageHandler(new ConversionImageHandler() {
                            @Override
                            public String handleImage(AbstractWordXmlPicture abstractWordXmlPicture, Relationship relationship, BinaryPart binaryPart) throws Docx4JException {
                                return null;
                            }
                        });

                        // 3) Convert WordprocessingMLPackage to Pdf
                        OutputStream out = new FileOutputStream(pdffile);
                        PdfConversion converter = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
                                wordMLPackage);
                        converter.output(out, pdfSettings);
                        Log.e("AndroidDocxToHtml", " PDF save done");

编辑更新:

原来 docx2fo.xslt 不在 org\docx4 的库中

android pdf-generation docx apache-fop docx4j
© www.soinside.com 2019 - 2024. All rights reserved.