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

Java实现裁剪PDF

目录

安装Java PDF库

Java裁剪PDF页面

Java裁剪PDF页面并将结果保存为图片、HTML、Excel等格式


裁剪PDF页面是一项常见的任务,它可以用来调整文档的尺寸和去除不需要的边距或白边。通过裁剪页面,你可以优化文档的布局和展示效果,使其更符合你的需求。这篇文章将介绍如何使用Java实现裁剪PDF文档的页面,主要包括以下内容:

  • Java裁剪PDF页面
  • Java裁剪PDF页面并将结果保存为图片、HTML、Excel等格式

安装Java PDF库

要裁剪PDF页面,可以使用Spire.PDF for Java 库。

Spire.PDF for Java是一款专门为Java开发人员设计的PDF文档处理库。它支持在Java应用程序中创建、读取、编辑、转换和打印PDF文档。你可以使用以下代码来从Maven仓库安装它:

<repositories><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf</artifactId><version>10.4.9</version></dependency>

Java裁剪PDF页面

Spire.PDF for Java提供了PdfPageBase.setCropBox(Rectangle2D rect)方法,支持裁剪PDF页面。具体步骤如下:

  • 创建PdfDocument类的实例。
  • 使用PdfDocument.loadFromFile()方法加载PDF文档。
  • 使用PdfDocument.getPages().get(index)方法获取你希望裁剪的页面。
  • 创建Rectangle2D对象,用于定义裁剪的页面区域。
  • 使用PdfPageBase.setCropBox(Rectangle2D rect)方法裁剪页面。
  • 使用PdfDocument.SaveToFile()方法保存结果文档。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;import java.awt.*;
