رسومات DWG

تصدير رسومات DWG إلى PDF

يمكن لواجهة برمجة التطبيقات Aspose.CAD الخاصة بجافا تحميل رسومات AutoCAD بتنسيق DWG وتحويلها إلى PDF. يشرح هذا الموضوع استخدام واجهة برمجة التطبيقات Aspose.CAD لتحقيق تحويل DWG إلى تنسيق PDF من خلال خطوات بسيطة تم تعريفها لاحقًا.

تنسيق ملف DWG

DWG هو ملف ثنائي يحتوي على بيانات صورة متجهة وبيانات وصفية. توفر بيانات الصورة المتجهة تعليمات لتطبيق CAD حول كيفية عرض DWG؛ قد تحتوي البيانات الوصفية على مجموعة متنوعة من المعلومات حول الملف بما في ذلك البيانات المحددة بالموقع وكذلك بيانات العميل. يمكن العثور على المواصفات المفتوحة لتنسيق ملف DWG في هذا PDF

تحويل ملفات DWG إلى PDF

تتطلب الخطوات البسيطة التالية تحويل DWG إلى PDF.

  1. قم بتحميل ملف DWG في مثيل من Image.
  2. أنشئ كائن من فئة CadRasterizationOptions واضبط خصائص PageHeight وPageWidth.
  3. أنشئ كائن من فئة PdfOptions واضبط خاصية VectorRasterizationOptions.
  4. استدعاء Image.save وتمرير كائن من PdfOptions كمعامل ثانٍ.

يظهر مثال الكود أدناه كيفية تصدير رسومات DWG إلى PDF.

String srcFile = dataDir + "Bottom_plate.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setBackgroundColor(Color.getWhite());
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
objImage.save(dataDir + "Bottom_plate_out_.pdf", pdfOptions);

إنشاء PDF واحد بأحجام تخطيط مختلفة

يسمح لك Aspose.CAD لجافا بتحويل ملف DWG إلى PDF واحد بأحجام تخطيط مختلفة. تعمل هذه الطريقة على النحو التالي:

  1. قم بتحميل ملف DWG باستخدام طريقة المصنع Aspose.CAD.Image.load.
  2. أنشئ مثيل من فئة CadRasterizationOptions واضبط ارتفاع الصفحة وعرضها الناتج.
  3. إضافة LayoutPageSizes المطلوبة لكائن CadRasterizationOptions.
  4. أنشئ مثيل من فئة PdfOptions و اضبط خاصية VectorRasterizationOptions.
  5. تصدير الصورة إلى PDF باستخدام الطريقة Image.save .

يظهر مثال الكود أدناه كيفية إنشاء PDF واحد مع تخطيطات مختلفة.

String dataDir = Utils.getDataDir(SinglePDFWithDifferentLayouts.class) + "DWGDrawings/";
CadImage cadImage = (CadImage)Image.load(dataDir + "City skyway map.dwg");
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1000);
rasterizationOptions.setPageHeight(1000);
//custom sizes for several layouts
rasterizationOptions.getLayoutPageSizes().addItem("ANSI C Plot", new SizeF(500, 1000));
rasterizationOptions.getLayoutPageSizes().addItem("8.5 x 11 Plot", new SizeF(1000, 100));
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(dataDir + "singlePDF_out.pdf", pdfOptions);

تصدير DWG إلى PDF/A و PDF/E

تتطلب الخطوات البسيطة التالية تحويل DWG إلى PDF.

  1. قم بتحميل ملف DWG في مثيل من Image.
  2. أنشئ كائنًا من فئة CadRasterizationOptions واضبط PageHeight و PageWidth .
  3. أنشئ كائنًا من فئة PdfOptions واضبط خاصية VectorRasterizationOptions.
  4. استدعاء Image.save وتمرير كائن من PdfOptions كمعامل ثانٍ.

يظهر مثال الكود أدناه كيفية تصدير رسومات DWG إلى PDF.

String srcFile = dataDir + "Bottom_plate.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(new CadRasterizationOptions());
pdfOptions.setCorePdfOptions(new PdfDocumentOptions());
pdfOptions.getCorePdfOptions().setCompliance(PdfCompliance.PdfA1a);
objImage.save(dataDir+"Saved1.pdf", pdfOptions);
pdfOptions.getCorePdfOptions().setCompliance(PdfCompliance.PdfA1b);
objImage.save(dataDir+"Saved.pdf", pdfOptions);

