forked from AuroraMiddleware/gtk
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
This commit is contained in:
parent
81320ba90b
commit
10f642b99f
10
ChangeLog
10
ChangeLog
@ -1,6 +1,14 @@
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user