evince patch for multipage collated even odd sheets

Bug #378976 reported by Bartek
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Evince
Expired
Medium
evince (Ubuntu)
Fix Released
Low
Ubuntu Desktop Bugs

Bug Description

Binary package hint: evince

This patch against evince_2.26.1-0ubuntu1 fixes the bugs people are experiencing when printing

* multiple pages per sheet (lp107025)
* even and odd sheets (lp107025)
* multiple collated copies + multiple pages per sheet (lp282659)

In this context it is important to know that it behaves likes lpr with n-up and even/odd options passed:
if you have a document with 5 pages and want to print 2 pages per sheet, MANUAL duplex

print odd sheets:

{1,2} , {5}

flip sheets and print even sheets:

{3,4}

IE: you need to make sure to remove the sheet with page 5 from the stack, evince will not produce empty sheets to fully automate the process. This would be nice, but it would mess with other things. Besides, it is the way multipage even & odd printing works on other platforms and the native GtkPrintOperation.

------------------

It does NOT solve bugs related to:

* multiple pages per sheet + reverse order (lp377102)
* the weird ordering of pages when pages_per_sheet = 6 (related to: lp328143)

as that would require a complete rethinking of the way the output is assembled for printing.

------------------

It MAY solve:

* evince prints multiple (collated) copies as one job
* weird stapling behaviour with multiple copies

ie: lp258364

I'm not sure about this because as far as I can tell the multiple copies are still sent as one print job, but by solving lp282659 we introduce blank spaces on sheets so the two copies are clearly separated, it depends on how the driver treats this.

----------------

Although this IS an upstream issue, upstream is completely reworking EvPrintOperation to use GtkPrintOperation if possible (AFAIK). I will submit an upstream bug but this patch could solve problems on ubuntu at least.

The patch needs some testing though as there is potential for regressions with duplex printers (as I don't have one to test) and there is danger of a division by zero. (although I think the variable in question is guaranteed to be nonzero, you never know with multithreading)

Revision history for this message
Bartek (tschew) wrote :
Revision history for this message
Bartek (tschew) wrote :

I just realized that my printer (samsung ml-2010) has a duplex functionality (for instance: collated, copies=2, print all pages, long edge, pages per sheet=2) where the printer itself splits the job in two and waits for the user to reinsert the pages and push a button. I can confirm that this functionality is NOT broken by the patch and would therefore assume that fully automatic duplex printers are not broken either.

Changed in evince:
status: Unknown → New
Revision history for this message
Bartek (tschew) wrote :

Renamed skipped to blank because it makes more sense. Removed an unnecessary call to begin_page and removed an unnecessary initialisation. Adjusted the comments to be C-style only.

Revision history for this message
Bartek (tschew) wrote :

The patch has been accepted upstream into the master and 2.26 branches. How can I help in making the changes to the 2.26 gnome branch propagate to a new deb into our repos?

Revision history for this message
Sebastien Bacher (seb128) wrote :

the bug will be fixed in the next karmic update

Changed in evince (Ubuntu):
assignee: nobody → Ubuntu Desktop Bugs (desktop-bugs)
importance: Undecided → Low
status: New → Fix Committed
Revision history for this message
Sebastien Bacher (seb128) wrote :

you can work on a stable update if you want that to be changed in jaunty

Changed in evince:
status: New → Confirmed
Revision history for this message
Sebastien Bacher (seb128) wrote :

the new version is in karmic now

Changed in evince (Ubuntu):
status: Fix Committed → Fix Released
Changed in evince:
importance: Unknown → Medium
Changed in evince:
status: Confirmed → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.