You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Cornelis Hoeflake (JIRA)" <ji...@apache.org> on 2014/10/31 10:57:34 UTC

[jira] [Created] (PDFBOX-2467) Remove substitute logic from ExternalFonts

Cornelis Hoeflake created PDFBOX-2467:
-----------------------------------------

             Summary: Remove substitute logic from ExternalFonts
                 Key: PDFBOX-2467
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2467
             Project: PDFBox
          Issue Type: Improvement
    Affects Versions: 2.0.0
            Reporter: Cornelis Hoeflake
             Fix For: 2.0.0


The ExternalFonts class does some substitute logic for fonts. There is a static map which holds the substitutes and is loaded in the ExternalClass file and some substitutes are got from Standards14.
Next that map also contains some substitutes for registry fonts (I don't know what it is), but it feels a bit like misusing the substitutes mechanism (with prepending a $ to omit conflicts).

As user of PDFBox I want to have the control over substitutes. For example when a PDF has font TrueType Arial,Bold (windows style), and my font provider has only a Type1 font for Arial Bold, the current mechanism returns the Helvetica Bold font True Type font (if have one in my fontprovider).

So I wrote a patch which allows you to wrap a fontprovider in a SubstituteFontProvider. That SubstituteFontProvider does the substitute logic like ExternalFonts did before. The user is in control to wrap (or let ExternalFonts wrap) his own fontprovider in the SubstituteFontProvider.
The registry fonts issue is kept in ExternalFonts and uses an own map.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)