[英]PDFBox not detecting image in page
我正在嘗試使用PDFBox檢測此 pdf中的圖像。 pdf有兩個空白圖像,一個在左側(在文本“將其放入框中”下方),另一在右側(在文本“在此框外附加此框”下方)。 這是我用來檢測圖像的代碼:
PDPage page = (PDPage) catalog.getAllPages().get(0);
PDStream contents = page.getContents();
PDFStreamParser parser = new PDFStreamParser(contents.getStream());
parser.parse();
List<Object> tokens = parser.getTokens();
PDResources resources = page.getResources();
Map<String, PDXObjectImage> images = resources.getImages();
if(null != images){
Iterator<String> it = images.keySet().iterator();
while(it.hasNext()){
String key = it.next();
System.out.println("Key >>>>>>>>>>>>>> "+key);
}
}
我能夠檢測到第二張圖像。 但是,未檢測到第一張圖像。 問題是什么? 我確定pdf是正確的。 我多次創建它,但仍然面臨着同樣的問題。 我使用Sketch創建了pdf。
謝謝。
我能夠檢測到第二張圖像。 但是,未檢測到第一張圖像。 問題是什么?
實際上,兩個頁面上的圖像都使用相同的圖像資源 ,只是延伸到不同的尺寸。
如果查看頁面的內容流,則會在最后看到以下內容:
q
720 0 0 970 832 126 cm
/Im1 Do
Q
q
512 0 0 128 144 968 cm
/Im1 Do
Q
前四行在拉伸到720 x 970的位置832、126處繪制圖像資源Im1 ,后四行在拉伸到512 x 128的位置144、968處繪制相同圖像資源Im1 。
您僅查看頁面資源以查找頁面圖像的方法是不合適的,因為
PDFBox示例PrintImageLocations
了一個更好的解決方案(僅對內聯和可能帶有圖案的圖像失敗),其輸出為文件
*******************************************************************
Found image [Im1]
position = 832.0, 128.0
size = 360px, 462px
size = 720.0, 970.0
size = 10.0in, 13.472222in
size = 254.0mm, 342.19446mm
*******************************************************************
Found image [Im1]
position = 144.0, 128.0
size = 360px, 462px
size = 512.0, 128.0
size = 7.111111in, 1.7777778in
size = 180.62222mm, 45.155556mm
此示例利用PDFBox PDFStreamEngine
解析處理以繪制頁面的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.