1 /*
2  * $Id$
3  *
4  * Copyright 1999-2006 Bruno Lowagie
5  *
6  * The contents of this file are subject to the Mozilla Public License Version 1.1
7  * (the "License"); you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the License.
13  *
14  * The Original Code is 'iText, a free JAVA-PDF library'.
15  *
16  * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
17  * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
18  * All Rights Reserved.
19  * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
20  * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
21  *
22  * Contributor(s): all the names of the contributors are added in the source code
23  * where applicable.
24  *
25  * Alternatively, the contents of this file may be used under the terms of the
26  * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
27  * provisions of LGPL are applicable instead of those above.  If you wish to
28  * allow use of your version of this file only under the terms of the LGPL
29  * License and not to allow others to use your version of this file under
30  * the MPL, indicate your decision by deleting the provisions above and
31  * replace them with the notice and other provisions required by the LGPL.
32  * If you do not delete the provisions above, a recipient may use your version
33  * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
34  *
35  * This library is free software; you can redistribute it and/or modify it
36  * under the terms of the MPL as stated above or under the terms of the GNU
37  * Library General Public License as published by the Free Software Foundation;
38  * either version 2 of the License, or any later version.
39  *
40  * This library is distributed in the hope that it will be useful, but WITHOUT
41  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
42  * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
43  * details.
44  *
45  * If you didn't download this code from the following link, you should check if
46  * you aren't using an obsolete version:
47  * http://www.lowagie.com/iText/
48  */
49 
50 package com.lowagie.text.pdf;
51 
52 import java.lang.reflect.Field;
53 import java.lang.reflect.Modifier;
54 import java.util.*;
55 import com.lowagie.text.error_messages.MessageLocalization;
56 
57 /**
58  * <CODE>PdfName</CODE> is an object that can be used as a name in a PDF-file.
59  * <P>
60  * A name, like a string, is a sequence of characters.
61  * It must begin with a slash followed by a sequence of ASCII characters in
62  * the range 32 through 136 except %, (, ), [, ], &lt;, &gt;, {, }, / and #.
63  * Any character except 0x00 may be included in a name by writing its
64  * two character hex code, preceded by #. The maximum number of characters
65  * in a name is 127.<BR>
66  * This object is described in the 'Portable Document Format Reference Manual
67  * version 1.7' section 3.2.4 (page 56-58).
68  * <P>
69  *
70  * @see		PdfObject
71  * @see		PdfDictionary
72  * @see		BadPdfFormatException
73  */
74 
75 public class PdfName extends PdfObject implements Comparable{
76 
77     // CLASS CONSTANTS (a variety of standard names used in PDF))
78     /**
79      * A name.
80      * @since 2.1.6
81      */
82     public static final PdfName _3D = new PdfName("3D");
83     /** A name */
84     public static final PdfName A = new PdfName("A");
85     /** A name */
86     public static final PdfName AA = new PdfName("AA");
87     /**
88      * A name
89      * @since 2.1.5 renamed from ABSOLUTECALORIMETRIC
90      */
91     public static final PdfName ABSOLUTECOLORIMETRIC = new PdfName("AbsoluteColorimetric");
92     /** A name */
93     public static final PdfName AC = new PdfName("AC");
94     /** A name */
95     public static final PdfName ACROFORM = new PdfName("AcroForm");
96     /** A name */
97     public static final PdfName ACTION = new PdfName("Action");
98     /**
99      * A name.
100      * @since 2.1.6
101      */
102     public static final PdfName ACTIVATION = new PdfName("Activation");
103     /**
104      * A name.
105      * @since 2.1.6
106      */
107     public static final PdfName ADBE = new PdfName("ADBE");
108     /**
109      * a name used in PDF structure
110      * @since 2.1.6
111      */
112     public static final PdfName ACTUALTEXT = new PdfName("ActualText");
113     /** A name */
114     public static final PdfName ADBE_PKCS7_DETACHED = new PdfName("adbe.pkcs7.detached");
115     /** A name */
116     public static final PdfName ADBE_PKCS7_S4 =new PdfName("adbe.pkcs7.s4");
117     /** A name */
118     public static final PdfName ADBE_PKCS7_S5 =new PdfName("adbe.pkcs7.s5");
119     /** A name */
120     public static final PdfName ADBE_PKCS7_SHA1 = new PdfName("adbe.pkcs7.sha1");
121     /** A name */
122     public static final PdfName ADBE_X509_RSA_SHA1 = new PdfName("adbe.x509.rsa_sha1");
123     /** A name */
124     public static final PdfName ADOBE_PPKLITE = new PdfName("Adobe.PPKLite");
125     /** A name */
126     public static final PdfName ADOBE_PPKMS = new PdfName("Adobe.PPKMS");
127     /** A name */
128     public static final PdfName AESV2 = new PdfName("AESV2");
129     /** A name */
130     public static final PdfName AIS = new PdfName("AIS");
131     /** A name */
132     public static final PdfName ALLPAGES = new PdfName("AllPages");
133     /** A name */
134     public static final PdfName ALT = new PdfName("Alt");
135     /** A name */
136     public static final PdfName ALTERNATE = new PdfName("Alternate");
137     /**
138      * A name.
139      * @since 2.1.6
140      */
141     public static final PdfName ANIMATION = new PdfName("Animation");
142     /** A name */
143     public static final PdfName ANNOT = new PdfName("Annot");
144     /** A name */
145     public static final PdfName ANNOTS = new PdfName("Annots");
146     /** A name */
147     public static final PdfName ANTIALIAS = new PdfName("AntiAlias");
148     /** A name */
149     public static final PdfName AP = new PdfName("AP");
150     /** A name */
151     public static final PdfName APPDEFAULT = new PdfName("AppDefault");
152     /**
153      * A name
154      * @since 2.1.6
155      */
156     public static final PdfName ART = new PdfName("Art");
157     /** A name */
158     public static final PdfName ARTBOX = new PdfName("ArtBox");
159     /** A name */
160     public static final PdfName ASCENT = new PdfName("Ascent");
161     /** A name */
162     public static final PdfName AS = new PdfName("AS");
163     /** A name */
164     public static final PdfName ASCII85DECODE = new PdfName("ASCII85Decode");
165     /** A name */
166     public static final PdfName ASCIIHEXDECODE = new PdfName("ASCIIHexDecode");
167     /**
168      * A name.
169      * @since 2.1.6
170      */
171     public static final PdfName ASSET = new PdfName("Asset");
172     /**
173      * A name.
174      * @since 2.1.6
175      */
176     public static final PdfName ASSETS = new PdfName("Assets");
177     /** A name */
178     public static final PdfName AUTHEVENT = new PdfName("AuthEvent");
179     /** A name */
180     public static final PdfName AUTHOR = new PdfName("Author");
181     /** A name */
182     public static final PdfName B = new PdfName("B");
183     /**
184      * A name
185      * @since	2.1.6
186      */
187     public static final PdfName BACKGROUND = new PdfName("Background");
188     /** A name */
189     public static final PdfName BASEENCODING = new PdfName("BaseEncoding");
190     /** A name */
191     public static final PdfName BASEFONT = new PdfName("BaseFont");
192     /**
193      * A name
194      * @since	2.1.6
195      */
196     public static final PdfName BASEVERSION = new PdfName("BaseVersion");
197     /** A name */
198     public static final PdfName BBOX = new PdfName("BBox");
199     /** A name */
200     public static final PdfName BC = new PdfName("BC");
201     /** A name */
202     public static final PdfName BG = new PdfName("BG");
203     /**
204      * A name
205      * @since 2.1.6
206      */
207     public static final PdfName BIBENTRY = new PdfName("BibEntry");
208     /** A name */
209     public static final PdfName BIGFIVE = new PdfName("BigFive");
210     /**
211      * A name.
212      * @since 2.1.6
213      */
214     public static final PdfName BINDING = new PdfName("Binding");
215     /**
216      * A name.
217      * @since 2.1.6
218      */
219     public static final PdfName BINDINGMATERIALNAME = new PdfName("BindingMaterialName");
220     /** A name */
221     public static final PdfName BITSPERCOMPONENT = new PdfName("BitsPerComponent");
222     /** A name */
223     public static final PdfName BITSPERSAMPLE = new PdfName("BitsPerSample");
224     /** A name */
225     public static final PdfName BL = new PdfName("Bl");
226     /** A name */
227     public static final PdfName BLACKIS1 = new PdfName("BlackIs1");
228     /** A name */
229     public static final PdfName BLACKPOINT = new PdfName("BlackPoint");
230     /**
231      * A name
232      * @since 2.1.6
233      */
234     public static final PdfName BLOCKQUOTE = new PdfName("BlockQuote");
235     /** A name */
236     public static final PdfName BLEEDBOX = new PdfName("BleedBox");
237     /** A name */
238     public static final PdfName BLINDS = new PdfName("Blinds");
239     /** A name */
240     public static final PdfName BM = new PdfName("BM");
241     /** A name */
242     public static final PdfName BORDER = new PdfName("Border");
243     /** A name */
244     public static final PdfName BOUNDS = new PdfName("Bounds");
245     /** A name */
246     public static final PdfName BOX = new PdfName("Box");
247     /** A name */
248     public static final PdfName BS = new PdfName("BS");
249     /** A name */
250     public static final PdfName BTN = new PdfName("Btn");
251     /** A name */
252     public static final PdfName BYTERANGE = new PdfName("ByteRange");
253     /** A name */
254     public static final PdfName C = new PdfName("C");
255     /** A name */
256     public static final PdfName C0 = new PdfName("C0");
257     /** A name */
258     public static final PdfName C1 = new PdfName("C1");
259     /** A name */
260     public static final PdfName CA = new PdfName("CA");
261     /** A name */
262     public static final PdfName ca = new PdfName("ca");
263     /** A name */
264     public static final PdfName CALGRAY = new PdfName("CalGray");
265     /** A name */
266     public static final PdfName CALRGB = new PdfName("CalRGB");
267     /** A name */
268     public static final PdfName CAPHEIGHT = new PdfName("CapHeight");
269     /**
270      * A name
271      * @since 2.1.6
272      */
273     public static final PdfName CAPTION = new PdfName("Caption");
274     /** A name */
275     public static final PdfName CATALOG = new PdfName("Catalog");
276     /** A name */
277     public static final PdfName CATEGORY = new PdfName("Category");
278     /** A name */
279     public static final PdfName CCITTFAXDECODE = new PdfName("CCITTFaxDecode");
280     /**
281      * A name.
282      * @since 2.1.6
283      */
284     public static final PdfName CENTER = new PdfName("Center");
285     /** A name */
286     public static final PdfName CENTERWINDOW = new PdfName("CenterWindow");
287     /** A name */
288     public static final PdfName CERT = new PdfName("Cert");
289     /** A name */
290     public static final PdfName CF = new PdfName("CF");
291     /** A name */
292     public static final PdfName CFM = new PdfName("CFM");
293     /** A name */
294     public static final PdfName CH = new PdfName("Ch");
295     /** A name */
296     public static final PdfName CHARPROCS = new PdfName("CharProcs");
297     /** A name */
298     public static final PdfName CHECKSUM = new PdfName("CheckSum");
299     /** A name */
300     public static final PdfName CI = new PdfName("CI");
301     /** A name */
302     public static final PdfName CIDFONTTYPE0 = new PdfName("CIDFontType0");
303     /** A name */
304     public static final PdfName CIDFONTTYPE2 = new PdfName("CIDFontType2");
305     /**
306      * A name
307      * @since 2.0.7
308      */
309     public static final PdfName CIDSET = new PdfName("CIDSet");
310     /** A name */
311     public static final PdfName CIDSYSTEMINFO = new PdfName("CIDSystemInfo");
312     /** A name */
313     public static final PdfName CIDTOGIDMAP = new PdfName("CIDToGIDMap");
314     /** A name */
315     public static final PdfName CIRCLE = new PdfName("Circle");
316     /**
317      * A name.
318      * @since 2.1.6
319      */
320     public static final PdfName CMD = new PdfName("CMD");
321     /** A name */
322     public static final PdfName CO = new PdfName("CO");
323     /**
324      * A name
325      * @since 2.1.6
326      */
327     public static final PdfName CODE = new PdfName("Code");
328     /** A name */
329     public static final PdfName COLORS = new PdfName("Colors");
330     /** A name */
331     public static final PdfName COLORSPACE = new PdfName("ColorSpace");
332     /** A name */
333     public static final PdfName COLLECTION = new PdfName("Collection");
334     /** A name */
335     public static final PdfName COLLECTIONFIELD = new PdfName("CollectionField");
336     /** A name */
337     public static final PdfName COLLECTIONITEM = new PdfName("CollectionItem");
338     /** A name */
339     public static final PdfName COLLECTIONSCHEMA = new PdfName("CollectionSchema");
340     /** A name */
341     public static final PdfName COLLECTIONSORT = new PdfName("CollectionSort");
342     /** A name */
343     public static final PdfName COLLECTIONSUBITEM = new PdfName("CollectionSubitem");
344     /** A name */
345     public static final PdfName COLUMNS = new PdfName("Columns");
346     /**
347      * A name.
348      * @since 2.1.6
349      */
350     public static final PdfName CONDITION = new PdfName("Condition");
351     /**
352      * A name.
353      * @since 2.1.6
354      */
355     public static final PdfName CONFIGURATION = new PdfName("Configuration");
356     /**
357      * A name.
358      * @since 2.1.6
359      */
360     public static final PdfName CONFIGURATIONS = new PdfName("Configurations");
361     /** A name */
362     public static final PdfName CONTACTINFO = new PdfName("ContactInfo");
363     /** A name */
364     public static final PdfName CONTENT = new PdfName("Content");
365     /** A name */
366     public static final PdfName CONTENTS = new PdfName("Contents");
367     /** A name */
368     public static final PdfName COORDS = new PdfName("Coords");
369     /** A name */
370     public static final PdfName COUNT = new PdfName("Count");
371     /** A name of a base 14 type 1 font */
372     public static final PdfName COURIER = new PdfName("Courier");
373     /** A name of a base 14 type 1 font */
374     public static final PdfName COURIER_BOLD = new PdfName("Courier-Bold");
375     /** A name of a base 14 type 1 font */
376     public static final PdfName COURIER_OBLIQUE = new PdfName("Courier-Oblique");
377     /** A name of a base 14 type 1 font */
378     public static final PdfName COURIER_BOLDOBLIQUE = new PdfName("Courier-BoldOblique");
379     /** A name */
380     public static final PdfName CREATIONDATE = new PdfName("CreationDate");
381     /** A name */
382     public static final PdfName CREATOR = new PdfName("Creator");
383     /** A name */
384     public static final PdfName CREATORINFO = new PdfName("CreatorInfo");
385     /** A name */
386     public static final PdfName CROPBOX = new PdfName("CropBox");
387     /** A name */
388     public static final PdfName CRYPT = new PdfName("Crypt");
389     /** A name */
390     public static final PdfName CS = new PdfName("CS");
391     /**
392      * A name.
393      * @since 2.1.6
394      */
395     public static final PdfName CUEPOINT = new PdfName("CuePoint");
396     /**
397      * A name.
398      * @since 2.1.6
399      */
400     public static final PdfName CUEPOINTS = new PdfName("CuePoints");
401     /** A name */
402     public static final PdfName D = new PdfName("D");
403     /** A name */
404     public static final PdfName DA = new PdfName("DA");
405     /** A name */
406     public static final PdfName DATA = new PdfName("Data");
407     /** A name */
408     public static final PdfName DC = new PdfName("DC");
409     /** A name */
410     public static final PdfName DCTDECODE = new PdfName("DCTDecode");
411     /**
412      * A name.
413      * @since 2.1.6
414      */
415     public static final PdfName DEACTIVATION = new PdfName("Deactivation");
416     /** A name */
417     public static final PdfName DECODE = new PdfName("Decode");
418     /** A name */
419     public static final PdfName DECODEPARMS = new PdfName("DecodeParms");
420     /**
421      * A name
422      * @since	2.1.6
423      */
424     public static final PdfName DEFAULT = new PdfName("Default");
425     /**
426      * A name
427      * @since	2.1.5 renamed from DEFAULTCRYPTFILER
428      */
429     public static final PdfName DEFAULTCRYPTFILTER = new PdfName("DefaultCryptFilter");
430     /** A name */
431     public static final PdfName DEFAULTCMYK = new PdfName("DefaultCMYK");
432     /** A name */
433     public static final PdfName DEFAULTGRAY = new PdfName("DefaultGray");
434     /** A name */
435     public static final PdfName DEFAULTRGB = new PdfName("DefaultRGB");
436     /** A name */
437     public static final PdfName DESC = new PdfName("Desc");
438     /** A name */
439     public static final PdfName DESCENDANTFONTS = new PdfName("DescendantFonts");
440     /** A name */
441     public static final PdfName DESCENT = new PdfName("Descent");
442     /** A name */
443     public static final PdfName DEST = new PdfName("Dest");
444     /** A name */
445     public static final PdfName DESTOUTPUTPROFILE = new PdfName("DestOutputProfile");
446     /** A name */
447     public static final PdfName DESTS = new PdfName("Dests");
448     /** A name */
449     public static final PdfName DEVICEGRAY = new PdfName("DeviceGray");
450     /** A name */
451     public static final PdfName DEVICERGB = new PdfName("DeviceRGB");
452     /** A name */
453     public static final PdfName DEVICECMYK = new PdfName("DeviceCMYK");
454     /** A name */
455     public static final PdfName DI = new PdfName("Di");
456     /** A name */
457     public static final PdfName DIFFERENCES = new PdfName("Differences");
458     /** A name */
459     public static final PdfName DISSOLVE = new PdfName("Dissolve");
460     /** A name */
461     public static final PdfName DIRECTION = new PdfName("Direction");
462     /** A name */
463     public static final PdfName DISPLAYDOCTITLE = new PdfName("DisplayDocTitle");
464     /** A name */
465     public static final PdfName DIV = new PdfName("Div");
466     /** A name */
467     public static final PdfName DL = new PdfName("DL");
468     /** A name */
469     public static final PdfName DM = new PdfName("Dm");
470     /** A name */
471     public static final PdfName DOCMDP = new PdfName("DocMDP");
472     /** A name */
473     public static final PdfName DOCOPEN = new PdfName("DocOpen");
474     /**
475      * A name.
476      * @since 2.1.6
477      */
478     public static final PdfName DOCUMENT = new PdfName( "Document" );
479     /** A name */
480     public static final PdfName DOMAIN = new PdfName("Domain");
481     /** A name */
482     public static final PdfName DP = new PdfName("DP");
483     /** A name */
484     public static final PdfName DR = new PdfName("DR");
485     /** A name */
486     public static final PdfName DS = new PdfName("DS");
487     /** A name */
488     public static final PdfName DUR = new PdfName("Dur");
489     /** A name */
490     public static final PdfName DUPLEX = new PdfName("Duplex");
491     /** A name */
492     public static final PdfName DUPLEXFLIPSHORTEDGE = new PdfName("DuplexFlipShortEdge");
493     /** A name */
494     public static final PdfName DUPLEXFLIPLONGEDGE = new PdfName("DuplexFlipLongEdge");
495     /** A name */
496     public static final PdfName DV = new PdfName("DV");
497     /** A name */
498     public static final PdfName DW = new PdfName("DW");
499     /** A name */
500     public static final PdfName E = new PdfName("E");
501     /** A name */
502     public static final PdfName EARLYCHANGE = new PdfName("EarlyChange");
503     /** A name */
504     public static final PdfName EF = new PdfName("EF");
505     /**
506      * A name
507      * @since	2.1.3
508      */
509     public static final PdfName EFF = new PdfName("EFF");
510     /**
511      * A name
512      * @since	2.1.3
513      */
514     public static final PdfName EFOPEN = new PdfName("EFOpen");
515     /**
516      * A name
517      * @since	2.1.6
518      */
519     public static final PdfName EMBEDDED = new PdfName("Embedded");
520     /** A name */
521     public static final PdfName EMBEDDEDFILE = new PdfName("EmbeddedFile");
522     /** A name */
523     public static final PdfName EMBEDDEDFILES = new PdfName("EmbeddedFiles");
524     /** A name */
525     public static final PdfName ENCODE = new PdfName("Encode");
526     /** A name */
527     public static final PdfName ENCODEDBYTEALIGN = new PdfName("EncodedByteAlign");
528     /** A name */
529     public static final PdfName ENCODING = new PdfName("Encoding");
530     /** A name */
531     public static final PdfName ENCRYPT = new PdfName("Encrypt");
532     /** A name */
533     public static final PdfName ENCRYPTMETADATA = new PdfName("EncryptMetadata");
534     /** A name */
535     public static final PdfName ENDOFBLOCK = new PdfName("EndOfBlock");
536     /** A name */
537     public static final PdfName ENDOFLINE = new PdfName("EndOfLine");
538     /** A name */
539     public static final PdfName EXTEND = new PdfName("Extend");
540     /**
541      * A name
542      * @since	2.1.6
543      */
544     public static final PdfName EXTENSIONS = new PdfName("Extensions");
545     /**
546      * A name
547      * @since	2.1.6
548      */
549     public static final PdfName EXTENSIONLEVEL = new PdfName("ExtensionLevel");
550     /** A name */
551     public static final PdfName EXTGSTATE = new PdfName("ExtGState");
552     /** A name */
553     public static final PdfName EXPORT = new PdfName("Export");
554     /** A name */
555     public static final PdfName EXPORTSTATE = new PdfName("ExportState");
556     /** A name */
557     public static final PdfName EVENT = new PdfName("Event");
558     /** A name */
559     public static final PdfName F = new PdfName("F");
560     /**
561      * A name.
562      * @since 2.1.6
563      */
564     public static final PdfName FAR = new PdfName("Far");
565     /** A name */
566     public static final PdfName FB = new PdfName("FB");
567     /** A name */
568     public static final PdfName FDECODEPARMS = new PdfName("FDecodeParms");
569     /** A name */
570     public static final PdfName FDF = new PdfName("FDF");
571     /** A name */
572     public static final PdfName FF = new PdfName("Ff");
573     /** A name */
574     public static final PdfName FFILTER = new PdfName("FFilter");
575     /** A name */
576     public static final PdfName FIELDS = new PdfName("Fields");
577     /**
578      * A name
579      * @since 2.1.6
580      */
581     public static final PdfName FIGURE = new PdfName( "Figure" );
582     /** A name */
583     public static final PdfName FILEATTACHMENT = new PdfName("FileAttachment");
584     /** A name */
585     public static final PdfName FILESPEC = new PdfName("Filespec");
586     /** A name */
587     public static final PdfName FILTER = new PdfName("Filter");
588     /** A name */
589     public static final PdfName FIRST = new PdfName("First");
590     /** A name */
591     public static final PdfName FIRSTCHAR = new PdfName("FirstChar");
592     /** A name */
593     public static final PdfName FIRSTPAGE = new PdfName("FirstPage");
594     /** A name */
595     public static final PdfName FIT = new PdfName("Fit");
596     /** A name */
597     public static final PdfName FITH = new PdfName("FitH");
598     /** A name */
599     public static final PdfName FITV = new PdfName("FitV");
600     /** A name */
601     public static final PdfName FITR = new PdfName("FitR");
602     /** A name */
603     public static final PdfName FITB = new PdfName("FitB");
604     /** A name */
605     public static final PdfName FITBH = new PdfName("FitBH");
606     /** A name */
607     public static final PdfName FITBV = new PdfName("FitBV");
608     /** A name */
609     public static final PdfName FITWINDOW = new PdfName("FitWindow");
610     /** A name */
611     public static final PdfName FLAGS = new PdfName("Flags");
612     /**
613      * A name.
614      * @since 2.1.6
615      */
616     public static final PdfName FLASH = new PdfName("Flash");
617     /**
618      * A name.
619      * @since 2.1.6
620      */
621     public static final PdfName FLASHVARS = new PdfName("FlashVars");
622     /** A name */
623     public static final PdfName FLATEDECODE = new PdfName("FlateDecode");
624     /** A name */
625     public static final PdfName FO = new PdfName("Fo");
626     /** A name */
627     public static final PdfName FONT = new PdfName("Font");
628     /** A name */
629     public static final PdfName FONTBBOX = new PdfName("FontBBox");
630     /** A name */
631     public static final PdfName FONTDESCRIPTOR = new PdfName("FontDescriptor");
632     /** A name */
633     public static final PdfName FONTFILE = new PdfName("FontFile");
634     /** A name */
635     public static final PdfName FONTFILE2 = new PdfName("FontFile2");
636     /** A name */
637     public static final PdfName FONTFILE3 = new PdfName("FontFile3");
638     /** A name */
639     public static final PdfName FONTMATRIX = new PdfName("FontMatrix");
640     /** A name */
641     public static final PdfName FONTNAME = new PdfName("FontName");
642     /**
643      * A name
644      * @since	2.1.6
645      */
646     public static final PdfName FOREGROUND = new PdfName("Foreground");
647     /** A name */
648     public static final PdfName FORM = new PdfName("Form");
649     /** A name */
650     public static final PdfName FORMTYPE = new PdfName("FormType");
651     /**
652      * A name
653      * @since 2.1.6
654      */
655     public static final PdfName FORMULA = new PdfName( "Formula" );
656     /** A name */
657     public static final PdfName FREETEXT = new PdfName("FreeText");
658     /** A name */
659     public static final PdfName FRM = new PdfName("FRM");
660     /** A name */
661     public static final PdfName FS = new PdfName("FS");
662     /** A name */
663     public static final PdfName FT = new PdfName("FT");
664     /** A name */
665     public static final PdfName FULLSCREEN = new PdfName("FullScreen");
666     /** A name */
667     public static final PdfName FUNCTION = new PdfName("Function");
668     /** A name */
669     public static final PdfName FUNCTIONS = new PdfName("Functions");
670     /** A name */
671     public static final PdfName FUNCTIONTYPE = new PdfName("FunctionType");
672     /** A name of an attribute. */
673     public static final PdfName GAMMA = new PdfName("Gamma");
674     /** A name of an attribute. */
675     public static final PdfName GBK = new PdfName("GBK");
676     /** A name of an attribute. */
677     public static final PdfName GLITTER = new PdfName("Glitter");
678     /** A name of an attribute. */
679     public static final PdfName GOTO = new PdfName("GoTo");
680     /** A name of an attribute. */
681     public static final PdfName GOTOE = new PdfName("GoToE");
682     /** A name of an attribute. */
683     public static final PdfName GOTOR = new PdfName("GoToR");
684     /** A name of an attribute. */
685     public static final PdfName GROUP = new PdfName("Group");
686     /** A name of an attribute. */
687     public static final PdfName GTS_PDFA1 = new PdfName("GTS_PDFA1");
688     /** A name of an attribute. */
689     public static final PdfName GTS_PDFX = new PdfName("GTS_PDFX");
690     /** A name of an attribute. */
691     public static final PdfName GTS_PDFXVERSION = new PdfName("GTS_PDFXVersion");
692     /** A name of an attribute. */
693     public static final PdfName H = new PdfName("H");
694     /**
695      * A name
696      * @since 2.1.6
697      */
698     public static final PdfName H1 = new PdfName( "H1" );
699     /**
700      * A name
701      * @since 2.1.6
702      */
703     public static final PdfName H2 = new PdfName("H2");
704     /**
705      * A name
706      * @since 2.1.6
707      */
708     public static final PdfName H3 = new PdfName("H3");
709     /**
710      * A name
711      * @since 2.1.6
712      */
713     public static final PdfName H4 = new PdfName("H4");
714     /**
715      * A name
716      * @since 2.1.6
717      */
718     public static final PdfName H5 = new PdfName("H5");
719     /**
720      * A name
721      * @since 2.1.6
722      */
723     public static final PdfName H6 = new PdfName("H6");
724 
725     /**
726      * A name.
727      * @since 2.1.6
728      */
729     public static final PdfName HALIGN = new PdfName("HAlign");
730     /** A name of an attribute. */
731     public static final PdfName HEIGHT = new PdfName("Height");
732     /** A name */
733     public static final PdfName HELV = new PdfName("Helv");
734     /** A name of a base 14 type 1 font */
735     public static final PdfName HELVETICA = new PdfName("Helvetica");
736     /** A name of a base 14 type 1 font */
737     public static final PdfName HELVETICA_BOLD = new PdfName("Helvetica-Bold");
738     /** A name of a base 14 type 1 font */
739     public static final PdfName HELVETICA_OBLIQUE = new PdfName("Helvetica-Oblique");
740     /** A name of a base 14 type 1 font */
741     public static final PdfName HELVETICA_BOLDOBLIQUE = new PdfName("Helvetica-BoldOblique");
742     /** A name */
743     public static final PdfName HID = new PdfName("Hid");
744     /** A name */
745     public static final PdfName HIDE = new PdfName("Hide");
746     /** A name */
747     public static final PdfName HIDEMENUBAR = new PdfName("HideMenubar");
748     /** A name */
749     public static final PdfName HIDETOOLBAR = new PdfName("HideToolbar");
750     /** A name */
751     public static final PdfName HIDEWINDOWUI = new PdfName("HideWindowUI");
752     /** A name */
753     public static final PdfName HIGHLIGHT = new PdfName("Highlight");
754     /**
755      * A name.
756      * @since 2.1.6
757      */
758     public static final PdfName HOFFSET = new PdfName("HOffset");
759     /** A name */
760     public static final PdfName I = new PdfName("I");
761     /** A name */
762     public static final PdfName ICCBASED = new PdfName("ICCBased");
763     /** A name */
764     public static final PdfName ID = new PdfName("ID");
765     /** A name */
766     public static final PdfName IDENTITY = new PdfName("Identity");
767     /** A name */
768     public static final PdfName IF = new PdfName("IF");
769     /** A name */
770     public static final PdfName IMAGE = new PdfName("Image");
771     /** A name */
772     public static final PdfName IMAGEB = new PdfName("ImageB");
773     /** A name */
774     public static final PdfName IMAGEC = new PdfName("ImageC");
775     /** A name */
776     public static final PdfName IMAGEI = new PdfName("ImageI");
777     /** A name */
778     public static final PdfName IMAGEMASK = new PdfName("ImageMask");
779     /** A name */
780     public static final PdfName INDEX = new PdfName("Index");
781     /** A name */
782     public static final PdfName INDEXED = new PdfName("Indexed");
783     /** A name */
784     public static final PdfName INFO = new PdfName("Info");
785     /** A name */
786     public static final PdfName INK = new PdfName("Ink");
787     /** A name */
788     public static final PdfName INKLIST = new PdfName("InkList");
789     /**
790      * A name.
791      * @since 2.1.6
792      */
793     public static final PdfName INSTANCES = new PdfName("Instances");
794     /** A name */
795     public static final PdfName IMPORTDATA = new PdfName("ImportData");
796     /** A name */
797     public static final PdfName INTENT = new PdfName("Intent");
798     /** A name */
799     public static final PdfName INTERPOLATE = new PdfName("Interpolate");
800     /** A name */
801     public static final PdfName ISMAP = new PdfName("IsMap");
802     /** A name */
803     public static final PdfName IRT = new PdfName("IRT");
804     /** A name */
805     public static final PdfName ITALICANGLE = new PdfName("ItalicAngle");
806     /**
807      * A name
808      * @since	2.1.6
809      */
810     public static final PdfName ITXT = new PdfName("ITXT");
811     /** A name */
812     public static final PdfName IX = new PdfName("IX");
813     /** A name */
814     public static final PdfName JAVASCRIPT = new PdfName("JavaScript");
815     /**
816      * A name
817      * @since	2.1.5
818      */
819     public static final PdfName JBIG2DECODE = new PdfName("JBIG2Decode");
820     /**
821      * A name
822      * @since	2.1.5
823      */
824     public static final PdfName JBIG2GLOBALS = new PdfName("JBIG2Globals");
825     /** A name */
826     public static final PdfName JPXDECODE = new PdfName("JPXDecode");
827     /** A name */
828     public static final PdfName JS = new PdfName("JS");
829     /** A name */
830     public static final PdfName K = new PdfName("K");
831     /** A name */
832     public static final PdfName KEYWORDS = new PdfName("Keywords");
833     /** A name */
834     public static final PdfName KIDS = new PdfName("Kids");
835     /** A name */
836     public static final PdfName L = new PdfName("L");
837     /** A name */
838     public static final PdfName L2R = new PdfName("L2R");
839     /** A name */
840     public static final PdfName LANG = new PdfName("Lang");
841     /** A name */
842     public static final PdfName LANGUAGE = new PdfName("Language");
843     /** A name */
844     public static final PdfName LAST = new PdfName("Last");
845     /** A name */
846     public static final PdfName LASTCHAR = new PdfName("LastChar");
847     /** A name */
848     public static final PdfName LASTPAGE = new PdfName("LastPage");
849     /** A name */
850     public static final PdfName LAUNCH = new PdfName("Launch");
851     /**
852      * A name
853      * @since 2.1.6
854      */
855     public static final PdfName LBL = new PdfName("Lbl");
856     /**
857      * A name
858      * @since 2.1.6
859      */
860     public static final PdfName LBODY = new PdfName("LBody");
861     /** A name */
862     public static final PdfName LENGTH = new PdfName("Length");
863     /** A name */
864     public static final PdfName LENGTH1 = new PdfName("Length1");
865     /**
866      * A name
867      * @since 2.1.6
868      */
869     public static final PdfName LI = new PdfName("LI");
870     /** A name */
871     public static final PdfName LIMITS = new PdfName("Limits");
872     /** A name */
873     public static final PdfName LINE = new PdfName("Line");
874     /**
875      * A name.
876      * @since 2.1.6
877      */
878     public static final PdfName LINEAR = new PdfName("Linear");
879     /** A name */
880     public static final PdfName LINK = new PdfName("Link");
881     /** A name */
882     public static final PdfName LISTMODE = new PdfName("ListMode");
883     /** A name */
884     public static final PdfName LOCATION = new PdfName("Location");
885     /** A name */
886     public static final PdfName LOCK = new PdfName("Lock");
887     /**
888      * A name
889      * @since	2.1.2
890      */
891     public static final PdfName LOCKED = new PdfName("Locked");
892     /** A name */
893     public static final PdfName LZWDECODE = new PdfName("LZWDecode");
894     /** A name */
895     public static final PdfName M = new PdfName("M");
896     /**
897      * A name
898      * @since	2.1.6
899      */
900     public static final PdfName MATERIAL = new PdfName("Material");
901     /** A name */
902     public static final PdfName MATRIX = new PdfName("Matrix");
903     /** A name of an encoding */
904     public static final PdfName MAC_EXPERT_ENCODING = new PdfName("MacExpertEncoding");
905     /** A name of an encoding */
906     public static final PdfName MAC_ROMAN_ENCODING = new PdfName("MacRomanEncoding");
907     /** A name */
908     public static final PdfName MARKED = new PdfName("Marked");
909     /** A name */
910     public static final PdfName MARKINFO = new PdfName("MarkInfo");
911     /** A name */
912     public static final PdfName MASK = new PdfName("Mask");
913     /**
914      * A name
915      * @since	2.1.6 renamed from MAX
916      */
917     public static final PdfName MAX_LOWER_CASE = new PdfName("max");
918     /**
919      * A name
920      * @since	2.1.6
921      */
922     public static final PdfName MAX_CAMEL_CASE = new PdfName("Max");
923     /** A name */
924     public static final PdfName MAXLEN = new PdfName("MaxLen");
925     /** A name */
926     public static final PdfName MEDIABOX = new PdfName("MediaBox");
927     /** A name */
928     public static final PdfName MCID = new PdfName("MCID");
929     /** A name */
930     public static final PdfName MCR = new PdfName("MCR");
931     /** A name */
932     public static final PdfName METADATA = new PdfName("Metadata");
933     /**
934      * A name
935      * @since	2.1.6 renamed from MIN
936      */
937     public static final PdfName MIN_LOWER_CASE = new PdfName("min");
938     /**
939      * A name
940      * @since	2.1.6
941      */
942     public static final PdfName MIN_CAMEL_CASE = new PdfName("Min");
943     /** A name */
944     public static final PdfName MK = new PdfName("MK");
945     /** A name */
946     public static final PdfName MMTYPE1 = new PdfName("MMType1");
947     /** A name */
948     public static final PdfName MODDATE = new PdfName("ModDate");
949     /** A name */
950     public static final PdfName N = new PdfName("N");
951     /** A name */
952     public static final PdfName N0 = new PdfName("n0");
953     /** A name */
954     public static final PdfName N1 = new PdfName("n1");
955     /** A name */
956     public static final PdfName N2 = new PdfName("n2");
957     /** A name */
958     public static final PdfName N3 = new PdfName("n3");
959     /** A name */
960     public static final PdfName N4 = new PdfName("n4");
961     /** A name */
962     public static final PdfName NAME = new PdfName("Name");
963     /** A name */
964     public static final PdfName NAMED = new PdfName("Named");
965     /** A name */
966     public static final PdfName NAMES = new PdfName("Names");
967     /**
968      * A name.
969      * @since 2.1.6
970      */
971     public static final PdfName NAVIGATION = new PdfName("Navigation");
972     /**
973      * A name.
974      * @since 2.1.6
975      */
976     public static final PdfName NAVIGATIONPANE = new PdfName("NavigationPane");
977     /**
978      * A name.
979      * @since 2.1.6
980      */
981     public static final PdfName NEAR = new PdfName("Near");
982     /** A name */
983     public static final PdfName NEEDAPPEARANCES = new PdfName("NeedAppearances");
984     /** A name */
985     public static final PdfName NEWWINDOW = new PdfName("NewWindow");
986     /** A name */
987     public static final PdfName NEXT = new PdfName("Next");
988     /** A name */
989     public static final PdfName NEXTPAGE = new PdfName("NextPage");
990     /** A name */
991     public static final PdfName NM = new PdfName("NM");
992     /** A name */
993     public static final PdfName NONE = new PdfName("None");
994     /** A name */
995     public static final PdfName NONFULLSCREENPAGEMODE = new PdfName("NonFullScreenPageMode");
996     /**
997      * A name
998      * @since 2.1.6
999      */
1000     public static final PdfName NONSTRUCT = new PdfName("NonStruct");
1001     /**
1002      * A name
1003      * @since 2.1.6
1004      */
1005     public static final PdfName NOTE = new PdfName("Note");
1006     /** A name */
1007     public static final PdfName NUMCOPIES = new PdfName("NumCopies");
1008     /** A name */
1009     public static final PdfName NUMS = new PdfName("Nums");
1010     /** A name */
1011     public static final PdfName O = new PdfName("O");
1012     /**
1013      * A name used with Document Structure
1014      * @since 2.1.5
1015      */
1016     public static final PdfName OBJ = new PdfName("Obj");
1017     /**
1018      * a name used with Doucment Structure
1019      * @since 2.1.5
1020      */
1021     public static final PdfName OBJR = new PdfName("OBJR");
1022     /** A name */
1023     public static final PdfName OBJSTM = new PdfName("ObjStm");
1024     /** A name */
1025     public static final PdfName OC = new PdfName("OC");
1026     /** A name */
1027     public static final PdfName OCG = new PdfName("OCG");
1028     /** A name */
1029     public static final PdfName OCGS = new PdfName("OCGs");
1030     /** A name */
1031     public static final PdfName OCMD = new PdfName("OCMD");
1032     /** A name */
1033     public static final PdfName OCPROPERTIES = new PdfName("OCProperties");
1034     /** A name */
1035     public static final PdfName Off = new PdfName("Off");
1036     /** A name */
1037     public static final PdfName OFF = new PdfName("OFF");
1038     /** A name */
1039     public static final PdfName ON = new PdfName("ON");
1040     /** A name */
1041     public static final PdfName ONECOLUMN = new PdfName("OneColumn");
1042     /** A name */
1043     public static final PdfName OPEN = new PdfName("Open");
1044     /** A name */
1045     public static final PdfName OPENACTION = new PdfName("OpenAction");
1046     /** A name */
1047     public static final PdfName OP = new PdfName("OP");
1048     /** A name */
1049     public static final PdfName op = new PdfName("op");
1050     /** A name */
1051     public static final PdfName OPM = new PdfName("OPM");
1052     /** A name */
1053     public static final PdfName OPT = new PdfName("Opt");
1054     /** A name */
1055     public static final PdfName ORDER = new PdfName("Order");
1056     /** A name */
1057     public static final PdfName ORDERING = new PdfName("Ordering");
1058     /**
1059      * A name.
1060      * @since 2.1.6
1061      */
1062     public static final PdfName OSCILLATING = new PdfName("Oscillating");
1063 
1064     /** A name */
1065     public static final PdfName OUTLINES = new PdfName("Outlines");
1066     /** A name */
1067     public static final PdfName OUTPUTCONDITION = new PdfName("OutputCondition");
1068     /** A name */
1069     public static final PdfName OUTPUTCONDITIONIDENTIFIER = new PdfName("OutputConditionIdentifier");
1070     /** A name */
1071     public static final PdfName OUTPUTINTENT = new PdfName("OutputIntent");
1072     /** A name */
1073     public static final PdfName OUTPUTINTENTS = new PdfName("OutputIntents");
1074     /** A name */
1075     public static final PdfName P = new PdfName("P");
1076     /** A name */
1077     public static final PdfName PAGE = new PdfName("Page");
1078     /** A name */
1079     public static final PdfName PAGELABELS = new PdfName("PageLabels");
1080     /** A name */
1081     public static final PdfName PAGELAYOUT = new PdfName("PageLayout");
1082     /** A name */
1083     public static final PdfName PAGEMODE = new PdfName("PageMode");
1084     /** A name */
1085     public static final PdfName PAGES = new PdfName("Pages");
1086     /** A name */
1087     public static final PdfName PAINTTYPE = new PdfName("PaintType");
1088     /** A name */
1089     public static final PdfName PANOSE = new PdfName("Panose");
1090     /** A name */
1091     public static final PdfName PARAMS = new PdfName("Params");
1092     /** A name */
1093     public static final PdfName PARENT = new PdfName("Parent");
1094     /** A name */
1095     public static final PdfName PARENTTREE = new PdfName("ParentTree");
1096     /**
1097      * A name used in defining Document Structure.
1098      * @since 2.1.5
1099      */
1100     public static final PdfName PARENTTREENEXTKEY = new PdfName( "ParentTreeNextKey" );
1101     /**
1102      * A name
1103      * @since 2.1.6
1104      */
1105     public static final PdfName PART = new PdfName( "Part" );
1106     /**
1107      * A name.
1108      * @since 2.1.6
1109      */
1110     public static final PdfName PASSCONTEXTCLICK = new PdfName("PassContextClick");
1111     /** A name */
1112     public static final PdfName PATTERN = new PdfName("Pattern");
1113     /** A name */
1114     public static final PdfName PATTERNTYPE = new PdfName("PatternType");
1115     /**
1116      * A name.
1117      * @since 2.1.6
1118      */
1119     public static final PdfName PC = new PdfName("PC");
1120     /** A name */
1121     public static final PdfName PDF = new PdfName("PDF");
1122     /** A name */
1123     public static final PdfName PDFDOCENCODING = new PdfName("PDFDocEncoding");
1124     /** A name */
1125     public static final PdfName PERCEPTUAL = new PdfName("Perceptual");
1126     /** A name */
1127     public static final PdfName PERMS = new PdfName("Perms");
1128     /** A name */
1129     public static final PdfName PG = new PdfName("Pg");
1130     /**
1131      * A name.
1132      * @since 2.1.6
1133      */
1134     public static final PdfName PI = new PdfName("PI");
1135     /** A name */
1136     public static final PdfName PICKTRAYBYPDFSIZE = new PdfName("PickTrayByPDFSize");
1137     /**
1138      * A name.
1139      * @since 2.1.6
1140      */
1141     public static final PdfName PLAYCOUNT = new PdfName("PlayCount");
1142     /**
1143      * A name.
1144      * @since 2.1.6
1145      */
1146     public static final PdfName PO = new PdfName("PO");
1147     /** A name */
1148     public static final PdfName POPUP = new PdfName("Popup");
1149     /**
1150      * A name.
1151      * @since 2.1.6
1152      */
1153     public static final PdfName POSITION = new PdfName("Position");
1154     /** A name */
1155     public static final PdfName PREDICTOR = new PdfName("Predictor");
1156     /** A name */
1157     public static final PdfName PREFERRED = new PdfName("Preferred");
1158     /**
1159      * A name.
1160      * @since 2.1.6
1161      */
1162     public static final PdfName PRESENTATION = new PdfName("Presentation");
1163     /** A name */
1164     public static final PdfName PRESERVERB = new PdfName("PreserveRB");
1165     /** A name */
1166     public static final PdfName PREV = new PdfName("Prev");
1167     /** A name */
1168     public static final PdfName PREVPAGE = new PdfName("PrevPage");
1169     /** A name */
1170     public static final PdfName PRINT = new PdfName("Print");
1171     /** A name */
1172     public static final PdfName PRINTAREA = new PdfName("PrintArea");
1173     /** A name */
1174     public static final PdfName PRINTCLIP = new PdfName("PrintClip");
1175     /** A name */
1176     public static final PdfName PRINTPAGERANGE = new PdfName("PrintPageRange");
1177     /** A name */
1178     public static final PdfName PRINTSCALING = new PdfName("PrintScaling");
1179     /** A name */
1180     public static final PdfName PRINTSTATE = new PdfName("PrintState");
1181     /**
1182      * A name
1183      * @since 2.1.6
1184      */
1185     public static final PdfName PRIVATE = new PdfName("Private");
1186     /** A name */
1187     public static final PdfName PROCSET = new PdfName("ProcSet");
1188     /** A name */
1189     public static final PdfName PRODUCER = new PdfName("Producer");
1190     /** A name */
1191     public static final PdfName PROPERTIES = new PdfName("Properties");
1192     /** A name */
1193     public static final PdfName PS = new PdfName("PS");
1194     /** A name */
1195     public static final PdfName PUBSEC = new PdfName("Adobe.PubSec");
1196     /**
1197      * A name.
1198      * @since 2.1.6
1199      */
1200     public static final PdfName PV = new PdfName("PV");
1201     /** A name */
1202     public static final PdfName Q = new PdfName("Q");
1203     /** A name */
1204     public static final PdfName QUADPOINTS = new PdfName("QuadPoints");
1205     /**
1206      * A name
1207      * @since 2.1.6
1208      */
1209     public static final PdfName QUOTE = new PdfName("Quote");
1210     /** A name */
1211     public static final PdfName R = new PdfName("R");
1212     /** A name */
1213     public static final PdfName R2L = new PdfName("R2L");
1214     /** A name */
1215     public static final PdfName RANGE = new PdfName("Range");
1216     /** A name */
1217     public static final PdfName RC = new PdfName("RC");
1218     /** A name */
1219     public static final PdfName RBGROUPS = new PdfName("RBGroups");
1220     /** A name */
1221     public static final PdfName REASON = new PdfName("Reason");
1222     /** A name */
1223     public static final PdfName RECIPIENTS = new PdfName("Recipients");
1224     /** A name */
1225     public static final PdfName RECT = new PdfName("Rect");
1226     /** A name */
1227     public static final PdfName REFERENCE = new PdfName("Reference");
1228     /** A name */
1229     public static final PdfName REGISTRY = new PdfName("Registry");
1230     /** A name */
1231     public static final PdfName REGISTRYNAME = new PdfName("RegistryName");
1232     /**
1233      * A name
1234      * @since	2.1.5 renamed from RELATIVECALORIMETRIC
1235      */
1236     public static final PdfName RELATIVECOLORIMETRIC = new PdfName("RelativeColorimetric");
1237     /** A name */
1238     public static final PdfName RENDITION = new PdfName("Rendition");
1239     /** A name */
1240     public static final PdfName RESETFORM = new PdfName("ResetForm");
1241     /** A name */
1242     public static final PdfName RESOURCES = new PdfName("Resources");
1243     /** A name */
1244     public static final PdfName RI = new PdfName("RI");
1245     /**
1246      * A name.
1247      * @since 2.1.6
1248      */
1249     public static final PdfName RICHMEDIA = new PdfName("RichMedia");
1250     /**
1251      * A name.
1252      * @since 2.1.6
1253      */
1254     public static final PdfName RICHMEDIAACTIVATION = new PdfName("RichMediaActivation");
1255     /**
1256      * A name.
1257      * @since 2.1.6
1258      */
1259     public static final PdfName RICHMEDIAANIMATION = new PdfName("RichMediaAnimation");
1260     /**
1261      * A name
1262      * @since	2.1.6
1263      */
1264     public static final PdfName RICHMEDIACOMMAND = new PdfName("RichMediaCommand");
1265     /**
1266      * A name.
1267      * @since 2.1.6
1268      */
1269     public static final PdfName RICHMEDIACONFIGURATION = new PdfName("RichMediaConfiguration");
1270     /**
1271      * A name.
1272      * @since 2.1.6
1273      */
1274     public static final PdfName RICHMEDIACONTENT = new PdfName("RichMediaContent");
1275     /**
1276      * A name.
1277      * @since 2.1.6
1278      */
1279     public static final PdfName RICHMEDIADEACTIVATION = new PdfName("RichMediaDeactivation");
1280     /**
1281      * A name.
1282      * @since 2.1.6
1283      */
1284     public static final PdfName RICHMEDIAEXECUTE = new PdfName("RichMediaExecute");
1285     /**
1286      * A name.
1287      * @since 2.1.6
1288      */
1289     public static final PdfName RICHMEDIAINSTANCE = new PdfName("RichMediaInstance");
1290     /**
1291      * A name.
1292      * @since 2.1.6
1293      */
1294     public static final PdfName RICHMEDIAPARAMS = new PdfName("RichMediaParams");
1295     /**
1296      * A name.
1297      * @since 2.1.6
1298      */
1299     public static final PdfName RICHMEDIAPOSITION = new PdfName("RichMediaPosition");
1300     /**
1301      * A name.
1302      * @since 2.1.6
1303      */
1304     public static final PdfName RICHMEDIAPRESENTATION = new PdfName("RichMediaPresentation");
1305     /**
1306      * A name.
1307      * @since 2.1.6
1308      */
1309     public static final PdfName RICHMEDIASETTINGS = new PdfName("RichMediaSettings");
1310     /**
1311      * A name.
1312      * @since 2.1.6
1313      */
1314     public static final PdfName RICHMEDIAWINDOW = new PdfName("RichMediaWindow");
1315     /** A name */
1316     public static final PdfName ROLEMAP = new PdfName("RoleMap");
1317     /** A name */
1318     public static final PdfName ROOT = new PdfName("Root");
1319     /** A name */
1320     public static final PdfName ROTATE = new PdfName("Rotate");
1321     /** A name */
1322     public static final PdfName ROWS = new PdfName("Rows");
1323     /**
1324      * A name
1325      * @since 2.1.6
1326      */
1327     public static final PdfName RUBY = new PdfName( "Ruby" );
1328     /** A name */
1329     public static final PdfName RUNLENGTHDECODE = new PdfName("RunLengthDecode");
1330     /** A name */
1331     public static final PdfName RV = new PdfName("RV");
1332     /** A name */
1333     public static final PdfName S = new PdfName("S");
1334     /** A name */
1335     public static final PdfName SATURATION = new PdfName("Saturation");
1336     /** A name */
1337     public static final PdfName SCHEMA = new PdfName("Schema");
1338     /** A name */
1339     public static final PdfName SCREEN = new PdfName("Screen");
1340     /**
1341      * A name.
1342      * @since 2.1.6
1343      */
1344     public static final PdfName SCRIPTS = new PdfName("Scripts");
1345     /** A name */
1346     public static final PdfName SECT = new PdfName("Sect");
1347     /** A name */
1348     public static final PdfName SEPARATION = new PdfName("Separation");
1349     /** A name */
1350     public static final PdfName SETOCGSTATE = new PdfName("SetOCGState");
1351     /**
1352      * A name.
1353      * @since 2.1.6
1354      */
1355     public static final PdfName SETTINGS = new PdfName("Settings");
1356     /** A name */
1357     public static final PdfName SHADING = new PdfName("Shading");
1358     /** A name */
1359     public static final PdfName SHADINGTYPE = new PdfName("ShadingType");
1360     /** A name */
1361     public static final PdfName SHIFT_JIS = new PdfName("Shift-JIS");
1362     /** A name */
1363     public static final PdfName SIG = new PdfName("Sig");
1364     /** A name */
1365     public static final PdfName SIGFLAGS = new PdfName("SigFlags");
1366     /** A name */
1367     public static final PdfName SIGREF = new PdfName("SigRef");
1368     /** A name */
1369     public static final PdfName SIMPLEX = new PdfName("Simplex");
1370     /** A name */
1371     public static final PdfName SINGLEPAGE = new PdfName("SinglePage");
1372     /** A name */
1373     public static final PdfName SIZE = new PdfName("Size");
1374     /** A name */
1375     public static final PdfName SMASK = new PdfName("SMask");
1376     /** A name */
1377     public static final PdfName SORT = new PdfName("Sort");
1378     /**
1379      * A name.
1380      * @since 2.1.6
1381      */
1382     public static final PdfName SOUND = new PdfName("Sound");
1383     /** A name */
1384     public static final PdfName SPAN = new PdfName("Span");
1385     /**
1386      * A name.
1387      * @since 2.1.6
1388      */
1389     public static final PdfName SPEED = new PdfName("Speed");
1390     /** A name */
1391     public static final PdfName SPLIT = new PdfName("Split");
1392     /** A name */
1393     public static final PdfName SQUARE = new PdfName("Square");
1394     /**
1395      * A name
1396      * @since 2.1.3
1397      */
1398     public static final PdfName SQUIGGLY = new PdfName("Squiggly");
1399     /** A name */
1400     public static final PdfName ST = new PdfName("St");
1401     /** A name */
1402     public static final PdfName STAMP = new PdfName("Stamp");
1403     /** A name */
1404     public static final PdfName STANDARD = new PdfName("Standard");
1405     /** A name */
1406     public static final PdfName STATE = new PdfName("State");
1407     /** A name */
1408     public static final PdfName STDCF = new PdfName("StdCF");
1409     /** A name */
1410     public static final PdfName STEMV = new PdfName("StemV");
1411     /** A name */
1412     public static final PdfName STMF = new PdfName("StmF");
1413     /** A name */
1414     public static final PdfName STRF = new PdfName("StrF");
1415     /** A name */
1416     public static final PdfName STRIKEOUT = new PdfName("StrikeOut");
1417     /** A name */
1418     public static final PdfName STRUCTPARENT = new PdfName("StructParent");
1419     /** A name */
1420     public static final PdfName STRUCTPARENTS = new PdfName("StructParents");
1421     /** A name */
1422     public static final PdfName STRUCTTREEROOT = new PdfName("StructTreeRoot");
1423     /** A name */
1424     public static final PdfName STYLE = new PdfName("Style");
1425     /** A name */
1426     public static final PdfName SUBFILTER = new PdfName("SubFilter");
1427     /** A name */
1428     public static final PdfName SUBJECT = new PdfName("Subject");
1429     /** A name */
1430     public static final PdfName SUBMITFORM = new PdfName("SubmitForm");
1431     /** A name */
1432     public static final PdfName SUBTYPE = new PdfName("Subtype");
1433     /** A name */
1434     public static final PdfName SUPPLEMENT = new PdfName("Supplement");
1435     /** A name */
1436     public static final PdfName SV = new PdfName("SV");
1437     /** A name */
1438     public static final PdfName SW = new PdfName("SW");
1439     /** A name of a base 14 type 1 font */
1440     public static final PdfName SYMBOL = new PdfName("Symbol");
1441     /** A name */
1442     public static final PdfName T = new PdfName("T");
1443     /**
1444      * A name
1445      * @since	2.1.6
1446      */
1447     public static final PdfName TA = new PdfName("TA");
1448     /**
1449      * A name
1450      * @since 2.1.6
1451      */
1452     public static final PdfName TABLE = new PdfName("Table");
1453     /**
1454      * A name
1455      * @since	2.1.5
1456      */
1457     public static final PdfName TABS = new PdfName("Tabs");
1458     /**
1459      * A name
1460      * @since 2.1.6
1461      */
1462     public static final PdfName TBODY = new PdfName("TBody");
1463     /**
1464      * A name
1465      * @since 2.1.6
1466      */
1467     public static final PdfName TD = new PdfName("TD");
1468     /** A name */
1469     public static final PdfName TEXT = new PdfName("Text");
1470     /**
1471      * A name
1472      * @since 2.1.6
1473      */
1474     public static final PdfName TFOOT = new PdfName("TFoot");
1475     /**
1476      * A name
1477      * @since 2.1.6
1478      */
1479     public static final PdfName TH = new PdfName("TH");
1480     /**
1481      * A name
1482      * @since 2.1.6
1483      */
1484     public static final PdfName THEAD = new PdfName("THead");
1485     /** A name */
1486     public static final PdfName THUMB = new PdfName("Thumb");
1487     /** A name */
1488     public static final PdfName THREADS = new PdfName("Threads");
1489     /** A name */
1490     public static final PdfName TI = new PdfName("TI");
1491     /**
1492      * A name
1493      * @since	2.1.6
1494      */
1495     public static final PdfName TIME = new PdfName("Time");
1496     /** A name */
1497     public static final PdfName TILINGTYPE = new PdfName("TilingType");
1498     /** A name of a base 14 type 1 font */
1499     public static final PdfName TIMES_ROMAN = new PdfName("Times-Roman");
1500     /** A name of a base 14 type 1 font */
1501     public static final PdfName TIMES_BOLD = new PdfName("Times-Bold");
1502     /** A name of a base 14 type 1 font */
1503     public static final PdfName TIMES_ITALIC = new PdfName("Times-Italic");
1504     /** A name of a base 14 type 1 font */
1505     public static final PdfName TIMES_BOLDITALIC = new PdfName("Times-BoldItalic");
1506     /** A name */
1507     public static final PdfName TITLE = new PdfName("Title");
1508     /** A name */
1509     public static final PdfName TK = new PdfName("TK");
1510     /** A name */
1511     public static final PdfName TM = new PdfName("TM");
1512     /**
1513      * A name
1514      * @since 2.1.6
1515      */
1516     public static final PdfName TOC = new PdfName("TOC");
1517     /**
1518      * A name
1519      * @since 2.1.6
1520      */
1521     public static final PdfName TOCI = new PdfName("TOCI");
1522     /** A name */
1523     public static final PdfName TOGGLE = new PdfName("Toggle");
1524     /**
1525      * A name.
1526      * @since 2.1.6
1527      */
1528     public static final PdfName TOOLBAR = new PdfName("Toolbar");
1529     /** A name */
1530     public static final PdfName TOUNICODE = new PdfName("ToUnicode");
1531     /** A name */
1532     public static final PdfName TP = new PdfName("TP");
1533     /**
1534      * A name
1535      * @since 2.1.6
1536      */
1537     public static final PdfName TABLEROW = new PdfName( "TR" );
1538     /** A name */
1539     public static final PdfName TRANS = new PdfName("Trans");
1540     /** A name */
1541     public static final PdfName TRANSFORMPARAMS = new PdfName("TransformParams");
1542     /** A name */
1543     public static final PdfName TRANSFORMMETHOD = new PdfName("TransformMethod");
1544     /** A name */
1545     public static final PdfName TRANSPARENCY = new PdfName("Transparency");
1546     /**
1547      * A name.
1548      * @since 2.1.6
1549      */
1550     public static final PdfName TRANSPARENT = new PdfName("Transparent");
1551     /** A name */
1552     public static final PdfName TRAPPED = new PdfName("Trapped");
1553     /** A name */
1554     public static final PdfName TRIMBOX = new PdfName("TrimBox");
1555     /** A name */
1556     public static final PdfName TRUETYPE = new PdfName("TrueType");
1557     /** A name */
1558     public static final PdfName TU = new PdfName("TU");
1559     /** A name */
1560     public static final PdfName TWOCOLUMNLEFT = new PdfName("TwoColumnLeft");
1561     /** A name */
1562     public static final PdfName TWOCOLUMNRIGHT = new PdfName("TwoColumnRight");
1563     /** A name */
1564     public static final PdfName TWOPAGELEFT = new PdfName("TwoPageLeft");
1565     /** A name */
1566     public static final PdfName TWOPAGERIGHT = new PdfName("TwoPageRight");
1567     /** A name */
1568     public static final PdfName TX = new PdfName("Tx");
1569     /** A name */
1570     public static final PdfName TYPE = new PdfName("Type");
1571     /** A name */
1572     public static final PdfName TYPE0 = new PdfName("Type0");
1573     /** A name */
1574     public static final PdfName TYPE1 = new PdfName("Type1");
1575     /** A name of an attribute. */
1576     public static final PdfName TYPE3 = new PdfName("Type3");
1577     /** A name of an attribute. */
1578     public static final PdfName U = new PdfName("U");
1579     /** A name of an attribute. */
1580     public static final PdfName UF = new PdfName("UF");
1581     /** A name of an attribute. */
1582     public static final PdfName UHC = new PdfName("UHC");
1583     /** A name of an attribute. */
1584     public static final PdfName UNDERLINE = new PdfName("Underline");
1585     /** A name */
1586     public static final PdfName UR = new PdfName("UR");
1587     /** A name */
1588     public static final PdfName UR3 = new PdfName("UR3");
1589     /** A name */
1590     public static final PdfName URI = new PdfName("URI");
1591     /** A name */
1592     public static final PdfName URL = new PdfName("URL");
1593     /** A name */
1594     public static final PdfName USAGE = new PdfName("Usage");
1595     /** A name */
1596     public static final PdfName USEATTACHMENTS = new PdfName("UseAttachments");
1597     /** A name */
1598     public static final PdfName USENONE = new PdfName("UseNone");
1599     /** A name */
1600     public static final PdfName USEOC = new PdfName("UseOC");
1601     /** A name */
1602     public static final PdfName USEOUTLINES = new PdfName("UseOutlines");
1603     /** A name */
1604     public static final PdfName USER = new PdfName("User");
1605     /** A name */
1606     public static final PdfName USERPROPERTIES = new PdfName("UserProperties");
1607     /** A name */
1608     public static final PdfName USERUNIT = new PdfName("UserUnit");
1609     /** A name */
1610     public static final PdfName USETHUMBS = new PdfName("UseThumbs");
1611     /** A name */
1612     public static final PdfName V = new PdfName("V");
1613     /** A name */
1614     public static final PdfName V2 = new PdfName("V2");
1615     /**
1616      * A name.
1617      * @since 2.1.6
1618      */
1619     public static final PdfName VALIGN = new PdfName("VAlign");
1620     /** A name */
1621     public static final PdfName VERISIGN_PPKVS = new PdfName("VeriSign.PPKVS");
1622     /** A name */
1623 	public static final PdfName VERSION = new PdfName("Version");
1624     /**
1625      * A name.
1626      * @since 2.1.6
1627      */
1628     public static final PdfName VIDEO = new PdfName("Video");
1629     /** A name */
1630     public static final PdfName VIEW = new PdfName("View");
1631     /**
1632      * A name.
1633      * @since 2.1.6
1634      */
1635     public static final PdfName VIEWS = new PdfName("Views");
1636     /** A name */
1637     public static final PdfName VIEWAREA = new PdfName("ViewArea");
1638     /** A name */
1639     public static final PdfName VIEWCLIP = new PdfName("ViewClip");
1640     /** A name */
1641     public static final PdfName VIEWERPREFERENCES = new PdfName("ViewerPreferences");
1642     /** A name */
1643     public static final PdfName VIEWSTATE = new PdfName("ViewState");
1644     /** A name */
1645     public static final PdfName VISIBLEPAGES = new PdfName("VisiblePages");
1646     /**
1647      * A name.
1648      * @since 2.1.6
1649      */
1650     public static final PdfName VOFFSET = new PdfName("VOffset");
1651     /** A name of an attribute. */
1652     public static final PdfName W = new PdfName("W");
1653     /** A name of an attribute. */
1654     public static final PdfName W2 = new PdfName("W2");
1655     /**
1656      * A name
1657      * @since 2.1.6
1658      */
1659     public static final PdfName WARICHU = new PdfName("Warichu");
1660     /** A name of an attribute. */
1661     public static final PdfName WC = new PdfName("WC");
1662     /** A name of an attribute. */
1663     public static final PdfName WIDGET = new PdfName("Widget");
1664     /** A name of an attribute. */
1665     public static final PdfName WIDTH = new PdfName("Width");
1666     /** A name */
1667     public static final PdfName WIDTHS = new PdfName("Widths");
1668     /** A name of an encoding */
1669     public static final PdfName WIN = new PdfName("Win");
1670     /** A name of an encoding */
1671     public static final PdfName WIN_ANSI_ENCODING = new PdfName("WinAnsiEncoding");
1672     /**
1673      * A name.
1674      * @since 2.1.6
1675      */
1676     public static final PdfName WINDOW = new PdfName("Window");
1677     /**
1678      * A name.
1679      * @since 2.1.6
1680      */
1681     public static final PdfName WINDOWED = new PdfName("Windowed");
1682     /** A name of an encoding */
1683     public static final PdfName WIPE = new PdfName("Wipe");
1684     /** A name */
1685     public static final PdfName WHITEPOINT = new PdfName("WhitePoint");
1686     /** A name */
1687     public static final PdfName WP = new PdfName("WP");
1688     /** A name of an encoding */
1689     public static final PdfName WS = new PdfName("WS");
1690     /** A name */
1691     public static final PdfName X = new PdfName("X");
1692     /**
1693      * A name.
1694      * @since 2.1.6
1695      */
1696     public static final PdfName XA = new PdfName("XA");
1697     /**
1698      * A name.
1699      * @since 2.1.6
1700      */
1701     public static final PdfName XD = new PdfName("XD");
1702     /** A name */
1703     public static final PdfName XFA = new PdfName("XFA");
1704     /** A name */
1705     public static final PdfName XML = new PdfName("XML");
1706     /** A name */
1707     public static final PdfName XOBJECT = new PdfName("XObject");
1708     /** A name */
1709     public static final PdfName XSTEP = new PdfName("XStep");
1710     /** A name */
1711     public static final PdfName XREF = new PdfName("XRef");
1712     /** A name */
1713     public static final PdfName XREFSTM = new PdfName("XRefStm");
1714     /** A name */
1715     public static final PdfName XYZ = new PdfName("XYZ");
1716     /** A name */
1717     public static final PdfName YSTEP = new PdfName("YStep");
1718     /** A name */
1719     public static final PdfName ZADB = new PdfName("ZaDb");
1720     /** A name of a base 14 type 1 font */
1721     public static final PdfName ZAPFDINGBATS = new PdfName("ZapfDingbats");
1722     /** A name */
1723     public static final PdfName ZOOM = new PdfName("Zoom");
1724 
1725     /**
1726      * map strings to all known static names
1727      * @since 2.1.6
1728      */
1729     public static Map staticNames;
1730 
1731     /**
1732      * Use reflection to cache all the static public final names so
1733      * future <code>PdfName</code> additions don't have to be "added twice".
1734      * A bit less efficient (around 50ms spent here on a 2.2ghz machine),
1735      *  but Much Less error prone.
1736      * @since 2.1.6
1737      */
1738 
1739     static {
1740         Field fields[] = PdfName.class.getDeclaredFields();
1741         staticNames = new HashMap( fields.length );
1742         final int flags = Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL;
1743         try {
1744             for (int fldIdx = 0; fldIdx < fields.length; ++fldIdx) {
1745                 Field curFld = fields[fldIdx];
1746                 if ((curFld.getModifiers() & flags) == flags &&
1747                     curFld.getType().equals( PdfName.class )) {
1748                     PdfName name = (PdfName)curFld.get( null );
decodeName()1749                     staticNames.put( decodeName( name.toString() ), name );
1750                 }
1751             }
1752         } catch (Exception e) {
1753             e.printStackTrace();
1754         }
1755     }
1756     // CLASS VARIABLES
1757 
1758     private int hash = 0;
1759 
1760     // CONSTRUCTORS
1761 
1762     /**
1763      * Constructs a new <CODE>PdfName</CODE>. The name length will be checked.
1764      *
1765      * @param name the new name
1766      */
PdfName(String name)1767     public PdfName(String name) {
1768         this(name, true);
1769     }
1770 
1771     /**
1772      * Constructs a new <CODE>PdfName</CODE>.
1773      * @param name the new name
1774      * @param lengthCheck if <CODE>true</CODE> check the length validity,
1775      * if <CODE>false</CODE> the name can have any length
1776      */
PdfName(String name, boolean lengthCheck)1777     public PdfName(String name, boolean lengthCheck) {
1778         super(PdfObject.NAME);
1779         // The minimum number of characters in a name is 0, the maximum is 127 (the '/' not included)
1780         int length = name.length();
1781         if (lengthCheck && length > 127)
1782             throw new IllegalArgumentException(MessageLocalization.getComposedMessage("the.name.1.is.too.long.2.characters", name, String.valueOf(length)));
1783         bytes = encodeName(name);
1784     }
1785 
1786     /**
1787      * Constructs a PdfName.
1788      *
1789      * @param bytes the byte representation of the name
1790      */
PdfName(byte bytes[])1791     public PdfName(byte bytes[]) {
1792         super(PdfObject.NAME, bytes);
1793     }
1794 
1795     // CLASS METHODS
1796 
1797     /**
1798      * Compares this object with the specified object for order.
1799      * Returns a negative integer, zero, or a positive integer as this object
1800      * is less than, equal to, or greater than the specified object.<p>
1801      *
1802      * @param object the Object to be compared.
1803      * @return a negative integer, zero, or a positive integer as this object
1804      * is less than, equal to, or greater than the specified object.
1805      * @throws ClassCastException if the specified object's type prevents it
1806      * from being compared to this Object.
1807      */
compareTo(Object object)1808     public int compareTo(Object object) {
1809         PdfName name = (PdfName) object;
1810         byte myBytes[] = bytes;
1811         byte objBytes[] = name.bytes;
1812         int len = Math.min(myBytes.length, objBytes.length);
1813         for(int i = 0; i < len; i++) {
1814             if (myBytes[i] > objBytes[i])
1815                 return 1;
1816             if (myBytes[i] < objBytes[i])
1817                 return -1;
1818         }
1819         if (myBytes.length < objBytes.length)
1820             return -1;
1821         if (myBytes.length > objBytes.length)
1822             return 1;
1823         return 0;
1824     }
1825 
1826     /**
1827      * Indicates whether some other object is "equal to" this one.
1828      *
1829      * @param   obj   the reference object with which to compare.
1830      * @return  <code>true</code> if this object is the same as the obj
1831      * argument; <code>false</code> otherwise.
1832      */
equals(Object obj)1833     public boolean equals(Object obj) {
1834         if (this == obj)
1835             return true;
1836         if (obj instanceof PdfName)
1837             return compareTo(obj) == 0;
1838         return false;
1839     }
1840 
1841     /**
1842      * Returns a hash code value for the object.
1843      * This method is supported for the benefit of hashtables such as those provided by
1844      * <code>java.util.Hashtable</code>.
1845      *
1846      * @return  a hash code value for this object.
1847      */
hashCode()1848     public int hashCode() {
1849         int h = hash;
1850         if (h == 0) {
1851             int ptr = 0;
1852             int len = bytes.length;
1853             for (int i = 0; i < len; i++)
1854                 h = 31*h + (bytes[ptr++] & 0xff);
1855             hash = h;
1856         }
1857         return h;
1858     }
1859 
1860     /**
1861      * Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD".
1862      *
1863      * @param name the name to encode
1864      * @return the encoded name
1865      * @since	2.1.5
1866      */
encodeName(String name)1867     public static byte[] encodeName(String name) {
1868     	int length = name.length();
1869     	ByteBuffer buf = new ByteBuffer(length + 20);
1870     	buf.append('/');
1871     	char c;
1872     	char chars[] = name.toCharArray();
1873     	for (int k = 0; k < length; k++) {
1874     		c = (char)(chars[k] & 0xff);
1875     		// Escape special characters
1876     		switch (c) {
1877     			case ' ':
1878     			case '%':
1879     			case '(':
1880     			case ')':
1881     			case '<':
1882     			case '>':
1883     			case '[':
1884     			case ']':
1885     			case '{':
1886     			case '}':
1887     			case '/':
1888     			case '#':
1889     				buf.append('#');
1890     				buf.append(Integer.toString(c, 16));
1891     				break;
1892     			default:
1893     				if (c >= 32 && c <= 126)
1894     					buf.append(c);
1895     				else {
1896     					buf.append('#');
1897     					if (c < 16)
1898     						buf.append('0');
1899     					buf.append(Integer.toString(c, 16));
1900     				}
1901     				break;
1902     			}
1903     		}
1904     	return buf.toByteArray();
1905     }
1906 
1907     /**
1908      * Decodes an escaped name given in the form "/AB#20CD" into "AB CD".
1909      *
1910      * @param name the name to decode
1911      * @return the decoded name
1912      */
decodeName(String name)1913     public static String decodeName(String name) {
1914         StringBuffer buf = new StringBuffer();
1915         try {
1916             int len = name.length();
1917             for (int k = 1; k < len; ++k) {
1918                 char c = name.charAt(k);
1919                 if (c == '#') {
1920                 	char c1 = name.charAt(k + 1);
1921                 	char c2 = name.charAt(k + 2);
1922                     c = (char)((PRTokeniser.getHex(c1) << 4) + PRTokeniser.getHex(c2));
1923                     k += 2;
1924                 }
1925                 buf.append(c);
1926             }
1927         }
1928         catch (IndexOutOfBoundsException e) {
1929             // empty on purpose
1930         }
1931         return buf.toString();
1932     }
1933 }
1934