## GtkPrintSettings GtkPrintSettings — Stores print settings |

## Synopsis

    #include <gtk/gtk.h>

                        GtkPrintSettings;
    void                (*GtkPrintSettingsFunc)             (const gchar *key,
                                                             const gchar *value,
                                                             gpointer user_data);
    GtkPrintSettings *  gtk_print_settings_new              (void);
    GtkPrintSettings *  gtk_print_settings_copy             (GtkPrintSettings *other);
    gboolean            gtk_print_settings_has_key          (GtkPrintSettings *settings,
                                                             const gchar *key);
    const gchar *       gtk_print_settings_get              (GtkPrintSettings *settings,
                                                             const gchar *key);
    void                gtk_print_settings_set              (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             const gchar *value);
    void                gtk_print_settings_unset            (GtkPrintSettings *settings,
                                                             const gchar *key);
    void                gtk_print_settings_foreach          (GtkPrintSettings *settings,
                                                             GtkPrintSettingsFunc func,
                                                             gpointer user_data);
    gboolean            gtk_print_settings_get_bool         (GtkPrintSettings *settings,
                                                             const gchar *key);
    void                gtk_print_settings_set_bool         (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gboolean value);
    gdouble             gtk_print_settings_get_double       (GtkPrintSettings *settings,
                                                             const gchar *key);
    gdouble             gtk_print_settings_get_double_with_default
                                                            (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gdouble def);
    void                gtk_print_settings_set_double       (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gdouble value);
    gdouble             gtk_print_settings_get_length       (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             GtkUnit unit);
    void                gtk_print_settings_set_length       (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gdouble value,
                                                             GtkUnit unit);
    gint                gtk_print_settings_get_int          (GtkPrintSettings *settings,
                                                             const gchar *key);
    gint                gtk_print_settings_get_int_with_default
                                                            (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gint def);
    void                gtk_print_settings_set_int          (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gint value);
    #define             GTK_PRINT_SETTINGS_PRINTER
    const gchar *       gtk_print_settings_get_printer      (GtkPrintSettings *settings);
    void                gtk_print_settings_set_printer      (GtkPrintSettings *settings,
                                                             const gchar *printer);
    enum                GtkPageOrientation;
    #define             GTK_PRINT_SETTINGS_ORIENTATION
    GtkPageOrientation  gtk_print_settings_get_orientation  (GtkPrintSettings *settings);
    void                gtk_print_settings_set_orientation  (GtkPrintSettings *settings,
                                                             GtkPageOrientation orientation);
    #define             GTK_PRINT_SETTINGS_PAPER_FORMAT
    GtkPaperSize *      gtk_print_settings_get_paper_size   (GtkPrintSettings *settings);
    void                gtk_print_settings_set_paper_size   (GtkPrintSettings *settings,
                                                             GtkPaperSize *paper_size);
    #define             GTK_PRINT_SETTINGS_PAPER_WIDTH
    gdouble             gtk_print_settings_get_paper_width  (GtkPrintSettings *settings,
                                                             GtkUnit unit);
    void                gtk_print_settings_set_paper_width  (GtkPrintSettings *settings,
                                                             gdouble width,
                                                             GtkUnit unit);
    #define             GTK_PRINT_SETTINGS_PAPER_HEIGHT
    gdouble             gtk_print_settings_get_paper_height (GtkPrintSettings *settings,
                                                             GtkUnit unit);
    void                gtk_print_settings_set_paper_height (GtkPrintSettings *settings,
                                                             gdouble height,
                                                             GtkUnit unit);
    #define             GTK_PRINT_SETTINGS_USE_COLOR
    gboolean            gtk_print_settings_get_use_color    (GtkPrintSettings *settings);
    void                gtk_print_settings_set_use_color    (GtkPrintSettings *settings,
                                                             gboolean use_color);
    #define             GTK_PRINT_SETTINGS_COLLATE
    gboolean            gtk_print_settings_get_collate      (GtkPrintSettings *settings);
    void                gtk_print_settings_set_collate      (GtkPrintSettings *settings,
                                                             gboolean collate);
    #define             GTK_PRINT_SETTINGS_REVERSE
    gboolean            gtk_print_settings_get_reverse      (GtkPrintSettings *settings);
    void                gtk_print_settings_set_reverse      (GtkPrintSettings *settings,
                                                             gboolean reverse);
    enum                GtkPrintDuplex;
    #define             GTK_PRINT_SETTINGS_DUPLEX
    GtkPrintDuplex      gtk_print_settings_get_duplex       (GtkPrintSettings *settings);
    void                gtk_print_settings_set_duplex       (GtkPrintSettings *settings,
                                                             GtkPrintDuplex duplex);
    enum                GtkPrintQuality;
    #define             GTK_PRINT_SETTINGS_QUALITY
    GtkPrintQuality     gtk_print_settings_get_quality      (GtkPrintSettings *settings);
    void                gtk_print_settings_set_quality      (GtkPrintSettings *settings,
                                                             GtkPrintQuality quality);
    #define             GTK_PRINT_SETTINGS_N_COPIES
    gint                gtk_print_settings_get_n_copies     (GtkPrintSettings *settings);
    void                gtk_print_settings_set_n_copies     (GtkPrintSettings *settings,
                                                             gint num_copies);
    #define             GTK_PRINT_SETTINGS_NUMBER_UP
    gint                gtk_print_settings_get_number_up    (GtkPrintSettings *settings);
    void                gtk_print_settings_set_number_up    (GtkPrintSettings *settings,
                                                             gint number_up);
    enum                GtkNumberUpLayout;
    #define             GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT
    GtkNumberUpLayout   gtk_print_settings_get_number_up_layout
                                                            (GtkPrintSettings *settings);
    void                gtk_print_settings_set_number_up_layout
                                                            (GtkPrintSettings *settings,
                                                             GtkNumberUpLayout number_up_layout);
    #define             GTK_PRINT_SETTINGS_RESOLUTION
    gint                gtk_print_settings_get_resolution   (GtkPrintSettings *settings);
    void                gtk_print_settings_set_resolution   (GtkPrintSettings *settings,
                                                             gint resolution);
    void                gtk_print_settings_set_resolution_xy
                                                            (GtkPrintSettings *settings,
                                                             gint resolution_x,
                                                             gint resolution_y);
    #define             GTK_PRINT_SETTINGS_RESOLUTION_X
    gint                gtk_print_settings_get_resolution_x (GtkPrintSettings *settings);
    #define             GTK_PRINT_SETTINGS_RESOLUTION_Y
    gint                gtk_print_settings_get_resolution_y (GtkPrintSettings *settings);
    #define             GTK_PRINT_SETTINGS_PRINTER_LPI
    gdouble             gtk_print_settings_get_printer_lpi  (GtkPrintSettings *settings);
    void                gtk_print_settings_set_printer_lpi  (GtkPrintSettings *settings,
                                                             gdouble lpi);
    #define             GTK_PRINT_SETTINGS_SCALE
    gdouble             gtk_print_settings_get_scale        (GtkPrintSettings *settings);
    void                gtk_print_settings_set_scale        (GtkPrintSettings *settings,
                                                             gdouble scale);
    enum                GtkPrintPages;
    #define             GTK_PRINT_SETTINGS_PRINT_PAGES
    GtkPrintPages       gtk_print_settings_get_print_pages  (GtkPrintSettings *settings);
    void                gtk_print_settings_set_print_pages  (GtkPrintSettings *settings,
                                                             GtkPrintPages pages);
    struct              GtkPageRange;
    #define             GTK_PRINT_SETTINGS_PAGE_RANGES
    GtkPageRange *      gtk_print_settings_get_page_ranges  (GtkPrintSettings *settings,
                                                             gint *num_ranges);
    void                gtk_print_settings_set_page_ranges  (GtkPrintSettings *settings,
                                                             GtkPageRange *page_ranges,
                                                             gint num_ranges);
    enum                GtkPageSet;
    #define             GTK_PRINT_SETTINGS_PAGE_SET
    GtkPageSet          gtk_print_settings_get_page_set     (GtkPrintSettings *settings);
    void                gtk_print_settings_set_page_set     (GtkPrintSettings *settings,
                                                             GtkPageSet page_set);
    #define             GTK_PRINT_SETTINGS_DEFAULT_SOURCE
    const gchar *       gtk_print_settings_get_default_source
                                                            (GtkPrintSettings *settings);
    void                gtk_print_settings_set_default_source
                                                            (GtkPrintSettings *settings,
                                                             const gchar *default_source);
    #define             GTK_PRINT_SETTINGS_MEDIA_TYPE
    const gchar *       gtk_print_settings_get_media_type   (GtkPrintSettings *settings);
    void                gtk_print_settings_set_media_type   (GtkPrintSettings *settings,
                                                             const gchar *media_type);
    #define             GTK_PRINT_SETTINGS_DITHER
    const gchar *       gtk_print_settings_get_dither       (GtkPrintSettings *settings);
    void                gtk_print_settings_set_dither       (GtkPrintSettings *settings,
                                                             const gchar *dither);
    #define             GTK_PRINT_SETTINGS_FINISHINGS
    const gchar *       gtk_print_settings_get_finishings   (GtkPrintSettings *settings);
    void                gtk_print_settings_set_finishings   (GtkPrintSettings *settings,
                                                             const gchar *finishings);
    #define             GTK_PRINT_SETTINGS_OUTPUT_BIN
    const gchar *       gtk_print_settings_get_output_bin   (GtkPrintSettings *settings);
    void                gtk_print_settings_set_output_bin   (GtkPrintSettings *settings,
                                                             const gchar *output_bin);
    #define             GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT
    #define             GTK_PRINT_SETTINGS_OUTPUT_URI
    #define             GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA
    #define             GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION

    GtkPrintSettings *  gtk_print_settings_new_from_file    (const gchar *file_name,
                                                             GError **error);
    GtkPrintSettings *  gtk_print_settings_new_from_key_file
                                                            (GKeyFile *key_file,
                                                             const gchar *group_name,
                                                             GError **error);
    gboolean            gtk_print_settings_load_file        (GtkPrintSettings *settings,
                                                             const gchar *file_name,
                                                             GError **error);
    gboolean            gtk_print_settings_load_key_file    (GtkPrintSettings *settings,
                                                             GKeyFile *key_file,
                                                             const gchar *group_name,
                                                             GError **error);
    gboolean            gtk_print_settings_to_file          (GtkPrintSettings *settings,
                                                             const gchar *file_name,
                                                             GError **error);
    void                gtk_print_settings_to_key_file      (GtkPrintSettings *settings,
                                                             GKeyFile *key_file,
                                                             const gchar *group_name);

