PDF Colo(u)r分析(没有Acrobat本身?)

时间:2010-01-19 01:01:15

标签: pdf acrobat

是否有一个库/工具可以列出PDF文档中使用的所有颜色?

我确信Acrobat本身会这样做,但我想要一个替代方案(理想情况下可以编写脚本)。

所以我的想法是,如果你有一个非常简单的PDF文档,其中有四种颜色,输出​​可能会说:

RGB(100,0,0)
RGB(105,0,0)
CMYK(0,0,0,1)
CMYK(1,1,1,1)

6 个答案:

答案 0 :(得分:1)

您可以使用pdfbox探索内部,但您必须编写一些代码来查找和编目所有这些颜色。

答案 1 :(得分:1)

大多数PDF工具都可以访问此信息,但无法访问它。您可以使用任何工具并将其添加到

答案 2 :(得分:1)

Apago PDFspy生成一个XML文件,其中包含从PDF文件中提取的各种元数据。它会报告颜色使用情况,包括专色。

答案 3 :(得分:1)

我们最近在Quick PDF Library中添加了一个名为GetPageColorSpaces(0)的函数 - www.quickpdflibrary.com,以检索文档中使用的大部分ColorSpace信息。

以下是一些示例输出。

资源,\“QuickPDFCS2eb0f578 \”,分离,\“HKS 52 E \”,DeviceCMYK,0.95,0,0.55,0
资源,\ “QuickPDFCSb7b05308 \”,分离,\ “黑色\”,DeviceCMYK,0,0,0,1
资源,“QuickPDFCSd9f10810”,分离,“Pantone 117 C”,DeviceCMYK,0,0.18,1,0.15
资源,\ “QuickPDFCS9314518c \”,分离,\ “所有\”,DeviceCMYK,0,1,0,0.5
资源,\ “QuickPDFCS333d463d \”,分离,\ “noplate \”,DeviceCMYK,1,0,0,0
资源,\ “QuickPDFCSb41cafc4 \”,分离,\ “NOPRINT \”,DeviceCMYK,0,1,0,0
资源,\ “CS10 \”,器件N,黑色,着色剂,-1,-1,-1,-1
资源,\ “CS10 \”,器件N,P1495,着色剂,-1,-1,-1,-1
资源,\ “CS10 \”,器件N,CalRGB,着色剂,-1,-1,-1,-1
资源,\ “CS10 \”,分离,\ “P1495 \”,DeviceCMYK,0,0.31,0.69,0
x对象,\ “R29 \”,图像,, DeviceRGB,-1,-1,-1,-1

答案 4 :(得分:0)

免责声明:我在Atalasoft工作。

我们的产品DotImagePDF Reader add-on可以做到这一点。最简单的方法是栅格化页面,然后使用我们的任何图像分析工具来获取颜色。

此示例显示了如果要对相似颜色进行分组时如何执行此操作 - 已部署的示例仅适用于PNG和JPEG,但如果您下载代码,则包含附加组件和获取PDF也很简单(如果您需要帮助,请告诉我)

来源:

http://www.atalasoft.com/cs/blogs/31appsin31days/archive/2008/05/30/color-scheme-generator.aspx

在此处运行:

http://www.atalasoft.com/31apps/ColorSchemeGenerator

答案 5 :(得分:0)

如果您正在处理来自受限源的特定和简单PDF文档,那么您可以通过阅读内容流来查找颜色。然而,这不是一般的解决方案。

例如,PDF文档可以包含渐变或透明度。如果您的文档包含这种类型的构造,那么您可能最终会得到各种颜色而不是特定的颜色。

同样,许多PDF文档包含位图图像。鉴于这些将需要插值以显示不同的分辨率,显示的PDF中的颜色集可能更大或不同(虽然显然大致相似)嵌入的位图。

类似地,许多PDF文档包含多个颜色空间中的构造,这些颜色空间被渲染到不同的颜色空间中。例如,PDF可能包含DeviceRGB位图,基于ICC的CMYK颜色的线和基于Lab的矩形。显示的版本可能是sRGB用于显示,CMYK用于打印。这些都将影响精确的颜色集。

因此,唯一100%有效的答案将与特定色彩空间的特定分辨率的PDF特定渲染相关。从结果位图中,您可以确定已使用的颜色。

有各种各样的PDF库可以进行这种渲染,包括DotImage(在另一个答案中引用)和ABCpdf .NET(我在其上工作)。