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

安装 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>https://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:UsersAdministratorDesktopsample.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);    }}

Java代码批量调整现有 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:UsersAdministratorDesktopsample.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);    }}

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月25日
下一篇 2022年1月25日

相关推荐

发表回复

登录后才能评论