2011-10-04 3 views
1

일부 html에서 pdf 파일을 생성하기 위해 TCPDF 생성기 클래스 (TCPDF)를 사용하고 있습니다. 문제는 HTML 텍스트가 일부 utf8 및 유니 코드 문자를 가지고 있다는 것입니다. 이 클래스는 해당 문자를 지원합니다.PHP utf-8 문제

설정을했는데 모두 localhost에서 올바르게 작동합니다. 그러나 웹 호스트에 파일을 업로드하면 흰색 페이지가 나타납니다. exacty 같은 코드를 사용합니다.

유니 코드 및 utf-8 문자를 삭제하면 작동합니다. 스크립트를 복사했지만 서버에서 작동하지 않습니다. 그 문자를 처리하기위한 PHP 설정이 있습니까? 아마 php.ini에있는 게 뭔가? 고마워요

+2

는'추가하기 위해서는 ini_set 확인 ('display_errors를'을, 1); error_reporting (~ 0);'을 스크립트 맨 위로 이동하고 오류 로그를 찾을 수없는 경우 오류 메시지가 표시되는지 찾습니다. – hakre

+0

나는 이것을 joomla 플랫폼에서 사용하고 있습니다. 몇 가지 오류가 있는데, 봇은 내가 작업중인 내 파일과 관련이 없습니다. 또한, mb_ – Gigg

+0

과 관련 없음 라이브러리를 포함하기 위해 경로 구분 기호로 '/'대신 '\'를 사용 했습니까? 이것은 Windows에서 작동하지만 서버에서는'require_once ('lib/tcpdf/tcpdf.php')'를 사용해야합니다. – martinstoeckli

답변

1

PHP에 mbstring 확장 기능이 설치되어 있는지 확인하는 것 외에도 PHP에서 인코딩을 mb_internal_encoding('UTF-8'); 또는 php.ini로 설정해야합니다.

또한 TCPDF에 지정된 글꼴이 UTF-8 문자를 지원하는지 확인해야합니다. 필자는 지난 수년간이 문제에 큰 어려움을 겪었으며 결국에는 TCPDF와 함께 번들로 제공되는 Freesans 및 Freeserif 글꼴을 사용하기로 결정했습니다.

또한 TCPDF 클래스를 인스턴스화 할 때 클래스 생성자의 4 번째 및 5 번째 매개 변수를 설정했는지 확인하십시오. 생략 된 경우 TRUE, UTF-8로 기본 설정해야하지만 항상 확인하도록 지정합니다.

$pdf=new PDF('P', 'mm', 'A4', TRUE, 'UTF-8'); 
$pdf->SetPageOrientation('P', FALSE, $margin_v); 
$pdf->SetMargins($margin_h, $margin_v, $margin_h, TRUE); 

// USE BUNDLED freesans FONT FOR DECENT UTF-8 SUPPORT 
$pdf->setFontSubsetting(TRUE); 
$pdf->SetFont('freesans', '', 11);

docs for the TCPDF constructor