确定从PDF RGB和CMYK色彩 [英] Identify rgb and cmyk color from pdf
本文介绍了确定从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屋!
查看全文