借助imageMagick这个工具可以实现, 该工具支持多个平台(windows, MacOS, Linux, IOS)

用到的所有工具都是免费的

目录

以windows为例:

1. 下载imageMagick并安装

在安装时记得勾选Install legacy components (convert.exe etc)这一选项, 因为操作需要而且只用到该命令

2. 安装gswin

如果不安装gswin, 执行convert命令会报错.

3. 将pdf转为图片

假设原始文件名是origin.pdf, 目标文件名是target.pdf, 下方的convert应替换为实际路径

convert -density 400 origin.pdf output/%03d.jpg 

上方的density参数指像素密度,数字越高图片质量越高体积越大, 如果pdf带文字,就设置300以上吧. 这是影响最终效果的重要参数, 如果过低, 那么下方再神操作效果也不会很好, 过高会导致文件体积过大

该指令将整个pdf按页转为多张图片, %03d.jpg表示命名为001.jpg,002.jpg….(超过1000页就应改为%04d.jpg)

转换为图片这一步, 是为了获取中间产物进行测试和调整, 通常只需截取一部分页面即可(因为截取一页需要花费数秒时间)

convert -density 400 origin.pdf[10-20] output/%03d.jpg #截取第11到第21页
convert -density 400 origin.pdf[9] output/%03d.jpg  #截取第10页

4. 测试转换效果

convert -level 40,97% -quality 50 output/010.jpg preview010.jpg

上方的level参数是指调整图像通道的级别, 40,97%表示灰度低于40%即为黑点, 高于97%为白点. 这里的40,97需要反复调节到自己认为达到最佳效果, 这是整个过程中最重要的参数, 通过该参数实现调整对比度

quality指输出jpg文件质量(压缩比), 1-100数字越高质量越高体积越大, 出于减少pdf文件大小的考虑, 应适当调节该参数(举个例子density 400的jpg文件可能有1.4M, 压缩后为700K, 这样最终的pdf文件大小相差一倍, 而肉眼无法察觉页面效果有何区别)

5. 转为pdf

确定了density, level和quality的值之后就可以执行转换了

可以从原始pdf转换

convert -density 400 origin.pdf -level 40,97% -quality 50 target.pdf

也可以从之前生成的jpg转换

convert -level 40,97% -quality 50 output/* target.pdf

6. 迁移书签

原先的pdf文件可能有书签, 可以使用FreePic2Pdf将书签迁入新生成的文件中

先从原始文件取书签, 然后往新文件里挂书签即可

最终效果

转换前 转换前
转换后 转换后