Java 创建PDF打印小册子案例
作者:E-iceblue 发布时间:2023-01-17 04:19:40
目录
一、概述
二、环境配置及代码步骤
1. 环境配置
2. 代码步骤
一、概述
PDF打印小册子是指将PDF格式文档在打印成刊物前需要提前进行的页面排版,以便在打印后装订成册。下面以Java代码展示如何来实现。这里调用Free Spire.PDF for Java
中的PdfDocument. createBooklet(java.lang.String fileName, double width, double height, boolean doubleSide)
方法来创建Booklet
小册子。
二、环境配置及代码步骤
1. 环境配置
IntelliJ IDEA 2018(jdk 1.8.0)
PDF Jar包:Free Spire.PDF for Java 4.4.1
PDF测试文档:文件路径为IDEA程序项目文件夹路径(F:\IDEAProject\PrintPDF\test.pdf)
如何导入jar包:
方法1:手动导入,步骤如下
方法2:Maven
下载导入。需在pom.xml
中配置依赖:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>4.4.1</version>
</dependency>
</dependencies>
2. 代码步骤
创建
PdfDocument
类的实例;通过
PdfDocument.loadFromFile()
方法加载PDF
测试文档;通过
PdfDocument.getPages()
方法获取指定页面;根据获取的页面大小页面定义小册子的高度及宽度;
调用
PdfDocument. createBooklet()
方法创建小册子;最后,通过
PdfDocument. saveToFile()
方法保存创建后的PDF
小册子文件。保存路径为IDEA项目文件夹路径。
【Java完整代码】
import com.spire.pdf.*;
public class CreateBooklet {
public static void main(String[] args) {
//加载PDF测试文档,并获取第一页
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");
PdfPageBase page = pdf.getPages().get(0);
//定义小册子的宽度和高度
float width = (float) page.getSize().getWidth()*2;
float height = (float) page.getSize().getHeight();
//创建小册子,并保存
pdf.createBooklet("test.pdf", width, height,true);
pdf.saveToFile("Booklet.pdf");
}
}
PDF小册子创建效果:
来源:https://www.cnblogs.com/Yesi/p/15420719.html
猜你喜欢
- Java设计模式的模板方法模式定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步
- Map 中ConcurrentHashMap是线程安全的,但不是所有操作都是,例如get()之后再put()就不是了,这时使用merge()
- String replace replaceFirst repaceAll区别replace(char oldChar, char newC
- 代码实例:<%@ page language="java" contentType="text/html
- 首先给大家声明一点:需要 jdk 7 , tomcat需要支持websocket的版本 1.InitServlet &n
- 本文实例为大家分享了Java Socket聊天室功能的具体代码,供大家参考,具体内容如下Client.javaimport java.io.
- 如果有哪一个做程序员的小伙伴说自己没有遇到中文乱码问题,我是不愿意相信的。今天在做微信订阅号的智能回复时,又一时迷乱的跳进了中文乱码这个火坑
- 本文实例为大家分享了Swing拆分窗格控件JSplitPane的使用方法,供大家参考,具体内容如下package day1115;impor
- ContentProvider是内容提供者,可以跨进程提供数据。大家都知道,ContentProvider的启动,是在Application
- Java读取json数据并存入数据库1. pom依赖<dependency> &nbs
- 前言上一节我们说到从HttpWebHandlerAdapter的handle方法说起到DispatcherHandler的调用流程那么Htt
- 不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。Java在java.math包中提供的API类B
- 前言在上网的时候我们常常遇到文件上传的情况,例如上传头像、上传资料等;当然除了上传,遇见下载的情况也很多,接下来看看我们 servlet 中
- @Lazy用于指定该Bean是否取消预初始化。主要用于修饰Spring Bean类,用于指定该Bean的预初始化行为,使用该Annotati
- 背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重
- 本文实例讲述了Java计算文本MD5加密值的方法。分享给大家供大家参考,具体如下:java计算文本MD5值,用于加密import java.
- 我们知道,进入百度图片后,输入一个关键字后,首先看到的是很多缩略图,当我们点击某张缩略图时,我们就可以进入到大图显示页面,在大图显示页面,中
- 概述对List进行分组是日常开发中,经常遇到的,在JDK 8中对List按照某个属性分组的代码,超级简单。package test;impo
- 前言我们在日常开发中,经常会用到一个系统需要链接多个数据库来实现业务的需求,比如多个系统之间数据调用、两个数据之间同步等等。今天给大家分享使
- Solr我还是个菜鸟,写这一些文章只是记录一下最近一段时间学习Solr的心得。 Solr是什么? 最近我学Solr的时候,一直看到一句话,S