PDFTK, CODE128 및 UTF-8

PDFTK, CODE128 및 UTF-8

저는 PDFTK를 사용하여 PHP에서 PDF 양식을 채우는 데 익숙합니다. 최근 PDF에 code-128 바코드를 삽입하라는 요청을 받았습니다. 이를 위해 사람이 읽을 수 있는 항목을 위한 여러 텍스트 필드와 code-128 기호를 나타내는 특수 글꼴로 텍스트를 렌더링하는 특수 텍스트 필드가 있는 PDF를 만들었습니다. 이 글꼴은 여기에서 찾을 수 있습니다:http://www.jtbarton.com/Barcodes/Code128.aspx. 사람이 읽을 수 있는 필드와 바코드 필드 간의 유일한 차이점은 문자를 표시하는 데 사용되는 글꼴입니다.

이 단계까지는 모든 것이 잘 작동합니다. Adobe Reader를 사용하면 준비된 바코드를 특수 필드에 복사하여 붙여넣을 수 있으며 렌더링이 잘 되고 이 코드를 바코드 리더로 스캔할 수 있습니다. 샘플 예는 다음과 같습니다 Ñ000002HÓ( Ñ는 시작이고, 그 다음은 내 데이터이고 000002, 체크섬이 H따르고 전체가 스토퍼로 끝납니다 Ó).

그런 다음 PDFTK로 양식을 작성하려고 하면 문제가 발생합니다. 특수 필드를 채우려고 하면 Ñ000002HÓASCII 테이블(예: )의 문자만 렌더링되고 및 000002H에 대해 예상되는 바코드 기호 대신 일종의 사각형이 표시됩니다 . 더 놀라운 점은 사람이 읽을 수 있는 필드를 똑같은 문구로 채우는 것이 아주 매력적이라는 것입니다.ÑÓÑ000002HÓ

두 종류의 필드 모두 정확히 동일한 문자 시퀀스(utf-8 인코딩 포함)를 수신하는지 확인하고, 표시 문제를 방지하기 위해 글꼴이 잘 포함되었는지 확인하고, XFDF 파일의 형식이 올바른지 확인했습니다.

다음은 'human' 및 'barcode'라는 필드로 PDF 양식을 채우는 데 사용되는 XFDF 샘플입니다.

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

이 문제를 해결하는 방법에 대한 아이디어가 더 이상 없습니다. 그렇게 하시면 귀하의 도움에 큰 감사를 표할 것입니다.

답변1

마침내 해결책을 찾았습니다. 보다 정확하게는 해결 방법입니다.

PDFTK는 양식 필드에 Identity-H 글꼴을 적용하여 UTF-8 문자를 올바른 방식으로 처리하지 않는 것 같습니다. PDF 파일을 올바른 방식으로 렌더링하려면교체콘텐츠가 있는 필드인 경우 이 콘텐츠를기본값이 분야의. 이렇게 하면 Acrobat이 양식 필드를 PDFTK에 위임하는 대신 렌더링 프로세스를 처리하게 됩니다.

그렇게 하려면 간단히 need_appearancesPDFTK 명령줄에 추가하면 됩니다.

메모- 양식 필드는 PDFTK에서 생성된 PDF에 남아 있습니다. 즉, 해당 내용은 Adobe Reader에서 사용자가 수정할 수 있습니다.

관련 정보