2010-07-31 3 views

답변

0

PDF에 텍스트를 쓸 때 올바른 글꼴과 인코딩을 사용하십시오. libharu 문서에서 모든 가능성이 있습니다 귀하의 경우 http://libharu.sourceforge.net/fonts.html

을, 당신은 (스페인어)에 ISO8859-11Thai, TIS 620-2569 character set

예를 사용해야합니다 : 나는 상형 문자 텍스트를 렌더링 성공했다

HPDF_Font fontEn = HPDF_GetFont(pdf, "Helvetica-Bold", "ISO8859-2"); 
    HPDF_Page_TextOut(page1, 50.00, 750.00, [@"Código para correcta codificación en libharu" cStringUsingEncoding:NSISOLatin1StringEncoding]); 
1

(타이 인이 아니라, 중국어와 일본어) libharu를 사용했다. 우선 유니 코드 모드를 사용했습니다. HPDF_UseUTFEncodings() 함수 설명서를 참조하십시오. 여기 docHandle

HPDF_UseUTFEncodings(docHandle); 
HPDF_SetCurrentEncoder(docHandle, "UTF-8"); 

가 유효한 HPDF_Doc 객체입니다 C 언어에 대한

, 여기 당신의 문제를 극복하기 위해 필요한 libharu API 호출의 순서입니다. 당신이 타이어 문자를 포함하는 유니 코드 텍스트를 렌더링 할 수 이러한 호출 후

const char * libFontName = HPDF_LoadTTFontFromFile(docHandle, fontFileName.c_str(), font_embed::EmbedFonts); 
HPDF_Font font = HPDF_GetFont(docHandle, libFontName, "UTF-8"); 

:

다음 부분은 UTF 글꼴과 적절한 작업을합니다. 또한 플래그 포함 (LoadTTFontFromFile의 세 번째 매개 변수)에 유의하십시오. PDF 파일은 외부 글꼴 참조로 인해 읽을 수 없습니다. 출력 PDF 크기에 열중하지 않으면 글꼴 만 포함시킬 수 있습니다.

Google에서 발견 된 몇 가지 태국어 .ttf 글꼴을 테스트했는데 OK로 렌더링되었습니다. 또한 (중요 할지도 모르겠지만) 모르겠다. libharu https://github.com/kdeforche/libharu의 포크를 사용하고 있는데, 이제 master 브랜치에 병합된다.

관련 문제