Skip to content

Felix-bin/URL2PDF

Repository files navigation

URL 转 PDF 工具

支持 GUI 和命令行两种模式的批量 URL 转 PDF 工具。

功能特性

  • 简洁的图形用户界面(GUI 模式)
  • 命令行模式(无 GUI,适合批量处理)
  • 支持批量 URL 转换(每行一个 URL)
  • 可配置 PDF 设置(页面方向、页面大小)
  • 长图片PDF模式(单页输出,适合长网页截图)
  • 实时进度显示和状态日志
  • 从.env 文件自动读取 API 密钥配置

界面预览

GUI 界面

GUI 界面

输出示例

输出示例

安装

推荐使用uv管理Python环境

uv sync

3. 配置 API 密钥(创建`.env`文件):

```bash
# 在项目根目录创建 .env 文件
ILOVEPDF_PUBLIC_KEY=your_public_key_here
ILOVEPDF_SECRET_KEY=your_secret_key_here

使用方法

方式一:GUI 模式(默认)

  1. 运行程序:
uv  main.py
  1. 在 GUI 界面中:
    • API 密钥会自动从.env文件加载(如果存在)
    • 设置 PDF 选项(页面方向、页面大小)
    • 可选:勾选"启用长图片PDF(单页输出,适合长网页)"选项
    • 选择输出目录
    • 在 URL 输入框中输入 URL 列表(每行一个)
    • 点击"开始转换"按钮

方式二:命令行模式(无 GUI)

  1. 准备 URL 文件(url.txt),每行一个 URL:
https://example.com/page1
https://example.com/page2
https://example.com/page3
  1. 运行命令行模式:
# 基本用法
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: 页面方向 (portraitlandscape),默认: 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

配置说明

API 密钥配置

程序会自动从项目根目录的.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

About

URL2PDF with iLovePDF API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages