`
wnzz95391511
  • 浏览: 126531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

itext生成PDF时生成图片的问题

阅读更多
最近需要做一个报告生成,需要生成PDF格式,就采用了itext。
在网上也学习了许多itext的使用,报告生成的程序也能跑起来了,却发现了一个问题:
在报告生成的过程中,生成的图片与段落文章并不是按照所调用的顺序生成的。
例如,我期望生成的格式:
标题一
图片一
标题二
图片二
标题三
图片三

由于图片二比较大,无法与上面的内容共用一个页面,那么图片二就自动被切割到下一页了。而上一页剩余的空白,由于标题三可以被容纳下,就把标题三放入了上一页。
生成结果如下:

标题一
图片一
标题二
标题三
图片二
图片三

在网上寻找了很久,可能用这的人也不多,也很多没有用到存储图片,没有找到这方面的问题。IT人,就要执着。凭着这份执着,我先是在itext的API中寻找有没有设置顺序的方法,找了Image类,Document类,PdfWriter类,没有寻找到结果。
我也想试试能不能把图片放入到Paragraph中,这样按照段落的形式,就不会出现逆序了。没有这样的方法。
只能到itext官方网站上,下载所有关于Image的例子看,终于发现了这个方法:
利用PdfWriter类的setStrictImageSequence(boolean ) 方法,便能解决问题。  苦难啊,一个小方法,找了那么久!
例子:摘自itext官方
public static void main(String[] args) {
        
        System.out.println("ImageSequence");
        
        // step 1: creation of a document-object
        Document document = new Document();
        
        try {
            // step 2:
            // we create a writer that listens to the document
            // and directs a PDF-stream to a file
            PdfWriter.getInstance(document, new FileOutputStream("notInSequence.pdf"));
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("inSequence.pdf"));
            writer.setStrictImageSequence(true);
            
            // step 3: we open the document
            document.open();
            
            // step 4:
            document.add(new Paragraph("1st image"));
            Image jpg = Image.getInstance("otsoe.jpg");
            document.add(jpg);
            document.add(new Paragraph("2nd image"));
            Image gif= Image.getInstance("getacro.gif");
            document.add(gif);
            document.add(new Paragraph("3rd image"));
            document.add(jpg);
            document.add(new Paragraph("4th image"));
            document.add(gif);
            document.add(new Paragraph("5th image"));
            document.add(jpg);
            document.add(new Paragraph("6th image"));
            document.add(gif);
            document.add(new Paragraph("7th image"));
            document.add(jpg);
        }
        catch(DocumentException de) {
            System.err.println(de.getMessage());
        }
        catch(IOException ioe) {
            System.err.println(ioe.getMessage());
        }
        
        // step 5: we close the document
        document.close();
    }

2
0
分享到:
评论
3 楼 java_base 2010-11-10  
谢谢了 郁闷了两天,顿悟了~
2 楼 wnzz95391511 2009-05-27  
sfh 写道

我觉得这个应该默认就为true,不然真叫人郁闷!

我也同意~
按照普通的思维应该也是顺序排列
1 楼 sfh 2009-05-27  
我觉得这个应该默认就为true,不然真叫人郁闷!

相关推荐

    使用iText生成PDF.doc

    以下是一些关于如何使用iText生成PDF的关键知识点: 1. **安装与获取iText**: 要使用iText,首先需要从其官方源代码托管平台SourceForge下载相应的.jar文件。基础的iText.jar提供了基本的PDF生成功能,但如果你...

    解决Itext生成PDF中文不换行的jar

    总之,处理Itext生成PDF时的中文换行问题,关键在于正确设置字体、编码和布局策略。如果遇到困难,不妨尝试更新库或使用其他替代方案。同时,保持对PDF生成技术的深入理解和实践,是提高PDF文档质量的关键。

    使用IText生成PDF和WORD文档

    document.add(new Paragraph("这是使用IText生成的PDF文档!")); document.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Document`对象...

    itext生成PDF图片文档

    iText生成PDF图片文档 iText是一个功能强大的Java类库,用于生成PDF文档。通过使用iText,我们可以轻松地生成PDF文档,包括图片、文字、表格等多种元素。本文将详细介绍如何使用iText生成PDF图片文档。 iText基本...

    itext将图片生成PDF(高清版)

    在IT行业中,生成PDF文档是常见的需求,尤其当需要将图片转换为便于分享和打印的格式时。`iText`是一个强大的Java库,专门用于创建、编辑和处理PDF文档。本教程将详细介绍如何使用`iText`将图片转换为高清PDF,并...

    itext生成pdf并通过证书进行签章

    本文将详细探讨如何使用iText库生成PDF并利用证书进行签章,确保文档的完整性和不可篡改性。 首先,iText是一个强大的开源Java库,专门用于创建、修改和处理PDF文档。它提供了一系列API,使得开发者可以方便地实现...

    iText生成PDF - 实例

    **iText生成PDF实例详解** 在信息技术领域,PDF(Portable Document Format)文件因其跨平台、易阅读和保真性等特点,被广泛应用于文档共享和交流。而iText是一款开源的Java库,它允许开发者轻松地创建、修改和操作...

    springboot使用itext生成pdf并保存到本地

    总结一下,要实现在Spring Boot应用中使用iText生成带有页眉、页码、水印、目录和二维码的PDF,你需要: 1. 引入iText及相关库。 2. 创建HTML页面并将其转换为PDF。 3. 定制PDF内容,包括添加页眉、页码和水印。 4. ...

    初学Itext 生成PDF 表格,条形码(一维),图片

    对于初学者来说,掌握使用iText生成PDF文档中的表格、一维条形码和图片是一项基本技能。此外,需要注重代码中字符串的准确性,避免由于扫描或输入错误导致的问题。熟练掌握iText库的使用,可以使开发者在处理PDF文件...

    Java IText生成PDF

    生成PDF文档时,还可以设置页眉和页脚。你可以使用`HeaderFooter`类或者`PdfPageEventHelper`来实现自定义的页眉和页脚。 总之,Java IText库提供了一套完整的API,使开发者能够灵活地控制PDF文档的生成过程。通过...

    权威Itext生成pdf

    【Itext生成PDF详解】 Itext是一个用于生成PDF文档的Java库,对于.NET环境,有对应的iTextSharp库。在创建PDF文档时,通常需要经过五个步骤,这在描述中已有详细阐述。以下是对这些步骤的详细解释: 1. **创建...

    使用itext生成PDF文件

    2. **创建PDF文档**:使用iText生成PDF的第一步是创建一个PdfWriter实例,然后基于该实例创建一个Document对象。例如: ```java Document document = new Document(); PdfWriter.getInstance(document, new ...

    itext生成PDF和word的两个demo

    里面包含两个demo实例,分别是itext-pdf生成pdf的,一个是itext-rtf生成word的。其中还附有学习笔记一份,上述生成的文档包括对字体的选择(本地或者iTextAsian里面的),有对图片的添加,有对样式的调整,有对table...

    使用itext生成pdf需要的jar包

    本篇将详细介绍如何使用iText生成PDF,以及所需的jar包。 首先,我们需要理解iText库的核心功能。iText允许开发者通过编程方式创建PDF文档,支持添加文本、图像、表格、链接、样式和布局等多种元素。它还提供了高级...

    itext生成PDF开发文档

    iText 是一个强大的 Java 库,用于生成和编辑 PDF 文档。在 Java 开发中,iText 提供了丰富的 API,使得开发者可以方便地在代码中创建 PDF 文件、添加文本、图像、表格、链接等元素,甚至进行数字签名和表单处理。在...

    itext生成pdf报表的小demo

    通过这个小demo,你可以学习到iText基本的PDF生成流程,包括创建文档、添加内容以及保存文件。在实际项目中,你可以根据需求添加更多的复杂元素和格式化选项,以生成更丰富的PDF报表。iText库提供了大量的API,可以...

    Itext生成PDF所需要的最全Jar包

    这个压缩包提供了使用Itext生成PDF所需的全部Jar包,确保你可以一次性导入所有必要的依赖。 1. **Itext核心组件**: - `kernel`:这是Itext的核心模块,提供了基本的PDF文档操作功能,如创建、打开、修改PDF文档,...

    itext5生成PDF(含水印文字及图片)

    itext5生成PDF(含水印文字及图片)的源代码,操作说明详细,代码完整可用。

    iText生成PDF文档demo

    iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,...

    itext 生成 pdf 文档

    Itext作为PDF生成库,帮助开发者在程序中实现这一功能。 ### 2. Itext的安装与集成 首先,你需要在项目中引入Itext库。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.itextpdf</...

Global site tag (gtag.js) - Google Analytics