Android 坚持用iText创建pdf文件

Android 坚持用iText创建pdf文件,android,pdf,pdf-generation,itext,Android,Pdf,Pdf Generation,Itext,我正在尝试使用iText创建pdf文件 我将itextpdf-5.5.3.jar包括在我的项目中,并在本教程中包括以下步骤: 但当此代码出现以下错误时: 10-30 16:52:57.163: E/dalvikvm(28969): Could not find class 'com.itextpdf.awt.PdfPrinterGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createPrint

我正在尝试使用iText创建pdf文件

我将
itextpdf-5.5.3.jar
包括在我的项目中,并在本教程中包括以下步骤:

但当此代码出现以下错误时:

10-30 16:52:57.163: E/dalvikvm(28969): Could not find class 'com.itextpdf.awt.PdfPrinterGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createPrinterGraphicsShapes
10-30 16:52:57.213: E/dalvikvm(28969): Could not find class 'java.awt.image.PixelGrabber', referenced from method com.itextpdf.text.Image.getInstance
10-30 16:52:57.223: E/dalvikvm(28969): Could not find class 'java.awt.image.BufferedImage', referenced from method com.itextpdf.text.Image.getInstance
我在更简单的pdf上没有得到任何错误,但在创建更复杂的pdf(包括表格等)时,我得到了这些错误


你能给我一个线索吗

您遇到的问题不是由iText引起的,而是由Android开发者做出的特定设计选择造成的。如果您查看关于iText for Android(更广为人知的名称)的官方页面,您会发现有些类在Android上是被禁止的。这就是为什么使用iTextG jar而不是普通的iText jar很重要的原因:

已删除对不在上的任何类的引用

正如您从Android课程中了解到的,awt包(以及nio包等)中的所有类都不能在Android上使用。因此,您不能使用诸如
PdfGraphics2D
之类的类,因为该类是抽象
java.awt.Graphics2D
类的实现,该类不适用于Android和GAE


因此,要么是您错误地引入了AWT相关功能,要么是您没有使用iText的Android端口。

您遇到的问题不是由iText引起的,而是由Android开发者做出的特定设计选择造成的。如果您查看关于iText for Android(更广为人知的名称)的官方页面,您会发现有些类在Android上是被禁止的。这就是为什么使用iTextG jar而不是普通的iText jar很重要的原因:

已删除对不在上的任何类的引用

正如您从Android课程中了解到的,awt包(以及nio包等)中的所有类都不能在Android上使用。因此,您不能使用诸如
PdfGraphics2D
之类的类,因为该类是抽象
java.awt.Graphics2D
类的实现,该类不适用于Android和GAE


因此,要么你错误地引入了AWT相关功能,要么你没有使用iText的Android端口。

你完全正确。当我发现我在设置图像时出错了。我用以下代码设置它:Bitmap Bitmap=BitmapFactory.decodeResource(getBaseContext().getResources(),R.drawable.imageName);ByteArrayOutputStream out=新建ByteArrayOutputStream();压缩(bitmap.CompressFormat.JPEG,85,out);Image=Image.getInstance(out.toByteArray())@Bruno Lowagie,awt似乎仍在itextg中,当将itextg jar包含到项目中时,它生成了一个与awt相关的错误,就像这里,您完全正确。当我发现我在设置图像时出错了。我用以下代码设置它:Bitmap Bitmap=BitmapFactory.decodeResource(getBaseContext().getResources(),R.drawable.imageName);ByteArrayOutputStream out=新建ByteArrayOutputStream();压缩(bitmap.CompressFormat.JPEG,85,out);Image=Image.getInstance(out.toByteArray())@Bruno Lowagie,awt似乎仍在itextg中,当将itextg jar包含到项目中时,它生成了一个与awt相关的错误,如这里所示,