【问题标题】:Where is PDF image rotation information stored?PDF图像旋转信息存储在哪里?
【发布时间】:2011-06-23 21:31:26
【问题描述】:

我正在尝试将存储在 PDF 中的图像提取为流。虽然我可以轻松做到这一点,但我无法获得准确的图像旋转信息。我正在寻找特定信息,例如 MediaBox、Rotate 和横向/纵向模式。

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

我二进制比较了两个 PDF(其中一个图像在前者中旋转了 90 度,而在后者中相同的图像被旋转了 270 度),我发现了特定流对象的差异。但是,我无法弄清楚该流信息是什么。

这是我说的两个文件:

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

【问题讨论】:

    标签: pdf


    【解决方案1】:

    检查 cm 运算符,在 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 0 550.08 cm”

    所以我们可以说您的图像顺时针旋转 90 度或相反方向旋转 90 度。 (和翻译)

    【讨论】:

    • 您是如何获得这些 CTM 坐标的?
    【解决方案2】:

    它也可以有一个剪辑,因此您可能只能看到图像的一部分。 MediaBox 和旋转与整个页面相关。

    【讨论】:

      【解决方案3】:

      图像在页面上显示时的位置、大小和方向由当前的变换矩阵 (CTM) 确定。您必须执行整个页面内容流以确定显示图像时的 CTM。它就像是 PDF 页面的虚拟呈现。

      【讨论】:

      • 每个页面也可以在页面对象上有一个页面旋转值,您可能需要考虑这个值
      • 图像在页面坐标中的位置不会随着页面旋转而改变,但是如果你想要屏幕坐标中的图像位置(你显示页面并且你想知道图像出现在屏幕上的位置)那么你还需要考虑页面旋转。
      • @iPDFdev 我如何从 PDF 文件中获取(提取)CTM 信息,是否有任何 linux 工具可用?
      【解决方案4】:

      几乎所有图像都存储了所谓的 CTM(当前变换矩阵)。它为读者提供有关图像位置、旋转和倾斜的信息。

      【讨论】:

        猜你喜欢
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        • 2014-11-14
        • 2011-10-26
        • 2012-10-05
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多