Olivier_s_j
Olivier_s_j

Reputation: 5182

How to get text with a certain color from a pdf c#

I have to put the data from a pdf file in a certain database structure. This requires me to be able to get certain data out of the pdf file. Since pdf hasn't got any tags etc ... i was wondering if it is possible to get text based on a color. Say for example i want all the red text. Or i want all the italic text in the document. Is this possible in C# ? Or is there an other way to easily filter data in a pdf document ?

enter image description here

Upvotes: 4

Views: 6046

Answers (4)

Olivier_s_j
Olivier_s_j

Reputation: 5182

I've taken a different approach. I converted the pdf to an excel file. And this was very easy to search for the coloured text

Upvotes: 1

Fabrizio Accatino
Fabrizio Accatino

Reputation: 2292

Try PdfLibTET http://www.pdflib.com/products/tet/
It should be able to get informations about text.

Upvotes: 0

Mark Storer
Mark Storer

Reputation: 15868

iText's PdfTextExtractor (and all the code it rests on) DOES NOT track the current color. Ouch. It wouldn't be all that hard to add, so you could modify iText yourself:

  1. Add stroke and fill color members to the GraphicState class (and update the various constructors appropriately).
  2. You'd need to add ContentOperator classes for 'g', 'G', 'rg', 'RG', 'K', and 'k' (and maybe CS, cs, SC, sc, SCN, scn), to modify the stroke and fill colors.
  3. Add methods to TextRenderInfo to get the current stroke and fill colors.

Upvotes: 0

anth
anth

Reputation: 1894

By using this library http://www.codeproject.com/KB/files/xpdf_csharp.aspx?msg=3154408 you have an access to every word style (font, color...)

this.pdfDoc.Pages[4].WordList.ElementAt(143).ForeColor

Upvotes: 0

Related Questions