最近需要做一个报告生成,需要生成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();
}
分享到:
相关推荐
itext生成PDF图片文档
itext将图片生成PDF(高清版),可按比例缩放,三种可选的缩放方式,导出高清版的PDF,直接可导入使用的demo文件,内含jar包,无坑版!
里面包含两个demo实例,分别是itext-pdf生成pdf的,一个是itext-rtf生成word的。其中还附有学习笔记一份,上述生成的文档包括对字体的选择(本地或者iTextAsian里面的),有对图片的添加,有对样式的调整,有对table...
包括itext的jar包,以及对pdf进行签章所需要的jar包,
html渲染页面转换为pdf并设置页眉,页码,水印,目录,二维码
itext5生成PDF(含水印文字及图片)的源代码,操作说明详细,代码完整可用。
itext-pdf使用freemarker模板生成pdf时,样式错乱,乱折行问题解决,重写源码
iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,...
java 使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包),最全IText使用Demo,下载即可用
itext中文文档,生成PDF供前台打印及下载必备文档,生成pdf可纯代码生成,也可以利用模板进行标签替换,其中包含表格生成,图片替换及插入等的操作!
使用itextpdf将html模板生成pdf文档,poi导出excel,freemarker导出excel,pdf添加文字水印。
使用iText生成包含中文,图片,表格的PDF,包括中文文档还有demo源码
addImage(String templKey,String key,String imgFileName),向模板中一个表单域添加一张图片。 如果图片宽度或高度大于表单域,将自动按比例缩放到合适大小。 addHtml(String templKey,String key,String htmlStr)...
NULL 博文链接:https://lucifer-li6.iteye.com/blog/1637687
文档POI只支持往生成的中填入文本,对于图片根本就不支持。使用itext 生成rtf格式的直接保存为word
在已有pdf文件中,指定页及绝对位置添加图片(包含itextpdf.jar及实例)
itext 生成pdf的中文帮助文档,具体有:图片、块(下划线/删除线、上标/下标)、短句、段落等。
主要介绍了itext生成PDF设置页眉页脚的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
由于工作需要,小研究了下itext,在此和大家分享下,互相探讨,也希望能帮得上哪位朋友。...功能:java生成pdf,支持中文,可以插入图片,可以添加超链 接连到其他网址。 内附代码及详细说明和需要的jar包
**利用itext7、zxing、QRCore制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息,手机可以实现扫描获取二维码的信息,并进行验证你的解析是否正确。**