빈 PDF 파일이 필요해서 찾아본 방법들
import { Canvas } from 'skia-canvas'
import { writeFile } from 'node:fs/promises'
/**
* A4 크기의 빈 PDF 파일을 생성합니다.
*
* @param {string} filename - 생성할 PDF 파일의 이름입니다.
* @returns {Promise<void>}
*/
async function createEmptyPDF(filename) {
// A4 크기 (595x842 포인트)
const width = 595
const height = 842
// 캔버스를 생성합니다
const canvas = new Canvas(width, height)
const ctx = canvas.getContext('2d')
// 아무 내용도 그리지 않고 현재 상태를 저장합니다
ctx.save()
// 캔버스를 PDF 버퍼로 변환하여 저장합니다
const buffer = await canvas.toBuffer('pdf')
await writeFile(filename, buffer)
console.log(`${filename} 파일이 생성되었습니다!`)
}
createEmptyPDF('empty_skia.pdf')
skia-canvas 는 형식을 캔버스가 아니라 내보낼 때 정한다 — createCanvas(w, h, 'pdf') 는 node-canvas 의 API 라 여기엔 없다1.
# Ghostscript를 사용한 빈 PDF 생성
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=empty.pdf -c "<< /PageSize [595 842] >> setpagedevice showpage"
# ImageMagick의 `convert` 명령어로 빈 PDF 생성
convert xc:white -page A4 empty.pdf
Footnotes
-
Canvas | skia-canvas: “Node
Bufferobjects containing various image formats can be created by passing either a format string like"svg"or a mime-type like"image/svg+xml".” ↩