Skip to content

Commit 3a224c5

Browse files
committed
Implement code suggestions
Remove FontConstants links Rename TrueTypeCodePages#codePages to CODE_PAGES Optimize imports in FontCache Rename StandardFonts#contains() to isStandardFont. Rename FontWidths to FontStretches. DEVSIX-1013
1 parent 09f4447 commit 3a224c5

12 files changed

+51
-75
lines changed

io/src/main/java/com/itextpdf/io/font/FontCache.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,24 @@ This file is part of the iText (R) project.
4444
package com.itextpdf.io.font;
4545

4646
import com.itextpdf.io.IOException;
47-
import com.itextpdf.io.font.cmap.*;
47+
import com.itextpdf.io.font.cmap.AbstractCMap;
48+
import com.itextpdf.io.font.cmap.CMapByteCid;
49+
import com.itextpdf.io.font.cmap.CMapCidByte;
50+
import com.itextpdf.io.font.cmap.CMapCidUni;
51+
import com.itextpdf.io.font.cmap.CMapLocationResource;
52+
import com.itextpdf.io.font.cmap.CMapParser;
53+
import com.itextpdf.io.font.cmap.CMapUniCid;
4854
import com.itextpdf.io.font.constants.FontResources;
4955
import com.itextpdf.io.util.IntHashtable;
5056
import com.itextpdf.io.util.ResourceUtil;
5157

5258
import java.io.InputStream;
53-
import java.util.*;
59+
import java.util.HashMap;
60+
import java.util.HashSet;
61+
import java.util.Map;
62+
import java.util.Properties;
63+
import java.util.Set;
64+
import java.util.StringTokenizer;
5465
import java.util.concurrent.ConcurrentHashMap;
5566

