nodejs를 pdf로
인터넷이 발전함에 따라 쉽게 인쇄하고 공유하고 저장하기 위해 점점 더 많은 웹 페이지를 PDF 파일로 변환해야 합니다. Node.js의 출현으로 서버 측에서 실행할 수 있는 환경이 제공되어 웹 페이지를 PDF 파일로 변환하는 것이 더욱 편리하고 효율적이게 되었습니다. 이 문서에서는 Node.js를 사용하여 웹 페이지를 PDF 파일로 변환하는 방법을 설명합니다.
1. Node.js 및 관련 모듈 설치
Node.js를 사용하여 웹 페이지를 PDF 파일로 변환하려면 먼저 컴퓨터에 Node.js 환경을 설치해야 합니다. Node.js는 공식 홈페이지(https://nodejs.org/)에서 다운로드하여 설치할 수 있습니다.
Node.js를 설치한 후 일부 관련 모듈을 설치해야 합니다.
- Express: 웹 애플리케이션 개발 프레임워크를 제공합니다.
- Puppeteer: 헤드리스 Chrome 제어를 위해 Google에서 개발한 Node.js 라이브러리입니다.
다음 명령을 통해 명령줄 도구에 설치할 수 있습니다:
npm install express puppeteer
2. 코드 작성
Node.js 및 관련 모듈을 설치한 후 코드 작성을 시작합니다. 다음은 웹 페이지가 브라우저에 로드될 때 자동으로 PDF 파일로 변환하는 간단한 Express 애플리케이션입니다.
const express = require('express') const puppeteer = require('puppeteer') const app = express() const port = 3000 app.get('/', async (req, res) => { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto('https://www.example.com') const pdf = await page.pdf() res.contentType("application/pdf") res.send(pdf) await browser.close() }) app.listen(port, () => { console.log(`Server running at http://localhost:${port}`) })
이 애플리케이션은 Express 프레임워크를 사용하여 웹 서버를 생성하고 Puppeteer 라이브러리를 사용하여 웹 페이지를 PDF 파일로 변환합니다. 브라우저를 열고 http://localhost:3000을 입력하면 변환된 PDF 파일을 볼 수 있습니다.
3. 매개변수 설정
Puppeteer 라이브러리는 웹 페이지를 PDF 파일로 변환하는 과정에서 페이지 크기, 여백, 머리글/바닥글, 크기 조정 및 페이징 등과 같은 다양한 매개 변수를 사용자 정의하도록 설정할 수 있습니다. 일반적으로 사용되는 일부 매개변수 설정은 다음과 같습니다.
- 형식: 웹페이지의 페이지 형식. A4, Letter 등과 같은 표준 페이지 형식으로 설정하거나 사용자 정의 페이지 크기로 설정할 수 있습니다.
- margin: 웹페이지의 여백입니다. 위쪽 여백, 아래쪽 여백, 왼쪽 여백, 오른쪽 여백 등을 설정할 수 있습니다.
- headerTemplate/footerTemplate: 머리글과 바닥글을 설정할 수 있는 HTML 템플릿입니다. 템플릿에 페이지라는 클래스 이름의 요소를 추가하고 변환된 페이지 번호를 추가할 수 있습니다.
- displayHeaderFooter: 머리글과 바닥글 표시 여부를 설정할 수 있습니다. 표시하려면 true로 설정하고, 표시하지 않으려면 false로 설정하세요.
- 배율: 출력 PDF 파일에 맞게 웹 페이지의 배율 비율을 설정할 수 있습니다.
- pageRanges: 여러 페이지로 구성된 문서의 변환에 맞게 변환해야 하는 페이지 번호 범위를 설정할 수 있습니다. 예를 들어, pageRanges: '1-10'은 1페이지부터 10페이지까지의 콘텐츠만 변환된다는 의미입니다.
다음은 웹 페이지를 PDF 파일로 변환할 때 일부 매개변수를 설정하는 예입니다.
const express = require('express') const puppeteer = require('puppeteer') const app = express() const port = 3000 app.get('/', async (req, res) => { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto('https://www.example.com') const pdf = await page.pdf({ format: 'A4', margin: { top: '20mm', right: '20mm', bottom: '20mm', left: '20mm' }, displayHeaderFooter: true, headerTemplate: '<div class="page-number"></div>', footerTemplate: '<div class="page-number"></div>', scale: 0.8 }) res.contentType("application/pdf") res.send(pdf) await browser.close() }) app.listen(port, () => { console.log(`Server running at http://localhost:${port}`) })
이 애플리케이션은 A4 페이지 형식, 20mm 여백, 표시 머리글 및 바닥글, 머리글 및 바닥글 템플릿, 0.8배 확대/축소 비율 및 1~10페이지만 포함하도록 출력 PDF 파일을 제어합니다.
4. 요약
Node.js를 사용하여 웹 페이지를 PDF 파일로 변환하는 것은 매우 편리하고 효율적입니다. Puppeteer 라이브러리는 헤드리스 Chrome에 대한 완벽한 제어 기능을 제공하므로 다양한 요구 사항에 맞게 페이지 크기, 여백, 머리글/바닥글, 크기 조정 및 페이징 등을 쉽게 제어할 수 있습니다. 이 기사의 소개를 통해 독자들은 웹 페이지를 PDF 파일로 변환하는 과정을 어느 정도 이해하고 실제로 지속적으로 개선하고 최적화할 수 있다고 믿습니다.
위 내용은 nodejs를 pdf로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

게으른로드는 필요할 때까지 컨텐츠로드를 지연시켜 초기로드 시간과 서버로드를 줄임으로써 웹 성능 및 사용자 경험을 향상시킵니다.

이 기사는 가상 Dom 트리를 비교하여 DOM을 효율적으로 업데이트하는 React의 조정 알고리즘을 설명합니다. 성능 이점, 최적화 기술 및 사용자 경험에 미치는 영향에 대해 설명합니다. 문자 수 : 159

이 기사는 다중 연계 기능을 단일 연계 함수 시퀀스로 변환하는 기술 인 JavaScript의 카레에 대해 논의합니다. Currying의 구현, 부분 응용 프로그램 및 실제 용도와 같은 혜택, 코드 읽기 향상을 탐색합니다.

JavaScript의 고차 기능은 추상화, 공통 패턴 및 최적화 기술을 통해 코드 간접성, 재사용 성, 모듈성 및 성능을 향상시킵니다.

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.
