public static string GetTJContent(string rawContent, CMapToUnicode cMapToUnicode, EncodingDifferenceToUnicode encodingDifferenceToUnicode)
        {
            string content;
            string rawArray = rawContent.Remove(rawContent.Length - 2).Trim();

            if (string.IsNullOrWhiteSpace(rawArray))
            {
                return(null);
            }
            PdfArrayDataType pdfArrayDataType = PdfArrayDataType.Parse(rawArray);

            content = string.Empty;
            foreach (string item in pdfArrayDataType.Elements.Where(_ => _ is string))
            {
                string escapedContent;
                escapedContent = item.Trim();
                content       +=
                    PdfHexStringDataType.IsStartChar(escapedContent) ?
                    PdfFontHelper.ToUnicode(PdfHexStringDataType.GetHexContent(escapedContent), cMapToUnicode, encodingDifferenceToUnicode).ToString() :
                    PdfFontHelper.ToUnicode(PdfStringDataType.GetContentFromEscapedContent(escapedContent), cMapToUnicode, encodingDifferenceToUnicode);
            }
            if (content.Contains("Media"))
            {
                Console.WriteLine();
            }
            return(content);
        }
        public static string GetNextStatement(string content, ref int i)
        {
            string statement        = "";
            bool   readingStatement = false;

            if (i >= content.Length)
            {
                return(null);
            }

            while (i < content.Length)
            {
                if (content[i] == ' ')
                {
                    if (readingStatement)
                    {
                        i++;
                        return(statement);
                    }

                    statement += " ";
                    i++;
                }
                else if (content[i] == '\n')
                {
                    i++;
                    return(statement);
                }
                else if (readingStatement && IsSeparator(content[i]))
                {
                    return(statement);
                }
                else if (PdfNumericDataType.IsStartChar(content, i))
                {
                    // string parameter
                    statement += PdfNumericDataType.GetRawData(content, ref i);
                }
                else if (PdfStringDataType.IsStartChar(content, i))
                {
                    // string parameter
                    statement += PdfStringDataType.GetRawData(content, ref i);
                }
                else if (PdfArrayDataType.IsStartChar(content, i))
                {
                    // array parameter
                    statement += PdfArrayDataType.GetRawData(content, ref i);
                }
                else if (PdfHexStringDataType.IsStartChar(content, i))
                {
                    // hex string parameter
                    statement += PdfHexStringDataType.GetRawData(content, ref i);
                }
                else if (content[i] == 't' && i + 5 < content.Length && content.Substring(i, 5) == "true ")
                {
                    // boolean true parameter
                    statement += "true ";
                    i         += 5;
                }
                else if (content[i] == 'f' && i + 6 < content.Length && content.Substring(i, 6) == "false ")
                {
                    // boolean false parameter
                    statement += "false ";
                    i         += 6;
                }
                else if (PdfObjectDataType.IsStartChar(content, i))
                {
                    // hex string parameter
                    statement += PdfObjectDataType.GetRawData(content, ref i);
                }
                else
                {
                    statement       += content[i];
                    readingStatement = true;
                    i++;
                }
            }

            return(statement);
        }