2011-05-09 2 views
4

PHP와 TCPDF를 사용하여 utf8로 인코딩 된 온라인 송장을 생성합니다. PT-sans .ttf 파일을 사용하여 tcpdf 웹 사이트의 튜토리얼에 따라 글꼴 정의 파일을 만들었습니다.UTF-8 PDF는 Adobe Acrobat에서 제대로 표시되지만 Illustrator 및 Google 미리보기에서 손상되었습니다.

Adobe Reader로 열면 생성 된 PDF 파일이 잘 보입니다 (악센트가 올바르게 표시됨). 그러나 Adobe Illustrator에서 pdf 파일을 열면 일반 ASCII 문자와 누락 된 문자 기호가 혼합되어 나타납니다. Gmail 미리보기에서 첨부 파일로 열면 텍스트가 전혀 표시되지 않고 이미지 만 표시됩니다.

Foxit 리더와도 일치하지 않습니다. 그것은 하나의 컴퓨터에서 (폰트가 설치된 상태에서) 괜찮 았지만 다른 폰트 (폰트가 설치되지 않은)에서 손상되었습니다.

일러스트 레이터 (왼쪽)와 Foxit 리더 PRINTSCREEN : 여기 http://dl.dropbox.com/u/14647415/illustrator%20and%20foxit.jpg

은 손상된 파일의 복사본입니다 : http://dl.dropbox.com/u/14647415/2011040-3.pdf

PDF의 크기가 ± 200KB를, 그래서 글꼴이 제대로 임베디드 것으로 보인다.

이것은 utf8 글꼴에서 발생하는 것으로 tcpdf 웹 사이트에 설명 된 절차가 포함되어 있습니다. tcpdf 라이브러리와 함께 제공되는 핵심 cid 글꼴을 사용해 보았을 때 악센트 부호가있는 문자가 없거나?로 바뀌었지만 Illustrator에서 전체 레이아웃과 텍스트도 괜찮습니다. Dejavusans 같은 utf-8 글꼴도 손상되어 표시됩니다.

저는 'UTF-8'을 tcpdf 생성자에 전달 된 매개 변수로 사용합니다.

클래스 XTCPDF는 TCPDF 을 {

function __construct(){ 
    parent::__construct('P', 'mm', 'A4', true, 'UTF-8', false); 
    ... 
} 
... 

}

당신이 원인이 될 수 있는지에 어떤 아이디어가 있습니까 확장?

대단히 감사합니다.

p.

답변

3

명백히 글꼴을 자동으로 하위 집합하는 TCPDF로 인해 문제가 발생했습니다. 이로 인해 Acrobat 이외의 응용 프로그램에서 문자 세트 (문자가 "이동", "0"이 'A'등으로 해석 됨)에 문제가 발생했습니다.

$pdf->setFontSubsetting(false); 

하고 사용할 문자 집합을 기반으로, 결과 파일의 크기를 줄이기 위해 수동으로 글꼴을 부분 집합이에

솔루션 설정입니다.

+0

Google 문서에서 TCPDF 생성 파일을 볼 때 텍스트가 렌더링되지 않는 것과 비슷한 문제가 있습니다. 글꼴 하위 집합을 false로 설정해도 문제가 해결되지 않았습니다. 다른 누구에게도 해결책이 있습니까? –

+0

http://dev.piwik.org/trac/ticket/2018 및 https://discussions.apple.com/thread/3140086?start=0&tstart=0도 참조하십시오. $ pdf-> addFont() 및 setFontSubsetting (false) – max4ever

관련 문제