因为平常我比较喜欢晚上看面试题。 市面上很多的面试题pdf都是白色的晚上看的话非常的刺眼。 所以我本能的去互联网搜索看看有没有pdf转换为夜间模式的。 搜索了一段时间后发现并没有这种东西。于是我自己做了一个转换的python脚本。
python
import os
import fitz # PyMuPDF
from PIL import Image, ImageOps
def convert_pdf_to_night_mode(input_pdf, output_pdf):
doc = fitz.open(input_pdf)
images = []
for page_number in range(len(doc)):
page = doc.load_page(page_number)
pix = page.get_pixmap(dpi=150)
img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
inverted_img = ImageOps.invert(img)
images.append(inverted_img.convert("RGB"))
if images:
images[0].save(output_pdf, save_all=True, append_images=images[1:])
print(f"已转换: {os.path.basename(output_pdf)}")
def batch_convert_folder(input_folder, output_folder):
# 创建输出文件夹(如果不存在)
os.makedirs(output_folder, exist_ok=True)
# 遍历所有 PDF 文件
for filename in os.listdir(input_folder):
if filename.lower().endswith('.pdf'):
input_pdf_path = os.path.join(input_folder, filename)
output_pdf_path = os.path.join(output_folder, filename)
convert_pdf_to_night_mode(input_pdf_path, output_pdf_path)
print("所有 PDF 已转换完毕!")
input_folder_path = "input_pdfs" # 输入文件夹路径
output_folder_path = "night_pdfs" # 输出文件夹路径
batch_convert_folder(input_folder_path, output_folder_path)
使用的方法也非常的简单。
bash
pip install pymupdf pillow
之后运行就可以了。 我们来看效果。 这个是没有转换之前的:
我们来看转换之后的