如何将PDFBox添加到Android项目或build议替代scheme

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

我想给PDFBox一试。 其他解决scheme(如iTextPDF)由于许可条款/价格而不适合我们公司。

我有一个主要代码库的图书馆项目,以及参考图书馆项目的完整和精简的项目。

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

我能够成功import org.apache.pdfbox.pdmodel.PDDocument;图书馆,例如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文件,但得到了同样的问题。 我也在我的完整和精简的项目中添加了库的构buildpath,但我得到了同样的错误或日食不断崩溃与内存不足的错误。

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

谢谢,

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

我刚刚testing了PDFjet http://pdfjet.com/os/edition.html这是bsd许可(加上商业版本更多的function),这个示例代码(从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(); } 

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

Android的PDFBox的端口

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

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

我认为库文件不包括在apk文件中。 库类需要转换为dex文件,然后才能被检测到。请参考http://developer.android.com/guide/developing/building/index.html