彩票走势图

Java代码批量调整现有 PDF 文档的边距

转帖|使用教程|编辑:何跃|2022-01-28 13:18:33.810|阅读 299 次

概述:页边距是 PDF 页面周围的白色区域。如果您需要更多空白来添加其他信息,您可以增加边距。或者在其它情况您可能还需要减少边距。本文演示了如何使用 Spire.PDF for Java 调整现有 PDF 文档的边距。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

安装 Spire.PDF for Java

首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件


<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>//repo.e-iceblue.cn/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

增加现有 PDF 文档的页边距

增加 PDF 文档页边距的方法是创建一个更大页面的新 PDF,然后在较大页面上的适当位置绘制原始页面。以下是使用 Spire.PDF for Java 增加现有 PDF 文档页边距的主要步骤。
  • 在初始化 PdfDocument 对象时加载原始 PDF 文档。
  • 创建另一个 PdfDocument 对象,该对象用于创建具有更大页面大小的新 PDF 文档。
  • 设置边距的增值。
  • 设置新 PDF 文档的页面大小。
  • 循环遍历原始文档中的页面,并使用 PdfPageBase.createTemplate() 方法基于某个页面创建模板。
  • 使用 PdfDocument.getPages().add() 方法在新的 PDF 文档中添加页面。
  • 使用 PdfTemplate.draw()方法从(0, 0) 开始在页面上绘制模板。
  • 使用 PdfDocument.saveToFile() 方法将新的 PDF 文档保存到文件中。
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 IncreaseMargins {

    public static void main(String[] args) {

        //加载原始PDF文档
        PdfDocument originalPdf = new PdfDocument("C:\\Users\\Administrator\\Desktop\\sample.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());

        //循环浏览原始文档中的页面
        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));
        }

        //将新文档保存到文件
        newPdf.saveToFile("output/IncreaseMargins.pdf", FileFormat.PDF);
    }
}


减小现有 PDF 文档的页边距

同样,减少 PDF 边距的方法是创建一个更小页面的新 PDF,然后在较小页面的指定坐标位置绘制原始页面。以下是使用 Spire.PDF for Java 减少现有 PDF 文档页边距的主要步骤。

  • 在初始化 PdfDocument 对象时加载原始 PDF 文档。
  • 创建另一个 PdfDocument 对象,该对象用于创建具有较小页面大小的新 PDF 文档。
  • 设置边距的减值。
  • 设置新 PDF 文档的页面大小。
  • 循环遍历原始文档中的页面,并使用 PdfPageBase.createTemplate() 方法基于某个页面创建模板。
  • 使用 PdfDocument.getPages().add() 方法在新的PDF文档中添加页面。
  • 使用 PdfTemplate.draw() 方法在页面上的指定位置绘制模板。
  • 使用 PdfDocument.saveToFile() 方法将新的PDF文档保存到文件中。
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 DecreaseMargins {
    public static void main(String[] args) {

        //加载原始PDF文档
        PdfDocument originalPdf = new PdfDocument("C:\\Users\\Administrator\\Desktop\\sample.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(originalPdf.getPages().get(0).getSize().getWidth() + left + right, originalPdf.getPages().get(0).getSize().getHeight() + top + bottom);

        //循环浏览原始文档中的页面
        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));
        }

        //将新文档保存到文件
        newPdf.saveToFile("output/DecreaseMargins.pdf", FileFormat.PDF);
    }
}




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP