我想对 pdf 应用一些改进(更改亮度、对比度等),使其更具可读性,所以我选择了 ImageMagick 和 pdftk。我用下面的命令把pdf分割成几个单页的pdf文件,这样我就可以一次对ImageMagick一个文件进行操作。
pdftk a.pdf burst output %04d.pdf
Run Code Online (Sandbox Code Playgroud)
此时,一切正常。我使用其中一个文件(例如 0038.pdf)进行测试。例如,为了调整对比度,我使用了这个命令:
convert 0038.pdf -quality 100 -density 300 -brightness-contrast 0x10% out.pdf
Run Code Online (Sandbox Code Playgroud)
但这是结果:
原来的

转换

我尝试更改质量、密度、大小、调整大小、几何形状的值,输出 pdf 具有不同的大小/分辨率,但始终无法读取。所以我意识到问题出在转换的上游。似乎从 .pdf 文件中错误地读取了输入的 pdf 大小和分辨率convert。
事实上,当我输入这个命令时:
convert -verbose 0038.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)
我得到:
/tmp/magick-9894W9c_JPl1I7QV1 PNG 380x482 380x482+0+0 8-bit sRGB 128KB 0.010u 0:00.010
0038.pdf PNG 380x482 380x482+0+0 16-bit sRGB 128KB 0.000u 0:00.000
0038.pdf=>out.pdf PNG 380x482 380x482+0+0 16-bit sRGB 125KB 0.050u 0:00.049
[ghostscript library] -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 …Run Code Online (Sandbox Code Playgroud)