2011-02-01 4 views
3

나는 codeigniter에서 플러그인으로 dompdf를 사용하고 있습니다. 그것은 pdf를 완벽하게 생성합니다. 그러나 어떤 문제는 며칠 동안 나를 먹어 치우고 있습니다.dompdf 워터 마크, 이미지, 머리글 및 바닥 글 문제

  1. 내가 생성 된 PDF의 모든 페이지에 머리글로 이미지를 넣고 싶다. 나는 here 주어진 튜토리얼에 따라 그것을했다. 진행률이 없습니다. 나는 pdf를위한 동일한 폴더 wheresript 안에 모든 유형 (jpg, png, gif)의 심상을 위해 거주했다. 그것은 작동하지 않았다. 그럼 내가 이미지와 CSS에 대한 경로 변수를 설정하려고 시도했다. http://code.google.com/p/dompdf/wiki/Usage에 표시된대로.하지만 좋은 예제 또는 튜토리얼을 얻을 수 없습니다. 어떤 몸이라도 이걸 사용 해본 적이 있다면 저를 도와주세요.

  2. 또한 모든 페이지에 워터 마크를 추가하고 싶습니다. 내가 사용하고있는 것을 위해

    $pdf->page_text(110, $h - 240, "TRIAL", Font_Metrics::get_font("verdana", "bold"),110, array(0.92, 0.92, 0.92), 0, -58);.

이것은 잘 작동하며 워터 마크를 생성합니다. 그러나 워터 마크는 워터 마크의 불투명도를 변경하는 content.is가 있습니다. 배열의 매개 변수를 변경하면 변경되지 않습니다.

3. 모든 페이지 끝 (마지막 페이지 제외)에서 "계속 ..."을 입력하고 싶습니다. 내가 사용하고있는 것을 위해

$text = "Continued.."; 
    $width = Font_Metrics::get_text_width($text, $font, $size); 
    $pdf->page_text($w - 16 - $width - 38, $y-15, $text, $font, $size, $color); 

모든 페이지에 텍스트를 넣어야합니다. 마지막 페이지를 제외한 모든 페이지에 텍스트를 삽입 할 수있는 방법이 있습니까?

  1. dompdf의 lib 파일에서 사용할 수없는 글꼴을 설정하는 방법은 무엇입니까?
+0

몸이 어떤 질문에 대한 답변을 가지고 있다면 나를 도와주세요 – sidhartha

답변

2

1) 정확하게 사용하는 코드는 무엇입니까? 인라인 스크립트로 성공을 거둔 것처럼 보이지만 이미지는 아닙니다. 따라서 코드에 문제가있을 수 있습니다.

2) 인라인 스크립트에 문제가 있습니다. HTML 컨텐트 뒤에 표시되어 HTML 컨텐트 상단에 표시됩니다. 인라인 스크립팅을 통해 텍스트를 추가 할 때 불투명 옵션이 사용되었지만 올바르게 작동하는지 확실하지 않습니다. 0.6.0 코드베이스에서 제거되었습니다.

다음 릴리스를 기다려야 할 수도 있습니다. 여기에는 HTML (구체적으로 고정 위치 지정 및 CSS 번역)에서 수행 할 수있는 스타일 옵션이 추가됩니다.

3) 마지막 페이지가 아닌 모든 페이지에 헤더를 표시 할 수 있는지 확신 할 수 없습니다. 개체 표시를 중지하는 옵션이 있지만 후속 페이지에만 영향을 미치는 것으로 보입니다. 따라서 마지막 페이지 이전에 관련 코드를 페이지에 추가해야합니다.

4) 글꼴을 추가하려면 load_font.php를 사용하여 구문 분석 할 수 있어야합니다. 또한 실행 파일 ttf2afm (dompdf 0.5.1) 또는 ttf2ufm (dompdf 0.6.0)에 액세스해야합니다. instructions on how to load fonts이 있거나 web-based font prep tool을 개발할 수도 있습니다.

+0

@ 브라이언, 감사합니다. 네, 인라인 PHP 스크립트를 사용하고 있습니다. 30 분 전에 다음을 수행하여 불투명 문제를 극복 할 수있었습니다. – sidhartha

+0

cpdf_Adapter.cls.php에서 약 685 줄에 아래에 주어진 함수에 두 개의 매개 변수를 더 추가하고 호출 함수에서이 매개 변수를 전달합니다. 함수 page_text ($ x, $ y, $ text, $ font, $ size, $ color = array (0,0,0), $ adjust = 0, $ angle = 0, $ blend = "보통", $ opacity = 1.0) { $ this-> _ page_text [] = compact ("x", "y", "text", "font", "size", "color", "adjust", "angle" , "opacity"); } .header img가 모든 페이지에 들어오지 않습니다 (마지막 페이지에만 제공됨). 포인트 3에 대 한 방법을 말할 수 있습니다 총 pg 카운트 및 현재 pg # soso 얻을 수 비교할 수 있습니다 .so는 메서드를 게시 – sidhartha

+0

@ 브라이언 사용하는 이미지에 대 한 if (isset ($ pdf)) { \t $ path = base_url(); // 기본 경로는 codeigniter config에서와 같이 기본 디렉토리로 설정됩니다. $ dompdf = new DOMPDF(); $ dompdf -> set_base_path ($ path); $ basepath = $ dompdf-> get_base_path(); $ img_w = ​​1.5 * 72; // 지점에서 1.5 인치 $ img_h = 0.9 * 72; // 0.9 인치, 포인트 - 필요한대로 변경하십시오. $ pdf-> image ($ basepath. "path_to_folder/logo.png", "png", 30, 30, $ img_w, $ img_h); }이 경우 이미지는 마지막 페이지에만 들어갑니다. 모든 요구 사항은 모든 페이지에 적용됩니다. – sidhartha

1

DOMPDF_ENABLE_PHP이 dompdf_config.inc.php에서 진정한로 설정되어 있는지 확인합니다 ~받는 신뢰할 수없는 소스에서 오는 어떤 여과되지 않은 내용이있을 경우 0.6.2 라인 (173)이 잠재적 인 보안 위험이 있음을주의 pdf.

/** 
* Enable inline PHP 
* 
* If this setting is set to true then DOMPDF will automatically evaluate 
* inline PHP contained within <script type="text/php"> ... </script> tags. 
* 
* Enabling this for documents you do not trust (e.g. arbitrary remote html 
* pages) is a security risk. Set this option to false if you wish to process 
* untrusted documents. 
* 
* @var bool 
*/ 
define("DOMPDF_ENABLE_PHP", true);