如何将PDFBox添加到Android项目或建议替代方案

如何将PDFBox添加到Android项目或建议替代方案,android,pdf,pdfbox,Android,Pdf,Pdfbox,我正在尝试打开一个现有的pdf文件,然后从Android应用程序中向pdf文档添加另一个页面。在添加的页面上,我需要添加一些文本和图像 我想试试PDFBox。由于许可条款/价格的原因,其他解决方案(如iTextPDF)不适合我们公司 我有一个带有主代码库的库项目,以及引用库项目的完整和精简项目 我已从下载jar并将其复制到library projects lib文件夹中,并将pdfbox-app-1.6.0.jar文件添加到java构建路径库中 我能够成功导入图书馆,例如导入org.apache

我正在尝试打开一个现有的pdf文件,然后从Android应用程序中向pdf文档添加另一个页面。在添加的页面上,我需要添加一些文本和图像

我想试试PDFBox。由于许可条款/价格的原因,其他解决方案(如iTextPDF)不适合我们公司

我有一个带有主代码库的库项目,以及引用库项目的完整和精简项目

我已从下载jar并将其复制到library projects lib文件夹中,并将pdfbox-app-1.6.0.jar文件添加到java构建路径库中

我能够成功导入图书馆,例如导入org.apache.pdfbox.pdmodel.PDDocument并编译所有项目。但是,当我运行应用程序时,它会在
PDDocument=new PDDocument()上崩溃出现以下错误

E/AndroidRuntime(24451):java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.PDDocument

我在某个地方读到PDFBox 1.5版以后的版本不适用于Android,所以我尝试下载PDFBox-app-1.4.0.jar文件,但也遇到了同样的问题。我还在full和lite项目中将库添加到构建路径中,但我遇到了相同的错误,或者eclipse由于内存不足而不断崩溃

谁能告诉我我做错了什么?我下载错文件了吗?我导入的正确吗


谢谢,

我认为库类文件不包括在apk文件中。库类需要转换为dex文件,然后才会被检测到。请参阅

PDFBox使用java awt和swing,即使对于非UI任务,我也尝试删除引用,但有很多文件,而且删除的内容太多

我刚刚测试了PDFjet,它是bsd许可的(加上具有更多功能的商业版本),通过这个示例代码(摘自Example_03.java),我能够将jpeg转换为pdf

    FileOutputStream fos = null;
    try
    {
        fos = new FileOutputStream("/sdcard/sample.pdf");
        PDF pdf = new PDF(fos);
        InputStream f = getApplicationContext().getAssets().open("img0.jpg"); 
        Image image = new Image(pdf, f, ImageType.JPEG);
        Page page = new Page(pdf, A4.PORTRAIT);
        image.setPosition(0, 0);
        image.drawOn(page);
        pdf.flush();
        fos.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }
我在这里找到了链接

PDFBox的Android端口 这里有一个免费的PDFBox Android端口:


谢谢您的回复。我是否需要将jar文件转换为dex文件?是的,或者在编译时需要将类文件转换为dex文件。请告诉我您是否知道使用PDFJet实现相反效果的任何示例,即PDF->Image。我已经看过了大多数示例,它们似乎都在将新FileOutputStream的实例传递给PDF()构造函数方法,我认为这暗示了我们正在尝试创建一个新的PDF。相反,我寻求的是读取/解析现有pdf的能力。谢谢。@sherpya如何将PDFjet集成到android项目中?我以前做过,但我想你可以把.jar放在项目的lib子目录中。这个lib非常有限