admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:接口的定义及作用是什么)

Java批量打印图片解决方案

有两个解决方法:直接打印一个图片集合;将多个图片放到一个文件里,再打印这个

文件。

一、直接打印图片集合

首先实现单个图片的打印(用到javax下的print包)。根据图片格式选择不同的打印

方式(支持gif、jpg、png格式的图片)。

其次实现多个图片的打印。用多次调用打印程序的方式实现图片的打印,但是会出现

问题:每次打印都是重复调用打印机,不能实现调用一次打印机就批量完成打印,最多实

现:一次批量打印,只取一次打印机,然后多次调用这个打印机打印单张图片。

考虑将几个图片在打印前合并成一个,然后打印出来。这种方式打印图片是将图片转

化成流的形式打印,有方法实现将几个图片流数据合并成一个流,然后将流数据打印出来。

问题又出现了:这种合并流的方式是将几个不同的图片合并到一个图片里,没有分页;同

时没有考虑这种流的合成方式对图片本身内容的影像(未验证)。

二、将多个图片合一,然后打印

从目标达成方面考虑,将图片合一有两种格式:word和pdf。但是考虑到是图片信息

在word中显的问题,特别是技术实现和效果方面考虑,最后选择将批量图片制作成pdf

格式的文件,交付打印。

目前关于将图片转换成pdf文件应用最广泛的是itext,iText是著名的开放源码的站

点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生

成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 这里也可以用纯

加java的方式将图片呢合并成pdf文件。

在长春人事档案目录里面,有实现图片转换为pdf的源代码,大家有用到的可以去这

个目录()里面找,里面实现了两个静态方法:

1)imageToPdf(String 需要转化为pdf的图片所在文件夹,String 新生成pdf文

件的路径)

要将图片文件转换为pdf文件要分三步走:

首先,得到需要转化的图片。通过传递过来的文件夹找到里面的图片文件。

其次,得到一个空的pdf文件。

先创建一个空的文件:Document doc = new Document(),其次定义这个文件的输

出地址tance(doc, new FileOutputStream(pdfFilePath));这样就创建

了一个空白的pdf模板。(),开启文档,使pdf模板可写。

最后,将图片放到pdf文件中

先根据图片位置,取得图片对象Image jpg =

tance(h()),再根据图片对象的长宽确定显示比例(有两种方

式,选了一种比较容易被接受的方式,这里的percent是百分比,取整,以宽度、长度作

为缩放的依据):int percent=getPercent(heigth, width),ercent(percent)。


本文标签: 图片 打印 文件 实现 方式