GNOME Bugzilla – Bug 359032
Scale setting doesn't affect printed size
Last modified: 2007-01-04 17:16:12 UTC
When printing a document from Evince with the new GTK printing framework, changing the scale of printing doesn't affect the size of printed output.
This is a Evince bug not GTK+ printing bug, The new GTK+ printing API determines the printing capabilities based on 2 things: - Application specified capabilities using the API, gtk_print_unix_dialog_set_manual_capabilities - The backend printing specified capabilities in the method, backend_class->printer_get_capabilities For example, the CUPS backend specified that it is capable of handlingstatic GtkPrintCapabilities cups_printer_get_capabilities (GtkPrinter *printer) { return GTK_PRINT_CAPABILITY_COPIES | GTK_PRINT_CAPABILITY_COLLATE | GTK_PRINT_CAPABILITY_REVERSE; } Hence, it can handle multiple copies, collate or not and reverse or not. The application need to handle this. The problem here is that evince in ev-window.c claims to handle GTK_PRINT_CAPABILITY_SCALE | but when the user selects the scale factor, it does not generate PS that includes the scaling factor before sending to the backend. Evince should really do a, + scale = gtk_print_settings_get_scale (window->priv->print_settings); Apply that to the pages to be printed. I have tried it, but only manage to get print current page and range to work, but not knowing evince enough to create a complete patch. Does someone know how to transfer this bug to evince?
Hmm, the same seems true of "pages per sheet" -- setting the option doesn't change the printed output. I suspect this is related to the scale issue. It would also be nice if there were a "Fit to page" option that overrides a specific scale percentage. On some other systems they combine some or all of "pages per sheet", "fit to page" and "fit to specfic scale" into a single combobox.
Ubuntu bug somewhat similar: https://launchpad.net/distros/ubuntu/+source/evince/+bug/67164 "The settings made in page setup like "print only even pages" or "2 pages per sheet" are not respected on printing. I think this is a major issue..."
Yes, I know it's a major issue. Sorry for this problems, it's not clear enough to me which settings will be handled by GtkPrintJob and which settings have to be handled by evince. It should be fixed in head. Scale, copies, collate and inverse settings are taken into account now.
Personally I think that if a program is using the Cairo interface to GtkPrintJob (rather than the direct Postscript option that e.g. OOo uses), GTK should handle it, otherwise everybody is going to be writing the same code over and over again :o( There should at least be default handling that can be overridden...
Building GTK+ with the patch on bug #355350 fixes this for me.
Sounds good, but does that patch also work for PDF printing output? That patch is for the CUPS backend only, AFAICT.