שרטוטי DWG
ייצוא שרטוטי DWG ל-PDF
Aspose.CAD עבור Java API יכול לטעון שרטוטי AutoCAD בפורמט DWG, ולהמיר אותו ל-PDF. נושא זה מסביר את השימוש ב-Aspose.CAD API כדי להשיג את המרת DWG לפורמט PDF באמצעות צעדים פשוטים כפי שהוגדרו להלן.
ה-API תומך בגרסאות DWG הבאות של AutoCAD:
- גרסה 16.0 שחרור 18 DWG 2004
- גרסה 16.1 DWG 2005
- גרסה 18.0 DWG 2010
- גרסה 19.0 DWG 2013
פורמט קובץ 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 עבור Java מאפשרת לך להמיר את קובץ ה-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 נתמכים.
- 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
הגישה הזו פועלת כך:
- טען קובץ 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 ל-Raster או PDF באמצעות גודל קבוע
Aspose.CAD עבור Java API יכול לטעון שרטוטי 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
הגישה הזו פועלת כך:
- טען קובץ DWG באמצעות שיטת המפעל Aspose.CAD.Image.load .
- צור אינסטנציה של הכיתה CadRasterizationOptions .
- צור אינסטנציה של הכיתה CadRasterizationOptions והגדר את גובה ורוחב הדף התוצאה.
- צור אינסטנציה של PdfOptions והגדר את מאפיין VectorRasterizationOptions.
- ייצא את התמונה ל-PDF באמצעות השיטה Image.save() .
דוגמת הקוד למטה מראה כיצד ליישם תכונה זו.
תמיכה בהגדרת אזור הדפסה עבור תמונת DWG ב-PDF המיוצא
Aspose.CAD עבור Java API יכול לטעון שרטוטי AutoCAD בפורמט DWG, ולהמיר אותו ל-PDF. נושא זה מסביר את השימוש ב-Aspose.CAD API כדי להשיג את התמיכה בהגדרת אזור הדפסה עבור תמונת 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 עבור Java API עכשיו מספק תכונה לרנדר מסמכי 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 עבור Java API מאפשרת לך לקבל הפניה חיצונית של מאפיין בלוק. Aspose.CAD API חושף את המאפיין 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 עבור Java API מאפשרת לך לחפש טקסט בקובץ DWG של AutoCAD. Aspose.CAD API חושף את הכיתה CadText המייצגת ישויות טקסט בקובץ DWG של AutoCAD. כיתה CadMText גם כלולה ב-Aspose.CAD API מכיוון שישויות אחרות עשויות לכלול גם טקסט.
הדוגמה הבאה ממחישה כיצד לחפש טקסט בקובץ 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 עבור Java הטמיעה את דגלי ההתקנה לפורמט 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 Entities
Aspose.CAD עבור Java API יכול לטעון שרטוטי AutoCAD בפורמט DWG ותומך בישויות שונות לעבוד איתן.
תמיכה ב-DWG Entity של 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 Entity לתמונה
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 עבור Java API יכול לטעון שרטוטי AutoCAD בפורמט DWG ולתמוך בישות שונות לעבוד איתן. DWG הוא קובץ בינארי המכיל נתוני תמונה וקטוריים ומטא-מידע. ישנם ישויות שונות בקובץ DWG. הסעיף הבא מתאר כיצד ניתן לייבא תמונות לתוך קובץ ה-DWG.
תמיכה בהוספת טקסט ב-DWG
Aspose.CAD עבור Java API יכול לטעון שרטוטי 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 עבור Java API יכולה עכשיו לגשת לישויות התומכות ברשת כולל סוגי CadPolyFaceMesh ו-CadPolygonMesh. הדוגמה הבאה מתארת כיצד ניתן לגשת לסוגי רשת.
המרת שרטוטי DWG ל-DXF
Aspose.CAD מספקת תכונה לטעון קובץ DWG של AutoCAD ולהמיר אותו לפורמט 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 API יכולה לטעון שרטוטי AutoCAD בפורמט DWG, ולהמיר אותו ל-SVG. נושא זה מסביר את השימוש ב-Aspose.CAD API כדי להשיג את ההמרה של 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"); | |
} |