[Node.js] puppeteer - Headless 브라우저를 이용해 html을 PDF로 변환하기

puppeteer란?

 

Puppeteer | Puppeteer

Build status

pptr.dev

Puppeteer는 구글에서 만든 Node.js 환경에서 동작하는 Headless 브라우저를 조작하기 위한 고급 웹 스크래핑 및 테스트 도구.

 

Headless 브라우저란?

Headless 브라우저는 GUI 없이 CLI 환경에서 백그라운드에서 실행되며, 웹 페이지를 렌더링 하고 JavaScript를 실행할 수 있다.

 

puppeteer의 주요 기능

  1. 페이지 제어: Puppeteer를 사용하여 페이지를 열고 닫을 수 있으며, 페이지 내에서 다양한 작업을 수행할 수 있다.
  2. 스크래핑 및 데이터 추출: Puppeteer는 웹 페이지의 HTML을 검색하고 원하는 데이터를 추출하는 데 사용. 이를 통해 웹 페이지에서 정보를 수집할 수 있다.
  3. 스크린샷 및 PDF 생성: Puppeteer는 웹 페이지의 스크린샷을 찍거나 PDF 파일을 생성하는 기능을 제공.
  4. 테스트 자동화: 웹 애플리케이션의 테스트를 자동화하기 위해 Puppeteer를 사용할 수 있다. 예를 들어, 특정 페이지나 기능이 예상대로 작동하는지 자동으로 테스트할 수 있다.
  5. 브라우저 설정: Puppeteer를 사용하여 브라우저의 다양한 설정을 조작할 수 있다. 예를 들어, 사용자 에이전트 설정, 뷰포트 크기 변경 등이 가능.

puppeteer 설치

Puppeteer는 Node.js 패키지로 제공.

npm install puppeteer

 

puppeteer로 html을 pdf로 변환하기

import puppeteer from 'puppeteer';

(async () => {
	const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("example.html", {
    	waitUntil: 'networkidle2'
    });
    
    await page.setViewport({width: 1080, height 1024});
    await page.pdf({ path: 'example.pdf', format: 'a4' });
    
    await browser.close();
})();