2011-11-22 3 views
5

Java 응용 프로그램이 iText를 사용하여 PDF를 만듭니다. 때로는 내용이 아시아인데 작동하지 않습니다. 아시아 문자는 표시되지 않습니다.아시아 문자를 지원하도록 iText를 구성하는 방법은 무엇입니까?

iText 다운로드 페이지에서 iTextAsian.jar을 찾았지만 사용 방법을 모른다.

목표는 내가 가장 좋아하는 글꼴을 기본값으로 사용하는 것입니다. 그러나 문자를 사용할 수없는 경우이 문자에 다른 글꼴이 사용됩니다. 내가 읽은 iText는 자동으로 글꼴을 선택할 수 있지만 어떻게 구성 할 수 있습니까?

사용자가 자신의 컴퓨터에 아시아 글꼴을 설치할 필요가 없도록 모든 필수 글꼴을 PDF에 포함시키고 싶습니다.

+0

"기호"가 아니며 문자입니다. – NullUserException

+0

사용자가 모두 PDF 뷰어와 함께 아시아 글꼴 팩을 설치했는지 또는 설치된 PDF 뷰어의 기반을 제어 할 수 있는지 확인할 수 있습니까? 그렇지 않다면 PDF 임베디드 글꼴을 사용하면 결과 PDF가 너무 커집니다. iText는 문서에 필요한 문자 모양 만 포함합니다. –

+0

사용자를 제어 할 수 없습니다. PDF를 생성하는 웹 응용 프로그램입니다. 매우 큰 PDF는 아시아 문자가없는 PDF보다 좋습니다. 다음 단계는 사용자 컨텐트에 아시아 문자가 포함되어 있는지 감지하고 그에 따라 추가 글꼴을 포함하지 않고 건너 뛸 수 있습니다. – Witek

답변

2
  • "FontSelector"를 정의한 다음 글꼴 (fontSelector.AddFont)을 추가 할 수 있습니다. 이제 iText는 fontSelector.Process 메서드를 사용하여 다음에 정의 된 글꼴에서 사용할 수없는 문자를 선택합니다.
  • 아시아 문자는 일반적으로 유니 코드이므로 Ansi 대신 "BaseFont.IDENTITY_H"(예 : FontFactory.GetFont ("tahoma", BaseFont.IDENTITY_H))를 설정해야합니다.
  • RTL 인 경우 방향 속성을 실행 한 요소에 텍스트를 래핑하고 rtl로 설정해야합니다.
+0

addFont()를 통해 어떤 글꼴을 추가해야합니까? – Witek

+0

BaseFont.IDENTITY_H는 선택한 .ttf 글꼴을 최종 PDF에 포함합니다. 따라서 해당 언어의 완전한 문자를 가진 글꼴을 찾으십시오. – VahidN

+0

웹 사이트의 사용자는 어디에서나 올 수 있으므로 선택자에게 모든 문자의 글꼴을 추가해야합니다. 맞습니까? 알아내는 방법, 어떤 (10?) 무료 글꼴이 함께 모든 문자의 99 %를 차지합니까? – Witek

관련 문제