인쇄용으로 멋지게 렌더링되도록 프로그래밍 방식으로 html을 생성합니다.행을 여러 페이지에 걸쳐 인쇄하지 못하도록 html 테이블 인쇄
여러 페이지에 걸쳐있을 수있는 표를 인쇄해야합니다. 여기에는 다음과 같은 이상이 페이지를 확산 셀 내용을 방지하는 등의 몇 가지 문제가 포즈 : 나는 순서대로 <tr>
요소 display: block
를 사용 this answer과 함께 page-break-inside:avoid
를 사용 this answer의 솔루션을 발견
그러나 이로 인해 행이 더 이상 서로 수직으로 정렬되지 않습니다. 어떻게 수정해야합니까?
그리고 여기가 인쇄 렌더링 작업은 다음과 같습니다 : 여기
그것을 보는 방법 (브라우저는 화면에 그것을 렌더링하는 방법)의
어떻게 할 페이지를 인쇄 할 때 세로로 똑같이 셀을 유지할 수있는 능력을 잃지 않고도 화면에 정렬 된대로 인쇄물을 정렬 할 수 있습니까? MacOS에서 Webkit (Safari)에서 작동해야합니다.
다음은 완전한 html 코드입니다.
이<!DOCTYPE html><html><head><meta charset="utf-8"><style type="text/css">
th, td { border: 1px solid #aaa; }
@media print {
table, tr, td, th {
page-break-inside: avoid;
}
tr {
display: block;
page-break-before: auto;
}
}
</style></head>
<body>
<table style="width:40%">
<tr><th>A</th><th>B</th><th>C</th></tr>
<tr><td>more text<br>1<br>2<br>3<br>4<br>5<br></td><td>more text</td><td>more text</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
<tr><td>1<br>2<br>3<br>4<br>5<br>6<br></td><td>x</td><td>x</td></tr>
</table>
</body></html>
업데이트 : 나는 또한 this solution을 시도
이 사용하는 하나의 개별 세포 (바람직하지 않은) 다음 페이지 하나에 반반 표시 여부를 확인할 수 있도록 두 페이지에 걸쳐 table
대신 div
입니다. 인쇄 할 때 약간 다른 결과를 제공하지만, 여전히 나쁜 (현재 셀의 높이도 잘못) :