public static void PrintPage()
{
IActiveView pActiveView
= PageLayoutControl
.ActiveView
;
try
{
PrintDialog printDialog
= new PrintDialog();
printDialog
.AllowPrintToFile
= false;
System.Drawing.Printing.PrintDocument pPrintDocument
= new System.Drawing.Printing.PrintDocument();
printDialog
.Document
= pPrintDocument
;
DialogResult result
= printDialog
.ShowDialog();
if (result
== DialogResult
.OK
)
{
int Copies
= pPrintDocument
.PrinterSettings
.Copies
;
bool landscape
= pPrintDocument
.DefaultPageSettings
.Landscape
;
int ResolutionX
= pPrintDocument
.DefaultPageSettings
.PrinterResolution
.X
;
int ResolutionY
= pPrintDocument
.DefaultPageSettings
.PrinterResolution
.Y
;
IPaper pPaper
= new Paper();
pPaper
.PrinterName
= pPrintDocument
.PrinterSettings
.PrinterName
;
if (landscape
)
{
pPaper
.Orientation
= 2;
}
else
{
pPaper
.Orientation
= 1;
}
IPrinter pPrinter
= new EmfPrinterClass();
pPrinter
.SpoolFileName
= "地图打印";
pPrinter
.Paper
= pPaper
;
ESRI.ArcGIS.esriSystem.tagRECT usertagRECT
= pActiveView
.ExportFrame
;
usertagRECT
.left
= 0;
usertagRECT
.top
= 0;
usertagRECT
.right
= (int)(pPrinter
.PrintableBounds
.Width
* ResolutionX
);
usertagRECT
.bottom
= (int)(pPrinter
.PrintableBounds
.Height
* ResolutionY
);
IEnvelope pDriverBounds
= new EnvelopeClass();
pDriverBounds
.PutCoords(usertagRECT
.left
, usertagRECT
.top
, usertagRECT
.right
, usertagRECT
.bottom
);
pActiveView
.Output(pPrinter
.StartPrinting(pDriverBounds
, 0), pPrinter
.Resolution
, ref usertagRECT
, null, null);
pPrinter
.FinishPrinting();
MessageBox
.Show("地图打印成功!", "提示", MessageBoxButtons
.OK
);
}
else
{
return new Response(Constant
.Nothing
, "");
}
}
catch (Exception ex
)
{
MessageBox
.Show("打印失败!" + ex
.Message
+ ex
.Source
);
}
return new Response(Constant
.Success
, "");
}
转载请注明原文地址:https://tech.qufami.com/read-27985.html