PDFTK, CODE128 y UTF-8

PDFTK, CODE128 y UTF-8

Estoy acostumbrado a completar formularios PDF desde PHP usando PDFTK. Recientemente, me pidieron que insertara un código de barras 128 en un PDF. Para hacerlo, creé un PDF con varios campos de texto para entradas legibles por humanos más campos de texto especiales cuyo texto se representa con una fuente especial que representa símbolos de código 128. Esta fuente se puede encontrar aquí:http://www.jtbarton.com/Barcodes/Code128.aspx. La única diferencia entre los campos legibles por humanos y los de códigos de barras es la fuente utilizada para mostrar los caracteres.

Hasta este paso, todo funciona bien. Con Adobe Reader, puedo copiar y pegar un código de barras preparado en mi campo especial, se muestra muy bien, este código puede ser escaneado por lectores de códigos de barras. Un ejemplo de muestra es Ñ000002HÓ( Ñes un iniciador, luego son mis datos 000002, Hsigue la suma de verificación y el conjunto termina con el tapón Ó).

Luego tengo problemas al intentar completar el formulario con PDFTK. Si intento completar mi campo especial, Ñ000002HÓsolo muestra caracteres en la tabla ASCII (es decir, 000002H) y muestra algún tipo de cuadrados en lugar de los símbolos de código de barras esperados para Ñy Ó. Lo que es más sorprendente, intentar llenar campos legibles por humanos con exactamente la misma Ñ000002HÓfrase funciona de maravilla.

Verifiqué que ambos tipos de campos reciben exactamente la misma secuencia de caracteres (incluida la codificación utf-8), verifiqué que la fuente estuviera bien incrustada para evitar problemas de visualización, me aseguré de que el archivo XFDF esté bien formado, etc.

Aquí se muestra un ejemplo de XFDF utilizado para completar un formulario PDF con campos denominados "humano" y "código de barras".

<?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>

Me temo que no tengo más ideas sobre cómo resolver este problema. Si lo haces, tu ayuda será muy apreciada.

Respuesta1

Por fin encontré una solución. Más precisamente una solución alternativa.

Parece que PDFTK no maneja los caracteres UTF-8 de la manera correcta con las fuentes Identity-H integradas aplicadas a los campos del formulario. Para renderizar el archivo PDF de la manera correcta, en lugar dereemplazandoun campo con un contenido, simplemente establezca este contenido como elvalor por defectode este campo. Esto hará que Acrobat maneje el proceso de representación del campo del formulario en lugar de delegarlo a PDFTK.

Para hacerlo, simplemente agréguelo need_appearancesa la línea de comando PDFTK.

NOTA- El campo del formulario permanece en el PDF creado por PDFTK, lo que significa que el usuario puede modificar su contenido en Adobe Reader.

información relacionada