一个简单的脚本,让pdf开启夜间模式

因为平常我比较喜欢晚上看面试题。

市面上很多的面试题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

之后运行就可以了。

我们来看效果。

这个是没有转换之前的:

我们来看转换之后的

相关推荐
独断万古他化11 小时前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
程序员猫哥_11 小时前
HTML 生成网页工具推荐:从手写代码到 AI 自动生成网页的进化路径
前端·人工智能·html
龙飞0511 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*11 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
我爱加班、、11 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
AAA阿giao11 小时前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
杨超越luckly11 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
撩得Android一次心动11 小时前
Android LiveData 全面解析:使用Java构建响应式UI【源码篇】
android·java·android jetpack·livedata
组合缺一11 小时前
Solon AI (Java) v3.9 正式发布:全能 Skill 爆发,Agent 协作更专业!仍然支持 java8!
java·人工智能·ai·llm·agent·solon·mcp
MSTcheng.11 小时前
【C++】C++11新特性(二)
java·开发语言·c++·c++11