当前位置:首页 > 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
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Jav…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm…