コード例 #1
0
 private String DecodeString(PdfString ps)
 {
     if (ps.IsHexWriting())
     {
         return(PdfEncodings.ConvertToString(ps.GetBytes(), "UnicodeBigUnmarked"));
     }
     else
     {
         return(ps.ToUnicodeString());
     }
 }
コード例 #2
0
        /** Gets the field value or <CODE>null</CODE> if the field does not
         * exist or has no value defined.
         * @param name the fully qualified field name
         * @return the field value or <CODE>null</CODE>
         */
        public String GetFieldValue(String name)
        {
            PdfDictionary field = (PdfDictionary)fields[name];

            if (field == null)
            {
                return(null);
            }
            PdfObject v = GetPdfObject(field.Get(PdfName.V));

            if (v == null)
            {
                return(null);
            }
            if (v.IsName())
            {
                return(PdfName.DecodeName(((PdfName)v).ToString()));
            }
            else if (v.IsString())
            {
                PdfString vs = (PdfString)v;
                if (encoding == null || vs.Encoding != null)
                {
                    return(vs.ToUnicodeString());
                }
                byte[] b = vs.GetBytes();
                if (b.Length >= 2 && b[0] == (byte)254 && b[1] == (byte)255)
                {
                    return(vs.ToUnicodeString());
                }
                try {
                    if (encoding.Equals(PdfName.SHIFT_JIS))
                    {
                        return(Encoding.GetEncoding(932).GetString(b));
                    }
                    else if (encoding.Equals(PdfName.UHC))
                    {
                        return(Encoding.GetEncoding(949).GetString(b));
                    }
                    else if (encoding.Equals(PdfName.GBK))
                    {
                        return(Encoding.GetEncoding(936).GetString(b));
                    }
                    else if (encoding.Equals(PdfName.BIGFIVE))
                    {
                        return(Encoding.GetEncoding(950).GetString(b));
                    }
                }
                catch  {
                }
                return(vs.ToUnicodeString());
            }
            return(null);
        }
コード例 #3
0
        private static void IterateItems(PdfDictionary dic, Hashtable items)
        {
            PdfArray nn = (PdfArray)PdfReader.GetPdfObjectRelease(dic.Get(PdfName.NAMES));

            if (nn != null)
            {
                for (int k = 0; k < nn.Size; ++k)
                {
                    PdfString s = (PdfString)PdfReader.GetPdfObjectRelease(nn[k++]);
                    items[PdfEncodings.ConvertToString(s.GetBytes(), null)] = nn[k];
                }
            }
            else if ((nn = (PdfArray)PdfReader.GetPdfObjectRelease(dic.Get(PdfName.KIDS))) != null)
            {
                for (int k = 0; k < nn.Size; ++k)
                {
                    PdfDictionary kid = (PdfDictionary)PdfReader.GetPdfObjectRelease(nn[k]);
                    IterateItems(kid, items);
                }
            }
        }