Stories

Detail Return Return

在.NET程序中實現Word轉Markdown - Stories Detail

將Word文檔轉換成Markdown文本可以提高內容的可移植性,方便在不同的平台編輯和發佈文檔內容。特別是在內容管理、博客發佈、技術寫作等場景中,將Word文檔轉換為Markdown格式的可以極大地方便內容創作者。本文將探討在.NET框架下,利用現有的工具和技術,實現Word文檔向Markdown格式的轉換,提供步驟介紹以及代碼示例。

  • 用C#將Word文檔直接轉換為Markdown文件
  • 移除Word文檔圖片並將其轉換為Markdown格式

本文所使用的方法需要用到Spire.Doc for .NET,NuGet:PM> Install-Package Spire.Doc

申請免費License

用C#將Word文檔直接轉換為Markdown文件

我們可以通過加載文檔使用Document.LoadFromFile()方法,然後使用Document.SaveToFile(filename: String, FileFormat.Markdown)方法將其轉換為Markdown文件。操作步驟示例:

  1. 導入所需模塊。
  2. 創建 Document 類的實例。
  3. 使用 Document.LoadFromFile() 方法加載 Word 文檔。
  4. 使用 Document.SaveToFile(filename: String, FileFormat.Markdown) 方法將文檔轉換為 Markdown 文件。
  5. 釋放資源。

代碼示例

using Spire.Doc;

namespace WordToMarkdown
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創建Document類的實例
            Document doc = new Document();

            // 加載一個Word文檔
            doc.LoadFromFile("示例.docx");

            // 將文檔轉換為Markdown文件
            doc.SaveToFile("output/WordToMarkdown.md", FileFormat.Markdown);
            doc.Dispose();
        }
    }
}

結果
.NET轉換Word為Markdown

移除Word文檔圖片並將其轉換為Markdown格式

使用上面的方法將Word文檔轉換為Markdown文件時,圖片會默認以Base64編碼存儲在Markdown代碼中,可能會使轉換出的文件過大且影響兼容性。為了應對這一問題,我們可以在轉換過程中移除圖片,在後續編輯中以鏈接形式添加相應圖片。操作步驟示例:

  1. 導入所需模塊。
  2. 創建 Document 類的實例。
  3. 使用 Document.LoadFromFile() 方法加載 Word 文檔。
  4. 遍歷文檔中的各部分,再遍歷段落。
  5. 遍歷段落中的文檔對象:

    • 通過 Paragraph.ChildObjects[] 屬性獲取文檔對象。
    • 檢查其是否是 DocPicture 類的實例。如果是,則使用 Paragraph.ChildObjects.Remove(DocumentObject) 方法將其從段落中移除。
  6. 使用 Document.SaveToFile(filename: String, FileFormat.Markdown) 方法將文檔轉換為 Markdown 文件。
  7. 釋放資源。

代碼示例

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace WordToMarkdownNoImage
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創建Document類的實例
            Document doc = new Document();

            // 加載一個Word文檔
            doc.LoadFromFile("示例.docx");

            // 遍歷文檔中的各個部分
            foreach (Section section in doc.Sections)
            {
                // 遍歷部分中的各個段落
                foreach (Paragraph paragraph in section.Paragraphs)
                {
                    // 遍歷段落中的文檔對象
                    for (int i = 0; i < paragraph.ChildObjects.Count; i++)
                    {
                        // 獲取一個文檔對象
                        DocumentObject docObj = paragraph.ChildObjects[i];
                        // 檢查它是否是DocPicture類的實例
                        if (docObj is DocPicture)
                        {
                            // 移除DocPicture實例
                            paragraph.ChildObjects.Remove(docObj);
                        }
                    }
                }
            }

            // 將文檔轉換為Markdown文件
            doc.SaveToFile("output/WordToMarkdownNoImage.md", FileFormat.Markdown);
            doc.Dispose();
        }
    }
}

結果
.NET將Word轉換為Markdown並刪除圖片

本文演示瞭如何使用C#代碼在.NET程序中實現Word文檔轉Markdown格式。

user avatar chai_huo Avatar zoulu1 Avatar
Favorites 2 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.