首页 > 编程语言 >Java 拆分PDF文档

Java 拆分PDF文档

时间:2023-01-04 12:07:34浏览次数:68  
标签:Java doc PdfDocument new 文档 pdf PDF


这篇文章主要介绍以下两种拆分方式:

  1. 将一个PDF文档快速拆分为多个PDF(每个PDF包含1页)
  2. 根据指定页码范围,将一个PDF文档拆分为2个或多个PDF(每个PDF可以包含不同的页数)

使用组件:

Spire.PDF for Java

在使用下面的代码前,你需要下载​​Spire.PDF for Java​​包并解压缩,然后从lib文件夹下导入Spire.Pdf.jar包到你的Java应用程序中。

原PDF文档如下:

Java 拆分PDF文档_Java

1. 将一个PDF文档快速拆分为多个PDF(每个PDF包含1页)

以下代码将原PDF文档均分为5个PDF文档,每个文档包含1页:

import com.spire.pdf.*;

public class SplitPDF {
public static void main(String[] args)
{
//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.loadFromFile("sample.pdf");

//拆分为多个PDF文档
doc.split("output/splitDocument-{0}.pdf", 0);
doc.close();
}
}

拆分后:

Java 拆分PDF文档_拆分PDF_02

2. 根据指定页码范围,将一个PDF文档拆分为2个或多个PDF(每个PDF可以包含不同的页数)

以下代码将原PDF文档的第1-2页拆分一个PDF文档,第3-5页拆分为另一个PDF文档:

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfMargins;

import java.awt.geom.Point2D;

public class SplitPDF {

public static void main(String[] args)
{

//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.loadFromFile("sample.pdf");

//新建一个PDF文档
PdfDocument newDoc1 = new PdfDocument();

PdfPageBase page;

//将原PDF文档的第1、2页添加至新建的PDF
for(int i = 0;i<2;i++)
{
page = newDoc1.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));
doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));
}

//保存文档
newDoc1.saveToFile("split/Doc1.pdf");

//新建另一个PDF文档
PdfDocument newDoc2 = new PdfDocument();

//将原PDF文档的第3至5页添加至新建的PDF
for(int i = 2;i<5;i++)
{
page = newDoc2.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));
doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));
}

//保存文档
newDoc2.saveToFile("split/Doc2.pdf");
}
}

拆分后:

Java 拆分PDF文档_Java_03

标签:Java,doc,PdfDocument,new,文档,pdf,PDF
From: https://blog.51cto.com/u_15926533/5988058

相关文章

  • C# 将Word转为PDF时,设置PDF文档保护
    本文以C#代码示例展示如何将Word转为PDF时,设置PDF文档保护,可设置PDF文档打开密码保护以及权限密码保护。附VB.NET代码,有需要可供参考。程序环境:1.Word测试文档:.docx2..NetF......
  • Java 在PPT中添加文本、图片超链接
    本文介绍通过Java程序在PPT幻灯片中添加超链接的方法,可以给文本或者图片设置超链接,设置超链接时,可设置包括网页链接、邮件地址链接、幻灯片跳转链接等不同指向对象的链接。......
  • Java 给Word不同页面设置不同背景
    Word文档中,可直接通过【设计】-【页面颜色】页面颜色,通过Java代码可参考如下设置方法:1.设置单一颜色背景doc.getBackground().setType(BackgroundType.Color);doc.getBackg......
  • Java 编辑PPT SmartArt图形
    本文介绍在Java程序中如何来编辑PPT幻灯片中已有的SmartArt图形,包括重置图形样式、颜色、添加/删除图形节点、编辑节点内容、添加超链接到节点(链接到网页、链接到指定幻灯片......
  • Java面试题Day01
    1.String , StringBuilder,StringBuffer的区别?(1)String只读字符串,引用的字符内容是不能被改变的.(2)StringBuilder和StringBuffer表示的字符串对象可以直接......
  • Linux环境下java环境变量配置简单说明
    第一步:到jdk包的路径下tar-xvfjdk-8u121-linux-x64.tar.gz-C/usr/lib/jvm第二步:cd/usr/lib/jvmls-ls查看下 第三步:配置环境变量vim/etc/profile按键i进入插入......
  • 第二阶段:Java SE 核心技术
    认清现实,放弃幻想特此感谢动力节点老杜分享出来的学习路线2.第二阶段:JavaSE核心技术2.1数据结构2.1.1学习目标1.掌握什么是数据结构2.为后面学习集......
  • java实现登录微博(通过cookie)
    1.获取cookie1.打开微博登录页面,浏览器F12进行抓包,登录。2.在微博首页地址栏找到url3.在浏览器调试页面找到Referer与地址栏相同的url2.代码1.加入依赖<de......
  • JAVA问题总结之28--读取某目录下所有文件
    JAVA问题总结之28–读取某目录下所有文件packagejava9231;importjava.io.File;publicclassforReadNFile{publicstaticvoidmain(String[]args){//TOD......
  • JAVA问题总结之27--创建100个文件
    JAVA问题总结之27–创建100个文件:packagejava9231;importjava.io.File;importjava.io.IOException;publicclassforCreateNFile{publicstaticvoidmain(String[]......