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

145 阅读3分钟

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

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

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

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

一. 前言

今年你在哪里过年?

疫情之下, 几年了没个像样的年了,尤其是多年都见不上一面的亲人,今年过年可以说是疫情下最可能过好一个年的机会。 那么问题又来了,今年你会在哪里过年呢? 、

  • 就地过年,为国家为社会减轻负担;
  • 跟亲人就地过年,也许这是目前与回老家过年和就地过年一个折中和更好的方案,也可能三个都一样;
  • 回自己老家过年,抖音也在宣传可以回家过年,但是还是建议少拜年串门,少问候跟你没关系的尴尬提问;
  • 回另一方老家过年,大比例的结婚人士会有这样的问题,轮换老家过年,这也是很流行的,但是疫情下可能会打乱之前的规律;

其实不管在哪里过年,都是要开开心心,让身边人开心,然后能够对自己有个总结,在新的一年里为那些还没实现的梦想继续加油,不要让它成为下一年继续努力的目标。

二.正文.

5. 在绝对位置添加内容

这一章节我们会学到怎样处理内容的展示,和调节样式问题。 首先呢, 我们先来看下iText在处理内容上是怎样的一种处理方式:

image.png iText其实是将那内容分成了4层,当我们在使用doc.add()方法时,iText会将Pdf的语法写入包装在PdfContent中的字节缓冲区的字节对象中,当内容足够一页的数据的时候,会将缓冲区以特定的格式添加到Pdf文件中,只有将文本块短语段落的内容放在第③层,而图像,背景,边框或者PdfPCell等添加到了第②层,其他两层时Writer来处理的,我们可以通过PdfWriter来获取两层的内容来处理,第④层在文本和图像的上边使用的是PdfWriter.getDirectContent(),来获取这层的处理内容, 第①层在文本和图像的下边使用的是PdfWriter.getDirectContentUnder()来获取。在iText的术语中, 向①和④层添加内容被称为直接写入或者低级访问,所以我们在制作pdf文件的时候,就需要很好的处理层的关系了。

image.png

这个里边的内容挺多的。 尤其是PdfContentByte这个类中有很多处理上下两层内容的位置和内容的, 可以让我们很方便的添加背景或者水印, 以及上边一层的盖章和图片上添加内容, 当然有很多位置的Api。我们先列出来更大家查看。

两个图片来展示
image.pngimage.png

moveTo时移动的, localXxx以及remoteGoto跟之前介绍锚点一样可以连接到一些地方, showTextAligend是这两层上添加文案展示的。 setRGBColor是处理RGB颜色的, 这里就不一一列举了, 感兴趣的童鞋可以自己尝试处理下。

下边还有一个处理PdfContentByte的工具类,或者叫它格式的工具类,将我们常见的一些展示文本的静态方法提供了出来。 这个我们后边会着重来讲。

image.png