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.

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.

  1. DWG dosyasını Image sınıfından bir örneğe yükleyin.
  2. CadRasterizationOptions sınıfının bir nesnesini oluşturun ve PageHeight & PageWidth özelliklerini ayarlayın.
  3. PdfOptions sınıfının bir nesnesini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  4. 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:

  1. Aspose.CAD.Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
  2. CadRasterizationOptions sınıfının bir örneğini oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
  3. CadRasterizationOptions nesnesi için gerekli LayoutPageSizes ekleyin.
  4. PdfOptions sınıfının bir örneğini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  5. 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.

  1. DWG dosyasını Image sınıfından bir örneğe yükleyin.
  2. CadRasterizationOptions sınıfının bir nesnesini oluşturun ve PageHeight & PageWidth özelliklerini ayarlayın.
  3. PdfOptions sınıfının bir nesnesini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  4. 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:

  1. Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
  2. CadRasterizationOptions sınıfının bir örneğini oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
  3. CadRasterizationOptions nesnesi için Layouts özelliğini ayarlayın.
  4. PdfOptions sınıfının bir örneğini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  5. 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:

  1. Aspose.CAD.Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
  2. CadRasterizationOptions sınıfının bir örneğini oluşturun.
  3. 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.
  4. PdfOptions sınıfının bir örneğini oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  5. 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.

// 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 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

  1. Aspose.CAD.Image.load fabrika metodunu kullanarak bir DWG dosyasını yükleyin.
  2. Her resim varlığı üzerinden geçin.
  3. 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:

  1. Image.load fabrika metodunu kullanarak DWG çizim dosyasını yükleyin.
  2. 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.

  1. DWG dosyasını Image sınıfından bir örneğe yükleyin.
  2. SvgOptions sınıfının bir nesfesini oluşturun ve gerekli özellikleri ayarlayın.
  3. 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");
}