[
https://issues.apache.org/jira/browse/PDFBOX-2945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tilman Hausherr updated PDFBOX-2945:
------------------------------------
Description:
When the method is called on a non-embedded font and the unicode fallback is
used, the line "String uniName = String.format("uni%04X",
unicodes.codePointAt(0));" is called and it is very slow. I suggest either
adding a cache (codepoint to uniname) or at least replace the String.format
call with something different, as this internally invokes a new RegExp Matcher
etc.
Something like the following might do the trick (maybe you have a better
utility classes):
{code}
final StringBuilder aID = new StringBuilder (Integer.toString
(unicodes.codePointAt (0), 16).toUpperCase (Locale.US));
while (aID.length () < 4)
aID.insert (0, '0');
aID.insert (0, "uni");
final String uniName = aID.toString ();
{code}
was:
When the method is called on a non-embedded font and the unicode fallback is
used, the line "String uniName = String.format("uni%04X",
unicodes.codePointAt(0));" is called and it is very slow. I suggest either
adding a cache (codepoint to uniname) or at least replace the String.format
call with something different, as this internally invokes a new RegExp Matcher
etc.
Something like the following might do the trick (maybe you have a better
utility classes):
final StringBuilder aID = new StringBuilder (Integer.toString
(unicodes.codePointAt (0), 16).toUpperCase (Locale.US));
while (aID.length () < 4)
aID.insert (0, '0');
aID.insert (0, "uni");
final String uniName = aID.toString ();
> PDType1Font.getNameInFont(String) very slow when Unicode fallback is used
> -------------------------------------------------------------------------
>
> Key: PDFBOX-2945
> URL: https://issues.apache.org/jira/browse/PDFBOX-2945
> Project: PDFBox
> Issue Type: Improvement
> Components: PDModel
> Affects Versions: 2.0.0
> Environment: Windows 10, Pdfbox SNAPSHOT as of revision 1697721 from
> today, Java 1.7.0_76, 64Bit
> Reporter: Philip Helger
> Fix For: 2.0.0
>
> Attachments: pdfbox2945.patch
>
>
> When the method is called on a non-embedded font and the unicode fallback is
> used, the line "String uniName = String.format("uni%04X",
> unicodes.codePointAt(0));" is called and it is very slow. I suggest either
> adding a cache (codepoint to uniname) or at least replace the String.format
> call with something different, as this internally invokes a new RegExp
> Matcher etc.
> Something like the following might do the trick (maybe you have a better
> utility classes):
> {code}
> final StringBuilder aID = new StringBuilder (Integer.toString
> (unicodes.codePointAt (0), 16).toUpperCase (Locale.US));
> while (aID.length () < 4)
> aID.insert (0, '0');
> aID.insert (0, "uni");
> final String uniName = aID.toString ();
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]