رسومات DWG
تصدير رسومات DWG إلى PDF
يمكن لواجهة برمجة التطبيقات Aspose.CAD الخاصة بجافا تحميل رسومات AutoCAD بتنسيق DWG وتحويلها إلى PDF. يشرح هذا الموضوع استخدام واجهة برمجة التطبيقات Aspose.CAD لتحقيق تحويل DWG إلى تنسيق PDF من خلال خطوات بسيطة تم تعريفها لاحقًا.
تدعم واجهة برمجة التطبيقات الإصدارات التالية من AutoCAD DWG:
- إصدار DWG 2004 النسخة 16.0 الإصدار 18
- إصدار DWG 2005 النسخة 16.1
- إصدار DWG 2010 النسخة 18.0
- إصدار DWG 2013 النسخة 19.0
تنسيق ملف DWG
DWG هو ملف ثنائي يحتوي على بيانات صورة متجهة وبيانات وصفية. توفر بيانات الصورة المتجهة تعليمات لتطبيق CAD حول كيفية عرض DWG؛ قد تحتوي البيانات الوصفية على مجموعة متنوعة من المعلومات حول الملف بما في ذلك البيانات المحددة بالموقع وكذلك بيانات العميل. يمكن العثور على المواصفات المفتوحة لتنسيق ملف DWG في هذا PDF
تحويل ملفات DWG إلى PDF
تتطلب الخطوات البسيطة التالية تحويل DWG إلى PDF.
- قم بتحميل ملف DWG في مثيل من Image.
- أنشئ كائن من فئة CadRasterizationOptions واضبط خصائص PageHeight وPageWidth.
- أنشئ كائن من فئة PdfOptions واضبط خاصية VectorRasterizationOptions.
- استدعاء 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 واحد بأحجام تخطيط مختلفة. تعمل هذه الطريقة على النحو التالي:
- قم بتحميل ملف DWG باستخدام طريقة المصنع Aspose.CAD.Image.load.
- أنشئ مثيل من فئة CadRasterizationOptions واضبط ارتفاع الصفحة وعرضها الناتج.
- إضافة LayoutPageSizes المطلوبة لكائن CadRasterizationOptions.
- أنشئ مثيل من فئة PdfOptions و اضبط خاصية VectorRasterizationOptions.
- تصدير الصورة إلى 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.
- قم بتحميل ملف DWG في مثيل من Image.
- أنشئ كائنًا من فئة CadRasterizationOptions واضبط PageHeight و PageWidth .
- أنشئ كائنًا من فئة PdfOptions واضبط خاصية VectorRasterizationOptions.
- استدعاء 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
تعمل هذه الطريقة على النحو التالي:
- قم بتحميل ملف DWG باستخدام طريقة المصنع Image.load.
- أنشئ مثيلًا من فئة CadRasterizationOptions واحدد ارتفاع الصفحة وعرضها الناتجين.
- اضبط خاصية Layouts لكائن CadRasterizationOptions.
- أنشئ مثيلًا من فئة PdfOptions واحدد خاصية VectorRasterizationOptions.
- صدّر الصورة إلى 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
تعمل هذه الطريقة على النحو التالي:
- قم بتحميل ملف DWG باستخدام Aspose.CAD.Image.load .
- أنشئ مثيلًا من فئة CadRasterizationOptions.
- أنشئ مثيلًا من فئة CadRasterizationOptions واضبط ارتفاع الصفحة وعرضها الناتجين.
- أنشئ مثيلًا من فئة PdfOptions واحدد خاصية VectorRasterizationOptions.
- صدّر الصورة إلى PDF باستخدام Image.save() .
يوضح مثال الكود أدناه كيفية تنفيذ هذه الخاصية.
دعم تحديد منطقة الطباعة لصورة 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
- قم بتحميل ملف DWG باستخدام Aspose.CAD.Image.load .
- انتقل عبر كل كيان صورة.
- إذا كان الكيان هو 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 على النحو التالي:
- قم بتحميل ملف رسم DWG باستخدام طريقة Image.load .
- صدّر رسم 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 من خلال خطوات بسيطة كما هو موضح أدناه.
- قم بتحميل ملف DWG في مثيل من Image.
- أنشئ كائنًا من فئة SvgOptions واضبط الخصائص المطلوبة.
- صدّر الرسم 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"); | |
} |