الكائنات الأساسية المدعومة من AutoCAD

تدعم الكائنات الأساسية التالية من AutoCAD.

  • نص
  • نص متعدد
  • تعريف الجدول
  • خاصية الجدول
  • قوس
  • بيضاوي
  • نمط
  • قائد
  • نقطة
  • رأس 2D
  • رأس 3D
  • بوليلاين 2D
  • بوليلاين خفيفة الوزن
  • شعاع
  • دائرة
  • بعد الترتيب
  • بعد خطي
  • بعد متوازي
  • بعد زاوية 3 نقاط
  • بعد زاوية 2 خطوط
  • بعد نصف القطر
  • بعد القطر
  • شكل
  • صلب
  • منحنى
  • خط متعدد
  • خط
  • خط مؤقت
  • نمط
  • نمط البعد
  • نوع الخط
  • نمط خط متعدد
  • طبقة
  • نقطة العرض
  • تخطيط

تصدير تخطيط DWG المحدد إلى PDF

تعمل هذه الطريقة على النحو التالي:

  1. قم بتحميل ملف DWG باستخدام طريقة المصنع Image.load.
  2. أنشئ مثيلًا من فئة CadRasterizationOptions واحدد ارتفاع الصفحة وعرضها الناتجين.
  3. اضبط خاصية Layouts لكائن CadRasterizationOptions.
  4. أنشئ مثيلًا من فئة PdfOptions واحدد خاصية VectorRasterizationOptions.
  5. صدّر الصورة إلى PDF باستخدام الطريقة Image.save() .

يظهر مثال الكود أدناه كيفية تحويل تخطيط محدد من DWG إلى PDF.

String srcFile = dataDir + "visualization_-_conference_room.dwg";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Specify desired layout name
rasterizationOptions.setLayouts(new String[] {"Layout1"});
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);

تصدير DWG إلى صورة أو PDF باستخدام حجم ثابت

يمكن لواجهة برمجة التطبيقات Aspose.CAD لجافا تحميل رسومات AutoCAD بتنسيق DWG وتحويلها إلى PDF أو صورة باستخدام حجم ثابت.

يوضح مثال الكود أدناه كيفية تنفيذ هذه الخاصية.

public static void main(String[] args)
{
// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportDWGToPDFOrRaster.class) + "DWGDrawings/";
String srcFile = dataDir + "Bottom_plate.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(srcFile);
Boolean currentUnitIsMetric = IsMetric(objImage.getUnitType());
int currentUnitCoefficient = objImage.getUnitType();
if (currentUnitIsMetric)
{
double metersCoeff = 1 / 1000.0;
double scaleFactor = metersCoeff / currentUnitCoefficient;
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth((float)(210 * scaleFactor));
rasterizationOptions.setPageHeight((float)(297 * scaleFactor));
rasterizationOptions.setUnitType(UnitType.Millimeter);
}
else
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth((float)(8.27f / currentUnitCoefficient));
rasterizationOptions.setPageHeight((float)(11.69f / currentUnitCoefficient));
rasterizationOptions.setUnitType(UnitType.Inch);
}
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(new CadRasterizationOptions());
objImage.save(dataDir+"Saved.pdf", pdfOptions);
}
public static Boolean IsMetric(int initial)
{
Boolean isMetric = true;
switch (initial)
{
case UnitType.Inch:
case UnitType.MicroInch:
case UnitType.Mil:
case UnitType.Foot:
case UnitType.Yard:
case UnitType.Mile:
case UnitType.Unitless:
isMetric = false;
}
return isMetric;
}
private Double Coefficient(int unitType)
{
Double coefficient = 1.0;
switch (unitType)
{
case UnitType.Parsec:
coefficient = 3.0857 * 10000000000000000.0;
break;
case UnitType.LightYear:
coefficient = 9.4607 * 1000000000000000.0;
break;
case UnitType.AstronomicalUnit:
coefficient = 1.4960 * 100000000000.0;
break;
case UnitType.Gigameter:
coefficient = 1000000000.0;
break;
case UnitType.Kilometer:
coefficient = 1000.0;
break;
case UnitType.Decameter:
coefficient = 10.0;
break;
case UnitType.Hectometer:
coefficient = 100.0;
break;
case UnitType.Meter:
coefficient = 1.0;
break;
case UnitType.Centimenter:
coefficient = 0.01;
break;
case UnitType.Decimeter:
coefficient = 0.1;
break;
case UnitType.Millimeter:
coefficient = 0.001;
break;
case UnitType.Micrometer:
coefficient = 0.000001;
break;
case UnitType.Nanometer:
coefficient = 0.000000001;
break;
case UnitType.Angstrom:
coefficient = 0.0000000001;
break;
case UnitType.Inch:
coefficient = 1.0;
break;
case UnitType.MicroInch:
coefficient = 0.000001;
break;
case UnitType.Mil:
coefficient = 0.001;
break;
case UnitType.Foot:
coefficient = 12.0;
break;
case UnitType.Yard:
coefficient = 36.0;
break;
case UnitType.Mile:
coefficient = 63360.0;
break;
}
return coefficient;
}

