String GetPDFContentString(String path)
{
var sb = new StringBuilder();
var reader = new PdfReader(path);
{
for (Int32 i = 1; i <= reader.NumberOfPages; i++)
{
PdfDictionary pdfDictionary = reader.GetPageN(i);
PRIndirectReference objectRef;
var PName = PdfName.CONTENTS;
try
{
objectRef = pdfDictionary.Get(PName) as PRIndirectReference;
}
catch (Exception ex)
{
return ex.Message;
}
var stream = PdfReader.GetPdfObject(objectRef) as PRStream;
byte[] SBytes = PdfReader.GetStreamBytes(stream);
var token = new PRTokeniser(SBytes);
while ((token.NextToken()))
switch (token.TokenType)
{
case PRTokeniser.TK_STRING:
sb.Append(token.StringValue);
break;
case PRTokeniser.TK_OTHER:
switch (token.StringValue)
{
case "ET":
sb.Append("\n");
break;
}
break;
}
token = null;
stream = null;
objectRef = null;
}
}
reader = null;
return sb.ToString();