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: d7c73c53660e
---
# كتيّب PDF {#booklet-pdf}
رتّب الصفحات للطباعة على الوجهين بحيث يمكن طيّ الأوراق المطبوعة لتكوين كتيّب.
## نقطة نهاية API {#api-endpoint}
`POST /api/v1/tools/pdf/booklet-pdf`
تقبل بيانات نموذج متعدد الأجزاء تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## المعاملات {#parameters}
| المعامل | النوع | مطلوب | الافتراضي | الوصف |
|-----------|------|----------|---------|-------------|
| perSheet | integer | لا | `2` | عدد الصفحات لكل ورقة: `2`، `4`، `6`، أو `8` |
## مثال طلب {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/pdf/booklet-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@document.pdf" \
-F 'settings={"perSheet": 2}'
```
## مثال استجابة {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
"originalSize": 2450000,
"processedSize": 2400000
}
```
## ملاحظات {#notes}
- يضع الافتراضي `perSheet: 2` صفحتين جنبًا إلى جنب على كل ورقة، وهو التخطيط القياسي للكتيّب في الطباعة على الوجهين.
- تُضاف صفحات فارغة تلقائيًا إذا لم يكن إجمالي عدد الصفحات مضاعفًا لحجم الورقة.
- اطبع المخرجات على الوجهين بربط الحافة القصيرة، ثم اطوِ ودبّس.
+62
View File
@@ -0,0 +1,62 @@
---
description: "تقليل حجم ملف PDF عن طريق ضغط الصور المضمّنة."
i18n_source_hash: a8bb0baaca25
i18n_provenance: human
i18n_output_hash: ffa796aa161e
---
# Compress PDF {#compress-pdf}
قلّل حجم ملف PDF عن طريق تقليل دقة الصور المضمّنة. اختر بين شريط تمرير للجودة أو حجم ملف مستهدف.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/compress-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: 62531dcb9295
---
# Crop PDF {#crop-pdf}
اقتصّ جميع صفحات ملف PDF بتطبيق هامش موحّد، مع تشذيب المحتوى من كل حافة بالتساوي.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/crop-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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/72 بوصة).
- يُطبَّق الهامش نفسه على الحواف الأربع لكل صفحة.
- يزيل الهامش `0` جميع هوامش الاقتصاص الموجودة، مُظهِراً مربّع الوسائط الكامل.
+47
View File
@@ -0,0 +1,47 @@
---
description: "سحب صفحات مختارة من ملف PDF إلى مستند جديد."
i18n_source_hash: e4a8fad31e0f
i18n_provenance: human
i18n_output_hash: 45a03f697ee0
---
# Extract Pages {#extract-pages}
اسحب صفحات مختارة من ملف PDF إلى مستند جديد أصغر.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/extract-pages`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: 6c585a17086d
---
# Flatten PDF {#flatten-pdf}
ادمج حقول النماذج التفاعلية والتعليقات التوضيحية داخل محتوى الصفحة، مُنتِجاً ملف PDF ثابتاً يظهر بالشكل نفسه في كل مكان.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/flatten-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف 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: e3ab2903d0b8
---
# Grayscale PDF {#grayscale-pdf}
حوّل جميع الألوان في ملف PDF إلى تدرّج رمادي، مُنتِجاً نسخة بالأبيض والأسود من المستند.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/grayscale-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف 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: 97dd6496dd12
---
# Web-Optimize PDF {#web-optimize-pdf}
حسّن ملف PDF خطّياً بحيث يمكن تنزيله وعرضه تدريجياً في متصفّحات الويب دون انتظار الملف كاملاً.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/linearize-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف 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: dcbb777d5290
---
# Merge PDFs {#merge-pdfs}
ادمج ملفَّي PDF أو أكثر في مستند واحد، مع الحفاظ على ترتيب صفحات كل ملف إدخال.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/merge-pdf`
يقبل بيانات نموذج multipart تحتوي على ملفَّي 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 في كل ورقة (صفحتان لكل ورقة، أربع صفحات لكل ورقة، وهكذا)."
i18n_source_hash: 9dd82737cb72
i18n_provenance: human
i18n_output_hash: 903fc659cd1e
---
# N-up PDF {#n-up-pdf}
رتّب عدة صفحات في كل ورقة لتوفير الورق عند الطباعة، مثل تخطيطات صفحتين أو أربع صفحات لكل ورقة.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/nup-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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 مدعوم بالذكاء الاصطناعي."
i18n_source_hash: 1431fcba180b
i18n_provenance: human
i18n_output_hash: f0b6d4c18b31
---
# PDF OCR {#pdf-ocr}
استخرج النص من مستندات PDF باستخدام التعرّف الضوئي على الحروف المدعوم بالذكاء الاصطناعي. يدعم عدة مستويات جودة ولغات. يتطلّب تثبيت حزمة ميزة OCR.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/ocr-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` اختياري بصيغة JSON.
## 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`.
- هذه أداة ذكاء اصطناعي تتطلّب تثبيت **حزمة ميزة 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: 72f4969229db
---
# Organize PDF {#organize-pdf}
أعد ترتيب الصفحات في ملف PDF بتحديد تسلسل الصفحات المطلوب.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/organize-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: 981a55829a3e
---
# PDF Metadata {#pdf-metadata}
اقرأ وحدّث حقول البيانات الوصفية لمستند PDF مثل العنوان والمؤلف والموضوع والكلمات المفتاحية. عندما لا تُقدَّم أي إعدادات، تُعاد البيانات الوصفية الموجودة دون تعديل.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-metadata`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` اختياري بصيغة JSON.
## 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: 34c0def55e9d
---
# PDF Page Numbers {#pdf-page-numbers}
أضف أرقام الصفحات بصيغة "Page N of M" إلى كل صفحة في ملف PDF.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-page-numbers`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: 70a8f3ae7039
---
# 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. مفيد لبناء واجهة تحديد الصفحات.
### 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 وتُقيّس إلى عرض 300 بكسل لتوليد الصور المصغّرة بسرعة. الصور المصغّرة بصيغة JPEG بجودة 60%.
- تحترم نقطة نهاية المعاينة إعداد الخادم `MAX_PDF_PAGES`، ما يحدّد عدد الصور المصغّرة المولّدة.
- بالنسبة للمستندات الكبيرة بدقة DPI عالية، يزداد وقت المعالجة تناسبياً. فكّر في استخدام دقة DPI أقل (150) للاستخدام على الويب ودقة أعلى (300 إلى 600) للطباعة.
+47
View File
@@ -0,0 +1,47 @@
---
description: "استخراج نص عادي من ملف PDF."
i18n_source_hash: 15a7bc1cdf8f
i18n_provenance: human
i18n_output_hash: f2ca0626bf35
---
# PDF to Text {#pdf-to-text}
استخرج كل النص العادي القابل للقراءة من مستند PDF إلى ملف نصّي.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-text`
يقبل بيانات نموذج multipart تحتوي على ملف 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: db57b8202eb1
---
# PDF to Word {#pdf-to-word}
حوّل ملف PDF قائماً على النص إلى مستند Word (DOCX). الأنسب لملفات PDF ذات النص القابل للتحديد؛ ستحتاج الصفحات الممسوحة ضوئياً إلى OCR أولاً.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdf-to-word`
يقبل بيانات نموذج multipart تحتوي على ملف 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، الذي يعمل بلا واجهة رسومية على الخادم، عملية التحويل.
- قد لا تُحوَّل التخطيطات المعقّدة (متعددة الأعمدة، والعناصر المتداخلة) بشكل مثالي.
+45
View File
@@ -0,0 +1,45 @@
---
description: "تحويل ملف PDF إلى صيغة أرشيفية PDF/A-2 للحفظ طويل الأمد."
i18n_source_hash: 4c6bf7a12e84
i18n_provenance: human
i18n_output_hash: 35aad5da4358
---
# PDF/A Convert {#pdf-a-convert}
حوّل ملف PDF إلى الصيغة الأرشيفية PDF/A-2، المناسبة للحفظ طويل الأمد والامتثال التنظيمي.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/pdfa-convert`
يقبل بيانات نموذج multipart تحتوي على ملف 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: 1848f92a02f6
---
# Protect PDF {#protect-pdf}
أضف حماية بكلمة مرور إلى ملف PDF باستخدام تشفير AES-256.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/protect-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: be2ce61ba138
---
# Redact PDF {#redact-pdf}
أزِل بشكل دائم ظهور نصوص محدّدة من ملف PDF باستخدام تنقيح حقيقي موثّق. يُحذف النص المُنقَّح تماماً من الملف، وليس مجرد تغطيته بمربّع أسود.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/redact-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: 1cc8739214b4
---
# Remove Pages {#remove-pages}
احذف صفحات محدّدة من ملف PDF، مع الحفاظ على جميع الصفحات المتبقية سليمة.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/remove-pages`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: f9bf610ec6fe
---
# Repair PDF {#repair-pdf}
حاوِل إصلاح ملف PDF تالف أو مُعطَّل عن طريق إعادة بناء بنيته الداخلية.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/repair-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف 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: 02e29f2aaa6d
---
# Rotate PDF {#rotate-pdf}
دوّر جميع الصفحات أو صفحات مختارة في ملف PDF بزاوية محدّدة.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/rotate-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: c0419e50518e
---
# Sign PDF {#sign-pdf}
اختم صورة توقيع PNG مرفوعة واحدة أو أكثر على أي صفحة من ملف PDF. يستخدم هذا المسار عقد multipart مخصّصاً لأنه يحتاج إلى ملف PDF، وصورة توقيع واحدة أو أكثر، وإحداثيات المواضع.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/sign-pdf`
يقبل بيانات نموذج multipart. يُرسل ملف PDF بوصفه `file`؛ وتُرسل التواقيع بوصفها `sig0` و`sig1` وهكذا؛ وتُرسل المواضع في حقل `placements` بصيغة JSON.
## 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 | - | معرّف مكتبة ملفات اختياري لحفظ النتيجة المُوقَّعة كإصدار جديد |
## 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` هو مسار مخصّص ولا يستخدم حقل `settings` القياسي للأداة بصيغة JSON.
+61
View File
@@ -0,0 +1,61 @@
---
description: "استخراج صفحات أو تقسيم ملف PDF إلى أجزاء."
i18n_source_hash: 5c8d8041d219
i18n_provenance: human
i18n_output_hash: a54bcf3b9649
---
# Split PDF {#split-pdf}
استخرج نطاقاً من الصفحات إلى ملف PDF جديد، أو قسّم مستنداً إلى أجزاء من N صفحة.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/split-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"range"` | وضع التقسيم: `range` أو `every` |
| range | string | عندما يكون الوضع `range` | - | نطاق الصفحات بصيغة qpdf، مثل `"1-5,8,10-z"` |
| everyN | integer | عندما يكون الوضع `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: 808267af6845
---
# Unlock PDF {#unlock-pdf}
أزِل الحماية بكلمة مرور من ملف PDF مشفَّر بتقديم كلمة المرور الصحيحة.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/unlock-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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: b5110c878e2d
---
# Watermark PDF {#watermark-pdf}
اختم علامة مائية نصية على كل صفحة في ملف PDF مع إمكانية تهيئة الموضع والحجم والشفافية والتدوير.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/pdf/watermark-pdf`
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل `settings` بصيغة JSON.
## 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) للعلامات المائية الخفيفة التي لا تحجب المحتوى.