cad图形展⽰html5,webhtml页⾯显⽰autocad等dwg格式图形
⽂件⽅法
基本有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("", )
//记录开始时间
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,autovue没试验出来。dwgviewx只⽀持IE浏览器,有**版,去除了⽔印,但是客户端⽤ie访问的时候,需要下载activity控件,并安装⼀下,它只⽀持中⽂的宋体啊,⿊体啊,之类,不⽀持那些单线字体。
mxdraw,autovue,dwgviewx控件的clsid有个共同的特点,见下图:在运⾏regedit注册表中搜ctrl.1,f3键搜下⼀个。
dwgviewx的效果
不⽀持单线中⽂字体
DWGViewX Demo-DWG Viewer ActiveX Control
Zoom In | Zoom Out | Zoom All
svg图形| Zoom Window| Pan| Show/Hide Toolbar
| Show/Hide LayoutBar
|Print
|Background
If the control can't display correctly,
please download and install the control first.
mxdraw:很好地⽀持中⽂单线字体,虽然代码⾥有⽀持chrome的写法,但是chrome还是打不开。有⽔印,对于浏览图纸不影响。推荐使⽤。
MxDraw控件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论