首页 新闻 会员 周边 捐助

Android Itext 生成PDF文档时总遇到各种错误

0
悬赏园豆:50 [已关闭问题] 关闭于 2014-01-17 17:55

本人android 小白,在用Itext生成PDF文档时遇到了各种错误: 不知道有木有遇到古同样问题,都是这么解决的?

第一种尝试的错误:

java.lang.NoClassDefFoundError: com.itextpdf.text.Document

这个我倒是知道是jar包导入的问题 后面的我在尝试后的结果我就无语了 

第二种尝试的错误:

Could not find class 'com.itextpdf.awt.PdfGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createGraphics

Could not find class 'com.itextpdf.awt.PdfGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createGraphics

Could not find class 'com.itextpdf.awt.PdfPrinterGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createPrinterGraphicsShapes

ExceptionConverter: java.io.IOException: No message found for the.document.has.no.pages

 

at com.itextpdf.text.pdf.PdfPages.writePageTree(PdfPages.java:113)

这个错误我就不知道是怎么回事了  是我没有给文档设置页么? 也不对啊   昨天晚上我用java实现的时候就直接可以的。。。。  真是不知怎么回事了 还有

第三种尝试的错误:

VFY: unable to find class referenced in signature (Ljava/awt/Color;)

Unable to resolve superclass of Lcom/lowagie/text/pdf/ExtendedColor; (1685)

Link of class 'Lcom/lowagie/text/pdf/ExtendedColor;' failed

VFY: unable to find class referenced in signature (Ljava/awt/Color;)

 

Could not find class 'java.awt.Color', referenced from method com.lowagie.text.pdf.PdfDocument.writeLineToContent

最后的这个错误我把缺少的java.wat 以及lowagie/text/pdf/ExtendedColor等一些包都导进去了但是还是会有错误!

 

真的是不知道该如何是好了 。。。  有木有大神能帮帮小弟一把??  或者有兴趣一起研究一下

public void createPDF(FileOutputStream fos)
    {
        Document document = new Document(PageSize.A4);
        try
        {
            PdfWriter writer = PdfWriter.getInstance(document, fos);
            document.open();
            document.setPageCount(TRIM_MEMORY_MODERATE);
            document.addCreationDate();
            document.addCreator("助手");
            document.add(new Paragraph("this is my first android create PDF!"));
            document.close();
            System.out.println("PDF文档已经建立! ");
        } catch (DocumentException e)
        {
            e.printStackTrace();
        }
    }

 

另外 itext for android 与itext for java 哪一个在android里更好用  原理上不都可行么?

 

真心求助  急! 急!  

  不胜感激!!

Mauiie_娢的主页 Mauiie_娢 | 初学一级 | 园豆:126
提问于:2014-01-17 00:24
< >
分享
所有回答(2)
0

这些错误有些是因为我导包的时候不注意犯的错  有些是因为没有指定pdf生成时候的字体  没有指定字体在生成的时候就会报下面的错误:

Could not find class 'com.itextpdf.awt.PdfGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createGraphics

Could not find class 'com.itextpdf.awt.PdfGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createGraphics

Could not find class 'com.itextpdf.awt.PdfPrinterGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createPrinterGraphicsShapes

ExceptionConverter: java.io.IOException: No message found for the.document.has.no.pages

 

而正确的导入第三方jar包的方式我也总结了一下:

首先在工程目录下创建一个文件夹(比如叫jar....android自动生成的是lib,把jar包都导进去),然后右击工程选择properties->Java Build Path->libraries->Add Library...->User Library->User Libraries->New...(随便取个名字)->Add jar>

把刚开始放入新创建的那个文件或者libs下的jar包导入就行了 

 

在设置深层pdf字体的时候也要注意  因为字体我是从电脑里考进去的,一开始我只放在了 asset包下 但是不好取出来   干脆就放在了sdcard下  然后再取出来:放的方式我就是直接导入到虚拟机了  估计最后程序写完的时候要自己定义一个导入的方法

这里有一篇blog写的很好给遇到同样问题的童鞋推荐一xia:

http://my.eoe.cn/isnull/archive/1996.html

我解决问题的方法  差不多就是参照了这篇blog

Mauiie_娢 | 园豆:126 (初学一级) | 2014-01-17 17:54
0

最近用到了个很好用的Android Java控件推荐给楼主,名字是Spire.PDF for Android via Java。可通过此链接下载获取。https://www.e-iceblue.cn/Downloads/pdf-for-android-via-java.html 产品包里有功能代码示例,操作简单便捷易上手。

Tina_Tang | 园豆:346 (菜鸟二级) | 2021-05-18 17:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册