دعم الخطوط المخفية المدورة عند تصدير DWG / DXF إلى BMP و PDF

تعمل هذه الطريقة على النحو التالي:

  1. قم بتحميل ملف DWG باستخدام Aspose.CAD.Image.load .
  2. أنشئ مثيلًا من فئة CadRasterizationOptions.
  3. أنشئ مثيلًا من فئة CadRasterizationOptions واضبط ارتفاع الصفحة وعرضها الناتجين.
  4. أنشئ مثيلًا من فئة PdfOptions واحدد خاصية VectorRasterizationOptions.
  5. صدّر الصورة إلى PDF باستخدام Image.save() .

يوضح مثال الكود أدناه كيفية تنفيذ هذه الخاصية.

// The path to the resource directory.
String dataDir = Utils.getDataDir(SupportForHiddenLines.class) + "DWGDrawings/";
String sourceFilePath = dataDir + "Bottom_plate.dwg";
String outPath = dataDir + "Bottom_plate.pdf";
CadImage cadImage = (CadImage)Image.load(sourceFilePath);
List<String> list = Arrays.asList("Print","L1_RegMark","L2_RegMark");
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageHeight(cadImage.getHeight());
rasterizationOptions.setPageWidth(cadImage.getWidth()) ;
rasterizationOptions.setLayers(list);
PdfOptions pdfOptions = new PdfOptions();
rasterizationOptions.setLayouts(new String[] { "Model" });
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(outPath, pdfOptions);
System.out.println("\nThe DWG file exported successfully to PDF.\nFile saved at " + dataDir);

دعم تحديد منطقة الطباعة لصورة DWG في PDF المُصدَّر

يمكن لواجهة برمجة التطبيقات Aspose.CAD لجافا تحميل رسومات AutoCAD بتنسيق DWG وتحويلها إلى PDF. يشرح هذا الموضوع استخدام واجهة برمجة التطبيقات Aspose.CAD لتحقيق دعم تحديد منطقة الطباعة لصورة DWG في PDF المُصدَّر.

يوضح مثال الكود أدناه كيفية تنفيذ هذه الخاصية.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "visualization_-_conference_room.dwg";
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[] { "Layout1" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "ExportSpecificLayoutToPDF_out.pdf";
//Export the DWG to PDF
image.Save(MyDir, pdfOptions);
}

دعم قراءة بيانات XREF الوصفية لملف DWG

  1. قم بتحميل ملف DWG باستخدام Aspose.CAD.Image.load .
  2. انتقل عبر كل كيان صورة.
  3. إذا كان الكيان هو CadUnderlay فإنه يمثل كيان XREF مع بيانات وصفية.

يوضح مثال الكود أدناه كيفية تحقيق هذه الخاصية.

CadImage image = (CadImage)Image.load(dataDir+"Bottom_plate.dwg");
{
for (CadBaseEntity entity : image.getEntities())
{
if (entity instanceof CadUnderlay)
{
//XREF entity with metadata
Cad3DPoint insertionPoint = ((CadUnderlay) entity).getInsertionPoint();
String path = ((CadUnderlay) entity).getUnderlayPath();
}
}
}

