图片转pdf的java代码实现

一、实现方式

采用itextpdf和itext包,使用java代码,把图片转换为pdf.

支持文件格式:png,jpg, jpeg,gif

二、java代码实现

1、maven依赖

XML 复制代码
        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.lowagie/itext -->
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>4.2.1</version>
        </dependency>

2、java转换工具类

复制代码
ImgToPdfUtil.java
java 复制代码
package com.lan.fts.util;

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

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @Author lanhezhong
 * @Date 2022/3/14
 */
public class ImgToPdfUtil {

    private static Logger log = LoggerFactory.getLogger(ImgToPdfUtil.class);

    /**
     * 支持png jpg
     * @param source
     * @param target
     * @return
     */
    public static boolean imgToPdf(String source, String target){
        Document document = new Document();
        // 设置文档页边距
        document.setMargins(0, 0, 0, 0);
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(target);
            PdfWriter.getInstance(document, fos);
            // 打开文档
            document.open();
            // 获取图片的宽高
            Image image = Image.getInstance(source);
            float imageHeight = image.getScaledHeight();
            float imageWidth = image.getScaledWidth();
            // 设置页面宽高与图片一致
            Rectangle rectangle = new Rectangle(imageWidth, imageHeight);
            document.setPageSize(rectangle);
            // 图片居中
            image.setAlignment(Image.ALIGN_CENTER);
            // 新建一页添加图片
            document.newPage();
            document.add(image);
        } catch (Exception ioe) {
            log.error("图片转PDF失败,"+source+"-->"+target, ioe);
            return false;
        } finally {
            // 关闭文档
            try {
                document.close();
                fos.flush();
                fos.close();
            } catch (IOException e) {
                log.error("图片转PDF关闭文档失败,"+source+"-->"+target, e);
            }
        }
        return true;
    }
}

三、运行测试

java 复制代码
    public static void main(String[] args) {
        ImgToPdfUtil.imgToPdf("D:\\data\\out\\lanhezhong文件转换.jpg", "D:\\data\\out\\lanhezhong文件转换.jpg.pdf");
    }

结果:

总结:图片转pdf,其实就是用itext,把图片写入。然后再用itextpdf,把itext文档输出到pdf。可以在代码中设置页边距等信息。

***********************************************************************************************
author:蓝何忠
email:lanhezhong@163.com
***********************************************************************************************

相关推荐
珍朱(珠)奶茶16 天前
Spring Boot3整合FreeMark、itextpdf 5/7 实现pdf文件导出及注意问题
java·spring boot·后端·pdf·itextpdf
softbangong1 个月前
816-批量将图片分别转为pdf,文件夹下所有图片转为一个pdf
java·服务器·pdf·图片处理·图片转pdf·pdf工具·批量转换
芝士思维4 个月前
图片转 PDF:活动报名表拍照提交,高效又规范!
图片转pdf·pdf文件转换·免费pdf工具
芝士思维5 个月前
图片转 PDF 三种方法对比:聊天记录转 PDF 维权证据整理更方便
图片转pdf·pdf文件转换·免费pdf工具
嗯、.5 个月前
使用Itext9生成PDF水印,兼容不同生成引擎的坐标系(如: Skia、OpenPDF)
java·pdf·itextpdf·openpdf·坐标变换矩阵
December3105 个月前
【图文教程】图片转pdf,从入门到精通
pdf·图片·格式转换·图片转换·图片转pdf·图转pdf
wáng bēn9 个月前
【java17】使用 Word 模板导出带替换符、动态表格和二维码的文档
java·word·itextpdf
一头生产的驴10 个月前
java整合itext pdf实现自定义PDF文件格式导出
java·spring boot·pdf·itextpdf
一个小浪吴啊10 个月前
Java使用itext pdf生成PDF文档
java·python·pdf·itext·itextpdf
振宇i1 年前
java 富文本转pdf
java·富文本·itextpdf