当前位置: 首页 > web >正文

pdf多文件合并

【第三方工具】点我传送:https://www.ilovepdf.com/
【java功能实现】
导入jar包

<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.4</version></dependency>

代码

package com.czh.pdf_spring;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfReader;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.*;@SpringBootTest
class PdfSpringApplicationTests {/*** 指定文件夹* @throws FileNotFoundException*/@Testvoid test() throws IOException, DocumentException {//pdf文件夹String path = "D:/pdf";//绝对路径String outputPdf = "D:/test_pdf.pdf";//获取文件夹下的所有文件File[] files = new File(path).listFiles();if(files != null){//创建文档Document document = new Document();//文档名称PdfCopy copy = new PdfCopy(document, new FileOutputStream(outputPdf));//打开文档document.open();//写入类容for (File file : files) {//创建输入流FileInputStream inputStream = new FileInputStream(file);PdfReader reader = new PdfReader(inputStream);for (int i = 1; i <= reader.getNumberOfPages(); i++) {document.newPage();copy.addPage(copy.getImportedPage(reader, i));}reader.close();inputStream.close();}//关闭文档document.close();}System.out.println("pdf file successfully!");}
}

由于朋友工作需要,所以帮了下忙,链接作者是指定的文件名,朋友的pdf文件巨多,不方便,所以改成了指定文件夹的方式,
参考链接:https://blog.csdn.net/yuchenff/article/details/143170405

http://www.xdnf.cn/news/1037.html

相关文章:

  • Elasticsearch性能优化实践
  • SQL简介
  • SystemV-消息队列与责任链模式
  • 神经网络的 “成长密码”:正向传播与反向传播深度解析(四)
  • 联邦元学习实现个性化物联网的框架
  • 【开关电源】关于GaN反激电源开关噪声
  • 微信小程序拖拽排序有效果图
  • C++学习之类与对象
  • Redis的数据持久化是怎么做的?
  • 【无人机】问题分析。查看电机转速时,四个电机转速不一致,QGC中检测到电机转速不均衡
  • webpack详细打包配置,包含性能优化、资源处理...
  • 简述大疆无人机对接
  • Python爬虫从入门到实战详细版教程
  • 【AI提示词】投资策略专家
  • 蓝耘平台介绍:算力赋能AI创新的智算云平台
  • Android RecyclerView 多布局场景下的设计思考:SRP 与 OCP 的权衡与优化
  • 服务网格在DevOps中的落地:如何让微服务更智能、更稳定?
  • 597页PPT丨流程合集:流程梳理方法、流程现状分析,流程管理规范及应用,流程绩效的管理,流程实施与优化,流程责任人的角色认知等
  • Python+区块链:如何打造智能化资产管理系统?
  • [预备知识]3. 自动求导机制
  • 探秘 SenseGlove Nova 2力反馈手套,解锁 VR 键盘交互新方式
  • WebGis与WebGL是什么,两者之间的关系?
  • DeepSeek系列(5):助力数据分析
  • ClickHouse 设计与细节
  • linux sysfs使用cat无显示的原因:返回值未赋值
  • 一图掌握 C++ 核心要点
  • android Stagefright框架
  • 模数转换【1】AD7699
  • 【C++篇】string类的终章:深浅拷贝 + 模拟实现string类的深度解析(附源码)
  • 使用tabs组件搭建UI框架