在 PHP (LAMP) 中创建文档(PDF、DOC、XLS 等)的缩略图预览

Posted

技术标签:

【中文标题】在 PHP (LAMP) 中创建文档(PDF、DOC、XLS 等)的缩略图预览【英文标题】:Create a thumbnail preview of documents (PDF, DOC, XLS, etc.) in PHP (LAMP) 【发布时间】:2011-12-04 05:52:11 【问题描述】:

当用户将某些文件(例如 .doc、.xls、.pdf 等)上传到我的网站时,我希望能够生成(文档第一页的)预览缩略图。我在 LAMP 堆栈中使用 php,但对任何可以完成这项工作的库或命令行工具都很满意(Linux 非常受欢迎)。

【问题讨论】:

@BrianRoach 不——在发布之前已经看到了这个问题。它仅指 PDF。我正在寻找一种可以处理一般文档(包括 PDF 以及 XLS、DOC 等)的工具。 为此,有一个技巧将***.com/questions/1225230/… 和***.com/questions/467793/… 结合起来,将 xls 或其他任何内容转换为 pdf,然后从 pdf 中获取图像 我正在寻找同样的东西并同意这不仅仅适用于 PDF/Office 文档(例如 LaTEX 或 SAS) 【参考方案1】:

将某些文档格式转换为图像并不容易。单独的 php 无法做到这一点。 执行此操作的“正确”方法是首先在您的服务器上安装可以打开该格式文档的程序。 例如,对于 .doc 文档,您可以使用 OpenOffice 它还可以打开大多数其他文档格式 然后,您需要设置您的开放式办公室以“无头”模式工作,将输出发送到虚拟显示器(XVFB 是您在 Linux 上需要的)

然后您的 php 脚本将调用 OpenOffice,将路径传递给上传的文档。 OpenOffice 实际上会打开该文档。然后你需要从屏幕缓冲区创建一个图像。您可以为此使用 ImageMagick

然后,一旦您捕获了屏幕,您就可以将其调整为缩略图。

查看此链接了解更多详情

http://www.mysql-apache-php.com/website_screenshot.htm

【讨论】:

很好的答案,但我认为您可能指的是 ImageMagick,以防有人在寻找它【参考方案2】:

最好的方法是将所有文档转换为 PDF 之后您可以制作预览缩略图

&这就是简单的解释 How do I convert a PDF document to a preview image in PHP?

【讨论】:

以上是关于在 PHP (LAMP) 中创建文档(PDF、DOC、XLS 等)的缩略图预览的主要内容,如果未能解决你的问题,请参考以下文章

为啥不在 java servlet 中创建 pdf 文档? [复制]

怎么用OCR图文识别软件在MS Office中创建PDF文件

Java 在PDF中创建标记(Annotation)

在 XCode 中创建 PDF 查看器

如何隐藏在 ios 的文档目录中创建的文件夹?

我如何使用 pdf-form gem 在 Rails 中创建 Pdf