Java doc等文件生成PDF、多个PDF合并

之前写过一遍文章是 图片生成PDF。

今天继续来对 doc等文件进行pdf合并以及多个pdf合并为一个pdf。

兄弟们,还是开箱即用。

1、doc生成pdf

依赖

xml 复制代码
 <!--  doc生成pdf  -->
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-words</artifactId>
            <version>20.4</version>
        </dependency>

示例代码

java 复制代码
import com.aspose.words.Document;
import com.aspose.words.SaveFormat;
import lombok.extern.slf4j.Slf4j;
import java.io.*;

/**
 * doc生成pdf 依靠依赖 aspose-words
 * @Author hanmw
 **/
@Slf4j
public class Doc2Pdf {
    public static void main(String[] args) throws Exception {
        doc2pdf(null,null);
    }

    /**
     * doc 生成 pdf
     * @param inPath doc路径
     * @param outPath pdf路径
     */
    public static void doc2pdf(String inPath, String outPath) {
        inPath = "D:\\doc\\生成word、生成pdf、合并pdf\\维修报告.docx";
        outPath = "D:\\doc\\生成word、生成pdf、合并pdf\\12.pdf";
        FileOutputStream os = null;
        try {
            // 新建一个空白pdf文档
            File file = new File(outPath);
            os = new FileOutputStream(file);
            // 读取doc文档
            Document doc = new Document(inPath);
            // 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,EPUB, XPS, SWF 相互转换
            doc.save(os, SaveFormat.PDF);

            System.out.println("doc生成pdf成功!");
        } catch (Exception e) {
            log.error("doc2pdf failed", e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    log.error("关闭os失败", e);
                }
            }
        }
    }

}

2、多个pdf合并为一个pdf

依赖

xml 复制代码
     <!--  适用于 多个pdf合并 -->
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.28</version>
        </dependency>

示例代码

java 复制代码
import lombok.extern.slf4j.Slf4j;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
import java.io.File;
import java.io.IOException;

/**
 * 合并PDF 依靠依赖 org.apache.pdfbox
 * @Author hanmw
 **/
@Slf4j
public class PdfMergeController {
    public static void main(String[] args) {
        mergePdf();
    }


    public static void mergePdf(){
        // 定义要合并的PDF文件列表
        File[] pdfFiles = {
                new File("D:\\SoftWare\\图片\\测试pdf\\file_one.pdf"),
                new File("D:\\SoftWare\\图片\\测试pdf\\file_two.pdf"),
                new File("D:\\SoftWare\\图片\\测试pdf\\file_three.pdf")
        };

        // 定义合并后的输出文件
        String mergeFilePath = "D:\\SoftWare\\图片\\测试pdf\\test\\merged.pdf";
        //文件地址的目录  是否存在,不存在新建目录
        File file = new File(mergeFilePath);
        if(!file.getParentFile().exists()){
            file.getParentFile().mkdirs();
        }

        try {
            // 创建PDF合并实用程序
            PDFMergerUtility pdfMerger = new PDFMergerUtility();

            // 将所有要合并的文件添加到实用程序中
            for (File pdfFile : pdfFiles) {
                pdfMerger.addSource(pdfFile);
            }

            // 设置合并后的输出文件
            pdfMerger.setDestinationFileName(mergeFilePath);

            // 执行合并操作
            pdfMerger.mergeDocuments(null);

            System.out.println("PDF合并成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
相关推荐
我命由我1234512 分钟前
Android 控件 - CardView(快速实现圆角)
android·java·java-ee·kotlin·android studio·android-studio·android runtime
2601_9638699516 分钟前
【计算机毕业设计】基于Java的潮牌购物网站系统的设计与实现
java·开发语言·课程设计
203号居民23 分钟前
LeetCode hot 100 —560. 和为 K 的子数组
java·算法·leetcode
名字还没想好☜40 分钟前
Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流
开发语言·后端·golang·go·iphone
浪客川41 分钟前
使用 IDEA 生成API文档
java·ide·intellij-idea
郝学胜-神的一滴1 小时前
Qt 高级编程 042:进度条从入门到自定义美化
开发语言·c++·qt·软件开发·用户界面
鸿芯微控科技1 小时前
压电纳米定位分辨率怎么测?噪声、带宽、最小可检测位移与Python分析
开发语言·python·噪声分析·压电执行器·纳米定位·位移测量
会编程的土豆1 小时前
从「锁」到「时间」:后端里几个容易混的概念
java·开发语言·数据库·goland
上下求索,莫负韶华1 小时前
笔记-数据库事务和java事务和切面
java·数据库·笔记
@小匠1 小时前
Spring Boot Nacos绑定 Map 时中文 key 导致启动失败:一次从复现到源码的排查实录
java·开发语言·前端