2017-02-08 9 views
1

나는 데이터베이스에서 오는 데이터를 기반으로 html 페이지를 만들고 dompdf를 사용하여 pdf로 변환합니다. 나는 알고에 대한 페이지 나누기 - 후 DOMPDF에서하고는이dompdf를 사용하여 렌더링 된 pdf에서 페이지 높이 찾기

if($count_row > 7) 
{ 
    $html = $html.' 
    </table> 

    <br/><br/> 
    <img width="1640px" height="30px" src="bottombar.png" /> 

    <div style="page-break-after:always;position:relative;"> 
    </div>'; 

    } 

모든 것이 잘 작동으로 PHP의 경우 조건을 사용하여 다음 페이지로 컨텐츠를 이동 사용할 수 있습니다. 하지만 지금은 동적으로 페이지를 분할하고 싶습니다. 각 행에 내용을 입력 한 후 표의 높이에 따라 다음 행이 다음 페이지로 넘어갈 경우 페이지를 중단하고 일부 헤더를 추가하고 다음 행을 추가하십시오.

각 행에 들어오는 내용이 동적이므로 하나의 페이지에 10 개의 행과 15 개의 행이 포함될 가능성이 있습니다. 그러므로 지금은 행 한계를 제한하고 싶지 않습니다.

각 행이 dompdf 또는 PHP에서 추가 된 후 페이지 높이를 얻을 수있는 방법이 있습니까? 나는 JS에서 할 수 있지만 PHP에서 할 수 있다는 것을 알고있다.

또한 수동으로 설정 중이므로 페이지 크기를 알고 있습니다.

$paper_size = array(0,0,1300,1300); 
$pdf->set_paper($paper_size); 

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

+0

? Dompdf는 필요한 경우 표 머리글 ( ...)을 지원합니다. 다른 유형의 헤더 인 경우 조금 더 어려워 보이지만 여전히 가능합니다. – BrianS

+0

헤이 브라이언, 머리글을 추가 할 수 있지만 현재 테이블에 추가 된 행 수가 7에 도달 할 때마다 페이지를 깨고 있습니다. 대신 각 행을 추가 한 후 페이지 높이를 확인하고 새 행만 페이지를 분할하려고합니다 추가하면 다음 페이지로 넘어갑니다. 고맙습니다. – user6000866

답변

0

나는이 라이브러리를 사용하여 항상이 문제를 겪고있었습니다. 팬텀을 변경하려면 무엇을 권하고 싶습니다.

PhantomJS는 자바 스크립트 API가있는 헤드리스 WebKit입니다. 은 DOM 처리, CSS 선택기, JSON, Canvas 및 SVG와 같은 다양한 웹 표준을 신속하고 기본으로 지원합니다.

당신이 PDF로

http://phantomjs.org/screen-capture.html 사용 예 그것을 렌더링 된 내용을 넣어 저장할 수 : https://coderwall.com/p/5vmo1g/use-phantomjs-to-create-pdfs-from-html 추가하고자하는 헤더 어떤 종류의

+0

안녕하세요, Rafal, 내 콘텐츠가 MySQL DB에서 가져온 다음 html로 렌더링 한 다음 dompdf를 사용하여 pdf로 변환합니다. 내 질문은 dompdf 또는 PHP 테이블에서 각 행을 입력 한 후 pdf의 페이지 높이를 얻을 수 있는지입니다. – user6000866

+0

PhantomJS 사용은 임시 .html 파일을 만들고 위의 예와 같이 스크립트에 제공하여 해결할 수 있습니다. 나는 높이를 아는 것이 문제를 전혀 해결하지 못할 수도 있다는 것을 알고 있기 때문에 이것을 넣었습니다. PhantomJS에 대한 증명에 2 시간을 쓸 수 있었다면 시도해 보시겠습니까? ;) –

+0

확실히 PhantomJS를 살펴보고 문제가 해결되면 사용하십시오. 통찰력을 가져 주셔서 감사합니다. – user6000866