مستند DWG بتحديد الإحداثيات

توفر واجهة برمجة التطبيقات Aspose.CAD لجافا الآن ميزة لتقديم مستندات DWG من خلال تقديم إحداثيات العرض وارتفاع المستند.

يوضح مثال الكود أدناه كيفية تقديم مستند DWG.

String srcFile = dataDir + "visualization_-_conference_room.dwg";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Specify desired layout name
rasterizationOptions.setLayouts(new String[] {"Layout1"});
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DWG to PDF
image.save(dataDir + "ExportSpecificLayoutToPDF_out_.pdf", pdfOptions);

تكون خاصية CadRasterizationOptions.Layouts من نوع مصفوفة سلسلة، لذلك يمكنك تحديد أكثر من تخطيط في وقت واحد للتحويل المحتمل إلى تنسيق PDF. عند تحديد تخطيطات متعددة لخاصية CadRasterizationOptions.Layouts ستحتوي PDF الناتجة على صفحات متعددة، حيث تمثل كل صفحة تخطيط AutoCAD فردي.

قائمة جميع التخطيطات

يمكنك سرد جميع التخطيطات الموجودة في رسم AutoCAD باستخدام مقتطف الكود التالي.

String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
CadImage cadImage = (CadImage)image;
CadLayoutDictionary layouts = cadImage.getLayouts();
for (CadLayout layout : layouts.getValues())
{
System.out.println("Layout " + layout.getLayoutName());
}

الحصول على قيمة خاصية الكتلة من المرجع الخارجي

تسمح واجهة برمجة التطبيقات Aspose.CAD لجافا لك بالحصول على المرجع الخارجي لخاصية الكتلة. تعرض واجهة برمجة التطبيقات Aspose.CAD خاصية getXRefPathName() للحصول على المرجع الخارجي لخاصية كتلة في مجموعة CadBlockDictionary.

يوضح الكود أدناه كيفية الحصول على المرجع الخارجي لخاصية كتلة.

// Load an existing DWG file as CadImage.
CadImage cadImage = (CadImage) Image.load(dataDir + "sample.dwg");
// Access the external path name property
CadStringParameter sXternalRef = cadImage.getBlockEntities().get_Item("*MODEL_SPACE").getXRefPathName();
System.out.println(sXternalRef);

البحث عن النص في ملف DWG AutoCAD

تسمح واجهة برمجة التطبيقات Aspose.CAD لجافا لك بالبحث عن نص في ملف DWG AutoCAD. تعرض واجهة برمجة التطبيقات Aspose.CAD فئة CadText التي تمثل كائنات نصية في ملف DWG AutoCAD. تم تضمين الفئة CadMText أيضًا في واجهة برمجة التطبيقات Aspose.CAD، حيث قد تحتوي بعض الكائنات الأخرى أيضًا على نص.

يوضح الكود أدناه كيفية البحث عن نص في ملف DWG AutoCAD.

private static final String dataDir = Utils.getDataDir(SearchTextInDWGAutoCADFile.class) + "DWGDrawings/";
public static void main(String[] args) {
// Search Text In DWG AutoCAD File
searchTextInDWGAutoCADFile();
// Search For Text In Specific Layout
}
public static void searchTextInDWGAutoCADFile()
{
//String dataDir="Test_Apsose.CAD\\";
// Load an existing DWG file as CadImage.
CadImage cadImage = (CadImage) CadImage.load(dataDir + "sample_file.dwg");
for (CadBaseEntity entity : cadImage.getEntities())
{
IterateCADNodeEntities(entity);
}
// Search for text in the block section
for (CadBlockEntity blockEntity : cadImage.getBlockEntities().getValues())
{
for (CadBaseEntity entity : blockEntity.getEntities())
{
IterateCADNodeEntities(entity);
}
}
}
//Recursive function to iterate nodes inside nodes
private static void IterateCADNodeEntities(CadBaseEntity obj)
{
switch (obj.getTypeName())
{
case CadEntityTypeName.TEXT:
CadText childObjectText = (CadText) obj;
System.out.println(childObjectText.getDefaultValue());
break;
case CadEntityTypeName.MTEXT:
CadMText childObjectMText = (CadMText) obj;
System.out.println(childObjectMText.getText());
break;
case CadEntityTypeName.INSERT:
CadInsertObject childInsertObject = (CadInsertObject) obj;
for (CadBaseEntity tempobj : childInsertObject.getChildObjects())
{
IterateCADNodeEntities(tempobj);
}
break;
case CadEntityTypeName.ATTDEF:
CadAttDef attDef = (CadAttDef) obj;
System.out.println(attDef.getDefaultString());
break;
case CadEntityTypeName.ATTRIB:
CadAttrib attAttrib = (CadAttrib) obj;
System.out.println(attAttrib.getDefaultText());
break;
}
}

