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); }