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"); }
PageLayoutControl の ActiveView 範囲を印刷
2016/9/1 (木)