C# docx 轉 PDF (限 .NET Framework)

筆者一直在尋找在 C# 中將 word(docx)轉 PDF 的方式,大部分的工具都需要收費,後來筆者找到一個可以免費轉換的方式,不過需要在電腦中先安裝 Office,並且在筆者的測試中 .NET Core (測試版本 .NET 8)是無法執行,只有 .NET Framework (測試版本 4.8)可以成功。

先使用 NuGet 安裝 Microsoft.Office.Interop.Word 套件 ,需要注意的是本套件並不是微軟官方套件,是將微軟工具打包的第三方套件。

範例程式碼:
    
using System;
using Microsoft.Office.Interop.Word;


public static void Main(string[] args)
{
    var input = @"C:\example.docx";
    var output = @"C:\example.pdf";

    Application wordApp = new Application();
    Document doc = null;
    
    try
    {
        doc = wordApp.Documents.Open(input);
        doc.ExportAsFixedFormat(output, WdExportFormat.wdExportFormatPDF);
    }
    catch (Exception ex)
    {
        Console.WriteLine("發生錯誤: " + ex.Message);
    }
    finally
    {
        doc?.Close(false);
        wordApp.Quit();
    }
}
    

在 .NET 上執行會出現:
    
0>Microsoft.Common.CurrentVersion.targets(3029,5): Error MSB4803 : MSBuild 的 .NET Core 版本不支援工作 "ResolveComReference"。請使用 MSBuild 的 .NET Framework 版本。如需進一步的詳細資料,請參閱 https://aka.ms/msbuild/MSB4803。
0>------- Finished building project: ConsoleAppDocxToPdfTest0725. Succeeded: False. Errors: 1. Warnings: 0
    

程式碼很簡單,難的是找到解決的工具/套件,目前筆者還在尋找在 .NET(非 .NET Framework)上可以轉換的方式,如果有建議的工具或套件也歡迎留言補充。
註: 筆者嘗試過引用 Microsoft Office 16.0 Object Library 參考無法成功匯出

留言