页面的尺寸(也称为页面边界)在页面字典中定义:
-
/MediaBox
:物理介质(页面)的边界。该值是强制性的,因此您会在每个 PDF 中找到它。
-
/CropBox
:显示或打印时可见的区域。这/CropBox
等于或小于/MediaBox
。该值是可选的;如果缺失,则/CropBox
等于/MediaBox
.
- 其他可能的值是
/BleedBox
, /TrimBox
and /ArtBox
。这些是为了特定目的而定义的,但它们不再经常使用。如果缺少,则默认为/CropBox
。这些值都不能超过/CropBox
.
当您使用 iText 创建文档时,您可以定义/MediaBox
显式或隐式。
明确地:
Rectangle rect = new Rectangle(20, 20, 300, 600);
Document document = new Document(rect);
隐含地:
Document document = new Document();
这一行相当于:
Rectangle rect = new Rectangle(0, 0, 595, 842);
Document document = new Document(rect);
传递给的四个参数Rectangle
构造函数(llx
, lly
, urx
, ury
) 使用左下角和右上角的 x 和 y 坐标定义一个矩形。
的情况下new Rectangle(0, 0, 595, 842)
,页面左下角与坐标系原点重合(0, 0)
。页面右上角坐标重合(595, 842)
.
所有测量值均以用户单位定义,默认情况下,用户单位roughly与印刷点相对应:1 个用户单位 = 1 点。
注意这个词roughly:我们使用点进行计算,但在ISO标准中,我们非常谨慎地不使用点作为用户单位的同义词。例如:A4 页面的尺寸为 595 x 842 个用户单位,但如果您以点为单位计算精确值,则会略有差异(点后面的一些数字)。
页面的左下角并不总是坐标系的原点。如果我们定义一个页面使用Rectangle(20, 20, 300, 600)
,原点位于左下角下方 20 个用户单位和左下角左侧 20 个用户单位。也可以使用负值来定义页面大小。
例如:假设您要创建一个由 4 个 A4 页面组成的 A2 文档,则可以这样定义页面大小:
Rectangle(-595, 0, 0, 842) Rectangle(0, 0, 595, 842)
Rectangle(-595, -842, 0, 0) Rectangle(0, -842, 595, 0);
通过这样定义媒体框,您还可以传递有关不同页面相对位置的信息。如果将 4 个 A4 页作为一个单元,则坐标系的原点就是 A2 页的正中心。
重要的:
上述所有内容都假设您没有引入任何坐标变换,例如使用concatCTM()
or transform()
方法。这些方法允许您更改坐标系,例如将 x 轴和 y 轴之间的角度从 90 度(默认)更改为另一个角度。您还可以缩放轴以获得不同的纵横比。虽然这样做确实很有趣,但它需要相当多的数学知识。