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