Как учитывать синтаксис-пробел при разборе данных PDF? - PullRequest
0 голосов
/ 03 марта 2019

Мой вопрос о синтаксисе, используемом в файлах PDF.В документации ( PDF32000_2008.pdf , pdf_reference_1-7.pdf ) указано, что такое пробел:

пробел
символы, которые отделяют синтаксические конструкции PDF, такие как имена и числа друг от друга;символы пробела: ГОРИЗОНТАЛЬНАЯ ЗАКЛАДКА (09h), LINE FEED (0Ah), FORM FEED (0Ch), возврат каретки (0Dh), пробел (20h);(см. Таблицу 1 в 7.2.2, «Набор символов»)

Примечание: Имейте в виду, что пробел относится к данным / содержимому файла PDF (т.е.при открытии в редакторе vim), а не в визуализированной презентации (т.е. при просмотре в pdf-ридере)

Насколько я понимаю, это будет означать, что это действительный объект PDF

1 0 obj
<< /Type /Catalog 
/Pages 2 0 R
>>
endobj

, где между двумя объектами типа (name): /Type и /Catalog есть символ SPACE (20h), выполняющий указанную цель "отделить [эти два] PDF-синтаксические конструкции".

Однако, оказывается, что я могу опустить пробелы, все еще производя те же самые визуализированные результаты (в программах pdf.js и evince).Поэтому мой вопрос - это эквивалентная альтернатива коду, показанному выше

1 0 obj
<< /Type/Catalog/Pages 2 0 R>>
endobj

1 Ответ

0 голосов
/ 03 марта 2019

Да, это законно.

Сразу после описания пробельных символов вы найдете следующее: (выделение добавлено)

Символы-разделители (, ), <, >, [, ], {, }, / и % являются специальными.Они разграничивают синтаксические объекты, такие как строки, массивы, имена и комментарии.Любой из этих символов завершает предшествующую ему сущность и не включается в сущность.

Таким образом, вам не нужны пробелы перед /.

...