Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 5.1.1
-
Fix Version/s: 5.1.2
-
Component/s: Core/Parsing
-
Labels:None
-
Environment:All
-
Support Case References:Support Case #13205 - https://icesoft.my.salesforce.com/5007000000wKGmm
Description
With the provided PDF file, it is rendering with missing characters (T, A, and t for example).
Activity
Arran Mccullough
created issue -
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #43816 | Thu Dec 11 15:59:01 MST 2014 | patrick.corless | |
Files Changed | ||||
MODIFY
/icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/LiteralStringObject.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #43817 | Thu Dec 11 17:30:30 MST 2014 | patrick.corless | Creation of P03 for |
Files Changed | ||||
ADD
/icepdf/tags/icepdf-5.1.1_P03
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #43901 | Tue Jan 13 11:11:16 MST 2015 | patrick.corless | |
Files Changed | ||||
MODIFY
/icepdf/trunk/icepdf/core/src/org/icepdf/core/pobjects/LiteralStringObject.java
|
Patrick Corless
made changes -
Field | Original Value | New Value |
---|---|---|
Fix Version/s | 5.1.2 [ 11872 ] |
Patrick Corless
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Patrick Corless
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
The root of the problem is related to the LiteralStringObject.getLiteralStringBuffer() method. The method is responsible converting the underlying string data to a string that can be drawn. In this particular case the font is of CID format which mean we check if each glyph can be represented. by font. We also check to see of the character ID is greater then one which is the root of the problem as the CID glyph id for T is zero in this case.
The code block in question has a comment that glyphs should be zero or more. I do remember a few corner cases where zero character were not valid. I'll have to run a potential fix though qa to see what happens as this is a high risk change.