Java实现裁剪PDF

目录

[安装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仓库安装它:

java 复制代码
<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()**方法保存结果文档。
java 复制代码
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图片文件。
java 复制代码
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等格式。
java 复制代码
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枚举即可。

相关推荐
会飞的小菠菜6 分钟前
如何一次性将多个PPT幻灯片批量转换成PDF文档
pdf·powerpoint·ppt·批量·格式转换
青云交10 分钟前
Java 大视界 -- 基于 Java 的大数据分布式存储在智慧城市时空大数据管理与应用中的创新实践(408)
java·hdfs·flink·智慧城市·hbase·java 分布式存储·时空大数据
赶飞机偏偏下雨18 分钟前
【Java笔记】单例模式
java·笔记·单例模式
10001hours26 分钟前
C语言第12讲
c语言·开发语言
努力的小帅36 分钟前
C++_哈希
开发语言·c++·学习·算法·哈希算法·散列表
小蒜学长36 分钟前
基于Spring Boot的火灾报警系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
武昌库里写JAVA38 分钟前
基于Spring Boot + Vue3的办公用品申领管理系统
java·spring boot·后端
中国lanwp38 分钟前
Spring Boot的配置文件加载顺序和规则
java·spring boot·后端
我命由我123451 小时前
Android 开发 - 一些画板第三方库(DrawBoard、FingerPaintView、PaletteLib)
android·java·java-ee·android studio·安卓·android-studio·android runtime
知彼解己1 小时前
深入理解 AbstractQueuedSynchronizer (AQS):Java 并发的排队管家
java·开发语言