用Java代码更改PDF页边距,批量处理PDF文档

页边距是指文档页面主要内容以外的边缘区域。在创建 PDF 文档时,通常会设定每页固定页边距,以确保页面的统一性。然而,在某些情况下,已创建的 PDF 文档可能需要调整页边距以获得更好的视觉效果或满足打印需求。这通常是一项复杂的任务,但使用Free Spire.PDF for Java就可以通过简单的Java代码轻松实现此操作。本文将介绍如何使用简单的Java代码调整PDF文档的页边距

Free Spire.PDF for Java可通过官网下载或Maven安装。

用Java增加PDF文档页边距

增加 PDF 文档页边距的方法是新建一个页面尺寸较大的 PDF,并在较大页面的适当位置绘制原始页面。 具体步骤如下:

  • 创建一个 PdfDocument 类的对象并使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。
  • 创建另一个 PdfDocument 对象,并创建一个页面尺寸较大的 PDF 文档。
  • 使用 PdfMargins 类下的方法设置要增加的页边距。
  • 使用 Dimension2D.setSize() 方法设置新文档的页面大小。
  • 循环遍历原始文档的页面,并使用 PdfPageBase.createTemplate() 方法根据页面创建模板。
  • 使用 PdfDocument.getPages().add() 方法将页面添加到新的PDF文档中。
  • 使用 PdfTemplate.draw() 方法从初始坐标(0,0)开始在添加的页面上绘制模板。
  • 使用 PdfDocument.saveToFile() 方法保存新的 PDF 文档。

Java

import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;

public class EnlargePdfPageMargins {

    public static void main(String[] args) {

        // 创建PdfDocument对象并加载PDF文档
        PdfDocument originalPdf = new PdfDocument();
        originalPdf.loadFromFile("示例.pdf");

        // 获取文档的第一页
        PdfPageBase firstPage = originalPdf.getPages().get(0);

        // 创建另一个PdfDocument对象
        PdfDocument newPdf = new PdfDocument();

        // 设置要添加的页边距值
        PdfMargins margins = newPdf.getPageSettings().getMargins();
        margins.setTop(40);
        margins.setBottom(40);
        margins.setLeft(40);
        margins.setRight(40);

        // 设置新PDF文档的页面尺寸
        Dimension2D dimension2D = new Dimension();
        dimension2D.setSize(firstPage.getSize().getWidth() + margins.getLeft() + margins.getRight(), firstPage.getSize().getHeight() + margins.getTop() + margins.getBottom());

        // 遍历原始PDF文档中的所有页面
        for (int i = 0; i < originalPdf.getPages().getCount(); i++) {

            // 基于原始文档的页面创建模板
            PdfTemplate template = originalPdf.getPages().get(i).createTemplate();

            // 在新PDF文档中添加新页面
            PdfPageBase page = newPdf.getPages().add(dimension2D);

            // 在添加的页面上绘制模板
            template.draw(page.getCanvas(), new Point2D.Float(0, 0));
        }

        // 保存新的PDF文档
        newPdf.saveToFile("增加PDF页边距.pdf", FileFormat.PDF);
    }
}

设置结果
增加PDF页边距

用Java减少PDF文档页边距

同样,要缩小 PDF 的页边距,可新建一个页面尺寸较小的 PDF,并在指定坐标处将原页面绘制到较小的页面上。 具体步骤如下:

  • 创建一个 PdfDocument 对象。
  • 使用 PdfDocument.loadFromFile() 方法加载现有的 PDF 文档。
  • 创建另一个 PdfDocument 对象,并创建一个页面尺寸缩小的 PDF 文档。
  • 使用 PdfMargins 类下的方法设置要缩小的页边距值。
  • 使用 Dimension2D.setSize() 方法设置新 PDF 文档的页边距。
  • 循环遍历原始文档的页面,并使用 PdfPageBase.createTemplate() 方法根据页面创建一个模板。
  • 使用 PdfDocument.getPages().add() 方法为新的PDF文档添加页面。
  • 使用 PdfTemplate.draw() 方法在添加的页面上指定位置绘制模板。
  • 使用 PdfDocument.saveToFile() 方法保存新的PDF文档。

Java

import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;

public class ReducePdfPageMargins {
    public static void main(String[] args) {

        // 创建PdfDocument对象并加载PDF文档
        PdfDocument originalPdf = new PdfDocument();
        originalPdf.loadFromFile("示例.pdf");

        // 获取文档的第一页
        PdfPageBase firstPage = originalPdf.getPages().get(0);

        // 创建另一个PdfDocument对象
        PdfDocument newPdf = new PdfDocument();

        // 设置要缩小的页边距值
        double left = -20;
        double right = -20;
        double top = -20;
        double bottom = -20;

        // 设置新PDF文档的页面尺寸
        Dimension2D dimension2D = new Dimension();
        dimension2D.setSize(firstPage.getSize().getWidth() + left + right, firstPage.getSize().getHeight() + top + bottom);

        // 遍历原始PDF文档中的所有页面
        for (int i = 0; i < originalPdf.getPages().getCount(); i++) {

            // 基于原始文档的页面创建模板
            PdfTemplate template = originalPdf.getPages().get(i).createTemplate();

            // 在新PDF文档中添加新页面
            PdfPageBase page = newPdf.getPages().add(dimension2D, new PdfMargins(0));

            // 在添加的页面上绘制模板
            template.draw(page.getCanvas(), new Point2D.Float((float) left, (float) top));
        }

        // 保存新的PDF文档
        newPdf.saveToFile("减少PDF页边距.pdf", FileFormat.PDF);
    }
}

设置结果
减少PDF页边距

以上是关于如何使用 Free Spire.PDF for Java 来更改PDF页边距大小的介绍。同时,此 API 还有许多其他的功能您可前往 Spire.PDF for Java 教程查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值