[更文挑战]iText番盘-PDF神器-2

358 阅读3分钟

「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战

PDF神器iText英文版翻译与学习

作者: 薛大郎.
英文原版:iText in Action 2nd Edition.pdf

坚持. 分享. 成长. 利他 !

一. 前言

成功路上并不拥挤, 无他坚持之人少耳.

对于当代3-5年甚至工作经验不到10年的开发和其他性质的我们来说, 高考即巅峰, 而对于搬砖人的我们来说, 内卷仍在继续, 如果你不卷, 你的肾和你的Jennifers还在, 可是他人的已经镀金. 生命不息, 卷不止!

最近很多人在趁着过年长膘之前, 努力减肥, 争取回家增加相亲成功率, 早日GirlFriend-Oriented, 走上人生巅峰. 我在这里鼓励大家, 一定要心中长存信念, 务必拒绝糖衣炮弹的诱惑.

二.正文.

昨日简单来了个HelloWorld. 想必大家已经有了个完整的Pdf.

3. 详解创建Document的五步

3.1 创建一个新的Document实例

我们经常使用的是一些高级的内容对象, 他们分别是昨天用到的 Paragraph, 他是Phrase的子类, 大家也可以看到他是ArrayList<Element>的子类, 都是一个段落. 就如我们所知道的Office中Doc一个段落一样(我们很多时候可以类比Doc或者Mark-up Language), 可以添加很多的内容, 而这些内容也就是iText抽象出来的Element, 大家可以看到Element的子类相当多.

childrenOfElement.png 通过这些元素我们可以将段落丰满起来, 尤其是其中有一个大家非常熟悉的Rectangle, 这个元素是可以设置大小的一个矩形:

    import com.itextpdf.text.Rectangle;
    
    Rectangle pagesize = new Rectangle(216f, 720f);
    Document document = new Document(pagesize, 36f, 72f, 108f, 180f);

在此示例中,创建了一个大小为216 x 720用户单位的矩形。这个长方形用作文档构造函数中的页面大小,左边距为36用户单位,右边距为72个用户单位,上边距为108个用户单位,下边距为180个用户单位。

用户单位 这个我们后续扩展

iText的设计也相当的好, 内置了很多我们常用的纸张尺寸供我们使用, 详见 @see com.itextpdf.text.PageSize, 比如A3,A4,LETTER等. 非常方便大家使用. 除此之外Document的一些属性也必须在打开(doc.open())前设置好, 这些属性包括我们在Adobereader中右击一个Pdf文件>文档属性中看到的那些.

见名知意 有addAuthor 添加作者, addCreationDate 创建时间, 有一个最重要的一个方法即 addDocListener也就是iText的观察者模式实现的, 我们可以通过实现此接口完成我们一些自定义的非常实用的功能.

docListenerMethod.png

一个Document就可以讲一节,后续内容也较多, 所以分开来讲解.

3.2 获取一个PdfWriter的实例
3.3 打开Document
3.4 添加内容到Document中
3.5 关闭Document

这就是我们的第二篇更文挑战内容, 就先到这里, 欲知后文, 且听下文;