Author: tilman
Date: Sun Oct 5 09:55:40 2025
New Revision: 1928950
Log:
PDFBOX-5660: make it constant, as suggested by Andreas Lehmkühler
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
Sun Oct 5 09:55:35 2025 (r1928949)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
Sun Oct 5 09:55:40 2025 (r1928950)
@@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -53,6 +54,24 @@ abstract class TrueTypeEmbedder implemen
private static final int OBLIQUE = 512;
private static final String BASE25 = "BCDEFGHIJKLMNOPQRSTUVWXYZ";
+ // PDF spec required tables (if present), all others will be removed
+ private static final List<String> TABLES = new ArrayList<>(10);
+
+ static
+ {
+ TABLES.add("head");
+ TABLES.add("hhea");
+ TABLES.add("loca");
+ TABLES.add("maxp");
+ TABLES.add("cvt ");
+ TABLES.add("prep");
+ TABLES.add("glyf");
+ TABLES.add("hmtx");
+ TABLES.add("fpgm");
+ // Windows ClearType
+ TABLES.add("gasp");
+ }
+
private final PDDocument document;
protected TrueTypeFont ttf;
protected PDFontDescriptor fontDescriptor;
@@ -311,13 +330,8 @@ abstract class TrueTypeEmbedder implemen
throw new IllegalStateException("Subsetting is disabled");
}
- // PDF spec required tables (if present), all others will be removed
- List<String> tables = List.of("head", "hhea","loca","maxp","cvt
","prep","glyf","hmtx","fpgm",
- // Windows ClearType
- "gasp");
-
// set the GIDs to subset
- TTFSubsetter subsetter = new TTFSubsetter(ttf, tables);
+ TTFSubsetter subsetter = new TTFSubsetter(ttf, TABLES);
subsetter.addAll(subsetCodePoints);
subsetter.forceInvisible('\u200B'); // ZWSP
subsetter.forceInvisible('\u200C'); // ZWNJ