<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Page setup</title> <link rel="stylesheet" href="style.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.1"> <link rel="home" href="index.html" title="Programming with gtkmm"> <link rel="up" href="chapter-printing.html" title="Chapter 18. Printing"> <link rel="prev" href="chapter-printing.html" title="Chapter 18. Printing"> <link rel="next" href="sec-printing-rendering-text.html" title="Rendering text"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr><th colspan="3" align="center">Page setup</th></tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="chapter-printing.html"><img src="icons/prev.png" alt="Prev"></a> </td> <th width="60%" align="center">Chapter 18. Printing</th> <td width="20%" align="right"> <a accesskey="n" href="sec-printing-rendering-text.html"><img src="icons/next.png" alt="Next"></a> </td> </tr> </table> <hr> </div> <div class="sect1" title="Page setup"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="sec-page-setup"></a>Page setup</h2></div></div></div> <p> The <code class="classname">PrintOperation</code> class has a method called <code class="methodname">set_default_page_setup()</code> which selects the default paper size, orientation and margins. To show a page setup dialog from your application, use the <code class="methodname">Gtk::run_page_setup_dialog()</code> method, which returns a <code class="classname">Gtk::PageSetup</code> object with the chosen settings. Use this object to update a <code class="classname">PrintOperation</code> and to access the selected <code class="classname">Gtk::PaperSize</code>, <code class="literal">Gtk::PageOrientation</code> and printer-specific margins. </p> <p>You should save the chosen <code class="classname">Gtk::PageSetup</code> so you can use it again if the page setup dialog is shown again.</p> <p>For instance, </p> <pre class="programlisting"> //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; </pre> <p> </p> <p> <a class="ulink" href="http://library.gnome.org/devel/gtkmm/unstable/classGtk_1_1PageSetup.html" target="_top">Reference</a> </p> <p> The Cairo coordinate system, in the <code class="literal">draw_page</code> handler, is automatically rotated to the current page orientation. It is normally within the printer margins, but you can change that via the <code class="methodname">PrintOperation::set_use_full_page()</code> method. The default measurement unit is device pixels. To select other units, use the <code class="methodname">PrintOperation::set_unit()</code> method. </p> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="chapter-printing.html"><img src="icons/prev.png" alt="Prev"></a> </td> <td width="20%" align="center"><a accesskey="u" href="chapter-printing.html"><img src="icons/up.png" alt="Up"></a></td> <td width="40%" align="right"> <a accesskey="n" href="sec-printing-rendering-text.html"><img src="icons/next.png" alt="Next"></a> </td> </tr> <tr> <td width="40%" align="left" valign="top">Chapter 18. Printing </td> <td width="20%" align="center"><a accesskey="h" href="index.html"><img src="icons/home.png" alt="Home"></a></td> <td width="40%" align="right" valign="top"> Rendering text</td> </tr> </table> </div> </body> </html>