日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

CAD文件解析(DWG to SVG)

發布時間:2023/12/1 综合教程 46 生活家
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。