2011-03-20 5 views
1

우리는 Render Plugin을 사용하여 .pdf로 콘텐츠를 렌더링하는 grails 앱을 가지고 있습니다. 영어로는 모두 잘 작동하지만 불행하게도 아랍어 (모든 문자를 렌더링해야 함)의 경우 모든 문자가 "부러진"것처럼 보입니다. 일부 숫자와이 공간 ...Grails/RenderPdf 아라비아어 Chars

플러그인은 iText를 사용하고, 내가 가진 접근을 시도 렌더링 :

... 
def renderer = new ITextRenderer() 
FontResolver resolver = renderer.getFontResolver() 
renderer.getFontResolver().addFont("/usr/share/fonts/truetype/ttf-arabeyes/ae_AlArabiya.ttf", BaseFont.EMBEDDED) 
...

, 그것을 (여기에 사용되는 글꼴 그냥 예입니다)하지만, 어떤 경우에 작동하지 않습니다.

아무도 이런 종류의 문제가있는 경험이 있습니까?

미리 감사드립니다. iText를 글꼴에 대한

답변

0
renderer.getFontResolver.addFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED_SUBSET); 

기본 인코딩은 당신이 원하는 문자가 포함 된 인코딩 ...

네를 지정해야 WinAnsiEncoding, AKA 코드 페이지 1252입니다.

public void addFont(String path, boolean embedded) 
     throws DocumentException, IOException { 
    addFont(path, BaseFont.CP1252, embedded); 
} 

IDENTITY_H가 주어진 글꼴에있는 모든 글리프를 해결 할 수 있습니다 : Google 코드는 사용중인 addFont에 대한 코드의이 비트를 생산했다. 작은 단점이 있지만 항상 추천합니다. IDENTITY_H를 사용하면 글꼴이 iText의 포함 된 하위 집합이됩니다.

+0

답장을 보내 주셔서 감사합니다. 결국 우리는 당분간 .pdf 생성을 우회했지만, 일단 아랍어 .pdf를 다시 사용하면 제안을 시도 할 것입니다. – Iraklis