「这是我参与2022首次更文挑战的第28天,活动详情查看:2022首次更文挑战」
PDF神器iText英文版翻译与学习
作者: 薛大郎.
英文原版: iText in Action 2nd Edition.pdf
坚持. 分享. 成长. 利他 !
一. 前言
我减肥了, 将近7-8斤
减肥是个体力活儿, 需要你坚持不懈的努力, 减肥就是让自己吃苦, 拒绝诱惑.
其实对于我本人来说现在也刚刚开始, 本来想着从170减到140多, 奈何爱人建议减到150就行了. 到时候如果真的可以了, 继续保持就好了. 本人不吃猪肉, 拒绝诱惑来说, 比较简单. 重要的是少吃多走. 每天走路上班.
二.正文.
第二章 操作已有Pdf文档.
2.1 引入操作
继续研究PdfAction类. 上一篇中我们讲到PdfAction继承自PdfDictionary, 而实质就是维护的一个/** 这个Map包含所有的键值对, 最后会关联到Document中. */protected HashMap<PdfName, PdfObject> hashMap;
. 那我也就是Key为PdfName, 查看源码可以看到内置了特别多的PdfName供我们使用. 而Value为PdfObject类;
下边为PdfObject的子类.
但是要注意一点, PdfAction的操作是有限制的, 比如下边的例子, 如果我们使用的是Adobe Pdf Reader的话, 会打开一个新的 Tab页, 来打开另一个Pdf文件的第一页, 但是如果你使用的其他浏览器的里内置的Pdf阅读器插件, 那这种操作可能不起效.
PdfAction action = new PdfAction("other.pdf", 1);
// 打开新窗口
action.put(PdfName.NEWWINDOW, PdfBoolean.PDFTRUE);
上一篇我们引入了第一页, 上一页等操作, 但是如果我们想不是跳转到某一页的开始位置, 而是特定的位置怎么办呢? 我们可以使用 PdfDestination 类来实现.
public static final int XYZ = 0;
public static final int FIT = 1;
public static final int FITH = 2;
public static final int FITV = 3;
public static final int FITR = 4;
public static final int FITB = 5;
public static final int FITBH = 6;
public static final int FITBV = 7;
// 下边为PdfDestination的构造函数, 可以看到大部分是需要传入一个int type.
public PdfDestination(int type) {}
public PdfDestination(int type, float parameter) {}
public PdfDestination(int type, float left, float top, float zoom) {}
public PdfDestination(int type, float left, float bottom, float right, float top) {}
public PdfDestination(String dest) {}
这里可以使用表格来说清楚type对应的其他参数可描述:
type | 其他参数 | 描述 |
---|---|---|
FIT | - | 显示当前页面时,其内容被放大到足以适应水平和垂直文档窗口。 |
FITB | - | 当前页面的显示放大到刚好适合边界内容框(包围其所有内容的最小矩形) |
FITH | top | 将显示该页面,以便该页面适合文档窗口水平(页面的整个宽度可见)。额外参数指定页面上边缘的垂直坐标。 |
FITBH | top | 此选项几乎与FITH相同,但边界框的宽度不同页面的最后一页是可见的。这不一定是整个页面的宽度。 |
FITV | left | 将显示该页面,以便该页面适合文档窗口垂直(页面的整个高度可见)。额外参数指定页面左边缘的水平坐标。 |
FITBV | left | 此选项几乎与FITV相同,但边界框的高度不同页面的最后一页是可见的。这不一定是整个页面的高度。 |
XYZ | left,top,zoom | 参数left定义X坐标,top定义Y坐标,zoom定义缩放因子。如果你想保持当前的X坐标、Y坐标或缩放因子,可以传递负值或者对应的参数为0。 |
FITR | left,bottom,right,top | 这些参数定义了一个矩形。页面将与其内容一起显示放大到刚好适合这个矩形。如果需要缩放水平放大和垂直放大的因素是不同的,使用两者中较小的一个。 |
好, 今天我们就先讲到这里, 时间有限. 明天继续.