Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2305527
  • 博文数量: 101
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1023
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
文章分类

全部博文(101)

文章存档

2019年(47)

2018年(45)

2017年(9)

我的朋友

分类: Java

2019-08-01 17:01:25

本文将介绍通过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】跨文档复制

  1. import com.spire.pdf.*;
  2. import com.spire.pdf.graphics.PdfMargins;
  3. import com.spire.pdf.graphics.PdfTemplate;

  4. import java.awt.*;
  5. import java.awt.geom.Dimension2D;

  6. public class Copy1 {
  7.     public static void main(String[]args){
  8.         //加载两个PDF文档
  9.         PdfDocument pdf1 = new PdfDocument("test1.pdf");
  10.         PdfDocument pdf2 = new PdfDocument("test2.pdf");

  11.         //获取pdf1的第一页,并根据页面创建模板
  12.         PdfPageBase page = pdf1.getPages().get(0);
  13.         Dimension2D size = page.getSize();
  14.         PdfTemplate template = page.createTemplate();

  15.         //在pdf2中第一页插入从复制的pdf1中绘制的模板
  16.         pdf2.getPages().insert(0,size,new PdfMargins(0,0));
  17.         pdf2.getPages().get(0).getCanvas().drawTemplate(template,new Point(0,0));

  18.         //保存pdf2
  19.         pdf2.saveToFile("result.pdf",FileFormat.PDF);
  20.         pdf2.dispose();
  21.     }
  22. }

跨文档复制效果:


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

  1. import com.spire.pdf.*;
  2. import com.spire.pdf.graphics.PdfMargins;
  3. import com.spire.pdf.graphics.PdfTemplate;

  4. import java.awt.*;
  5. import java.awt.geom.Dimension2D;

  6. public class Copy2 {
  7.     public static void main(String[]args){
  8.         //加载测试文档
  9.         PdfDocument pdf = new PdfDocument("test1.pdf");

  10.         //获取第一页,并将于页面创建模板
  11.         PdfPageBase page = pdf.getPages().get(0);
  12.         Dimension2D size = page.getSize();
  13.         PdfTemplate template = page.createTemplate();

  14.         //在文档末循环添加两张绘制好的页面模板
  15.         for(int i=0; i<2; i++){
  16.             page = pdf.getPages().add(size, new PdfMargins(0));
  17.             page.getCanvas().drawTemplate(template, new Point(0, 0));
  18.         }

  19.         //在第一页插入一张绘制好的页面模板
  20.         pdf.getPages().insert(0,size,new PdfMargins(0,0));
  21.         pdf.getPages().get(0).getCanvas().drawTemplate(template,new Point(0,0));

  22.         //保存文档
  23.         pdf.saveToFile("result1.pdf",FileFormat.PDF);
  24.     }
  25. }

复制效果:



(本文完)


阅读(117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册