mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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:
@@ -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` صفحتين جنبًا إلى جنب على كل ورقة، وهو التخطيط القياسي للكتيّب في الطباعة على الوجهين.
|
||||
- تُضاف صفحات فارغة تلقائيًا إذا لم يكن إجمالي عدد الصفحات مضاعفًا لحجم الورقة.
|
||||
- اطبع المخرجات على الوجهين بربط الحافة القصيرة، ثم اطوِ ودبّس.
|
||||
@@ -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 تناسب الحجم المطلوب.
|
||||
- إذا كان الضغط سيؤدي إلى تكبير الملف، تُعاد وحدات البايت الأصلية دون تغيير.
|
||||
- لا يتأثر المحتوى النصي والمتّجه؛ تُقلّل دقة الصور النقطية المضمّنة فقط.
|
||||
@@ -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` جميع هوامش الاقتصاص الموجودة، مُظهِراً مربّع الوسائط الكامل.
|
||||
@@ -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`).
|
||||
- تحتفظ الصفحات المستخرَجة بتنسيقها الأصلي وتعليقاتها التوضيحية وروابطها.
|
||||
@@ -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`.
|
||||
- هذه أداة سريعة (متزامنة) تُعيد النتيجة مباشرة.
|
||||
- تُحفظ قيم حقول النماذج كنص ثابت في المخرجات.
|
||||
- تصبح التعليقات التوضيحية (التعليقات والتمييزات والملاحظات اللاصقة) جزءاً من محتوى الصفحة ولا يمكن تحريرها بعد ذلك.
|
||||
@@ -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) إلى تدرّج رمادي، بما في ذلك الصور المضمّنة والرسوميات المتّجهة والنص.
|
||||
- غالباً ما يكون ملف المخرجات أصغر من الأصلي لأن بيانات التدرّج الرمادي تتطلّب وحدات بايت أقل لكل بكسل.
|
||||
@@ -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 المُحسَّنة خطّياً مسبقاً دون أي مشكلة.
|
||||
@@ -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 المشفَّرة قبل الدمج.
|
||||
@@ -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 صفحات.
|
||||
@@ -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) الأسرع بدلاً من ذلك.
|
||||
@@ -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).
|
||||
- تُحذف الصفحات غير المدرَجة في سلسلة الترتيب من المخرجات.
|
||||
@@ -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"` الأرقام في أسفل منتصف كل صفحة.
|
||||
@@ -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) للطباعة.
|
||||
@@ -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) بدلاً من ذلك.
|
||||
@@ -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، الذي يعمل بلا واجهة رسومية على الخادم، عملية التحويل.
|
||||
- قد لا تُحوَّل التخطيطات المعقّدة (متعددة الأعمدة، والعناصر المتداخلة) بشكل مثالي.
|
||||
@@ -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.
|
||||
@@ -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 المشفَّر كلمة مرور المستخدم لفتحه وكلمة مرور المالك (إن كانت مختلفة) للأذونات الكاملة.
|
||||
@@ -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 عبارة في طلب واحد.
|
||||
@@ -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`).
|
||||
@@ -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 المُصلَح قليلاً في الحجم عن الأصلي بسبب جداول المراجع المتقاطعة المُعاد بناؤها.
|
||||
@@ -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"` جميع الصفحات.
|
||||
@@ -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.
|
||||
@@ -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`).
|
||||
@@ -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.
|
||||
- تعمل كلمة مرور المستخدم أو كلمة مرور المالك لفك التشفير.
|
||||
- تُحجب كلمات المرور من سجلات التدقيق.
|
||||
@@ -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) للعلامات المائية الخفيفة التي لا تحجب المحتوى.
|
||||
Reference in New Issue
Block a user