2012-01-25 7 views
11

DelphiでPDFファイルのサムネイルを簡単に作成できたかどうかは疑問でした。基本的には、PDFの最初のページを小さなビットマップ(たとえば100x100など)にレンダリングしたいと考えています。
2つのオプションがあります。1 PDFコンポーネントを使用します.2何らかの方法で、エクスプローラがプレビュー/サムネイルを生成する方法を示します。DelphiのPDFサムネイル

答えて

1

HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ PreviewHandlersの下に、インストールされているプレビューハンドラのリスト(VistaおよびWindows 7)があります。

PDFハンドラがインストールされている場合(Acrobat Readerがインストールされている場合など)は、前に見つかったGUIDを検索してCOMサーバーを探すことができます。これをIPreviewHandlerインターフェイスと組み合わせることで、解決策を導くことができます。

+1

プレビューハンドラがXP上の同じ場所にあるように見えます。 – Alister

11

QuickPDFやGnosticeのようなライブラリを使用するのが最も簡単な方法です。私は、エクスプローラのPDFサムネイルが実際にAdobeなどのどのPDFソフトウェアがインストールされていても実際に生成されていると確信しています。すべてのワークステーションに適切なPDFリーダーがインストールされていることを保証できない限り、サムネイルを使用するという考え方は有効ではないかもしれません。

編集:QuickPDFを使用して特定のPDFファイルの最初のページをBMPファイルにレンダリングする完全なアプリケーションです。 10 DPIでは、私の出力BMPファイルは幅85ピクセル、高さ110ピクセルです。

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

それとも、「時間」を持っている場合は、コマンドラインまたはembedding itのいずれかGhostScriptを使用して試みることができます。 Mike W.はあなたに良い、簡単な解決策を与えました。 Gnosticeを使用していますが、他にも多くのPDF VCLソリューションがあります。

関連する問題