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