.NET Core中使用b2xtranslator实现.doc转.docx及转PDF技术问询
.NET Core下.doc转.docx及后续HTML转换解决方案
1. 将b2xtranslator生成的.docx写入文件并验证
b2xtranslator处理.doc文件后会生成符合OpenXML标准的Package对象,直接调用其Save方法即可写入文件,验证时用OpenXML SDK检查文件是否合法。
代码示例
using System.IO; using System.IO.Packaging; using b2xtranslator.WordprocessingML; using DocumentFormat.OpenXml.Packaging; // 源文件与目标文件路径 var docFilePath = "source.doc"; var docxFilePath = "converted.docx"; // 读取.doc文件并转换为OpenXML Package using (var docStream = File.OpenRead(docFilePath)) { var docxPackage = WordprocessingDocumentConverter.Convert(docStream); // 将Package写入docx文件 using (var docxStream = File.Create(docxFilePath)) { docxPackage.Save(docxStream); } docxPackage.Close(); } // 验证生成的docx文件有效性 try { using (WordprocessingDocument.Open(docxFilePath, false)) { Console.WriteLine("生成的docx文件验证通过"); } } catch (OpenXmlPackageException ex) { Console.WriteLine($"docx文件验证失败: {ex.Message}"); }
2. 将b2xtranslator生成的.docx传入Open-XML-PowerTools转HTML
无需先写入本地文件,直接用内存流传递即可减少IO开销。从b2xtranslator的Package对象获取流,用OpenXML SDK打开为WordprocessingDocument,再传入Open-XML-PowerTools的HtmlConverter处理。
代码示例
using System.IO; using System.IO.Packaging; using b2xtranslator.WordprocessingML; using OpenXmlPowerTools; using DocumentFormat.OpenXml.Packaging; var docFilePath = "source.doc"; var htmlFilePath = "output.html"; using (var docStream = File.OpenRead(docFilePath)) { // 转换为docx Package var docxPackage = WordprocessingDocumentConverter.Convert(docStream); // 将Package写入内存流 using (var memoryStream = new MemoryStream()) { docxPackage.Save(memoryStream); memoryStream.Position = 0; // 打开为WordprocessingDocument using (var docxDoc = WordprocessingDocument.Open(memoryStream, true)) { // 配置HTML转换参数 var htmlSettings = new HtmlConverterSettings { PageTitle = "Converted Document", // 按需添加其他配置,如图片嵌入、样式保留规则等 }; // 转换为HTML并保存 var htmlContent = HtmlConverter.ConvertToHtml(docxDoc, htmlSettings); File.WriteAllText(htmlFilePath, htmlContent.ToString()); } docxPackage.Close(); } }
注意事项
- 确保通过NuGet安装依赖包:
b2xtranslator.WordprocessingML、DocumentFormat.OpenXml、OpenXmlPowerTools - 复杂格式的.doc文件转换后,可能需要调整
HtmlConverterSettings参数优化格式还原效果
内容的提问来源于stack exchange,提问作者abuybuy
相关产品推荐
相关产品推荐

