DXF Чертежи
Экспорт DXF чертежей в PDF
Aspose.CAD предоставляет возможность загружать объекты чертежей AutoCAD DXF и отображать их в формате PDF. Подход к конвертации DXF в PDF работает следующим образом:
- Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте объект класса CadRasterizationOptions и установите свойства PageHeight и PageWidth.
- Создайте объект класса PdfOptions и установите свойство VectorRasterizationOptions.
- Вызовите Image.Save, передавая объект PdfOptions в качестве второго параметра.
Пример кода ниже демонстрирует, как конвертировать файл с использованием настроек по умолчанию.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath)) | |
{ | |
// Create an instance of CadRasterizationOptions and set its various properties | |
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions(); | |
rasterizationOptions.BackgroundColor = Aspose.CAD.Color.White; | |
rasterizationOptions.PageWidth = 1600; | |
rasterizationOptions.PageHeight = 1600; | |
// Create an instance of PdfOptions | |
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
MyDir = MyDir + "conic_pyramid_out.pdf"; | |
//Export the DXF to PDF | |
image.Save(MyDir, pdfOptions); | |
} |
Поддерживаемые форматы
На данный момент мы полностью поддерживаем форматы файлов AutoCAD DXF 2010. Предыдущие версии DXF не гарантируются как 100% действительные. Мы планируем включить больше форматов и функций в будущих версиях Aspose.CAD.
Поддерживаемые объекты
На данный момент мы поддерживаем все широко распространенные 2D объекты и их основные стандартные параметры, как показано ниже:
- Выравненное измерение
- Угловое измерение
- Дуга
- Атрибут
- Ссылка на блок
- Окружность
- Измерение диаметра
- Элипс
- Штриховка
- Линия
- Многострочный текст
- Ординатное измерение
- Точка
- Полилиния
- Радиальное измерение
- Луч
- Поворотное измерение
- Таблица
- Текст
- Х-лайн
Управление памятью
Свойство ExactReallocateOnly класса Cache может быть использовано для управления перераспределением памяти. Перераспределение, скорее всего, произойдет для предварительно выделенных кэшей. Это может случиться, когда система понимает, что выделенного пространства недостаточно.
- Если ExactReallocateOnly установлено на значение по умолчанию, False, пространство перераспределяется на то же средство.
- Когда выставлено True, перераспределение не может превышать максимальное заданное пространство. В этом случае существующий выделенный в памяти кэш (который требует перераспределения) освобождается, и дополнительное пространство выделяется на диске.
Экспорт специфического слоя DXF чертежей в PDF
Этот подход работает следующим образом:
- Откройте файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте экземпляр CadRasterizationOptions и укажите свойства PageWidth и PageHeight.
- Добавьте слои в объект CadRasterizationOptions.
- Создайте экземпляр PdfOptions и установите его свойство VectorRasterizationOptions.
- Вызовите метод Image.Save и передайте объект PdfOptions в качестве второго параметра.
Пример кода ниже демонстрирует, как конвертировать специфический слой DXF в PDF.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath)) | |
{ | |
// Create an instance of CadRasterizationOptions and set its various properties | |
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions(); | |
rasterizationOptions.PageWidth = 1600; | |
rasterizationOptions.PageHeight = 1600; | |
// Add desired layers | |
rasterizationOptions.Layers = new string[] { "LayerA" }; | |
// Create an instance of PdfOptions | |
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
MyDir = MyDir + "conic_pyramid_layer_out.pdf"; | |
//Export the DXF to PDF | |
image.Save(MyDir, pdfOptions); | |
} |
Отрисовка PDF файлов как части DXF чертежей
Этот подход работает следующим образом:
- Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте объект класса CadRasterizationOptions и загрузите PDF файлы.
- Установите свойства PageHeight и PageWidth.
- Вызовите Image.Save и сохраните файл.
Пример кода ниже демонстрирует, как отрисовать PDF файлы как часть DXF чертежей.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath)) | |
{ | |
// Create an instance of CadRasterizationOptions and set its various properties | |
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions(); | |
rasterizationOptions.PageWidth = 1600; | |
rasterizationOptions.PageHeight = 1600; | |
// Specify desired layout name | |
rasterizationOptions.Layouts = new string[] { "Model" }; | |
// Create an instance of PdfOptions | |
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
MyDir = MyDir + "conic_pyramid_layout_out.pdf"; | |
//Export the DXF to PDF | |
image.Save(MyDir, pdfOptions); | |
} |
Экспорт встроенного подложки DGN для формата DXF
Aspose.CAD предоставляет возможность загружать файлы AutoCAD DXF и экспортировать встроенные подложки DGN для формата DXF.
Пример кода ниже демонстрирует, как достичь указанных требований.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath)) | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.Layouts = new[] { "Model" }; | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
cadImage.Save(MyDir + "conic_pyramid.pdf", pdfOptions); | |
} |
Поддержка сохранения DXF файлов
Aspose.CAD предоставляет возможность загружать файлы AutoCAD DXF, вносить изменения в них и снова сохранять их как файлы DXF.
Пример кода ниже демонстрирует, как достичь указанных требований.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath)) | |
{ | |
// any entities updates | |
cadImage.Save(MyDir+"conic.dxf"); | |
} |
Экспорт DXF в WMF
Этот подход работает следующим образом:
- Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте объект класса CadRasterizationOptions и загрузите PDF файлы.
- Установите свойства PageHeight и PageWidth.
- Вызовите Image.Save и сохраните файл.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (var image = Image.Load("NRB-GRID-BLOCK-MD-PROVALVDK-241000-162000-45400.dgn")) | |
{ | |
var vectorOptions = new CadRasterizationOptions(); | |
vectorOptions.AutomaticLayoutsScaling = true; | |
vectorOptions.BackgroundColor = Color.Black; | |
vectorOptions.PageWidth = 500; | |
vectorOptions.PageHeight = 500; | |
WmfOptions wmfOptions = new WmfOptions() | |
{ | |
VectorRasterizationOptions = vectorOptions | |
}; | |
image.Save("NRB-GRID-BLOCK-MD-PROVALVDK-241000-162000-45400.dgn.wmf", wmfOptions); | |
} |
Экспорт специфического макета DXF в PDF
Этот подход работает следующим образом:
- Откройте файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте экземпляр CadRasterizationOptions и укажите свойства PageWidth и PageHeight.
- Укажите предполагаемое имя(я) макета с использованием свойства CadRasterizationOptions.Layouts.
- Создайте экземпляр PdfOptions и установите его свойство VectorRasterizationOptions.
- Экспортируйте чертеж в PDF, вызвав метод Image.Save и передав объект PdfOptions в качестве второго параметра.
Пример кода ниже демонстрирует, как конвертировать специфический макет DXF в PDF.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "conic_pyramid.dxf"; | |
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath)) | |
{ | |
// Create an instance of CadRasterizationOptions and set its various properties | |
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions(); | |
rasterizationOptions.PageWidth = 1600; | |
rasterizationOptions.PageHeight = 1600; | |
// Specify desired layout name | |
rasterizationOptions.Layouts = new string[] { "Model" }; | |
// Create an instance of PdfOptions | |
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
MyDir = MyDir + "conic_pyramid_layout_out.pdf"; | |
//Export the DXF to PDF | |
image.Save(MyDir, pdfOptions); | |
} |
Поддержка обрезки блоков
Aspose.CAD предоставляет возможность обрезки блоков. Подход обрезки блоков работает следующим образом:
- Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте объект класса CadRasterizationOptions и загрузите PDF файлы.
- Установите необходимые свойства CadRasterizationOptions.
- Вызовите Image.Save, передав объект PdfOptions во втором параметре, и сохраните файл.
Пример кода ниже демонстрирует, как работает обрезка блоков.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-.NET | |
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string inputFile = MyDir + "SLS-CW-CD-CE001-R01_blockClip.dxf"; | |
string outputFile = MyDir + "SLS-CW-CD-CE001-R01_blockClip.pdf"; | |
using (CadImage cadImage = (CadImage)Image.Load(inputFile)) | |
{ | |
var rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions | |
{ | |
BackgroundColor = Aspose.CAD.Color.White, | |
DrawType = Aspose.CAD.FileFormats.Cad.CadDrawTypeMode.UseObjectColor, | |
PageWidth = 1200, | |
PageHeight = 1600, | |
Margins = new Margins | |
{ | |
Top = 5, | |
Right = 30, | |
Bottom = 5, | |
Left = 30 | |
}, | |
Layouts = new string[] { "Model" } | |
}; | |
PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions | |
{ | |
VectorRasterizationOptions = rasterizationOptions | |
}; | |
cadImage.Save(outputFile, pdfOptions); |
Экспорт изображений в DXF
С помощью Aspose.CAD вы можете экспортировать изображения в формат DXF. С помощью этого подхода вы можете выполнить следующие действия:
- Установить новый шрифт
- Скрыть объекты
- Обновить текст
Следующий фрагмент кода показывает, как выполнить перечисленные выше действия.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
foreach (var file in new DirectoryInfo(MyDir).EnumerateFiles("*.dxf")) | |
{ | |
// **************************** | |
// Set new font per document | |
// **************************** | |
using (var cadImage = (CadImage)Image.Load(file.FullName)) | |
{ | |
// Iterate over the items of CadStyleTableObject | |
foreach (CadStyleTableObject style in cadImage.Styles) | |
{ | |
// Set font name | |
style.PrimaryFontName = "Broadway"; | |
} | |
cadImage.Save(file.FullName + "_font.dxf"); | |
} | |
// **************************** | |
// Hide all "straight" lines | |
// **************************** | |
using (var cadImage = (CadImage)Image.Load(file.FullName)) | |
{ | |
foreach (var entity in cadImage.Entities) | |
{ | |
// Make lines invisible | |
if (entity.TypeName == CadEntityTypeName.LINE) | |
{ | |
entity.Visible = 0; | |
} | |
} | |
cadImage.Save(file.FullName + "_lines.dxf"); | |
} | |
// **************************** | |
// Manipulations with text | |
// **************************** | |
using (var cadImage = (CadImage)Image.Load(file.FullName)) | |
{ | |
foreach (var entity in cadImage.Entities) | |
{ | |
if (entity.TypeName == CadEntityTypeName.TEXT) | |
{ | |
((CadText)entity).DefaultValue = "New text here!!! :)"; | |
break; | |
} | |
} | |
cadImage.Save(file.FullName + "_text.dxf"); | |
} | |
} |
Экспорт специфического слоя DXF чертежей в изображение
Этот подход работает следующим образом:
- Откройте файл чертежа DXF с использованием метода фабрики Image.Load.
- Создайте экземпляр CadRasterizationOptions и укажите свойства PageWidth и PageHeight.
- Добавьте слои в объект CadRasterizationOptions.
- Создайте экземпляр JpegOptions и установите его свойство VectorRasterizationOptions.
- Экспортируйте чертеж в PDF с помощью метода Image.Save.
Пример кода ниже демонстрирует, как конвертировать специфический слой DXF в изображение.
// The path to the documents directory. | |
string MyDir = RunExamples.GetDataDir_DXFDrawings(); | |
string sourceFilePath = MyDir + "for_layers_test.dwf"; | |
using (var image = (Aspose.CAD.FileFormats.Cad.CadImage)Aspose.CAD.Image.Load(sourceFilePath)) | |
{ | |
// Create an instance of CadRasterizationOptions | |
var rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions(); | |
// Set image width & height | |
rasterizationOptions.PageWidth = 500; | |
rasterizationOptions.PageHeight = 500; | |
// Set the drawing to render at the center of image | |
// rasterizationOptions.CenterDrawing = true; | |
// Get the layers in an instance of CadLayersDictionary | |
var layersList = image.Layers; | |
// Iterate over the layers | |
foreach (var layerName in layersList.GetLayersNames()) | |
{ | |
// Display layer name for tracking | |
Console.WriteLine("Start with " + layerName); | |
// Add the layer name to the CadRasterizationOptions's layer list | |
rasterizationOptions.Layers = new string[] { "LayerA" }; | |
// Create an instance of JpegOptions (or any ImageOptions for raster formats) | |
var options = new Aspose.CAD.ImageOptions.JpegOptions(); | |
// Set VectorRasterizationOptions property to the instance of CadRasterizationOptions | |
options.VectorRasterizationOptions = rasterizationOptions; | |
//Export each layer to Jpeg format | |
image.Save(layerName + "_out.jpg", options); | |
} | |
} |