5667
public class FontCache {

io/src/main/java/com/itextpdf/io/font/FontNames.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ This file is part of the iText (R) project.
4545

4646
import com.itextpdf.io.font.constants.FontMacStyleFlags;
4747
import com.itextpdf.io.font.constants.FontWeights;
48-
import com.itextpdf.io.font.constants.FontWidths;
48+
import com.itextpdf.io.font.constants.FontStretches;
4949

5050
import java.io.Serializable;
5151
import java.util.List;
@@ -72,7 +72,7 @@ public class FontNames implements Serializable {
7272
// os/2.usWeightClass
7373
private int weight = FontWeights.NORMAL;
7474
// os/2.usWidthClass
75-
private String width = FontWidths.NORMAL;
75+
private String fontStretch = FontStretches.NORMAL;
7676
// head.macStyle
7777
private int macStyle;
7878
// os/2.fsType != 2
@@ -121,17 +121,22 @@ public void setFontWeight(int weight) {
121121
this.weight = weight;
122122
}
123123

124-
public String getFontWidth() {
125-
return width;
124+
/**
125+
* Gets font stretch in css notation (font-stretch property).
126+
*
127+
* @return One of {@link FontStretches} values.
128+
*/
129+
public String getFontStretch() {
130+
return fontStretch;
126131
}
127132

128133
/**
129-
* Sets font width in css notation (font-stretch property).
134+
* Sets font stretch in css notation (font-stretch property).
130135
*
131-
* @param width {@link com.itextpdf.io.font.constants.FontWidths}.
136+
* @param fontStretch {@link FontStretches}.
132137
*/
133-
public void setFontWidth(String width) {
134-
this.width = width;
138+
public void setFontStretch(String fontStretch) {
139+
this.fontStretch = fontStretch;
135140
}
136141

137142
public boolean allowEmbedding() {

io/src/main/java/com/itextpdf/io/font/FontProgram.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ This file is part of the iText (R) project.
4545

4646
import com.itextpdf.io.IOException;
4747
import com.itextpdf.io.font.constants.FontMacStyleFlags;
48+
import com.itextpdf.io.font.constants.FontStretches;
4849
import com.itextpdf.io.font.constants.StandardFonts;
4950
import com.itextpdf.io.font.otf.Glyph;
5051
import com.itextpdf.io.util.FileUtil;
@@ -225,10 +226,10 @@ protected void setFontWeight(int fontWeight) {
225226
/**
226227
* Sets font width in css notation (font-stretch property)
227228
*
228-
* @param fontWidth {@link com.itextpdf.io.font.constants.FontWidths}.
229+
* @param fontWidth {@link FontStretches}.
229230
*/
230231
protected void setFontWidth(String fontWidth) {
231-
fontNames.setFontWidth(fontWidth);
232+
fontNames.setFontStretch(fontWidth);
232233
}
233234

234235
protected void setFixedPitch(boolean isFixedPitch) {
@@ -256,7 +257,7 @@ protected void setFontName(String psFontName) {
256257
}
257258

258259
protected void checkFilePath(String path) {
259-
if (path != null && !StandardFonts.contains(path) && !FileUtil.fileExists(path)) {
260+
if (path != null && !StandardFonts.isStandardFont(path) && !FileUtil.fileExists(path)) {
260261
throw new IOException(IOException.FontFile1NotFound).setMessageParams(path);
261262
}
262263
}

io/src/main/java/com/itextpdf/io/font/FontProgramDescriptorFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public static FontProgramDescriptor fetchDescriptor(String fontName) {
5656

5757
String baseName = FontProgram.trimFontStyle(fontName);
5858
//yes, we trying to find built-in standard font with original name, not baseName.
59-
boolean isBuiltinFonts14 = StandardFonts.contains(fontName);
59+
boolean isBuiltinFonts14 = StandardFonts.isStandardFont(fontName);
6060
boolean isCidFont = !isBuiltinFonts14 && FontCache.isPredefinedCidFont(baseName);
6161

6262
FontProgramDescriptor fontDescriptor = null;

io/src/main/java/com/itextpdf/io/font/FontProgramFactory.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ private static FontProgram createFont(String name, byte[] fontProgram, boolean c
156156
String baseName = FontProgram.trimFontStyle(name);
157157

158158
//yes, we trying to find built-in standard font with original name, not baseName.
159-
boolean isBuiltinFonts14 = StandardFonts.contains(name);
159+
boolean isBuiltinFonts14 = StandardFonts.isStandardFont(name);
160160
boolean isCidFont = !isBuiltinFonts14 && FontCache.isPredefinedCidFont(baseName);
161161

162162
FontProgram fontFound;
@@ -335,9 +335,9 @@ public static FontProgram createFont(byte[] ttc, int ttcIndex, boolean cached) t
335335
* Creates a FontProgram from the font file that has been previously registered.
336336
* @param fontName either a font alias, if the font file has been registered with an alias,
337337
* or just a font name otherwise
338-
* @param style the style of the font to look for. Possible values are listed in {@link FontConstants}.
339-
* See {@link FontConstants#BOLD}, {@link FontConstants#ITALIC}, {@link FontConstants#NORMAL},
340-
* {@link FontConstants#BOLDITALIC}, {@link FontConstants#UNDEFINED}
338+
* @param style the style of the font to look for. Possible values are listed in {@link FontStyles}.
339+
* See {@link FontStyles#BOLD}, {@link FontStyles#ITALIC}, {@link FontStyles#NORMAL},
340+
* {@link FontStyles#BOLDITALIC}, {@link FontStyles#UNDEFINED}
341341
* @param cached whether to try to get the font program from cache
342342
* @return created {@link FontProgram}
343343
*/
@@ -349,9 +349,9 @@ public static FontProgram createRegisteredFont(String fontName, int style, boole
349349
* Creates a FontProgram from the font file that has been previously registered.
350350
* @param fontName either a font alias, if the font file has been registered with an alias,
351351
* or just a font name otherwise
352-
* @param style the style of the font to look for. Possible values are listed in {@link FontConstants}.
353-
* See {@link FontConstants#BOLD}, {@link FontConstants#ITALIC}, {@link FontConstants#NORMAL},
354-
* {@link FontConstants#BOLDITALIC}, {@link FontConstants#UNDEFINED}
352+
* @param style the style of the font to look for. Possible values are listed in {@link FontStyles}.
353+
* See {@link FontStyles#BOLD}, {@link FontStyles#ITALIC}, {@link FontStyles#NORMAL},
354+
* {@link FontStyles#BOLDITALIC}, {@link FontStyles#UNDEFINED}
355355
* @return created {@link FontProgram}
356356
*/
357357
public static FontProgram createRegisteredFont(String fontName, int style) throws java.io.IOException {

io/src/main/java/com/itextpdf/io/font/OpenTypeParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ This file is part of the iText (R) project.
4444
package com.itextpdf.io.font;
4545

4646
import com.itextpdf.io.IOException;
47-
import com.itextpdf.io.font.constants.FontWidths;
47+
import com.itextpdf.io.font.constants.FontStretches;
4848
import com.itextpdf.io.source.RandomAccessFileOrArray;
4949
import com.itextpdf.io.source.RandomAccessSourceFactory;
5050
import com.itextpdf.io.util.IntHashtable;
@@ -318,7 +318,7 @@ public FontNames getFontNames() {
318318
fontNames.setCidFontName(cidName[0][3]);
319319
}
320320
fontNames.setFontWeight(os_2.usWeightClass);
321-
fontNames.setFontWidth(FontWidths.fromOpenTypeFontWidth(os_2.usWidthClass));
321+
fontNames.setFontStretch(FontStretches.fromOpenTypeWidthClass(os_2.usWidthClass));
322322
fontNames.setMacStyle(head.macStyle);
323323
fontNames.setAllowEmbedding(os_2.fsType != 2);
324324
return fontNames;

io/src/main/java/com/itextpdf/io/font/Type1Font.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public class Type1Font extends FontProgram {
7979
private int[] fontStreamLengths;
8080

8181
protected static Type1Font createStandardFont(String name) throws java.io.IOException {
82-
if (StandardFonts.contains(name)) {
82+
if (StandardFonts.isStandardFont(name)) {
8383
return new Type1Font(name, null, null, null);
8484
} else {
8585
throw new IOException("1.is.not.a.standard.type1.font").setMessageParams(name);

io/src/main/java/com/itextpdf/io/font/Type1Parser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public Type1Parser(String metricsPath, String binaryPath, byte[] afm, byte[] pfb
8686

8787
public RandomAccessFileOrArray getMetricsFile() throws java.io.IOException {
8888
isBuiltInFont = false;
89-
if (StandardFonts.contains(afmPath)) {
89+
if (StandardFonts.isStandardFont(afmPath)) {
9090
isBuiltInFont = true;
9191
byte[] buf = new byte[1024];
9292
InputStream resource = null;

io/src/main/java/com/itextpdf/io/font/constants/FontWidths.java renamed to io/src/main/java/com/itextpdf/io/font/constants/FontStretches.java

Lines changed: 5 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.itextpdf.io.font.constants;
22

3-
public final class FontWidths {
3+
public final class FontStretches {
44

5-
private FontWidths() {
5+
private FontStretches() {
66
}
77

88
private static final int FWIDTH_ULTRA_CONDENSED = 1;
@@ -35,54 +35,14 @@ private FontWidths() {
3535
public static final String ULTRA_EXPANDED = "ultra-expanded";
3636

3737
/**
38-
* Convert from Type 1 font width notation
39-
* @param fontWidth Type 1 font width.
40-
* @return one of the {@link FontWidths} constants.
41-
*/
42-
public static String fromType1FontWidth(String fontWidth) {
43-
fontWidth = fontWidth.toLowerCase();
44-
String fontWidthValue = NORMAL;
45-
switch (fontWidth) {
46-
case "ultracondensed":
47-
fontWidthValue = ULTRA_CONDENSED;
48-
break;
49-
case "extracondensed":
50-
fontWidthValue = EXTRA_CONDENSED;
51-
break;
52-
case "condensed":
53-
fontWidthValue = CONDENSED;
54-
break;
55-
case "semicondensed":
56-
fontWidthValue = SEMI_CONDENSED;
57-
break;
58-
case "normal":
59-
fontWidthValue = NORMAL;
60-
break;
61-
case "semiexpanded":
62-
fontWidthValue = SEMI_CONDENSED;
63-
break;
64-
case "expanded":
65-
fontWidthValue = EXPANDED;
66-
break;
67-
case "extraexpanded":
68-
fontWidthValue = EXTRA_CONDENSED;
69-
break;
70-
case "ultraexpanded":
71-
fontWidthValue = ULTRA_CONDENSED;
72-
break;
73-
}
74-
return fontWidthValue;
75-
}
76-
77-
/**
78-
* Convert from Open Type font width notation.
38+
* Convert from Open Type font width class notation.
7939
* <br/>
8040
* https://www.microsoft.com/typography/otspec/os2.htm#wdc
8141
*
8242
* @param fontWidth Open Type font width.
83-
* @return one of the {@link FontWidths} constants.
43+
* @return one of the {@link FontStretches} constants.
8444
*/
85-
public static String fromOpenTypeFontWidth(int fontWidth) {
45+
public static String fromOpenTypeWidthClass(int fontWidth) {
8646
String fontWidthValue = NORMAL;
8747
switch (fontWidth) {
8848
case FWIDTH_ULTRA_CONDENSED:

io/src/main/java/com/itextpdf/io/font/constants/FontWeights.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public static int fromType1FontWeight(String weight) {
7272
break;
7373
case "fat":
7474
case "extrablack":
75-
fontWeight = 1000;
75+
fontWeight = BLACK;
7676
break;
7777
}
7878
return fontWeight;

0 commit comments

Comments
 (0)