TYPO3 图像处理也适用于 PDF 文件?

Posted

技术标签:

【中文标题】TYPO3 图像处理也适用于 PDF 文件?【英文标题】:TYPO3 image manipulation also for PDF files? 【发布时间】:2020-05-25 06:13:20 【问题描述】:

是否可以使用 TYPO3 的图像处理工具在 TYPO3 后端裁剪图像,以便在前端使用cropVariants 也用于 PDF 文件?

图像处理工具只显示消息:

无法确定图像尺寸。 无法提供图像处理,因为图像的原始尺寸未知。

也许我需要另一个服务器端模块?但我无法找到有关此主题的任何信息。

【问题讨论】:

现在我有一个类似的问题:我想要一个预览图像以供下载。因为它适用于 JPG,所以它适用于 PNG(原始文件被引用,不能被视为图像),另外 widthheight0(在带有图像 CE 的文本中使用相同的 PDF 显示PDF 预览图) =:-O 文件名中的空格,在任何地方都不能正确处理。 :-( 【参考方案1】:

很可能 TYPO3 中的所有内容都有效。出于安全原因,出于安全考虑,您的 Unix 发行版禁用了通过 ImageMagick 处理 GhostScript 文件(PDF、AI 等)。

根据您的发行版,有一个文件 /etc/ImageMagick-6/policy.xml。该文件定义了允许处理的文件。如果您“保存”或不在乎,请注释掉不允许使用 PDF。

我的本​​地设置中有以下部分:

  <!-- disable ghostscript format types -->
  <policy domain="coder" rights="none" pattern="PS" />
  <policy domain="coder" rights="none" pattern="PS2" />
  <policy domain="coder" rights="none" pattern="PS3" />
  <policy domain="coder" rights="none" pattern="EPS" />
  <policy domain="coder" rights="none" pattern="PDF" />
  <policy domain="coder" rights="none" pattern="XPS" />

不允许处理这些文件。都可以包含 GhostScript。 另见:

https://***.com/a/53180170/1888377

我不是安全专家,但希望您通过启用对这些文件的处理来打开安全问题。所以也许要确定谁可以上传包含 GhostScript 指令的文件。例如。仅限于受信任的后端用户。

【讨论】:

【参考方案2】:

ghostscript 存在/曾经存在安全问题,ImageMagick/GraphicsMagick 使用它来处理 PDF 和 EPS。 这就是你会发现在 IM/GM 配置中的某些发行版中禁用了这些文件类型的原因。

查看图像测试:可以阅读 PDF 吗? 可能你会发现这样的错误:

阅读pdf 图像生成失败 ImageMagick / GraphicsMagick 处理已启用,但执行命令返回错误。请检查您的设置,尤其是 ['GFX']['processor_path'] 和 ['GFX']['processor_path_lzw'] 并确保 Ghostscript 已安装在您的服务器上。

在this article你可以得到更多信息。

来自 Ubuntu 发行版的示例: 在/etc/ImageMagick-6/policy.xml你找到

<!-- disable ghostscript format types -->
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />

Suse 的另一种解决方法可以在this TYPO3 ticket 中找到(虽然它不是 TYPO3 的错误)

【讨论】:

"Read pdf" TYPO3 安装工具中的测试工作正常,并且在前端工作中也使用 PDF 文件作为图像。只是图像处理失败了。但我假设服务器提供商禁用了你提到的 ghostscript。我会与支持人员核实。 如果ghostscript 被禁用,则根本无法将 PDF 用作图像,并且您也无法在 BE 中获得预览图像。 关于您的 PDF 图像处理工作正常,这可能是 PDF 大小确定的问题。由于它们被处理为矢量图像,因此它们不能具有清晰的尺寸。这样,裁剪就无法工作,因为它需要像素大小和偏移量。也许功能请求可以带来修复。

以上是关于TYPO3 图像处理也适用于 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PDF 文件页面呈现为图像?

TYPO3 Fluidcontent:如何在对象内使用 FAL

如何在https TYPO3后端处理“非https”(http)站点

在新标签中全屏显示图像

TYPO3 在流体中裁剪图像

从 pdf 或图像格式的发票中提取数据