Skip to content

Commit

Permalink
replace foreign object
Browse files Browse the repository at this point in the history
  • Loading branch information
zsviczian committed Jan 21, 2025
1 parent 1744668 commit 0aaba80
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 9 additions & 2 deletions src/utils/exportUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,9 +289,15 @@ async function renderSVGToCanvas(
const ctx = canvas.getContext('2d');
if (!ctx) throw new Error('Failed to get canvas context');

let svgToRender = svg;
let svgToRender = svg.cloneNode(true) as SVGSVGElement;

// Remove foreignObject elements
const foreignObjects = svgToRender.getElementsByTagName('foreignObject');
while (foreignObjects.length > 0) {
foreignObjects[0].parentNode?.removeChild(foreignObjects[0]);
}

if (dimensions.sourceX !== undefined) {
svgToRender = svg.cloneNode(true) as SVGSVGElement;
const viewBox = `${dimensions.sourceX} ${dimensions.sourceY} ${dimensions.sourceWidth} ${dimensions.sourceHeight}`;
svgToRender.setAttribute('viewBox', viewBox);
svgToRender.setAttribute('width', String(dimensions.sourceWidth));
Expand All @@ -303,6 +309,7 @@ async function renderSVGToCanvas(

return new Promise((resolve, reject) => {
const img = new Image();
img.crossOrigin = 'Anonymous'; // Enable CORS
img.onload = () => {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
URL.revokeObjectURL(blobUrl);
Expand Down

0 comments on commit 0aaba80

Please sign in to comment.