首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# Visio 二次開發:圖面列印實現(一)——五種列印模式、Picture 轉 Image 與部分區域列印

     編輯:關於C語言

Visio Document 列印模式枚舉

常數值說明
visPrintAll0列印所有前景頁面
visPrintFromTo1列印指定頁碼範圍
visPrintCurrentPage2列印目前頁面
visPrintSelection3列印選取內容
visPrintCurrentView4列印目前視圖區域

呼叫範例


// 列印所有頁面
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 → DrawImage


// 取得頁面 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 轉換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved