生成、合并、拆分、OCR 与加水印 PDF。
概览
基础路径:
/v1/pdfPython 命名空间:
infra.pdftext
# Python
from infrai import infra
# TypeScript
import { InfraiClient } from "@infrai/sdk";
const client = new InfraiClient({ apiKey: process.env.INFRAI_API_KEY! });
// → client.pdf方法
pdf.generate
POST /v1/pdf/generate
从 HTML、URL 或模板生成 PDF。
Python
python
infra.pdf.generate(html=None, url=None, template_id=None, format="A4", orientation="portrait", idempotency_key=None)TypeScript
typescript
client.pdf.generate(opts: PdfGenerateOptions): Promise<PdfResult>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
html | string | 可选 | 要渲染的 HTML 源。 |
url | string | 可选 | 用于渲染或操作的源 URL。 |
template_id | string | 可选 | 用于渲染的模板 id(替代正文)。 |
format | "A4" | "Letter" | "Legal" | 可选 | 页面尺寸。 |
orientation | "portrait" | "landscape" | 可选 | 页面方向。 |
idempotency_key | string | 可选 | 可选去重 key;相同重试将返回同一结果。 |
返回
PdfResult { pdf_url, bytes, pages }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import infra
# Pass exactly one source: inline html, a remote url, or a template_id.
doc = infra.pdf.generate(
html="<h1>Invoice #1042</h1><p>Total due: $42.00</p>",
format="A4",
orientation="portrait",
)
print("pdf url:", doc.get("url") or doc.get("pdf_url"))pdf.merge
POST /v1/pdf/merge
将多个 PDF 合并为一个。
Python
python
infra.pdf.merge(urls=[...])TypeScript
typescript
client.pdf.merge(opts: { urls }): Promise<PdfResult>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
urls | string[] | 必填 | 要合并的 PDF URL 列表。 |
返回
PdfResult示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import infra
out = infra.pdf.merge(urls=["https://ex.com/a.pdf", "https://ex.com/b.pdf"])
print("merged url:", out.get("url") or out.get("pdf_url"))pdf.split
POST /v1/pdf/split
按页码区间拆分 PDF。
Python
python
infra.pdf.split(url=..., ranges=[...])TypeScript
typescript
client.pdf.split(opts: { url, ranges }): Promise<{ parts }>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 必填 | 用于渲染或操作的源 URL。 |
ranges | string[] | 必填 | 页码区间,例如 1-3。 |
返回
{ parts: PdfResult[] }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import infra
res = infra.pdf.split(url="https://ex.com/doc.pdf", ranges=["1-3", "4-"])
print("parts:", len(res.get("parts", [])))pdf.ocr
POST /v1/pdf/ocr
通过 OCR 从 PDF 提取文本。
Python
python
infra.pdf.ocr(url=..., language=None)TypeScript
typescript
client.pdf.ocr(opts: { url, language? }): Promise<{ text, pages }>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 必填 | 用于渲染或操作的源 URL。 |
language | string | 可选 | 语言提示,例如 en 或 zh。 |
返回
{ text, pages: Array<{ text }> }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import infra
res = infra.pdf.ocr(url="https://ex.com/scan.pdf", language="en")
print(res.get("text", "")[:200])pdf.watermark
POST /v1/pdf/watermark
为 PDF 添加文字或图片水印。
Python
python
infra.pdf.watermark(url=..., text=None, image_url=None, opacity=None)TypeScript
typescript
client.pdf.watermark(opts): Promise<PdfResult>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 必填 | 用于渲染或操作的源 URL。 |
text | string | 可选 | 水印文字。 |
opacity | number | 可选 | 水印不透明度,0 到 1。 |
返回
PdfResult示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import infra
out = infra.pdf.watermark(url="https://ex.com/doc.pdf", text="CONFIDENTIAL", opacity=0.2)
print("watermarked url:", out.get("url") or out.get("pdf_url"))