C # PDFSharp: примеры того, как вырезать текст из PDF? - PullRequest
6 голосов
/ 07 марта 2012

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

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

Примеры как это сделать?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 07 марта 2012

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

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

1 голос
/ 23 февраля 2016

Извлечение текста из 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 или любого другого подходящего кода для поиска строк.Если вам нужно что-то сделать с форматированием или позиционированием, тогда удачи - насколько я могу судить, вам это понадобится.

0 голосов
/ 07 марта 2012

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

ссылка

библиотека

РЕДАКТИРОВАТЬ:

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

Есть два хороших распознавания текста tessnet и MODI Ссылка на поток в стеке Но я полностью могу рекомендовать MODI , который я использую сейчас.Пример @ codeproject .

РЕДАКТИРОВАТЬ 2:

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

...