получить оригинальное содержание PDF, подписанного с помощью itextsharp

пытаюсь получить оригинальный документ с подписанным PDF, чтобы сравнить егохэш с сохраненным документом.

Это действительно легко, когда документ имеет несколько подписей, с помощью Acrobat Reader вы можете перейти к предыдущей редакции документа, сохранить его и т. Д. 'сидеть.

Удивительно, но это не работает с первой подписью, где нет прямого способа получить исходные данные.

Поскольку это невозможно сделать с помощью ридера, я пробовал программно с iTextSharp. Однако, хотя я глубоко гуглил, я не нашел, как это сделать. Единственный соответствующий пост, который я нашел, этоодин но решение не предлагается.

Кто-нибудь сталкивался с этой проблемой и нашел решение?

Заранее спасибо.

РЕДАКТИРОВАТЬ: Я поместил здесь код, который извлекает данные на основе ответа MKL. Прочитайте комментарии к ответу, чтобы остерегаться проблемы с нефиксированной длиной не подписанных PDF-файлов.

String sOriginalText = File.ReadAllText("FileSigned.pdf", Encoding.Default);
int sTrailerNumberPosition = sOriginalText.LastIndexOf("]/Prev ") + "]/Prev ".Length;
int sTrailerNumberEndPosition = sOriginalText.IndexOf(">", sTrailerNumberPosition);
String sTrailerIndex = sOriginalText.Substring(sTrailerNumberPosition, sTrailerNumberEndPosition -sTrailerNumberPosition);
int iTrailerIndexPosition = sOriginalText.IndexOf(sTrailerIndex + "\r\n%%EOF");
int iEndPosition = sOriginalText.IndexOf("%%EOF", iTrailerIndexPosition) + "%%EOF".Length;
String sOutText = sOriginalText.Substring(0, iEndPosition);
File.WriteAllText("c:/OriginalFile.pdf", sOutText, Encoding.Default);

Ответы на вопрос(1)

Ваш ответ на вопрос