البحث عن النص في تخطيط محدد

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Load an existing DWG file as CadImage.
CadImage cadImage = (CadImage) CadImage.load(dataDir + "sample_file.dwg");
// get all layout names and link each layout with corresponding block with entities
CadLayoutDictionary layouts = cadImage.getLayouts();
String[] layoutNames = new String[layouts.size()];
int i = 0;
for (com.aspose.cad.fileformats.cad.cadobjects.CadLayout layout : layouts.getValues()) {
layoutNames[i++] = layout.getLayoutName();
System.out.println("Layout " + layout.getLayoutName() + " is found");
// find block, applicable for DWG only
CadBlockTableObject blockTableObjectReference = null;
for (CadBlockTableObject tableObject : cadImage.getBlocksTables()) {
if (String.CASE_INSENSITIVE_ORDER.compare(tableObject.getHardPointerToLayout(), layout.getObjectHandle()) == 0) {
blockTableObjectReference = tableObject;
break;
}
}
// Collection cadBlockEntity.Entities contains information about all entities on specific layout
// if this collection has no elements it means layout is a copy of Model layout and contains the same entities
// Below line of code is for reference
CadBlockEntity cadBlockEntity = cadImage.getBlockEntities().get_Item(blockTableObjectReference.getBlockName());
}

الوصول إلى علامات المتراكب لتنسيق DWG

قامت Aspose.CAD لجافا بتنفيذ العلامات المتراكبة لتنسيق DWG وتسمح للمطورين بالوصول إليها. هذه هي عرض الكود البسيط.

String dataDir = Utils.getDataDir(AccessingUnderlayFlagsofDWG.class) + "DWGDrawings/";
String fileName = dataDir + "BlockRefDgn.dwg";
// Load an existing DWG file and convert it into CadImage
com.aspose.cad.fileformats.cad.CadImage image = (com.aspose.cad.fileformats.cad.CadImage) com.aspose.cad.Image.load(fileName);
// Go through each entity inside the DWG file
for (com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity entity : image.getEntities())
{
// Check if entity is of CadDgnUnderlay type
if (entity instanceof com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay)
{
// Access different underlay flags
com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay underlay = (com.aspose.cad.fileformats.cad.cadobjects.CadUnderlay) entity;
System.out.println(underlay.getUnderlayPath());
System.out.println(underlay.getUnderlayName());
System.out.println(underlay.getInsertionPoint().getX());
System.out.println(underlay.getInsertionPoint().getY());
System.out.println(underlay.getRotationAngle());
System.out.println(underlay.getScaleX());
System.out.println(underlay.getScaleY());
System.out.println(underlay.getScaleZ());
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.UnderlayIsOn) == com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.UnderlayIsOn);
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.ClippingIsOn) == com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.ClippingIsOn);
System.out.println((underlay.getFlags() & com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.Monochrome) != com.aspose.cad.fileformats.cad.cadobjects.UnderlayFlags.Monochrome);
break;
}
}

دعم كائنات DWG

يمكن لواجهة برمجة التطبيقات Aspose.CAD لجافا تحميل رسومات AutoCAD بتنسيق DWG ودعم كائنات مختلفة للعمل معها.

دعم كائن MLeader

DWG هو ملف ثنائي يحتوي على بيانات صورة متجهة وبيانات وصفية. هناك كائنات مختلفة في ملف DWG. يصف القسم التالي مثالًا للعمل مع كائن MLeader داخل ملف DWG.

