当前位置:首页 > JavaScript

js实现web打印

2026-03-01 09:44:47JavaScript

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

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

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

打印特定区域内容

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

js实现web打印

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定义打印时的专属样式,例如隐藏导航栏、调整字体大小:

js实现web打印

@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打印(需浏览器支持):

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实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…