2015-04-30 76 views
2

在Python中,是否有任何方法可以自動檢測PDF某個區域中的顏色,並將它們轉換爲RGB或將它們與圖例進行比較,然後獲取顏色?如何從PDF中檢測顏色Python

+0

也許你可以將PDF轉換成圖片格式(例如BMP)並分析它。 – WoJ

回答

1

根據您要從中提取信息的位置,您可以使用minecart。它具有對顏色的強大支持,並且可以輕鬆轉換爲RGB。雖然你不能輸入的座標,並獲得顏色值在那裏,如果你想從一個形狀,你可以不喜歡以下獲得顏色信息:

import minecart 
doc = minecart.Document(open("my-doc.pdf", "rb")) 
page = doc.get_page(0) 
BOX = (.5 * 72, # left bounding box edge 
     9 * 72, # bottom bounding box edge 
     1 * 72, # right bounding box edge 
     10 * 72) # top bounding box edge 
for shape in page.shapes: 
    if shape.check_in_bbox(BOX): 
     r, g, b = shape.fill.color.as_rgb() 
     # do stuff with r, g, b 

[免責聲明:我的作者minecart]

1

Felipe的做法並沒有爲我工作,但我想出了這個:

#!/usr/bin/env python 
# -*- Encoding: UTF-8 -*- 

import minecart 

colors = set() 

with open("file.pdf", "rb") as file: 
    document = minecart.Document(file) 
    page = document.get_page(0) 
    for shape in page.shapes: 
     if shape.fill: 
      colors.add(shape.fill.color.as_rgb()) 

for color in colors: print color 

這將打印在文檔的第一頁上的所有獨特的RGB值的整齊列表(你可以將它擴展到co。的所有頁面URSE)。