LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

为什么使用html2canvas.js导出的PDF无法选中文字?

freeflydom
2026年2月10日 16:0 本文热度 191
:为什么使用html2canvas.js导出的PDF无法选中文字?


使用html2canvas + jsPDF方案导出的PDF实际上是图像,而不是文本,因此无法选中文字。

技术方案原理文字可选中性
html2canvas + jsPDF将DOM渲染为Canvas图像 → 图像插入PDF❌ 不可选中 (图像中的文字)
原生PDF生成直接生成PDF矢量图形和文本图层✅ 可选中 (真正的文本)

你的导出流程本质上是截图并放入PDF,不是真正的文本转换。

想要支持选中文字,可以参考以下方案:

使用浏览器打印:

以下代码执行printToPdf()后会弹出浏览器打印界面,点保存按钮即可。

function printToPdf() {

  const element = document.getElementById('html2pdf_id');

  const originalStyles = element.getAttribute('style');

  

  // 临时应用打印样式

  element.style.width = '100%';

  element.style.margin = '0';

  element.style.padding = '20px';

  

  // 隐藏不需要打印的元素

  const noPrintElements = element.querySelectorAll('.no-export, button, .actions');

  noPrintElements.forEach(el => {

    el.style.display = 'none';

  });

  

  // 触发浏览器打印

  window.print();

  

  // 恢复样式

  element.setAttribute('style', originalStyles || '');

  noPrintElements.forEach(el => {

    el.style.display = '';

  });

}


// 添加打印样式到页面

const printStyles = `

@media print {

  body * {

    visibility: hidden;

  }

  #html2pdf_id, #html2pdf_id * {

    visibility: visible;

  }

  #html2pdf_id {

    position: absolute;

    left: 0;

    top: 0;

    width: 100%;

    padding: 20px;

  }

  .no-print, button, .actions {

    display: none !important;

  }

}

`;

const styleSheet = document.createElement("style");

styleSheet.textContent = printStyles;

document.head.appendChild(styleSheet);

优点

  • 文字完全可选

  • 使用浏览器原生PDF生成

  • 完全免费,无需额外库

缺点:要选择另存为PDF,默认参数有页眉等,需要手动取消。

使用html2pdf.js

优点是配置简单,可选中文字,缺点是无法自动缩放到容器大小,分页可能会有问题,有可能丢失内容。



该文章在 2026/2/10 16:06:17 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved