Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi中的PDF缩略图_Delphi_Pdf_Thumbnails - Fatal编程技术网

Delphi中的PDF缩略图

Delphi中的PDF缩略图,delphi,pdf,thumbnails,Delphi,Pdf,Thumbnails,我想知道是否有一种在Delphi中生成PDF文件缩略图的简单方法。基本上,我希望将PDF的第一页呈现为一个小位图(例如100x100或类似的位图)。 我看到两个选项1使用PDF组件,2以某种方式点击资源管理器如何生成预览/缩略图。您可以在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandler下找到已安装的预览处理程序列表(在Vista和Windows 7中) 如果安装了任何PDF处理程序(例如,安装Acrobat Reader时

我想知道是否有一种在Delphi中生成PDF文件缩略图的简单方法。基本上,我希望将PDF的第一页呈现为一个小位图(例如100x100或类似的位图)。

我看到两个选项1使用PDF组件,2以某种方式点击资源管理器如何生成预览/缩略图。

您可以在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandler下找到已安装的预览处理程序列表(在Vista和Windows 7中)


如果安装了任何PDF处理程序(例如,安装Acrobat Reader时),您可以通过搜索之前找到的GUID来查找COM服务器。这与界面相结合可能会引导您找到解决方案

使用QuickPDF或Gnostice这样的库确实是最简单的选择。我相当肯定,explorer中的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.

或者,如果您有“时间”,您可以尝试使用命令行或。Mike W.给了你一个简单的解决方案。我使用Gnostice,但还有许多其他PDF VCLs解决方案。

看起来预览处理程序在XP上也位于同一位置。