支持 GUI 和命令行两种模式的批量 URL 转 PDF 工具。
- 简洁的图形用户界面(GUI 模式)
- 命令行模式(无 GUI,适合批量处理)
- 支持批量 URL 转换(每行一个 URL)
- 可配置 PDF 设置(页面方向、页面大小)
- 长图片PDF模式(单页输出,适合长网页截图)
- 实时进度显示和状态日志
- 从.env 文件自动读取 API 密钥配置
推荐使用uv管理Python环境
uv sync
3. 配置 API 密钥(创建`.env`文件):
```bash
# 在项目根目录创建 .env 文件
ILOVEPDF_PUBLIC_KEY=your_public_key_here
ILOVEPDF_SECRET_KEY=your_secret_key_here
- 运行程序:
uv main.py- 在 GUI 界面中:
- API 密钥会自动从
.env文件加载(如果存在) - 设置 PDF 选项(页面方向、页面大小)
- 可选:勾选"启用长图片PDF(单页输出,适合长网页)"选项
- 选择输出目录
- 在 URL 输入框中输入 URL 列表(每行一个)
- 点击"开始转换"按钮
- API 密钥会自动从
- 准备 URL 文件(
url.txt),每行一个 URL:
https://example.com/page1
https://example.com/page2
https://example.com/page3
- 运行命令行模式:
# 基本用法
uv main.py --cli --input url.txt --output ./pdfs
# 自定义PDF设置
uv main.py --cli --input url.txt --output ./pdfs --orientation landscape --size A3
# 启用长图片PDF模式(单页输出,适合长网页)
uv main.py --cli --input url.txt --output ./pdfs --single-page
# 查看帮助
uv main.py --help命令行参数说明:
--cli: 启用命令行模式(必需)--input: 输入文件路径(包含 URL 列表),默认:url.txt--output: 输出目录路径(命令行模式下必需)--orientation: 页面方向 (portrait或landscape),默认:portrait--size: 页面大小 (A4,A3,Letter,Fit,Auto),默认:A4--single-page: 启用长图片PDF模式(单页输出,适合长网页),默认: 禁用--verbose,-v: 显示详细日志(DEBUG级别),默认: 禁用
示例:
# 使用默认设置
uv main.py --cli --input urls.txt --output ./output
# 横向A3页面
uv main.py --cli --input urls.txt --output ./output --orientation landscape --size A3
# 启用长图片PDF模式(适合长网页截图)
uv main.py --cli --input urls.txt --output ./output --single-page
# 组合多个选项
uv main.py --cli --input urls.txt --output ./output --orientation landscape --size A3 --single-page --verbose程序提供详细的日志记录功能:
- 控制台输出:在命令行模式下,实时显示转换过程的详细信息
- 日志文件:所有日志(包括 DEBUG 级别)自动保存到
url2pdf.log文件 - 日志级别:
INFO(默认):显示主要步骤和结果DEBUG(使用--verbose参数):显示详细的 API 请求和响应信息
日志内容包括:
- API 认证过程
- 任务启动和状态
- URL 上传进度
- PDF 处理和下载详情
- 文件保存位置
- 错误信息和堆栈跟踪
查看日志文件:
# 实时查看日志
tail -f url2pdf.log
# 查看最近的日志
tail -n 100 url2pdf.log程序会自动从项目根目录的.env文件读取 API 密钥。如果.env文件不存在或未配置,GUI 模式下可以在界面中手动输入。
.env文件格式:
ILOVEPDF_PUBLIC_KEY=your_public_key_here
ILOVEPDF_SECRET_KEY=your_secret_key_here
ILOVEPDF_REGION=eu # 可选,默认为eu
如果不想使用.env文件,也可以通过环境变量配置:
# Windows PowerShell
$env:ILOVEPDF_PUBLIC_KEY="your_public_key"
$env:ILOVEPDF_SECRET_KEY="your_secret_key"
# Linux/Mac
export ILOVEPDF_PUBLIC_KEY="your_public_key"
export ILOVEPDF_SECRET_KEY="your_secret_key"- 需要有效的 iLovePDF API 密钥才能使用
- 转换速度取决于网络状况和 iLovePDF API 的响应速度
- 生成的 PDF 文件名基于 URL 的域名和哈希值
- 如果转换失败,会在状态日志中显示详细的错误信息
- 命令行模式适合批量处理和自动化脚本
requests: HTTP 请求库PyJWT: JWT 令牌生成库python-dotenv: 环境变量管理库tkinter: GUI 框架(Python 标准库,仅 GUI 模式需要)
MIT License

