导出 CAD
导出 3D AutoCAD 图像到 PDF
Aspose.CAD 允许您将 3D AutoCAD 图像导出为 PDF。请在 ImageOptions.CadRasterizationOptions 中使用 TypeOfEntities.Entities3D 来指定您想要导出 3D 实体。 下面的示例代码加载一个 AutoCAD 3D 文件并将其导出为 PDF。一旦文件被转换为 PDF,您可以使用您喜欢的 PDF 查看器打开它。
下面的代码示例显示了如何将 3D AutoCAD 图像导出为 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(Export3DAutoCADImagesToPDF.class) + "ExportingCAD/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
Image cadImage = Image.load(srcFile); | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(500); | |
rasterizationOptions.setPageHeight(500); | |
rasterizationOptions.setTypeOfEntities(TypeOfEntities.Entities3D); | |
rasterizationOptions.setLayouts(new String[] {"Model"}); | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
cadImage.save(dataDir + "Export3DImagestoPDF_out_.pdf", pdfOptions); |
导出 CAD 布局到 PDF
Aspose.CAD for Java 允许您将 CAD 布局导出为 PDF。 CadImage 类的 save 方法可用于将布局导出为 PDF 格式。 下面的示例代码加载一个 CAD 文件并将其 “Model” 布局导出为 PDF。一旦文件被转换为 PDF,您可以使用您喜欢的 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(ExportCADLayoutsToPDF.class) + "ExportingCAD/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
// Create an instance of CadImage class and load the file. | |
Image cadImage = Image.load(srcFile); | |
// Create an instance of CadRasterizationOptions class | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(1600); | |
rasterizationOptions.setPageHeight(1600); | |
// Set the Entities type property to Entities3D. | |
rasterizationOptions.setTypeOfEntities(TypeOfEntities.Entities3D); | |
rasterizationOptions.setScaleMethod(ScaleType.GrowToFit); | |
rasterizationOptions.setContentAsBitmap(true); | |
// Set Layouts | |
rasterizationOptions.setLayouts(new String[] {"Model"}); | |
// Create an instance of PDF options class | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
// Set Graphics options | |
rasterizationOptions.getGraphicsOptions().setSmoothingMode(SmoothingMode.HighQuality); | |
rasterizationOptions.getGraphicsOptions().setTextRenderingHint(TextRenderingHint.AntiAliasGridFit); | |
rasterizationOptions.getGraphicsOptions().setInterpolationMode(InterpolationMode.HighQualityBicubic); | |
// Export to PDF by calling the Save method | |
cadImage.save(dataDir + "CADLayoutsToPDF_out_.pdf", pdfOptions); |
在导出中支持设置笔
Aspose.CAD for Java 允许您在 CAD 的导出属性中添加笔选项。使用 rasterizationOptions,我们可以设置笔属性选项。
下面是实现指定需求的示例代码。
String dataDir = Utils.getDataDir(PenSupportInExport.class) + "CADConversion/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage = ((CadImage)(Image.load(srcFile))); | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(cadImage.getWidth() * 100); | |
rasterizationOptions.setPageHeight(cadImage.getHeight() * 100); | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Here user can change default start cap and end cap of pens when exporting CadImage object to | |
// image. It can be using for all image formats: pdf, png, bmp, gif, jpeg2000, jpeg, psd, tiff, wmf. | |
// If user doesn't use PenOptions, system will use its own default pens (different in defferent places). | |
PenOptions penOts = new PenOptions(); | |
penOts.setStartCap(LineCap.Flat); | |
penOts.setEndCap(LineCap.Flat); | |
//rasterizationOptions.setPenOptions(penOts); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
cadImage.save((dataDir+"9LHATT-A56_generated.pdf"),pdfOptions); | |
分解 CAD 插入对象
Aspose.CAD for Java 允许您分解 CAD 对象并处理插入内部的单独实体。下面是实现指定需求的示例代码。
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(); | |
} |
支持 ACAD 代理实体
Aspose.CAD for Java 允许您读取和导出 ACAD_PROXY_ENTITY 实体。下面是实现指定需求的示例代码。
String dataDir = Utils.getDataDir(PenSupportInExport.class) + "CADConversion/"; | |
String srcFile = dataDir + "conic_pyramid.dxf"; | |
CadImage cadImage = ((CadImage)(Image.load(srcFile))); | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.setPageWidth(cadImage.getWidth() * 100); | |
rasterizationOptions.setPageHeight(cadImage.getHeight() * 100); | |
PdfOptions pdfOptions = new PdfOptions(); | |
// Here user can change default start cap and end cap of pens when exporting CadImage object to | |
// image. It can be using for all image formats: pdf, png, bmp, gif, jpeg2000, jpeg, psd, tiff, wmf. | |
// If user doesn't use PenOptions, system will use its own default pens (different in defferent places). | |
PenOptions penOts = new PenOptions(); | |
penOts.setStartCap(LineCap.Flat); | |
penOts.setEndCap(LineCap.Flat); | |
//rasterizationOptions.setPenOptions(penOts); | |
pdfOptions.setVectorRasterizationOptions(rasterizationOptions); | |
cadImage.save((dataDir+"9LHATT-A56_generated.pdf"),pdfOptions); | |
集成 IGES 格式
Aspose.CAD for Java 允许您读取和导出 IGES 格式。下面是实现指定需求的示例代码。
String dataDir = Utils.getDataDir(ExportIGEStoPDF.class) + "IGESDrawings/"; | |
String PLTPathToFile = dataDir + "figa2.igs"; | |
Image image = Image.load(PLTPathToFile); | |
//Setting PDF Options | |
PdfOptions pdfOptions = new PdfOptions(); | |
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions(); | |
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor); | |
cadRasterizationOptions.setPageHeight(1000); | |
cadRasterizationOptions.setPageWidth(1000); | |
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions); | |
//Saving to PDF | |
image.save(dataDir+"figa2.pdf", pdfOptions); | |
支持网格模型
Aspose.CAD for Java 允许您实现并计算使用多边形表示的网格模型,如边缘、顶点和面。下面是实现指定需求的示例代码。
String srcFile = dataDir + "meshes.dwg"; | |
// com.aspose.cad. objImage = com.aspose.cad.CImage.load(srcFile); | |
CadImage cadImage =(CadImage) com.aspose.cad.Image.load(srcFile); | |
try | |
{ | |
for (CadBaseEntity entity : cadImage.getEntities()) | |
{ | |
if (entity instanceof CadPolyFaceMesh) | |
{ | |
CadPolyFaceMesh asFaceMesh= (CadPolyFaceMesh)entity; | |
if (asFaceMesh != null) | |
{ | |
System.out.println("Vetexes count: " + asFaceMesh.getMeshMVertexCount()); | |
} | |
} | |
else if (entity instanceof CadPolygonMesh) | |
{ | |
CadPolygonMesh asPolygonMesh= (CadPolygonMesh)entity; | |
if (asPolygonMesh != null) | |
{ | |
System.out.println("Vetexes count: " + asPolygonMesh.getMeshMVertexCount()); | |
} | |
} | |
} | |
} | |
finally | |
{ | |
cadImage.dispose(); | |
} |
设置自定义视角
Aspose.CAD for Java 允许您为模型布局设置自定义视角。使用 vectorRasterizationOptions,您可以设置自定义视角。下面的代码示例显示了如何设置自定义视角。
String dataDir = Utils.getDataDir(FreePointOfView.class) + "CADConversion/"; | |
// Path to source file | |
String sourceFilePath = dataDir+"conic_pyramid.dxf"; | |
// Load a CAD drawing in an instance of Image | |
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(sourceFilePath); | |
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions(); | |
cadRasterizationOptions.setPageHeight(1500); | |
cadRasterizationOptions.setPageWidth(1500); | |
// Create an instance of JpegOptions class | |
com.aspose.cad.imageoptions.JpegOptions options = new com.aspose.cad.imageoptions.JpegOptions(); | |
options.setVectorRasterizationOptions(cadRasterizationOptions); | |
float xAngle = 10; //Angle of rotation along the X axis | |
float yAngle = 30; //Angle of rotation along the Y axis | |
float zAngle = 40; //Angle of rotation along the Z axis | |
ObserverPoint obvPoint = new ObserverPoint(xAngle,yAngle,zAngle); | |
cadRasterizationOptions.setObserverPoint(obvPoint); | |
options.setVectorRasterizationOptions(cadRasterizationOptions); | |
//Saving to Image | |
objImage.save(dataDir+"FreePointOfView_out.jpeg", options); |