[ 
https://issues.apache.org/jira/browse/PDFBOX-6279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tilman Hausherr updated PDFBOX-6279:
------------------------------------
    Fix Version/s:     (was: 4.0.0)
                       (was: 3.0.9 PDFBox)

> Missing ToUnicode entries for glyphs produced by GSUB substitutions
> -------------------------------------------------------------------
>
>                 Key: PDFBOX-6279
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-6279
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel
>    Affects Versions: 3.0.8 PDFBox
>            Reporter: Fabrice Calafat
>            Priority: Minor
>         Attachments: CormorantInfant-Medium.ttf
>
>
> When text is written with showText() and the font has GSUB ligatures, the 
> ligature glyph has no cmap entry, so PDCIDFontType2Embedder writes no 
> ToUnicode entry for it. Copy-paste and text extraction then lose those 
> letters.
> For example, with a script font that has "er" and "nd" ligatures, 
> "Registered" is extracted as "Registed" and "Brandenstein" as "Braenstein". 
> The rendering is correct.
> The same happens with Devanagari conjuncts and with letters followed by a 
> combining accent.
> *Solution:*
>   When a glyph has no cmap entry, use the GSUB table to find the glyphs it 
> replaces and write their text in the ToUnicode map.
> *Testing:*
>   Unit tests added using Lohit-Devanagari.ttf and the IPA Gothic font 
> (ipag.ttf) that is already downloaded for the tests. I've also attached 
> CormorantInfant-Medium.ttf (OFL, cut down to ASCII), which has Latin 
> ligatures ("Th", "ft", "gg") with no cmap entry, if you want a Latin ligature 
> test.
> *Related:*
>   PDFBOX-5599 (comment about "ti" not being extracted correctly with Calibri)
>   PDFBOX-5875 (same idea, on the text extraction side)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to