2

我正在寻找 PDF 1.7 的语法(BNF 或变体)

绝对不能用谷歌搜索

4

2 回答 2

5

我不知道任何形式的 PDF 文件格式的正式规范,语法形式,BNF 与否。

但我碰巧知道,目前致力于 PDF-2.0 规范的 ISO 技术委员会 171/SC2 的议程主题是“来自特设委员会的更新:[...] iv. 用于验证 PDF 的文件格式语法文件(L. Rosenthol)”,用于 2012 年 9 月 11 日至 12 日在柏林举行的下一次面对面会议。——我认为哪个议程项目“有些人似乎对 PDF 语法的更正式描述感兴趣“ ... :-)

Leonard Rosenthol 是一名 Adob​​e PDF 高层,他经常在 Adob​​e 用户论坛上回答问题。也许在那里问一个问题是个好主意?很有可能,你会得到比这里更好的答案。

于 2012-06-13T16:35:35.707 回答
3

PDF 是一种非上下文无关的二进制格式。例如,在 PDF 中,您需要在解析流之前读取和解释二进制流的大小。

例子:

10 0 obj
<</Type /XObject
/Subtype /Image
/Width 260
/Height 52
/ColorSpace /DeviceRGB
/SMask 10 0 R
/BitsPerComponent 8
/Filter /FlateDecode
/Length 4570>> stream
--- insert binary data here ---
endstream
endobj

无法判断您的二进制数据是否包含令牌endstreamendobj内部,因此您别无选择,只能在解析之前读取流的长度。

BNF 只能用于上下文无关文法,因此无法为 PDF 构造 BNF 文法。

在此处查看规范: PDF 参考文档

于 2012-06-13T13:58:00.993 回答