[英]Extract images from PDF page section
我需要從 PDF 頁面部分提取圖像。
例如,考慮有一個 PDF 頁面,頁面頂部有幾個圖像,頁面底部有幾個圖像。 我想提取頁面頂部的圖像。
到目前為止,我嘗試的是:
gs -o$croppedPdfFilepath -sDEVICE=pdfwrite -c "[/CropBox [31.46 690.22 560.54 839]" -c "/PAGES pdfmark" -sPageList=12 -f $originalPdfFilepath
pdfimages -j "$croppedPdfFilepath" $outputDirectory/image
但問題是pdfimages
正在提取該頁面上的所有圖像(從頂部和底部),即使當我查看裁剪后的 PDF 時它只有頁面頂部的圖像。
經過一些研究, CropBox
似乎只隱藏了視圖中裁剪的內容,但 PDF 源仍然有內容。
從 PDF 頁面或任何其他方法中刪除內容的任何指導都會有所幫助。 我正在使用php
以編程方式執行此操作。
參考
如果您需要根據頁面位置提取圖像,您可以使用pdftohtml
非常輕松地完成此操作,方法是解析輸出,然后使用其 xml 屬性檢查元素的位置。 這是一個非常基本的示例,如果圖像距離頂部不到200
,則將圖像的完整路徑放入數組中:
$pdf = '/path/to/test.pdf';
$files = [];
$xml = shell_exec('pdftohtml -stdout -xml ' . $pdf);
$dom = new DOMDocument();
$dom->loadXml($xml);
$images = $dom->getElementsByTagName('image');
foreach ($images as $image) {
$top = $image->getAttribute('top');
if ($top < 200) {
$files[] = dirname($pdf) . '/' . $image->getAttribute('src');
}
}
print_r($files);
請注意,與pdftohtml
的手冊頁相反,它表明它“在當前工作目錄中生成輸出” ,我的經驗是它總是在與正在讀取的 pdf 相同的目錄中生成輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.