Identify rgb and cmyk color from pdf

匿名 (未验证) 提交于 2019-12-03 02:54:01

问题:

I have a PDF that consists of different color text and background color. How do I identify which colors are used in the PDF with CMYK or RGB format?

StringBuilder sb_Sourcepdf = new StringBuilder(); PdfReader reader_FirstPdf = new PdfReader(pdf_of_FirstFile);  Document document = new Document();  PDFParser parser = new PDFParser(new FileInputStream(pdf_of_FirstFile)); parser.parse(); PDDocument docum = parser.getPDDocument();  PDFStreamEngine engine = new PDFStreamEngine();  PDPage page = (PDPage)docum.getDocumentCatalog().getAllPages().get(0);  engine.processStream(page, page.findResources(), page.getContents().getStream()); PDGraphicsState graphicState = engine.getGraphicsState(); string colorname = graphicState.getStrokingColor().getColorSpace().getName(); graphicState.getTextState().getFont(); int r = graphicState.getNonStrokingColor().getJavaColor().getRed(); int g = graphicState.getNonStrokingColor().getJavaColor().getGreen(); int b = graphicState.getNonStrokingColor().getJavaColor().getBlue(); int rgb = graphicState.getNonStrokingColor().getJavaColor().getRGB(); float[] cosp = graphicState.getNonStrokingColor().getColorSpaceValue(); PDColorSpace pd = graphicState.getNonStrokingColor().getColorSpace();  string re = graphicState.getStrokingColor().toString(); int rgbcolor = graphicState.getStrokingColor().getJavaColor().getRGB();  float[] components = { java.awt.Color.black.getRed(), java.awt.Color.black.getGreen(), java.awt.Color.black.getBlue() };  float[] colorSpaceValues = graphicState.getStrokingColor().getColorSpaceValue();   foreach (float c in colorSpaceValues) {     Debug.WriteLine(c * 255.00); } 

I used pdfbox but I am getting value as 0.0

回答1:

 PdfReader reader_FirstPdf = new PdfReader(pdf_of_FirstFile);               for (int i = 1; i <= reader_FirstPdf.NumberOfPages; i++)             {  TextWithFont_SourcePdf Sourcepdf = new TextWithFont_SourcePdf(); }                 text_First_File = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader_FirstPdf, i, Sourcepdf);               public void RenderText(iTextSharp.text.pdf.parser.TextRenderInfo renderInfo)             {  int r = renderInfo.GetColorNonStroke().R;                   int g = renderInfo.GetColorNonStroke().G;                    int b = renderInfo.GetColorNonStroke().B;  } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!