I'm having some difficulty getting the drawing coordinates measured correctly when attempting to draw to the PDFControl.Canvas. The PageUnits show they are set to GraphicsUnits.Display which is documented as 1/75th of an inch. I've attempted to adjust my coordinates based on this without success. I've also changes the PageUnits to GraphicsUnits.Inch and had similar results - everything is off by about 20%.
Is there some additional piece of information I need to know to get this correct? Here is a sample of code where I'm simply drawing an X from corner to corner of an 8.5x11 page (note the printer page bounds are always delivered in 1/100 of an inch:
private void OnPrintPDFPage(object sender, PrintPageEventArgs e)
{
pdfControl1.DrawMetafile(tern1.TerPageMetafile(m_iPrint_Page),300,300); // TerPageMetafile creates pages in 1/300 inches resolution
// Draw a big X on the page
Graphics gr = pdfControl1.Canvas;
float left, right, top, bottom;
left = ((float)e.PageBounds.Left) * (float)0.75;
right = ((float)e.PageBounds.Right) * (float)0.75;
top = ((float) e.PageBounds.Top) * (float)0.75;
bottom = ((float) e.PageBounds.Bottom) * (float)0.75;
gr.DrawLine(new Pen(new SolidBrush(Color.Black), (float)0), new PointF(left, top), new PointF(right, bottom));
gr.DrawLine(new Pen(new SolidBrush(Color.Black), (float)0), new PointF(right, top), new PointF(left, bottom));
The right and bottom always come out beyond the 8.5x11 edges. Any help is appreciated while I still have some hair left.
Thanks.