筆者一直在尋找在 C# 中將 word(docx)轉 PDF 的方式,大部分的工具都需要收費,後來筆者找到一個可以免費轉換的方式,不過需要在電腦中先安裝 Office,並且在筆者的測試中 .NET Core (測試版本 .NET 8)是無法執行,只有 .NET Framework (測試版本 4.8)可以成功。
先使用 NuGet 安裝 Microsoft.Office.Interop.Word 套件 ,需要注意的是本套件並不是微軟官方套件,是將微軟工具打包的第三方套件。
範例程式碼:
在 .NET 上執行會出現:
程式碼很簡單,難的是找到解決的工具/套件,目前筆者還在尋找在 .NET(非 .NET Framework)上可以轉換的方式,如果有建議的工具或套件也歡迎留言補充。
註: 筆者嘗試過引用 Microsoft Office 16.0 Object Library 參考無法成功匯出
先使用 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 參考無法成功匯出
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com