文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java如何合并、拆分PDF文档

2023-06-02 15:12

关注

这篇文章主要介绍Java如何合并、拆分PDF文档,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

使用工具:Free Spire.PDF for Java (免费版)

Jar文件获取及导入:

方法1通过官网下载包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序。

方法2可通过maven仓库安装导入到maven项目。

Java 代码示例

一、合并

 1. 合并PDF文档

import com.spire.pdf.*;import java.io.*; public class Merge2 {     public static void main(String[] args) throws Exception {                 String outputFile = "output/mergeFilesByStream.pdf";        FileInputStream stream1 = new FileInputStream(new File("sample1.pdf"));        FileInputStream stream2 = new FileInputStream(new File("sample2.pdf"));        FileInputStream stream3 = new FileInputStream(new File("sample3.pdf"));        //加载PDF示例文档        InputStream[] streams = new FileInputStream[]{stream1, stream2, stream3};         //合并PDF文档        PdfDocumentBase doc = PdfDocument.mergeFiles(streams);         //保存文档        doc.save(outputFile);        doc.close();    }}

合并前:

Java如何合并、拆分PDF文档

合并后:

Java如何合并、拆分PDF文档

 2. 合并PDF页面

import com.spire.pdf.*; import com.spire.pdf.graphics.PdfBlendMode; import com.spire.pdf.graphics.PdfTemplate;  import java.awt.geom.Point2D;  public class MergePages {     public static void main(String[] args) {         //加载两个PDF文档         PdfDocument pdf1 = new PdfDocument();         pdf1.loadFromFile("test1.pdf");         PdfDocument pdf2 = new PdfDocument();         pdf2.loadFromFile("test2.pdf");          //根据pdf1的第一页绘制模板         PdfTemplate template = pdf1.getPages().get(0).createTemplate();          //获取pdf2的第二页         PdfPageBase page = pdf2.getPages().get(1);         //设置透明度和重叠样式         page.getCanvas().setTransparency(1f,1f, PdfBlendMode.Normal);          //将pdf1的第一页内容写入pdf2的第二页中的指定位置         page.getCanvas().drawTemplate(template,new Point2D.Float(0,350));          //保存pdf2         pdf2.saveToFile("MergePages.pdf",FileFormat.PDF);         pdf2.dispose();     } }

合并前:

Java如何合并、拆分PDF文档

合并后:

Java如何合并、拆分PDF文档

二、拆分

测试文档如下:

Java如何合并、拆分PDF文档

 1. 按每一页拆分

import com.spire.pdf.*; public class SplitPDF1 {     public static void main(String[] args)     {     //加载需要拆分的PDF文档    PdfDocument doc = new PdfDocument();    doc.loadFromFile("test.pdf");     //调用方法split()将PDF文档按每一页拆分为单独的文档    doc.split("output/splitDocument-{0}.pdf", 0);    doc.close();     }}

拆分结果:

Java如何合并、拆分PDF文档

 2. 按指定页数范围拆分

import com.spire.pdf.*;import com.spire.pdf.graphics.PdfMargins; import java.awt.geom.Point2D; public class SplitPDF2 {     public static void main(String[] args)    {         //加载需要拆分的PDF文档        PdfDocument doc = new PdfDocument();        doc.loadFromFile("test.pdf");         //新建第1个PDF文档1        PdfDocument newpdf1 = new PdfDocument();        PdfPageBase page;         //将原PDF文档的第1、2页拆分,并保存到newpdf1        for(int i = 0;i<2;i++)        {            page = newpdf1.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));            doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));        }        newpdf1.saveToFile("split/result1.pdf");         //新建第2个PDF文档        PdfDocument newpdf2 = new PdfDocument();         //将原PDF文档的第3、4页拆分,并保存到newpdf2        for(int i = 2;i<4;i++)        {            page = newpdf2.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));            doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));        }        newpdf2.saveToFile("split/result2.pdf");    }}

拆分结果:

Java如何合并、拆分PDF文档

以上是“Java如何合并、拆分PDF文档”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