最近研究了一下java绘制cad, 推荐大家用一gdal 来实现。绘制出了点,线,面,块,和标签等数据,下面是我这边绘制的效果图!后面有时间整理一下代码贴出来供大家参考
gdal javaAPI地址:/java/overview-summary.html
gdal官方地址:/drivers/vector/dxf.htmlliunx环境gdal编译
连接地址
项目引入依赖
> <dependency>> <groupId>org.gdal</groupId>> <artifactId>gdal</artifactId>> <version>3.2.0</version>> <scope>system</scope>> <systemPath>${project.basedir}/lib/linux/gdal.jar</systemPath> > </dependency>
简单示例代码
public static void main(String[] args) {String out="d://1.dxf";// 注册驱动ogr.RegisterAll();// 支持中文路径gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");// 属性表字段支持中文gdal.SetConfigOption("SHAPE_ENCODING","CP936");//获取dxf驱动Driver driver = ogr.GetDriverByName("DXF");if(null == driver){throw new NullPointerException("获取DXF驱动失败!");}DataSource dataSource = driver.CreateDataSource(out);if(null == dataSource){throw new NullPointerException("DataSource创建失败!");}Layer layer = dataSource.CreateLayer("layer");if(null == layer){throw new NullPointerException("Layer创建失败!");}//图层功定义FeatureDefn featureDefn = layer.GetLayerDefn();Feature feature = new Feature(featureDefn);feature.SetField("layer","test");feature.SetStyleString("PEN(c:#3333FF,w:55px)");Geometry geometry = new Geometry(2);geometry.AddPoint(0.0,0.0);geometry.AddPoint(1.0,0.0);geometry.AddPoint(1.0,1.0);geometry.AddPoint(0.0,1.0);geometry.AddPoint(0.0,0.0);geometry.CloseRings();feature.SetGeometry(geometry);layer.CreateFeature(feature);dataSource.delete();}