Skip to content

Commit 303cf59

Browse files
committed
Fix double mapping issue for PdfType0Font
DEVSIX-8042
1 parent 72fcf36 commit 303cf59

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

kernel/src/main/java/com/itextpdf/kernel/font/PdfType0Font.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public class PdfType0Font extends PdfFont {
164164
embeddedToUnicode = toUnicodeCMap;
165165
}
166166

167-
if (cmap.isName() && (PdfEncodings.IDENTITY_H.equals(((PdfName) cmap).getValue()) ||
167+
if (cmap.isName() && ((toUnicodeCMap != null) || PdfEncodings.IDENTITY_H.equals(((PdfName) cmap).getValue()) ||
168168
PdfEncodings.IDENTITY_V.equals(((PdfName) cmap).getValue()))) {
169169

170170
if (toUnicodeCMap == null) {

kernel/src/test/java/com/itextpdf/kernel/pdf/canvas/parser/PdfTextExtractorTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,14 @@ public void notDefaultCodespacesChineseTest() throws IOException {
151151
Assert.assertTrue(extractedText.contains("L3B 廠: 新竹科學工業園區新竹市東區力行二路 1 號"));
152152
}
153153
}
154+
155+
@Test
156+
public void mixedCharacterCodes() throws IOException {
157+
String inFile = sourceFolder + "SameCidForDifferentCodes.pdf";
158+
try (PdfDocument pdfDocument = new PdfDocument(new PdfReader(inFile))) {
159+
String extractedText = PdfTextExtractor.getTextFromPage(pdfDocument.getPage(1));
160+
Assert.assertTrue(extractedText.contains("18个月"));
161+
Assert.assertFalse(extractedText.contains("18个⽉"));
162+
}
163+
}
154164
}

0 commit comments

Comments
 (0)