是否有 Python 库可以为各种文档文件格式创建缩略图?

Posted

技术标签:

【中文标题】是否有 Python 库可以为各种文档文件格式创建缩略图?【英文标题】:Is there a Python library to create thumbnails for various document file formats? 【发布时间】:2014-02-26 00:44:35 【问题描述】:

我想从各种“文档”文件格式(例如 odt、doc(x) 和 ppt(x) 以及来自 Python 应用程序的 mp4、psd、tiff(可能还有其他))生成缩略图。据我所知,对于每种格式,至少有一个开源应用程序可以生成预览图像/缩略图(例如 LibreOffice、ffmpeg)或至少提取嵌入的缩略图(例如 imagemagick)。

我的主要问题是这些应用程序/库中的每一个都使用不同的命令行选项,所以我正在寻找一个 Python 库(或统一的 CLI 工具),它提供了一个高级 API 来生成具有指定尺寸的缩略图,给定文件名的质量级别并调用适当的外部工具(理想情况下包括捕获异常、段错误和超时)。如果它可以在请求时生成多个缩略图(例如,每页一个,X-Y 页,每 Z 秒但最多 N 个图像),则可以加分。

有人知道这样的库/实用程序吗? (边界条件:文件可能包含敏感材料或可能非常大,因此必须在没有任何网络通信的情况下工作,无法使用外部 Web 服务。)

如果 Python 中没有这样的东西,那么本地可安装的 Web 服务也可以。

【问题讨论】:

我只知道thumbnailer,但它只对打开的office和pdf文件有用,我没有用它来获取大文件的缩略图。 【参考方案1】:

我最终编写了自己的库(名为 anythumbnailer,MIT 许可证),它运行良好,足以满足我的当前需求。这个库不是我想象的那样(只有基本的缩略图,不支持尺寸,......)但它可以在 ffmpeg 的帮助下为 Linux 上的 doc(x)、xls(x)、ppt(x)、视频和 pdf 生成缩略图、LibreOffice 和 ffmpeg。

【讨论】:

【参考方案2】:

您可以查看Preview generator。 preview-generator 是一个用于为所有基于文件的内容生成预览的库 - 缩略图、pdf、文本和 json 概览。该模块让您可以访问几乎任何类型文件的 jpeg、pdf、文本、htlm 和 json 预览。它还包括缓存机制,因此您不必关心预览存储。

【讨论】:

可以在无服务器上使用它,例如Azure 函数?

以上是关于是否有 Python 库可以为各种文档文件格式创建缩略图?的主要内容,如果未能解决你的问题,请参考以下文章

办公自动化:Python-win32com自动将word文档转换成pdf格式!

PDF各种骚操作如何用python实现

docx python

使用 SAP Java IDoc 类库解析 XML 格式的 IDoc

批量生成缩略图

在哪里可以找到为验证 python 标准库中的函数而进行的测试?