0

我正在开发一个需要生成 pdf 报告的 Android 应用程序。但是我得到的report.pdf是0字节,无法打开。我之前使用过 iText 5.4.3 并且遇到了同样的问题。(现在我使用 droidText)。droidText.0.5.jar 被导入 lib 文件夹并添加到 Android Private Libraries(位于构建路径上)。

这是我生成一个简单的hello world的代码。

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();
        }
    }

清单.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.

任何人都可以帮忙吗?提前致谢 :))

4

1 回答 1

1

我是您的错误消息中提到的低调。请注意,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 可以找到它。

于 2013-08-08T15:03:45.540 回答