2013-04-26 4 views
2

일부 HTML에서 PDF를 생성하려면 DomPDF을 사용하려고합니다. 나는 20mm X 20mm 될 수있는 페이지가 필요합니다, 그래서 나는 다음과 같은 사용 : 그것은 제대로 작동DomPDF - 포인트/픽셀 비율 변경

CPDF_Adapter::$PAPER_SIZES['my_square_page'] = array(0, 0, 566.929134, 566.929134); 
$dompdf->set_paper('my_square_page','portrait'); 

나는 PDF 속성을 확인하면, 크기가 괜찮습니다. PDF에 표시되는 HTML은 컨테이너 div (490x490 픽셀)입니다. 이 크기는 변경 될 수 없으며, 그 안에있는 요소는 절대적으로 배치됩니다 (div).

문제는 생성 된 PDF에서 div이 전체 페이지을 차지하지 않는다는 것입니다. 다른 값을 사용하여 DPI 설정을 시도했습니다.

def("DOMPDF_DPI", 150); 

하지만 전혀 차이가없는 것 같습니다. 내가 얻을 출력이 (회색 경계가 PDF 리더 출신)이다

enter image description here

내가 내용의 CSS에 widthbodyheighthtml 설정을 시도했지만 작동하지 않습니다 .

source code of my sample case here을 확인할 수 있습니다.

답변

2

좋아, 알아 냈어. 줄처럼 보입니다

def("DOMPDF_DPI", 150); 

실제로 아무 것도하지 않습니다. 나는 dompdf_config.custom.inc 파일을 변경 한 다음 효과가있었습니다. 추가 된이 :

define("DOMPDF_DPI", 62.230); 

하지만 지금은 이미지가 너무 큰 볼

는 :`배경 - image`의 크기를 조절하는 것은 이러한 circumnstances에서 꽤 어려운 것 같다

enter image description here

+0

을 S. 그러나 ''을 사용하면 제대로 작동하는 것 같습니다. –

+0

지금까지 백그라운드의 크기를 조정하는 유일한 방법은 DPI를 수정하는 것입니다 (본 것처럼). 어떤 시점에서 백그라운드 크기의 CSS 속성을 구현할 것이므로 훨씬 더 세밀하게 제어 할 수 있습니다. 그러나 그때까지 문서에 맞게 이미지의 크기를 조정하는 것이 가장 좋습니다. – BrianS

+0

참고로, PDF 문서는 (필수적으로) 72 DPI로 렌더링됩니다. 따라서 HTML과 PDF간에 일대일 대응을 더 얻으려면 DOMPDF_DPI를 72로 설정해야합니다. 그리고 앞에서 말했듯이 공간에 맞게 배경의 크기를 조정하십시오. – BrianS