2012-01-25 41 views
11

Tôi đã tự hỏi liệu có dễ dàng tạo hình thu nhỏ của các tệp PDF trong Delphi hay không. Về cơ bản tôi muốn hiển thị trang đầu tiên của PDF thành một bitmap nhỏ (nói 100x100 hoặc tương tự).
Tôi thấy hai tùy chọn 1 sử dụng thành phần PDF, 2 bằng cách nào đó nhấn vào cách trình khám phá tạo bản xem trước/hình thu nhỏ.Hình thu nhỏ PDF ở Delphi

Trả lời

1

Bạn có thể tìm danh sách các trình xử lý xem trước đã cài đặt (trong Vista và Windows 7) dưới HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ PreviewHandlers.

Nếu bất kỳ trình xử lý PDF nào được cài đặt (ví dụ: khi cài đặt Acrobat Reader), bạn có thể tìm máy chủ COM bằng cách tìm kiếm GUID được tìm thấy trước đó. Điều này kết hợp với giao diện IPreviewHandler có thể hướng dẫn bạn giải pháp.

+1

Dường như các trình xử lý xem trước cũng ở cùng một vị trí trên XP. – Alister

11

Sử dụng thư viện như QuickPDF hoặc Gnostice thực sự là tùy chọn dễ dàng nhất. Tôi khá chắc chắn rằng hình thu nhỏ PDF trong trình khám phá thực sự được tạo bởi bất kỳ phần mềm PDF nào được cài đặt như Adobe. Trừ khi bạn có thể đảm bảo rằng một trình đọc PDF phù hợp được cài đặt trên mọi máy trạm, ý tưởng sử dụng hình thu nhỏ có thể không hợp lệ.

Chỉnh sửa: Đây là một ứng dụng hoàn chỉnh bằng QuickPDF để hiển thị trang đầu tiên của tệp PDF đã cho thành tệp BMP. Ở 10 DPI, tệp BMP đầu ra của tôi rộng 85 pixel, cao 110 pixel.

program PDFToBMP; 
{$APPTYPE CONSOLE} 
uses 
    SysUtils, QuickPDF; 
var 
    Q : TQuickPDF; 
begin 
    Q := TQuickPDF.Create; 
    try 
    Q.LoadFromFile(ParamStr(1), ''); 
    Q.RenderPageToFile(10 {DPI}, 1 {PageNumber}, 0 {0=BMP}, ChangeFileExt(ParamStr(1),'.bmp')); 
    finally 
    Q.Free; 
    end; 
end. 
1

Hoặc nếu bạn có "thời gian" bạn có thể thử sử dụng GhostScript hoặc bằng dòng lệnh hoặc embedding it. Mike W. đã cho bạn một giải pháp tốt và dễ dàng. Tôi sử dụng Gnostice nhưng có rất nhiều giải pháp PDF VCL khác.

Các vấn đề liên quan