我想更改 PDF 坐标系以更改原点 (0,0) -> 从左下角到左上角。因此,例如,当我在 x=5 y=10 的位置书写文本时,它将以从左数起 10 点和从上数(而不是从下数)开始的 10 点书写。
我已阅读 PDF specification它谈到了 CropBox、旋转、坐标变换('cm' 运算符)......但我无法做到。
笔记。在 eps 中,我使用平移和缩放做类似的事情:
% Rescaling and translate
0 95<-(height of the page) translate
1 -1 scale
任何帮助将不胜感激!
最佳答案
PDF 不是 PostScript 之类的编程语言,但与示例中完全相同的原则也适用于此处。您将设置一个转换矩阵,而不是通过不同的 PostScript 调用(“translate”和“scale”)
1 0 0 -1 0 95 cm
这会导致 X 轴保持不变,Y 轴反转并且坐标系的原点移动,因此与您的 EPS 示例中发生的情况完全相同。
您可以在页面开头更改转换矩阵,也可以更改每个单独元素或元素组的转换矩阵。
请记住,“cm”运算符始终与现有转换矩阵连接,它不会设置它。实际上没有办法设置矩阵。
因此,在几乎所有 PDF 文件中,您都会发现类似的结构
q
1 0 0 -1 0 95 cm
...
Q
这将保存当前的图形状态;更改矩阵,然后执行您想要的任何操作,最后将矩阵替换为原始值。
此外,正如 Jongware 和 mkl 在评论中所述;如果像这样翻转坐标系,很可能还需要翻转其他矩阵,例如文本转换矩阵,以确保绘制的对象正面朝上。
关于pdf - 更改 PDF 坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33649952/