📜  node js 提供 pdf 文件 - Javascript (1)

📅  最后修改于: 2023-12-03 14:44:37.305000             🧑  作者: Mango

Node.js 提供 PDF 文件 - JavaScript

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它可以直接在服务器端运行 JavaScript,无需浏览器支持。Node.js 提供了丰富的模块和工具,使得开发者可以轻松地创建和管理 PDF 文件。

1. 生成 PDF 文件

使用 Node.js 可以轻松地生成 PDF 文件,可以使用第三方库来生成 PDF 文件,比如 pdfkitpuppeteerjsPDF

1.1 使用 pdfkit

pdfkit 是一个用于创建 PDF 文件的 Node.js 库,它支持添加文本、图片、表格以及自定义的图形。

const PDFDocument = require('pdfkit');
const fs = require('fs');

// 创建 PDF 文档
const doc = new PDFDocument();

// 设置 PDF 文档的标题
doc.title = 'My Document';

// 添加文本
doc.text('Hello World!');

// 添加图片
doc.image('path/to/image.png');

// 导出 PDF 文档
doc.pipe(fs.createWriteStream('output.pdf'));
doc.end();
1.2 使用 puppeteer

puppeteer 是一个无头浏览器,可以用它来生成 PDF 文件。puppeteer 同时支持 Chrome 和 Firefox。

const puppeteer = require('puppeteer');

(async () => {
  // 创建浏览器实例
  const browser = await puppeteer.launch();

  // 创建页面实例
  const page = await browser.newPage();

  // 访问网页
  await page.goto('https://example.com');

  // 生成 PDF 文件
  await page.pdf({ path: 'output.pdf' });

  // 关闭浏览器实例
  await browser.close();
})();
1.3 使用 jsPDF

jsPDF 是一个用于创建 PDF 文件的 JavaScript 库,它可以在浏览器和 Node.js 环境中运行。

const jsPDF = require('jspdf');
require('jspdf-autotable');

// 创建 PDF 文档
const doc = new jsPDF();

// 设置 PDF 文档的标题
doc.setTitle('My Document');

// 添加文本
doc.text('Hello World!', 10, 10);

// 添加表格
doc.autoTable({
  head: [['Name', 'Email', 'Country']],
  body: [
    ['John Doe', 'john@example.com', 'United States'],
    ['Alice Smith', 'alice@example.com', 'Canada'],
  ],
});

// 导出 PDF 文档
doc.save('output.pdf');
2. 处理现有的 PDF 文件

使用 Node.js 可以方便地处理现有的 PDF 文件,可以使用 pdf-libpdf-parse 等库来处理 PDF 文件。

2.1 使用 pdf-lib

pdf-lib 是一个用于处理 PDF 文件的 JavaScript 库,它可以读取、修改和创建 PDF 文件。

const { PDFDocument } = require('pdf-lib');
const fs = require('fs');

// 读取 PDF 文件
const buffer = fs.readFileSync('input.pdf');

// 创建 PDF 文档
const doc = await PDFDocument.load(buffer);

// 添加页眉
const page = doc.getPage(0);
const textContent = page.drawText('My Header', {
  x: 100,
  y: page.getHeight() - 50,
  size: 18,
});

// 导出 PDF 文件
const modifiedPdf = await doc.save();
fs.writeFileSync('output.pdf', modifiedPdf);
2.2 使用 pdf-parse

pdf-parse 是一个用于解析 PDF 文件的 JavaScript 库,它可以读取 PDF 文件的元数据、文本内容以及页面信息。

const pdfParse = require('pdf-parse');
const fs = require('fs');

// 读取 PDF 文件
const buffer = fs.readFileSync('input.pdf');

// 解析 PDF 文件
const data = await pdfParse(buffer);

// 获取 PDF 文件的元数据
console.log(data.info);

// 获取 PDF 文件的页数
console.log(data.pages.length);

// 获取 PDF 文件的文本内容
console.log(data.text);
结语

本文介绍了使用 Node.js 创建和处理 PDF 文件的方法,希望对开发者有所帮助。Node.js 提供了丰富的模块和工具,可以方便地处理和管理 PDF 文件。