CAD Çizimlerini PDF ve Raster Görüntü Formatlarına Dönüştürme

CAD Çizimlerini Raster Görüntü Formatlarına Dönüştürme

Aspose.CAD for Java, DXF ve DWG gibi CAD çizim formatlarını PNG, BMP, TIFF, JPEG ve GIF gibi desteklenen raster görüntü formatlarına dönüştürme yeteneğine sahiptir. Aspose.CAD for Java API, bu hedefe ulaşmak için verimli ve kullanımı kolay yollar sunmuştur. Aşağıda detaylandırıldığı gibi, herhangi bir desteklenen CAD çizim formatını raster görüntü formatlarına dönüştürebilirsiniz.

  1. CAD dosyasını Image örneğine yükleyin.
  2. CadRasterizationOptions örneğini oluşturun ve PageWidth ve PageHeight gibi zorunlu özelliklerini ayarlayın.
  3. ImageOptionsBase örneğini oluşturun ve VectorRasterizationOptions özelliğini bir önceki adımda oluşturulan CadRasterizationOptions örneğine ayarlayın.
  4. Dosya yolunu (veya MemoryStream nesnesini) ve bir önceki adımda oluşturulan ImageOptionsBase örneğini geçirerek Image.save çağrısı yapın.

İşte tamamlayıcı kaynak kodu.

String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
// Set page width & height
rasterizationOptions.setPageWidth(1200);
rasterizationOptions.setPageHeight(1200);
// Create an instance of PngOptions for the resultant image
ImageOptionsBase options = new PngOptions();
//Set rasterization options
options.setVectorRasterizationOptions(rasterizationOptions);
// Save resultant image
image.save(dataDir + "conic_pyramid_raster_image_out_.png", options);

Varsayılan olarak, API yalnızca “Model” düzenini işler. Ancak, CAD çizimlerini görüntü formatlarına dönüştürürken kendi tercihlerinize göre düzenleri de belirtebilirsiniz.

CAD Dönüşümünü Özelleştirme

CAD’den PDF ve CAD’den raster görüntü dönüşüm prosedürleri oldukça yapılandırılabilir çünkü CadRasterizationOptions sınıfı, uygulama ihtiyaçlarına göre yeniden yapılandırılabilen birçok isteğe bağlı özellik sunacak şekilde uygulanmıştır.

CadRasterizationOptions Sınıfı

CadRasterizationOptions sınıfı, DWG ve DXF gibi tüm desteklenen CAD formatları için ortaktır, bu nedenle, bu makalede paylaşılan bilgiler yukarıda belirtilen her iki CAD formatı için geçerlidir.

En kullanışlı CadRasterizationOptions sınıfı özellikleri şunlardır:

ÖzellikVarsayılan DeğerGerekliAçıklama
PageWidth0EvetSayfa genişliğini belirtir.
PageHeight0EvetSayfa yüksekliğini belirtir
ScaleMethodScaleType.ShrinkToFitHayırÇizimin otomatik olarak ölçeklendirilip ölçeklendirilmeyeceğini belirtir. Varsayılan değer, görüntüyü tuval boyutuna sığacak şekilde otomatik olarak küçültür. GrowToFit moduna geçin veya otomatik ölçeklendirmeyi devre dışı bırakmak için None ayarını kullanın.
BackgroundColorColor.WhiteHayırÇıktı görüntüsünün arka plan rengini belirtir.
DrawTypeCadDrawTypeMode.UseDrawColorHayırVarlığın renklendirme modunu belirtir. Varlıkları yerel renklerini kullanarak çizmek için UseObjectColor seçeneğini belirtin veya yerel renkleri geçersiz kılmak için UseDrawColor seçeneğini belirtin.
DrawColorColor.BlackHayırGeçersiz kılınmış varlığın rengini belirtir (yalnızca DrawType UseDrawColor özellik değeri olarak ayarlandığında).
AutomaticLayoutsScalingFalseHayırOtomatik düzen ölçeklemenin Model düzene karşı yapılması gerekip gerekmediğini belirtir.

Tuval Boyutunu ve Modunu Ayarlama

