diff --git a/src/converters/imagemagick.ts b/src/converters/imagemagick.ts index 4122a24..e3959f8 100644 --- a/src/converters/imagemagick.ts +++ b/src/converters/imagemagick.ts @@ -460,6 +460,13 @@ export function convert( } } + // Handle EMF files specifically to avoid LibreOffice delegate issues + if (fileType === "emf") { + // Use direct conversion without delegates for EMF files + inputArgs = ["-define", "emf:delegate=false", "-density", "300"]; + outputArgs = ["-background", "white", "-alpha", "remove"]; + } + return new Promise((resolve, reject) => { execFile( "magick", diff --git a/src/converters/main.ts b/src/converters/main.ts index a9f2e42..1726f44 100644 --- a/src/converters/main.ts +++ b/src/converters/main.ts @@ -47,6 +47,11 @@ const properties: Record< ) => unknown; } > = { + // Prioritize Inkscape for EMF files as it handles them better than ImageMagick + inkscape: { + properties: propertiesInkscape, + converter: convertInkscape, + }, libjxl: { properties: propertiesLibjxl, converter: convertLibjxl, @@ -87,10 +92,6 @@ const properties: Record< properties: propertiesGraphicsmagick, converter: convertGraphicsmagick, }, - inkscape: { - properties: propertiesInkscape, - converter: convertInkscape, - }, assimp: { properties: propertiesassimp, converter: convertassimp,