DWG Çizimleri
DWG Çizimlerini PDF’ye Aktarmak
Aspose.CAD for Java API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları PDF’ye dönüştürebilir. Bu konu, basit adımlar ile DWG’yi PDF formatına dönüştürmek için Aspose.CAD API’sinin kullanımını açıklar.
API, aşağıdaki AutoCAD DWG revizyonlarını destekler:
- DWG 2004 sürüm 16.0 sürüm 18
- DWG 2005 sürüm 16.1
- DWG 2010 sürüm 18.0
- DWG 2013 sürüm 19.0
DWG Dosya Formatı
DWG, vektör resim verileri ve meta veriler içeren bir ikili dosyadır. Vektör resim verileri, CAD uygulamasına DWG’yi nasıl görüntüleyeceği hakkında talimatlar verir; meta veriler ise dosya hakkında yerel verilere ve ayrıca istemci verilerine dair çeşitli bilgileri içerebilir. DWG dosya formatı için Açık Spesifikasyonlar bu PDF’de bulunabilir.
DWG Dosyalarını PDF’ye Dönüştürme
DWG’yi PDF’ye dönüştürmek için aşağıdaki basit adımlar gereklidir.
- DWG dosyasını Image sınıfından bir örneğe yükleyin.
- CadRasterizationOptions sınıfının bir nesnesini oluşturun ve PageHeight & PageWidth özelliklerini ayarlayın.
- PdfOptions sınıfının bir nesnesini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
- Image.save metodunu çağırın ve PdfOptions nesnesini ikinci parametre olarak iletin.
Aşağıdaki kod örneği, DWG Çizimlerini PDF’ye aktarmanın nasıl yapılacağını göstermektedir.
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); |
Farklı Düzen Boyutları ile Tek PDF Oluşturma
Aspose.CAD for Java, bir DWG dosyasını farklı düzen boyutlarıyla tek bir PDF’ye dönüştürmenizi sağlar. Bu yaklaşım şöyle çalışır:
- Aspose.CAD.Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
- CadRasterizationOptions sınıfının bir örneğini oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
- CadRasterizationOptions nesnesi için gerekli LayoutPageSizes ekleyin.
- PdfOptions sınıfının bir örneğini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
- Görüntüyü Image.save metodunu kullanarak PDF’ye aktarın.
Aşağıdaki kod örneği, farklı düzenlerle tek bir PDF’nin nasıl oluşturulacağını göstermektedir.
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’yi PDF/A ve PDF/E’ye Aktarmak
DWG’yi PDF’ye dönüştürmek için aşağıdaki basit adımlar gereklidir.
- DWG dosyasını Image sınıfından bir örneğe yükleyin.
- CadRasterizationOptions sınıfının bir nesnesini oluşturun ve PageHeight & PageWidth özelliklerini ayarlayın.
- PdfOptions sınıfının bir nesnesini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
- Image.save metodunu çağırın ve PdfOptions nesnesini ikinci parametre olarak iletin.
Aşağıdaki kod örneği, DWG Çizimlerini PDF’ye aktarmanın nasıl yapılacağını göstermektedir.
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); |
Desteklenen AutoCAD Primitifleri
Aşağıdaki AutoCAD primitifleri desteklenmektedir.
- 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
Belirli DWG Düzenini PDF’ye Aktarmak
Bu yaklaşım şu şekilde çalışır:
- Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
- CadRasterizationOptions sınıfının bir örneğini oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
- CadRasterizationOptions nesnesi için Layouts özelliğini ayarlayın.
- PdfOptions sınıfının bir örneğini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
- Görüntüyü Image.save() metodunu kullanarak PDF’ye aktarın.
Aşağıdaki kod örneği, DWG’nin belirli bir düzeninin nasıl PDF’ye dönüştürüleceğini göstermektedir.
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’yi Sabit Boyut Kullanarak Raster veya PDF’ye Aktarma
Aspose.CAD for Java API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları sabit boyut kullanarak PDF veya Raster’e dönüştürebilir.
Aşağıdaki kod örneği, bu özelliğin nasıl uygulanacağını göstermektedir.
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’yi BMP ve PDF’ye aktarırken yuvarlak gizli çizgiler için destek
Bu yaklaşım şöyle çalışır:
- Aspose.CAD.Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
- CadRasterizationOptions sınıfının bir örneğini oluşturun.
- Elde edilen sayfa yüksekliğini ve genişliğini ayarlamak için CadRasterizationOptions sınıfının bir başka örneğini oluşturun.
- PdfOptions sınıfının bir örneğini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
- Görüntüyü Image.save() metodunu kullanarak PDF’ye aktarın.
Aşağıdaki kod örneği, bu özelliğin nasıl uygulanacağını göstermektedir.
DWG görüntüsünün çıkarılan PDF’deki baskı alanını ayarlama desteği
Aspose.CAD for Java API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları PDF’ye dönüştürebilir. Bu konu, çıkarılan PDF’deki DWG görüntüsünün baskı alanını ayarlama desteğinin nasıl sağlandığını açıklar.
Aşağıdaki kod örneği, bu özelliğin nasıl uygulanacağını göstermektedir.
// 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); | |
} |
DWG dosyası için XREF meta verilerini okuma desteği
- Aspose.CAD.Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
- Her resim varlığı üzerinden geçin.
- Varlık CadUnderlay ise XREF varlığı ile meta veri.
Aşağıdaki kod örneği, bu özelliğin nasıl sağlanacağını göstermektedir.
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(); | |
} | |
} | |
} |
Koordinatları Belirterek DWG Belgesi
Aspose.CAD for Java API, artık belgenin genişlik ve yükseklik koordinatlarını sağlayarak DWG belgelerini işler.
Aşağıdaki kod örneği, bir DWG belgesinin nasıl işleneceğini göstermektedir.
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 özelliği string dizisi türündedir, böylece PDF formatına olası dönüşüm için birden fazla düzen belirtebilirsiniz. CadRasterizationOptions.Layouts özelliği için birden fazla düzen belirtirken, elde edilen PDF birden fazla sayfa içerecek ve her sayfa bireysel bir AutoCAD düzenini temsil edecektir.
Tüm Düzenleri Listele
Bir AutoCAD çiziminde bulunan tüm düzenleri aşağıdaki kod parçacığı ile listeleyebilirsiniz.
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()); | |
} | |
Dış Referansın Blok Attribut Değerini Alma
Aspose.CAD for Java API, bir blok özellikinin dış referansını almanıza olanak tanır. Aspose.CAD API, getXRefPathName() özelliğini, CadBlockDictionary koleksiyonundaki bir blok özellikinin dış referansını almak için kullanır.
Aşağıdaki kod, bir blok özelliğinin dış referansını almayı gösterir.
// 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 Dosyasında Metin Arama
Aspose.CAD for Java API, bir DWG AutoCAD dosyasında metin aramanıza olanak tanır. Aspose.CAD API, DWG AutoCAD dosyasındaki metin varlıklarını temsil eden CadText sınıfını ortaya koyar. CadMText sınıfı da Aspose.CAD API’sinde dahil edilmiştir çünkü bazı diğer varlıklar da metin içerebilir.
Aşağıdaki kod, DWG AutoCAD dosyasında metin aramayı göstermektedir.
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; | |
} | |
} | |
Belirli Düzenlerde Metin Arama
// 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 Formatında Alt Katman Bayraklarına Erişim
Aspose.CAD for Java, DWG formatı için alt katman bayraklarını uygulamıştır ve geliştiricilerin bunlara erişmesine olanak tanır. Aşağıda basit bir kod gösterimi bulunmaktadır.
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 Varlıkları için Destek
Aspose.CAD for Java API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve çalışmak üzere farklı varlıkları destekler.
MLeader Varlığı için Destek
DWG, vektör resim verileri ve meta verileri içeren bir ikili dosyadır. DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, DWG dosyası içinde MLeader varlığı ile çalışmaya bir örnek sunmaktadır.
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 Varlığını Görüntüye Aktarma Desteği
DWG, vektör resim verileri ve meta verileri içeren bir ikili dosyadır. DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, belirli bir DWG varlığını görüntüye aktarmaya bir örnek sunmaktadır.
// 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 Dosyasına Resim Ekleme Desteği
Aspose.CAD for Java API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve çalışmak üzere farklı varlıkları destekler. DWG, vektör resim verileri ve meta verileri içeren bir ikili dosyadır. DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, DWG dosyasına nasıl resim ekleyeceğimizi açıklar.
DWG’ye Metin Ekleme Desteği
Aspose.CAD for Java API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve çalışmak üzere farklı varlıkları destekler. DWG, vektör resim verileri ve meta verileri içeren bir ikili dosyadır. DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, DWG dosyasına nasıl metin ekleyeceğimizi açıklar.
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’de Mesh Desteği
Aspose.CAD for Java API, artık CadPolyFaceMesh ve CadPolygonMesh türlerini içeren mesh’leri destekleyen varlıklara erişebilir. Aşağıdaki örnek, mesh türlerine nasıl erişeceğimizi açıklar.
DWG Çizimlerini DXF’ye Dönüştürme
Aspose.CAD, AutoCAD DWG dosyasını yükleyip DXF formatına aktarma özelliği sunar. DWG’den DXF’ye dönüşüm yaklaşımı şöyle çalışır:
- Image.load fabrika metodunu kullanarak DWG çizim dosyasını yükleyin.
- DWG çizimini Image.save() metodunu kullanarak DXF’ye aktarın.
Aşağıdaki kod örneği, bir DWG dosyasının nasıl DXF formatına dönüştürüleceğini göstermektedir.
// 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 Çizimlerini SVG’ye Dönüştürme
Aspose.CAD API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları SVG’ye dönüştürebilir. Bu konu, DWG’yi SVG formatına dönüştürmek için Aspose.CAD API’sinin kullanımını aşağıdaki basit adımlarla açıklar.
- DWG dosyasını Image sınıfından bir örneğe yükleyin.
- SvgOptions sınıfının bir nesfesini oluşturun ve gerekli özellikleri ayarlayın.
- DWG çizimini Image.save() metodunu kullanarak SVG’ye aktarın.
Aşağıdaki kod örneği, bir DWG dosyasının SVG formatına nasıl dönüştürüleceğini göstermektedir.
// 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"); | |
} |