当前位置:首页 > 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实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现吸色

js实现吸色

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

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…