本文将介绍通过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);
}
}

复制效果:

(本文完)

Java 复制PDF文档的2种方法的更多相关文章

  1. Java 打印PDF文档的3种情况

    以下内容归纳了通过Java程序打印PDF文档时的3种情形.即: 静默打印 显示打印对话框打印 打印PDF时自定义纸张大小 使用工具:Spire.PDF for Java Jar导入: 方法1:通过官网 ...

  2. C# 打印PDF文档的10种方法

    操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...

  3. Java 设置PDF文档背景——单色背景、图片背景

    一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括2种设置方法: 设置纯色背景色 设置图 ...

  4. Java 在PDF文档中绘制图形

    本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...

  5. Java 设置PDF文档背景色

    一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化以及保护双眼的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括: 设置纯色背景色 设置图 ...

  6. 如何使用Adobe Reader复制PDF文档上的文字

    PDF文档大家常用,但是有没有简单的方法能够提取PDF文档上的文字,然后使用呢?除了将PDF转换成Word,这里介绍一种更为简单实用的方法复制PDF文本文字,Adobe Reader是大家都常用的PD ...

  7. Java复制Word文档

    Microsoft Word 提供了许多易于使用的文档操作工具,同时也提供了丰富的功能集供创建复杂的文档使用.在使用的时候,你可能需要复制一个文档里面的内容到另一个文档.本文介绍使用Spire.Doc ...

  8. [开源框架推荐]Icepdf:纯java的pdf文档的提取和转换库

    ICEpdf 是一个轻量级的开源 Java 语言的 PDF 类库.通过 ICEpdf 可以用来浏览.内容提取和转换 PDF 文档,而无须一些本地PDF库的支持. 可以用来做什么? 1.从pdf文件中提 ...

  9. Java生成PDF文档(表格、列表、添加图片等)

    需要的两个包及下载地址: (1)iText.jar:http://download.csdn.net/source/296416 (2)iTextAsian.jar(用来进行中文的转换):http:/ ...

随机推荐

  1. scrapy实战1分布式爬取有缘网(6.22接口已挂):

    直接上代码: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See docu ...

  2. MySql中的SHOW INDEX 查出的结果列代表的意义

    MySQL SHOW INDEX语法的实际操作用法以及其实际查看索引状态(语法)的具体内容的描述,如果你对这一技术,心存好奇的话,以下的文章将会揭开它的神秘面纱. INDEX FROM tbl_nam ...

  3. 【题解】【P3383 【模板】线性筛素数】

    看完这篇博客你就懂了 原题链接 代码: #include<bits/stdc++.h> using namespace std; bool isPrime(int num) { if(nu ...

  4. 深入理解Java虚拟机二 阅读笔记

    xl_echo编辑整理.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! --- > 以下内容摘抄自 ...

  5. select语句中不应该数据库关键字(如:precision)

    解决方案: 在关键字左右家特殊小点,在esc键的下面.(不是单引号) 如:`precision` 也可以在字段前加上表名.

  6. Spring Cloud 之 Zuul基础.

    一.概述  API 网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的 Facade 模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤 ...

  7. AT649 自由研究

    这道题有些水... 我们观察到,这是一道彻底离线的题目,连输入也没有,我们可以发现1<=n<=401<=n<=401<=n<=40 于是,我们就可以考虑n=1n=1 ...

  8. 软件测试必须掌握的linux命令大全

    测试工程师的四大基础技能:数据库.linux.网络协议.测试工具,不管是刚入门还是已经工作多年,这几个方向都是要掌握的.今天我们再讲一下测试工程师必须要掌握的linux命令. 测试工程师需要掌握lin ...

  9. springboot启动不设置端口

    非web工程 在服务架构中,有些springboot工程只是简单的作为服务,并不提供web服务 这个时候不需要依赖 <dependency> <groupId>org.spri ...

  10. python模块导入-软件开发目录规范-01

    模块 模块的基本概念 模块: # 一系列功能的结合体 模块的三种来源 """ 模块的三种来源 1.python解释器内置的模块(os.sys....) 2.第三方的别人写 ...