1 20 package gnu.jpdf; 21 22 import java.awt.Font ; 23 import java.io.*; 24 import java.util.*; 25 26 34 public class PDFFont extends PDFObject implements Serializable 35 { 36 37 45 46 49 private String name; 50 51 54 private String type; 55 56 59 private String font; 60 61 64 private String javaFont; 65 66 69 private int style; 70 71 74 protected PDFFont() { 75 this("/F1","/Type1","Helvetica",Font.PLAIN); 76 } 77 78 87 public PDFFont(String name,String type,String font,int style) { 88 super("/Font"); 89 this.name = name; 90 this.type = type; 91 this.style = style; 92 93 String f = font.toLowerCase(); 94 95 this.font = base14[0][1]; 97 this.javaFont = base14[0][0]; 98 99 for(int i=0;i<base14.length;i++) { 101 if(base14[i][0].equals(f)) { 102 this.javaFont = base14[i][0]; 103 this.font = base14[i][1+style]; 104 break; 106 } 107 } 108 } 109 110 114 public String getName() { 115 return name; 116 } 117 118 121 public String getType() { 122 return type; 123 } 124 125 128 public String getFont() { 129 return font; 130 } 131 132 136 public int getStyle() { 137 return style; 138 } 139 140 144 public void write(OutputStream os) throws IOException { 145 writeStart(os); 147 148 os.write("/Subtype ".getBytes()); 150 os.write(type.getBytes()); 151 os.write("\n/Name ".getBytes()); 152 os.write(name.getBytes()); 153 os.write("\n/BaseFont ".getBytes()); 154 os.write(font.getBytes()); 155 os.write("\n/Encoding ".getBytes()); 159 os.write("/WinAnsiEncoding".getBytes()); 160 os.write("\n".getBytes()); 162 163 writeEnd(os); 165 } 166 167 175 protected boolean equals(String type,String font,int style) { 176 return this.type.equals(type) 177 && (this.font.equals(font) 178 && this.javaFont.equalsIgnoreCase(font)); 179 182 } 186 187 191 private static String [][] base14 = { 192 {"sansserif", 198 "/Helvetica", 199 "/Helvetica-Bold", 200 "/Helvetica-Oblique", 201 "/Helvetica-BoldOblique"}, 202 {"monospaced", 203 "/Courier", 204 "/Courier-Bold", 205 "/Courier-Oblique", 206 "/Courier-BoldOblique"}, 207 {"timesroman", 208 "/Times-Roman", 209 "/Times-Bold", 210 "/Times-Italic", 211 "/Times-BoldItalic"}, 212 {"courier", 213 "/Courier", 214 "/Courier-Bold", 215 "/Courier-Oblique", 216 "/Courier-BoldOblique"}, 217 {"helvetica", 218 "/Helvetica", 219 "/Helvetica-Bold", 220 "/Helvetica-Oblique", 221 "/Helvetica-BoldOblique"}, 222 {"dialog", 223 "/Courier", 224 "/Courier-Bold", 225 "/Courier-Oblique", 226 "/Courier-BoldOblique"}, 227 {"dialoginput", 228 "/Courier", 229 "/Courier-Bold", 230 "/Courier-Oblique", 231 "/Courier-BoldOblique"}, 232 }; 233 234 } 235 236 | Popular Tags |