예제 #1
0
 protected internal virtual byte[] DecodeContent()
 {
     byte[] decodedBytes = PdfTokenizer.DecodeStringContent(content, hexWriting);
     if (decryption != null && !CheckState(PdfObject.UNENCRYPTED))
     {
         decryption.SetHashKeyForNextObject(decryptInfoNum, decryptInfoGen);
         decodedBytes = decryption.DecryptByteArray(decodedBytes);
     }
     return(decodedBytes);
 }
예제 #2
0
 public override String ToString()
 {
     if (value == null)
     {
         return(iText.IO.Util.JavaUtil.GetStringForBytes(PdfTokenizer.DecodeStringContent(content, hexWriting)));
     }
     else
     {
         return(GetValue());
     }
 }
예제 #3
0
 /// <summary>
 /// Decrypt content of an encrypted
 /// <c>PdfString</c>
 /// .
 /// </summary>
 protected internal virtual iText.Kernel.Pdf.PdfString Decrypt(PdfEncryption decrypt)
 {
     if (decrypt != null)
     {
         System.Diagnostics.Debug.Assert(content != null, "No byte content to decrypt value");
         byte[] decodedContent = PdfTokenizer.DecodeStringContent(content, hexWriting);
         content = null;
         decrypt.SetHashKeyForNextObject(decryptInfoNum, decryptInfoGen);
         value = PdfEncodings.ConvertToString(decrypt.DecryptByteArray(decodedContent), null);
     }
     return(this);
 }
예제 #4
0
 /// <summary>
 /// Returns the Unicode
 /// <c>String</c>
 /// value of this
 /// <c>PdfString</c>
 /// -object.
 /// </summary>
 public virtual String ToUnicodeString()
 {
     if (encoding != null && encoding.Length != 0)
     {
         return(GetValue());
     }
     if (content == null)
     {
         GenerateContent();
     }
     byte[] b = PdfTokenizer.DecodeStringContent(content, hexWriting);
     if (b.Length >= 2 && b[0] == (byte)0xFE && b[1] == (byte)0xFF)
     {
         return(PdfEncodings.ConvertToString(b, PdfEncodings.UNICODE_BIG));
     }
     else
     {
         return(PdfEncodings.ConvertToString(b, PdfEncodings.PDF_DOC_ENCODING));
     }
 }
예제 #5
0
        /// <summary>Reads a pdf object.</summary>
        /// <returns>the pdf object</returns>
        /// <exception cref="System.IO.IOException">on error</exception>
        public virtual CMapObject ReadObject()
        {
            if (!NextValidToken())
            {
                return(null);
            }
            PdfTokenizer.TokenType type = tokeniser.GetTokenType();
            switch (type)
            {
            case PdfTokenizer.TokenType.StartDic: {
                return(ReadDictionary());
            }

            case PdfTokenizer.TokenType.StartArray: {
                return(ReadArray());
            }

            case PdfTokenizer.TokenType.String: {
                CMapObject obj;
                if (tokeniser.IsHexString())
                {
                    obj = new CMapObject(CMapObject.HEX_STRING, PdfTokenizer.DecodeStringContent(tokeniser.GetByteContent(), true
                                                                                                 ));
                }
                else
                {
                    obj = new CMapObject(CMapObject.STRING, PdfTokenizer.DecodeStringContent(tokeniser.GetByteContent(), false
                                                                                             ));
                }
                return(obj);
            }

            case PdfTokenizer.TokenType.Name: {
                return(new CMapObject(CMapObject.NAME, DecodeName(tokeniser.GetByteContent())));
            }

            case PdfTokenizer.TokenType.Number: {
                CMapObject numObject = new CMapObject(CMapObject.NUMBER, null);
                try {
                    numObject.SetValue((int)Double.Parse(tokeniser.GetStringValue(), System.Globalization.CultureInfo.InvariantCulture
                                                         ));
                }
                catch (FormatException) {
                    numObject.SetValue(int.MinValue);
                }
                return(numObject);
            }

            case PdfTokenizer.TokenType.Other: {
                return(new CMapObject(CMapObject.LITERAL, tokeniser.GetStringValue()));
            }

            case PdfTokenizer.TokenType.EndArray: {
                return(new CMapObject(CMapObject.TOKEN, "]"));
            }

            case PdfTokenizer.TokenType.EndDic: {
                return(new CMapObject(CMapObject.TOKEN, ">>"));
            }

            default: {
                return(new CMapObject(0, ""));
            }
            }
        }
예제 #6
0
 protected internal virtual void GenerateValue()
 {
     System.Diagnostics.Debug.Assert(content != null, "No byte[] content to generate value");
     value = PdfEncodings.ConvertToString(PdfTokenizer.DecodeStringContent(content, hexWriting), null);
 }