Миниатюры PDF в Delphi - PullRequest
       1

Миниатюры PDF в Delphi

12 голосов
/ 26 января 2012

Мне было интересно, можно ли было легко создавать эскизы PDF-файлов в Delphi. По сути, я хочу визуализировать первую страницу PDF в небольшом растровом изображении (скажем, 100x100 или аналогичном). Я вижу два варианта: 1 использовать компонент PDF, 2 как-то коснуться того, как проводник генерирует превью / эскизы.

Ответы [ 3 ]

12 голосов
/ 26 января 2012

Использование библиотеки, такой как QuickPDF или Gnostice, действительно самый простой вариант. Я вполне уверен, что миниатюры PDF в проводнике на самом деле генерируются любым установленным программным обеспечением PDF, таким как Adobe. Если вы не можете гарантировать, что на каждой рабочей станции установлено надлежащее средство чтения 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 голос
/ 26 января 2012

Или, если у вас есть «время», вы можете попробовать GhostScript либо из командной строки, либо , внедрив его . Майк У. дал вам хорошее и простое решение. Я использую Gnostice, но есть много других решений VCL PDF.

1 голос
/ 26 января 2012

Список установленных обработчиков предварительного просмотра (в Vista и Windows 7) можно найти в HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ PreviewHandlers .

Если установлен какой-либо обработчик PDF (например, когда установлен Acrobat Reader), вы можете найти COM-сервер, выполнив поиск GUID, найденного ранее. Это в сочетании с интерфейсом IPreviewHandler может помочь вам найти решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...