CAD’den PDF’ye veya CAD’den raster görüntü formatlarına aktarım basit bir görev değildir. Sonuç PDF’sinin veya görüntünün tuval boyutunun tanımlanması gerektiğinden, çizimi düzgün bir şekilde işlemek için PDF sayfasının çıktı boyutlarını belirtmemiz gerekir. CadRasterizationOptions.PageWidth ve CadRasterizationOptions.PageHeight özelliklerini açıkça ayarlayın veya bir ImageSaveException alabilirsiniz.

Ayrıca, boyut ölçek seçeneklerini belirtebilirsiniz. Ölçeklendirme seçenekleri CadRasterizationOptions.ScaleMethod özelliği ile ayarlanır. Bu seçeneği, görüntü boyutlarını CadRasterizationOptions.PageWidth ve CadRasterizationOptions.PageHeight değerlerine göre otomatik olarak ayarlamak için kullanın. Varsayılan olarak CadRasterizationOptions.ScaleMethod ScaleType.ShrinkToFit moduna ayarlanmıştır. Bu özellik, aşağıdaki davranışları tanımlar:

  • CAD çizim boyutları sonuçta oluşan tuval boyutundan büyükse, çizim boyutları, en-boy oranını koruyarak sonuçta oluşan tuvale sığacak şekilde küçültülür.
  • CAD çizim boyutları sonuçta oluşan tuval boyutundan küçükse, çizim boyutunu, en-boy oranını koruyarak PDF tuvaline sığacak şekilde artırmak için CadRasterizationOptions.ScaleMethod özelliğini ScaleType.GrowToFit olarak ayarlayın.
  • Ya da otomatik ölçeklendirmeyi ScaleType.None seçeneğiyle devre dışı bırakın.

Aşağıdaki kod örneği otomatik ölçeklendirme seçeneğinin kullanımını gösterir.

String srcFile = dataDir + "conic_pyramid.dxf";
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.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
rasterizationOptions.setAutomaticLayoutsScaling(true);
rasterizationOptions.setNoScaling(true);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export CAD to PDF
objImage.save(dataDir +"result_out_.pdf", pdfOptions);
// Create an instance of TiffOptions
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default);
// Set the VectorRasterizationOptions property
tiffOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export CAD to TIFF
objImage.save(dataDir + "result_out_.tiff", tiffOptions);

Arka Plan ve Çizim Renklerini Ayarlama

Varsayılan olarak, sonuçtaki tuval için renk paleti genel belgeler şemasına ayarlanmıştır. Bu, CAD çizimindeki tüm varlıkların beyaz bir arka planda siyah kalemle çizileceği anlamına gelir. Bu ayarlar CadRasterizationOptions.BackgroundColor ve CadRasterizationOptions.DrawColor özellikleri ile değiştirilebilir. CadRasterizationOptions.DrawColor özelliğini değiştirmek, kullanılacak çizim renginden yararlanmak için CadRasterizationOptions.DrawType özelliğinin de ayarlanmasını gerektirir. CadRasterizationOptions.DrawType özelliği, CAD varlıklarının renklerini koruyup koruyamayacağını veya özel renklerle dönüştürülüp dönüştürülmeyeceğini kontrol eder. Varlık renklerini korumak için CadRasterizationOptions.DrawType değerini CadDrawTypeMode.UseObjectColor olarak belirtin, aksi takdirde CadDrawTypeMode.UseDrawColor değerini belirtin.

Aşağıdaki kod örneği, farklı renk özelliklerini nasıl kullanacağınızı gösterir.

String srcFile = dataDir + "conic_pyramid.dxf";
// Image image = Image.load(srcFile);
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.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
rasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBeige());
rasterizationOptions.setDrawType(CadDrawTypeMode.UseDrawColor);
rasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlue());
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export CAD to PDF
objImage.save(dataDir +"result_out_.pdf", pdfOptions);
// Create an instance of TiffOptions
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default);
// Set the VectorRasterizationOptions property
tiffOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export CAD to TIFF
objImage.save(dataDir + "result_out_.tiff", tiffOptions);

Otomatik Düzen Ölçeklendirmesini Ayarlama

