Загрузка, просмотр, конвертация CAD документа используя C#

Категория: Imaging.NET

04 августа 2026

CAD-документ - это цифровой файл, созданный в системе автоматизированного проектирования (САПР). CAD-документ содержит проектные данные: 2D-чертежи, 3D-модели, геометрию, размеры, материалы, аннотации и другие сведения, необходимые для разработки, производства, строительства или эксплуатации объекта.

Самыми популярными форматами файлов для хранения CAD-документа являются файловые форматы DWG и DXF.

Формат файлов DWG (от английского слова “drawing”) с 1982 года лицензирован компанией Autodesk как основной формат для AutoCAD.

Формат файлов DXF (Drawing Exchange Format, или Drawing Interchange Format) - это открытый формат файлов, созданный компанией Autodesk для обмена графической информацией между различными системами автоматизированного проектирования (САПР). Он позволяет передавать точные векторные чертежи, которые можно открывать и редактировать в разных программах.

VintaSoft Imaging .NET SDK позволяет загрузить CAD-документ из DWG или DXF файла. Загруженный CAD-документ может быть отрендерен, просмотрен, сконвертирован.

В данной статье мы рассмотрим наиболее часто встречающиеся ситуации, которые возникают при загрузке, рендеринге, просмотре, конвертации CAD-документа. Все примеры кода ниже используют VintaSoft Imaging .NET SDK.


Рендеринг страниц CAD документа

Каждая страница CAD документа может быть отрендерена, то есть получена в виде изображения.

Вот C# код, который демонстрирует как отрендерить все страницы CAD документа и сохранить в PNG файлы:
/// <summary>
/// Converts pages of CAD document to the PNG files.
/// </summary>
public static void ConvertCadToPng(string cadFileName)
{
    // specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
    Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();
    // specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
    //Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault();

    // create image collection
    using (Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection())
    {
        // add CAD document to the image collection
        images.Add(cadFileName);

        // create PNG encoder
        using (Vintasoft.Imaging.Codecs.Encoders.PngEncoder pngEncoder =
            new Vintasoft.Imaging.Codecs.Encoders.PngEncoder())
        {
            // for each page in CAD document
            for (int i = 0; i < images.Count; i++)
            {
                // save rendered image to a PNG file
                images[i].Save(string.Format("page{0}.png", i), pngEncoder);
            }
        }

        // dispose images
        images.ClearAndDisposeItems();
    }
}


Просмотр CAD документа в WinForms приложении

WinForms UI-контрол ImageViewer позволяет просматривать CAD документ.
Вот C# код, который демонстрирует как просмотреть CAD документ в WinForms UI-контроле ImageViewer в WinForms приложении:
...
// open CAD file in WinForms image viewer
imageViewer1.Images.Add("cube.dxf");
...


Просмотр CAD документа в WPF приложении

WPF UI-контрол WpfImageViewer позволяет просматривать CAD документ.
Вот C# код, который демонстрирует как просмотреть CAD документ в WPF UI-контроле WpfImageViewer в WPF приложении:
...
// open CAD file in WPF image viewer
wpfImageViewer1.Images.Add("cube.dxf");
...


Просмотр CAD документа в Веб приложении

JavaScript UI-контрол WebImageViewerJS позволяет просматривать CAD документ.
Вот JavaScript код, который демонстрирует как просмотреть CAD документ в JavaScript UI-контроле WebImageViewerJS в Веб приложении:
...
var imageViewer1 = new Vintasoft.Imaging.UI.WebImageViewerJS("WebImageViewer1");
// open CAD file in web image viewer
imageViewer1.get_Images().openFile("cube.dxf");
...


Также JavaScript UI-контрол WebDocumentViewerJS позволяет просматривать CAD документ.
Вот JavaScript код, который демонстрирует как просмотреть CAD документ в JavaScript UI-контроле WebDocumentViewerJS в Веб приложении:
...
// create the document viewer
var docViewer1 = new Vintasoft.Imaging.DocumentViewer.WebDocumentViewerJS(docViewerSettings);
...
// open CAD file in web document viewer
docViewer1.openFile("cube.dxf");
...


Печать CAD документа

Если нужно распечатать CAD документ в WPF-приложении, то прочитайте статью 'Печать изображений в WPF'.

Если нужно распечатать CAD документ в WinForms- или консольном-приложении, то прочитайте статью 'Печать изображений используя библиотеку System.Drawing'.


Конвертация CAD файла в PDF файл

Процесс конвертации CAD файла в PDF файл состоит из следующих шагов:

