2017-02-02 14 views
6

기본적으로 wkhtmltopdf를 사용하여 동적 HTML 보고서를 PDF로 변환합니다.wkhtmltopdf가 구문 분석 할 수 있도록 HTML에 페이지 나누기를 삽입하는 방법은 무엇입니까?

보고서에 특정 형식이 있으며이 형식을 HTML로 복제하도록 요청 받았습니다.

내가 직면 한 문제는 html로 100 % 기능적인 페이지 나누기를 시뮬레이트 할 수 없으므로 wkhtmltopdf가이를 해석하고 다른 페이지로 콘텐츠를 보낼 수 있다는 것입니다.

페이지 크기 측정 방법 등을 피하려고합니다.

TIA 어떤 도움말이 제공됩니다.

편집 : 지금까지 <br>을 사용하여 페이지 나누기를 에뮬레이션하고 있습니다. 나는 아직도 약간의 테스트를해야한다.

+1

'wkhtmltopdf'는 CSS를 존중해야합니다. [@media print] (https://developer.mozilla.org/en/US/docs/Web/CSS/@media) 규칙 – dwarring

+0

좋습니다. 나는 그 규칙들에 대해 더 많은 것을 찾아 볼 것입니다. TY – lenord

답변

11

인쇄 매체 유형에 특정한 CSS 규칙을 지정하십시오. a number of properties that can be used for paging이 있습니다. 아래에 표시된 것처럼 page-break-before 속성을 클래스에 첨부하는 것이 가장 쉬운 방법입니다.

<p>Page 1, paragraph 1</p> 
<p class="new-page">Page 2, paragraph 1</p> 
<p>Page 2, paragraph 2</p> 

는 CSS에서 : 나는 wkhtmltopdf를 사용하는 경우

@media print { 
    .new-page { 
    page-break-before: always; 
    } 
} 
+0

나는 이것을 원숭이처럼
을 추가하는 것처럼 해결했지만, 내가 좋아할 때까지 시도했다. 이것은 내가 요구했던 것에 대한 정말 유용한 접근법이며, 나는 많은 것을 고맙게 생각한다. – lenord

+1

'@media print'를 따르려면'--print-media-type' 인자를 지정할 필요가있을 것입니다. – Jared

4

, 나는 다음과 같은 클래스와 함께 작동 :

.keep-together { 
    page-break-inside: avoid; 
} 

.break-before { 
    page-break-before: always; 
} 

.break-after { 
    page-break-after: always; 
} 

는 그래서 강제 할 수있는 HTML에서

:

  • 특정 컨테이너 내용이 두 페이지 (한 페이지에 해당하는 경우)에 퍼지지 않습니다. keep-together 클래스를 사용할 때 필요한 경우 페이지 나누기가 컨테이너 앞에 만들어집니다.
  • 특정 컨테이너 앞에 페이지 나누기가 강제로 적용됩니다.
  • 특정 컨테이너 다음에 페이지 나누기가 필요합니다.

wkhtmltopdf으로는 작동하지 않습니다.