前端项目实战126-html2canvas 进行打印
import html2canvas from "html2canvas";
打印
//级联选择框选择事件 export function printData(id: any){ // 定义打印方法 // 先用html2canvas将页面整个转为一张截图,再打印,防止出现echarts无法打印 const dom: HTMLElement | null = document.getElementById(id); //获取需要打印的区域 console.log(dom,"dom") html2canvas(dom as HTMLElement, { scale: 2, width: dom?.offsetWidth, height: dom?.offsetHeight, }).then((canvas:any) => { const context: CanvasRenderingContext2D | null = canvas.getContext("2d"); // context!.mozImageSmoothingEnabled = false; // context!.webkitImageSmoothingEnabled = false; // context!.msImageSmoothingEnabled = false; context!.imageSmoothingEnabled = false; const src64 = canvas.toDataURL(); const contentWidth = canvas.width; const contentHeight = canvas.height; const imgWidth = 1800; // 根据纸张宽度设定 const imgHeight = (1762 / contentWidth) * contentHeight; const img = new Image(); const div = document.createElement("div"); console.log(imgWidth,imgHeight,contentWidth,contentHeight,"data") div.appendChild(img); img.setAttribute("src", src64); img.setAttribute("width", imgWidth.toString()); img.setAttribute("height", imgHeight.toString()); img.setAttribute("id", "imgs"); div.setAttribute("id", "printImg"); document.body.appendChild(div); window.document.body.innerHTML = window.document.getElementById("printImg")!.innerHTML; img.onload = () => { window.print(); // 调用浏览器打印 window.location.reload(); }; }); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南