Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

AltStyle によって変換されたページ (->オリジナル) /