[]
PdfDocument클래스에서는 테이블을 그릴 수도 있습니다.
이를 위해서는 PdfPaths 객체의 rect 와 stroke 메서드를 사용해야 합니다. PdfPaths 객체는 PdfDocument.paths 속성을 통해 접근할 수 있습니다.
rect메서드는 여러 인수를 받으며, 그 중에는 사각형의 시작 좌표(x, y)와 사각형의 너비와 높이 등도 포함됩니다. stroke 메서드는 매개변수 없이 호출하여 사각형 경로를 그릴 수 있습니다. 이 두 메서드는 다음과 같이 체이닝하여 사용할 수 있습니다:
doc.paths
.rect(x, y, colWidth, rowHeight)
.stroke();
drawText 메서드는 셀에 텍스트를 그릴 때 사용되며, 텍스트의 크기도 정의할 수 있습니다. 또한, 만약 한 행이 페이지 크기를 초과하면 addPage 메서드를 사용하여 새 페이지를 추가할 수 있습니다.
이 코드 예시는 50개의 행과 3개의 열로 구성된 테이블을 생성합니다. 데이터 컬렉션에서 텍스트를 셀에 삽입하며, 페이지 오버플로우도 고려합니다.
let colWidth = 100,
rowHeight = 18,
data = getData(50),
dataKeyMap = ['id', 'product', 'country'],
y = 0;
for (let i = 0; i < 50; i++) {
for (let j = 0; j < dataKeyMap.length; j++) {
let x = j * colWidth;
doc.paths
.rect(x, y, colWidth, rowHeight)
.stroke();
doc.drawText(data[i][dataKeyMap[j]] + '', x + 2, y + 2, {
height: rowHeight,
width: colWidth
});
}
y += rowHeight;
if (y >= doc.height) {
y = 0;
doc.addPage();
}
}