当前位置:首页 > JavaScript

js实现pdf打印

2026-03-01 13:17:50JavaScript

使用jsPDF库生成PDF并打印

jsPDF是一个流行的JavaScript库,用于在客户端生成PDF文件。安装后,可以通过代码创建PDF内容并触发打印。

js实现pdf打印

// 引入jsPDF库
import jsPDF from 'jspdf';

// 创建PDF实例
const doc = new jsPDF();

// 添加文本内容
doc.text('Hello, this is a PDF generated by jsPDF!', 10, 10);

// 保存为PDF文件
doc.save('example.pdf');

// 直接打印(需要浏览器支持)
doc.autoPrint();
window.open(doc.output('bloburl'), '_blank');

使用window.print()打印网页内容

如果目标是打印网页的特定部分,可以通过CSS隐藏不需要的内容,并调用window.print()方法。

js实现pdf打印

// 打印整个页面
window.print();

// 打印特定元素
function printElement(elementId) {
    const printContent = document.getElementById(elementId).innerHTML;
    const originalContent = document.body.innerHTML;
    document.body.innerHTML = printContent;
    window.print();
    document.body.innerHTML = originalContent;
}

使用PDF.js渲染并打印PDF

PDF.js是Mozilla开发的库,用于在浏览器中渲染PDF文件。结合打印功能,可以实现PDF的预览和打印。

// 引入PDF.js库
import * as pdfjsLib from 'pdfjs-dist';

// 加载PDF文件
pdfjsLib.getDocument('example.pdf').promise.then(function(pdf) {
    return pdf.getPage(1);
}).then(function(page) {
    const viewport = page.getViewport({ scale: 1.0 });
    const canvas = document.createElement('canvas');
    const context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    // 渲染PDF页面到Canvas
    page.render({
        canvasContext: context,
        viewport: viewport
    }).promise.then(function() {
        // 打印Canvas内容
        const dataUrl = canvas.toDataURL('image/png');
        const printWindow = window.open('', '_blank');
        printWindow.document.write(`<img src="${dataUrl}" onload="window.print()">`);
    });
});

使用html2canvas捕获DOM并生成PDF

html2canvas可以将DOM元素转换为Canvas,再结合jsPDF生成PDF并打印。

import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';

function printDivAsPDF(elementId) {
    const element = document.getElementById(elementId);
    html2canvas(element).then(canvas => {
        const imgData = canvas.toDataURL('image/png');
        const pdf = new jsPDF();
        pdf.addImage(imgData, 'PNG', 0, 0);
        pdf.autoPrint();
        window.open(pdf.output('bloburl'), '_blank');
    });
}

以上方法适用于不同场景,可以根据需求选择合适的方式实现PDF打印功能。

标签: jspdf
分享给朋友:

相关文章

js实现文件下载

js实现文件下载

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

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现授权

js实现授权

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

js实现吸色

js实现吸色

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

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…