String file = dataDir + "Multileaders.dwg";
Image image = Image.load(file);
// Test
CadImage cadImage = (CadImage)image;
Assert.areNotEqual(cadImage.getEntities().length, 0);
CadMLeader cadMLeader = (CadMLeader)cadImage.getEntities()[2];
Assert.areEqual(cadMLeader.getStyleDescription(), "Standard");
Assert.areEqual(cadMLeader.getLeaderStyleId(), "12E");
Assert.areEqual(cadMLeader.getArrowHeadId1(), "639");
Assert.areEqual(cadMLeader.getLeaderLineTypeID(), "14");
CadMLeaderContextData context = cadMLeader.getContextData();
Assert.areEqual(context.getArrowHeadSize(), 30.0, 0.1);
Assert.areEqual(context.getBasePoint().getX(), 481, 1);
Assert.areEqual(context.getContentScale(), 1.0, 0.01);
Assert.areEqual(context.getDefaultText().getValue(), "This is multileader with huge text\\P{\\H1.5x;6666666666666666666666666666\\P}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
Assert.areEqual(context.hasMText(), true);
CadMLeaderNode mleaderNode = context.getLeaderNode();
Assert.areEqual(mleaderNode.getLastLeaderLinePoint().getX(), 473, 1);
CadMLeaderLine leaderLine = mleaderNode.getLeaderLine();
Assert.areEqual(leaderLine.getBreakEndPoint().toString(), null);
Assert.areEqual(Integer.toString(leaderLine.getBreakPointIndex().getValue()), Integer.toString(0));
Assert.areEqual(leaderLine.getBreakStartPoint().toString(), null);
Assert.areEqual(Integer.toString(leaderLine.getLeaderLineIndex().getValue()), Integer.toString(0));
Assert.areEqual(Integer.toString(leaderLine.getLeaderPoints().size()), Integer.toString(4));
Assert.areEqual(Integer.toString(mleaderNode.getBranchIndex()), Integer.toString(0));
Assert.areEqual(mleaderNode.getDogLegLength(), 8.0, 0.1);
Assert.areEqual(context.hasMText(), true);
// Assert.IsTrue((context.hasMText()==true , "Invalid Z value");
Assert.areEqual(context.getTextAttachmentType().getValue(), (short)1);
Assert.areEqual(context.getTextBackgroundColor().getValue(), 18);
Assert.areEqual(context.getTextHeight(), 20.0, 0.1);
Assert.areEqual(context.getTextStyleID().getValue(), "11");
Assert.areEqual(context.getTextRotation().getValue(), 0.0, 0.01);
Assert.areEqual(cadMLeader.getArrowHeadId1(), "639");
Assert.areEqual(cadMLeader.getLeaderType(), 1);
Assert.areEqual(cadMLeader.getBlockContentColor(), 0);
Assert.areEqual(cadMLeader.getLeaderLineColor(), 0);
Assert.areEqual(cadMLeader.getTextHeight(), 1.0, 0.01);

دعم تصدير كائن DWG إلى صورة

DWG هو ملف ثنائي يحتوي على بيانات صورة متجهة وبيانات وصفية. هناك كائنات مختلفة في ملف DWG. يصف القسم التالي مثالًا لتصدير كائن DWG معين إلى صورة.

// The path to the resource directory.
String dataDir = Utils.getDataDir(ParticularDWGToImage.class) + "DWGDrawings/";
String sourceFilePath = dataDir + "visualization_-_conference_room.dwg";
CadImage cadImage = ((CadImage)(Image.load(sourceFilePath)));
CadBaseEntity[] entities = cadImage.getEntities();
List<CadBaseEntity> filteredEntities = new ArrayList<CadBaseEntity>();
for (CadBaseEntity baseEntity : entities) {
// selection or filtration of entities
if ((baseEntity.getTypeName() == CadEntityTypeName.TEXT)) {
filteredEntities.add(baseEntity);
}
}
CadBaseEntity[] arr = new CadBaseEntity[filteredEntities.size()];
cadImage.setEntities(filteredEntities.toArray(arr));
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Set Auto Layout Scaling
rasterizationOptions.setAutomaticLayoutsScaling(true);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
String outFile = dataDir + "result_out_generated.pdf";
// Export the CAD to PDF
cadImage.save(outFile, pdfOptions);

دعم استيراد صورة إلى ملف DWG

يمكن لواجهة برمجة التطبيقات Aspose.CAD لجافا تحميل رسومات AutoCAD بتنسيق DWG ودعم كائنات مختلفة للعمل معها. DWG هو ملف ثنائي يحتوي على بيانات صورة متجهة وبيانات وصفية. هناك كائنات مختلفة في ملف DWG. يصف القسم التالي كيفية استيراد الصور داخل ملف DWG.

دعم إضافة نص في DWG

يمكن لواجهة برمجة التطبيقات Aspose.CAD لجافا تحميل رسومات AutoCAD بتنسيق DWG ودعم كائنات مختلفة للعمل معها. DWG هو ملف ثنائي يحتوي على بيانات صورة متجهة وبيانات وصفية. هناك كائنات مختلفة في ملف DWG. يصف القسم التالي كيفية إضافة نص داخل ملف DWG.

String dataDir = Utils.getDataDir(AddTextInDWG.class) + "DWGDrawings/";
String dwgPathToFile = dataDir + "SimpleEntites.dwg";
Image image = Image.load(dwgPathToFile);
CadText cadText = new CadText();
cadText.setStyleType("Standard");
cadText.setDefaultValue("Some custom text");
cadText.setColorId(256);
cadText.setLayerName("0");
cadText.getFirstAlignment().setX(47.9);
cadText.getFirstAlignment().setY(5.56);
cadText.setTextHeight(0.8);
cadText.setScaleX(0);
CadImage cadImage = ((CadImage)(image));
cadImage.getBlockEntities().get_Item("*Model_Space").addEntity(cadText);
PdfOptions pdfOptions = new PdfOptions();
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
cadRasterizationOptions.setPageHeight(1600);
cadRasterizationOptions.setPageWidth(1600);
cadRasterizationOptions.setLayouts(new String[] {"Model"});
image.save(dataDir+"SimpleEntites_generated.dwg.pdf", pdfOptions);

دعم الشبكة في DWG

يمكن لواجهة برمجة التطبيقات Aspose.CAD لجافا الآن الوصول إلى الكائنات التي تدعم الشبكة والتي تشمل أنواع CadPolyFaceMesh وCadPolygonMesh. يصف المثال التالي كيفية الوصول إلى أنواع الشبكة.

تحويل رسومات DWG إلى DXF

توفر Aspose.CAD ميزة تحميل ملف AutoCAD DWG وتصديره إلى تنسيق DXF. تعمل طريقة التحويل من DWG إلى DXF على النحو التالي:

  1. قم بتحميل ملف رسم DWG باستخدام طريقة Image.load .
  2. صدّر رسم DWG إلى DXF باستخدام الطريقة Image.save() .

يظهر مثال الكود أدناه كيفية تحويل ملف DWG إلى تنسيق DXF.

// The path to the resource directory.
String dataDir = Utils.getDataDir(DWGToDXF.class) + "DWGDrawings/";
String inputFile = dataDir+ "Line.dwg";
String outFile = dataDir+ "Line.dxf";
CadImage cadImage = (CadImage)Image.load(inputFile);
cadImage.save(outFile);

تحويل رسومات DWG إلى SVG

يمكن لواجهة برمجة التطبيقات Aspose.CAD تحميل رسومات AutoCAD بتنسيق DWG، وتحويلها إلى SVG. يوضح هذا الموضوع استخدام واجهة برمجة التطبيقات Aspose.CAD لتحقيق تحويل DWG إلى تنسيق SVG من خلال خطوات بسيطة كما هو موضح أدناه.

  1. قم بتحميل ملف DWG في مثيل من Image.
  2. أنشئ كائنًا من فئة SvgOptions واضبط الخصائص المطلوبة.
  3. صدّر الرسم DWG إلى SVG باستخدام الطريقة Image.save() .

يوضح مثال الكود أدناه كيفية تحويل ملف DWG إلى تنسيق SVG.

// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportToSVG.class) + "DWGDrawings/";
Image image = Image.load(dataDir + "meshes.dwg");
{
SvgOptions options = new SvgOptions();
options.setColorType(SvgColorMode.Grayscale);
options.setTextAsShapes(true);
image.save(dataDir + "meshes.svg");
}