PDF文字颜色加深

情景:找了本电子书《PYTHON面向对象编程指南 [(美)STEVEN F.LOTT著;张心韬,兰亮译][人民邮电出版.pdf》想要啃一下,

发现电子书里字是灰色的,看起来累眼睛,重新找没有找到更清晰的版本,决定自己修改字体颜色。

1. 首先想要直接用Adobe Acrobat DC直接修改颜色,但这个软件的处理是先识别文字,后更改颜色,速度比较。

2. 电子书不是彩色的,就两种颜色,灰色和白色,所以想到了把所有的灰色改为黑色,百度了一下发现像素值这个东西:0为黑色,256为白色。用Adobe Acrobat DC将PDF转为.jpg图片,直接操作图片,再将图片合并为PDF。

转换成图片就不说了,用Adobe Acrobat DC将PDF导出为图片即可,以下是Python转换代码:

import os
from PIL import Image
dirs =
input('请输入文件路径:')
filenames = os.listdir(dirs)
boundary_value =
230        #设置色素边界值,可以试几次,找到合适值,如果这个值太大,字体会有黑色阴影
for filename in filenames:
  image = Image.open(dirs+
"\\"+ filename)
  photo = image.convert(
'L')    #将彩色图像转换为灰度(模式 L),P为调色板模式
 
photo.save(dirs+"\\"+ filename)
  list = []
 
for i in range(256):
   
if i < boundary_value:      #如果图片中某个像素点的像素小于边界值,设置为黑色
     
list.append(0)
   
else:
      list.append(
1)            #大于边界值,设置为白色
 
 
photo_new = photo.point(list,'1')        #将list[]的像素值映射到图像中,形成新的图片
 
photo_new.save(dirs+"\\"+ filename)

 

备注:解释photo.point()

此处的1如果不写,和源图片的convert(mode)的mode一致,灰度转换中为L,则无亮度波动,全黑。转换灰度( L)或 RGB的默认方法图像转换为双层图像(模式 1)使用Floyd-Steinberg抖动以近似原始图像的亮度水平。如果抖动为,所有大于128的值均设置为255(白色),所有其他值都设为0(黑色)。要使用其他阈值,请使用   #PIL.Image.Image.point`方法。

 

转换之后的图片:

 

最后利用Adobe Acrobat DC,创建--将文件合并为单个PDF--全选图片--合并--另存为,即可

你可能感兴趣的:(Python学习笔记,个人原创,Python模块之Pillow,python)