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

368 阅读3分钟

「这是我参与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的子类. image.png

但是要注意一点, 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-当前页面的显示放大到刚好适合边界内容框(包围其所有内容的最小矩形)
FITHtop将显示该页面,以便该页面适合文档窗口水平(页面的整个宽度可见)。额外参数指定页面上边缘的垂直坐标。
FITBHtop此选项几乎与FITH相同,但边界框的宽度不同页面的最后一页是可见的。这不一定是整个页面的宽度。
FITVleft将显示该页面,以便该页面适合文档窗口垂直(页面的整个高度可见)。额外参数指定页面左边缘的水平坐标。
FITBVleft此选项几乎与FITV相同,但边界框的高度不同页面的最后一页是可见的。这不一定是整个页面的高度。
XYZleft,top,zoom参数left定义X坐标,top定义Y坐标,zoom定义缩放因子。如果你想保持当前的X坐标、Y坐标或缩放因子,可以传递负值或者对应的参数为0。
FITRleft,bottom,right,top这些参数定义了一个矩形。页面将与其内容一起显示放大到刚好适合这个矩形。如果需要缩放水平放大和垂直放大的因素是不同的,使用两者中较小的一个。

好, 今天我们就先讲到这里, 时间有限. 明天继续.