1.设置仓库可以在setting.xml中设置(也可以在pom中设置,设置项即可)
<mirror> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>/repo/</url></mirror>
2.pom
<!-- Aspose CAD标准dwg文件转svg或png --><dependency><groupId>com.aspose</groupId><artifactId>aspose-cad</artifactId><version>20.1</version></dependency><dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId><version>20.1</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-all</artifactId><version>1.12</version><type>pom</type></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><repositories><!-- Aspose maven仓库 --><repository><id>AsposeJavaAPI</id><name>Aspose Java API</name><url>/repo/</url></repository></repositories>
3.装换工具类
CADUtils.java
package com.mon.cad.utils;import com.aspose.cad.Image;import com.aspose.cad.fileformats.cad.CadDrawTypeMode;import com.aspose.cad.imageoptions.CadRasterizationOptions;import com.aspose.cad.imageoptions.PngOptions;import com.aspose.cad.imageoptions.SvgOptions;import com.aspose.cad.imageoptions.UnitType;/*** @description: cad转换工具类* @author: Wzq* @create: -06-18 15:18*/public class CADUtils {/*** dwg转换成png* @param sourcePath* @param targetPath*/public static void dwgToPng(String sourcePath,String targetPath){//String sourcePath = "D:\\IDEA\\cad\\17.dwg";//String targetPath = "D:\\IDEA\\cad\\17.png";PngOptions pngOptions = new PngOptions();// 设置png的压缩等级 0 最低 9 最高pngOptions.setCompressionLevel(0);Image image = Image.load(sourcePath);// 原图尺寸类型int unitType = image.getUnitType();int width = image.getWidth();int height = image.getHeight();// 100万像素等比倍数,比较粗,就这样吧int zoom = 1008000 / width / height;CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();cadRasterizationOptions.setPageHeight(width * zoom);cadRasterizationOptions.setPageWidth(height * zoom);cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);// 这个无尺寸类型就当是像素吧cadRasterizationOptions.setUnitType(UnitType.Unitless);pngOptions.setVectorRasterizationOptions(cadRasterizationOptions);image.save(targetPath, pngOptions);}/*** dwg转换成Svg* @param sourcePath* @param targetPath*/public static void dwgToSvg(String sourcePath,String targetPath){SvgOptions options = new SvgOptions();Image image = Image.load(sourcePath);int width = image.getWidth();int height = image.getHeight();//100万像素等比倍数int zoom = 1008000 / width / height;CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();cadRasterizationOptions.setPageHeight(height * zoom);cadRasterizationOptions.setPageWidth(width * zoom);cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);options.setVectorRasterizationOptions(cadRasterizationOptions);//options.setColorType(SvgColorMode.Grayscale);//options.setTextAsShapes(true);image.save(targetPath,options);}public static void main(String[] args) {String sourcePath = "E:\\区域位置图.dwg";// String targetPath = "E:\\区域位置图.png";// CADUtils.dwgToPng(sourcePath,targetPath);String svg = "E:\\区域位置图.svg";CADUtils.dwgToSvg(sourcePath,svg);}}