pdfbox 3.0.0库在android studio中用于阅读.pdf

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

我正在尝试读取 .pdf 文件,因为我在活动按钮单击中使用以下代码,但

'Loader.loadPDF(file);'
每次显示错误时都不起作用。

public void ReadMyPdfFile(View v){

    Thread thread = new Thread(new Runnable(){
        @Override
        public void run() {
            File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "mPDF.pdf");

            List<String> pageTexts = new ArrayList<>();
            PDDocument pdDocument = null;
            try {
                pdDocument = Loader.loadPDF(file);//<-- error on this line
                int k = 0;
            } catch (IOException e) {
                Log.i(TAG, "ReadMyPdfFile: Exception++ " + e.getMessage());
                throw new RuntimeException(e);
            }
        }

日志猫

java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Point; at org.apache.pdfbox.pdmodel.PDDocument.<clinit>(PDDocument.java:104) at org.apache.pdfbox.pdfparser.PDFParser.createDocument(PDFParser.java:209) at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:187) at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:156) at org.apache.pdfbox.Loader.loadPDF(Loader.java:466) at org.apache.pdfbox.Loader.loadPDF(Loader.java:348) at org.apache.pdfbox.Loader.loadPDF(Loader.java:303) at org.apache.pdfbox.Loader.loadPDF(Loader.java:246)

在“build.gradle”中添加以下依赖项

implementation 'org.apache.pdfbox:pdfbox:3.0.0'    
implementation 'org.apache.pdfbox:fontbox:3.0.0'

任何机构可以帮助我解决这个问题吗?

java android pdfbox
1个回答
0
投票

您无法在 Android 上使用普通 PDFBox,因为它依赖于 Android 上的 Java 不使用的标准 Java 图形库

awt

有一个适用于 Android 的端口,因此请使用以下依赖项

dependencies {
    implementation 'com.tom-roush:pdfbox-android:2.0.27.0'
}

虽然我发现内置的 pdf 库 PDFDocumentPdfRenderer 足够好,不需要像

pdfbox
itext
这样的外部库存在许可/兼容性问题。

© www.soinside.com 2019 - 2024. All rights reserved.