我正在尝试打开现有的 pdf 文件,然后从 Android 应用程序中将另一个页面添加到 pdf 文档中。在添加的页面上,我需要添加一些文本和图像。
我想尝试一下 PDFBox。由于许可条款/价格的原因,iTextPDF 等其他解决方案不适合我们公司。
我有一个带有主代码库的库项目,还有引用该库项目的完整项目和精简项目。
我已经从以下位置下载了 jarhttp://pdfbox.apache.org/download.html http://pdfbox.apache.org/download.html并将其复制到库项目 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 因内存不足错误而不断崩溃。
谁能告诉我我做错了什么?我下载了错误的文件吗?我正确导入了吗?
Thanks,
PDFBox使用java awt和swing,即使对于非UI任务,我也尝试过删除引用,但文件很多,而且我删除了太多东西
我刚刚测试了 PDFjethttp://pdfjet.com/os/edition.html 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();
}
我在这里找到了链接http://java-source.net/open-source/pdf-libraries http://java-source.net/open-source/pdf-libraries
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)