基本有2种思路:

一种是转换后显示,比如vectordraw,将dwg转换成vds格式,再在web中显示,支持图层啊之类。还有CADViewer JS是转成SVG,pdf等格式,然后用web浏览……其实转换格式也是一个办法,用golang在后端,当有请求的时候,调用转换程序AutoXChange进行dwg到pdf的转换。如下列代码,缺点有3个,一个是万一后端转换不成功,等待很久,还要退出这个进程,另一个缺点是,autoxchange虽然支持字体路径,但是似乎不起作用,还是无法显示中文,最后一个当然是需要购买啦,否则有水印。

package mainimport ("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=5cmd := 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,autovue没试验出来。dwgviewx只支持IE浏览器,有**版,去除了水印,但是客户端用ie访问的时候,需要下载activity控件,并安装一下,它只支持中文的宋体啊,黑体啊,之类,不支持那些单线字体。

mxdraw,autovue,dwgviewx控件的clsid有个共同的特点,见下图:在运行regedit注册表中搜ctrl.1,f3键搜下一个。

dwgviewx的效果

不支持单线中文字体

 <!-- <object id="1" visible="true" classid="clsid:B6FCC215-D303-11D1-BC6C-0000C078797F" type="application/x-oleobject" width="800" height="600"> --><!-- <param name="SRC" value="//127.0.0.1/static/img/test.dwg"></object> -->
<HTML><HEAD>
<title>DWGViewX Demo-DWG Viewer ActiveX Control</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="help/ie4.css"/></HEAD>
<script>
function ZoomIn()
{DWGViewX.ZoomIn();
}
function ZoomOut()
{DWGViewX.ZoomOut();
}
function ZoomAll()
{DWGViewX.ZoomAll();
}
function HideToolbar()
{DWGViewX.ShowToobar = !DWGViewX.ShowToobar
}function Pan()
{DWGViewX.PanByMouse();
}function ZoomWindow()
{DWGViewX.ZoomRectByMouse();
}
function HideLayoutBar()
{DWGViewX.ShowLayoutBar = !DWGViewX.ShowLayoutBar;
}
function Background()
{DWGViewX.Background = DWGViewX.Background ==0? 7:0
}
function Print()
{DWGViewX.Print();
}</script>
<BODY ><a href="javascript:ZoomIn()">Zoom In</a> | <a href="javascript:ZoomOut()">Zoom Out</a> | <a href="javascript:ZoomAll()">Zoom All</a>
| <a href="javascript:ZoomWindow()">Zoom Window</a>| <a href="javascript:Pan()">Pan</a>| <a href="javascript:HideToolbar()">Show/Hide Toolbar</a>                             | <a href="javascript:HideLayoutBar()">Show/Hide LayoutBar</a>                            |<a href="javascript:Print()">Print</a>                           |<a href="javascript:Background()">Background</a>                           <table border="0" width="100%"><tr><td width="50%">
<OBJECT id=DWGViewX classid="clsid:AC53EFE4-94A7-47E6-BBFC-E9B9CF322299" codebase="http://www.autodwg.com/dwg-viewer/dwgviewx.cab" width="700" height="520"><param name="_Version" value="65536"><param name="_ExtentX" value="18521"><param name="_ExtentY" value="13758"><param name="_StockProps" value="0"><param name="DrawingFile" value="http://127.0.0.1/static/img/05.dwg"><param name="ShowToobar" value="-1"><param name="ShowLayoutBar" value="1">
</OBJECT></td><td width="50%" valign="top"><table border="0" width="100%"><tr><td width="100%" style="border-bottom:1px dashed">  <img border="0" src="Help/tips.gif" width="12" height="11"> If the control can't display correctly,   please download and install the control first.  <p align="right"><a href="http://www.autodwg.com/download/dwgviewx.exe">Download DWGViewX</a></td>  </tr><tr><td width="100%"></td></tr><tr><td width="100%"><p align="right"><a href="DWGViewX.html">Help for Developers..</a>.</td></tr><tr><td width="100%"></td></tr></table></td></tr>
</table></BODY>
</HTML>

mxdraw:很好地支持中文单线字体,虽然代码里有支持chrome的写法,但是chrome还是打不开。有水印,对于浏览图纸不影响。推荐使用。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0042)http://www.mxcad.net:2080/ie/database.html -->
<!DOCTYPE html PUBLIC "" "">
<HTML lang="en" style="height: 100%;">
<HEAD><META content="IE=10.000" http-equiv="X-UA-Compatible"><META charset="UTF-8"><META name="GENERATOR" content="MSHTML 10.00.9200.17457"><META name="ProgId" content="FrontPage.Editor.Document"><TITLE>MxDraw控件</TITLE><!--引入打碎函数--><SCRIPT language="javascript" src="/static/js/mxdraw/ExplodeFun.js" type="text/javascript"></SCRIPT><!--移动夹点--><SCRIPT language="javascript" src="/static/js/mxdraw/MoveGripPointsFun.js" type="text/javascript"></SCRIPT><!--返回夹点--><SCRIPT language="javascript" src="/static/js/mxdraw/GetGripPointsFun.js" type="text/javascript"></SCRIPT><!--动态施放绘制事件回调函数指针--><SCRIPT language="javascript" src="/static/js/mxdraw/DoDynWordDrawFun.js" type="text/javascript"></SCRIPT><!--引入参数绘制的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/Draw.js" type="text/javascript"></SCRIPT><!--引入交互绘制的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxDyDraw.js" type="text/javascript"></SCRIPT><!--引入光栅图处理的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxIamges.js" type="text/javascript"></SCRIPT><!--引入界面控制的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxInterface.js" type="text/javascript"></SCRIPT><!--引入控制事件的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxEvents.js" type="text/javascript"></SCRIPT><!--引入打印控制的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxPrint.js" type="text/javascript"></SCRIPT><!--引入选择集的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxSelect.js" type="text/javascript"></SCRIPT><!--引入自定义命令的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxUserCustomCommand.js" type="text/javascript"></SCRIPT><!--引入扩展数据的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxData.js" type="text/javascript"></SCRIPT><!--引入图面搜索的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxMap.js" type="text/javascript"></SCRIPT><!--引入图形数据库的相关函数--><SCRIPT language="javascript" src="/static/js/mxdraw/MxDataBase.js" type="text/javascript"></SCRIPT><SCRIPT language="javascript" src="/static/js/mxdraw/mxcustom.js" type="text/javascript"></SCRIPT><!--引入梦想控件--><SCRIPT language="javascript" src="/static/js/mxdraw/mxocx.js" type="text/javascript"></SCRIPT><SCRIPT src="/static/js/mxdraw/jquery.min.js"></SCRIPT><SCRIPT language="JavaScript">document.oncontextmenu = new Function('event.returnValue=false;'); //禁用右键</SCRIPT>
</HEAD><BODY><DIV style="height: 900px;"><!--  width: 150%; float: right; --><SCRIPT type="text/javascript">LoadMxDrawX("http://127.0.0.1/static/img/05.dwg", "", "");</SCRIPT>
</DIV></BODY>
</HTML>

