问题听起来相当简单:我有多个 PDF 文件,我想将每个文件的第一页提取为 PNG 文件。
我在 Adobe 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