Java代码如何合并PDF文件呢?

乔欣 Java经验 发布时间:2023-02-17 16:48:51 阅读数:12588 1
下文笔者讲述java代码合并PDF文件的方法分享,如下所示

合并PDF的实现思路

1.引入相应的MAVEN依赖
2.使用PdfCopy相关方法即可实现pdf合并
 
maven 依赖
<!-- https://mvnrepository.com/artifact/com.lowagie/itext -->
<dependency>
	<groupId>com.lowagie</groupId>
	<artifactId>itext</artifactId>
	<version>4.2.2</version>
</dependency>

package com.java265.Controller;

import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;

public class MergeFile {
    public static void main(String[] args) {
        String[] files = {  "D:\\1.pdf", "D:\\2.pdf" , "D:\\3.pdf"};
        String savepath = "D:\\temp\\tempNew.pdf";
        Boolean bool = mergePdfFiles(files, savepath);
        System.out.println(bool);
    }

    /*
     * 合并pdf文件 
     * @param files 要合并文件数组(绝对路径如{ "D:\\1.pdf", "D:\\2.pdf" ,
     * "D:\\3.pdf"}),合并的顺序按照数组中的先后顺序,如2.pdf合并在1.pdf后。
     * @param newfile 合并后新产生的文件绝对路径,如 D:\\temp\\tempNew.pdf,
     * @return boolean 合并成功返回true;否则,返回false
     * 
     */

    public static boolean mergePdfFiles(String[] files, String newfile) {
        boolean retValue = false;
        Document document = null;
        try {
            document = new Document(new PdfReader(files[0]).getPageSize(1));
            PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile));
            document.open();
            for (int i = 0; i < files.length; i++) {
                PdfReader reader = new PdfReader(files[i]);
                int n = reader.getNumberOfPages();
                for (int j = 1; j <= n; j++) {
                    document.newPage();
                    PdfImportedPage page = copy.getImportedPage(reader, j);
                    copy.addPage(page);
                }
            }
            retValue = true;
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            System.out.println("执行结束");
            document.close();
        }
        return retValue;
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16766243755826.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者