What is the fastest and easiest way to expand a page and shift all data UP?

Q: I have 8.5 x 11 document. I need to expand all the pages to be
8.5 x 13 and shift all the existing content up 2 inches.

We currently have a similar thing in which we just need to expand the
page on the top so we can have room for binding, but we do not need to
move the existing items. We us the following code to expand the
pages, but what would complete shift up code look like?

private void ExpandPageSize(Page page, double inchesToAdd)
double unitsToAdd = inchesToAdd * 72; // A unit
= 1/72 inch

Rect media_box = page.GetBox(Page.Box.e_media);
Rect trim_box = page.GetBox(Page.Box.e_trim);
Rect crop_box = page.GetBox(Page.Box.e_crop);
Rect bleed_box = page.GetBox(Page.Box.e_bleed);
Rect art_box = page.GetBox(Page.Box.e_art);
double pageHeight = page.GetPageHeight();
double pageWidth = page.GetPageWidth();

media_box.y2 += unitsToAdd;
trim_box.y2 += unitsToAdd;
crop_box.y2 += unitsToAdd;
bleed_box.y2 += unitsToAdd;
art_box.y2 += unitsToAdd;

Thank You,

A: To shift content up you could add offset to Y coordinates:

media_box.y1 += shiftUpUnits;
media_box.y2 += shiftUpUnits;

For a concrete example please see Rect sample
Please keep in mind that besides media box you may also need to update
crop (and possibly other page boxes).