使用 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

資源

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);
}

相關教學