iTextSharp.text.pdf.PdfEncodings.ConvertToString C# (CSharp) Метод

ConvertToString() публичный статический Метод

public static ConvertToString ( byte bytes, string encoding ) : string
bytes byte
encoding string
Результат string
    public static string ConvertToString(byte[] bytes, string encoding) {
        if (bytes == null)
            return PdfObject.NOTHING;
        if (encoding == null || encoding.Length == 0) {
            char[] c = new char[bytes.Length];
            for (int k = 0; k < bytes.Length; ++k)
                c[k] = (char)(bytes[k] & 0xff);
            return new String(c);
        }
        IExtraEncoding extra = (IExtraEncoding)extraEncodings[encoding.ToLower(System.Globalization.CultureInfo.InvariantCulture)];
        if (extra != null) {
            String text = extra.ByteToChar(bytes, encoding);
            if (text != null)
                return text;
        }
        char[] ch = null;
        if (encoding.Equals(BaseFont.WINANSI))
            ch = winansiByteToChar;
        else if (encoding.Equals(PdfObject.TEXT_PDFDOCENCODING))
            ch = pdfEncodingByteToChar;
        if (ch != null) {
            int len = bytes.Length;
            char[] c = new char[len];
            for (int k = 0; k < len; ++k) {
                c[k] = ch[bytes[k] & 0xff];
            }
            return new String(c);
        }
        String nameU = encoding.ToUpper(System.Globalization.CultureInfo.InvariantCulture);
        bool marker = false;
        bool big = false;
        int offset = 0;
        if (bytes.Length >= 2) {
            if (bytes[0] == (byte)254 && bytes[1] == (byte)255) {
                marker = true;
                big = true;
                offset = 2;
            }
            else if (bytes[0] == (byte)255 && bytes[1] == (byte)254) {
                marker = true;
                big = false;
                offset = 2;
            }
        }
        Encoding enc = null;
        if (nameU.Equals("UNICODEBIGUNMARKED") || nameU.Equals("UNICODEBIG"))
            enc = new UnicodeEncoding(marker ? big : true, false);
        if (nameU.Equals("UNICODELITTLEUNMARKED") || nameU.Equals("UNICODELITTLE"))
            enc = new UnicodeEncoding(marker ? big : false, false);
        if (enc != null)
            return enc.GetString(bytes, offset, bytes.Length - offset);
        return IanaEncodings.GetEncodingEncoding(encoding).GetString(bytes);
    }

Usage Example

Пример #1
0
 private void FillEncoding(PdfName encoding)
 {
     if (PdfName.MAC_ROMAN_ENCODING.Equals(encoding) || PdfName.WIN_ANSI_ENCODING.Equals(encoding))
     {
         byte[] b = new byte[256];
         for (int k = 0; k < 256; ++k)
         {
             b[k] = (byte)k;
         }
         String enc = WINANSI;
         if (PdfName.MAC_ROMAN_ENCODING.Equals(encoding))
         {
             enc = MACROMAN;
         }
         String cv  = PdfEncodings.ConvertToString(b, enc);
         char[] arr = cv.ToCharArray();
         for (int k = 0; k < 256; ++k)
         {
             uni2byte[arr[k]] = k;
         }
     }
     else
     {
         for (int k = 0; k < 256; ++k)
         {
             uni2byte[stdEnc[k]] = k;
         }
     }
 }
All Usage Examples Of iTextSharp.text.pdf.PdfEncodings::ConvertToString