当前位置:首页 > JavaScript

js实现精准打印

2026-02-03 00:22:31JavaScript

使用CSS控制打印样式

在HTML中引入打印专用的CSS文件,或使用@media print媒体查询定义打印时的样式。隐藏非必要元素(如导航栏、按钮),调整字体、边距确保内容适配纸张。

<style>
@media print {
  .no-print { display: none; }
  body { font-size: 12pt; margin: 0; }
  img { max-width: 100% !important; }
}
</style>

调用浏览器打印API

通过window.print()直接触发浏览器打印对话框。可配合beforeprintafterprint事件监听器进行打印前后的处理。

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

window.addEventListener('beforeprint', () => {
  console.log('准备打印');
});

生成PDF打印

使用库如jsPDF或html2pdf.js将内容转换为PDF后再打印,适合需要精确控制分页、保留样式的场景。

js实现精准打印

// 使用html2pdf.js示例
html2pdf().from(element).save('document.pdf').then(() => {
  // 可自动触发打印
});

分页控制

通过CSS的page-break-beforepage-break-afterpage-break-inside属性强制分页,避免表格或图片被截断。

@media print {
  .page-break { page-break-after: always; }
  table { page-break-inside: avoid; }
}

打印预览优化

创建隐藏的iframe装载待打印内容,单独设置样式后打印,避免主页面样式干扰。

js实现精准打印

function printSpecificContent(content) {
  const iframe = document.createElement('iframe');
  iframe.style.display = 'none';
  document.body.appendChild(iframe);
  iframe.contentDocument.write(content);
  iframe.contentDocument.close();
  iframe.contentWindow.print();
  setTimeout(() => document.body.removeChild(iframe), 1000);
}

打印尺寸适配

通过CSS的@page规则定义纸张大小、方向和边距,确保不同尺寸纸张的兼容性。

@page {
  size: A4 portrait;
  margin: 1cm;
  marks: crop cross;
}

打印内容选择

通过JavaScript动态选择DOM元素进行打印,例如仅打印特定区域或过滤内容。

function printElement(elementId) {
  const printContent = document.getElementById(elementId).innerHTML;
  const originalContent = document.body.innerHTML;
  document.body.innerHTML = printContent;
  window.print();
  document.body.innerHTML = originalContent;
}

标签: 精准js
分享给朋友:

相关文章

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以…

js实现全屏

js实现全屏

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

jquery.js

jquery.js

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

js实现复制到剪贴板

js实现复制到剪贴板

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

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

jquery js

jquery js

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