用过autocad的基本上都知道,在autocad中插入图片主要有两种方式,光栅图像和OLE对象。
光栅图像:
通过光栅图像把图像插入到dwg中,原理是把图片的链接插入在dwg中,如果图片发生了变化,或丢失,则再次打开dwg时,只能看到一个孤零零的链接。好处是dwg文件的大小并不会发生显著变化,而且图片更新比较方便。缺点是当移动dwg时,配套的外部图片需要同步移动。
OLE对象:
当通过Ctrl+C\Ctrl+v的方式把图片粘贴到dwg中时,则创建的则为OLE对象,比如像一些logo,或者签名图片等,可以以这种方式永久嵌入在OLE中。
OLE对象的一些问题:
1、插入在dwg中的OLE图片对象的类型主要有 静态 与 已嵌入 两类。前者对应的是Picture类型,后者对应的是PBrush类型。
2、dwg中的OLE图片对象不可以进行旋转。
3、通过编程手段向Dwg中嵌入OLE图片,目前已知的经测试有效的方法是:ODA C++类库中存在OLE相关方法可以实现此功能。如果要在.NET中使用,则需要自行封装dll供.net调用。
4、在脱离autocad环境把dwg导出为pdf时,主要有以下几种方式:ODA、Aspose.cad、cadsofttool
5、如果OLE图片的类型为Picture,则这三个库都可以正常导出pdf,导出速度:ODA>aspose.cad>cadsofttool
6、如果OLE图片类型为PBrust,则只有ODA可正常导出PDF,且ODA不可以用多线程模式(链接)。Aspose.cad、cadsofttool在导出含有此类OLE图片的dwg时,会丢失此图片。
通过编程手段批量插入OLE图片到dwg中: