Mengekspor gambar dan layout DWG/DXF ke ukuran tertentu

Ekspor Model dan semua layout ke ukuran PDF A4

API Aspose.CAD memungkinkan Anda untuk mengekspor semua lembar dari file DWG/DXF ke ukuran PDF fisik yang ditentukan. Kode contoh berikut mengatur ukuran objek CadRasterizationOptions untuk mencapai ukuran PDF yang diinginkan. Ukuran lembar kertas A4 adalah 210x297 milimeter atau 8.27x11.69 inci dan nilai-nilai ini digunakan dalam kode.

CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
boolean isMetric = false;
double coefficient = 1.0;
switch (cadImage.getUnitType())
{
// it is possible to extend this with more types that may appear in drawings
case UnitType.Meter:
isMetric = true;
coefficient = 1.0;
break;
case UnitType.Millimeter:
isMetric = true;
coefficient = 0.001;
break;
case UnitType.Inch:
coefficient = 1.0;
break;
}
SizeF size;
if (isMetric)
{
double metersCoeff = 1 / 1000.0;
double scaleFactor = metersCoeff / coefficient;
size = new SizeF((float)(210 * scaleFactor), (float)(297 * scaleFactor));
cadRasterizationOptions.setUnitType(UnitType.Millimeter);
}
else
{
size = new SizeF((float)(8.3f / coefficient), (float)(11.7f / coefficient));
cadRasterizationOptions.setUnitType(UnitType.Inch);
}
cadRasterizationOptions.setPageSize(size);

Ekspor Layout CAD ke PDF dalam ukuran yang berbeda

Terkadang diperlukan untuk mengekspor layout ke ukuran fisiknya. Contoh di bawah ini menunjukkan ekspor gambar ke PDF multipage di mana setiap halaman dengan konten layout memiliki ukuran PDF fisiknya sendiri. Contoh ini menggunakan properti getLayoutPageSizes .

CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
for (String layoutName : cadImage.getLayouts().getKeysTyped())
{
CadLayout layout = cadImage.getLayouts().get(layoutName);
if (layout.getLayoutName() == "Model") continue;
System.out.println(layout.getLayoutName());
SizeF pageSize = GetPageSizeFromLayout(layout);
cadRasterizationOptions.getLayoutPageSizes().put(layout.getLayoutName(), pageSize);
}
private static SizeF GetPageSizeFromLayout(CadLayout layout)
{
boolean isLandscape = IsLayoutLandscape(layout);
float pageWidth;
float pageHeight;
if (layout.getPlotPaperUnits() == CadPlotPaperUnits.PlotInInches)
{
pageWidth = (float)MillimetersToInches(layout.getPlotPaperSize().getWidth());
pageHeight = (float)MillimetersToInches(layout.getPlotPaperSize().getHeight());
}
else
{
pageWidth = (float)layout.getPlotPaperSize().getWidth();
pageHeight = (float)layout.getPlotPaperSize().getHeight();
}
if (isLandscape)
{
return new SizeF(pageHeight, pageWidth);
}
else
{
return new SizeF(pageWidth, pageHeight);
}
}
private static boolean IsLayoutLandscape(CadLayout layout)
{
short plotRotation = layout.getPlotRotation();
return plotRotation == CadPlotRotation.Clockwise90Degrees || plotRotation == CadPlotRotation.Counterclockwise90Degrees;
}
private static double MillimetersToInches(double millimeters)
{
double MillimetersToInchesFactor = 0.0393701;
return millimeters * MillimetersToInchesFactor;
}