Çoğu CAD çizimi, tek bir dosyada birden fazla düzen saklar ve her düzen farklı boyutlara sahip olabilir. Bu tür CAD çizimlerini PDF’ye işlerken, PDF’nin her sayfası düzen boyutuna göre farklı ölçeklendirmeye sahip olabilir. İşlemeyi eşit hale getirmek için, Aspose.CAD API’leri CadRasterizationOptions.AutomaticLayoutsScaling özelliğini açığa çıkarmıştır. Varsayılan değeri false‘dur ancak true olduğunda, API her ayrı düzen için karşılık gelen bir ölçek aramaya çalışır ve sayfa boyutuna göre otomatik yeniden boyutlandırma işlemi yaparak bunu uygun bir şekilde çizer.

İşte CadRasterizationOptions.AutomaticLayoutsScaling özelliğinin CadRasterizationOptions.ScaleMethod özelliği ile işbirliği içinde nasıl çalıştığı:

  1. ScaleMethod ScaleType.ShrinkToFit veya ScaleType.GrowToFit olarak ayarlandığında ve AutomaticLayoutsScaling false olduğunda, tüm düzenler (Model dahil) ilk seçeneğe göre işlenecektir.
  2. ScaleMethod ScaleType.ShrinkToFit veya ScaleType.GrowToFit olarak ayarlandığında ve AutomaticLayoutsScaling true olduğunda, tüm düzenler (Model hariç) boyutlarına göre işlenecek, Model ilk seçeneğe göre işlenecektir.
  3. ScaleMethod ScaleType.None olarak ayarlandığında ve AutomaticLayoutsScaling true veya false olarak ayarlandığında, herhangi bir ölçeklendirme yapılmayacaktır.

Aşağıdaki kod örneği, CAD’den PDF dönüşümü için otomatik düzen ölçeklendirmeyi nasıl ayarlayacağınızı gösterir.

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);
// Set Auto Layout Scaling
rasterizationOptions.setAutomaticLayoutsScaling(true);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the CAD to PDF
image.save(dataDir + "result_out_.pdf", pdfOptions);

CAD Düzenlerini Raster Görüntü Formatlarına Dönüştürme

Aspose.CAD for Java API, DXF ve DWG gibi desteklenen formatların CAD düzenlerini PNG, BMP, TIFF, JPEG ve GIF gibi raster görüntülere dönüştürme yeteneğine sahiptir. API ayrıca, bir CAD çiziminin belirli düzenlerini farklı PSD katmanlarına render etme desteği de sunmaktadır. Aspose.CAD for Java API, gerekli CAD düzenlerinin listesini belirtmek ve bunları raster görüntü formatlarına render etmek için verimli ve kullanımı kolay yollar sunmuştur. Aşağıda, bunu 5 basit adımda nasıl gerçekleştirebileceğiniz listelenmiştir.

  1. CAD dosyasını Image örneğine load fabrika yöntemi ile yükleyin.
  2. CadRasterizationOptions örneğini oluşturun ve PageWidth ve PageHeight gibi zorunlu özelliklerini ayarlayın.
  3. İstenen düzen adı(ları)nı CadRasterizationOptions.Layouts özelliğini kullanarak belirtin.
  4. ImageOptionsBase örneğini oluşturun ve VectorRasterizationOptions özelliğini bir önceki adımda oluşturulan CadRasterizationOptions örneğine ayarlayın.
  5. Dosya yolunu (veya MemoryStream nesnesini) ve bir önceki adımda oluşturulan ImageOptionsBase örneğini geçirerek Image.Save çağrısı yapın.

İşte tamamlayıcı kaynak kodu.

String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
// Set page width & height
rasterizationOptions.setPageWidth(1200);
rasterizationOptions.setPageHeight(1200);
// Specify a list of layout names
rasterizationOptions.setLayouts(new String[] {"Model", "Layout1"});
// Create an instance of TiffOptions for the resultant image
ImageOptionsBase options = new TiffOptions(TiffExpectedFormat.Default);
// Set rasterization options
options.setVectorRasterizationOptions(rasterizationOptions);
// Save resultant image
image.save(dataDir + "conic_pyramid_layoutstorasterimage_out_.tiff", options);

 

CAD Renderleme Süreci için İzlemeyi Etkinleştirme

Aspose.CAD, CAD renderleme süreci ile ilgili izleme için yardımcı olacak bir dizi sınıf ve destekleyici enumerasyon alanı tanıttı. Bu değişiklikler sayesinde, CAD’den PDF dönüşümü artık izlemeyi etkinleştirerek aşağıdaki gibi gerçekleştirilebilir.

