Example #1
0
 public override void WriteStringLiteral(string value, Scryber.FontEncoding encoding)
 {
     if (UseHex && encoding != FontEncoding.PDFDocEncoding)
     {
         //TODO Write encoding prefix
         CurrentStream.Write(Constants.StartHexString);
         value = ToHex(value, encoding);
         CurrentStream.Write(value);
         CurrentStream.Write(Constants.EndHexString);
     }
     else
     {
         Scryber.Text.PDFEncoding enc = Scryber.Text.PDFEncoding.GetEncoding(encoding);
         CurrentStream.Write(Constants.StartString);
         if (null != enc.Prefix && enc.Prefix.Length > 0)
         {
             CurrentStream.Write(enc.Prefix);
         }
         CurrentStream.Write(enc.GetBytes(value));
         CurrentStream.Write(Constants.EndString);
     }
 }
        //
        // support methods
        //

        #region private byte[] GetStringBytes(string value, Scryber.FontEncoding encoding)

        /// <summary>
        /// Converts a string in the specified encoding into a byte[]
        /// </summary>
        /// <param name="value"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        private byte[] GetStringBytes(string value, Scryber.FontEncoding encoding)
        {
            Scryber.Text.PDFEncoding enc = Scryber.Text.PDFEncoding.GetEncoding(encoding);
            byte[] all = enc.GetBytes(value);
            return(all);
        }
Example #3
0
 /// <summary>
 /// Converts a string with the specified font encoding to a byte[]
 /// and then returns the Hexadecimal string of that byte array
 /// </summary>
 /// <param name="value">The value to be converted</param>
 /// <param name="encoding">The encoding of the value</param>
 /// <returns>A hexadecimal string representation</returns>
 private string ToHex(string value, FontEncoding encoding)
 {
     Scryber.Text.PDFEncoding enc = Scryber.Text.PDFEncoding.GetEncoding(encoding);
     byte[] all = enc.GetBytes(value);
     return(ToHex(all));
 }