Skip to content

Commit ca87bbf

Browse files
committed
修复图片转换失败
1 parent b5147fe commit ca87bbf

3 files changed

Lines changed: 35 additions & 17 deletions

File tree

Workbench/Wmf/SkiaWmfRenderer/samples/sample/Program.cs

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
// See https://aka.ms/new-console-template for more information
22

3+
using DocSharp.Markdown;
4+
5+
using Markdig;
6+
37
using Oxage.Wmf;
48
using Oxage.Wmf.Records;
59

@@ -11,23 +15,36 @@
1115
using System.Drawing;
1216
using System.Drawing.Imaging;
1317
using System.Text;
18+
using DocSharp;
19+
using Markdig.Extensions.Figures;
20+
using Markdig.Syntax;
1421

1522
var markdownText = new StringBuilder();
1623
var outputFolder = Path.Join(AppContext.BaseDirectory, $"Output_{Path.GetRandomFileName()}");
1724
Directory.CreateDirectory(outputFolder);
1825

19-
var testFile = @"C:\lindexi\wmf公式\sample.wmf";
20-
ConvertImageFile(testFile);
26+
//var testFile = @"C:\lindexi\wmf公式\sample.wmf";
27+
//ConvertImageFile(testFile);
2128

22-
//var folder = @"C:\lindexi\wmf公式\";
29+
var folder = @"C:\lindexi\wmf公式\";
2330

24-
//foreach (var file in Directory.EnumerateFiles(folder, "*.wmf"))
25-
//{
26-
// ConvertImageFile(file);
27-
//}
31+
foreach (var file in Directory.EnumerateFiles(folder, "*.wmf"))
32+
{
33+
ConvertImageFile(file);
34+
}
2835

2936
var markdownFile = Path.Join(outputFolder, "README.md");
30-
File.WriteAllText(markdownFile, markdownText.ToString());
37+
var markdown = markdownText.ToString();
38+
File.WriteAllText(markdownFile, markdown);
39+
40+
var docxFile = Path.Join(outputFolder, "README.docx");
41+
var markdownConverter = new MarkdownConverter
42+
{
43+
ImagesBaseUri = outputFolder
44+
};
45+
46+
MarkdownSource markdownSource = MarkdownSource.FromMarkdownString(markdown);
47+
markdownConverter.ToDocx(markdownSource, docxFile);
3148

3249
Console.WriteLine("Hello, World!");
3350

@@ -71,4 +88,4 @@ void ConvertImageFile(string file)
7188
}
7289

7390
markdownText.AppendLine("");
74-
}
91+
}

Workbench/Wmf/SkiaWmfRenderer/samples/sample/Sample.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageReference Include="SkiaSharp" Version="3.119.0" />
1616
<PackageReference Include="System.Drawing.Common" Version="9.0.7" />
1717
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.7" />
18+
<PackageReference Include="DocSharp.Markdown" Version="0.8.5" />
1819
</ItemGroup>
1920

2021
</Project>

Workbench/Wmf/SkiaWmfRenderer/src/SkiaWmfRenderer/Rendering/WmfRenderer.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,13 @@ private bool TryRenderInner(SKCanvas canvas, WmfRenderStatus renderStatus)
163163
}
164164
}
165165

166-
return true;
166+
// 如果包含有文本,且此时有其他编码或带 DX 就表示可以转换,效果不会比 libwmf 更差
167+
if (renderStatus.IsIncludeText && (renderStatus.IsIncludeOtherEncoding || renderStatus.IsIncludeTextWithDx))
168+
{
169+
return true;
170+
}
171+
172+
return false;
167173
}
168174

169175
private static bool RenderRecord(SKCanvas canvas, WmfRenderStatus renderStatus, IBinaryRecord wmfDocumentRecord)
@@ -480,12 +486,6 @@ private static bool RenderRecord(SKCanvas canvas, WmfRenderStatus renderStatus,
480486
}
481487
}
482488

483-
// 如果包含有文本,且此时有其他编码或带 DX 就表示可以转换,效果不会比 libwmf 更差
484-
if (renderStatus.IsIncludeText && (renderStatus.IsIncludeOtherEncoding ||renderStatus.IsIncludeTextWithDx))
485-
{
486-
return true;
487-
}
488-
489-
return false;
489+
return true;
490490
}
491491
}

0 commit comments

Comments
 (0)