我正在寻找 PDF 1.7 的语法(BNF 或变体)
绝对不能用谷歌搜索
我不知道任何形式的 PDF 文件格式的正式规范,语法形式,BNF 与否。
但我碰巧知道,目前致力于 PDF-2.0 规范的 ISO 技术委员会 171/SC2 的议程主题是“来自特设委员会的更新:[...] iv. 用于验证 PDF 的文件格式语法文件(L. Rosenthol)”,用于 2012 年 9 月 11 日至 12 日在柏林举行的下一次面对面会议。——我认为哪个议程项目“有些人似乎对 PDF 语法的更正式描述感兴趣“ ... :-)
Leonard Rosenthol 是一名 Adobe PDF 高层,他经常在 Adobe 用户论坛上回答问题。也许在那里问一个问题是个好主意?很有可能,你会得到比这里更好的答案。
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
无法判断您的二进制数据是否包含令牌endstream
或endobj
内部,因此您别无选择,只能在解析之前读取流的长度。
BNF 只能用于上下文无关文法,因此无法为 PDF 构造 BNF 文法。
在此处查看规范: PDF 参考文档