You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/03/08 15:00:58 UTC

svn commit: r1887332 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java

Author: tilman
Date: Mon Mar  8 15:00:58 2021
New Revision: 1887332

URL: http://svn.apache.org/viewvc?rev=1887332&view=rev
Log:
PDFBOX-4892: performance improvements, as suggested by valerybokov

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java?rev=1887332&r1=1887331&r2=1887332&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java Mon Mar  8 15:00:58 2021
@@ -36,6 +36,7 @@ import org.apache.fontbox.FontBoxFont;
 import org.apache.fontbox.cff.CFFCIDFont;
 import org.apache.fontbox.cff.CFFFont;
 import org.apache.fontbox.ttf.NamingTable;
+import org.apache.fontbox.ttf.OS2WindowsMetricsTable;
 import org.apache.fontbox.ttf.OTFParser;
 import org.apache.fontbox.ttf.OpenTypeFont;
 import org.apache.fontbox.ttf.TTFParser;
@@ -372,17 +373,16 @@ final class FileSystemFontProvider exten
         {
             try
             {
-                if (file.getPath().toLowerCase().endsWith(".ttf") ||
-                        file.getPath().toLowerCase().endsWith(".otf"))
+                String filePath = file.getPath().toLowerCase();
+                if (filePath.endsWith(".ttf") || filePath.endsWith(".otf"))
                 {
                     addTrueTypeFont(file);
                 }
-                else if (file.getPath().toLowerCase().endsWith(".ttc") ||
-                        file.getPath().toLowerCase().endsWith(".otc"))
+                else if (filePath.endsWith(".ttc") || filePath.endsWith(".otc"))
                 {
                     addTrueTypeCollection(file);
                 }
-                else if (file.getPath().toLowerCase().endsWith(".pfb"))
+                else if (filePath.endsWith(".pfb"))
                 {
                     addType1Font(file);
                 }
@@ -692,14 +692,15 @@ final class FileSystemFontProvider exten
                 int ulCodePageRange1 = 0;
                 int ulCodePageRange2 = 0;
                 byte[] panose = null;
+                OS2WindowsMetricsTable os2WindowsMetricsTable = ttf.getOS2Windows();
                 // Apple's AAT fonts don't have an OS/2 table
-                if (ttf.getOS2Windows() != null)
+                if (os2WindowsMetricsTable != null)
                 {
-                    sFamilyClass = ttf.getOS2Windows().getFamilyClass();
-                    usWeightClass = ttf.getOS2Windows().getWeightClass();
-                    ulCodePageRange1 = (int)ttf.getOS2Windows().getCodePageRange1();
-                    ulCodePageRange2 = (int)ttf.getOS2Windows().getCodePageRange2();
-                    panose = ttf.getOS2Windows().getPanose();
+                    sFamilyClass = os2WindowsMetricsTable.getFamilyClass();
+                    usWeightClass = os2WindowsMetricsTable.getWeightClass();
+                    ulCodePageRange1 = (int) os2WindowsMetricsTable.getCodePageRange1();
+                    ulCodePageRange2 = (int) os2WindowsMetricsTable.getCodePageRange2();
+                    panose = os2WindowsMetricsTable.getPanose();
                 }
 
                 String format;