PDFTK, CODE128 и UTF-8

Я привык заполнять PDF-формы из PHP, используя PDFTK. Недавно меня попросили вставить штрих-код code-128 в PDF. Для этого я создал PDF-файл с несколькими текстовыми полями для удобочитаемых записей и специальными текстовыми полями, текст которых отображается специальным шрифтом, представляющим символы кода 128. Этот шрифт можно найти здесь: http://www.jtbarton.com/Barcodes/Code128.aspx . Единственная разница между читаемыми человеком полями и штрих-кодом заключается в шрифте, используемом для отображения символов.

До этого шага все работало нормально. С помощью Adobe Reader я могу скопировать и вставить готовый штрих-код в свое специальное поле, он отображается очень хорошо, этот код может быть отсканирован считывателем штрих-кода. Примером является Ñ000002HÓ (Ñ - стартер, затем мои данные 000002, контрольная сумма H следует, и все заканчивается пробкой Ó).

Тогда у меня возникают проблемы при попытке заполнить форму PDFTK. Если я пытаюсь заполнить свое специальное поле с помощью Ñ000002HÓ, оно отображает только символы в таблице ASCII (то есть 000002H) и отображает какие-то квадраты вместо ожидаемых символов штрих-кода для Ñ и Ó. Еще более удивительно, что попытка заполнить читабельные поля одной и той же фразой Ñ000002HÓ работает как шарм.

Я проверил, что оба вида полей получают одинаковую последовательность символов (включая кодировку utf-8), я проверил, что шрифт был хорошо внедрен, чтобы предотвратить проблемы с отображением, я убедился, что файл XFDF правильно сформирован и т. Д.

Здесь образец XFDF, используемый для заполнения формы PDF полями с именами «человек» и «штрих-код»

<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
    <fields>
        <field name="human"><value>Ñ000002HÓ</value></field>
        <field name="barcode"><value>Ñ000002HÓ</value></field>
    </fields>
</xfdf>

Боюсь, у меня больше нет идей, как решить эту проблему. Если вы это сделаете, ваша помощь будет высоко ценится.

2
задан 9 May 2016 в 17:06

1 ответ

Наконец, я нашел решение. Более точно обходное решение.

кажется, что PDFTK не обрабатывает символы UTF-8, правильный путь со встраивает шрифты Идентификационных-данных-H, примененные к полям формы. Для рендеринга PDF, регистрируют правильный путь, вместо замена поле с содержанием, просто устанавливают это содержание как значение по умолчанию из этого поля. Это заставит Acrobat обработать процесс рендеринга поля формы вместо того, чтобы делегировать его к PDFTK.

Для этого просто добавляют need_appearances к командной строке PDFTK.

ПРИМЕЧАНИЕ - поле формы остается в PDF, созданном PDFTK, означая, что его содержание может затем быть изменено пользователем в Adobe Reader.

1
ответ дан 10 May 2016 в 03:06
  • 1
    Я недавно должен был обновить снова, так как никакой не фиксирует, поставляются 17,04 больше и попробовал Terry Dixon' s вариант этого решения. Работы для меня, спасибо. – Mena 27 January 2018 в 06:18

Другие вопросы по тегам:

Похожие вопросы: