Как получить текст определенного цвета из pdf С#

Мне нужно поместить данные из файла PDF в определенную структуру базы данных. Это требует, чтобы я мог получить определенные данные из файла PDF. Поскольку в pdf нет тегов и т. д., мне было интересно, можно ли получить текст на основе цвета. Скажем, например, я хочу, чтобы весь текст был красным. Или я хочу, чтобы весь текст в документе был выделен курсивом. Возможно ли это в С#? Или есть другой способ легко фильтровать данные в документе PDF?

введите здесь описание изображения


person Olivier_s_j    schedule 03.05.2011    source источник
comment
Какую библиотеку PDF вы используете?   -  person Oded    schedule 03.05.2011
comment
iText pdf, но не нашел нужной мне функциональности. Так что я открыт для любых предложений относительно библиотек и т.д.   -  person Olivier_s_j    schedule 03.05.2011


Ответы (4)


Я выбрал другой подход. Я преобразовал pdf в файл excel. И это было очень легко найти цветной текст

person Olivier_s_j    schedule 04.05.2011

С помощью этой библиотеки http://www.codeproject.com/KB/files/xpdf_csharp.aspx?msg=3154408 у вас есть доступ ко всем стилям слов (шрифт, цвет...)

this.pdfDoc.Pages[4].WordList.ElementAt(143).ForeColor
person anth    schedule 03.05.2011

PdfTextExtractor iText (и весь код, на котором он основан) НЕ отслеживает текущий цвет. Ой. Добавить это не так сложно, поэтому вы можете изменить iText самостоятельно:

  1. Добавьте элементы цвета обводки и заливки в класс GraphicState (и соответствующим образом обновите различные конструкторы).
  2. Вам нужно будет добавить ContentOperator классов для 'g', 'G', 'rg', 'RG', 'K' и 'k' (и, возможно, CS, cs, SC, sc, SCN, scn), чтобы изменить цвета обводки и заливки.
  3. Добавьте методы в TextRenderInfo, чтобы получить текущие цвета обводки и заливки.
person Mark Storer    schedule 03.05.2011

Попробуйте PdfLibTET http://www.pdflib.com/products/tet/
Это должен иметь возможность получать информацию о тексте.

person Fabrizio Accatino    schedule 03.05.2011