Java实现图片转pdf

本文详细介绍如何使用Java通过com.lowagie.text和com.itextpdf库将多张图片转换为PDF文件,并演示了如何在PDF中实现图片的置顶效果。包括所需依赖JAR包、工具类实现和具体操作步骤。
摘要由CSDN通过智能技术生成

Java实现图片转pdf 置顶@@@@


前言

:Java实现图片转pdf

提示:以下是本篇文章正文内容,下面案例可供参考

一、依赖JAR

<dependency>
	 <groupId>org.eclipse.birt.runtime.3_7_1</groupId>
	 <artifactId>com.lowagie.text</artifactId>
	 <version>2.1.7</version>
 </dependency>
 <dependency>
	 <groupId>com.itextpdf</groupId>
	 <artifactId>itextpdf</artifactId>
	 <version>5.5.7</version>
 </dependency>

二、工具类

package com.example.demo.utils;

import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;

/**
 * @Author HOUJL
 * @Date 2021/10/29
 * @Description:Java实现图片转pdf 方式一
 * 依赖包:<dependency>
 * <groupId>org.eclipse.birt.runtime.3_7_1</groupId>
 * <artifactId>com.lowagie.text</artifactId>
 * <version>2.1.7</version>
 * </dependency>
 * <dependency>
 * <groupId>com.itextpdf</groupId>
 * <artifactId>itextpdf</artifactId>
 * <version>5.5.7</version>
 * </dependency>
 */
public class ImageToPDF {

    private static final Logger LOGGER = LoggerFactory.getLogger(ImageToPDF.class);

    /**
     * 多张图转为pdf
     * param imageFolderPath
     * param pdfPath
     */
    public static void toPdf(String imageFolderPath, String pdfPath) {
        try {
            long start = System.currentTimeMillis();
            ArrayList<String> list = new ArrayList<>();
            // 图片地址
            String imagePath = null;
            FileOutputStream fos = new FileOutputStream(pdfPath);
            // 创建文档
            Document doc = new Document(null, 20, 20, 20, 20);
            // 写入PDF文档
            PdfWriter.getInstance(doc, fos);
            // 读取图片流
            BufferedImage img;
            // 实例化图片
            Image image;
            // 获取图片文件夹对象
            File file = new File(imageFolderPath);
            File[] files = file.listFiles();
            // 循环获取图片文件夹内的图片
            for (File file1 : files) {
                if (file1.getName().endsWith(".png") || file1.getName().endsWith(".jpg") || file1.getName().endsWith(".gif")
                        || file1.getName().endsWith(".jpeg") || file1.getName().endsWith(".tif")) {
                    imagePath = imageFolderPath + file1.getName();
                    list.add(file1.getName());
                    // 读取图片流
                    img = ImageIO.read(new File(imagePath));
                    // 根据图片大小设置文档大小
                    doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
                    // 实例化图片
                    image = Image.getInstance(imagePath);
                    // 添加图片到文档
                    doc.open();
                    doc.add(image);
                }
            }
            LOGGER.info("fileName is list={}", list);
            // 关闭文档
            doc.close();
            long endTime = System.currentTimeMillis();
            int time = (int) ((endTime - start) / 1000);
            LOGGER.info("用时:{}:秒!",time);
        } catch (Exception e) {
            LOGGER.error(e.getMessage());
        }
    }

    public static void main(String[] args) {
        toPdf("D:\\pacsFile\\", "D:\\pdfile\\hebing4.pdf");
    }
}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值