当前位置:首页 > 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中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…