为什么会出现此错误:未处理的异常:Android上的com.itextpdf.text.DocumentException?

时间:2016-08-08 06:57:14

标签: android itextg

我正在尝试在Android上创建PDF,但仅在按下按钮时显示一些信息,而不是将其存储在手机上。我收到了这个错误:

Unhandled exception: com.itextpdf.text.DocumentException

但我不明白为什么会这样。我有以下代码:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfDocument pdf = new PdfDocument();

PdfWriter pdfWriter = PdfWriter.getInstance(pdf, baos); //Error here
pdf.open();
pdf.add(new Paragraph("Hello world")); //Error here
pdf.close();

byte[] pdfByteArray = baos.toByteArray();

为什么我收到此错误?我错误地使用了itextg库吗?我找不到有关此错误的任何信息。

PS:我可以看到错误与itext而不是itextg有关,因此我不知道是否可以使用此事实产生错误。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这是错误的:

PdfDocument

在iText 5中,Document是仅由iText在内部使用的类。您应该使用try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); Document document = new Document(); PdfWriter pdfWriter = PdfWriter.getInstance(document, baos); //Error here document.open(); document.add(new Paragraph("Hello world")); //Error here document.close(); byte[] pdfByteArray = baos.toByteArray(); } catch (DocumentException de) { // handle the exception when something goes wrong on the iText level. // for instance: you add one element to another element that is incompatible } catch (IOException) { // handle the exception when something goes wrong on the IO level. // for instance: you try to write to a file in a folder that doesn't exist } 类来代替。

像这样调整你的代码:

try

在开始自己试验之前,请仔细阅读documentation。您可以在Q& As。{/ p>的Getting Started部分找到Hello World示例

实际问题是由于您没有catch / throws(或IOException)来处理DocumentException或{checkbox {1}}。

您的错误与iText(Java)和iTextG(Android)之间的差异完全无关。您正在使用抛出异常的方法。无论您是使用Java还是Android,都需要处理这些异常。

iText和iTextG之间的差别很小。没有任何理由可以单独使用iText和iTextG文档。