我正在尝试将存储在PDF中的图像作为流提取。虽然我可以轻松地做到这一点,但我无法获得准确的图像旋转信息。我正在寻找特定的信息,如MediaBox,旋转和横向/纵向模式。
当我提取图像时,它的对齐方式与最终用户使用pdf阅读器工具看到的不一致。
我二进制比较了两个PDF(其中一个图像在前者中旋转了90,同一个图像在后者中旋转了270)并且我发现了特定流对象的差异。但是,我无法弄清楚该流信息是什么。
以下是我正在讨论的两个文件:
http://bit.ly/eQZGKJ http://bit.ly/g43Whb
答案 0 :(得分:4)
页面上显示的图像的位置,大小和方向由当前变换矩阵(CTM)确定。您必须执行整个页面内容流,以确定显示图像时的CTM。这就像是PDF页面的虚拟渲染。
答案 1 :(得分:1)
几乎每个图像都被称为CTM(当前变换矩阵)存储。它为读者提供有关图像位置,旋转和偏斜的信息。
答案 2 :(得分:1)
检查 cm 运算符,它在pdf参考中描述为“通过连接指定的矩阵修改当前变换矩阵(CTM)”(参见第4.2.1节“坐标空间”)。尽管操作数指定一个矩阵,它们被写成六个单独的数字,而不是数组。“在您的PDF文档中:
所以我们可以说你的图像顺时针旋转90度或反方向旋转90度。 (和翻译)
答案 3 :(得分:0)
它也可以有一个剪辑,因此您只能看到部分图像。 MediaBox和旋转与整个页面相关。