图片转PDF

该代码示例展示了如何利用Java的LowagieiText库将指定文件夹中的图片转换成一个PDF文件。程序首先创建一个Document对象,然后使用PdfWriter写入到指定的PDF文件中,对每个图片进行中心对齐并按比例缩放,最后关闭文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片转PDF小程序

代码

package com;

import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
import org.junit.jupiter.api.Test;

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

/**
 * 只需要根据情况更改FILEPATH 和 imagesPath
 */
public class Test06 {
    /**
     * FILEPATH 需要有一个E盘下的pdf文件夹 当然也可以是其它的 把这里改了就行
     */
    private static final String FILEPATH = "E:\\pdf\\";
    /**
     * imagesPath 图片存放位置 当然也可以是其它的 把这里改了就行
     */
    private static final String imagesPath ="E:\\note\\JavaSE\\01 Java语法基础(第一阶段)";

    @Test
    public void main65() {
        imagesToPdf("我的pdf文件", imagesPath);
    }
    /**
     * @param fileName   生成pdf文件
     * @param imagesPath 需要转换的图片路径的数组
     */
    public void imagesToPdf(String fileName, String imagesPath) {
        try {
            fileName = FILEPATH + fileName + ".pdf";
            File file = new File(fileName);
            if (!file.exists()) {
                file.createNewFile();
            }
            // 第一步:创建一个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);
                    img.scalePercent(100);
                    // 根据图片大小设置页面,一定要先设置页面,再newPage(),否则无效
                    document.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
                    document.newPage();
                    document.add(img);
                }
            }
            // 第五步:关闭文档。
            document.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

所需依赖

<dependency>
    <groupId>com.lowagie</groupId>
    <artifactId>itext</artifactId>
    <version>2.1.7</version>
</dependency>
<!--随便找个测试依赖就行-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <version>2.7.4</version>
</dependency>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值