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 - + -