用droidtext生成0字节的pdf

时间:2013-08-08 14:47:26

标签: android pdf-generation itext android-droidtext

我正在开发一款需要生成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.

任何人都可以提供帮助? 在此先感谢:))

1 个答案:

答案 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可以找到它。