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:

  1. Muat file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat objek dari kelas CadRasterizationOptions dan atur properti PageHeight & PageWidth.
  3. Buat objek dari kelas PdfOptions dan atur properti VectorRasterizationOptions.
  4. 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:

  1. Dimensi Teratur
  2. Dimensi Sudut
  3. Busur
  4. Atribut
  5. Referensi Blok
  6. Lingkaran
  7. Dimensi Diameter
  8. Elips
  9. Hatching
  10. Garis
  11. Teks Multiline
  12. Dimensi Ordinat
  13. Titik
  14. Garis Poligon
  15. Dimensi Radial
  16. Sinar
  17. Dimensi Rotasi
  18. Tabel
  19. Teks
  20. 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:

  1. Buka file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat instance dari CadRasterizationOptions dan tentukan properti PageWidth & PageHeight.
  3. Tambah lapisan ke objek dari CadRasterizationOptions.
  4. Buat instance dari PdfOptions & atur properti VectorRasterizationOptions dari instans tersebut.
  5. 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:

  1. Buka file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat instance dari CadRasterizationOptions dan tentukan properti PageWidth & PageHeight.
  3. Tambah lapisan ke objek dari CadRasterizationOptions.
  4. Buat instance dari JpegOptions & atur properti VectorRasterizationOptions dari instans tersebut.
  5. 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:

  1. Muat file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat objek dari kelas CadRasterizationOptions dan muat file PDF.
  3. Atur properti PageHeight & PageWidth.
  4. 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:

  1. Muat file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat objek dari kelas CadRasterizationOptions dan muat file PDF.
  3. Atur properti PageHeight & PageWidth.
  4. 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:

  1. Buka file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat instance dari CadRasterizationOptions dan tentukan properti PageWidth & PageHeight.
  3. Tentukan nama layout yang diinginkan menggunakan properti CadRasterizationOptions.Layouts.
  4. Buat instance dari PdfOptions & atur properti VectorRasterizationOptions dari instans tersebut.
  5. 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:

  1. Buka file gambar DXF menggunakan metode pabrik Image.load.
  2. Akses entitas di dalam file CAD.
  3. Periksa entitas CadEntityTypeName.MTEXT dan CadEntityTypeName.INSERT.
  4. 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:

  1. Buka file gambar DXF menggunakan metode pabrik Image.load.
  2. Akses entitas di dalam file CAD.
  3. Periksa entitas CadEntityTypeName.INSERT.
  4. Periksa daftar tipe CadBlockEntity.
  5. 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:

  1. Muat file gambar DXF menggunakan metode pabrik Image.load.
  2. Buat objek dari kelas CadRasterizationOptions dan muat file PDF.
  3. Atur properti yang diinginkan dari CadRasterizationOptions.
  4. 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:

  1. Atur font baru.
  2. Sembunyikan entitas.
  3. 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;
}