기본 제공 방법이 없지만 가능하지는 않습니다. 당신은이 질문에 두 번째로 우연히 만났고, 제가 관리했던 처음으로 할 수있는 방법을 찾아 냈습니다.
다음은 원래 게시물의 dompdf support group에 있습니다.
먼저 문서의 스타일 시트를 약간 수정해야합니다. 상단 및 하단 페이지 여백을 높이 계산에 추가하지 않도록 0으로 설정하려고합니다. 첫 번째 패스 HTML은 다음과 같은 추가 스타일 선언 추가에 그래서 :
@page { margin-top: 0px; margin-bottom: 0px; }
다음, 당신은 가장 먼저 통과 문서 크기가 있다는 것을 결정해야한다. 나는 간단한 문서를 사용하고 있었기 때문에 간단한 8cm x 8cm 페이지 크기로 갔다. 페이징과 관련된 버그를 피하려면 더 큰 높이를 사용하는 것이 좋습니다. 8cm는 대략 226.77pt입니다. 우리는 우리의 두 번째 패스를 할 수 있도록
$dompdf = new DOMPDF();
$dompdf->set_paper(array(0 , 0 , 226.77 , 226.77));
$dompdf->load_html($first_pass_html);
$dompdf->render();
그런 다음 우리는이 패스 및 해제는 $ DOMPDF 변수의 결과 페이지 수를 얻을 : 그래서 적절한 크기로 정의 된 문서를 사용하는 최초의 패스를 설정 :
$page_count = $dompdf->get_canvas()->get_page_number();
unset($dompdf);
마지막으로 생성 된 페이지의 수 (및 여백을 수용하는 약간의 여분의 패딩)을 곱한 첫번째 패스에서 사용 된 페이지의 높이로부터 산출되는 페이지 높이를 사용하여 문서를 두 번 렌더링.
$dompdf = new DOMPDF();
$dompdf->set_paper(array(0 , 0 , 226.77 , 226.77 * $page_count + 20));
$dompdf->load_html($original_html);
$dompdf->render();
$dompdf->stream('sample.pdf' , array('Attachment' => 0));
저는 이것이 제대로 작동하지 않을 것이라고 생각합니다. 이 방법은 "그리드에 스냅"하기 때문에 더 나은 용어가 부족합니다. 나는 그것을 정확하게 완벽하게 픽셀이 될 필요가있다. 나는 당신의 매우 상세한 대답을 위해 당신을 감사한다 :) – Boriss
예, 미안. 이것은 분명히 픽셀 완벽한 크기를 얻지 못할 것입니다. 어느 시점에서 나는 현재 위치를 추출하는 방법을 알아 내기 위해 시간을 할애 할 것이다. – BrianS
@BrianS 저는 자동 높이 기능을 구현하기 위해 일부 HTML을로드 한 후 위치를 파악하는 방법을 알고 싶어합니다. 이 문제를 조사 할 기회가 있으면 여기에 게시하십시오. momemt에서는이 제한으로 인해 domPdf를 사용할 수 없으며 mPdf를 사용하여 자동 높이 (http://stackoverflow.com/questions/33022101/mpdf-document-auto-height-pos-printer)를 구현할 수 있습니다. 고마워, Hannes – HKandulla