我需要从特定的PDF文件中呈现或获取所有图像。我如何使用Ghostscript或ImageMagick实现这一点?
您不能使用Ghostscript,但您可以使用Poppler或XPDF的命令行工具pdfimages
:
pdfimages -j some.pdf subdir/image-prefix
所有的图像现在将位于subdir/
命名为image-prefix-0001.jpg
, image-prefix-0002.jpg
…
-j
参数将使命令尝试直接提取jpeg。如果不能创建jpeg,它将创建png或png,您可以使用ImageMagick转换它们:
convert subdir/image-prefix-0033.ppm subdir/image-prefix-0033.jpeg
你当然不能在Ghostscript中这样做,除非你自己编写一个Ghostscript设备。
我怀疑你也可以用ImageMagick做到这一点。
你看过PDFtk吗?
如果你使用的是Windows操作系统,那么在Google上快速搜索一下:
http://www.somepdf.com/some-pdf-image-extract.html在Linux上:
https://askubuntu.com/questions/150100/extracting-images-from-a-pdfImageMagick还提供了使用以下语法将pdf转换为图像的选项:
convert /path/to/file.pdf /path/to/output/file.png
除了"常规"它提供了许多有用的转换选项,如:
- 只提取几个页面(通过在PDF文件名后添加
[0-n]
,例如convert "file.pdf[0-1]" /path/to/output/file.png
) - 使用PDF文档
-define pdf:use-cropbox=true
中定义的裁剪框 - 改变输出密度DPI
-density 300
- 缩放图像到一定的大小,例如,最大2000x2000px与
-resize 2000x2000>
- 使用
-background white
设置pdf文件的背景色 - 删除alpha通道
-alpha remove -alpha off
示例提取1页:
gs -q -dBATCH -dNOPAUSE -sDEVICE=pnggray -d300 -dFirstPage=1 -dLastPage=1 -sOutputFile=1.tiff in.pdf