当前位置:首页 > JavaScript

js实现pdf

2026-03-14 01:06:22JavaScript

使用jsPDF生成PDF

jsPDF是一个流行的JavaScript库,用于在浏览器中生成PDF文件。它支持文本、图像、表格等内容的添加。

安装jsPDF:

npm install jspdf

基础示例代码:

import { jsPDF } from "jspdf";

const doc = new jsPDF();
doc.text("Hello world!", 10, 10);
doc.save("example.pdf");

使用PDFKit生成PDF

PDFKit是另一个强大的JavaScript PDF生成库,适用于Node.js和浏览器环境。

安装PDFKit:

npm install pdfkit

基础示例代码:

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

const doc = new PDFDocument();
doc.pipe(fs.createWriteStream('output.pdf'));
doc.fontSize(25).text('Some text with an embedded font!', 100, 100);
doc.end();

使用html2pdf.js转换HTML为PDF

html2pdf.js可以将HTML元素直接转换为PDF,适合已有HTML内容的情况。

安装html2pdf.js:

npm install html2pdf.js

基础示例代码:

import html2pdf from 'html2pdf.js';

const element = document.getElementById('content-to-export');
html2pdf().from(element).save();

使用pdf-lib处理现有PDF

pdf-lib适用于读取和修改现有PDF文件,支持添加文本、图像和表单。

安装pdf-lib:

npm install pdf-lib

基础示例代码:

import { PDFDocument } from 'pdf-lib';

async function modifyPdf() {
  const existingPdfBytes = await fetch('existing.pdf').then(res => res.arrayBuffer());
  const pdfDoc = await PDFDocument.load(existingPdfBytes);
  const page = pdfDoc.getPages()[0];
  page.drawText('Added text!', { x: 50, y: 50 });
  const pdfBytes = await pdfDoc.save();
  // 保存或下载处理后的PDF
}

浏览器打印API生成PDF

现代浏览器支持通过打印API将网页内容保存为PDF。

示例代码:

function printToPdf() {
  window.print();
}

CSS媒体查询优化打印样式:

@media print {
  body {
    margin: 0;
    padding: 0;
  }
  .no-print {
    display: none;
  }
}

服务端生成PDF(Node.js)

在Node.js环境中,可以使用puppeteer将网页转换为PDF。

安装puppeteer:

npm install puppeteer

示例代码:

js实现pdf

const puppeteer = require('puppeteer');

async function generatePDF() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com', {waitUntil: 'networkidle0'});
  await page.pdf({path: 'example.pdf', format: 'A4'});
  await browser.close();
}

标签: jspdf
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

vue实现pdf预览

vue实现pdf预览

使用 vue-pdf 库实现 PDF 预览 安装 vue-pdf 库: npm install vue-pdf 在 Vue 组件中引入并使用: <template> <div…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…