「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战」
PDF神器iText英文版翻译与学习
作者: 薛大郎.
英文原版:iText in Action 2nd Edition.pdf
坚持. 分享. 成长. 利他 !
一. 前言
选择大于努力.
,方向不同,结果不同
,成长总是痛苦的, 如果你现在觉得很难, 那说明你正在进步.
大道理大家都很懂, 对于最后一句话, 从物理角度论证, 力与反作用力;
开发的路在何方 v1.0(以小菜鸡的笔者的角度, 勿喷)
名门子弟
: 非大厂与他们无缘, 经常见于知名源码中(巅峰博主也在其中), 是许多开发的见识天花板;中流砥柱
: 可以说是那些优秀博主为代表的, 也在大厂混迹, 或者辗转成为中厂支柱的大神;技术大于一切
: 那些热爱Code, 以技术为信念, 能够带动身边人, 也是大家口中的黑马级别;技术为基础
: 技术积累到一定程度, 有了新的目标: 产品, 管理, 架构, 运维, 甚至其他性质;技术过活
: 为了生活的意义更重一些, 人生目标并没有太大, 可能被迫内卷; 希望涵盖所有的层次和可对号入座的去选择对应想走的路(不分上下, 只是想表述清楚), 可能不太合理健全, 希望有读者能一起完善, 也希望所有的开发都能够在自己选择的路上有所收获, 幸福健康快乐.
二.正文.
3. 详解创建Document的五步
补充一个很重要的小知识点:
// 按照书籍镜面对称来设置左右 margin.
document.setMarginMirroring(true);
// 按照书籍镜面对称来设置底部和顶部 margin.
document.setMarginMirroringTopBottom(true);
3.2 获取一个PdfWriter的实例
这个PdfWriter这个类内容较多, 有很多难理解的知识点. 它的主要职责就是字面意思: 写PDF文件. 也可以添加内容,比如注释等. Document文档类是为了添加一些高级元素的, 而PdfWriter是为了处理一些非Document无法做到的低等级元素写入, 而且可以直接将内容写入文件中.
对于上边讲到的HelloWorld 案例中, PdfWriter主要做了两步:
1. 将Document关联到一个PdfWriter上. 这个writer将监听这个document. 像Paragraph这样的高级元素,将转换为低级操作. 比如 paragraph 会转化成文本的内容, 放在这一页的特定位置上, 并进而转告页数和margins, 这样的Pdf语法, 从而将内容写入到Pdf中.
2. PdfWriter的第二个参数是将一个FileOutputStream, 这个就简单了, 这个stream可以将Pdf生成到我们的目标目录.
值得注意的是, 在极少数情况下, 在创建这个writer实例的时候可能会造成DocumentException;
PdfWriter的第二个参数是 OutputStream 可以满足我们各种要求, 也可以传入ByteArrayOutputStream 用来转换成字节数组, 我想这样我们就通透了.
下一节: 3.3 打开Document 这就是我们的第三篇更文挑战内容, 就先到这里, 欲知后文, 且听下文;