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); }
public override String ToString() { if (value == null) { return(iText.IO.Util.JavaUtil.GetStringForBytes(PdfTokenizer.DecodeStringContent(content, hexWriting))); } else { return(GetValue()); } }
/// <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); }
/// <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)); } }
/// <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, "")); } } }
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); }