0

Содержание в формате PDF сохраняется как несколько способов: «(abc) Tj», «(< 0035> < 0035>) Tj" или "\ u065".Как преобразовать код содержимого PDF в тип типа "(<0034>) Tj"?

Я хочу знать, есть ли способ конвертировать PDF-код в один тип, независимо от прямого текста "(abc) Tj" или шестнадцатеричный "(< 0035> < 0035>) Tj" или Octal " \ u065" .

Я думаю, что если конвертировать и кодировать PDF в один тип, будет легче анализировать контент.

Можно ли использовать Ghostscript или что-то в этом роде? Спасибо

+0

Ваш второй пример «нескольких способов» неверен, он должен быть «<00350035> Tj'. Правила преобразования входного формата в точные байты, которые они представляют, обозначены в официальных спецификациях и не так уж сложно реализовать. – usr2564301

ответ

2

По существу, нет, нет способа сделать это. Существует два типа строк: регулярные строки ('и') ', и шестнадцатеричные строки' < 'и'> 'с разделителями. Шестнадцатеричные строки не должны быть экранированы, тогда как регулярные текстовые строки должны быть для «специальных» символов, таких как возврат каретки и перевод строки. Октал также разрешен в обычных строках.

Производители PDF могут смешивать и сопоставлять все, что им нравится, но в целом данный производитель PDF, как правило, использует одну технику повсюду.

Поскольку устройство pdfwrite Ghostscript является производителем PDF, оно (я считаю), как правило, производит все его выходные данные одинаково.

Что это такое не будет do 'конвертирует' ваш исходный файл PDF. Он создает совершенно новый PDF-файл, который должен выглядеть визуально идентичным, но внутренности которого не имеют сходства с вашим оригинальным PDF. Кроме того, некоторые метаданные или верность могут быть потеряны.

+0

Значит, у меня нет способа изменить технику в PDF? – SuperBerry

+1

По существу, нет. Конечно, вы могли бы написать код. Учитывая, что длина <3333> не совпадает с (!!) или (\ 041 \ 041), изменение строкового представления изменяет длину потока контента, что будет означать изменение таблицы xref. Конечно, поток контента, как правило, также будет сжат, поэтому вам нужно его распаковать, изменить строковое представление, повторно сжать его, записать обратно в исходный файл (сдвинуть следующие байты) и, наконец, обновить таблицу xref. Похоже, много неприятностей, чтобы не получить. – KenS

+0

... похоже нет практический * причина * для этого. Формат строк предназначен только для хранения. Любой анализатор PDF должен полностью забыть, как текст «!?» хранится: как '(!?)', как '<213F>', или как '(\ 41 \ 77)'. Формат памяти не сохраняется в памяти «как есть», он будет анализироваться во внутренний формат. – usr2564301

 Смежные вопросы

  • Нет связанных вопросов^_^