2011-02-27 4 views
10

html-to-pdf 변환에 성공했지만 특수 문자가 아닙니다.dompdf 특수 문자

다음은 Mac에서 브라우저에 표시 할 때 사용하는 특수 문자입니다. HTML 문서에 넣으면 표시됩니다. (그러나 내 창문 상자에는 없습니다)

<?php 
require_once("../dompdf_config.inc.php"); 
$html = '&#8364;'; 
$dompdf = new DOMPDF(); $html = iconv('UTF-8','Windows-1250',$html); 
$dompdf->load_html($html); 
$dompdf->render(); 
$dompdf->stream("contract.pdf"); 
exit(0); 
?> 

계속 "?" (물음표)가 표시됩니다. 특수 문자와 관련하여 많은 문제가 있음을 알고 있지만 실제로 사용하고있는 코드를 사용해 보겠습니다.

DomPdf가 권장되는 html-to-pdf 변환 도구가 아닌 경우 다른 권장 사항을 따르도록하겠습니다.

+0

당신이 PDF 내에서 사용중인 글꼴 내에 표현하려는 문자가 있습니까? – Orbling

+1

나는 그 사실을 몰랐다. 어떻게 찾았습니까? – coffeemonitor

답변

3

0.6.x 이전의 것은 iso-8859-1 인코딩 이외의 문자에 대한 지원이 제한되어 있습니다. 유로는 적절한 Windows ANSI 문자 코드 (&#0128;)를 사용하여 0.5.x에서 지원되지만, 그렇지 않으면 일부 PDF 인코딩 고리를 뛰어 넘어야합니다.

0.6.0 릴리스는 "특수"문자를 더 잘 지원합니다. 기본 인코딩은 Windows ANSI를 기반으로합니다 (PDF 1.3 사양에서 인정되는 소수의 인코딩 중 하나). 유니 코드 기반 글꼴을로드하고 dompdf에서 유니 코드를 활성화하고 문서에서 해당 인코딩을 지정하면 더 나은 문자 지원을 사용할 수 있습니다.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
 
</head> 
 
<body> 
 
    <p>€</p> 
 
</body> 
 
</html>
이 가 이 가 (또는 테스트에서 유로 엔티티 &euro;을 사용 게으른로)

있다

: 다음은 DOMPDF 0.6.0 이상에서 작동합니다

필요한 단계를 요약 한 문서는 enable Unicode support in DOMPDF입니다. 플러스 overview of how to load fonts에 대한 답변을 읽어보십시오.

13

UTF-8 HTML 페이지를 변환 할 때 DOMPDF에 문제가 발생했습니다. 는 단순히

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

머리 < 사이> 태그를 추가하여 문제를 해결했다. 인코딩 유형을 설정하면 대안이 될 수도 있습니다.

+0

나는 여기서 많은 시간을 보냈지 만 같은 pdf 인스턴스에서'stream()'과'output()'메소드를 사용하지 않는다. 만약 당신이 일을 실 거예요. – dbr

6

DOMPDF 라틴어 터키어 (Türkçe) 숯 문제, 내 솔루션 % 100 Work.

서버 requirenment 제어 : Server requirenment control

샤아 '데자뷰의 산세 모노'(터키어 지원) OR :

1 단계 : dompdf_config.inc.php 편집

mb_internal_encoding('UTF-8'); 
def("DOMPDF_UNICODE_ENABLED", true); 

2 단계 : lib/fonts/dompdf_font_family_cache.dist.php 코드 추가 편집 :

'futural' => 
    array (
    'normal' => DOMPDF_FONT_DIR . 'FUTURAL', 
    'bold' => DOMPDF_FONT_DIR . 'FUTURAL', 
    'italic' => DOMPDF_FONT_DIR . 'FUTURAL', 
    'bold_italic' => DOMPDF_FONT_DIR . 'FUTURAL', 
), 

3 단계 : lib/fonts 폴더를 복사하기위한 글꼴 파일을 doqnload하십시오. Download font files Linkhttp://www.2shared.com/file/k6hdky_b/fonts.html

4 단계 : 코드 편집 예 :

require_once("dompdf_config.inc.php"); 
$html='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<style> 
    html{padding:-30px;} 
    body { font-family: futural; } 
</style> 
</head><body>'; 
$html.='ı İ Ş ş ç Ç ö Ö ü Ü ğ Ğ ÿ þ ð ê ß ã Ù Ñ È » ¿ İsa Şahintürk'; 
$html.='</body></html>'; 
if (isset($html)) { 
    if (get_magic_quotes_gpc()) 
    $html = stripslashes($html); 
    $old_limit = ini_set("memory_limit", "16M"); 
    $dompdf = new DOMPDF(); 
    $dompdf->load_html($html,'UTF-8'); 
    $dompdf->set_paper('a4', 'portrait');// or landscape 
    $dompdf->render(); 
    $dompdf->stream("limitless.pdf"); 
exit(0); 
} 

끝 마침 PDF> 예를 그물에 모든 솔루션을 시도 후 enter image description here http://limitsizbilgi.com/pdf/dompdf-chartest.pdf

+0

내 서버에 mbstring 확장이 누락되었습니다. 대답을 주셔서 감사합니다 – Ejaz

4

. 나는 dompdf를 수정하지 않고 풀 수 있었다. 문제는 html 콘텐츠에있었습니다. 난 그냥 올바른 올바른 HTML 구조를 추가하고 물론 글꼴을 설정했다. v0.6.0 및 v0.6.1에서 테스트되었습니다. 여기 코드를 남깁니다

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 

<head> 
    <meta http-equiv="Content-Type" content="charset=utf-8" /> 
    <style type="text/css"> 
    * { 
     font-family: "DejaVu Sans Mono", monospace; 
    } 
    </style> 
</head> 

<body>your content ćčžšđ...</body> 

</html> 
1

다른 문자 세트를 사용해야합니다. 예를 들어 dejavu Sans Mono. 코드

<style> 
*{ 
    font-family:"DeJaVu Sans Mono",monospace; 
} 
</style> 

난이도에 대해 this 비디오에서 말했다 추가합니다.

+0

그것은 나를 위해 작동합니다.! 감사 – PawelW