c++ - 是否可以重新初始化 pdf 文件中的图形状态?

标签 c++ pdf

我想用 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/

相关文章:

c++ - 如何在不清除文件的情况下使用 ofstream 多次写入文件?

c++ - &foo::function 和 foo::function 有什么区别?

c++ - 通过 HTTPS 从 POCO StreamCopier 获取文件下载进度

c++ - 一个简单的 C++ 委托(delegate)实现,但它是 'cheats' 标准。意见?

PHP FPDF 无法在 Chrome 中加载 PDF 文档

c++ - 带有 qt5 (qml) 的无框窗口

java - iText PDF writer 有没有办法动态检查 PDF 大小?

PHP,从 HTML 生成 PDF 文件

iphone - ios将网页保存为pdf

html - 嵌入在 PDF 文件中的附件无法在 Chrome pdf 查看器中打开/预览