Bug 40719

Summary: text not rendered due to font errors
Product: poppler Reporter: madbiologist <madbiologist2016>
Component: generalAssignee: poppler-bugs <poppler-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Output of PDF fonts
the problem document
Reconstruct xref table if xref needed but missing
PDF repaired with pdfseparate
The patch also makes this file fail to pen
Reconstruct xref table if xref needed but missing

Description madbiologist 2011-09-08 08:30:52 UTC
Created attachment 50979 [details]
Output of PDF fonts

Originally reported by Raivo Lill at https://bugs.launchpad.net/ubuntu/+source/poppler/+bug/838856

"I expected to see document but only see in header company name and in document lines."

I can reproduce this on Ubuntu 11.10 "Oneiric Ocelot" beta 1.

Packages: evince 3.1.2-0ubuntu4
                libpoppler13 0.16.7-2ubuntu2
                libcairo2 1.10.2-6ubuntu3

Running Evince from the command prompt produces the following error sequence (I have <snipped> some of it out so it is not so long):

Error: Unknown font tag 'F1'
Error (11028): No font in show
Error: Unknown font tag 'F1'
Error (11041): No font in show
Error: Unknown font tag 'F1'
Error (11070): No font in show
Error: Unknown font tag 'F2'
Error (11097): No font in show
Error: Unknown font tag 'F2'
Error (11117): No font in show
Error: Unknown font tag 'F2'
Error (11147): No font in show
Error: Unknown font tag 'F2'

<snip>

Error: Unknown font tag 'F1'
Error (12582): No font in show
Error: Unknown font tag 'F3'
Error (12607): No font in show
Error: Unknown font tag 'F3'
Error (12616): No font in show
Error: Unknown font tag 'F1'
Error (12722): No font in show

<snip>

Error: Unknown font tag 'F1'
Error (13971): No font in show
Error: Unknown font tag 'F1'
Error (14028): No font in show
Error: Bad descendant font in Type 0 font
Error: Bad descendant font in Type 0 font
Error: Bad descendant font in Type 0 font

This is repeated 2 or 3 times.

Attempting to run pdffonts and redirect the output to a file just results in a file with only the headings (attached) and produces 3 errors in the terminal:

Error: Bad descendant font in Type 0 font
Error: Bad descendant font in Type 0 font
Error: Bad descendant font in Type 0 font
Comment 1 madbiologist 2011-09-08 08:33:10 UTC
Created attachment 50980 [details]
the problem document
Comment 2 Thomas Freitag 2012-04-26 05:00:25 UTC
Created attachment 60610 [details] [review]
Reconstruct xref table if xref needed but missing

The PDF is defect: It's xref table does only contain entries for obj's 1 to 11 (without any reference to another xref table), but it contains 23 objects and all of them are needed.
The patch now tries to reconstruct the xref table also in such a case, how obviously also done by acrobat.
But You should file a bug to the PDF creator (OJAMM?, I never heard about it)
Comment 3 Thomas Freitag 2012-04-26 05:19:23 UTC
Created attachment 60611 [details]
PDF repaired with pdfseparate

For Your convenience, here the PDF repaired by pdfseparate (after applying the patch)
Comment 4 Albert Astals Cid 2012-04-26 11:40:06 UTC
This patch produces a change in http://svn.ghostscript.com/ghostscript/tests/Ghent_V3.0/072_OutputIntent_ISOCoated2-v1_x3.pdf I wouldn't say it's a regression because Adobe Reader does not render any of the X we render, but the change seems strange to me. Thomas do you think i should worry about this?
Comment 5 Albert Astals Cid 2012-04-26 12:52:46 UTC
Created attachment 60630 [details]
The patch also makes this file fail to pen
Comment 6 Albert Astals Cid 2012-04-26 12:53:15 UTC
And with fail to pen i mean fail to open, i.e. after using the patch suggested by thomas i can't open it anymore.
Comment 7 Thomas Freitag 2012-04-27 01:15:34 UTC
Created attachment 60651 [details] [review]
Reconstruct xref table if xref needed but missing

Sorry, I was a little bit too quick and dirty, and not cowardly enough: I missed a condition with splitted xref tables and run too early in trying to reconstruct a (valid) xref table.
This new patch should solve that, but I don't want to waste Your time: I plan to regtest the min linewidth this weekend, so if You haven't spare time to look into it, I'll give an additional comment if this patch is save after regtesting it by my own.
Comment 8 Thomas Freitag 2012-04-27 01:19:10 UTC
Comment on attachment 60610 [details] [review]
Reconstruct xref table if xref needed but missing

Sorry, forget to mark the former patch as obsolete and don't know how to do that without uploading a new attachement :-(
Comment 9 Thomas Freitag 2012-04-28 03:44:36 UTC
Comment on attachment 60651 [details] [review]
Reconstruct xref table if xref needed but missing

I regtested now this patch (of comment 7), I found no regressions.
Comment 10 Albert Astals Cid 2012-04-28 08:16:17 UTC
Pushed :-)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.