## Object Hierarchy

      GObject
       +----GtkPrintSettings

## Description

A GtkPrintSettings object represents the settings of a print dialog in a system-independent way. The main use for this object is that once you've printed you can get a settings object that represents the settings the user chose, and the next time you print you can pass that object in so that the user doesn't have to re-set all his settings.

Its also possible to enumerate the settings so that you can easily save the settings for the next time your app runs, or even store them in a document. The predefined keys try to use shared values as much as possible so that moving such a document between systems still works.

Printing support was added in GTK+ 2.10.

## Details

### GtkPrintSettings

    typedef struct _GtkPrintSettings GtkPrintSettings;

### GtkPrintSettingsFunc ()

    void                (*GtkPrintSettingsFunc)             (const gchar *key,
                                                             const gchar *value,
                                                             gpointer user_data);

### gtk_print_settings_new ()

    GtkPrintSettings *  gtk_print_settings_new              (void);

Creates a new GtkPrintSettings object.

Returns : | a new GtkPrintSettings object

Since 2.10

### gtk_print_settings_copy ()

    GtkPrintSettings *  gtk_print_settings_copy             (GtkPrintSettings *other);

Copies a GtkPrintSettings object.

`other` : | a GtkPrintSettings
Returns : | a newly allocated copy of `other`. [transfer full]

