编辑

编辑

问题听起来相当简单:我有多个 PDF 文件,我想将每个文件的第一页提取为 PNG 文件。

我在 Adob​​e Acrobat DC 中创建了一个操作,该操作应该执行以下操作:

  • 删除从第 2 页到第 999 页的所有页面(因为您无法告诉它“只保留第 1 页”或“删除第 1 页之后的所有页面”)

  • 拼合所有图层

  • 将图像导出为 PNG

在我看来,这应该可行,但显然不行。它好像只遵循了第三条指令,导致我的导出文件夹里塞满了数百张单张图片,页面,但是页。

我在这里很困惑。如果有人能告诉我为什么我的操作不起作用或者如何实现这一点,那就太好了。

祝你今天过得愉快!

编辑

需要了解以下几点:

  • 我在公司电脑上工作,无法安装新软件。

  • 我正在使用 Windows 10。

  • 我不是开发人员,不熟悉 CLI、PHP、BAT 和任何脚本。

  • 我会使用互联网,所以答案可以利用在线工具。


上次之后我发现了什么

因此,我发现,如果文档的页数未达到 999 页(且没有一个达到 999 页),则“删除第 2 至第 999 页”指令不起作用。我在 23 页的文档上运行了该脚本,并输入了“删除第 2 至第 23 页”指令,效果很好,但是,它只适用于 23 页的 PDF。

目前我删除了“删除页面”指令,并在资源管理器中手动删除除 1 之外的页面。不用说,这太长了,而且没有优化。

答案1

一种(实际上非​​常明显的)方法是使用 Photoshop。

Photoshop 可以打开给定的页面,并以可配置的分辨率和适当的色彩空间呈现它。它还可以正确呈现页面(其他软件可能会有问题)。以 PNG 格式写出也相当简单,并且易于配置。

由于对 JavaScript(又名 Extendscript)和 Applescript/VB 的良好支持,整个工作流程可以轻松实现自动化,并以批处理形式运行。

答案2

我建议不要使用 Acrobat,而是使用针对扩展的简单 PHP 脚本imagick

$i=new Imagick(); 
$i->readImage('path/to/your.pdf[0]'); 
$i->writeImage('/path/to/your.png'); 

结合 PHP 的glob构造,您可以轻松循环遍历 PDF。

答案3

另一个人说使用 php imagemagick,但从 linux 命令行来看,imagemagick 转换二进制文件称为 convert。如果我在 Doc/pdf/test.pdf 中有 5 页 pdf,并且我需要制作 Doc/png/testpage1.png,则命令如下convert Doc/pdf/test.pdf Doc/png/test.png

文档/pdf/测试.pdf

文档/png/test1.png

文档/png/test2.png

文档/png/test3.png

文档/png/test4.png

文档/png/test5.png

将多页 pdf 转换为 png 会将文件分成几页。

Imagemagick = /usr/bin/convert

编辑:在 Arch Linux 上测试了评论者解决方案。解决方案convert Doc/pdf/test.pdf[0] Doc/png/test.png

相关内容