itextpdf5操作文本
itextpdf使用document操作文本可以使用3个对象来做:Chunk、Phrase、Paragraph。
itextpdf5的包对它们的介绍是这样的:
chunk:
这是可以添加到文档中最小的重要部分。
大多数元素可以划分为一个或多个块。chunkis是一个带有特定字体的字符串。所有其他布局参数都应该在这个textis块添加到的对象中定义。
Phrase:
短语是一系列的块。
一个短语有一个主字体,但是短语中的一些块可以有不同于主字体的字体。一个短语中的所有块都有相同的开头。
Paragraph:
A Paragraph is a series of Chunks and/or Phrases.
A Paragraph has the same qualities of a Phrase, but alsosome additional layout-parameters:
•the indentation
•the alignment of the text
它们有一些自己的特点:
在继承结构上,paragraph继承了phrase。phrase和paragraph的文本会自动换行,而chunk是不会自动换行的,超出页面的部分不会被显示。
所以,chunk可以设置文本本身的一些属性,如文字背景,下划线,行高。
而paragraph可以操作文字的排版,段落的间距,行间距,等等。phrase功能跟单一,能设置行间距,也被paragraph继承了。
1、Paragraph的一些方法的功能:
代码:
Paragraph paragraph = new Paragraph(text,firstCoverFont);
/** 设置行间距,俩个参数:float fixedLeading, float multipliedLeading,
* 总的行间距可以用getTotalLeading()来查看, 可以理解是两行文字,顶部到顶部的距离,如果是0,两行文字是重叠的。
* 计算方式:fixedLeading+multipliedLeading*fontSize。在pdfDocument中是当前字体;在ColumnText,是指最大字体。
* 其中fixedLeading是固定参数,默认值是:1.5倍的fontsize
* multipliedLeading是可变参数,默认值是0.
*/
paragraph.setLeading(10,2);//设置行间距
paragraph.setAlignment(Element.ALIGN_CENTER);//设置对齐方式:居中、左对齐、右对齐
paragraph.setFirstLineIndent(20f);//设置首行缩进 paragraph.setExtraParagraphSpace(200f);//设置段落之间的空白,测试无效,可以没找到正确的书写格式
paragraph.setIndentationLeft(10f);//设置段落整体的左缩进
paragraph.setIndentationRight(20f);//设置段落整体的右缩进
paragraph.setPaddingTop(10f);//设置距离上一元素的顶部padding
paragraph.setSpacingAfter(10f);//设置段落下方的空白距离
paragraph.setSpacingBefore(10f);//设置段落上方的留白,,如果的本页的第一个段落,该设置无效
doc.add(paragraph);
2、chunk的方法
Chunk chunk = new Chunk("测试chunk",firstCoverFont);
chunk.setBackground(BaseColor.GREEN);//文字背景色
chunk.setLineHeight(10);//行高
chunk.setUnderline(2, 3);//下划线,或者文字任意文字的线条
doc.add(chunk);
3、将文本放置的任意大小,页面任意位置
官方文档:
String path = "E:/demo/pdfCreat/"+System.currentTimeMillis()+".pdf";//输出pdf的路径
Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(path));
doc.open();
String text = readfile("src/main/resources/file/pdf/test.text");
Rectangle rect = new Rectangle(300, 300, 400, 400);//文本框位置
rect.setBorder(Rectangle.LEFT);//显示边框,默认不显示,常量值:LEFT, RIGHT, TOP, BOTTOM,BOX,
rect.setBorderWidth(1f);//边框线条粗细
rect.setBorderColor(BaseColor.GREEN);//边框颜色
PdfContentByte cb = writer.getDirectContent();
cb.rectangle(rect); ColumnText ct = new ColumnText(cb);
ct.addText(new Phrase("test",firstCoverFont));
ct.setSimpleColumn(rect);
ct.setUseAscender(false);
ct.go();
简单方式:
Rectangle rect = new Rectangle(300, 300, 400, 400);//文本框位置
rect.setBorder(Rectangle.LEFT);//显示边框,默认不显示,常量值:LEFT, RIGHT, TOP, BOTTOM,BOX,
rect.setBorderWidth(1f);//边框线条粗细
rect.setBorderColor(BaseColor.GREEN);//边框颜色
ColumnText cts = new ColumnText(writer.getDirectContent());
cts.addText(new Phrase("test",firstCoverFont));
cts.setSimpleColumn(rect);
cts.go();
itextpdf5操作文本的更多相关文章
- Dom选择器及操作文本内容
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...
- awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一
awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...
- jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax
jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...
- (19)jQuery操作文本和属性
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>jq ...
- 辛星跟您玩转vim第四节之操作文本内容
首先值得一提的是.我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http:// ...
- Jquery操作文本内容(三个方法:html()、text()、var())
Jquery操作文本内容(三个方法:html().text().var()) 一.html()获取和设置文本内容和标签 1.获取标签里的结构和内容 $("ul").html() / ...
- selenium 操作文本框(textarea输入)
selenium 对文本框的输入操作一般有两种形式,传统的是直接通过定位元素通过sendKeys()方法直接在文本框中输入信息.但有时候我们可以通过id 的方式将其进行定位,但却不能通过sendKey ...
- [转载]3.2 UiPath鼠标操作文本的介绍和使用
一.鼠标(mouse)操作的介绍 模拟用户使用鼠标操作的一种行为,例如单击,双击,悬浮.根据作用对象的不同我们可以分为对元素的操作.对文本的操作和对图像的操作 二.鼠标对文本的操作在UiPath中的使 ...
- UiPath鼠标操作文本的介绍和使用
一.鼠标(mouse)操作的介绍 模拟用户使用鼠标操作的一种行为,例如单击,双击,悬浮.根据作用对象的不同我们可以分为对元素的操作.对文本的操作和对图像的操作 二.鼠标对文本的操作在UiPath中的使 ...
随机推荐
- git 清空所有commit记录
说明:例如将代码提交到git仓库,将一些敏感信息提交,所以需要删除提交记录以彻底清除提交信息,以得到一个干净的仓库且代码不变 1.Checkout git checkout --orphan late ...
- 论文阅读笔记六十六:Wide Activation for Efficient and Accurate Image Super-Resolution(CVPR2018)
论文原址:https://arxiv.org/abs/1808.08718 代码:https://github.com/JiahuiYu/wdsr_ntire2018 摘要 本文证明在SISR中在Re ...
- Laravel 推荐-基础入门+实战+拓展视频教程
1.laravel基础 1.Composer:类库管理神器 - Laravel的安装和配置 2.路由:地址和方法的小媒人 - 基础路由 3.控制器:管家婆 - 基础用法 4.视图:最终结果输出 5.b ...
- 安装WIN7系统备忘录
安装WIN7系统备忘录因为安装WIN7设置项太多,制作RAMOS如果忘了某项设置,终归是不方便,记录如下:1.用WINNTSETUP安装到VHD中,安装时优化选项中建议勾选关闭休眠和虚拟内存功能(假设 ...
- MySQL实战45讲学习笔记:第十八讲
一.引子 在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句.对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大. 我今天挑选了三个这样的案例和你分享.希望再遇到相似 ...
- [LeetCode] 51. N-Queens N皇后问题
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...
- CodeForces 487E Tourists(圆方树+线段树+树链剖分)
题意 \(n\) 个点 \(m\) 条边的无向连通图,每个点有点权,\(q\) 个要求,每次更新一个点的点权或查询两点间路径权值最小的点最小的路径. 思路 算是圆方树的板子吧?圆方树处理的主要 ...
- 程序员Y先生投保案例分享
大家好,我是闲鱼君.我在2018年底搞了个副业,做了保险经纪人.保险经纪人是为用户服务的第三方机构,找经纪人买保险省钱.省力.保险一次就买对,而且还能提供后续理赔服务,具体可以看我的文章<201 ...
- Visual Studio 调试系列8 查找导致程序崩溃的 DLL(使用模块窗口)
系列目录 [已更新最新开发文章,点击查看详细] 如果应用程序在调用系统 DLL 或他人的代码时崩溃,则需要找出在崩溃发生时处于活动状态的 DLL. 如果在自己的程序之外的 DLL 中遇到崩溃, ...
- Spring Cloud Feign高级应用
1.使用feign进行服务间的调用 spring boot2X整合nacos一使用Feign实现服务调用 2.开启gzip压缩 Feign支持对请求与响应的压缩,以提高通信效率,需要在服务消费者配置文 ...