之前有过一个需求,需要将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)相关推荐

  1. CAD文件解析后按照特定规则将图形切割

    本文主要对CAD文件解析后,若一份CAD文件中整个图有多个图形需要切割拆分,根据指定规则用独特颜色(内容中没有与其相同的颜色,确保不会因为颜色影响图形内容)的框将需要切割图形单独框起来,再做切割,切割 ...

  2. CAD文件(dwg)的加载-ArcEngine

    CAD文件有两种加载方式,一种是要素类图层的加载方式,另一种是像栅格图层一样加载. 1 要素类方式加载 IWorkspaceFactory pWorkspaceFactory = new CadWor ...

  3. CAD文件转换为SVG文件

    引言 目前CAD技术已广泛应用于建筑设计.机械设计.城市规划.交通等领域,由其主流软件AutoCAD或在之基础上二次开发的软件生成的图纸层出不穷. SVG(Scalable Vector Graphi ...

  4. CAD文件转换为SVG文件的探讨

    CAD文件转换为SVG文件的探讨 详细剖析了CAD的图形交换格式---DXF文件的结构,分析了SVG文件的框架元素和图形元素,建立了CAD中的对象.DXF文件中的实体和SVG中的元素三者之间的对应表, ...

  5. 使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示

    参考文章:CadLib 3.5 documentationhttps://www.woutware.com/doc/cadlib3.5/Index.aspx 读取:定义DxfModel类型的变量mod ...

  6. matlab链接打开cad文件,一篇读懂向Revit导入CAD文件并链接使用那些事!

    我们可以将现有CAD文件合并到Revit模型,以用作设计的起始点.使用CAD文件作为参照.二维绘图视图,或者帮助在Revit中生成三维几何图形.那么,向Revit导入CAD文件的文件时,你是否能顺利完 ...

  7. CAD(dxf、dwg格式)文件的读取和显示,真正实现通过代码预览CAD文件,包含解析dwg、dxf文件,可以提取标注信息,可以转换为pdf、png、tiff、gif等6种格式的文件,可以永久免费实用

    真正实现通过代码预览CAD文件,包含解析dwg.dxf文件,可以提取标注信息,可以转换为pdf.png.tiff.gif等6种格式的文件,可以永久免费实用. 网上看了很多资料,不是缺这个就是少那个,反 ...

  8. cad dwg文件在线展示平台源代码cad格式 dwg文件解析

    cad dwg文件在线展示平台源代码cad格式 dwg文件解析,在线展示平台,全套代码 支持windows,linux,mac,支持导入2004,2007,2010,2013版本dwg文件,图层控制, ...

  9. cad dwg文件在线展示平台源代码cad格式 dwg文件解析,在线展示平台,全套代码

    cad dwg文件在线展示平台源代码cad格式 dwg文件解析,在线展示平台,全套代码 支持windows,linux,mac,支持导入2004,2007,2010,2013版本dwg文件,图层控制, ...

最新文章

  1. 看看XStream注解
  2. 10大排序算法JAVA源码实现
  3. 棋盘游戏的人工智能(二)------剪支
  4. 【入门基础】写给小白看的入门级 Java 基本语法
  5. NOI 练手题 图像旋转翻转变换
  6. C#深入浅出 关键字(一)
  7. java中eq、ne、gt、lt、ge、le分别代表含义
  8. php检查gd库是否开启,检查服务器是否开启GD库
  9. python调用百度通用翻译API进行翻译
  10. 服务器防火墙有哪些功能和作用?
  11. I. 知识图谱 应用案例
  12. URAL 1903 Unidentified Ships
  13. ERP系统到底能做什么?
  14. Dota2预测英雄死亡
  15. 北斗二代接收模块预研报告
  16. Asp.net Core 入门实战
  17. Logicalis宣布首席执行官过渡计划
  18. 手持终端无法启动有以下原因
  19. 大数据时代,人类需要“遗忘权”
  20. 毛哥的快乐生活(9) 美女约我吃饭好开心

热门文章

  1. dsx-600ch怎么操作测试光纤损耗
  2. CCS8.0 安装包详细安装指南
  3. FLstudio使用指南(一)——麦克风录音
  4. 电算化会计应掌握的计算机知识,实现会计电算化后应该设置哪些会计岗位 - TABUZHE...
  5. 以太坊私链搭建(二)——genesis.json字段解读
  6. 杨致远时代终结:雅虎应知天命?
  7. MplayerX – 强力媒体播放
  8. yolov5部署在瑞星微1126开发板(末尾彩蛋)
  9. 如何调节笔记本电脑的屏幕亮度?尝试使用这几种方法,可轻松搞定
  10. 基于51单片机实现闹钟功能