Определяющим здесь является не то, что \r
- он просто вставляется вместо обычного пробела для удобства чтения, а тот факт, что ri
является оператором .
AПоток содержимого PDF использует синтаксис польской нотации на основе стека: value<sub>1</sub> value<sub>2</sub> ... value<sub><em>n</em></sub> operator
Полный синтаксис вашего ri
, например, объясняется в таблице 57 на стр.127:
намерение ri (PDF 1.1) Установка цели цветопередачи в графическом состоянии (см. 8.6.5.8, «Рендеринг содержимого»).
, и идея заключается в том, что это действительно появляется в таком порядке внутри потока контента.(... Я попытался найти подходящий пример вашего ri
в использовании, но не могу найти его; даже в самом файле ISO PDF, на который вы ссылались.)
Случайный фрагмент кода из другого источника:
q
/CS0 cs
1 1 1 scn
1.5 i
/GS1 gs
0 -85.0500031 -14.7640076 0 287.0200043 344.026001 cm
BX
/Sh0 sh
EX
Q
(отступ предоставлен моим собственным устройством чтения PDF) показывает операндов (/CS0
, 1 1 1
, 1.5
и т. Д.) С операторами (cs
, scn
, i
и т. Д.) В конце каждой строки для ясности.
Это объясняется в 7.8.2 Потоки контента :
...
Поток контента после декодирования с использованием любых указанных фильтров должен интерпретироваться в соответствии с правилами синтаксиса PDF, описанными в п. 7.2 «Лексические соглашения».Он состоит из объектов PDF, обозначающих операнды и операторы. Операнды, необходимые оператору, должны предшествовать ему в потоке. См. ПРИМЕР 4 в 7.4, «Фильтры», для примера потока содержимого.
(мой акцент)
7.2.2 Набор символов указывает, что внутри потока контента такие символы пробела, как табуляция, новая строка и возврат каретки, являются только разделителями и могут встречаться в любом месте и в любом числе (> =1) между операндами и операторами.В нем упоминается
ПРИМЕЧАНИЕ. В примерах этого стандарта используется соглашение, согласно которому токены располагаются в строки.Однако примеры использования пробелов для отступов приведены исключительно для ясности изложения и не должны быть включены в практическое использование.
- к которому я могу добавить, что большинство PDFсоздание программного обеспечения действительно пытается разграничить «строки», состоящие из последовательности операндов-операторов с возвратами.