gpt4 book ai didi

pdf - PDF 文档中是否允许使用字节顺序标记?

转载 作者:行者123 更新时间:2023-12-03 21:10:53 24 4
gpt4 key购买 nike

我写的过滤程序有问题。它通过读取文件的前 5 个字节并将其与固定缓冲区进行比较来检测文件是否为 PDF 文档:
25 50 44 46 2D
这工作正常,除了我看到一些以字节顺序标记开头的文件:
EF BB BF 25 50 44 46 2D
^-------^

我想知道 PDF specs 是否真的允许这样做.如果我检查该文档的第 7.5 节,我将其读为“否”:

The first line of a PDF file shall be a header consisting of the 5 characters %PDF– followed by a version number of the form 1.N, where N is a digit between 0 and 7



然而,我在野外看到这些文档并且用户感到困惑,因为 PDF 阅读器程序可以通过我的过滤器拒绝它们来打开这些文档。

那么:在 PDF 文档的开头是否允许 BOM 标记? (我在这里不是在谈论字符串对象,而是在谈论 PDF 文件本身)

最佳答案

So: are BOM markers allowed at the start of PDF documents ?



不,就像您在规范中阅读的那样,在“%PDF”字节之前不允许任何内容。

但 Adob​​e Reader 在接受文件方面有着悠久的历史,尽管有一些前导或尾随垃圾字节。

参见Adobe pdf_reference_1-7 附录 H 中的实现说明:

3.4.1, “File Header”

  1. Acrobat viewers require only that the header appear somewhere within the first 1024 bytes of the file.

  2. Acrobat viewers also accept a header of the form

    %!PS−Adobe−N.n PDF−M.m

...

3.4.4, “File Trailer”

  1. Acrobat viewers require only that the %%EOF marker appear somewhere within the last 1024 bytes of the file.


而且人们倾向于认为 Adob​​e Reader 按需要显示的 PDF 是有效的,但在野外有许多 PDF 确实预先包含垃圾字节。

关于pdf - PDF 文档中是否允许使用字节顺序标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33152615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com