本文将介绍通过Java程序来复制PDF页面,包括:

跨文档复制,即从文档1复制到文档2在同一文档内复制,即从页面A复制到页面B

使用工具:Free Spire.PDF for Java (免费版)
Jar文件获取及导入方法:
方法1:可通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入到Java程序。参考如下导入效果:(这里程序将jar文件分别导入了两个module)

方法2:可通过maven仓库安装导入。

Java代码示例
【示例1】跨文档复制

import com.spire.pdf.*;import com.spire.pdf.graphics.PdfMargins;import com.spire.pdf.graphics.PdfTemplate;import java.awt.*;import java.awt.geom.Dimension2D;public class Copy1 { public static void main(String[]args){ //加载两个PDF文档 PdfDocument pdf1 = new PdfDocument("test1.pdf"); PdfDocument pdf2 = new PdfDocument("test2.pdf"); //获取pdf1的第一页,并根据页面创建模板 PdfPageBase page = pdf1.getPages().get(0); Dimension2D size = page.getSize(); PdfTemplate template = page.createTemplate(); //在pdf2中第一页插入从复制的pdf1中绘制的模板 pdf2.getPages().insert(0,size,new PdfMargins(0,0)); pdf2.getPages().get(0).getCanvas().drawTemplate(template,new Point(0,0)); //保存pdf2 pdf2.saveToFile("result.pdf",FileFormat.PDF); pdf2.dispose(); }}

跨文档复制效果:

【示例2】在同一个文档内复制

import com.spire.pdf.*;import com.spire.pdf.graphics.PdfMargins;import com.spire.pdf.graphics.PdfTemplate;import java.awt.*;import java.awt.geom.Dimension2D;public class Copy2 { public static void main(String[]args){ //加载测试文档 PdfDocument pdf = new PdfDocument("test1.pdf"); //获取第一页,并将于页面创建模板 PdfPageBase page = pdf.getPages().get(0); Dimension2D size = page.getSize(); PdfTemplate template = page.createTemplate(); //在文档末循环添加两张绘制好的页面模板 for(int i=0; i<2; i++){ page = pdf.getPages().add(size, new PdfMargins(0)); page.getCanvas().drawTemplate(template, new Point(0, 0)); } //在第一页插入一张绘制好的页面模板 pdf.getPages().insert(0,size,new PdfMargins(0,0)); pdf.getPages().get(0).getCanvas().drawTemplate(template,new Point(0,0)); //保存文档 pdf.saveToFile("result1.pdf",FileFormat.PDF); }}

复制效果:

(本文完)