Даже после раскрытия всех объектов, текстов (строк и одиночных символов )нет необходимости представлять в ASCII, они могут быть закодированы в шестнадцатеричном -.
Чтобы найти текст, выполните следующие действия:
В расширенном PDF-файле найдите все ключи с именем /Contents
. Это может выглядеть так:
/Contents 8 0 R
Это говорит о том, что содержимое соответствующей страницы находится в объекте номер 8.
Перейти к объекту номер 8. Его можно найти, выполнив поиск по строке'8 0 obj'
В следующих строках, заключенных в скобки строками stream... endstream
, если вы видите в конце строки одно из...
... TJ
, Tj
,'
или"
у вас будет текст, показывающий, что оператор работает.
Предыдущая строка содержит текст, но может выглядеть так:
[(H)0.0976563(e)0.0976563(l)-599.902(l)0.0976563(o)0.0976563(W)0.0976563(o)-599.902(r)0.0976563(l)0.0976563(d)0.0976563(!)]TJ
Эй, тебе повезло! Можете ли вы расшифровать "Hello World!" строка здесь? Промежуточные числа предназначены только для управления размещением отдельных символов....
....а теперь я перестану учить PDF. Вы можете прочитать все подробности в официальной спецификации формата PDF :-)
.Еще одна подсказка :, если вы ищете
мой другой PDF -связанные ответы на StackOverflow ,
Вы можете обнаружить немало примеров, в которых более подробно рассматривается, как читать код PDF.
:%s/\(\D\)\(\d\)/\1\r\2/g
\(\)
— группы захвата. То, что в них запечатлено, воспроизводится \1
и \2
.
\D
— цифра, отличная от -, \d
— цифра.
\r
становится символом новой строки в Vim.
Это упрощается с помощью магического режима регулярного выражения, включенного с помощью\v
:
:%s/\v(\D)(\d)/\1\r\2/g