当前位置:首页 > JavaScript

js实现pdf打印

2026-01-30 22:12:11JavaScript

使用jsPDF库生成PDF并打印

jsPDF是一个流行的JavaScript库,用于在客户端生成PDF文件。安装后可通过npm或直接引入CDN链接。

js实现pdf打印

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

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

// 添加内容
doc.text('Hello World!', 10, 10);

// 打印PDF
doc.autoPrint();
window.open(doc.output('bloburl'));

使用浏览器原生打印功能

通过CSS媒体查询控制打印样式,调用window.print()触发浏览器打印对话框。

js实现pdf打印

<style>
@media print {
  .no-print {
    display: none;
  }
}
</style>

<button onclick="window.print()">打印页面</button>
<div class="no-print">此内容不会出现在打印结果中</div>

使用PDF.js渲染并打印

Mozilla的PDF.js库可解析和渲染现有PDF文件,支持自定义打印逻辑。

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

    // 打印Canvas内容
    canvas.toBlob(blob => {
      const url = URL.createObjectURL(blob);
      const printWindow = window.open(url);
      printWindow.onload = () => printWindow.print();
    });
  });
});

使用html2canvas+jsPDF组合方案

先通过html2canvas将DOM转为Canvas,再用jsPDF生成可打印的PDF。

html2canvas(document.body).then(canvas => {
  const imgData = canvas.toDataURL('image/png');
  const pdf = new jsPDF();
  pdf.addImage(imgData, 'PNG', 0, 0);
  pdf.autoPrint();
  pdf.save('document.pdf'); // 或使用output('bloburl')在新窗口打开
});

注意事项

  • 跨域资源需配置CORS策略
  • 复杂CSS样式可能在不同方案中呈现效果不同
  • 移动端浏览器对打印支持存在差异
  • 大文档处理建议分页或使用Web Worker

标签: jspdf
分享给朋友:

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

vue 实现导出pdf

vue 实现导出pdf

实现 Vue 导出 PDF 的方法 使用 html2pdf.js 库 html2pdf.js 是一个基于 jsPDF 和 html2canvas 的库,可以直接将 HTML 元素转换为 PDF。 安…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…