GtkPrintJob

GtkPrintJob — Represents a print job

Synopsis

#include <gtk/gtkprintjob.h>

struct              GtkPrintJob;
void                (*GtkPrintJobCompleteFunc)          (GtkPrintJob *print_job,
                                                         gpointer user_data,
                                                         const GError *error);
GtkPrintJob *       gtk_print_job_new                   (const gchar *title,
                                                         GtkPrinter *printer,
                                                         GtkPrintSettings *settings,
                                                         GtkPageSetup *page_setup);
GtkPrintSettings *  gtk_print_job_get_settings          (GtkPrintJob *job);
GtkPrinter *        gtk_print_job_get_printer           (GtkPrintJob *job);
const gchar *       gtk_print_job_get_title             (GtkPrintJob *job);
GtkPrintStatus      gtk_print_job_get_status            (GtkPrintJob *job);
gboolean            gtk_print_job_set_source_file       (GtkPrintJob *job,
                                                         const gchar *filename,
                                                         GError **error);
cairo_surface_t *   gtk_print_job_get_surface           (GtkPrintJob *job,
                                                         GError **error);
void                gtk_print_job_send                  (GtkPrintJob *job,
                                                         GtkPrintJobCompleteFunc callback,
                                                         gpointer user_data,
                                                         GDestroyNotify dnotify);
void                gtk_print_job_set_track_print_status
                                                        (GtkPrintJob *job,
                                                         gboolean track_status);
gboolean            gtk_print_job_get_track_print_status
                                                        (GtkPrintJob *job);
GtkPrintPages       gtk_print_job_get_pages             (GtkPrintJob *job);
void                gtk_print_job_set_pages             (GtkPrintJob *job,
                                                         GtkPrintPages pages);
GtkPageRange *      gtk_print_job_get_page_ranges       (GtkPrintJob *job,
                                                         gint *n_ranges);
void                gtk_print_job_set_page_ranges       (GtkPrintJob *job,
                                                         GtkPageRange *ranges,
                                                         gint n_ranges);
GtkPageSet          gtk_print_job_get_page_set          (GtkPrintJob *job);
void                gtk_print_job_set_page_set          (GtkPrintJob *job,
                                                         GtkPageSet page_set);
gint                gtk_print_job_get_num_copies        (GtkPrintJob *job);
void                gtk_print_job_set_num_copies        (GtkPrintJob *job,
                                                         gint num_copies);
gdouble             gtk_print_job_get_scale             (GtkPrintJob *job);
void                gtk_print_job_set_scale             (GtkPrintJob *job,
                                                         gdouble scale);
guint               gtk_print_job_get_n_up              (GtkPrintJob *job);
void                gtk_print_job_set_n_up              (GtkPrintJob *job,
                                                         guint n_up);
GtkNumberUpLayout   gtk_print_job_get_n_up_layout       (GtkPrintJob *job);
void                gtk_print_job_set_n_up_layout       (GtkPrintJob *job,
                                                         GtkNumberUpLayout layout);
gboolean            gtk_print_job_get_rotate            (GtkPrintJob *job);
void                gtk_print_job_set_rotate            (GtkPrintJob *job,
                                                         gboolean rotate);
gboolean            gtk_print_job_get_collate           (GtkPrintJob *job);
void                gtk_print_job_set_collate           (GtkPrintJob *job,
                                                         gboolean collate);
gboolean            gtk_print_job_get_reverse           (GtkPrintJob *job);
void                gtk_print_job_set_reverse           (GtkPrintJob *job,
                                                         gboolean reverse);

Object Hierarchy

  GObject
   +----GtkPrintJob

Properties

  "page-setup"               GtkPageSetup*         : Read / Write / Construct Only
  "printer"                  GtkPrinter*           : Read / Write / Construct Only
  "settings"                 GtkPrintSettings*     : Read / Write / Construct Only
  "title"                    gchar*                : Read / Write / Construct Only
  "track-print-status"       gboolean              : Read / Write

Signals

  "status-changed"                                 : Run Last

Description

A GtkPrintJob object represents a job that is sent to a printer. You only need to deal directly with print jobs if you use the non-portable GtkPrintUnixDialog API.

Use gtk_print_job_get_surface() to obtain the cairo surface onto which the pages must be drawn. Use gtk_print_job_send() to send the finished job to the printer. If you don't use cairo GtkPrintJob also supports printing of manually generated postscript, via gtk_print_job_set_source_file().

Details

struct GtkPrintJob

struct GtkPrintJob;


GtkPrintJobCompleteFunc ()

void                (*GtkPrintJobCompleteFunc)          (GtkPrintJob *print_job,
                                                         gpointer user_data,
                                                         const GError *error);

The type of callback that is passed to gtk_print_job_send(). It is called when the print job has been completely sent.

print_job :

the GtkPrintJob

user_data :

user data that has been passed to gtk_print_job_send()

error :

a GError that contains error information if the sending of the print job failed, otherwise NULL

gtk_print_job_new ()

