C# PDFSharp: примеры того, как удалить текст из PDF?

У меня довольно простая задача: мне нужно прочитать PDF-файл и записать его содержимое изображения, игнорируя его текстовое содержимое. Так что по сути мне нужно сделать дополнение "сохранить как текст".

В идеале я бы предпочел избежать какого-либо повторного сжатия содержимого изображения, но если это невозможно, это тоже нормально.

примеры того, как это сделать?

спасибо!

3 ответов


извлечение текста из PDF-файла с помощью PDFsharp - непростая задача.

Это обсуждалось недавно в этой теме: https://stackoverflow.com/a/9161732/162529


извлечение текста из PDF с помощью PdfSharp может быть очень простым, в зависимости от типа документа и того, что вы собираетесь с ним делать. Если текст находится в документе как текст, а не изображение, и вас не волнует позиция или формат, то это довольно просто. Этот код получает весь текст первой страницы в PDF-файлах, с которыми я работаю:

var doc = PdfReader.Open(docPath);
string pageText = doc.Pages[0].Contents.Elements.GetDictionary(0).Stream.ToString();

doc.Pages.Count дает вам общее количество страниц, и вы получаете доступ к каждому из них через doc.Pages массив с индексом. Я не рекомендуется использовать foreach и LINQ здесь, так как интерфейсы не реализованы хорошо. Индекс перешел в GetDictionary для какого элемента документа PDF - это может варьироваться в зависимости от того, как создаются документы. Если вы не получили текст, который ищете, попробуйте выполнить цикл через все элементы.

текст, который это производит, будет полон различных кодов форматирования PDF. Если все, что вам нужно сделать, это извлечь строки, вы можете найти те, которые вы хотите, используя Regex или любой другой соответствующий код поиска строк. Если вам нужно что - то сделать с форматированием или позиционированием, тогда удачи-из того, что я могу сказать, вам это понадобится.


пример библиотек PDFSharp, извлекающих изображения .PDF-файл:

ссылке

библиотека

EDIT:

затем, если вы хотите извлечь текст из изображения, вы должны использовать библиотеки OCR.

есть два хороших OCRs tessnet и Моди
ссылка на поток в стеке
Но я полностью могу рекомендовать Моди который я использую сейчас. Некоторые образцы @ codeproject.

EDIT 2:

Если вы не хотите читать текст из извлеченных изображений, вы должны написать новый PDF-документ и поместить их все в него. Для написания PDF-файлов я использую MigraDoc. Пользоваться этой библиотекой нетрудно.