我尝试打开“辅助功能”菜单并选择黑色背景和绿色字体,但如果文档最初是在黑白模式下扫描的,这似乎不起作用。还有其他方法可以增强 PDF 的对比度吗?
答案1
如果有大量页面,更简单的工具是命令行工具:http://www.imagemagick.org/script/download.php
(ImageMagick 是一个非常流行的图像处理库。)
您必须执行三个步骤。
将 PDF 页面转换为单独的图像文件。请参阅:将 PDF 转换为高分辨率图像或者使用 ImageMagick 将 PDF 转换为 JPG 图像-如何用 0 填充文件名?
convert -density 600 your_pdf_filename.pdf output-%02d.jpg
调整图像质量。如果您只有几页,Photoshop 或GIMP(Photoshop 的免费开源替代品)只需将每个页面导入为图像即可。根据需要更新对比度并保存。有关更多信息,请参阅Gimp:如何消除背景噪音/伪影并增强手写文本或者继续使用 ImageMagick:批量处理文档图像,使其看起来像传真件
convert output*.jpg -normalize -threshold 80% final-%02d.jpg
如果你想要一份 PDF 文件:
convert final*.jpg my_new_highcontrast.pdf
答案2
我有一个包含大量灰色图像(漫画)的 PDF。因此我使用了以下答案气相色谱,将第二条命令更改为:
convert output.jpg -level 25% output_contrast.jpg
只需改变等级为您提供服务的价值百分比。
观察。
使用 arg-threshold
你会得到一个“黑白”图像。但我想保留灰度,这可以通过 arg 实现-level
:你保留灰色,让图像具有darker
或lighter
灰度。
命令顺序如下:
convert your_pdf_filename.pdf output-%02d.jpg
convert output*.jpg -level 25% final-%02d.jpg
convert final*.jpg very_readable.pdf
答案3
如果你想要一个 Python 解决方案:github要点。该脚本将pdf转换为图像,修改其对比度并将其写回pdf。
使用示例
$ python pdf_contrast.py 2.3 -i in.pdf -o out.pdf
Loading pdf in.pdf
Pages: 48
Contrast x2.3: 100%|███████████████████████| 48/48 [00:02<00:00, 18.42pages/s]
Saving pdf to out.pdf
答案4
对于 Windows,我编写了一个批处理文件,.bat
当用户将文件拖放到批处理文件上时,系统会自动生成 PDF。(Linux/OSX 系统需要将其转换为 shell 脚本)
首先需要安装 ImageMagick(允许安装程序添加到 PATH 以便magick convert
从命令行运行)和 GhostScript。不用担心,它们很容易安装。
这是批处理文件。创建一个pdf_darkener.bat
包含以下内容的文件:
@echo off
echo Darkening the pdf at %1
echo Converting PDF to JPGs...
magick convert -density 500 %1 darken_pdf_preprocess_%%02d.jpg
echo Darkening JPGs...
magick convert darken_pdf_preprocess*.jpg -level 50%%,100%%,0.3 darken_pdf_postprocess_%%02d.jpg
echo Converting JPGs to PDF...
magick convert darken_pdf_postprocess*.jpg darkened.pdf
echo Deleting JPGs...
del darken_pdf_*.jpg
echo Done!
pause
将任何 PDF 文件拖到批处理文件中。等待操作完成(慢速/细节级别由控制density 500
,越高 = 像素越多,文件越大,速度越慢)。输出 PDF 将与原始 PDF 位于同一目录中。批处理文件会自行清理,删除处理过程中创建的中间 jpg。
请注意,此对比度增加操作由三个数字控制:50%%,100%%,0.3
即 50%、90% 和 0.3。根据 ImageMagick 文档,这些数字是 black_level、white_level 和 gamma。black_level 是亮度百分比,低于该百分比时,所有内容都会被映射到纯黑色,反之亦然。Gamma 控制非线性映射对于中间值(1.0 是线性的)。
请在评论部分分享任何改进或有用的修改。