使用 imagemagick 无损旋转 PDF 文件
Lossless rotation of PDF files with imagemagick
我想使用 CLI 工具旋转名为 08-file.pdf
的 351K PDF。我试过了 imagemagick:
convert 08-file.pdf -rotate 90 08-file-rotated.pdf
但原画质:
严重退化:
I've tried adding the -density 300x300
argument,结果是一个2.5M的文件,比原来大了将近一个数量级,浪费很大。
知道如何使用 imagemagick 无损旋转 PDF 文件吗?
请使用-compress lossless
选项:
convert -rotate 90 -compress lossless 08-file.pdf 08-file-rotated.pdf
来自文档:
https://www.imagemagick.org/script/command-line-options.php#compress
Lossless refers to lossless JPEG, which is only available if the JPEG
library has been patched to support it.
另一种选择是使用以下命令:
jhead -cmd "jpegtran -progressive -perfect -rotate 270 &i > &o"
Image-0001.jpeg
它会将输出写入临时文件,成功后会覆盖原始文件:
Cmd:jpegtran -progressive -perfect -rotate 270 "Image-0001.jpeg" >
"h1xQ6q"
Modified: Image-0001.jpeg
我总是在 converting/altering pdf 文件 imagemagik/convert 中得到不好的结果(分辨率不好,或者文件很大)。使用选项 -compress -density -quality 总是令人沮丧和浪费时间(但我不是专家)。
提案 1:pdftk
所以我推荐pdftk(您可能需要通过apt-get install安装)
尝试:
pdftk 08-file.pdf cat 1-endright output 08-file-rotated.pdf
对于旧版本的 pdftk (v<3) 旋转仅由一个字母表示:
N:0,E:90,S:180,W:270,L:-90,R:+90,D:+180。同样的命令是:
pdftk 08-file.pdf cat 1-endR output 08-file-rotated.pdf
来自本站的另一个post,我对语法有一个简短的解释
pdftk input.pdf cat 1-endsouth output output.pdf
# \_______/ \___/\___/ \________/
# input file range | output file
# direction
你也可以看到https://linux.die.net/man/1/pdftk
编辑 2020:
提案 2:qpdf
我找到了另一个等效的替代方案:qpdf,更容易记住,更强大
#Syntax (you can rotate only some pages of the document -- see the manual --
qpdf --rotate=[+|-]angle[:page-range]
# Example
qpdf in.pdf out.pdf --rotate=+180
其他值得考虑的选项
pdfjam
PDF 操作工具 (CLI)
如果 pdftk 在您的系统上不可用,请考虑。
pdfjam 看起来很像 pdftk
pdfsam
这是一个使用 GUI(图形用户界面)修改 pdf 文件的工具箱。
代码是开源和多平台的。
我想使用 CLI 工具旋转名为 08-file.pdf
的 351K PDF。我试过了 imagemagick:
convert 08-file.pdf -rotate 90 08-file-rotated.pdf
但原画质:
严重退化:
I've tried adding the -density 300x300
argument,结果是一个2.5M的文件,比原来大了将近一个数量级,浪费很大。
知道如何使用 imagemagick 无损旋转 PDF 文件吗?
请使用-compress lossless
选项:
convert -rotate 90 -compress lossless 08-file.pdf 08-file-rotated.pdf
来自文档: https://www.imagemagick.org/script/command-line-options.php#compress
Lossless refers to lossless JPEG, which is only available if the JPEG library has been patched to support it.
另一种选择是使用以下命令:
jhead -cmd "jpegtran -progressive -perfect -rotate 270 &i > &o" Image-0001.jpeg
它会将输出写入临时文件,成功后会覆盖原始文件:
Cmd:jpegtran -progressive -perfect -rotate 270 "Image-0001.jpeg" > "h1xQ6q"
Modified: Image-0001.jpeg
我总是在 converting/altering pdf 文件 imagemagik/convert 中得到不好的结果(分辨率不好,或者文件很大)。使用选项 -compress -density -quality 总是令人沮丧和浪费时间(但我不是专家)。
提案 1:pdftk
所以我推荐pdftk(您可能需要通过apt-get install安装)
尝试:
pdftk 08-file.pdf cat 1-endright output 08-file-rotated.pdf
对于旧版本的 pdftk (v<3) 旋转仅由一个字母表示: N:0,E:90,S:180,W:270,L:-90,R:+90,D:+180。同样的命令是:
pdftk 08-file.pdf cat 1-endR output 08-file-rotated.pdf
来自本站的另一个post,我对语法有一个简短的解释
pdftk input.pdf cat 1-endsouth output output.pdf
# \_______/ \___/\___/ \________/
# input file range | output file
# direction
你也可以看到https://linux.die.net/man/1/pdftk
编辑 2020:
提案 2:qpdf
我找到了另一个等效的替代方案:qpdf,更容易记住,更强大
#Syntax (you can rotate only some pages of the document -- see the manual --
qpdf --rotate=[+|-]angle[:page-range]
# Example
qpdf in.pdf out.pdf --rotate=+180
其他值得考虑的选项
pdfjam
PDF 操作工具 (CLI) 如果 pdftk 在您的系统上不可用,请考虑。
pdfjam 看起来很像 pdftk
pdfsam
这是一个使用 GUI(图形用户界面)修改 pdf 文件的工具箱。
代码是开源和多平台的。