确定从PDF RGB和CMYK色彩 [英] Identify rgb and cmyk color from pdf

查看:420
本文介绍了确定从PDF RGB和CMYK色彩的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由不同颜色的文字和背景颜色的PDF。我如何确定哪些颜色与CMYK或RGB格式的PDF使用



 的StringBuilder sb_Sourcepdf =新的StringBuilder()?; 
PdfReader reader_FirstPdf =新PdfReader(pdf_of_FirstFile);

文档的文档=新的文件();

PDFParser分析器=新PDFParser(新的FileInputStream(pdf_of_FirstFile));
parser.parse();
PDDocument解决的文= parser.getPDDocument();

PDFStreamEngine发动机=新PDFStreamEngine();

PDPage页=(PDPage)docum.getDocumentCatalog()getAllPages()得到(0);

engine.processStream(页面,page.findResources(),page.getContents()getStream());
PDGraphicsState graphicState = engine.getGraphicsState();
串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()。
浮法[] = COSP graphicState.getNonStrokingColor()getColorSpaceValue()。
PDColorSpace PD = graphicState.getNonStrokingColor()getColorSpace();

串重新= graphicState.getStrokingColor()的toString();
INT rgbcolor = graphicState.getStrokingColor()getJavaColor()的getRGB()。

浮法[] =组件{java.awt.Color.black.getRed(),java.awt.Color.black.getGreen(),java.awt.Color.black.getBlue()} ;

浮法[] = colorSpaceValues graphicState.getStrokingColor()getColorSpaceValue()。


的foreach(在colorSpaceValues浮法三)
{
的Debug.WriteLine(C * 255.00);
}



我用PDFBOX,但我得到的价值为0.0


解决方案

  PdfReader reader_FirstPdf =新PdfReader(pdf_of_FirstFile); 


的for(int i = 1; I< = reader_FirstPdf.NumberOfPages;我++)
{
TextWithFont_SourcePdf Sourcepdf =新TextWithFont_SourcePdf();
}
text_First_File = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader_FirstPdf,我,Sourcepdf);


公共无效RenderText(iTextSharp.text.pdf.parser.TextRenderInfo renderInfo)
{
INT R = renderInfo.GetColorNonStroke()R。
INT G = renderInfo.GetColorNonStroke()G。
INT B = renderInfo.GetColorNonStroke(。)A。;

}


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

解决方案

 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;

}

这篇关于确定从PDF RGB和CMYK色彩的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