【问题标题】:Why do I get a "Could not find PdfGraphics2D" error?为什么我会收到“找不到 PdfGraphics2D”错误?
【发布时间】:2013-06-14 06:39:37
【问题描述】:

我遇到了运行时异常。我想从 android 设备创建一个 PDF 文档。 为此,我使用了 iText 库。

这是我创建 PDF 的代码

Document document = new Document();
PdfWriter.getInstance(document, outStream);

document.open();
document.add(new Paragraph(data));

document.close();

代码运行良好。它正在成功创建 PDF。但它在运行时让我例外

06-14 10:09:20.491: W/dalvikvm(764): Unable to resolve superclass of Lcom/itextpdf/awt/PdfGraphics2D; (1251)
06-14 10:09:20.491: W/dalvikvm(764): Link of class 'Lcom/itextpdf/awt/PdfGraphics2D;' failed
06-14 10:09:20.491: E/dalvikvm(764): Could not find class 'com.itextpdf.awt.PdfGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createGraphics
06-14 10:09:20.491: W/dalvikvm(764): VFY: unable to resolve new-instance 480 (Lcom/itextpdf/awt/PdfGraphics2D;) in Lcom/itextpdf/text/pdf/PdfContentByte;
06-14 10:09:25.280: E/dalvikvm(764): Could not find class 'org.bouncycastle.cert.X509CertificateHolder', referenced from method com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj
06-14 10:09:25.280: W/dalvikvm(764): VFY: unable to resolve new-instance 1612 (Lorg/bouncycastle/cert/X509CertificateHolder;) in Lcom/itextpdf/text/pdf/PdfReader;

我已经完成了清理和构建,将 jar 添加到 libs 文件夹并使其在订单和导出时被选中,过去 2 天我做了很多研究。但没有任何帮助。 据我所知,应该有这些可能性。

  • 外部 jar 未正确加载
  • 类 PdfGraphics2D 扩展了 java.awt.Graphics2D,这在 android 中不可用

任何帮助都将是可观的。

【问题讨论】:

标签: android pdf pdf-generation itext


【解决方案1】:

您发现PdfGraphics2D 扩展了java.awt.Graphics2D,并且您已经知道Graphics2D 在Android 上是一个禁止类。

您还遇到了与 BouncyCastle 相关的问题。

这告诉我您使用的是 iText 的 Java 版本,而不是 Android port。在 Android port 中,我们将 BouncyCastle 替换为 SpongyCastle(在 Android 上使用加密时建议使用),并删除了对禁止类的所有引用(例如在 awtnio 包中)。

请改用iText的Android port

【讨论】:

  • 我尝试使用安卓版本。现在也不例外。但文件没有打开。它说“打开文档时出错”
  • 在文本编辑器中打开文件时,字节是什么样的?
  • 我该怎么做?当我在模拟器中运行时
  • 嗯...文件保存在某个地方,不是吗?如果没有,你怎么能打开文档?也许这就是问题所在:Adobe Reader 无法打开在任何地方都不存在的文档。
  • 文件存在。但问题是,里面没有内容。
【解决方案2】:

如果你在android中使用iText pdf库,那么只需在你的Proguard文件中写这三行以避免警告,

-dontwarn com.itextpdf.text.pdf.**
-dontwarn org.bouncycastle.**
-dontwarn com.sun.mail.**

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2015-09-06
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多