// 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(EnableTracking.class) + "DXFDrawings/";
Image image = Image.load(dataDir + "conic_pyramid.dxf");
{
OutputStream stream = new FileOutputStream(dataDir + "output_conic_pyramid.pdf");
{
PdfOptions pdfOptions = new PdfOptions();
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
cadRasterizationOptions.setPageWidth(800);
cadRasterizationOptions.setPageHeight(600);
cadRasterizationOptions.RenderResult = new ErrorHandler();
System.out.println("Exporting to pdf format");
image.save(stream, pdfOptions);
}
}
// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
public static class ErrorHandler extends CadRasterizationOptions.CadRenderHandler
{
@Override
public void invoke(CadRenderResult result) {
System.out.println("Tracking results of exporting");
if (result.isRenderComplete())
return;
System.out.println("Have some problems:");
int idxError = 1;
for (RenderResult rr : result.getFailures())
{
System.out.printf("{0}. {1}, {2}", idxError, rr.getRenderCode(), rr.getMessage());
idxError++;
}
}
}

CAD renderleme sürecinin izlenmesi, aşağıdaki olası sorunları tespit edebilir.

  1. Eksik veya bozuk başlık bilgisi.
  2. Eksik düzen bilgisi.
  3. Eksik blok nesneleri.
  4. Eksik boyut stilleri.
  5. Eksik stiller.

CAD Çizimlerini Dönüştürürken Yazı Tiplerini Değiştirme

Belirli bir CAD çiziminin, CAD’den PDF’ye veya CAD’den raster görüntü formatlarına dönüşüm işleminin gerçekleştiği makinada bulunmayan belirli bir yazı tipi kullanması oldukça olasıdır. Bu durumlarda, Aspose.CAD API’si, eksik yazı tiplerini vurgulamak ve dönüşüm sürecini durdurmak için uygun bir istisna tetikleyecektir çünkü API, içerikleri sonuç PDF’sine ve/veya görüntülere düzgün bir şekilde render etmek için bu yazı tiplerini gerektirir. Aspose.CAD API, gereken yazı tiplerini mevcut yazı tipleriyle değiştirmek için kolay bir mekanizma sağlar. CadImage.Styles özelliği, CAD çizimindeki her stil için CadStyleTableObject‘u içeren CadStylesDictionary örneğini döndürürken, CadStyleTableObject.PrimaryFontName mevcut yazı tipi adını belirlemek için kullanılabilir.

Aşağıdaki kod parçacığı, CAD çizimindeki tüm stillerin yazı tipini değiştirmek için Aspose.CAD for Java API’sinin kullanımını göstermektedir.

String srcFile = dataDir + "conic_pyramid.dxf";
// Load a CAD drawing in an instance of CadImage
CadImage cadImage = (CadImage) Image.load(srcFile);
// Iterate over the items of CadStylesDictionary
for(Object style : cadImage.getStyles())
{
// Set the font name
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Arial");
}

Sadece bir belirli stilin yazı tipini değiştirmek için stil adını kullanarak erişmek de mümkündür. Aşağıdaki kod parçacığı, bu yaklaşımın kullanımını göstermektedir.

String srcFile = dataDir + "conic_pyramid.dxf";
// Load a CAD drawing in an instance of CadImage
CadImage cadImage = (CadImage)Image.load(srcFile);
// Specify the font for one particular style
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)cadImage.getStyles().get_Item(0)).setPrimaryFontName("Arial");

CAD Katmanlarını Raster Görüntü Formatlarına Dönüştürme

Aspose.CAD for Java API, gerekli CAD katmanının adını belirlemek ve bunu raster görüntü formatlarına render etmek için verimli ve kullanımı kolay yollar sunmuştur. Aşağıda, bunu 5 basit adımda nasıl gerçekleştirebileceğiniz listelenmiştir.

  1. DWF CAD dosyasını Image örneğine Load fabrika yöntemi ile yükleyin.
  2. CadRasterizationOptions örneğini oluşturun ve PageWidth ve PageHeight gibi zorunlu özelliklerini ayarlayın.
  3. CadRasterizationOptions.Layers.add yöntemi ile istenen katman adını ekleyin.
  4. ImageOptionsBase örneğini oluşturun ve VectorRasterizationOptions özelliğini bir önceki adımda oluşturulan CadRasterizationOptions örneğine ayarlayın.
  5. Dosya yolunu (veya MemoryStream nesnesini) ve bir önceki adımda oluşturulan ImageOptionsBase örneğini geçirerek Image.save yöntemini çağırın.

