Gambar DWG

Ekspor Gambar DWG ke PDF

Aspose.CAD untuk API Java dapat memuat gambar AutoCAD dalam format DWG, dan mengonversinya menjadi PDF. Topik ini menjelaskan penggunaan API Aspose.CAD untuk mencapai konversi dari DWG ke format PDF melalui langkah-langkah sederhana yang ditentukan berikut.

Format File DWG

DWG adalah file biner yang berisi data gambar vektor dan metadata. Data gambar vektor memberikan instruksi kepada aplikasi CAD tentang cara menampilkan DWG; metadata dapat berisi berbagai informasi tentang file termasuk data spesifik lokasi dan juga data klien. Spesifikasi terbuka untuk format file DWG dapat ditemukan dalam PDF ini

Mengonversi File DWG ke PDF

Langkah-langkah sederhana berikut diperlukan untuk mengonversi DWG ke PDF.

  1. Muat file DWG ke dalam instance Image.
  2. Buat objek dari kelas CadRasterizationOptions dan atur properti PageHeight & PageWidth.
  3. Buat objek dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
  4. Panggil metode Image.save dan teruskan objek PdfOptions sebagai parameter kedua.

Contoh kode di bawah ini menunjukkan cara mengekspor Gambar DWG ke 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);

Membuat PDF Tunggal dengan Ukuran Layout Berbeda

Aspose.CAD untuk Java memungkinkan Anda mengonversi file DWG menjadi satu PDF dengan ukuran layout yang berbeda. Pendekatan ini bekerja sebagai berikut:

  1. Muat file DWG menggunakan metode pabrik Aspose.CAD.Image.load.
  2. Buat instance dari kelas CadRasterizationOptions dan atur tinggi dan lebar halaman hasil.
  3. Tambahkan LayoutPageSizes yang diperlukan untuk objek CadRasterizationOptions.
  4. Buat instance dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
  5. Ekspor gambar ke PDF menggunakan metode Image.save .

Contoh kode di bawah ini menunjukkan cara membuat satu PDF dengan layout yang berbeda.

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

Ekspor DWG ke PDF/A dan PDF/E

Langkah-langkah sederhana berikut diperlukan untuk mengonversi DWG ke PDF.

  1. Muat file DWG ke dalam instance Image.
  2. Buat objek dari kelas CadRasterizationOptions dan atur PageHeight & PageWidth .
  3. Buat objek dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
  4. Panggil Image.save metode dan teruskan objek PdfOptions sebagai parameter kedua.

Contoh kode di bawah ini menunjukkan cara mengekspor Gambar DWG ke 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);

Primitif AutoCAD yang Didukung

Primitif AutoCAD berikut didukung.

  • TEKS
  • MTEXT
  • ATTDEF
  • ATTRIB
  • ARC
  • ELLIPSE
  • HATCH
  • LEADER
  • TITIK
  • VERTEX 2D
  • VERTEX 3D
  • POLYLINE 2D
  • LWPOLYLINE
  • RAY
  • BULAT
  • DIMENSION ORDINATE
  • DIMENSION LINEAR
  • DIMENSION ALIGNED
  • DIMENSION ANG 3Pt
  • DIMENSION ANG 2Ln
  • DIMENSION RADIUS
  • DIMENSION DIAMETER
  • SHAPE
  • SOLID
  • SPLINE
  • MLINE
  • GARIS
  • XLINE
  • GAYA
  • DIMSTYLE
  • LTYPE
  • MLINESTYLE
  • LAPIS
  • VIEWPORT
  • LAYOUT

Ekspor Layout DWG Spesifik ke PDF

Pendekatan ini bekerja sebagai berikut:

  1. Muat file DWG menggunakan metode pabrik Image.load.
  2. Buat instance dari kelas CadRasterizationOptions dan atur tinggi dan lebar halaman hasil.
  3. Atur properti Layouts untuk objek CadRasterizationOptions.
  4. Buat instance dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
  5. Ekspor gambar ke PDF menggunakan metode Image.save() .

Contoh kode di bawah ini menunjukkan cara mengonversi layout spesifik dari DWG ke 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);

Ekspor DWG ke Raster atau PDF menggunakan Ukuran Tetap

Aspose.CAD untuk API Java dapat memuat gambar AutoCAD dalam format DWG, dan mengonversinya menjadi PDF atau Raster menggunakan ukuran tetap.

Contoh kode di bawah ini menunjukkan cara menerapkan fitur ini.

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

Dukungan untuk garis tersembunyi yang dibulatkan saat mengekspor DWG/DXF ke BMP dan PDF

Pendekatan ini bekerja sebagai berikut:

  1. Muat file DWG menggunakan metode Aspose.CAD.Image.load .
  2. Buat instance dari kelas CadRasterizationOptions .
  3. Buat instance dari kelas CadRasterizationOptions dan atur tinggi dan lebar halaman hasil.
  4. Buat instance dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
  5. Ekspor gambar ke PDF menggunakan metode Image.save() .

Contoh kode di bawah ini menunjukkan cara menerapkan fitur ini.

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

Dukungan untuk pengaturan area cetak untuk gambar DWG dalam PDF yang diekspor

Aspose.CAD untuk API Java dapat memuat gambar AutoCAD dalam format DWG, dan mengonversinya menjadi PDF. Topik ini menjelaskan penggunaan API Aspose.CAD untuk mencapai dukungan untuk pengaturan area cetak untuk gambar DWG dalam PDF yang diekspor.

