You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 04:15:48