I tried extend PDFContentStremprocesser to register graphics operator like ( I, v, etc). But still not able to retrive it information
Yes, you need to register a great number of graphics operators (see below), but that's not sufficient.
You also need to implement a processor for each graphics operator, and you need to write some GraphicsRenderInfo class that is populated by these processors. Are you saying you want somebody on the mailing-list to write you a quote to do this work in your place? In that case, you'll have to be more specific about your requirements: what kind of information do you want to be exposed in such a GraphicsRenderInfo class?
I think it's not going to be cheap. This is only a small part of the work:
PathConstructionOrPaintingOperator opConstructionPainting = new PathConstructionOrPaintingOperator();
operators.put("m", opConstructionPainting);
operators.put("l", opConstructionPainting);
operators.put("c", opConstructionPainting);
operators.put("v", opConstructionPainting);
operators.put("y", opConstructionPainting);
operators.put("h", opConstructionPainting);
operators.put("re", opConstructionPainting);
operators.put("S", opConstructionPainting);
operators.put("s", opConstructionPainting);
operators.put("f", opConstructionPainting);
operators.put("F", opConstructionPainting);
operators.put("f*", opConstructionPainting);
operators.put("B", opConstructionPainting);
operators.put("B*", opConstructionPainting);
operators.put("b", opConstructionPainting);
operators.put("b*", opConstructionPainting);
operators.put("n", opConstructionPainting);
operators.put("W", opConstructionPainting);
operators.put("W*", opConstructionPainting);
GraphicsOperator graphics = new GraphicsOperator();
operators.put("q", graphics);
operators.put("Q", graphics);
operators.put("w", graphics);
operators.put("J", graphics);
operators.put("j", graphics);
operators.put("M", graphics);
operators.put("d", graphics);
operators.put("ri", graphics);
operators.put("i", graphics);
operators.put("gs", graphics);
operators.put("cm", graphics);
operators.put("g", graphics);
operators.put("G", graphics);
operators.put("rg", graphics);
operators.put("RG", graphics);
operators.put("k", graphics);
operators.put("K", graphics);
operators.put("cs", graphics);
operators.put("CS", graphics);
operators.put("sc", graphics);
operators.put("SC", graphics);
operators.put("scn", graphics);
operators.put("SCN", graphics);
operators.put("sh", graphics);
XObjectOperator xObject = new XObjectOperator();
operators.put("Do", xObject);
InlineImageOperator inlineImage = new InlineImageOperator();
operators.put("BI", inlineImage);
operators.put("EI", inlineImage);
TextOperator text = new TextOperator();
operators.put("BT", text);
operators.put("ID", text);
operators.put("ET", text);
operators.put("Tc", text);
operators.put("Tw", text);
operators.put("Tz", text);
operators.put("TL", text);
operators.put("Tf", text);
operators.put("Tr", text);
operators.put("Ts", text);
operators.put("Td", text);
operators.put("TD", text);
operators.put("Tm", text);
operators.put("T*", text);
operators.put("Tj", text);
operators.put("'", text);
operators.put("\"", text);
operators.put("TJ", text);
MarkedContentOperator markedContent = new MarkedContentOperator();
operators.put("BMC", markedContent);
operators.put("BDC", markedContent);
operators.put("EMC", markedContent);
operators.put("m", opConstructionPainting);
operators.put("l", opConstructionPainting);
operators.put("c", opConstructionPainting);
operators.put("v", opConstructionPainting);
operators.put("y", opConstructionPainting);
operators.put("h", opConstructionPainting);
operators.put("re", opConstructionPainting);
operators.put("S", opConstructionPainting);
operators.put("s", opConstructionPainting);
operators.put("f", opConstructionPainting);
operators.put("F", opConstructionPainting);
operators.put("f*", opConstructionPainting);
operators.put("B", opConstructionPainting);
operators.put("B*", opConstructionPainting);
operators.put("b", opConstructionPainting);
operators.put("b*", opConstructionPainting);
operators.put("n", opConstructionPainting);
operators.put("W", opConstructionPainting);
operators.put("W*", opConstructionPainting);
GraphicsOperator graphics = new GraphicsOperator();
operators.put("q", graphics);
operators.put("Q", graphics);
operators.put("w", graphics);
operators.put("J", graphics);
operators.put("j", graphics);
operators.put("M", graphics);
operators.put("d", graphics);
operators.put("ri", graphics);
operators.put("i", graphics);
operators.put("gs", graphics);
operators.put("cm", graphics);
operators.put("g", graphics);
operators.put("G", graphics);
operators.put("rg", graphics);
operators.put("RG", graphics);
operators.put("k", graphics);
operators.put("K", graphics);
operators.put("cs", graphics);
operators.put("CS", graphics);
operators.put("sc", graphics);
operators.put("SC", graphics);
operators.put("scn", graphics);
operators.put("SCN", graphics);
operators.put("sh", graphics);
XObjectOperator xObject = new XObjectOperator();
operators.put("Do", xObject);
InlineImageOperator inlineImage = new InlineImageOperator();
operators.put("BI", inlineImage);
operators.put("EI", inlineImage);
TextOperator text = new TextOperator();
operators.put("BT", text);
operators.put("ID", text);
operators.put("ET", text);
operators.put("Tc", text);
operators.put("Tw", text);
operators.put("Tz", text);
operators.put("TL", text);
operators.put("Tf", text);
operators.put("Tr", text);
operators.put("Ts", text);
operators.put("Td", text);
operators.put("TD", text);
operators.put("Tm", text);
operators.put("T*", text);
operators.put("Tj", text);
operators.put("'", text);
operators.put("\"", text);
operators.put("TJ", text);
MarkedContentOperator markedContent = new MarkedContentOperator();
operators.put("BMC", markedContent);
operators.put("BDC", markedContent);
operators.put("EMC", markedContent);
------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________ iText-questions mailing list iText-questions@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA. Many questions posted to this list can (and will) be answered with a reference to the iText book: http://www.itextpdf.com/book/ Please check the keywords list before you ask for examples: http://itextpdf.com/themes/keywords.php