StringCollection devlist = psVdr.GetPlotDeviceList();
psVdr.SetPlotConfigurationName(plSet, printDeviceName, null);
psVdr.RefreshLists(plSet);
StringCollection medlist = psVdr.GetCanonicalMediaNameList(plSet);
注意
psv.SetPlotConfigurationName(ps, printDeviceName, mediaName);
這個 mediaName 一定是
psVdr.GetCanonicalMediaNameList(plSet);
得到的名稱,否則會出現 einvalidinput的錯誤,特別是用第三方打印驅動的時候需要注意。使用NetAPI進行CAD打印注意問題
1.創建一個plotinfo,然後設置layout屬性使其與打印佈局空間
2.讀取佈局的plotsettings對象。先創建一個新的plotsettings,然後使用copyfrom方法由佈局空間映射打印設置
3.使用當前的plotsettingsvalidator對plotsettings對象進行自定義設置。plotsettings保存了打印的一些設置,但是plotsettings的屬性基本上都是隻讀的,因此如果我們需要進行自定義設置,必須通過plotsettingsvalidator才能對plotsettings進行有限的操作,其中:
1) GetPlotDeviceList 讀取打印機列表
2)GetCanonicalMediaNameList 讀取打印機的圖紙列表。一般在讀取圖紙列表之前,我們先使用SetPlotConfigurationName設置打印機,圖紙大小設置爲null,然後調用RefreshLists刷新圖紙列表,然後再進行讀取。
3)GetLocaleMediaName 圖紙的本地自定義命名。我們會發現GetCanonicalMediaNameList 返回的圖紙列表中,用戶自定的圖紙會以UserDefinedMetric來命名的。而我們的自定義命名只能通過GetLocaleMediaName來讀取
4)GetPlotStyleSheetList 讀取打印樣式表
5)SetPlotConfigurationName 設置打印機及圖紙大小
6)SetPlotPaperUnits 設置打印單位。在kean的程序中,SetPlotConfigurationName是最後設置的。但是我們會發現,設置了SetPlotConfigurationName後,打印單位會自動變成了英寸,因此我們需要在SetPlotConfigurationName後調用SetPlotPaperUnits來進行修正。
7)SetCurrentStyleSheet 設置打印樣式
8)SetPlotWindowArea 設置打印窗選範圍
9)SetPlotType設置打印範圍類型。對於窗選打印,應先設置SetPlotWindowArea ,然後再設置SetPlotType,否則有可能會引發錯誤
10)SetCustomPrintScale 設置自定義打印比例
11)SetClosestMediaName 設置接近的圖幅。這個方法的使用暫時不明確,因爲每次測試均引發錯誤
12)SetPlotOrigin 設置打印偏移
13)SetPlotCentered設置居中打印
14)SetStdScaleType 設置標準打印比例。佈滿圖紙打印在這裏設置
15)SetStdScale 設置標準打印比例
16)SetUseStandardScale 使用標準打印比例,對於自定義打印比例不需要設置該項,否則可能引發錯誤
4.通過plotinfo的overridesettings屬性將plotinfo與plotsettings關聯
5.創建一個plotinfovalidator,使用validate方法將plotinfo激活
6.由plotfactory建立一個plotengine發佈引擎,執行打印任務。
打印順序:
1)BeginPlot
2)BeginDocument
3)BeginPage
4)BeginGenerateGraphics
5)EndGenerateGraphics
6)EndPage
7)EndDocument
8)EndPlot