图片转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
***********************************************************************************************

相关推荐
芝士思维3 天前
图片转 PDF 三种方法对比:聊天记录转 PDF 维权证据整理更方便
图片转pdf·pdf文件转换·免费pdf工具
嗯、.15 天前
使用Itext9生成PDF水印,兼容不同生成引擎的坐标系(如: Skia、OpenPDF)
java·pdf·itextpdf·openpdf·坐标变换矩阵
December31019 天前
【图文教程】图片转pdf,从入门到精通
pdf·图片·格式转换·图片转换·图片转pdf·图转pdf
wáng bēn5 个月前
【java17】使用 Word 模板导出带替换符、动态表格和二维码的文档
java·word·itextpdf
一头生产的驴5 个月前
java整合itext pdf实现自定义PDF文件格式导出
java·spring boot·pdf·itextpdf
一个小浪吴啊6 个月前
Java使用itext pdf生成PDF文档
java·python·pdf·itext·itextpdf
振宇i8 个月前
java 富文本转pdf
java·富文本·itextpdf
盲敲代码的阿豪1 年前
利用python将图片转换为pdf格式的多种方法,实现批量转换,内置模板代码,全网最全,超详细!!!
python·pdf·图片转pdf
warrah1 年前
itextpdf打印A5的问题
itextpdf
2401_856926931 年前
图片转PDF技巧揭秘:四款高效工具推荐!
学习·pdf·图片转pdf·图片转pdf工具