Skip to content

Commit 832e1ec

Browse files
ars18wrwIdamkinI
authored andcommitted
FontSelector: сheck only style characteristics for empty font names.
Autoported commit. Original commit hash: [55d1ce5fb3]
1 parent c2f8f99 commit 832e1ec

File tree

2 files changed

+32
-29
lines changed

2 files changed

+32
-29
lines changed

itext/itext.layout/itext/layout/font/FontSelector.cs

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -225,37 +225,40 @@ private static int CharacteristicsSimilarity(String fontName, FontCharacteristic
225225
score -= EXPECTED_FONT_IS_NOT_MONOSPACED_AWARD;
226226
}
227227
}
228-
FontProgramDescriptor descriptor = fontInfo.GetDescriptor();
229-
// Note, aliases are custom behaviour, so in FontSelector will find only exact name,
230-
// it should not be any 'contains' with aliases.
231-
bool checkContains = true;
232-
if (fontName.Equals(descriptor.GetFullNameLowerCase())) {
233-
// the next condition can be simplified. it's been written that way to prevent mistakes if the condition is moved.
234-
score += checkContains ? FULL_NAME_EQUALS_AWARD : EQUALS_ADDITIONAL_AWARD;
235-
checkContains = false;
236-
}
237-
if (fontName.Equals(descriptor.GetFontNameLowerCase())) {
238-
score += checkContains ? FONT_NAME_EQUALS_AWARD : EQUALS_ADDITIONAL_AWARD;
239-
checkContains = false;
240-
}
241-
if (fontName.Equals(fontInfo.GetAlias())) {
242-
score += checkContains ? ALIAS_EQUALS_AWARD : EQUALS_ADDITIONAL_AWARD;
243-
checkContains = false;
244-
}
245-
if (checkContains) {
246-
bool conditionHasBeenSatisfied = false;
247-
if (descriptor.GetFullNameLowerCase().Contains(fontName)) {
228+
// empty font name means that font family wasn't detected. in that case one should compare only style characteristics
229+
if (!"".Equals(fontName)) {
230+
FontProgramDescriptor descriptor = fontInfo.GetDescriptor();
231+
// Note, aliases are custom behaviour, so in FontSelector will find only exact name,
232+
// it should not be any 'contains' with aliases.
233+
bool checkContains = true;
234+
if (fontName.Equals(descriptor.GetFullNameLowerCase())) {
248235
// the next condition can be simplified. it's been written that way to prevent mistakes if the condition is moved.
249-
score += conditionHasBeenSatisfied ? FULL_NAME_CONTAINS_AWARD : CONTAINS_ADDITIONAL_AWARD;
250-
conditionHasBeenSatisfied = true;
236+
score += checkContains ? FULL_NAME_EQUALS_AWARD : EQUALS_ADDITIONAL_AWARD;
237+
checkContains = false;
238+
}
239+
if (fontName.Equals(descriptor.GetFontNameLowerCase())) {
240+
score += checkContains ? FONT_NAME_EQUALS_AWARD : EQUALS_ADDITIONAL_AWARD;
241+
checkContains = false;
251242
}
252-
if (descriptor.GetFontNameLowerCase().Contains(fontName)) {
253-
score += conditionHasBeenSatisfied ? FONT_NAME_CONTAINS_AWARD : CONTAINS_ADDITIONAL_AWARD;
254-
conditionHasBeenSatisfied = true;
243+
if (fontName.Equals(fontInfo.GetAlias())) {
244+
score += checkContains ? ALIAS_EQUALS_AWARD : EQUALS_ADDITIONAL_AWARD;
245+
checkContains = false;
255246
}
256-
if (null != fontInfo.GetAlias() && fontInfo.GetAlias().Contains(fontName)) {
257-
score += conditionHasBeenSatisfied ? ALIAS_CONTAINS_AWARD : CONTAINS_ADDITIONAL_AWARD;
258-
conditionHasBeenSatisfied = true;
247+
if (checkContains) {
248+
bool conditionHasBeenSatisfied = false;
249+
if (descriptor.GetFullNameLowerCase().Contains(fontName)) {
250+
// the next condition can be simplified. it's been written that way to prevent mistakes if the condition is moved.
251+
score += conditionHasBeenSatisfied ? FULL_NAME_CONTAINS_AWARD : CONTAINS_ADDITIONAL_AWARD;
252+
conditionHasBeenSatisfied = true;
253+
}
254+
if (descriptor.GetFontNameLowerCase().Contains(fontName)) {
255+
score += conditionHasBeenSatisfied ? FONT_NAME_CONTAINS_AWARD : CONTAINS_ADDITIONAL_AWARD;
256+
conditionHasBeenSatisfied = true;
257+
}
258+
if (null != fontInfo.GetAlias() && fontInfo.GetAlias().Contains(fontName)) {
259+
score += conditionHasBeenSatisfied ? ALIAS_CONTAINS_AWARD : CONTAINS_ADDITIONAL_AWARD;
260+
conditionHasBeenSatisfied = true;
261+
}
259262
}
260263
}
261264
// this line is redundant. it's added to prevent mistakes if other condition is added.

port-hash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
775b457652bc5816abd2a833093bb93871b73dc4
1+
55d1ce5fb30b674b95501938fe187074a2b85f58

0 commit comments

Comments
 (0)