使用 GroupDocs.Conversion for .NET 將 DGN 轉換為 PSD
介紹
如果您需要將 AutoCAD DGN 圖紙轉換為 Photoshop PSD 檔案,groupdocs conversion .net 是能夠完成繁重工作且可靠的函式庫。在本教學中,您將了解為何此 API 是開發人員的首選、如何安裝以及執行完美 DGN 轉 PSD 所需的完整程式碼。完成後,您即可將轉換邏輯嵌入任何 .NET 應用程式,提升工作流程效率。
快速解答
- 哪個函式庫負責 DGN → PSD 轉換? GroupDocs.Conversion for .NET.
- 我在正式環境需要授權嗎? 是 – 完整授權會移除試用限制。
- 我可以轉換多頁 DGN 檔案嗎? 每一頁都會另存為單獨的 PSD 檔案。
- 支援哪些 .NET 版本? .NET Framework 4.5+、.NET Core 3.1+、.NET 5/6+。
- 一般的轉換需要多久? 在標準伺服器上,200 頁以下的檔案每頁大約 0.5 秒。
什麼是 groupdocs conversion .net?
GroupDocs.Conversion for .NET 是一個高效能 API,能夠以程式方式在 50+ 種文件、影像與 CAD 格式之間進行轉換——包括 DGN 轉 PSD——且不需外部應用程式。它在記憶體中處理檔案,降低 I/O 負擔並提升延遲。此函式庫亦內建串流、批次處理與詳細日誌功能,適用於小型工具與大型企業管線。
為何使用 GroupDocs.Conversion 進行 DGN → PSD 轉換?
GroupDocs.Conversion 提供廣泛的格式支援、可擴充的架構與高保真度渲染。它能處理上百頁的 DGN 檔案,透過逐頁串流將記憶體使用量控制在 150 MB 以下。精確度維持在 99.9 % 的保真度,且在 2.4 GHz CPU 上,150 頁的 DGN 檔案通常可在 45 秒 內完成轉換。
前置條件
- GroupDocs.Conversion for .NET(版本 25.3.0 或更新)
- .NET 開發環境(Visual Studio 2022 或 VS Code)
- 基本的 C# 知識
如何安裝 GroupDocs.Conversion for .NET?
您可以透過 NuGet 安裝套件。於 Visual Studio 開啟 Package Manager Console,然後執行:
Install-Package GroupDocs.Conversion
或者,若您偏好使用 .NET CLI,執行以下指令:
dotnet add package GroupDocs.Conversion
上述兩個指令皆會下載最新的穩定二進位檔,並將必要的參考加入您的專案檔案。
如何取得 GroupDocs 轉換授權?
有效的授權會解鎖所有功能並移除浮水印。請從以下選項中選擇:
- 免費試用: 每日限制 5 次轉換。
- 臨時授權: 提供完整功能,期限 30 天,適合評估使用。
- 付費授權: 依開發者或全站授權方式提供,適用於正式環境。
請前往官方購買頁面或臨時授權頁面取得詳細資訊。
如何初始化 Conversion 引擎?
ConversionConfig 類別儲存全域設定,例如儲存路徑與授權資訊。請在應用程式啟動時初始化一次:
var config = new ConversionConfig
{
LicensePath = @"C:\Licenses\GroupDocs.Conversion.lic",
StoragePath = @"C:\ConvertedFiles"
};
Converter 類別根據提供的設定執行實際的檔案轉換。
如何一步步將 DGN 檔案轉換為 PSD
載入來源 DGN,設定 PSD 選項,並將每頁串流至個別的 PSD 檔案。此流程分為三個簡潔步驟。
步驟 1:準備輸出目錄與命名範本
定義產生的 PSD 檔案儲存位置以及命名方式:
string outputFolder = Path.Combine(config.StoragePath, "DgnToPsd");
Directory.CreateDirectory(outputFolder);
string fileTemplate = Path.Combine(outputFolder, "Page_{0}.psd");
步驟 2:為每頁建立串流處理程序
SavePage 輔助方法會將每頁的位元組陣列寫入檔案串流,確保正確釋放資源:
void SavePage(Stream pageStream, int pageNumber)
{
string filePath = string.Format(fileTemplate, pageNumber);
using (var file = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
pageStream.CopyTo(file);
}
}
步驟 3:載入 DGN 並執行轉換
建立 Converter 實例,設定 PSD 選項,並遍歷各頁:
using (var converter = new Converter("sample.dgn", config))
{
var options = new PsdConvertOptions();
var pages = converter.GetPages();
int pageIndex = 1;
foreach (var page in pages)
{
using (var stream = new MemoryStream())
{
converter.Convert(page, stream, options);
SavePage(stream, pageIndex++);
}
}
}
上述程式碼會讀取每個 DGN 頁面,將其轉換為 PSD 串流,並使用 SavePage 輔助方法儲存。
如何有效處理大型 DGN 檔案?
當處理超過 200 MB 的檔案時,請啟用串流模式以避免將整個文件載入記憶體。此旗標會指示引擎一次處理單一頁面,保持峰值記憶體使用量低:
var config = new ConversionConfig { EnableStreaming = true };
常見問題與解決方案
- 找不到檔案路徑: 使用絕對路徑或搭配
AppDomain.CurrentDomain.BaseDirectory使用Path.Combine。 - 缺少相依性: 確認 NuGet 套件版本與執行環境相符(.NET Framework 與 .NET Core)。
- 授權錯誤: 確認
.lic檔案可存取,且在ConversionConfig中正確設定路徑。
常見問答
問:我可以轉換受密碼保護的 DGN 檔案嗎?
答:可以。將密碼傳入 Converter 建構子:new Converter("file.dgn", config, "password")。
問:轉換過程會保留圖層資訊嗎?
答:GroupDocs.Conversion 會將向量圖層保留為獨立的 PSD 群組,方便在 Photoshop 中後續處理。
問:能否批次轉換多個 DGN 檔案?
答:當然可以。遍歷目錄,為每個檔案建立 Converter,並重複使用相同的 ConversionConfig。
問:最佳效能的系統需求是什麼?
答:建議使用 CPU ≥ 2.4 GHz、8 GB 記憶體,以及 SSD 儲存空間,適用於 500 頁以下的檔案。
問:如何記錄轉換錯誤以供監控?
答:訂閱 Converter.OnError 事件,並將詳細資訊寫入您偏好的日誌框架。
結論
您現在已擁有使用 groupdocs conversion .net 進行 DGN 圖紙轉換為 PSD 檔案的完整、可投入生產的解決方案。此 API 廣泛的格式支援、高保真度與串流功能,使其同時適用於小型工具與大型企業管線。探索其他格式、微調轉換選項,並將此工作流程整合至現有的 .NET 服務,開啟更多可能性。
最後更新: 2026-06-10
測試環境: GroupDocs.Conversion 25.3.0 for .NET
作者: GroupDocs
資源
- GroupDocs 購買頁面
- 臨時授權頁面
- GroupDocs.Conversion .NET 文件
- GroupDocs API 參考
- 取得最新發行版
- 購買 GroupDocs.Conversion
- 試用
- 申請臨時授權
- GroupDocs 論壇
Install-Package GroupDocs.Conversion -Version 25.3.0
dotnet add package GroupDocs.Conversion --version 25.3.0
using System;
using GroupDocs.Conversion;
namespace DgnToPsdConversion
{
class Program
{
static void Main(string[] args)
{
// Initialize the Converter object with your source file path
using (Converter converter = new Converter("path_to_your_dgn_file.dgn"))
{
// Conversion logic will be implemented here
}
}
}
}
string outputFolder = @"YOUR_OUTPUT_DIRECTORY/";
string outputFileTemplate = Path.Combine(outputFolder, "converted-page-{0}.psd");
Func<SavePageContext, Stream> getPageStream = savePageContext =>
new FileStream(string.Format(outputFileTemplate, savePageContext.Page), FileMode.Create);
using (Converter converter = new Converter(@"YOUR_DOCUMENT_DIRECTORY\sample.dgn"))
{
// Set up conversion options for PSD format
ImageConvertOptions options = new ImageConvertOptions { Format = GroupDocs.Conversion.FileTypes.ImageFileType.Psd };
// Perform the conversion using the defined stream handler
converter.Convert(getPageStream, options);
}