How do I print centered and scaled/non-scaled PDF?

Q: I need to take a PDF document (this PDF is natively 11x17) and send
this to a printer that will print this on an 8.5x11 in its native
resolution which means it will print it centered on the page but NOT
scale it. I want to handle the scaling by passing it a scale
percentage (100%, 50% etc)

So in the end if you print the attached file on an 11x17 paper it
comes out perfectly fitted. On an 8.5x11 it will print parts of it
%100 centered. On an 8.5x11 50% scaled, it would print it centered
full pictured (scaled).

p.s. How can I get the resolution of this PDF in my code? I need to
know what its size is.

A: : You can implement the required functionality along the following
lines (the idea is to to provide the output rectangle in the call to
DrawInRect - even if it falls outside of the margins of the physical

try {
Page page = pageitr.Current();
// The dimensions of the input PDF page.
double page_width = page.GetPageWidth(), page_height =

// The dimensions of the physical page (the rectangle in which the
PDF page should be centered).
double out_page_width = (right-left) * 72, out_page_height =
abs(bottom-top) * 72;

double scale_factor = 1.0;
double pad_x = scale_factor * (out_page_width-page_width)/2.0;
double pad_y = scale_factor * (out_page_height-page_height)/2.0;

pdftron.PDF.Rect rect = new Rect(pad_x, pad_y, -pad_x, -pad_y);
pdfdraw.DrawInRect(page, gr, rect);
catch (Exception ex) {
Console.WriteLine("Printing Error: " + ex.ToString());

How can I get the resolution of this PDF in my code? I need to
know what its size is.

PDF does not store resolution, since it is a device independent
format. However you can obtain physical dimensions of a given page
using page.GetPageWidth()/GetPageHeight(). These methods will return
the dimensions of the current page in point (1 pt = 1/72 inch).