I have a need to print
out some documents programmatically using .Net and C#. I just want to see how I can get the dimensions of the page I will be printing on.
To start off with I am
using a program that can print multiple pages and select printers. The notes on how to make this program can be
found here http://www.whiteboardcoder.com/2013/05/visual-studio-2012-c-print-printer-list.html
Get the dimensions
From the PrintPage
method you can get the dimensions using e.PageBounds.Width and e.PageBounds.Width
Updating
my Print Document Print Page Event to
private void printDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e) {
Font font = new Font("Microsoft
Sans Serif", 48F,
System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point,
((byte)(0)));
Graphics g = e.Graphics;
if (this.currentPage < 11) {
g.DrawString("Page " + this.currentPage, font,
System.Drawing.Brushes.Black, 100, 50);
Pen redPen = new Pen(Color.Red, 10);
g.DrawRectangle(redPen, 5, 5,
e.PageBounds.Width -
10,
e.PageBounds.Height -
10);
this.currentPage++;
e.HasMorePages = (this.currentPage <
11);
}
if (!e.HasMorePages) {
currentPage = 1;
}
}
|
You can see that the Red
Rectangle is drawn around the border.
If I go to landscape you
can see the rectangle is drawn correctly.
No comments:
Post a Comment