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: fab69922eed7
---
# Booklet PDF {#booklet-pdf}
จัดวางหน้าสำหรับการพิมพ์สองหน้า เพื่อให้แผ่นที่พิมพ์สามารถพับเป็นหนังสือเล่มเล็กได้
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/booklet-pdf`
รับ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| perSheet | integer | No | `2` | หน้าต่อแผ่น: `2`, `4`, `6` หรือ `8` |
## Example 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}'
```
## 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": 2400000
}
```
## Notes {#notes}
- ค่าเริ่มต้น `perSheet: 2` จะวางสองหน้าเรียงข้างกันบนแต่ละแผ่น ซึ่งเป็นเลย์เอาต์หนังสือเล่มเล็กมาตรฐานสำหรับการพิมพ์สองหน้า
- หน้าว่างจะถูกเพิ่มโดยอัตโนมัติหากจำนวนหน้าทั้งหมดไม่เป็นจำนวนเท่าของขนาดแผ่น
- พิมพ์ผลลัพธ์แบบสองหน้าโดยเข้าเล่มขอบสั้น จากนั้นพับและเย็บ
+62
View File
@@ -0,0 +1,62 @@
---
description: "ลดขนาดไฟล์ PDF โดยการบีบอัดรูปภาพที่ฝังอยู่"
i18n_source_hash: a8bb0baaca25
i18n_provenance: human
i18n_output_hash: 2eabdfdf7f55
---
# Compress PDF {#compress-pdf}
ลดขนาดไฟล์ PDF ด้วยการลดความละเอียดของรูปภาพที่ฝังอยู่ เลือกได้ระหว่างแถบเลื่อนปรับคุณภาพหรือขนาดไฟล์เป้าหมาย
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/compress-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"quality"` | โหมดการบีบอัด: `quality` หรือ `targetSize` |
| quality | integer | No | `75` | คุณภาพการบีบอัด 1-100 (ค่ายิ่งสูง = บีบอัดน้อยลง) ใช้ในโหมด `quality` |
| targetSizeKb | number | No | - | ขนาดไฟล์เป้าหมายเป็นกิโลไบต์ ใช้ในโหมด `targetSize` |
## Example Request {#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 {#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}
- ในโหมด `quality` ค่ายิ่งต่ำจะได้ไฟล์ที่เล็กลงแต่รูปภาพเสื่อมคุณภาพมากขึ้น
- ในโหมด `targetSize` การค้นหาแบบไบนารีจะหาค่า DPI สูงสุดที่พอดีกับขนาดที่ต้องการ
- หากการบีบอัดจะทำให้ไฟล์ใหญ่ขึ้น ระบบจะคืนไบต์ต้นฉบับกลับมาโดยไม่เปลี่ยนแปลง
- เนื้อหาที่เป็นข้อความและเวกเตอร์จะไม่ได้รับผลกระทบ มีเพียงรูปภาพแรสเตอร์ที่ฝังอยู่เท่านั้นที่ถูกลดความละเอียด
+48
View File
@@ -0,0 +1,48 @@
---
description: "ครอปทุกหน้าของ PDF ด้วยระยะขอบที่เท่ากัน"
i18n_source_hash: ffa1a2cee08d
i18n_provenance: human
i18n_output_hash: cc4d0b14eb47
---
# Crop PDF {#crop-pdf}
ครอปทุกหน้าของ PDF โดยใช้ระยะขอบที่เท่ากัน ตัดเนื้อหาออกจากแต่ละขอบเท่า ๆ กัน
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/crop-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| margin | number | No | `20` | ระยะขอบครอปที่เท่ากันเป็นพอยต์ (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}
- ค่าระยะขอบมีหน่วยเป็นพอยต์ของ PDF (1 พอยต์ = 1/72 นิ้ว)
- ระยะขอบเดียวกันจะถูกใช้กับทั้งสี่ขอบของทุกหน้า
- ระยะขอบเท่ากับ `0` จะลบระยะขอบครอปเดิมทั้งหมด แสดงกล่องสื่อ (media box) เต็มขนาด
+47
View File
@@ -0,0 +1,47 @@
---
description: "ดึงหน้าที่เลือกจาก PDF ออกมาเป็นเอกสารใหม่"
i18n_source_hash: e4a8fad31e0f
i18n_provenance: human
i18n_output_hash: 5ae48ad821df
---
# Extract Pages {#extract-pages}
ดึงหน้าที่เลือกจาก PDF ออกมาเป็นเอกสารใหม่ที่เล็กลง
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/extract-pages`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| range | string | Yes | - | ช่วงหน้าตามไวยากรณ์ qpdf เช่น `"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}
- ช่วงหน้าใช้ไวยากรณ์ 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: 68690309ce17
---
# Flatten PDF {#flatten-pdf}
ฝังฟิลด์ฟอร์มแบบโต้ตอบและคำอธิบายประกอบลงในเนื้อหาหน้า สร้าง PDF แบบคงที่ที่แสดงผลเหมือนกันทุกที่
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/flatten-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์ที่ปรับได้ อัปโหลด PDF แล้วฟอร์มและคำอธิบายประกอบทั้งหมดจะถูกฝังลงไป
## 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}
- รูปแบบอินพุตที่รองรับ: `.pdf`
- นี่เป็นเครื่องมือแบบเร็ว (ซิงโครนัส) ที่คืนผลลัพธ์โดยตรง
- ค่าฟิลด์ฟอร์มจะถูกเก็บไว้เป็นข้อความคงที่ในผลลัพธ์
- คำอธิบายประกอบ (ความคิดเห็น การไฮไลต์ โน้ตแปะ) จะกลายเป็นส่วนหนึ่งของเนื้อหาหน้าและไม่สามารถแก้ไขได้อีกต่อไป
+44
View File
@@ -0,0 +1,44 @@
---
description: "แปลงสีทั้งหมดใน PDF ให้เป็นโทนสีเทา"
i18n_source_hash: f327addb32d6
i18n_provenance: human
i18n_output_hash: 065162d2ee42
---
# Grayscale PDF {#grayscale-pdf}
แปลงสีทั้งหมดใน PDF ให้เป็นโทนสีเทา สร้างเอกสารเวอร์ชันขาวดำ
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/grayscale-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF ไม่จำเป็นต้องมีฟิลด์ `settings`
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์การตั้งค่า อัปโหลดไฟล์ PDF ได้โดยตรง
## 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}
- พื้นที่สีทั้งหมด (RGB, CMYK) จะถูกแปลงเป็นโทนสีเทา รวมถึงรูปภาพที่ฝังอยู่ กราฟิกเวกเตอร์ และข้อความ
- ไฟล์ผลลัพธ์มักจะเล็กกว่าต้นฉบับ เนื่องจากข้อมูลโทนสีเทาต้องการจำนวนไบต์ต่อพิกเซลน้อยกว่า
+45
View File
@@ -0,0 +1,45 @@
---
description: "ปรับ PDF ให้เป็นเชิงเส้นเพื่อการดูบนเว็บอย่างรวดเร็ว (การดาวน์โหลดแบบต่อเนื่อง)"
i18n_source_hash: 36280b478161
i18n_provenance: human
i18n_output_hash: 5341fd46ef0b
---
# Web-Optimize PDF {#web-optimize-pdf}
ปรับ PDF ให้เป็นเชิงเส้นเพื่อให้สามารถดาวน์โหลดและแสดงผลแบบต่อเนื่องในเว็บเบราว์เซอร์ได้โดยไม่ต้องรอไฟล์ทั้งหมด
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/linearize-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF ไม่จำเป็นต้องมีฟิลด์ `settings`
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์การตั้งค่า อัปโหลดไฟล์ PDF ได้โดยตรง
## 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}
- การปรับเป็นเชิงเส้นจะจัดเรียงโครงสร้างภายในของ PDF ใหม่ เพื่อให้หน้าแรกแสดงผลได้ก่อนที่ไฟล์ทั้งหมดจะดาวน์โหลดเสร็จ
- ไฟล์ผลลัพธ์อาจมีขนาดใหญ่กว่าอินพุตเล็กน้อย เนื่องจากมีข้อมูลการปรับเป็นเชิงเส้นเพิ่มเข้ามา
- PDF ที่ปรับเป็นเชิงเส้นแล้วสามารถปรับซ้ำได้โดยไม่มีปัญหา
+53
View File
@@ -0,0 +1,53 @@
---
description: "รวมไฟล์ PDF หลายไฟล์เป็นเอกสารเดียว"
i18n_source_hash: e82e389cb8b6
i18n_provenance: human
i18n_output_hash: a6d1017d486e
---
# Merge PDFs {#merge-pdfs}
รวมไฟล์ PDF สองไฟล์ขึ้นไปเป็นเอกสารเดียว โดยคงลำดับหน้าของแต่ละไฟล์อินพุตไว้
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/merge-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF สองไฟล์ขึ้นไป ไม่จำเป็นต้องมีฟิลด์ `settings`
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์การตั้งค่า เพียงแค่อัปโหลดไฟล์ PDF สองไฟล์ขึ้นไป
| Constraint | Value |
|------------|-------|
| จำนวนไฟล์ขั้นต่ำ | 2 |
| จำนวนไฟล์สูงสุด | 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}
- ไฟล์จะถูกรวมตามลำดับที่อัปโหลด
- ต้องมีไฟล์ PDF อย่างน้อยสองไฟล์ คำขอจะล้มเหลวด้วยข้อผิดพลาด 400 หากมีน้อยกว่านั้น
- จำนวนไฟล์อินพุตสูงสุดคือ 20 ไฟล์
- PDF ที่เข้ารหัสต้องปลดล็อกก่อนรวม
+48
View File
@@ -0,0 +1,48 @@
---
description: "จัดหน้า PDF หลายหน้าต่อแผ่น (2-up, 4-up และอื่น ๆ)"
i18n_source_hash: 9dd82737cb72
i18n_provenance: human
i18n_output_hash: 42ffd479de9c
---
# N-up PDF {#n-up-pdf}
จัดหลายหน้าต่อแผ่นเพื่อประหยัดกระดาษเมื่อพิมพ์ เช่น เค้าโครง 2-up หรือ 4-up
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/nup-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| perSheet | integer | No | `2` | หน้าต่อแผ่น: `2`, `3`, `4`, `8`, `9`, `12` หรือ `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}
- หน้าจะถูกจัดเรียงตามลำดับการอ่าน (ซ้ายไปขวา บนลงล่าง)
- ขนาดหน้าผลลัพธ์จะตรงกับต้นฉบับ แต่ละหน้าจะถูกย่อลงเพื่อให้พอดีกับกริด
- เอกสาร 20 หน้าที่ใช้ `perSheet: 4` จะให้ผลลัพธ์ 5 หน้า
+53
View File
@@ -0,0 +1,53 @@
---
description: "ดึงข้อความจากเอกสาร PDF โดยใช้ OCR ที่ขับเคลื่อนด้วย AI"
i18n_source_hash: 1431fcba180b
i18n_provenance: human
i18n_output_hash: 9d356e97ca1f
---
# PDF OCR {#pdf-ocr}
ดึงข้อความจากเอกสาร PDF โดยใช้การรู้จำอักขระด้วยแสง (OCR) ที่ขับเคลื่อนด้วย AI รองรับหลายระดับคุณภาพและหลายภาษา ต้องติดตั้งชุดฟีเจอร์ OCR
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/ocr-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings` ที่ไม่บังคับ
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| quality | string | No | `"balanced"` | ระดับคุณภาพ OCR: `fast`, `balanced`, `best` |
| language | string | No | `"auto"` | ภาษาของเอกสาร: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
| pages | string | No | `"all"` | การเลือกหน้า เช่น `"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}
คืนค่า `202 Accepted` ติดตามความคืบหน้าผ่าน SSE ที่ `/api/v1/jobs/{jobId}/progress`
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- รูปแบบอินพุตที่รองรับ: `.pdf`
- นี่เป็นเครื่องมือ AI ที่ต้องติดตั้ง **ชุดฟีเจอร์ OCR** หากยังไม่ได้ติดตั้งชุดฟีเจอร์ API จะคืนค่า `501 Not Implemented`
- ระดับคุณภาพ `fast` ใช้โมเดลที่เบากว่าเพื่อการประมวลผลที่เร็วขึ้น ส่วน `best` ใช้โมเดลที่แม่นยำกว่าโดยแลกกับความเร็ว
- การตั้งค่าภาษา `auto` จะพยายามตรวจจับภาษาของเอกสารโดยอัตโนมัติ
- คุณสามารถเจาะจงหน้าเฉพาะได้โดยใช้ช่วง (`"1-3"`), รายการคั่นด้วยจุลภาค (`"1,3,5"`) หรือ `"all"` สำหรับทุกหน้า
- สำหรับ PDF ที่มีข้อความที่เลือกได้อยู่แล้ว ให้พิจารณาใช้เครื่องมือ [PDF to Text](./pdf-to-text) ที่เร็วกว่าแทน
+48
View File
@@ -0,0 +1,48 @@
---
description: "จัดเรียงลำดับหน้าใน PDF ด้วยลำดับหน้าที่ระบุชัดเจน"
i18n_source_hash: e961fc895b4b
i18n_provenance: human
i18n_output_hash: edbc73ec05f3
---
# Organize PDF {#organize-pdf}
จัดเรียงลำดับหน้าใน PDF โดยระบุลำดับหน้าที่ต้องการ
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/organize-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| order | string | Yes | - | ลำดับหน้าที่ต้องการตามไวยากรณ์ qpdf เช่น `"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}
- ช่วงหน้าใช้ไวยากรณ์ 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: 40a82be7c020
---
# PDF Metadata {#pdf-metadata}
อ่านและอัปเดตฟิลด์เมทาดาทาของเอกสาร PDF เช่น ชื่อเรื่อง ผู้เขียน หัวเรื่อง และคำสำคัญ เมื่อไม่ได้ระบุการตั้งค่า ระบบจะคืนเมทาดาทาที่มีอยู่โดยไม่แก้ไข
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-metadata`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings` ที่ไม่บังคับ
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| title | string | No | - | ชื่อเรื่องเอกสาร (สูงสุด 500 อักขระ) |
| author | string | No | - | ผู้เขียนเอกสาร (สูงสุด 500 อักขระ) |
| subject | string | No | - | หัวเรื่องเอกสาร (สูงสุด 500 อักขระ) |
| keywords | string | No | - | คำสำคัญของเอกสาร (สูงสุด 500 อักขระ) |
พารามิเตอร์ทั้งหมดไม่บังคับ ฟิลด์ที่ละเว้นจะคงเดิมไม่เปลี่ยนแปลง
## 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}
- รูปแบบอินพุตที่รองรับ: `.pdf`
- นี่เป็นเครื่องมือแบบเร็ว (ซิงโครนัส) ที่คืนผลลัพธ์โดยตรง
- ฟิลด์ `metadata` ในการตอบกลับจะมีเมทาดาทาที่ได้หลังจากอัปเดตใด ๆ
- หากต้องการอ่านเมทาดาทาโดยไม่แก้ไข ให้ละเว้นฟิลด์ `settings` หรือส่งอ็อบเจกต์ว่าง
- แต่ละฟิลด์เมทาดาทาจำกัดไว้ที่ 500 อักขระ
@@ -0,0 +1,54 @@
---
description: "เพิ่มหมายเลขหน้าลงในทุกหน้าของ PDF"
i18n_source_hash: 58342d6ac8d2
i18n_provenance: human
i18n_output_hash: 11f7faf6e35d
---
# PDF Page Numbers {#pdf-page-numbers}
เพิ่มหมายเลขหน้าแบบ "Page N of M" ลงในทุกหน้าของ PDF
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-page-numbers`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| position | string | No | `"bc"` | ตำแหน่งวางหมายเลขหน้า: `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
| fontSize | integer | No | `10` | ขนาดฟอนต์เป็นพอยต์ (6-24) |
### Position Values {#position-values}
- `tl` บนซ้าย, `tc` บนกลาง, `tr` บนขวา
- `bl` ล่างซ้าย, `bc` ล่างกลาง, `br` ล่างขวา
## 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}
- หมายเลขหน้าจะแสดงผลในรูปแบบ "Page 1 of 10"
- หมายเลขจะถูกเพิ่มลงในทุกหน้า รวมถึงหน้าชื่อเรื่องหรือหน้าปกที่มีอยู่
- ตำแหน่งเริ่มต้น `"bc"` วางหมายเลขไว้ที่กึ่งกลางด้านล่างของแต่ละหน้า
+133
View File
@@ -0,0 +1,133 @@
---
description: "แปลงหน้า PDF เป็นรูปภาพคุณภาพสูง"
i18n_source_hash: 1c36be5dadb8
i18n_provenance: human
i18n_output_hash: 215e1cab2cdc
---
# PDF to Image {#pdf-to-image}
แปลงหน้า PDF เป็นรูปภาพแรสเตอร์คุณภาพสูง รองรับการเลือกหน้า หลายรูปแบบผลลัพธ์ การควบคุม DPI และโหมดสี รวมถึงเส้นทางย่อยสำหรับดูข้อมูลและตัวอย่างเพื่อตรวจสอบ PDF ก่อนการแปลง
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-image`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"png"` | รูปแบบผลลัพธ์: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
| dpi | number | No | 150 | ความละเอียดการเรนเดอร์ (36 ถึง 2400) DPI ที่สูงขึ้นจะให้รูปภาพที่ใหญ่ขึ้นและมีรายละเอียดมากขึ้น |
| quality | number | No | 85 | คุณภาพผลลัพธ์สำหรับรูปแบบที่สูญเสียข้อมูล (1 ถึง 100) |
| colorMode | string | No | `"color"` | โหมดสี: `color`, `grayscale`, `bw` (เกณฑ์ขาวดำ) |
| pages | string | No | `"all"` | การเลือกหน้า: `all`, หน้าเดียว (`3`), ช่วง (`1-5`) หรือคั่นด้วยจุลภาค (`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`
คืนจำนวนหน้าของ PDF โดยไม่เรนเดอร์หน้าใด ๆ
### 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`
คืนภาพขนาดย่อ JPEG ความละเอียดต่ำของทุกหน้าเป็น base64 data URL มีประโยชน์ในการสร้าง UI สำหรับเลือกหน้า
### 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}
- ใช้ MuPDF ในการเรนเดอร์ PDF ให้ผลลัพธ์คุณภาพสูงพร้อมการเรนเดอร์ฟอนต์และกราฟิกเวกเตอร์ที่ถูกต้อง
- PDF ที่ป้องกันด้วยรหัสผ่านไม่รองรับและจะคืนข้อผิดพลาด 400
- พารามิเตอร์ `pages` รองรับไวยากรณ์ที่ยืดหยุ่น:
- `"all"` หรือ `""` - ทุกหน้า
- `"3"` - หน้าเดียว
- `"1-5"` - ช่วงหน้า (รวมปลายทั้งสอง)
- `"1,3,5-8"` - ผสมหน้าเดี่ยวและช่วง
- หมายเลขหน้าเริ่มนับจาก 1 การระบุหน้าเกินความยาวของเอกสารจะคืนข้อผิดพลาด 400
- เอนด์พอยต์หลักจะสร้างทั้งการดาวน์โหลดหน้าแต่ละหน้าและไฟล์ ZIP ที่มีทุกหน้าที่เลือกเสมอ
- เอนด์พอยต์ตัวอย่างจะเรนเดอร์ที่ 72 DPI และปรับขนาดเป็นความกว้าง 300px เพื่อสร้างภาพขนาดย่ออย่างรวดเร็ว ภาพขนาดย่อเป็น JPEG ที่คุณภาพ 60%
- เอนด์พอยต์ตัวอย่างจะเคารพการกำหนดค่าเซิร์ฟเวอร์ `MAX_PDF_PAGES` ซึ่งจำกัดจำนวนภาพขนาดย่อที่สร้างขึ้น
- สำหรับเอกสารขนาดใหญ่ที่ DPI สูง เวลาประมวลผลจะเพิ่มขึ้นตามสัดส่วน พิจารณาใช้ DPI ต่ำ (150) สำหรับใช้งานบนเว็บ และ DPI สูง (300-600) สำหรับงานพิมพ์
+47
View File
@@ -0,0 +1,47 @@
---
description: "ดึงข้อความธรรมดาจาก PDF"
i18n_source_hash: 15a7bc1cdf8f
i18n_provenance: human
i18n_output_hash: 464472629bcf
---
# PDF to Text {#pdf-to-text}
ดึงข้อความธรรมดาที่อ่านได้ทั้งหมดจากเอกสาร PDF ไปยังไฟล์ข้อความ
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-text`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์ที่ปรับได้ อัปโหลด PDF แล้วเนื้อหาข้อความจะถูกดึงออกมา
## 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}
- รูปแบบอินพุตที่รองรับ: `.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: 8decc178a180
---
# PDF to Word {#pdf-to-word}
แปลง PDF ที่เป็นข้อความให้เป็นเอกสาร Word (DOCX) เหมาะที่สุดสำหรับ PDF ที่มีข้อความที่เลือกได้ ส่วนหน้าที่สแกนมาจะต้องใช้ OCR ก่อน
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-word`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์ที่ปรับได้ อัปโหลด PDF แล้วจะถูกแปลงเป็น 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}
คืนค่า `202 Accepted` ติดตามความคืบหน้าผ่าน SSE ที่ `/api/v1/jobs/{jobId}/progress`
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- รูปแบบอินพุตที่รองรับ: `.pdf`
- ทำงานได้ดีที่สุดกับ PDF ที่เป็นข้อความ หน้าที่สแกนหรือเป็นรูปภาพล้วนจะให้ผลลัพธ์ว่างเปล่าหรือน้อยมาก ใช้ [PDF OCR](./ocr-pdf) เพื่อเพิ่มชั้นข้อความก่อน
- การแปลงจัดการโดย LibreOffice ที่ทำงานแบบ headless บนเซิร์ฟเวอร์
- เค้าโครงที่ซับซ้อน (หลายคอลัมน์ องค์ประกอบซ้อนทับกัน) อาจแปลงได้ไม่สมบูรณ์แบบ
+45
View File
@@ -0,0 +1,45 @@
---
description: "แปลง PDF เป็นรูปแบบเก็บถาวร PDF/A-2 เพื่อการเก็บรักษาระยะยาว"
i18n_source_hash: 4c6bf7a12e84
i18n_provenance: human
i18n_output_hash: 937598e2fa49
---
# PDF/A Convert {#pdf-a-convert}
แปลง PDF เป็นรูปแบบเก็บถาวร PDF/A-2 ซึ่งเหมาะสำหรับการเก็บรักษาระยะยาวและการปฏิบัติตามข้อกำหนดด้านกฎระเบียบ
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdfa-convert`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF ไม่จำเป็นต้องมีฟิลด์ `settings`
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์การตั้งค่า อัปโหลดไฟล์ PDF ได้โดยตรง
## 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}
- ผลลัพธ์เป็นไปตามมาตรฐาน PDF/A-2
- PDF/A ฝังฟอนต์ทั้งหมดและไม่อนุญาตการอ้างอิงภายนอก ดังนั้นไฟล์ผลลัพธ์อาจมีขนาดใหญ่กว่าต้นฉบับ
- การเข้ารหัสและ JavaScript จะถูกลบออกระหว่างการแปลง เนื่องจากมาตรฐาน PDF/A ไม่อนุญาต
+50
View File
@@ -0,0 +1,50 @@
---
description: "เพิ่มการป้องกันด้วยรหัสผ่านพร้อมการเข้ารหัส AES-256 ให้กับ PDF"
i18n_source_hash: 869cfbc739ef
i18n_provenance: human
i18n_output_hash: 61cf1be4ea2b
---
# Protect PDF {#protect-pdf}
เพิ่มการป้องกันด้วยรหัสผ่านให้กับ PDF โดยใช้การเข้ารหัส AES-256
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/protect-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| userPassword | string | Yes | - | รหัสผ่านที่ต้องใช้ในการเปิด PDF (1-256 อักขระ) |
| ownerPassword | string | No | เหมือนกับ `userPassword` | รหัสผ่านเจ้าของสำหรับสิทธิ์ (1-256 อักขระ) |
## 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}
- การเข้ารหัสใช้ AES-256
- หากละเว้น `ownerPassword` ค่าเริ่มต้นจะเป็นค่าเดียวกับ `userPassword`
- รหัสผ่านจะถูกปิดบังจากบันทึกการตรวจสอบ
- PDF ที่เข้ารหัสต้องใช้รหัสผ่านผู้ใช้ในการเปิด และรหัสผ่านเจ้าของ (หากต่างกัน) สำหรับสิทธิ์เต็ม
+52
View File
@@ -0,0 +1,52 @@
---
description: "ลบข้อความที่พบใน PDF อย่างถาวร (การลบข้อมูลจริงที่ตรวจสอบได้)"
i18n_source_hash: 296ad2a701b2
i18n_provenance: human
i18n_output_hash: 40bf7d3853af
---
# Redact PDF {#redact-pdf}
ลบข้อความที่ระบุออกจาก PDF อย่างถาวรโดยใช้การลบข้อมูลจริงที่ตรวจสอบได้ ข้อความที่ลบจะถูกนำออกจากไฟล์อย่างสมบูรณ์ ไม่ใช่แค่ปิดทับด้วยกล่องสีดำ
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/redact-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| terms | string[] | Yes | - | สตริงข้อความที่จะลบ (1-50 รายการ แต่ละรายการสูงสุด 200 อักขระ) |
| caseSensitive | boolean | No | `false` | การจับคู่คำนึงถึงตัวพิมพ์ใหญ่-เล็กหรือไม่ |
## 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}
- รูปแบบอินพุตที่รองรับ: `.pdf`
- นี่เป็นเครื่องมือแบบเร็ว (ซิงโครนัส) ที่คืนผลลัพธ์โดยตรง
- นี่คือการลบข้อมูลจริง: ข้อความที่ตรงกันจะถูกนำออกจากสตรีมเนื้อหา PDF ไม่ใช่แค่ปิดบังทางสายตาเท่านั้น
- ฟิลด์ `found` ในการตอบกลับจะระบุว่ามีข้อความกี่รายการที่ถูกลบ
- คุณสามารถลบข้อความได้สูงสุด 50 รายการในคำขอเดียว
+47
View File
@@ -0,0 +1,47 @@
---
description: "ลบหน้าเฉพาะออกจาก PDF"
i18n_source_hash: 003e460a047c
i18n_provenance: human
i18n_output_hash: 2bec6fc8fbd1
---
# Remove Pages {#remove-pages}
ลบหน้าเฉพาะออกจาก PDF โดยคงหน้าที่เหลือทั้งหมดไว้ครบถ้วน
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/remove-pages`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| pages | string | Yes | - | ช่วงหน้าที่จะลบตามไวยากรณ์ qpdf เช่น `"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}
- คุณไม่สามารถลบทุกหน้าออกจากเอกสารได้ ต้องเหลืออย่างน้อยหนึ่งหน้า
- ช่วงหน้าใช้ไวยากรณ์ 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: d739f1435af2
---
# Repair PDF {#repair-pdf}
พยายามซ่อมแซม PDF ที่เสียหายหรือชำรุดโดยการสร้างโครงสร้างภายในขึ้นใหม่
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/repair-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF ไม่จำเป็นต้องมีฟิลด์ `settings`
## Parameters {#parameters}
เครื่องมือนี้ไม่มีพารามิเตอร์การตั้งค่า อัปโหลดไฟล์ PDF ที่เสียหายได้โดยตรง
## 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}
- การตรวจสอบความถูกต้องของโครงสร้างจะถูกข้ามในอินพุต เพื่อให้ไฟล์ที่ผิดรูปแบบผ่านเข้ามาได้
- การซ่อมแซมเป็นแบบพยายามให้ดีที่สุด ไฟล์ที่เสียหายรุนแรงอาจกู้คืนได้ไม่สมบูรณ์
- PDF ที่ซ่อมแซมแล้วอาจมีขนาดแตกต่างจากต้นฉบับเล็กน้อยเนื่องจากตารางอ้างอิงข้ามที่สร้างขึ้นใหม่
+49
View File
@@ -0,0 +1,49 @@
---
description: "หมุนหน้าใน PDF ไป 90, 180 หรือ 270 องศา"
i18n_source_hash: cc2acd091427
i18n_provenance: human
i18n_output_hash: ca7e9e0cde07
---
# Rotate PDF {#rotate-pdf}
หมุนทุกหน้าหรือหน้าที่เลือกใน PDF ไปตามมุมที่ระบุ
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/rotate-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| angle | integer | No | `90` | มุมการหมุน: `90`, `180` หรือ `270` |
| range | string | No | `"1-z"` | ช่วงหน้าตามไวยากรณ์ qpdf เช่น `"1-5,8"` (`"1-z"` = ทุกหน้า) |
## 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}
- การหมุนเป็นแบบตามเข็มนาฬิกา
- ช่วงหน้าใช้ไวยากรณ์ 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: f2ec8fd8d328
---
# Sign PDF {#sign-pdf}
ประทับรูปภาพลายเซ็น PNG ที่อัปโหลดหนึ่งภาพขึ้นไปลงบนหน้าใดก็ได้ของ PDF เส้นทางนี้ใช้สัญญา multipart แบบกำหนดเอง เพราะต้องการทั้ง PDF, รูปภาพลายเซ็นหนึ่งภาพขึ้นไป และพิกัดการวางตำแหน่ง
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/sign-pdf`
รับข้อมูลแบบ multipart form data โดย PDF ถูกส่งมาเป็น `file` ลายเซ็นถูกส่งมาเป็น `sig0`, `sig1` และอื่น ๆ ต่อไป ส่วนตำแหน่งวางถูกส่งมาในฟิลด์ JSON `placements`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| file | file | Yes | - | ไฟล์ PDF ที่จะเซ็น |
| sig0 | file | Yes | - | รูปภาพลายเซ็นแรก รูปภาพเพิ่มเติมใช้ `sig1`, `sig2` และอื่น ๆ ต่อไป |
| placements | JSON string | Yes | - | อาร์เรย์ของอ็อบเจกต์การวางตำแหน่ง: `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
| clientJobId | string | No | - | UUID ที่ไม่บังคับสำหรับติดตามความคืบหน้าผ่าน SSE |
| fileId | string | No | - | ID คลังไฟล์ที่ไม่บังคับ เพื่อบันทึกผลลัพธ์ที่เซ็นแล้วเป็นเวอร์ชันใหม่ |
## Placement Coordinates {#placement-coordinates}
| Field | Type | Description |
|-------|------|-------------|
| sig | integer | ดัชนีรูปภาพลายเซ็น `0` แมปกับ `sig0` |
| page | integer | ดัชนีหน้า PDF เริ่มนับจากศูนย์ |
| x | number | ตำแหน่งซ้ายเป็นสัดส่วนของหน้า |
| y | number | ตำแหน่งบนเป็นสัดส่วนของหน้า |
| w | number | ความกว้างของลายเซ็นเป็นสัดส่วนของหน้า |
| h | number | ความสูงของลายเซ็นเป็นสัดส่วนของหน้า |
พิกัดใช้จุดกำเนิดที่มุมบนซ้าย ค่าอาจล้นออกไปนอกขอบหน้าเล็กน้อย ตัวเรนเดอร์ PDF จะตัดตราประทับสุดท้ายให้พอดีกับหน้า
## 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
}
```
หากคำขอไม่สามารถเสร็จสิ้นภายในหน้าต่างการรอแบบซิงโครนัส API จะคืนค่า:
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
เชื่อมต่อกับ `/api/v1/jobs/<jobId>/progress` และดาวน์โหลดผลลัพธ์เมื่องานเสร็จสมบูรณ์
## Notes {#notes}
- รูปแบบอินพุต PDF ที่รองรับ: `.pdf`
- รูปภาพลายเซ็นต้องเป็นไฟล์รูปภาพที่ถูกต้อง โดยทั่วไปคือ PNG ที่มีความโปร่งใส
- รับรูปภาพลายเซ็นได้สูงสุด 100 ภาพและตำแหน่งวางได้สูงสุด 100 ตำแหน่ง
- `sign-pdf` เป็นเส้นทางแบบกำหนดเองและไม่ใช้ฟิลด์ JSON `settings` มาตรฐานของเครื่องมือ
+61
View File
@@ -0,0 +1,61 @@
---
description: "ดึงหน้าออกมาหรือแยก PDF เป็นส่วน ๆ"
i18n_source_hash: 5c8d8041d219
i18n_provenance: human
i18n_output_hash: 7b66e9d389a6
---
# Split PDF {#split-pdf}
ดึงช่วงหน้าออกมาเป็น PDF ใหม่ หรือแยกเอกสารเป็นกลุ่มละ N หน้า
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/split-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"range"` | โหมดการแยก: `range` หรือ `every` |
| range | string | เมื่อ mode เป็น `range` | - | ช่วงหน้าตามไวยากรณ์ qpdf เช่น `"1-5,8,10-z"` |
| everyN | integer | เมื่อ mode เป็น `every` | - | แยกเป็นกลุ่มละ N หน้า (1-500) |
## Example Request {#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 {#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}
- ในโหมด `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: 9956bfadb948
---
# Unlock PDF {#unlock-pdf}
ลบการป้องกันด้วยรหัสผ่านออกจาก PDF ที่เข้ารหัสโดยการระบุรหัสผ่านที่ถูกต้อง
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/unlock-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| password | string | Yes | - | รหัสผ่านสำหรับถอดรหัส PDF (1-256 อักขระ) |
## 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}
- ต้องระบุรหัสผ่านที่ถูกต้อง รหัสผ่านที่ไม่ถูกต้องจะคืนข้อผิดพลาด 400
- ทั้งรหัสผ่านผู้ใช้หรือรหัสผ่านเจ้าของสามารถใช้ในการถอดรหัสได้
- รหัสผ่านจะถูกปิดบังจากบันทึกการตรวจสอบ
+58
View File
@@ -0,0 +1,58 @@
---
description: "เพิ่มลายน้ำข้อความลงในทุกหน้าของ PDF"
i18n_source_hash: f1f7d8912fbd
i18n_provenance: human
i18n_output_hash: 5b507d9193ec
---
# Watermark PDF {#watermark-pdf}
ประทับลายน้ำข้อความลงบนทุกหน้าของ PDF โดยปรับตำแหน่ง ขนาด ความทึบ และการหมุนได้
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/watermark-pdf`
รับข้อมูลแบบ multipart form data พร้อมไฟล์ PDF และฟิลด์ JSON `settings`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| text | string | Yes | - | ข้อความลายน้ำ (1-200 อักขระ) |
| position | string | No | `"c"` | ตำแหน่งบนหน้า: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | No | `48` | ขนาดฟอนต์เป็นพอยต์ (6-72) |
| opacity | number | No | `0.3` | ความทึบของลายน้ำ (0.05-1) |
| rotation | number | No | `45` | มุมการหมุนเป็นองศา (-180 ถึง 180) |
### Position Values {#position-values}
- `tl` บนซ้าย, `tc` บนกลาง, `tr` บนขวา
- `l` กลางซ้าย, `c` กึ่งกลาง, `r` กลางขวา
- `bl` ล่างซ้าย, `bc` ล่างกลาง, `br` ล่างขวา
## 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}
- ลายน้ำจะถูกเรนเดอร์เป็นข้อความซ้อนทับบนแต่ละหน้า
- ข้อความลายน้ำ ตำแหน่ง และรูปแบบเดียวกันจะถูกใช้กับทุกหน้าอย่างสม่ำเสมอ
- ใช้ค่าความทึบต่ำ (0.1-0.3) สำหรับลายน้ำแบบจาง ๆ ที่ไม่บดบังเนื้อหา