How to add PDFBox to an Android project or suggest alternative
我试图打开一个现有的pdf文件,然后从Android应用程序中将另一个页面添加到pdf文档中。在添加的页面上,我需要添加一些文本和图像。
我想尝试一下PDFBox。由于许可条款/价格,其他解决方案(例如iTextPDF)不适用于我们公司。
我有一个包含主要代码库的图书馆项目,还有引用该图书馆项目的完整和精简项目。
我已经从http://pdfbox.apache.org/download.html下载了jar,并将其复制到库项目lib文件夹中,并将pdfbox-app-1.6.0.jar文件添加到了Java构建路径库中。
我能够成功导入库,例如
E/AndroidRuntime(24451): java.lang.NoClassDefFoundError:
org.apache.pdfbox.pdmodel.PDDocument
我在某处读到从1.5版本开始的PDFBox不适用于Android,因此我尝试下载pdfbox-app-1.4.0.jar文件,但遇到了同样的问题。我还将该库添加到我的完整项目和lite项目的构建路径中,但是我遇到了相同的错误或Eclipse,并因内存不足错误而崩溃。
谁能告诉我我在做什么错?我下载了错误的文件吗?我正确导入了吗?
谢谢,
PDFBox使用java awt和swing,即使对于非UI任务,我也尝试删除了引用,但是有很多文件,并且删除了太多的东西
我刚刚测试了PDFjet http://pdfjet.com/os/edition.html它是bsd许可的(加上具有更多功能的商业版本),使用此示例代码(摘自Example_03.java)可以将jpeg转换为 pdf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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(); } |
我在这里找到了链接http://java-source.net/open-source/pdf-libraries
Android的PDFBox端口
您可以在此处免费使用PDFBox的Android端口:
https://github.com/TomRoush/PdfBox-Android
我认为库类文件不包含在apk文件中。 需要将库类转换为dex文件,然后才将其检测到。请参考http://developer.android.com/guide/developing/building/index.html