1 26 27 package it.stefanochizzolini.clown.objects; 28 29 import it.stefanochizzolini.clown.files.File; 30 31 import java.util.regex.Matcher ; 32 import java.util.regex.Pattern ; 33 34 37 41 public final class PdfName 42 extends PdfAtomicObject<String > 43 { 44 54 private static final Pattern EscapedPattern = Pattern.compile("#([\\da-fA-F]{2})"); 55 private static final Pattern UnescapedPattern = Pattern.compile("[\\s\\(\\)<>\\[\\]{}/%#]"); 56 57 public static final PdfName A85 = new PdfName("A85"); 58 public static final PdfName AHx = new PdfName("AHx"); 59 public static final PdfName Annots = new PdfName("Annots"); 60 public static final PdfName Ascent = new PdfName("Ascent"); 61 public static final PdfName ASCII85Decode = new PdfName("ASCII85Decode"); 62 public static final PdfName ASCIIHexDecode = new PdfName("ASCIIHexDecode"); 63 public static final PdfName Author = new PdfName("Author"); 64 public static final PdfName BaseFont = new PdfName("BaseFont"); 65 public static final PdfName BitsPerComponent = new PdfName("BitsPerComponent"); 66 public static final PdfName BBox = new PdfName("BBox"); 67 public static final PdfName CalGray = new PdfName("CalGray"); 68 public static final PdfName CalRGB = new PdfName("CalRGB"); 69 public static final PdfName CapHeight = new PdfName("CapHeight"); 70 public static final PdfName Catalog = new PdfName("Catalog"); 71 public static final PdfName CCF = new PdfName("CCF"); 72 public static final PdfName CCITTFaxDecode = new PdfName("CCITTFaxDecode"); 73 public static final PdfName CenterWindow = new PdfName("CenterWindow"); 74 public static final PdfName ColorSpace = new PdfName("ColorSpace"); 75 public static final PdfName Contents = new PdfName("Contents"); 76 public static final PdfName Count = new PdfName("Count"); 77 public static final PdfName CreationDate = new PdfName("CreationDate"); 78 public static final PdfName Creator = new PdfName("Creator"); 79 public static final PdfName Crypt = new PdfName("Crypt"); 80 public static final PdfName Descent = new PdfName("Descent"); 81 public static final PdfName Dest = new PdfName("Dest"); 82 public static final PdfName DisplayDocTitle = new PdfName("DisplayDocTitle"); 83 public static final PdfName DCT = new PdfName("DCT"); 84 public static final PdfName DCTDecode = new PdfName("DCTDecode"); 85 public static final PdfName DeviceCMYK = new PdfName("DeviceCMYK"); 86 public static final PdfName DeviceGray = new PdfName("DeviceGray"); 87 public static final PdfName DeviceRGB = new PdfName("DeviceRGB"); 88 public static final PdfName Encoding = new PdfName("Encoding"); 89 public static final PdfName Encrypt = new PdfName("Encrypt"); 90 public static final PdfName Filter = new PdfName("Filter"); 91 public static final PdfName First = new PdfName("First"); 92 public static final PdfName FirstChar = new PdfName("FirstChar"); 93 public static final PdfName Fit = new PdfName("Fit"); 94 public static final PdfName FitH = new PdfName("FitH"); 95 public static final PdfName FitV = new PdfName("FitV"); 96 public static final PdfName FitR = new PdfName("FitR"); 97 public static final PdfName FitB = new PdfName("FitB"); 98 public static final PdfName FitBH = new PdfName("FitBH"); 99 public static final PdfName FitBV = new PdfName("FitBV"); 100 public static final PdfName FitWindow = new PdfName("FitWindow"); 101 public static final PdfName Fl = new PdfName("Fl"); 102 public static final PdfName Flags = new PdfName("Flags"); 103 public static final PdfName FlateDecode = new PdfName("FlateDecode"); 104 public static final PdfName Font = new PdfName("Font"); 105 public static final PdfName FontBBox = new PdfName("FontBBox"); 106 public static final PdfName FontDescriptor = new PdfName("FontDescriptor"); 107 public static final PdfName FontFile = new PdfName("FontFile"); 108 public static final PdfName FontFile3 = new PdfName("FontFile3"); 109 public static final PdfName FontName = new PdfName("FontName"); 110 public static final PdfName Form = new PdfName("Form"); 111 public static final PdfName FullScreen = new PdfName("FullScreen"); 112 public static final PdfName Height = new PdfName("Height"); 113 public static final PdfName HideMenubar = new PdfName("HideMenubar"); 114 public static final PdfName HideToolbar = new PdfName("HideToolbar"); 115 public static final PdfName HideWindowUI = new PdfName("HideWindowUI"); 116 public static final PdfName ICCBased = new PdfName("ICCBased"); 117 public static final PdfName Image = new PdfName("Image"); 118 public static final PdfName Info = new PdfName("Info"); 119 public static final PdfName ItalicAngle = new PdfName("ItalicAngle"); 120 public static final PdfName JBIG2Decode = new PdfName("JBIG2Decode"); 121 public static final PdfName JPXDecode = new PdfName("JPXDecode"); 122 public static final PdfName Keywords = new PdfName("Keywords"); 123 public static final PdfName Kids = new PdfName("Kids"); 124 public static final PdfName Lab = new PdfName("Lab"); 125 public static final PdfName Last = new PdfName("Last"); 126 public static final PdfName LastChar = new PdfName("LastChar"); 127 public static final PdfName Leading = new PdfName("Leading"); 128 public static final PdfName Length = new PdfName("Length"); 129 public static final PdfName LZW = new PdfName("LZW"); 130 public static final PdfName LZWDecode = new PdfName("LZWDecode"); 131 public static final PdfName MediaBox = new PdfName("MediaBox"); 132 public static final PdfName ModDate = new PdfName("ModDate"); 133 public static final PdfName Next = new PdfName("Next"); 134 public static final PdfName OneColumn = new PdfName("OneColumn"); 135 public static final PdfName OpenType = new PdfName("OpenType"); 136 public static final PdfName Outlines = new PdfName("Outlines"); 137 public static final PdfName Page = new PdfName("Page"); 138 public static final PdfName PageLayout = new PdfName("PageLayout"); 139 public static final PdfName PageMode = new PdfName("PageMode"); 140 public static final PdfName Pages = new PdfName("Pages"); 141 public static final PdfName Parent = new PdfName("Parent"); 142 public static final PdfName Prev = new PdfName("Prev"); 143 public static final PdfName Producer = new PdfName("Producer"); 144 public static final PdfName Resources = new PdfName("Resources"); 145 public static final PdfName RL = new PdfName("RL"); 146 public static final PdfName Root = new PdfName("Root"); 147 public static final PdfName RunLengthDecode = new PdfName("RunLengthDecode"); 148 public static final PdfName SinglePage = new PdfName("SinglePage"); 149 public static final PdfName Size = new PdfName("Size"); 150 public static final PdfName Subject = new PdfName("Subject"); 151 public static final PdfName Subtype = new PdfName("Subtype"); 152 public static final PdfName StemV = new PdfName("StemV"); 153 public static final PdfName Title = new PdfName("Title"); 154 public static final PdfName TrueType = new PdfName("TrueType"); 155 public static final PdfName Type = new PdfName("Type"); 156 public static final PdfName Type1 = new PdfName("Type1"); 157 public static final PdfName Type1C = new PdfName("Type1C"); 158 public static final PdfName TwoColumnLeft = new PdfName("TwoColumnLeft"); 159 public static final PdfName UseNone = new PdfName("UseNone"); 160 public static final PdfName UseOutlines = new PdfName("UseOutlines"); 161 public static final PdfName UseThumbs = new PdfName("UseThumbs"); 162 public static final PdfName ViewerPreferences = new PdfName("ViewerPreferences"); 163 public static final PdfName Width = new PdfName("Width"); 164 public static final PdfName Widths = new PdfName("Widths"); 165 public static final PdfName WinAnsiEncoding = new PdfName("WinAnsiEncoding"); 166 public static final PdfName XObject = new PdfName("XObject"); 167 public static final PdfName XYZ = new PdfName("XYZ"); 168 170 public static String toPdf( 173 String value 174 ) 175 {return "/" + value;} 176 180 public PdfName( 183 String value 184 ) 185 {setValue(value);} 186 187 190 195 public PdfName( 196 String value, 197 boolean escaped 198 ) 199 { 200 if(escaped) 201 {super.setValue(value);} 202 else 203 {this.setValue(value);} 204 } 205 207 @Override 210 public Object clone( 211 File context 212 ) 213 { 214 PdfName clone = (PdfName)super.clone(); 216 217 219 220 return clone; 221 } 222 223 @Override 224 public boolean equals( 225 Object object 226 ) 227 { 228 if(!(object instanceof PdfName)) 229 return false; 230 231 return getValue().equals(((PdfName)object).getValue()); 232 } 233 234 @Override 235 public int hashCode( 236 ) 237 {return getValue().hashCode();} 238 239 @Override 240 public void setValue( 241 String value 242 ) 243 { 244 248 StringBuilder buffer = new StringBuilder (); 249 int index = 0; 250 Matcher unescapedMatcher = UnescapedPattern.matcher(value); 251 while(unescapedMatcher.find()) 252 { 253 int start = unescapedMatcher.start(); 254 if(start > index) 255 {buffer.append(value.substring(index,start));} 256 257 buffer.append( 258 '#' + Integer.toHexString( 259 (int)unescapedMatcher.group(0).charAt(0) 260 ) 261 ); 262 263 index = unescapedMatcher.end(); 264 } 265 if(index < value.length()) 266 {buffer.append(value.substring(index));} 267 268 super.setValue(buffer.toString()); 269 } 270 271 @Override 272 public String toPdf( 273 ) 274 {return PdfName.toPdf(getValue());} 275 276 @Override 277 public String toString( 278 ) 279 { 280 283 String value = getValue(); 284 StringBuilder buffer = new StringBuilder (); 285 int index = 0; 286 Matcher escapedMatcher = EscapedPattern.matcher(value); 287 while(escapedMatcher.find()) 288 { 289 int start = escapedMatcher.start(); 290 if(start > index) 291 {buffer.append(value.substring(index,start));} 292 293 buffer.append( 294 (char)Integer.parseInt( 295 escapedMatcher.group(1), 296 16 297 ) 298 ); 299 300 index = escapedMatcher.end(); 301 } 302 if(index < value.length()) 303 {buffer.append(value.substring(index));} 304 305 return buffer.toString(); 306 } 307 } | Popular Tags |