İşte tamamlayıcı kaynak kodu.

// The path to the resource directory.
String dataDir = Utils.getDataDir(ConvertCADLayerToRasterImageFormat.class) + "CADConversion/";
String srcFile = dataDir + "conic_pyramid.dxf";
// Load a CAD drawing in an instance of Image
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
// Set image width & height
rasterizationOptions.setPageWidth(500);
rasterizationOptions.setPageHeight(500);
List<String> stringList = new ArrayList<>(Arrays.asList("0"));
// Add the layer name to the CadRasterizationOptions's layer list
rasterizationOptions.setLayers(stringList);
// Create an instance of JpegOptions (or any ImageOptions for raster formats)
JpegOptions options = new JpegOptions();
// Set VectorRasterizationOptions property to the instance of CadRasterizationOptions
options.setVectorRasterizationOptions(rasterizationOptions);
// Export each layer to JPEG format
image.save(dataDir + "CADLayersToRasterImageFormats_out_.jpg", options);

Tüm CAD Katmanlarını Ayrı Görüntülere Dönüştürme

CadImage.Layers kullanarak bir CAD çizimindeki tüm katmanları alabilir ve her katmanı ayrı bir görüntü olarak render edebilirsiniz. Aşağıda bu konu gösterilmektedir.

String srcFile = dataDir + "conic_pyramid.dxf";
// Load a CAD drawing in an instance of CadImage
CadImage image = (CadImage) Image.load(srcFile);
// Create an instance of CadRasterizationOptions
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
// Set image width & height
rasterizationOptions.setPageWidth(500);
rasterizationOptions.setPageHeight(500);
// Get the layers in an instance of CadLayersDictionary.
// Iterate over the layers
for (String layer : image.getLayers().getLayersNames())
{
// Display layer name for tracking
System.out.println("Start with " +layer);
List<String> stringList = Arrays.asList(layer);
// Add the layer name to the CadRasterizationOptions's layer list
rasterizationOptions.setLayers(stringList);
// Create an instance of JpegOptions (or any ImageOptions for raster formats)
JpegOptions options = new JpegOptions();
// Set VectorRasterizationOptions property to the instance of CadRasterizationOptions
options.setVectorRasterizationOptions(rasterizationOptions);
// Export each layer to JPEG format
image.save(dataDir + layer + "_out_.jpg", options);
}

DWF CAD Katmanlarını Raster Görüntü Formatlarına Dönüştürme

Aspose.CAD for Java API, gerekli CAD katmanının adını belirlemek ve bunu raster görüntü formatlarına render etmek için verimli ve kullanımı kolay yollar sunmuştur. Aşağıda, bunu 5 basit adımda nasıl gerçekleştirebileceğiniz listelenmiştir.

  1. DWF CAD dosyasını Image örneğine Load fabrika yöntemi ile yükleyin.
  2. CadRasterizationOptions örneğini oluşturun ve PageWidth ve PageHeight gibi zorunlu özelliklerini ayarlayın.
  3. CadRasterizationOptions.Layers.Add yöntemi ile istenen katman adını ekleyin.
  4. ImageOptionsBase örneğini oluşturun ve VectorRasterizationOptions özelliğini bir önceki adımda oluşturulan CadRasterizationOptions örneğine ayarlayın.
  5. Dosya yolunu (veya MemoryStream nesnesini) ve bir önceki adımda oluşturulan ImageOptionsBase örneğini geçirerek Image.Save yöntemini çağırın.

İşte tamamlayıcı kaynak kodu.

String fileName = (dataDir + "site.dwf");
com.aspose.cad.Image image = com.aspose.cad.Image.load(fileName);
BmpOptions bmpOptions = new BmpOptions();
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
bmpOptions.setVectorRasterizationOptions(rasterizationOptions);
rasterizationOptions.setPageHeight(500);
rasterizationOptions.setPageWidth(500);
rasterizationOptions.setLayouts(new String[] { "Model" });
// export
String outPath = dataDir +"site.bmp";
image.save(outPath, bmpOptions);