将 PDF 转换为图像到 PDF

Are*_*ski 11 command-line scripts pdf convert imagemagick

我有一个 PDF,我想向某人展示,但又不想让他们复制它。一种可能的方法是将页面转换为图像,然后将这些转换为 PDF。我如何使用convertpdftk或其他脚本?不是图形用户界面。

And*_*tto 23

Imagemagick 光栅化一切。你可以简单地做:

convert -density 200 input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)

当然,收件人可能会决定对您的文件运行 OCR 程序。该density参数设置以 PPI 表示的分辨率。


The*_*Odd 9

PDF 印象

这些poppler-utils软件包包括pdftoppm实用程序,能够将PDF文件转换为ppm,pngjpeg格式:

pdftoppm -png file.pdf prefix
Run Code Online (Sandbox Code Playgroud)

这将使文件名prefix-X.extensionwhereX是页码(输出的每个文件将是PDF转换后的一页)以及extension您选择的任何输出类型。

默认情况下,分辨率为 150dpi。您可以使用以下命令提高分辨率(以获得更高质量的输出):

pdftoppm -rx 300 -ry 300 -extension file.pdf prefix
Run Code Online (Sandbox Code Playgroud)

要仅打印一页,请执行以下操作:

pdftoppm -f N -singlefile -extension file.pdf prefix
Run Code Online (Sandbox Code Playgroud)

N页码在哪里,从 1 开始。

与使用imagemagick其他帖子中提到的包相比,这种方法要快得多,而且也不笨重。尽管您必须使用它来转换回来。

图像到 PDF

这需要安装imagemagick软件包。为此,请执行以下操作:

sudo apt-get install imagemagick
Run Code Online (Sandbox Code Playgroud)

imagemagick包有一个名为的实用程序convert,它将按照它的名称执行;转变。要以您想要的方式使用它,请像这样运行它:

convert file.extension file.pdf
Run Code Online (Sandbox Code Playgroud)

但是,这将PDF只包含该单个页面。要组合上一个命令的所有输出以转换为图像,请使用以下命令:

convert *.extension file.pdf
Run Code Online (Sandbox Code Playgroud)

这将获取extension扩展名所在目录中的所有文件,并将它们转换为PDF名为file.pdf.

笔记

我选择以两个单独的命令的方式来格式化我的答案,以便让 OP 灵活并理解他们试图完成的任务,而不是一个命令将两者联系起来。当然,如果该解决方案对他们更好,那么我鼓励他们为该特定答案投票/标记为已回答。