java 多图片转换PDF

Posted 小泽泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多图片转换PDF相关的知识,希望对你有一定的参考价值。

  公司提了个小优化:因为有些图片是分开上传(十多张),然后需要打印,需要提供一次性能直接打印,而无需每张图片保存在打印(上传人员跟打印人员不是同一拨人),所以就希望能把多张图片全转换在一个PDF文件里。

  这里使用到了个工具类:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.10</version>
</dependency>

  总的来说,还是比较简单:

package com.example.zgz.demo;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;

/**
 * @author zhangguangze
 * @version v1.0
 * @project: zgz
 * @description: 这里描述类的用处
 * @copyright: ? 2018
 * @company:
 * @date 2018/5/16 14:23
 */
public class PdfUtil {

    private static String FILEPATH = "F:\\testpdf\\pdf\\";

    /**
     *
     * @param fileName
     *            生成pdf文件
     * @param imagesPath
     *            需要转换的图片路径的数组
     */
    public static void imagesToPdf(String fileName, String imagesPath) {
        try {
            fileName = FILEPATH+fileName+".pdf";
            File file = new File(fileName);
            // 第一步:创建一个document对象。
            Document document = new Document();
            document.setMargins(0, 0, 0, 0);
            // 第二步:
            // 创建一个PdfWriter实例,
            PdfWriter.getInstance(document, new FileOutputStream(file));
            // 第三步:打开文档。
            document.open();
            // 第四步:在文档中增加图片。
            File files = new File(imagesPath);
            String[] images = files.list();
            int len = images.length;

            for (int i = 0; i < len; i++)
            {
                if (images[i].toLowerCase().endsWith(".bmp")
                        || images[i].toLowerCase().endsWith(".jpg")
                        || images[i].toLowerCase().endsWith(".jpeg")
                        || images[i].toLowerCase().endsWith(".gif")
                        || images[i].toLowerCase().endsWith(".png")) {
                    String temp = imagesPath + "\\" + images[i];
                    Image img = Image.getInstance(temp);
                    img.setAlignment(Image.ALIGN_CENTER);
                    // 根据图片大小设置页面,一定要先设置页面,再newPage(),否则无效
                    document.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
                    document.newPage();
                    document.add(img);
                }
            }
            // 第五步:关闭文档。
            document.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void main(String[] args)
    {
        String name = "20001543";
        String imagesPath = "F:\\testpdf\\image";
        imagesToPdf(name, imagesPath);
    }
}

 

以上是关于java 多图片转换PDF的主要内容,如果未能解决你的问题,请参考以下文章

用java实现pdf转jpg图片的全代码,我这里附上参考代码。

用java 实现 word、jpg转PDF

icepdf将PDF电子发票转换成PNG图片出现金额错行(java)?

用Java将excel/ppt转换成pdf或图片怎么实现,有代码吗?在网上找不到正常的代码

python,多图片转换成pdf文件

怎提取pdf中的图片? java代码! 望高手解决!谢