web html页面显示autocad等dwg格式图形文件方法相关推荐

  1. cad图形展示 html5,web html页面显示autocad等dwg格式图形文件方法

    基本有2种思路: 一种是转换后显示,比如vectordraw,将dwg转换成vds格式,再在web中显示,支持图层啊之类.还有CADViewer JS是转成SVG,pdf等格式,然后用web浏览--其 ...

  2. Solidworks输出Autocad的DWG格式乱码怎么办

    Solidworks输出DWG会有很多问题,如果没必要就别这么做,比如你只是想要打印图纸,Solidworks也可以直接打印,而且很方便,不需要转成DWG再打印,如果对方确实需要DWG格式的图纸,你只 ...

  3. eclipse web项目页面显示404_404 Not Found错误页面是什么?

    404 Not Found错误页面是一个非常普遍的现象,该页面的目的是告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开,虽然404错误页面在所难免,但网页设计师 ...

  4. ASP.NET使用Coolite.Ext.Web.dll,显示ext未定义的解决方法

    开发系统时用到Coolite.Ext.Web.dll,起初使用Windows Server 2003进行的开发,测试都没有问题.后来装了Windows Server 2008,再进行开发此时是,总显示 ...

  5. html页面显示dcm文件,dcm格式的影像 怎么把avi转换为dcm格式?

    医学影像文件dcm格式用什么软件打开? 在哪里可以下正在实习中,想有空用电脑边看边学,在网上查的CT MRI都是用的dcm格式,可我也是找了好久才找到的....网页链接 NBIA国际生物图像数据库. ...

  6. 打开QQ邮箱等页面显示一片空白的解决方法

    解决办法: 开始-运行,输入 regsvr32 jscript.dll 即可解决问题. jscript.dll是什么? DLL 文件: jscript 或者 jscript.dll DLL 名称: M ...

  7. php dwg格式,无需AutoCAD,用C#生成DWG文件

    是一个类库:Teigha.NET for .DWG 利用它就可以在无需安装AutoCAD软件的情况下,生成.读取DWG文件,适合那些导入导出的场合. Teigha曾用名OpenDWG .DWGdire ...

  8. 使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示

    参考文章:CadLib 3.5 documentationhttps://www.woutware.com/doc/cadlib3.5/Index.aspx 读取:定义DxfModel类型的变量mod ...

  9. XML与web开发-01- 在页面显示和 XML DOM 解析

    前言: 关于 xml 特点和基础知识,可以菜鸟教程进行学习:http://www.runoob.com/xml/xml-tutorial.html 本系列笔记,主要介绍 xml 在 web 开发时需要 ...

