当前位置:首页 > JavaScript

js实现web打印

2026-03-01 09:44:47JavaScript

使用window.print()实现简单打印

调用window.print()方法会直接触发浏览器的打印对话框,打印当前页面内容。适合打印整个页面或简单内容。

document.getElementById('printBtn').addEventListener('click', () => {
  window.print();
});

打印特定区域内容

通过CSS控制仅打印页面中的指定区域,隐藏其他部分:

function printDiv(divId) {
  const printContents = document.getElementById(divId).innerHTML;
  const originalContents = document.body.innerHTML;
  document.body.innerHTML = printContents;
  window.print();
  document.body.innerHTML = originalContents; // 恢复原内容
}

配套CSS示例:

@media print {
  body * {
    visibility: hidden;
  }
  #printArea, #printArea * {
    visibility: visible;
  }
  #printArea {
    position: absolute;
    left: 0;
    top: 0;
  }
}

使用打印样式表优化输出

通过@media print定义打印时的专属样式,例如隐藏导航栏、调整字体大小:

@media print {
  .no-print {
    display: none;
  }
  body {
    font-size: 12pt;
    line-height: 1.5;
  }
}

使用iframe打印外部内容

动态创建iframe加载需要打印的内容,适用于打印远程或动态生成的内容:

function printExternal(url) {
  const iframe = document.createElement('iframe');
  iframe.style.display = 'none';
  iframe.src = url;
  document.body.appendChild(iframe);
  iframe.onload = () => {
    iframe.contentWindow.focus();
    iframe.contentWindow.print();
  };
}

打印PDF文件(浏览器兼容方案)

通过<embed>标签触发PDF打印(需浏览器支持):

js实现web打印

function printPDF(pdfUrl) {
  const embed = document.createElement('embed');
  embed.src = pdfUrl;
  embed.type = 'application/pdf';
  embed.style.display = 'none';
  document.body.appendChild(embed);
  embed.onload = () => {
    embed.focus();
    embed.print();
  };
}

注意事项

  • 跨域限制:iframe打印需确保目标URL同源或支持CORS
  • 样式重置:打印时浏览器默认会忽略背景色,需通过-webkit-print-color-adjust: exact;强制保留
  • 分页控制:使用CSS的page-break-beforepage-break-after控制分页
  • 异步内容:确保动态内容加载完成后再调用打印

标签: jsweb
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现自举

js实现自举

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