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: "Menyusun halaman PDF untuk dilipat menjadi buklet."
i18n_source_hash: 8844b6d4fe96
i18n_provenance: human
i18n_output_hash: f8d7e1a5e2f7
---
# Booklet PDF {#booklet-pdf}
Menyusun halaman untuk pencetakan dupleks sehingga lembar yang tercetak dapat dilipat menjadi buklet.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/booklet-pdf`
Menerima data formulir multipart dengan sebuah file PDF dan field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| perSheet | integer | No | `2` | Halaman per lembar: `2`, `4`, `6`, atau `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}
- Default `perSheet: 2` menempatkan dua halaman berdampingan pada setiap lembar, yang merupakan tata letak buklet standar untuk pencetakan dupleks.
- Halaman kosong ditambahkan secara otomatis jika jumlah total halaman bukan kelipatan dari ukuran lembar.
- Cetak keluaran secara dua sisi pada penjilidan tepi-pendek, lalu lipat dan staples.
+62
View File
@@ -0,0 +1,62 @@
---
description: "Perkecil ukuran file PDF dengan mengompresi gambar yang tertanam."
i18n_source_hash: a8bb0baaca25
i18n_provenance: human
i18n_output_hash: 3e03cf496906
---
# Compress PDF {#compress-pdf}
Kurangi ukuran file PDF dengan menurunkan resolusi gambar yang tertanam. Pilih antara penggeser kualitas atau ukuran file target.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/compress-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"quality"` | Mode kompresi: `quality` atau `targetSize` |
| quality | integer | No | `75` | Kualitas kompresi, 1-100 (lebih tinggi = kompresi lebih sedikit). Digunakan dalam mode `quality` |
| targetSizeKb | number | No | - | Ukuran file target dalam kilobyte. Digunakan dalam mode `targetSize` |
## Example Request {#example-request}
Kompresi berdasarkan kualitas:
```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}'
```
Kompresi ke ukuran target:
```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}
- Dalam mode `quality`, nilai yang lebih rendah menghasilkan file yang lebih kecil dengan degradasi gambar yang lebih besar.
- Dalam mode `targetSize`, pencarian biner menemukan DPI tertinggi yang sesuai dengan ukuran yang diminta.
- Jika kompresi malah memperbesar file, byte asli dikembalikan tanpa perubahan.
- Konten teks dan vektor tidak terpengaruh; hanya gambar raster yang tertanam yang diturunkan resolusinya.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Pangkas semua halaman PDF dengan margin yang seragam."
i18n_source_hash: ffa1a2cee08d
i18n_provenance: human
i18n_output_hash: 5e53a4812439
---
# Crop PDF {#crop-pdf}
Pangkas semua halaman PDF dengan menerapkan margin yang seragam, memotong konten dari setiap tepi secara merata.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/crop-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| margin | number | No | `20` | Margin pemangkasan seragam dalam poin (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}
- Nilai margin dinyatakan dalam poin PDF (1 poin = 1/72 inci).
- Margin yang sama diterapkan ke keempat tepi setiap halaman.
- Margin sebesar `0` menghapus semua margin pemangkasan yang ada, menampilkan seluruh media box.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Ambil halaman yang dipilih dari PDF ke dalam dokumen baru."
i18n_source_hash: e4a8fad31e0f
i18n_provenance: human
i18n_output_hash: 1f57b82ca534
---
# Extract Pages {#extract-pages}
Ambil halaman yang dipilih dari PDF ke dalam dokumen baru yang lebih kecil.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/extract-pages`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| range | string | Yes | - | Rentang halaman dalam sintaks qpdf, mis. `"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}
- Rentang halaman menggunakan sintaks qpdf: `1-5` untuk halaman 1 sampai 5, `z` untuk halaman terakhir, dan koma untuk menggabungkan rentang (mis. `1-3,7,10-z`).
- Halaman yang diekstrak mempertahankan format, anotasi, dan tautan aslinya.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Satukan form dan anotasi ke dalam konten halaman."
i18n_source_hash: b25c2a2b6f40
i18n_provenance: human
i18n_output_hash: 16c40c9b3a4c
---
# Flatten PDF {#flatten-pdf}
Satukan field form interaktif dan anotasi ke dalam konten halaman, menghasilkan PDF statis yang tampil sama di mana pun.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/flatten-pdf`
Menerima data form multipart berisi file PDF.
## Parameters {#parameters}
Alat ini tidak memiliki parameter yang dapat dikonfigurasi. Unggah PDF dan semua form serta anotasi akan disatukan.
## 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}
- Format input yang diterima: `.pdf`.
- Ini adalah alat cepat (sinkron) yang mengembalikan hasil secara langsung.
- Nilai field form dipertahankan sebagai teks statis dalam output.
- Anotasi (komentar, sorotan, catatan tempel) menjadi bagian dari konten halaman dan tidak dapat diedit lagi.
+44
View File
@@ -0,0 +1,44 @@
---
description: "Konversi semua warna dalam PDF menjadi skala abu-abu."
i18n_source_hash: f327addb32d6
i18n_provenance: human
i18n_output_hash: 8a597c036b75
---
# Grayscale PDF {#grayscale-pdf}
Konversi semua warna dalam PDF menjadi skala abu-abu, menghasilkan versi hitam-putih dari dokumen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/grayscale-pdf`
Menerima data form multipart berisi file PDF. Tidak diperlukan field `settings`.
## Parameters {#parameters}
Alat ini tidak memiliki parameter pengaturan. Unggah file PDF secara langsung.
## 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}
- Semua ruang warna (RGB, CMYK) dikonversi menjadi skala abu-abu, termasuk gambar yang tertanam, grafik vektor, dan teks.
- File output sering kali lebih kecil dari aslinya karena data skala abu-abu membutuhkan lebih sedikit byte per piksel.
+45
View File
@@ -0,0 +1,45 @@
---
description: "Linearisasi PDF untuk tampilan web yang cepat (unduhan progresif)."
i18n_source_hash: 36280b478161
i18n_provenance: human
i18n_output_hash: da57d3bd0c65
---
# Web-Optimize PDF {#web-optimize-pdf}
Linearisasi PDF agar dapat diunduh dan ditampilkan secara progresif di peramban web tanpa menunggu file lengkap.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/linearize-pdf`
Menerima data form multipart berisi file PDF. Tidak diperlukan field `settings`.
## Parameters {#parameters}
Alat ini tidak memiliki parameter pengaturan. Unggah file PDF secara langsung.
## 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}
- Linearisasi menyusun ulang struktur internal PDF sehingga halaman pertama dapat dirender sebelum file lengkap selesai diunduh.
- File output mungkin sedikit lebih besar dari input karena data linearisasi yang ditambahkan.
- PDF yang sudah dilinearisasi akan dilinearisasi ulang tanpa masalah.
+53
View File
@@ -0,0 +1,53 @@
---
description: "Gabungkan beberapa PDF menjadi satu dokumen."
i18n_source_hash: e82e389cb8b6
i18n_provenance: human
i18n_output_hash: efe65253810d
---
# Merge PDFs {#merge-pdfs}
Gabungkan dua atau lebih file PDF menjadi satu dokumen, mempertahankan urutan halaman setiap file input.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/merge-pdf`
Menerima data form multipart berisi dua atau lebih file PDF. Tidak diperlukan field `settings`.
## Parameters {#parameters}
Alat ini tidak memiliki parameter pengaturan. Cukup unggah dua atau lebih file PDF.
| Constraint | Value |
|------------|-------|
| Minimum files | 2 |
| Maximum files | 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}
- File digabungkan sesuai urutan pengunggahannya.
- Diperlukan setidaknya dua file PDF; permintaan akan gagal dengan error 400 jika kurang dari itu.
- Jumlah maksimum file input adalah 20.
- PDF terenkripsi harus dibuka kuncinya sebelum digabungkan.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Susun beberapa halaman PDF per lembar (2-up, 4-up, dll.)."
i18n_source_hash: 9dd82737cb72
i18n_provenance: human
i18n_output_hash: f41409f0d574
---
# N-up PDF {#n-up-pdf}
Susun beberapa halaman per lembar untuk menghemat kertas saat mencetak, seperti tata letak 2-up atau 4-up.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/nup-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| perSheet | integer | No | `2` | Halaman per lembar: `2`, `3`, `4`, `8`, `9`, `12`, atau `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}
- Halaman disusun dalam urutan baca (kiri ke kanan, atas ke bawah).
- Ukuran halaman output sama dengan aslinya; masing-masing halaman diperkecil agar pas dengan grid.
- Dokumen 20 halaman dengan `perSheet: 4` menghasilkan output 5 halaman.
+53
View File
@@ -0,0 +1,53 @@
---
description: "Ekstrak teks dari dokumen PDF menggunakan OCR bertenaga AI."
i18n_source_hash: 1431fcba180b
i18n_provenance: human
i18n_output_hash: ec3055271630
---
# PDF OCR {#pdf-ocr}
Ekstrak teks dari dokumen PDF menggunakan pengenalan karakter optik bertenaga AI. Mendukung beberapa tingkat kualitas dan bahasa. Membutuhkan feature bundle OCR untuk terpasang.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/ocr-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings` opsional.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| quality | string | No | `"balanced"` | Tingkat kualitas OCR: `fast`, `balanced`, `best` |
| language | string | No | `"auto"` | Bahasa dokumen: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
| pages | string | No | `"all"` | Pemilihan halaman, mis. `"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}
Mengembalikan `202 Accepted`. Lacak progres melalui SSE di `/api/v1/jobs/{jobId}/progress`.
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Format input yang diterima: `.pdf`.
- Ini adalah alat AI yang membutuhkan **feature bundle OCR** untuk terpasang. Jika bundle tidak terpasang, API mengembalikan `501 Not Implemented`.
- Tingkat kualitas `fast` menggunakan model yang lebih ringan untuk pemrosesan lebih cepat; `best` menggunakan model yang lebih akurat dengan mengorbankan kecepatan.
- Pengaturan bahasa `auto` mencoba mendeteksi bahasa dokumen secara otomatis.
- Anda dapat menargetkan halaman tertentu menggunakan rentang (`"1-3"`), daftar yang dipisahkan koma (`"1,3,5"`), atau `"all"` untuk setiap halaman.
- Untuk PDF yang sudah berisi teks yang dapat dipilih, pertimbangkan untuk menggunakan alat [PDF to Text](./pdf-to-text) yang lebih cepat.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Susun ulang halaman dalam PDF dengan urutan halaman eksplisit."
i18n_source_hash: e961fc895b4b
i18n_provenance: human
i18n_output_hash: 8a9ff6eba248
---
# Organize PDF {#organize-pdf}
Susun ulang halaman dalam PDF dengan menentukan urutan halaman yang diinginkan.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/organize-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| order | string | Yes | - | Urutan halaman yang diinginkan dalam sintaks qpdf, mis. `"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}
- Rentang halaman menggunakan sintaks qpdf: `3,1,2` menyusun ulang tiga halaman pertama, dan `5-z` menambahkan halaman 5 sampai halaman terakhir.
- Halaman dapat diduplikasi dengan menuliskannya lebih dari sekali (mis. `"1,1,2,3"` menduplikasi halaman 1).
- Halaman yang tidak tercantum dalam string urutan diabaikan dari output.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Baca dan tulis metadata dokumen PDF."
i18n_source_hash: b2eaebf7467f
i18n_provenance: human
i18n_output_hash: 0d6421d2d529
---
# PDF Metadata {#pdf-metadata}
Baca dan perbarui field metadata dokumen PDF seperti judul, penulis, subjek, dan kata kunci. Jika tidak ada pengaturan yang diberikan, metadata yang ada dikembalikan tanpa modifikasi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-metadata`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings` opsional.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| title | string | No | - | Judul dokumen (maks 500 karakter) |
| author | string | No | - | Penulis dokumen (maks 500 karakter) |
| subject | string | No | - | Subjek dokumen (maks 500 karakter) |
| keywords | string | No | - | Kata kunci dokumen (maks 500 karakter) |
Semua parameter bersifat opsional. Field yang dihilangkan dibiarkan tidak berubah.
## 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}
- Format input yang diterima: `.pdf`.
- Ini adalah alat cepat (sinkron) yang mengembalikan hasil secara langsung.
- Field `metadata` dalam respons berisi metadata hasil setelah pembaruan apa pun.
- Untuk membaca metadata tanpa memodifikasinya, hilangkan field `settings` atau kirim objek kosong.
- Setiap field metadata dibatasi hingga 500 karakter.
@@ -0,0 +1,54 @@
---
description: "Tambahkan nomor halaman ke setiap halaman PDF."
i18n_source_hash: 58342d6ac8d2
i18n_provenance: human
i18n_output_hash: 59a32f421f09
---
# PDF Page Numbers {#pdf-page-numbers}
Tambahkan nomor halaman "Page N of M" ke setiap halaman PDF.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-page-numbers`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| position | string | No | `"bc"` | Penempatan nomor halaman: `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
| fontSize | integer | No | `10` | Ukuran font dalam poin (6-24) |
### Position Values {#position-values}
- `tl` kiri-atas, `tc` tengah-atas, `tr` kanan-atas
- `bl` kiri-bawah, `bc` tengah-bawah, `br` kanan-bawah
## 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}
- Nomor halaman dirender dalam format "Page 1 of 10".
- Nomor ditambahkan ke setiap halaman, termasuk halaman judul atau sampul yang ada.
- Posisi default `"bc"` menempatkan nomor di tengah bawah setiap halaman.
+133
View File
@@ -0,0 +1,133 @@
---
description: "Konversi halaman PDF menjadi gambar berkualitas tinggi."
i18n_source_hash: 1c36be5dadb8
i18n_provenance: human
i18n_output_hash: ba37578b7109
---
# PDF to Image {#pdf-to-image}
Konversi halaman PDF menjadi gambar raster berkualitas tinggi. Mendukung pemilihan halaman, beberapa format output, kontrol DPI, dan mode warna. Termasuk sub-rute info dan preview untuk memeriksa PDF sebelum konversi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-image`
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"png"` | Format output: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
| dpi | number | No | 150 | Resolusi render (36 sampai 2400). DPI yang lebih tinggi menghasilkan gambar yang lebih besar dan lebih detail. |
| quality | number | No | 85 | Kualitas output untuk format lossy (1 sampai 100) |
| colorMode | string | No | `"color"` | Mode warna: `color`, `grayscale`, `bw` (ambang hitam dan putih) |
| pages | string | No | `"all"` | Pemilihan halaman: `all`, satu halaman (`3`), rentang (`1-5`), atau dipisahkan koma (`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`
Mengembalikan jumlah halaman PDF tanpa merender halaman apa pun.
### 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`
Mengembalikan thumbnail JPEG resolusi rendah dari semua halaman sebagai URL data base64. Berguna untuk membangun UI pemilihan halaman.
### 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}
- Menggunakan MuPDF untuk merender PDF, memberikan output berkualitas tinggi dengan rendering font dan grafik vektor yang benar.
- PDF yang dilindungi kata sandi tidak didukung dan akan mengembalikan error 400.
- Parameter `pages` mendukung sintaks yang fleksibel:
- `"all"` atau `""` - semua halaman
- `"3"` - satu halaman
- `"1-5"` - rentang halaman (inklusif)
- `"1,3,5-8"` - campuran halaman individual dan rentang
- Nomor halaman berbasis 1. Menentukan halaman melebihi panjang dokumen akan mengembalikan error 400.
- Endpoint utama selalu menghasilkan unduhan halaman individual sekaligus ZIP yang berisi semua halaman yang dipilih.
- Endpoint preview merender pada 72 DPI dan menskalakan ke lebar 300px untuk pembuatan thumbnail yang cepat. Thumbnail berupa JPEG dengan kualitas 60%.
- Endpoint preview menghormati konfigurasi server `MAX_PDF_PAGES`, membatasi berapa banyak thumbnail yang dihasilkan.
- Untuk dokumen besar pada DPI tinggi, waktu pemrosesan meningkat secara proporsional. Pertimbangkan menggunakan DPI lebih rendah (150) untuk penggunaan web dan DPI lebih tinggi (300-600) untuk cetak.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Ekstrak teks biasa dari PDF."
i18n_source_hash: 15a7bc1cdf8f
i18n_provenance: human
i18n_output_hash: fa7cfd6526d0
---
# PDF to Text {#pdf-to-text}
Ekstrak semua teks biasa yang dapat dibaca dari dokumen PDF ke dalam file teks.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-text`
Menerima data form multipart berisi file PDF.
## Parameters {#parameters}
Alat ini tidak memiliki parameter yang dapat dikonfigurasi. Unggah PDF dan konten teksnya akan diekstrak.
## 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}
- Format input yang diterima: `.pdf`.
- Ini adalah alat cepat (sinkron) yang mengembalikan hasil secara langsung.
- Field `chars` dalam respons menunjukkan jumlah karakter yang diekstrak.
- Hanya teks yang tertanam secara digital yang diekstrak. Untuk dokumen hasil pindai atau PDF berbasis gambar, gunakan alat [PDF OCR](./ocr-pdf).
+46
View File
@@ -0,0 +1,46 @@
---
description: "Konversi PDF menjadi dokumen Word (DOCX)."
i18n_source_hash: be41b6b49f84
i18n_provenance: human
i18n_output_hash: ad10c3ef1d5f
---
# PDF to Word {#pdf-to-word}
Konversi PDF berbasis teks menjadi dokumen Word (DOCX). Paling cocok untuk PDF dengan teks yang dapat dipilih; halaman hasil pindai perlu OCR terlebih dahulu.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-word`
Menerima data form multipart berisi file PDF.
## Parameters {#parameters}
Alat ini tidak memiliki parameter yang dapat dikonfigurasi. Unggah PDF dan akan dikonversi menjadi 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}
Mengembalikan `202 Accepted`. Lacak progres melalui SSE di `/api/v1/jobs/{jobId}/progress`.
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Format input yang diterima: `.pdf`.
- Bekerja paling baik dengan PDF berbasis teks. Halaman hasil pindai atau khusus gambar akan menghasilkan output kosong atau minimal; gunakan [PDF OCR](./ocr-pdf) untuk menambahkan lapisan teks terlebih dahulu.
- Konversi ditangani oleh LibreOffice yang berjalan headless di server.
- Tata letak yang kompleks (multi-kolom, elemen yang tumpang-tindih) mungkin tidak terkonversi dengan sempurna.
+45
View File
@@ -0,0 +1,45 @@
---
description: "Konversi PDF menjadi format arsip PDF/A-2 untuk pengarsipan jangka panjang."
i18n_source_hash: 4c6bf7a12e84
i18n_provenance: human
i18n_output_hash: e383a7d5863f
---
# PDF/A Convert {#pdf-a-convert}
Konversi PDF menjadi format arsip PDF/A-2, cocok untuk pengarsipan jangka panjang dan kepatuhan regulasi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdfa-convert`
Menerima data form multipart berisi file PDF. Tidak diperlukan field `settings`.
## Parameters {#parameters}
Alat ini tidak memiliki parameter pengaturan. Unggah file PDF secara langsung.
## 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}
- Output sesuai dengan standar PDF/A-2.
- PDF/A menyematkan semua font dan melarang referensi eksternal, sehingga file output mungkin lebih besar dari aslinya.
- Enkripsi dan JavaScript dihapus selama konversi, karena tidak diizinkan oleh standar PDF/A.
+50
View File
@@ -0,0 +1,50 @@
---
description: "Tambahkan perlindungan kata sandi dengan enkripsi AES-256 ke PDF."
i18n_source_hash: 869cfbc739ef
i18n_provenance: human
i18n_output_hash: 583b8082e980
---
# Protect PDF {#protect-pdf}
Tambahkan perlindungan kata sandi ke PDF menggunakan enkripsi AES-256.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/protect-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| userPassword | string | Yes | - | Kata sandi yang diperlukan untuk membuka PDF (1-256 karakter) |
| ownerPassword | string | No | Sama dengan `userPassword` | Kata sandi pemilik untuk izin (1-256 karakter) |
## 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}
- Enkripsi menggunakan AES-256.
- Jika `ownerPassword` dihilangkan, ia default ke nilai yang sama dengan `userPassword`.
- Kata sandi disunting dari log audit.
- PDF terenkripsi membutuhkan kata sandi pengguna untuk membuka dan kata sandi pemilik (jika berbeda) untuk izin penuh.
+52
View File
@@ -0,0 +1,52 @@
---
description: "Hapus permanen kemunculan teks dari PDF (redaksi asli terverifikasi)."
i18n_source_hash: 296ad2a701b2
i18n_provenance: human
i18n_output_hash: eeca5fcb3d0b
---
# Redact PDF {#redact-pdf}
Hapus secara permanen kemunculan teks yang ditentukan dari PDF menggunakan redaksi asli terverifikasi. Teks yang diredaksi dihapus sepenuhnya dari file, bukan sekadar ditutup dengan kotak hitam.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/redact-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| terms | string[] | Yes | - | String teks yang akan diredaksi (1-50 term, masing-masing hingga 200 karakter) |
| caseSensitive | boolean | No | `false` | Apakah pencocokan peka huruf besar-kecil |
## 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}
- Format input yang diterima: `.pdf`.
- Ini adalah alat cepat (sinkron) yang mengembalikan hasil secara langsung.
- Ini melakukan redaksi asli: teks yang cocok dihapus dari aliran konten PDF, tidak sekadar dikaburkan secara visual.
- Field `found` dalam respons menunjukkan berapa banyak kemunculan yang diredaksi.
- Anda dapat meredaksi hingga 50 term dalam satu permintaan.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Hapus halaman tertentu dari PDF."
i18n_source_hash: 003e460a047c
i18n_provenance: human
i18n_output_hash: 380fc45dd7ec
---
# Remove Pages {#remove-pages}
Hapus halaman tertentu dari PDF, menjaga semua halaman lainnya tetap utuh.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/remove-pages`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| pages | string | Yes | - | Rentang halaman yang akan dihapus dalam sintaks qpdf, mis. `"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}
- Anda tidak dapat menghapus setiap halaman dari dokumen; setidaknya satu halaman harus tersisa.
- Rentang halaman menggunakan sintaks qpdf: `3` untuk satu halaman, `5-7` untuk rentang, dan koma untuk menggabungkan (mis. `1,3,5-7`).
+45
View File
@@ -0,0 +1,45 @@
---
description: "Coba perbaiki PDF yang rusak atau korup."
i18n_source_hash: 864073a2f09f
i18n_provenance: human
i18n_output_hash: 79ffed775a51
---
# Repair PDF {#repair-pdf}
Coba perbaiki PDF yang rusak atau korup dengan merekonstruksi struktur internalnya.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/repair-pdf`
Menerima data form multipart berisi file PDF. Tidak diperlukan field `settings`.
## Parameters {#parameters}
Alat ini tidak memiliki parameter pengaturan. Unggah file PDF yang rusak secara langsung.
## 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}
- Validasi struktural dilewati pada input untuk memungkinkan file yang cacat lolos.
- Perbaikan bersifat upaya terbaik; file yang rusak parah mungkin tidak dapat dipulihkan sepenuhnya.
- PDF yang diperbaiki mungkin sedikit berbeda ukurannya dari aslinya karena tabel referensi silang yang direkonstruksi.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Putar halaman dalam PDF sebesar 90, 180, atau 270 derajat."
i18n_source_hash: cc2acd091427
i18n_provenance: human
i18n_output_hash: e1d10c33b072
---
# Rotate PDF {#rotate-pdf}
Putar semua atau halaman yang dipilih dalam PDF sebesar sudut yang ditentukan.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/rotate-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| angle | integer | No | `90` | Sudut rotasi: `90`, `180`, atau `270` |
| range | string | No | `"1-z"` | Rentang halaman dalam sintaks qpdf, mis. `"1-5,8"` (`"1-z"` = semua halaman) |
## 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}
- Rotasi searah jarum jam.
- Rentang halaman menggunakan sintaks qpdf: `1-5` untuk halaman 1 sampai 5, `z` untuk halaman terakhir, dan koma untuk menggabungkan rentang.
- Rentang default `"1-z"` memutar semua halaman.
+79
View File
@@ -0,0 +1,79 @@
---
description: "Cap gambar tanda tangan yang diunggah ke PDF menggunakan penempatan halaman yang dinormalisasi."
i18n_source_hash: c28f78c2e7fd
i18n_provenance: human
i18n_output_hash: 80406594e43c
---
# Sign PDF {#sign-pdf}
Cap satu atau lebih gambar PNG tanda tangan yang diunggah ke halaman mana pun dalam PDF. Rute ini menggunakan kontrak multipart khusus karena membutuhkan PDF, satu atau lebih gambar tanda tangan, dan koordinat penempatan.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/sign-pdf`
Menerima data form multipart. PDF dikirim sebagai `file`; tanda tangan dikirim sebagai `sig0`, `sig1`, dan seterusnya; penempatan dikirim dalam field JSON `placements`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| file | file | Yes | - | File PDF yang akan ditandatangani |
| sig0 | file | Yes | - | Gambar tanda tangan pertama. Gambar tambahan menggunakan `sig1`, `sig2`, dan seterusnya |
| placements | JSON string | Yes | - | Array objek penempatan: `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
| clientJobId | string | No | - | UUID opsional untuk pelacakan progres melalui SSE |
| fileId | string | No | - | ID pustaka file opsional untuk menyimpan hasil yang ditandatangani sebagai versi baru |
## Placement Coordinates {#placement-coordinates}
| Field | Type | Description |
|-------|------|-------------|
| sig | integer | Indeks gambar tanda tangan. `0` dipetakan ke `sig0` |
| page | integer | Indeks halaman PDF berbasis nol |
| x | number | Posisi kiri sebagai fraksi halaman |
| y | number | Posisi atas sebagai fraksi halaman |
| w | number | Lebar tanda tangan sebagai fraksi halaman |
| h | number | Tinggi tanda tangan sebagai fraksi halaman |
Koordinat menggunakan titik asal kiri-atas. Nilai mungkin sedikit melampaui tepi halaman; perender PDF memotong cap akhir agar sesuai halaman.
## 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
}
```
Jika permintaan tidak dapat selesai dalam jendela tunggu sinkron, API mengembalikan:
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
Sambungkan ke `/api/v1/jobs/<jobId>/progress` dan unduh hasilnya saat job selesai.
## Notes {#notes}
- Format input PDF yang diterima: `.pdf`.
- Gambar tanda tangan harus berupa file gambar yang valid, biasanya PNG dengan transparansi.
- Hingga 100 gambar tanda tangan dan 100 penempatan diterima.
- `sign-pdf` adalah rute khusus dan tidak menggunakan field JSON `settings` alat standar.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Ekstrak halaman atau pisah PDF menjadi beberapa bagian."
i18n_source_hash: 5c8d8041d219
i18n_provenance: human
i18n_output_hash: 505e8e86e7c4
---
# Split PDF {#split-pdf}
Ekstrak rentang halaman ke dalam PDF baru, atau pisah dokumen menjadi potongan berisi N halaman.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/split-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"range"` | Mode pemisahan: `range` atau `every` |
| range | string | Ketika mode adalah `range` | - | Rentang halaman dalam sintaks qpdf, mis. `"1-5,8,10-z"` |
| everyN | integer | Ketika mode adalah `every` | - | Pisah menjadi potongan berisi N halaman (1-500) |
## Example Request {#example-request}
Ekstrak halaman tertentu:
```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"}'
```
Pisah menjadi potongan 10 halaman:
```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}
- Dalam mode `range`, sebuah PDF tunggal berisi halaman yang dipilih dikembalikan.
- Dalam mode `every`, hasilnya adalah arsip ZIP berisi masing-masing bagian.
- Rentang halaman menggunakan sintaks qpdf: `1-5` untuk halaman 1 sampai 5, `z` untuk halaman terakhir, dan koma untuk menggabungkan rentang (mis. `1-3,7,10-z`).
+48
View File
@@ -0,0 +1,48 @@
---
description: "Hapus perlindungan kata sandi dari PDF."
i18n_source_hash: 14f5165d185c
i18n_provenance: human
i18n_output_hash: 0a16b0475670
---
# Unlock PDF {#unlock-pdf}
Hapus perlindungan kata sandi dari PDF terenkripsi dengan memberikan kata sandi yang benar.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/unlock-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| password | string | Yes | - | Kata sandi untuk mendekripsi PDF (1-256 karakter) |
## 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}
- Kata sandi yang benar harus diberikan; kata sandi yang salah mengembalikan error 400.
- Baik kata sandi pengguna maupun kata sandi pemilik dapat digunakan untuk dekripsi.
- Kata sandi disunting dari log audit.
+58
View File
@@ -0,0 +1,58 @@
---
description: "Tambahkan watermark teks ke setiap halaman PDF."
i18n_source_hash: f1f7d8912fbd
i18n_provenance: human
i18n_output_hash: aa90847c5de7
---
# Watermark PDF {#watermark-pdf}
Cap watermark teks pada setiap halaman PDF dengan posisi, ukuran, opasitas, dan rotasi yang dapat dikonfigurasi.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/watermark-pdf`
Menerima data form multipart berisi file PDF dan sebuah field JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| text | string | Yes | - | Teks watermark (1-200 karakter) |
| position | string | No | `"c"` | Penempatan pada halaman: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | No | `48` | Ukuran font dalam poin (6-72) |
| opacity | number | No | `0.3` | Opasitas watermark (0.05-1) |
| rotation | number | No | `45` | Sudut rotasi dalam derajat (-180 sampai 180) |
### Position Values {#position-values}
- `tl` kiri-atas, `tc` tengah-atas, `tr` kanan-atas
- `l` tengah-kiri, `c` tengah, `r` tengah-kanan
- `bl` kiri-bawah, `bc` tengah-bawah, `br` kanan-bawah
## 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}
- Watermark dirender sebagai overlay teks pada setiap halaman.
- Teks watermark, posisi, dan gaya yang sama diterapkan secara seragam ke semua halaman.
- Gunakan nilai opasitas yang lebih rendah (0.1-0.3) untuk watermark halus yang tidak menutupi konten.