Since 2.10

### gtk_print_settings_has_key ()

    gboolean            gtk_print_settings_has_key          (GtkPrintSettings *settings,
                                                             const gchar *key);

Returns `TRUE`, if a value is associated with `key`.

`settings` : | a GtkPrintSettings
`key` : | a key
Returns : | `TRUE`, if `key` has a value

Since 2.10

### gtk_print_settings_get ()

    const gchar *       gtk_print_settings_get              (GtkPrintSettings *settings,
                                                             const gchar *key);

Looks up the string value associated with `key`.

`settings` : | a GtkPrintSettings
`key` : | a key
Returns : | the string value for `key`

Since 2.10

### gtk_print_settings_set ()

    void                gtk_print_settings_set              (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             const gchar *value);

Associates `value` with `key`.

`settings` : | a GtkPrintSettings
`key` : | a key
`value` : | a string value, or `NULL`. [allow-none]

Since 2.10

### gtk_print_settings_unset ()

    void                gtk_print_settings_unset            (GtkPrintSettings *settings,
                                                             const gchar *key);

Removes any value associated with `key`. This has the same effect as setting the value to `NULL`.

`settings` : | a GtkPrintSettings
`key` : | a key

Since 2.10

### gtk_print_settings_foreach ()

    void                gtk_print_settings_foreach          (GtkPrintSettings *settings,
                                                             GtkPrintSettingsFunc func,
                                                             gpointer user_data);

Calls `func` for each key-value pair of `settings`.

`settings` : | a GtkPrintSettings
`func` : | the function to call. [scope call]
`user_data` : | user data for `func`

Since 2.10

### gtk_print_settings_get_bool ()

    gboolean            gtk_print_settings_get_bool         (GtkPrintSettings *settings,
                                                             const gchar *key);

Returns the boolean represented by the value that is associated with `key`.

The string "true" represents `TRUE`, any other string `FALSE`.

`settings` : | a GtkPrintSettings
`key` : | a key
Returns : | `TRUE`, if `key` maps to a true value.

Since 2.10

### gtk_print_settings_set_bool ()

    void                gtk_print_settings_set_bool         (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gboolean value);

Sets `key` to a boolean value.

`settings` : | a GtkPrintSettings
`key` : | a key
`value` : | a boolean

Since 2.10

### gtk_print_settings_get_double ()

    gdouble             gtk_print_settings_get_double       (GtkPrintSettings *settings,
                                                             const gchar *key);

Returns the double value associated with `key`, or 0.

`settings` : | a GtkPrintSettings
`key` : | a key
Returns : | the double value of `key`

Since 2.10

### gtk_print_settings_get_double_with_default ()

    gdouble             gtk_print_settings_get_double_with_default
                                                            (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gdouble def);

Returns the floating point number represented by the value that is associated with `key`, or `default_val` if the value does not represent a floating point number.

Floating point numbers are parsed with `g_ascii_strtod()`.

`settings` : | a GtkPrintSettings
`key` : | a key
`def` : | the default value
Returns : | the floating point number associated with `key`

Since 2.10

### gtk_print_settings_set_double ()

    void                gtk_print_settings_set_double       (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gdouble value);

Sets `key` to a double value.

`settings` : | a GtkPrintSettings
`key` : | a key
`value` : | a double value

Since 2.10

### gtk_print_settings_get_length ()

    gdouble             gtk_print_settings_get_length       (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             GtkUnit unit);

Returns the value associated with `key`, interpreted as a length. The returned value is converted to `units`.

`settings` : | a GtkPrintSettings
`key` : | a key
`unit` : | the unit of the return value
Returns : | the length value of `key`, converted to `unit`

Since 2.10

### gtk_print_settings_set_length ()

    void                gtk_print_settings_set_length       (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gdouble value,
                                                             GtkUnit unit);

Associates a length in units of `unit` with `key`.

`settings` : | a GtkPrintSettings
`key` : | a key
`value` : | a length
`unit` : | the unit of `length`

Since 2.10

### gtk_print_settings_get_int ()

    gint                gtk_print_settings_get_int          (GtkPrintSettings *settings,
                                                             const gchar *key);

Returns the integer value of `key`, or 0.

`settings` : | a GtkPrintSettings
`key` : | a key
Returns : | the integer value of `key`

