当前位置:首页 > 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方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js怎么实现异步

js怎么实现异步

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

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js进度条实现

js进度条实现

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