2中思路,一种是转换后显示,比如vectordraw,将dwg转换成vds格式,再在web中显示,支持图层啊之类。还有CADViewer JS是转成SVG,pdf等格式,然后用web浏览……其实转换格式也是一个办法,用golang在后端,当有请求的时候,调用转换程序AutoXChange进行dwg到pdf的转换。如下列代码,缺点有3个,一个是万一后端转换不成功,等待很久,还要退出这个进程,另一个缺点是,autoxchange虽然支持字体路径,但是似乎不起作用,还是无法显示中文,最后一个当然是需要购买啦,否则有水印。package main import ( "fmt" "os/exec" "time" ) func main() { iname := "Office.dwg" oname := "office.svg" //fontpath := "\\Fonts" "-FP", fontpath, arg := []string{"-i", iname, "-o", oname, "-DF", "arial", "-f", "svg", "-text", "-v=5"} //ax2017 -i office.dwg -o office.pdf -f pdf -text -v=5 cmd := exec.Command("ax2019.exe", arg...) //记录开始时间 start := time.Now() err := cmd.Start() if err != nil { //fmt.Println(err) fmt.Printf("err: %v", err) } err = cmd.Wait() //Wait等待command退出,他必须和Start一起使用,如果命令能够顺利执行完并顺利退出则返回nil,否则的话便会返回error,其中Wait会是放掉所有与cmd命令相关的资源 //buf, err := cmd.Output() //运行命令并返回其标准输出 if err != nil { fmt.Printf("err: %v", err) } //记录结束时间差 elapsed := time.Since(start) fmt.Printf("elapsed: %s\n", elapsed) }
另一个思路是用控件显示,比如DWGViewX,autovue,mxdraw,后2者没试验出来。dwgviewx只支持IE浏览器,有**版,去除了水印,但是客户端用ie访问的时候,需要下载activity控件,并安装一下,它只支持中文的宋体啊,黑体啊,之类,不支持那些单线字体。
|