نقشه‌های DWG

صادرات نقشه‌های DWG به PDF

API Aspose.CAD برای جاوا می‌تواند نقشه‌های AutoCAD را در فرمت DWG بارگذاری کرده و به PDF تبدیل کند. این موضوع استفاده از API 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. تصویر را با استفاده از متد Image.save به PDF صادر کنید.

نمونه کد زیر نشان می‌دهد چگونه یک 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 به شرح زیر است.

  • TEXT
  • MTEXT
  • ATTDEF
  • ATTRIB
  • ARC
  • ELLIPSE
  • HATCH
  • LEADER
  • POINT
  • VERTEX 2D
  • VERTEX 3D
  • POLYLINE 2D
  • LWPOLYLINE
  • RAY
  • CIRCLE
  • DIMENSION ORDINATE
  • DIMENSION LINEAR
  • DIMENSION ALIGNED
  • DIMENSION ANG 3Pt
  • DIMENSION ANG 2Ln
  • DIMENSION RADIUS
  • DIMENSION DIAMETER
  • SHAPE
  • SOLID
  • SPLINE
  • MLINE
  • LINE
  • XLINE
  • STYLE
  • DIMSTYLE
  • LTYPE
  • MLINESTYLE
  • LAYER
  • VIEWPORT
  • LAYOUT

صادرات یک طرح خاص DWG به PDF

این رویکرد به صورت زیر عمل می‌کند:

  1. یک فایل DWG را با استفاده از روش کارخانه Image.load بارگذاری کنید.
  2. یک نمونه از کلاس CadRasterizationOptions ایجاد کرده و ارتفاع و عرض صفحه نتیجه را تنظیم کنید.
  3. ویژگی Layouts را برای شی CadRasterizationOptions تنظیم کنید.
  4. یک نمونه از کلاس PdfOptions ایجاد کرده و ویژگی VectorRasterizationOptions آن را تنظیم کنید.
  5. تصویر را با استفاده از متد Image.save() به PDF صادر کنید.

نمونه کد زیر نشان می‌دهد چگونه یک طرح خاص 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 به Raster یا PDF با استفاده از اندازه ثابت

API Aspose.CAD برای جاوا می‌تواند نقشه‌های AutoCAD را در فرمت DWG بارگذاری کرده و به PDF یا Raster با استفاده از اندازه ثابت تبدیل کند.

نمونه کد زیر نشان می‌دهد چگونه این ویژگی را پیاده‌سازی کنید.

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. تصویر را با استفاده از متد Image.save() به PDF صادر کنید.

نمونه کد زیر نشان می‌دهد چگونه این ویژگی را پیاده‌سازی کنید.

// 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 صادر شده

API Aspose.CAD برای جاوا می‌تواند نقشه‌های AutoCAD را در فرمت DWG بارگذاری کرده و به PDF تبدیل کند. این موضوع استفاده از API 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 با مشخص کردن مختصات

API 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 را با استفاده از کد snippet زیر فهرست کنید.

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());
}

دریافت مقدار ویژگی Block از مرجع خارجی

API Aspose.CAD برای جاوا به شما امکان می‌دهد تا مرجع خارجی یک ویژگی بلوک را دریافت کنید. API 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

API Aspose.CAD برای جاوا به شما امکان می‌دهد تا متن را در یک فایل DWG AutoCAD جستجو کنید. API Aspose.CAD کلاس CadText را ارائه می‌دهد که نمایانگر موجودیت‌های متنی در فایل DWG AutoCAD است. کلاس CadMText نیز در API 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

API 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

API Aspose.CAD برای جاوا می‌تواند نقشه‌های AutoCAD را در فرمت DWG بارگذاری کرده و از موجودیت‌های مختلفی پشتیبانی کند. DWG یک فایل باینری است که حاوی داده‌های تصویر وکتور و متادیتا می‌باشد. موجودیت‌های مختلفی در یک فایل DWG وجود دارد. بخش زیر توصیف می‌کند که چگونه می‌توان تصاویر را در داخل فایل DWG وارد کرد.

پشتیبانی از افزودن متن در DWG

API 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

API Aspose.CAD برای جاوا اکنون به موجودیت‌های پشتیبانی شده مش که شامل انواع CadPolyFaceMesh و CadPolygonMesh است دسترسی دارد. مثال زیر توصیف می‌کند که چگونه می‌توان به انواع مش دسترسی داشت.

تبدیل نقشه‌های DWG به DXF

Aspose.CAD ویژگی‌ای دارد که به شما امکان می‌دهد فایل اتوکاد DWG را بارگذاری کرده و به فرمت DXF صادر کنید. رویکرد تبدیل DWG به DXF به صورت زیر عمل می‌کند:

  1. فایل نقشه DWG را با استفاده از روش Image.load بارگذاری کنید.
  2. نقشه DWG را با استفاده از متد Image.save() به DXF صادر کنید.

نمونه کد زیر نشان می‌دهد چگونه یک فایل 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

API Aspose.CAD می‌تواند نقشه‌های AutoCAD را در فرمت DWG بارگذاری کند و آنها را به SVG تبدیل کند. این موضوع نحوه استفاده از API Aspose.CAD را برای دستیابی به تبدیل DWG به فرمت SVG از طریق مراحل ساده زیر توضیح می‌دهد.

  1. فایل DWG را به یک نمونه از Image بارگذاری کنید.
  2. یک شی از کلاس SvgOptions ایجاد کرده و ویژگی‌های مورد نیاز را تنظیم کنید.
  3. نقشه DWG را با استفاده از متد Image.save() به SVG صادر کنید.

نمونه کد زیر نشان می‌دهد چگونه یک فایل 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");
}