Page setup
| Chapter 20. Printing |

## Page setup

The `PrintOperation` class has a method called `set_default_page_setup()` which selects the default paper size, orientation and margins. To show a page setup dialog from your application, use the `Gtk::run_page_setup_dialog()` method, which returns a `Gtk::PageSetup` object with the chosen settings. Use this object to update a `PrintOperation` and to access the selected `Gtk::PaperSize`, `Gtk::PageOrientation` and printer-specific margins.

You should save the chosen `Gtk::PageSetup` so you can use it again if the page setup dialog is shown again.

For instance,

    //Within a class that inherits from Gtk::Window and keeps m_refPageSetup and m_refSettings as members...
    Glib::RefPtr<Gtk::PageSetup> new_page_setup = Gtk::run_page_setup_dialog(*this, m_refPageSetup, m_refSettings);
    m_refPageSetup = new_page_setup;

Reference

The Cairo coordinate system, in the `draw_page` handler, is automatically rotated to the current page orientation. It is normally within the printer margins, but you can change that via the `PrintOperation::set_use_full_page()` method. The default measurement unit is device pixels. To select other units, use the `PrintOperation::set_unit()` method.

Chapter 20. Printing |  | Rendering text