From dca1c9fd52b9f0f391d55e04f08a04646a465367 Mon Sep 17 00:00:00 2001 From: Maxim Date: Thu, 21 May 2026 13:38:09 +0300 Subject: [PATCH] Fix case with CFFType1FontProgram in OpenTypeFontProgram --- .../pd/font/cff/CFFType1FontProgram.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/verapdf/pd/font/cff/CFFType1FontProgram.java b/src/main/java/org/verapdf/pd/font/cff/CFFType1FontProgram.java index 889838d9..e6a4afdf 100644 --- a/src/main/java/org/verapdf/pd/font/cff/CFFType1FontProgram.java +++ b/src/main/java/org/verapdf/pd/font/cff/CFFType1FontProgram.java @@ -23,6 +23,7 @@ import org.verapdf.io.SeekableInputStream; import org.verapdf.pd.font.FontProgram; import org.verapdf.pd.font.cmap.CMap; +import org.verapdf.pd.font.opentype.OpenTypeFontProgram; import org.verapdf.tools.StaticResources; import java.io.IOException; @@ -403,13 +404,15 @@ private void readLocalSubrsAndBias() throws IOException { * can be obtained. */ public static CFFType1FontProgram getCFFType1(FontProgram fontProgram) { - if (fontProgram instanceof CFFType1FontProgram) { - return (CFFType1FontProgram) fontProgram; - } else if (fontProgram instanceof CFFFontProgram) { - FontProgram innerCFF = ((CFFFontProgram) fontProgram).getFont(); - if (innerCFF instanceof CFFType1FontProgram) { - return (CFFType1FontProgram) innerCFF; - } + FontProgram currentFotProgram = fontProgram; + if (currentFotProgram instanceof OpenTypeFontProgram) { + currentFotProgram = ((OpenTypeFontProgram)currentFotProgram).getFont(); + } + if (currentFotProgram instanceof CFFFontProgram) { + currentFotProgram = ((CFFFontProgram) currentFotProgram).getFont(); + } + if (currentFotProgram instanceof CFFType1FontProgram) { + return (CFFType1FontProgram) currentFotProgram; } return null; }