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

Dit*_*mon 24 pdf android pdfbox

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

我想试试PDFBox.由于许可条款/价格,iTextPDF等其他解决方案不适合我们公司.

我有一个带有主代码库的库项目,还有引用库项目的full和lite项目.

我从http://pdfbox.apache.org/download.html下载了jar 并将其复制到库项目lib文件夹中,并将pdfbox-app-1.6.0.jar文件添加到java构建路径库中.

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

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

我在某处看到PDFBox版本1.5以后不适用于Android,所以我尝试下载pdfbox-app-1.4.0.jar文件,但遇到了同样的问题.我还在我的完整和精简版项目中将库添加到构建路径中,但是我得到了相同的错误或者eclipse因内存不足错误而崩溃.

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

谢谢,

she*_*pya 18

PDFBox使用java awt和swing,即使对于非UI任务,我试图删除引用但是有很多文件,我删除了太多的东西

我刚刚测试了PDFjet http://pdfjet.com/os/edition.html它的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();
    }
Run Code Online (Sandbox Code Playgroud)

我在这里找到了链接http://java-source.net/open-source/pdf-libraries

  • 如果您知道任何实现反向的示例,请使用PDFJet了解PDF-> Image.我已经浏览了大部分示例.其中所有示例似乎都将新的FileOutputStream实例传递给PDF()构造函数方法,我相信这提示我们正在尝试创建一个新的PDF.相反,我寻求的是能够读取/解析现有的pdf.谢谢. (2认同)

Jas*_*son 13

PDFBox的Android端口

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

https://github.com/TomRoush/PdfBox-Android

  • 这个库是非常受限制的 (2认同)