>웹 프론트엔드 >프런트엔드 Q&A >Node.js를 사용하여 HTML을 PDF로 변환하는 방법(가이드)

Node.js를 사용하여 HTML을 PDF로 변환하는 방법(가이드)

PHPz
PHPz원래의
2023-04-17 15:17:021616검색

인터넷이 발전함에 따라 점점 더 많은 웹사이트에서 사용자가 오프라인에서 읽거나 인쇄할 수 있도록 PDF 형식의 문서 다운로드를 제공해야 합니다. Node.js를 사용하여 HTML을 PDF로 변환하는 것이 인기 있는 솔루션이 되었습니다.

이 글에서는 Node.js를 사용하여 HTML을 PDF로 변환하는 방법을 소개하고 관련 기술과 주의사항을 분석하겠습니다.

환경 준비:

HTML을 PDF로 변환하기 전에 Node.js 및 관련 종속성이 로컬 환경에 설치되어 있는지 확인해야 합니다. 이 기사에 사용된 종속성에는 html-pdf, ejs, express 등이 포함됩니다.

Install html-pdf

html-pdf는 npm을 통해 설치할 수 있는 오픈 소스 Node.js 패키지입니다.

npm install -g html-pdf

Install express

express는 다음을 통해 설치할 수 있는 Node.js 기반 웹 애플리케이션 개발 프레임워크입니다. npm 설치:

npm install -g express

Install ejs

ejs는 npm을 통해 설치할 수 있는 효율적인 JavaScript 템플릿 엔진입니다.

npm install -g ejs

간단한 웹 애플리케이션 만들기:

다음으로 HTML에서 PDF로의 변환을 테스트하기 위한 간단한 웹 애플리케이션을 만듭니다. 효과.

  1. node-pdf라는 프로젝트를 생성하고 다음 디렉터리에서 실행합니다.
npm init
  1. 정적 파일을 저장하기 위해 node-pdf 디렉터리에 public이라는 폴더를 만듭니다.
  2. public 폴더에서 index.html이라는 파일을 만들어 PDF로 변환해야 하는 HTML 콘텐츠를 표시하세요. 내용은 다음과 같습니다.
<!doctype html>
<html>

<head>
  <title>HTML转PDF</title>
  <meta charset="utf-8">
</head>

<body>
  <h1>HTML转PDF</h1>
  <p>这是一段需要转换为PDF的HTML内容。</p>
</body>

</html>
  1. node-pdf 디렉터리에 웹 애플리케이션 생성을 위한 app.js라는 파일을 만듭니다. 내용은 다음과 같습니다.
const express = require('express');
const app = express();
const ejs = require('ejs');
const path = require('path');

// 设置模板引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// 服务器首页
app.get('/', function(req, res) {
  res.render('index');
});

// 转换HTML为PDF并进行下载
app.get('/download', function(req, res) {
  const pdf = require('html-pdf');
  const html = ejs.render('<%- include(\&#39;../public/index.html\&#39;) %>', {});
  const options = { format: 'A4' };
  pdf.create(html, options).toStream(function(err, stream) {
    if (err) return res.send(err.message);
    res.setHeader('Content-disposition', 'attachment; filename=sample.pdf');
    res.setHeader('Content-type', 'application/pdf');
    stream.pipe(res);
  });
});

// 启动服务器
app.listen(3000, function() {
  console.log('App listening on port 3000!');
});

위 코드에서는 두 가지 경로를 정의합니다. 하나는 서버 홈페이지에 액세스하는 경로(/)이고 다른 하나는 HTML을 PDF로 변환하여 다운로드하는 경로(/download)입니다.

그 중 ejs 템플릿 엔진은 공용 폴더에 있는 index.html 파일을 렌더링하는 데 사용되고, html-pdf는 렌더링된 HTML 파일을 변환하는 데 사용되며, 마지막으로 브라우저를 사용하여 PDF 파일을 다운로드로 저장합니다.

  1. node-pdf 디렉터리에 views라는 폴더를 생성하고, 그 폴더 아래에 index.ejs라는 파일을 생성하여 웹 애플리케이션의 템플릿 파일을 설정합니다. 내용은 다음과 같습니다.
<!doctype html>
<html>

<head>
  <title>HTML转PDF</title>
  <meta charset="utf-8">
</head>

<body>
  <h1>HTML转PDF</h1>
  <p>这是一段需要转换为PDF的HTML内容。</p>
  <a href="/download">下载PDF</a>
</body>

</html>
  1. node-pdf 디렉터리에서 명령줄을 열고 다음 명령을 실행하여 애플리케이션을 시작합니다.
node app.js
  1. 액세스하려면 브라우저에서 http://localhost:3000/을 방문하세요. 서버 홈페이지에서 "PDF 다운로드"를 클릭하면 HTML 파일을 PDF로 변환하여 다운로드할 수 있습니다.

이 글은 Node.js를 기반으로 HTML을 PDF로 변환하는 간단한 가이드일 뿐입니다. 자세한 내용과 기능은 html-pdf, ejs, express 및 기타 관련 문서를 참조하세요. 동시에 실제 신청 과정에서는 HTML을 PDF로 변환하는 작업의 효율성과 품질을 향상시키기 위해 캐싱 및 HTML 구조 복잡성과 같은 요소에도 주의를 기울여야 합니다.

위 내용은 Node.js를 사용하여 HTML을 PDF로 변환하는 방법(가이드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.