From 0663009694a4d3c8c9797986df9c0d4265ccd39d Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Fri, 25 Sep 2026 00:15:12 -0400 Subject: [PATCH] fix: include pasted images when exporting a note as PDF (#30975) --- src/lib/components/notes/utils.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/components/notes/utils.ts b/src/lib/components/notes/utils.ts index 8c6bd35242..6a3739740d 100644 --- a/src/lib/components/notes/utils.ts +++ b/src/lib/components/notes/utils.ts @@ -2,6 +2,7 @@ import DOMPurify from 'dompurify'; import { toast } from 'svelte-sonner'; import { createNewNote } from '$lib/apis/notes'; +import { safeImageUrl } from '$lib/utils/safeImageUrl'; export const downloadPdf = async (note) => { const [{ default: jsPDF }, { default: html2canvas }] = await Promise.all([ @@ -39,6 +40,14 @@ export const downloadPdf = async (note) => { contentNode.innerHTML = html; + for (const img of contentNode.querySelectorAll('img[src^="data://"]')) { + const fileId = img.getAttribute('src').replace('data://', ''); + const file = (note.data?.files ?? []).find((f) => f.id === fileId); + if (file) { + img.setAttribute('src', safeImageUrl(file.url || '')); + } + } + node.appendChild(contentNode); node.classList.add('text-black');