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");
}