Commit 10f642b9 authored by Matthias Clasen's avatar Matthias Clasen

Bug 509788 – GTK+ should use CUPS to set Postscript level of PS output

        * modules/printbackends/cups/gtkprintbackendcups.c
        (cups_printer_create_cairo_surface): Fall back to PostScript level 2
        if the printer does not support level 3. Patch by Marek Kašík.


svn path=/trunk/; revision=20203
parent 81320ba9
2008-05-27 Matthias Clasen <mclasen@redhat.com>
Bug 404571 – Scroll arrow backgrounds should be painted with different
Bug 509788 - GTK+ should use CUPS to set Postscript level of PS output
* modules/printbackends/cups/gtkprintbackendcups.c
(cups_printer_create_cairo_surface): Fall back to PostScript level 2
if the printer does not support level 3. Patch by Marek Kašík.
2008-05-27 Matthias Clasen <mclasen@redhat.com>
Bug 404571 - Scroll arrow backgrounds should be painted with different
detail
* gtk/gtkmenu.c (gtk_menu_paint): Use "menu_scroll_arrow_up/down"
......
......@@ -307,11 +307,30 @@ cups_printer_create_cairo_surface (GtkPrinter *printer,
GIOChannel *cache_io)
{
cairo_surface_t *surface;
ppd_file_t *ppd_file = NULL;
ppd_attr_t *ppd_attr = NULL;
int level = 2;
/* TODO: check if it is a ps or pdf printer */
surface = cairo_ps_surface_create_for_stream (_cairo_write_to_cups, cache_io, width, height);
ppd_file = gtk_printer_cups_get_ppd (GTK_PRINTER_CUPS (printer));
if (ppd_file != NULL)
{
ppd_attr = ppdFindAttr (ppd_file, "LanguageLevel", NULL);
if (ppd_attr != NULL)
level = atoi (ppd_attr->value);
}
if (level == 2)
cairo_ps_surface_restrict_to_level (surface, CAIRO_PS_LEVEL_2);
if (level == 3)
cairo_ps_surface_restrict_to_level (surface, CAIRO_PS_LEVEL_3);
/* TODO: DPI from settings object? */
cairo_surface_set_fallback_resolution (surface, 300, 300);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment