feat(docs-i18n): translate all documentation into 20 languages

All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
This commit is contained in:
SnapOtter
2026-07-11 13:52:47 +08:00
committed by GitHub
parent 00b651c9f8
commit 4963ab3bbd
3620 changed files with 306134 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
---
description: "排列 PDF 頁面以便摺疊成小冊子。"
i18n_source_hash: 8844b6d4fe96
i18n_provenance: human
i18n_output_hash: 71dd586b7b46
---
# 小冊子 PDF {#booklet-pdf}
以雙面列印方式拼版頁面,使列印出的紙張可摺疊成小冊子。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/booklet-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 型別 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| perSheet | integer | 否 | `2` | 每張紙的頁數:`2``4``6``8` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/booklet-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"perSheet": 2}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2400000
}
```
## 注意事項 {#notes}
- 預設的 `perSheet: 2` 會在每張紙上並排放置兩頁,這是雙面列印的標準小冊子版面。
- 若總頁數不是紙張頁數的倍數,會自動加入空白頁。
- 以短邊裝訂的方式雙面列印輸出,然後摺疊並裝訂。
+62
View File
@@ -0,0 +1,62 @@
---
description: "透過壓縮內嵌影像來縮小 PDF 檔案大小。"
i18n_source_hash: a8bb0baaca25
i18n_provenance: human
i18n_output_hash: 429b2e896a58
---
# 壓縮 PDF {#compress-pdf}
透過降低內嵌影像的取樣率來縮小 PDF 檔案大小。可選擇使用品質滑桿或指定目標檔案大小。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/compress-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| mode | string | 否 | `"quality"` | 壓縮模式:`quality``targetSize` |
| quality | integer | 否 | `75` | 壓縮品質,1-100(越高 = 壓縮越少)。用於 `quality` 模式 |
| targetSizeKb | number | 否 | - | 以 KB 為單位的目標檔案大小。用於 `targetSize` 模式 |
## 範例請求 {#example-request}
依品質壓縮:
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"mode": "quality", "quality": 60}'
```
壓縮至目標大小:
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"mode": "targetSize", "targetSizeKb": 500}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 5200000,
"processedSize": 1800000
}
```
## 注意事項 {#notes}
-`quality` 模式下,數值越低產生的檔案越小,但影像劣化越明顯。
-`targetSize` 模式下,二元搜尋會找出符合所要求大小的最高 DPI。
- 若壓縮反而會使檔案變大,則會原封不動地回傳原始位元組。
- 文字與向量內容不受影響;只有內嵌的點陣影像會被降低取樣率。
+48
View File
@@ -0,0 +1,48 @@
---
description: "以統一的邊界裁切 PDF 的所有頁面。"
i18n_source_hash: ffa1a2cee08d
i18n_provenance: human
i18n_output_hash: 161fa4ef30d7
---
# 裁切 PDF {#crop-pdf}
對 PDF 的所有頁面套用統一的邊界進行裁切,每一邊皆均等地修剪內容。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/crop-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| margin | number | 否 | `20` | 以點(point)為單位的統一裁切邊界(0-2000) |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/crop-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"margin": 50}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2440000
}
```
## 注意事項 {#notes}
- 邊界值以 PDF 點為單位(1 點 = 1/72 英吋)。
- 相同的邊界會套用到每一頁的四個邊。
- 邊界為 `0` 會移除所有現有的裁切邊界,顯示完整的媒體框(media box)。
@@ -0,0 +1,47 @@
---
description: "從 PDF 中擷取選定的頁面成為新文件。"
i18n_source_hash: e4a8fad31e0f
i18n_provenance: human
i18n_output_hash: bc4cace34137
---
# 擷取頁面 {#extract-pages}
從 PDF 中擷取選定的頁面,成為一份新的、較小的文件。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/extract-pages`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| range | string | 是 | - | 以 qpdf 語法表示的頁面範圍,例如 `"1-5,8,10-z"` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/extract-pages \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"range": "1-5,8,10-z"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 3200000,
"processedSize": 1100000
}
```
## 注意事項 {#notes}
- 頁面範圍使用 qpdf 語法:`1-5` 代表第 1 到第 5 頁,`z` 代表最後一頁,並可用逗號組合多個範圍(例如 `1-3,7,10-z`)。
- 擷取出的頁面會保留其原始的格式、註解與連結。
+46
View File
@@ -0,0 +1,46 @@
---
description: "將表單與註解烘焙進頁面內容。"
i18n_source_hash: b25c2a2b6f40
i18n_provenance: human
i18n_output_hash: c7afc6f555da
---
# 平面化 PDF {#flatten-pdf}
將互動式表單欄位與註解烘焙進頁面內容,產生一份在任何地方看起來都相同的靜態 PDF。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/flatten-pdf`
接受包含 PDF 檔案的 multipart 表單資料。
## 參數 {#parameters}
此工具沒有可設定的參數。上傳 PDF 後,所有表單與註解都會被平面化。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/flatten-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@form.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/form.pdf",
"originalSize": 185000,
"processedSize": 172000
}
```
## 注意事項 {#notes}
- 接受的輸入格式:`.pdf`
- 這是一個快速(同步)工具,會直接回傳結果。
- 表單欄位的值會以靜態文字的形式保留在輸出中。
- 註解(評論、螢光標記、便利貼)會成為頁面內容的一部分,無法再進行編輯。
@@ -0,0 +1,44 @@
---
description: "將 PDF 中的所有色彩轉換為灰階。"
i18n_source_hash: f327addb32d6
i18n_provenance: human
i18n_output_hash: 4f6bba34c97e
---
# 灰階 PDF {#grayscale-pdf}
將 PDF 中的所有色彩轉換為灰階,產生文件的黑白版本。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/grayscale-pdf`
接受包含 PDF 檔案的 multipart 表單資料。不需要 `settings` 欄位。
## 參數 {#parameters}
此工具沒有設定參數。直接上傳 PDF 檔案即可。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/grayscale-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 3200000,
"processedSize": 2800000
}
```
## 注意事項 {#notes}
- 所有色彩空間(RGB、CMYK)都會轉換為灰階,包括內嵌影像、向量圖形與文字。
- 輸出檔案通常比原始檔案小,因為灰階資料每個像素所需的位元組較少。
@@ -0,0 +1,45 @@
---
description: "將 PDF 線性化以達成快速網頁檢視(漸進式下載)。"
i18n_source_hash: 36280b478161
i18n_provenance: human
i18n_output_hash: 3d00a009797d
---
# 網頁最佳化 PDF {#web-optimize-pdf}
將 PDF 線性化,使其能在網頁瀏覽器中漸進式下載並顯示,無需等待整個檔案下載完成。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/linearize-pdf`
接受包含 PDF 檔案的 multipart 表單資料。不需要 `settings` 欄位。
## 參數 {#parameters}
此工具沒有設定參數。直接上傳 PDF 檔案即可。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/linearize-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2460000
}
```
## 注意事項 {#notes}
- 線性化會重新排列 PDF 的內部結構,使第一頁能在整個檔案下載完成前就開始渲染。
- 由於加入了線性化資料,輸出檔案可能略大於輸入檔案。
- 已經線性化的 PDF 可再次線性化,不會有問題。
+53
View File
@@ -0,0 +1,53 @@
---
description: "將多個 PDF 合併成單一文件。"
i18n_source_hash: e82e389cb8b6
i18n_provenance: human
i18n_output_hash: 9f0143772741
---
# 合併 PDF {#merge-pdfs}
將兩個或多個 PDF 檔案合併成單一文件,並保留每個輸入檔案的頁面順序。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/merge-pdf`
接受包含兩個或多個 PDF 檔案的 multipart 表單資料。不需要 `settings` 欄位。
## 參數 {#parameters}
此工具沒有設定參數。只需上傳兩個或多個 PDF 檔案即可。
| 限制 | 值 |
|------------|-------|
| 最少檔案數 | 2 |
| 最多檔案數 | 20 |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/merge-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document1.pdf" \
-F "file=@document2.pdf" \
-F "file=@document3.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/merged.pdf",
"originalSize": 4500000,
"processedSize": 4200000
}
```
## 注意事項 {#notes}
- 檔案會依上傳的順序合併。
- 至少需要兩個 PDF 檔案;若提供的檔案少於此數量,請求會以 400 錯誤失敗。
- 輸入檔案的最大數量為 20 個。
- 加密的 PDF 必須先解鎖才能合併。
+48
View File
@@ -0,0 +1,48 @@
---
description: "在每張紙上排列多個 PDF 頁面(2 合 1、4 合 1 等)。"
i18n_source_hash: 9dd82737cb72
i18n_provenance: human
i18n_output_hash: 92b5b8e56c3d
---
# N 合 1 PDF {#n-up-pdf}
在每張紙上排列多個頁面以在列印時節省紙張,例如 2 合 1 或 4 合 1 版面配置。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/nup-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| perSheet | integer | 否 | `2` | 每張紙的頁數:`2``3``4``8``9``12``16` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/nup-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"perSheet": 4}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2300000
}
```
## 注意事項 {#notes}
- 頁面依閱讀順序排列(由左至右、由上至下)。
- 輸出頁面大小與原始相同;個別頁面會縮小以符合網格。
- 一份 20 頁的文件搭配 `perSheet: 4` 會產生 5 頁的輸出。
+53
View File
@@ -0,0 +1,53 @@
---
description: "使用 AI 驅動的 OCR 從 PDF 文件中擷取文字。"
i18n_source_hash: 1431fcba180b
i18n_provenance: human
i18n_output_hash: afab5ee963b5
---
# PDF OCR {#pdf-ocr}
使用 AI 驅動的光學字元辨識從 PDF 文件中擷取文字。支援多種品質層級與語言。需要安裝 OCR 功能套件包。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/ocr-pdf`
接受包含 PDF 檔案與選填 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| quality | string | 否 | `"balanced"` | OCR 品質層級:`fast``balanced``best` |
| language | string | 否 | `"auto"` | 文件語言:`auto``en``de``fr``es``zh``ja``ko` |
| pages | string | 否 | `"all"` | 頁面選擇,例如 `"all"``"1-3"``"1,3,5"` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@scanned.pdf" \
-F 'settings={"quality": "best", "language": "en", "pages": "1-5"}'
```
## 範例回應 {#example-response}
回傳 `202 Accepted`。透過 SSE 於 `/api/v1/jobs/{jobId}/progress` 追蹤進度。
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## 注意事項 {#notes}
- 接受的輸入格式:`.pdf`
- 這是一個需要安裝 **OCR 功能套件包** 的 AI 工具。若未安裝該套件包,API 會回傳 `501 Not Implemented`
- `fast` 品質層級使用較輕量的模型以加快處理速度;`best` 則以速度為代價使用更準確的模型。
- `auto` 語言設定會嘗試自動偵測文件語言。
- 你可以使用範圍(`"1-3"`)、逗號分隔的清單(`"1,3,5"`)或 `"all"` 來鎖定特定頁面(代表每一頁)。
- 對於已包含可選取文字的 PDF,建議改用速度更快的 [PDF 轉文字](./pdf-to-text) 工具。
+48
View File
@@ -0,0 +1,48 @@
---
description: "以明確的頁面順序重新排列 PDF 中的頁面。"
i18n_source_hash: e961fc895b4b
i18n_provenance: human
i18n_output_hash: 7458817ad64f
---
# 整理 PDF {#organize-pdf}
透過指定所需的頁面順序來重新排列 PDF 中的頁面。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/organize-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| order | string | 是 | - | 以 qpdf 語法表示的所需頁面順序,例如 `"3,1,2,5-z"` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/organize-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"order": "3,1,2,5-z"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2450000
}
```
## 注意事項 {#notes}
- 頁面範圍使用 qpdf 語法:`3,1,2` 會重新排列前三頁,而 `5-z` 會附加第 5 頁到最後一頁。
- 將頁面列出多次即可重複該頁(例如 `"1,1,2,3"` 會重複第 1 頁)。
- 未列於順序字串中的頁面會從輸出中省略。
+61
View File
@@ -0,0 +1,61 @@
---
description: "讀取並寫入 PDF 文件的中繼資料。"
i18n_source_hash: b2eaebf7467f
i18n_provenance: human
i18n_output_hash: d57983de0478
---
# PDF 中繼資料 {#pdf-metadata}
讀取並更新 PDF 文件的中繼資料欄位,例如標題、作者、主旨與關鍵字。若未提供任何設定,則會回傳現有的中繼資料而不做修改。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-metadata`
接受包含 PDF 檔案與選填 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| title | string | 否 | - | 文件標題(最多 500 個字元) |
| author | string | 否 | - | 文件作者(最多 500 個字元) |
| subject | string | 否 | - | 文件主旨(最多 500 個字元) |
| keywords | string | 否 | - | 文件關鍵字(最多 500 個字元) |
所有參數皆為選填。省略的欄位會維持不變。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-metadata \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@report.pdf" \
-F 'settings={"title": "Q2 Report", "author": "Finance Team"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/report.pdf",
"originalSize": 245000,
"processedSize": 245200,
"metadata": {
"title": "Q2 Report",
"author": "Finance Team",
"subject": "",
"keywords": ""
}
}
```
## 注意事項 {#notes}
- 接受的輸入格式:`.pdf`
- 這是一個快速(同步)工具,會直接回傳結果。
- 回應中的 `metadata` 欄位包含任何更新後所產生的中繼資料。
- 若要在不修改的情況下讀取中繼資料,請省略 `settings` 欄位或傳送一個空物件。
- 每個中繼資料欄位上限為 500 個字元。
@@ -0,0 +1,54 @@
---
description: "在 PDF 的每一頁加上頁碼。"
i18n_source_hash: 58342d6ac8d2
i18n_provenance: human
i18n_output_hash: 42ef40134b60
---
# PDF 頁碼 {#pdf-page-numbers}
在 PDF 的每一頁加上「第 N 頁,共 M 頁」的頁碼。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-page-numbers`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| position | string | 否 | `"bc"` | 頁碼放置位置:`bl``bc``br``tl``tc``tr` |
| fontSize | integer | 否 | `10` | 以點為單位的字型大小(6-24) |
### 位置值 {#position-values}
- `tl` 左上、`tc` 上方置中、`tr` 右上
- `bl` 左下、`bc` 下方置中、`br` 右下
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-page-numbers \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"position": "bc", "fontSize": 12}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2470000
}
```
## 注意事項 {#notes}
- 頁碼會以「第 1 頁,共 10 頁」的格式渲染。
- 頁碼會加到每一頁,包括任何現有的標題頁或封面頁。
- 預設位置 `"bc"` 會將頁碼放在每一頁的下方置中。
+133
View File
@@ -0,0 +1,133 @@
---
description: "將 PDF 頁面轉換為高品質影像。"
i18n_source_hash: 1c36be5dadb8
i18n_provenance: human
i18n_output_hash: c32e4df74c3a
---
# PDF 轉影像 {#pdf-to-image}
將 PDF 頁面轉換為高品質的點陣影像。支援頁面選擇、多種輸出格式、DPI 控制與色彩模式。包含 info 與 preview 子路由,可在轉換前檢視 PDF。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-image`
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| format | string | 否 | `"png"` | 輸出格式:`png``jpg``webp``avif``tiff``gif``heic``heif``jxl` |
| dpi | number | 否 | 150 | 渲染解析度(36 至 2400)。DPI 越高產生的影像越大、越精細。 |
| quality | number | 否 | 85 | 有損格式的輸出品質(1 至 100) |
| colorMode | string | 否 | `"color"` | 色彩模式:`color``grayscale``bw`(黑白閾值) |
| pages | string | 否 | `"all"` | 頁面選擇:`all`、單頁(`3`)、範圍(`1-5`)或以逗號分隔(`1,3,5-8` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image \
-F "file=@document.pdf" \
-F 'settings={"format":"png","dpi":300,"pages":"1-3","colorMode":"color"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"pageCount": 10,
"selectedPages": [1, 2, 3],
"format": "png",
"pages": [
{
"page": 1,
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/page-1.png",
"size": 234567
},
{
"page": 2,
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/page-2.png",
"size": 198765
},
{
"page": 3,
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/page-3.png",
"size": 210456
}
],
"zipUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/pdf-pages.zip",
"zipSize": 612345
}
```
## Info 子路由 {#info-sub-route}
`POST /api/v1/tools/pdf/pdf-to-image/info`
回傳 PDF 的頁數,而不渲染任何頁面。
### Info 請求 {#info-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/info \
-F "file=@document.pdf"
```
### Info 回應 {#info-response}
```json
{
"pageCount": 10
}
```
## Preview 子路由 {#preview-sub-route}
`POST /api/v1/tools/pdf/pdf-to-image/preview`
以 base64 資料 URL 的形式回傳所有頁面的低解析度 JPEG 縮圖。適用於建立頁面選擇 UI。
### Preview 請求 {#preview-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/preview \
-F "file=@document.pdf"
```
### Preview 回應 {#preview-response}
```json
{
"pageCount": 10,
"thumbnails": [
{
"page": 1,
"dataUrl": "data:image/jpeg;base64,/9j/4AAQ...",
"width": 300,
"height": 424
},
{
"page": 2,
"dataUrl": "data:image/jpeg;base64,/9j/4AAQ...",
"width": 300,
"height": 424
}
]
}
```
## 注意事項 {#notes}
- 使用 MuPDF 進行 PDF 渲染,提供高保真的輸出,具備正確的字型渲染與向量圖形。
- 不支援受密碼保護的 PDF,會回傳 400 錯誤。
- `pages` 參數支援靈活的語法:
- `"all"``""` - 所有頁面
- `"3"` - 單頁
- `"1-5"` - 頁面範圍(含端點)
- `"1,3,5-8"` - 混合個別頁面與範圍
- 頁碼以 1 為起始。指定超過文件長度的頁面會回傳 400 錯誤。
- 主端點一律會同時產生個別頁面下載檔以及包含所有選定頁面的 ZIP。
- Preview 端點以 72 DPI 渲染並縮放至 300px 寬,以快速產生縮圖。縮圖為 60% 品質的 JPEG。
- Preview 端點會遵循 `MAX_PDF_PAGES` 伺服器設定,限制產生的縮圖數量。
- 對於高 DPI 的大型文件,處理時間會成比例增加。網頁使用建議採用較低的 DPI(150),列印則採用較高的 DPI300-600)。
+47
View File
@@ -0,0 +1,47 @@
---
description: "從 PDF 中擷取純文字。"
i18n_source_hash: 15a7bc1cdf8f
i18n_provenance: human
i18n_output_hash: bb843dad4b9a
---
# PDF 轉文字 {#pdf-to-text}
將 PDF 文件中所有可讀取的純文字擷取到一個文字檔中。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-text`
接受包含 PDF 檔案的 multipart 表單資料。
## 參數 {#parameters}
此工具沒有可設定的參數。上傳 PDF 後即會擷取其文字內容。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-text \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@report.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/report.txt",
"originalSize": 520000,
"processedSize": 14300,
"chars": 14300
}
```
## 注意事項 {#notes}
- 接受的輸入格式:`.pdf`
- 這是一個快速(同步)工具,會直接回傳結果。
- 回應中的 `chars` 欄位表示所擷取的字元數。
- 只會擷取以數位形式內嵌的文字。對於掃描文件或以影像為主的 PDF,請改用 [PDF OCR](./ocr-pdf) 工具。
+46
View File
@@ -0,0 +1,46 @@
---
description: "將 PDF 轉換為 Word 文件(DOCX)。"
i18n_source_hash: be41b6b49f84
i18n_provenance: human
i18n_output_hash: 1fc792f809a2
---
# PDF 轉 Word {#pdf-to-word}
將以文字為主的 PDF 轉換為 Word 文件(DOCX)。最適合具有可選取文字的 PDF;掃描頁面需要先進行 OCR。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-word`
接受包含 PDF 檔案的 multipart 表單資料。
## 參數 {#parameters}
此工具沒有可設定的參數。上傳 PDF 後即會將其轉換為 DOCX。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-word \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@report.pdf"
```
## 範例回應 {#example-response}
回傳 `202 Accepted`。透過 SSE 於 `/api/v1/jobs/{jobId}/progress` 追蹤進度。
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## 注意事項 {#notes}
- 接受的輸入格式:`.pdf`
- 最適合用於以文字為主的 PDF。掃描或純影像的頁面會產生空白或極少的輸出;請先使用 [PDF OCR](./ocr-pdf) 加入文字圖層。
- 轉換由伺服器上以無頭模式執行的 LibreOffice 處理。
- 複雜的版面配置(多欄、重疊元素)可能無法完美轉換。
+45
View File
@@ -0,0 +1,45 @@
---
description: "將 PDF 轉換為封存用的 PDF/A-2 格式以供長期保存。"
i18n_source_hash: 4c6bf7a12e84
i18n_provenance: human
i18n_output_hash: 3dbdd411b552
---
# PDF/A 轉換 {#pdf-a-convert}
將 PDF 轉換為 PDF/A-2 封存格式,適用於長期保存與法規遵循。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/pdfa-convert`
接受包含 PDF 檔案的 multipart 表單資料。不需要 `settings` 欄位。
## 參數 {#parameters}
此工具沒有設定參數。直接上傳 PDF 檔案即可。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdfa-convert \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2600000
}
```
## 注意事項 {#notes}
- 輸出符合 PDF/A-2 標準。
- PDF/A 會內嵌所有字型並禁止外部參照,因此輸出檔案可能比原始檔案大。
- 加密與 JavaScript 會在轉換過程中被移除,因為 PDF/A 標準不允許它們。
+50
View File
@@ -0,0 +1,50 @@
---
description: "為 PDF 加上使用 AES-256 加密的密碼保護。"
i18n_source_hash: 869cfbc739ef
i18n_provenance: human
i18n_output_hash: 50e623f2bb96
---
# 保護 PDF {#protect-pdf}
使用 AES-256 加密為 PDF 加上密碼保護。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/protect-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| userPassword | string | 是 | - | 開啟 PDF 所需的密碼(1-256 個字元) |
| ownerPassword | string | 否 | 與 `userPassword` 相同 | 用於權限的擁有者密碼(1-256 個字元) |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/protect-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"userPassword": "s3cret", "ownerPassword": "0wn3r"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2500000
}
```
## 注意事項 {#notes}
- 加密使用 AES-256。
- 若省略 `ownerPassword`,則預設為與 `userPassword` 相同的值。
- 密碼會從稽核日誌中遮蔽。
- 加密後的 PDF 需要使用者密碼才能開啟,並需要擁有者密碼(若不同)才能取得完整權限。
+52
View File
@@ -0,0 +1,52 @@
---
description: "從 PDF 中永久移除文字出現處(經驗證的真實塗黑)。"
i18n_source_hash: 296ad2a701b2
i18n_provenance: human
i18n_output_hash: fd38d5f46941
---
# 塗黑 PDF {#redact-pdf}
使用經驗證的真實塗黑,從 PDF 中永久移除指定的文字出現處。被塗黑的文字會從檔案中完全移除,而不僅僅是以黑框覆蓋。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/redact-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| terms | string[] | 是 | - | 要塗黑的文字字串(1-50 個詞,每個最多 200 個字元) |
| caseSensitive | boolean | 否 | `false` | 比對是否區分大小寫 |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/redact-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@contract.pdf" \
-F 'settings={"terms": ["John Doe", "555-0123"], "caseSensitive": false}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/contract.pdf",
"originalSize": 245000,
"processedSize": 243000,
"found": 7
}
```
## 注意事項 {#notes}
- 接受的輸入格式:`.pdf`
- 這是一個快速(同步)工具,會直接回傳結果。
- 這會執行真實塗黑:比對到的文字會從 PDF 內容串流中移除,而不僅是在視覺上遮蔽。
- 回應中的 `found` 欄位表示有多少處出現被塗黑。
- 你在單一請求中最多可塗黑 50 個詞。
+47
View File
@@ -0,0 +1,47 @@
---
description: "從 PDF 中刪除特定頁面。"
i18n_source_hash: 003e460a047c
i18n_provenance: human
i18n_output_hash: 1eb455bf183d
---
# 移除頁面 {#remove-pages}
從 PDF 中刪除特定頁面,並保持所有其餘頁面完整無缺。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/remove-pages`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| pages | string | 是 | - | 以 qpdf 語法表示要移除的頁面範圍,例如 `"3,5-7"` |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/remove-pages \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"pages": "3,5-7"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 1800000
}
```
## 注意事項 {#notes}
- 你無法移除文件中的每一頁;至少必須保留一頁。
- 頁面範圍使用 qpdf 語法:`3` 代表單一頁面,`5-7` 代表一個範圍,並可用逗號組合(例如 `1,3,5-7`)。
+45
View File
@@ -0,0 +1,45 @@
---
description: "嘗試修復損毀或毀壞的 PDF。"
i18n_source_hash: 864073a2f09f
i18n_provenance: human
i18n_output_hash: 65cbb3501cd8
---
# 修復 PDF {#repair-pdf}
透過重建 PDF 的內部結構,嘗試修復損毀或毀壞的 PDF。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/repair-pdf`
接受包含 PDF 檔案的 multipart 表單資料。不需要 `settings` 欄位。
## 參數 {#parameters}
此工具沒有設定參數。直接上傳損毀的 PDF 檔案即可。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/repair-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@damaged.pdf"
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/damaged.pdf",
"originalSize": 2450000,
"processedSize": 2400000
}
```
## 注意事項 {#notes}
- 輸入時會略過結構驗證,以便讓格式錯誤的檔案通過。
- 修復為盡力而為;嚴重毀壞的檔案可能無法完全復原。
- 由於重建了交叉參照表,修復後的 PDF 大小可能與原始檔案略有不同。
+49
View File
@@ -0,0 +1,49 @@
---
description: "將 PDF 中的頁面旋轉 90、180 或 270 度。"
i18n_source_hash: cc2acd091427
i18n_provenance: human
i18n_output_hash: 0791d0a44b35
---
# 旋轉 PDF {#rotate-pdf}
將 PDF 中的所有或選定頁面旋轉指定的角度。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/rotate-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| angle | integer | 否 | `90` | 旋轉角度:`90``180``270` |
| range | string | 否 | `"1-z"` | 以 qpdf 語法表示的頁面範圍,例如 `"1-5,8"``"1-z"` = 所有頁面) |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/rotate-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"angle": 90, "range": "1-3"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2450000
}
```
## 注意事項 {#notes}
- 旋轉方向為順時針。
- 頁面範圍使用 qpdf 語法:`1-5` 代表第 1 到第 5 頁,`z` 代表最後一頁,並可用逗號組合多個範圍。
- 預設範圍 `"1-z"` 會旋轉所有頁面。
+79
View File
@@ -0,0 +1,79 @@
---
description: "使用正規化的頁面放置位置,將上傳的簽名影像蓋印到 PDF 上。"
i18n_source_hash: c28f78c2e7fd
i18n_provenance: human
i18n_output_hash: b8a04f4e0c63
---
# 簽署 PDF {#sign-pdf}
將一個或多個上傳的簽名 PNG 影像蓋印到 PDF 的任何頁面上。此路由使用自訂的 multipart 合約,因為它需要 PDF、一個或多個簽名影像以及放置座標。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/sign-pdf`
接受 multipart 表單資料。PDF 以 `file` 傳送;簽名以 `sig0``sig1` 等方式傳送;放置位置則以 `placements` JSON 欄位傳送。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| file | file | 是 | - | 要簽署的 PDF 檔案 |
| sig0 | file | 是 | - | 第一張簽名影像。額外的影像使用 `sig1``sig2` 等 |
| placements | JSON string | 是 | - | 放置物件的陣列:`{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
| clientJobId | string | 否 | - | 用於透過 SSE 追蹤進度的選填 UUID |
| fileId | string | 否 | - | 選填的檔案庫 ID,用於將簽署結果儲存為新版本 |
## 放置座標 {#placement-coordinates}
| 欄位 | 類型 | 說明 |
|-------|------|-------------|
| sig | integer | 簽名影像索引。`0` 對應到 `sig0` |
| page | integer | 以零為起始的 PDF 頁面索引 |
| x | number | 以頁面比例表示的左側位置 |
| y | number | 以頁面比例表示的頂端位置 |
| w | number | 以頁面比例表示的簽名寬度 |
| h | number | 以頁面比例表示的簽名高度 |
座標使用左上角為原點。數值可能略微超出頁面邊緣;PDF 渲染器會將最終的蓋印裁切至頁面範圍。
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/sign-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@contract.pdf" \
-F "sig0=@signature.png" \
-F 'placements=[{"sig":0,"page":0,"x":0.64,"y":0.82,"w":0.22,"h":0.08}]'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/contract_signed.pdf",
"previewUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/preview.png",
"originalSize": 245000,
"processedSize": 249000
}
```
若請求無法在同步等待視窗內完成,API 會回傳:
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
連線到 `/api/v1/jobs/<jobId>/progress`,並在工作完成時下載結果。
## 注意事項 {#notes}
- 接受的 PDF 輸入格式:`.pdf`
- 簽名影像必須是有效的影像檔,通常是具有透明度的 PNG。
- 最多接受 100 張簽名影像與 100 個放置位置。
- `sign-pdf` 是一個自訂路由,不使用標準工具的 `settings` JSON 欄位。
+61
View File
@@ -0,0 +1,61 @@
---
description: "從 PDF 擷取頁面或將其分割成多個部分。"
i18n_source_hash: 5c8d8041d219
i18n_provenance: human
i18n_output_hash: b4cf4866e8aa
---
# 分割 PDF {#split-pdf}
將一段頁面範圍擷取成新的 PDF,或將文件分割成每 N 頁一份的區塊。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/split-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| mode | string | 否 | `"range"` | 分割模式:`range``every` |
| range | string | 當 mode 為 `range` 時 | - | 以 qpdf 語法表示的頁面範圍,例如 `"1-5,8,10-z"` |
| everyN | integer | 當 mode 為 `every` 時 | - | 分割成每 N 頁一份的區塊(1-500) |
## 範例請求 {#example-request}
擷取特定頁面:
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/split-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"mode": "range", "range": "1-5,8"}'
```
分割成每 10 頁一份的區塊:
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/split-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"mode": "every", "everyN": 10}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 980000
}
```
## 注意事項 {#notes}
- 在 `range` 模式下,會回傳一份包含選定頁面的單一 PDF。
- 在 `every` 模式下,結果會是一個包含各個部分的 ZIP 封存檔。
- 頁面範圍使用 qpdf 語法:`1-5` 代表第 1 到第 5 頁,`z` 代表最後一頁,並可用逗號組合多個範圍(例如 `1-3,7,10-z`)。
+48
View File
@@ -0,0 +1,48 @@
---
description: "移除 PDF 的密碼保護。"
i18n_source_hash: 14f5165d185c
i18n_provenance: human
i18n_output_hash: 3ad23d020d21
---
# 解鎖 PDF {#unlock-pdf}
透過提供正確的密碼來移除加密 PDF 的密碼保護。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/unlock-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| password | string | 是 | - | 用於解密 PDF 的密碼(1-256 個字元) |
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/unlock-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"password": "s3cret"}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2500000,
"processedSize": 2450000
}
```
## 注意事項 {#notes}
- 必須提供正確的密碼;密碼不正確會回傳 400 錯誤。
- 使用者密碼或擁有者密碼皆可用於解密。
- 密碼會從稽核日誌中遮蔽。
@@ -0,0 +1,58 @@
---
description: "在 PDF 的每一頁加上文字浮水印。"
i18n_source_hash: f1f7d8912fbd
i18n_provenance: human
i18n_output_hash: 9e642922db99
---
# 浮水印 PDF {#watermark-pdf}
在 PDF 的每一頁蓋上文字浮水印,並可設定位置、大小、不透明度與旋轉。
## API 端點 {#api-endpoint}
`POST /api/v1/tools/pdf/watermark-pdf`
接受包含 PDF 檔案與 JSON `settings` 欄位的 multipart 表單資料。
## 參數 {#parameters}
| 參數 | 類型 | 必填 | 預設值 | 說明 |
|-----------|------|----------|---------|-------------|
| text | string | 是 | - | 浮水印文字(1-200 個字元) |
| position | string | 否 | `"c"` | 在頁面上的放置位置:`tl``tc``tr``l``c``r``bl``bc``br` |
| fontSize | integer | 否 | `48` | 以點為單位的字型大小(6-72) |
| opacity | number | 否 | `0.3` | 浮水印不透明度(0.05-1) |
| rotation | number | 否 | `45` | 以度為單位的旋轉角度(-180 至 180) |
### 位置值 {#position-values}
- `tl` 左上、`tc` 上方置中、`tr` 右上
- `l` 中間偏左、`c` 置中、`r` 中間偏右
- `bl` 左下、`bc` 下方置中、`br` 右下
## 範例請求 {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/watermark-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"text": "CONFIDENTIAL", "position": "c", "opacity": 0.2, "rotation": 45}'
```
## 範例回應 {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2500000
}
```
## 注意事項 {#notes}
- 浮水印會以文字疊加層的形式渲染在每一頁上。
- 相同的浮水印文字、位置與樣式會一致地套用到所有頁面。
- 使用較低的不透明度值(0.1-0.3)可製作不遮蔽內容的細緻浮水印。