PDFBOX在android中使用

时间:2014-03-26 19:52:06

标签: android pdfbox

我无法在android模拟器中使用pdfbox运行pdf文本提取。但是,当作为独立的Java应用程序运行时,代码运行良好。

使用PDFBOXv1.8.4并使用pdfbox jar正确设置构建路径。可能出错了什么?

另外我看到一些帖子建议不要使用pdfbox,因为android库不支持drawables(java.awt。*)。这是真的吗?我还能希望得到用pdfbox解析的简单pdf文件(仅文本)。

代码如下

public static void PdftoText(InputStream input) 
{
    PDFParser parser ; 
    COSDocument cosDoc;
    PDFTextStripper pdfStripper;
    PDDocument pdDoc;
    String parsedText;
    try
    {
        parser = new PDFParser(input);
        parser.parse();

        cosDoc = parser.getDocument();
        pdDoc = new PDDocument(cosDoc);

        pdfStripper = new PDFTextStripper();


        if(pdDoc != null){

            pdfStripper.setWordSeparator(":");
            parsedText = pdfStripper.getText(pdDoc);

            System.out.println(parsedText);             
        }

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

这是我得到的例外

03-26 13:17:57.046: I/dalvikvm(951): Failed resolving Lorg/apache/pdfbox/pdmodel/PDDocument; interface 1617 'Ljava/awt/print/Pageable;'
03-26 13:17:57.079: W/dalvikvm(951): Link of class 'Lorg/apache/pdfbox/pdmodel/PDDocument;' failed
03-26 13:17:57.366: D/dalvikvm(951): GC_FOR_ALLOC freed 314K, 13% free 3097K/3528K, paused 278ms, total 278ms
03-26 13:17:57.366: E/dalvikvm(951): Could not find class 'org.apache.pdfbox.pdmodel.PDDocument', referenced from method org.apache.pdfbox.pdfparser.PDFParser.getPDDocument
03-26 13:17:57.377: W/dalvikvm(951): VFY: unable to resolve new-instance 2233 (Lorg/apache/pdfbox/pdmodel/PDDocument;) in Lorg/apache/pdfbox/pdfparser/PDFParser;
03-26 13:17:57.377: D/dalvikvm(951): VFY: replacing opcode 0x22 at 0x0000
03-26 13:17:57.596: I/dalvikvm(951): Failed resolving Lorg/apache/pdfbox/pdmodel/PDDocument; interface 1617 'Ljava/awt/print/Pageable;'
03-26 13:17:57.696: W/dalvikvm(951): Link of class 'Lorg/apache/pdfbox/pdmodel/PDDocument;' failed
03-26 13:17:57.707: D/dalvikvm(951): DexOpt: unable to opt direct call 0x39b3 at 0x06 in Lorg/apache/pdfbox/pdfparser/PDFParser;.getPDDocument

2 个答案:

答案 0 :(得分:4)

我建议您使用TomRoush/PdfBox-Android!我有完全相同的问题,它解决了它,所以为什么不尝试! ; - )

答案 1 :(得分:0)

截至目前,由于awt依赖性,无法在Android中直接使用PDFBox。 如果您只需要从PDF中提取文本,那么您也可以尝试https://github.com/RatheeshRavindran/PDFBoxLight

这是我最近做过的PDFBox的Android移植,请注意它仍处于Beta版本。