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


猜你喜欢
- 抛出问题:Long a = 4l;Long b = 4l;a == b //trueLong a = 128l;Long b = 128l;
- 公司编辑妹子需要爬取网页内容,叫我帮忙做了一简单的爬取工具这是爬取网页内容,像是这对大家来说都是不难得,但是在这里有一些小改动,代码献上,大
- C#调用c++dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题,相信经常做c#开发的都和我一样把学校的那点c++底子都忘光了吧(
- 前言现在不少应用都是采用了混合开发模式,不论是原生加RN,或是原生加Flutter,或是原生加H5。原生实现主业务线,其他部分可以借助跨平台
- 以下是介绍利用List的subList方法实现对List分页,废话不多说了,直接看代码把/** *//** * List分页 &
- Java读文件修改默认换行符Java默认换行符是'\n'。但有时数据并不以'\n'进行换行方法如下publi
- 报错org.springframework.web.util.NestedServletException: Request process
- 如何配置 * step1: 自定义 * /** * 自定义 * */public class MyInterceptor implemen
- 什么是RecyclerView关于RecyclerView,是一个主要用于展示和回收View的有一个控件,在官用了一句话来概括Recycle
- 首先,你可能会见到如下提示:File encoding is disabled because .properties file (see
- 【题目】 汉诺塔问题比较经典,这里修改一下游戏规则:现在限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中
- Java 的表格表格是一个由多行,多列组成的二维显示区。Swing的JTable以及相关类提供了对这种表格的支持,程序既可以使用简单的代码创
- 滑动删除的部分主要包含两个部分, 一个是内容区域(用于放置正常显示的view),另一个是操作区域(用于放置删除按钮)。默认情况下,操作区域是
- Java Exception 捕获和显示实例详解 在进行Java B/S架构开发时,经常有这样的场景:后端处理业务逻辑,前端负责
- MainActivity如下: package cn.testgethandsetinfo; import android.os.Bundl
- 什么是雪花算法雪花算法的本质为生成一个64位长度的具有自增性的分布式全局唯一id。在64bits中,会对不同段的位进行划分。可分为:符号段时
- 前文传送门:NioEventLoop处理IO事件执行任务队列继续回到NioEventLoop的run()方法:protected void
- 一、LinkedHashMap的类继承关系二、源码分析1.自己对LinkedHashMap的理解从继承关系上,我们看到LinkedHashM
- 众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现
- 最近在写一个小项目,其中有一点用到了显示EditText中输入了多少个字符,像微博中显示剩余多少字符的功能。在EditText提供了一个方法