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

相关推荐
wáng bēn1 个月前
【java17】使用 Word 模板导出带替换符、动态表格和二维码的文档
java·word·itextpdf
一头生产的驴1 个月前
java整合itext pdf实现自定义PDF文件格式导出
java·spring boot·pdf·itextpdf
一个小浪吴啊2 个月前
Java使用itext pdf生成PDF文档
java·python·pdf·itext·itextpdf
振宇i4 个月前
java 富文本转pdf
java·富文本·itextpdf
盲敲代码的阿豪7 个月前
利用python将图片转换为pdf格式的多种方法,实现批量转换,内置模板代码,全网最全,超详细!!!
python·pdf·图片转pdf
warrah9 个月前
itextpdf打印A5的问题
itextpdf
2401_856926931 年前
图片转PDF技巧揭秘:四款高效工具推荐!
学习·pdf·图片转pdf·图片转pdf工具
AscendKing1 年前
java实现图片转pdf
pdf·图片转pdf
慕容雪_1 年前
itextpdf-PdfStamper写入文件流到ByteArrayOutputStream注意事项
pdf·itextpdf
Hfengxiang1 年前
PDF转图片工具
python·pdf·pdf转图片·图片转pdf