Since 2.10

### gtk_print_settings_get_int_with_default ()

    gint                gtk_print_settings_get_int_with_default
                                                            (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gint def);

Returns the value of `key`, interpreted as an integer, or the default value.

`settings` : | a GtkPrintSettings
`key` : | a key
`def` : | the default value
Returns : | the integer value of `key`

Since 2.10

### gtk_print_settings_set_int ()

    void                gtk_print_settings_set_int          (GtkPrintSettings *settings,
                                                             const gchar *key,
                                                             gint value);

Sets `key` to an integer value.

`settings` : | a GtkPrintSettings
`key` : | a key
`value` : | an integer

Since 2.10

### GTK_PRINT_SETTINGS_PRINTER

    #define GTK_PRINT_SETTINGS_PRINTER          "printer"

### gtk_print_settings_get_printer ()

    const gchar *       gtk_print_settings_get_printer      (GtkPrintSettings *settings);

Convenience function to obtain the value of `GTK_PRINT_SETTINGS_PRINTER`.

`settings` : | a GtkPrintSettings
Returns : | the printer name

Since 2.10

### gtk_print_settings_set_printer ()

    void                gtk_print_settings_set_printer      (GtkPrintSettings *settings,
                                                             const gchar *printer);

Convenience function to set `GTK_PRINT_SETTINGS_PRINTER` to `printer`.

`settings` : | a GtkPrintSettings
`printer` : | the printer name

Since 2.10

### enum GtkPageOrientation

    typedef enum {
      GTK_PAGE_ORIENTATION_PORTRAIT,
      GTK_PAGE_ORIENTATION_LANDSCAPE,
      GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT,
      GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE
    } GtkPageOrientation;

### GTK_PRINT_SETTINGS_ORIENTATION

    #define GTK_PRINT_SETTINGS_ORIENTATION      "orientation"

### gtk_print_settings_get_orientation ()

    GtkPageOrientation  gtk_print_settings_get_orientation  (GtkPrintSettings *settings);

Get the value of `GTK_PRINT_SETTINGS_ORIENTATION`, converted to a GtkPageOrientation.

`settings` : | a GtkPrintSettings
Returns : | the orientation

Since 2.10

### gtk_print_settings_set_orientation ()

    void                gtk_print_settings_set_orientation  (GtkPrintSettings *settings,
                                                             GtkPageOrientation orientation);

Sets the value of `GTK_PRINT_SETTINGS_ORIENTATION`.

`settings` : | a GtkPrintSettings
`orientation` : | a page orientation

Since 2.10

### GTK_PRINT_SETTINGS_PAPER_FORMAT

    #define GTK_PRINT_SETTINGS_PAPER_FORMAT     "paper-format"

