2015-01-13 3 views
1

이상한 양식 필드 동작과 관련하여 질문이 있습니다.PDF 양식 필드 및 전역 및 필드 기반 DR의 특수 문자

  1. 두 PDF 문서는 모두 텍스트 필드 (들)는 모두가 동일한 iText를 로직을 사용하여 값으로 채워진다 폰트
  2. 로 돋움을 사용하여이 (CP한다. 아래 참조)

필드 값 (/ V)는 두 PDF 모두에 적합하지만 필드 모양은 다릅니다. 하나의 Pdf가 잘 작동하고 있습니다. 다른 하나는 유로 기호 €와 같은 특수 문자 또는 üöäß와 같은 독일어 문자와 같습니다. 대체 글꼴을 정의하려고 시도했지만 (책에서 설명한대로) € 및 ß는 작동하지 않습니다.

유일한 차이점은/DR 사전이 작동하지 않는 PDF의 필드 레벨에 정의되어 있다는 점입니다. 하지만 제가 그것을 제거하면 € 표시가 여전히 작동하지 않습니다.

  1. 모든 : 모두 (다른 PDF가 증명으로) 표준 돋움 글꼴의 일부

    질문 (들) - I는 아시아 또는 여기에 몇 가지 이국적인 유니 코드 문자에 대해 이야기하지 오전, 유의하시기 바랍니다 아이디어 올바르게 작동하지 않는 PDF를 문자를 표시하는 방법?

  2. 아니면 PDF가 어떻게 든 PDF 사양을 위반합니까? (Acrobat을 사용하여 만들었지 만 그렇게 불가능한 것은 아닙니다.)
  3. 는 교체하는 것이 좋습니다 경우 form field font - 나는

업데이트 완벽하게 유효하고 작업 파일을 위해 그렇게하고 싶지 않기 때문에 내가 작업 및 비 작업 PDF 파일을 구별 할 수있는 방법 : 코드는 그러나 완전성을 위해서가 아니라 문제는 (내가 모두에 대한 동일한 코드 이후 그 확신) 여기있다 :

AcroFields acroFields = stamper.getAcroFields(); 
try { 
    boolean successful = acroFields.setField("Mitarbeiter", "öäü߀@"); 
    if (!successful) { 
     //throw some exception 
    } 
} 
catch (DocumentException de) { 
    //some exceptionhandling 
} 
+0

코드를 게시 할 수 있습니까? 성화 문제로 보인다 ... –

+0

또한 : 당신은 원래 양식에 대한 링크를 게시 할 수 있으며, 기입 된 양식에는 게시 할 수 없습니다. 값이 두 형식 모두에 올바르게 저장되어 있지만 PDF 중 하나에서 모양이 잘못 표시됩니다. 즉, iText는 양식을 채울 당시 글꼴에 액세스 할 수 없었습니다. –

+0

정확히 두 값이/V에 올바르게 저장되어 있습니다. 양식 안을 클릭하면 볼 수 있습니다. 그러나 외모가 손상되었습니다. – Lonzak

답변

1

나는 이것에 대해 PDF 레퍼런스에있는 어떤 단서를 찾을 수 있지만하지 않았다 필드에 사용 된 글꼴이 인코딩을 정의하지 않습니다. 그러나 인코딩은 리소스 사전 (/DR) 수준에서 정의됩니다. 해당 인코딩을 사용하면 필드 모양이 올바르게 작성됩니다. ISO 사양은 리소스 사전 수준에서 /Encoding 항목의 존재 여부에 대해서는 언급하지 않습니다.

iText를 약간 업데이트했습니다. revision 6693에서 변경 사항을 확인할 수 있습니다. iText는 이제 폰트 레벨에서 인코딩이 정의되지 않은 경우 /DR 사전에 인코딩 값이 있는지 확인합니다. 이 수정 프로그램을 사용하면 양식이 올바르게 채워집니다.

+0

대단히 감사드립니다. 대단히 감사합니다! 부가 메모 :이 PDF는 Adobe Acrobat에서 생성되었으므로 "버그"입니다. 아마 레오나드가 그걸 밝혀 줄 수 있겠 군. – Lonzak

+0

그것이 버그인지 나는 모른다. Leonard는 대개 다음과 같이 말합니다. 사양에서 제외되지 않는 것이 있으면 금지되지 않습니다. 그러나 : 나는 선명도를 선호한다 ;-) –