import java.awt.geom.Rectangle2D;public class Main {public static void main(String[] args) {//创建PdfDocument实例PdfDocument pdf = new PdfDocument();//加载PDF文档pdf.loadFromFile("示例.pdf");//获取第一页PdfPageBase page = pdf.getPages().get(0);//创建Rectangle2D实例用于指定裁剪的页面区域Rectangle2D rect = new Rectangle(30, 280, 552, 220);//裁剪第一页page.setCropBox(rect);//保存结果文档pdf.saveToFile("裁剪.pdf");pdf.close();}
}

Java裁剪PDF页面并将结果保存为图片、HTML、Excel等格式

有时候,你可能需要裁剪PDF页面并将结果保存为其他格式,例如图片、HTML或Excel等,以便在其他地方使用。Spire.PDF for Java提供了PdfDocument.saveAsImage()方法来将PDF文档保存为图片,以及PdfDocument.saveToFile()方法来将PDF文档保存为其他格式如HTML、Excel等。

以下步骤展示了如何裁剪一个PDF文档的特定页面并将结果保存为图片:

  • 创建PdfDocument类的实例。
  • 使用PdfDocument.loadFromFile()方法加载PDF文档。
  • 使用PdfDocument.getPages().get(index)方法获取你希望裁剪的页面。
  • 创建Rectangle2D对象,用于定义裁剪的页面区域。
  • 使用PdfPageBase.setCropBox(Rectangle2D rect)方法裁剪页面。
  • 使用PdfDocument.saveAsImage(int pageIndex, PdfImageType type)方法将该页面保存为BufferedImage对象。
  • BufferedImage对象保存为PNG图片文件。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImageType;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class CropPageAndSaveItAsImage {public static void main(String[] args) throws IOException {//创建PdfDocument实例PdfDocument pdf = new PdfDocument();//加载PDF文档pdf.loadFromFile("sample.pdf");//获取第一页PdfPageBase page = pdf.getPages().get(0);//创建Rectangle2D实例用于指定裁剪的页面区域Rectangle2D rect = new Rectangle(30, 280, 552, 220);//裁剪页面page.setCropBox(rect);//将第一页保存为图片BufferedImage image = pdf.saveAsImage(0, PdfImageType.Bitmap);//将图片保存为PNG文件File file = new File("cropped.png");ImageIO.write(image, "PNG", file);pdf.close();}
}

以下步骤展示了如何裁剪一个PDF文档的特定页面并将结果保存为HTML、Excel、OFD等格式:

  • 创建PdfDocument类的实例。
  • 使用PdfDocument.loadFromFile()方法加载PDF文档。
  • 使用PdfDocument.getPages().get(index)方法获取你希望裁剪的页面。
  • 创建Rectangle2D对象,用于定义裁剪的页面区域。
  • 使用PdfPageBase.setCropBox(Rectangle2D rect)方法裁剪页面。
  • 创建另一个PdfDocument类的实例来生产一个新的PDF文档。
  • 使用PdfDocument.insertPage()方法将裁剪后的页面插入新的PDF文档。
  • 使用PdfDocument.saveToFile()方法将新的PDF文档保存为HTML/EXCEL/OFD等格式。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;import java.awt.*;
import java.awt.geom.Rectangle2D;public class CropPageAndSaveItAsHtmlExcel {public static void main(String[] args){//创建PdfDocument实例PdfDocument pdf = new PdfDocument();//加载PDF文档pdf.loadFromFile("sample.pdf");//获取第一页PdfPageBase page = pdf.getPages().get(0);//创建Rectangle2D实例用于指定裁剪的页面区域Rectangle2D rect = new Rectangle(30, 280, 552, 220);//裁剪页面page.setCropBox(rect);//创建一个新的PDF文档PdfDocument newPdf = new PdfDocument();//将裁剪后的页面插入到新的PDF文档 newPdf.insertPage(pdf, page);//将新的PDF文档保存为HTML/XLSX/OFD等其他格式newPdf.saveToFile("cropped.html", FileFormat.HTML);newPdf.saveToFile("cropped.xlsx", FileFormat.XLSX);newPdf.saveToFile("cropped.ofd", FileFormat.OFD);newPdf.close();pdf.close();}
}

除了以上代码中保存的格式外,你还可以将裁剪结果保存为很多其他格式,如.doc.docx,.xps等,修改FileFormat枚举即可。

http://www.lryc.cn/news/343917.html

相关文章:

  • ZooKeeper以及DolphinScheduler的用法
  • gitlab集群高可用架构拆分部署
  • STC8增强型单片机开发day01
  • 记录: Python解析yml文件,顺序解析,带所有文件等号
  • Npm Install Docusaurus Demo【npm 安装 docusaurus 实践 】
  • 【工具推荐定制开发】一款轻量的批量web请求命令行工具支持全平台:hey,基本安装、配置、使用
  • Linux进程——进程的创建(fork的原理)
  • ICode国际青少年编程竞赛- Python-1级训练场-路线规划
  • uniapp微信小程序1rpx border在某些手机机型上边框显示不出来解决方案
  • Linux mkfs.ext2命令教程:如何创建ext2文件系统(附实例详解和注意事项)
  • 基于Springboot的校园招聘系统(有报告)。Javaee项目,springboot项目。
  • 将 Vue、React、Angular、HTML 等一键打包成 macOS 和 Windows 平台客户端应用
  • 使用 MobaXterm 链接 Ubuntu(Windows子系统)
  • QT设计模式:代理模式
  • 独热编码One-Hot是什么?在实际应用中具体是如何存储的?
  • 计算机视觉与深度学习实战之以Python为工具:基于GUI搭建通用视频处理工具
  • 18.Docker学习
  • 树莓派4b红外检测
  • 大模型的不足与解决方案
  • Java中使用FlatBuffers实现序列化
  • [图解]SysML和EA建模住宅安全系统-02
  • 2024年北京服贸会媒体邀约资源有哪些?
  • 大语言模型LLM入门篇
  • Alibaba Cloud Linux 安装mysql及注意事项
  • 设计模式——工厂模式(Factory)
  • NVIDIA Omniverse Cloud API支持数字孪生开发,可解决复杂AI问题 | 最新快讯
  • 智慧电力,山海鲸引领
  • 【文章转载】ChatGPT 提示词十级技巧: 从新手到专家
  • 类的生命周期
  • AI赋能分层模式,解构未来,智领风潮