【问题标题】:ImageMagick pdf to black and white pdfImageMagick pdf转黑白pdf
【发布时间】:2013-01-18 00:41:18
【问题描述】:

我想使用 ImageMagick 将 pdf 文件转换为黑白 PDF 文件。但是我有两个问题: 我使用这个命令:

convert -colorspace Gray  D:\in.pdf D:\out.pdf
  1. 但是这个命令只转换第一页...如何转换所有页面?
  2. 使用此命令后,分辨率很糟糕……但如果我使用-density 300 选项,文件大小会增加一倍以上。所以我想用同样的DPI设置,但是怎么用呢?

非常感谢

【问题讨论】:

    标签: imagemagick imagemagick-convert pdf-manipulation


    【解决方案1】:

    假设您已安装所有必要的命令行工具,您可以执行以下操作:

    1. 使用pdfseparatepdfunitePoppler 工具)拆分和合并 PDF。
    2. 使用pdfinfo 加上grep/egrep 和例如sed 提取原始密度。这不能保证 PDF 文件的大小相同,但 DPI 相同。

    把它们放在一起,你可以有一系列的 bash 命令,如下所示:

    pdfseparate in.pdf temp-%d.pdf; for i in $(seq $(ls -1 temp-*.pdf | wc -l)); do mv temp-$i.pdf temp-$(printf %03d $i).pdf; done
    for f in temp-*.pdf; do convert -density $(pdfinfo $f | egrep -o 'Page size:[[:space:]]*[0-9]+(\.[0-9]+)?[[:space:]]*x[[:space:]]*[0-9]+(\.[0-9]+)?' | sed -e 's/^Page size:\s*//'| sed -e 's/\s*x\s*/x/') -colorspace Gray {,bw-}$f; done
    pdfunite bw-temp-*.pdf out.pdf
    rm {bw-,}temp-*.pdf
    

    注意 1:有一个肮脏的解决方法 (for/wc/seq/printf) 正确排序 10-999 页 PDF(我不知道如何在pdfseparate)。

    注意 2:我猜 ImageMagick 将 PDF 视为另一个二进制图像文件,因此例如对于主要是文本文件,这将导致巨大的 PDF。因此,这是一种将基于文本的 PDF 转换为黑白的非常糟糕的方法。

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      相关资源
      最近更新 更多