Gambar DXF
Ekspor Gambar DXF ke PDF
Aspose.CAD menyediakan fitur untuk memuat entitas gambar DXF AutoCAD dan merendernya sebagai gambar keseluruhan ke format PDF. Pendekatan konversi DXF ke PDF bekerja sebagai berikut:
- Muat file gambar DXF menggunakan metode pabrik Image.load.
- Buat objek dari kelas CadRasterizationOptions dan atur properti PageHeight & PageWidth.
- Buat objek dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
- Panggil Image.Save dengan melewatkan objek dari PdfOptions sebagai parameter kedua.
Contoh kode di bawah ini menunjukkan bagaimana cara mengonversi file menggunakan pengaturan default.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportDXFDrawingToPDF.class) + "DXFDrawings/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = 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 DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions); |
Format yang Didukung
Saat ini, kami sepenuhnya mendukung format file AutoCAD DXF 2010. Versi DXF sebelumnya tidak dijamin 100% valid. Kami berencana untuk memasukkan lebih banyak format dan fitur di versi Aspose.CAD mendatang.
Entitas yang Didukung
Saat ini kami mendukung semua entitas 2D yang luas dan parameter default dasarnya sebagai berikut:
- Dimensi Teratur
- Dimensi Sudut
- Busur
- Atribut
- Referensi Blok
- Lingkaran
- Dimensi Diameter
- Elips
- Hatching
- Garis
- Teks Multiline
- Dimensi Ordinat
- Titik
- Garis Poligon
- Dimensi Radial
- Sinar
- Dimensi Rotasi
- Tabel
- Teks
- Garis X
Manajemen Memori
Properti ExactReallocateOnly dapat digunakan untuk mengontrol alokasi memori ulang. Alokasi ulang kemungkinan besar akan terjadi untuk cache yang dialokasikan sebelumnya. Hal ini dapat terjadi ketika sistem menyadari bahwa ruang yang dialokasikan tidak akan cukup.
- Jika ExactReallocateOnly diatur ke nilai default, False, ruang alokasinya akan dipindahkan ke media yang sama.
- Ketika diatur ke True, alokasi tidak dapat melebihi ruang maksimum yang ditentukan. Dalam hal ini, cache yang ada dalam memori yang memerlukan alokasi ulang akan dibebaskan dan ruang tambahan dialokasikan di disk.
Ekspor Lapisan Tertentu dari Gambar DXF ke PDF
Pendekatan ini bekerja sebagai berikut:
- Buka file gambar DXF menggunakan metode pabrik Image.load.
- Buat instance dari CadRasterizationOptions dan tentukan properti PageWidth & PageHeight.
- Tambah lapisan ke objek dari CadRasterizationOptions.
- Buat instance dari PdfOptions & atur properti VectorRasterizationOptions dari instans tersebut.
- Ekspor gambar ke PDF menggunakan metode Image.save.
Contoh kode di bawah ini menunjukkan bagaimana cara mengonversi lapisan tertentu dari DXF ke PDF.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificLayerOfDXFDrawingToPDF.class) + "DXFDrawings/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
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); | |
// Add desired layers | |
rasterizationOptions.getLayers().add("0"); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_layer_out_.pdf", pdfOptions); |
Ekspor Lapisan Tertentu dari Gambar DXF ke Gambar
Pendekatan ini bekerja sebagai berikut:
- Buka file gambar DXF menggunakan metode pabrik Image.load.
- Buat instance dari CadRasterizationOptions dan tentukan properti PageWidth & PageHeight.
- Tambah lapisan ke objek dari CadRasterizationOptions.
- Buat instance dari JpegOptions & atur properti VectorRasterizationOptions dari instans tersebut.
- Ekspor gambar ke PDF menggunakan metode Image.save .
Contoh kode di bawah ini menunjukkan bagaimana cara mengonversi lapisan tertentu dari DXF ke Gambar.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings\\"; | |
String srcFile = dataDir + "for_layers_test.dwf"; | |
DwfImage image =(DwfImage)Image.load(srcFile); | |
List<String> layersNames=image.getLayers().getLayersNames(); | |
DwfWhipLayer layer = image.getLayers().getLayerByName("0"); | |
for (DwfWhipLayer lr : image.getLayers()) | |
{ | |
//... | |
} | |
// Create an instance of CadRasterizationOptions and set its various properties | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
String[] stringArray = Arrays.copyOf(layersNames.toArray(), layersNames.toArray().length, String[].class); | |
List<String> stringList = Arrays.asList(stringArray); | |
// Add desired layers | |
rasterizationOptions.setLayers(stringList); | |
JpegOptions jpegOptions = new JpegOptions(); | |
jpegOptions.setVectorRasterizationOptions(rasterizationOptions); | |
String output = dataDir+"for_layers_test.jpg"; | |
// Export the DXF to Image | |
image.save(output, jpegOptions); | |
Render file PDF sebagai bagian dari gambar DXF
Pendekatan ini bekerja sebagai berikut:
- Muat file gambar DXF menggunakan metode pabrik Image.load.
- Buat objek dari kelas CadRasterizationOptions dan muat file PDF.
- Atur properti PageHeight & PageWidth.
- Panggil Image.save dan simpan file.
Contoh kode di bawah ini menunjukkan bagaimana cara merender file PDF sebagai bagian dari gambar DXF.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = 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 DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions); |
Ekspor DXF ke WMF
Pendekatan ini bekerja sebagai berikut:
- Muat file gambar DXF menggunakan metode pabrik Image.load.
- Buat objek dari kelas CadRasterizationOptions dan muat file PDF.
- Atur properti PageHeight & PageWidth.
- Panggil Image.save dan simpan file.
Contoh kode di bawah ini menunjukkan bagaimana cara mengekspor DXF ke WMF.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image image = Image.load(srcFile); | |
IfcImage cadImage = (IfcImage)Image.load((dataDir +"example.ifc")); | |
try | |
{ | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(100); | |
rasterizationOptions.setPageHeight(100); | |
WmfOptions wmfOptions = new WmfOptions(); | |
cadImage.save(dataDir+" example.ifc.wmf", wmfOptions); | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_out_.pdf"); | |
} |
Dukungan untuk Menyimpan File DXF
Aspose.CAD menyediakan fitur untuk memuat file DXF AutoCAD, membuat perubahan di dalamnya, dan menyimpannya kembali sebagai file DXF. Contoh kode di bawah ini menunjukkan bagaimana mencapai persyaratan yang ditentukan.
String dataDir = Utils.getDataDir(SaveDXFFiles.class) + "CADConversion/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage = (CadImage)Image.load(srcFile); | |
cadImage.save(dataDir+"conic.dxf"); | |
Ekspor DGN underlay terbenam untuk format DXF
Aspose.CAD menyediakan fitur untuk memuat file DXF AutoCAD dan mengekspor DGN underlay terbenam untuk format DXF.
Contoh kode di bawah ini menunjukkan bagaimana mencapai persyaratan yang ditentukan.
String dataDir = Utils.getDataDir(ExportEmbeddedDGN.class) + "ExportingDGN/"; | |
String fileName = dataDir + "BlockRefDgn.dwg"; | |
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(fileName); | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setLayouts(new String[] {"Model"}); | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
objImage.save(dataDir + "BlockRefDgn.pdf", pdfOptions); | |
} |
Ekspor Layout DXF Tertentu ke PDF
Pendekatan ini bekerja sebagai berikut:
- Buka file gambar DXF menggunakan metode pabrik Image.load.
- Buat instance dari CadRasterizationOptions dan tentukan properti PageWidth & PageHeight.
- Tentukan nama layout yang diinginkan menggunakan properti CadRasterizationOptions.Layouts.
- Buat instance dari PdfOptions & atur properti VectorRasterizationOptions dari instans tersebut.
- Ekspor gambar ke PDF menggunakan metode Image.save .
Contoh kode di bawah ini menunjukkan bagaimana cara mengonversi layout tertentu dari DXF ke PDF.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
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[] {"Model"}); | |
// Create an instance of PdfOptions | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Set the VectorRasterizationOptions property | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Export the DXF to PDF | |
image.save(dataDir + "conic_pyramid_layout_out_.pdf", pdfOptions); |
Akses objek ATTRIB dan MTEXT
Pendekatan ini bekerja sebagai berikut:
- Buka file gambar DXF menggunakan metode pabrik Image.load.
- Akses entitas di dalam file CAD.
- Periksa entitas CadEntityTypeName.MTEXT dan CadEntityTypeName.INSERT.
- Tambahkan ke daftar sementara untuk pemrosesan lebih lanjut.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage =(CadImage) Image.load(srcFile); | |
List<CadBaseEntity> mtextList = new ArrayList<CadBaseEntity>(); | |
List<CadBaseEntity> attribList = new ArrayList<CadBaseEntity>(); | |
try | |
{ | |
for (CadBaseEntity entity : cadImage.getEntities()) | |
{ | |
if (entity.getTypeName() == CadEntityTypeName.MTEXT) | |
{ | |
mtextList.add(entity); | |
} | |
if (entity.getTypeName() == CadEntityTypeName.INSERT) | |
{ | |
for (CadBaseEntity childObject : entity.getChildObjects()) | |
{ | |
if (childObject.getTypeName() == CadEntityTypeName.ATTRIB) | |
{ | |
attribList.add(childObject); | |
} | |
} | |
} | |
} | |
System.out.println("MText Size: "+ mtextList.size()); | |
System.out.println("Attribute Size: "+ attribList.size()); | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} | |
Dekomposisi Objek Insert CAD
Pendekatan ini bekerja sebagai berikut:
- Buka file gambar DXF menggunakan metode pabrik Image.load.
- Akses entitas di dalam file CAD.
- Periksa entitas CadEntityTypeName.INSERT.
- Periksa daftar tipe CadBlockEntity.
- Proses entitas.
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage =(CadImage) Image.load(srcFile); | |
try | |
{ | |
for (int i=0; i<cadImage.getEntities().length;i++) | |
{ | |
if (cadImage.getEntities()[i].getTypeName() == CadEntityTypeName.INSERT) | |
{ | |
CadBlockEntity block = | |
(CadBlockEntity)cadImage.getBlockEntities().get_Item(((CadInsertObject)cadImage.getEntities()[i]).getName()); | |
for (CadBaseEntity blockChild : block.getEntities()) | |
{ | |
// process entities | |
} | |
} | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} |
Dukungan Pemotongan Blok
Aspose.CAD menyediakan fitur Pemotongan Blok. Pendekatan Pemotongan Blok bekerja sebagai berikut:
- Muat file gambar DXF menggunakan metode pabrik Image.load.
- Buat objek dari kelas CadRasterizationOptions dan muat file PDF.
- Atur properti yang diinginkan dari CadRasterizationOptions.
- Panggil Image.save sambil melewatkan objek dari PdfOptions sebagai parameter kedua dan simpan file.
Contoh kode di bawah ini menunjukkan bagaimana Pemotongan Blok berfungsi.
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java | |
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/"; | |
String inputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.dxf"; | |
String outputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.pdf"; | |
CadImage cadImage = (CadImage)Image.load(inputFile); | |
Margins margins = new Margins(); | |
margins.setTop(5); | |
margins.setRight(30); | |
margins.setBottom(5); | |
margins.setLeft(30); | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setBackgroundColor(Color.getWhite()); | |
rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor); | |
rasterizationOptions.setPageWidth(1200); | |
rasterizationOptions.setPageHeight(1600); | |
rasterizationOptions.setMargins(margins); | |
rasterizationOptions.setLayouts( new String[] { "Model" } ); | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
cadImage.save(outputFile, pdfOptions); | |
Ekspor Gambar ke DXF
Dengan menggunakan Aspose.CAD, Anda dapat mengekspor gambar ke format DXF. Menggunakan pendekatan ini, Anda dapat melakukan tindakan berikut:
- Atur font baru.
- Sembunyikan entitas.
- Perbarui teks.
Cuplikan kode berikut menunjukkan cara melakukan tindakan yang terdaftar di atas.
// The path to the resource directory. | |
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/"; | |
File[] files = new File(dataDir).listFiles(); | |
for (File file : files) { | |
String extension = GetFileExtension(file); | |
if(extension == ".dxf"){ | |
// **************************** | |
// Set new font per document | |
// **************************** | |
CadImage cadImage = (CadImage)Image.load(file.getName()); | |
for (Object style : cadImage.getStyles()) { | |
// Set font name | |
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Broadway"); | |
} | |
cadImage.save(file.getName() + "_font.dxf"); | |
// **************************** | |
// Hide all "straight" lines | |
// **************************** | |
CadImage cadImageEntity = (CadImage)Image.load(file.getName()); | |
for (CadBaseEntity entity : cadImageEntity.getEntities()) { | |
// Make lines invisible | |
if ((entity.getTypeName() == CadEntityTypeName.LINE)) { | |
entity.setVisible((short)0); | |
} | |
} | |
cadImageEntity.save(file.getName() + "_lines.dxf"); | |
// **************************** | |
// Manipulations with text | |
// **************************** | |
CadImage cadImageText = (CadImage)Image.load(file.getName()); | |
for (CadBaseEntity entity : cadImageText.getEntities()) { | |
// Make lines invisible | |
if ((entity.getTypeName() == CadEntityTypeName.TEXT)) { | |
((CadText)entity).setDefaultValue("New text here!!! :)"); | |
break; | |
} | |
} | |
cadImageText.save(file.getName() + "_text.dxf"); | |
}//If extension = .dxf | |
} | |
private static String GetFileExtension(File file) { | |
String extension = ""; | |
try { | |
if (file != null && file.exists()) { | |
String name = file.getName(); | |
extension = name.substring(name.lastIndexOf(".")); | |
} | |
} catch (Exception e) { | |
extension = ""; | |
} | |
return extension; | |
} |