2011-02-09 95 views
5

我想提取存储在PDF中的图像作为流。虽然我可以轻松做到这一点,但我无法获得准确的图像旋转信息。我在寻找特定的信息,如MediaBox,旋转和风景/肖像模式。PDF图像旋转信息存储在哪里?

当我提取图像时,其对齐方式与最终用户看到的pdf阅读器工具不匹配。

我比较了两个PDF(前者旋转了90度的图像,后者旋转了270度的图像),并且发现了特定流对象的差异。但是,我无法确定这些信息流是什么。

这里有两个文件我讲的:

http://bit.ly/eQZGKJ http://bit.ly/g43Whb

回答

1

要存储几乎每一个图像是所谓的CTM(当前变换矩阵)。它向读者提供关于图像的位置,旋转和倾斜的信息。

4

图像在页面上显示时的位置,大小和方向由当前转换矩阵(CTM)确定。您必须执行整个页面内容流才能确定显示图像时所在的CTM。这就像PDF页面的虚拟渲染。

+0

每个页面也可以在页面对象上有一个页面旋转值,您可能需要考虑因素 – 2013-06-25 08:07:35

+0

页面坐标中的图像位置不会随着页面旋转而改变,但是如果您希望屏幕中的图像位置坐标(您显示页面,并且想要知道图像在屏幕上显示的位置),则还需要考虑页面旋转。 – iPDFdev 2013-06-25 12:08:57

0

它也可以有一个剪辑,所以你只能看到图像的一部分。 MediaBox和旋转涉及整个页面。

1

检查厘米运算符,它以pdf参考描述为“通过连接指定矩阵修改当前变换矩阵(CTM)(参见第4.2.1节‘坐标空间’)。虽然操作数指定的矩阵,他们被写成六个不同的数字,而不是数组。“在您的PDF文档:

  1. rotated1.pdf含有 “0 550.08 -743.04 0 743.04 0 CM”
  2. rotated2.pdf含有 “0 -​​550.08 743.04 0 0550.08厘米”

所以我们可以说您的图像顺时针旋转90度或逆向旋转90度。