[ https://issues.apache.org/jira/browse/PDFBOX-5728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17793709#comment-17793709 ]
Daniel Gredler edited comment on PDFBOX-5728 at 12/6/23 1:18 PM: ----------------------------------------------------------------- Borrowing from [https://github.com/google/fonts/issues/215], I ran the following on my PC: *format.py:* {{import sys}} {{from fontTools.ttLib import TTFont}} {{fontfile = sys.argv[1]}} {{try:}} {{ font = TTFont(fontfile)}} {{ version = font['post'].formatType}} {{ if version == 3.0:}} {{ print(str(version), fontfile)}} {{except:}} {{ pass}} *format.sh:* {{for font in `fc-list -f "%\{file}\n"`; do}} {{ python3 format.py $font;}} {{done;}} This identified a few fonts with version 3 `post` tables. I chose `NotoMono-Regular.ttf`, and was able to reproduce the issue: *Bug5728.java:* {{import java.io.ByteArrayOutputStream;}} {{import java.io.IOException;}} {{import java.io.InputStream;}} {{import java.nio.file.Files;}} {{{}import java.nio.file.Path;{}}}{{{}import org.apache.fontbox.ttf.TTFParser;{}}} {{import org.apache.fontbox.ttf.TTFSubsetter;}} {{import org.apache.fontbox.ttf.TrueTypeFont;}} {{public class Bug5728 {}} {{ public static void main(String[] args) throws IOException {}} {{ InputStream is = Files.newInputStream(Path.of("/usr/share/fonts/truetype/noto/NotoMono-Regular.ttf"));}} {{ TTFParser parser = new TTFParser();}} {{ TrueTypeFont font = parser.parse(is);}} {{ TTFSubsetter subsetter = new TTFSubsetter(font);}} {{ subsetter.add('a');}} {{ ByteArrayOutputStream output = new ByteArrayOutputStream();}} {{ subsetter.writeToStream(output);}} } {{}}} Here's the full font list identified by the Python script above: 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-LightItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-book.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Two.otf 3.0 /usr/share/fonts/truetype/noto/NotoMono-Regular.ttf 3.0 /usr/share/fonts/opentype/fira/FiraSans-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-hair.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Oblique.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Four.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/D050000L.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Book.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-two.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ThinItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-fouritalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Medium.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-UltraLight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-LightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-SemiBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-EightItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraMono-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Heavy.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-UltraItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-extralightitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Light.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-BookItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-BookOblique.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-BoldItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-UltraItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Hair.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Book.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-DemiItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-BookItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-HeavyItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Eight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-italic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-ultralightitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Thin.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Regular.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-Demi.otf 3.0 /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-Heavy.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-UltraLightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-HairItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Four.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-ExtraBold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-SemiBoldItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-Roman.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-UltraLight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraLight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-LightItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-Book.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-Italic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-four.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Italic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-Demi.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-TwoItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-Medium.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Hair.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-SemiBold.otf 3.0 /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-SemiBold.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-Roman.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-extralight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-FourItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-Light.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Medium.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-SemiBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Thin.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraLightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-ExtraBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-FourItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-eightitalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-ultralight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-bookitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraMono-Regular.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/StandardSymbolsPS.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-DemiOblique.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-lightitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Ultra.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-HairItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraLightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Ultra.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-EightItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-thinitalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-hairitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-HeavyItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-twoitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Eight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Two.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraBold.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-BoldOblique.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-TwoItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Light.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Heavy.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-UltraLightItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-Italic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-BoldItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-HeavyItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-eight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-Bold.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-thin.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-BdIta.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraLight.otf 3.0 /usr/share/fonts/opentype/urw-base35/Z003-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraBold.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-light.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ThinItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraMono-Medium.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-SemiBold.otf was (Author: sdanig): Borrowing from [https://github.com/google/fonts/issues/215,] I ran the following on my PC: *format.py:* {{import sys}} {{from fontTools.ttLib import TTFont}} {{fontfile = sys.argv[1]}} {{try:}} {{ font = TTFont(fontfile)}} {{ version = font['post'].formatType}} {{ if version == 3.0:}} {{ print(str(version), fontfile)}} {{except:}} {{ pass}} *format.sh:* {{for font in `fc-list -f "%\{file}\n"`; do}} {{ python3 format.py $font;}} {{done;}} This identified a few fonts with version 3 `post` tables. I chose `NotoMono-Regular.ttf`, and was able to reproduce the issue: *Bug5728.java:* {{import java.io.ByteArrayOutputStream;}} {{import java.io.IOException;}} {{import java.io.InputStream;}} {{import java.nio.file.Files;}} {{{}import java.nio.file.Path;{}}}{{{}import org.apache.fontbox.ttf.TTFParser;{}}} {{import org.apache.fontbox.ttf.TTFSubsetter;}} {{import org.apache.fontbox.ttf.TrueTypeFont;}} {{public class Bug5728 {}} {{ public static void main(String[] args) throws IOException {}} {{ InputStream is = Files.newInputStream(Path.of("/usr/share/fonts/truetype/noto/NotoMono-Regular.ttf"));}} {{ TTFParser parser = new TTFParser();}} {{ TrueTypeFont font = parser.parse(is);}} {{ TTFSubsetter subsetter = new TTFSubsetter(font);}} {{ subsetter.add('a');}} {{ ByteArrayOutputStream output = new ByteArrayOutputStream();}} {{ subsetter.writeToStream(output);}} } {{}}} Here's the full font list identified by the Python script above: 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-LightItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-book.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Two.otf 3.0 /usr/share/fonts/truetype/noto/NotoMono-Regular.ttf 3.0 /usr/share/fonts/opentype/fira/FiraSans-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-hair.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Oblique.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Four.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/D050000L.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Book.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-two.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ThinItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-fouritalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Medium.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-UltraLight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-LightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-SemiBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-EightItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraMono-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Heavy.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-UltraItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-extralightitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Light.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-BookItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-BookOblique.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-BoldItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-UltraItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Hair.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Book.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-DemiItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-BookItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-HeavyItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Eight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-italic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-ultralightitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Thin.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Regular.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-Demi.otf 3.0 /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-Heavy.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-UltraLightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-HairItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Four.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-ExtraBold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-SemiBoldItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-Roman.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-UltraLight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraLight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-LightItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-Book.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-Italic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-four.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Italic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-Demi.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-TwoItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-Medium.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-Regular.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Hair.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-SemiBold.otf 3.0 /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-SemiBold.otf 3.0 /usr/share/fonts/opentype/urw-base35/P052-Roman.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-extralight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-FourItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWBookman-Light.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Medium.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-SemiBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Thin.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraLightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-ExtraBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-FourItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-eightitalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-ultralight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-BoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-bookitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraMono-Regular.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/StandardSymbolsPS.otf 3.0 /usr/share/fonts/opentype/urw-base35/URWGothic-DemiOblique.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-lightitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Ultra.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-HairItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraLightItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Ultra.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-EightItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-thinitalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-hairitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-HeavyItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-twoitalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Eight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Two.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraBold.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-BoldOblique.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-TwoItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-Light.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Heavy.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-UltraLightItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-Italic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-BoldItalic.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusSans-Italic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCompressed-HeavyItalic.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-eight.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-Bold.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusRoman-Bold.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-thin.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-BdIta.otf 3.0 /usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSansCondensed-ExtraBoldItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraLight.otf 3.0 /usr/share/fonts/opentype/urw-base35/Z003-MediumItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ExtraBold.otf 3.0 /usr/share/fonts/opentype/fira/firasanscompressed-light.otf 3.0 /usr/share/fonts/opentype/urw-base35/C059-Bold.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-ThinItalic.otf 3.0 /usr/share/fonts/opentype/fira/FiraMono-Medium.otf 3.0 /usr/share/fonts/opentype/fira/FiraSans-SemiBold.otf > NullPointerException in TTFSubsetter.buildPostTable() > ----------------------------------------------------- > > Key: PDFBOX-5728 > URL: https://issues.apache.org/jira/browse/PDFBOX-5728 > Project: PDFBox > Issue Type: Bug > Components: FontBox > Affects Versions: 2.0.28 > Reporter: Daniel Gredler > Priority: Major > > It looks like `TTFSubsetter.buildPostTable()` can sometimes throw NPEs: > java.lang.NullPointerException: null > at > org.apache.fontbox.ttf.TTFSubsetter.buildPostTable(TTFSubsetter.java:859) > at > org.apache.fontbox.ttf.TTFSubsetter.writeToStream(TTFSubsetter.java:971) > Looking at the code, the `names` map keys are Strings that come from > `PostScriptTable.getName(gid)`, which can sometimes return `null`. A few > lines later, these possibly-null String keys are converted to bytes, at which > point the system may throw a NPE. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org