我想從PDF文檔中的任意頁面(即不一定是第一個)製作快照圖像。任何免費的工具呢?我正在使用Delphi。
TIA
史蒂芬來自PDF文檔的快照圖像
回答
史蒂芬
我幾年前有同樣的問題,唯一可靠的解決方案是購買Acrobat Professional中(7),並用它來提取頁面,將其複製到剪貼板然後從中創建一個縮略圖。我很感興趣,看看是否有免費的方法可以從pdf文檔中提取頁面。
procedure TFormMain.LoadPDFDoc(Filename: TFilename; var Bitmap: TBitmap);
var
PDPage : variant;
PdApp, PdDoc, PdRect: variant;
begin
try
PdApp := CreateOleObject('AcroExch.App');
PdDoc := CreateOleObject('AcroExch.PDDoc');
PdRect := CreateOleObject('AcroExch.Rect');
//Open the pdf document
PDDoc.Open(FileName);
PDPage := PDDoc.AcquirePage(0);
//Define the rectangle to fit the page
PDRect.Top := 0;
PDRect.Left := 0;
PDRect.Right := PDPage.GetSize.x;
PDRect.Bottom := PDPage.GetSize.y;
//Set the bitmap proportions
with Bitmap do
begin
Width := PDRect.Right;
Height := PDRect.Bottom;
end;
//Copy the rectangle to the ClipBoard
PDPage.CopyToClipboard(PDRect, 0, 0, 100);
if not VarIsEmpty(PDPage) then
PDPage := UnAssigned;
//Close the pdf document
PDDoc.Close;
//Paste the image from the clipboard
with Bitmap do
begin
LoadFromClipboardFormat(CF_BITMAP, ClipBoard.GetAsHandle(CF_BITMAP), 0);
PixelFormat := pf24Bit;
HandleType := bmDIB;
end;
Except on E: Exception do
ShowMessage(E.Message);
end;
end;
的問候,彼得
這可能是值得你花時間檢查The QuickPDF Library。我已經使用了大約5年的圖書館。它有一個很好的支持團隊,通過原始出版商的長期而痛苦的放棄,並且現在得到了多年來一直在PDF世界中成爲重要名字的人的支持,Karl De Abrew。他們在他們的下載頁面上有一個可下載的產品參考手冊,我認爲他們有像ClonePage之類的東西。無論如何,如果您在手冊中找不到答案,請聯繫他們的支持人員,您可能會完整地解釋如何完成您正在嘗試做的事情。
糟糕。我只注意到「免費」的要求。他們的工具箱售價爲249美元,如果你的項目是你要銷售的東西,至少它對你的用戶是免費的,或者至少不是單獨定價的。
傑克
QuickPDF圖書館8年價值1500美元,這是6倍,至少對我來說太多了。 (這是每年25%的通貨膨脹率。) – 2017-08-08 08:21:51
您可以使用PDFTK和ImageMagick的/ Ghostscript的2個步驟執行此
第1步:創建一個頁面一個新的PDF文件,你感興趣的是:
pdftk.exe file.pdf cat 2 output page2_only.pdf
步驟2:將新的pdf轉換爲jpg:
convert -geometry 1600x1600 -density 200x200 -quality 100 page2_only.pdf page_snapshot.jpg
convert是一個ImageMagick命令。
ImageMagick需要安裝Ghostscript才能正常工作。當我測試這個時,轉換抱怨由pdftk引起的PDF無效格式化,但這似乎沒有影響輸出。
如果您不想查找高分辨率快照,可以使用Acrobat的ActiveX組件以特殊形式(全屏,無邊框)打開PDF文件,導航至頁面,然後獲取screenshot of the screen。你可以立即關閉該表單,這樣它就會閃爍,然後消失。
ImageMagick也可以在Windows上使用,它有非常簡單的命令,您可以調用(隱藏,使用ShellExec),創建一個JPEG(或任何其他圖像類型)。
Ghostscript的命令行(沒有的ActiveX compenent可用) gswin32c.exe ....參數.....(見文檔,它很容易)
這裏的一些德爾福相關的工具比較管理PDF:Top 9 PDF Managing Tools。直到現在,我從來沒有使用過自己,所以我不能給出建議。
還有PDFlib Lite這是開源的。
P.S .:如果您需要「一次性」(手動)解決方案還是編程式解決方案,您能澄清一下嗎?你在提到的問題中提到了Delphi,但是在對Pieter van Wyk的評論中,你似乎對手動解決方案感到滿意。對於手冊,我建議,與其他人一樣,Ghostscript (engine) with Ghostview (UI)§。 Ghostscript有一個API that can be accessed by Delphi,但它可能有問題(大小,許可證等)與商業程序部署。
§您需要首先安裝Ghostscript比Ghostview。打開你的PDF,菜單文件/轉換/作爲設備選擇pdfwrite(或你需要/喜歡的另一種圖像格式)/選擇你的分辨率(72可以足夠屏幕)/選擇你的頁碼/確定/選擇文件夾和文件名/保存,你就完成了。
- 1. 來自圖像陣列的重疊圖像的快照
- 2. 來自android中地圖的快照
- 3. 來自異步文檔的圖像
- 4. 自動檢測來自PDF的圖像
- 5. 來自PDF文檔的目錄使用CGPDFDocumentGetCatalog的文檔
- 6. 來自PDF的高分辨率圖像
- 7. Flash As2圖像快照
- 8. Codeigniter - 視圖快照 - 生成PDF
- 9. 轉換PDF文檔到圖像
- 10. 來自MPMoviePlayerController視頻的快照
- 11. 使用ReportLab(Python)的PDF文檔中的PDF圖像
- 12. 來自網絡攝像頭的快照白色邊框
- 13. php上傳圖像和文檔,如pdf,文檔,ppt
- 14. Flutter Firestore - 查找`文檔快照「ID
- 15. 具有圖像的imagview的快照
- 16. 使用DirectShow來快照映像
- 17. 使用來自mysql數據庫的圖像生成PDF文件
- 18. 自動填充PDF文檔
- 19. 飛快移動:索引MS文檔,PDF
- 20. 根據來自文本字段的輸入打開PDF文檔
- 21. 顯示來自Umbraco Media的圖像文檔
- 22. 將Microsoft Office文檔和PDF文檔轉換爲使用Java的圖像文件
- 23. 從iOS的pdf文檔中讀取文本和圖像
- 24. 高分辨率圖像快照,在Java
- 25. 快照webview返回空白圖像
- 26. GCE第三方自動化(快照/圖像等)
- 27. 加載pdf作爲來自跨文檔消息的event.data獲取
- 28. 來自預定義模板的多頁PDF文檔
- 29. VM的自動快照
- 30. 獲取未應用視圖快照的視圖快照
感謝彼得,迄今爲止的最佳答案! (呃作爲* only *回答到目前爲止:-))。 我的系統上有Acrobat,所以我可以測試代碼。工作正常。 (但是Acrobat可能不在目標系統上)。 我們會看看有人提出了一個更便宜的選擇。同時,再次感謝。 HANWE – stevenvh 2009-06-05 14:56:07
看起來很傻,並且浪費了很多時間通過剪貼板傳遞圖像。沒有辦法將它直接複製到位圖? – 2017-08-08 08:17:49