简体   繁体   中英

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?

在此处输入图像描述

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

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.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM