diff --git a/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/Optimizations/EnhancedGraphicsMetafileOptimization.cs b/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/Optimizations/EnhancedGraphicsMetafileOptimization.cs
index 9e8fbfc..3e815f6 100644
--- a/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/Optimizations/EnhancedGraphicsMetafileOptimization.cs
+++ b/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/Optimizations/EnhancedGraphicsMetafileOptimization.cs
@@ -291,6 +291,12 @@ private static EnhancedGraphicsMetafileOptimizationResult ConvertWithLibWmf(in E
return EnhancedGraphicsMetafileOptimizationResult.NotSupported();
}
+ ///
+ /// 是否 Inkscape 应用程序未安装
+ ///
+ /// 先不考虑后续 Inkscape 可能安装的问题。可在业务端设置为 false 继续尝试
+ public static bool IsInkscapeNotBeInstalled { get; set; }
+
[SupportedOSPlatform("linux")]
private static EnhancedGraphicsMetafileOptimizationResult ConvertWithInkscape(EnhancedGraphicsMetafileOptimizationContext context)
{
@@ -301,6 +307,13 @@ private static EnhancedGraphicsMetafileOptimizationResult ConvertWithInkscape(En
context.LogMessage($"Start convert emf or wmf to png by Inkscape. File:'{file}'");
+ if (IsInkscapeNotBeInstalled)
+ {
+ // 转换失败,因为缓存的属性明确表示 Inkscape 应用程序不存在
+ context.LogMessage($"Convert emf or wmf to svg by Inkscape failed. Because cache property indicate Inkscape application not be installed. {nameof(IsInkscapeNotBeInstalled)}=true. We will continue use libwmf to convert the image.");
+ return EnhancedGraphicsMetafileOptimizationResult.NotSupported();
+ }
+
var processStartInfo = new ProcessStartInfo("inkscape")
{
ArgumentList =
@@ -336,6 +349,9 @@ private static EnhancedGraphicsMetafileOptimizationResult ConvertWithInkscape(En
// 明确不存在,那就不记录错误信息了
// 大概耗时 17 毫秒
context.LogMessage($"Convert emf or wmf to svg by Inkscape failed. Because not found Inkscape application. Please make sure Inkscape be installed. We will continue use libwmf to convert the image.");
+
+ // 设置为 true 缓存,避免下次继续尝试
+ IsInkscapeNotBeInstalled = true;
}
else
{
diff --git a/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/SkiaWmfRenderer.csproj b/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/SkiaWmfRenderer.csproj
index 7418d1f..aaa226e 100644
--- a/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/SkiaWmfRenderer.csproj
+++ b/src/MediaConverters/SkiaWmfRenderer/src/SkiaWmfRenderer/SkiaWmfRenderer.csproj
@@ -53,13 +53,12 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-