怎样在小程序里实现标题的更改
1045
2022-10-26
使用itextpdf将多个PDF文件合并为一个PDF文件
在开发某些业务系统的时候,可能会遇到需要合并PDF文件这样的需求,即将多个PDF文件合并成一个新的PDF文件,这个时候可以借助于 itextpdf 这个开源库进行实现,这个库在操作PDF方面还是很强大的。
下面通过具体的代码来演示。
1、引入依赖
目前 itextpdf 最新版本为 5.5.13.3,可以在 网站进行搜索。
2、代码实现
package com.magic.itextpdf;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
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 PdfUtils {
/**
* 合并PDF文件
* @param sourceFilePaths 需要合并的PDF文件路径列表
* @param destFilePath 合并后的新文件
*/
public static void mergePdfFile(List
合并PDF文件的本质其实就是新创建一个PDF文件,然后依次拷贝需要合并的PDF的每个页面,主要的关键类是 PdfCopy ,用于复制 PDF 页面,PdfCopy 类图如下:
::: hljs-center
:::
PdfCopy 类是一个比较常用的类,比如在旋转PDF、抽取PDF时都可能会用到,此处先不对 PdfCopy 类的源码做过多介绍,关于该类的更多应用可以阅读我的另外两篇文章:
使用itextpdf实现横板PDF文件与竖版PDF文件的相互转换 - 51CTO博客 使用itextpdf提取PDF文件中的任意页码 - 51CTO博客
3、测试验证
public static void main(String[] args) {
List
运行后,可以看到在 D:\Test 目录下生成了 test_merged.pdf 文件,其中test_1.pdf、test_2.pdf、test_3.pdf都是两页,合并后的文件 test_merged.pdf 为6页,如下:
::: hljs-center
:::
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~