【问题标题】:generate 0 byte pdf with droidtext用 droidtext 生成 0 字节的 pdf
【发布时间】:2013-08-10 08:19:17
【问题描述】:

我正在开发一个需要生成 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();
        }
    }

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.

有人可以帮忙吗? 在此先感谢:))

【问题讨论】:

    标签: android pdf-generation itext android-droidtext


    【解决方案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 可以找到它。

    【讨论】:

    • 嗨 Lowagie,我之前使用的是 iTextG,但同样的问题。顺便说一句,这可能是因为 iText 需要许可证吗?
    • 不,如解释:您需要确保 com/itextpdf/text/pdf/fonts/*.afm (iTextG) 或 com/lowagie/text/pdf/fonts/*.afm (DroidText) 与您的 APK 捆绑在一起。请检查您的 APK,您会发现它们不见了!这不是 iText 问题,这是关于如何将非类文件与 APK 捆绑在一起的问题。
    • 解决了,主要是导入库的方式:)) Thx Lowagie
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2012-07-05
    • 2012-04-16
    相关资源
    最近更新 更多