This commit is contained in:
Viet An
2026-06-25 17:25:42 +07:00
parent 31ac60a282
commit f759ca49d5
13 changed files with 669 additions and 1458 deletions

28
app/utils/exportImage.js Normal file
View File

@@ -0,0 +1,28 @@
import dayjs from "dayjs";
import html2canvas from "html2canvas-pro";
export default async function exportImage(docid, filename = "file") {
const target = document.getElementById(docid);
const ignored = target.querySelectorAll(".ignore");
ignored.forEach((el) => el.style.setProperty("display", "none", "important"));
// Xóa cache ảnh để lần export sau không bị lỗi
target.querySelectorAll("img").forEach((img) => (img.src = `${img.src}`));
const restoreIcons = swapIconsForExport(target);
try {
await new Promise((r) => requestAnimationFrame(r));
const canvas = await html2canvas(target);
const link = document.createElement("a");
link.href = canvas.toDataURL("image/png");
link.download = `${filename}-${dayjs().format("YYYYMMDDHHmmss")}.png`;
link.click();
link.remove();
} finally {
restoreIcons();
ignored.forEach((el) => el.style.removeProperty("display"));
}
return filename;
}