Delphi 中的 PDF 缩略图

发布于 2024-12-29 09:23:09 字数 132 浏览 2 评论 0 原文

我想知道在 Delphi 中是否可以轻松生成 PDF 文件的缩略图。基本上我想将 PDF 的第一页渲染为小位图(例如 100x100 或类似位图)。
我看到两个选项 1 使用 PDF 组件,2 以某种方式利用资源管理器生成预览/缩略图的方式。

I was wondering if there was an easy of generating thumbnails of PDF files in Delphi. Basically I want to render the first page of a PDF to a small bitmap (say 100x100 or similar).
I see two options 1 use a PDF component, 2 somehow tap into how explorer generates previews/thumbnails.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

安穩 2025-01-05 09:23:09

使用像 QuickPDF 或 Gnostice 这样的库确实是最简单的选择。我相当确定资源管理器中的 PDF 缩略图实际上是由安装的任何 PDF 软件(例如 Adob​​e)生成的。除非您能保证每个工作站上都​​安装了正确的 PDF 阅读器,否则使用缩略图的想法可能无效。

编辑:这是一个完整的应用程序,使用 QuickPDF 将给定 PDF 文件的第一页渲染为 BMP 文件。在 10 DPI 下,我的输出 BMP 文件为 85 像素宽 x 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.

Using a library like QuickPDF or Gnostice is really the easiest option. I'm fairly sure that the PDF thumbnails in explorer are actually generated by whatever PDF software is installed such as Adobe. Unless you can guarantee that a proper PDF reader is installed on every workstation the idea of using thumbnails might not be valid.

Edit: Here's a complete application using QuickPDF to render the first page of a given PDF file into a BMP file. At 10 DPI my output BMP file is 85 pixels wide by 110 pixels high.

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.
苏辞 2025-01-05 09:23:09

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

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

You can find a list of installed preview handlers (in Vista and Windows 7) under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers.

If any PDF handler is installed (e.g. when Acrobat Reader is installed), you can look for the COM server by searching for the GUID found before. This in combination with the IPreviewHandler interface may guide you to a solution.

囍笑 2025-01-05 09:23:09

或者,如果您有“时间”,您可以尝试通过命令行或 GhostScript href="http://ghostscript.com/doc/7.07/Make.htm#Third-party_libraries" rel="nofollow">嵌入它。 Mike W. 为您提供了一个很好且简单的解决方案。我使用 Gnostice,但还有许多其他 PDF VCL 解决方案。

Or if you have "time" you could try using GhostScript either by command line or embedding it. Mike W. gave you a good and easy solution. I use Gnostice but there are many other PDF VCLs solutions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文