### gtk_print_settings_get_paper_size ()

    GtkPaperSize *      gtk_print_settings_get_paper_size   (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_PAPER_FORMAT`, converted to a GtkPaperSize.

`settings` : | a GtkPrintSettings
Returns : | the paper size

Since 2.10

### gtk_print_settings_set_paper_size ()

    void                gtk_print_settings_set_paper_size   (GtkPrintSettings *settings,
                                                             GtkPaperSize *paper_size);

Sets the value of `GTK_PRINT_SETTINGS_PAPER_FORMAT`, `GTK_PRINT_SETTINGS_PAPER_WIDTH` and `GTK_PRINT_SETTINGS_PAPER_HEIGHT`.

`settings` : | a GtkPrintSettings
`paper_size` : | a paper size

Since 2.10

### GTK_PRINT_SETTINGS_PAPER_WIDTH

    #define GTK_PRINT_SETTINGS_PAPER_WIDTH      "paper-width"

### gtk_print_settings_get_paper_width ()

    gdouble             gtk_print_settings_get_paper_width  (GtkPrintSettings *settings,
                                                             GtkUnit unit);

Gets the value of `GTK_PRINT_SETTINGS_PAPER_WIDTH`, converted to `unit`.

`settings` : | a GtkPrintSettings
`unit` : | the unit for the return value
Returns : | the paper width, in units of `unit`

Since 2.10

### gtk_print_settings_set_paper_width ()

    void                gtk_print_settings_set_paper_width  (GtkPrintSettings *settings,
                                                             gdouble width,
                                                             GtkUnit unit);

Sets the value of `GTK_PRINT_SETTINGS_PAPER_WIDTH`.

`settings` : | a GtkPrintSettings
`width` : | the paper width
`unit` : | the units of `width`

Since 2.10

### GTK_PRINT_SETTINGS_PAPER_HEIGHT

    #define GTK_PRINT_SETTINGS_PAPER_HEIGHT     "paper-height"

### gtk_print_settings_get_paper_height ()

    gdouble             gtk_print_settings_get_paper_height (GtkPrintSettings *settings,
                                                             GtkUnit unit);

Gets the value of `GTK_PRINT_SETTINGS_PAPER_HEIGHT`, converted to `unit`.

`settings` : | a GtkPrintSettings
`unit` : | the unit for the return value
Returns : | the paper height, in units of `unit`

Since 2.10

### gtk_print_settings_set_paper_height ()

    void                gtk_print_settings_set_paper_height (GtkPrintSettings *settings,
                                                             gdouble height,
                                                             GtkUnit unit);

Sets the value of `GTK_PRINT_SETTINGS_PAPER_HEIGHT`.

`settings` : | a GtkPrintSettings
`height` : | the paper height
`unit` : | the units of `height`

Since 2.10

### GTK_PRINT_SETTINGS_USE_COLOR

    #define GTK_PRINT_SETTINGS_USE_COLOR        "use-color"

### gtk_print_settings_get_use_color ()

    gboolean            gtk_print_settings_get_use_color    (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_USE_COLOR`.

`settings` : | a GtkPrintSettings
Returns : | whether to use color

Since 2.10

### gtk_print_settings_set_use_color ()

    void                gtk_print_settings_set_use_color    (GtkPrintSettings *settings,
                                                             gboolean use_color);

Sets the value of `GTK_PRINT_SETTINGS_USE_COLOR`.

`settings` : | a GtkPrintSettings
`use_color` : | whether to use color

Since 2.10

### GTK_PRINT_SETTINGS_COLLATE

    #define GTK_PRINT_SETTINGS_COLLATE          "collate"

### gtk_print_settings_get_collate ()

    gboolean            gtk_print_settings_get_collate      (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_COLLATE`.

`settings` : | a GtkPrintSettings
Returns : | whether to collate the printed pages

Since 2.10

### gtk_print_settings_set_collate ()

    void                gtk_print_settings_set_collate      (GtkPrintSettings *settings,
                                                             gboolean collate);

Sets the value of `GTK_PRINT_SETTINGS_COLLATE`.

`settings` : | a GtkPrintSettings
`collate` : | whether to collate the output

Since 2.10

### GTK_PRINT_SETTINGS_REVERSE

    #define GTK_PRINT_SETTINGS_REVERSE          "reverse"

### gtk_print_settings_get_reverse ()

    gboolean            gtk_print_settings_get_reverse      (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_REVERSE`.

`settings` : | a GtkPrintSettings
Returns : | whether to reverse the order of the printed pages

Since 2.10

### gtk_print_settings_set_reverse ()

    void                gtk_print_settings_set_reverse      (GtkPrintSettings *settings,
                                                             gboolean reverse);

Sets the value of `GTK_PRINT_SETTINGS_REVERSE`.

`settings` : | a GtkPrintSettings
`reverse` : | whether to reverse the output

Since 2.10

### enum GtkPrintDuplex

    typedef enum {
      GTK_PRINT_DUPLEX_SIMPLEX,
      GTK_PRINT_DUPLEX_HORIZONTAL,
      GTK_PRINT_DUPLEX_VERTICAL
    } GtkPrintDuplex;

### GTK_PRINT_SETTINGS_DUPLEX

    #define GTK_PRINT_SETTINGS_DUPLEX           "duplex"

### gtk_print_settings_get_duplex ()

    GtkPrintDuplex      gtk_print_settings_get_duplex       (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_DUPLEX`.

`settings` : | a GtkPrintSettings
Returns : | whether to print the output in duplex.

Since 2.10

### gtk_print_settings_set_duplex ()

    void                gtk_print_settings_set_duplex       (GtkPrintSettings *settings,
                                                             GtkPrintDuplex duplex);

Sets the value of `GTK_PRINT_SETTINGS_DUPLEX`.

`settings` : | a GtkPrintSettings
`duplex` : | a GtkPrintDuplex value

Since 2.10

### enum GtkPrintQuality

    typedef enum {
      GTK_PRINT_QUALITY_LOW,
      GTK_PRINT_QUALITY_NORMAL,
      GTK_PRINT_QUALITY_HIGH,
      GTK_PRINT_QUALITY_DRAFT
    } GtkPrintQuality;

### GTK_PRINT_SETTINGS_QUALITY

    #define GTK_PRINT_SETTINGS_QUALITY          "quality"

### gtk_print_settings_get_quality ()

    GtkPrintQuality     gtk_print_settings_get_quality      (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_QUALITY`.

`settings` : | a GtkPrintSettings
Returns : | the print quality

Since 2.10

### gtk_print_settings_set_quality ()

    void                gtk_print_settings_set_quality      (GtkPrintSettings *settings,
                                                             GtkPrintQuality quality);

Sets the value of `GTK_PRINT_SETTINGS_QUALITY`.

`settings` : | a GtkPrintSettings
`quality` : | a GtkPrintQuality value

Since 2.10

### GTK_PRINT_SETTINGS_N_COPIES

    #define GTK_PRINT_SETTINGS_N_COPIES         "n-copies"

### gtk_print_settings_get_n_copies ()

    gint                gtk_print_settings_get_n_copies     (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_N_COPIES`.

`settings` : | a GtkPrintSettings
Returns : | the number of copies to print

Since 2.10

### gtk_print_settings_set_n_copies ()

    void                gtk_print_settings_set_n_copies     (GtkPrintSettings *settings,
                                                             gint num_copies);

Sets the value of `GTK_PRINT_SETTINGS_N_COPIES`.

`settings` : | a GtkPrintSettings
`num_copies` : | the number of copies

Since 2.10

### GTK_PRINT_SETTINGS_NUMBER_UP

    #define GTK_PRINT_SETTINGS_NUMBER_UP        "number-up"

### gtk_print_settings_get_number_up ()

    gint                gtk_print_settings_get_number_up    (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_NUMBER_UP`.

`settings` : | a GtkPrintSettings
Returns : | the number of pages per sheet

Since 2.10

### gtk_print_settings_set_number_up ()

    void                gtk_print_settings_set_number_up    (GtkPrintSettings *settings,
                                                             gint number_up);

Sets the value of `GTK_PRINT_SETTINGS_NUMBER_UP`.

`settings` : | a GtkPrintSettings
`number_up` : | the number of pages per sheet

Since 2.10

### enum GtkNumberUpLayout

    typedef enum {
      GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM, /*< nick=lrtb >*/
      GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP, /*< nick=lrbt >*/
      GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM, /*< nick=rltb >*/
      GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP, /*< nick=rlbt >*/
      GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT, /*< nick=tblr >*/
      GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT, /*< nick=tbrl >*/
      GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT, /*< nick=btlr >*/
      GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT  /*< nick=btrl >*/
    } GtkNumberUpLayout;

Used to determine the layout of pages on a sheet when printing multiple pages per sheet.

`GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM` |
`GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP` |
`GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM` |
`GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP` |
`GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT` |
`GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT` |
`GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT` |
`GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT` |

### GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT

    #define GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT "number-up-layout"

### gtk_print_settings_get_number_up_layout ()

    GtkNumberUpLayout   gtk_print_settings_get_number_up_layout
                                                            (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT`.

`settings` : | a GtkPrintSettings
Returns : | layout of page in number-up mode

Since 2.14

### gtk_print_settings_set_number_up_layout ()

    void                gtk_print_settings_set_number_up_layout
                                                            (GtkPrintSettings *settings,
                                                             GtkNumberUpLayout number_up_layout);

Sets the value of `GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT`.

`settings` : | a GtkPrintSettings
`number_up_layout` : | a GtkNumberUpLayout value

Since 2.14

### GTK_PRINT_SETTINGS_RESOLUTION

    #define GTK_PRINT_SETTINGS_RESOLUTION       "resolution"

### gtk_print_settings_get_resolution ()

    gint                gtk_print_settings_get_resolution   (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_RESOLUTION`.

`settings` : | a GtkPrintSettings
Returns : | the resolution in dpi

Since 2.10

### gtk_print_settings_set_resolution ()

    void                gtk_print_settings_set_resolution   (GtkPrintSettings *settings,
                                                             gint resolution);

Sets the values of `GTK_PRINT_SETTINGS_RESOLUTION`, `GTK_PRINT_SETTINGS_RESOLUTION_X` and `GTK_PRINT_SETTINGS_RESOLUTION_Y`.

`settings` : | a GtkPrintSettings
`resolution` : | the resolution in dpi

Since 2.10

### gtk_print_settings_set_resolution_xy ()

    void                gtk_print_settings_set_resolution_xy
                                                            (GtkPrintSettings *settings,
                                                             gint resolution_x,
                                                             gint resolution_y);

Sets the values of `GTK_PRINT_SETTINGS_RESOLUTION`, `GTK_PRINT_SETTINGS_RESOLUTION_X` and `GTK_PRINT_SETTINGS_RESOLUTION_Y`.

`settings` : | a GtkPrintSettings
`resolution_x` : | the horizontal resolution in dpi
`resolution_y` : | the vertical resolution in dpi

Since 2.16

### GTK_PRINT_SETTINGS_RESOLUTION_X

    #define GTK_PRINT_SETTINGS_RESOLUTION_X     "resolution-x"

### gtk_print_settings_get_resolution_x ()

    gint                gtk_print_settings_get_resolution_x (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_RESOLUTION_X`.

`settings` : | a GtkPrintSettings
Returns : | the horizontal resolution in dpi

Since 2.16

### GTK_PRINT_SETTINGS_RESOLUTION_Y

    #define GTK_PRINT_SETTINGS_RESOLUTION_Y     "resolution-y"

### gtk_print_settings_get_resolution_y ()

    gint                gtk_print_settings_get_resolution_y (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_RESOLUTION_Y`.

`settings` : | a GtkPrintSettings
Returns : | the vertical resolution in dpi

Since 2.16

### GTK_PRINT_SETTINGS_PRINTER_LPI

    #define GTK_PRINT_SETTINGS_PRINTER_LPI      "printer-lpi"

### gtk_print_settings_get_printer_lpi ()

    gdouble             gtk_print_settings_get_printer_lpi  (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_PRINTER_LPI`.

`settings` : | a GtkPrintSettings
Returns : | the resolution in lpi (lines per inch)

Since 2.16

### gtk_print_settings_set_printer_lpi ()

    void                gtk_print_settings_set_printer_lpi  (GtkPrintSettings *settings,
                                                             gdouble lpi);

Sets the value of `GTK_PRINT_SETTINGS_PRINTER_LPI`.

`settings` : | a GtkPrintSettings
`lpi` : | the resolution in lpi (lines per inch)

Since 2.16

### GTK_PRINT_SETTINGS_SCALE

    #define GTK_PRINT_SETTINGS_SCALE            "scale"

### gtk_print_settings_get_scale ()

    gdouble             gtk_print_settings_get_scale        (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_SCALE`.

`settings` : | a GtkPrintSettings
Returns : | the scale in percent

Since 2.10

### gtk_print_settings_set_scale ()

    void                gtk_print_settings_set_scale        (GtkPrintSettings *settings,
                                                             gdouble scale);

Sets the value of `GTK_PRINT_SETTINGS_SCALE`.

`settings` : | a GtkPrintSettings
`scale` : | the scale in percent

Since 2.10

### enum GtkPrintPages

    typedef enum {
      GTK_PRINT_PAGES_ALL,
      GTK_PRINT_PAGES_CURRENT,
      GTK_PRINT_PAGES_RANGES,
      GTK_PRINT_PAGES_SELECTION
    } GtkPrintPages;

### GTK_PRINT_SETTINGS_PRINT_PAGES

    #define GTK_PRINT_SETTINGS_PRINT_PAGES      "print-pages"

### gtk_print_settings_get_print_pages ()

    GtkPrintPages       gtk_print_settings_get_print_pages  (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_PRINT_PAGES`.

`settings` : | a GtkPrintSettings
Returns : | which pages to print

Since 2.10

### gtk_print_settings_set_print_pages ()

    void                gtk_print_settings_set_print_pages  (GtkPrintSettings *settings,
                                                             GtkPrintPages pages);

Sets the value of `GTK_PRINT_SETTINGS_PRINT_PAGES`.

`settings` : | a GtkPrintSettings
`pages` : | a GtkPrintPages value

Since 2.10

### struct GtkPageRange

    struct GtkPageRange {
      gint start;
      gint end;
    };

### GTK_PRINT_SETTINGS_PAGE_RANGES

    #define GTK_PRINT_SETTINGS_PAGE_RANGES      "page-ranges"

### gtk_print_settings_get_page_ranges ()

    GtkPageRange *      gtk_print_settings_get_page_ranges  (GtkPrintSettings *settings,
                                                             gint *num_ranges);

Gets the value of `GTK_PRINT_SETTINGS_PAGE_RANGES`.

`settings` : | a GtkPrintSettings
`num_ranges` : | return location for the length of the returned array. [out]
Returns : | an array of GtkPageRanges. Use `g_free()` to free the array when it is no longer needed. [array length=num_ranges][transfer full]

Since 2.10

### gtk_print_settings_set_page_ranges ()

    void                gtk_print_settings_set_page_ranges  (GtkPrintSettings *settings,
                                                             GtkPageRange *page_ranges,
                                                             gint num_ranges);

Sets the value of `GTK_PRINT_SETTINGS_PAGE_RANGES`.

`settings` : | a GtkPrintSettings
`page_ranges` : | an array of GtkPageRanges. [array length=num_ranges]
`num_ranges` : | the length of `page_ranges`

Since 2.10

### enum GtkPageSet

    typedef enum {
      GTK_PAGE_SET_ALL,
      GTK_PAGE_SET_EVEN,
      GTK_PAGE_SET_ODD
    } GtkPageSet;

### GTK_PRINT_SETTINGS_PAGE_SET

    #define GTK_PRINT_SETTINGS_PAGE_SET         "page-set"

### gtk_print_settings_get_page_set ()

    GtkPageSet          gtk_print_settings_get_page_set     (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_PAGE_SET`.

`settings` : | a GtkPrintSettings
Returns : | the set of pages to print

Since 2.10

### gtk_print_settings_set_page_set ()

    void                gtk_print_settings_set_page_set     (GtkPrintSettings *settings,
                                                             GtkPageSet page_set);

Sets the value of `GTK_PRINT_SETTINGS_PAGE_SET`.

`settings` : | a GtkPrintSettings
`page_set` : | a GtkPageSet value

Since 2.10

### GTK_PRINT_SETTINGS_DEFAULT_SOURCE

    #define GTK_PRINT_SETTINGS_DEFAULT_SOURCE   "default-source"

### gtk_print_settings_get_default_source ()

    const gchar *       gtk_print_settings_get_default_source
                                                            (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_DEFAULT_SOURCE`.

`settings` : | a GtkPrintSettings
Returns : | the default source

Since 2.10

### gtk_print_settings_set_default_source ()

    void                gtk_print_settings_set_default_source
                                                            (GtkPrintSettings *settings,
                                                             const gchar *default_source);

Sets the value of `GTK_PRINT_SETTINGS_DEFAULT_SOURCE`.

`settings` : | a GtkPrintSettings
`default_source` : | the default source

Since 2.10

### GTK_PRINT_SETTINGS_MEDIA_TYPE

    #define GTK_PRINT_SETTINGS_MEDIA_TYPE       "media-type"

### gtk_print_settings_get_media_type ()

    const gchar *       gtk_print_settings_get_media_type   (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_MEDIA_TYPE`.

The set of media types is defined in PWG 5101.1-2002 PWG.

`settings` : | a GtkPrintSettings
Returns : | the media type

Since 2.10

### gtk_print_settings_set_media_type ()

    void                gtk_print_settings_set_media_type   (GtkPrintSettings *settings,
                                                             const gchar *media_type);

Sets the value of `GTK_PRINT_SETTINGS_MEDIA_TYPE`.

The set of media types is defined in PWG 5101.1-2002 PWG.

`settings` : | a GtkPrintSettings
`media_type` : | the media type

Since 2.10

### GTK_PRINT_SETTINGS_DITHER

    #define GTK_PRINT_SETTINGS_DITHER           "dither"

### gtk_print_settings_get_dither ()

    const gchar *       gtk_print_settings_get_dither       (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_DITHER`.

`settings` : | a GtkPrintSettings
Returns : | the dithering that is used

Since 2.10

### gtk_print_settings_set_dither ()

    void                gtk_print_settings_set_dither       (GtkPrintSettings *settings,
                                                             const gchar *dither);

Sets the value of `GTK_PRINT_SETTINGS_DITHER`.

`settings` : | a GtkPrintSettings
`dither` : | the dithering that is used

Since 2.10

### GTK_PRINT_SETTINGS_FINISHINGS

    #define GTK_PRINT_SETTINGS_FINISHINGS       "finishings"

### gtk_print_settings_get_finishings ()

    const gchar *       gtk_print_settings_get_finishings   (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_FINISHINGS`.

`settings` : | a GtkPrintSettings
Returns : | the finishings

Since 2.10

### gtk_print_settings_set_finishings ()

    void                gtk_print_settings_set_finishings   (GtkPrintSettings *settings,
                                                             const gchar *finishings);

Sets the value of `GTK_PRINT_SETTINGS_FINISHINGS`.

`settings` : | a GtkPrintSettings
`finishings` : | the finishings

Since 2.10

### GTK_PRINT_SETTINGS_OUTPUT_BIN

    #define GTK_PRINT_SETTINGS_OUTPUT_BIN       "output-bin"

### gtk_print_settings_get_output_bin ()

    const gchar *       gtk_print_settings_get_output_bin   (GtkPrintSettings *settings);

Gets the value of `GTK_PRINT_SETTINGS_OUTPUT_BIN`.

`settings` : | a GtkPrintSettings
Returns : | the output bin

Since 2.10

### gtk_print_settings_set_output_bin ()

    void                gtk_print_settings_set_output_bin   (GtkPrintSettings *settings,
                                                             const gchar *output_bin);

Sets the value of `GTK_PRINT_SETTINGS_OUTPUT_BIN`.

`settings` : | a GtkPrintSettings
`output_bin` : | the output bin

Since 2.10

### GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT

    #define GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT  "output-file-format"

The key used by the "Print to file" printer to store the format of the output. The supported values are "PS" and "PDF".

### GTK_PRINT_SETTINGS_OUTPUT_URI

    #define GTK_PRINT_SETTINGS_OUTPUT_URI          "output-uri"

The key used by the "Print to file" printer to store the URI to which the output should be written. GTK+ itself supports only "file://" URIs.

### GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA

    #define GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA   "win32-driver-extra"

### GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION

    #define GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION "win32-driver-version"

### gtk_print_settings_new_from_file ()

    GtkPrintSettings *  gtk_print_settings_new_from_file    (const gchar *file_name,
                                                             GError **error);

Reads the print settings from `file_name`. Returns a new GtkPrintSettings object with the restored settings, or `NULL` if an error occurred. If the file could not be loaded then error is set to either a GFileError or GKeyFileError. See `gtk_print_settings_to_file()`.

`file_name` : | the filename to read the settings from. [type filename]
`error` : | return location for errors, or `NULL`. [allow-none]
Returns : | the restored GtkPrintSettings

Since 2.12

### gtk_print_settings_new_from_key_file ()

    GtkPrintSettings *  gtk_print_settings_new_from_key_file
                                                            (GKeyFile *key_file,
                                                             const gchar *group_name,
                                                             GError **error);

Reads the print settings from the group `group_name` in `key_file`. Returns a new GtkPrintSettings object with the restored settings, or `NULL` if an error occurred. If the file could not be loaded then error is set to either a GFileError or GKeyFileError.

`key_file` : | the GKeyFile to retrieve the settings from
`group_name` : | the name of the group to use, or `NULL` to use the default "Print Settings". [allow-none]
`error` : | return location for errors, or `NULL`. [allow-none]
Returns : | the restored GtkPrintSettings

Since 2.12

### gtk_print_settings_load_file ()

    gboolean            gtk_print_settings_load_file        (GtkPrintSettings *settings,
                                                             const gchar *file_name,
                                                             GError **error);

Reads the print settings from `file_name`. If the file could not be loaded then error is set to either a GFileError or GKeyFileError. See `gtk_print_settings_to_file()`.

`settings` : | a GtkPrintSettings
`file_name` : | the filename to read the settings from. [type filename]
`error` : | return location for errors, or `NULL`. [allow-none]
Returns : | `TRUE` on success

Since 2.14

### gtk_print_settings_load_key_file ()

    gboolean            gtk_print_settings_load_key_file    (GtkPrintSettings *settings,
                                                             GKeyFile *key_file,
                                                             const gchar *group_name,
                                                             GError **error);

Reads the print settings from the group `group_name` in `key_file`. If the file could not be loaded then error is set to either a GFileError or GKeyFileError.

`settings` : | a GtkPrintSettings
`key_file` : | the GKeyFile to retrieve the settings from
`group_name` : | the name of the group to use, or `NULL` to use the default "Print Settings". [allow-none]
`error` : | return location for errors, or `NULL`. [allow-none]
Returns : | `TRUE` on success

Since 2.14

### gtk_print_settings_to_file ()

    gboolean            gtk_print_settings_to_file          (GtkPrintSettings *settings,
                                                             const gchar *file_name,
                                                             GError **error);

This function saves the print settings from `settings` to `file_name`. If the file could not be loaded then error is set to either a GFileError or GKeyFileError.

`settings` : | a GtkPrintSettings
`file_name` : | the file to save to. [type filename]
`error` : | return location for errors, or `NULL`. [allow-none]
Returns : | `TRUE` on success

Since 2.12

### gtk_print_settings_to_key_file ()

    void                gtk_print_settings_to_key_file      (GtkPrintSettings *settings,
                                                             GKeyFile *key_file,
                                                             const gchar *group_name);

This function adds the print settings from `settings` to `key_file`.

`settings` : | a GtkPrintSettings
`key_file` : | the GKeyFile to save the print settings to
`group_name` : | the group to add the settings to in `key_file`, or `NULL` to use the default "Print Settings"

Since 2.12