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: "Sắp xếp các trang PDF để gấp thành sách nhỏ."
i18n_source_hash: 8844b6d4fe96
i18n_provenance: human
i18n_output_hash: cbc44eec6d90
---
# Booklet PDF {#booklet-pdf}
Bố trí các trang để in hai mặt sao cho các tờ in ra có thể gấp thành một cuốn sách nhỏ.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/booklet-pdf`
Chấp nhận dữ liệu form multipart với một tệp PDF và một trường JSON `settings`.
## Tham số {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| perSheet | integer | Không | `2` | Số trang mỗi tờ: `2`, `4`, `6`, hoặc `8` |
## Ví dụ Request {#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}'
```
## Ví dụ Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2400000
}
```
## Ghi chú {#notes}
- Mặc định `perSheet: 2` đặt hai trang cạnh nhau trên mỗi tờ, đây là bố cục sách nhỏ tiêu chuẩn cho in hai mặt.
- Các trang trống được thêm tự động nếu tổng số trang không phải là bội số của kích thước tờ.
- In đầu ra hai mặt theo kiểu đóng gáy cạnh ngắn, sau đó gấp và dập ghim.
+62
View File
@@ -0,0 +1,62 @@
---
description: "Giảm kích thước tệp PDF bằng cách nén các hình ảnh nhúng."
i18n_source_hash: a8bb0baaca25
i18n_provenance: human
i18n_output_hash: c51a44fc08cb
---
# Compress PDF {#compress-pdf}
Giảm kích thước tệp PDF bằng cách hạ độ phân giải các hình ảnh nhúng. Chọn giữa thanh trượt chất lượng hoặc kích thước tệp mục tiêu.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/compress-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| mode | string | Không | `"quality"` | Chế độ nén: `quality` hoặc `targetSize` |
| quality | integer | Không | `75` | Chất lượng nén, 1-100 (càng cao = nén càng ít). Dùng trong chế độ `quality` |
| targetSizeKb | number | Không | - | Kích thước tệp mục tiêu tính bằng kilobyte. Dùng trong chế độ `targetSize` |
## Example Request {#example-request}
Nén theo chất lượng:
```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}'
```
Nén xuống kích thước mục tiêu:
```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 {#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 {#notes}
- Ở chế độ `quality`, giá trị thấp hơn tạo ra tệp nhỏ hơn nhưng hình ảnh suy giảm nhiều hơn.
- Ở chế độ `targetSize`, một tìm kiếm nhị phân tìm DPI cao nhất vừa với kích thước yêu cầu.
- Nếu việc nén khiến tệp lớn hơn, dữ liệu byte gốc được trả về nguyên vẹn.
- Nội dung văn bản và vector không bị ảnh hưởng; chỉ các hình ảnh raster nhúng mới bị hạ độ phân giải.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Cắt xén tất cả các trang của một PDF với lề đồng nhất."
i18n_source_hash: ffa1a2cee08d
i18n_provenance: human
i18n_output_hash: 0c265bd2c3ce
---
# Crop PDF {#crop-pdf}
Cắt xén tất cả các trang của một PDF bằng cách áp dụng một lề đồng nhất, cắt bỏ nội dung ở mỗi cạnh bằng nhau.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/crop-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| margin | number | Không | `20` | Lề cắt xén đồng nhất tính bằng điểm (0-2000) |
## Example Request {#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 {#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 {#notes}
- Giá trị lề được tính bằng điểm PDF (1 điểm = 1/72 inch).
- Cùng một lề được áp dụng cho cả bốn cạnh của mọi trang.
- Lề `0` loại bỏ tất cả các lề cắt xén hiện có, hiển thị toàn bộ media box.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Trích xuất các trang đã chọn từ một PDF thành một tài liệu mới."
i18n_source_hash: e4a8fad31e0f
i18n_provenance: human
i18n_output_hash: ae2532147c89
---
# Extract Pages {#extract-pages}
Trích xuất các trang đã chọn từ một PDF thành một tài liệu mới, nhỏ hơn.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/extract-pages`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| range | string | Có | - | Phạm vi trang theo cú pháp qpdf, ví dụ `"1-5,8,10-z"` |
## Example Request {#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 {#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 {#notes}
- Phạm vi trang dùng cú pháp qpdf: `1-5` cho các trang 1 đến 5, `z` cho trang cuối cùng, và dấu phẩy để kết hợp các phạm vi (ví dụ `1-3,7,10-z`).
- Các trang được trích xuất giữ nguyên định dạng, chú thích và liên kết gốc của chúng.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Nung biểu mẫu và chú thích vào nội dung trang."
i18n_source_hash: b25c2a2b6f40
i18n_provenance: human
i18n_output_hash: 5782e02f2611
---
# Flatten PDF {#flatten-pdf}
Nung các trường biểu mẫu tương tác và chú thích vào nội dung trang, tạo ra một PDF tĩnh trông giống nhau ở mọi nơi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/flatten-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF.
## Parameters {#parameters}
Công cụ này không có tham số nào có thể cấu hình. Tải lên một PDF và tất cả biểu mẫu và chú thích sẽ được làm phẳng.
## Example Request {#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 {#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 {#notes}
- Định dạng đầu vào được chấp nhận: `.pdf`.
- Đây là một công cụ nhanh (đồng bộ) trả về kết quả trực tiếp.
- Giá trị của các trường biểu mẫu được giữ lại dưới dạng văn bản tĩnh trong đầu ra.
- Các chú thích (bình luận, tô sáng, ghi chú dán) trở thành một phần của nội dung trang và không thể chỉnh sửa được nữa.
+44
View File
@@ -0,0 +1,44 @@
---
description: "Chuyển đổi tất cả màu sắc trong một PDF sang thang xám."
i18n_source_hash: f327addb32d6
i18n_provenance: human
i18n_output_hash: 83f4ecd38fca
---
# Grayscale PDF {#grayscale-pdf}
Chuyển đổi tất cả màu sắc trong một PDF sang thang xám, tạo ra một phiên bản đen trắng của tài liệu.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/grayscale-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF. Không cần trường `settings`.
## Parameters {#parameters}
Công cụ này không có tham số cài đặt. Tải trực tiếp tệp PDF lên.
## Example Request {#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 {#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 {#notes}
- Tất cả các không gian màu (RGB, CMYK) được chuyển đổi sang thang xám, bao gồm hình ảnh nhúng, đồ họa vector và văn bản.
- Tệp đầu ra thường nhỏ hơn tệp gốc vì dữ liệu thang xám cần ít byte hơn cho mỗi pixel.
+45
View File
@@ -0,0 +1,45 @@
---
description: "Tuyến tính hóa một PDF để xem nhanh trên web (tải xuống lũy tiến)."
i18n_source_hash: 36280b478161
i18n_provenance: human
i18n_output_hash: 28a291a724a9
---
# Web-Optimize PDF {#web-optimize-pdf}
Tuyến tính hóa một PDF để nó có thể được tải xuống và hiển thị lũy tiến trong các trình duyệt web mà không phải chờ toàn bộ tệp.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/linearize-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF. Không cần trường `settings`.
## Parameters {#parameters}
Công cụ này không có tham số cài đặt. Tải trực tiếp tệp PDF lên.
## Example Request {#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 {#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 {#notes}
- Việc tuyến tính hóa sắp xếp lại cấu trúc bên trong của PDF để trang đầu tiên có thể hiển thị trước khi toàn bộ tệp được tải xuống.
- Tệp đầu ra có thể lớn hơn một chút so với đầu vào do dữ liệu tuyến tính hóa được thêm vào.
- Các PDF đã được tuyến tính hóa vẫn được tuyến tính hóa lại mà không gặp vấn đề gì.
+53
View File
@@ -0,0 +1,53 @@
---
description: "Kết hợp nhiều PDF thành một tài liệu duy nhất."
i18n_source_hash: e82e389cb8b6
i18n_provenance: human
i18n_output_hash: 8f481d3df97d
---
# Merge PDFs {#merge-pdfs}
Kết hợp hai hoặc nhiều tệp PDF thành một tài liệu duy nhất, giữ nguyên thứ tự trang của mỗi tệp đầu vào.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/merge-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với hai hoặc nhiều tệp PDF. Không cần trường `settings`.
## Parameters {#parameters}
Công cụ này không có tham số cài đặt. Chỉ cần tải lên hai hoặc nhiều tệp PDF.
| Ràng buộc | Giá trị |
|------------|-------|
| Số tệp tối thiểu | 2 |
| Số tệp tối đa | 20 |
## Example Request {#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 {#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 {#notes}
- Các tệp được hợp nhất theo thứ tự chúng được tải lên.
- Cần ít nhất hai tệp PDF; yêu cầu sẽ thất bại với lỗi 400 nếu cung cấp ít hơn.
- Số tệp đầu vào tối đa là 20.
- Các PDF được mã hóa phải được mở khóa trước khi hợp nhất.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Sắp xếp nhiều trang PDF trên mỗi tờ (2-up, 4-up, v.v.)."
i18n_source_hash: 9dd82737cb72
i18n_provenance: human
i18n_output_hash: 1012fd595786
---
# N-up PDF {#n-up-pdf}
Sắp xếp nhiều trang trên mỗi tờ để tiết kiệm giấy khi in, chẳng hạn như bố cục 2-up hoặc 4-up.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/nup-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| perSheet | integer | Không | `2` | Số trang mỗi tờ: `2`, `3`, `4`, `8`, `9`, `12`, hoặc `16` |
## Example Request {#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 {#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 {#notes}
- Các trang được sắp xếp theo thứ tự đọc (trái sang phải, trên xuống dưới).
- Kích thước trang đầu ra khớp với bản gốc; các trang riêng lẻ được thu nhỏ để vừa với lưới.
- Một tài liệu 20 trang với `perSheet: 4` tạo ra đầu ra 5 trang.
+53
View File
@@ -0,0 +1,53 @@
---
description: "Trích xuất văn bản từ tài liệu PDF bằng OCR hỗ trợ AI."
i18n_source_hash: 1431fcba180b
i18n_provenance: human
i18n_output_hash: 49576592ebd9
---
# PDF OCR {#pdf-ocr}
Trích xuất văn bản từ tài liệu PDF bằng nhận dạng ký tự quang học hỗ trợ AI. Hỗ trợ nhiều bậc chất lượng và ngôn ngữ. Yêu cầu cài đặt gói tính năng OCR.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/ocr-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings` tùy chọn.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| quality | string | Không | `"balanced"` | Bậc chất lượng OCR: `fast`, `balanced`, `best` |
| language | string | Không | `"auto"` | Ngôn ngữ tài liệu: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
| pages | string | Không | `"all"` | Chọn trang, ví dụ `"all"`, `"1-3"`, `"1,3,5"` |
## Example Request {#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 {#example-response}
Trả về `202 Accepted`. Theo dõi tiến độ qua SSE tại `/api/v1/jobs/{jobId}/progress`.
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Định dạng đầu vào được chấp nhận: `.pdf`.
- Đây là một công cụ AI yêu cầu cài đặt **gói tính năng OCR**. Nếu gói chưa được cài đặt, API trả về `501 Not Implemented`.
- Bậc chất lượng `fast` dùng một mô hình nhẹ hơn để xử lý nhanh hơn; `best` dùng một mô hình chính xác hơn nhưng đánh đổi bằng tốc độ.
- Cài đặt ngôn ngữ `auto` cố gắng phát hiện ngôn ngữ tài liệu một cách tự động.
- Bạn có thể nhắm đến các trang cụ thể bằng cách dùng phạm vi (`"1-3"`), danh sách ngăn cách bằng dấu phẩy (`"1,3,5"`), hoặc `"all"` cho mọi trang.
- Đối với các PDF đã chứa văn bản có thể chọn được, hãy cân nhắc dùng công cụ [PDF to Text](./pdf-to-text) nhanh hơn thay thế.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Sắp xếp lại các trang trong một PDF với thứ tự trang rõ ràng."
i18n_source_hash: e961fc895b4b
i18n_provenance: human
i18n_output_hash: b83a28cfb747
---
# Organize PDF {#organize-pdf}
Sắp xếp lại các trang trong một PDF bằng cách chỉ định trình tự trang mong muốn.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/organize-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| order | string | Có | - | Thứ tự trang mong muốn theo cú pháp qpdf, ví dụ `"3,1,2,5-z"` |
## Example Request {#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 {#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 {#notes}
- Phạm vi trang dùng cú pháp qpdf: `3,1,2` sắp xếp lại ba trang đầu tiên, và `5-z` nối thêm các trang 5 đến trang cuối cùng.
- Các trang có thể được nhân đôi bằng cách liệt kê chúng nhiều hơn một lần (ví dụ `"1,1,2,3"` nhân đôi trang 1).
- Các trang không được liệt kê trong chuỗi thứ tự sẽ bị bỏ khỏi đầu ra.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Đọc và ghi metadata tài liệu PDF."
i18n_source_hash: b2eaebf7467f
i18n_provenance: human
i18n_output_hash: c6d162cbd092
---
# PDF Metadata {#pdf-metadata}
Đọc và cập nhật các trường metadata tài liệu PDF như tiêu đề, tác giả, chủ đề và từ khóa. Khi không cung cấp cài đặt nào, metadata hiện có được trả về mà không sửa đổi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-metadata`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings` tùy chọn.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| title | string | Không | - | Tiêu đề tài liệu (tối đa 500 ký tự) |
| author | string | Không | - | Tác giả tài liệu (tối đa 500 ký tự) |
| subject | string | Không | - | Chủ đề tài liệu (tối đa 500 ký tự) |
| keywords | string | Không | - | Từ khóa tài liệu (tối đa 500 ký tự) |
Tất cả các tham số đều tùy chọn. Các trường bị bỏ qua được giữ nguyên không thay đổi.
## Example Request {#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 {#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 {#notes}
- Định dạng đầu vào được chấp nhận: `.pdf`.
- Đây là một công cụ nhanh (đồng bộ) trả về kết quả trực tiếp.
- Trường `metadata` trong phản hồi chứa metadata kết quả sau mọi cập nhật.
- Để đọc metadata mà không sửa đổi nó, hãy bỏ qua trường `settings` hoặc gửi một đối tượng rỗng.
- Mỗi trường metadata giới hạn ở 500 ký tự.
@@ -0,0 +1,54 @@
---
description: "Thêm số trang vào mọi trang của một PDF."
i18n_source_hash: 58342d6ac8d2
i18n_provenance: human
i18n_output_hash: 23770de9054d
---
# PDF Page Numbers {#pdf-page-numbers}
Thêm số trang dạng "Page N of M" vào mọi trang của một PDF.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-page-numbers`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| position | string | Không | `"bc"` | Vị trí đặt số trang: `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
| fontSize | integer | Không | `10` | Cỡ chữ tính bằng điểm (6-24) |
### Position Values {#position-values}
- `tl` trên-trái, `tc` trên-giữa, `tr` trên-phải
- `bl` dưới-trái, `bc` dưới-giữa, `br` dưới-phải
## Example Request {#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 {#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 {#notes}
- Số trang được hiển thị theo định dạng "Page 1 of 10".
- Số được thêm vào mọi trang, bao gồm bất kỳ trang tiêu đề hoặc trang bìa hiện có nào.
- Vị trí mặc định `"bc"` đặt số ở giữa dưới của mỗi trang.
+133
View File
@@ -0,0 +1,133 @@
---
description: "Chuyển đổi các trang PDF thành hình ảnh chất lượng cao."
i18n_source_hash: 1c36be5dadb8
i18n_provenance: human
i18n_output_hash: 078d2337fd2a
---
# PDF to Image {#pdf-to-image}
Chuyển đổi các trang PDF thành hình ảnh raster chất lượng cao. Hỗ trợ chọn trang, nhiều định dạng đầu ra, điều khiển DPI và chế độ màu. Bao gồm các tuyến con info và preview để kiểm tra PDF trước khi chuyển đổi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-image`
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| format | string | Không | `"png"` | Định dạng đầu ra: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
| dpi | number | Không | 150 | Độ phân giải kết xuất (36 đến 2400). DPI cao hơn tạo ra hình ảnh lớn hơn, chi tiết hơn. |
| quality | number | Không | 85 | Chất lượng đầu ra cho các định dạng có mất mát (1 đến 100) |
| colorMode | string | Không | `"color"` | Chế độ màu: `color`, `grayscale`, `bw` (ngưỡng đen trắng) |
| pages | string | Không | `"all"` | Chọn trang: `all`, một trang (`3`), phạm vi (`1-5`), hoặc ngăn cách bằng dấu phẩy (`1,3,5-8`) |
## Example Request {#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 {#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 Sub-Route {#info-sub-route}
`POST /api/v1/tools/pdf/pdf-to-image/info`
Trả về số trang của một PDF mà không kết xuất bất kỳ trang nào.
### Info Request {#info-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/info \
-F "file=@document.pdf"
```
### Info Response {#info-response}
```json
{
"pageCount": 10
}
```
## Preview Sub-Route {#preview-sub-route}
`POST /api/v1/tools/pdf/pdf-to-image/preview`
Trả về hình thu nhỏ JPEG độ phân giải thấp của tất cả các trang dưới dạng URL dữ liệu base64. Hữu ích để xây dựng giao diện chọn trang.
### Preview Request {#preview-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/preview \
-F "file=@document.pdf"
```
### Preview Response {#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 {#notes}
- Dùng MuPDF để kết xuất PDF, mang lại đầu ra trung thực cao với kết xuất phông chữ và đồ họa vector chính xác.
- Các PDF được bảo vệ bằng mật khẩu không được hỗ trợ và sẽ trả về lỗi 400.
- Tham số `pages` hỗ trợ cú pháp linh hoạt:
- `"all"` hoặc `""` - tất cả các trang
- `"3"` - một trang
- `"1-5"` - phạm vi trang (bao gồm cả hai đầu)
- `"1,3,5-8"` - kết hợp các trang riêng lẻ và phạm vi
- Số trang bắt đầu từ 1. Chỉ định các trang vượt quá độ dài tài liệu sẽ trả về lỗi 400.
- Endpoint chính luôn tạo cả các tệp tải xuống trang riêng lẻ và một tệp ZIP chứa tất cả các trang đã chọn.
- Endpoint preview kết xuất ở 72 DPI và co giãn đến chiều rộng 300px để tạo hình thu nhỏ nhanh. Hình thu nhỏ là JPEG ở chất lượng 60%.
- Endpoint preview tôn trọng cấu hình máy chủ `MAX_PDF_PAGES`, giới hạn số lượng hình thu nhỏ được tạo.
- Đối với tài liệu lớn ở DPI cao, thời gian xử lý tăng theo tỷ lệ. Hãy cân nhắc dùng DPI thấp hơn (150) cho mục đích sử dụng web và DPI cao hơn (300-600) cho in ấn.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Trích xuất văn bản thuần từ một PDF."
i18n_source_hash: 15a7bc1cdf8f
i18n_provenance: human
i18n_output_hash: de4cc6209bde
---
# PDF to Text {#pdf-to-text}
Trích xuất tất cả văn bản thuần có thể đọc được từ một tài liệu PDF vào một tệp văn bản.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-text`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF.
## Parameters {#parameters}
Công cụ này không có tham số nào có thể cấu hình. Tải lên một PDF và nội dung văn bản của nó sẽ được trích xuất.
## Example Request {#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 {#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 {#notes}
- Định dạng đầu vào được chấp nhận: `.pdf`.
- Đây là một công cụ nhanh (đồng bộ) trả về kết quả trực tiếp.
- Trường `chars` trong phản hồi cho biết số lượng ký tự được trích xuất.
- Chỉ văn bản được nhúng dạng số mới được trích xuất. Đối với tài liệu quét hoặc PDF dựa trên hình ảnh, hãy dùng công cụ [PDF OCR](./ocr-pdf) thay thế.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Chuyển đổi một PDF thành tài liệu Word (DOCX)."
i18n_source_hash: be41b6b49f84
i18n_provenance: human
i18n_output_hash: 8e9b667463f8
---
# PDF to Word {#pdf-to-word}
Chuyển đổi một PDF dựa trên văn bản thành tài liệu Word (DOCX). Phù hợp nhất cho các PDF có văn bản chọn được; các trang quét sẽ cần OCR trước.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-word`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF.
## Parameters {#parameters}
Công cụ này không có tham số nào có thể cấu hình. Tải lên một PDF và nó sẽ được chuyển đổi thành DOCX.
## Example Request {#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 {#example-response}
Trả về `202 Accepted`. Theo dõi tiến độ qua SSE tại `/api/v1/jobs/{jobId}/progress`.
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Định dạng đầu vào được chấp nhận: `.pdf`.
- Hoạt động tốt nhất với các PDF dựa trên văn bản. Các trang quét hoặc chỉ có hình ảnh sẽ tạo ra đầu ra rỗng hoặc tối thiểu; hãy dùng [PDF OCR](./ocr-pdf) để thêm một lớp văn bản trước.
- Việc chuyển đổi được xử lý bởi LibreOffice chạy headless trên máy chủ.
- Các bố cục phức tạp (nhiều cột, các phần tử chồng lấn) có thể không chuyển đổi hoàn hảo.
+45
View File
@@ -0,0 +1,45 @@
---
description: "Chuyển đổi một PDF sang định dạng lưu trữ PDF/A-2 để bảo tồn dài hạn."
i18n_source_hash: 4c6bf7a12e84
i18n_provenance: human
i18n_output_hash: 13590adfaafe
---
# PDF/A Convert {#pdf-a-convert}
Chuyển đổi một PDF sang định dạng lưu trữ PDF/A-2, phù hợp cho việc bảo tồn dài hạn và tuân thủ quy định.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdfa-convert`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF. Không cần trường `settings`.
## Parameters {#parameters}
Công cụ này không có tham số cài đặt. Tải trực tiếp tệp PDF lên.
## Example Request {#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 {#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 {#notes}
- Đầu ra tuân theo tiêu chuẩn PDF/A-2.
- PDF/A nhúng tất cả phông chữ và không cho phép tham chiếu bên ngoài, vì vậy tệp đầu ra có thể lớn hơn bản gốc.
- Mã hóa và JavaScript bị loại bỏ trong quá trình chuyển đổi, vì chúng không được tiêu chuẩn PDF/A cho phép.
+50
View File
@@ -0,0 +1,50 @@
---
description: "Thêm bảo vệ bằng mật khẩu với mã hóa AES-256 cho một PDF."
i18n_source_hash: 869cfbc739ef
i18n_provenance: human
i18n_output_hash: 362d50446184
---
# Protect PDF {#protect-pdf}
Thêm bảo vệ bằng mật khẩu cho một PDF bằng mã hóa AES-256.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/protect-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| userPassword | string | Có | - | Mật khẩu cần thiết để mở PDF (1-256 ký tự) |
| ownerPassword | string | Không | Giống `userPassword` | Mật khẩu chủ sở hữu cho quyền hạn (1-256 ký tự) |
## Example Request {#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 {#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 {#notes}
- Mã hóa dùng AES-256.
- Nếu `ownerPassword` bị bỏ qua, nó mặc định là cùng giá trị với `userPassword`.
- Mật khẩu được che khỏi nhật ký kiểm toán.
- PDF được mã hóa yêu cầu mật khẩu người dùng để mở và mật khẩu chủ sở hữu (nếu khác) để có đầy đủ quyền hạn.
+52
View File
@@ -0,0 +1,52 @@
---
description: "Xóa vĩnh viễn các lần xuất hiện văn bản khỏi một PDF (biên tập ẩn thật đã xác minh)."
i18n_source_hash: 296ad2a701b2
i18n_provenance: human
i18n_output_hash: 65563e784be8
---
# Redact PDF {#redact-pdf}
Xóa vĩnh viễn các lần xuất hiện văn bản được chỉ định khỏi một PDF bằng biên tập ẩn thật đã xác minh. Văn bản được biên tập ẩn hoàn toàn bị xóa khỏi tệp, không chỉ bị che bằng một hộp đen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/redact-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| terms | string[] | Có | - | Các chuỗi văn bản cần biên tập ẩn (1-50 mục, mỗi mục tối đa 200 ký tự) |
| caseSensitive | boolean | Không | `false` | Việc so khớp có phân biệt chữ hoa chữ thường hay không |
## Example Request {#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 {#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 {#notes}
- Định dạng đầu vào được chấp nhận: `.pdf`.
- Đây là một công cụ nhanh (đồng bộ) trả về kết quả trực tiếp.
- Việc này thực hiện biên tập ẩn thật: văn bản khớp bị xóa khỏi luồng nội dung PDF, không chỉ bị che khuất về mặt hình ảnh.
- Trường `found` trong phản hồi cho biết có bao nhiêu lần xuất hiện đã được biên tập ẩn.
- Bạn có thể biên tập ẩn tối đa 50 mục trong một yêu cầu.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Xóa các trang cụ thể khỏi một PDF."
i18n_source_hash: 003e460a047c
i18n_provenance: human
i18n_output_hash: a25e28cee3c3
---
# Remove Pages {#remove-pages}
Xóa các trang cụ thể khỏi một PDF, giữ nguyên tất cả các trang còn lại.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/remove-pages`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| pages | string | Có | - | Phạm vi trang cần xóa theo cú pháp qpdf, ví dụ `"3,5-7"` |
## Example Request {#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 {#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 {#notes}
- Bạn không thể xóa mọi trang khỏi một tài liệu; ít nhất một trang phải còn lại.
- Phạm vi trang dùng cú pháp qpdf: `3` cho một trang, `5-7` cho một phạm vi, và dấu phẩy để kết hợp (ví dụ `1,3,5-7`).
+45
View File
@@ -0,0 +1,45 @@
---
description: "Cố gắng sửa chữa một PDF bị hỏng hoặc lỗi."
i18n_source_hash: 864073a2f09f
i18n_provenance: human
i18n_output_hash: 78667764c2f7
---
# Repair PDF {#repair-pdf}
Cố gắng sửa chữa một PDF bị hỏng hoặc lỗi bằng cách tái tạo lại cấu trúc bên trong của nó.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/repair-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF. Không cần trường `settings`.
## Parameters {#parameters}
Công cụ này không có tham số cài đặt. Tải trực tiếp tệp PDF bị hỏng lên.
## Example Request {#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 {#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 {#notes}
- Việc xác thực cấu trúc được bỏ qua ở đầu vào để cho phép các tệp không đúng định dạng đi qua.
- Việc sửa chữa là nỗ lực tốt nhất có thể; các tệp bị hỏng nghiêm trọng có thể không được khôi phục hoàn toàn.
- PDF đã sửa chữa có thể khác biệt một chút về kích thước so với bản gốc do các bảng tham chiếu chéo được tái tạo.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Xoay các trang trong một PDF 90, 180 hoặc 270 độ."
i18n_source_hash: cc2acd091427
i18n_provenance: human
i18n_output_hash: c039180e910f
---
# Rotate PDF {#rotate-pdf}
Xoay tất cả hoặc các trang đã chọn trong một PDF theo một góc được chỉ định.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/rotate-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| angle | integer | Không | `90` | Góc xoay: `90`, `180`, hoặc `270` |
| range | string | Không | `"1-z"` | Phạm vi trang theo cú pháp qpdf, ví dụ `"1-5,8"` (`"1-z"` = tất cả các trang) |
## Example Request {#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 {#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 {#notes}
- Việc xoay theo chiều kim đồng hồ.
- Phạm vi trang dùng cú pháp qpdf: `1-5` cho các trang 1 đến 5, `z` cho trang cuối cùng, và dấu phẩy để kết hợp các phạm vi.
- Phạm vi mặc định `"1-z"` xoay tất cả các trang.
+79
View File
@@ -0,0 +1,79 @@
---
description: "Đóng dấu các hình ảnh chữ ký được tải lên lên một PDF bằng các vị trí trang được chuẩn hóa."
i18n_source_hash: c28f78c2e7fd
i18n_provenance: human
i18n_output_hash: 11eaf0d4b6aa
---
# Sign PDF {#sign-pdf}
Đóng dấu một hoặc nhiều hình ảnh chữ ký PNG được tải lên lên bất kỳ trang nào của một PDF. Tuyến này dùng một hợp đồng multipart tùy chỉnh vì nó cần PDF, một hoặc nhiều hình ảnh chữ ký, và tọa độ vị trí.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/sign-pdf`
Chấp nhận dữ liệu biểu mẫu multipart. PDF được gửi dưới dạng `file`; chữ ký được gửi dưới dạng `sig0`, `sig1`, và cứ thế; vị trí được gửi trong một trường JSON `placements`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| file | file | Có | - | Tệp PDF cần ký |
| sig0 | file | Có | - | Hình ảnh chữ ký đầu tiên. Các hình ảnh bổ sung dùng `sig1`, `sig2`, và cứ thế |
| placements | JSON string | Có | - | Mảng các đối tượng vị trí: `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
| clientJobId | string | Không | - | UUID tùy chọn để theo dõi tiến độ qua SSE |
| fileId | string | Không | - | ID thư viện tệp tùy chọn để lưu kết quả đã ký thành một phiên bản mới |
## Placement Coordinates {#placement-coordinates}
| Trường | Kiểu | Mô tả |
|-------|------|-------------|
| sig | integer | Chỉ mục hình ảnh chữ ký. `0` ánh xạ tới `sig0` |
| page | integer | Chỉ mục trang PDF tính từ 0 |
| x | number | Vị trí trái theo tỷ lệ trang |
| y | number | Vị trí trên cùng theo tỷ lệ trang |
| w | number | Chiều rộng chữ ký theo tỷ lệ trang |
| h | number | Chiều cao chữ ký theo tỷ lệ trang |
Tọa độ dùng gốc trên-trái. Các giá trị có thể tràn nhẹ ra ngoài mép trang; trình kết xuất PDF cắt con dấu cuối cùng theo trang.
## Example Request {#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 {#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
}
```
Nếu yêu cầu không thể hoàn thành trong cửa sổ chờ đồng bộ, API trả về:
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
Kết nối tới `/api/v1/jobs/<jobId>/progress` và tải xuống kết quả khi công việc hoàn thành.
## Notes {#notes}
- Định dạng đầu vào PDF được chấp nhận: `.pdf`.
- Hình ảnh chữ ký phải là các tệp hình ảnh hợp lệ, thường là PNG có độ trong suốt.
- Chấp nhận tối đa 100 hình ảnh chữ ký và 100 vị trí.
- `sign-pdf` là một tuyến tùy chỉnh và không dùng trường JSON `settings` công cụ tiêu chuẩn.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Trích xuất các trang hoặc chia một PDF thành nhiều phần."
i18n_source_hash: 5c8d8041d219
i18n_provenance: human
i18n_output_hash: 7d1c45b9ffc5
---
# Split PDF {#split-pdf}
Trích xuất một phạm vi trang thành một PDF mới, hoặc chia một tài liệu thành các khối gồm N trang.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/split-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| mode | string | Không | `"range"` | Chế độ chia: `range` hoặc `every` |
| range | string | Khi mode là `range` | - | Phạm vi trang theo cú pháp qpdf, ví dụ `"1-5,8,10-z"` |
| everyN | integer | Khi mode là `every` | - | Chia thành các khối gồm N trang (1-500) |
## Example Request {#example-request}
Trích xuất các trang cụ thể:
```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"}'
```
Chia thành các khối gồm 10 trang:
```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 {#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 {#notes}
- Ở chế độ `range`, một PDF duy nhất chứa các trang đã chọn được trả về.
- Ở chế độ `every`, kết quả là một kho lưu trữ ZIP chứa các phần riêng lẻ.
- Phạm vi trang dùng cú pháp qpdf: `1-5` cho các trang 1 đến 5, `z` cho trang cuối cùng, và dấu phẩy để kết hợp các phạm vi (ví dụ `1-3,7,10-z`).
+48
View File
@@ -0,0 +1,48 @@
---
description: "Xóa bảo vệ bằng mật khẩu khỏi một PDF."
i18n_source_hash: 14f5165d185c
i18n_provenance: human
i18n_output_hash: 52883f2986e4
---
# Unlock PDF {#unlock-pdf}
Xóa bảo vệ bằng mật khẩu khỏi một PDF được mã hóa bằng cách cung cấp mật khẩu đúng.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/unlock-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| password | string | Có | - | Mật khẩu để giải mã PDF (1-256 ký tự) |
## Example Request {#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 {#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 {#notes}
- Phải cung cấp mật khẩu đúng; mật khẩu sai trả về lỗi 400.
- Cả mật khẩu người dùng hoặc mật khẩu chủ sở hữu đều dùng được để giải mã.
- Mật khẩu được che khỏi nhật ký kiểm toán.
+58
View File
@@ -0,0 +1,58 @@
---
description: "Thêm hình mờ văn bản vào mọi trang của một PDF."
i18n_source_hash: f1f7d8912fbd
i18n_provenance: human
i18n_output_hash: 50bec810750c
---
# Watermark PDF {#watermark-pdf}
Đóng dấu một hình mờ văn bản trên mọi trang của một PDF với vị trí, kích thước, độ mờ đục và góc xoay có thể cấu hình.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/watermark-pdf`
Chấp nhận dữ liệu biểu mẫu multipart với một tệp PDF và một trường JSON `settings`.
## Parameters {#parameters}
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|-----------|------|----------|---------|-------------|
| text | string | Có | - | Văn bản hình mờ (1-200 ký tự) |
| position | string | Không | `"c"` | Vị trí trên trang: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | Không | `48` | Cỡ chữ tính bằng điểm (6-72) |
| opacity | number | Không | `0.3` | Độ mờ đục của hình mờ (0.05-1) |
| rotation | number | Không | `45` | Góc xoay tính bằng độ (-180 đến 180) |
### Position Values {#position-values}
- `tl` trên-trái, `tc` trên-giữa, `tr` trên-phải
- `l` giữa-trái, `c` giữa, `r` giữa-phải
- `bl` dưới-trái, `bc` dưới-giữa, `br` dưới-phải
## Example Request {#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 {#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 {#notes}
- Hình mờ được kết xuất dưới dạng lớp phủ văn bản trên mỗi trang.
- Cùng một văn bản hình mờ, vị trí và kiểu dáng được áp dụng đồng nhất cho tất cả các trang.
- Dùng các giá trị độ mờ đục thấp hơn (0.1-0.3) cho các hình mờ tinh tế không che khuất nội dung.