GtkPrintJob *       gtk_print_job_new                   (const gchar *title,
                                                         GtkPrinter *printer,
                                                         GtkPrintSettings *settings,
                                                         GtkPageSetup *page_setup);

Creates a new GtkPrintJob.

title :

the job title

printer :

a GtkPrinter

settings :

a GtkPrintSettings

page_setup :

a GtkPageSetup

Returns :

a new GtkPrintJob

Since 2.10


gtk_print_job_get_settings ()

GtkPrintSettings *  gtk_print_job_get_settings          (GtkPrintJob *job);

Gets the GtkPrintSettings of the print job.

job :

a GtkPrintJob

Returns :

the settings of job. [transfer none]

Since 2.10


gtk_print_job_get_printer ()

GtkPrinter *        gtk_print_job_get_printer           (GtkPrintJob *job);

Gets the GtkPrinter of the print job.

job :

a GtkPrintJob

Returns :

the printer of job. [transfer none]

Since 2.10


gtk_print_job_get_title ()

const gchar *       gtk_print_job_get_title             (GtkPrintJob *job);

Gets the job title.

job :

a GtkPrintJob

Returns :

the title of job

Since 2.10


gtk_print_job_get_status ()

GtkPrintStatus      gtk_print_job_get_status            (GtkPrintJob *job);

Gets the status of the print job.

job :

a GtkPrintJob

Returns :

the status of job

Since 2.10


gtk_print_job_set_source_file ()

gboolean            gtk_print_job_set_source_file       (GtkPrintJob *job,
                                                         const gchar *filename,
                                                         GError **error);

Make the GtkPrintJob send an existing document to the printing system. The file can be in any format understood by the platforms printing system (typically PostScript, but on many platforms PDF may work too). See gtk_printer_accepts_pdf() and gtk_printer_accepts_ps().

job :

a GtkPrintJob

filename :

the file to be printed. [type filename]

error :

return location for errors

Returns :

FALSE if an error occurred

Since 2.10


gtk_print_job_get_surface ()

cairo_surface_t *   gtk_print_job_get_surface           (GtkPrintJob *job,
                                                         GError **error);

Gets a cairo surface onto which the pages of the print job should be rendered.

job :

a GtkPrintJob

error :

return location for errors, or NULL. [allow-none]

Returns :

the cairo surface of job. [transfer none]

Since 2.10


gtk_print_job_send ()

void                gtk_print_job_send                  (GtkPrintJob *job,
                                                         GtkPrintJobCompleteFunc callback,
                                                         gpointer user_data,
                                                         GDestroyNotify dnotify);

Sends the print job off to the printer.

job :

a GtkPrintJob

callback :

function to call when the job completes or an error occurs

user_data :

user data that gets passed to callback

dnotify :

destroy notify for user_data

Since 2.10


gtk_print_job_set_track_print_status ()

void                gtk_print_job_set_track_print_status
                                                        (GtkPrintJob *job,
                                                         gboolean track_status);

If track_status is TRUE, the print job will try to continue report on the status of the print job in the printer queues and printer. This can allow your application to show things like "out of paper" issues, and when the print job actually reaches the printer.

This function is often implemented using some form of polling, so it should not be enabled unless needed.

job :

a GtkPrintJob

track_status :

TRUE to track status after printing

Since 2.10


gtk_print_job_get_track_print_status ()

gboolean            gtk_print_job_get_track_print_status
                                                        (GtkPrintJob *job);

Returns wheter jobs will be tracked after printing. For details, see gtk_print_job_set_track_print_status().

job :

a GtkPrintJob

Returns :

TRUE if print job status will be reported after printing

Since 2.10


gtk_print_job_get_pages ()

GtkPrintPages       gtk_print_job_get_pages             (GtkPrintJob *job);

Gets the GtkPrintPages setting for this job.

job :

a GtkPrintJob

Returns :

the GtkPrintPages setting

Since 3.0


gtk_print_job_set_pages ()

void                gtk_print_job_set_pages             (GtkPrintJob *job,
                                                         GtkPrintPages pages);

Sets the GtkPrintPages setting for this job.

job :

a GtkPrintJob

pages :

the GtkPrintPages setting

Since 3.0


gtk_print_job_get_page_ranges ()

GtkPageRange *      gtk_print_job_get_page_ranges       (GtkPrintJob *job,
                                                         gint *n_ranges);

Gets the page ranges for this job.

job :

a GtkPrintJob

n_ranges :

return location for the number of ranges. [out]

Returns :

a pointer to an array of GtkPageRange structs. [array length=n_ranges][transfer none]

Since 3.0


gtk_print_job_set_page_ranges ()

void                gtk_print_job_set_page_ranges       (GtkPrintJob *job,
                                                         GtkPageRange *ranges,
                                                         gint n_ranges);

Sets the page ranges for this job.

job :

a GtkPrintJob

ranges :

pointer to an array of GtkPageRange structs. [array length=n_ranges]

n_ranges :

the length of the ranges array

Since 3.0


gtk_print_job_get_page_set ()

GtkPageSet          gtk_print_job_get_page_set          (GtkPrintJob *job);

