1 26 27 package it.stefanochizzolini.clown.documents.contents.fonts; 28 29 import it.stefanochizzolini.clown.bytes.Buffer; 30 import it.stefanochizzolini.clown.documents.Document; 31 import it.stefanochizzolini.clown.objects.PdfDictionary; 32 import it.stefanochizzolini.clown.objects.PdfDirectObject; 33 import it.stefanochizzolini.clown.objects.PdfName; 34 35 import java.io.BufferedReader ; 36 import java.io.InputStreamReader ; 37 38 41 public class StandardType1Font 42 extends Type1Font 43 { 44 public enum FamilyNameEnum 47 { 48 Courier, 49 Helvetica, 50 Times, 51 Symbol, 52 ZapfDingbats 53 }; 54 56 public StandardType1Font( 59 Document context, 60 FamilyNameEnum familyName, 61 boolean bold, 62 boolean italic 63 ) 64 { 65 super(context); 66 67 String name = ""; 69 switch(familyName) 70 { 71 case Courier: 72 name = "Courier"; 73 break; 74 case Helvetica: 75 name = "Helvetica"; 76 break; 77 case Times: 78 name = "Times"; 79 break; 80 case Symbol: 81 name = "Symbol"; 82 break; 83 case ZapfDingbats: 84 name = "ZapfDingbats"; 85 break; 86 } 87 88 switch(familyName) 90 { 91 case Symbol: 92 case ZapfDingbats: 93 break; 94 case Times: 95 if(bold) 96 { 97 name = name + "-Bold"; 98 99 if(italic) 100 {name = name + "Italic";} 101 } 102 else if(italic) 103 {name = name + "-Italic";} 104 else 105 {name = name + "-Roman";} 106 break; 107 default: 108 if(bold) 109 { 110 name = name + "-Bold"; 111 112 if(italic) 113 {name = name + "Oblique";} 114 } 115 else if(italic) 116 {name = name + "-Oblique";} 117 break; 118 } 119 120 load(name); 121 } 122 123 127 public StandardType1Font( 128 PdfDirectObject baseObject 129 ) 130 {super(baseObject);} 131 133 137 141 private void load( 142 String fontName 143 ) 144 { 145 BufferedReader fontMetricsStream = null; 146 try 147 { 148 fontMetricsStream = new BufferedReader ( 149 new InputStreamReader ( 150 getClass().getResourceAsStream("/fonts/" + fontName + ".afm") 151 ) 152 ); 153 154 load( 155 fontMetricsStream, 156 true 157 ); 158 } 159 catch(Exception e) 160 {throw new RuntimeException (e);} 161 finally 162 { 163 try 164 { 165 if(fontMetricsStream != null) 166 {fontMetricsStream.close();} 167 } 168 catch(Exception e) 169 {throw new RuntimeException (e);} 170 } 171 } 172 } | Popular Tags |