我正在开发一款需要生成pdf报告的Android应用。但是我得到的report.pdf是0字节,无法打开。我之前使用iText 5.4.3并遇到了同样的问题。 (现在我使用droidText)。将droidText.0.5.jar导入lib文件夹并添加到Android私有库(位于构建路径中)。
这是我生成一个简单的hello世界的代码。
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public void onGeneratePDF(View v){
String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
dir = dir+"/Report/Report.pdf";
try {
Document document = new Document(PageSize.LETTER.rotate());
PdfWriter.getInstance(document, new FileOutputStream(dir));
document.open();
document.add(new Paragraph("test"));
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
的Manifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
和日志
08-08 10:06:59.636: W/System.err(16633): Helvetica not found as resource.
(The *.afm files must exist as resources in the package com.lowagie.text.pdf.fonts)
08-08 10:06:59.641: W/System.err(16633): ExceptionConverter: java.io.IOException:
The document has no pages.
任何人都可以提供帮助? 在此先感谢:))
答案 0 :(得分:1)
我是您的错误消息中提到的lowagie。请注意,DroidText是未经我认可的软件。它是由不隶属于我的人分发的,而我却不了解它。
它也基于被视为过时的iText版本。阅读http://lowagie.com/itext2
请使用iText的官方Android端口,例如iTextG:http://sourceforge.net/projects/itextg/
顺便说一下:错误告诉你文件Helvetica.afm不是你的APK包。您应该明确地将com/itextpdf/text/pdf/fonts/Helvetica.afm
添加到您的APK,以便iText可以找到它。