是否可以在pdf文件中重新初始化图形状态

Is it possible to reinitialize the graphics state in a pdf file?

本文关键字:初始化 图形 状态 文件 pdf 是否      更新时间:2023-10-16

我想用c++创建一个程序,在pdf文件的第一页中添加一个简单的图像。我选择了libqpdf,因为它使用起来相当简单。然而,我发现有一些pdf文件,当我将图像添加为页面内容的第一个对象时,图像显示正确,但当我将该图像添加为内容的最后一个对象时时,图像出现倒置和错误的位置。我怀疑CTM被修改了,没有按预期恢复。

是否可以使用cm操作重置图形状态CTM矩阵?

代码(仍处于早期状态)可以在此处找到:https://github.com/parapente/qpdfImageEmbed

否。

"cm"总是将矩阵连接到当前矩阵,并且没有运算符来设置它。

这就是为什么大多数PDF创建都涉及大量

q
...
Q

对以保存和恢复图形状态(包括矩阵)。

如果你需要在页面流的末尾添加一些东西,你可以在页面流开始的时候写一个"q"命令,在最后添加一个"q",结束然后添加你的操作。