我想用 C++ 创建一个程序来在 pdf 文件的第一页中添加一个简单的图像。我选择了 libqpdf,因为它使用起来相当简单。但是我发现有一些 pdf 文件,当我将图像添加为页面内容的第一个对象时,图像显示正确,但是当我将图像添加为内容的最后一个对象时,图像显示颠倒并在错误的位置。我怀疑 CTM 被修改并且没有按预期恢复。
是否可以使用 cm 操作重置图形状态 CTM 矩阵?
代码(仍处于非常早期的状态)可以在这里找到:https://github.com/parapente/qpdfImageEmbed
最佳答案
没有。
"cm"始终将矩阵连接到当前矩阵,并且没有运算符来设置它。
这就是为什么大多数 PDF 创建都涉及很多
q
...
Q
对保存和恢复图形状态(包括矩阵)
如果你需要在页面流的末尾添加一些东西,你可以在页面流的最开始写一个“q”命令,在最后添加一个“Q”,结束然后添加你的操作。
关于c++ - 是否可以重新初始化 pdf 文件中的图形状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34361609/