GtkPrintJob

GtkPrintJob — Represents a print job

Synopsis


#include <gtk/gtk.h>


                    GtkPrintJob;
void                (*GtkPrintJobCompleteFunc)          (GtkPrintJob *print_job,
                                                         gpointer user_data,
                                                         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);


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().

Printing support was added in GTK+ 2.10.

Details

GtkPrintJob

typedef struct {
  GObject parent_instance;

  GtkPrintJobPrivate *priv;

  /* Settings the client has to implement:
   * (These are read-only, set at initialization)
   */
  GtkPrintPages print_pages;
  GtkPageRange *page_ranges;
  gint num_page_ranges;
  GtkPageSet page_set;
  gint num_copies;
  gdouble scale;
  guint rotate_to_orientation : 1;
  guint collate               : 1;
  guint reverse               : 1;
} GtkPrintJob;

The GtkPrintJob struct contains only private members and should not be directly accessed.


GtkPrintJobCompleteFunc ()

void                (*GtkPrintJobCompleteFunc)          (GtkPrintJob *print_job,
                                                         gpointer user_data,
                                                         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

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

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

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

Returns :

the cairo surface of job

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