如何将图像文件夹从 .pdf 转换为 .png?

问题描述 投票:0回答:3

我有一个 pdf 文件文件夹(约 1600 张图像)。我想将所有 .pdf 图像转换为 .png 图像。 我该怎么办?

我试过了

找到。 -maxdepth 1 -type f -name '*.pdf' -exec pdftoppm -r 300 -png {} {};

但有如下错误:

Syntax Error: non-embedded font using identity encoding: Arial
Syntax Error: non-embedded font using identity encoding: Arial,Bold
Syntax Error: Can't get Fields array<0a>
Syntax Warning: Mismatch between font type and embedded font file
Syntax Error: Expected the optional content group list, but wasn't able to find it, or it isn't an Array

还有其他转换解决方案吗?

bash image function pdf png
3个回答
2
投票

您可以使用 ImageMagick 创建当前目录中所有 PDF 的 PNG 版本,如下所示:

magick mogrify -density 300 -format PNG *.pdf

如果您希望输出文件位于名为

OUTPUT
的子目录中,请使用:

mkdir OUTPUT
magick mogrify -path OUTPUT -density 300 -format PNG *.pdf

由于您有 1600 个 PDF,您可能会考虑使用 GNU Parallel 为您并行处理它们:

parallel magick {} -density 300 {.}.png ::: *.pdf

0
投票

您可以使用ImageMagick将png转换为pdf

convert input.pdf -density 300 -alpha remove output.png        

这里:

  • -density 300
    将 DPI 分辨率设置为 300
  • -alpha remove
    使得 PDF 文件无法透视(这个问题经常发生,但并非总是发生)

你可以用它来做这样的事情

find . -maxdepth 1 -type f -name '*.pdf' -exec convert {} -density 300 -alpha remove {}.png \;  

请注意,输出文件名将是

somefile.pdf.png
这样。


0
投票

您可能在 MacOS 上使用 gs 命令工具

  1. 安装 Ghostscript

brew 安装 Ghostscript

  1. 在 shell 上执行一行

找到。 -type f -name "*.pdf" -exec bash -c 'FILE="$1"; gs -dNOPAUSE -dBATCH -sDEVICE=png16m -r256 -sOutputFile="${FILE%.pdf}_page%03d.png" "${FILE}";' _ '{}' ;

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.