为有中文需求的客户提供多渠道中文技术支持.

Tue Sep 23, 2025 12:22 am

您好, 刚刚使用spire.Doc最新版做了下测试,用下面代码转换md为docx,有如下问题:

1.所有的代码段转换后, 添加了底纹, 但最后多了一个空行

2.编号格式不统一, 例如: 执行流程的下级编号

3.符号变成方框, 例如: 手形等

4.表格的表头, 宽度变小, 不同列

5.正文大部分是加粗显示的

相关文件在附件

另外, 想问一下, 如何给代码块取消底纹并设置单独的字体, 例如msyh mono, 如何设置特定编程语言代码的着色? 能通过未来版本的从docx模板读取实现吗?

Code: Select all
using Spire.Doc;

// 创建一个Document类对象
Document doc = new Document();

// 加载Markdown文件
doc.LoadFromFile("a.md", FileFormat.Markdown);

// 将Markdown文件转换为Word文档
doc.SaveToFile("a.docx", FileFormat.Docx);
doc.Close();


xyzxyzxyz
 
Posts: 64
Joined: Fri Dec 27, 2024 1:10 pm

Tue Sep 23, 2025 6:37 am

您好,

感谢您的询问。
关于您提到的问题,我的测试结果如下:
1.复现了您遇到的问题1(代码块下出现空行),2,5 并已经将其记录到我们的问题跟踪系统中,跟踪编号:SPIREDOC-11564, 我们的开发人员将进一步调查并修复它。
2.问题3 在测试中并未出现,md 文件中的手型和三角形符号表现均正常。
3.问题4 结果文件中的整个表格宽度已经与word 页面的宽度一致,您可以提供一个您期望的表格表现吗?我将我的测试结果文件附上供您参考。
关于对代码块的底纹取消以及设置字体,您可以参考以下代码:
Code: Select all
 Document doc = new Document();
 doc.LoadFromFile(@"a.docx");

 foreach (Section section in doc.Sections)
 {
     foreach (Paragraph paragraph in section.Paragraphs)
     {
             Console.WriteLine(paragraph.StyleName);

         if (paragraph.StyleName == "FencedCodebash" || paragraph.StyleName == "FencedCodeyaml" || paragraph.StyleName == "FencedCodejson" || paragraph.StyleName == "FencedCodetxt")
         {
             // 清除原有的代码块样式
             paragraph.Format.ClearFormatting();
             foreach (DocumentObject documentObject in paragraph.ChildObjects)
             {

                 if (documentObject.DocumentObjectType.Equals(DocumentObjectType.TextRange))
                 {
                     TextRange textRange = (TextRange)documentObject;
                     //设置文本的字体大小
                     textRange.CharacterFormat.FontSize = 12;
                     //设置文本的字体名
                     textRange.CharacterFormat.FontName = "Microsoft YaHei Mono";
                     //设置文本的字体颜色
                     textRange.CharacterFormat.TextColor = Color.Orange;
                     //设置文本是否加粗(true为加粗,false反之)
                     textRange.CharacterFormat.Bold = true;
                 }
             }
         }
     }
 }
 doc.SaveToFile("test_result.docx", FileFormat.Docx);


关于从docx 模板读取并应用样式以及实现设置特定编程语言代码的着色的功能,已经记录在您之前提出的问题SPIREDOC-11072中 ,由于功能较为复杂,我们的开发人员正在进行进一步的调整测试。以上问题一旦有任何进展,我们会第一时间通知您。
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Tue Sep 23, 2025 7:50 am

关于问题4,下图是从您的文件中截取的, 标头宽度变小了,不同列
b1.png


关于问题3,请看下图, 我用的是wps 12.8.2
b2.png

xyzxyzxyz
 
Posts: 64
Joined: Fri Dec 27, 2024 1:10 pm

Tue Sep 23, 2025 8:07 am

您好,

感谢您的反馈。
我本地环境(windows 11,64bit)使用Microsoft Word 2019查看结果文件,显示如以下截图。您能提供您查看文件的系统环境和软件版本吗?我们将进行进一步的调查。感谢您的合作!
output.png
office版本.png
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Tue Sep 23, 2025 8:10 am

win系统版本和wps软件版本如下:
a2.png

a1.png

xyzxyzxyz
 
Posts: 64
Joined: Fri Dec 27, 2024 1:10 pm

Tue Sep 23, 2025 8:24 am

另外, 在spire.Doc中, 并不需要设置自定义字体文件夹, msyh mono字体就能正确设置, 而spire.Pdf就不行, 有点怪

xyzxyzxyz
 
Posts: 64
Joined: Fri Dec 27, 2024 1:10 pm

Tue Sep 23, 2025 9:55 am

您好,

感谢您的分享。
我使用WPS复现了您提到的问题,我已经将其记录到问题SPIREDOC-11564下,我们的开发人员会进行进一步的调查。需要说明的是,Spire.Doc 主要对标 Microsoft Word 功能,由于 WPS 与 Word 在标准上存在差异,同一份文档在两套软件中可能会出现显示或排版不一致的情况。我们也在持续优化对 WPS 的兼容性。
关于Microsoft YaHei Mono字体在doc 和pdf中的使用区别,当Spire.Doc生成.docx文件时,我们仅指定字体名称。当用户用Word等工具打开时,该工具会调用其系统上的对应字体进行显示。而转PDF时,我们的产品则需要主动在系统中查找并嵌入该字体进行绘制,所以显示该字体无法正常使用。
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Return to 中文技术支持

cron