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.
API mendukung revisi DWG AutoCAD berikut:
- Versi 16.0 rilis 18 DWG 2004
- Versi 16.1 DWG 2005
- Versi 18.0 DWG 2010
- Versi 19.0 DWG 2013
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.
- Muat file DWG ke dalam instance Image.
- Buat objek dari kelas CadRasterizationOptions dan atur properti PageHeight & PageWidth.
- Buat objek dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
- 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:
- Muat file DWG menggunakan metode pabrik Aspose.CAD.Image.load.
- Buat instance dari kelas CadRasterizationOptions dan atur tinggi dan lebar halaman hasil.
- Tambahkan LayoutPageSizes yang diperlukan untuk objek CadRasterizationOptions.
- Buat instance dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
- 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.
- Muat file DWG ke dalam instance Image.
- Buat objek dari kelas CadRasterizationOptions dan atur PageHeight & PageWidth .
- Buat objek dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
- 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:
- Muat file DWG menggunakan metode pabrik Image.load.
- Buat instance dari kelas CadRasterizationOptions dan atur tinggi dan lebar halaman hasil.
- Atur properti Layouts untuk objek CadRasterizationOptions.
- Buat instance dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
- 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:
- Muat file DWG menggunakan metode Aspose.CAD.Image.load .
- Buat instance dari kelas CadRasterizationOptions .
- Buat instance dari kelas CadRasterizationOptions dan atur tinggi dan lebar halaman hasil.
- Buat instance dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
- Ekspor gambar ke PDF menggunakan metode Image.save() .
Contoh kode di bawah ini menunjukkan cara menerapkan fitur ini.
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
- Muat file DWG menggunakan metode Aspose.CAD.Image.load .
- Telusuri setiap entitas gambar.
- 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:
- Muat file gambar DWG menggunakan metode Image.load .
- 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.
- Muat file DWG ke dalam instance Image.
- Buat objek dari kelas SvgOptions dan atur properti yang diperlukan.
- 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"); | |
} |