Nat*_*ara 6 java pdf text itext
我iText用来创建我的PDF文件.
我想使用我在这里找到的方法在文档中的某个特定位置放置文本:itext定位文本绝对.
但是,我无法弄清楚在哪里可以找到页面坐标系的原点.
bottom left corner?top right corner?bottom right corner?top left corner?
这个起源在哪里?
页面的维度(也称为页面边界)在页面字典中定义:
/MediaBox:物理介质(页面)的边界.此值是必需的,因此您可以在每个PDF中找到它./CropBox:显示或打印时可见的区域.的/CropBox是等于或小于较小/MediaBox.该值是可选的; 如果它丢失了,那就/CropBox等于了/MediaBox./BleedBox,/TrimBox和/ArtBox.这些已经被定义用于特定目的,但是它们不再被使用.如果它们丢失了,它们默认为/CropBox.这些价值观都不会超过/CropBox.使用iText创建文档时,/MediaBox可以显式或隐式地定义文档.
明确:
Rectangle rect = new Rectangle(20, 20, 300, 600);
Document document = new Document(rect);
Run Code Online (Sandbox Code Playgroud)
隐:
Document document = new Document();
Run Code Online (Sandbox Code Playgroud)
这一行相当于:
Rectangle rect = new Rectangle(0, 0, 595, 842);
Document document = new Document(rect);
Run Code Online (Sandbox Code Playgroud)
传递到四个参数Rectangle构造(llx,lly,urx,ury)限定使用x和左下的y坐标和右上角的矩形.
在这种情况下new Rectangle(0, 0, 595, 842),页面的左下角与坐标系的原点重合(0, 0).页面的右上角与坐标重合(595, 842).
所有测量都以用户单位定义,默认情况下,用户单位大致对应于印刷点:1个用户单位= 1个点.
请注意粗略这个词:我们使用点进行计算,但在ISO标准中,我们非常谨慎,不要将point用作用户单元的同义词.例如:一个A4页面用842个用户单位测量595个,但是如果你用点计算精确值,则会有一点点差异(点之后的一些数字).
页面的左下角并不总是坐标系的原点.如果我们使用定义页面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);
Run Code Online (Sandbox Code Playgroud)
通过像这样定义媒体框,您还可以传递有关不同页面的相对位置的信息.如果将4个A4页面视为一个单元,坐标系的原点就是A2页面的精确中心.
重要:
以上所有假设您没有引入任何坐标转换,例如使用concatCTM()或transform()方法.这些方法允许您更改坐标系,例如将x和y轴之间的角度从90度(默认值)更改为另一个角度.您还可以缩放轴以获得不同的宽高比.虽然这样做很有趣,但它需要相当多的数学.
| 归档时间: |
|
| 查看次数: |
6054 次 |
| 最近记录: |