Вот C# код, который демонстрирует как сконвертировать CAD файл в PDF файл:
/// <summary>
/// Converts CAD document to a PDF document using ImageCollection and PdfEncoder classes.
/// </summary>
public static void ConvertCadToPdf(string cadFileName, string pdfFileName)
{
    // specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
    Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();
    // specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
    //Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault();

    // create image collection
    using (Vintasoft.Imaging.ImageCollection imageCollection = new Vintasoft.Imaging.ImageCollection())
    {
        // add CAD document to the image collection
        imageCollection.Add(cadFileName);

        // create PDF encoder
        using (Vintasoft.Imaging.Codecs.Encoders.PdfEncoder pdfEncoder = 
            new Vintasoft.Imaging.Codecs.Encoders.PdfEncoder(true))
        {
            // set the compression for image-resources in PDF document
            pdfEncoder.Settings.Compression = Vintasoft.Imaging.Codecs.Encoders.PdfImageCompression.Jpeg;

            // save images (CAD document) to a PDF document using PDF encoder
            imageCollection.SaveSync(pdfFileName, pdfEncoder);
        }

        // dispose images
        imageCollection.ClearAndDisposeItems();
    }
}


Конвертация CAD файла в многостраничный TIFF файл

Процесс конвертации CAD файла в многостраничный TIFF файл состоит из следующих шагов:

Вот C# код, который демонстрирует как сконвертировать PPTX файл в многостраничный TIFF файл:
/// <summary>
/// Converts CAD document to TIFF file using ImageCollection and TiffEncoder classes.
/// CAD document is rendered with specified resolution.
/// </summary>
public static void ConvertCadToTiff(string cadFileName, string tiffFileName, float dpi)
{
    // specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
    Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();
    // specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
    //Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault();

    // create image collection
    using (Vintasoft.Imaging.ImageCollection imageCollection = new Vintasoft.Imaging.ImageCollection())
    {
        // add CAD document to the image collection
        imageCollection.Add(cadFileName);

        // set the rendering settings for CAD document
        imageCollection.SetRenderingSettings(new Vintasoft.Imaging.Codecs.Decoders.RenderingSettings(dpi, dpi));

        // create TiffEncoder
        using (Vintasoft.Imaging.Codecs.Encoders.TiffEncoder tiffEncoder = 
            new Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(true))
        {
            // set TIFF compression to Zip
            tiffEncoder.Settings.Compression = 
                Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip;

            // save images (CAD document) to a multipage TIFF file using TiffEncoder
            imageCollection.SaveSync(tiffFileName, tiffEncoder);
        }

        // dispose images
        imageCollection.ClearAndDisposeItems();
    }
}


Конвертация CAD файла в PNG файлы

Процесс конвертации CAD файла в PNG файлы состоит из следующих шагов:

Вот C# код, который демонстрирует как сконвертировать CAD файл в PNG файлы:
/// <summary>
/// Converts pages of CAD document to the PNG files.
/// </summary>
public static void ConvertCadToPng(string cadFileName)
{
    // specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
    Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();
    // specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
    //Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault();

    // create image collection
    using (Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection())
    {
        // add CAD document to the image collection
        images.Add(cadFileName);

        // create PNG encoder
        using (Vintasoft.Imaging.Codecs.Encoders.PngEncoder pngEncoder =
            new Vintasoft.Imaging.Codecs.Encoders.PngEncoder())
        {
            // for each page in CAD document
            for (int i = 0; i < images.Count; i++)
            {
                // save rendered image to a PNG file
                images[i].Save(string.Format("page{0}.png", i), pngEncoder);
            }
        }

        // dispose images
        images.ClearAndDisposeItems();
    }
}


Конвертация CAD файла в SVG файлы

Процесс конвертации CAD файла в SVG файлы состоит из следующих шагов:

Вот C# код, который демонстрирует как сконвертировать CAD файл в SVG файлы:
/// <summary>
/// Converts CAD document to the SVG files using ImageCollection and SvgEncoder classes.
/// </summary>
public static void ConvertCadToSvg(string cadFileName)
{
    // specify that VintaSoft Imaging .NET SDK should use GDI+ for drawing of 2D graphics
    Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();
    // specify that VintaSoft Imaging .NET SDK should use SkiaSharp for drawing of 2D graphics
    //Vintasoft.Imaging.Drawing.SkiaSharp.SkiaSharpDrawingFactory.SetAsDefault();

    // create image collection
    using (Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection())
    {
        // add CAD document to the image collection
        images.Add(cadFileName);

        // create SVG encoder
        using (Vintasoft.Imaging.Codecs.Encoders.SvgEncoder svgEncoder =
            new Vintasoft.Imaging.Codecs.Encoders.SvgEncoder())
        {
            // specify that SVG encoder should compress embedded image using PNG compression
            svgEncoder.Settings.EmbeddedImageEncoder = new Vintasoft.Imaging.Codecs.Encoders.PngEncoder();

            // for each page in CAD document
            for (int i = 0; i < images.Count; i++)
            {
                // save page to SVG file
                images[i].Save(string.Format("page{0}.svg", i), svgEncoder);
            }
        }

        // dispose images
        images.ClearAndDisposeItems();
    }
}