【问题标题】:PDF stream encoded using FlateDecode with predictor and not enough data使用带有预测器且数据不足的 FlateDecode 编码的 PDF 流
【发布时间】:2017-10-10 20:54:31
【问题描述】:

是否允许使用带有 PNG 预测器的 FlateDecode 编码的流的最后一个预测器行的列宽与所有其他行的列宽不同? IE。它遗漏了一些数据?

例如,假设一个流已经使用 Flate 算法解码,得到 105 个字节。还有一个参数为<</Predictor 15 /Columns 10>>的预测器。

由于流有 105 个字节,预测器可以解码 10 个完整的行,每行包含 10 列,而一行只有 5 列,即缺少 5 列的数据。最后一行应该解码为只有 5 列的行,还是应该丢弃最后 5 个字节,或者整个流是无效的?

我没有在 PDF 规范中找到任何内容,但我在野外发现了两个具有此类流的 PDF 文件。

【问题讨论】:

    标签: pdf


    【解决方案1】:

    如何处理无效流由您决定,PDF 规范不处理无效数据。

    例如我们取所有可以解码的数据,其余的用0填充。

    【讨论】:

    • 我知道由实施者决定做什么。但是,不清楚这是否是一个 invalid PDF 流,例如,Adobe Acrobat 的 Preflight 检查器说一切正常……许多 CLI 工具出错,而所有经过测试的 PDF 查看器都可以正常工作很好并显示正确的东西
    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 2012-07-28
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 2021-03-23
    相关资源
    最近更新 更多