c#讀取dwg檔案方法(一)直接讀取檔案結構
structc#預覽dwg檔案方法(二)dwgthumbnail 控制項bitmapfileheader
public
static system.drawing.image getdwgimage(string
filename)
filestream dwgf=null; //
檔案流int possentinel; //
檔案描述塊的位置
binaryreader br=null; //
讀取二進位制檔案
int typepreview; //
縮圖格式
int posbmp; //
縮圖位置
int lenbmp; //
縮圖大小
short bibitcount; //
縮圖位元深度
bitmapfileheader bih; //
bmp檔案頭,dwg檔案中不包含位**件頭,要自行加上去
byte bmpinfo; //
包含在dwg檔案中的bmp檔案體
memorystream bmpf = new memorystream(); //
儲存點陣圖的記憶體檔案流
binarywriter bmpr = new binarywriter(bmpf); //
寫二進位制檔案類
system.drawing.image myimg = null
;
try
else
if (typepreview == 2 || typepreview == 3
)
else
bih.bfreserved1 = 0; //
保留位元組
bih.bfreserved2 = 0; //
保留位元組
bih.bfoffbits = 14 + 40 + 1024; //
影象資料偏移
//以下開始寫入位**件頭
bmpr.write(bih.bftype); //
檔案型別
bmpr.write(bih.bfsize); //
檔案大小
bmpr.write(bih.bfreserved1); //
0 bmpr.write(bih.bfreserved2); //
0 bmpr.write(bih.bfoffbits); //
影象資料偏移
bmpr.write(bmpinfo); //
寫入位圖
bmpf.seek(0, seekorigin.begin); //
指標移到檔案開始處
myimg = system.drawing.image.fromstream(bmpf); //
建立位**件物件
bmpr.close();
bmpf.close();
}return
myimg;
}catch
(endofstreamexception)
catch
(ioexception ex)
else
if (ex.message == "
檔案「" + filename + "
」正由另一程序使用,因此該程序無法訪問該檔案。")
else
}catch
(exception ex)
finally
if (br != null
)
bmpr.close();
bmpf.close();}}
讀取出來的背景色為白色,效果比較差,很多顏色顯示不出來,當時認為顯示dwg檔案出錯誤了,問了些高手,(呵呵,別人告訴自己本身取出的就是白色背景,需要自己改變背景色,在此鄙視一下自己)所以繼續用c#操作返回的image物件,改變背景色
//////
顯示dwg檔案
/// ///
要顯示的寬度
///要顯示的高度
///public
static system.drawing.image showdwg(int pwidth,int pheight,string
filepath)
newbitmap.setpixel(x, y, color.fromargb(r, g, b));}}
bitmap bt = new
bitmap(newbitmap, pwidth, pheight);
return
newbitmap;
}
c#預覽dwg檔案方法(三)dwgtrueview
下圖是dwgtrueview控制項和dwgthumbnail控制項顯示的區別
dwgtrueview控制項完全就是autocad的乙個唯讀微型版本,相對速度必然會慢一些!
c#預覽dwg檔案方法(四)ddvue 控制項
delphi時期乙個非著名的控制項
用法不多說,和前面幾個幾乎一樣!
PDF預覽 pdfJS預覽pdf檔案
方式1 檔案流轉為blob let urlsrc window.url.createobjecturl blob this src urlsrc pdf空白頁 else 正確解析了頁碼,但是每頁空白。解決方法 responsetype blob html visible.sync dialo isi...
C 列印預覽
截圖 本來想用.net提供的列印預覽對話方塊,可終究不如自己寫的用起來方便,比如說新增滑鼠和滾輪支援。在.net環境下實現列印和預覽還是蠻簡單的。需要用到的類是printdocument和printpreviewcontrol printdocument是要列印的文件,printpreviewcon...
c 列印預覽
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...