| 常數 | 值 | 說明 |
|---|---|---|
| visPrintAll | 0 | 列印所有前景頁面 |
| visPrintFromTo | 1 | 列印指定頁碼範圍 |
| visPrintCurrentPage | 2 | 列印目前頁面 |
| visPrintSelection | 3 | 列印選取內容 |
| visPrintCurrentView | 4 | 列印目前視圖區域 |
// 列印所有頁面
visPage.Document.PrintOut(VisPrintOutRange.visPrintAll, 1, 1, false, "", false, visPage.Name, 1, false, false);
// 列印目前視圖
visPage.Document.PrintOut(VisPrintOutRange.visPrintCurrentView, 1, 1, false, "", false, visPage.Name, 1, false, false);
// 列印選取內容 (需先確認有選取)
visPage.Document.PrintOut(VisPrintOutRange.visPrintSelection, 1, 1, false, "", false, visPage.Name, 1, false, false);
// 取得頁面 Picture 並轉為 Image
public class AxHostConverter : AxHost
{
private AxHostConverter() : base("") { }
static public Image PictureDispToImage(stdole.IPictureDisp pictureDisp)
{
return GetPictureFromIPicture(pictureDisp);
}
}
// 使用
Image visioImage = AxHostConverter.PictureDispToImage(this.visPage.Picture);
// 列印指定區域
Rectangle srcRect = new Rectangle(dblLeft, dblTop, visioImage.Width / 2, visioImage.Height / 2);
e.Graphics.DrawImage(visioImage, destRectangle, srcRect, GraphicsUnit.Pixel);
Window.Selection.Picture 同理可預覽選取內容。AxHostConverter 利用 AxHost.GetPictureFromIPicture 內部方法完成 IPictureDisp → Image 轉換。