Reputation: 5182
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 ?
Upvotes: 4
Views: 6046
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
Reputation: 2292
Try PdfLibTET http://www.pdflib.com/products/tet/
It should be able to get informations about text.
Upvotes: 0
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:
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.Upvotes: 0
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