最新文章

  1. [错误收录] the pyflakes.vim plugin requires Vim to be compiled with +python
  2. 新建了一个英文Blog
  3. Tomcat安装及Eclipse配置教程
  4. 使用Java流和In-JVM-Memory的超低延迟查询
  5. 产品经理思维模型:传播三大原理
  6. python判断字符_Python判断字符串是否为字母或者数字(浮点数)
  7. python 二分查找_LeetCode基础算法题第120篇:二分查找算法
  8. Netty+SpringBoot+FastDFS+Html5实现聊天App详解(四)
  9. ElasticSearch学习(二):ElasticSearch下载与运行
  10. android自动挂掉电话,Android-实现电话自动接听/电话自动挂断功能
  11. ExtJs教程----如何改变各个区域的背景色
  12. PDF文档转换平台的核心技术-开源解决方案
  13. influxdb数据过期_influxdb 清空数据库
  14. 《数字信号处理》正弦信号的波形及频谱的求解
  15. 透彻理解神经网络剪枝算法
  16. 用JQuery或JS改变div的id的五种方法
  17. 电脑必备:通用输入法状态提示,再也不怕按错,再也不用看右下角
  18. 《2023游戏行业热点趋势报告》|Party Game游戏成为新趋势,备受消费者瞩目
  19. 什么是开源网络情报(OSINT)及其使用方式
  20. 银河麒麟V10-桌面版 用户登录密码遗忘解决过程

热门文章

  1. Python爬虫之美丽的汤——BeautifulSoup
  2. NOKIA 中文论坛
  3. 多旋翼飞行器技术_YY硕
  4. UG NX二次开发(C#)-建模-删除面
  5. 团队死气沉沉?10种玩法激活你的项目团队拥有超强凝聚力
  6. Java实现腾讯云直播生成推流地址和播放地址
  7. 快速画圆切线lisp_【求助】关于AutoLISP command “line”命令问题(画圆内接正五边形) 不要推荐我使用“polygon”命令...
  8. 笔记本独显和集显linux,CentOS 7(1708) Intel+Nvidia双显卡笔记本安装Nvidia驱动并用Bumblebee控制独显...
  9. 构建Canvas矢量图形渲染器(四)—— 各种矢量元素(线、面、五角星)
  10. English trip V1 - B 19. Life of Confucius 孔子的生活 Teacher:Patrick Key: