输入任意网址,服务通过无头 Chromium 渲染页面并生成 PDF,存于服务器本地。
接口地址:https://pdf-ai.agy.top/
在浏览器或任意 HTTP 客户端中访问:
GET https://pdf-ai.agy.top/?url=https://example.com
返回 JSON:
{
"ok": true,
"url": "https://example.com",
"path": "/opt/cxweb/data/pdfs/20260707_075116_100680ad546c.pdf",
"filename": "20260707_075116_100680ad546c.pdf",
"size": 14745,
"download": "/pdfs/20260707_075116_100680ad546c.pdf"
}
输入网址,点击生成,即可获得 PDF 下载链接。
| 参数 | 必填 | 默认 | 说明 |
|---|---|---|---|
url | 是 | — | 要转 PDF 的网页地址,必须以 http:// 或 https:// 开头 |
format | 否 | A4 | 纸张格式,如 A4 / Letter / Legal |
wait | 否 | networkidle | 页面加载等待策略:load / domcontentloaded / networkidle |
GET https://pdf-ai.agy.top/?url=https://example.com&format=A4&wait=networkidle
| 字段 | 类型 | 说明 |
|---|---|---|
ok | bool | 是否成功 |
url | string | 原始入参网址 |
path | string | PDF 在服务器上的绝对路径(/opt/cxweb/data/pdfs/) |
filename | string | PDF 文件名(时间戳 + URL 哈希) |
size | int | PDF 文件字节数 |
download | string | 相对下载路径,拼接域名即可下载 |
// 缺少 url
{"ok":false,"error":"Missing \"url\" parameter."}
// url 非法
{"ok":false,"error":"Invalid url. Must start with http:// or https://"}
// 生成失败
{"ok":false,"error":"PDF generation failed.","stdout":"...","stderr":"..."}
curl -G "https://pdf-ai.agy.top/" \
--data-urlencode "url=https://example.com"
$api = "https://pdf-ai.agy.top/?url=" . urlencode("https://example.com");
$res = json_decode(file_get_contents($api), true);
if ($res['ok']) {
echo "PDF: " . $res['path'];
echo "下载: https://pdf-ai.agy.top" . $res['download'];
}
import requests, urllib.parse
api = "https://pdf-ai.agy.top/?" + urllib.parse.urlencode({"url":"https://example.com"})
res = requests.get(api).json()
if res["ok"]:
print("路径:", res["path"])
print("下载:", "https://pdf-ai.agy.top" + res["download"])
const url = "https://pdf-ai.agy.top/?url=" + encodeURIComponent("https://example.com");
const res = await (await fetch(url)).json();
if (res.ok) console.log("下载:", "https://pdf-ai.agy.top" + res.download);
/opt/cxweb/data/pdfs/ 目录。download 路径可直接下载,例如:https://pdf-ai.agy.top/pdfs/<filename>