将 DGN 转换为 PSD 使用 GroupDocs.Conversion for .NET

介绍

如果您需要将 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 % 的保真度,典型的 150 页 DGN 文件转换在 2.4 GHz CPU 上可在 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 conversion 许可证?

有效的许可证可解锁所有功能并移除水印。请选择以下选项之一:

  • 免费试用: 每天限制 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 };

常见问题及解决方案

  • 文件路径未找到: 使用绝对路径或 Path.CombineAppDomain.CurrentDomain.BaseDirectory
  • 缺少依赖项: 验证 NuGet 包版本与运行时(.NET Framework 与 .NET Core)匹配。
  • 许可证错误: 确保 .lic 文件可访问,并在 ConversionConfig 中正确设置路径。

常见问题解答

Q: 我可以转换受密码保护的 DGN 文件吗?
A: 可以。将密码传递给 Converter 构造函数:new Converter("file.dgn", config, "password")

Q: 转换会保留图层信息吗?
A: GroupDocs.Conversion 将矢量图层保留为单独的 PSD 组,便于在 Photoshop 中后期处理。

Q: 是否可以批量转换多个 DGN 文件?
A: 完全可以。遍历目录,为每个文件实例化 Converter,并复用相同的 ConversionConfig

Q: 最佳性能的系统要求是什么?
A: 建议使用 CPU ≥ 2.4 GHz、8 GB RAM 和 SSD 存储,适用于 500 页以下的文件。

Q: 如何记录转换错误以进行监控?
A: 订阅 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);
}

相关教程