我想知道在Delphi中是否容易生成PDF文件的缩略图。基本上我想将PDF的第一页呈现为一个小位图(比如100x100或类似)。
我看到两个选项1使用PDF组件,2以某种方式挖掘探索器如何生成预览/缩略图。
我想知道在Delphi中是否容易生成PDF文件的缩略图。基本上我想将PDF的第一页呈现为一个小位图(比如100x100或类似)。
我看到两个选项1使用PDF组件,2以某种方式挖掘探索器如何生成预览/缩略图。
使用像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.
您可以在下面找到已安装的预览处理程序列表(在Vista和Windows 7中) HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ PreviewHandlers。
如果安装了任何PDF处理程序(例如,安装了Acrobat Reader),则可以通过搜索之前找到的GUID来查找COM服务器。这与结合 IPreviewHandler 界面可以指导您找到解决方案。
使用像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.
您可以在下面找到已安装的预览处理程序列表(在Vista和Windows 7中) HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ PreviewHandlers。
如果安装了任何PDF处理程序(例如,安装了Acrobat Reader),则可以通过搜索之前找到的GUID来查找COM服务器。这与结合 IPreviewHandler 界面可以指导您找到解决方案。
或者,如果你有“时间”,你可以尝试使用 GhostScript的 通过命令行或 嵌入它。 Mike W.为您提供了一个简单易用的解决方案。我使用Gnostice,但还有许多其他PDF VCL解决方案。