CAD文件解析(DWG to SVG)
之前有过一个需求,需要将CAD的DWG文件转成SVG,再对图形做处理,简单写了dwg转成svg的解析,后续补充对解析后对的svg图形处理(如:图形位置调整、图形绝对坐标计算等),处理svg文件的计算需要对SVG的相关知识作了解,比如svg代码里的一些属性:
附上w3 school svg教程地址:SVG 教程
一、依赖包引入
<dependency><groupId>com.aspose</groupId><artifactId>aspose-cad</artifactId><version>21.8</version></dependency>
注意:如果下载不了aspose-cad包,需要加上这段
<!--解决下载不了aspose-cad包的问题--><repositories><repository><id>aspose-maven-repository</id><url>https://repository.aspose.com/repo</url><snapshots><enabled>false</enabled></snapshots></repository></repositories>
二、cad文件解析到svg文件
public static void main(String[] args) {String cadFilePath = "/Users/Desktop/cad.dwg";try{File file = new File(cadFilePath);InputStream inputStream = new FileInputStream(file);String pdfFilePath = "/Users/Desktop/cad.svg";CadImage cadImage = (CadImage) CadImage.load(inputStream);SvgOptions svgOptions = new SvgOptions();CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();rasterizationOptions.setAutomaticLayoutsScaling(true);rasterizationOptions.setContentAsBitmap(true);rasterizationOptions.setLayouts(new String[]{"Model"});rasterizationOptions.setDrawType(1);// SVG 全局背景色// rasterizationOptions.setBackgroundColor(Color.getRed());// rasterizationOptions.setDrawColor(Color.fromName("Lime"));rasterizationOptions.setExportAllLayoutContent(false);svgOptions.setVectorRasterizationOptions(rasterizationOptions);// 设置一个值,该值指示是否必须将文本转换为形状svgOptions.setTextAsShapes(true);// svgOptions.setMinimumLinewidth((float) 0.3);// svgOptions.setMinimumLinewidth(0.1f);// 是否应重新调整子像素线宽 。 false 不调整. 设svgOptions.setRescaleSubpixelLinewidths(false);// svgOptions.setUseAbsoluteRescaling(true);System.out.println("开始转换为SVG");cadImage.save(pdfFilePath, svgOptions);System.out.println("转换完成");}catch (Exception e){e.printStackTrace();}}
注释了一些用不到的属性,具体属性的说明aspose官网:CadImage - Aspose.CAD for Java - API Reference
三、默认是以解析的图形尺寸进行转换,如果需要设置解析后的SVG尺寸
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();rasterizationOptions.setPageWidth(800);rasterizationOptions.setPageHeight(800);
留个问题:这段代码更新到服务器上后,每次服务器重启时,第一次解析总会失败,后续则会正常,这个问题始终没找到,望大佬指教!!!!
附上异常:com.aspose.cad.cadexceptions.ImageSaveException: Image export failed. Exception in SVG Exporter
CAD文件解析(DWG to SVG)相关推荐
- CAD文件解析后按照特定规则将图形切割
本文主要对CAD文件解析后,若一份CAD文件中整个图有多个图形需要切割拆分,根据指定规则用独特颜色(内容中没有与其相同的颜色,确保不会因为颜色影响图形内容)的框将需要切割图形单独框起来,再做切割,切割 ...
- CAD文件(dwg)的加载-ArcEngine
CAD文件有两种加载方式,一种是要素类图层的加载方式,另一种是像栅格图层一样加载. 1 要素类方式加载 IWorkspaceFactory pWorkspaceFactory = new CadWor ...
- CAD文件转换为SVG文件
引言 目前CAD技术已广泛应用于建筑设计.机械设计.城市规划.交通等领域,由其主流软件AutoCAD或在之基础上二次开发的软件生成的图纸层出不穷. SVG(Scalable Vector Graphi ...
- CAD文件转换为SVG文件的探讨
CAD文件转换为SVG文件的探讨 详细剖析了CAD的图形交换格式---DXF文件的结构,分析了SVG文件的框架元素和图形元素,建立了CAD中的对象.DXF文件中的实体和SVG中的元素三者之间的对应表, ...
- 使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示
参考文章:CadLib 3.5 documentationhttps://www.woutware.com/doc/cadlib3.5/Index.aspx 读取:定义DxfModel类型的变量mod ...
- matlab链接打开cad文件,一篇读懂向Revit导入CAD文件并链接使用那些事!
我们可以将现有CAD文件合并到Revit模型,以用作设计的起始点.使用CAD文件作为参照.二维绘图视图,或者帮助在Revit中生成三维几何图形.那么,向Revit导入CAD文件的文件时,你是否能顺利完 ...
- CAD(dxf、dwg格式)文件的读取和显示,真正实现通过代码预览CAD文件,包含解析dwg、dxf文件,可以提取标注信息,可以转换为pdf、png、tiff、gif等6种格式的文件,可以永久免费实用
真正实现通过代码预览CAD文件,包含解析dwg.dxf文件,可以提取标注信息,可以转换为pdf.png.tiff.gif等6种格式的文件,可以永久免费实用. 网上看了很多资料,不是缺这个就是少那个,反 ...
- cad dwg文件在线展示平台源代码cad格式 dwg文件解析
cad dwg文件在线展示平台源代码cad格式 dwg文件解析,在线展示平台,全套代码 支持windows,linux,mac,支持导入2004,2007,2010,2013版本dwg文件,图层控制, ...
- cad dwg文件在线展示平台源代码cad格式 dwg文件解析,在线展示平台,全套代码
cad dwg文件在线展示平台源代码cad格式 dwg文件解析,在线展示平台,全套代码 支持windows,linux,mac,支持导入2004,2007,2010,2013版本dwg文件,图层控制, ...
最新文章
- 看看XStream注解
- 10大排序算法JAVA源码实现
- 棋盘游戏的人工智能(二)------剪支
- 【入门基础】写给小白看的入门级 Java 基本语法
- NOI 练手题 图像旋转翻转变换
- C#深入浅出 关键字(一)
- java中eq、ne、gt、lt、ge、le分别代表含义
- php检查gd库是否开启,检查服务器是否开启GD库
- python调用百度通用翻译API进行翻译
- 服务器防火墙有哪些功能和作用?
- I. 知识图谱 应用案例
- URAL 1903 Unidentified Ships
- ERP系统到底能做什么?
- Dota2预测英雄死亡
- 北斗二代接收模块预研报告
- Asp.net Core 入门实战
- Logicalis宣布首席执行官过渡计划
- 手持终端无法启动有以下原因
- 大数据时代,人类需要“遗忘权”
- 毛哥的快乐生活(9) 美女约我吃饭好开心