Contoh kode di bawah ini menunjukkan cara menerapkan fitur ini.

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

Dukungan untuk membaca metadata XREF untuk file DWG

  1. Muat file DWG menggunakan metode Aspose.CAD.Image.load .
  2. Telusuri setiap entitas gambar.
  3. Jika entitas adalah CadUnderlay maka entitas XREF dengan metadata.

Contoh kode di bawah ini menunjukkan cara mencapai fitur ini.

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

Dokumen DWG dengan menentukan koordinat

Aspose.CAD untuk API Java sekarang menyediakan fitur untuk merender dokumen DWG dengan memberikan koordinat lebar dan tinggi dokumen.

Contoh kode di bawah ini menunjukkan cara merender dokumen 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);

Properti CadRasterizationOptions.Layouts adalah tipe array string sehingga Anda dapat menentukan lebih dari satu layout sekaligus untuk kemungkinan konversi ke format PDF. Saat menentukan beberapa layout untuk properti CadRasterizationOptions.Layouts , PDF hasil akan memiliki beberapa halaman, di mana setiap halaman mewakili layout AutoCAD individu.

Daftar Semua Layout

Anda dapat mencantumkan semua layout yang ada dalam gambar AutoCAD menggunakan potongan kode berikut.

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

Dapatkan Nilai Atribut Blok dari Referensi Eksternal

Aspose.CAD untuk API Java memungkinkan Anda untuk mendapatkan referensi eksternal dari atribut blok. API Aspose.CAD mengekspos properti getXRefPathName() untuk mendapatkan referensi eksternal dari atribut blok dalam koleksi CadBlockDictionary.

Kode berikut menunjukkan cara mendapatkan referensi eksternal dari atribut blok.

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

Cari Teks Dalam File AutoCAD DWG

Aspose.CAD untuk API Java memungkinkan Anda untuk mencari teks dalam file DWG AutoCAD. API Aspose.CAD mengekspos kelas CadText yang mewakili entitas teks dalam file DWG AutoCAD. Kelas CadMText juga termasuk dalam API Aspose.CAD karena beberapa entitas lain mungkin juga berisi teks.

Kode berikut menunjukkan cara mencari teks dalam file 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;
}
}

Cari Teks di Layout Spesifik

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

Mengakses Bendera Underlay untuk Format DWG

Aspose.CAD untuk Java telah menerapkan bendera underlay untuk format DWG dan memungkinkan pengembang untuk mengaksesnya. Berikut adalah demonstrasi kode sederhana.

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

Dukungan untuk Entitas DWG

Aspose.CAD untuk API Java dapat memuat gambar AutoCAD dalam format DWG dan mendukung berbagai entitas untuk dikerjakan.

Dukungan untuk Entitas MLeader

DWG adalah file biner yang berisi data gambar vektor dan metadata. Ada berbagai entitas dalam file DWG. Bagian berikut menjelaskan contoh bekerja dengan entitas MLeader di dalam file 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);

Dukungan untuk Mengekspor Entitas DWG ke Gambar

DWG adalah file biner yang berisi data gambar vektor dan metadata. Ada berbagai entitas dalam file DWG. Bagian berikut menjelaskan contoh mengekspor entitas DWG tertentu ke gambar.

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

Dukungan untuk Mengimpor Gambar ke File DWG

Aspose.CAD untuk API Java dapat memuat gambar AutoCAD dalam format DWG dan mendukung berbagai entitas untuk dikerjakan. DWG adalah file biner yang berisi data gambar vektor dan metadata. Ada berbagai entitas dalam file DWG. Bagian berikut menjelaskan bagaimana kita dapat mengimpor gambar ke dalam file DWG.

Dukungan untuk Menambahkan Teks dalam DWG

Aspose.CAD untuk API Java dapat memuat gambar AutoCAD dalam format DWG dan mendukung berbagai entitas untuk dikerjakan. DWG adalah file biner yang berisi data gambar vektor dan metadata. Ada berbagai entitas dalam file DWG. Bagian berikut menjelaskan bagaimana kita dapat menambahkan teks ke dalam file 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);

Dukungan untuk Mesh dalam DWG

Aspose.CAD untuk API Java sekarang dapat mengakses entitas yang mendukung mesh yang mencakup tipe CadPolyFaceMesh dan CadPolygonMesh. Contoh berikut menjelaskan bagaimana kita dapat mengakses tipe mesh.

Mengonversi Gambar DWG ke DXF

Aspose.CAD menyediakan fitur untuk memuat file DWG AutoCAD dan mengekspor ke format DXF. Pendekatan konversi DWG ke DXF bekerja sebagai berikut:

  1. Muat file gambar DWG menggunakan metode Image.load .
  2. Ekspor gambar DWG ke DXF menggunakan metode Image.save() .

Contoh kode di bawah ini menunjukkan cara mengonversi file DWG ke format 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);

Mengonversi Gambar DWG ke SVG

API Aspose.CAD dapat memuat gambar AutoCAD dalam format DWG, dan mengonversinya menjadi SVG. Topik ini menjelaskan penggunaan API Aspose.CAD untuk mencapai konversi dari DWG ke format SVG melalui langkah-langkah sederhana yang ditentukan di bawah ini.

  1. Muat file DWG ke dalam instance Image.
  2. Buat objek dari kelas SvgOptions dan atur properti yang diperlukan.
  3. Ekspor gambar DWG ke SVG menggunakan metode Image.save() .

Contoh kode di bawah ini menunjukkan cara mengonversi file DWG ke format 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");
}