我使用PDF BOX获取PDF格式的文本颜色信息.我可以使用以下代码获取输出.但我怀疑StrokingColor代表什么,非抚摸颜色代表什么.基于此,我将如何决定哪个文本具有哪种颜色.有人建议我吗?我的cuurent输出是这样的:DeviceRGB DeviceCMYK java.awt.Color [r = 63,g = 240,b = 0] java.awt.Color [r = 35,g = 31,b = 32] 34.934998 31.11 31.875
PDDocument doc = null;
try {
doc = PDDocument.load(strFilepath);
PDFStreamEngine engine = new PDFStreamEngine(ResourceLoader.loadProperties("org/apache/pdfbox/resources/PageDrawer.properties"));
PDPage page = (PDPage)doc.getDocumentCatalog().getAllPages().get(1);
engine.processStream(page, page.findResources(), page.getContents().getStream());
PDGraphicsState graphicState = engine.getGraphicsState();
System.out.println(graphicState.getStrokingColor().getColorSpace().getName());
System.out.println(graphicState.getNonStrokingColor().getColorSpace().getName());
System.out.println(graphicState.getNonStrokingColor().getJavaColor());
System.out.println(graphicState.getStrokingColor().getJavaColor());
float colorSpaceValues[] = graphicState.getStrokingColor().getColorSpaceValue();
for (float c : colorSpaceValues) {
System.out.println(c * 255);
}
}
finally {
if (doc != null) {
doc.close();
}
}
Run Code Online (Sandbox Code Playgroud) pdfbox ×1