Gets the GtkPageSet setting for this job.

job :

a GtkPrintJob

Returns :

the GtkPageSet setting

Since 3.0


gtk_print_job_set_page_set ()

void                gtk_print_job_set_page_set          (GtkPrintJob *job,
                                                         GtkPageSet page_set);

Sets the GtkPageSet setting for this job.

job :

a GtkPrintJob

page_set :

a GtkPageSet setting

Since 3.0


gtk_print_job_get_num_copies ()

gint                gtk_print_job_get_num_copies        (GtkPrintJob *job);

Gets the number of copies of this job.

job :

a GtkPrintJob

Returns :

the number of copies

Since 3.0


gtk_print_job_set_num_copies ()

void                gtk_print_job_set_num_copies        (GtkPrintJob *job,
                                                         gint num_copies);

Sets the number of copies for this job.

job :

a GtkPrintJob

num_copies :

the number of copies

Since 3.0


gtk_print_job_get_scale ()

gdouble             gtk_print_job_get_scale             (GtkPrintJob *job);

Gets the scale for this job (where 1.0 means unscaled).

job :

a GtkPrintJob

Returns :

the scale

Since 3.0


gtk_print_job_set_scale ()

void                gtk_print_job_set_scale             (GtkPrintJob *job,
                                                         gdouble scale);

Sets the scale for this job (where 1.0 means unscaled).

job :

a GtkPrintJob

scale :

the scale

Since 3.0


gtk_print_job_get_n_up ()

guint               gtk_print_job_get_n_up              (GtkPrintJob *job);

Gets the n-up setting for this job.

job :

a GtkPrintJob

Returns :

the n-up setting

Since 3.0


gtk_print_job_set_n_up ()

void                gtk_print_job_set_n_up              (GtkPrintJob *job,
                                                         guint n_up);

Sets the n-up setting for this job.

job :

a GtkPrintJob

n_up :

the n-up value

Since 3.0


gtk_print_job_get_n_up_layout ()

GtkNumberUpLayout   gtk_print_job_get_n_up_layout       (GtkPrintJob *job);

Gets the n-up layout setting for this job.

job :

a GtkPrintJob

Returns :

the n-up layout

Since 3.0


gtk_print_job_set_n_up_layout ()

void                gtk_print_job_set_n_up_layout       (GtkPrintJob *job,
                                                         GtkNumberUpLayout layout);

Sets the n-up layout setting for this job.

job :

a GtkPrintJob

layout :

the n-up layout setting

Since 3.0


gtk_print_job_get_rotate ()

gboolean            gtk_print_job_get_rotate            (GtkPrintJob *job);

Gets whether the job is printed rotated.

job :

a GtkPrintJob

Returns :

whether the job is printed rotated

Since 3.0


gtk_print_job_set_rotate ()

void                gtk_print_job_set_rotate            (GtkPrintJob *job,
                                                         gboolean rotate);

Sets whether this job is printed rotated.

job :

a GtkPrintJob

rotate :

whether to print rotated

Since 3.0


gtk_print_job_get_collate ()

gboolean            gtk_print_job_get_collate           (GtkPrintJob *job);

Gets whether this job is printed collated.

job :

a GtkPrintJob

Returns :

whether the job is printed collated

Since 3.0


gtk_print_job_set_collate ()

void                gtk_print_job_set_collate           (GtkPrintJob *job,
                                                         gboolean collate);

Sets whether this job is printed collated.

job :

a GtkPrintJob

collate :

whether the job is printed collated

Since 3.0


gtk_print_job_get_reverse ()

gboolean            gtk_print_job_get_reverse           (GtkPrintJob *job);

Gets whether this job is printed reversed.

job :

a GtkPrintJob

Returns :

whether the job is printed reversed.

Since 3.0


gtk_print_job_set_reverse ()

void                gtk_print_job_set_reverse           (GtkPrintJob *job,
                                                         gboolean reverse);

Sets whether this job is printed reversed.

job :

a GtkPrintJob

reverse :

whether the job is printed reversed

Since 3.0

Property Details

The "page-setup" property

  "page-setup"               GtkPageSetup*         : Read / Write / Construct Only

Page Setup.


The "printer" property

  "printer"                  GtkPrinter*           : Read / Write / Construct Only

Printer to print the job to.


The "settings" property

  "settings"                 GtkPrintSettings*     : Read / Write / Construct Only

Printer settings.


The "title" property

  "title"                    gchar*                : Read / Write / Construct Only

Title of the print job.

Default value: NULL


The "track-print-status" property

  "track-print-status"       gboolean              : Read / Write

TRUE if the print job will continue to emit status-changed signals after the print data has been sent to the printer or print server.

Default value: FALSE

Signal Details

The "status-changed" signal

void                user_function                      (GtkPrintJob *job,
                                                        gpointer     user_data)      : Run Last

Gets emitted when the status of a job changes. The signal handler can use gtk_print_job_get_status() to obtain the new status.

job :

the GtkPrintJob object on which the signal was emitted

user_data :

user data set when the signal handler was connected.

Since 2.10