صادرات نقشه و طرحهای DWG/DXF به اندازه مشخص شده
صادرات مدل و همه طرحها به اندازه PDF A4
API Aspose.CAD به شما امکان میدهد که همه صفحات فایل DWG/DXF را به اندازه فیزیکی PDF مشخص شده صادرات کنید. کد نمونه زیر اندازه شی CadRasterizationOptions را تنظیم میکند تا به اندازه PDF مورد نظر برسد. اندازه برگه کاغذ A4 برابر با 210x297 میلیمتر یا 8.27x11.69 اینچ است و این مقادیر در کد استفاده میشوند.
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); |
صادرات طرحهای CAD به PDF با اندازههای مختلف
گاهی اوقات لازم است که طرح را به اندازه فیزیکی خود صادرات کنید. مثال زیر صادرات نقشه را به PDF چند صفحهای نشان میدهد که در آن هر صفحه با محتوای طرح دارای اندازه فیزیکی PDF خود است. این مثال از خصوصیت 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; | |
} |