Конвертация DWG, DXF, PLT, HPGL в PDF и TIFF на серверах Windows — без AutoCAD.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total CAD ConverterX — это серверный SDK, который конвертирует чертежи DWG, DXF, DWF, PLT, HPGL, SVG и CGM в PDF, TIFF, JPEG, PNG, BMP, WMF и DXF — без AutoCAD, установленного на сервере. Он работает headless: без GUI, без диалогов, без кликов. Total CAD ConverterX поставляется с консольной утилитой и интерфейсом ActiveX/COM, поэтому встраивается в ASP, PHP, .NET, Python, Ruby, Java и любой другой COM-совместимый бэкенд.
Поддерживаемые исходные форматы: dxf, dwg, dwf, plt, hg, hgl, hpg, plo, hp, hpl, hpgl, hp1, hp2, hpgl2, gl2, spl, prn, svg, cgm.
Total CAD ConverterX имеет уникальные опции для пакетного преобразования нескольких файлов CAD за раз:
Ищете решения на серверной основе? Откройте для себя ряд серверных продуктов, обеспечивающих надежную работу, на странице CoolUtils Server Products.
Если вам нужны примеры на языках программирования, пожалуйста, свяжитесь с нами. Мы создадим любой пример для вас.
LLM-агенты (Claude, ChatGPT, Cursor, Cline) и поисковые фреймворки (LangChain, LlamaIndex, Haystack) не читают DWG или DXF — они читают текст. Total CAD ConverterX обходит CAD-чертёж и пишет его структуру слоёв, метаданные основной надписи и встроенные тексты/аннотации как GitHub-Flavored Markdown со структурированным фронтматтером и опциональным Docling-совместимым sidecar, поэтому набор чертежей попадает в ваш векторный индекс как индексируемый текст — а не как непрозрачный бинарник, который остальной стек проиндексировать не сможет.
Что вы получаете, выбирая Markdown на выходе:
##-разделом; текстовые сущности, многострочный текст (MTEXT), подписи размеров и аннотации на этом слое перечисляются под ним
#; разделы слоёв вкладываются внутрь
source_file, format (MIME — DWG/DXF/HPGL и т.д.), cad_version, единицы измерения чертежа (mm/inch), число слоёв, число листов, атрибуты основной надписи, generator, created и binary_hash для provenance
.docling.json — JSON по схеме Docling со счётчиками сущностей по слоям, bounding-боксами отдельных сущностей (чтобы цитата разрешалась в позицию на чертеже), инвентарём блочных вхождений и массивом chunks_hint, который читает ваш сплиттер
Это CoolUtils RAG Adapter — единый Markdown-контракт, общий для всех продуктов Total Converter X. Полная спецификация, пример .md + .docling.json и фрагменты для интеграции живут на странице Coolutils Converter X — RAG Adapter.
(включает 30-дневный бесплатный пробный период)
(только $950.00)
string src = @"C:\test\Source.dwg";
string dest = @"C:\test\Dest.pdf";
var cnv = new CADConverterX();
cnv.Convert(src, dest, "-c PDF -log c:\\test\\CAD.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
Загрузить пример .NET CAD Converter
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("начато...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\CADConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var msgPath = $@"{assemblyDirectoryPath}\MSG\MSG-1.dwg";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(msgPath))
{
sbLogs.AppendLine("файлы существуют...");
}
else
sbLogs.AppendLine("файлы EXE и MSG НЕ существуют...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{msgPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"ожидание...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"завершено...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("сон...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Конвертация успешно завершена.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("CADConverter.CADConverterX")
C.Convert "c:\test\source.dwg", "c:\test\dest.pdf", "-cPDF -log c:\test\CAD.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("CADConverter.CADConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite c.ConvertToStream("C:\www\ASP\Source.dwg", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
Пример PHP:
$src="C:\\test\\test.dwg";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("CADConverter.CADConverterX");
$c->convert($src,$dest, "-c pdf -log c:\\test\\Mail.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('CADConverter.CADConverterX')
src="C:\\test\\test.dwg";
dest="C:\\test\\test.pdf";
c.convert(src,dest, "-c PDF -log c:\\test\\CAD.log");
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("CADConverter.CADConverterX")
src="C:\\test\\test.dwg";
dest="C:\\test\\test.pdf";
c.convert(src, dest, "-c PDF -log c:\\test\\CAD.log");
if not os.path.exists(file_path):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c:=CreateOleObject('CADConverter.CADConverterX');
C.Convert('c:\test\source.dwg', 'c:\test\dest.pdf', '-cPDF -log c:\test\CAD.log');
IF c.ErrorMessage<>'' Then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("CADConverter.CADConverterX");
c.Convert("C:\\test\\source.dwg", "C:\\test\\dest.pdf", "-c PDF");
if (c.ErrorMessage!="")
alert(c.ErrorMessage)
use Win32::OLE; my $src="C:\\test\\test.dwg"; my $dest="C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'CADConverter.CADConverterX'; $c->convert($src,$dest, "-c pdf -log c:\\test\\CAD.log"); print $c->ErrorMessage if -e $dest;
"В прошлом году заменили наш DWG-to-PDF микросервис на базе AutoCAD на Total CAD ConverterX. Мы платили за лицензии AutoCAD на трёх конвертерных VM только ради того, чтобы один-единственный COM-скрипт автоматизации мог работать. Теперь на этих VM не работает ничего, кроме CADConverterX.exe за очередью. Задержка конвертации упала примерно с 25 секунд на чертёж до 4 секунд, а годовой счёт за лицензии сократился на порядок. Интеграция ActiveX с нашим .NET-воркером заняла полдня."
Marko D.
Senior Backend Developer
"Мы запускаем Total CAD ConverterX внутри контейнера Windows Server Core как часть Azure-пайплайна. Клиенты загружают DWG, очередь их забирает, конвертер выдаёт архивный PDF/A, файлы уходят в blob storage. Никакого GUI, никакого AutoCAD, никаких сюрпризов с лицензиями. Флаг -log даёт нам построчный лог для каждого файла, который сразу попадает в наш агрегатор логов. Настройка прошла без проблем: зарегистрировать COM, смонтировать рабочий каталог, готово."
Anita V.
DevOps Engineer
"Мы принимаем клиентские чертежи в любом формате, который присылают: DWG, PLT, HPGL2, SVG — всё подряд. Наш приёмный портал вызывает Total CAD ConverterX через PHP COM-интерфейс и формирует превью PDF до того, как оператор начнёт плоттинг. То, что PLT и HPGL2 просто работают из коробки — именно поэтому мы выбрали этот продукт, а не альтернативы. Большинство CAD-библиотек сосредоточены на DWG и относятся к плоттерным форматам как к второсортным."
Stefan K.
CTO at a printing & plotting bureau
"Включили Total CAD ConverterX в наш продукт для управления чертежами по Royalty-Free License. Разовая плата за проект оказалась небольшой долей того, что мы платили предыдущему вендору в виде посерверных отчислений за распространение. Наш инсталлятор поставляет ActiveX, регистрирует его при установке, и наше приложение вызывает его напрямую. Клиенты конвертера никогда не видят. Поддержка реагировала оперативно каждый раз, когда мы натыкались на необычный edge case формата."
Paolo F.
Independent Software Vendor
"Достойная замена COM-автоматизации AutoCAD, которую мы использовали для пакетной конвертации DXF в PDF во внутреннем asset-workflow. Прежняя схема требовала полную установку AutoCAD на машине-конвертере и ломалась после каждого обновления AutoCAD. Total CAD ConverterX работает как обычный Windows-бинарник и переживает безнадзорные ночные прогоны. Документация местами могла бы быть подробнее (пришлось спрашивать поддержку про пару CLI-флагов), но на каждый вопрос мы получали полезный ответ в течение рабочего дня."
Lena B.
Lead .NET Developer
Total CAD ConverterX поставляется с CADConverterX.exe — консольной программой, которую можно запускать из скриптов, планировщика задач, CI-раннеров или любого серверного сервиса. Набор флагов соответствует GUI-версии CADConverter.exe; полный справочник смотрите в документации командной строки. Приведённые ниже рецепты охватывают сценарии, о которых чаще всего спрашивают клиенты SDK.
Минимально возможный вызов — один исходный файл, один вывод, один целевой формат.
CADConverterX.exe "C:\drawings\plan.dwg" "C:\out\plan.pdf" -cPDF
Обработайте каждый DWG в папке и положите PDF в соседнюю папку вывода.
CADConverterX.exe "C:\drawings\*.dwg" "C:\out\" -cPDF
Замените маску на *.dxf, *.plt, *.hpgl и т. д., чтобы выбрать другой исходный формат.
Архитектурные и инженерные проекты редко лежат в одной плоской папке. -Recurse обходит подкаталоги; -kfs воссоздаёт ту же структуру на стороне вывода вместо того, чтобы сваливать всё в одну корзину.
CADConverterX.exe "C:\projects\AcmeTower\*.dwg" "C:\out\AcmeTower\" -cPDF -Recurse -kfs
Типичная поставка CAD — альбом: десятки листов, которые принадлежат друг другу. -combine сливает их в один PDF в порядке исходных файлов.
CADConverterX.exe "C:\projects\AcmeTower\sheets\*.dwg" "C:\out\AcmeTower-album.pdf" -cPDF -combine
Используйте -sort name или -sort numbers, чтобы управлять порядком листов, и -cimt onefile при выводе в многостраничный TIFF вместо PDF.
Для обмена данными между CAD-инструментами или для встраивания чертежей на веб-страницу выводите в векторный формат, отличный от PDF.
CADConverterX.exe "C:\drawings\*.dwg" "C:\out\" -cDXF
CADConverterX.exe "C:\drawings\*.dwg" "C:\out\" -cSVG
Архивы чертежей долгого хранения обычно черно-белые TIFF со сжатием G4 fax — маленькие на диске, без потерь, принимаются любым просмотрщиком.
CADConverterX.exe "C:\drawings\*.dwg" "C:\archive\" -cTIF -dpi 600 -cm bw -tc G4FAX
Снизьте -dpi до 300 для экранных копий рецензирования или поднимите до 1200, если файл пойдёт на широкоформатный плоттер.
Как только CADConverterX.exe работает как сервис или плановое задание, единственный способ узнать, что произошло, — лог. -verbosity detail пишет по строке на файл; -logmode append сохраняет историю между запусками.
CADConverterX.exe "C:\drawings\*.dwg" "C:\out\" -cPDF -log "C:\logs\cadconv.log" -verbosity detail -logmode append
Когда воркер пишет файл-очередь, а конвертер его разбирает, не нужно зашивать пути к файлам в саму командную строку. -list читает маски файлов (по одной на строку) из текстового файла.
CADConverterX.exe -list "C:\queues\batch.txt" "C:\out\" -cPDF
Стандарт для отправки чертежей субподрядчикам: пароль владельца блокирует права на редактирование/печать, пароль пользователя ограничивает открытие файла, а водяной знак маркирует каждую страницу.
CADConverterX.exe "C:\drawings\*.dwg" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Copy -wmt "CONFIDENTIAL"
Замените Copy любой комбинацией Modify, Annotation, FormFill, HighResPrint, чтобы предоставить именно те права, которые вы хотите.
Для рабочих процессов управления записями, требующих PDF/A по ISO 19005 с надлежащими авторскими метаданными.
CADConverterX.exe "C:\drawings\*.dwg" "C:\archive\" -cPDF -pdfa -PDFAuthor "Acme Engineering" -PDFTitle "Tower Project Phase 2" -PDFSubject "As-built drawings"
Обновлено Fri, 01 May 2026
(только $950.00)
new COM("CADConverter.CADConverterX") в PHP, new CADConverterX() в .NET, win32com.client.Dispatch в Python, WIN32OLE.new в Ruby и CreateOleObject в Pascal/Delphi. На странице выше есть готовые к копированию примеры кода для каждого языка. Альтернативно, бинарник командной строки CADConverterX.exe может быть вызван из любого процесса, планировщика или shell-скрипта.mcr.microsoft.com/windows/servercore, и зарегистрируйте ActiveX во время сборки образа.-combine включает слияние в один файл; -sort name или -sort numbers управляет порядком листов. Это стандартный workflow для сборки многолистового набора чертежей в один итоговый PDF..md в качестве выходного формата, и конвертер запишет структуру слоёв, метаданные основной надписи и встроенные тексты/аннотации чертежа как GitHub-Flavored Markdown: каждый CAD-слой становится разделом ## с перечисленными под ним текстовыми сущностями, MTEXT, подписями размеров и аннотациями; многолистовые чертежи помещают каждый layout под заголовок #. YAML-фронтматтер несёт source_file, cad_version, единицы измерения чертежа (mm/inch), число слоёв, число листов и распарсенные атрибуты основной надписи (номер чертежа, ревизия, имя листа, масштаб, разработчик, дата). Это часть CoolUtils RAG Adapter — тот же Markdown-контракт разделяют все продукты Total Converter X.binary_hash для provenance и массив chunks_hint, который читает ваш сплиттер. Включается флагом -Docling в командной строке..md — это обычный GFM с YAML-фронтматтером, поэтому его напрямую читают UnstructuredMarkdownLoader из LangChain, MarkdownReader из LlamaIndex, MarkdownToDocument из Haystack и MCP-файловые инструменты Claude Code. Для Claude, ChatGPT или любого чат-интерфейса вы можете вставить Markdown в контекст как есть — структура слоёв очевидна модели, метаданные основной надписи — во фронтматтере, а запрос вида "что говорит аннотация на электрическом слое?" разрешается чисто.CADConverterX.exe "C:\drawings\*.dwg" "C:\rag\" -cMD -Docling -Recurse -kfs. -cMD выбирает Markdown; -Docling дополнительно пишет sidecar .docling.json; -Recurse обходит подкаталоги; -kfs зеркалит исходное дерево папок на выходе. Из COM: obj.Convert("site-plan.dwg", "site-plan.md", "-cMD -Docling"). Получившийся Markdown готов к чанкованию, эмбеддингу и индексации в любом векторном хранилище.Скачайте пробную версию и конвертируйте файлы за считанные минуты.
Не требуется ни банковская карта, ни email.