YouTube | Facebook | Twitter  Feed

PageLayoutControl の ActiveView 範囲を印刷

private void print()
{
    //Form に配置した PageLayoutControl の ActiveView 範囲を印刷
 
    IActiveView pActiveView = axPageLayoutControl1.ActiveView;
    IOutputRasterSettings pOutputRasterSettings = (IOutputRasterSettings)pActiveeenDisplay.DisplayTransformation;
    pOutputRasterSettings.ResampleRatio = 1;     //ラスタのピクセル比率を1に変更
     
    IPrinter pPrinter = axPageLayoutControl1.Printer;
 
    pPrinter.Paper.PrinterName = "Adobe PDF";   //プリンタの変更(デバイスとプリ定)
     
    IEnvelope pPrinterBounds = new EnvelopeClass();
    IEnvelope pVisibleBounds =  new EnvelopeClass();
 
    axPageLayoutControl1.PageLayout.Page.GetDeviceBounds(pPrinter, 1, 0, pPrintetion, pPrinterBounds);  //出力ピクセル サイズの計算
    axPageLayoutControl1.PageLayout.Page.GetPageBounds(pPrinter, 1, 0, pVisibleB//出力用紙サイズの計算
 
    //出力ピクセルサイズの計算           
    tagRECT deviceRECT;
    deviceRECT.left = (int)pPrinterBounds.XMin;
    deviceRECT.top = (int)pPrinterBounds.YMin;
    deviceRECT.right = (int)pPrinterBounds.XMax;
    deviceRECT.bottom = (int)pPrinterBounds.YMax;
 
    //印刷
    int hDC  = pPrinter.StartPrinting(pPrinterBounds, 0);
    pActiveView.Output(hDC, pPrinter.Resolution, deviceRECT, pVisibleBounds, null);
    pPrinter.FinishPrinting();
 
    MessageBox.Show("Done");
}

関連記事

  • この記事を書いた人

羽田 康祐

呉市生まれ広島市出身。Esri認定インストラクター、GIS上級技術者、測量士補、潜水士。GISy / GISc とその関連分野である地理学・地図学について日々の出来事で学んだ記憶を記録するためにブログを書いています。行動原理は伊達と酔狂。好きな地形は圏谷。好きな地図投影法はパースクインカンシャル図法。GIS を使った自己紹介はこちら

-プログラミング, ArcGIS
-,

© 2020 WINGFIELD since1981