当前位置:首页 > 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打印(需浏览器支持):

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控制分页
  • 异步内容:确保动态内容加载完成后再调用打印

js实现web打印

标签: jsweb
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现全选

js实现全选

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

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-contain…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(…