Closed Bug 866574 Opened 11 years ago Closed 2 years ago

Pdf.js rasters the document in too low resolution and with antialiasing when printing

Categories

(Firefox :: PDF Viewer, defect, P3)

20 Branch
x86_64
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1269023

People

(Reporter: list, Unassigned)

References

(Depends on 1 open bug)

Details

(Whiteboard: [pdfjs-c-integration][pdfjs-d-printing])

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0
Build ID: 20130329030832

Steps to reproduce:

I printed a black&white text only pdf document
specifically it was http://math.stanford.edu/~dlitt/briefnotes/notes/ClosedLie.pdf


Actual results:

The printed output shows dithering artefacts.

My interpretation is that pdf.js renders the document in a lower resolution than the printer's resolution. In addition pdf.js applies antialiasing techniques which result in pixels being rasterised not only in black&white but gray scale as well.
While this looks good on screen, the printer then starts to dither the gray scale and the document looks ugly.

I also did a print-to-file with pdf.js and I could very well see the gray scale pixels that were produced in the resulting document. (I opened the print-to-file-output document in another pdf viewer and enlarged it)


Expected results:

Pdf.js should have rendered the document in the printer's resolution and using black&white pixels only. This would have created a sharp and good looking document.

Indeed another pdf reader I used (Evince) produced exactly that.

I attached a file with scans of the two prints.
Page 1: A scan of the rasterised output by pdf.js
Page 2: A scan of the good output another pdf reader created.
Component: Untriaged → PDF Viewer
Depends on: 811002
Priority: -- → P3
Whiteboard: [pdfjs-c-integration]
Depends on: 748935
Comment on attachment 742911 [details]
Sample 1: Print-Scans (view with external PDF reader for correct rendering!). Compare - Page 1: printed with pdf.js (poor quality) vs. Page 2: printed with external pdf reader (Evince; original quality).

No irony intended, but you actually have to open Sample 1 with an *external* PDF reader (not FF-pdfjs) to view the document correctly and see the difference in quality between pdfjs printout (bad) and external pdf reader printout (good)...
Attachment #742911 - Attachment description: The first page is a scan of pdf.js print output. The second page is the same document printed with another pdf reader (Evince). → Sample 1: Print-Scans (view with external PDF reader for correct rendering!). Compare - Page 1: printed with pdf.js (poor quality) vs. Page 2: printed with external pdf reader (Evince; original quality).
Comment on attachment 742911 [details]
Sample 1: Print-Scans (view with external PDF reader for correct rendering!). Compare - Page 1: printed with pdf.js (poor quality) vs. Page 2: printed with external pdf reader (Evince; original quality).

Actually 400% zoom makes the issue visible pretty well in in pdf.js, too.
(at least on my machine...)
Text and table elements should not be rasterized by pdf.js when printing (noticeable when printing to PDF via PDFCreator).  It should print as text and tables with the appropriate style in PDF.  That's where the majority of the poor print quality comes from.
This actually creates problems beyond the cosmetic. Last time I travelled by Eurostar I printed my tickets (which were given as a PDF) and the gates couldn't read the QR code. This time, I've printed them using evince.

Is anyone currently working on pdf.js?

Gerv
CCing Vivien - are you working on pdf.js at the moment? If not, who is?

Gerv
Status: UNCONFIRMED → NEW
Ever confirmed: true
NEEDINFO vivian.

Gerv
Flags: needinfo?(21)
I'm not actively working on pdf.js anymore. Redirecting the needinfo to Yury :)
Flags: needinfo?(21) → needinfo?(ydelendik)
Bug 745025 addressed this for Mac OSX. Bug 811002 addresses this for Windows. So resolution of this particular bug directly depends on resolution of bug 932289 (at Core->Graphics) -- pdf.js relies on the platform's mozPrintCallback to not rasterize the output.
Flags: needinfo?(ydelendik)
Depends on: 1639844
Whiteboard: [pdfjs-c-integration] → [pdfjs-c-integration][pdfjs-d-printing]
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: