feat: translate all pages, UI messages and docs and fix SEO redirects and indexing

This commit is contained in:
alam00000 committed 2026-10-25 12:55:21 +05:30
1 parent 5e019de5ae
commit 4edb1718cc
3344 files changed
+415643 -4759

No files matched your search

+136
View File
@@ -0,0 +1,136 @@
# مشارکت
از علاقهٔ شما به مشارکت در BentoPDF سپاسگزاریم! این راهنما به شما کمک می‌کند شروع کنید.
## شروع کار
### پیش‌نیازها
- Node.js 18+
- npm 9+
- Git
### راه‌اندازی
```bash
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/bentopdf.git
cd bentopdf
# Install dependencies
npm install
# Start development server
npm run dev
```
## ساختار پروژه
```
bentopdf/
├── src/
│ ├── js/
│ │ ├── config/ # Tool definitions
│ │ ├── logic/ # Tool page logic
│ │ ├── utils/ # Shared utilities
│ │ └── ui.ts # UI helpers
│ ├── pages/ # Tool HTML pages
│ └── css/ # Styles
├── public/
│ ├── locales/ # Translations
│ └── pymupdf-wasm/ # WASM modules
├── docs/ # Documentation (VitePress)
└── scripts/ # Build scripts
```
## افزودن ابزار جدید
### گام ۱: ساخت فایل منطق
فایل `src/js/logic/your-tool-page.ts` را بسازید:
```typescript
import { showLoader, hideLoader, showAlert } from '../ui.js';
import { state } from '../state.js';
document.addEventListener('DOMContentLoaded', () => {
// Your tool logic here
});
```
### گام ۲: ساخت صفحهٔ HTML
فایل `src/pages/your-tool.html` را مطابق قالب‌های ابزارهای موجود بسازید.
### گام ۳: ثبت ابزار
به `src/js/config/tools.ts` اضافه کنید:
```typescript
{
href: import.meta.env.BASE_URL + 'your-tool.html',
name: 'Your Tool',
icon: 'ph-icon-name',
subtitle: 'Description of your tool.',
}
```
### گام ۴: افزودن به پیکربندی ساخت
صفحه را به `vite.config.ts` اضافه کنید:
```typescript
'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
```
### گام ۵: افزودن ترجمه‌ها
ورودی‌ها را به همهٔ فایل‌های زبان در `public/locales/` اضافه کنید:
```json
{
"yourTool": {
"name": "Your Tool",
"subtitle": "Description"
}
}
```
## سبک کدنویسی
- برای همهٔ کدهای جدید از TypeScript استفاده کنید
- برای یکدستی، از الگوهای موجود پیروی کنید
- پیش از commit، دستور `npm run format` را اجرا کنید
- بدون توضیح (comment) در کد production (توضیحات هنگام ساخت حذف می‌شوند)
## فرایند Pull Request
1. یک شاخهٔ ویژگی بسازید: `git checkout -b feature/your-feature`
2. تغییرات خود را اعمال کنید
3. به‌طور کامل آزمایش کنید: `npm run build`
4. یک PR با توضیح روشن ارسال کنید
## ترجمه
برای افزودن زبان‌های جدید، [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) را ببینید.
## توافق‌نامهٔ مجوز مشارکت‌کننده
پیش از ادغام PR شما، باید CLA ما را امضا کنید:
- [CLA فردی (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
- [CLA شرکتی (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
## دریافت کمک
- [Issues در GitHub](https://github.com/alam00000/bentopdf/issues)
- [انجمن Discord](https://discord.gg/Bgq3Ay3f2w)
## مجوز
BentoPDF دارای مجوز دوگانه است:
- **AGPL-3.0** برای پروژه‌های متن‌باز که کد منبع کامل خود را به‌صورت عمومی منتشر می‌کنند
- **مجوز تجاری** برای برنامه‌های اختصاصی یا بسته‌منبع: [دریافت مجوز مادام‌العمر با ۷۹ دلار](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
با مشارکت، می‌پذیرید که مشارکت‌های شما تحت این شرایط مجوزدهی شوند.
+80
View File
@@ -0,0 +1,80 @@
# شروع به کار
به BentoPDF خوش آمدید! این راهنما به شما کمک می‌کند سریع شروع کنید.
## BentoPDF چیست؟
BentoPDF مجموعه‌ابزار PDF رایگان، متن‌باز و حریم‌خصوصی‌محور است که **کاملاً در مرورگر شما** اجرا می‌شود. فایل‌های شما هرگز از دستگاهتان خارج نمی‌شوند؛ همهٔ پردازش‌ها به‌صورت محلی با فناوری WebAssembly (WASM) انجام می‌شود.
## شروع سریع
### گزینهٔ ۱: استفاده از نسخهٔ میزبانی‌شده
به [bentopdf.com](https://www.bentopdf.com) بروید تا بی‌درنگ از BentoPDF استفاده کنید؛ نیازی به نصب نیست.
### گزینهٔ ۲: میزبانی شخصی با Docker
> [!IMPORTANT]
> تبدیل فایل‌های Office به `SharedArrayBuffer` نیاز دارد که این موارد را لازم دارد:
>
> - `Cross-Origin-Opener-Policy: same-origin`
> - `Cross-Origin-Embedder-Policy: require-corp`
> - یک بستر امن (secure context)
>
> `http://localhost` برای آزمایش محلی کار می‌کند، چون مرورگرها loopback را قابل‌اعتماد می‌دانند. `http://192.168.x.x` یا دیگر IPهای شبکهٔ محلی معمولاً این‌گونه نیستند، بنابراین تبدیل‌های Word/Excel/PowerPoint هنگام دسترسی از دستگاه‌های دیگر شبکه به HTTPS نیاز دارند.
```bash
# Pull and run the Docker image (self-hosted build)
docker run -d -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
# Or use Docker Compose
curl -O https://raw.githubusercontent.com/alam00000/bentopdf/main/docker-compose.yml
docker compose up -d
```
> [!TIP]
> BentoPDF در دو نسخهٔ ساخت عرضه می‌شود: **نسخهٔ میزبانی شخصی** (`bentopdf-simple`، که در بالا استفاده شد) برای استقرارهای داخلی، تیمی و سازمانی، و **نسخهٔ تجاری** (`bentopdf:latest`) که خود bentopdf.com و دارندگان مجوز تجاری برای استقرارهای عمومی از آن استفاده می‌کنند. هر دو ابزارهای PDF یکسانی دارند؛ نسخهٔ تجاری بخش hero، پرسش‌های متداول، نظرات کاربران و پاصفحهٔ bentopdf.com را اضافه می‌کند. اگر مطمئن نیستید، از نسخهٔ میزبانی شخصی استفاده کنید.
سپس `http://localhost:3000` را در مرورگر خود باز کنید.
> [!NOTE]
> اگر در حال آماده‌سازی استقرار OCR در محیط ایزوله (air-gapped) هستید، باید علاوه بر worker، هستهٔ اجرایی و فایل‌های traineddata مربوط به Tesseract، فونت‌های لایهٔ متنی OCR را نیز به‌صورت داخلی میزبانی کنید. راه‌اندازی کامل در [میزبانی شخصی](/fa/self-hosting/) مستند شده است، از جمله `VITE_OCR_FONT_BASE_URL` و پوشهٔ همراه `ocr-fonts/`.
### گزینهٔ ۳: ساخت از کد منبع
```bash
# Clone the repository
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
# Install dependencies
npm install
# Start development server
npm run dev
```
## نگاهی به قابلیت‌ها
| دسته | ابزارها |
| ------------------------ | ------------------------------------------------------------------ |
| **تبدیل به PDF** | Word، Excel، PowerPoint، تصاویر، Markdown، EPUB، MOBI و موارد دیگر |
| **تبدیل از PDF** | JPG، PNG، متن، Excel، SVG و موارد دیگر |
| **ویرایش و حاشیه‌نویسی** | امضا، هایلایت، حذف محتوای حساس، پر کردن فرم‌ها، افزودن مهر |
| **سازماندهی** | ادغام، تقسیم، چرخش، حذف صفحات، تغییر ترتیب |
| **بهینه‌سازی** | فشرده‌سازی، تعمیر، مسطح‌سازی، OCR |
| **امنیت** | رمزگذاری، رمزگشایی، حذف محدودیت‌ها |
## پشتیبانی مرورگرها
BentoPDF در مرورگرهای مدرن بهترین عملکرد را دارد:
- ✅ Chrome/Edge 90+
- ✅ Firefox 90+
- ✅ Safari 15+
## گام‌های بعدی
- [مشاهدهٔ همهٔ ابزارها](/fa/tools/)
- [میزبانی شخصی BentoPDF](/fa/self-hosting/)
- [مشارکت در پروژه](/fa/contributing)
+42
View File
@@ -0,0 +1,42 @@
---
# https://vitepress.dev/reference/default-theme-home-page
layout: home
hero:
name: 'BentoPDF'
text: 'ابزارهای PDF رایگان و متن‌باز'
tagline: PDFها را کاملاً در مرورگر خود پردازش کنید. بدون بارگذاری. بدون سرور. حریم خصوصی کامل.
actions:
- theme: brand
text: شروع کنید
link: /fa/getting-started
- theme: alt
text: مشاهدهٔ ابزارها
link: /fa/tools/
- theme: alt
text: میزبانی شخصی
link: /fa/self-hosting/
- theme: alt
text: مجوز تجاری
link: /fa/licensing
features:
- icon: 🔒
title: ۱۰۰٪ خصوصی
details: فایل‌های شما هرگز از دستگاهتان خارج نمی‌شوند. همهٔ پردازش‌ها به‌صورت محلی در مرورگر شما با WebAssembly انجام می‌شود.
- icon: ⚡
title: سریع و رایگان
details: بدون ثبت‌نام، بدون محدودیت، بدون واترمارک. PDFهای نامحدود را برای همیشه رایگان پردازش کنید.
- icon: 🛠️
title: بیش از ۵۰ ابزار
details: تبدیل، ویرایش، ادغام، تقسیم، فشرده‌سازی، امضا، OCR و موارد دیگر. هر آنچه نیاز دارید در یک جا.
- icon: 🌐
title: قابل میزبانی شخصی
details: روی زیرساخت خودتان مستقر کنید. Docker، Vercel، Netlify، AWS یا محیط‌های کاملاً ایزوله با workerهای OCR، داده‌های زبانی و فونت‌های لایهٔ متنی میزبانی‌شده به‌صورت شخصی.
---
## OCR آفلاین
اگر BentoPDF را در محیطی ایزوله یا آفلاین میزبانی می‌کنید، OCR به چیزی بیش از worker و فایل‌های traineddata مربوط به Tesseract نیاز دارد. خروجی PDF قابل‌جستجو همچنین نیاز دارد فونت‌های لایهٔ متنی OCR به‌صورت داخلی ارائه شوند.
برای راه‌اندازی کامل، از جمله `VITE_OCR_FONT_BASE_URL`، پوشهٔ همراه `ocr-fonts/` و روند به‌روزشدهٔ air-gap، [میزبانی شخصی](/fa/self-hosting/) را ببینید.
+92
View File
@@ -0,0 +1,92 @@
# Commercial License
BentoPDF is dual-licensed under **AGPL-3.0** (for open-source projects) and a **Commercial License** (for proprietary/closed-source applications).
::: tip Full Details
For complete licensing information, delivery details, AGPL component notices, and invoicing, visit our [Licensing Page](https://www.bentopdf.com/licensing).
:::
## Get a Commercial License
**[Get Lifetime License for $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)**. A one-time purchase that includes all future updates forever.
## When Do You Need a Commercial License?
| Use Case | License Required |
| ------------------------------------------- | ---------------------- |
| Open-source project with public source code | AGPL-3.0 (Free) |
| Internal company tool (not distributed) | AGPL-3.0 (Free) |
| Proprietary/closed-source application | **Commercial License** |
| SaaS product without source code disclosure | **Commercial License** |
| Redistributing without AGPL compliance | **Commercial License** |
## Delivery & Licensing Model
- **No license key is required or provided.** BentoPDF intentionally does not use license keys to streamline deployment and reduce operational friction for users.
- Upon purchase, users receive a ZIP archive containing the complete BentoPDF source code and binaries.
- The source code provided is identical to the code published in our public open-source repository.
**GitHub Repository:** [github.com/alam00000/bentopdf](https://github.com/alam00000/bentopdf)
## Important Notice on Third-Party Components
::: info AGPL Components — Pre-configured via CDN
BentoPDF **does not bundle** AGPL-licensed processing libraries in its source code. These components are loaded at runtime from CDN URLs that are **pre-configured by default** — all features work out of the box with zero setup.
| Component | License | Status |
| --------------- | -------- | ---------------------- |
| **PyMuPDF** | AGPL-3.0 | Pre-configured via CDN |
| **Ghostscript** | AGPL-3.0 | Pre-configured via CDN |
| **CoherentPDF** | AGPL-3.0 | Pre-configured via CDN |
WASM module URLs are configured via environment variables at build time (`.env.production`). The defaults point to jsDelivr CDN. For custom deployments (air-gapped, self-hosted), you can override via environment variables, Docker build args, or per-user via **Advanced Settings** in the UI.
See [Self-Hosting > WASM Configuration](/fa/self-hosting/#پیکربندی-wasm-اجزای-agpl) for details.
This approach ensures:
- BentoPDF's core code remains under its dual-license (AGPL-3.0 / Commercial)
- WASM binaries are loaded at runtime, not included in the source
- Clear compliance boundaries for commercial users
:::
::: tip Commercial License & AGPL Features
The commercial license covers BentoPDF's own code. If you configure and use AGPL components (PyMuPDF, Ghostscript, CoherentPDF), you must still comply with their respective AGPL-3.0 license terms, which may require source code disclosure if you distribute modified versions.
:::
## Invoicing
- Payments are handled by [Polar](https://polar.sh), which automatically emails an invoice after purchase.
- Polar handles VAT invoices for businesses in applicable regions. Select **"I'm purchasing as a business"** at checkout and enter your billing address and Tax/VAT number.
**Questions?** Contact [contact@bentopdf.com](mailto:contact@bentopdf.com) with your purchase details.
## What's Included
| Feature | Included |
| ----------------------------- | -------------- |
| Full source code | ✅ |
| All 50+ PDF tools | ✅ |
| Self-hosting rights | ✅ |
| Lifetime updates | ✅ |
| Remove branding (Simple Mode) | ✅ |
| Commercial support | ✅ (via email) |
| Priority feature requests | ✅ |
## FAQ
### Do I need a license key to use BentoPDF?
No. BentoPDF does not use license keys. The commercial license grants you legal rights to use the software in proprietary applications.
### Can I use BentoPDF in my SaaS product?
Yes, with a commercial license. Without it, you must comply with AGPL-3.0, which requires you to make your full source code available to users.
### What about the AGPL components?
Components like CoherentPDF are licensed under AGPL v3 and remain under that license. The commercial license covers BentoPDF's own code but does not override third-party AGPL obligations.
### How do I get an invoice?
Polar emails your invoice automatically after purchase. For a VAT invoice, select "I'm purchasing as a business" at checkout. If you need anything else, email [contact@bentopdf.com](mailto:contact@bentopdf.com) with your purchase details.
+275
View File
@@ -0,0 +1,275 @@
# استقرار با Apache
BentoPDF را با Apache HTTP Server میزبانی کنید.
## پیش‌نیازها
- Apache 2.4+
- فعال بودن mod_rewrite
- گواهی SSL (توصیه‌شده)
## گام ۱: ساخت پروژه
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
npm install
npm run build
```
برای سفارشی‌سازی برند، پیش از ساخت متغیرهای محیطی را تنظیم کنید:
```bash
VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
```
## گام ۲: کپی فایل‌ها
```bash
sudo mkdir -p /var/www/bentopdf
sudo cp -r dist/* /var/www/bentopdf/
sudo chown -R www-data:www-data /var/www/bentopdf
```
## گام ۳: پیکربندی Apache
فایل `/etc/apache2/sites-available/bentopdf.conf` را بسازید:
```apache
<VirtualHost *:80>
ServerName your-domain.com
Redirect permanent / https://your-domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName your-domain.com
DocumentRoot /var/www/bentopdf
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/your-domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/your-domain.com/privkey.pem
<Directory /var/www/bentopdf>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# WASM MIME type
AddType application/wasm .wasm
# Prevent double-compression of pre-compressed files
SetEnvIfNoCase Request_URI "\.gz$" no-gzip
# Compression
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
</IfModule>
# Cache headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/wasm "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
</IfModule>
# Required headers for SharedArrayBuffer (LibreOffice WASM)
Header always set Cross-Origin-Embedder-Policy "require-corp"
Header always set Cross-Origin-Opener-Policy "same-origin"
Header always set Cross-Origin-Resource-Policy "cross-origin"
# Security headers
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
# Pre-compressed LibreOffice WASM files
<FilesMatch "soffice\.wasm\.gz$">
ForceType application/wasm
Header set Content-Encoding "gzip"
</FilesMatch>
<FilesMatch "soffice\.data\.gz$">
ForceType application/octet-stream
Header set Content-Encoding "gzip"
</FilesMatch>
</VirtualHost>
```
## گام ۴: فایل .htaccess برای مسیریابی
فایل `/var/www/bentopdf/.htaccess` را بسازید:
```apache
RewriteEngine On
RewriteBase /
# Existing files/dirs - serve directly
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# ============================================
# LANGUAGE ROUTES
# ============================================
# Supported languages: de, es, zh, zh-TW, vi, it, id, tr, fr, pt
# English has no prefix - served from root
# English prefix redirects to root
RewriteRule ^en/?$ / [R=301,L]
RewriteRule ^en/(.+)$ /$1 [R=301,L]
# Language prefix root (e.g., /de/ -> /de/index.html)
RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/?$ /$1/index.html [L]
# Language prefix with path (e.g., /de/merge-pdf -> /de/merge-pdf.html)
RewriteCond %{DOCUMENT_ROOT}/$1/$2.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/([^/]+)/?$ /$1/$2.html [L]
# ============================================
# ADD .HTML EXTENSION (ROOT LEVEL)
# ============================================
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)$ $1.html [L]
ErrorDocument 404 /404.html
```
## گام ۵: فعال‌سازی ماژول‌های لازم
```bash
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod headers
sudo a2enmod expires
sudo a2enmod deflate
```
## گام ۶: فعال‌سازی سایت
```bash
sudo a2ensite bentopdf.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## استقرار در زیرپوشه
برای میزبانی در `/pdf/`:
1. با URL پایه بسازید:
```bash
BASE_URL=/pdf/ npm run build
```
2. فایل `.htaccess` را به‌روز کنید:
```apache
RewriteEngine On
RewriteBase /pdf/
# Existing files/dirs - serve directly
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Language routes
RewriteRule ^en/?$ /pdf/ [R=301,L]
RewriteRule ^en/(.+)$ /pdf/$1 [R=301,L]
RewriteCond %{DOCUMENT_ROOT}/pdf/$1/index.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/?$ /pdf/$1/index.html [L]
RewriteCond %{DOCUMENT_ROOT}/pdf/$1/$2.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/([^/]+)/?$ /pdf/$1/$2.html [L]
# Root level .html extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)$ $1.html [L]
ErrorDocument 404 /pdf/404.html
```
## عیب‌یابی
### خطاهای 404 برای WASM
مطمئن شوید نوع MIME پیکربندی شده است:
```apache
AddType application/wasm .wasm
```
### امضای PDF یا پرکنندهٔ فرم نمایشگر خالی نشان می‌دهد (خطای MIME برای `.mjs`)
اگر کنسول مرورگر این را نشان می‌دهد:
```
Failed to load module script: The server responded with a non-JavaScript
MIME type of "application/octet-stream". Strict MIME type checking is
enforced for module scripts per HTML spec.
```
…و درخواست ناموفق به `.mjs` ختم می‌شود، پیکربندی Apache شما نگاشت `.mjs → application/javascript` را ندارد. نمایشگر PDF همراه، فایل‌های ماژول ES با پسوند `.mjs` دارد و `mime.types` پیش‌فرض Apache به‌طور پیش‌فرض آن‌ها را شامل نمی‌شود.
به VirtualHost یا `.htaccess` خود اضافه کنید:
```apache
AddType application/javascript .mjs
```
سپس Apache را دوباره بارگذاری کنید:
```bash
sudo apache2ctl configtest && sudo systemctl reload apache2
```
برای تأیید: در DevTools مرورگر ← زبانهٔ Network، درخواست ناموفق `.mjs` را پیدا کنید و سرآیند پاسخ `Content-Type` را بررسی کنید. اکنون باید `application/javascript` باشد، نه `application/octet-stream`.
### بازنویسی کار نمی‌کند
بررسی کنید که mod_rewrite فعال باشد:
```bash
sudo a2enmod rewrite
```
### تبدیل Word/ODT/Excel به PDF کار نمی‌کند
LibreOffice WASM به `SharedArrayBuffer` نیاز دارد که این سرآیندها را لازم دارد:
```apache
Header always set Cross-Origin-Embedder-Policy "require-corp"
Header always set Cross-Origin-Opener-Policy "same-origin"
```
همچنین به یک بستر امن (secure context) نیاز دارد. `http://localhost` برای آزمایش محلی کار می‌کند، اما `http://192.168.x.x` یا دیگر IPهای شبکهٔ محلی معمولاً به HTTPS نیاز دارند. اگر سرآیندها وجود دارند اما `window.crossOriginIsolated` همچنان `false` است، بررسی کنید که آیا صفحه با HTTP ساده روی مبدأیی غیر از loopback باز می‌شود.
فایل‌های از پیش فشرده‌شدهٔ `.wasm.gz` و `.data.gz` نیز به `Content-Encoding` درست نیاز دارند:
```apache
<FilesMatch "soffice\.wasm\.gz$">
ForceType application/wasm
Header set Content-Encoding "gzip"
</FilesMatch>
<FilesMatch "soffice\.data\.gz$">
ForceType application/octet-stream
Header set Content-Encoding "gzip"
</FilesMatch>
```
مطمئن شوید `mod_headers` فعال است: `sudo a2enmod headers`
### دسترسی رد شد (Permission Denied)
```bash
sudo chown -R www-data:www-data /var/www/bentopdf
sudo chmod -R 755 /var/www/bentopdf
```
+200
View File
@@ -0,0 +1,200 @@
# استقرار روی AWS S3 + CloudFront
BentoPDF را برای حداکثر کنترل و مقیاس‌پذیری روی AWS میزبانی کنید.
## معماری
```
User → CloudFront (CDN) → S3 (Static Files)
```
## گام ۱: ساخت S3 Bucket
```bash
# Create bucket
aws s3 mb s3://your-bentopdf-bucket --region us-east-1
# Enable static website hosting
aws s3 website s3://your-bentopdf-bucket \
--index-document index.html \
--error-document index.html
```
## گام ۲: ساخت و بارگذاری
```bash
# Build the project (optionally with custom branding)
# VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
npm run build
# Sync to S3
aws s3 sync dist/ s3://your-bentopdf-bucket \
--delete \
--cache-control "max-age=31536000"
# Set correct MIME types for WASM
aws s3 cp s3://your-bentopdf-bucket/ s3://your-bentopdf-bucket/ \
--recursive \
--exclude "*" \
--include "*.wasm" \
--content-type "application/wasm" \
--metadata-directive REPLACE
# Set correct MIME type for ES module files (.mjs)
# S3 defaults .mjs to application/octet-stream, which browsers refuse to
# execute as ES modules. The bundled PDF viewer (Sign PDF, Form Filler)
# ships ES modules with .mjs extensions and will fail without this step.
aws s3 cp s3://your-bentopdf-bucket/ s3://your-bentopdf-bucket/ \
--recursive \
--exclude "*" \
--include "*.mjs" \
--content-type "application/javascript" \
--metadata-directive REPLACE
```
## گام ۳: ساخت CloudFront Distribution
```bash
aws cloudfront create-distribution \
--origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
--default-root-object index.html
```
یا از AWS Console استفاده کنید:
1. به CloudFront ← Create distribution بروید
2. Origin domain: S3 bucket خود را انتخاب کنید
3. گزینهٔ "Origin Access Control" را فعال کنید
4. Default root object: `index.html`
5. distribution را بسازید
## گام ۳b: سیاست سرآیندهای پاسخ (لازم برای LibreOffice WASM)
تبدیل‌های مبتنی بر LibreOffice (Word، Excel، PowerPoint به PDF) به `SharedArrayBuffer` نیاز دارند که سرآیندهای پاسخ مشخصی را لازم دارد. یک CloudFront Response Headers Policy بسازید:
1. به CloudFront ← Policies ← Response headers بروید
2. یک سیاست سفارشی با این سرآیندها بسازید:
| سرآیند | مقدار |
| ------------------------------ | -------------- |
| `Cross-Origin-Embedder-Policy` | `require-corp` |
| `Cross-Origin-Opener-Policy` | `same-origin` |
| `Cross-Origin-Resource-Policy` | `cross-origin` |
3. سیاست را به default cache behavior مربوط به distribution خود متصل کنید
یا از طریق CLI:
```bash
aws cloudfront create-response-headers-policy \
--response-headers-policy-config '{
"Name": "BentoPDF-COEP-COOP",
"CustomHeadersConfig": {
"Quantity": 3,
"Items": [
{"Header": "Cross-Origin-Embedder-Policy", "Value": "require-corp", "Override": true},
{"Header": "Cross-Origin-Opener-Policy", "Value": "same-origin", "Override": true},
{"Header": "Cross-Origin-Resource-Policy", "Value": "cross-origin", "Override": true}
]
}
}'
```
## گام ۳c: فرادادهٔ S3 برای فایل‌های WASM از پیش فشرده‌شده
فایل‌های LibreOffice WASM از پیش فشرده شده‌اند (`.wasm.gz`، `.data.gz`). Content-Type و Content-Encoding درست را تنظیم کنید تا مرورگرها آن‌ها را از حالت فشرده خارج کنند:
```bash
# Set correct headers for soffice.wasm.gz
aws s3 cp s3://your-bentopdf-bucket/libreoffice-wasm/soffice.wasm.gz \
s3://your-bentopdf-bucket/libreoffice-wasm/soffice.wasm.gz \
--content-type "application/wasm" \
--content-encoding "gzip" \
--metadata-directive REPLACE
# Set correct headers for soffice.data.gz
aws s3 cp s3://your-bentopdf-bucket/libreoffice-wasm/soffice.data.gz \
s3://your-bentopdf-bucket/libreoffice-wasm/soffice.data.gz \
--content-type "application/octet-stream" \
--content-encoding "gzip" \
--metadata-directive REPLACE
```
::: warning مهم
بدون سیاست سرآیندهای پاسخ، `SharedArrayBuffer` در دسترس نیست و تبدیل‌های LibreOffice WASM در حدود ۵۵٪ متوقف می‌شوند. بدون Content-Encoding درست روی فایل‌های `.gz`، مرورگر بایت‌های خام gzip را دریافت می‌کند و کامپایل WASM شکست می‌خورد.
:::
## گام ۴: سیاست S3 Bucket
به CloudFront اجازهٔ دسترسی به bucket را بدهید:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontAccess",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bentopdf-bucket/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::ACCOUNT_ID:distribution/DISTRIBUTION_ID"
}
}
}
]
}
```
## گام ۵: صفحات خطای سفارشی
خطای 404 را طوری پیکربندی کنید که برای مسیریابی SPA فایل `index.html` را برگرداند:
1. CloudFront ← Error pages
2. یک پاسخ خطای سفارشی بسازید:
- HTTP error code: 404
- Response page path: `/index.html`
- HTTP response code: 200
## برآورد هزینه
| منبع | هزینهٔ تقریبی |
| --------------------------- | ------------- |
| فضای ذخیره‌سازی S3 (~500MB) | ~$0.01 در ماه |
| CloudFront (انتقال 1TB) | ~$85 در ماه |
| CloudFront (انتقال 10GB) | ~$0.85 در ماه |
::: tip
برای بهینه‌سازی هزینهٔ فایل‌هایی که کمتر به آن‌ها دسترسی می‌شود، از S3 Intelligent Tiering استفاده کنید.
:::
## خودکارسازی با Terraform
```hcl
# main.tf
resource "aws_s3_bucket" "bentopdf" {
bucket = "your-bentopdf-bucket"
}
resource "aws_cloudfront_distribution" "bentopdf" {
origin {
domain_name = aws_s3_bucket.bentopdf.bucket_regional_domain_name
origin_id = "S3Origin"
}
enabled = true
default_root_object = "index.html"
default_cache_behavior {
allowed_methods = ["GET", "HEAD"]
cached_methods = ["GET", "HEAD"]
target_origin_id = "S3Origin"
viewer_protocol_policy = "redirect-to-https"
}
}
```
+154
View File
@@ -0,0 +1,154 @@
# استقرار روی Cloudflare Pages
[Cloudflare Pages](https://pages.cloudflare.com) میزبانی سریع و جهانی سایت‌های ایستا با پهنای باند نامحدود ارائه می‌دهد.
## استقرار سریع
1. به [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages) بروید
2. روی "Create a project" کلیک کنید
3. مخزن GitHub خود را متصل کنید
## پیکربندی ساخت
| تنظیم | مقدار |
| ---------------- | --------------- |
| Framework preset | None |
| فرمان ساخت | `npm run build` |
| پوشهٔ خروجی ساخت | `dist` |
| پوشهٔ ریشه | `/` |
## متغیرهای محیطی
این‌ها را در Settings ← Environment variables اضافه کنید:
| متغیر | مقدار |
| ----------------------- | ---------------------------------------------- |
| `NODE_VERSION` | `18` |
| `SIMPLE_MODE` | `false` (اختیاری) |
| `VITE_BRAND_NAME` | نام برند سفارشی (اختیاری) |
| `VITE_BRAND_LOGO` | مسیر لوگو نسبت به `public/` (اختیاری) |
| `VITE_FOOTER_TEXT` | متن سفارشی پاصفحه یا کپی‌رایت (اختیاری) |
| `VITE_DEFAULT_LANGUAGE` | زبان پیش‌فرض رابط کاربری، مثلاً `fr` (اختیاری) |
## فایل پیکربندی
فایل `_headers` را در پوشهٔ `public` خود بسازید:
```
# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
/*
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: cross-origin
# Pre-compressed LibreOffice WASM binary
/libreoffice-wasm/soffice.wasm.gz
Content-Type: application/wasm
Content-Encoding: gzip
Cache-Control: public, max-age=31536000, immutable
# Pre-compressed LibreOffice WASM data
/libreoffice-wasm/soffice.data.gz
Content-Type: application/octet-stream
Content-Encoding: gzip
Cache-Control: public, max-age=31536000, immutable
# Cache WASM files aggressively
/*.wasm
Cache-Control: public, max-age=31536000, immutable
Content-Type: application/wasm
# Service worker
/sw.js
Cache-Control: no-cache
```
::: warning مهم
سرآیندهای `Cross-Origin-Embedder-Policy` و `Cross-Origin-Opener-Policy` برای تبدیل Word/ODT/Excel/PowerPoint به PDF لازم هستند. بدون آن‌ها، `SharedArrayBuffer` در دسترس نیست و موتور LibreOffice WASM راه‌اندازی نمی‌شود.
:::
فایل `_redirects` را برای مسیریابی SPA بسازید:
```
/* /index.html 200
```
## دامنهٔ سفارشی
1. به پروژهٔ Pages خود بروید
2. روی "Custom domains" کلیک کنید
3. دامنهٔ خود را اضافه کنید
4. اگر دامنه روی Cloudflare باشد، Cloudflare به‌طور خودکار DNS را پیکربندی می‌کند
## مزایا
- **پهنای باند نامحدود رایگان**
- **CDN جهانی** با بیش از ۳۰۰ نقطهٔ لبه
- **HTTPS خودکار**
- **استقرارهای پیش‌نمایش** برای pull requestها
- **ساخت سریع**
## عیب‌یابی
### بارگذاری فایل‌های بزرگ
Cloudflare Pages از فایل‌هایی تا ۲۵ مگابایت پشتیبانی می‌کند. ماژول‌های WASM باید مشکلی نداشته باشند، اما اگر به محدودیت برخوردید، این را در نظر بگیرید:
```bash
# Split large files during build
npm run build
```
### محدودیت اندازهٔ Worker
اگر از Cloudflare Workers برای مسیریابی پیشرفته استفاده می‌کنید، به محدودیت ۱ مگابایت در طرح‌های رایگان توجه کنید.
## Worker پراکسی CORS (برای امضاهای دیجیتال)
ابزار امضای دیجیتال برای دریافت زنجیرهٔ گواهی‌ها به یک پراکسی CORS نیاز دارد. worker همراه را مستقر کنید:
```bash
cd cloudflare
npx wrangler login
npx wrangler deploy
```
### ویژگی‌های امنیتی
| ویژگی | توضیح |
| ------------------------ | ------------------------------------------- |
| **محدودیت URL** | فقط URLهای گواهی مجاز هستند |
| **محدودیت اندازهٔ فایل** | حداکثر 10MB برای هر درخواست |
| **محدودسازی نرخ** | ۶۰ درخواست برای هر IP در دقیقه (نیازمند KV) |
| **مسدودسازی IP خصوصی** | مسدود کردن localhost و IPهای داخلی |
### فعال‌سازی محدودسازی نرخ
```bash
# Create KV namespace
npx wrangler kv namespace create "RATE_LIMIT_KV"
# Add to wrangler.toml with returned ID:
# [[kv_namespaces]]
# binding = "RATE_LIMIT_KV"
# id = "YOUR_ID"
npx wrangler deploy
```
### ساخت با URL پراکسی
```bash
VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
```
یا با Docker:
```bash
export VITE_CORS_PROXY_URL="https://your-worker.workers.dev"
DOCKER_BUILDKIT=1 docker build \
--secret id=VITE_CORS_PROXY_URL,env=VITE_CORS_PROXY_URL \
-t your-bentopdf .
```
> **نکته:** برای راه‌اندازی امضای HMAC، [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) را ببینید.
+180
View File
@@ -0,0 +1,180 @@
# پراکسی CORS برای دریافت گواهی‌ها
ابزار امضای دیجیتال از یک پراکسی CORS برای دریافت گواهی‌های صادرکننده از مراجع صدور گواهی (CA) خارجی استفاده می‌کند. این کار لازم است، چون بسیاری از سرورهای CA سرآیندهای CORS را در پاسخ‌های خود قرار نمی‌دهند و این مانع دریافت مستقیم از مرورگر می‌شود.
علاوه بر این، بسیاری از سرورهای CA گواهی‌ها را روی HTTP ساده ارائه می‌کنند. وقتی نمونهٔ BentoPDF شما روی HTTPS میزبانی می‌شود، مرورگرها این درخواست‌های HTTP را مسدود می‌کنند (سیاست محتوای ترکیبی). پراکسی CORS هر دو مشکل را با هدایت درخواست‌ها از طریق یک endpoint با HTTPS و سرآیندهای مناسب حل می‌کند.
## نحوهٔ کار
هنگام امضای PDF با یک گواهی:
1. کتابخانهٔ `zgapdfsigner` تلاش می‌کند یک زنجیرهٔ کامل گواهی بسازد
2. گواهی‌های صادرکننده را از URLهایی که در افزونهٔ AIA (Authority Information Access) گواهی شما قرار دارند دریافت می‌کند
3. این درخواست‌ها از طریق یک پراکسی CORS هدایت می‌شوند که سرآیندهای لازم `Access-Control-Allow-Origin` را اضافه می‌کند
4. پراکسی دادهٔ گواهی را به مرورگر برمی‌گرداند
## میزبانی شخصی پراکسی CORS
اگر BentoPDF را خودتان میزبانی می‌کنید، باید پراکسی CORS خود را مستقر کنید تا امضای دیجیتال با گواهی‌هایی که به دریافت زنجیره نیاز دارند کار کند.
### گزینهٔ ۱: Cloudflare Workers (توصیه‌شده)
1. **نصب Wrangler CLI**:
```bash
npm install -g wrangler
```
2. **ورود به Cloudflare**:
```bash
wrangler login
```
3. **کلون کردن BentoPDF و به‌روزرسانی مبدأهای مجاز**:
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf/cloudflare
```
فایل `cors-proxy-worker.js` را باز کنید و آرایهٔ `ALLOWED_ORIGINS` را به دامنهٔ خود تغییر دهید:
```js
const ALLOWED_ORIGINS = [
'https://your-domain.com',
'https://www.your-domain.com',
];
```
::: warning مهم
بدون این تغییر، پراکسی همهٔ درخواست‌های سایت شما را با خطای **403 Forbidden** رد می‌کند. پیش‌فرض فقط درخواست‌های `bentopdf.com` را مجاز می‌کند.
:::
4. **استقرار پراکسی**:
```bash
wrangler deploy
```
URL worker خود را یادداشت کنید (مثلاً `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
5. **ساخت دوبارهٔ BentoPDF با URL پراکسی**:
اگر از Docker استفاده می‌کنید:
```bash
export VITE_CORS_PROXY_URL="https://your-worker.workers.dev"
DOCKER_BUILDKIT=1 docker build \
--secret id=VITE_CORS_PROXY_URL,env=VITE_CORS_PROXY_URL \
-t your-bentopdf .
```
اگر از کد منبع می‌سازید:
```bash
VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
```
### گزینهٔ ۲: پراکسی بک‌اند سفارشی
همچنین می‌توانید endpoint پراکسی خود را بسازید. الزامات عبارت‌اند از:
1. پذیرش درخواست‌های GET با پارامتر پرس‌وجوی `url`
2. دریافت URL از سرور شما (در سمت سرور محدودیت CORS وجود ندارد)
3. بازگرداندن پاسخ با این سرآیندها:
- `Access-Control-Allow-Origin: https://your-domain.com`
- `Access-Control-Allow-Methods: GET, OPTIONS`
- `X-Content-Type-Options: nosniff`
نمونهٔ پیاده‌سازی با Express.js:
```javascript
app.get('/api/cert-proxy', async (req, res) => {
const targetUrl = req.query.url;
// Validate it's a certificate URL
if (!isValidCertUrl(targetUrl)) {
return res.status(400).json({ error: 'Invalid URL' });
}
try {
const response = await fetch(targetUrl);
const data = await response.arrayBuffer();
res.set('Access-Control-Allow-Origin', 'https://your-domain.com');
res.set('Content-Type', 'application/octet-stream');
res.set('X-Content-Type-Options', 'nosniff');
res.send(Buffer.from(data));
} catch (error) {
res.status(500).json({ error: 'Proxy error' });
}
});
```
## ملاحظات امنیتی
Cloudflare Worker همراه چندین تدبیر امنیتی دارد:
| ویژگی | توضیح |
| ------------------------ | --------------------------------------------------------------------------------------------------------- |
| **اعتبارسنجی مبدأ** | فقط درخواست‌های دامنه‌های فهرست‌شده در `ALLOWED_ORIGINS` را مجاز می‌کند |
| **محدودیت URL** | فقط URLهای گواهی را مجاز می‌کند (`.crt`، `.cer`، `.pem`، `/certs/`، `/ocsp`، `/crl`) |
| **مسدودسازی IP خصوصی** | محدوده‌های خصوصی IPv4/IPv6، link-local، loopback، IPهای دهدهی و فرادادهٔ ابری را مسدود می‌کند |
| **ایمنی Content-Type** | فقط انواع MIME امن گواهی را برمی‌گرداند و تزریق content-type از بالادست را مسدود می‌کند |
| **محدودیت اندازهٔ فایل** | پاسخ را با محدودیت 10MB به‌صورت جریانی ارسال می‌کند و در صورت عبور از آن، دانلود را در میانه متوقف می‌کند |
| **محدودسازی نرخ** | ۶۰ درخواست در دقیقه برای هر IP یا IPv6 /64 (نیازمند KV، در خطاهای KV باز می‌ماند) |
| **امضاهای HMAC** | امضای اختیاری سمت کاربر (بازدارندهٔ سوءاستفادهٔ معمولی) |
### DNS rebinding (میزبانی شخصی خارج از Cloudflare)
worker هر URL را که به یک IP خصوصی یا داخلی resolve شود رد می‌کند. نمی‌تواند از فهرست ثابتی از میزبان‌های مجاز استفاده کند، چون URLهای زنجیرهٔ گواهی به هر CA که گواهی را صادر کرده اشاره می‌کنند (FNMT، CAهای سازمانی و غیره)، پس مقصدها از پیش معلوم نیستند. این یک پنجرهٔ کوچک rebinding باقی می‌گذارد: کسی که DNS دامنهٔ خودش را اداره می‌کند می‌تواند یک IP عمومی به بررسی ایمنی و لحظه‌ای بعد یک IP خصوصی به درخواست واقعی بدهد.
روی Cloudflare این قابل بهره‌برداری نیست: Workers نمی‌توانند به IPهای خصوصی یا endpoint فرادادهٔ `169.254.169.254` دسترسی پیدا کنند، پس rebind به جایی نمی‌رسد. فقط راه ورودی به worker ندهید: Tunnel، Service یا binding شبکهٔ خصوصی متصل نکنید (فقط به `RATE_LIMIT_KV` نیاز دارد).
اگر این را خارج از Cloudflare (workerd، Node و مانند آن‌ها) درون یک VPC اجرا می‌کنید، محیط اجرا _می‌تواند_ به IPهای داخلی دسترسی پیدا کند. یک فایروال خروجی جلوی آن قرار دهید و محدوده‌های خصوصی را مسدود کنید: `10.0.0.0/8`، `172.16.0.0/12`، `192.168.0.0/16`، `127.0.0.0/8`، `169.254.0.0/16` و معادل‌های IPv6 آن‌ها. وقتی خارج از Cloudflare هستید، کد برنامه نمی‌تواند این را اعمال کند.
## غیرفعال کردن پراکسی
اگر نمی‌خواهید از پراکسی CORS استفاده کنید، متغیر محیطی را با رشتهٔ خالی تنظیم کنید:
```
VITE_CORS_PROXY_URL=
```
**نکته**: بدون پراکسی، امضا با گواهی‌هایی که به دریافت خارجی زنجیره نیاز دارند (مانند FNMT یا برخی CAهای سازمانی) با خطای "Failed to fetch" شکست می‌خورد.
## عیب‌یابی
### "Signing error: TypeError: Failed to fetch"
این معمولاً یعنی یکی از این موارد:
1. **پراکسی CORS پیکربندی نشده است**: `VITE_CORS_PROXY_URL` را تنظیم کنید و دوباره بسازید
2. **محتوای ترکیبی مسدود شده است**: سایت شما HTTPS است، اما URL صادرکنندهٔ گواهی HTTP است. پراکسی CORS این را حل می‌کند.
3. **پراکسی CORS مبدأ شما را رد می‌کند**: بررسی کنید دامنهٔ شما در آرایهٔ `ALLOWED_ORIGINS` در `cors-proxy-worker.js` باشد
### خطای "403 Forbidden" از پراکسی
دامنهٔ شما در فهرست `ALLOWED_ORIGINS` نیست. `cors-proxy-worker.js` را ویرایش کنید:
```js
const ALLOWED_ORIGINS = ['https://your-domain.com'];
```
سپس دوباره مستقر کنید: `npx wrangler deploy`
### آزمایش پراکسی
```bash
curl -H "Origin: https://your-domain.com" \
"https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
```
### گواهی‌هایی که بدون پراکسی کار می‌کنند
برخی گواهی‌ها زنجیرهٔ کامل را در فایل P12/PFX دارند و به دریافت خارجی نیاز ندارند:
- گواهی‌های خودامضا
- برخی CAهای تجاری که گواهی‌های میانی را همراه می‌کنند
- گواهی‌هایی که خودتان دستی با زنجیرهٔ کامل سرهم کرده‌اید
+622
View File
@@ -0,0 +1,622 @@
# استقرار با Docker / Podman
ساده‌ترین راه برای میزبانی شخصی BentoPDF در محیط production.
> [!IMPORTANT]
> **سرآیندهای لازم برای تبدیل فایل‌های Office**
>
> ابزارهای مبتنی بر LibreOffice (تبدیل Word، Excel، PowerPoint) برای پشتیبانی از `SharedArrayBuffer` به این سرآیندهای HTTP نیاز دارند:
>
> - `Cross-Origin-Opener-Policy: same-origin`
> - `Cross-Origin-Embedder-Policy: require-corp`
>
> صفحه همچنین باید از یک بستر امن (secure context) ارائه شود. `http://localhost` برای آزمایش محلی کار می‌کند، اما `http://192.168.x.x` یا دیگر IPهای شبکهٔ محلی معمولاً واجد شرایط نیستند، بنابراین تبدیل Office روی HTTP ساده حتی با وجود سرآیندها شکست می‌خورد.
>
> ایمیج‌های رسمی کانتینر این سرآیندها را دارند. اگر از پراکسی معکوس (مانند Traefik، Caddy و غیره) استفاده می‌کنید، مطمئن شوید این سرآیندها حفظ یا اضافه می‌شوند و برای دسترسی غیر loopback از HTTPS استفاده کنید.
> [!TIP]
> **کاربران Podman:** همهٔ فرمان‌های `docker` با Podman کار می‌کنند؛ کافی است `docker` را با `podman` و `docker-compose` را با `podman-compose` جایگزین کنید.
## شروع سریع
> [!TIP]
> BentoPDF در دو نسخهٔ ساخت عرضه می‌شود:
>
> - **نسخهٔ میزبانی شخصی**: `ghcr.io/alam00000/bentopdf-simple:latest`. همهٔ ابزارهای PDF، **بدون** بخش‌های بازاریابی (بدون hero، پرسش‌های متداول، نظرات کاربران و پاصفحه). از این نسخه برای استقرارهای داخلی، تیمی و سازمانی استفاده کنید. این نسخه یک نسخهٔ «سبک» با قابلیت‌های کمتر **نیست**.
> - **نسخهٔ تجاری**: `ghcr.io/alam00000/bentopdf:latest`. سایت کامل بازاریابی که خود bentopdf.com و دارندگان مجوز تجاری برای استقرارهای عمومی از آن استفاده می‌کنند.
>
> اگر مطمئن نیستید: نسخهٔ میزبانی شخصی را دریافت کنید.
```bash
# Docker
docker run -d \
--name bentopdf \
-p 3000:8080 \
--restart unless-stopped \
ghcr.io/alam00000/bentopdf-simple:latest
# Podman
podman run -d \
--name bentopdf \
-p 3000:8080 \
ghcr.io/alam00000/bentopdf-simple:latest
```
## Docker Compose / Podman Compose
فایل `docker-compose.yml` را بسازید:
```yaml
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
container_name: bentopdf
ports:
- '3000:8080'
restart: unless-stopped
healthcheck:
test: ['CMD', 'wget', '--spider', '-q', 'http://localhost:8080']
interval: 30s
timeout: 10s
retries: 3
```
اجرا:
```bash
# Docker Compose
docker compose up -d
# Podman Compose
podman-compose up -d
```
## ساخت ایمیج شخصی
```dockerfile
# Dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginxinc/nginx-unprivileged:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
```
ساخت و اجرا:
```bash
docker build -t bentopdf:custom .
docker run -d -p 3000:8080 bentopdf:custom
```
## متغیرهای محیطی
| متغیر | توضیح | پیش‌فرض |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| `SIMPLE_MODE` | ساخت نسخهٔ میزبانی شخصی (بخش‌های بازاریابی bentopdf.com، یعنی hero، پرسش‌های متداول، نظرات کاربران و پاصفحه را پنهان می‌کند). همهٔ ابزارهای PDF باقی می‌مانند. | `false` |
| `BASE_URL` | استقرار در زیرپوشه | `/` |
| `VITE_WASM_PYMUPDF_URL` | URL ماژول PyMuPDF WASM | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
| `VITE_WASM_GS_URL` | URL ماژول Ghostscript WASM | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
| `VITE_WASM_CPDF_URL` | URL ماژول CoherentPDF WASM | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
| `VITE_TESSERACT_WORKER_URL` | URL اسکریپت worker برای OCR | _(خالی؛ استفاده از CDN پیش‌فرض Tesseract.js)_ |
| `VITE_TESSERACT_CORE_URL` | پوشهٔ هستهٔ اجرایی OCR | _(خالی؛ استفاده از CDN پیش‌فرض Tesseract.js)_ |
| `VITE_TESSERACT_LANG_URL` | پوشهٔ traineddata برای OCR | _(خالی؛ استفاده از CDN پیش‌فرض Tesseract.js)_ |
| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | زبان‌های OCR نمایش‌داده‌شده در رابط کاربری، جداشده با کاما | _(خالی؛ نمایش فهرست کامل)_ |
| `VITE_OCR_FONT_BASE_URL` | پوشهٔ فونت‌های لایهٔ متنی OCR | _(خالی؛ استفاده از URLهای راه دور فونت Noto)_ |
| `VITE_DEFAULT_LANGUAGE` | زبان پیش‌فرض رابط کاربری | `en` |
| `VITE_BRAND_NAME` | نام برند سفارشی | `BentoPDF` |
| `VITE_BRAND_LOGO` | مسیر لوگو نسبت به `public/` | `images/favicon-no-bg.svg` |
| `VITE_FOOTER_TEXT` | متن سفارشی پاصفحه یا کپی‌رایت | `© 2026 BentoPDF. All rights reserved.` |
| `DISABLE_TOOLS` | شناسه‌های ابزارهایی که پنهان می‌شوند، جداشده با کاما | _(خالی؛ همهٔ ابزارها فعال)_ |
| `DISABLE_GITHUB_STARS` | از دریافت تعداد ستاره‌های GitHub هنگام بارگذاری صفحه صرف‌نظر می‌کند و `api.github.com` را از CSP حذف می‌کند. ساخت‌های Simple Mode همیشه از آن صرف‌نظر می‌کنند. | `false` |
| `SITE_URL` | URL عمومی که در پیوندهای canonical، hreflang و sitemap نوشته می‌شود. آن را روی پیش‌فرض نگه دارید، مگر اینکه بخواهید موتورهای جستجو استقرار شما را سایتی مستقل بدانند. | `https://www.bentopdf.com` |
| `ALLOW_INDEXING` | با `SITE_URL` سفارشی، همهٔ صفحات `noindex` علامت‌گذاری می‌شوند تا نسخهٔ شما در نتایج جستجو با bentopdf.com رقابت نکند. برای اجازهٔ نمایه‌سازی به موتورهای جستجو، آن را `true` کنید. | `false` |
URLهای ماژول‌های WASM با پیش‌فرض‌های CDN از پیش پیکربندی شده‌اند؛ همهٔ قابلیت‌های پیشرفته بلافاصله کار می‌کنند. برای استقرارهای ایزوله یا میزبانی شخصی، این‌ها را بازنویسی کنید.
### موتورهای جستجو
به‌طور پیش‌فرض، همهٔ صفحات bentopdf.com را به‌عنوان نسخهٔ اصلی به موتورهای جستجو معرفی می‌کنند تا استقرار شما به‌صورت تکراری نمایش داده نشود. برای یک نمونهٔ خصوصی یا داخلی نیازی به تغییر چیزی نیست.
- **کاملاً بیرون نگه داشتن نمونهٔ شما از نتایج جستجو:** کانتینر را با `-e ROBOTS_NOINDEX=true` اجرا کنید. این فقط به راه‌اندازی مجدد نیاز دارد، نه ساخت دوباره.
- **تبدیل نمونهٔ شما به سایتی مستقل در نتایج جستجو:** با `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true` بسازید. بدون `ALLOW_INDEXING=true`، یک `SITE_URL` سفارشی همهٔ صفحات را `noindex` علامت‌گذاری می‌کند.
### Content-Security-Policy
ایمیج nginx با یک سرآیند `Content-Security-Policy` اجباری عرضه می‌شود. دستورهای `script-src`، `connect-src` و `font-src` در CSP **هنگام ساخت** از متغیرهای URL `VITE_*` بالا تولید می‌شوند؛ هر میزبانی که از طریق `--build-arg` بدهید به‌طور خودکار به سیاست افزوده می‌شود.
در نتیجه:
- اگر `VITE_CORS_PROXY_URL` یا `VITE_WASM_*_URL` را هنگام ساخت بازنویسی کنید، CSP به‌طور خودکار آن مبدأها را مجاز می‌کند؛ نیازی به پیکربندی اضافه نیست.
- برای URLهای روی `cdn.jsdelivr.net`، `script-src` فقط پوشهٔ دقیق بسته با نسخهٔ مشخص را مجاز می‌کند، برای مثال `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`، نه کل CDN را. jsDelivr هر بستهٔ عمومی npm یا مخزن GitHub را ارائه می‌کند، پس مجاز کردن کل میزبان به هر یک از آن‌ها اجازه می‌دهد روی نمونهٔ شما اجرا شوند. URLهای روی هر میزبان دیگر بر اساس مبدأ مجاز می‌شوند.
- اگر URLهای سفارشی WASM را در _زمان اجرا_ از طریق صفحهٔ «تنظیمات پیشرفته» درون برنامه پیکربندی کنید، آن مبدأها در CSP **نیستند** و مرورگر درخواست‌ها به آن‌ها را مسدود می‌کند. این برای نسخهٔ دیگری از همان بسته روی `cdn.jsdelivr.net` نیز صدق می‌کند، چون فقط نسخهٔ تنظیم‌شده هنگام ساخت مجاز است. پیکربندی زمان اجرا برای آزمایش در نظر گرفته شده است؛ برای URLهای سفارشی دائمی، build arg متناظر `VITE_*` را تنظیم کنید.
- در استقرارهای ایزوله‌ای که هر سه مقدار `VITE_WASM_*_URL` را بازنویسی می‌کنند، آن پوشه‌های بسته روی `cdn.jsdelivr.net` نیز از CSP حذف می‌شوند (هر پیش‌فرض جایگزین می‌شود، نه اینکه به آن افزوده شود). پیش‌فرض‌های Tesseract OCR روی `cdn.jsdelivr.net` تا زمانی که سه مقدار `VITE_TESSERACT_*` را نیز تنظیم نکنید در سیاست باقی می‌مانند. به همین ترتیب، تنظیم `VITE_CORS_PROXY_URL` جایگزین پیش‌فرض عمومی `bentopdf-cors-proxy.bentopdf.workers.dev` می‌شود.
CSP شامل `'unsafe-eval'` در `script-src` است، زیرا محیط اجرایی LibreOffice WASM (که ابزارهای تبدیل Word/Excel/PowerPoint از آن استفاده می‌کنند) و کتابخانهٔ تصویر wasm-vips (که PDF به TIFF از آن استفاده می‌کند) کد توزیع داخلی را از طریق `new Function()` کامپایل می‌کنند. حذف آن این ابزارها را از کار می‌اندازد. اگر در `SIMPLE_MODE` (بدون LibreOffice) می‌سازید و به PDF به TIFF نیاز ندارید، می‌توانید فایل تولیدشدهٔ `security-headers.conf` را دستی ویرایش کنید و برای سیاستی سخت‌گیرانه‌تر `'unsafe-eval'` را حذف کنید.
برای OCR، متغیرهای `VITE_TESSERACT_*` را خالی بگذارید تا از منابع آنلاین پیش‌فرض استفاده شود، یا برای OCR میزبانی‌شده یا آفلاین هر سه را با هم تنظیم کنید. بازنویسی‌های ناقص OCR رد می‌شوند، چون worker، هستهٔ اجرایی و پوشهٔ traineddata باید با هم سازگار باشند. برای خروجی PDF قابل‌جستجوی کاملاً آفلاین، `VITE_OCR_FONT_BASE_URL` را نیز تنظیم کنید تا فونت‌های لایهٔ متنی OCR به‌جای URLهای عمومی فونت Noto از سرور داخلی شما بارگذاری شوند.
`VITE_DEFAULT_LANGUAGE` زبان رابط کاربری را برای بازدیدکنندگان بار اول تعیین می‌کند. مقادیر پشتیبانی‌شده: `en`، `ar`، `be`، `fr`، `de`، `es`، `zh`، `zh-TW`، `vi`، `tr`، `id`، `it`، `pt`، `nl`، `da`. کاربران همچنان می‌توانند زبان را تغییر دهند؛ این فقط پیش‌فرض را تغییر می‌دهد.
مثال:
```bash
# Build with French as the default language
docker build --build-arg VITE_DEFAULT_LANGUAGE=fr -t bentopdf .
docker run -d -p 3000:8080 bentopdf
```
### برندسازی سفارشی
لوگو، نام و متن پاصفحهٔ پیش‌فرض BentoPDF را با موارد خودتان جایگزین کنید. فایل لوگوی خود را در پوشهٔ `public/` قرار دهید (یا از یک تصویر موجود استفاده کنید)، سپس متغیرهای برندسازی را هنگام ساخت ارسال کنید:
```bash
docker build \
--build-arg VITE_BRAND_NAME="AcmePDF" \
--build-arg VITE_BRAND_LOGO="images/acme-logo.svg" \
--build-arg VITE_FOOTER_TEXT="© 2026 Acme Corp. Internal use only." \
-t acmepdf .
```
برندسازی هم در حالت کامل و هم در Simple Mode کار می‌کند و با همهٔ گزینه‌های دیگر زمان ساخت قابل ترکیب است.
### غیرفعال کردن ابزارهای مشخص
ابزارها را برای الزامات انطباق یا امنیتی از رابط کاربری پنهان کنید. ابزارهای غیرفعال از صفحهٔ اصلی، نتایج جستجو، میان‌برهای صفحه‌کلید و سازندهٔ گردش کار حذف می‌شوند. دسترسی مستقیم از طریق URL صفحهٔ «ابزار در دسترس نیست» را نشان می‌دهد.
شناسهٔ ابزار همان URL صفحه بدون `.html` است. برای مثال، اگر ابزار در `bentopdf.com/edit-pdf.html` باشد، شناسه `edit-pdf` است.
#### یافتن شناسهٔ ابزارها
ساده‌ترین راه: هر ابزاری را در BentoPDF باز کنید و به URL نگاه کنید. بخش آخر مسیر (بدون `.html`) شناسهٔ ابزار است.
<details>
<summary>فهرست کامل شناسه‌های ابزارها</summary>
**ویرایش و حاشیه‌نویسی:** `edit-pdf`, `bookmark`, `table-of-contents`, `page-numbers`, `add-page-labels`, `bates-numbering`, `add-watermark`, `header-footer`, `invert-colors`, `scanner-effect`, `adjust-colors`, `background-color`, `text-color`, `sign-pdf`, `add-stamps`, `remove-annotations`, `crop-pdf`, `form-filler`, `form-creator`, `remove-blank-pages`
**تبدیل به PDF:** `image-to-pdf`, `jpg-to-pdf`, `png-to-pdf`, `webp-to-pdf`, `svg-to-pdf`, `bmp-to-pdf`, `heic-to-pdf`, `tiff-to-pdf`, `txt-to-pdf`, `markdown-to-pdf`, `json-to-pdf`, `csv-to-pdf`, `rtf-to-pdf`, `odt-to-pdf`, `word-to-pdf`, `excel-to-pdf`, `powerpoint-to-pdf`, `xps-to-pdf`, `mobi-to-pdf`, `epub-to-pdf`, `fb2-to-pdf`, `cbz-to-pdf`, `wpd-to-pdf`, `wps-to-pdf`, `xml-to-pdf`, `pages-to-pdf`, `odg-to-pdf`, `ods-to-pdf`, `odp-to-pdf`, `pub-to-pdf`, `vsd-to-pdf`, `psd-to-pdf`, `email-to-pdf`
**تبدیل از PDF:** `pdf-to-jpg`, `pdf-to-png`, `pdf-to-webp`, `pdf-to-bmp`, `pdf-to-tiff`, `pdf-to-cbz`, `pdf-to-svg`, `pdf-to-csv`, `pdf-to-excel`, `pdf-to-greyscale`, `pdf-to-json`, `pdf-to-docx`, `extract-images`, `pdf-to-markdown`, `prepare-pdf-for-ai`, `pdf-to-text`
**سازماندهی و مدیریت:** `ocr-pdf`, `merge-pdf`, `alternate-merge`, `organize-pdf`, `add-attachments`, `extract-attachments`, `edit-attachments`, `pdf-multi-tool`, `pdf-layers`, `extract-tables`, `split-pdf`, `divide-pages`, `extract-pages`, `delete-pages`, `add-blank-page`, `reverse-pages`, `rotate-pdf`, `rotate-custom`, `n-up-pdf`, `pdf-booklet`, `combine-single-page`, `view-metadata`, `edit-metadata`, `pdf-to-zip`, `compare-pdfs`, `posterize-pdf`, `page-dimensions`
**بهینه‌سازی و تعمیر:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
**امنیت:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
</details>
#### گزینهٔ ۱: زمان ساخت (Docker build arg)
```bash
docker build \
--build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
-t bentopdf .
```
این کار فهرست غیرفعال‌ها را در بستهٔ JavaScript قرار می‌دهد. تغییر آن به ساخت دوباره نیاز دارد.
#### گزینهٔ ۲: زمان اجرا (config.json)
یک فایل `config.json` را در پوشهٔ ارائه‌شده mount کنید؛ نیازی به ساخت دوباره نیست:
```json
{
"disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
}
```
```bash
docker run -d \
-p 3000:8080 \
-v ./config.json:/usr/share/nginx/html/config.json:ro \
ghcr.io/alam00000/bentopdf-simple:latest
```
یا با Docker Compose:
```yaml
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
ports:
- '3000:8080'
volumes:
- ./config.json:/usr/share/nginx/html/config.json:ro
```
هر دو روش قابل ترکیب هستند؛ فهرست‌ها ادغام می‌شوند. اگر ابزاری در هر یک از آن‌ها باشد، غیرفعال می‌شود.
#### غیرفعال کردن قابلیت‌های ویرایشگر
همچنین می‌توانید قابلیت‌های مشخصی را در ویرایشگر PDF (مثلاً حذف محتوای حساس، حاشیه‌نویسی‌ها، فرم‌ها) بدون غیرفعال کردن کل ابزار ویرایشگر غیرفعال کنید. `editorDisabledCategories` را به `config.json` خود اضافه کنید:
```json
{
"editorDisabledCategories": ["redaction", "annotation-stamp"]
}
```
<details>
<summary>فهرست کامل دسته‌های ویرایشگر</summary>
**بزرگنمایی:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
**حاشیه‌نویسی:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
**اشکال:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
**فرم:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
**حذف محتوای حساس:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
**سند:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
**صفحه:** `page`, `spread`, `rotate`, `scroll`, `navigation`
**پنل:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
**ابزارها:** `tools`, `pan`, `pointer`, `capture`
**انتخاب:** `selection`, `selection-copy`
**تاریخچه:** `history`, `history-undo`, `history-redo`
</details>
دسته‌ها سلسله‌مراتبی هستند؛ غیرفعال کردن یک والد (مثلاً `annotation`) همهٔ فرزندان آن را غیرفعال می‌کند.
### غیرفعال کردن شمارندهٔ ستاره‌های GitHub
نوار ناوبری تعداد زندهٔ ستاره‌های GitHub را نشان می‌دهد که هنگام بارگذاری صفحه از `api.github.com` دریافت می‌شود. این تنها درخواست خارجی است که به یک قابلیت PDF مربوط نیست. آن را هنگام ساخت غیرفعال کنید تا کد دریافت از بسته حذف شود و `api.github.com` از Content-Security-Policy کنار گذاشته شود:
```bash
docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
```
ساخت‌های Simple Mode (`bentopdf-simple`) همیشه از شمارندهٔ ستاره صرف‌نظر می‌کنند؛ این پرچم فقط در نسخهٔ تجاری یا ساخت‌های کامل سفارشی لازم است.
### URLهای سفارشی WASM (ایزوله / میزبانی شخصی)
> [!IMPORTANT]
> URLهای WASM **هنگام ساخت** در JavaScript قرار می‌گیرند. فایل‌های WASM در زمان اجرا توسط **مرورگر کاربر** دانلود می‌شوند؛ Docker آن‌ها را هنگام ساخت دانلود نمی‌کند. برای شبکه‌های ایزوله، باید فایل‌های WASM را روی یک سرور داخلی که مرورگرها به آن دسترسی دارند میزبانی کنید.
**روند کامل محیط ایزوله:**
```bash
# 1. On a machine WITH internet — download WASM packages
bash scripts/prepare-airgap.sh --list-ocr-languages
bash scripts/prepare-airgap.sh --search-ocr-language german
# 2. Download WASM/OCR packages
npm pack @bentopdf/pymupdf-wasm@0.11.14
npm pack @bentopdf/gs-wasm
npm pack coherentpdf
npm pack tesseract.js@7.0.0
npm pack tesseract.js-core@7.0.0
mkdir -p tesseract-langdata
curl -fsSL https://cdn.jsdelivr.net/npm/@tesseract.js-data/eng/4.0.0_best_int/eng.traineddata.gz -o tesseract-langdata/eng.traineddata.gz
mkdir -p ocr-fonts
curl -fsSL https://raw.githack.com/googlefonts/noto-fonts/main/hinted/ttf/NotoSans/NotoSans-Regular.ttf -o ocr-fonts/NotoSans-Regular.ttf
# 3. Build the image with your internal server URLs
docker build \
--build-arg VITE_WASM_PYMUPDF_URL=https://internal-server.example.com/wasm/pymupdf/ \
--build-arg VITE_WASM_GS_URL=https://internal-server.example.com/wasm/gs/ \
--build-arg VITE_WASM_CPDF_URL=https://internal-server.example.com/wasm/cpdf/ \
--build-arg VITE_TESSERACT_WORKER_URL=https://internal-server.example.com/wasm/ocr/worker.min.js \
--build-arg VITE_TESSERACT_CORE_URL=https://internal-server.example.com/wasm/ocr/core \
--build-arg VITE_TESSERACT_LANG_URL=https://internal-server.example.com/wasm/ocr/lang-data \
--build-arg VITE_TESSERACT_AVAILABLE_LANGUAGES=eng,deu \
--build-arg VITE_OCR_FONT_BASE_URL=https://internal-server.example.com/wasm/ocr/fonts \
-t bentopdf .
# 4. Export the image
docker save bentopdf -o bentopdf.tar
# 5. Transfer bentopdf.tar + the .tgz packages + tesseract-langdata/ + ocr-fonts/ into the air-gapped network
# 6. Inside the air-gapped network — load and run
docker load -i bentopdf.tar
# Extract WASM packages to your internal web server
mkdir -p /var/www/wasm/pymupdf /var/www/wasm/gs /var/www/wasm/cpdf /var/www/wasm/ocr/core /var/www/wasm/ocr/lang-data /var/www/wasm/ocr/fonts
tar xzf bentopdf-pymupdf-wasm-0.11.14.tgz -C /var/www/wasm/pymupdf --strip-components=1
tar xzf bentopdf-gs-wasm-*.tgz -C /var/www/wasm/gs --strip-components=1
tar xzf coherentpdf-*.tgz -C /var/www/wasm/cpdf --strip-components=1
TEMP_TESS=$(mktemp -d)
tar xzf tesseract.js-7.0.0.tgz -C "$TEMP_TESS"
cp "$TEMP_TESS/package/dist/worker.min.js" /var/www/wasm/ocr/worker.min.js
rm -rf "$TEMP_TESS"
tar xzf tesseract.js-core-7.0.0.tgz -C /var/www/wasm/ocr/core --strip-components=1
cp ./tesseract-langdata/*.traineddata.gz /var/www/wasm/ocr/lang-data/
cp ./ocr-fonts/* /var/www/wasm/ocr/fonts/
# Run BentoPDF
docker run -d -p 3000:8080 --restart unless-stopped bentopdf
```
برای `--ocr-languages` از کدهایی استفاده کنید که `bash scripts/prepare-airgap.sh --list-ocr-languages` چاپ می‌کند، یا با `bash scripts/prepare-airgap.sh --search-ocr-language <term>` بر اساس نام جستجو کنید. وقتی با زیرمجموعهٔ محدودی از زبان‌های OCR می‌سازید، همان کدها را به `VITE_TESSERACT_AVAILABLE_LANGUAGES` بدهید تا برنامه فقط زبان‌های همراه را نشان دهد. برای خروجی OCR کاملاً آفلاین، پوشهٔ همراه `ocr-fonts/` را نیز میزبانی کنید و `VITE_OCR_FONT_BASE_URL` را به آن اشاره دهید.
یک متغیر را با رشتهٔ خالی تنظیم کنید تا آن ماژول غیرفعال شود (کاربران باید آن را دستی از طریق «تنظیمات پیشرفته» پیکربندی کنند).
## پورت سفارشی
به‌طور پیش‌فرض، BentoPDF درون کانتینر روی پورت `8080` گوش می‌دهد. برای تغییر آن، متغیر محیطی `PORT` را در زمان اجرا تنظیم کنید:
```bash
docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
```
| متغیر | توضیح | پیش‌فرض |
| ------ | -------------------------- | ------- |
| `PORT` | پورت شنود Nginx در کانتینر | `8080` |
این با هر دو Dockerfile استاندارد و nonroot کار می‌کند.
## شناسهٔ کاربر سفارشی (PUID/PGID)
برای محیط‌هایی که اجرا با یک کاربر غیر root مشخص را لازم دارند (دستگاه‌های NAS، Kubernetes با security context، سیاست‌های سازمانی)، BentoPDF یک Dockerfile جداگانه با پشتیبانی PUID/PGID به سبک LSIO ارائه می‌دهد.
### ساخت و اجرا
```bash
# Build the non-root image
docker build -f Dockerfile.nonroot -t bentopdf-nonroot .
# Run with custom UID/GID
docker run -d \
--name bentopdf \
-p 3000:8080 \
-e PUID=1000 \
-e PGID=1000 \
--restart unless-stopped \
bentopdf-nonroot
```
### متغیرهای محیطی
| متغیر | توضیح | پیش‌فرض |
| -------------- | ---------------------- | ------- |
| `PUID` | شناسهٔ کاربر برای اجرا | `1000` |
| `PGID` | شناسهٔ گروه برای اجرا | `1000` |
| `PORT` | پورت شنود Nginx | `8080` |
| `DISABLE_IPV6` | غیرفعال کردن شنود IPv6 | `false` |
### Docker Compose
```yaml
services:
bentopdf:
build:
context: .
dockerfile: Dockerfile.nonroot
container_name: bentopdf
ports:
- '3000:8080'
environment:
- PUID=1000
- PGID=1000
restart: unless-stopped
```
### نحوهٔ کار
کانتینر با root شروع می‌شود، کاربری با PUID/PGID مشخص‌شده می‌سازد، مالکیت همهٔ پوشه‌های قابل‌نوشتن را تنظیم می‌کند و سپس با `su-exec` از دسترسی‌ها صرف‌نظر می‌کند. فرایند nginx کاملاً با کاربر مشخص‌شدهٔ شما اجرا می‌شود.
> [!NOTE]
> `Dockerfile` استاندارد از `nginx-unprivileged` (UID 101) استفاده می‌کند و برای بیشتر استقرارها توصیه می‌شود. فقط وقتی به UID/GID مشخصی نیاز دارید از `Dockerfile.nonroot` استفاده کنید.
> [!WARNING]
> PUID/PGID نمی‌تواند `0` (root) باشد. entrypoint ورودی‌ها را اعتبارسنجی می‌کند و برای مقادیر نامعتبر با خطا خارج می‌شود.
## با Traefik (پراکسی معکوس)
```yaml
services:
traefik:
image: traefik:v2.10
command:
- '--providers.docker=true'
- '--entrypoints.web.address=:80'
- '--entrypoints.websecure.address=:443'
- '--certificatesresolvers.letsencrypt.acme.email=you@example.com'
- '--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json'
- '--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web'
ports:
- '80:80'
- '443:443'
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.bentopdf.rule=Host(`pdf.example.com`)'
- 'traefik.http.routers.bentopdf.entrypoints=websecure'
- 'traefik.http.routers.bentopdf.tls.certresolver=letsencrypt'
- 'traefik.http.services.bentopdf.loadbalancer.server.port=8080'
# Required headers for SharedArrayBuffer (LibreOffice WASM)
- 'traefik.http.routers.bentopdf.middlewares=bentopdf-headers'
- 'traefik.http.middlewares.bentopdf-headers.headers.customresponseheaders.Cross-Origin-Opener-Policy=same-origin'
- 'traefik.http.middlewares.bentopdf-headers.headers.customresponseheaders.Cross-Origin-Embedder-Policy=require-corp'
restart: unless-stopped
```
## با Caddy (پراکسی معکوس)
```yaml
services:
caddy:
image: caddy:2
ports:
- '80:80'
- '443:443'
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
restart: unless-stopped
volumes:
caddy_data:
```
Caddyfile:
```
pdf.example.com {
reverse_proxy bentopdf:8080
header Cross-Origin-Opener-Policy "same-origin"
header Cross-Origin-Embedder-Policy "require-corp"
}
```
## محدودیت منابع
```yaml
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
deploy:
resources:
limits:
cpus: '1'
memory: 512M
reservations:
cpus: '0.25'
memory: 128M
```
## Podman Quadlet (یکپارچگی با Systemd)
[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) به شما امکان می‌دهد کانتینرهای Podman را به‌صورت سرویس‌های systemd اجرا کنید. این برای استقرارهای production روی سیستم‌های Linux ایدئال است.
### راه‌اندازی پایهٔ Quadlet
یک فایل واحد کانتینر در `~/.config/containers/systemd/bentopdf.container` (کاربر) یا `/etc/containers/systemd/bentopdf.container` (سیستم) بسازید:
```ini
[Unit]
Description=BentoPDF - Privacy-first PDF toolkit
After=network-online.target
Wants=network-online.target
[Container]
Image=ghcr.io/alam00000/bentopdf-simple:latest
ContainerName=bentopdf
PublishPort=3000:8080
AutoUpdate=registry
[Service]
Restart=always
TimeoutStartSec=300
[Install]
WantedBy=default.target
```
### فعال‌سازی و شروع
```bash
# Reload systemd to detect new unit
systemctl --user daemon-reload
# Start the service
systemctl --user start bentopdf
# Enable on boot
systemctl --user enable bentopdf
# Check status
systemctl --user status bentopdf
# View logs
journalctl --user -u bentopdf -f
```
> [!TIP]
> برای استقرار در سطح سیستم، از `systemctl` بدون پرچم `--user` استفاده کنید و فایل را در `/etc/containers/systemd/` قرار دهید.
### Quadlet با بررسی سلامت
```ini
[Unit]
Description=BentoPDF with health monitoring
After=network-online.target
Wants=network-online.target
[Container]
Image=ghcr.io/alam00000/bentopdf-simple:latest
ContainerName=bentopdf
PublishPort=3000:8080
AutoUpdate=registry
HealthCmd=wget --spider -q http://localhost:8080 || exit 1
HealthInterval=30s
HealthTimeout=10s
HealthRetries=3
[Service]
Restart=always
TimeoutStartSec=300
[Install]
WantedBy=default.target
```
### به‌روزرسانی خودکار با Quadlet
Podman می‌تواند هنگام در دسترس بودن ایمیج‌های جدید، کانتینرها را به‌طور خودکار به‌روز کند:
```bash
# Enable auto-update timer
systemctl --user enable --now podman-auto-update.timer
# Check for updates manually
podman auto-update
# Dry run (check without updating)
podman auto-update --dry-run
```
### پیکربندی شبکهٔ Quadlet
برای پیکربندی شبکهٔ سفارشی، یک فایل شبکه به نام `bentopdf.network` بسازید:
```ini
[Network]
Subnet=10.89.0.0/24
Gateway=10.89.0.1
```
سپس در فایل کانتینر خود به آن ارجاع دهید:
```ini
[Container]
Image=ghcr.io/alam00000/bentopdf-simple:latest
ContainerName=bentopdf
PublishPort=3000:8080
Network=bentopdf.network
```
## به‌روزرسانی
```bash
# Pull latest image
docker compose pull
# Recreate container
docker compose up -d
```
+267
View File
@@ -0,0 +1,267 @@
# استقرار روی Hostinger
[Hostinger](https://hostinger.com) یک ارائه‌دهندهٔ محبوب میزبانی اشتراکی است. این راهنما استقرار BentoPDF روی میزبانی اشتراکی Hostinger را پوشش می‌دهد.
## پیش‌نیازها
- طرح میزبانی Hostinger با دسترسی به File Manager
- Node.js نصب‌شده به‌صورت محلی برای ساخت
## گام ۱: ساخت پروژه
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
npm install
npm run build
```
فایل‌های ساخته‌شده در پوشهٔ `dist` قرار می‌گیرند.
## گام ۲: بارگذاری روی Hostinger
### استقرار در دامنهٔ اصلی
1. وارد حساب Hostinger خود شوید
2. به **File Manager** ← **public_html** بروید
3. همهٔ فایل‌های موجود را **حذف** کنید (در صورت نیاز پشتیبان بگیرید)
4. همهٔ محتوای پوشهٔ محلی `dist` را در `public_html` **بارگذاری** کنید
### استقرار در زیرپوشه
اگر در یک زیرپوشه مستقر می‌کنید (مثلاً `yourdomain.com/pdf-tools/`):
1. با base URL درست بسازید:
```bash
BASE_URL=/pdf-tools/ npm run build
```
2. پوشه را در Hostinger بسازید:
- به **File Manager** ← **public_html** بروید
- یک پوشهٔ جدید بسازید: `pdf-tools`
3. همهٔ محتوای `dist` را در `public_html/pdf-tools/` بارگذاری کنید
## گام ۳: ساخت فایل .htaccess
یک فایل `.htaccess` در ریشهٔ پوشهٔ استقرار خود (`public_html` یا `public_html/pdf-tools/`) بسازید:
::: warning مهم
برای استقرار در زیرپوشه، `RewriteBase /` را به `RewriteBase /pdf-tools/` (یا نام پوشهٔ خود) تغییر دهید.
:::
```apache
RewriteEngine On
RewriteBase /
# ============================================
# 1. SECURITY HEADERS (CRITICAL FOR WASM)
# ============================================
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
# REQUIRED for soffice.js (SharedArrayBuffer)
Header always set Cross-Origin-Opener-Policy "same-origin"
Header always set Cross-Origin-Embedder-Policy "require-corp"
</IfModule>
# ============================================
# 2. BROWSER CACHING
# ============================================
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/wasm "access plus 1 year"
ExpiresByType application/gzip "access plus 1 year"
ExpiresByType text/html "access plus 0 seconds"
</IfModule>
# ============================================
# 3. COMPRESSION (STANDARD)
# ============================================
# Prevent server from double-compressing files
SetEnvIfNoCase Request_URI "\.gz$" no-gzip
SetEnvIfNoCase Request_URI "\.br$" no-gzip
SetEnvIfNoCase Request_URI "\.wasm$" no-gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE font/woff
AddOutputFilterByType DEFLATE font/ttf
</IfModule>
# ============================================
# 4. MIME TYPES & SPECIAL FILE HANDLING
# ============================================
AddType application/javascript .js .mjs
AddType application/wasm .wasm
AddType font/woff2 .woff2
AddType font/woff .woff
AddType image/webp .webp
# Handle soffice.wasm.gz correctly
<FilesMatch "soffice\.wasm\.gz$">
ForceType application/wasm
Header set Content-Encoding "gzip"
Header set Cross-Origin-Resource-Policy "cross-origin"
Header append Vary Accept-Encoding
</FilesMatch>
# Handle data.gz
<FilesMatch "soffice\.data\.gz$">
ForceType application/octet-stream
Header set Content-Encoding "gzip"
Header append Vary Accept-Encoding
</FilesMatch>
# ============================================
# 5. REDIRECTS & ROUTING
# ============================================
# Canonical WWW (update domain as needed)
RewriteCond %{HTTP_HOST} ^bentopdf\.com [NC]
RewriteRule ^(.*)$ https://www.bentopdf.com/$1 [L,R=301]
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Remove trailing slash (except for language root directories)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/$
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]
# Existing files/dirs - serve directly
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# ============================================
# 5.1. LANGUAGE ROUTES
# ============================================
# Supported languages: de, es, zh, zh-TW, vi, it, id, tr, fr, pt
# English has no prefix - served from root
# English prefix redirects to root (for SEO consistency)
RewriteRule ^en/?$ / [R=301,L]
RewriteRule ^en/(.+)$ /$1 [R=301,L]
# Language prefix root (e.g., /de/ -> /de/index.html)
RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/?$ /$1/index.html [L]
# Language prefix with path (e.g., /de/merge-pdf -> /de/merge-pdf.html)
RewriteCond %{DOCUMENT_ROOT}/$1/$2.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/([^/]+)/?$ /$1/$2.html [L]
# ============================================
# 5.5. DOCS ROUTING (VitePress)
# ============================================
RewriteCond %{REQUEST_URI} ^/docs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [L]
# ============================================
# 6. ADD .HTML EXTENSION IF FILE EXISTS (ROOT LEVEL ONLY)
# ============================================
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)$ $1.html [L]
# ============================================
# 7. ERROR PAGES
# ============================================
ErrorDocument 404 /404.html
```
## نمونهٔ .htaccess برای زیرپوشه
برای `yourdomain.com/pdf-tools/`، این خطوط را به‌روز کنید:
```apache
RewriteBase /pdf-tools/
# ... (same content as above, but update paths) ...
# Language prefix root
RewriteCond %{DOCUMENT_ROOT}/pdf-tools/$1/index.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/?$ /pdf-tools/$1/index.html [L]
# Language prefix with path
RewriteCond %{DOCUMENT_ROOT}/pdf-tools/$1/$2.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/([^/]+)/?$ /pdf-tools/$1/$2.html [L]
# Root level .html extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)$ $1.html [L]
ErrorDocument 404 /pdf-tools/404.html
```
## عیب‌یابی
### فایل‌های WASM بارگذاری نمی‌شوند
مطمئن شوید انواع MIME در `.htaccess` درست تنظیم شده‌اند:
```apache
AddType application/wasm .wasm
```
### ابزارهای LibreOffice کار نمی‌کنند
سرآیندهای امنیتی برای SharedArrayBuffer حیاتی هستند:
```apache
Header always set Cross-Origin-Opener-Policy "same-origin"
Header always set Cross-Origin-Embedder-Policy "require-corp"
```
اگر سرآیندها اعمال نمی‌شوند، با پشتیبانی Hostinger تماس بگیرید تا `mod_headers` را فعال کنند.
### خطاهای 404 هنگام بازخوانی صفحه
مطمئن شوید قاعدهٔ پسوند `.html` و مسیرهای زبان درست پیکربندی شده‌اند. BentoPDF از فایل‌های HTML ایستا استفاده می‌کند، نه مسیریابی SPA:
```apache
# Language routes serve actual files from language directories
RewriteCond %{DOCUMENT_ROOT}/$1/$2.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/([^/]+)/?$ /$1/$2.html [L]
# Root level pages
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)$ $1.html [L]
```
### محدودیت‌های بارگذاری فایل
Hostinger ممکن است محدودیت اندازهٔ فایل داشته باشد. اگر بارگذاری گروهی شکست خورد، فایل‌های WASM را جداگانه بارگذاری کنید.
+538
View File
@@ -0,0 +1,538 @@
# راهنمای میزبانی شخصی
BentoPDF را می‌توان روی زیرساخت خودتان میزبانی کرد. این راهنما گزینه‌های مختلف استقرار را پوشش می‌دهد.
## شروع سریع با Docker / Podman
سریع‌ترین راه برای میزبانی شخصی BentoPDF:
> [!TIP]
> BentoPDF در دو نسخهٔ ساخت عرضه می‌شود:
>
> - **نسخهٔ میزبانی شخصی**: `ghcr.io/alam00000/bentopdf-simple:latest`. همهٔ ابزارهای PDF، **بدون** بخش‌های تبلیغاتی (بدون hero، پرسش‌های متداول، نظرات کاربران، پاورقی). از این نسخه برای استقرارهای داخلی، تیمی یا سازمانی استفاده کنید. این نسخه یک نسخهٔ «سبک» با امکانات کمتر **نیست**.
> - **نسخهٔ تجاری**: `ghcr.io/alam00000/bentopdf:latest`. سایت کامل تبلیغاتی که خود bentopdf.com و دارندگان مجوز تجاری برای استقرارهای عمومی از آن استفاده می‌کنند.
>
> اگر مطمئن نیستید: نسخهٔ میزبانی شخصی را دریافت کنید.
> [!IMPORTANT]
> تبدیل فایل‌های Office به `SharedArrayBuffer` نیاز دارد، یعنی برنامه باید هم جداسازی‌شده بین مبدأها (cross-origin isolated) باشد و هم از یک بستر امن ارائه شود. ایمیج رسمی از قبل هدرهای لازم COOP/COEP را ارسال می‌کند، اما مرورگرها همچنان `SharedArrayBuffer` را روی مبداهای HTTP ساده در شبکهٔ محلی مانند `http://192.168.x.x` غیرفعال می‌کنند.
>
> از `http://localhost` فقط برای آزمایش روی همان دستگاه استفاده کنید. اگر کاربران از طریق IP یا نام میزبان شبکهٔ محلی به BentoPDF دسترسی دارند، آن را با HTTPS ارائه کنید.
```bash
# Docker
docker run -d -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
# Podman
podman run -d -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
```
یا با Docker Compose / Podman Compose:
```yaml
# docker-compose.yml
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
ports:
- '3000:8080'
restart: unless-stopped
```
```bash
# Docker Compose
docker compose up -d
# Podman Compose
podman-compose up -d
```
## Podman Quadlet (Linux Systemd)
BentoPDF را به‌عنوان یک سرویس systemd اجرا کنید. فایل `~/.config/containers/systemd/bentopdf.container` را بسازید:
```ini
[Container]
Image=ghcr.io/alam00000/bentopdf-simple:latest
ContainerName=bentopdf
PublishPort=3000:8080
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target
```
```bash
systemctl --user daemon-reload
systemctl --user enable --now bentopdf
```
برای مستندات کامل Quadlet، [راهنمای استقرار با Docker](/fa/self-hosting/docker) را ببینید.
## ساخت از کد منبع
```bash
# Clone and build
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
npm install
npm run build
# The built files are in the `dist` folder
```
## گزینه‌های پیکربندی
### نسخهٔ میزبانی شخصی (Simple Mode)
نسخهٔ میزبانی شخصی (ایمیج `bentopdf-simple` که Simple Mode هم نامیده می‌شود) از نظر عملکرد **کاملاً یکسان** با نسخهٔ تجاری است؛ همهٔ ابزارهای PDF وجود دارند و یکسان رفتار می‌کنند. این نسخه فقط بخش‌های تبلیغاتی را پنهان می‌کند که تنها روی خود bentopdf.com یا یک استقرار عمومی تجاری معنا دارند. **این نسخه یک نسخهٔ «سبک» یا با امکانات کمتر نیست.**
**آنچه نسخهٔ میزبانی شخصی پنهان می‌کند** (فقط ظاهری؛ هیچ قابلیت PDF حذف نمی‌شود):
- نوار پیمایش، بخش hero، بخش ویژگی‌ها، پرسش‌های متداول، نظرات کاربران، پاورقی
- عنوان صفحه را به «ابزارهای PDF» تغییر می‌دهد
**آنچه نسخهٔ میزبانی شخصی نگه می‌دارد** (هر چیزی که واقعاً کار PDF انجام می‌دهد):
- همهٔ ابزارهای PDF (ادغام، تقسیم، ویرایش، امضا، OCR، تبدیل Office و غیره)
- پشتیبانی از برندسازی سفارشی، همهٔ پیکربندی‌های زمان ساخت و زمان اجرا
نسخهٔ تجاری (`ghcr.io/alam00000/bentopdf:latest`) همان چیزی است که خود bentopdf.com را اجرا می‌کند و دارندگان مجوز تجاری برای استقرارهای عمومی از آن استفاده می‌کنند؛ این نسخه hero، پرسش‌های متداول، نظرات کاربران و پاورقی را اضافه می‌کند که برای یک ابزار داخلی معنایی ندارند.
اگر BentoPDF را برای تیم یا سازمان خود یا به‌عنوان یک ابزار داخلی میزبانی می‌کنید، نسخهٔ میزبانی شخصی را دریافت کنید:
```bash
# Use the pre-built image (recommended)
docker run -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
# Or build it yourself
SIMPLE_MODE=true npm run build
```
برای جزئیات کامل [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) را ببینید.
### نسخهٔ تجاری (استقرارهای عمومی با برند خودتان)
نسخهٔ تجاری (ایمیج `bentopdf`، بدون پسوند `-simple`) همان چیزی است که خود bentopdf.com را اجرا می‌کند. این نسخه علاوه بر همهٔ ابزارهای PDF، سایت کامل تبلیغاتی (hero، ویژگی‌ها، پرسش‌های متداول، نظرات کاربران، پاورقی) را دارد. وقتی می‌خواهید **BentoPDF را به‌عنوان یک سرویس عمومی PDF با برند خودتان مستقر کنید** از این نسخه استفاده کنید، برای مثال:
- BentoPDF را به‌عنوان یک SaaS میزبانی‌شده برای کاربران نهایی روی دامنهٔ خودتان اجرا می‌کنید
- تجربهٔ صفحهٔ فرود (بخش‌های تبلیغاتی + ابزارها) را می‌خواهید، نه فقط ابزارهای خالی
- دارندهٔ مجوز تجاری هستید و BentoPDF را در یک محصول تجاری جاسازی می‌کنید
**اجرای بدون تغییر** (با برند BentoPDF؛ برای پیش‌نمایش نسخه مفید است):
```bash
docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
```
**ساخت با برند خودتان** (گردش کار معمول تجاری):
```bash
docker build \
--build-arg VITE_BRAND_NAME="AcmePDF" \
--build-arg VITE_BRAND_LOGO="images/acme-logo.svg" \
--build-arg VITE_FOOTER_TEXT="© 2026 Acme Corp. All rights reserved." \
-t acmepdf .
docker run -p 3000:8080 acmepdf
```
همهٔ گزینه‌های دیگر زمان ساخت (`BASE_URL`، `VITE_DEFAULT_LANGUAGE`، `DISABLE_TOOLS`، بازنویسی URLهای WASM و غیره) دقیقاً مانند نسخهٔ میزبانی شخصی کار می‌کنند.
::: warning مجوز
اجرای نسخهٔ تجاری تحت هر یک از دو گزینهٔ مجوز BentoPDF مجاز است:
- **AGPL-3.0** (رایگان): مجاز است اگر استقرار شما کد منبع کامل خود را تحت AGPL منتشر کند، از جمله هرگونه تغییر برندسازی و منطق تجاری پیرامون آن.
- **مجوز تجاری** (۷۹ دلار مادام‌العمر): برای استقرارهای بسته یا اختصاصی لازم است که فورک برندسازی یا کد تجاری خود را متن‌باز نمی‌کنید.
برای مقایسهٔ کامل [صفحهٔ مجوزها](https://www.bentopdf.com/licensing) را ببینید. ماژول‌های WASM با مجوز AGPL (PyMuPDF، Ghostscript، CoherentPDF) در زمان اجرا از یک CDN بارگذاری می‌شوند، بنابراین وارد ایمیج شما نمی‌شوند و وضعیت مجوز شما را تغییر نمی‌دهند.
:::
### URL پایه
استقرار در یک زیرپوشه:
```bash
BASE_URL=/pdf-tools/ npm run build
```
### برندسازی سفارشی
لوگو، نام و متن پاورقی پیش‌فرض BentoPDF را در زمان ساخت با موارد خودتان جایگزین کنید:
| متغیر | توضیح | پیش‌فرض |
| ------------------ | ------------------------------------------ | --------------------------------------- |
| `VITE_BRAND_NAME` | نام برند نمایش‌داده‌شده در سرصفحه و پاورقی | `BentoPDF` |
| `VITE_BRAND_LOGO` | مسیر لوگو نسبت به `public/` | `images/favicon-no-bg.svg` |
| `VITE_FOOTER_TEXT` | متن سفارشی پاورقی/حق نشر | `© 2026 BentoPDF. All rights reserved.` |
```bash
# Place your logo in public/, then build
VITE_BRAND_NAME="AcmePDF" \
VITE_BRAND_LOGO="images/acme-logo.svg" \
VITE_FOOTER_TEXT="© 2026 Acme Corp. Internal use only." \
npm run build
```
یا از طریق Docker:
```bash
docker build \
--build-arg VITE_BRAND_NAME="AcmePDF" \
--build-arg VITE_BRAND_LOGO="images/acme-logo.svg" \
--build-arg VITE_FOOTER_TEXT="© 2026 Acme Corp. Internal use only." \
-t acmepdf .
```
برندسازی هم در حالت کامل و هم در Simple Mode کار می‌کند و می‌توان آن را با همهٔ گزینه‌های دیگر زمان ساخت (`BASE_URL`، `SIMPLE_MODE`، `VITE_DEFAULT_LANGUAGE`) ترکیب کرد.
### غیرفعال کردن ابزارهای خاص
ابزارهای جداگانه را برای انطباق یا امنیت پنهان کنید. ابزارهای غیرفعال از صفحهٔ اصلی، جستجو، میان‌برها، سازندهٔ گردش کار و دسترسی مستقیم با URL حذف می‌شوند.
شناسهٔ ابزارها همان URL صفحه بدون `.html` است؛ هر ابزاری را باز کنید و به URL نگاه کنید (مثلاً `edit-pdf`، `sign-pdf`، `encrypt-pdf`).
**زمان ساخت** (درون بسته قرار می‌گیرد):
```bash
DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
```
**زمان اجرا** (بدون نیاز به ساخت دوباره؛ یک `config.json` را mount کنید):
```json
{
"disabledTools": ["edit-pdf", "sign-pdf"]
}
```
```bash
docker run -d -p 3000:8080 \
-v ./config.json:/usr/share/nginx/html/config.json:ro \
ghcr.io/alam00000/bentopdf-simple:latest
```
هر دو روش را می‌توان ترکیب کرد؛ فهرست‌ها با هم ادغام می‌شوند.
همچنین می‌توانید با افزودن `editorDisabledCategories` به `config.json`، قابلیت‌های خاصی را درون ویرایشگر PDF (مثلاً سانسور) غیرفعال کنید، بدون اینکه کل ابزار غیرفعال شود. برای فهرست کامل دسته‌ها [راهنمای Docker](/fa/self-hosting/docker#غیرفعال-کردن-قابلیت‌های-ویرایشگر) را ببینید.
## راهنماهای استقرار
پلتفرم خود را انتخاب کنید:
- [Vercel](/fa/self-hosting/vercel)
- [Netlify](/fa/self-hosting/netlify)
- [Cloudflare Pages](/fa/self-hosting/cloudflare)
- [AWS S3 + CloudFront](/fa/self-hosting/aws)
- [Hostinger](/fa/self-hosting/hostinger)
- [Nginx](/fa/self-hosting/nginx)
- [Apache](/fa/self-hosting/apache)
- [Docker](/fa/self-hosting/docker)
- [Kubernetes](/fa/self-hosting/kubernetes)
- [پراکسی CORS](/fa/self-hosting/cors-proxy) - برای امضاهای دیجیتال لازم است
## مشکلات رایج
### تبدیل Word / ODT / Excel / PowerPoint به PDF متوقف می‌شود (SharedArrayBuffer در دسترس نیست)
**نشانه**: تبدیل‌های اسناد مبتنی بر LibreOffice (Word، ODT، Excel، PowerPoint به PDF) در حدود ۵۵٪ متوقف می‌شوند یا شروع نمی‌شوند. کنسول مرورگر ممکن است این را نشان دهد:
> `ReferenceError: SharedArrayBuffer is not defined`
…یا `window.crossOriginIsolated` مقدار `false` را گزارش می‌کند، یا کامپایل WASM خطای `expected magic word 00 61 73 6d, found 1f 8b 08 08` را می‌دهد.
**علت**: LibreOffice WASM به `SharedArrayBuffer` نیاز دارد که مرورگر فقط وقتی آن را فعال می‌کند که صفحه **جداسازی‌شده بین مبدأها (cross-origin isolated)** باشد و از یک **بستر امن** ارائه شود. یعنی دو شرط باید برقرار باشد:
1. هر پاسخ هر دو هدر را داشته باشد:
- `Cross-Origin-Embedder-Policy: require-corp`
- `Cross-Origin-Opener-Policy: same-origin`
2. صفحه از `https://...` یا `http://localhost` ارائه شود. HTTP ساده روی IP شبکهٔ محلی (مثلاً `http://192.168.x.x`) امن به حساب نمی‌آید و مرورگرها `SharedArrayBuffer` را در آنجا غیرفعال می‌کنند.
ناسازگاری `00 61 73 6d / 1f 8b 08 08` یک نشانهٔ فرعی جداگانه است: فایل‌های از پیش فشرده‌شدهٔ `.wasm.gz` / `.data.gz` هدر پاسخ `Content-Encoding: gzip` را ندارند، بنابراین مرورگر به‌جای WASM از حالت فشرده خارج‌شده، بایت‌های خام gzip را دریافت می‌کند.
**راه‌حل**: برای پیکربندی دقیق، راهنمای استقرار پلتفرم خود را ببینید:
- [Nginx ←](/fa/self-hosting/nginx#تبدیل-word-odt-excel-به-pdf-کار-نمی‌کند)
- [Apache ←](/fa/self-hosting/apache#تبدیل-word-odt-excel-به-pdf-کار-نمی‌کند)
- [AWS S3 + CloudFront ←](/fa/self-hosting/aws#گام-۳b-سیاست-سرآیندهای-پاسخ-لازم-برای-libreoffice-wasm)
- [Cloudflare Pages ←](/fa/self-hosting/cloudflare#فایل-پیکربندی) (فایل `_headers`)
- [Netlify ←](/fa/self-hosting/netlify#تبدیل-word-odt-excel-به-pdf-در-۵۵٪-متوقف-می‌شود) (`netlify.toml`)
- [Vercel ←](/fa/self-hosting/vercel#تبدیل-word-odt-excel-به-pdf-کار-نمی‌کند) (`vercel.json`)
- [Hostinger ←](/fa/self-hosting/hostinger#ابزارهای-libreoffice-کار-نمی‌کنند) (`.htaccess`)
- [Kubernetes ←](/fa/self-hosting/kubernetes#اطمینان-از-کارکرد-هدرهای-sharedarraybuffer-ingress-gateway)
- **Docker**: به‌طور خودکار توسط پیکربندی nginx همراه انجام می‌شود؛ نیازی به اقدام نیست.
**بررسی**: Console در DevTools را روی هر صفحهٔ BentoPDF باز کنید و اجرا کنید:
```js
console.log(window.crossOriginIsolated); // should be true
console.log(typeof SharedArrayBuffer); // should be "function"
```
اگر صفحه HTTPS یا `http://localhost` باشد و هر دو هدر COEP/COOP روی همهٔ پاسخ‌ها وجود داشته باشند، هر دو بررسی موفق می‌شوند. اگر روی `http://192.168.x.x` یا مبدأ HTTP دیگری غیر از loopback هستید، آن را با HTTPS ارائه کنید؛ هیچ راه‌حلی فقط با هدر وجود ندارد.
### فایل‌های `.mjs` با `application/octet-stream` ارائه می‌شوند
**نشانه**: امضای PDF / پرکنندهٔ فرم / برخی ابزارهای دیگر نمایشگر خالی نشان می‌دهند یا بارگذاری نمی‌شوند. کنسول مرورگر گزارش می‌دهد:
> `Failed to load module script: The server responded with a non-JavaScript MIME type of "application/octet-stream". Strict MIME type checking is enforced for module scripts per HTML spec.`
**علت**: وب‌سرور یا پراکسی معکوس شما نگاشت نوع MIME برای فایل‌های `.mjs` ندارد (نمایشگر PDF همراه، ماژول‌های ES را با این پسوند ارائه می‌دهد). بسیاری از پیکربندی‌های پیش‌فرض سرور برای پسوندهای ناشناخته از `application/octet-stream` استفاده می‌کنند که مرورگرها از اجرای آن به‌عنوان ماژول ES خودداری می‌کنند.
**راه‌حل**: برای قطعه‌کد دقیق، راهنمای استقرار پلتفرم خود را ببینید:
- [Nginx ←](/fa/self-hosting/nginx#امضای-pdf-یا-پرکنندهٔ-فرم-نمایشگر-خالی-نشان-می‌دهد-خطای-mime-برای-mjs)
- [Apache ←](/fa/self-hosting/apache#امضای-pdf-یا-پرکنندهٔ-فرم-نمایشگر-خالی-نشان-می‌دهد-خطای-mime-برای-mjs)
- [AWS S3 + CloudFront ←](/fa/self-hosting/aws#گام-۲-ساخت-و-بارگذاری) (`aws s3 cp ... --include "*.mjs"` را ببینید)
- [Kubernetes ←](/fa/self-hosting/kubernetes#خطاهای-نوع-mime-برای-mjs-خالی-بودن-iframe-امضای-pdf-پرکنندهٔ-فرم)
- **Docker، Vercel، Netlify، Cloudflare Pages، Hostinger**: به‌طور خودکار انجام می‌شود؛ نیازی به اقدام نیست.
**بررسی**: DevTools ← زبانهٔ Network را باز کنید، درخواست ناموفق `.mjs` را پیدا کنید و هدر پاسخ `Content-Type` را بررسی کنید. باید `application/javascript` باشد. اگر هنوز `application/octet-stream` است، ممکن است یک پراکسی معکوس بیرونی یا CDN نوع را دوباره تشخیص دهد؛ هر لایه از زنجیرهٔ ارائهٔ خود را بررسی کنید.
## پیکربندی WASM (اجزای AGPL)
BentoPDF کتابخانه‌های پردازشی با مجوز AGPL را در کد منبع خود **همراه نمی‌کند**، اما **URLهای CDN را از پیش پیکربندی می‌کند** تا همهٔ قابلیت‌ها بی‌درنگ کار کنند؛ نیازی به راه‌اندازی دستی نیست.
::: tip بدون پیکربندی به‌طور پیش‌فرض
از نسخهٔ v2.0.0، ماژول‌های WASM از طریق متغیرهای محیطی برای بارگذاری از CDN jsDelivr از پیش پیکربندی شده‌اند. همهٔ قابلیت‌های پیشرفته بدون هیچ پیکربندی از سوی کاربر بی‌درنگ کار می‌کنند.
:::
| جزء | مجوز | قابلیت‌ها |
| --------------- | -------- | ----------------------------------------------------- |
| **PyMuPDF** | AGPL-3.0 | تبدیل EPUB/MOBI/FB2/XPS، استخراج تصویر، استخراج جدول |
| **Ghostscript** | AGPL-3.0 | تبدیل PDF/A، فشرده‌سازی، صاف‌کردن کجی، تبدیل به تصویر |
| **CoherentPDF** | AGPL-3.0 | فهرست مطالب، پیوست‌ها، ادغام PDF با نشانک‌ها |
### متغیرهای محیطی پیش‌فرض
این‌ها در `.env.production` تنظیم شده‌اند و درون نسخهٔ ساخت قرار می‌گیرند:
```bash
VITE_WASM_PYMUPDF_URL=https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/
VITE_WASM_GS_URL=https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/
VITE_WASM_CPDF_URL=https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/
VITE_TESSERACT_WORKER_URL=
VITE_TESSERACT_CORE_URL=
VITE_TESSERACT_LANG_URL=
VITE_TESSERACT_AVAILABLE_LANGUAGES=
VITE_OCR_FONT_BASE_URL=
```
### بازنویسی URLهای WASM
می‌توانید پیش‌فرض‌ها را در زمان ساخت برای استقرارهای سفارشی بازنویسی کنید:
```bash
# Via Docker build args
docker build \
--build-arg VITE_WASM_PYMUPDF_URL=https://your-server.com/pymupdf/ \
--build-arg VITE_WASM_GS_URL=https://your-server.com/gs/ \
--build-arg VITE_WASM_CPDF_URL=https://your-server.com/cpdf/ \
--build-arg VITE_TESSERACT_WORKER_URL=https://your-server.com/ocr/worker.min.js \
--build-arg VITE_TESSERACT_CORE_URL=https://your-server.com/ocr/core \
--build-arg VITE_TESSERACT_LANG_URL=https://your-server.com/ocr/lang-data \
--build-arg VITE_TESSERACT_AVAILABLE_LANGUAGES=eng,deu \
--build-arg VITE_OCR_FONT_BASE_URL=https://your-server.com/ocr/fonts \
-t bentopdf .
# Or via .env.production before building from source
VITE_WASM_PYMUPDF_URL=https://your-server.com/pymupdf/ npm run build
```
برای غیرفعال کردن کامل یک ماژول (نیاز به پیکربندی دستی کاربر از طریق تنظیمات پیشرفته)، متغیر آن را روی رشتهٔ خالی تنظیم کنید.
برای OCR، یا همهٔ متغیرهای `VITE_TESSERACT_*` را خالی بگذارید و از دارایی‌های آنلاین پیش‌فرض استفاده کنید، یا URLهای worker/core/lang را با هم برای OCR میزبانی‌شده یا آفلاین تنظیم کنید. اگر فقط زبان‌های OCR خاصی را همراه می‌کنید، `VITE_TESSERACT_AVAILABLE_LANGUAGES` را نیز روی همان کدهای جداشده با ویرگول تنظیم کنید تا رابط کاربری فقط زبان‌های نصب‌شده را پیشنهاد دهد و انتخاب‌های پشتیبانی‌نشده با خطای توصیفی شکست بخورند. برای خروجی PDF قابل جستجوی کاملاً آفلاین، `VITE_OCR_FONT_BASE_URL` را نیز روی پوشهٔ داخلی که قلم‌های OCR همراه را ارائه می‌دهد تنظیم کنید.
کاربران همچنین می‌توانند هر زمان این پیش‌فرض‌ها را از طریق **تنظیمات پیشرفته** در رابط کاربری بازنویسی کنند؛ بازنویسی‌های کاربر که در مرورگر ذخیره می‌شوند بر پیش‌فرض‌های محیطی اولویت دارند.
### استقرار ایزوله / آفلاین
برای شبکه‌های بدون دسترسی به اینترنت (دولتی، درمانی، مالی و غیره). URLهای WASM در **زمان ساخت** درون JavaScript قرار می‌گیرند؛ فایل‌های واقعی WASM در زمان اجرا توسط **مرورگر کاربر** دانلود می‌شوند. بنابراین باید همه چیز را روی دستگاهی با اینترنت آماده کنید و سپس به شبکهٔ ایزوله منتقل کنید.
#### اسکریپت خودکار (پیشنهادی)
اسکریپت همراه `prepare-airgap.sh` کل فرایند را خودکار می‌کند: دانلود بسته‌های WASM، ساخت ایمیج Docker و تولید یک بستهٔ مستقل همراه با اسکریپت راه‌اندازی.
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
# Show supported OCR language codes (for --ocr-languages)
bash scripts/prepare-airgap.sh --list-ocr-languages
# Search OCR language codes by name or abbreviation
bash scripts/prepare-airgap.sh --search-ocr-language german
# Interactive mode — prompts for all options
bash scripts/prepare-airgap.sh
# Or fully automated
bash scripts/prepare-airgap.sh --wasm-base-url https://internal.example.com/wasm
```
این یک پوشهٔ بسته تولید می‌کند:
```
bentopdf-airgap-bundle/
bentopdf.tar # Docker image
*.tgz # WASM packages (PyMuPDF, Ghostscript, CoherentPDF, Tesseract)
tesseract-langdata/ # OCR traineddata files
ocr-fonts/ # OCR text-layer font files
setup.sh # Setup script for the air-gapped side
README.md # Instructions
```
بسته را از طریق USB، مخزن داخلی آرتیفکت یا روش تأییدشده به شبکهٔ ایزوله منتقل کنید. سپس اسکریپت راه‌اندازی همراه را اجرا کنید:
```bash
cd bentopdf-airgap-bundle
bash setup.sh
```
اسکریپت راه‌اندازی ایمیج Docker را بارگذاری می‌کند، فایل‌های WASM را استخراج می‌کند و در صورت تمایل کانتینر را اجرا می‌کند.
**گزینه‌های اسکریپت:**
| پرچم | توضیح | پیش‌فرض |
| ------------------------------ | ---------------------------------------------------------------- | -------------------------------------- |
| `--wasm-base-url <url>` | محل میزبانی داخلی WASMها | _(الزامی، در صورت نبود پرسیده می‌شود)_ |
| `--image-name <name>` | برچسب ایمیج Docker | `bentopdf` |
| `--output-dir <path>` | پوشهٔ خروجی بسته | `./bentopdf-airgap-bundle` |
| `--simple-mode` | فعال کردن Simple Mode | خاموش |
| `--base-url <path>` | URL پایهٔ زیرپوشه (مثلاً `/pdf/`) | `/` |
| `--language <code>` | زبان پیش‌فرض رابط کاربری (مثلاً `fr`، `de`) | _(هیچ)_ |
| `--brand-name <name>` | نام برند سفارشی | _(هیچ)_ |
| `--brand-logo <path>` | مسیر لوگو نسبت به `public/` | _(هیچ)_ |
| `--footer-text <text>` | متن سفارشی پاورقی | _(هیچ)_ |
| `--ocr-languages <list>` | زبان‌های OCR برای همراه کردن، جداشده با ویرگول | `eng` |
| `--list-ocr-languages` | چاپ کدها و نام‌های OCR پشتیبانی‌شده و سپس خروج | خاموش |
| `--search-ocr-language <term>` | جستجوی کدهای OCR بر اساس نام یا اختصار | خاموش |
| `--dockerfile <path>` | Dockerfile مورد استفاده | `Dockerfile` |
| `--skip-docker` | رد شدن از ساخت و خروجی گرفتن Docker | خاموش |
| `--skip-wasm` | رد شدن از دانلود WASM (استفادهٔ دوباره از فایل‌های `.tgz` موجود) | خاموش |
ورودی تعاملی همچنین `list` را برای چاپ فهرست کامل کدهای پشتیبانی‌شدهٔ Tesseract و `search <term>` را برای یافتن موارد منطبق مانند `search german` یا `search chi` می‌پذیرد.
::: warning الزام هم‌مبدأ بودن
فایل‌های WASM باید از **همان مبدأ** برنامهٔ BentoPDF ارائه شوند. Web Workerها از `importScripts()` استفاده می‌کنند که نمی‌تواند اسکریپت‌ها را از مبدأ دیگری بارگذاری کند. برای مثال، اگر BentoPDF روی `https://internal.example.com` اجرا می‌شود، URL پایه برای WASM نیز باید `https://internal.example.com/wasm` باشد.
:::
#### گام‌های دستی
<details>
<summary>اگر ترجیح می‌دهید بدون اسکریپت و به‌صورت دستی انجام دهید</summary>
**گام ۱: دانلود بسته‌های WASM و OCR** (روی دستگاهی با اینترنت)
```bash
npm pack @bentopdf/pymupdf-wasm@0.11.14
npm pack @bentopdf/gs-wasm
npm pack coherentpdf
npm pack tesseract.js@7.0.0
npm pack tesseract.js-core@7.0.0
mkdir -p tesseract-langdata
curl -fsSL https://cdn.jsdelivr.net/npm/@tesseract.js-data/eng/4.0.0_best_int/eng.traineddata.gz -o tesseract-langdata/eng.traineddata.gz
mkdir -p ocr-fonts
curl -fsSL https://raw.githack.com/googlefonts/noto-fonts/main/hinted/ttf/NotoSans/NotoSans-Regular.ttf -o ocr-fonts/NotoSans-Regular.ttf
```
**گام ۲: ساخت ایمیج Docker با URLهای داخلی**
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
docker build \
--build-arg VITE_WASM_PYMUPDF_URL=https://internal-server.example.com/wasm/pymupdf/ \
--build-arg VITE_WASM_GS_URL=https://internal-server.example.com/wasm/gs/ \
--build-arg VITE_WASM_CPDF_URL=https://internal-server.example.com/wasm/cpdf/ \
--build-arg VITE_TESSERACT_WORKER_URL=https://internal-server.example.com/wasm/ocr/worker.min.js \
--build-arg VITE_TESSERACT_CORE_URL=https://internal-server.example.com/wasm/ocr/core \
--build-arg VITE_TESSERACT_LANG_URL=https://internal-server.example.com/wasm/ocr/lang-data \
--build-arg VITE_OCR_FONT_BASE_URL=https://internal-server.example.com/wasm/ocr/fonts \
-t bentopdf .
```
**گام ۳: خروجی گرفتن از ایمیج Docker**
```bash
docker save bentopdf -o bentopdf.tar
```
**گام ۴: انتقال به شبکهٔ ایزوله**
از طریق USB، مخزن داخلی آرتیفکت یا روش انتقال تأییدشده کپی کنید:
- `bentopdf.tar`: ایمیج Docker
- پنج بستهٔ `.tgz` مربوط به WASM/OCR از گام ۱
- پوشهٔ `tesseract-langdata/` از گام ۱
- پوشهٔ `ocr-fonts/` از گام ۱
**گام ۵: راه‌اندازی درون شبکهٔ ایزوله**
```bash
# Load the Docker image
docker load -i bentopdf.tar
# Extract WASM packages
mkdir -p ./wasm/pymupdf ./wasm/gs ./wasm/cpdf ./wasm/ocr/core ./wasm/ocr/lang-data ./wasm/ocr/fonts
tar xzf bentopdf-pymupdf-wasm-0.11.14.tgz -C ./wasm/pymupdf --strip-components=1
tar xzf bentopdf-gs-wasm-*.tgz -C ./wasm/gs --strip-components=1
tar xzf coherentpdf-*.tgz -C ./wasm/cpdf --strip-components=1
TEMP_TESS=$(mktemp -d)
tar xzf tesseract.js-7.0.0.tgz -C "$TEMP_TESS"
cp "$TEMP_TESS/package/dist/worker.min.js" ./wasm/ocr/worker.min.js
rm -rf "$TEMP_TESS"
tar xzf tesseract.js-core-7.0.0.tgz -C ./wasm/ocr/core --strip-components=1
cp ./tesseract-langdata/*.traineddata.gz ./wasm/ocr/lang-data/
cp ./ocr-fonts/* ./wasm/ocr/fonts/
# Run BentoPDF
docker run -d -p 3000:8080 --restart unless-stopped bentopdf
```
مطمئن شوید فایل‌ها در URLهایی که در گام ۲ پیکربندی کردید در دسترس هستند، از جمله `.../ocr/worker.min.js`، `.../ocr/core`، `.../ocr/lang-data` و `.../ocr/fonts`.
</details>
::: info به‌جای Docker از کد منبع می‌سازید؟
پیش از اجرای `npm run build`، متغیرها را در `.env.production` تنظیم کنید:
```bash
VITE_WASM_PYMUPDF_URL=https://internal-server.example.com/wasm/pymupdf/
VITE_WASM_GS_URL=https://internal-server.example.com/wasm/gs/
VITE_WASM_CPDF_URL=https://internal-server.example.com/wasm/cpdf/
VITE_TESSERACT_WORKER_URL=https://internal-server.example.com/wasm/ocr/worker.min.js
VITE_TESSERACT_CORE_URL=https://internal-server.example.com/wasm/ocr/core
VITE_TESSERACT_LANG_URL=https://internal-server.example.com/wasm/ocr/lang-data
VITE_OCR_FONT_BASE_URL=https://internal-server.example.com/wasm/ocr/fonts
```
:::
### میزبانی پراکسی WASM خودتان
اگر لازم است فایل‌های WASM با مجوز AGPL را با هدرهای CORS مناسب ارائه کنید، می‌توانید یک پراکسی ساده مستقر کنید. برای نمونه پیاده‌سازی، [راهنمای Cloudflare WASM Proxy](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) را ببینید.
::: tip چرا جداگانه؟
این جداسازی تضمین می‌کند:
- انطباق حقوقی روشن برای کاربران تجاری
- هستهٔ BentoPDF تحت مجوز دوگانهٔ خود (AGPL-3.0 / تجاری) باقی می‌ماند
- فایل‌های WASM در زمان اجرا بارگذاری می‌شوند، نه اینکه در کد منبع همراه شوند
:::
## نیازمندی‌های سیستم
| نیازمندی | حداقل |
| --------------- | ------------------------------------------- |
| فضای ذخیره‌سازی | حدود ۱۰۰ مگابایت (هسته بدون ماژول‌های AGPL) |
| RAM | ۵۱۲ مگابایت |
| CPU | هر پردازندهٔ مدرن |
::: tip
BentoPDF یک سایت ایستاست؛ به هیچ پایگاه داده یا سرور بک‌اندی نیاز نیست!
:::
+211
View File
@@ -0,0 +1,211 @@
# استقرار با Kubernetes
Kubernetes ممکن است برای یک سایت ایستا زیاده از حد باشد، اما اگر از قبل روی Helm و GitOps استانداردسازی کرده‌اید، گزینهٔ بسیار مناسبی است.
> [!IMPORTANT]
> **هدرهای لازم برای تبدیل فایل‌های Office**
>
> ابزارهای مبتنی بر LibreOffice (تبدیل Word، Excel، PowerPoint) برای پشتیبانی از `SharedArrayBuffer` به این هدرهای HTTP نیاز دارند:
>
> - `Cross-Origin-Opener-Policy: same-origin`
> - `Cross-Origin-Embedder-Policy: require-corp`
>
> ایمیج‌های رسمی nginx در BentoPDF این هدرها را دارند. در Kubernetes، **کنترلرهای Ingress/Gateway نیز پراکسی معکوس هستند**، پس مطمئن شوید این هدرها حفظ می‌شوند (یا آن‌ها را در لبه اضافه کنید).
## پیش‌نیازها
- یک کلاستر Kubernetes
- Helm v3
- یک ایمیج nginx از BentoPDF (مثلاً `ghcr.io/alam00000/bentopdf:<tag>`) که روی **پورت 8080** سرویس می‌دهد
## استقرار با Helm
### نصب از این مخزن (چارت محلی)
```bash
kubectl create namespace bentopdf
helm upgrade --install bentopdf /path/to/bentopdf/chart \
--namespace bentopdf \
--set image.repository=ghcr.io/alam00000/bentopdf \
--set image.tag=latest
```
### نصب از GHCR (چارت OCI)
اگر چارت به‌صورت یک آرتیفکت OCI در GHCR منتشر شده باشد:
```bash
export GHCR_USERNAME="<github-org-or-user>"
helm upgrade --install bentopdf oci://ghcr.io/$GHCR_USERNAME/charts/bentopdf \
--namespace bentopdf \
--create-namespace \
--version 0.1.0 \
--set image.repository=ghcr.io/alam00000/bentopdf \
--set image.tag=latest
```
## در دسترس قرار دادن
### Port-forward (آزمایش سریع)
```bash
kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
```
### Ingress (اختیاری)
Ingress را فعال کنید (نمونه برای nginx-ingress):
```yaml
ingress:
enabled: true
className: nginx
hosts:
- host: pdf.example.com
paths:
- path: /
pathType: Prefix
```
### Gateway API (اختیاری)
این چارت از `Gateway` و `HTTPRoute` در Gateway API پشتیبانی می‌کند.
نمونه (اپراتور Cloudflare Gateway API):
```yaml
gateway:
enabled: true
name: bento-tunnel
namespace: bentopdf
gatewayClassName: cloudflare
httpRoute:
enabled: true
parentRefs:
- name: bento-tunnel
namespace: bentopdf
sectionName: http
hostnames:
- pdfs.example.com
```
## اطمینان از کارکرد هدرهای SharedArrayBuffer (Ingress/Gateway)
### چه چیزی «باید» اتفاق بیفتد
پیکربندی nginx در BentoPDF هدرهای پاسخ لازم را تنظیم می‌کند. بیشتر کنترلرهای Ingress/Gateway **هدرهای پاسخ بالادستی را بدون تغییر عبور می‌دهند**.
### چه چیزی می‌تواند آن را خراب کند
- سیاست کنترلر/لبه‌ای که هدرهای پاسخ را **بازنویسی** یا **حذف** می‌کند
- یک میان‌افزار «هدرهای امنیتی» که مقادیر متفاوتی برای COOP/COEP تنظیم می‌کند
### نحوهٔ بررسی
این را روی نقطهٔ پایانی عمومی خود اجرا کنید:
```bash
curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
```
باید این‌ها را ببینید:
- `Cross-Origin-Opener-Policy: same-origin`
- `Cross-Origin-Embedder-Policy: require-corp`
### اگر کنترلر Ingress شما آن‌ها را حفظ نمی‌کند
هدرها را در لبه اضافه کنید (وابسته به کنترلر). نمونه برای **nginx-ingress**:
```yaml
ingress:
enabled: true
className: nginx
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
```
## خطاهای نوع MIME برای `.mjs` (خالی بودن iframe امضای PDF / پرکنندهٔ فرم)
اگر کنسول مرورگر برای یک درخواست `.mjs` خطای `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` را نشان می‌دهد، یک کنترلر Ingress/Gateway جلوی nginx در BentoPDF هدر `Content-Type` بالادستی را با `application/octet-stream` جایگزین می‌کند.
nginx در ایمیج BentoPDF از قبل `.mjs` را با `application/javascript` ارائه می‌دهد. راه‌حل این است که جلوی حذف یا جایگزینی آن توسط کنترلر را بگیرید. برای nginx-ingress:
```yaml
ingress:
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
location ~* \.mjs$ {
types {} default_type application/javascript;
}
```
یا از فیلتر `ResponseHeaderModifier` در Gateway API برای تنظیم `Content-Type: application/javascript` روی مسیرهای `.mjs` استفاده کنید. با DevTools ← زبانهٔ Network بررسی کنید: درخواست ناموفق `.mjs` اکنون باید `content-type: application/javascript` را نشان دهد.
### اگر از Gateway API استفاده می‌کنید و می‌خواهید هدرها را اجباری اضافه کنید
Gateway API از فیلتر `ResponseHeaderModifier` پشتیبانی می‌کند. می‌توانید آن را در `httpRoute.rules[*].filters` قرار دهید:
```yaml
httpRoute:
enabled: true
hostnames: [pdf.example.com]
parentRefs:
- name: bento-tunnel
namespace: misc
sectionName: http
rules:
- matches:
- path: { type: PathPrefix, value: / }
filters:
- type: ResponseHeaderModifier
responseHeaderModifier:
set:
- name: Cross-Origin-Opener-Policy
value: same-origin
- name: Cross-Origin-Embedder-Policy
value: require-corp
```
پشتیبانی از فیلترهای خاص به کنترلر Gateway شما بستگی دارد؛ اگر فیلتری نادیده گرفته شد، هدرها را به‌جای آن در لایهٔ لبه/کنترلر اضافه کنید.
## غیرفعال کردن ابزارهای خاص
از یک ConfigMap برای غیرفعال کردن ابزارها در زمان اجرا، بدون ساخت دوبارهٔ ایمیج، استفاده کنید:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: bentopdf-config
namespace: bentopdf
data:
config.json: |
{
"disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
}
```
آن را در پوشهٔ ارائه‌شده mount کنید:
```yaml
spec:
containers:
- name: bentopdf
volumeMounts:
- name: config
mountPath: /usr/share/nginx/html/config.json
subPath: config.json
readOnly: true
volumes:
- name: config
configMap:
name: bentopdf-config
```
شناسهٔ ابزارها همان URL صفحه بدون `.html` است؛ هر ابزاری را باز کنید و به URL نگاه کنید (مثلاً `edit-pdf`، `merge-pdf`، `compress-pdf`). ابزارهای غیرفعال از صفحهٔ اصلی، جستجو، میان‌برها، سازندهٔ گردش کار و دسترسی مستقیم با URL پنهان می‌شوند. برای فهرست کامل گزینه‌ها [راهنمای Docker](/fa/self-hosting/docker#غیرفعال-کردن-ابزارهای-مشخص) را ببینید.
+139
View File
@@ -0,0 +1,139 @@
# استقرار روی Netlify
[Netlify](https://netlify.com) میزبانی عالی برای سایت‌های ایستا با یک طرح رایگان سخاوتمندانه ارائه می‌دهد.
## استقرار با یک کلیک
[![استقرار روی Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
## استقرار دستی
### گام ۱: اتصال مخزن
1. وارد [Netlify](https://app.netlify.com) شوید
2. روی «Add new site» ← «Import an existing project» کلیک کنید
3. حساب GitHub خود را متصل کنید
4. فورک BentoPDF خود را انتخاب کنید
### گام ۲: پیکربندی تنظیمات ساخت
| تنظیم | مقدار |
| ------------ | --------------- |
| فرمان ساخت | `npm run build` |
| پوشهٔ انتشار | `dist` |
| نسخهٔ Node | 18+ |
### گام ۳: استقرار
روی «Deploy site» کلیک کنید و منتظر ساخت بمانید.
## فایل پیکربندی
فایل `netlify.toml` را در ریشهٔ پروژه بسازید:
```toml
[build]
command = "npm run build"
publish = "dist"
[build.environment]
NODE_VERSION = "18"
# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
[[headers]]
for = "/*"
[headers.values]
Cross-Origin-Embedder-Policy = "require-corp"
Cross-Origin-Opener-Policy = "same-origin"
Cross-Origin-Resource-Policy = "cross-origin"
# Pre-compressed LibreOffice WASM binary - must be served with Content-Encoding
[[headers]]
for = "/libreoffice-wasm/soffice.wasm.gz"
[headers.values]
Content-Type = "application/wasm"
Content-Encoding = "gzip"
Cache-Control = "public, max-age=31536000, immutable"
# Pre-compressed LibreOffice WASM data - must be served with Content-Encoding
[[headers]]
for = "/libreoffice-wasm/soffice.data.gz"
[headers.values]
Content-Type = "application/octet-stream"
Content-Encoding = "gzip"
Cache-Control = "public, max-age=31536000, immutable"
# Cache other WASM files
[[headers]]
for = "*.wasm"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
Content-Type = "application/wasm"
# SPA routing
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
```
::: warning مهم
هدرهای `Cross-Origin-Embedder-Policy` و `Cross-Origin-Opener-Policy` برای تبدیل Word/ODT/Excel/PowerPoint به PDF لازم هستند. بدون آن‌ها، `SharedArrayBuffer` در دسترس نیست و موتور LibreOffice WASM راه‌اندازی نمی‌شود.
هدرهای `Content-Encoding: gzip` روی فایل‌های `.wasm.gz` و `.data.gz` به مرورگر می‌گویند آن‌ها را به‌طور خودکار از حالت فشرده خارج کند. بدون این هدرها، مرورگر بایت‌های خام gzip را دریافت می‌کند و کامپایل WASM شکست می‌خورد.
:::
## متغیرهای محیطی
این موارد را در Site settings ← Environment variables تنظیم کنید:
| متغیر | توضیح |
| ----------------------- | -------------------------------------------------------- |
| `SIMPLE_MODE` | برای ساخت حداقلی روی `true` تنظیم کنید |
| `VITE_BRAND_NAME` | نام برند سفارشی (جایگزین «BentoPDF») |
| `VITE_BRAND_LOGO` | مسیر لوگو نسبت به `public/` (مثلاً `images/my-logo.svg`) |
| `VITE_FOOTER_TEXT` | متن سفارشی پاورقی/حق نشر |
| `VITE_DEFAULT_LANGUAGE` | زبان پیش‌فرض رابط کاربری (مثلاً `fr`، `de`، `es`) |
## دامنهٔ سفارشی
1. به Site settings ← Domain management بروید
2. روی «Add custom domain» کلیک کنید
3. دستورالعمل‌های پیکربندی DNS را دنبال کنید
## رسانه‌های بزرگ
برای فایل‌های بزرگ WASM، فعال کردن [Netlify Large Media](https://docs.netlify.com/large-media/overview/) را در نظر بگیرید:
```bash
netlify lm:setup
git lfs track "*.wasm"
```
## عیب‌یابی
### تبدیل Word/ODT/Excel به PDF در ۵۵٪ متوقف می‌شود
اگر تبدیل اسناد در ۵۵٪ متوقف می‌شود، Console در DevTools را باز کنید و بررسی کنید:
```js
console.log(window.crossOriginIsolated); // should be true
console.log(typeof SharedArrayBuffer); // should be "function"
```
اگر `crossOriginIsolated` برابر `false` باشد، هدرهای COEP/COOP از `netlify.toml` شما اعمال نمی‌شوند. مطمئن شوید فایل در ریشهٔ پروژه است و دوباره مستقر کنید.
اگر در کنسول `expected magic word 00 61 73 6d, found 1f 8b 08 08` را می‌بینید، هدرهای `Content-Encoding: gzip` برای فایل‌های `.wasm.gz` وجود ندارد. مطمئن شوید بلوک‌های `[[headers]]` برای `soffice.wasm.gz` و `soffice.data.gz` در `netlify.toml` شما هستند.
### ساخت شکست می‌خورد
سازگاری نسخهٔ Node را بررسی کنید:
```toml
[build.environment]
NODE_VERSION = "20"
```
### بارگذاری اولیهٔ کند
بهینه‌سازی دارایی‌ها را در Site settings ← Build & deploy ← Asset optimization فعال کنید.
+232
View File
@@ -0,0 +1,232 @@
# استقرار با Nginx
BentoPDF را با Nginx روی سرور خودتان میزبانی کنید.
## پیش‌نیازها
- سرور Ubuntu/Debian
- Nginx نصب‌شده
- گواهی SSL (پیشنهادی: Let's Encrypt)
## گام ۱: ساخت پروژه
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
npm install
npm run build
```
برای سفارشی‌سازی برند، پیش از ساخت متغیرهای محیطی را تنظیم کنید:
```bash
VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
```
## گام ۲: کپی فایل‌ها
```bash
sudo mkdir -p /var/www/bentopdf
sudo cp -r dist/* /var/www/bentopdf/
sudo chown -R www-data:www-data /var/www/bentopdf
```
## گام ۳: پیکربندی Nginx
فایل `/etc/nginx/sites-available/bentopdf` را بسازید:
```nginx
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
# SSL Configuration
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
root /var/www/bentopdf;
index index.html;
# Gzip compression
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/wasm;
gzip_min_length 1000;
# WASM MIME type
types {
application/wasm wasm;
}
# Required headers for SharedArrayBuffer (LibreOffice WASM)
# These must be on every response - especially HTML pages
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Resource-Policy "cross-origin" always;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
# Pre-compressed LibreOffice WASM binary
location ~* /libreoffice-wasm/soffice\.wasm\.gz$ {
gzip off;
types {} default_type application/wasm;
add_header Content-Encoding gzip;
add_header Cache-Control "public, immutable";
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
}
# Pre-compressed LibreOffice WASM data
location ~* /libreoffice-wasm/soffice\.data\.gz$ {
gzip off;
types {} default_type application/octet-stream;
add_header Content-Encoding gzip;
add_header Cache-Control "public, immutable";
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
}
# Cache static assets
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|wasm)$ {
expires 1y;
add_header Cache-Control "public, immutable";
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
}
# SPA routing - serve index.html for all routes
location / {
try_files $uri $uri/ /index.html;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
}
}
```
## گام ۴: فعال کردن سایت
```bash
sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
## گام ۵: SSL با Let's Encrypt
```bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
```
## استقرار در زیرپوشه
برای میزبانی در `/pdf/`:
```nginx
location /pdf/ {
alias /var/www/bentopdf/;
try_files $uri $uri/ /pdf/index.html;
}
```
با این دستور بسازید:
```bash
BASE_URL=/pdf/ npm run build
```
## بهینه‌سازی کارایی
به `nginx.conf` اضافه کنید:
```nginx
http {
# Enable sendfile
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# Increase buffer sizes
client_max_body_size 100M;
# Worker connections
worker_connections 2048;
}
```
## عیب‌یابی
### WASM بارگذاری نمی‌شود
مطمئن شوید نوع MIME تنظیم شده است:
```nginx
types {
application/wasm wasm;
}
```
### امضای PDF یا پرکنندهٔ فرم نمایشگر خالی نشان می‌دهد (خطای MIME برای `.mjs`)
اگر کنسول مرورگر این را نشان می‌دهد:
```
Failed to load module script: The server responded with a non-JavaScript
MIME type of "application/octet-stream". Strict MIME type checking is
enforced for module scripts per HTML spec.
```
…و درخواست ناموفق به `.mjs` ختم می‌شود، nginx شما نگاشت `.mjs → application/javascript` را ندارد. نمایشگر PDF همراه (که امضای PDF، پرکنندهٔ فرم و چند ابزار دیگر از آن استفاده می‌کنند) فایل‌های ماژول ES با پسوند `.mjs` دارد و `mime.types` پیش‌فرض nginx به‌طور پیش‌فرض آن‌ها را شامل نمی‌شود.
برای رفع آن، `mjs` را به خط موجود `application/javascript` در `/etc/nginx/mime.types` اضافه کنید:
```nginx
application/javascript js mjs;
```
> خط _دومی_ برای `application/javascript` اضافه نکنید؛ nginx فایل `mime.types` را خط به خط تجزیه می‌کند و فقط یک نگاشت نوع به پسوند اعمال می‌شود، پس در برخی نسخه‌ها خط دوم بی‌صدا نادیده گرفته می‌شود. خط موجود را ویرایش کنید و `mjs` را کنار `js` اضافه کنید.
یا به‌صورت محلی درون بلوک server بازنویسی کنید (بدون ویرایش فایل سراسری):
```nginx
types {
application/javascript js mjs;
application/wasm wasm;
}
```
پس از تغییر، nginx را دوباره بارگذاری کنید:
```bash
sudo nginx -t && sudo systemctl reload nginx
```
برای تأیید: در DevTools مرورگر ← زبانهٔ Network، درخواست ناموفق `.mjs` را پیدا کنید و هدر پاسخ `Content-Type` را بررسی کنید. اکنون باید `application/javascript` باشد، نه `application/octet-stream`.
### تبدیل Word/ODT/Excel به PDF کار نمی‌کند
LibreOffice WASM به `SharedArrayBuffer` نیاز دارد که آن هم به هدرهای `Cross-Origin-Embedder-Policy` و `Cross-Origin-Opener-Policy` نیاز دارد. همچنین به یک بستر امن نیاز دارد، بنابراین `http://localhost` برای آزمایش محلی کار می‌کند اما `http://192.168.x.x` یا دیگر IPهای شبکهٔ محلی معمولاً به HTTPS نیاز دارند. توجه کنید که دستورهای `add_header` در nginx درون یک بلوک `location` دستورهای `add_header` سطح server را **بازنویسی** می‌کنند و با آن‌ها ادغام نمی‌شوند. هر بلوک `location` که `add_header` خودش را دارد باید هدرهای COEP/COOP را نیز شامل شود.
با این دستور بررسی کنید:
```bash
curl -I https://your-domain.com/ | grep -i cross-origin
```
اگر جلوی nginx از پراکسی معکوس استفاده می‌کنید، مطمئن شوید این هدرها را حفظ می‌کند.
### 502 Bad Gateway
لاگ‌های خطای Nginx را بررسی کنید:
```bash
sudo tail -f /var/log/nginx/error.log
```
+122
View File
@@ -0,0 +1,122 @@
# استقرار روی Vercel
[Vercel](https://vercel.com) ساده‌ترین تجربهٔ استقرار را برای سایت‌های ایستا ارائه می‌دهد.
## استقرار با یک کلیک
[![استقرار با Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
## استقرار دستی
### گام ۱: فورک کردن مخزن
مخزن [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) را در حساب GitHub خود فورک کنید.
### گام ۲: وارد کردن به Vercel
1. به [vercel.com/new](https://vercel.com/new) بروید
2. مخزن فورک‌شدهٔ خود را انتخاب کنید
3. پروژه را پیکربندی کنید:
| تنظیم | مقدار |
| ---------------- | --------------- |
| Framework Preset | Vite |
| Build Command | `npm run build` |
| Output Directory | `dist` |
| Install Command | `npm install` |
### گام ۳: متغیرهای محیطی (اختیاری)
در صورت نیاز این موارد را اضافه کنید:
| متغیر | توضیح |
| ----------------------- | -------------------------------------------------------- |
| `SIMPLE_MODE` | برای رابط کاربری حداقلی روی `true` تنظیم کنید |
| `VITE_BRAND_NAME` | نام برند سفارشی (جایگزین «BentoPDF») |
| `VITE_BRAND_LOGO` | مسیر لوگو نسبت به `public/` (مثلاً `images/my-logo.svg`) |
| `VITE_FOOTER_TEXT` | متن سفارشی پاورقی/حق نشر |
| `VITE_DEFAULT_LANGUAGE` | زبان پیش‌فرض رابط کاربری (مثلاً `fr`، `de`، `es`) |
### گام ۴: استقرار
روی «Deploy» کلیک کنید و منتظر بمانید تا ساخت کامل شود.
## دامنهٔ سفارشی
1. به تنظیمات پروژه بروید
2. به بخش «Domains» بروید
3. دامنهٔ سفارشی خود را اضافه کنید
4. DNS را طبق دستورالعمل پیکربندی کنید
## محدودیت‌ها
::: warning فایل‌های بزرگ
توابع serverless در Vercel محدودیت ۵۰ مگابایت دارند. از آنجا که BentoPDF یک سایت ایستاست، این موضوع نباید بر شما اثر بگذارد، اما ماژول‌های WASM بزرگ هستند (در مجموع حدود ۱۰۰ مگابایت). مطمئن شوید که از پوشهٔ `/public` ارائه می‌شوند.
:::
## عیب‌یابی
### پایان زمان ساخت
اگر زمان ساخت به پایان می‌رسد، این را امتحان کنید:
```json
// vercel.json
{
"buildCommand": "npm run build",
"outputDirectory": "dist"
}
```
### خطای 404 هنگام تازه‌سازی
برای مسیریابی SPA یک فایل `vercel.json` اضافه کنید:
```json
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}
```
### تبدیل Word/ODT/Excel به PDF کار نمی‌کند
تبدیل‌های LibreOffice WASM به `SharedArrayBuffer` نیاز دارند که آن هم به این هدرهای پاسخ در همهٔ صفحات نیاز دارد:
- `Cross-Origin-Embedder-Policy: require-corp`
- `Cross-Origin-Opener-Policy: same-origin`
فایل‌های از پیش فشرده‌شدهٔ `.wasm.gz` و `.data.gz` نیز به `Content-Encoding: gzip` نیاز دارند تا مرورگر آن‌ها را از حالت فشرده خارج کند.
این موارد را به `vercel.json` خود اضافه کنید:
```json
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }],
"headers": [
{
"source": "/(.*)",
"headers": [
{ "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" },
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
{ "key": "Cross-Origin-Resource-Policy", "value": "cross-origin" }
]
},
{
"source": "/libreoffice-wasm/soffice.wasm.gz",
"headers": [
{ "key": "Content-Type", "value": "application/wasm" },
{ "key": "Content-Encoding", "value": "gzip" }
]
},
{
"source": "/libreoffice-wasm/soffice.data.gz",
"headers": [
{ "key": "Content-Type", "value": "application/octet-stream" },
{ "key": "Content-Encoding", "value": "gzip" }
]
}
]
}
```
برای بررسی، Console در DevTools را باز کنید و `console.log(window.crossOriginIsolated)` را اجرا کنید؛ باید `true` برگرداند.
+49
View File
@@ -0,0 +1,49 @@
---
title: افزودن پیوست
description: فایل‌هایی از هر نوع را در سطح سند یا متصل به صفحات خاص در یک PDF جاسازی کنید.
---
# افزودن پیوست
یک یا چند فایل را مستقیماً درون یک سند PDF جاسازی کنید. پیوست‌ها را می‌توان در سطح سند (قابل مشاهده در پنل پیوست هر PDF‌خوانی) اضافه کرد یا به صفحات خاص متصل کرد.
## نحوهٔ کار
1. PDFی را که می‌خواهید فایل‌ها را به آن پیوست کنید بارگذاری کنید.
2. از ناحیهٔ رها کردن پیوست برای انتخاب فایل‌هایی که می‌خواهید جاسازی کنید استفاده کنید (هر نوع فایل).
3. سطح پیوست را انتخاب کنید: **سند** (پیش‌فرض) یا **صفحه**.
4. اگر سطح صفحه را انتخاب کردید، یک بازهٔ صفحه وارد کنید (مثلاً `1-3` یا `5`).
5. روی دکمهٔ پردازش کلیک کنید. PDF تغییریافته همراه با فایل‌های جاسازی‌شده دانلود می‌شود.
## ویژگی‌ها
- پیوست هر نوع فایل: تصاویر، صفحه‌گسترده‌ها، آرشیوها، فایل‌های اجرایی و هر چیز دیگر
- قرار دادن پیوست در سطح سند یا سطح صفحه
- امکان پیوست چند فایل در یک عملیات
- نمایش نام و اندازهٔ همهٔ پیوست‌های انتخاب‌شده
- خروجی محتوای اصلی PDF را حفظ می‌کند و فایل‌های جاسازی‌شده را اضافه می‌کند
## گزینه‌ها
| گزینه | توضیح |
| ------------ | ------------------------------------------------------------------------- |
| **سطح سند** | فایل‌ها را به کل PDF پیوست می‌کند و از پنل پیوست‌ها در دسترس هستند |
| **سطح صفحه** | فایل‌ها را به صفحات خاصی که با ورودی بازهٔ صفحه مشخص می‌شوند پیوست می‌کند |
## موارد استفاده
- بسته‌بندی داده‌های منبع (فایل‌های Excel، CSV) همراه با گزارش PDF
- پیوست فایل‌های تصویری اصلی به PDF نمونه‌کار عکاسی
- جاسازی اسناد پشتیبان درون یک قرارداد یا پیشنهاد
- افزودن مطالب تکمیلی به صفحات خاص یک راهنمای آموزشی
## نکته‌ها
- پیوست‌های سطح سند در بیشتر PDF‌خوان‌ها پشتیبانی می‌شوند. پیوست‌های سطح صفحه ممکن است در همهٔ نمایشگرها دیده نشوند.
- محدودیتی برای اندازهٔ پیوست‌ها وجود ندارد، اما فایل‌های جاسازی‌شدهٔ بسیار بزرگ، اندازهٔ PDF را به همان نسبت افزایش می‌دهند.
## ابزارهای مرتبط
- [استخراج پیوست‌ها](./extract-attachments)
- [ویرایش پیوست‌ها](./edit-attachments)
- [ادغام PDF](./merge-pdf)
+40
View File
@@ -0,0 +1,40 @@
---
title: افزودن صفحهٔ خالی
description: یک یا چند صفحهٔ خالی را در هر موقعیتی از سند PDF درج کنید.
---
# افزودن صفحهٔ خالی
صفحات خالی را در موقعیتی که مشخص می‌کنید در PDF درج کنید. شما تعیین می‌کنید صفحات خالی کجا قرار بگیرند و چند صفحه اضافه شود.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید. ابزار تعداد صفحات را نمایش می‌دهد.
2. **موقعیت** درج صفحات خالی را وارد کنید. از `0` برای درج در ابتدای سند استفاده کنید، یا تعداد کل صفحات را برای افزودن به انتها وارد کنید.
3. **تعداد** صفحات خالی برای افزودن را وارد کنید (پیش‌فرض ۱ است).
4. روی دکمهٔ پردازش کلیک کنید. PDF تغییریافته با صفحات خالی درج‌شده دانلود می‌شود.
## ویژگی‌ها
- درج در هر موقعیت: ابتدا، میانه یا انتهای سند
- افزودن چند صفحهٔ خالی در یک عملیات
- راهنمای موقعیت بر اساس تعداد صفحات PDF بارگذاری‌شده به‌روز می‌شود
- صفحات خالی استاندارد در اندازهٔ A4
## موارد استفاده
- افزودن یک صفحهٔ خالی جداکننده بین بخش‌های یک سند گردآوری‌شده
- درج صفحات خالی برای هم‌ترازی در چاپ دورو
- افزودن فضا برای یادداشت‌های دست‌نویس در یک جزوهٔ چاپی
- رساندن سند به حداقل تعداد صفحات لازم
## نکته‌ها
- موقعیت `0` پیش از صفحهٔ اول درج می‌کند. موقعیتی برابر با تعداد کل صفحات، پس از صفحهٔ آخر اضافه می‌کند.
- اگر می‌خواهید محتوا (نه فقط صفحهٔ خالی) را در موقعیت خاصی درج کنید، از [ابزار چندکارهٔ PDF](./pdf-multi-tool) برای درج PDF دیگری پس از یک صفحهٔ مشخص استفاده کنید.
## ابزارهای مرتبط
- [تکثیر و سازماندهی](./organize-pdf)
- [ابزار چندکارهٔ PDF](./pdf-multi-tool)
- [ادغام PDF](./merge-pdf)
+53
View File
@@ -0,0 +1,53 @@
---
title: افزودن برچسب صفحه
description: برچسب‌های صفحهٔ PDF را با اعداد رومی، پیشوندهای حرفی، شماره‌گذاری سفارشی و چند قاعده در هر سند اضافه کنید.
---
# افزودن برچسب صفحه
برچسب‌های صفحه نحوهٔ نمایش شماره صفحات را در نمایشگرهای PDF کنترل می‌کنند (عددی که در نوار ابزار نشان داده می‌شود، نه آنچه روی صفحه چاپ می‌شود). این ابزار به شما امکان می‌دهد طرح‌های برچسب‌گذاری متفاوتی به بازه‌های مختلف صفحات اختصاص دهید: اعداد رومی برای صفحات مقدماتی، اعداد ده‌دهی برای متن اصلی، پیوست‌های حرفی و موارد دیگر.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. پنل گزینه‌ها با یک قاعدهٔ برچسب پیش‌فرض نمایش داده می‌شود.
3. هر قاعده را با بازهٔ صفحه، سبک، پیشوند اختیاری و مقدار شروع پیکربندی کنید.
4. روی **افزودن قاعده** کلیک کنید تا قاعده‌های بیشتری برای بخش‌های مختلف بسازید.
5. روی **افزودن برچسب صفحه** کلیک کنید تا همهٔ قاعده‌ها اعمال و نتیجه دانلود شود.
## گزینه‌ها
هر قاعدهٔ برچسب این تنظیمات را دارد:
- **بازهٔ صفحه**: قاعده روی کدام صفحات اعمال شود. برای همهٔ صفحات خالی بگذارید. از بازه‌هایی مانند `1-4`، `7`، `odd` یا `1-9,30-40` پشتیبانی می‌کند.
- **سبک برچسب**: عدد عربی ده‌دهی، رومی کوچک (i, ii, iii)، رومی بزرگ (I, II, III)، حروف کوچک (a, b, c)، حروف بزرگ (A, B, C) یا بدون برچسب (فقط پیشوند).
- **پیشوند برچسب**: متن اختیاری که پیش از هر برچسب قرار می‌گیرد، مانند «A-» برای ساخت برچسب‌هایی مثل A-1، A-2، A-3.
- **مقدار شروع**: عددی که شمارش از آن آغاز می‌شود. پیش‌فرض ۱ است. برای شماره‌گذاری از صفر، روی ۰ تنظیم کنید.
- **ادامهٔ شماره‌گذاری در بازه‌های جدا از هم**: وقتی قاعده صفحات غیرپیوسته را هدف می‌گیرد (مانند `1-9,30-40` یا `odd`) و می‌خواهید شماره‌گذاری به‌ترتیب ادامه یابد، این را فعال کنید.
- **حذف برچسب‌های صفحهٔ موجود**: به‌طور پیش‌فرض فعال است. پیش از اعمال قاعده‌های جدید، برچسب‌های قبلی را پاک می‌کند.
## ویژگی‌ها
- چند قاعدهٔ برچسب در هر سند برای طرح‌های شماره‌گذاری پیچیده
- شش سبک برچسب که همهٔ سیستم‌های شماره‌گذاری استاندارد را پوشش می‌دهند
- پشتیبانی از پیشوند سفارشی برای برچسب‌گذاری بخش‌بندی‌شده
- پشتیبانی از بازه‌های جدا از هم با شماره‌گذاری پیوسته
- گزینهٔ حفظ یا حذف برچسب‌های موجود
## موارد استفاده
- تنظیم برچسب‌های رومی (i, ii, iii) برای پیشگفتار کتاب و برچسب‌های ده‌دهی برای متن اصلی
- برچسب‌گذاری صفحات پیوست با پیشوندهای حرفی مانند «A-1»، «A-2»، «B-1»، «B-2»
- اصلاح برچسب‌های صفحه در سند اسکن‌شده‌ای که شماره صفحات فیزیکی با ترتیب صفحات PDF مطابقت ندارد
- افزودن شماره‌گذاری از صفر برای اسناد فنی
## نکته‌ها
- برچسب‌های صفحه فراداده‌ای هستند که نمایشگرهای PDF در نوار ابزار پیمایش نشان می‌دهند. آن‌ها روی صفحهٔ واقعی چاپ نمی‌شوند. برای اعداد قابل مشاهده، از [شماره‌گذاری صفحات](./page-numbers) استفاده کنید.
- این ابزار نیاز دارد CoherentPDF (CPDF) در تنظیمات WASM پیکربندی شده باشد. اگر راه‌اندازی نشده باشد، از شما خواسته می‌شود آن را پیکربندی کنید.
## ابزارهای مرتبط
- [شماره‌گذاری صفحات](./page-numbers)
- [شماره‌گذاری Bates](./bates-numbering)
- [ویرایش نشانک‌ها](./bookmark)
+45
View File
@@ -0,0 +1,45 @@
---
title: افزودن مهر
description: با یک نوار ابزار حاشیه‌نویسی یکپارچه و انتساب نام کاربری، مهرهای تصویری به صفحات PDF اضافه کنید.
---
# افزودن مهر
با استفاده از یک نمایشگر تعبیه‌شده همراه با نوار ابزار حاشیه‌نویسی مهر، مهرهای تصویری را روی صفحات PDF قرار دهید. مهرها می‌توانند نام شما را برای انتساب داشته باشند، که این ابزار را برای گردش‌های کاری تأیید، فرایندهای بازبینی و علامت‌گذاری اسناد مفید می‌کند.
## نحوهٔ کار
1. نام خود را در فیلد **نام کاربری مهر** وارد کنید. این نام روی مهرهایی که می‌سازید نمایش داده می‌شود.
2. فایل PDF خود را با کلیک یا کشیدن به ناحیهٔ رها کردن بارگذاری کنید.
3. ویرایشگر مهر با سند بارگذاری‌شده در یک نمایشگر باز می‌شود.
4. از ابزار مهر تصویری در نوار ابزار برای انتخاب و قرار دادن مهر روی هر صفحه استفاده کنید.
5. در صورت نیاز موقعیت و اندازهٔ مهرها را تنظیم کنید.
6. روی **ذخیرهٔ PDF مهرشده** کلیک کنید تا نتیجه دانلود شود.
## ویژگی‌ها
- نمایشگر PDF یکپارچه با نوار ابزار حاشیه‌نویسی ویژهٔ مهر
- انتساب نام کاربری روی مهرهای ساخته‌شده
- قرار دادن مهر تصویری روی هر صفحه
- جابه‌جایی و تغییر اندازه با کشیدن و رها کردن
- تنظیم خودکار اندازهٔ نمایشگر بر اساس نسبت ابعاد صفحه
- نمایش فایل با نام و اندازهٔ آن
## موارد استفاده
- افزودن مهرهای تصویری «APPROVED» یا «REVIEWED» به اسناد در گردش کار بازبینی
- قرار دادن تصویر مهر شرکت یا مهر دفتر اسناد رسمی روی اسناد رسمی
- علامت‌گذاری صفحات با مهر «RECEIVED» همراه با نام بازبین
- افزودن مهرهای کنترل کیفیت به گزارش‌های بازرسی
## نکته‌ها
- پیش از بارگذاری PDF، نام کاربری مهر را تنظیم کنید. نام کاربری در فرادادهٔ مهر جاسازی می‌شود.
- نمایشگر ارتفاع خود را بر اساس نسبت ابعاد صفحهٔ اول PDF برای بهترین نمایش تنظیم می‌کند.
- برای واترمارک‌های متنی به‌جای مهرهای تصویری، از ابزار [افزودن واترمارک](./add-watermark) استفاده کنید.
## ابزارهای مرتبط
- [امضای PDF](./sign-pdf)
- [افزودن واترمارک](./add-watermark)
- [ویرایشگر PDF](./edit-pdf)
+79
View File
@@ -0,0 +1,79 @@
---
title: افزودن واترمارک
description: با یک ویرایشگر بصری کشیدن و رها کردن و پیش‌نمایش زنده، واترمارک متنی یا تصویری روی صفحات PDF بزنید.
---
# افزودن واترمارک
با یک ویرایشگر بصری، واترمارک متنی یا تصویری به صفحات PDF اضافه کنید. می‌توانید واترمارک را با کشیدن مستقیم روی پیش‌نمایش جابه‌جا کنید، با دستگیره‌های گوشه اندازه‌اش را تغییر دهید و شفافیت، چرخش، قلم و رنگ را تنظیم کنید. هر صفحه می‌تواند موقعیت واترمارک خودش را داشته باشد، یا می‌توانید یک واترمارک را یک‌جا روی همهٔ صفحات اعمال کنید.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. ویرایشگر با پیش‌نمایش زندهٔ صفحهٔ اول و یک لایهٔ واترمارک قابل کشیدن باز می‌شود.
3. با دکمه‌های تغییر حالت، بین واترمارک **متنی** یا **تصویری** انتخاب کنید.
4. تنظیمات واترمارک را در پنل کناری پیکربندی کنید.
5. واترمارک را روی پیش‌نمایش بکشید تا دقیقاً جایی که می‌خواهید قرار گیرد. برای تغییر اندازه از دستگیره‌های گوشه استفاده کنید.
6. برای تنظیم واترمارک هر صفحه بین صفحات جابه‌جا شوید، یا گزینهٔ **اعمال روی همهٔ صفحات** را فعال نگه دارید.
7. روی **افزودن واترمارک** کلیک کنید تا پردازش و دانلود شود.
## گزینه‌ها
**تنظیمات واترمارک متنی:**
- **متن**: متن واترمارک (مثلاً «محرمانه»، «پیش‌نویس»).
- **اندازهٔ قلم**: از ۱۰ تا ۲۰۰ پوینت. پیش‌فرض ۷۲ است.
- **رنگ**: هر رنگی با انتخابگر رنگ.
- **شفافیت**: کنترل شفافیت از کاملاً شفاف تا کاملاً مات.
- **چرخش**: چرخاندن متن واترمارک از ۱۸۰- تا ۱۸۰ درجه.
**تنظیمات واترمارک تصویری:**
- **بارگذاری تصویر**: یک فایل PNG، JPG یا تصویر دیگر را برای استفاده به‌عنوان واترمارک بارگذاری کنید.
- **شفافیت**: کنترل شفافیت تصویر.
- **مقیاس**: تغییر اندازهٔ واترمارک تصویری.
**تنظیمات چیدمان:**
- **تکی**: یک واترمارک در هر صفحه که با کشیدن یا با موقعیت‌های از پیش تعیین‌شده جای‌گذاری می‌شود.
- **کاشی‌کاری**: واترمارک را در سراسر صفحه در یک شبکهٔ مورب که از زاویهٔ چرخش پیروی می‌کند تکرار می‌کند، تا علامت سند را از لبه تا لبه بپوشاند.
- **فاصلهٔ افقی**: فاصلهٔ بین کاشی‌ها در جهت متن، به‌صورت درصدی از عرض واترمارک (فقط در حالت کاشی‌کاری).
- **فاصلهٔ عمودی**: فاصلهٔ بین ردیف‌های کاشی، به‌صورت درصدی از ارتفاع واترمارک (فقط در حالت کاشی‌کاری).
**تنظیمات عمومی:**
- **اعمال روی همهٔ صفحات**: وقتی فعال باشد، همان واترمارک روی تک‌تک صفحات اعمال می‌شود. برای تنظیم واترمارک جداگانه برای هر صفحه، آن را غیرفعال کنید.
- **بازهٔ صفحه**: مشخص کنید کدام صفحات واترمارک بگیرند (مثلاً «1-3, 5, 7-9» یا «all»).
## ویژگی‌ها
- جای‌گذاری بصری با کشیدن و رها کردن روی پیش‌نمایش زندهٔ PDF
- واترمارک قابل تغییر اندازه با دستگیره‌های گوشه
- حالت‌های واترمارک متنی و تصویری
- چیدمان تکی یا کاشی‌کاری تمام‌صفحه (تکرارشونده) با فاصلهٔ قابل تنظیم
- اعمال واترمارک برای هر صفحه یا به‌صورت سراسری
- پیمایش صفحه به صفحه در پیش‌نمایش
- کنترل شفافیت و چرخش
- فیلتر بازهٔ صفحه
## موارد استفاده
- علامت‌گذاری پیش‌نویس‌ها با «پیش‌نویس» پیش از ارسال برای بازبینی
- افزودن واترمارک «محرمانه» به گزارش‌های مالی حساس
- برندسازی اسناد با واترمارک تصویری لوگوی شرکت
- زدن «SAMPLE» روی مستندات محصول که با مشتریان بالقوه به اشتراک گذاشته می‌شود
- افزودن اعلان حق نشر به مطالب PDF توزیع‌شده
## نکته‌ها
- برای واترمارک مورب در سراسر صفحه، چرخش را حدود ۴۵ درجه تنظیم کنید و اندازهٔ قلم را افزایش دهید.
- حالت کاشی‌کاری استفادهٔ دوباره از سند پس از برش را بسیار دشوارتر می‌کند، چون حذف یک علامت همچنان ده‌ها علامت دیگر را باقی می‌گذارد. هنگام کاشی‌کاری شفافیت را کم کنید تا متن زیرین خوانا بماند.
- واترمارک‌های تصویری با پس‌زمینهٔ شفاف (قالب PNG) طبیعی‌تر با محتوای سند ترکیب می‌شوند.
- اگر برای صفحات مختلف به متن واترمارک متفاوتی نیاز دارید، «اعمال روی همهٔ صفحات» را غیرفعال کنید و صفحه به صفحه پیش بروید.
## ابزارهای مرتبط
- [سرصفحه و پاصفحه](./header-footer)
- [افزودن مهر](./add-stamps)
- [شماره‌گذاری Bates](./bates-numbering)
- [امضای PDF](./sign-pdf)
+55
View File
@@ -0,0 +1,55 @@
---
title: تنظیم رنگ‌ها
description: روشنایی، کنتراست، اشباع، فام، دمای رنگ، ته‌رنگ، گاما و سپیا را در PDF خود دقیق تنظیم کنید.
---
# تنظیم رنگ‌ها
مجموعه‌ای کامل برای اصلاح رنگ در PDF. هشت پارامتر مستقل را تنظیم کنید (روشنایی، کنتراست، اشباع، چرخش فام، دمای رنگ، ته‌رنگ، گاما و سپیا) و پیش‌نمایش زنده با جابه‌جایی هر لغزنده به‌روز می‌شود.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. ویرایشگر با پیش‌نمایش صفحهٔ اول و پنل تنظیمات رنگ باز می‌شود.
3. لغزنده‌ها را برای تنظیم هر پارامتر رنگ جابه‌جا کنید. پیش‌نمایش بی‌درنگ به‌روز می‌شود.
4. روی **بازنشانی** کلیک کنید تا همهٔ لغزنده‌ها به موقعیت پیش‌فرض برگردند.
5. روی **اعمال** کلیک کنید تا همهٔ صفحات پردازش و PDF تنظیم‌شده دانلود شود.
## گزینه‌ها
- **روشنایی**: کل صفحه را روشن‌تر یا تیره‌تر می‌کند (۱۰۰- تا ۱۰۰+).
- **کنتراست**: تفاوت بین نواحی روشن و تیره را افزایش یا کاهش می‌دهد (۱۰۰- تا ۱۰۰+).
- **اشباع**: شدت رنگ را افزایش یا کاهش می‌دهد (۱۰۰- تا ۱۰۰+). تنظیم روی ۱۰۰- نتیجهٔ خاکستری ایجاد می‌کند.
- **چرخش فام**: چرخهٔ رنگ را می‌چرخاند تا همهٔ رنگ‌ها به‌طور یکسان جابه‌جا شوند.
- **دمای رنگ**: رنگ‌ها را گرم‌تر (زرد/نارنجی) یا سردتر (آبی) می‌کند.
- **ته‌رنگ**: ته‌رنگ سبز یا سرخابی اضافه می‌کند.
- **گاما**: روشنایی میان‌تون‌ها را با منحنی گاما تنظیم می‌کند. مقادیر کمتر از 1.0 میان‌تون‌ها را تیره‌تر و مقادیر بیشتر از 1.0 آن‌ها را روشن‌تر می‌کنند.
- **سپیا**: جلوهٔ کلاسیک سپیا را اعمال می‌کند. مقادیر بالاتر ته‌رنگ قهوه‌ای قوی‌تری ایجاد می‌کنند.
## ویژگی‌ها
- هشت پارامتر رنگ با تنظیم مستقل
- پیش‌نمایش زنده که بی‌درنگ به تغییر لغزنده‌ها واکنش نشان می‌دهد
- دکمهٔ بازنشانی برای بازگشت سریع به پیش‌فرض‌ها
- پردازش همهٔ صفحات سند
- کار با هر محتوای PDF (متن، تصاویر، گرافیک)
## موارد استفاده
- روشن کردن یک اسکن تیره یا اصلاح صفحات بیش از حد روشن
- کاهش اشباع یک سند رنگی برای مصرف کمتر جوهر پیش از چاپ
- اعمال تن سپیا برای ظاهری قدیمی در گواهی‌نامه‌ها یا لوح‌های تقدیر
- اصلاح دمای رنگ عکس‌های جاسازی‌شده در PDF
- افزایش کنتراست اسناد اسکن‌شدهٔ کم‌رنگ یا کم‌کیفیت
## نکته‌ها
- برای تبدیل سریع به خاکستری، لغزندهٔ اشباع را تا انتها روی ۱۰۰- بکشید.
- لغزندهٔ گاما به‌ویژه برای بهبود خوانایی اسناد اسکن‌شده‌ای که میان‌تون‌هایشان بیش از حد تیره یا روشن است مفید است.
- مانند دیگر ابزارهای جلوهٔ تصویری، این ابزار هر صفحه را به تصویر (راستر) تبدیل می‌کند. خروجی مبتنی بر تصویر خواهد بود، پس متن قابل انتخاب نیست.
## ابزارهای مرتبط
- [وارونه‌سازی رنگ‌ها](./invert-colors)
- [جلوهٔ اسکنر](./scanner-effect)
- [رنگ پس‌زمینه](./background-color)
+42
View File
@@ -0,0 +1,42 @@
---
title: ادغام یک‌درمیان صفحات
description: PDFها را با درهم‌آمیختن یک‌درمیان صفحات هر فایل ادغام کنید، با حفظ نشانک‌ها.
---
# ادغام یک‌درمیان صفحات
صفحات چند فایل PDF را درهم بیامیزید تا صفحات به‌نوبت از اسناد مختلف بیایند. این ابزار برای زمانی است که ادغام معمولی فایل‌ها را فقط پشت سر هم قرار می‌دهد، اما شما به صفحهٔ ۱ فایل A، سپس صفحهٔ ۱ فایل B، سپس صفحهٔ ۲ فایل A و به همین ترتیب نیاز دارید.
## نحوهٔ کار
1. حداقل دو فایل PDF را با ناحیهٔ رها کردن بارگذاری کنید.
2. ابزار هر فایل را با تعداد صفحات و اندازهٔ آن نمایش می‌دهد.
3. دستگیره‌ها را بکشید تا ترتیب فایل‌ها در توالی درهم‌آمیزی را تعیین کنید.
4. روی **ترکیب صفحات** کلیک کنید تا خروجی درهم‌آمیخته ساخته شود.
5. نتیجه با نام `alternated-mixed.pdf` دانلود می‌شود.
## ویژگی‌ها
- درهم‌آمیزی صفحات هر تعداد PDF (حداقل دو)
- تغییر ترتیب فایل‌ها با کشیدن و رها کردن برای کنترل اولویت درهم‌آمیزی
- حفظ نشانک‌های اسناد منبع
- نمایش تعداد صفحات و اندازهٔ هر فایل بارگذاری‌شده
- پردازش با یک web worker اختصاصی برای رابط کاربری روان
## موارد استفاده
- بازسازی اسکن‌های دورو که صفحات فرد و زوج جداگانه اسکن شده‌اند
- ترکیب برگه‌های سؤال با پاسخ‌نامه‌ها تا هر سؤال با پاسخش دنبال شود
- ادغام صفحه به صفحهٔ اسناد دوزبانه (مثلاً انگلیسی در یک صفحه، ترجمه در صفحهٔ بعد)
- درهم‌آمیزی اسکن‌های رو و پشت از یک اسکنر یک‌رو
## نکته‌ها
- اگر PDFهای منبع تعداد صفحات متفاوتی دارند، صفحات سند کوتاه‌تر زودتر تمام می‌شود و صفحات باقی‌ماندهٔ سند بلندتر در انتها می‌آیند.
- ترتیب فایل‌ها مهم است: اولین فایل فهرست، صفحهٔ اول خروجی را تأمین می‌کند. در صورت نیاز با کشیدن ترتیب را تغییر دهید.
## ابزارهای مرتبط
- [ادغام PDF](./merge-pdf)
- [تکثیر و سازماندهی](./organize-pdf)
- [تقسیم PDF](./split-pdf)
+45
View File
@@ -0,0 +1,45 @@
---
title: رنگ پس‌زمینه
description: رنگ پس‌زمینهٔ همهٔ صفحات PDF را تغییر دهید و همهٔ محتوای رویی را حفظ کنید.
---
# رنگ پس‌زمینه
یک رنگ پس‌زمینهٔ یکدست پشت همهٔ محتوای موجود PDF قرار دهید. ابزار روی هر صفحه یک مستطیل رنگی می‌سازد و محتوای اصلی را روی آن قرار می‌دهد، بنابراین متن، تصاویر و گرافیک‌ها روی پس‌زمینهٔ جدید کاملاً قابل مشاهده می‌مانند.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. با انتخابگر رنگ یک رنگ پس‌زمینه انتخاب کنید. پیش‌فرض زرد روشن (#FFFFCC) است.
3. روی **تغییر رنگ پس‌زمینه** کلیک کنید تا پردازش شود.
4. PDF به‌روزشده به‌طور خودکار دانلود می‌شود.
## گزینه‌ها
- **رنگ پس‌زمینه**: یک انتخابگر رنگ استاندارد برای انتخاب هر رنگ یکدست. پیش‌فرض زرد روشن است.
## ویژگی‌ها
- اعمال رنگ پس‌زمینهٔ یکسان روی همهٔ صفحات
- حفظ همهٔ محتوای اصلی (متن، تصاویر، گرافیک برداری) روی لایهٔ رنگی
- حفظ ابعاد اصلی صفحه
- کار با اسنادی با هر تعداد صفحه
## موارد استفاده
- افزودن پس‌زمینهٔ کرم یا عاجی روشن برای ظاهری نرم‌تر و کاغذمانند
- رنگ‌بندی مجموعه اسناد با اعمال رنگ‌های پس‌زمینهٔ متفاوت برای دسته‌های مختلف
- ساخت نسخه‌های متمایز بصری از یک سند برای مخاطبان مختلف
- افزودن ته‌رنگ روشن به پس‌زمینه برای خوانایی بهتر هنگام نمایش اسناد روی پرده
## نکته‌ها
- رنگ‌های روشن و ملایم بهترین نتیجه را دارند. پس‌زمینهٔ خیلی تیره می‌تواند خواندن متن را دشوار کند، مگر اینکه متن از قبل روشن باشد.
- اگر می‌خواهید هم پس‌زمینه و هم رنگ متن را تغییر دهید، ابتدا رنگ پس‌زمینه را اعمال کنید، سپس روی نتیجه از [تغییر رنگ متن](./text-color) استفاده کنید.
- این ابزار در سطح ساختار PDF کار می‌کند (نه تبدیل به تصویر)، بنابراین متن در خروجی قابل انتخاب و جستجو باقی می‌ماند.
## ابزارهای مرتبط
- [تغییر رنگ متن](./text-color)
- [وارونه‌سازی رنگ‌ها](./invert-colors)
- [تنظیم رنگ‌ها](./adjust-colors)
+62
View File
@@ -0,0 +1,62 @@
---
title: شماره‌گذاری Bates
description: شماره‌های Bates را با قالب‌ها، صفرگذاری، قلم‌ها و موقعیت‌های قابل تنظیم روی یک یا چند PDF اعمال کنید.
---
# شماره‌گذاری Bates
شماره‌گذاری Bates شناسه‌های ترتیبی را روی همهٔ صفحات PDFهای شما درج می‌کند. این روش استاندارد برچسب‌گذاری اسناد در دادرسی‌های حقوقی، حسابرسی‌ها و گردش‌های کاری انطباق است. این ابزار از چند فایل و قالب‌های قابل تنظیم پشتیبانی می‌کند و PDFهای شماره‌گذاری‌شدهٔ جداگانه یا یک آرشیو ZIP تولید می‌کند.
## نحوهٔ کار
1. یک یا چند فایل PDF بارگذاری کنید. می‌توانید چند فایل را یک‌جا بکشید.
2. یک سبک از پیش تعیین‌شده انتخاب کنید یا یک قالب سفارشی بسازید.
3. موقعیت، قلم، اندازه، رنگ و شماره‌های شروع را پیکربندی کنید.
4. روی **اعمال شماره‌های Bates** کلیک کنید تا پردازش شود.
5. یک فایل تکی مستقیماً دانلود می‌شود. چند فایل به‌صورت آرشیو ZIP دانلود می‌شوند.
## گزینه‌ها
- **سبک از پیش تعیین‌شده**: از قالب‌های داخلی انتخاب کنید:
- Exhibit + Case + Bates + Page (مثلاً «Exhibit 1 Case XYZ 000001 Page 1»)
- Exhibit + Case + Bates (بدون شماره صفحه)
- Case + Bates
- فقط شماره Bates (مثلاً «000001»)
- سفارشی (قالب خودتان را بنویسید)
- **سفارشی‌سازی سبک**: رشتهٔ قالبی با جایگزین‌های `[BATES]`، `[PAGE]`، `[FILE]`، `[FILENAME]`.
- **صفرگذاری Bates**: تعداد ارقام (۳ تا ۶) برای شماره‌های Bates با صفرهای پیشرو. فقط در حالت سفارشی نمایش داده می‌شود.
- **موقعیت**: سرصفحه یا پاصفحه، چپ، وسط یا راست.
- **شروع Bates از**: نخستین شماره Bates. پیش‌فرض ۱ است. شماره‌گذاری در فایل‌ها ادامه می‌یابد.
- **شروع شمارندهٔ فایل از**: شمارهٔ شروع برای جایگزین `[FILE]`.
- **قلم**: Helvetica، Times New Roman یا Courier.
- **اندازهٔ قلم**: اندازهٔ متن درج‌شده.
- **رنگ**: انتخابگر رنگ برای متن شماره Bates.
## ویژگی‌ها
- پیش‌نمایش زنده که نشان می‌دهد شماره‌های Bates در همهٔ فایل‌های بارگذاری‌شده چگونه ظاهر می‌شوند
- پشتیبانی از چند فایل با شماره‌گذاری پیوسته در اسناد
- تغییر ترتیب فایل‌ها با کشیدن و رها کردن برای کنترل توالی شماره‌گذاری
- شش گزینهٔ موقعیت (سرصفحه/پاصفحه، چپ/وسط/راست)
- محاسبهٔ حاشیهٔ تطبیقی متناسب با اندازه‌های مختلف صفحه
- خروجی ZIP برای دسته‌های چندفایلی
- جایگزین‌های قالب برای بیشترین انعطاف‌پذیری
## موارد استفاده
- درج شماره‌های ترتیبی مدارک روی اسناد کشف دعوی برای دادرسی
- شماره‌گذاری بسته‌های شواهد حسابرسی که ده‌ها فایل را در بر می‌گیرند
- اعمال شماره‌های مرجع نظارتی روی مستندات انطباق
- برچسب‌گذاری پیوست‌های درخواست ثبت اختراع با شناسه‌های ویژهٔ پرونده
## نکته‌ها
- پیش از پردازش، فایل‌ها را در فهرست بکشید تا ترتیبشان را تغییر دهید. توالی شماره‌گذاری Bates از این ترتیب پیروی می‌کند.
- از جایگزین `[FILENAME]` برای درج نام فایل اصلی در مهر استفاده کنید که به ردیابی صفحات تا اسناد منبع کمک می‌کند.
- کادر پیش‌نمایش با تغییر تنظیمات بی‌درنگ به‌روز می‌شود، پس می‌توانید قالب را پیش از پردازش بررسی کنید.
## ابزارهای مرتبط
- [شماره‌گذاری صفحات](./page-numbers)
- [افزودن برچسب صفحه](./add-page-labels)
- [سرصفحه و پاصفحه](./header-footer)
+44
View File
@@ -0,0 +1,44 @@
---
title: BMP به PDF
description: تصاویر بیت‌مپ BMP را مستقیماً در مرورگر به قالب PDF تبدیل کنید، بدون نیاز به بارگذاری روی هیچ سروری.
---
# BMP به PDF
فایل‌های Windows Bitmap (BMP) را به PDF تبدیل کنید. BMP یک قالب تصویر فشرده‌نشده است که هنوز در سیستم‌های قدیمی، تصویربرداری پزشکی و اسکنرهای صنعتی دیده می‌شود. این ابزار آن‌ها را بدون نیاز به نصب چیزی به PDF تبدیل می‌کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :--- | :------ |
| BMP | `.bmp` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های BMP خود را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های بیشتری اضافه کنید یا موارد ناخواسته را حذف کنید.
3. روی **تبدیل به PDF** کلیک کنید. خروجی با نام `from_bmps.pdf` دانلود می‌شود.
هر BMP روی یک canvas رسم می‌شود، به PNG صادر می‌شود و سپس با pdf-lib در PDF جاسازی می‌شود. اندازهٔ صفحه با ابعاد تصویر اصلی مطابقت دارد.
## گزینه‌ها
این ابزار تنظیمات کیفیت اضافی ندارد. تصاویر با وضوح اصلی خود به‌صورت PNG بدون اتلاف در PDF جاسازی می‌شوند.
## موارد استفاده
- تبدیل اسناد اسکن‌شدهٔ قدیمی ذخیره‌شده به‌صورت BMP به PDFهای آرشیوی
- تبدیل اسکرین‌شات‌های BMP از برنامه‌های قدیمی Windows به اسناد قابل اشتراک‌گذاری
- پردازش خروجی اسکنرهای پزشکی یا صنعتی که به‌طور پیش‌فرض BMP تولید می‌کنند
- انتقال آرشیوهای تصویری قدیمی به قالبی قابل حمل‌تر
## نکته‌ها
- فایل‌های BMP فشرده‌نشده هستند و معمولاً حجیم‌اند. PDF حاصل به‌مراتب کوچک‌تر خواهد بود، چون تصاویر در داخل دوباره به PNG رمزگذاری می‌شوند.
- اگر فایل‌های BMP را همراه با قالب‌های تصویری دیگر دارید، از ابزار [تصاویر به PDF](./image-to-pdf) برای تبدیل همه در یک دسته استفاده کنید.
## ابزارهای مرتبط
- [تصاویر به PDF](./image-to-pdf)
- [PNG به PDF](./png-to-pdf)
- [TIFF به PDF](./tiff-to-pdf)
+57
View File
@@ -0,0 +1,57 @@
---
title: ویرایش نشانک‌ها
description: افزودن، ویرایش، وارد کردن، صادر کردن و حذف نشانک‌های PDF با ویرایشگر بصری و پشتیبانی از CSV/JSON.
---
# ویرایش نشانک‌ها
ویرایشگر نشانک کنترل کامل نشانک‌های ناوبری PDF (که «طرح کلی» نیز نامیده می‌شوند) را در اختیار شما می‌گذارد. می‌توانید نشانک‌های جدید اضافه کنید، نشانک‌های موجود را ویرایش کنید، ساختار سلسله‌مراتبی را بازآرایی کنید و داده‌های نشانک را با قالب‌های CSV و JSON وارد یا صادر کنید.
## نحوهٔ کار
1. PDF خود را با کلیک یا کشیدن فایل به ناحیهٔ رها کردن بارگذاری کنید.
2. در صورت تمایل گزینهٔ **استخراج خودکار نشانک‌های موجود** را علامت بزنید تا درخت نشانک فعلی سند بارگیری شود.
3. ویرایشگر با نمای دوبخشی باز می‌شود: نمایشگر PDF در سمت چپ و پنل نشانک در سمت راست.
4. عنوان نشانک را تایپ کنید و روی **افزودن به صفحه** کلیک کنید تا نشانکی جدید به صفحهٔ فعلی ساخته شود.
5. با دکمه‌های نوار ابزار نشانک‌ها را جابه‌جا، قالب‌بندی یا حذف کنید.
6. روی **ذخیرهٔ PDF با نشانک‌ها** کلیک کنید تا فایل به‌روزشده دانلود شود.
## ویژگی‌ها
- نمایشگر بصری PDF با ناوبری صفحه، کنترل بزرگ‌نمایی و ورودی رفتن به صفحه
- افزودن نشانک به هر صفحه تنها با یک کلیک
- کلیک مستقیم روی PDF برای تعیین مقصد دقیق نشانک (حالت انتخاب)
- سلسله‌مراتب تودرتوی نشانک‌ها با مرتب‌سازی کشیدن و رها کردن
- عملیات گروهی: انتخاب چند نشانک برای تغییر رنگ، سبک یا حذف یکجا
- جستجوی نشانک برای یافتن سریع موارد در درخت‌های بزرگ
- پشتیبانی از واگرد و ازنو برای همهٔ تغییرات
- وارد کردن نشانک از فایل‌های CSV (عنوان، صفحه، سطح) یا JSON
- صادر کردن نشانک‌ها به CSV یا JSON برای ویرایش بیرونی
- سبک‌دهی نشانک: رنگ (قرمز، آبی، سبز، زرد، بنفش) و سبک قلم (پررنگ، کج، پررنگ کج)
- ناوبری سریع: پیمایش صفحات با کلیدهای Page Up/Page Down
## گزینه‌ها
- **استخراج خودکار نشانک‌های موجود**: اگر علامت خورده باشد، ابزار هنگام بارگذاری نشانک‌های فعلی PDF را می‌خواند و نمایش می‌دهد.
- **حالت گروهی**: برای انتخاب چند نشانک و اعمال گروهی رنگ، سبک یا حذف، آن را روشن کنید.
- **باز/بستن همه**: نمایش یا پنهان کردن سریع زیرمجموعه‌های تودرتوی نشانک‌ها.
## کاربردها
- افزودن فهرست مطالب به کتاب درسی یا دفترچهٔ راهنمایی که نشانک ندارد
- بازسازی نشانک‌ها در سند اسکن‌شده پس از پردازش OCR
- صادر کردن نشانک‌ها به CSV، ویرایش آن‌ها در صفحه‌گسترده و سپس وارد کردن دوباره
- پاک‌سازی نشانک‌های خودکار ساخته‌شده که ارجاع صفحهٔ نادرست دارند
- افزودن نشانک‌های رنگی برای مشخص کردن بخش‌های مهم در یک لایحهٔ حقوقی
## نکته‌ها
- برای ساخت انبوه نشانک از وارد کردن CSV استفاده کنید. قالب آن ساده است: `title,page,level` که در آن سطح 1 بالاترین سطح است.
- حالت انتخاب به شما امکان می‌دهد روی نقطه‌ای دقیق از صفحهٔ PDF کلیک کنید تا مقصد نشانک تعیین شود، که دقیق‌تر از هدف‌گیری صرفاً یک شمارهٔ صفحه است.
- پیش از تغییرات اساسی، نشانک‌های خود را صادر کنید تا نسخهٔ پشتیبان داشته باشید.
## ابزارهای مرتبط
- [فهرست مطالب](./table-of-contents)
- [ویرایشگر PDF](./edit-pdf)
- [افزودن برچسب صفحه](./add-page-labels)
+47
View File
@@ -0,0 +1,47 @@
---
title: CBZ به PDF
description: تبدیل آرشیوهای کمیک CBZ و CBR به PDF در مرورگر. رایگان، خصوصی و بدون نیاز به بارگذاری.
---
# CBZ به PDF
فایل‌های آرشیو کمیک را به PDF تبدیل کنید. CBZ و CBR قالب‌های استاندارد کمیک‌های دیجیتال هستند؛ در واقع فقط آرشیوهای ZIP یا RAR پر از تصویرند. این ابزار هر صفحه را استخراج می‌کند، ترتیب خواندن را حفظ می‌کند و یک PDF تمیز می‌سازد که در آن هر تصویر به یک صفحهٔ تمام‌اندازه تبدیل می‌شود.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :--- | :----- | :------------------------------------------------ |
| CBZ | `.cbz` | آرشیو کمیک مبتنی بر ZIP (پردازش محلی با pdf-lib) |
| CBR | `.cbr` | آرشیو کمیک مبتنی بر RAR (پردازش با موتور PyMuPDF) |
مبدل CBZ تصاویر JPEG، PNG، GIF، BMP، WebP، AVIF، TIFF، HEIC و JXL داخل آرشیو را تشخیص می‌دهد. قالب‌های غیراستاندارد پیش از جاسازی به‌طور خودکار به PNG تبدیل می‌شوند.
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های CBZ یا CBR خود را بکشید و رها کنید. می‌توانید هر دو قالب را در یک دسته ترکیب کنید.
2. فایل‌های فهرست‌شده را بررسی کنید. هر کدام را که لازم ندارید حذف کنید یا برای افزودن فایل‌های بیشتر روی **افزودن فایل‌های بیشتر** کلیک کنید.
3. روی **تبدیل به PDF** کلیک کنید. برای فایل‌های CBZ، ابزار آرشیو را از حالت فشرده خارج می‌کند، فایل‌های تصویر را به ترتیب طبیعی نام مرتب می‌کند، قالب واقعی هر تصویر را تشخیص می‌دهد و آن‌ها را با pdf-lib در یک PDF جاسازی می‌کند. فایل‌های CBR به‌جای آن از طریق موتور PyMuPDF پردازش می‌شوند.
4. یک فایل به‌صورت PDF دانلود می‌شود. چند فایل یک آرشیو ZIP با نام `comic-converted.zip` تولید می‌کنند.
## گزینه‌ها
نیازی به پیکربندی نیست. هر تصویر به صفحه‌ای با اندازهٔ ابعاد اصلی خودش تبدیل می‌شود، بنابراین صفحات دوبرگی عریض و صفحات تکی باریک می‌مانند.
## کاربردها
- خواندن کمیک در برنامهٔ تبلت یا تلفن که از PDF پشتیبانی می‌کند اما از CBZ/CBR نه
- چاپ صفحات مشخصی از یک کمیک دیجیتال
- بایگانی مجموعهٔ کمیک در قالبی که هر نمایشگر فایلی می‌تواند باز کند
- اشتراک‌گذاری کمیک با کسی که کمیک‌خوان اختصاصی ندارد
## نکته‌ها
- تصاویر داخل آرشیو با ترتیب طبیعی مرتب می‌شوند (بنابراین `page2.jpg` پیش از `page10.jpg` می‌آید). برای ترتیب درست صفحات، فایل‌ها را با شماره‌گذاری یکنواخت نام‌گذاری کنید.
- مبدل قالب تصاویر را از روی امضای دودویی آن‌ها تشخیص می‌دهد، نه پسوند فایل. یک PNG که اشتباهاً `.jpg` نام‌گذاری شده باشد همچنان درست جاسازی می‌شود.
- فایل‌های CBZ بدون بارگیری موتور PyMuPDF و کاملاً در مرورگر پردازش می‌شوند، بنابراین سریع‌تر از فایل‌های CBR تبدیل می‌شوند.
## ابزارهای مرتبط
- [EPUB به PDF](./epub-to-pdf)
- [MOBI به PDF](./mobi-to-pdf)
- [تصاویر به PDF](./image-to-pdf)
+61
View File
@@ -0,0 +1,61 @@
---
title: تغییر مجوزها
description: تنظیم یا تغییر مجوزهای استفاده از PDF برای چاپ، کپی، ویرایش و حاشیه‌نویسی. با رمزگذاری AES ۲۵۶ بیتی.
---
# تغییر مجوزها
آنچه گیرندگان می‌توانند با PDF شما انجام دهند را دقیق تنظیم کنید. برخلاف رمزگذاری ساده که فقط فایل را پشت گذرواژه قفل می‌کند، این ابزار به شما اجازه می‌دهد چاپ، کپی، ویرایش، حاشیه‌نویسی، پر کردن فرم، سرهم‌بندی سند و استخراج صفحه را به‌صورت انتخابی مجاز یا ممنوع کنید؛ همه با رمزگذاری AES ۲۵۶ بیتی اعمال می‌شوند.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. اگر PDF از قبل رمزگذاری شده است، **گذرواژهٔ فعلی** را وارد کنید.
3. یک **گذرواژهٔ کاربر جدید** (برای باز کردن لازم است) و/یا **گذرواژهٔ مالک جدید** (کنترل مجوزها) تعیین کنید.
4. هر مجوز را با کادرهای علامت روشن یا خاموش کنید.
5. روی **تغییر مجوزها** کلیک کنید.
6. PDF به‌روزشده را دانلود کنید.
اگر هر دو فیلد گذرواژهٔ جدید را خالی بگذارید، ابزار PDF را به‌طور کامل رمزگشایی می‌کند و همهٔ رمزگذاری‌ها و محدودیت‌ها را برمی‌دارد.
## کنترل‌های مجوز
| مجوز | آنچه کنترل می‌کند |
| ------------------------- | ---------------------------------------------- |
| **اجازهٔ چاپ** | اینکه آیا سند قابل چاپ است |
| **اجازهٔ کپی** | اینکه آیا متن و تصاویر قابل انتخاب و کپی هستند |
| **اجازهٔ تغییر** | اینکه آیا محتوای سند قابل ویرایش است |
| **اجازهٔ حاشیه‌نویسی** | اینکه آیا می‌توان نظر، برجسته‌سازی و مهر افزود |
| **اجازهٔ پر کردن فرم‌ها** | اینکه آیا فیلدهای فرم تعاملی قابل تکمیل هستند |
| **اجازهٔ سرهم‌بندی سند** | اینکه آیا صفحات قابل درج، حذف یا چرخش هستند |
| **اجازهٔ استخراج صفحه** | اینکه آیا صفحات جداگانه قابل استخراج هستند |
همهٔ مجوزها برای اعمال شدن به گذرواژهٔ مالک نیاز دارند. بدون گذرواژهٔ مالک، بیشتر نمایشگرهای PDF پرچم‌های مجوز را نادیده می‌گیرند.
## مجوزها در PDF چگونه کار می‌کنند
مجوزهای PDF بخشی از مشخصات رمزگذاری هستند. آن‌ها به‌صورت پرچم‌های بیتی در دیکشنری رمزگذاری ذخیره می‌شوند و نمایشگرهای PDF سازگار آن‌ها را اعمال می‌کنند. تفاوت اصلی:
- **گذرواژهٔ کاربر**: برای باز کردن فایل لازم است.
- **گذرواژهٔ مالک**: برای تغییر مجوزها یا برداشتن محدودیت‌ها لازم است. بدون آن، پرچم‌های مجوز تعیین می‌کنند کاربر چه عملیاتی می‌تواند انجام دهد.
اگر فقط گذرواژهٔ مالک تعیین کنید (بدون گذرواژهٔ کاربر)، هر کسی می‌تواند فایل را باز کند اما به عملیات مجاز محدود است. اگر هر دو را تعیین کنید، فایل برای باز شدن گذرواژه می‌خواهد و پس از احراز هویت نیز محدود است.
## کاربردها
- توزیع گزارشی که قابل مشاهده و چاپ است اما قابل ویرایش یا کپی نیست
- اشتراک‌گذاری الگوی قراردادی که گیرندگان می‌توانند پر کنند اما نمی‌توانند تغییر دهند
- انتشار کاتالوگ PDF که کپی تصاویر در آن غیرفعال است
- اجازهٔ حاشیه‌نویسی روی پیش‌نویس بازبینی در عین جلوگیری از تغییرات ساختاری
## نکته‌ها
- برای اثربخشی، همیشه گذرواژهٔ مالک تعیین کنید. مجوزها بدون گذرواژهٔ مالک قابل اعمال نیستند.
- برخی ابزارهای PDF شخص ثالث پرچم‌های مجوز را نادیده می‌گیرند. برای محافظت قوی‌تر، رستر کردن PDF یا استفاده از DRM را در نظر بگیرید.
- از این ابزار برای ارتقای PDFهای قدیمی رمزگذاری‌شده با RC4 به AES-256 استفاده کنید.
## ابزارهای مرتبط
- [رمزگذاری PDF](./protect-pdf): محافظت ساده با گذرواژه بدون مجوزهای جزئی
- [رمزگشایی PDF](./unlock-pdf): برداشتن کامل رمزگذاری
- [حذف محدودیت‌ها](./remove-restrictions): برداشتن همهٔ محدودیت‌ها وقتی گذرواژهٔ مالک را دارید
+55
View File
@@ -0,0 +1,55 @@
---
title: ترکیب در یک صفحه
description: به هم دوختن همهٔ صفحات PDF در یک طومار پیوستهٔ عمودی یا افقی.
---
# ترکیب در یک صفحه
همهٔ صفحات یک PDF را در یک صفحهٔ بلند ادغام کنید. صفحات به‌صورت عمودی (مانند طومار) یا افقی (کنار هم) به هم دوخته می‌شوند و خروجی یک صفحهٔ پیوسته است.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. جهت چیدمان را انتخاب کنید: **عمودی** (صفحات از بالا به پایین روی هم) یا **افقی** (صفحات کنار هم).
3. فاصلهٔ بین صفحات را بر حسب پوینت تعیین کنید.
4. یک رنگ پس‌زمینه برای فاصله‌های بین صفحات انتخاب کنید.
5. در صورت تمایل جداکننده‌ها (خطوط نازک بین صفحات) را فعال کنید و ضخامت و رنگ آن‌ها را تنظیم کنید.
6. روی دکمهٔ پردازش کلیک کنید. خروجی یک PDF تک‌صفحه‌ای است.
## ویژگی‌ها
- دوختن صفحات به‌صورت عمودی یا افقی
- فاصلهٔ قابل تنظیم بین صفحات
- انتخابگر رنگ پس‌زمینه برای نواحی فاصله
- خطوط جداکنندهٔ اختیاری با ضخامت و رنگ قابل تنظیم
- رندر هر صفحهٔ اصلی با وضوح کامل روی بوم ترکیبی
## گزینه‌ها
| گزینه | توضیحات |
| ------------------- | ----------------------------------- |
| **جهت** | عمودی (روی هم) یا افقی (کنار هم) |
| **فاصلهٔ صفحات** | فاصلهٔ بین صفحات بر حسب پوینت |
| **رنگ پس‌زمینه** | رنگ ناحیهٔ بین صفحات |
| **افزودن جداکننده** | روشن/خاموش کردن خطوط نازک بین صفحات |
| **ضخامت جداکننده** | ضخامت خط بر حسب پوینت |
| **رنگ جداکننده** | رنگ خطوط جداکننده |
## کاربردها
- ساخت یک تصویر بلند از وایرفریم یا ماکت طراحی چندصفحه‌ای
- تولید نمای پیوستهٔ قابل پیمایش از یک سند برای جاسازی در وب
- به هم دوختن یک کمیک یا استوری‌بورد چندصفحه‌ای در یک نوار
- تولید نمای پانوراما از صفحات متوالی برای بازبینی
## نکته‌ها
- جهت عمودی برای اسناد با صفحات عمودی بهترین است. جهت افقی برای محتوای افقی مناسب‌تر است.
- اسناد بزرگ با صفحات زیاد خروجی بسیار بلند یا عریضی تولید می‌کنند. برخی نمایشگرهای PDF ممکن است با صفحات تکی بسیار بزرگ مشکل داشته باشند.
- افزودن جداکننده با رنگ متضاد، دیدن محل پایان یک صفحهٔ اصلی و آغاز صفحهٔ بعدی را آسان می‌کند.
## ابزارهای مرتبط
- [N-Up کردن PDF](./n-up-pdf)
- [ادغام PDF](./merge-pdf)
- [تقسیم صفحات](./divide-pages)
+60
View File
@@ -0,0 +1,60 @@
---
title: مقایسهٔ PDFها
description: مقایسهٔ دو سند PDF به‌صورت کنار هم یا روی‌هم با تشخیص و دسته‌بندی دقیق تغییرات.
---
# مقایسهٔ PDFها
دو PDF بارگذاری کنید و دقیقاً ببینید چه چیزی بین آن‌ها تغییر کرده است. ابزار صفحات را هوشمندانه جفت می‌کند، تفاوت‌ها در متن، تصاویر، حاشیه‌نویسی‌ها، سرصفحه‌ها و قالب‌بندی را تشخیص می‌دهد و آن‌ها را در نمای کنار هم یا روی‌هم نمایش می‌دهد.
## نحوهٔ کار
1. دو فایل PDF بارگذاری کنید: نسخهٔ اصلی (چپ) و نسخهٔ بازبینی‌شده (راست).
2. ابزار با استفاده از امضاهای محتوایی، صفحات دو سند را جفت می‌کند.
3. حالت نمایش را انتخاب کنید: **کنار هم** یا **روی‌هم**.
4. با کنترل‌های صفحه‌بندی بین جفت‌صفحه‌ها جابه‌جا شوید.
5. تفاوت‌ها برجسته و دسته‌بندی می‌شوند. از پنل فیلتر برای تمرکز روی انواع خاص تغییر استفاده کنید.
6. در صورت تمایل، مقایسه را به‌صورت گزارش PDF صادر کنید.
## ویژگی‌ها
- جفت کردن خودکار صفحات بر اساس شباهت محتوا
- نمای مقایسهٔ کنار هم و روی‌هم
- دسته‌بندی تغییرات: متن، تصویر، سرصفحه/پاصفحه، حاشیه‌نویسی، قالب‌بندی، پس‌زمینه
- فیلترهای جداگانه برای هر دسته جهت نمایش یا پنهان کردن انواع خاص تغییر
- جستجوی تغییرات متنی با فیلتر پرس‌وجو
- پشتیبانی از OCR برای مقایسهٔ اسناد اسکن‌شده
- کنترل‌های بزرگ‌نمایی برای بررسی دقیق
- پیمایش هماهنگ بین پنل‌ها در حالت کنار هم
- صادر کردن نتایج مقایسه به‌صورت PDF
## گزینه‌ها
| گزینه | توضیحات |
| ----------------- | ---------------------------------------------------------------------------------------- |
| **حالت نمایش** | کنار هم یا روی‌هم |
| **OCR** | فعال/غیرفعال کردن OCR برای مقایسهٔ اسناد اسکن‌شده |
| **زبان OCR** | زبان استخراج متن با OCR |
| **فیلترهای دسته** | نمایش یا پنهان کردن تغییرات متن، تصویر، سرصفحه/پاصفحه، حاشیه‌نویسی، قالب‌بندی و پس‌زمینه |
| **دامنهٔ تغییر** | در حالت روی‌هم، فیلتر بین همهٔ تغییرات یا فقط محتوا |
| **بزرگ‌نمایی** | تنظیم میزان بزرگ‌نمایی برای بررسی دقیق |
## کاربردها
- بازبینی نسخه‌های قرارداد برای یافتن دقیق تغییرات بین نسخه‌ها
- مقایسهٔ ماکت‌های طراحی برای اطمینان از مطابقت خروجی‌های PDF با انتظارات
- ممیزی تغییرات اسناد در صنایع تحت نظارت که هر ویرایش باید ردیابی شود
- اطمینان از اینکه فرایند تبدیل PDF محتوای اصلی را دقیق حفظ کرده است
- بررسی اسناد ترجمه در برابر منبع از نظر تغییرات چیدمان
## نکته‌ها
- نمای روی‌هم هر دو سند را روی یکدیگر قرار می‌دهد و تفاوت‌های مکانی (عناصر جابه‌جاشده، تصاویر تغییراندازه‌یافته) را بلافاصله نمایان می‌کند.
- هنگام مقایسهٔ اسناد اسکن‌شده‌ای که لایهٔ متنی ندارند، OCR را فعال کنید. موتور مقایسه متن را از تصاویر صفحه استخراج می‌کند.
- از فیلترهای دسته برای تمرکز روی موارد مهم استفاده کنید. برای مثال، وقتی فقط تفاوت‌های محتوای متنی برایتان مهم است، تغییرات قالب‌بندی را پنهان کنید.
## ابزارهای مرتبط
- [مشاهدهٔ فراداده](./view-metadata)
- [OCR روی PDF](./ocr-pdf)
- [ادغام PDF](./merge-pdf)
+73
View File
@@ -0,0 +1,73 @@
---
title: فشرده‌سازی PDF
description: کاهش حجم فایل PDF تا ۹۰٪ با موتور Hyper Compress. پشتیبانی از حجم هدف، پردازش دسته‌ای و تنظیمات کیفیت سفارشی.
---
# فشرده‌سازی PDF
فایل‌های PDF خود را بدون خراب کردنشان کوچک کنید. فشرده‌سازی PDF با [Hyper Compress](https://www.bentopdf.com/hyper-compress)، موتور فشرده‌سازی اختصاصی BentoPDF، کار می‌کند. این موتور تصاویر را دوباره فشرده می‌کند، قلم‌ها را زیرمجموعه‌سازی و ادغام می‌کند و داده‌های زائد مانند تصاویر بندانگشتی جاسازی‌شده و داده‌های خصوصی برنامه‌ها را حذف می‌کند. PDF کاملاً کاربردی می‌ماند: متن قابل انتخاب است و پیوندها و فیلدهای فرم همچنان کار می‌کنند.
Hyper Compress به WebAssembly کامپایل شده و همراه BentoPDF ارائه می‌شود، بنابراین فشرده‌سازی به‌صورت آفلاین و در استقرارهای ایزوله بدون هیچ تنظیم اضافه‌ای کار می‌کند.
## نحوهٔ کار
1. یک یا چند PDF را با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها بارگذاری کنید.
2. یک **سطح فشرده‌سازی** انتخاب کنید: کم، متوسط، زیاد یا بدون اتلاف.
3. در صورت تمایل یک **حجم فایل هدف** وارد کنید، یا **تنظیمات سفارشی** را برای کنترل دقیق‌تر باز کنید، از جمله **تبدیل به خاکستری**.
4. روی **فشرده‌سازی PDF** کلیک کنید. برای چند فایل، یک فایل ZIP واحد دانلود می‌کنید.
## اسناد خاص
- **PDFهای دارای امضای دیجیتال** بدون تغییر بازگردانده می‌شوند، زیرا هر تغییری امضا را باطل می‌کند. برای حذف امضاها و فشرده‌سازی آن‌ها، **نادیده گرفتن محافظت محتوا** را در تنظیمات سفارشی روشن کنید؛ امضای قابل مشاهده روی صفحه می‌ماند، اما فایل دیگر امضاشده نیست.
- **فایل‌های PDF/A** پس از فشرده‌سازی برچسب PDF/A خود را از دست می‌دهند تا فایل هرگز ادعای انطباقی را نکند که دیگر ندارد. برای حفظ انطباق فایل، **حفظ PDF/A** را در تنظیمات سفارشی روشن کنید.
- **PDFهای محافظت‌شده با گذرواژه** روی کارت فایل خود یک فیلد گذرواژه می‌گیرند. گذرواژه را آنجا وارد کنید تا Hyper Compress خودش فایل را باز کند، بدون مرحلهٔ جداگانهٔ رمزگشایی. با دو یا چند فایل قفل‌شده، یک فیلد مشترک همهٔ فایل‌هایی را که گذرواژهٔ یکسان دارند باز می‌کند. نسخهٔ فشرده‌شده گذرواژه ندارد؛ برای افزودن دوبارهٔ آن از [رمزگذاری PDF](./protect-pdf) استفاده کنید.
- **اسکن‌های بدون لایهٔ متنی** با **رستر کردن صفحات** در تنظیمات سفارشی می‌توانند بیشتر کوچک شوند؛ این گزینه هر صفحه را با یک تصویر بهینه‌شده جایگزین می‌کند. برای هر سندی که متن قابل انتخاب دارد، از جمله اسکن‌های OCR‌شده، این کار انجام نمی‌شود مگر اینکه **نادیده گرفتن محافظت محتوا** روشن باشد. در آن صورت صفحات متنی هم به تصویر تبدیل می‌شوند، پس متن دیگر قابل انتخاب نیست و پیوندها کار نمی‌کنند.
## سطوح فشرده‌سازی
| سطح | کیفیت تصویر | حداکثر وضوح | مناسب برای |
| -------------- | ----------------- | ----------- | ------------------------------- |
| **کم** | 80 | 200 DPI | حفظ کیفیت بصری |
| **متوسط** | 50 | 150 DPI | اسناد روزمره |
| **زیاد** | 20 | 72 DPI | پیوست‌های ایمیل، بارگذاری در وب |
| **بدون اتلاف** | تصاویر دست‌نخورده | بدون تغییر | نسخه‌های بایگانی |
سطح زیاد همچنین ۱۴ قلم استاندارد PDF و قلم‌های مشابه مانند Arial را، در صورتی که بی‌خطر باشد، از حالت جاسازی خارج می‌کند.
## حجم فایل هدف
حجمی بر حسب KB یا MB وارد کنید تا Hyper Compress، با شروع از سطحی که انتخاب کرده‌اید، بهترین کیفیت تصویری را بیابد که همچنان در آن حجم جا شود. اگر سند نتواند تا آن اندازه کوچک شود، کوچک‌ترین نسخهٔ ممکن را همراه با پیامی در این باره دریافت می‌کنید. صفحات اختصاصی مانند [فشرده‌سازی PDF به ۱ مگابایت](https://www.bentopdf.com/compress-pdf-to-1mb) با هدف از پیش پرشده باز می‌شوند.
## تنظیمات سفارشی
پنل تنظیمات سفارشی را باز کنید تا Hyper Compress را مستقیماً تنظیم کنید. انتخاب یک سطح فشرده‌سازی این مقادیر را به مقادیر آن سطح بازنشانی می‌کند و ویرایش هر کدام سطح را به سفارشی تغییر می‌دهد.
- **نادیده گرفتن محافظت محتوا**: به‌طور پیش‌فرض Hyper Compress به PDFهای امضاشده دست نمی‌زند و صفحاتی را که متن دارند رستر نمی‌کند. روشن کردن این گزینه هر دو را دور می‌زند. با تغییر سطح، روشن می‌ماند.
- **تصاویر**: کیفیت تصویر، حداکثر وضوح، نمونه‌برداری مجدد اجباری، کاهش رنگ، برش نواحی نامرئی تصویر، حذف تصاویر جایگزین، ساده‌سازی پروفایل‌های رنگ، JPEG 2000 و حالت بدون اتلاف
- **قلم‌ها**: زیرمجموعه‌سازی، ادغام موارد تکراری و خارج کردن قلم‌های استاندارد و مشابه‌هایشان از حالت جاسازی
- **محتوا**: مسطح‌سازی حاشیه‌نویسی‌ها، فیلدهای فرم یا پیوندها
- **پاک‌سازی**: حذف تصاویر بندانگشتی، داده‌های برنامه، رشته‌های مقاله، اطلاعات ضبط وب، درخت ساختار یا هدف‌های خروجی (output intent)
- **رستر**: جایگزینی صفحات با تصاویر، برای اسکن‌های فقط‌تصویری؛ وقتی سند متن قابل انتخاب دارد انجام نمی‌شود
- **خروجی**: حفظ PDF/A و فشرده‌سازی Brotli برای نمایشگرهای PDF 2.0 که از آن پشتیبانی می‌کنند
## کاربردها
- رساندن یک گزارش ۵۰ مگابایتی به زیر محدودیت پیوست ایمیل
- رساندن یک اسکن به زیر محدودیت سخت‌گیرانهٔ بارگذاری یک درگاه با حجم فایل هدف
- بهینه‌سازی PDFهای بازاریابی برای دانلود سریع‌تر از وب‌سایت
- بایگانی مجموعه‌های بزرگ اسناد در جایی که هزینهٔ ذخیره‌سازی مهم است
- کاهش مصرف دادهٔ همراه هنگام اشتراک‌گذاری PDF در پیام‌رسان‌ها
## نکته‌ها
- با سطح متوسط شروع کنید. اگر نتیجه هنوز خیلی بزرگ است، یک حجم فایل هدف تعیین کنید یا به سطح زیاد بروید.
- برای اسکن بدون لایهٔ متنی، رستر کردن صفحات را در تنظیمات سفارشی روشن کنید.
- تبدیل به خاکستری، در تنظیمات سفارشی، می‌تواند حجم اسناد پررنگ را کاهش دهد.
## ابزارهای مرتبط
- [خطی‌سازی PDF](./linearize-pdf): بهینه‌سازی PDF فشرده‌شده برای نمایش سریع در وب
- [رستر کردن PDF](./rasterize-pdf): تبدیل صفحات به تصویر با DPI مشخص، از جمله صفحات دارای متن
- [ترمیم PDF](./repair-pdf): اصلاح PDFی که هنگام فشرده‌سازی در جای دیگری خراب شده است
- [حذف فراداده](./remove-metadata): حذف داده‌های پنهان برای حفظ حریم خصوصی
+44
View File
@@ -0,0 +1,44 @@
---
title: برش PDF
description: برش بصری صفحات PDF با رسم ناحیهٔ برش روی هر صفحه در ویرایشگری مبتنی بر Cropper.js.
---
# برش PDF
حاشیه‌های صفحات PDF خود را با یک رابط برش بصری کوتاه کنید. یک مستطیل برش را مستقیماً روی هر صفحه رسم کنید، نتیجه را پیش‌نمایش کنید و برش را اعمال کنید. می‌توانید برای صفحات مختلف ناحیه‌های برش متفاوت تعیین کنید یا یک برش یکسان را روی کل سند اعمال کنید.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. ویرایشگر برش باز می‌شود و صفحهٔ اول را با یک لایهٔ برش قابل کشیدن نشان می‌دهد.
3. مستطیل برش را با کشیدن لبه‌ها یا گوشه‌هایش تنظیم کنید.
4. با دکمه‌های ناوبری صفحه بین صفحات جابه‌جا شوید و برای هر کدام ناحیهٔ برش تعیین کنید.
5. روی **برش** کلیک کنید تا برش اعمال و نتیجه دانلود شود.
## ویژگی‌ها
- ویرایشگر برش بصری مبتنی بر Cropper.js با دستگیره‌هایی برای تنظیم دقیق
- ناوبری صفحه‌به‌صفحه برای تعیین ناحیهٔ برش جداگانه
- ذخیرهٔ تنظیمات برش برای هر صفحه تا بتوانید برای صفحات مختلف برش‌های متفاوت تعریف کنید
- پیش‌نمایش زندهٔ ناحیهٔ برش انتخاب‌شده
- پشتیبانی از PDF با هر اندازه یا جهت صفحه
## کاربردها
- حذف حاشیه‌های پهن از اسناد اسکن‌شده برای تمرکز روی ناحیهٔ محتوا
- حذف علائم برش چاپگر یا علائم ثبت از PDFهای پیش از چاپ
- برش اسلایدهای درس برای حذف ناحیهٔ یادداشت‌های ارائه‌دهنده
- حذف سرصفحه یا پاصفحه از همهٔ صفحات پیش از اشتراک‌گذاری بخشی از سند
- تغییر اندازهٔ صفحات برای تناسب با یک نمایشگر یا چیدمان چاپی خاص
## نکته‌ها
- لایهٔ برش را می‌توان آزادانه تغییر اندازه و جابه‌جا کرد. گوشه‌ها را برای تغییر اندازهٔ متناسب و لبه‌ها را برای تنظیم در یک محور بکشید.
- برای اسنادی که همهٔ صفحاتشان برش یکسانی نیاز دارند، آن را روی صفحهٔ اول تعیین کنید؛ ابزار ناحیهٔ برش شما را هنگام جابه‌جایی بین صفحات به خاطر می‌سپارد.
- اگر به‌جای برش بصری نیاز به یکسان‌سازی اندازهٔ صفحات دارید، ابزار اصلاح اندازهٔ صفحه ممکن است مناسب‌تر باشد.
## ابزارهای مرتبط
- [ویرایشگر PDF](./edit-pdf)
- [شماره‌گذاری صفحات](./page-numbers)
- [حذف صفحات خالی](./remove-blank-pages)
+51
View File
@@ -0,0 +1,51 @@
---
title: CSV به PDF
description: تبدیل فایل‌های صفحه‌گستردهٔ CSV به جدول‌های قالب‌بندی‌شدهٔ PDF مستقیماً در مرورگر.
---
# CSV به PDF
فایل‌های CSV را به اسناد PDF تمیز و قالب‌بندی‌شده تبدیل کنید. هر CSV تجزیه و به‌صورت جدول در PDF خروجی رندر می‌شود. این کار زمانی مفید است که بخواهید داده‌های جدولی را چاپ یا به اشتراک بگذارید بدون اینکه گیرنده به نرم‌افزار صفحه‌گسترده نیاز داشته باشد.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :--- | :------ |
| CSV | `.csv` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا یک یا چند فایل CSV را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های بیشتری اضافه کنید یا موارد ناخواسته را حذف کنید.
3. روی **تبدیل به PDF** کلیک کنید. یک نشانگر پیشرفت وضعیت تبدیل را نشان می‌دهد.
4. یک فایل مستقیماً به‌صورت PDF دانلود می‌شود. چند فایل در `csv-converted.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
این ابزار پیکربندی اضافه‌ای ندارد. CSV به‌طور خودکار تجزیه و به‌صورت جدول قالب‌بندی می‌شود.
## خروجی
| تعداد ورودی | خروجی |
| :---------- | :------------------------------------------------------- |
| 1 فایل | دانلود یک PDF (مثلاً `data.pdf`) |
| 2+ فایل | آرشیو ZIP (`csv-converted.zip`) شامل یک PDF برای هر فایل |
## کاربردها
- تبدیل گزارش‌های صادرشده از پایگاه داده به جدول‌های PDF قابل چاپ
- اشتراک‌گذاری داده‌های مالی یا فهرست موجودی با افرادی که Excel ندارند
- ساخت نسخهٔ PDF از فایل‌های گزارش CSV برای مستندات انطباق
- چاپ فهرست نشانی‌ها، کارنامه‌ها یا هر دادهٔ جدولی ذخیره‌شده به‌صورت CSV
## نکته‌ها
- برای بهترین نتیجه، مطمئن شوید CSV شما از جداکنندهٔ استاندارد کاما استفاده می‌کند. ابزار از قواعد رایج تجزیهٔ CSV پیروی می‌کند.
- اگر CSV شما ستون‌های زیادی دارد، ممکن است جدول برای جا شدن در عرض صفحه فشرده شود. تقسیم مجموعه‌داده‌های عریض به چند فایل را در نظر بگیرید.
- برای فایل‌های Excel (`.xls`، `.xlsx`) از ابزار [Excel به PDF](./excel-to-pdf) استفاده کنید که قالب‌بندی صفحه‌گسترده و چند برگه را حفظ می‌کند.
## ابزارهای مرتبط
- [Excel به PDF](./excel-to-pdf)
- [متن به PDF](./txt-to-pdf)
- [JSON به PDF](./json-to-pdf)
+42
View File
@@ -0,0 +1,42 @@
---
title: حذف صفحات
description: حذف صفحات مشخص از PDF با شمارهٔ صفحه، بازه یا انتخاب بصری تصاویر بندانگشتی.
---
# حذف صفحات
صفحات ناخواسته را از یک سند PDF حذف کنید. صفحات مورد نظر برای حذف را با تایپ شمارهٔ صفحه یا بازه مشخص کنید، یا مستقیماً روی تصاویر بندانگشتی صفحات کلیک کنید تا برای حذف علامت بخورند.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید. ابزار پیش‌نمایش بندانگشتی همهٔ صفحات را رندر می‌کند.
2. صفحات مورد نظر برای حذف را با نحو بازه در فیلد متنی وارد کنید (مثلاً `2, 5-8`)، یا روی تصاویر بندانگشتی کلیک کنید تا انتخاب یا لغو انتخاب شوند.
3. صفحات علامت‌خورده به‌صورت بصری برجسته می‌شوند تا بتوانید انتخاب خود را تأیید کنید.
4. روی دکمهٔ پردازش کلیک کنید. یک PDF جدید بدون صفحات انتخاب‌شده ساخته می‌شود.
## ویژگی‌ها
- انتخاب متنی صفحات با نحو بازه (`2, 5-8, 12`)
- شبکهٔ بصری تصاویر بندانگشتی برای انتخاب با کلیک
- برجسته‌سازی هم‌زمان صفحات علامت‌خورده برای حذف
- اعتبارسنجی ورودی در برابر تعداد واقعی صفحات
- حفظ همهٔ صفحات حذف‌نشده به ترتیب اصلی
## کاربردها
- حذف صفحات خالی یا اضافی از یک سند اسکن‌شده
- حذف صفحات جلد یا پیوست‌ها پیش از اشتراک‌گذاری سند
- پاک‌سازی صفحات پیش‌نویسی که اشتباهاً در PDF نهایی مانده‌اند
- حذف صفحات حاوی اطلاعات حساس پیش از توزیع
## نکته‌ها
- حذف صفحات روی محتوا یا قالب‌بندی صفحات باقی‌مانده اثری ندارد. خروجی نسخه‌ای دقیق از سند اصلی منهای صفحات حذف‌شده است.
- اگر می‌خواهید به‌جای حذف صفحاتی خاص، فقط صفحاتی خاص را نگه دارید، [استخراج صفحات](./extract-pages) مناسب‌تر است.
- نمای بندانگشتی به‌صورت تدریجی بارگیری می‌شود، بنابراین اسناد بزرگ نیز روان می‌مانند.
## ابزارهای مرتبط
- [استخراج صفحات](./extract-pages)
- [تکثیر و سازماندهی](./organize-pdf)
- [تقسیم PDF](./split-pdf)
+46
View File
@@ -0,0 +1,46 @@
---
title: صاف‌کردن PDF
description: صاف کردن خودکار صفحات کج در PDFهای اسکن‌شده با تشخیص کجی OpenCV. تنظیمات قابل تغییر آستانه و DPI.
---
# صاف‌کردن PDF
اسناد اسکن‌شده به‌ندرت کاملاً صاف هستند. حتی کجی اندک، دقت OCR را کاهش می‌دهد و چاپ را نامرتب نشان می‌دهد. این ابزار با الگوریتم‌های پردازش تصویر OpenCV زاویهٔ کجی هر صفحه را تشخیص می‌دهد و آن را به حالت تراز برمی‌گرداند.
## نحوهٔ کار
1. یک یا چند PDF اسکن‌شده بارگذاری کنید.
2. **آستانهٔ کجی** را تعیین کنید؛ صفحاتی که کجی تشخیص‌داده‌شده‌شان کمتر از این مقدار است دست‌نخورده می‌مانند.
3. یک **کیفیت پردازش (DPI)** انتخاب کنید؛ DPI بالاتر دقت تشخیص را بهبود می‌دهد اما زمان بیشتری می‌برد.
4. روی **صاف‌کردن PDF** کلیک کنید.
5. پس از پردازش، پنل نتایج زاویهٔ تشخیص‌داده‌شدهٔ هر صفحه و اصلاح شدن یا نشدن آن را نشان می‌دهد.
## گزینه‌ها
| تنظیم | مقادیر | پیش‌فرض |
| --------------- | ----------------------- | ------- |
| **آستانهٔ کجی** | 0.1، 0.5، 1.0، 2.0 درجه | 0.5 |
| **DPI پردازش** | 100، 150، 200، 300 | 150 |
## تشخیص کجی چگونه کار می‌کند
ابزار هر صفحه را با DPI انتخاب‌شده به تصویر رندر می‌کند، سپس با OpenCV زاویهٔ خطوط غالب در محتوا را تشخیص می‌دهد. اگر کجی تشخیص‌داده‌شده از آستانه بیشتر باشد، صفحه با زاویهٔ معکوس چرخانده می‌شود تا صاف شود. صفحات زیر آستانه بدون تغییر عبور می‌کنند.
## کاربردها
- مرتب کردن قراردادها یا اسناد حقوقی که دسته‌ای اسکن شده‌اند
- آماده‌سازی رسیدها یا فاکتورهای اسکن‌شده برای پردازش OCR
- صاف کردن صفحات اسکنر تخت با قرارگیری نامنظم کاغذ
- بهبود کیفیت بصری مواد بایگانی دیجیتال‌شده
## نکته‌ها
- اگر برای OCR به ترازبندی کاملاً دقیق نیاز دارید، آستانه را به 0.1 درجه کاهش دهید.
- 150 DPI برای بیشتر اسناد سریع و دقیق است. برای متن بسیار ریز یا صفحات پرجزئیات از 300 DPI استفاده کنید.
- صاف‌کردن روی اسنادی با خطوط متنی افقی واضح بهترین عملکرد را دارد. ممکن است با صفحاتی که بیشترشان تصویر یا عناصر طراحی مورب هستند مشکل داشته باشد.
## ابزارهای مرتبط
- [رستر کردن PDF](./rasterize-pdf): تبدیل خروجی صاف‌شده به PDF مسطح مبتنی بر تصویر
- [فشرده‌سازی PDF](./compress-pdf): کاهش حجم فایل پس از صاف‌کردن
- [ترمیم PDF](./repair-pdf): اصلاح مشکلات ساختاری در PDFهای اسکن‌شده
+65
View File
@@ -0,0 +1,65 @@
---
title: امضای دیجیتال
description: افزودن امضای دیجیتال رمزنگاری‌شده به PDF با گواهی‌های X.509. پشتیبانی از قالب‌های PKCS#12 و PEM با گزینه‌های امضای قابل مشاهده.
---
# امضای دیجیتال
امضای دیجیتال اثباتی رمزنگاری‌شده است که شخص مشخصی سند را امضا کرده و سند از آن زمان تغییر نکرده است. برخلاف امضای دستی کشیده‌شده (که فقط یک تصویر است)، امضای دیجیتال از گواهی‌های X.509 و استانداردهای PKCS#7 برای ارائهٔ اصالت و یکپارچگی قابل تأیید استفاده می‌کند.
BentoPDF امضای دیجیتال را کاملاً در مرورگر شما اعمال می‌کند. کلید خصوصی شما هرگز از دستگاهتان خارج نمی‌شود.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. فایل گواهی خود را بارگذاری کنید (.pfx، .p12 یا .pem).
3. گذرواژهٔ گواهی را برای باز کردن آن وارد کنید. ابزار موضوع، صادرکننده و دورهٔ اعتبار گواهی را نمایش می‌دهد.
4. در صورت تمایل فرادادهٔ امضا (دلیل، مکان، اطلاعات تماس) را پیکربندی کنید.
5. در صورت تمایل یک **امضای قابل مشاهده** با موقعیت، اندازه، تصویر و متن سفارشی فعال کنید.
6. روی **امضای PDF** کلیک کنید.
## قالب‌های گواهی پشتیبانی‌شده
| قالب | پسوندها | توضیحات |
| ----------- | ---------- | ----------------------------------------------------------------------------------------------------------------- |
| **PKCS#12** | .pfx, .p12 | بستهٔ استاندارد صنعتی شامل کلید خصوصی و زنجیرهٔ گواهی. رایج‌ترین قالب. |
| **PEM** | .pem | قالب متنی. باید هم گواهی و هم کلید خصوصی را در یک فایل داشته باشد. از کلیدهای خصوصی رمزگذاری‌شده پشتیبانی می‌کند. |
## گزینه‌های امضای قابل مشاهده
در صورت فعال بودن، یک بلوک امضای قابل مشاهده روی صفحهٔ PDF رندر می‌شود:
- **موقعیت**: مختصات X/Y و عرض/ارتفاع بر حسب پوینت
- **صفحه**: صفحهٔ اول، صفحهٔ آخر، همهٔ صفحات یا یک شمارهٔ صفحهٔ مشخص
- **تصویر**: بارگذاری تصویر PNG، JPG یا WebP (امضای دست‌نویس، مهر شرکت و غیره)
- **متن**: متن سفارشی با رنگ و اندازهٔ قلم قابل تنظیم. اگر تصویر یا متنی ارائه نشود، ابزار به‌طور خودکار متنی از نام رایج (Common Name) گواهی و تاریخ فعلی می‌سازد.
## فرادادهٔ امضا
- **دلیل**: چرا سند امضا شده است (مثلاً «تأیید شد»، «بازبینی شد»)
- **مکان**: محل امضا (مثلاً «New York, NY»)
- **اطلاعات تماس**: راه ارتباط با امضاکننده (مثلاً نشانی ایمیل)
## نکته دربارهٔ اتصال اینترنت
امضا ممکن است به اتصال اینترنت نیاز داشته باشد. کتابخانهٔ امضا زنجیرهٔ گواهی را از نشانی‌های جاسازی‌شده در افزونهٔ Authority Information Access (AIA) گواهی شما دریافت می‌کند. اگر آن سرورها در دسترس نباشند، امضا برای گواهی‌هایی که به اعتبارسنجی زنجیره نیاز دارند ناموفق خواهد بود.
## کاربردها
- امضای قراردادها، پیشنهادها و توافق‌نامه‌ها با امضای دیجیتال دارای اعتبار قانونی
- تأیید اسناد رسمی در گردش‌کارهایی که احراز هویت مبتنی بر PKI لازم دارند
- امضای فاکتورهای PDF برای انطباق با مقررات (بسیاری از کشورهای اتحادیهٔ اروپا فاکتورهای الکترونیکی با امضای دیجیتال می‌خواهند)
- افزودن تأیید سازمانی به نقشه‌های مهندسی یا اسناد کیفیت
## نکته‌ها
- گواهی‌های خودامضا برای آزمایش کار می‌کنند اما در Adobe Reader هشدار نشان می‌دهند. برای اسناد واقعی از گواهی یک مرجع صدور گواهی معتبر استفاده کنید.
- امضای قابل مشاهده صرفاً بصری است. امضای رمزنگاری‌شده صرف‌نظر از فعال بودن بلوک قابل مشاهده جاسازی می‌شود.
- PDF امضاشدهٔ خود را با ابزار اعتبارسنجی امضا بررسی کنید تا از سالم بودن امضا مطمئن شوید.
## ابزارهای مرتبط
- [اعتبارسنجی امضا](./validate-signature-pdf): تأیید امضاهای دیجیتال در PDFهای امضاشده
- [مسطح‌سازی PDF](./flatten-pdf): مسطح کردن فرم‌ها پیش از امضا برای جلوگیری از تغییرات
- [رمزگذاری PDF](./protect-pdf): افزودن محافظت با گذرواژه علاوه بر امضای دیجیتال
- [حذف فراداده](./remove-metadata): حذف فراداده پیش از امضا
+42
View File
@@ -0,0 +1,42 @@
---
title: تقسیم صفحات
description: تقسیم صفحات PDF به‌صورت افقی یا عمودی به زیرصفحه‌های کوچک‌تر.
---
# تقسیم صفحات
صفحات PDF را با برش افقی یا عمودی به دو نیم تقسیم کنید. این کار زمانی مفید است که یک صفحه محتوایی دارد که باید به صفحات جداگانه تفکیک شود؛ برای مثال، یک چیدمان دوستونی که به‌صورت یک صفحهٔ عریض اسکن شده است.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. جهت تقسیم را انتخاب کنید: **عمودی** (نیمه‌های چپ/راست) یا **افقی** (نیمه‌های بالا/پایین).
3. در صورت تمایل یک بازهٔ صفحه تعیین کنید تا فقط صفحات خاصی تقسیم شوند. برای تقسیم همهٔ صفحات خالی بگذارید.
4. روی دکمهٔ پردازش کلیک کنید تا PDF تقسیم‌شده ساخته شود.
## ویژگی‌ها
- تقسیم عمودی: هر صفحه را به نیمه‌های چپ و راست تقسیم می‌کند
- تقسیم افقی: هر صفحه را به نیمه‌های بالا و پایین تقسیم می‌کند
- فیلتر بازهٔ صفحه برای تقسیم انتخابی صفحات مشخص
- صفحات انتخاب‌نشده بدون تغییر عبور می‌کنند
- حفظ کیفیت محتوا بدون رندر مجدد
## کاربردها
- جدا کردن صفحات اسکن‌شدهٔ دوتایی (مثلاً اسکن کتاب با صفحات چپ و راست روی یک برگ)
- تقسیم PDF افقی با محتوای کنار هم به صفحات عمودی جداگانه
- تقسیم اینفوگرافیک‌ها یا پوسترهای بلند به بخش‌های بالا و پایین
- آماده‌سازی اسناد عریض برای چاپ روی کاغذ استاندارد
## نکته‌ها
- اگر محتوای صفحات شما نامتوازن توزیع شده باشد، تقسیم همچنان دقیقاً از نقطهٔ میانی انجام می‌شود. برای تقسیم نامتقارن، [برش PDF](./crop-pdf) را در نظر بگیرید.
- اگر صفحات شما پیش یا پس از تقسیم به چرخش نیاز دارند، این ابزار را با [چرخاندن PDF](./rotate-pdf) ترکیب کنید.
## ابزارهای مرتبط
- [تقسیم PDF](./split-pdf)
- [برش PDF](./crop-pdf)
- [N-Up کردن PDF](./n-up-pdf)
- [پوستری‌کردن PDF](./posterize-pdf)
+55
View File
@@ -0,0 +1,55 @@
---
title: تلفیق دورو
description: مرتب‌سازی PDFهای اسکن دورو که صفحات رو و پشت را در بلوک‌های جداگانه دارند به ترتیب درست رو/پشت.
---
# تلفیق دورو
تلفیق دورو برای گردش‌کارهای اسکن ADF طراحی شده است که در آن یک PDF شامل دو بلوک صفحه است:
- ابتدا همهٔ روها
- سپس همهٔ پشت‌ها
به‌جای تقسیم و سرهم کردن دستی، این ابزار دو بلوک را یک‌درمیان به ترتیب طبیعی خواندن درمی‌آورد: رو۱، پشت۱، رو۲، پشت۲ و به همین ترتیب.
## نحوهٔ کار
1. یک PDF واحد حاصل از اسکن دوروی دسته‌ای بارگذاری کنید.
2. نقطهٔ تقسیم را جایی که بلوک روها تمام می‌شود تعیین کنید.
3. نحوهٔ برخورد با بلوک پشت‌ها را انتخاب کنید:
- **معکوس کردن بلوک پشت‌ها** (رایج وقتی دسته پیش از اسکن پشت‌ها برگردانده می‌شود)
- **نگه داشتن بلوک پشت‌ها بدون تغییر**
4. روی **تلفیق PDF** کلیک کنید تا نتیجهٔ مرتب‌شده دانلود شود.
## گزینه‌ها
- **تشخیص خودکار تقسیم (نصف)**: نقطهٔ تقسیم را روی `ceil(totalPages / 2)` تنظیم می‌کند.
- **هشدار صفحات فرد**: وقتی تعداد کل صفحات فرد است هشدار می‌دهد (معمولاً نشانهٔ ناهماهنگی اسکن).
- **تأیید بلوک‌های نابرابر**: وقتی اندازهٔ بلوک‌های رو/پشت متفاوت است تأیید می‌خواهد.
- **خروجی گروهی**: خروجی تلفیق‌شده را بر اساس تعداد صفحات سند اصلی به PDFهای جداگانه تقسیم و به‌صورت ZIP دانلود می‌کند.
## رفتار خروجی
- **پیش‌فرض**: یک PDF خروجی (یک PDF ورودی، یک PDF خروجی).
- **حالت گروهی**: خروجی بر اساس مقدار صفحه‌به‌ازای‌هر‌سند شما بخش‌بندی می‌شود؛ اگر چند بخش تولید شود، به‌صورت یک ZIP دانلود می‌شوند، وگرنه یک PDF دانلود می‌شود.
اگر اندازهٔ بلوک‌ها نابرابر باشد، ابتدا صفحات جفت‌شده تلفیق می‌شوند و صفحات بی‌جفت باقی‌مانده به انتها افزوده می‌شوند.
## کاربردهای رایج
- بازگرداندن ترتیب پس از اسکن دسته‌ای از فرم‌های دورو در دو نوبت.
- بازسازی بسته‌های رو/پشت از اسکنرهای اداری که ابتدا همهٔ روها و سپس همهٔ پشت‌ها را خروجی می‌دهند.
- پس‌پردازش اسکن‌های بایگانی پیش از تقسیم به فایل‌های جداگانه برای هر سند.
## نکته‌ها
- بیشتر دسته‌های دورو باید تعداد کل صفحات زوج داشته باشند.
- اگر پشت‌ها در خروجی وارونه به نظر می‌رسند، بین **معکوس کردن بلوک پشت‌ها** و **نگه داشتن بلوک پشت‌ها بدون تغییر** جابه‌جا شوید.
- برای اسناد اصلی ۲ صفحه‌ای (رو+پشت)، از خروجی گروهی با `2` صفحه برای هر سند استفاده کنید.
## ابزارهای مرتبط
- [ادغام یک‌درمیان صفحات](./alternate-merge)
- [تقسیم PDF](./split-pdf)
- [ادغام PDF](./merge-pdf)
- [تکثیر و سازماندهی](./organize-pdf)
+43
View File
@@ -0,0 +1,43 @@
---
title: ویرایش پیوست‌ها
description: مشاهده و حذف انتخابی فایل‌های پیوست جاسازی‌شده در یک سند PDF.
---
# ویرایش پیوست‌ها
پیوست‌های فایل داخل یک PDF را بررسی و مدیریت کنید. ابزار همهٔ فایل‌های جاسازی‌شده را با نام و سطح پیوستشان فهرست می‌کند و سپس به شما اجازه می‌دهد پیوست‌های جداگانه را برای حذف علامت بزنید یا همه را یکجا حذف کنید.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. ابزار به‌طور خودکار پیوست‌ها را جستجو و در یک فهرست نمایش می‌دهد.
3. هر پیوست نام فایل و اینکه پیوست سطح سند است یا سطح صفحه را نشان می‌دهد.
4. روی نماد سطل زباله کنار هر پیوست کلیک کنید تا برای حذف علامت بخورد (برای لغو، دوباره کلیک کنید).
5. از دکمهٔ **حذف همهٔ پیوست‌ها** برای انتخاب همه یکجا، یا **لغو انتخاب همه** برای پاک کردن انتخاب‌ها استفاده کنید.
6. روی دکمهٔ پردازش کلیک کنید تا PDF جدیدی بدون پیوست‌های انتخاب‌شده ذخیره شود.
## ویژگی‌ها
- فهرست همهٔ پیوست‌های سطح سند و سطح صفحه
- حذف تکی یا گروهی پیوست‌ها
- روشن و خاموش کردن انتخاب پیش از اعمال تغییرات
- خط‌خوردگی و تغییر شفافیت بصری روی موارد علامت‌خورده برای حذف
- دانلود PDF تغییریافته بدون پیوست‌های انتخاب‌شده
## کاربردها
- حذف فایل‌های قدیمی یا نادرست جاسازی‌شده در سند پیش از توزیع دوباره
- حذف پیوست‌های حساس (داده‌های مالی، اطلاعات شخصی) از PDF پیش از اشتراک‌گذاری
- کاهش حجم PDF با حذف فایل‌های جاسازی‌شدهٔ بزرگی که دیگر لازم نیستند
- ممیزی محتوای جاسازی‌شده و پاک‌سازی سند پیش از بایگانی
## نکته‌ها
- پیوست‌های علامت‌خورده برای حذف با خط‌خوردگی بصری نمایش داده می‌شوند. اگر نظرتان عوض شد، می‌توانید پیش از پردازش آن‌ها را برگردانید.
- اگر پیوستی یافت نشود، ابزار پیام واضح «پیوستی یافت نشد» را نمایش می‌دهد؛ یعنی PDF هیچ فایل جاسازی‌شده‌ای ندارد.
## ابزارهای مرتبط
- [افزودن پیوست](./add-attachments)
- [استخراج پیوست‌ها](./extract-attachments)
- [مشاهدهٔ فراداده](./view-metadata)
+58
View File
@@ -0,0 +1,58 @@
---
title: ویرایش فراداده
description: مشاهده و تغییر فیلدهای فرادادهٔ PDF از جمله عنوان، نویسنده، کلیدواژه‌ها، تاریخ‌ها و ویژگی‌های سفارشی.
---
# ویرایش فراداده
فرادادهٔ جاسازی‌شده در یک فایل PDF را ویرایش کنید. ابزار فرمی را با فرادادهٔ موجود سند از پیش پر می‌کند، به شما اجازه می‌دهد هر فیلدی را تغییر دهید و تغییرات را در یک PDF جدید ذخیره می‌کند.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید. ابزار فرادادهٔ فعلی آن را می‌خواند و فرم را پر می‌کند.
2. هر یک از فیلدهای استاندارد را ویرایش کنید: عنوان، نویسنده، موضوع، کلیدواژه‌ها، سازنده، تولیدکننده.
3. تاریخ ایجاد و تاریخ تغییر را با انتخابگرهای تاریخ و زمان تنظیم کنید.
4. با کلیک روی دکمهٔ افزودن و وارد کردن یک جفت کلید و مقدار، فیلدهای فرادادهٔ سفارشی اضافه کنید.
5. روی دکمهٔ پردازش کلیک کنید تا PDF تغییریافته ذخیره شود.
## ویژگی‌ها
- پیش‌پر کردن همهٔ فرادادهٔ موجود از PDF بارگذاری‌شده
- فیلدهای استاندارد: عنوان، نویسنده، موضوع، کلیدواژه‌ها، سازنده، تولیدکننده
- انتخابگرهای تاریخ و زمان برای تاریخ ایجاد و تاریخ تغییر
- فیلدهای فرادادهٔ سفارشی کلید و مقدار برای ویژگی‌های دلخواه
- ذخیرهٔ مستقیم تغییرات در دیکشنری اطلاعات سند PDF
## فیلدهای قابل ویرایش
| فیلد | توضیحات |
| ------------------ | ----------------------------------------------- |
| **عنوان** | عنوان سند که در نمایشگرهای PDF نشان داده می‌شود |
| **نویسنده** | شخص یا سازمانی که سند را ساخته است |
| **موضوع** | توضیح کوتاهی از موضوع سند |
| **کلیدواژه‌ها** | عبارت‌های جداشده با کاما برای جستجو و دسته‌بندی |
| **سازنده** | برنامه‌ای که محتوا را در اصل ساخته است |
| **تولیدکننده** | برنامه‌ای که PDF را تولید کرده است |
| **تاریخ ایجاد** | زمانی که سند در اصل ساخته شده است |
| **تاریخ تغییر** | آخرین زمانی که سند تغییر کرده است |
| **فیلدهای سفارشی** | هر جفت کلید و مقدار اضافه‌ای که تعریف می‌کنید |
## کاربردها
- تعیین عنوان و نویسندهٔ مناسب پیش از انتشار سند
- افزودن کلیدواژه برای بهبود قابلیت جستجو در سامانه‌های مدیریت اسناد
- به‌روزرسانی تاریخ تغییر برای بازتاب نسخهٔ فعلی
- افزودن فیلدهای فرادادهٔ سفارشی مانند دپارتمان، شناسهٔ پروژه یا طبقه‌بندی
- پاک‌سازی فرادادهٔ به‌جامانده از نرم‌افزار تولید اصلی
## نکته‌ها
- فیلدهای سفارشی مستقیماً در دیکشنری اطلاعات PDF نوشته می‌شوند. برخی نمایشگرهای PDF ممکن است فیلدهای سفارشی را نمایش ندهند، اما در فایل حفظ می‌شوند.
- برای پاک کردن یک فیلد از فراداده، آن را خالی بگذارید. دکمهٔ پردازش هر آنچه در فرم است را ذخیره می‌کند.
- برای مشاهدهٔ فراداده بدون ویرایش، از [مشاهدهٔ فراداده](./view-metadata) استفاده کنید. برای حذف کامل همهٔ فراداده، از حذف فراداده استفاده کنید.
## ابزارهای مرتبط
- [مشاهدهٔ فراداده](./view-metadata)
- [لایه‌های OCG در PDF](./pdf-layers)
- [فشرده‌سازی PDF](./compress-pdf)
+48
View File
@@ -0,0 +1,48 @@
---
title: ویرایشگر PDF
description: حاشیه‌نویسی، برجسته‌سازی، پوشاندن اطلاعات، افزودن شکل و تصویر، جستجو و مشاهدهٔ PDF مستقیماً در مرورگر.
---
# ویرایشگر PDF
ویرایشگر PDF در BentoPDF به شما امکان می‌دهد در PDFهای خود حاشیه‌نویسی، برجسته‌سازی، پوشاندن اطلاعات و درج نظر کنید، شکل و تصویر بیفزایید و جستجو کنید. این ابزار یک ویرایشگر کامل را مستقیماً در مرورگر شما بارگیری می‌کند، بدون نیاز به بارگذاری روی سرور.
## نحوهٔ کار
1. PDF خود را با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن بارگذاری کنید.
2. ویرایشگر PDF جاسازی‌شده به‌طور خودکار با سند شما باز می‌شود.
3. از نوار ابزار برای حاشیه‌نویسی، برجسته‌سازی، پوشاندن اطلاعات، افزودن متن، رسم شکل یا درج تصویر استفاده کنید.
4. روی **دانلود PDF ویرایش‌شده** کلیک کنید تا تغییرات ذخیره شوند.
## ویژگی‌ها
- نوار ابزار کامل حاشیه‌نویسی با برجسته‌سازی، زیرخط، خط‌خوردگی و رسم آزاد
- درج متن و نظر
- ابزارهای پوشاندن اطلاعات که پس از اعمال، محتوای علامت‌خورده را برای همیشه حذف می‌کنند. اگر هنگام کلیک روی **دانلود PDF ویرایش‌شده** علامتی هنوز اعمال نشده باشد، ویرایشگر پیشنهاد می‌کند ابتدا آن‌ها را اعمال کند.
- ابزارهای شکل برای مستطیل، دایره، خط و پیکان
- درج تصویر روی صفحات PDF
- جستجوی متن داخلی در سراسر سند
- پشتیبانی از چند سند با زبانه‌ها (حداکثر ۱۰ سند باز به‌طور هم‌زمان)
- بارگیری فایل با کشیدن و رها کردن
## کاربردها
- بازبینی قراردادها و علامت‌گذاری تغییرات با برجسته‌سازی و نظر
- پوشاندن اطلاعات محرمانه مانند شماره‌های تأمین اجتماعی یا داده‌های مالی پیش از اشتراک‌گذاری
- افزودن حاشیه‌نویسی به نقشه‌های معماری یا مهندسی
- درج لوگو یا مهر شرکت روی صفحات سند
- جستجوی عبارت‌های خاص در اسناد حقوقی طولانی
## نکته‌ها
- می‌توانید چند PDF را هم‌زمان باز کنید و با نوار زبانه در بالای ویرایشگر بین آن‌ها جابه‌جا شوید.
- ویرایشگر ساختار اصلی PDF را حفظ می‌کند، بنابراین قلم‌ها، چیدمان‌ها و فیلدهای فرم دست‌نخورده می‌مانند.
- علامت زدن متن یا ناحیه برای پوشاندن تا زمانی که پوشاندن اعمال نشود چیزی را حذف نمی‌کند. وقتی متن انتخاب‌شده را می‌پوشانید، نسخه‌های آن در ویژگی‌های فایل، نشانک‌ها، نظرها و پیوست‌ها نیز از فایل دانلودی حذف می‌شوند، مگر اینکه فایل رمزگذاری شده باشد.
- برای واترمارک یا شماره‌گذاری صفحات به‌صورت انبوه، از ابزارهای اختصاصی استفاده کنید تا کنترل بیشتری بر قالب‌بندی داشته باشید.
## ابزارهای مرتبط
- [افزودن واترمارک](./add-watermark)
- [امضای PDF](./sign-pdf)
- [افزودن مهر](./add-stamps)
- [حذف حاشیه‌نویسی‌ها](./remove-annotations)
+50
View File
@@ -0,0 +1,50 @@
---
title: ایمیل به PDF
description: تبدیل فایل‌های ایمیل EML و MSG به PDF در مرورگر. حفظ سرایندها، متن و فهرست پیوست‌ها.
---
# ایمیل به PDF
فایل‌های ایمیل ذخیره‌شده را به PDFهای تمیز و قابل چاپ تبدیل کنید. ابزار فایل‌های EML و MSG را تجزیه می‌کند، پیام کامل (سرایندها، محتوای متن و فرادادهٔ پیوست‌ها) را استخراج می‌کند و همه را در یک PDF ساختاریافته رندر می‌کند. برای کشف اسناد حقوقی، نگهداری سوابق یا صرفاً چاپ یک ایمیل مهم مفید است.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :--- | :----- | :------------------------------------------------------------ |
| EML | `.eml` | قالب استاندارد ایمیل MIME (صادرشده از بیشتر برنامه‌های ایمیل) |
| MSG | `.msg` | قالب اختصاصی Microsoft Outlook |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های EML یا MSG خود را بکشید و رها کنید. می‌توانید هر دو قالب را در یک دسته ترکیب کنید.
2. فهرست فایل‌ها را بررسی کنید. موارد ناخواسته را با نماد سطل زباله حذف کنید، یا برای افزودن ایمیل‌های بیشتر روی **افزودن فایل‌های بیشتر** کلیک کنید.
3. گزینه‌های تبدیل را پیکربندی کنید (پایین را ببینید).
4. روی **تبدیل به PDF** کلیک کنید. ابزار هر ایمیل را تجزیه می‌کند، محتوا را به‌صورت HTML سبک‌دار رندر می‌کند و آن را از طریق موتور PyMuPDF به PDF تبدیل می‌کند.
5. یک ایمیل مستقیماً به‌صورت PDF دانلود می‌شود. چند ایمیل در `emails-converted.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
| گزینه | پیش‌فرض | توضیحات |
| :---------------------- | :------ | :-------------------------------------------------------------------------------------------- |
| **اندازهٔ صفحه** | A4 | انتخاب بین ابعاد صفحهٔ A4، Letter یا Legal. |
| **شامل CC و BCC** | روشن | در صورت فعال بودن، فهرست گیرندگان CC و BCC در بخش سرایند ایمیل در PDF نمایش داده می‌شود. |
| **شامل فهرست پیوست‌ها** | روشن | در صورت فعال بودن، فهرستی از پیوست‌های فایل ایمیل (با نام و اندازه) در PDF نمایش داده می‌شود. |
## کاربردها
- بایگانی مکاتبات تجاری مهم به‌صورت PDF برای انطباق یا ممیزی
- چاپ رشته‌های ایمیل برای دادرسی یا درخواست‌های کشف اسناد
- ایجاد سابقهٔ دائمی از تأییدیه‌های سفارش، رسیدها یا قراردادهای دریافتی از طریق ایمیل
- پشتیبان‌گیری از فایل‌های MSG در Outlook در قالبی که برای خواندن به Outlook نیاز ندارد
- مستندسازی تعاملات پشتیبانی مشتری از فایل‌های EML صادرشده
## نکته‌ها
- هم فایل‌های EML (مورد استفادهٔ Thunderbird، Apple Mail و بیشتر برنامه‌های ایمیل) و هم فایل‌های MSG در Outlook پشتیبانی می‌شوند. ایمیل‌ها را از برنامهٔ ایمیل خود صادر کنید و مستقیماً در ابزار رها کنید.
- ایمیل‌های با قالب HTML سبک خود را در PDF حفظ می‌کنند. ایمیل‌های متن ساده با قالب‌بندی تمیز و خوانا رندر می‌شوند.
- فهرست پیوست‌ها نام و اندازهٔ فایل‌ها را نشان می‌دهد اما خود فایل‌های پیوست را در PDF جاسازی نمی‌کند.
## ابزارهای مرتبط
- [XML به PDF](./xml-to-pdf)
- [XPS به PDF](./xps-to-pdf)
+44
View File
@@ -0,0 +1,44 @@
---
title: EPUB به PDF
description: تبدیل کتاب‌های الکترونیکی EPUB به PDF در مرورگر. رایگان، بدون نیاز به بارگذاری و با اولویت حریم خصوصی.
---
# EPUB به PDF
کتاب‌های الکترونیکی EPUB را بدون خروج از مرورگر به فایل PDF تبدیل کنید. EPUB استاندارد باز کتاب‌های دیجیتال است، اما گاهی برای چاپ، حاشیه‌نویسی یا اشتراک‌گذاری با کسانی که کتاب‌خوان الکترونیکی ندارند به یک PDF با چیدمان ثابت نیاز دارید.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :--- | :------ | :----------------------- |
| EPUB | `.epub` | فایل‌های EPUB 2 و EPUB 3 |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های EPUB خود را بکشید و رها کنید. انتخاب چندتایی پشتیبانی می‌شود.
2. فایل‌های بارگذاری‌شده را بررسی کنید. موارد ناخواسته را با نماد سطل زباله حذف کنید، یا برای گسترش دسته روی **افزودن فایل‌های بیشتر** کلیک کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور PyMuPDF محتوای EPUB (متن، تصاویر و قالب‌بندی) را به خروجی PDF صفحه‌بندی‌شده رندر می‌کند.
4. یک EPUB مستقیماً به‌صورت PDF دانلود می‌شود. چند فایل در یک آرشیو ZIP با نام `epub-converted.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
تبدیل با پیش‌فرض‌های معقول و بدون پیکربندی الزامی انجام می‌شود. متن در ابعاد استاندارد صفحه جریان می‌یابد و قلم‌ها و تصاویر جاسازی‌شده به PDF منتقل می‌شوند.
## کاربردها
- چاپ کتاب الکترونیکی بدون DRM برای خواندن دور از صفحه‌نمایش
- ارسال دست‌نوشتهٔ EPUB به‌صورت PDF با چیدمان ثابت برای بازبینی
- بایگانی کتاب‌های دیجیتال در قالبی که هر سیستم‌عامل به‌طور پیش‌فرض باز می‌کند
- اشتراک‌گذاری یک فصل با همکاری که EPUB‌خوان ندارد
- تبدیل مستندات فنی توزیع‌شده به‌صورت EPUB به PDFهای قابل حاشیه‌نویسی
## نکته‌ها
- ویژگی‌های EPUB 3 مانند صدا و ویدیوی جاسازی‌شده به PDF منتقل نمی‌شوند، اما همهٔ متن، تصاویر و جدول‌ها به‌خوبی تبدیل می‌شوند.
- برای بهترین نتیجه با EPUBهای پرسبک، چند صفحهٔ اول خروجی را بررسی کنید تا از وفاداری چیدمان مطمئن شوید.
## ابزارهای مرتبط
- [MOBI به PDF](./mobi-to-pdf)
- [FB2 به PDF](./fb2-to-pdf)
- [CBZ به PDF](./cbz-to-pdf)
+55
View File
@@ -0,0 +1,55 @@
---
title: Excel به PDF
description: تبدیل صفحه‌گسترده‌های Excel (XLS، XLSX)، ODS و فایل‌های CSV به PDF با حفظ قالب‌بندی.
---
# Excel به PDF
فایل‌های صفحه‌گسترده را به PDF تبدیل کنید. این ابزار فایل‌های Excel جدید، قالب قدیمی XLS، صفحه‌گسترده‌های OpenDocument و حتی CSV را پشتیبانی می‌کند؛ همه از طریق موتور LibreOffice مبتنی بر مرورگر رندر می‌شوند که قالب‌بندی سلول‌ها، فرمول‌ها (به‌صورت مقادیر محاسبه‌شده)، نمودارها و چیدمان‌های چندبرگه‌ای را حفظ می‌کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :------------------------ | :------ |
| Excel (جدید) | `.xlsx` |
| Excel (قدیمی) | `.xls` |
| صفحه‌گستردهٔ OpenDocument | `.ods` |
| CSV | `.csv` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های صفحه‌گستردهٔ خود را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های بیشتری اضافه کنید یا موارد ناخواسته را حذف کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور LibreOffice در اولین استفاده راه‌اندازی می‌شود و سپس هر فایل را پردازش می‌کند.
4. یک فایل مستقیماً به‌صورت PDF دانلود می‌شود. چند فایل به‌صورت `excel-converted.zip` تحویل داده می‌شوند.
## گزینه‌ها
این ابزار پیکربندی اضافه‌ای ندارد. موتور LibreOffice چیدمان صفحه، مقیاس و ناحیهٔ چاپ را بر اساس تنظیمات داخلی صفحه‌گسترده تعیین می‌کند.
## خروجی
| تعداد ورودی | خروجی |
| :---------- | :--------------------------------------------------------- |
| 1 فایل | دانلود یک PDF (نام فایل اصلی با پسوند `.pdf`) |
| 2+ فایل | آرشیو ZIP (`excel-converted.zip`) شامل یک PDF برای هر فایل |
## کاربردها
- تبدیل گزارش‌های مالی یا بودجه از Excel به PDF برای توزیع
- ساخت PDFهای آمادهٔ چاپ از صفحه‌گسترده‌های موجودی یا کاتالوگ محصول
- اشتراک‌گذاری نتایج تحلیل داده با ذی‌نفعانی که Excel نصب ندارند
- بایگانی گزارش‌های فصلی در قالبی غیرقابل ویرایش
- تبدیل فایل‌های ODS از LibreOffice Calc به PDF
## نکته‌ها
- نمودارهای جاسازی‌شده در صفحه‌گسترده در PDF رندر می‌شوند. پیش از تبدیل مطمئن شوید در فایل منبع درست به نظر می‌رسند.
- اگر صفحه‌گستردهٔ شما چند برگه دارد، همهٔ برگه‌ها در خروجی PDF گنجانده می‌شوند.
- برای داده‌های ساده CSV بدون قالب‌بندی، ابزار [CSV به PDF](./csv-to-pdf) تبدیلی سبک‌تر ارائه می‌دهد. وقتی به حفظ قالب‌بندی، نمودارها یا چند برگه نیاز دارید از Excel به PDF استفاده کنید.
## ابزارهای مرتبط
- [CSV به PDF](./csv-to-pdf)
- [Word به PDF](./word-to-pdf)
- [PowerPoint به PDF](./powerpoint-to-pdf)
+42
View File
@@ -0,0 +1,42 @@
---
title: استخراج پیوست‌ها
description: استخراج همهٔ پیوست‌های فایل جاسازی‌شده از یک یا چند PDF و دانلود آن‌ها به‌صورت آرشیو ZIP.
---
# استخراج پیوست‌ها
همهٔ پیوست‌های جاسازی‌شده را از یک یا چند فایل PDF بیرون بکشید. همهٔ فایل‌های استخراج‌شده برای دانلود در یک آرشیو ZIP واحد بسته‌بندی می‌شوند.
## نحوهٔ کار
1. یک یا چند فایل PDF حاوی پیوست جاسازی‌شده بارگذاری کنید.
2. روی **استخراج پیوست‌ها** کلیک کنید.
3. ابزار هر PDF را برای یافتن پیوست‌های سطح سند و سطح صفحه جستجو می‌کند.
4. همهٔ فایل‌های یافت‌شده در یک آرشیو ZIP بسته‌بندی و به‌طور خودکار دانلود می‌شوند.
5. یک پیام وضعیت تعداد پیوست‌های یافت‌شده و حجم کل آن‌ها را تأیید می‌کند.
## ویژگی‌ها
- استخراج دسته‌ای از چند PDF به‌طور هم‌زمان
- استخراج پیوست‌های سطح سند و سطح صفحه
- خروجی یک فایل ZIP واحد شامل همهٔ فایل‌های استخراج‌شده
- نمایش تعداد کل پیوست‌ها و حجم مجموع فایل‌ها
- پیام‌های وضعیت واضح در صورت یافت نشدن پیوست
## کاربردها
- بازیابی فایل‌های داده جاسازی‌شده در یک گزارش PDF
- بیرون کشیدن فایل‌های تصویری از یک سند نمونه‌کار یا مشخصات
- استخراج مطالب تکمیلی از PDFهای آموزشی یا انطباق
- ممیزی فایل‌های جاسازی‌شده در دسته‌ای از PDFها
## نکته‌ها
- اگر ابزار پیوستی گزارش نکند، ممکن است PDF به‌جای آن تصاویر جاسازی‌شده یا دادهٔ فرم داشته باشد؛ این‌ها پیوست فایل نیستند. برای تصاویر جاسازی‌شده از [استخراج تصاویر](./extract-images) استفاده کنید.
- هنگام پردازش چند PDF، همهٔ پیوست‌های همهٔ فایل‌ها در یک ZIP قرار می‌گیرند. نام فایل‌ها از جاسازی‌های اصلی حفظ می‌شوند.
## ابزارهای مرتبط
- [افزودن پیوست](./add-attachments)
- [ویرایش پیوست‌ها](./edit-attachments)
- [استخراج تصاویر](./extract-images)
+45
View File
@@ -0,0 +1,45 @@
---
title: استخراج تصاویر
description: استخراج همهٔ تصاویر جاسازی‌شده از فایل‌های PDF. پیش‌نمایش در شبکه و دانلود تکی یا به‌صورت آرشیو ZIP.
---
# استخراج تصاویر
همهٔ تصاویر جاسازی‌شده را از یک یا چند فایل PDF بیرون می‌کشد. تصاویر استخراج‌شده در یک شبکهٔ پیش‌نمایش نمایش داده می‌شوند که می‌توانید آن‌ها را تک‌تک دانلود کنید، یا همه را یکجا به‌صورت ZIP بگیرید. با قدرت PyMuPDF.
## نحوهٔ کار
1. یک یا چند PDF را با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها روی آن بارگذاری کنید. در صورت نیاز فایل‌های بیشتری اضافه یا فایل‌هایی را حذف کنید.
2. برای شروع پردازش روی **استخراج** کلیک کنید.
3. ابزار همهٔ صفحات همهٔ PDFهای بارگذاری‌شده را بررسی می‌کند و تصاویر جاسازی‌شده را یافته و استخراج می‌کند.
4. تصاویر استخراج‌شده در یک شبکه با تصاویر بندانگشتی نمایش داده می‌شوند. هر تصویر یک دکمهٔ دانلود دارد.
5. روی **دانلود همه** کلیک کنید تا همه به‌صورت آرشیو ZIP ذخیره شوند.
## گزینه‌ها
این ابزار گزینهٔ قابل تنظیمی ندارد. همهٔ تصاویر جاسازی‌شده در قالب اصلی خود استخراج می‌شوند (معمولاً PNG، JPEG یا هر قالبی که هنگام جاسازی تصویر در PDF استفاده شده است).
## قالب خروجی
- تصاویر در یک شبکهٔ پیش‌نمایش با نام‌های `image_1.png`، `image_2.jpg` و غیره نمایش داده می‌شوند.
- **دانلود همه** فایل `extracted-images.zip` شامل همهٔ تصاویر را تولید می‌کند.
- تصاویر را می‌توان تک‌تک از شبکه دانلود کرد.
## کاربردها
- بازیابی عکس‌ها یا گرافیک‌ها از PDF برای استفادهٔ دوباره در پروژه‌ای دیگر.
- استخراج تصاویر محصول از کاتالوگ PDF برای فهرست فروشگاه اینترنتی.
- بیرون کشیدن نمودارها از مستندات فنی برای استفاده در ارائه‌ها.
- ممیزی تصاویر جاسازی‌شده در یک سند پیش از اشتراک‌گذاری آن.
## نکته‌ها
- ابزار تصاویر را دقیقاً همان‌طور که در PDF ذخیره شده‌اند استخراج می‌کند. صفحات را دوباره به‌صورت تصویر رندر نمی‌کند؛ برای این کار از [PDF به PNG](./pdf-to-png) یا [PDF به JPG](./pdf-to-jpg) استفاده کنید.
- اگر ابزار «تصویری یافت نشد» گزارش کند، ممکن است PDF به‌جای تصاویر رستری جاسازی‌شده از گرافیک برداری استفاده کند، یا سندی اسکن‌شده باشد که کل صفحه‌اش یک تصویر بزرگ است.
- پردازش دسته‌ای روی چند PDF کار می‌کند. همهٔ تصاویر همهٔ فایل‌ها در یک شبکه و یک ZIP ترکیب می‌شوند.
## ابزارهای مرتبط
- [PDF به PNG](./pdf-to-png)
- [PDF به JPG](./pdf-to-jpg)
- [سازندهٔ گردش کار PDF](./pdf-workflow)
+41
View File
@@ -0,0 +1,41 @@
---
title: استخراج صفحات
description: ذخیرهٔ بازهٔ مشخصی از صفحات یک PDF به‌صورت سندی جدید.
---
# استخراج صفحات
مجموعه‌ای از صفحات را از یک PDF بیرون بکشید و به‌صورت فایلی جدید ذخیره کنید. با نحو بازه دقیقاً مشخص کنید کدام صفحات را می‌خواهید تا ابزار یک PDF تمیز فقط شامل همان صفحات بسازد.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید. ابزار نام فایل، حجم و تعداد کل صفحات را نمایش می‌دهد.
2. صفحاتی را که می‌خواهید استخراج کنید با نحو بازه وارد کنید (مثلاً `1-5`، `3, 7, 10-12`).
3. در صورت تمایل انتخاب کنید که هر بازه به‌صورت PDF جداگانه در یک آرشیو ZIP دانلود شود.
4. روی دکمهٔ پردازش کلیک کنید. صفحات استخراج‌شده به‌صورت یک PDF جدید (یا ZIP) دانلود می‌شوند.
## ویژگی‌ها
- نحو انعطاف‌پذیر بازهٔ صفحه: صفحات تکی، بازه‌ها یا ترکیب‌های جداشده با کاما
- نمایش تعداد کل صفحات پس از بارگذاری برای مراجعهٔ آسان
- امکان خروجی به‌صورت یک PDF ترکیبی یا فایل‌های جداگانه در یک ZIP
- حفظ محتوا و قالب‌بندی اصلی صفحات
## کاربردها
- بیرون کشیدن خلاصهٔ مدیریتی (چند صفحهٔ اول) از یک گزارش طولانی
- استخراج یک فصل از PDF کتاب درسی
- ذخیرهٔ صفحات خاصی از یک بستهٔ فرم به‌صورت اسناد مستقل
- ساخت سند نمونه از صفحات منتخب یک فایل بزرگ‌تر
## نکته‌ها
- شمارهٔ صفحات از 1 شروع می‌شود. برای صفحهٔ اول از `1` استفاده کنید، نه `0`.
- برای حذف صفحات به‌جای استخراج آن‌ها، از [حذف صفحات](./delete-pages) استفاده کنید؛ این عملیات عکس آن است.
- اگر به انتخاب بصری صفحات با تصاویر بندانگشتی نیاز دارید، از [تقسیم PDF](./split-pdf) در حالت انتخاب بصری استفاده کنید.
## ابزارهای مرتبط
- [تقسیم PDF](./split-pdf)
- [حذف صفحات](./delete-pages)
- [ادغام PDF](./merge-pdf)
+46
View File
@@ -0,0 +1,46 @@
---
title: استخراج جدول‌ها
description: تشخیص و استخراج جدول‌ها از اسناد PDF. خروجی CSV، JSON یا Markdown با کنترل جداگانه برای هر جدول.
---
# استخراج جدول‌ها
همهٔ جدول‌های یک PDF را تشخیص می‌دهد و به شما امکان می‌دهد آن‌ها را در قالب دلخواه خود صادر کنید: CSV، JSON یا Markdown. هر جدول به‌طور جداگانه همراه با فرادادهٔ صفحه و موقعیت استخراج می‌شود. با قدرت موتور تشخیص جدول PyMuPDF.
## نحوهٔ کار
1. یک PDF را با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن بارگذاری کنید.
2. **قالب خروجی** دلخواه خود را انتخاب کنید: CSV، JSON یا Markdown.
3. برای شروع پردازش روی **استخراج** کلیک کنید.
4. اگر یک جدول یافت شود، به‌صورت یک فایل دانلود می‌شود. چند جدول یک آرشیو ZIP با یک فایل برای هر جدول تولید می‌کنند.
## گزینه‌ها
- **قالب خروجی**: یکی را انتخاب کنید:
- **CSV**: مقادیر جداشده با کاما با نقل‌قول‌گذاری درست برای فیلدهای شامل کاما، نقل‌قول یا خط جدید. مناسب صفحه‌گسترده‌ها و پایگاه‌های داده.
- **JSON**: ساختار آرایه‌ای از آرایه‌ها، با تورفتگی ۲ فاصله‌ای و قالب‌بندی خوانا. مناسب استفادهٔ برنامه‌نویسی.
- **Markdown**: قالب جدول جداشده با خط عمودی که PyMuPDF رندر می‌کند. مناسب مستندات و فایل‌های README.
## قالب خروجی
- **یک جدول**: `filename_table.csv` (یا `.json` / `.md`)
- **چند جدول**: `filename_tables.zip` شامل فایل‌هایی با نام‌های `table_1_page3.csv`، `table_2_page5.csv` و غیره
## کاربردها
- استخراج جدول‌های خاص از گزارش‌های طولانی PDF بدون بیرون کشیدن دادهٔ کل سند.
- دریافت جدول‌ها در قالب Markdown برای چسباندن مستقیم در issueهای GitHub، ویکی‌ها یا مستندات.
- بیرون کشیدن دادهٔ ساختاریافتهٔ JSON از جدول‌های PDF برای یکپارچه‌سازی API یا اسکریپت‌ها.
- مقایسهٔ جدول‌ها در نسخه‌های مختلف PDF با صادر کردن هر دو به CSV و مقایسهٔ تفاوت‌ها.
## نکته‌ها
- این ابزار کنترل جداگانه بر هر جدول به شما می‌دهد. اگر فقط می‌خواهید همهٔ جدول‌ها در یک CSV ریخته شوند، از [PDF به CSV](./pdf-to-csv) استفاده کنید. برای یک کتاب کار کامل Excel، از [PDF به Excel](./pdf-to-excel) استفاده کنید.
- جدول‌هایی که در چند صفحه گسترده‌اند ممکن است به‌صورت جدول‌های جداگانه در هر صفحه تشخیص داده شوند. ممکن است لازم باشد آن‌ها را دستی به هم بچسبانید.
- اگر جدولی تشخیص داده نشود، ممکن است PDF یک تصویر اسکن‌شده باشد. ابتدا آن را از OCR عبور دهید تا لایهٔ متنی اضافه شود.
## ابزارهای مرتبط
- [PDF به CSV](./pdf-to-csv)
- [PDF به Excel](./pdf-to-excel)
- [PDF به متن](./pdf-to-text)
+43
View File
@@ -0,0 +1,43 @@
---
title: FB2 به PDF
description: فایل‌های کتاب الکترونیکی FictionBook (FB2) را در مرورگر خود به PDF تبدیل کنید. رایگان، خصوصی و بدون بارگذاری روی سرور.
---
# FB2 به PDF
فایل‌های FictionBook 2 (FB2) را به اسناد PDF تبدیل کنید. FB2 یک قالب کتاب الکترونیکی مبتنی بر XML است که در روسیه و اروپای شرقی رایج است. با اینکه در برخی پلتفرم‌ها به‌خوبی پشتیبانی می‌شود، در بسیاری دیگر تقریباً ناشناخته است؛ تبدیل به PDF کتاب‌های شما را همه‌جا خواندنی می‌کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :------------ | :----- | :-------------------------------- |
| FictionBook 2 | `.fb2` | قالب کتاب الکترونیکی مبتنی بر XML |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های FB2 خود را بکشید و رها کنید. انتخاب گروهی برای چند فایل کار می‌کند.
2. فهرست فایل‌ها را بررسی کنید. با نماد سطل زباله موارد را تک‌تک حذف کنید یا با **افزودن فایل‌های بیشتر** فایل‌های دیگری اضافه کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور PyMuPDF ساختار XML فایل FB2 را تجزیه کرده و آن را به‌صورت محتوای PDF صفحه‌بندی‌شده رندر می‌کند.
4. یک فایل مستقیماً به‌صورت PDF دانلود می‌شود. چند تبدیل در `fb2-converted.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
نیازی به پیکربندی نیست. مبدل ساختار XML فایل FB2 را به‌طور خودکار مدیریت می‌کند و شکست فصل‌ها، قالب‌بندی و تصاویر جاسازی‌شده را حفظ می‌کند.
## موارد استفاده
- خواندن کتاب‌های الکترونیکی FB2 روی دستگاه‌ها یا برنامه‌هایی که فقط از PDF پشتیبانی می‌کنند
- چاپ آثار ادبی روسی‌زبانی که در قالب FB2 توزیع شده‌اند
- بایگانی یک کتابخانهٔ FB2 در قالبی که همه‌جا پشتیبانی می‌شود
- به اشتراک گذاشتن کتاب با کسی که کتاب‌خوانش از FictionBook پشتیبانی نمی‌کند
## نکات
- فایل‌های FB2 متن سادهٔ XML هستند، بنابراین معمولاً کوچک‌اند و حتی در مرورگر هم سریع تبدیل می‌شوند.
- اگر فایل‌های FB2 شما به‌صورت `.fb2.zip` فشرده شده‌اند، پیش از بارگذاری آن‌ها را از حالت فشرده خارج کنید.
## ابزارهای مرتبط
- [EPUB به PDF](./epub-to-pdf)
- [MOBI به PDF](./mobi-to-pdf)
- [XML به PDF](./xml-to-pdf)
+44
View File
@@ -0,0 +1,44 @@
---
title: اصلاح اندازهٔ صفحه
description: همهٔ صفحات یک PDF را به اندازه‌ای یکسان استاندارد کنید. از میان اندازه‌های استاندارد کاغذ انتخاب کنید یا ابعاد دلخواه تعیین کنید.
---
# اصلاح اندازهٔ صفحه
PDFهایی که از چند منبع جمع‌آوری شده‌اند اغلب اندازهٔ صفحات ناهمخوانی دارند: برخی Letter، برخی A4 و برخی کاملاً غیراستاندارد. این ابزار همهٔ صفحات را به یک اندازهٔ هدف درمی‌آورد و در صورت نیاز محتوا را برای جا شدن یا پر کردن صفحه مقیاس می‌دهد.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. از منوی کشویی یک **اندازهٔ صفحهٔ هدف** انتخاب کنید (A4، Letter، Legal، A3، A5، Tabloid یا سفارشی).
3. یک **جهت** انتخاب کنید: «خودکار» جهت اصلی هر صفحه را حفظ می‌کند، یا می‌توانید عمودی یا افقی را اجبار کنید.
4. یک حالت **مقیاس‌دهی محتوا** انتخاب کنید: Fit (همهٔ محتوا را حفظ می‌کند، ممکن است حاشیه اضافه کند) یا Fill (صفحه را پر می‌کند، ممکن است لبه‌ها را برش دهد).
5. در صورت تمایل یک **رنگ پس‌زمینه** برای حاشیه‌های اضافه‌شده تعیین کنید.
6. روی **اصلاح اندازهٔ صفحه** کلیک کنید.
## گزینه‌ها
- **اندازه‌های استاندارد**: A4، Letter، Legal، A3، A5، Tabloid
- **ابعاد سفارشی**: عرض و ارتفاع را بر حسب اینچ یا میلی‌متر وارد کنید
- **جهت**: خودکار، عمودی، افقی
- **حالت مقیاس‌دهی**: Fit یا Fill (برش)
- **رنگ پس‌زمینه**: هر رنگی برای پر کردن حاشیه‌ها
## موارد استفاده
- یکدست کردن یک PDF ادغام‌شده که صفحاتش از اسکنرهای مختلف آمده‌اند
- تبدیل یک سند US Letter به A4 برای توزیع بین‌المللی
- آماده‌سازی PDFهای آمادهٔ چاپ که به اندازهٔ برش یکسان نیاز دارند
- اصلاح صفحاتی که کمی با استاندارد فاصله دارند (مثلاً 8.49 x 11.02 اینچ به‌جای 8.5 x 11)
## نکات
- برای اطمینان از اینکه هیچ محتوایی از دست نمی‌رود از حالت Fit استفاده کنید. حالت Fill تمیزتر به نظر می‌رسد اما ممکن است لبه‌ها را ببرد.
- خروجی را با ابزار ابعاد صفحه بررسی کنید تا مطمئن شوید همهٔ صفحات با اندازهٔ هدف مطابقت دارند.
- رنگ پس‌زمینهٔ پیش‌فرض سفید است؛ اگر سند شما حاشیه‌های تیره دارد، به یک رنگ تیره تغییر دهید.
## ابزارهای مرتبط
- [ابعاد صفحه](./page-dimensions): بررسی اندازهٔ صفحات پیش و پس از اصلاح
- [فشرده‌سازی PDF](./compress-pdf): کاهش حجم فایل پس از استانداردسازی
- [برش PDF](./crop-pdf): برش دستی صفحات به‌جای مقیاس‌دهی خودکار
+51
View File
@@ -0,0 +1,51 @@
---
title: مسطح‌سازی PDF
description: فرم‌های تعاملی و حاشیه‌نویسی‌ها را به محتوای ثابت تبدیل کنید. فیلدهای فرم غیرقابل‌ویرایش می‌شوند و حاشیه‌نویسی‌ها در صفحه ثبت می‌شوند.
---
# مسطح‌سازی PDF
مسطح‌سازی عناصر تعاملی (فیلدهای فرم، منوهای کشویی، کادرهای انتخاب، حاشیه‌نویسی‌ها، هایلایت‌ها، یادداشت‌های چسبان) را مستقیماً با محتوای صفحه ادغام می‌کند. ظاهر بصری همان می‌ماند، اما دیگر هیچ چیز قابل ویرایش یا استخراج نیست. این معادل PDF چاپ یک فرم پرشده و اسکن دوبارهٔ آن است، با این تفاوت که کیفیت کاملاً حفظ می‌شود.
## نحوهٔ کار
1. یک یا چند فایل PDF بارگذاری کنید.
2. روی **مسطح‌سازی PDF** کلیک کنید.
3. یک فایل مستقیماً دانلود می‌شود. چند فایل یک بایگانی ZIP تولید می‌کنند.
این ابزار از pdf-lib برای مسطح‌سازی فیلدهای فرم (از طریق `form.flatten()`) و از یک مسطح‌ساز اختصاصی حاشیه‌نویسی برای ثبت حاشیه‌نویسی‌ها در جریان صفحه استفاده می‌کند. هر دو عملیات در یک مرحله انجام می‌شوند.
## چه چیزهایی مسطح می‌شوند
- **فیلدهای فرم**: ورودی‌های متنی، کادرهای انتخاب، دکمه‌های رادیویی، منوهای کشویی، فیلدهای امضا
- **حاشیه‌نویسی‌ها**: نظرات، هایلایت‌ها، خط‌خوردگی، زیرخط، یادداشت‌های چسبان، مهرها، حاشیه‌نویسی‌های جوهری
- **عناصر تعاملی**: دکمه‌ها، محرک‌های عملیات
## چه چیزهایی تغییر نمی‌کنند
- محتوای متنی (قابل انتخاب و جستجو باقی می‌ماند)
- تصاویر و گرافیک‌ها
- چیدمان و ابعاد صفحه
- نشانک‌ها و فهرست مطالب
- پیوندها (مگر اینکه مبتنی بر حاشیه‌نویسی باشند)
## موارد استفاده
- قفل کردن یک فرم تکمیل‌شده تا گیرندگان نتوانند پاسخ‌های ارسالی را تغییر دهند
- آماده‌سازی PDF برای بایگانی، جایی که عناصر تعاملی لازم نیستند
- رفع مشکلات نمایشی ناشی از رندر متفاوت حاشیه‌نویسی‌ها در نمایشگرهای مختلف
- اطمینان از اینکه سند امضاشده پس از اعمال امضا قابل تغییر نیست
- کاهش حجم فایل با حذف تعاریف فیلدهای فرم و اشیای حاشیه‌نویسی
## نکات
- پس از اتمام همهٔ ویرایش‌ها مسطح‌سازی کنید. هیچ راهی برای برگرداندن مسطح‌سازی وجود ندارد.
- اگر علاوه بر مسطح‌سازی می‌خواهید فراداده، JavaScript و پیوست‌ها را هم حذف کنید، به‌جای آن از ابزار پاک‌سازی PDF استفاده کنید؛ مسطح‌سازی یکی از گزینه‌های آن است.
- برخی PDFها پیام «فرمی یافت نشد» نشان می‌دهند؛ اگر سند فقط حاشیه‌نویسی داشته باشد و فیلد فرم نداشته باشد، این طبیعی است.
## ابزارهای مرتبط
- [پاک‌سازی PDF](./sanitize-pdf): مسطح‌سازی فرم‌ها به‌علاوهٔ حذف فراداده، اسکریپت‌ها و موارد دیگر
- [رستر کردن PDF](./rasterize-pdf): تبدیل به PDF مبتنی بر تصویر برای حداکثر مسطح‌سازی
- [تبدیل قلم به خطوط برداری](./font-to-outline): تبدیل قلم‌ها به مسیرهای برداری
- [رمزگذاری PDF](./protect-pdf): قفل کردن PDF مسطح‌شده با گذرواژه
+52
View File
@@ -0,0 +1,52 @@
---
title: تبدیل قلم به خطوط برداری
description: همهٔ قلم‌های PDF را برای نمایش یکسان در همهٔ دستگاه‌ها به خطوط برداری تبدیل کنید. مشکلات وابستگی به قلم را از بین می‌برد.
---
# تبدیل قلم به خطوط برداری
تبدیل قلم‌ها به خطوط برداری، هر نویسهٔ متنی را از یک گلیف مبتنی بر قلم به یک مسیر برداری تبدیل می‌کند. PDF دیگر به هیچ قلم نصب‌شده‌ای وابسته نیست و روی هر دستگاه، هر سیستم‌عامل و هر چاپگری یکسان نمایش داده می‌شود. این یک مرحلهٔ استاندارد در گردش کارهای پیش از چاپ است.
## نحوهٔ کار
1. یک یا چند فایل PDF بارگذاری کنید.
2. روی **تبدیل به خطوط برداری** کلیک کنید.
3. Ghostscript همهٔ متن را به مسیرهای برداری تبدیل می‌کند.
4. نتیجه را دانلود کنید. چند فایل یک بایگانی ZIP تولید می‌کنند.
هیچ تنظیماتی برای پیکربندی وجود ندارد. این ابزار از Ghostscript (WebAssembly) برای تبدیل همهٔ ارجاعات قلم به مسیرهای برداری در یک مرحله استفاده می‌کند.
## چه چیزهایی تغییر می‌کنند
- نویسه‌های متنی به منحنی‌های برداری (مسیرهای بزیه) تبدیل می‌شوند
- جاسازی قلم دیگر لازم نیست؛ PDF در سطح گلیف خودکفاست
- ممکن است حجم فایل افزایش یابد، چون مسیرهای برداری معمولاً از ارجاعات قلم بزرگ‌ترند
- ظاهر بصری دقیقاً حفظ می‌شود
## چه چیزهایی از دست می‌روند
- انتخاب متن و کپی و جای‌گذاری
- قابلیت جستجوی متن (Ctrl+F دیگر کار نمی‌کند)
- امکان ویرایش محتوای متنی
- دسترس‌پذیری برای صفحه‌خوان‌ها
## موارد استفاده
- ارسال PDF به چاپخانه‌ای که قلم‌های تبدیل‌شده به خطوط برداری می‌خواهد
- اشتراک اسنادی که از قلم‌های سفارشی یا دارای مجوز استفاده می‌کنند با افرادی که آن قلم‌ها را ندارند
- جلوگیری از جایگزینی قلم که ظاهر سند شما را در سیستم‌های دیگر تغییر می‌دهد
- آماده‌سازی PDF برای حکاکی لیزری یا برش CNC که ورودی برداری نیاز دارند
- اطمینان از نمایش درست یک PDF پر از لوگو در همهٔ پلتفرم‌ها
## نکات
- PDF اصلی خود را نگه دارید. تبدیل به خطوط برداری برگشت‌ناپذیر است و نمی‌توانید مسیرها را دوباره به متن قابل ویرایش تبدیل کنید.
- اگر لازم است متن قابل جستجو بماند، به‌جای آن ابزار رستر کردن PDF را همراه با OCR در نظر بگیرید.
- PDFهای تبدیل‌شده معمولاً بزرگ‌ترند. اگر حجم فایل مهم است، پس از آن فشرده‌سازی PDF را اجرا کنید.
## ابزارهای مرتبط
- [مسطح‌سازی PDF](./flatten-pdf): مسطح‌سازی فرم‌ها و حاشیه‌نویسی‌ها بدون دست زدن به قلم‌ها
- [رستر کردن PDF](./rasterize-pdf): تبدیل به PDF مبتنی بر تصویر به‌جای خطوط برداری
- [فشرده‌سازی PDF](./compress-pdf): کاهش حجم فایل پس از تبدیل
- [PDF به PDF/A](./pdf-to-pdfa): تبدیل برای بایگانی پس از اطمینان از استقلال از قلم
+76
View File
@@ -0,0 +1,76 @@
---
title: ساخت فرم PDF
description: فرم‌های PDF قابل پر کردن با فیلدهای متنی، کادرهای انتخاب، منوهای کشویی، دکمه‌های رادیویی و موارد دیگر را با کشیدن و رها کردن بسازید.
---
# ساخت فرم PDF
فرم‌های PDF حرفه‌ای قابل پر کردن را از ابتدا یا با افزودن فیلد به یک PDF موجود طراحی کنید. ویرایشگر بصری به شما امکان می‌دهد عناصر فرم (فیلدهای متنی، کادرهای انتخاب، منوهای کشویی، دکمه‌های رادیویی، فیلدهای امضا و موارد دیگر) را مستقیماً روی پیش‌نمایش صفحات بکشید و رها کنید. ویژگی‌های فیلدها را پیکربندی کنید، قواعد نمایش شرطی تعیین کنید و یک فرم PDF کاملاً تعاملی خروجی بگیرید.
## نحوهٔ کار
1. یک PDF موجود بارگذاری کنید **یا** برای شروع از ابتدا روی **ساخت PDF خالی** کلیک کنید.
2. اگر PDF خالی می‌سازید، اندازهٔ صفحه را انتخاب کنید (Letter، A4، A5، Legal، Tabloid، A3 یا ابعاد سفارشی).
3. ویرایشگر فرم با نوار ابزاری از انواع فیلد و یک ناحیهٔ پیش‌نمایش صفحه باز می‌شود.
4. یک نوع فیلد از نوار ابزار انتخاب کنید، سپس برای قرار دادن آن روی صفحه کلیک کنید.
5. فیلدها را برای جابه‌جایی بکشید. برای تنظیم ابعاد از دستگیره‌های تغییر اندازه استفاده کنید.
6. روی یک فیلد کلیک کنید تا پنل ویژگی‌ها باز شود؛ در آنجا می‌توانید نام فیلد، مقدار پیش‌فرض، اندازهٔ قلم، تراز و موارد دیگر را تنظیم کنید.
7. با کنترل‌های صفحه بین صفحات جابه‌جا شوید.
8. برای دانلود PDF قابل پر کردن نهایی روی **ذخیره** کلیک کنید.
## ویژگی‌ها
- قرار دادن فیلد با کشیدن و رها کردن و دستگیره‌های بصری برای تغییر اندازه
- انواع فیلد: ورودی متن، متن چندخطی، کادر انتخاب، منوی کشویی، دکمهٔ رادیویی، امضا، تاریخ، عدد و بارکد
- پنل ویژگی‌ها برای پیکربندی نام، برچسب، مقدار پیش‌فرض، اندازهٔ قلم، رنگ، تراز و اعتبارسنجی هر فیلد
- عملیات فیلد و قواعد نمایش شرطی (نمایش یا پنهان کردن فیلدها بر اساس مقادیر فیلدهای دیگر)
- پیمایش صفحات برای فرم‌های چندصفحه‌ای
- استخراج فیلدهای موجود: فیلدهای فرم را از PDFهای بارگذاری‌شده به‌طور خودکار شناسایی و وارد می‌کند
- پشتیبانی از PDFهای بارگذاری‌شده و صفحات خالی به‌عنوان بوم فرم
- چند پیش‌تنظیم اندازهٔ صفحه به‌علاوهٔ ابعاد سفارشی
- تولید بارکد با bwip-js
- مدیریت گروه دکمه‌های رادیویی
## گزینه‌ها
**پیش‌تنظیم‌های اندازهٔ صفحه (برای PDFهای خالی):**
- Letter (8.5" x 11")
- A4 (210mm x 297mm)
- A5 (148mm x 210mm)
- Legal (8.5" x 14")
- Tabloid (11" x 17")
- A3 (297mm x 420mm)
- سفارشی (تعیین عرض و ارتفاع)
**ویژگی‌های فیلد (بسته به نوع فیلد):**
- نام، برچسب و متن جایگزین
- مقدار پیش‌فرض
- خانوادهٔ قلم، اندازه و رنگ
- تراز متن (چپ، وسط، راست)
- گزینهٔ فیلد الزامی
- گزینهٔ فقط‌خواندنی
- حداکثر طول برای فیلدهای متنی
- فهرست گزینه‌ها برای منوهای کشویی و دکمه‌های رادیویی
- عملیات نمایش شرطی
## موارد استفاده
- ساخت فرم‌های ورود کارکنان با فیلدهای متنی برای اطلاعات شخصی و کادرهای انتخاب برای تأیید خط‌مشی‌ها
- ایجاد پرسشنامه‌های پذیرش مشتری با منوهای کشویی برای انتخاب خدمات
- طراحی فرم‌های سفارش با فیلدهای محاسبه‌شده و شناسه‌های بارکد
- ساخت چک‌لیست‌های بازرسی با دکمه‌های رادیویی برای ارزیابی قبول یا رد
- ایجاد فرم‌های نظرسنجی با پرسش‌های پیگیری شرطی که بر اساس پاسخ‌ها ظاهر می‌شوند
## نکات
- اگر یک PDF موجود بارگذاری کنید، ابزار تلاش می‌کند فیلدهای فرم موجود را استخراج کند تا بتوانید آن‌ها را ویرایش یا تکمیل کنید.
- برای ایجاد انتخاب‌های انحصاری از قابلیت گروه دکمه‌های رادیویی استفاده کنید. فیلدهای یک گروه رادیویی نام گروه مشترکی دارند.
- فرم خود را با دانلود و باز کردن آن در [پرکنندهٔ فرم PDF](./form-filler) آزمایش کنید تا رفتار فیلدها را بررسی کنید.
## ابزارهای مرتبط
- [پرکنندهٔ فرم PDF](./form-filler)
- [امضای PDF](./sign-pdf)
- [ویرایشگر PDF](./edit-pdf)
+47
View File
@@ -0,0 +1,47 @@
---
title: پرکنندهٔ فرم PDF
description: فرم‌های PDF، از جمله فرم‌های XFA، را مستقیماً در مرورگر خود با یک نمایشگر داخلی پر کنید.
---
# پرکنندهٔ فرم PDF
یک PDF دارای فیلدهای فرم را باز کنید و آن را مستقیماً در یک نمایشگر داخلی پر کنید. این ابزار هم از فیلدهای استاندارد AcroForm و هم از فرم‌های قدیمی XFA (XML Forms Architecture) پشتیبانی می‌کند. پس از تکمیل فرم، نسخهٔ پرشده را با یک کلیک دانلود کنید.
## نحوهٔ کار
1. یک PDF حاوی فیلدهای فرم بارگذاری کنید.
2. سند در یک نمایشگر PDF یکپارچه باز می‌شود که فیلدهای فرم را به‌صورت ورودی‌های تعاملی نمایش می‌دهد.
3. روی فیلدهای متنی، کادرهای انتخاب، منوهای کشویی و دکمه‌های رادیویی کلیک کنید تا آن‌ها را پر کنید.
4. برای دریافت PDF تکمیل‌شده روی **ذخیره و دانلود فرم پرشده** کلیک کنید.
## ویژگی‌ها
- نمایشگر داخلی PDF.js با تعامل کامل با فیلدهای فرم
- پشتیبانی از فیلدهای استاندارد AcroForm (ورودی‌های متنی، کادرهای انتخاب، منوهای کشویی، دکمه‌های رادیویی)
- پشتیبانی از فرم‌های XFA برای فرم‌های قدیمی مبتنی بر XML
- تنظیم خودکار اندازهٔ نمایشگر بر اساس ابعاد صفحه
- نمایش فایل با اطلاعات نام و حجم
## گزینه‌ها
هیچ گزینهٔ پیکربندی اضافه‌ای وجود ندارد. فرم را بارگذاری کنید، پر کنید و دانلود کنید.
## موارد استفاده
- تکمیل فرم‌های مالیاتی، درخواست‌های بیمه یا مدارک دولتی
- پر کردن فرم‌های درخواست شغل که به‌صورت پیوست PDF دریافت شده‌اند
- تکمیل فرم‌های ثبت تأمین‌کننده یا پرسشنامه‌های فروشندگان
- تأیید چک‌لیست‌های انطباق با فیلدهای کادر انتخاب
- پر کردن فرم‌های پذیرش پزشکی پیش از مراجعه
## نکات
- فرم‌های XFA قالبی قدیمی هستند که فقط برخی نمایشگرهای PDF از آن پشتیبانی می‌کنند. اگر یک PDF از نوع XFA را در Chrome یا بیشتر ابزارهای دیگر باز کنید و صفحات خالی ببینید، یعنی آن نمایشگرها از XFA پشتیبانی نمی‌کنند. پرکنندهٔ فرم BentoPDF و Firefox هر دو XFA را به‌درستی مدیریت می‌کنند.
- برای PDFهایی که فیلد فرم ندارند، ابتدا با ابزار [ساخت فرم PDF](./form-creator) فیلد اضافه کنید، سپس آن‌ها را اینجا پر کنید.
- نمایشگر اندازهٔ خود را به‌طور خودکار با ابعاد صفحهٔ PDF تطبیق می‌دهد.
## ابزارهای مرتبط
- [ساخت فرم PDF](./form-creator)
- [امضای PDF](./sign-pdf)
- [ویرایشگر PDF](./edit-pdf)
+53
View File
@@ -0,0 +1,53 @@
---
title: سرصفحه و پاصفحه
description: متن سرصفحه و پاصفحهٔ قابل تنظیم با متغیرهای پویای شمارهٔ صفحه به صفحات PDF اضافه کنید.
---
# سرصفحه و پاصفحه
در شش موقعیت روی صفحات PDF خود متن اضافه کنید: چپ، وسط و راست سرصفحه و چپ، وسط و راست پاصفحه. این ابزار از متغیرهای پویا برای شمارهٔ صفحه و تعداد کل صفحات پشتیبانی می‌کند، بنابراین می‌توانید قالب‌هایی مانند «صفحهٔ 3 از 10» بسازید که برای هر صفحه به‌طور خودکار به‌روز می‌شوند.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. پنل گزینه‌ها با کنترل‌های قالب‌بندی و شش فیلد ورودی متن ظاهر می‌شود.
3. متن دلخواه خود را در هر یک از موقعیت‌های سرصفحه یا پاصفحه وارد کنید.
4. برای شماره‌گذاری پویای صفحات از جای‌نگهدارهای `{page}` و `{total}` استفاده کنید.
5. اندازهٔ قلم و رنگ قلم را تنظیم کنید و در صورت تمایل به یک بازهٔ صفحات مشخص محدود کنید.
6. برای پردازش و دانلود روی **افزودن سرصفحه و پاصفحه** کلیک کنید.
## گزینه‌ها
- **بازهٔ صفحات**: در صورت تمایل، صفحاتی را که سرصفحه و پاصفحه می‌گیرند محدود کنید. برای اعمال روی همهٔ صفحات خالی بگذارید. قالب: «1-3, 5» (بازه‌های جداشده با ویرگول).
- **اندازهٔ قلم**: بین 6 تا 24 پوینت. پیش‌فرض 10.
- **رنگ قلم**: هر رنگی را با انتخابگر رنگ برگزینید.
- **سرصفحهٔ چپ / وسط / راست**: فیلدهای متنی برای بالای هر صفحه.
- **پاصفحهٔ چپ / وسط / راست**: فیلدهای متنی برای پایین هر صفحه.
## ویژگی‌ها
- شش موقعیت متنی مستقل در هر صفحه
- متغیر پویای `{page}` که شمارهٔ صفحهٔ فعلی را درج می‌کند
- متغیر پویای `{total}` که تعداد کل صفحات را درج می‌کند
- فیلتر بازهٔ صفحات برای هدف قرار دادن صفحات خاص
- اندازه و رنگ قلم قابل تنظیم
- قلم Helvetica برای خروجی تمیز و حرفه‌ای
## موارد استفاده
- افزودن «صفحهٔ {page} از {total}» به وسط پاصفحهٔ یک گزارش
- قرار دادن نام شرکت در سمت چپ سرصفحه و تاریخ سند در سمت راست سرصفحه
- افزودن اطلاعیه‌های محرمانگی به پاصفحهٔ اسناد حقوقی
- درج شمارهٔ ویرایش سند روی بازه‌های صفحات مشخص
## نکات
- `{page}` و `{total}` را در یک فیلد ترکیب کنید تا قالب‌هایی مانند «صفحهٔ {page} از {total}» یا «{page}/{total}» بسازید.
- می‌توانید بیشتر فیلدها را خالی بگذارید و فقط موقعیت‌های مورد نیاز را پر کنید. فیلدهای خالی به‌سادگی نادیده گرفته می‌شوند.
- برای سرصفحه‌های پیچیده‌تر با تصویر یا لوگو، استفاده از ابزار [افزودن واترمارک](./add-watermark) را با قرار دادن آن در بالای صفحه در نظر بگیرید.
## ابزارهای مرتبط
- [شماره‌گذاری صفحات](./page-numbers)
- [افزودن واترمارک](./add-watermark)
- [شماره‌گذاری Bates](./bates-numbering)
+46
View File
@@ -0,0 +1,46 @@
---
title: HEIC به PDF
description: تصاویر HEIC و HEIF آیفون و آیپد را مستقیماً در مرورگر خود به قالب PDF تبدیل کنید.
---
# HEIC به PDF
تصاویر HEIC/HEIF را به PDF تبدیل کنید. HEIC از iOS 11 قالب پیش‌فرض عکس در آیفون و آیپد است. این ابزار به شما امکان می‌دهد این عکس‌ها را بدون نصب نرم‌افزار دسکتاپ یا بارگذاری فایل روی سرور به PDF تبدیل کنید.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :--- | :------ |
| HEIC | `.heic` |
| HEIF | `.heif` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های HEIC/HEIF خود را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید و فایل‌های ناخواسته را حذف کنید.
3. روی **تبدیل به PDF** کلیک کنید. نتیجه با نام `from_heic.pdf` دانلود می‌شود.
هر فایل HEIC با کتابخانهٔ heic2any رمزگشایی می‌شود که آن را با کیفیت 92٪ به PNG تبدیل می‌کند. سپس PNG با pdf-lib در PDF جاسازی می‌شود و هر تصویر با وضوح کامل در صفحهٔ جداگانهٔ خود قرار می‌گیرد.
## گزینه‌ها
این ابزار تنظیمات اضافه‌ای ارائه نمی‌دهد. تصاویر HEIC پیش از جاسازی با کیفیت بالا (0.92) به PNG تبدیل می‌شوند.
## موارد استفاده
- ساخت PDF از عکس‌های آیفون برای پیوست به ادعای خسارت بیمه یا گزارش
- تبدیل عکس‌های HEIC یک آگهی ملک به یک سند واحد قابل چاپ
- تبدیل اسکرین‌شات‌های آیپد (قالب HEIF) به یک PDF قابل اشتراک
- تبدیل گروهی عکس‌های تعطیلات برای یک سفرنامه
## نکات
- رمزگشایی HEIC کاملاً در مرورگر و با WebAssembly انجام می‌شود. نخستین تبدیل ممکن است هنگام بارگیری رمزگشا کمی طول بکشد.
- اگر لازم است HEIC را با قالب‌های تصویری دیگر (JPG، PNG و غیره) ترکیب کنید، از ابزار [تصاویر به PDF](./image-to-pdf) استفاده کنید که HEIC را در کنار همهٔ قالب‌های دیگر مدیریت می‌کند.
- فایل‌های HEIC آیفون اغلب حاوی داده‌های EXIF از جمله مختصات GPS هستند. خروجی PDF این فراداده را منتقل نمی‌کند.
## ابزارهای مرتبط
- [تصاویر به PDF](./image-to-pdf)
- [JPG به PDF](./jpg-to-pdf)
- [PNG به PDF](./png-to-pdf)
+65
View File
@@ -0,0 +1,65 @@
---
title: تصاویر به PDF
description: JPG، PNG، BMP، GIF، TIFF، SVG، HEIC، WebP، PSD و بیش از 10 قالب تصویری دیگر را به یک فایل PDF تبدیل کنید.
---
# تصاویر به PDF
مبدل همه‌کارهٔ تصویر به PDF. تصاویر را تقریباً در هر قالبی بارگذاری کنید و آن‌ها را در یک سند PDF ترکیب کنید. هر تصویر صفحهٔ خودش را می‌گیرد که اندازه‌اش با ابعاد اصلی تصویر مطابقت دارد.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :-------------- | :------------------------------------- |
| JPEG | `.jpg`, `.jpeg` |
| JPEG 2000 | `.jp2`, `.jpx` |
| PNG | `.png` |
| BMP | `.bmp` |
| GIF | `.gif` |
| TIFF | `.tiff`, `.tif` |
| SVG | `.svg` |
| HEIC/HEIF | `.heic`, `.heif` |
| WebP | `.webp` |
| PSD | `.psd` |
| Portable Anymap | `.pnm`, `.pgm`, `.pbm`, `.ppm`, `.pam` |
| JPEG XR | `.jxr` |
این گسترده‌ترین پشتیبانی از قالب‌ها در میان مبدل‌های تصویر BentoPDF است. اگر فقط به یک قالب خاص نیاز دارید، از یکی از ابزارهای اختصاصی استفاده کنید.
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های تصویری خود را بکشید و رها کنید. می‌توانید چند فایل را همزمان انتخاب کنید.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های ناخواسته را با نماد سطل زباله حذف کنید یا برای افزودن تصاویر بیشتر روی **افزودن فایل‌های بیشتر** کلیک کنید.
3. از منوی کشویی یک سطح **کیفیت PDF** انتخاب کنید.
4. روی **تبدیل به PDF** کلیک کنید. ابزار تصاویر را با موتور PyMuPDF پردازش می‌کند و نتیجه را با نام `images_to_pdf.pdf` دانلود می‌کند.
## گزینه‌ها
**کیفیت PDF** فشرده‌سازی اعمال‌شده هنگام جاسازی تصاویر در PDF را کنترل می‌کند:
- **کیفیت بالا**: فشرده‌سازی حداقلی، حجم بیشتر. بهترین گزینه برای چاپ یا بایگانی.
- **کیفیت متوسط** (پیش‌فرض): فشرده‌سازی متعادل. مناسب برای بیشتر کاربردها.
- **کیفیت پایین**: فشرده‌سازی شدید، کمترین حجم. مناسب برای ایمیل یا اشتراک سریع.
فایل‌های HEIC و WebP پیش از جاسازی به‌طور خودکار به PNG تبدیل می‌شوند. این کار بی‌صدا انجام می‌شود و به هیچ مرحلهٔ اضافه‌ای نیاز ندارد.
## موارد استفاده
- ترکیب رسیدها یا اسناد اسکن‌شده با دوربین گوشی در یک PDF
- ساخت نمونه‌کار عکس یا کاتالوگ از تصاویری با قالب‌های مختلف
- تبدیل عکس‌های آیفون (HEIC) به یک PDF قابل اشتراک بدون نصب نرم‌افزار دسکتاپ
- گردآوری ماکاپ‌های طراحی از خروجی‌های PSD و اسکرین‌شات‌ها در یک تحویلی برای مشتری
- بایگانی پوشه‌ای از قالب‌های تصویری قدیمی (PNM، JXR، JP2) در یک PDF واحد
## نکات
- ترتیب تصاویر در PDF با ترتیب آن‌ها در فهرست فایل‌ها یکسان است. آن‌ها را به ترتیبی که می‌خواهید بارگذاری کنید.
- برای کمترین حجم ممکن، کیفیت پایین را انتخاب کنید. تفاوت بصری برای اسکن‌های پرمتن اغلب ناچیز است.
- اگر فقط یک قالب تصویری دارید، مبدل‌های اختصاصی (JPG به PDF، PNG به PDF و غیره) همان نتیجه را با رابطی ساده‌تر ارائه می‌دهند.
## ابزارهای مرتبط
- [JPG به PDF](./jpg-to-pdf)
- [PNG به PDF](./png-to-pdf)
- [HEIC به PDF](./heic-to-pdf)
- [WebP به PDF](./webp-to-pdf)
+183
View File
@@ -0,0 +1,183 @@
# مرجع ابزارها
BentoPDF بیش از **130 ابزار** برای کار با PDF ارائه می‌دهد. همهٔ ابزارها کاملاً در مرورگر شما اجرا می‌شوند؛ فایل‌های شما هرگز از دستگاهتان خارج نمی‌شوند.
---
## ویرایش و حاشیه‌نویسی
اسناد PDF خود را با مجموعه‌ای کامل از ابزارهای ویرایش تغییر دهید، نشانه‌گذاری و بهبود دهید.
<div class="tool-grid">
- [**ویرایشگر PDF**](./edit-pdf): حاشیه‌نویسی، هایلایت، پنهان‌سازی، نظر گذاشتن، افزودن شکل و تصویر، جستجو و مشاهدهٔ PDFها.
- [**ویرایش نشانک‌ها**](./bookmark): افزودن، ویرایش، وارد کردن، حذف و استخراج نشانک‌های PDF.
- [**فهرست مطالب**](./table-of-contents): ساخت صفحهٔ فهرست مطالب از نشانک‌های PDF.
- [**شماره‌گذاری صفحات**](./page-numbers): درج شمارهٔ صفحه در سند.
- [**افزودن برچسب صفحه**](./add-page-labels): اعمال برچسب‌های صفحهٔ PDF با اعداد رومی، پیشوندها و شروع دلخواه.
- [**شماره‌گذاری Bates**](./bates-numbering): افزودن شماره‌های پیاپی Bates در یک یا چند فایل PDF.
- [**افزودن واترمارک**](./add-watermark): درج متن یا تصویر روی صفحات PDF.
- [**سرصفحه و پاصفحه**](./header-footer): افزودن متن به بالا و پایین صفحات.
- [**وارونه‌سازی رنگ‌ها**](./invert-colors): ساخت نسخهٔ حالت تیرهٔ PDF.
- [**جلوهٔ اسکنر**](./scanner-effect): PDF را شبیه یک سند اسکن‌شده کنید.
- [**تنظیم رنگ‌ها**](./adjust-colors): تنظیم دقیق روشنایی، کنتراست، اشباع و موارد دیگر.
- [**رنگ پس‌زمینه**](./background-color): تغییر رنگ پس‌زمینهٔ PDF.
- [**تغییر رنگ متن**](./text-color): تغییر رنگ متن در PDF.
- [**امضای PDF**](./sign-pdf): امضای خود را بکشید، تایپ کنید یا بارگذاری کنید.
- [**افزودن مهر**](./add-stamps): افزودن مهرهای تصویری به PDF با نوار ابزار حاشیه‌نویسی.
- [**حذف حاشیه‌نویسی‌ها**](./remove-annotations): حذف نظرات، هایلایت‌ها و پیوندها.
- [**برش PDF**](./crop-pdf): کوتاه کردن حاشیه‌های همهٔ صفحات PDF.
- [**پرکنندهٔ فرم PDF**](./form-filler): پر کردن فرم‌ها مستقیماً در مرورگر. از فرم‌های XFA هم پشتیبانی می‌کند.
- [**ساخت فرم PDF**](./form-creator): ساخت فرم‌های PDF قابل پر کردن با فیلدهای متنی کشیدنی و رهاکردنی.
- [**حذف صفحات خالی**](./remove-blank-pages): شناسایی و حذف خودکار صفحات خالی.
</div>
---
## تبدیل به PDF
تصاویر، اسناد، کتاب‌های الکترونیکی و دیگر قالب‌های فایل را به PDF تبدیل کنید.
<div class="tool-grid">
- [**تصاویر به PDF**](./image-to-pdf): تبدیل JPG، PNG، BMP، GIF، TIFF، SVG، HEIC، WebP و موارد دیگر به PDF.
- [**JPG به PDF**](./jpg-to-pdf): ساخت PDF از یک یا چند تصویر JPG.
- [**PNG به PDF**](./png-to-pdf): ساخت PDF از یک یا چند تصویر PNG.
- [**WebP به PDF**](./webp-to-pdf): ساخت PDF از یک یا چند تصویر WebP.
- [**SVG به PDF**](./svg-to-pdf): ساخت PDF از یک یا چند تصویر SVG.
- [**BMP به PDF**](./bmp-to-pdf): ساخت PDF از یک یا چند تصویر BMP.
- [**HEIC به PDF**](./heic-to-pdf): ساخت PDF از یک یا چند تصویر HEIC.
- [**TIFF به PDF**](./tiff-to-pdf): ساخت PDF از یک یا چند تصویر TIFF.
- [**متن به PDF**](./txt-to-pdf): تبدیل یک فایل متنی ساده به PDF.
- [**Markdown به PDF**](./markdown-to-pdf): تبدیل Markdown به PDF با پیش‌نمایش زنده و برجسته‌سازی نحو.
- [**JSON به PDF**](./json-to-pdf): تبدیل فایل‌های JSON به قالب PDF.
- [**ODT به PDF**](./odt-to-pdf): تبدیل فایل‌های ODT (OpenDocument Text) به PDF.
- [**CSV به PDF**](./csv-to-pdf): تبدیل صفحه‌گسترده‌های CSV به PDF.
- [**RTF به PDF**](./rtf-to-pdf): تبدیل اسناد RTF (Rich Text Format) به PDF.
- [**Word به PDF**](./word-to-pdf): تبدیل اسناد Word (DOCX، DOC، ODT) به PDF.
- [**Excel به PDF**](./excel-to-pdf): تبدیل صفحه‌گسترده‌های Excel (XLSX، XLS، ODS) به PDF.
- [**PowerPoint به PDF**](./powerpoint-to-pdf): تبدیل ارائه‌های PowerPoint (PPTX، PPT، ODP) به PDF.
- [**XPS به PDF**](./xps-to-pdf): تبدیل اسناد XPS/OXPS به PDF.
- [**MOBI به PDF**](./mobi-to-pdf): تبدیل کتاب‌های الکترونیکی MOBI به PDF.
- [**EPUB به PDF**](./epub-to-pdf): تبدیل کتاب‌های الکترونیکی EPUB به PDF.
- [**FB2 به PDF**](./fb2-to-pdf): تبدیل کتاب‌های الکترونیکی FictionBook (FB2) به PDF.
- [**CBZ به PDF**](./cbz-to-pdf): تبدیل بایگانی‌های کمیک (CBZ/CBR) به PDF.
- [**WPD به PDF**](./wpd-to-pdf): تبدیل اسناد WordPerfect (WPD) به PDF.
- [**WPS به PDF**](./wps-to-pdf): تبدیل اسناد WPS Office به PDF.
- [**XML به PDF**](./xml-to-pdf): تبدیل اسناد XML به PDF.
- [**ODG به PDF**](./odg-to-pdf): تبدیل OpenDocument Graphics (ODG) به PDF.
- [**ODS به PDF**](./ods-to-pdf): تبدیل OpenDocument Spreadsheet (ODS) به PDF.
- [**ODP به PDF**](./odp-to-pdf): تبدیل OpenDocument Presentation (ODP) به PDF.
- [**PUB به PDF**](./pub-to-pdf): تبدیل Microsoft Publisher (PUB) به PDF.
- [**VSD به PDF**](./vsd-to-pdf): تبدیل Microsoft Visio (VSD، VSDX) به PDF.
- [**PSD به PDF**](./psd-to-pdf): تبدیل فایل‌های Adobe Photoshop (PSD) به PDF.
- [**ایمیل به PDF**](./email-to-pdf): تبدیل فایل‌های ایمیل (EML، MSG) به قالب PDF.
</div>
---
## تبدیل از PDF
محتوای PDF را به تصاویر، اسناد و قالب‌های داده استخراج کنید.
<div class="tool-grid">
- [**PDF به JPG**](./pdf-to-jpg): تبدیل هر صفحهٔ PDF به یک تصویر JPG.
- [**PDF به PNG**](./pdf-to-png): تبدیل هر صفحهٔ PDF به یک تصویر PNG.
- [**PDF به WebP**](./pdf-to-webp): تبدیل هر صفحهٔ PDF به یک تصویر WebP.
- [**PDF به BMP**](./pdf-to-bmp): تبدیل هر صفحهٔ PDF به یک تصویر BMP.
- [**PDF به TIFF**](./pdf-to-tiff): تبدیل هر صفحهٔ PDF به یک تصویر TIFF.
- [**PDF به CBZ**](./pdf-to-cbz): تبدیل PDF به CBZ (Comic Book Archive) برای کمیک‌خوان‌ها و Calibre.
- [**PDF به SVG**](./pdf-to-svg): تبدیل هر صفحهٔ PDF به یک گرافیک برداری مقیاس‌پذیر.
- [**PDF به CSV**](./pdf-to-csv): استخراج جدول‌ها از PDF و تبدیل به قالب CSV.
- [**PDF به Excel**](./pdf-to-excel): استخراج جدول‌ها از PDF و تبدیل به Excel (XLSX).
- [**PDF به خاکستری**](./pdf-to-greyscale): تبدیل همهٔ رنگ‌ها به سیاه و سفید.
- [**PDF به JSON**](./pdf-to-json): تبدیل فایل‌های PDF به قالب JSON.
- [**PDF به Word**](./pdf-to-word): تبدیل فایل‌های PDF به اسناد Word قابل ویرایش.
- [**استخراج تصاویر**](./extract-images): استخراج همهٔ تصاویر جاسازی‌شده از فایل‌های PDF.
- [**PDF به Markdown**](./pdf-to-markdown): تبدیل متن و جدول‌های PDF به قالب Markdown.
- [**آماده‌سازی PDF برای هوش مصنوعی**](./prepare-pdf-for-ai): استخراج محتوای PDF به‌صورت JSON برای LlamaIndex در فرایندهای RAG/LLM.
- [**PDF به متن**](./pdf-to-text): استخراج متن از فایل‌های PDF و ذخیره به‌صورت متن ساده.
- [**استخراج جدول‌های PDF**](./extract-tables): استخراج جدول‌ها از PDF به‌صورت CSV، JSON یا Markdown.
</div>
---
## سازماندهی و مدیریت
صفحات و فایل‌های PDF خود را بازچینی، ترکیب، تقسیم و مدیریت کنید.
<div class="tool-grid">
- [**سازندهٔ گردش کار PDF**](./pdf-workflow): ساخت فرایندهای سفارشی پردازش PDF با یک ویرایشگر گرهٔ بصری.
- [**ابزار چندکارهٔ PDF**](./pdf-multi-tool): ویرایشگر کامل PDF با مدیریت صفحات.
- [**OCR روی PDF**](./ocr-pdf): PDF را قابل جستجو و کپی کنید.
- [**ادغام PDF**](./merge-pdf): ترکیب چند PDF در یک فایل.
- [**ادغام یک‌درمیان صفحات**](./alternate-merge): ادغام PDFها با یک‌درمیان کردن صفحات هر PDF.
- [**تلفیق دورو**](./duplex-collate): مرتب‌سازی بلوک‌های اسکن رو و پشت به ترتیب صحیح صفحات.
- [**تکثیر و سازماندهی**](./organize-pdf): تکثیر، مرتب‌سازی و حذف صفحات.
- [**افزودن پیوست**](./add-attachments): جاسازی یک یا چند فایل در PDF.
- [**استخراج پیوست‌ها**](./extract-attachments): استخراج همهٔ فایل‌های جاسازی‌شده از PDF(ها) به‌صورت ZIP.
- [**ویرایش پیوست‌ها**](./edit-attachments): مشاهده یا حذف پیوست‌های PDF.
- [**لایه‌های OCG در PDF**](./pdf-layers): مشاهده، روشن و خاموش کردن، افزودن و حذف لایه‌های OCG در PDF.
- [**تقسیم PDF**](./split-pdf): استخراج یک بازه از صفحات در یک PDF جدید.
- [**تقسیم صفحات**](./divide-pages): تقسیم صفحات به‌صورت افقی یا عمودی.
- [**استخراج صفحات**](./extract-pages): ذخیرهٔ صفحات انتخاب‌شده به‌صورت فایل‌های جدید.
- [**حذف صفحات**](./delete-pages): حذف صفحات خاص از سند.
- [**افزودن صفحهٔ خالی**](./add-blank-page): درج یک صفحهٔ خالی در هر جای PDF.
- [**وارونه‌سازی ترتیب صفحات**](./reverse-pages): وارونه کردن ترتیب همهٔ صفحات سند.
- [**چرخاندن PDF**](./rotate-pdf): چرخاندن صفحات با گام‌های 90 درجه.
- [**چرخاندن با زاویهٔ دلخواه**](./rotate-custom): چرخاندن صفحات با هر زاویهٔ دلخواه.
- [**N-Up کردن PDF**](./n-up-pdf): قرار دادن چند صفحه روی یک برگه.
- [**دفترچهٔ PDF**](./pdf-booklet): بازچینی صفحات برای چاپ دورو به‌صورت دفترچه.
- [**ترکیب در یک صفحه**](./combine-single-page): به هم دوختن همهٔ صفحات در یک صفحهٔ پیوسته.
- [**مشاهدهٔ فراداده**](./view-metadata): بررسی ویژگی‌های پنهان PDF.
- [**ویرایش فراداده**](./edit-metadata): تغییر نویسنده، عنوان و ویژگی‌های دیگر.
- [**PDFها به ZIP**](./pdf-to-zip): بسته‌بندی چند فایل PDF در یک بایگانی ZIP.
- [**مقایسهٔ PDFها**](./compare-pdfs): مقایسهٔ دو PDF در کنار هم.
- [**پوستری‌کردن PDF**](./posterize-pdf): تقسیم یک صفحهٔ بزرگ به چند صفحهٔ کوچک‌تر.
</div>
---
## بهینه‌سازی و ترمیم
PDFهای خود را برای عملکرد و سازگاری بهتر فشرده، اصلاح و بهینه کنید.
<div class="tool-grid">
- [**فشرده‌سازی PDF**](./compress-pdf): کاهش حجم فایل PDF.
- [**PDF به PDF/A**](./pdf-to-pdfa): تبدیل PDF به PDF/A برای بایگانی بلندمدت.
- [**اصلاح اندازهٔ صفحه**](./fix-page-size): یکسان‌سازی اندازهٔ همهٔ صفحات.
- [**خطی‌سازی PDF**](./linearize-pdf): بهینه‌سازی PDF برای مشاهدهٔ سریع در وب.
- [**ابعاد صفحه**](./page-dimensions): تحلیل اندازه، جهت و واحدهای صفحه.
- [**حذف محدودیت‌ها**](./remove-restrictions): حذف محافظت با گذرواژه و محدودیت‌های امنیتی.
- [**ترمیم PDF**](./repair-pdf): بازیابی داده از فایل‌های PDF خراب یا آسیب‌دیده.
- [**رستر کردن PDF**](./rasterize-pdf): تبدیل PDF به PDF مبتنی بر تصویر. لایه‌ها را مسطح و متن قابل انتخاب را حذف می‌کند.
- [**صاف‌کردن PDF**](./deskew-pdf): صاف کردن خودکار صفحات اسکن‌شدهٔ کج با OpenCV.
- [**تبدیل قلم به خطوط برداری**](./font-to-outline): تبدیل همهٔ قلم‌ها به خطوط برداری برای نمایش یکسان.
</div>
---
## امنیت PDF
از اسناد PDF خود محافظت کنید، آن‌ها را رمزگذاری کنید و دسترسی به آن‌ها را کنترل کنید.
<div class="tool-grid">
- [**رمزگذاری PDF**](./protect-pdf): قفل کردن PDF با افزودن گذرواژه.
- [**پاک‌سازی PDF**](./sanitize-pdf): حذف فراداده، حاشیه‌نویسی‌ها، اسکریپت‌ها و موارد دیگر.
- [**رمزگشایی PDF**](./unlock-pdf): باز کردن قفل PDF با حذف محافظت گذرواژه.
- [**مسطح‌سازی PDF**](./flatten-pdf): غیرقابل‌ویرایش کردن فیلدهای فرم و حاشیه‌نویسی‌ها.
- [**حذف فراداده**](./remove-metadata): حذف داده‌های پنهان از PDF.
- [**تغییر مجوزها**](./change-permissions): تعیین یا تغییر مجوزهای کاربر روی PDF.
- [**امضای دیجیتال PDF**](./digital-sign-pdf): افزودن امضای دیجیتال رمزنگاری‌شده با گواهی‌های X.509.
- [**اعتبارسنجی امضای PDF**](./validate-signature-pdf): بررسی امضاهای دیجیتال و مشاهدهٔ جزئیات گواهی.
</div>
+42
View File
@@ -0,0 +1,42 @@
---
title: وارونه‌سازی رنگ‌ها
description: همهٔ رنگ‌های PDF خود را وارونه کنید تا نسخهٔ حالت تیرهٔ هر سندی را بسازید.
---
# وارونه‌سازی رنگ‌ها
همهٔ رنگ‌های PDF خود را به رنگ معکوسشان تبدیل کنید. پس‌زمینه‌های سفید سیاه می‌شوند، متن سیاه سفید می‌شود و همهٔ رنگ‌های دیگر به مقادیر مکملشان تغییر می‌کنند. این سریع‌ترین راه برای ساخت نسخهٔ «حالت تیره» از هر PDF است.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. برای پردازش روی **وارونه‌سازی رنگ‌ها** کلیک کنید.
3. PDF وارونه‌شده به‌طور خودکار دانلود می‌شود.
هیچ تنظیمات اضافه‌ای وجود ندارد. ابزار هر صفحه را به‌صورت تصویر رندر می‌کند، رنگ همهٔ پیکسل‌ها را وارونه می‌کند و نتیجه را در یک PDF جدید سرهم می‌کند.
## ویژگی‌ها
- وارونه‌سازی رنگ همهٔ صفحات با یک کلیک
- پردازش همهٔ صفحات سند
- حفظ ابعاد و چیدمان اصلی صفحات
- کار با هر PDF صرف‌نظر از نوع محتوا (متن، تصویر، ترکیبی)
## موارد استفاده
- ساخت نسخه‌های حالت تیره از کتاب‌های درسی یا راهنماها برای مطالعهٔ راحت در شب
- آماده‌سازی نسخه‌های پرکنتراست اسناد برای دسترس‌پذیری
- وارونه کردن اسناد اسکن‌شده‌ای که با نوردهی نادرست ثبت شده‌اند
- تولید نسخه‌های نگاتیو از PDFهای پرتصویر برای تحلیل بصری
## نکات
- چون ابزار برای اعمال جلوه صفحات را رستر می‌کند، خروجی مبتنی بر تصویر است. متن دیگر قابل انتخاب یا جستجو نخواهد بود. اگر پس از وارونه‌سازی به متن قابل جستجو نیاز دارید، خروجی را با یک ابزار OCR پردازش کنید.
- برای تنظیمات دقیق‌تر رنگ (روشنایی، کنتراست، اشباع)، به‌جای آن از ابزار [تنظیم رنگ‌ها](./adjust-colors) استفاده کنید.
- پردازش PDFهای بزرگ با صفحات زیاد ممکن است بیشتر طول بکشد، چون هر صفحه جداگانه رندر و وارونه می‌شود.
## ابزارهای مرتبط
- [تنظیم رنگ‌ها](./adjust-colors)
- [رنگ پس‌زمینه](./background-color)
- [جلوهٔ اسکنر](./scanner-effect)
+48
View File
@@ -0,0 +1,48 @@
---
title: JPG به PDF
description: یک یا چند تصویر JPG، JPEG و JPEG 2000 را مستقیماً در مرورگر خود به یک فایل PDF تبدیل کنید.
---
# JPG به PDF
تصاویر JPG را به یک PDF تمیز تبدیل کنید. یک فایل بارگذاری کنید یا چند JPG را با هم پردازش کنید؛ هر تصویر به یک صفحهٔ تمام‌اندازه در سند خروجی تبدیل می‌شود.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :-------- | :-------------- |
| JPEG | `.jpg`, `.jpeg` |
| JPEG 2000 | `.jp2`, `.jpx` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های JPG خود را بکشید و رها کنید. انتخاب چندگانه پشتیبانی می‌شود.
2. فایل‌های بارگذاری‌شده را بررسی کنید. با نماد سطل زباله فایل‌ها را تک‌تک حذف کنید یا برای افزودن به فهرست روی **افزودن فایل‌های بیشتر** کلیک کنید.
3. یک سطح **کیفیت PDF** انتخاب کنید.
4. روی **تبدیل به PDF** کلیک کنید. ابزار تصاویر را مطابق تنظیم کیفیت شما فشرده می‌کند، با موتور PyMuPDF تبدیل می‌کند و `from_jpgs.pdf` را دانلود می‌کند.
## گزینه‌ها
**کیفیت PDF** فشرده‌سازی اعمال‌شده روی هر تصویر پیش از جاسازی در PDF را تنظیم می‌کند:
- **کیفیت بالا**: حداکثر جزئیات را حفظ می‌کند. برای عکاسی یا چاپ استفاده کنید.
- **کیفیت متوسط** (پیش‌فرض): تعادلی مناسب بین وضوح و حجم فایل.
- **کیفیت پایین**: فشرده‌سازی شدید برای کوچک‌ترین خروجی.
## موارد استفاده
- تبدیل اسناد اسکن‌شدهٔ ذخیره‌شده به‌صورت JPG به یک PDF واحد برای ارسال
- بسته‌بندی عکس‌های محصول در یک کاتالوگ برای مشتریان
- تبدیل تصاویر پزشکی یا ماهواره‌ای JPEG 2000 به یک PDF قابل حمل
- ساخت آلبوم عکس قابل چاپ از خروجی‌های دوربین
## نکات
- فایل‌های JPEG 2000 (`.jp2`، `.jpx`) به‌طور کامل پشتیبانی می‌شوند، نه فقط JPEG استاندارد. این برای تصویربرداری پزشکی و داده‌های مکانی مفید است.
- اگر JPGهای شما از دوربین گوشی هستند، کیفیت متوسط معمولاً فایلی 40 تا 60 درصد کوچک‌تر از کیفیت بالا تولید می‌کند، بدون تفاوت قابل مشاهده روی صفحه‌نمایش.
## ابزارهای مرتبط
- [تصاویر به PDF](./image-to-pdf)
- [PNG به PDF](./png-to-pdf)
- [WebP به PDF](./webp-to-pdf)
+53
View File
@@ -0,0 +1,53 @@
---
title: JSON به PDF
description: فایل‌های PDF را از قالب JSON BentoPDF بازسازی کنید. خروجی‌های JSON را به اسناد PDF اصلی‌شان برگردانید.
---
# JSON به PDF
اسناد PDF را از فایل‌های JSON که پیش‌تر با ابزار **PDF به JSON** در BentoPDF ساخته شده‌اند بازسازی کنید. این یک ابزار تبدیل رفت‌وبرگشتی است: نمایش ساختاریافتهٔ JSON یک PDF را می‌گیرد و سند اصلی را دوباره می‌سازد.
::: warning
این ابزار فقط فایل‌های JSON تولیدشده با مبدل PDF به JSON در BentoPDF را می‌پذیرد. فایل‌های JSON معمولی از APIها، پایگاه‌های داده یا ابزارهای دیگر پشتیبانی نمی‌شوند.
:::
## قالب‌های پشتیبانی‌شده
| ورودی | توضیحات |
| :------ | :------------------------------------------------------------- |
| `.json` | فایل‌های JSON خروجی‌گرفته‌شده با ابزار PDF به JSON در BentoPDF |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا یک یا چند فایل JSON را بکشید و رها کنید.
2. فهرست فایل‌ها هر فایل انتخاب‌شده را با حجمش نشان می‌دهد.
3. روی **تبدیل به PDF** کلیک کنید. ابزار همهٔ فایل‌ها را با یک Web Worker و موتور CPDF پردازش می‌کند.
4. خروجی با نام `jsons-to-pdf.zip` دانلود می‌شود که به‌ازای هر فایل JSON ورودی یک PDF دارد.
تبدیل در یک Web Worker پس‌زمینه اجرا می‌شود، بنابراین رابط کاربری حتی با فایل‌های بزرگ هم پاسخگو می‌ماند.
## گزینه‌ها
این ابزار گزینهٔ قابل تنظیمی ندارد. ساختار JSON به‌طور کامل PDF خروجی را تعیین می‌کند.
## خروجی
هنگام تبدیل چند فایل JSON، نتایج به‌صورت بایگانی ZIP ارائه می‌شوند. نام هر PDF از فایل JSON منبعش گرفته می‌شود (مثلاً `report.json` به `report.pdf` تبدیل می‌شود).
## موارد استفاده
- بازیابی PDFها از یک پشتیبان یا فرایند بایگانی مبتنی بر JSON
- عبور رفت‌وبرگشتی یک PDF از JSON برای بررسی و سپس بازگرداندن به PDF
- بازسازی اسناد پس از تغییرات برنامه‌نویسی‌شده در ساختار JSON
- اطمینان از اینکه خروجی PDF به JSON همهٔ محتوای سند را ثبت کرده است، با تبدیل دوبارهٔ آن
## نکات
- اگر لازم است دادهٔ JSON دلخواه (مانند پاسخ‌های API یا فایل‌های پیکربندی) را به یک PDF قالب‌بندی‌شده تبدیل کنید، ابزار [متن به PDF](./txt-to-pdf) مناسب‌تر است. JSON را به‌صورت متن جای‌گذاری کنید تا با قالب‌بندی مناسب رندر شود.
- برای کار این ابزار، موتور CPDF WebAssembly باید در دسترس باشد. نمونه‌های خودمیزبان باید فایل‌های CPDF WASM را پیکربندی کنند.
## ابزارهای مرتبط
- [متن به PDF](./txt-to-pdf)
- [Markdown به PDF](./markdown-to-pdf)
- [CSV به PDF](./csv-to-pdf)
+49
View File
@@ -0,0 +1,49 @@
---
title: خطی‌سازی PDF
description: فایل‌های PDF را برای مشاهدهٔ سریع در وب با بارگیری تدریجی بهینه کنید. با نام بهینه‌سازی «Fast Web View» نیز شناخته می‌شود.
---
# خطی‌سازی PDF
خطی‌سازی ساختار PDF را طوری بازآرایی می‌کند که صفحهٔ اول پیش از دانلود کامل فایل نمایش داده شود. Adobe این را «Fast Web View» می‌نامد. اگر PDFها را روی یک وب‌سایت میزبانی می‌کنید یا از طریق یک پورتال اسناد ارائه می‌دهید، خطی‌سازی باز شدن آن‌ها را به‌طور محسوسی سریع‌تر می‌کند.
## نحوهٔ کار
1. یک یا چند فایل PDF بارگذاری کنید.
2. روی **خطی‌سازی PDF(ها)** کلیک کنید.
3. نتایج را به‌صورت یک بایگانی ZIP شامل همهٔ فایل‌های خطی‌شده دانلود کنید.
هیچ تنظیماتی برای پیکربندی وجود ندارد. این ابزار از پرچم `--linearize` در QPDF استفاده می‌کند که ساختار داخلی PDF را بدون تغییر محتوای بصری آن بازآرایی می‌کند.
## خطی‌سازی چه می‌کند
- اشیای PDF را طوری مرتب می‌کند که داده‌های صفحهٔ اول در ابتدای فایل قرار گیرند
- یک دیکشنری خطی‌سازی و جدول‌های راهنما اضافه می‌کند تا نمایشگرها بدانند هر صفحه کجاست
- درخواست‌های بازهٔ بایت را ممکن می‌کند: مرورگر می‌تواند فقط صفحهٔ اول را بدون دانلود کل فایل دریافت کند
- جدول ارجاع متقابل را برای دسترسی تصادفی کارآمد مرتب می‌کند
## ویژگی‌ها
- پردازش گروهی چند PDF در یک عملیات
- خروجی همهٔ محتوا، قلم‌ها، تصاویر و عناصر تعاملی را حفظ می‌کند
- استفاده از QPDF (WebAssembly) برای خطی‌سازی قابل اعتماد و منطبق با استانداردها
- نتایج برای دانلود آسان در یک ZIP بسته‌بندی می‌شوند
## موارد استفاده
- میزبانی گزارش‌های PDF روی وب‌سایتی که کاربران انتظار نمایش فوری صفحه را دارند
- جاسازی PDF در برنامه‌های وب با نمایشگرهای درون‌مرورگری
- انتشار کاتالوگ‌ها یا راهنماهای PDF که از طریق اتصال‌های کند موبایل دیده می‌شوند
- آماده‌سازی اسناد برای شبکه‌های تحویل محتوا (CDN) که از ارائهٔ بازهٔ بایت پشتیبانی می‌کنند
## نکات
- پس از اتمام همهٔ ویرایش‌های دیگر خطی‌سازی کنید. هر تغییر بعدی (ادغام، افزودن صفحه) خطی‌سازی را از بین می‌برد.
- برای کوچک‌ترین و سریع‌ترین PDFهای ممکن، آن را با فشرده‌سازی PDF ترکیب کنید.
- خطی‌سازی کمی به حجم فایل اضافه می‌کند (معمولاً کمتر از 1٪).
## ابزارهای مرتبط
- [فشرده‌سازی PDF](./compress-pdf): کاهش حجم فایل پیش از خطی‌سازی
- [ترمیم PDF](./repair-pdf): رفع مشکلات ساختاری که مانع خطی‌سازی می‌شوند
- [حذف فراداده](./remove-metadata): حذف فراداده پیش از انتشار آنلاین
+59
View File
@@ -0,0 +1,59 @@
---
title: Markdown به PDF
description: Markdown بنویسید یا جای‌گذاری کنید و آن را با پیش‌نمایش زنده و برجسته‌سازی نحو به یک PDF با قالب‌بندی حرفه‌ای خروجی بگیرید.
---
# Markdown به PDF
یک ویرایشگر کامل Markdown با پیش‌نمایش زنده و خروجی PDF با یک کلیک. از ابتدا بنویسید، یک فایل `.md` موجود بارگذاری کنید یا محتوا را از کلیپ‌بورد جای‌گذاری کنید. ویرایشگر Markdown شما را به‌صورت بلادرنگ رندر می‌کند و با موتور چاپ داخلی مرورگر یک PDF سبک‌دار خروجی می‌دهد.
## قالب‌های پشتیبانی‌شده
| ورودی | توضیحات |
| :------------- | :---------------------------- |
| فایل‌های `.md` | بارگذاری با دکمهٔ Upload |
| ورودی مستقیم | تایپ یا جای‌گذاری در ویرایشگر |
## نحوهٔ کار
1. ابزار Markdown به PDF را باز کنید. ویرایشگر با نمای دوقسمتی بارگیری می‌شود: منبع Markdown در سمت چپ و پیش‌نمایش رندرشده در سمت راست.
2. Markdown خود را بنویسید، جای‌گذاری کنید یا برای بارگیری یک فایل `.md` روی **بارگذاری** کلیک کنید.
3. با لغزندهٔ پوسته در نوار ابزار بین پوسته‌های روشن و تیره جابه‌جا شوید.
4. برای تولید PDF از طریق پنجرهٔ چاپ مرورگر روی **برون‌ریزی PDF** کلیک کنید (یا `Ctrl/Cmd + S` را بزنید).
## ویژگی‌ها
ویرایشگر مجموعهٔ گسترده‌ای از قابلیت‌های Markdown فراتر از موارد پایه را پشتیبانی می‌کند:
- **Markdown استاندارد**: عنوان‌ها، پررنگ، کج، پیوندها، تصاویر، فهرست‌ها، نقل‌قول‌ها، خطوط افقی
- **بلوک‌های کد** با برجسته‌سازی نحو برای بیش از 15 زبان (JavaScript، TypeScript، Python، Go، Rust، SQL، Java، C#، C++، YAML، Bash و غیره)
- **نمودارهای Mermaid**: فلوچارت‌ها، نمودارهای توالی، نمودارهای ER و دیگر انواع نمودار Mermaid مستقیماً در پیش‌نمایش رندر می‌شوند
- **جدول‌ها** با نحو استاندارد جدول Markdown
- **فهرست کارها** با کادرهای انتخاب
- **پانویس‌ها**، **زیرنویس**، **بالانویس**
- **فهرست‌های تعریف**، **اختصارها**
- پشتیبانی از **ایموجی** (`:smile:` به‌صورت ایموجی رندر می‌شود)
- **هایلایت‌ها** (`==marked text==`) و **درج‌ها** (`++inserted text++`)
- **پیوند خودکار URLها**: URLهای ساده به پیوندهای قابل کلیک تبدیل می‌شوند
- تولید **فهرست مطالب**
- **پیوندهای لنگر** روی عنوان‌ها
## موارد استفاده
- نوشتن مستندات پروژه و خروجی گرفتن یک PDF شسته‌رفته برای ذی‌نفعان
- ساخت گزارش‌های فنی با نمونه کد و نمودارهای معماری Mermaid
- تبدیل README یک مخزن GitHub به PDF برای استفادهٔ آفلاین یا چاپ
- پیش‌نویس یک پیشنهاد یا مشخصات فنی با فهرست کارها و جدول‌ها
- تولید جزوه‌ای سبک‌دار از یادداشت‌های درسی نوشته‌شده با Markdown
## نکات
- خروجی PDF از قابلیت چاپ به PDF مرورگر استفاده می‌کند. در Chrome می‌توانید پیش از ذخیره، حاشیه‌ها و مقیاس را در پنجرهٔ چاپ تنظیم کنید.
- نمودارهای Mermaid در پیش‌نمایش رندر می‌شوند اما ممکن است در نخستین استفاده کمی زمان برای راه‌اندازی لازم داشته باشند.
- از `Ctrl/Cmd + S` به‌عنوان میان‌بر صفحه‌کلید برای خروجی گرفتن بدون رفتن سراغ دکمه استفاده کنید.
## ابزارهای مرتبط
- [متن به PDF](./txt-to-pdf)
- [Word به PDF](./word-to-pdf)
- [JSON به PDF](./json-to-pdf)
+54
View File
@@ -0,0 +1,54 @@
---
title: ادغام PDF
description: چند فایل PDF را با مرتب‌سازی کشیدن و رها کردن و کنترل در سطح صفحه در یک سند ترکیب کنید.
---
# ادغام PDF
چند فایل PDF را در یک سند واحد ترکیب کنید. می‌توانید کل فایل‌ها را با ترتیب مشخص ادغام کنید، یا برای کنترل دقیق روی تک‌تک صفحات همهٔ PDFهای بارگذاری‌شده به حالت صفحه بروید.
## نحوهٔ کار
1. دو یا چند فایل PDF را با کلیک روی ناحیهٔ رها کردن یا کشیدن آن‌ها بارگذاری کنید.
2. با کلید بالای صفحه بین **حالت فایل** و **حالت صفحه** انتخاب کنید.
3. در حالت فایل، فایل‌ها را برای مرتب‌سازی بکشید و در صورت تمایل برای هر فایل بازهٔ صفحات (مثلاً `1-3, 5`) تعیین کنید. برای شامل کردن همهٔ صفحات، بازه را خالی بگذارید.
4. در حالت صفحه، تصاویر بندانگشتی صفحات را بکشید و رها کنید تا ترتیب دقیق صفحات را بسازید.
5. برای ترکیب همه در یک فایل روی **ادغام PDFها** کلیک کنید. PDF ادغام‌شده به‌طور خودکار دانلود می‌شود.
## ویژگی‌ها
- دو حالت ادغام: حالت فایل برای ترکیب سریع کل فایل‌ها و حالت صفحه برای کنترل تک‌تک صفحات
- مرتب‌سازی با کشیدن و رها کردن در هر دو حالت با انیمیشن‌های روان
- نحو بازهٔ صفحات (مثلاً `1-3, 5, 8-10`) به شما امکان می‌دهد صفحات را بدون رفتن به حالت صفحه گزینش کنید
- تصاویر بندانگشتی با بارگیری تنبل، رابط کاربری را حتی با اسناد بزرگ پاسخگو نگه می‌دارند
- بدون محدودیت در تعداد فایل‌ها یا تعداد کل صفحات
- کیفیت اصلی PDF بدون رمزگذاری مجدد حفظ می‌شود
## گزینه‌ها
| گزینه | توضیحات |
| --------------- | ---------------------------------------------------------------------------------------------- |
| **حالت فایل** | ادغام کل فایل‌ها با ترتیب دلخواه، با فیلتر اختیاری بازهٔ صفحات برای هر فایل |
| **حالت صفحه** | شبکه‌ای بصری از همهٔ صفحات همهٔ فایل‌ها؛ تصاویر بندانگشتی را بکشید تا ترتیب دقیق خود را بسازید |
| **ورودی صفحات** | فیلد متنی هر فایل که بازه‌هایی مانند `1-3, 5` را برای شامل کردن فقط صفحات خاص می‌پذیرد |
## موارد استفاده
- ترکیب PDFهای جداگانهٔ فصل‌ها در یک کتاب یا گزارش واحد
- ادغام نامهٔ همراه و رزومه در یک سند درخواست
- برداشتن صفحات خاص از چند سند منبع و گردآوری آن‌ها در یک فایل
- جمع کردن رسیدها یا فاکتورهای اسکن‌شده در یک PDF بایگانی
- ساخت جزوهٔ ارائه از اسلایدهای چند ارائهٔ مختلف
## نکات
- وقتی لازم است صفحات فایل‌های مختلف را در هم ببافید، به‌جای افزودن فایل‌ها پشت سر هم، از حالت صفحه استفاده کنید.
- پس از بارگذاری اولیه می‌توانید با دکمهٔ **افزودن فایل‌های بیشتر** فایل‌های دیگری اضافه کنید، بدون اینکه چیدمان فعلی از دست برود.
- شمارش بازه‌های صفحات از 1 شروع می‌شود، بنابراین `1` به صفحهٔ اول آن فایل اشاره دارد.
## ابزارهای مرتبط
- [تقسیم PDF](./split-pdf)
- [تکثیر و سازماندهی](./organize-pdf)
- [ادغام یک‌درمیان صفحات](./alternate-merge)
- [حذف صفحات](./delete-pages)
+43
View File
@@ -0,0 +1,43 @@
---
title: MOBI به PDF
description: فایل‌های کتاب الکترونیکی MOBI را مستقیماً در مرورگر خود به PDF تبدیل کنید. رایگان، خصوصی و بدون بارگذاری فایل.
---
# MOBI به PDF
کتاب‌های الکترونیکی MOBI آمازون Kindle را به اسناد PDF تبدیل کنید. فایل‌های MOBI به دستگاه‌ها و برنامه‌های Kindle وابسته‌اند و خواندنشان در جای دیگر دشوار است. تبدیل به PDF نسخه‌ای قابل حمل به شما می‌دهد که می‌توانید روی هر دستگاهی باز یا چاپ کنید.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :--- | :------ | :--------------------------------------- |
| MOBI | `.mobi` | قالب کتاب الکترونیکی Kindle (Mobipocket) |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا یک یا چند فایل MOBI را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های ناخواسته را با نماد سطل زباله حذف کنید یا با **افزودن فایل‌های بیشتر** کتاب‌های دیگری اضافه کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور PyMuPDF ساختار MOBI را تجزیه کرده و هر صفحه را به‌صورت محتوای PDF رندر می‌کند.
4. یک فایل به‌صورت PDF دانلود می‌شود. هنگام تبدیل چند فایل، یک بایگانی ZIP با نام `mobi-converted.zip` دریافت می‌کنید.
## گزینه‌ها
نیازی به تنظیمات اضافه نیست. تبدیل، محتوای متنی، قالب‌بندی و تصاویر جاسازی‌شدهٔ فایل MOBI اصلی را حفظ می‌کند.
## موارد استفاده
- خواندن محتوای خریداری‌شده از Kindle روی کتاب‌خوانی غیر از Kindle که فقط از PDF پشتیبانی می‌کند
- چاپ فصل‌هایی از یک کتاب الکترونیکی برای مطالعه یا یادداشت‌نویسی آفلاین
- بایگانی کتابخانهٔ الکترونیکی شخصی در قالبی همگانی
- اشتراک بخش‌هایی از کتاب با کسی که برنامهٔ Kindle را نصب نکرده است
## نکات
- فایل‌های MOBI دارای DRM قابل تبدیل نیستند. این ابزار فقط با فایل‌های MOBI بدون DRM کار می‌کند.
- کتاب‌های بزرگ با تصاویر جاسازی‌شدهٔ زیاد ممکن است چند ثانیه بیشتر طول بکشند، چون همه چیز در مرورگر انجام می‌شود.
## ابزارهای مرتبط
- [EPUB به PDF](./epub-to-pdf)
- [FB2 به PDF](./fb2-to-pdf)
- [CBZ به PDF](./cbz-to-pdf)
+54
View File
@@ -0,0 +1,54 @@
---
title: N-Up کردن PDF
description: چند صفحهٔ PDF را در یک چیدمان شبکه‌ای روی یک برگه قرار دهید تا چاپ فشرده‌تری داشته باشید.
---
# N-Up کردن PDF
چند صفحه را در یک چیدمان شبکه‌ای روی یک برگه قرار دهید. با جا دادن 2، 4، 6، 8، 9 یا 16 صفحه در هر برگه، تعداد صفحات چاپی کاهش می‌یابد. این ابزار مقیاس‌دهی، موقعیت‌یابی و پیکربندی اختیاری اندازهٔ صفحه را انجام می‌دهد.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. تعداد صفحات در هر برگه (مقدار «N») را انتخاب کنید: 2، 4، 6، 8، 9 یا 16.
3. اندازهٔ صفحهٔ خروجی (پیش‌فرض A4) و جهت را انتخاب کنید.
4. در صورت تمایل فاصله، رنگ کادر و رنگ پس‌زمینه را تنظیم کنید.
5. روی دکمهٔ پردازش کلیک کنید. ابزار هر صفحه را مقیاس می‌دهد و آن‌ها را روی برگه‌های جدید می‌چیند.
## ویژگی‌ها
- چیدمان‌های شبکه‌ای: 2-up، 4-up، 6-up، 8-up، 9-up و 16-up
- اندازه و جهت صفحهٔ خروجی قابل تنظیم
- فاصلهٔ اختیاری بین صفحات چیده‌شده
- تنظیمات رنگ پس‌زمینه و کادر
- حفظ نسبت ابعاد صفحات اصلی هنگام مقیاس‌دهی
## گزینه‌ها
| گزینه | توضیحات |
| -------------------- | ---------------------------------------------------------------------- |
| **صفحات در هر برگه** | تعداد صفحات اصلی که روی هر صفحهٔ خروجی جا می‌گیرند (2، 4، 6، 8، 9، 16) |
| **اندازهٔ صفحه** | اندازهٔ برگهٔ خروجی (A4، Letter، Legal و غیره) |
| **جهت** | عمودی یا افقی برای برگهٔ خروجی |
| **فاصله** | فاصله بر حسب پوینت بین صفحات چیده‌شده |
| **رنگ پس‌زمینه** | رنگ پرکنندهٔ پس‌زمینهٔ برگهٔ خروجی |
| **رنگ کادر** | رنگ کادرهای اطراف هر صفحهٔ چیده‌شده |
## موارد استفاده
- چاپ جزوه با 4 اسلاید در هر صفحه برای صرفه‌جویی در کاغذ
- ساخت برگه‌های مطالعه با چند صفحهٔ مرجع روی یک برگه
- تهیهٔ بایگانی فشردهٔ اسناد برای پرونده‌سازی
- تولید برگه‌های مرور کلی با تصاویر کوچک از یک سند طولانی
## نکات
- جهت افقی اغلب برای چیدمان‌های 2-up بهتر است، در حالی که جهت عمودی معمولاً برای 4-up و بالاتر بهترین است.
- افزایش فاصله خوانایی را بهتر می‌کند اما فضای در دسترس هر صفحهٔ چیده‌شده را کم می‌کند.
- برای عملیات معکوس (تقسیم یک صفحه به چند صفحه)، [پوستری‌کردن PDF](./posterize-pdf) را ببینید.
## ابزارهای مرتبط
- [پوستری‌کردن PDF](./posterize-pdf)
- [دفترچهٔ PDF](./pdf-booklet)
- [ترکیب در یک صفحه](./combine-single-page)
+54
View File
@@ -0,0 +1,54 @@
---
title: OCR روی PDF
description: PDFهای اسکن‌شده را با Tesseract OCR، با پشتیبانی چندزبانه و فیلتر نویسه‌ها، قابل جستجو و کپی کنید.
---
# OCR روی PDF
اسناد اسکن‌شده را به PDFهای قابل جستجو و کپی تبدیل کنید. این ابزار از Tesseract OCR برای تشخیص متن در تصاویر استفاده می‌کند و یک لایهٔ متنی نامرئی روی صفحات اصلی قرار می‌دهد؛ ظاهر بصری حفظ می‌شود و محتوا کاملاً قابل جستجو می‌شود.
## نحوهٔ کار
1. یک PDF اسکن‌شده یا مبتنی بر تصویر بارگذاری کنید.
2. یک یا چند زبان موجود در سند را از فهرست زبان‌های قابل جستجو انتخاب کنید.
3. در صورت تمایل تنظیمات پیشرفته (وضوح، دودویی‌سازی، فهرست مجاز) را تغییر دهید.
4. روی **شروع OCR** کلیک کنید و پیشرفت را در نوار پیشرفت بلادرنگ دنبال کنید.
5. پس از اتمام، متن استخراج‌شده را بررسی کنید و سپس PDF قابل جستجو یا یک فایل ساده `.txt` را دانلود کنید.
## ویژگی‌ها
- OCR چندزبانه با انتخابگر زبان قابل جستجو
- لایهٔ متنی نامرئی که ظاهر اصلی سند را حفظ می‌کند
- نوار پیشرفت بلادرنگ و خروجی گزارش در حین پردازش
- دانلود نتایج به‌صورت PDF قابل جستجو یا فایل متنی ساده
- کپی مستقیم متن استخراج‌شده در کلیپ‌بورد
- سه سطح وضوح برای ایجاد تعادل بین سرعت و دقت
## گزینه‌ها
| تنظیم | مقادیر | پیش‌فرض | هدف |
| --------------------------------- | --------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------- |
| **وضوح** | استاندارد (192 DPI)، بالا (288 DPI)، فوق‌العاده (384 DPI) | بالا | وضوح بالاتر دقت را روی متن ریز بهتر می‌کند اما زمان بیشتری می‌برد |
| **دودویی‌سازی تصویر** | روشن / خاموش | خاموش | با تبدیل به سیاه و سفید، کنتراست را برای اسکن‌های تمیز افزایش می‌دهد |
| **پیش‌تنظیم فهرست مجاز نویسه‌ها** | هیچ، حروف و اعداد، اعداد + ارز، فقط حروف، فقط اعداد، فاکتور، فرم‌ها، سفارشی | هیچ | نویسه‌های قابل تشخیص را محدود می‌کند تا دقت برای انواع خاص اسناد بهتر شود |
| **فهرست مجاز نویسه‌ها** | متن آزاد | خالی | مجموعهٔ نویسه‌های دستی وقتی پیش‌تنظیم روی سفارشی است |
## موارد استفاده
- قابل جستجو کردن قراردادها و فاکتورهای اسکن‌شده تا بتوانید با Ctrl+F در آن‌ها جستجو کنید
- استخراج متن از اسناد عکاسی‌شده یا سوابق کاغذی قدیمی
- پردازش رسیدها با پیش‌تنظیم فاکتور برای ثبت دقیق مبالغ دلاری و تاریخ‌ها
- ساخت PDFهای دسترس‌پذیر از اسکن‌های صرفاً تصویری برای الزامات انطباق
- استخراج گروهی محتوای متنی از کتاب‌ها یا راهنماهای اسکن‌شده
## نکات
- اگر سند شما محتوای چندزبانه دارد (مثلاً عنوان‌های انگلیسی با متن اصلی ژاپنی)، چند زبان انتخاب کنید.
- برای اسنادی با متن کم‌رنگ یا کم‌کنتراست از گزینهٔ دودویی‌سازی استفاده کنید؛ این گزینه می‌تواند دقت تشخیص را به‌طور چشمگیری بهتر کند.
- پیش‌تنظیم‌های فهرست مجاز فاکتور و فرم‌ها با نادیده گرفتن شکل‌های نویسهٔ نامرتبط، تشخیص‌های نادرست را در اسناد ساختاریافته به‌شدت کاهش می‌دهند.
## ابزارهای مرتبط
- [استخراج جدول‌های PDF](./extract-tables)
- [ادغام PDF](./merge-pdf)
- [فشرده‌سازی PDF](./compress-pdf)
+43
View File
@@ -0,0 +1,43 @@
---
title: ODG به PDF
description: فایل‌های LibreOffice Draw (ODG) را در مرورگر خود به PDF تبدیل کنید. رایگان، بدون بارگذاری و کاملاً خصوصی.
---
# ODG به PDF
فایل‌های OpenDocument Graphics را به PDF تبدیل کنید. ODG قالب بومی LibreOffice Draw است و برای نمودارها، فلوچارت‌ها و تصاویر برداری استفاده می‌شود. تبدیل به PDF اشتراک، چاپ و جاسازی این طرح‌ها در اسناد دیگر را آسان می‌کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :-------------------- | :----- | :------------------------------------------ |
| OpenDocument Graphics | `.odg` | فایل‌های LibreOffice Draw / OpenOffice Draw |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های ODG خود را بکشید و رها کنید. می‌توانید چند فایل را همزمان اضافه کنید.
2. فهرست فایل‌ها را بررسی کنید. موارد را با نماد سطل زباله تک‌تک حذف کنید یا برای افزودن طرح‌های بیشتر روی **افزودن فایل‌های بیشتر** کلیک کنید.
3. روی **تبدیل به PDF** کلیک کنید. یک موتور مبتنی بر LibreOffice در مرورگر بارگیری می‌شود و هر فایل ODG را با حفظ گرافیک‌های برداری، شکل‌ها و متن تبدیل می‌کند.
4. یک فایل مستقیماً به‌صورت PDF دانلود می‌شود. چند فایل یک بایگانی ZIP با نام `odg-to-pdf.zip` تولید می‌کنند.
## گزینه‌ها
تنظیمات اضافه‌ای لازم نیست. تبدیل، ابعاد اصلی صفحه، شکل‌ها، اتصال‌دهنده‌ها و کادرهای متنی منبع ODG را حفظ می‌کند.
## موارد استفاده
- اشتراک نمودارهای LibreOffice Draw با مشتریانی که LibreOffice را نصب نکرده‌اند
- چاپ فلوچارت‌ها و نمودارهای شبکهٔ ساخته‌شده در Draw
- گنجاندن تصاویر ODG در یک گزارش یا ارائه به‌صورت PDF جاسازی‌شده
- بایگانی نقشه‌های فنی در قالبی که تا دهه‌ها خواندنی باقی می‌ماند
## نکات
- عناصر برداری در خروجی PDF برداری باقی می‌مانند، بنابراین نتیجه در هر اندازهٔ چاپی به‌خوبی مقیاس می‌گیرد.
- موتور LibreOffice در نخستین استفاده کمی زمان برای راه‌اندازی نیاز دارد. تبدیل‌های بعدی در همان نشست سریع‌ترند.
## ابزارهای مرتبط
- [ODS به PDF](./ods-to-pdf)
- [ODP به PDF](./odp-to-pdf)
- [VSD به PDF](./vsd-to-pdf)
+44
View File
@@ -0,0 +1,44 @@
---
title: ODP به PDF
description: ارائه‌های LibreOffice Impress (ODP) را در مرورگر خود به PDF تبدیل کنید. رایگان، خصوصی و بدون بارگذاری.
---
# ODP به PDF
فایل‌های OpenDocument Presentation را به PDF تبدیل کنید. ODP قالب بومی LibreOffice Impress و یکی از خروجی‌های استاندارد Google Slides است. تبدیل ارائه‌ها به PDF یعنی هر کسی می‌تواند بدون نرم‌افزار ارائه آن‌ها را ببیند و اسلایدها تمیز چاپ می‌شوند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :------------------------ | :----- | :---------------------------------------- |
| OpenDocument Presentation | `.odp` | خروجی LibreOffice Impress / Google Slides |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های ODP خود را بکشید و رها کنید. می‌توانید چند ارائه را همزمان انتخاب کنید.
2. فهرست فایل‌ها را بررسی کنید. موارد را با نماد سطل زباله حذف کنید یا با **افزودن فایل‌های بیشتر** ارائه‌های دیگری اضافه کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور مبتنی بر LibreOffice هر ارائه را پردازش می‌کند و PDFی تولید می‌کند که در آن هر اسلاید یک صفحه است.
4. یک فایل به‌صورت PDF دانلود می‌شود. چند فایل در یک بایگانی ZIP با نام `odp-to-pdf.zip` تحویل داده می‌شوند.
## گزینه‌ها
تنظیماتی برای پیکربندی وجود ندارد. هر اسلاید در ابعاد اصلی خود رندر می‌شود و متن، تصاویر، شکل‌ها و پس‌زمینهٔ اسلایدها حفظ می‌شوند.
## موارد استفاده
- توزیع یک ارائه بین مخاطبان به‌صورت جزوهٔ PDF
- اشتراک خروجی‌های Google Slides با افرادی که PDF را به ODP ترجیح می‌دهند
- بایگانی سخنرانی‌های همایش و کلاس‌ها در قالبی فقط‌خواندنی
- چاپ اسلایدها برای کارگاه‌های حضوری
## نکات
- جلوه‌های گذار و انیمیشن‌های اسلاید فقط بصری هستند و به PDF منتقل نمی‌شوند، اما همهٔ محتوای ثابت به‌درستی رندر می‌شود.
- یادداشت‌های سخنران در خروجی PDF گنجانده نمی‌شوند. اگر به یادداشت‌ها نیاز دارید، آن‌ها را جداگانه از نرم‌افزار ارائهٔ خود خروجی بگیرید.
- مانند دیگر ابزارهای مبتنی بر LibreOffice، موتور در نخستین استفاده بارگیری می‌شود و برای آن نشست در حافظهٔ پنهان می‌ماند.
## ابزارهای مرتبط
- [ODG به PDF](./odg-to-pdf)
- [ODS به PDF](./ods-to-pdf)
- [PUB به PDF](./pub-to-pdf)
+44
View File
@@ -0,0 +1,44 @@
---
title: ODS به PDF
description: صفحه‌گسترده‌های LibreOffice Calc (ODS) را در مرورگر خود به PDF تبدیل کنید. رایگان، خصوصی و بدون ثبت‌نام.
---
# ODS به PDF
فایل‌های صفحه‌گستردهٔ OpenDocument را به PDF تبدیل کنید. ODS قالب اصلی LibreOffice Calc و یکی از خروجی‌های رایج Google Sheets است. این ابزار داده‌ها، قالب‌بندی و نمودارهای صفحه‌گستردهٔ شما را به یک PDF صفحه‌بندی‌شده تبدیل می‌کند که می‌توانید آن را چاپ یا به اشتراک بگذارید.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :------------------------ | :----- | :------------------------------------- |
| صفحه‌گستردهٔ OpenDocument | `.ods` | خروجی LibreOffice Calc / Google Sheets |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های ODS خود را بکشید و رها کنید. چند فایل پشتیبانی می‌شود.
2. فهرست فایل‌ها را بررسی کنید. با نماد سطل زباله فایل‌ها را حذف کنید یا برای افزودن به دسته روی **افزودن فایل بیشتر** کلیک کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور مبتنی بر LibreOffice در مرورگر بارگذاری می‌شود و هر صفحه‌گسترده را به صفحات PDF تبدیل می‌کند.
4. یک صفحه‌گستردهٔ تکی به‌صورت PDF دانلود می‌شود. چند فایل در `ods-to-pdf.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
نیازی به پیکربندی نیست. مبدل چیدمان چاپ موجود، قالب‌بندی سلول‌ها و عرض ستون‌های صفحه‌گسترده را روی خروجی PDF اعمال می‌کند.
## موارد استفاده
- اشتراک‌گذاری بودجه یا گزارش LibreOffice Calc با کسی که فقط PDF می‌پذیرد
- چاپ خروجی Google Sheets که به‌صورت ODS دانلود شده است
- بایگانی سوابق مالی در قالبی غیرقابل ویرایش
- ارسال فرم‌ها یا جدول‌های ساعت کاری مبتنی بر ODS به‌صورت اسناد با چیدمان ثابت
## نکته‌ها
- اگر صفحه‌گستردهٔ شما چند برگه دارد، همهٔ برگه‌ها در خروجی PDF گنجانده می‌شوند.
- صفحه‌گسترده‌های بسیار عریض ممکن است به‌صورت افقی در چند صفحهٔ PDF پخش شوند. اگر چیدمان مهم است، پیش از تبدیل عرض ستون‌ها را در فایل مبدأ تنظیم کنید.
- موتور LibreOffice در اولین استفاده راه‌اندازی می‌شود. تبدیل‌های بعدی در همان نشست سریع‌تر هستند.
## ابزارهای مرتبط
- [ODG به PDF](./odg-to-pdf)
- [ODP به PDF](./odp-to-pdf)
- [XML به PDF](./xml-to-pdf)
+51
View File
@@ -0,0 +1,51 @@
---
title: ODT به PDF
description: فایل‌های متنی OpenDocument (ODT) را با موتوری مبتنی بر LibreOffice در مرورگر خود به PDF تبدیل کنید.
---
# ODT به PDF
فایل‌های متنی OpenDocument را به PDF تبدیل کنید. ODT قالب اصلی LibreOffice Writer، Apache OpenOffice و دیگر واژه‌پردازهای متن‌باز است. این ابزار از یک موتور LibreOffice در مرورگر استفاده می‌کند تا تبدیل‌هایی دقیق با حفظ قالب‌بندی، جدول‌ها، تصاویر و سبک‌ها تولید کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :--------------- | :------ |
| متن OpenDocument | `.odt` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا یک یا چند فایل ODT را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های بیشتری اضافه کنید یا فایل‌های ناخواسته را حذف کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور LibreOffice راه‌اندازی می‌شود (یک نشانگر پیشرفت وضعیت بارگذاری را نشان می‌دهد) و سپس هر فایل تبدیل می‌شود.
4. یک فایل تکی مستقیماً به‌صورت PDF دانلود می‌شود. چند فایل در `odt-converted.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
این ابزار پیکربندی اضافه‌ای ندارد. تبدیل، قالب‌بندی سند اصلی را تا حد امکان حفظ می‌کند.
## خروجی
| تعداد ورودی | خروجی |
| :-------------- | :--------------------------------------------------------- |
| ۱ فایل | دانلود یک PDF (مثلاً `document.pdf`) |
| ۲ فایل یا بیشتر | بایگانی ZIP (`odt-converted.zip`) شامل یک PDF برای هر فایل |
## موارد استفاده
- تبدیل اسناد LibreOffice Writer به PDF برای اشتراک با کاربران Microsoft Office
- تولید PDFهای آمادهٔ چاپ از مقالات دانشگاهی نوشته‌شده در قالب OpenDocument
- تبدیل دسته‌ای پوشه‌ای از قالب‌های ODT به PDF برای توزیع
- تولید PDF از فایل‌های ODT ساخته‌شده توسط سامانه‌های خودکار تولید سند
## نکته‌ها
- موتور LibreOffice در اولین استفاده بارگذاری و برای تبدیل‌های بعدی ذخیره می‌شود. بارگذاری اولیه چند ثانیه طول می‌کشد؛ پس از آن تبدیل‌ها سریع هستند.
- اسناد پیچیده با اشیای OLE جاسازی‌شده یا فونت‌های غیرمعمول ممکن است کمی متفاوت از LibreOffice رومیزی نمایش داده شوند. پیش از تبدیل دسته‌ای با یک نمونه آزمایش کنید.
- برای اسناد Word (`.doc`، `.docx`) به‌جای آن از ابزار [Word به PDF](./word-to-pdf) استفاده کنید که آن هم از موتور LibreOffice استفاده می‌کند اما قالب‌های Microsoft را مستقیماً می‌پذیرد.
## ابزارهای مرتبط
- [Word به PDF](./word-to-pdf)
- [RTF به PDF](./rtf-to-pdf)
- [متن به PDF](./txt-to-pdf)
+45
View File
@@ -0,0 +1,45 @@
---
title: تکثیر و سازماندهی
description: صفحات PDF را با تصاویر بندانگشتی کشیدنی و واردکردن ترتیب دلخواه صفحات، مرتب، تکثیر و حذف کنید.
---
# تکثیر و سازماندهی
صفحات یک PDF را با یک رابط بصری کشیدن و رها کردن جابه‌جا، تکثیر و حذف کنید. هر صفحه به‌صورت یک تصویر بندانگشتی نمایش داده می‌شود که می‌توانید پیش از ذخیرهٔ نتیجه در فایلی جدید، آن را جابه‌جا، کپی یا حذف کنید.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. ابزار شبکه‌ای از تصاویر بندانگشتی همهٔ صفحات را نمایش می‌دهد.
3. برای تغییر ترتیب، تصاویر بندانگشتی را بکشید؛ برای کپی یک صفحه روی دکمهٔ سبز تکثیر و برای حذف آن روی دکمهٔ قرمز حذف کلیک کنید.
4. همچنین می‌توانید ترتیب دلخواه صفحات را در فیلد متنی وارد کنید (مثلاً `3, 1, 2, 4`) و روی **اعمال ترتیب** کلیک کنید تا همهٔ صفحات یک‌جا مرتب شوند.
5. روی دکمهٔ پردازش کلیک کنید تا PDF سازماندهی‌شده ساخته و دانلود شود.
## ویژگی‌ها
- تغییر ترتیب صفحات با کشیدن و رها کردن همراه با جلوه‌های پویا
- دکمه‌های تکثیر و حذف برای هر صفحه
- واردکردن ترتیب دلخواه صفحات برای چینش دقیق
- برچسب‌های شمارهٔ صفحه که پس از هر تغییر خودکار به‌روز می‌شوند
- جلوگیری از حذف آخرین صفحهٔ باقی‌مانده
## موارد استفاده
- انتقال یک صفحهٔ جابه‌جاشده به جای درست در یک گزارش
- تکثیر یک صفحهٔ فرم برای داشتن چند نسخهٔ خالی در یک فایل
- حذف صفحات پیش‌نویس یا جانگهدار پیش از توزیع سند
- وارونه کردن یا جابه‌جا کردن ترتیب صفحات برای آماده‌سازی چاپ
- ساخت ترتیب دلخواه صفحات بدون ادغام دوبارهٔ فایل‌های جداگانه
## نکته‌ها
- فیلد ترتیب دلخواه، شماره‌های صفحات اصلی جداشده با ویرگول را می‌پذیرد. باید هر صفحه دقیقاً یک بار آمده باشد، بدون جاافتادگی یا تکرار.
- پس از تکثیر یک صفحه، هر دو نسخه به همان شاخص صفحهٔ اصلی ارجاع می‌دهند. جابه‌جایی هر نسخه مستقل از دیگری انجام می‌شود.
- برای عملیات گروهی روی چند فایل یا گردش‌کارهای پیشرفته‌تر، از [ابزار چندکارهٔ PDF](./pdf-multi-tool) استفاده کنید.
## ابزارهای مرتبط
- [ادغام PDF](./merge-pdf)
- [حذف صفحات](./delete-pages)
- [ابزار چندکارهٔ PDF](./pdf-multi-tool)
- [وارونه‌سازی ترتیب صفحات](./reverse-pages)
+53
View File
@@ -0,0 +1,53 @@
---
title: ابعاد صفحه
description: اندازه، جهت، نسبت ابعاد و چرخش صفحات PDF را تحلیل کنید. اسناد با اندازه‌های مختلط را شناسایی و داده‌ها را به CSV صادر کنید.
---
# ابعاد صفحه
ابزاری تشخیصی که همهٔ صفحات PDF شما را می‌خواند و ابعاد دقیق، جهت، نام اندازهٔ استاندارد، نسبت ابعاد، مساحت و چرخش هر صفحه را گزارش می‌دهد. برای یافتن صفحات با اندازه‌های مختلط پیش از چاپ یا مستندسازی ویژگی‌های PDF دریافتی مفید است.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید. تحلیل خودکار آغاز می‌شود و نیازی به فشردن دکمه نیست.
2. یک پنل خلاصه، تعداد کل صفحات، تعداد اندازه‌های منحصربه‌فرد و مختلط بودن یا نبودن اندازه‌ها را نشان می‌دهد.
3. جدول کامل نتایج را با جزئیات هر صفحه مرور کنید.
4. واحد نمایش را بین Points، Inches، Millimeters یا Pixels تغییر دهید.
5. برای ذخیرهٔ داده‌ها روی **خروجی CSV** کلیک کنید.
## فیلدهای گزارش‌شده
| ستون | توضیحات |
| ----------------- | ----------------------------------------- |
| شمارهٔ صفحه | شمارهٔ ترتیبی صفحه |
| ابعاد | عرض x ارتفاع در واحد انتخاب‌شده |
| اندازهٔ استاندارد | نام منطبق (A4، Letter و غیره) یا "سفارشی" |
| جهت | عمودی یا افقی |
| نسبت ابعاد | نسبت عرض به ارتفاع به‌صورت عدد اعشاری |
| مساحت | مساحت صفحه در مربع واحد انتخاب‌شده |
| چرخش | چرخش صفحه بر حسب درجه |
## ویژگی‌ها
- تشخیص خودکار اندازه‌های استاندارد کاغذ (A3، A4، A5، Letter، Legal، Tabloid و موارد دیگر)
- هشدار سند با اندازه‌های مختلط همراه با تفکیک اندازه‌های موجود و تعداد صفحات هر کدام
- تبدیل واحد بین پوینت، اینچ، میلی‌متر و پیکسل (با ۹۶ PPI)
- صدور به CSV برای استفاده در صفحه‌گسترده‌ها یا سامانه‌های مستندسازی
## موارد استفاده
- اطمینان از A4 بودن همهٔ صفحات پیش از ارسال سند به چاپخانه
- یافتن علت چاپ یک PDF ادغام‌شده با حاشیه‌های غیرمنتظره در برخی صفحات
- مستندسازی چیدمان صفحات یک بایگانی بزرگ PDF برای سوابق فراداده
- شناسایی صفحات چرخیده‌ای که نیاز به اصلاح دارند
## نکته‌ها
- اگر خلاصه "اندازه‌های ناهمسان" را نشان داد، پیش از چاپ با ابزار اصلاح اندازهٔ صفحه اندازه‌ها را یکسان کنید.
- فیلد چرخش به شناسایی صفحاتی کمک می‌کند که درست نمایش داده می‌شوند اما ویژگی چرخش غیرصفر دارند و ممکن است در برخی گردش‌کارها مشکل ایجاد کنند.
## ابزارهای مرتبط
- [اصلاح اندازهٔ صفحه](./fix-page-size): یکسان‌سازی صفحات پس از شناسایی اندازه‌های مختلط
- [فشرده‌سازی PDF](./compress-pdf): بهینه‌سازی PDF پس از رفع مشکلات صفحه
- [چرخاندن PDF](./rotate-pdf): اصلاح صفحات چرخیده
+48
View File
@@ -0,0 +1,48 @@
---
title: شماره‌گذاری صفحات
description: شماره‌های صفحهٔ قابل‌تنظیم را با فونت، اندازه و رنگ دلخواه در هر موقعیتی از صفحات PDF اضافه کنید.
---
# شماره‌گذاری صفحات
به همهٔ صفحات PDF خود شمارهٔ صفحهٔ قابل‌مشاهده اضافه کنید. شما موقعیت، قالب، اندازهٔ فونت و رنگ را انتخاب می‌کنید و ابزار بقیهٔ کار را انجام می‌دهد.
## نحوهٔ کار
1. فایل PDF خود را بارگذاری کنید.
2. تنظیمات شمارهٔ صفحه را در پنل گزینه‌هایی که نمایش داده می‌شود پیکربندی کنید.
3. برای پردازش روی **افزودن شمارهٔ صفحه** کلیک کنید.
4. PDF شماره‌گذاری‌شده خودکار دانلود می‌شود.
## گزینه‌ها
- **موقعیت**: محل نمایش شماره‌ها را انتخاب کنید: پایین وسط، پایین چپ، پایین راست، بالا وسط، بالا چپ یا بالا راست.
- **قالب**: بین شماره‌گذاری ساده (1، 2، 3...) یا قالب "صفحهٔ X از Y" (1 / 5، 2 / 5...) انتخاب کنید.
- **اندازهٔ فونت**: اندازهٔ متن شمارهٔ صفحه را تنظیم کنید. پیش‌فرض 12 است.
- **رنگ**: با انتخابگر رنگ، هر رنگی را برای متن شمارهٔ صفحه برگزینید.
## ویژگی‌ها
- شش گزینهٔ موقعیت که همهٔ گوشه‌ها و موقعیت‌های وسط را پوشش می‌دهد
- دو قالب شماره‌گذاری: ترتیبی ساده یا "صفحهٔ X از Y"
- اندازهٔ فونت قابل‌تنظیم از 6 تا 72 پوینت
- انتخابگر کامل رنگ برای رنگ متن
- مدیریت خودکار حاشیه که شماره‌ها را صرف‌نظر از اندازهٔ صفحه در نواحی امن نگه می‌دارد
## موارد استفاده
- آماده‌سازی اسناد برای چاپ که به ارجاع صفحهٔ قابل‌مشاهده نیاز دارند
- افزودن شمارهٔ صفحه به PDF ادغام‌شده از چند فایل مبدأ
- شماره‌گذاری جزوه‌های ارائه پیش از توزیع
- افزودن شماره‌گذاری ترتیبی به اسناد حقوقی یا قراردادها
## نکته‌ها
- قالب "صفحهٔ X از Y" برای اسنادی مانند پیشنهادها یا گزارش‌ها که خواننده باید طول کل را بداند مفید است.
- اگر برای بخش‌های مختلف به سبک‌های شماره‌گذاری متفاوت نیاز دارید (مانند اعداد رومی برای بخش‌های آغازین)، به‌جای آن از ابزار [افزودن برچسب صفحه](./add-page-labels) استفاده کنید.
## ابزارهای مرتبط
- [افزودن برچسب صفحه](./add-page-labels)
- [شماره‌گذاری Bates](./bates-numbering)
- [سرصفحه و پاصفحه](./header-footer)
+43
View File
@@ -0,0 +1,43 @@
---
title: دفترچهٔ PDF
description: صفحات PDF را به ترتیب دفترچه‌ای (دوخت منگنه‌ای) بچینید تا تا شده و به‌صورت دفترچهٔ فیزیکی منگنه شوند.
---
# دفترچهٔ PDF
صفحات یک PDF را به ترتیب صفحه‌آرایی دفترچه‌ای بچینید. وقتی دورو چاپ و از وسط تا شود، صفحات به ترتیب درست خواندن قرار می‌گیرند. این همان چیدمانی است که برای دفترچه‌ها و زین‌های منگنه‌شده از وسط استفاده می‌شود.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. تنظیمات دفترچه را پیکربندی کنید: اندازه و جهت صفحهٔ خروجی.
3. روی **ایجاد پیش‌نمایش** کلیک کنید تا ببینید صفحات روی هر برگه چگونه چیده می‌شوند.
4. پیش‌نمایش را بررسی کنید؛ هر برگهٔ فیزیکی را با صفحات روی و پشت آن نشان می‌دهد.
5. برای ذخیرهٔ PDF دفترچه‌ای روی **دانلود** کلیک کنید.
## ویژگی‌ها
- ترتیب‌دهی خودکار صفحات برای صحافی منگنه‌ای از وسط
- اندازهٔ صفحهٔ خروجی قابل‌تنظیم
- پیش‌نمایش بصری چیدمان دفترچه پیش از دانلود
- مدیریت تعداد صفحات فرد با درج صفحات خالی در صورت نیاز
- مقیاس‌دهی صفحات مبدأ برای جا شدن در اندازهٔ برگهٔ دفترچه
## موارد استفاده
- ساخت دفترچه‌ها یا زین‌های قابل‌چاپ از یک PDF معمولی
- آماده‌سازی برنامه‌های همایش یا راهنماهای رویداد برای چاپ داخلی
- ساخت کارت‌تبریک‌های تاشو یا کاتالوگ‌های کوچک
- تولید جزوه‌ها یا مجموعه‌های شعر برای صحافی دستی
## نکته‌ها
- برای یک دفترچهٔ تمیز، بهتر است تعداد صفحات PDF مبدأ مضربی از 4 باشد. در غیر این صورت، صفحات خالی خودکار برای پر کردن آخرین برگه اضافه می‌شوند.
- خروجی را با تنظیم "برگرداندن از لبهٔ کوتاه" چاپگر خود دورو چاپ کنید، سپس همهٔ برگه‌ها را با هم تا کنید و از عطف منگنه کنید.
- برای قرار دادن ساده‌ی چند صفحه روی یک برگه بدون ترتیب دفترچه‌ای، به‌جای آن از [N-Up کردن PDF](./n-up-pdf) استفاده کنید.
## ابزارهای مرتبط
- [N-Up کردن PDF](./n-up-pdf)
- [چرخاندن PDF](./rotate-pdf)
- [افزودن صفحهٔ خالی](./add-blank-page)
+46
View File
@@ -0,0 +1,46 @@
---
title: لایه‌های OCG در PDF
description: لایه‌های Optional Content Group (OCG) را در یک سند PDF مشاهده، روشن و خاموش، اضافه و حذف کنید.
---
# لایه‌های OCG در PDF
گروه‌های محتوای اختیاری (OCG) را که معمولاً "لایه" نامیده می‌شوند در یک PDF مدیریت کنید. می‌توانید نمایش لایه‌ها را روشن و خاموش کنید، لایه‌های جدید (از جمله لایه‌های فرزند تودرتو) اضافه کنید، لایه‌ها را حذف کنید و PDF تغییریافته را ذخیره کنید.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. روی دکمهٔ پردازش کلیک کنید تا سند با موتور PyMuPDF بارگذاری شود.
3. ابزار همهٔ لایه‌های موجود را با وضعیت نمایش، وضعیت قفل و سلسله‌مراتب تودرتوی آن‌ها نشان می‌دهد.
4. برای نمایش یا پنهان کردن لایه‌ها، کادرهای انتخاب را تغییر دهید. لایه‌های قفل‌شده قابل تغییر نیستند.
5. با تایپ نام و کلیک روی دکمهٔ افزودن، لایه‌های سطح بالای جدید اضافه کنید، یا زیر یک والد موجود لایهٔ فرزند بسازید.
6. لایه‌هایی را که دیگر لازم ندارید حذف کنید.
7. روی **دانلود PDF تغییریافته** کلیک کنید تا PDF تغییریافته با اعمال تغییرات لایه‌ها دانلود شود.
## ویژگی‌ها
- نمایش سلسله‌مراتب لایه‌ها با تورفتگی مناسب برای لایه‌های تودرتو
- روشن یا خاموش کردن نمایش لایه
- نشانگر لایهٔ قفل‌شده برای جلوگیری از تغییرات ناخواسته
- افزودن لایه‌های سطح بالا یا فرزند با نام دلخواه
- حذف تک‌تک لایه‌ها
- ذخیرهٔ همهٔ تغییرات در یک فایل PDF جدید
## موارد استفاده
- روشن و خاموش کردن لایه‌های نشانه‌گذاری در نقشه‌های معماری یا مهندسی
- افزودن لایه‌های حاشیه‌نویسی جدید به یک سند طراحی چندلایه
- حذف لایه‌های منسوخ از یک الگو پیش از توزیع
- بررسی لایه‌های موجود در یک PDF پیچیدهٔ دریافتی از شخص ثالث
## نکته‌ها
- اگر PDF لایه‌ای نداشته باشد، ابزار حالت خالی را با پیشنهاد افزودن لایه نشان می‌دهد. همهٔ PDFها از لایه‌های OCG استفاده نمی‌کنند؛ این لایه‌ها بیشتر در خروجی‌های CAD و فایل‌های طراحی رایج‌اند.
- لایه‌های فرزند به‌صورت بصری زیر والد خود با تورفتگی نمایش داده می‌شوند. می‌توانید لایه‌ها را تا هر عمقی تودرتو کنید.
- لایه‌های قفل‌شده با نماد قفل نمایش داده می‌شوند و کادر انتخاب آن‌ها غیرفعال است. این قفل‌ها توسط سازندهٔ PDF تنظیم شده‌اند.
## ابزارهای مرتبط
- [مشاهدهٔ فراداده](./view-metadata)
- [ویرایش فراداده](./edit-metadata)
- [تکثیر و سازماندهی](./organize-pdf)
+52
View File
@@ -0,0 +1,52 @@
---
title: ابزار چندکارهٔ PDF
description: مدیر همه‌کارهٔ صفحات برای ادغام، تقسیم، چرخاندن، تکثیر، حذف و تغییر ترتیب صفحات PDF.
---
# ابزار چندکارهٔ PDF
فضای کاری یکپارچه برای همهٔ عملیات سطح صفحه در PDF. یک یا چند PDF بارگذاری کنید و با همهٔ صفحات آن‌ها در یک شبکهٔ بصری کار کنید. صفحات را بچرخانید، جابه‌جا، تکثیر و حذف کنید، PDF جدید درج کنید، صفحهٔ خالی اضافه کنید و نتیجه را تقسیم کنید، همه بدون خروج از ابزار.
## نحوهٔ کار
1. روی **بارگذاری PDFها** کلیک کنید یا فایل‌ها را روی ناحیهٔ بارگذاری بکشید. چند فایل پشتیبانی می‌شود.
2. همهٔ صفحات همهٔ فایل‌های بارگذاری‌شده در یک شبکهٔ پیمایش‌پذیر با تصاویر بندانگشتی نمایش داده می‌شوند.
3. از نوار ابزار یا دکمه‌های عملیات هر صفحه برای ویرایش صفحات استفاده کنید.
4. صفحات را با کادر انتخاب روی هر کارت برگزینید و سپس عملیات گروهی را اعمال کنید.
5. با نماد قیچی نقاط تقسیم را علامت بزنید تا خروجی به فایل‌های جداگانه تقسیم شود.
6. برای دانلود نتیجهٔ نهایی روی **برون‌ریزی PDF** کلیک کنید. اگر نشانگر تقسیم وجود داشته باشد، خروجی یک ZIP از چند PDF است.
## ویژگی‌ها
- **ادغام**: چند PDF بارگذاری کنید تا خودکار در یک فضای کاری ترکیب شوند
- **تغییر ترتیب**: کارت‌های صفحه را بکشید و رها کنید تا ترتیب تغییر کند
- **چرخش**: چرخش تکی یا گروهی با گام‌های 90 درجه (چپ یا راست)
- **تکثیر**: کپی هر صفحه با یک کلیک
- **حذف**: حذف تک‌صفحه‌ها یا حذف گروهی صفحات انتخاب‌شده
- **درج PDF**: افزودن یک PDF جدید پس از هر صفحهٔ دلخواه
- **افزودن صفحهٔ خالی**: افزودن یک صفحهٔ خالی A4 به انتها
- **تقسیم**: قرار دادن نشانگرهای تقسیم بین صفحات و صدور به‌صورت ZIP از PDFهای جداگانه
- **انتخاب همه / لغو انتخاب همه**: انتخاب سریع برای عملیات گروهی
- **واگرد / ازنو**: تاریخچهٔ کامل واگرد و ازنو برای همهٔ عملیات
- **دانلود انتخاب‌شده‌ها**: صدور فقط صفحات انتخاب‌شده به‌صورت یک PDF مستقل
- تعمیر خودکار PDFهای آسیب‌دیده پیش از بارگذاری
## موارد استفاده
- ساخت یک سند دلخواه از صفحات چند PDF مبدأ
- مرتب‌سازی یک سند اسکن‌شده با حذف صفحات خالی، چرخاندن اسکن‌های کج و تغییر ترتیب بخش‌ها
- تقسیم یک PDF بزرگ در مرز فصل‌ها با نشانگرهای بصری تقسیم
- ویرایش سریع در سطح صفحه بدون نیاز به ویرایشگر کامل PDF
## نکته‌ها
- سامانهٔ واگرد و ازنو همهٔ عملیات را ثبت می‌کند. آزادانه از آن استفاده کنید؛ کارتان به‌اشتباه از بین نمی‌رود.
- نشانگرهای تقسیم به‌صورت خطوط آبی خط‌چین بین صفحات نمایش داده می‌شوند. آن‌ها را جایی که می‌خواهید سند تقسیم شود قرار دهید و سپس برای دریافت ZIP صادر کنید.
- برای کارهای سادهٔ ادغام یا تقسیم، ابزارهای اختصاصی [ادغام PDF](./merge-pdf) یا [تقسیم PDF](./split-pdf) ممکن است سریع‌تر باشند. ابزار چندکاره زمانی می‌درخشد که در یک نشست به چند عملیات نیاز دارید.
## ابزارهای مرتبط
- [ادغام PDF](./merge-pdf)
- [تقسیم PDF](./split-pdf)
- [تکثیر و سازماندهی](./organize-pdf)
- [چرخاندن PDF](./rotate-pdf)
+40
View File
@@ -0,0 +1,40 @@
---
title: PDF به BMP
description: صفحات PDF را به تصاویر BMP بدون فشرده‌سازی تبدیل کنید. مناسب برای سامانه‌های قدیمی و گردش‌کارهای چاپی که ورودی بیت‌مپ می‌خواهند.
---
# PDF به BMP
هر صفحهٔ PDF را به یک تصویر BMP (Bitmap) تبدیل می‌کند. BMP قالبی بدون فشرده‌سازی است، بنابراین خروجی بدون هیچ افت کیفیتی دقیق تا سطح پیکسل است، اما فایل‌ها حجیم هستند.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. برای پردازش فایل روی **تبدیل** کلیک کنید.
3. یک فایل `.bmp` یا یک بایگانی ZIP خودکار دانلود می‌شود.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. صفحات با مقیاس ثابت 2x رندر می‌شوند و تصاویری تقریباً دو برابر ابعاد اصلی صفحهٔ PDF تولید می‌کنند.
## قالب خروجی
- **تک‌صفحه**: `filename.bmp`
- **چندصفحه**: `filename_bmps.zip` شامل `page_1.bmp`، `page_2.bmp` و غیره.
## موارد استفاده
- ارسال صفحات PDF به سامانه‌ها یا سخت‌افزارهای قدیمی که فقط ورودی BMP می‌پذیرند.
- آماده‌سازی تصاویر بدون فشرده‌سازی برای گردش‌کارهای چاپی خاص.
- استفاده از خروجی بیت‌مپ به‌عنوان ورودی ابزارهای پردازش تصویر که دادهٔ خام پیکسل می‌خواهند.
## نکته‌ها
- فایل‌های BMP بسیار حجیم‌اند، چون دادهٔ خام پیکسل را بدون فشرده‌سازی ذخیره می‌کنند. برای بیشتر کاربردها، [PDF به PNG](./pdf-to-png) کیفیت بدون افت را با فایل‌های بسیار کوچک‌تر ارائه می‌دهد.
- اگر سامانهٔ مقصد شما PNG یا TIFF می‌پذیرد، برای صرفه‌جویی در فضای دیسک آن قالب‌ها را ترجیح دهید.
## ابزارهای مرتبط
- [PDF به PNG](./pdf-to-png)
- [PDF به TIFF](./pdf-to-tiff)
- [PDF به JPG](./pdf-to-jpg)
+77
View File
@@ -0,0 +1,77 @@
---
title: PDF به CBZ
description: یک PDF را به فایل CBZ (Comic Book Archive) برای کمیک‌خوان‌هایی مانند Komga، Kavita، CDisplayEx و Calibre تبدیل کنید.
---
# PDF به CBZ
یک PDF را به فایل CBZ (Comic Book ZIP) تبدیل می‌کند؛ قالب استاندارد کمیک‌ها و مانگاهای دیجیتال. هر صفحهٔ PDF به یک تصویر درون بایگانی تبدیل می‌شود. ابزار برای حداکثر سازگاری، فراداده را در سه قالب تولید می‌کند: ComicInfo.xml، metadata.opf و ComicBookInfo JSON.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. قالب تصویر، کیفیت، مقیاس و فرادادهٔ اختیاری را انتخاب کنید.
3. برای ساخت فایل CBZ روی **تبدیل** کلیک کنید.
4. فایل `.cbz` خودکار دانلود می‌شود.
## گزینه‌ها
| گزینه | مقادیر | پیش‌فرض | توضیحات |
| -------------- | --------------- | ------- | ------------------------------------------------------------------------------------------ |
| قالب تصویر | JPEG، PNG، WebP | JPEG | JPEG برای کمیک‌های رنگی، PNG برای مانگای سیاه‌وسفید بدون افت، WebP برای بهترین فشرده‌سازی. |
| کیفیت | 50–100% | 85% | فشرده‌سازی JPEG/WebP را کنترل می‌کند. برای PNG پنهان است (همیشه بدون افت). |
| مقیاس | 1.0x–4.0x | 2.0x | مقیاس بالاتر تصاویر واضح‌تری برای نمایشگرهای پرتفکیک تولید می‌کند. |
| خاکستری | روشن/خاموش | خاموش | صفحات را خاکستری می‌کند. حجم فایل را برای محتوای سیاه‌وسفید کاهش می‌دهد. |
| حالت مانگا | روشن/خاموش | خاموش | جهت خواندن راست‌به‌چپ را در فراداده تنظیم می‌کند. |
| افزودن فراداده | روشن/خاموش | روشن | ComicInfo.xml، metadata.opf و ComicBookInfo JSON را جاسازی می‌کند. |
## فیلدهای فراداده
وقتی فراداده فعال است، می‌توانید این موارد را پر کنید:
- **عنوان**: خودکار از نام فایل PDF تشخیص داده می‌شود.
- **مجموعه**: نام مجموعه (مثلاً "Naruto").
- **شماره (#)**: شمارهٔ قسمت در مجموعه.
- **جلد (Vol.)**: شمارهٔ جلد.
- **نویسنده(ها)**: نام نویسنده یا خالق.
- **ناشر**: شرکت انتشاراتی.
- **برچسب‌ها / ژانر**: برچسب‌های جداشده با ویرگول (مثلاً "Action, Adventure").
- **سال انتشار**: سال انتشار (1900–2100).
- **امتیاز**: امتیاز جامعه از 0 تا 5.
## سازگاری فراداده
ابزار فراداده را در سه قالب می‌نویسد تا هر کمیک‌خوانی بتواند آن را پیدا کند:
| قالب | محل | پشتیبانی‌شده در |
| ------------------ | -------------- | ------------------------------------------- |
| ComicInfo.xml | فایلی درون ZIP | Komga، Kavita، CDisplayEx، Mylar، ComicRack |
| metadata.opf | فایلی درون ZIP | Calibre |
| ComicBookInfo JSON | فیلد توضیح ZIP | Calibre (جایگزین) |
## قالب خروجی
- `filename.cbz`: یک بایگانی ZIP شامل تصاویر شماره‌دار صفحات و فایل‌های فراداده.
نام تصاویر صفحات با اعداد دارای صفر پیشرو است (`01.jpg`، `02.jpg` و غیره) تا کمیک‌خوان‌ها آن‌ها را به ترتیب درست نمایش دهند.
## موارد استفاده
- تبدیل PDFهای مانگا یا کمیک برای استفاده در کمیک‌خوان‌ها.
- ساخت کتابخانهٔ کمیک دیجیتال در Komga، Kavita یا Calibre.
- تبدیل کمیک‌های اسکن‌شده به قالبی مناسب کمیک‌خوان‌ها.
- اشتراک‌گذاری کمیک‌ها در قالبی که جهت خواندن و فراداده را حفظ می‌کند.
## نکته‌ها
- برای کمیک‌های رنگی از **JPEG** و برای مانگای سیاه‌وسفید از **PNG** استفاده کنید؛ PNG محتوای سیاه‌وسفید را بسیار کارآمد فشرده می‌کند.
- برای مانگا **تبدیل به خاکستری** را فعال کنید تا حجم فایل به‌طور چشمگیری کاهش یابد.
- فیلدهای **مجموعه** و **شماره (#)** را پر کنید تا مدیران کتابخانه (Komga، Calibre) مجموعهٔ شما را خودکار سازماندهی کنند.
- **WebP** بهترین فشرده‌سازی را ارائه می‌دهد، اما ممکن است کمیک‌خوان‌های قدیمی‌تر از آن پشتیبانی نکنند.
## ابزارهای مرتبط
- [PDF به JPG](./pdf-to-jpg)
- [PDF به PNG](./pdf-to-png)
- [PDF به TIFF](./pdf-to-tiff)
- [استخراج تصاویر](./extract-images)
+44
View File
@@ -0,0 +1,44 @@
---
title: PDF به CSV
description: جدول‌ها را از اسناد PDF استخراج و به‌صورت یک فایل CSV صادر کنید. از PDFهای چندصفحه‌ای با تشخیص خودکار جدول پشتیبانی می‌کند.
---
# PDF به CSV
جدول‌ها را از یک PDF استخراج و به‌صورت فایل CSV صادر می‌کند. ابزار با موتور تشخیص جدول PyMuPDF همهٔ صفحات را برای دادهٔ جدولی بررسی می‌کند و سپس همهٔ ردیف‌های یافت‌شده را در یک خروجی جداشده با ویرگول می‌نویسد.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. برای شروع استخراج جدول روی **تبدیل به CSV** کلیک کنید.
3. ابزار هر صفحه را بررسی و جدول‌ها را خودکار شناسایی می‌کند.
4. یک فایل `.csv` با همهٔ داده‌های جدولی استخراج‌شده دانلود می‌شود.
جدول‌های صفحات مختلف در خروجی با ردیف‌های خالی از هم جدا می‌شوند. سلول‌هایی که ویرگول، نقل‌قول یا خط جدید دارند، طبق RFC 4180 به‌درستی escape می‌شوند.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. همهٔ جدول‌های یافت‌شده در سند استخراج و در یک CSV ترکیب می‌شوند.
## قالب خروجی
- یک فایل `filename.csv` شامل همهٔ جدول‌های شناسایی‌شده.
## موارد استفاده
- انتقال داده‌های مالی از صورت‌حساب‌های بانکی یا فاکتورهای PDF به صفحه‌گسترده.
- استخراج جدول‌های قیمت از پیش‌فاکتورهای فروشندگان برای مقایسه.
- تبدیل داده‌های پژوهشی جدولی مقالات PDF به قالبی مناسب ابزارهای تحلیل.
- انتقال داده از گزارش‌های قدیمی PDF به پایگاه‌های داده.
## نکته‌ها
- اگر جدولی یافت نشود، ابزار پیام "جدولی پیدا نشد" را نشان می‌دهد. معمولاً یعنی PDF از چیدمان متنی استفاده می‌کند که جدولی به نظر می‌رسد اما ساختار جدول واقعی ندارد.
- برای کنترل بیشتر روی تک‌تک جدول‌ها از [استخراج جدول‌ها](./extract-tables) استفاده کنید که امکان انتخاب بین قالب‌های خروجی CSV، JSON و Markdown را می‌دهد.
- اگر داده را در قالب Excel با برگه‌های جداگانه برای هر جدول می‌خواهید، از [PDF به Excel](./pdf-to-excel) استفاده کنید.
## ابزارهای مرتبط
- [PDF به Excel](./pdf-to-excel)
- [استخراج جدول‌ها](./extract-tables)
- [PDF به متن](./pdf-to-text)
+44
View File
@@ -0,0 +1,44 @@
---
title: PDF به Excel
description: جدول‌ها را از اسناد PDF در یک صفحه‌گستردهٔ Excel استخراج کنید. هر جدول برگهٔ خودش را با ارجاع به صفحه دارد.
---
# PDF به Excel
جدول‌ها را از یک PDF استخراج و به‌صورت صفحه‌گستردهٔ Excel (`.xlsx`) ذخیره می‌کند. هر جدول شناسایی‌شده در برگهٔ جداگانه‌ای با شمارهٔ جدول و صفحهٔ مبدأ قرار می‌گیرد. تشخیص جدول با PyMuPDF و تولید Excel با کتابخانهٔ SheetJS انجام می‌شود.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. برای شروع استخراج جدول روی **تبدیل به Excel** کلیک کنید.
3. ابزار همهٔ صفحات را برای یافتن جدول بررسی و سپس یک کارپوشهٔ Excel می‌سازد.
4. یک فایل `.xlsx` با یک برگه برای هر جدول دانلود می‌شود.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. همهٔ جدول‌های شناسایی‌شده خودکار استخراج می‌شوند.
## قالب خروجی
- یک فایل `filename.xlsx`.
- **یک جدول**: یک برگه با نام "Table".
- **چند جدول**: برگه‌هایی با نام‌های "Table 1 (Page 3)"، "Table 2 (Page 5)" و غیره. نام برگه‌ها به 31 نویسه (محدودیت Excel) کوتاه می‌شود.
## موارد استفاده
- تبدیل گزارش‌های مالی PDF به صفحه‌گسترده‌های قابل‌ویرایش برای تحلیل بیشتر.
- استخراج جدول‌های موجودی یا سفارش از PDFهای تأمین‌کنندگان.
- انتقال دادهٔ ساختاریافته از فرم‌ها یا کاتالوگ‌های PDF به Excel برای مرتب‌سازی و فیلتر کردن.
- بایگانی دادهٔ جدولی PDF در قالبی که همکاران غیرفنی بتوانند با آن کار کنند.
## نکته‌ها
- اگر ابزار "جدولی پیدا نشد" گزارش داد، احتمالاً PDF از چیدمان متنی آزاد به‌جای جدول‌های ساختاریافته استفاده می‌کند. به‌جای آن [PDF به متن](./pdf-to-text) را برای دریافت محتوای خام امتحان کنید.
- برای قالب تخت ساده‌تر از [PDF به CSV](./pdf-to-csv) استفاده کنید. برای دانلود جداگانهٔ هر جدول در چند قالب، از [استخراج جدول‌ها](./extract-tables) استفاده کنید.
- نام برگه‌ها را بررسی کنید تا بفهمید هر جدول از کدام صفحه آمده است.
## ابزارهای مرتبط
- [PDF به CSV](./pdf-to-csv)
- [استخراج جدول‌ها](./extract-tables)
- [PDF به متن](./pdf-to-text)
+42
View File
@@ -0,0 +1,42 @@
---
title: PDF به خاکستری
description: یک PDF رنگی را به نسخهٔ خاکستری (سیاه‌وسفید) تبدیل کنید. یک PDF جدید بدون هیچ رنگی در صفحات تولید می‌کند.
---
# PDF به خاکستری
یک PDF رنگی را به نسخهٔ خاکستری تبدیل می‌کند. هر صفحه رندر، بی‌رنگ و به‌صورت تصویر JPEG دوباره در یک PDF جدید جاسازی می‌شود. خروجی ابعاد اصلی صفحات را حفظ می‌کند.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. برای پردازش فایل روی **تبدیل به خاکستری** کلیک کنید.
3. یک `greyscale.pdf` جدید با همهٔ صفحات سیاه‌وسفید دانلود می‌شود.
در پشت صحنه، هر صفحه با مقیاس 2x رندر می‌شود، دادهٔ پیکسل از فیلتر خاکستری عبور می‌کند، سپس به‌صورت JPEG با کیفیت 90% دوباره کدگذاری و در یک سند PDF تازه قرار می‌گیرد.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. تبدیل خاکستری از فرمول استاندارد درخشندگی استفاده می‌کند و کیفیت JPEG روی 90% ثابت است.
## قالب خروجی
- یک فایل `greyscale.pdf` شامل همهٔ صفحات به‌صورت تصاویر JPEG خاکستری.
## موارد استفاده
- آماده‌سازی اسناد برای چاپ سیاه‌وسفید و صرفه‌جویی در هزینهٔ جوهر رنگی.
- رعایت الزامات ارسال پرونده‌های حقوقی یا دولتی که خاکستری بودن را الزامی می‌کنند.
- کاهش حجم PDFهای پررنگ (تصاویر JPEG خاکستری از رنگی کوچک‌ترند).
- ایجاد سبک بصری یکدست در اسنادی با صفحات رنگی و سیاه‌وسفید مختلط.
## نکته‌ها
- چون هر صفحه شطرنجی و به‌صورت JPEG دوباره جاسازی می‌شود، خروجی مبتنی بر تصویر است. متن PDF اصلی دیگر قابل انتخاب یا جستجو نخواهد بود. اگر پس از آن متن قابل جستجو می‌خواهید، خروجی را از ابزار OCR عبور دهید.
- برای کنترل بیشتر روی تنظیم رنگ‌ها (روشنایی، کنتراست، اشباع)، ابزار تنظیم رنگ‌ها یا گره Greyscale در [سازندهٔ گردش کار PDF](./pdf-workflow) را ببینید.
## ابزارهای مرتبط
- [PDF به JPG](./pdf-to-jpg)
- [PDF به PNG](./pdf-to-png)
- [سازندهٔ گردش کار PDF](./pdf-workflow)
+46
View File
@@ -0,0 +1,46 @@
---
title: PDF به JPG
description: صفحات PDF را با کیفیت قابل‌تنظیم به تصاویر JPG تبدیل کنید. PDFهای تک‌صفحه‌ای مستقیماً و PDFهای چندصفحه‌ای به‌صورت ZIP دانلود می‌شوند.
---
# PDF به JPG
هر صفحهٔ PDF را به یک تصویر JPG تبدیل می‌کند. اسناد تک‌صفحه‌ای به‌صورت یک فایل `.jpg` مستقل دانلود می‌شوند. PDFهای چندصفحه‌ای یک بایگانی ZIP شامل یک JPG برای هر صفحه تولید می‌کنند.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید. ابزار نام فایل، حجم و تعداد صفحات را نشان می‌دهد.
2. لغزندهٔ **کیفیت تصویر** را برای کنترل فشرده‌سازی JPG تنظیم کنید.
3. برای شروع پردازش روی **تبدیل** کلیک کنید.
4. نتیجه خودکار دانلود می‌شود: یک JPG برای PDFهای تک‌صفحه‌ای یا یک فایل ZIP برای اسناد چندصفحه‌ای.
## گزینه‌ها
- **کیفیت**: لغزنده‌ای از 0% تا 100% (پیش‌فرض 90%). مقادیر بالاتر تصاویر واضح‌تر با حجم بیشتر تولید می‌کنند. مقادیر پایین‌تر فشرده‌سازی شدیدتری دارند.
صفحات در داخل با مقیاس 2x رندر می‌شوند، بنابراین وضوح خروجی دو برابر ابعاد صفحهٔ PDF است. یک صفحهٔ استاندارد letter تصویری تقریباً 1,224 x 1,584 پیکسلی تولید می‌کند.
## قالب خروجی
- **تک‌صفحه**: `filename.jpg`
- **چندصفحه**: `filename_jpgs.zip` شامل `page_1.jpg`، `page_2.jpg` و غیره.
## موارد استفاده
- تولید تصاویر بندانگشتی پیش‌نمایش برای سامانهٔ مدیریت اسناد.
- اشتراک یک صفحه از گزارش در گفتگو یا ایمیلی که از PDF پشتیبانی نمی‌کند.
- ساخت داراییهای تصویری از نمودارها یا تصویرسازی‌های PDF.
- بایگانی اسناد اسکن‌شده به‌صورت تصاویر جداگانه.
## نکته‌ها
- برای خروجی بدون افت، به‌جای آن از [PDF به PNG](./pdf-to-png) استفاده کنید.
- تنظیم کیفیت 80 تا 90% تعادل خوبی بین حجم فایل و وفاداری بصری برقرار می‌کند.
- اگر برای هر صفحه قالب خاصی می‌خواهید، [سازندهٔ گردش کار PDF](./pdf-workflow) را در نظر بگیرید که گره خروجی «PDF به تصاویر» دارد.
## ابزارهای مرتبط
- [PDF به PNG](./pdf-to-png)
- [PDF به WebP](./pdf-to-webp)
- [PDF به BMP](./pdf-to-bmp)
- [PDF به TIFF](./pdf-to-tiff)
+45
View File
@@ -0,0 +1,45 @@
---
title: PDF به JSON
description: فایل‌های PDF را با CPDF به قالب ساختاریافتهٔ JSON تبدیل کنید. ساختار داخلی PDF را به‌صورت دادهٔ JSON ماشین‌خوان صادر می‌کند.
---
# PDF به JSON
یک یا چند فایل PDF را به قالب JSON تبدیل می‌کند. ابزار از CPDF (Coherent PDF) برای سریال‌سازی ساختار داخلی هر PDF به یک نمایش JSON ماشین‌خوان استفاده می‌کند. خروجی همیشه به‌صورت بایگانی ZIP ارائه می‌شود.
## نحوهٔ کار
1. با انتخابگر فایل یک یا چند فایل PDF انتخاب کنید.
2. برای شروع پردازش روی **تبدیل به JSON** کلیک کنید. تبدیل در یک web worker پس‌زمینه اجرا می‌شود.
3. یک بایگانی ZIP شامل یک فایل JSON برای هر PDF ورودی دانلود می‌شود.
نوار وضعیت پیشرفت مراحل تبدیل و ساخت ZIP را نشان می‌دهد.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. هر PDF به نمایش کامل JSON خود تبدیل می‌شود.
## قالب خروجی
- یک فایل `pdfs-to-json.zip` شامل `filename.json` برای هر PDF ورودی.
خروجی JSON ساختار اشیای داخلی PDF را نشان می‌دهد، از جمله درخت صفحات، ارجاع‌های فونت، فراداده و جریان‌های محتوا.
## موارد استفاده
- بررسی ساختار داخلی یک PDF برای اشکال‌زدایی یا اعتبارسنجی.
- استخراج برنامه‌نویسی‌شدهٔ فرادادهٔ ساختاریافته و ویژگی‌های صفحات.
- ارسال دادهٔ ساختار PDF به خطوط پردازش سفارشی.
- ممیزی اسناد PDF برای انطباق با تحلیل درخت اشیای آن‌ها.
## نکته‌ها
- این ابزار ساختار خام اشیای PDF را خروجی می‌دهد، نه محتوای متنی استخراج‌شده. اگر متن صفحات را در قالب JSON می‌خواهید، به‌جای آن از [آماده‌سازی PDF برای هوش مصنوعی](./prepare-pdf-for-ai) استفاده کنید.
- برای استخراج متن ساده، [PDF به متن](./pdf-to-text) سرراست‌تر است.
- PDFهای بزرگ با ساختارهای پیچیده فایل‌های JSON بسیار حجیمی تولید می‌کنند.
## ابزارهای مرتبط
- [PDF به متن](./pdf-to-text)
- [آماده‌سازی PDF برای هوش مصنوعی](./prepare-pdf-for-ai)
- [استخراج جدول‌ها](./extract-tables)
+43
View File
@@ -0,0 +1,43 @@
---
title: PDF به Markdown
description: اسناد PDF را با امکان استخراج تصاویر به قالب Markdown تبدیل کنید. از تبدیل دسته‌ای چند فایل پشتیبانی می‌کند.
---
# PDF به Markdown
فایل‌های PDF را با حفظ سرفصل‌ها، پاراگراف‌ها، فهرست‌ها و قالب‌بندی پایه به قالب Markdown (`.md`) تبدیل می‌کند. به‌صورت اختیاری تصاویر جاسازی‌شده را استخراج و اضافه می‌کند. از تبدیل تکی و دسته‌ای پشتیبانی می‌کند. با قدرت PyMuPDF.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها روی آن، یک یا چند PDF بارگذاری کنید.
2. در صورت تمایل **شامل کردن تصاویر به‌صورت base64** را فعال کنید تا تصاویر استخراج‌شده در خروجی Markdown جاسازی شوند.
3. برای شروع پردازش روی **تبدیل به Markdown** کلیک کنید.
4. یک فایل تکی به‌صورت `filename.md` دانلود می‌شود. چند فایل یک `markdown-files.zip` تولید می‌کنند.
## گزینه‌ها
- **افزودن تصاویر**: وقتی فعال باشد، تصاویر جاسازی‌شدهٔ PDF استخراج و در خروجی Markdown ارجاع داده می‌شوند. وقتی غیرفعال باشد، فقط محتوای متنی تبدیل می‌شود.
## قالب خروجی
- **تک‌فایل**: `filename.md`
- **چند فایل**: `markdown-files.zip` شامل یک `.md` برای هر PDF ورودی.
## موارد استفاده
- تبدیل مستندات PDF به Markdown برای مولدهای سایت ایستا مانند VitePress، Hugo یا Jekyll.
- تبدیل مقالات پژوهشی PDF به Markdown قابل‌ویرایش برای برنامه‌های یادداشت‌برداری مانند Obsidian.
- انتقال پایگاه‌های دانش قدیمی PDF به قالب متنی سازگار با Git.
- استخراج محتوای ساختاریافته از کتاب‌های الکترونیکی PDF برای قالب‌بندی دوباره.
## نکته‌ها
- گزینهٔ «شامل کردن تصاویر به‌صورت base64» زمانی مفید است که PDF نمودارها یا شکل‌هایی ضروری برای محتوا دارد. برای اسناد پرمتن آن را غیرفعال کنید تا خروجی تمیز بماند.
- چیدمان‌های پیچیده با نوار کناری، پانویس یا متن چندستونی ممکن است Markdown ناقصی تولید کنند. در صورت نیاز خروجی را بررسی و اصلاح کنید.
- برای متن خام بدون قالب‌بندی، به‌جای آن از [PDF به متن](./pdf-to-text) استفاده کنید.
## ابزارهای مرتبط
- [PDF به متن](./pdf-to-text)
- [PDF به Word](./pdf-to-word)
- [آماده‌سازی PDF برای هوش مصنوعی](./prepare-pdf-for-ai)
+50
View File
@@ -0,0 +1,50 @@
---
title: PDF به PDF/A
description: PDFهای استاندارد را برای بایگانی بلندمدت به قالب PDF/A تبدیل کنید. از سطوح انطباق PDF/A-1b، PDF/A-2b و PDF/A-3b پشتیبانی می‌کند.
---
# PDF به PDF/A
PDF/A زیرمجموعه‌ای از PDF با استاندارد ISO است که برای نگهداری دیجیتال بلندمدت طراحی شده است. این ابزار با Ghostscript که مستقیماً در مرورگر شما اجرا می‌شود، PDFهای استاندارد را به اسناد منطبق با PDF/A تبدیل می‌کند.
## نحوهٔ کار
1. یک یا چند فایل PDF بارگذاری کنید.
2. از فهرست کشویی یک **نسخهٔ PDF/A** انتخاب کنید.
3. در صورت تمایل، برای فایل‌های پیچیده‌ای که تبدیل عادی‌شان ناموفق است، **مسطح‌سازی پیشین PDF** را فعال کنید.
4. روی **تبدیل به PDF/A** کلیک کنید. چند فایل یک بایگانی ZIP تولید می‌کنند.
## نسخه‌های PDF/A
| نسخه | محدودیت‌ها | مناسب برای |
| ------------ | ------------------------------------------------- | --------------------------------------------- |
| **PDF/A-1b** | سخت‌گیرانه‌ترین. بدون شفافیت، بدون لایه. | حداکثر سازگاری با سامانه‌های بایگانی قدیمی‌تر |
| **PDF/A-2b** | شفافیت و JPEG2000 را مجاز می‌داند. | بایگانی عمومی (توصیه‌شده) |
| **PDF/A-3b** | پیوست‌های جاسازی‌شده با هر قالبی را مجاز می‌داند. | بایگانی اسناد همراه با فایل‌های دادهٔ مبدأ |
PDF/A-2b به‌طور پیش‌فرض انتخاب شده است و برای اکثر نیازهای بایگانی کافی است.
## گزینهٔ Pre-flatten
برخی PDFها ویژگی‌هایی دارند که مانع تبدیل تمیز به PDF/A می‌شوند: کدگذاری‌های غیرمعمول فونت، پشته‌های پیچیدهٔ شفافیت یا ساختارهای داخلی معیوب. فعال کردن **مسطح‌سازی پیشین PDF** پیش از تبدیل، PDF را با 300 DPI شطرنجی می‌کند که انطباق را تضمین می‌کند، به بهای غیرقابل‌انتخاب شدن متن. از آن به‌عنوان راه جایگزین زمانی استفاده کنید که تبدیل استاندارد خطا می‌دهد.
Pre-flatten به موتور PyMuPDF WASM نیاز دارد.
## موارد استفاده
- رعایت الزامات بایگانی دولتی یا حقوقی (بسیاری از حوزه‌های قضایی PDF/A را برای پرونده‌های دادگاه الزامی می‌کنند)
- ارسال اسناد به مخازن سازمانی یا کتابخانه‌های دیجیتال
- نگهداری سوابق تجاری در شرایطی که نرم‌افزار اصلی ممکن است ده سال بعد وجود نداشته باشد
- آماده‌سازی فاکتورها برای استانداردهای فاکتور الکترونیکی که PDF/A-3b با پیوست XML می‌خواهند
## نکته‌ها
- ابتدا تبدیل را بدون Pre-flatten امتحان کنید. فقط در صورت خطا آن را فعال کنید.
- PDF/A همهٔ فونت‌ها را جاسازی می‌کند، بنابراین فایل‌های خروجی اغلب از نسخهٔ اصلی بزرگ‌ترند.
- اگر گردش کار شما انطباق سخت‌گیرانه می‌خواهد، خروجی را در یک اعتبارسنج اختصاصی PDF/A بررسی کنید.
## ابزارهای مرتبط
- [فشرده‌سازی PDF](./compress-pdf): کاهش حجم فایل پس از تبدیل
- [مسطح‌سازی PDF](./flatten-pdf): مسطح کردن فرم‌ها پیش از تبدیل به PDF/A
- [حذف فراداده](./remove-metadata): پاک کردن فراداده پیش از بایگانی
+42
View File
@@ -0,0 +1,42 @@
---
title: PDF به PNG
description: صفحات PDF را با مقیاس قابل‌تنظیم به تصاویر PNG بدون افت تبدیل کنید. مناسب برای اسکرین‌شات‌های باکیفیت و پس‌زمینه‌های شفاف.
---
# PDF به PNG
هر صفحهٔ PDF را به یک تصویر PNG تبدیل می‌کند. PNG از فشرده‌سازی بدون افت استفاده می‌کند، بنابراین خروجی همهٔ جزئیات صفحهٔ اصلی را حفظ می‌کند. PDFهای تک‌صفحه‌ای به‌صورت فایل `.png` دانلود می‌شوند؛ PDFهای چندصفحه‌ای یک ZIP تولید می‌کنند.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. لغزندهٔ **مقیاس تصویر** را برای کنترل وضوح خروجی تنظیم کنید.
3. برای شروع پردازش روی **تبدیل** کلیک کنید.
4. یک PNG یا یک بایگانی ZIP خودکار دانلود می‌شود.
## گزینه‌ها
- **مقیاس**: از 1.0x تا 3.0x (پیش‌فرض 2.0x). در 2.0x، یک صفحهٔ استاندارد letter تقریباً با 1,224 x 1,584 پیکسل رندر می‌شود. مقیاس‌های بالاتر تصاویر بزرگ‌تر و واضح‌تری تولید می‌کنند، به بهای حجم فایل و زمان پردازش بیشتر.
## قالب خروجی
- **تک‌صفحه**: `filename.png`
- **چندصفحه**: `filename_pngs.zip` شامل `page_1.png`، `page_2.png` و غیره.
## موارد استفاده
- گرفتن اسکرین‌شات‌های باکیفیت از صفحات PDF برای ارائه‌ها.
- استخراج نمودارها یا دیاگرام‌هایی که به لبه‌های تیز و بدون اثرات فشرده‌سازی نیاز دارند.
- آماده‌سازی داراییها برای طراحی وب از ماکت‌های PDF.
- ساخت تصاویر بدون افت صفحات برای پیش‌پردازش OCR.
## نکته‌ها
- فایل‌های PNG به‌طور چشمگیری از JPG بزرگ‌ترند. اگر حجم فایل از کیفیت کامل مهم‌تر است، از [PDF به JPG](./pdf-to-jpg) یا [PDF به WebP](./pdf-to-webp) استفاده کنید.
- در مقیاس 1.0x، خروجی با وضوح اصلی PDF برابر است. برای خروجی با کیفیت چاپ آن را تا 3.0x افزایش دهید.
## ابزارهای مرتبط
- [PDF به JPG](./pdf-to-jpg)
- [PDF به WebP](./pdf-to-webp)
- [PDF به SVG](./pdf-to-svg)
+43
View File
@@ -0,0 +1,43 @@
---
title: PDF به SVG
description: صفحات PDF را به گرافیک برداری مقیاس‌پذیر SVG تبدیل کنید. متن و شکل‌ها را به‌صورت مسیرهای برداری برای مقیاس‌پذیری نامحدود حفظ می‌کند.
---
# PDF به SVG
هر صفحهٔ PDF را به یک فایل SVG (Scalable Vector Graphics) تبدیل می‌کند. برخلاف قالب‌های شطرنجی، SVG مسیرهای برداری، متن و شکل‌ها را حفظ می‌کند تا خروجی بدون پیکسلی شدن در هر اندازه‌ای مقیاس‌پذیر باشد. با قدرت PyMuPDF.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها روی آن، یک یا چند PDF بارگذاری کنید. می‌توانید چند فایل اضافه و هر کدام را جداگانه مدیریت کنید.
2. برای پردازش همهٔ فایل‌های بارگذاری‌شده روی **تبدیل به SVG** کلیک کنید.
3. تبدیل‌های تک‌فایل و تک‌صفحه به‌صورت یک `.svg` مستقل دانلود می‌شوند. بقیه به‌صورت بایگانی ZIP دانلود می‌شوند.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. هر صفحه با صدور برداری داخلی PyMuPDF به SVG تبدیل می‌شود.
## قالب خروجی
- **تک‌فایل، تک‌صفحه**: `filename.svg`
- **تک‌فایل، چندصفحه**: `filename_svg.zip` شامل `page_1.svg`، `page_2.svg` و غیره.
- **چند فایل**: `pdf_to_svg.zip` با فایل‌هایی که بر اساس نام سند مبدأ سازماندهی شده‌اند.
## موارد استفاده
- استخراج دیاگرام‌ها، نمودارها یا تصویرسازی‌های برداری از گزارش‌های PDF برای استفاده در صفحات وب.
- ویرایش محتوای صفحات PDF در ویرایشگرهای برداری مانند Inkscape یا Illustrator.
- جاسازی پیش‌نمایش‌های مقیاس‌پذیر صفحات در برنامه‌های وب واکنش‌گرا.
- استخراج لوگوها یا گرافیک‌ها از بروشورهای PDF با حفظ لبه‌های تیز.
## نکته‌ها
- SVG با PDFهایی که محتوای برداری دارند بهترین نتیجه را می‌دهد. اسناد اسکن‌شده یا PDFهای پرتصویر فایل‌های SVG حجیمی با دادهٔ شطرنجی جاسازی‌شده تولید می‌کنند.
- برای خروجی شطرنجی از PDFهای پرتصویر، به‌جای آن از [PDF به PNG](./pdf-to-png) یا [PDF به JPG](./pdf-to-jpg) استفاده کنید.
- این ابزار از تبدیل دسته‌ای پشتیبانی می‌کند؛ چند PDF را یک‌جا بارگذاری کنید تا همه در یک اجرا تبدیل شوند.
## ابزارهای مرتبط
- [PDF به PNG](./pdf-to-png)
- [PDF به JPG](./pdf-to-jpg)
- [PDF به Markdown](./pdf-to-markdown)
+43
View File
@@ -0,0 +1,43 @@
---
title: PDF به متن
description: محتوای متن ساده را از فایل‌های PDF استخراج کنید. از استخراج دسته‌ای چند PDF با خروجی فایل‌های TXT پشتیبانی می‌کند.
---
# PDF به متن
همهٔ محتوای متنی فایل‌های PDF را استخراج و به‌صورت فایل‌های ساده `.txt` ذخیره می‌کند. از پردازش دسته‌ای پشتیبانی می‌کند؛ چند PDF بارگذاری کنید و متن همه را در یک عملیات دریافت کنید. با قدرت PyMuPDF.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها روی آن، یک یا چند PDF بارگذاری کنید. فهرست فایل‌ها را با دکمه‌های «افزودن فایل بیشتر» و «پاک کردن فایل‌ها» مدیریت کنید.
2. برای شروع پردازش روی **استخراج متن** کلیک کنید.
3. یک فایل تکی به‌صورت `filename.txt` دانلود می‌شود. چند فایل یک بایگانی `pdf-to-text.zip` تولید می‌کنند.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. همهٔ محتوای متنی همهٔ صفحات به ترتیب خواندن استخراج می‌شود.
## قالب خروجی
- **تک‌فایل**: `filename.txt`
- **چند فایل**: `pdf-to-text.zip` شامل یک `.txt` برای هر PDF ورودی.
## موارد استفاده
- استخراج متن اصلی گزارش‌های PDF برای نمایه‌سازی جستجوی تمام‌متن.
- تبدیل کتاب‌ها یا مقالات الکترونیکی PDF به متن ساده برای خواندن در دستگاه‌های جوهر الکترونیکی.
- بیرون کشیدن متن از قراردادها یا اسناد حقوقی برای تحلیل کلیدواژه.
- حذف قالب‌بندی PDFها برای دریافت متن تمیز برای اسکریپت‌های پردازش داده.
- آماده‌سازی پیکرهٔ متنی از بایگانی‌های PDF برای پردازش زبان طبیعی.
## نکته‌ها
- PDFهای اسکن‌شده (فقط تصویر) فایل‌های متنی خالی تولید می‌کنند، چون لایهٔ متنی برای استخراج ندارند. ابتدا اسناد اسکن‌شده را از OCR عبور دهید.
- خروجی ترتیب خواندن را همان‌طور که PyMuPDF تفسیر می‌کند حفظ می‌کند که معمولاً چپ‌به‌راست و بالا به پایین است. چیدمان‌های چندستونی ممکن است متن درهم‌آمیخته تولید کنند.
- برای خروجی ساختاریافته با سرفصل‌ها و قالب‌بندی، [PDF به Markdown](./pdf-to-markdown) را امتحان کنید. برای JSON ساختاریافتهٔ آماده برای هوش مصنوعی، از [آماده‌سازی PDF برای هوش مصنوعی](./prepare-pdf-for-ai) استفاده کنید.
## ابزارهای مرتبط
- [PDF به Markdown](./pdf-to-markdown)
- [آماده‌سازی PDF برای هوش مصنوعی](./prepare-pdf-for-ai)
- [PDF به Word](./pdf-to-word)
+43
View File
@@ -0,0 +1,43 @@
---
title: PDF به TIFF
description: صفحات PDF را به تصاویر TIFF تبدیل کنید که معمولاً در گردش‌کارهای چاپ، فکس و بایگانی استفاده می‌شوند. در صورت شکست کدگذاری به PNG برمی‌گردد.
---
# PDF به TIFF
هر صفحهٔ PDF را به یک تصویر TIFF تبدیل می‌کند. TIFF قالب استاندارد تولید چاپی، سامانه‌های فکس و بایگانی اسناد است. ابزار برای کدگذاری TIFF از فشرده‌سازی PackBits استفاده می‌کند و اگر کدگذاری صفحه‌ای ناموفق باشد به PNG برمی‌گردد.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. برای پردازش فایل روی **تبدیل** کلیک کنید.
3. یک فایل TIFF یا یک بایگانی ZIP خودکار دانلود می‌شود.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. صفحات با مقیاس ثابت 2x رندر می‌شوند.
## قالب خروجی
- **تک‌صفحه**: `filename.tiff`
- **چندصفحه**: `filename_tiffs.zip` شامل `page_1.tiff`، `page_2.tiff` و غیره.
اگر کدگذاری TIFF برای صفحه‌ای خاص (به دلیل مشکلات فشرده‌سازی) ناموفق باشد، آن صفحه به‌جای آن به‌صورت فایل `.png` ذخیره می‌شود. در این حالت ZIP ترکیبی از فایل‌های TIFF و PNG خواهد داشت.
## موارد استفاده
- ارسال اسناد به نهادهای دولتی یا سامانه‌های حقوقی که قالب TIFF را الزامی می‌کنند.
- آماده‌سازی صفحات برای ارسال فکس از طریق سرویس‌های فکس دیجیتال.
- بایگانی اسناد اسکن‌شده در قالبی بدون افت و با پشتیبانی گسترده.
- ارسال صفحات به سامانه‌های سازمانی مدیریت اسناد.
## نکته‌ها
- فایل‌های TIFF حجیم‌اند. اگر فقط کیفیت بدون افت برای وب یا نمایشگر می‌خواهید، [PDF به PNG](./pdf-to-png) انتخاب بهتری است.
- اگر برخی صفحات به جایگزین PNG نیاز داشتند، محتوای ZIP را بررسی کنید؛ شاید بخواهید آن‌ها را جداگانه تبدیل کنید.
## ابزارهای مرتبط
- [PDF به PNG](./pdf-to-png)
- [PDF به BMP](./pdf-to-bmp)
- [PDF به JPG](./pdf-to-jpg)
+43
View File
@@ -0,0 +1,43 @@
---
title: PDF به WebP
description: صفحات PDF را با کیفیت قابل‌تنظیم به تصاویر WebP تبدیل کنید. حجم کمتر از JPG با کیفیت بصری مشابه.
---
# PDF به WebP
هر صفحهٔ PDF را به یک تصویر WebP تبدیل می‌کند. WebP معمولاً با همان کیفیت ادراکی، فایل‌هایی 25 تا 35% کوچک‌تر از JPG تولید می‌کند و انتخاب خوبی برای وب است.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل روی آن، یک PDF بارگذاری کنید.
2. لغزندهٔ **کیفیت تصویر** را تنظیم کنید.
3. برای پردازش فایل روی **تبدیل** کلیک کنید.
4. یک فایل `.webp` یا یک بایگانی ZIP خودکار دانلود می‌شود.
## گزینه‌ها
- **کیفیت**: لغزنده‌ای از 0% تا 100% (پیش‌فرض 85%). سطح فشرده‌سازی با افت را کنترل می‌کند. مقادیر بالاتر جزئیات بیشتری حفظ می‌کنند.
صفحات در داخل با مقیاس 2x رندر می‌شوند و تصاویری تقریباً دو برابر ابعاد اصلی PDF تولید می‌کنند.
## قالب خروجی
- **تک‌صفحه**: `filename.webp`
- **چندصفحه**: `filename_webps.zip` شامل `page_1.webp`، `page_2.webp` و غیره.
## موارد استفاده
- آماده‌سازی پیش‌نمایش صفحات برای وب‌سایت‌هایی که پهنای باند در آن‌ها مهم است.
- تولید نسخه‌های تصویری سبک از آگهی‌ها یا بروشورها برای شبکه‌های اجتماعی.
- تبدیل دسته‌ای اسناد چندصفحه‌ای به مجموعه‌ای از تصاویر بهینه برای وب.
## نکته‌ها
- WebP در همهٔ مرورگرهای مدرن پشتیبانی می‌شود. برای سازگاری با سامانه‌های قدیمی، از [PDF به JPG](./pdf-to-jpg) استفاده کنید.
- کیفیت 80 تا 85% معمولاً روی نمایشگر از نسخهٔ اصلی قابل تشخیص نیست و حجم فایل را کم نگه می‌دارد.
## ابزارهای مرتبط
- [PDF به JPG](./pdf-to-jpg)
- [PDF به PNG](./pdf-to-png)
- [PDF به BMP](./pdf-to-bmp)
+42
View File
@@ -0,0 +1,42 @@
---
title: PDF به Word
description: فایل‌های PDF را به اسناد قابل‌ویرایش Word (DOCX) تبدیل کنید. از تبدیل دسته‌ای چند PDF به‌طور هم‌زمان پشتیبانی می‌کند.
---
# PDF به Word
فایل‌های PDF را به اسناد قابل‌ویرایش Word (`.docx`) تبدیل می‌کند. ابزار از PyMuPDF برای بازسازی محتوای سند استفاده می‌کند و متن، قالب‌بندی پایه و چیدمان را حفظ می‌کند. از تبدیل تکی و دسته‌ای پشتیبانی می‌کند.
## نحوهٔ کار
1. با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها روی آن، یک یا چند PDF بارگذاری کنید. می‌توانید فایل‌های بیشتری اضافه یا تک‌تک فایل‌ها را از فهرست حذف کنید.
2. برای شروع پردازش روی **تبدیل به DOCX** کلیک کنید.
3. یک فایل تکی به‌صورت `filename.docx` دانلود می‌شود. چند فایل در `converted-documents.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
این ابزار گزینهٔ قابل‌تنظیمی ندارد. هر PDF با موتور تبدیل داخلی PyMuPDF به DOCX تبدیل می‌شود.
## قالب خروجی
- **تک‌فایل**: `filename.docx`
- **چند فایل**: `converted-documents.zip` شامل یک `.docx` برای هر PDF ورودی.
## موارد استفاده
- ویرایش متن PDF دریافتی که باید تغییرش دهید.
- تبدیل گزارش‌های PDF بایگانی‌شده به قالبی که همکاران بتوانند در Microsoft Word یا Google Docs ویرایش کنند.
- انتقال محتوای قراردادها یا پیشنهادهای PDF به Word برای بازبینی و علامت‌گذاری تغییرات.
- انتقال مستندات قدیمی PDF به قالبی قابل‌ویرایش.
## نکته‌ها
- چیدمان‌های پیچیده با متن چندستونی، فرم‌های جاسازی‌شده یا گرافیک سنگین ممکن است کاملاً درست تبدیل نشوند. خروجی را بررسی و قالب‌بندی را در واژه‌پرداز خود اصلاح کنید.
- PDFهای اسکن‌شده (فقط تصویر) فایل‌های DOCX خالی یا بسیار کم‌محتوا تولید می‌کنند. ابتدا آن‌ها را از OCR عبور دهید تا لایهٔ متنی اضافه شود.
- حالت دسته‌ای برای تبدیل کل پوشه‌های PDF کارآمد است؛ همه را یک‌جا بارگذاری کنید.
## ابزارهای مرتبط
- [PDF به متن](./pdf-to-text)
- [PDF به Markdown](./pdf-to-markdown)
- [سازندهٔ گردش کار PDF](./pdf-workflow)
+41
View File
@@ -0,0 +1,41 @@
---
title: PDFها به ZIP
description: چند فایل PDF را برای اشتراک‌گذاری و ذخیره‌سازی آسان در یک بایگانی ZIP بسته‌بندی کنید.
---
# PDFها به ZIP
چند فایل PDF را در یک بایگانی ZIP جمع کنید. این یک ابزار سادهٔ بسته‌بندی است، بدون تبدیل، فشرده‌سازی یا تغییر خود PDFها.
## نحوهٔ کار
1. با ناحیهٔ رها کردن چند فایل PDF بارگذاری کنید.
2. فهرست فایل‌ها را بررسی کنید. هر فایلی را که نمی‌خواهید حذف کنید.
3. روی دکمهٔ پردازش کلیک کنید.
4. یک بایگانی ZIP شامل همهٔ PDFهای بارگذاری‌شده بی‌درنگ دانلود می‌شود.
## ویژگی‌ها
- پذیرش هر تعداد فایل PDF
- حذف تک‌تک فایل‌ها پیش از ساخت بایگانی
- حفظ نام اصلی فایل‌ها درون ZIP
- بدون تغییر محتوای PDF؛ فایل‌ها همان‌طور که هستند بسته‌بندی می‌شوند
- نمایش نام و حجم هر PDF بارگذاری‌شده
## موارد استفاده
- جمع کردن مجموعه‌ای از فاکتورها یا رسیدها برای پیوست ایمیل
- بسته‌بندی تحویلی‌های پروژه (چند گزارش PDF) برای تحویل
- ساخت یک دانلود واحد برای مجموعه‌ای از فرم‌ها یا الگوها
- بایگانی دسته‌ای از اسناد در یک فایل فشرده
## نکته‌ها
- فایل ZIP از نام‌های اصلی فایل‌های PDF استفاده می‌کند. اگر فایل‌های هم‌نام دارید، برای جلوگیری از تداخل پیش از بارگذاری نامشان را تغییر دهید.
- این ابزار خود PDFها را فشرده نمی‌کند. برای کاهش حجم، ابتدا آن‌ها را از فشرده‌سازی PDF عبور دهید و سپس با این ابزار بسته‌بندی کنید.
## ابزارهای مرتبط
- [ادغام PDF](./merge-pdf)
- [تقسیم PDF](./split-pdf)
- [فشرده‌سازی PDF](./compress-pdf)
+95
View File
@@ -0,0 +1,95 @@
---
title: سازندهٔ گردش کار PDF
description: خطوط پردازش PDF سفارشی را با اتصال گره‌ها روی بوم به‌صورت بصری بسازید. عملیاتی مانند ادغام، فشرده‌سازی، واترمارک و صدور را زنجیره کنید.
---
# سازندهٔ گردش کار PDF
سازندهٔ گردش کار به شما امکان می‌دهد چند عملیات PDF را در یک خط پردازش خودکار زنجیره کنید. به‌جای اجرای ابزارها یکی‌یکی، یک گراف بصری از گره‌ها (ورودی، پردازش، خروجی) می‌سازید و همه را با یک کلیک اجرا می‌کنید. فایل‌های شما هرگز از مرورگر خارج نمی‌شوند.
## نحوهٔ کار
رابط به سه پنل تقسیم می‌شود: **جعبه‌ابزار گره‌ها** در سمت چپ، **بوم** در وسط و **پنل تنظیمات** در سمت راست که با انتخاب یک گره نمایش داده می‌شود.
1. **گره‌ها را اضافه کنید**: روی آن‌ها در نوار کناری چپ کلیک کنید یا مستقیماً روی بوم بکشید. از نوار جستجو در بالای جعبه‌ابزار برای فیلتر بر اساس نام استفاده کنید.
2. **گره‌ها را متصل کنید**: از یک سوکت خروجی (پایین گره) به یک سوکت ورودی (بالای گرهٔ دیگر) بکشید. اتصال‌ها از بالا به پایین جریان دارند.
3. **تنظیمات را پیکربندی کنید**: روی یک گره کلیک کنید تا پنل تنظیمات آن در سمت راست باز شود. هر نوع گره گزینه‌های خودش را دارد (بازه‌های صفحه، لغزنده‌های کیفیت، گذرواژه‌ها و غیره).
4. **گردش کار را اجرا کنید**: روی دکمهٔ **اجرا** در نوار ابزار کلیک کنید. موتور گره‌ها را به ترتیب توپولوژیک اجرا می‌کند و هر کدام را به‌ترتیب پردازش می‌کند. یک نوار وضعیت در پایین پیشرفت را نشان می‌دهد.
5. **نتایج را دانلود کنید**: گرهٔ پایانی دانلود، PDF نهایی (یا در صورت تولید چند فایل، ZIP) را ذخیره می‌کند.
## دسته‌های گره
گره‌ها در شش دسته سازماندهی شده‌اند که هر کدام روی بوم رنگ مخصوص خود را دارد:
- **ورودی** (آبی): ورودی PDF، ورودی تصویر، Word/Excel/PowerPoint به PDF و بیش از 15 مبدل قالب دیگر که فایل‌ها را وارد خط پردازش می‌کنند.
- **ویرایش و حاشیه‌نویسی** (نیلی): برش PDF، PDF به خاکستری، وارونه‌سازی رنگ‌ها، افزودن واترمارک، شماره‌گذاری صفحات، سرصفحه و پاصفحه، جلوهٔ اسکنر، تنظیم رنگ‌ها، رنگ پس‌زمینه، حذف صفحات خالی، حذف حاشیه‌نویسی‌ها.
- **سازماندهی و مدیریت** (بنفش): ادغام PDF، تقسیم PDF، استخراج صفحات، چرخاندن PDF، حذف صفحات، وارونه‌سازی ترتیب صفحات، افزودن صفحهٔ خالی، تقسیم صفحات، N-Up کردن PDF، اصلاح اندازهٔ صفحه، ترکیب در یک صفحه، دفترچهٔ PDF، پوستری‌کردن PDF، ویرایش فراداده، فهرست مطالب، OCR روی PDF.
- **بهینه‌سازی و تعمیر** (کهربایی): فشرده‌سازی PDF، رستر کردن PDF، خطی‌سازی PDF، صاف‌کردن PDF، PDF به PDF/A، تبدیل قلم به خطوط برداری، ترمیم PDF.
- **ایمن‌سازی PDF** (صورتی): رمزگذاری، رمزگشایی، پاک‌سازی PDF، مسطح‌سازی PDF، امضای دیجیتال، ردگیری.
- **خروجی** (سبزآبی): دانلود (تشخیص خودکار PDF تکی در برابر ZIP)، PDF به تصاویر، PDF به متن، PDF به DOCX، PDF به XLSX، PDF به CSV، PDF به SVG، PDF به Markdown، استخراج تصاویر.
## ذخیره و بارگذاری گردش‌کارها
نوار ابزار چهار گزینهٔ ماندگاری ارائه می‌دهد:
- **ذخیره**: گردش کار فعلی را به‌صورت یک الگوی نام‌دار در حافظهٔ محلی مرورگر ذخیره می‌کند. می‌توانید چند الگو ذخیره کنید.
- **بارگذاری**: پنجره‌ای با فهرست همهٔ الگوهای ذخیره‌شده باز می‌کند. برای بازیابی یکی روی بارگذاری کلیک کنید یا الگوهایی را که دیگر لازم ندارید حذف کنید.
- **صدور**: گردش کار را به‌صورت فایل `.json` دانلود می‌کند تا بتوانید آن را به اشتراک بگذارید یا پشتیبان بگیرید.
- **ورود**: یک فایل گردش کار `.json` را از دیسک بارگذاری می‌کند و همهٔ گره‌ها، موقعیت‌ها و اتصال‌ها را بازیابی می‌کند.
الگوها در حافظهٔ محلی بین نشست‌ها باقی می‌مانند. فایل‌های JSON صادرشده بین مرورگرها و دستگاه‌ها قابل انتقال‌اند.
## مدل اجرا
موتور از روی اتصال‌های شما یک گراف وابستگی می‌سازد و گره‌ها را به ترتیب توپولوژیک اجرا می‌کند. اگر گره‌ای ناموفق باشد، اجرا متوقف و آن گره قرمز علامت‌گذاری می‌شود. چند قاعده را در نظر داشته باشید:
- هر گردش کار دست‌کم به یک گرهٔ **ورودی** و یک گرهٔ **خروجی** نیاز دارد.
- موتور وابستگی‌های چرخشی را تشخیص می‌دهد و اجرا را با خطا متوقف می‌کند.
- گرهٔ **رمزگذاری** باید آخرین مرحلهٔ پردازش پیش از گرهٔ خروجی باشد. قرار دادن آن در مراحل قبلی هشدار اعتبارسنجی ایجاد می‌کند، چون گره‌های بعدی نمی‌توانند روی دادهٔ رمزگذاری‌شده کار کنند.
- PDFهای محافظت‌شده با گذرواژه هنگام اجرا گذرواژه را درخواست می‌کنند.
- ورودی‌های چند PDF پشتیبانی می‌شوند؛ گرهٔ ادغام PDF می‌تواند آن‌ها را ترکیب کند، یا گره‌های پردازش دسته‌ای هر PDF را جداگانه پردازش می‌کنند.
## انواع سوکت
اتصال‌ها از سوکت‌های نوع‌دار برای جلوگیری از سیم‌کشی نامعتبر استفاده می‌کنند:
- **PDF** (نیلی): یک سند PDF.
- **MultiPDF** (کهربایی): چند سند PDF که با هم بسته‌بندی شده‌اند.
- **Image** (سبز): یک blob تصویر.
## گزینه‌ها
هر گره پیکربندی خودش را دارد که از پنل تنظیمات سمت راست در دسترس است. الگوهای رایج عبارت‌اند از:
- **بازه‌های صفحه** در گره‌های تقسیم PDF، استخراج صفحات و حذف صفحات
- **لغزنده‌های کیفیت** در گره‌های خروجی تبدیل تصویر
- **فیلدهای گذرواژه** در گره‌های رمزگذاری و رمزگشایی
- **ورودی‌های متنی** برای افزودن واترمارک، سرصفحه و پاصفحه و ویرایش فراداده
- **زاویه‌های چرخش** در گرهٔ چرخاندن PDF
- **سطح فشرده‌سازی** در گرهٔ فشرده‌سازی PDF
- **انتخاب زبان OCR** در گرهٔ OCR روی PDF
## موارد استفاده
- **خط پردازش فاکتور**: ورودی PDF -> OCR روی PDF -> استخراج جدول‌های PDF -> دانلود به‌صورت CSV.
- **یکسان‌سازی گزارش**: Word به PDF -> اصلاح اندازهٔ صفحه -> شماره‌گذاری صفحات -> افزودن واترمارک -> فشرده‌سازی PDF -> دانلود.
- **آماده‌سازی بایگانی**: ورودی PDF -> ترمیم PDF -> مسطح‌سازی PDF -> پاک‌سازی PDF -> PDF به PDF/A -> دانلود.
- **استخراج دسته‌ای تصاویر**: ورودی PDF (چند فایل) -> استخراج تصاویر -> دانلود ZIP.
- **دفترچه‌های آمادهٔ چاپ**: ورودی PDF -> دفترچهٔ PDF -> برش PDF -> فشرده‌سازی PDF -> دانلود.
- **توزیع امن**: ورودی PDF -> ردگیری -> حذف حاشیه‌نویسی‌ها -> رمزگذاری -> دانلود.
## نکته‌ها
- برای حذف گرهٔ انتخاب‌شده از بوم از **Delete** یا **Backspace** استفاده کنید.
- برای حذف مستقیم یک گره روی دکمهٔ **X** در نوار وضعیت آن کلیک کنید.
- با کلیک و کشیدن روی فضای خالی، بوم را جابه‌جا کنید. هنگام جابه‌جایی نشانگر به نماد دست تغییر می‌کند.
- در موبایل از دکمهٔ **+** در نوار ابزار برای نمایش یا پنهان کردن جعبه‌ابزار گره‌ها استفاده کنید.
- اگر گردش کار شما چند فایل خروجی تولید کند، گرهٔ دانلود آن‌ها را خودکار در یک ZIP بسته‌بندی می‌کند.
- ساده شروع کنید: پیش از افزودن پیچیدگی، یک خط پردازش دوگره‌ای بسازید و آزمایش کنید.
## ابزارهای مرتبط
- [PDF به متن](./pdf-to-text)
- [PDF به Excel](./pdf-to-excel)
- [استخراج تصاویر](./extract-images)
- [PDF به Markdown](./pdf-to-markdown)
+49
View File
@@ -0,0 +1,49 @@
---
title: PNG به PDF
description: یک یا چند تصویر PNG را با کیفیت قابل‌تنظیم، کاملاً در مرورگر خود، به یک سند PDF تبدیل کنید.
---
# PNG به PDF
تصاویر PNG را با حفظ وضوح کامل به PDF تبدیل کنید. هر PNG به یک صفحهٔ جداگانه با اندازهٔ منطبق بر ابعاد تصویر اصلی تبدیل می‌شود. شفافیت خودکار مدیریت می‌شود.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :--- | :------ |
| PNG | `.png` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های PNG را بکشید و رها کنید. می‌توانید چند فایل را هم‌زمان انتخاب کنید.
2. فهرست فایل‌ها را مدیریت کنید: فایل‌های ناخواسته را حذف یا فایل‌های بیشتری اضافه کنید.
3. از فهرست کشویی یک سطح **کیفیت PDF** انتخاب کنید.
4. روی **تبدیل به PDF** کلیک کنید. خروجی به‌صورت `from_jpgs.pdf` دانلود می‌شود.
ابزار از pdf-lib برای جاسازی مستقیم هر تصویر استفاده می‌کند. اگر PNG به‌صورت بومی قابل جاسازی نباشد (مثلاً به دلیل نمایهٔ رنگی غیرمعمول)، از طریق canvas دوباره به‌صورت JPEG رندر می‌شود.
## گزینه‌ها
**کیفیت PDF** فشرده‌سازی اعمال‌شده پیش از جاسازی را کنترل می‌کند:
- **کیفیت بالا**: کمترین فشرده‌سازی، بیشترین حجم فایل.
- **کیفیت متوسط** (پیش‌فرض): تعادل خوب بین حجم و وضوح.
- **کیفیت پایین**: بیشترین فشرده‌سازی، کوچک‌ترین خروجی.
## موارد استفاده
- تبدیل اسکرین‌شات‌ها به یک PDF چندصفحه‌ای برای گزارش اشکال یا مستندات
- بسته‌بندی خروجی‌های طراحی رابط کاربری در یک فایل برای بازبینی
- تبدیل خروجی‌های دیاگرام (draw.io، Excalidraw) به یک PDF قابل اشتراک
- گردآوری مجموعه‌ای از تصاویر نمودار در یک گزارش
## نکته‌ها
- فایل‌های PNG دارای شفافیت در PDF پس‌زمینهٔ سفید می‌گیرند. اگر پس‌زمینهٔ دیگری می‌خواهید، تصاویر را از قبل ویرایش کنید.
- برای اسکرین‌شات‌ها و دیاگرام‌هایی با لبه‌های تیز و متن، کیفیت بالا از اثرات فشرده‌سازی JPEG جلوگیری می‌کند. کیفیت متوسط یا پایین ممکن است در داخل به JPEG تبدیل کنند.
## ابزارهای مرتبط
- [تصاویر به PDF](./image-to-pdf)
- [JPG به PDF](./jpg-to-pdf)
- [SVG به PDF](./svg-to-pdf)
+53
View File
@@ -0,0 +1,53 @@
---
title: پوستری‌کردن PDF
description: صفحات PDF را به شبکه‌ای از صفحات کوچک‌تر تقسیم کنید تا در قطع بزرگ روی چند برگه چاپ شوند.
---
# پوستری‌کردن PDF
هر صفحهٔ PDF را به شبکه‌ای از زیرصفحه‌های کوچک‌تر تقسیم کنید. این ابزار برای چاپ یک صفحه روی چند برگه کاغذ است که سپس آن‌ها را کنار هم می‌چینید تا یک پوستر یا بنر بزرگ بسازید.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. تعداد **ردیف‌ها** و **ستون‌ها** را برای تعریف شبکه تنظیم کنید (مثلاً ۲ ردیف در ۲ ستون هر صفحه را به ۴ زیرصفحه تقسیم می‌کند).
3. در صورت تمایل یک بازهٔ صفحات مشخص کنید تا فقط صفحات خاصی پوستری شوند.
4. بوم پیش‌نمایش یک شبکهٔ روی صفحهٔ فعلی نشان می‌دهد تا محل برش‌ها را ببینید.
5. بین صفحات جابه‌جا شوید تا شبکه را روی صفحات مختلف بررسی کنید.
6. روی دکمهٔ پردازش کلیک کنید. هر خانهٔ شبکه به یک صفحهٔ جداگانه در PDF خروجی تبدیل می‌شود.
## ویژگی‌ها
- تعداد ردیف و ستون قابل تنظیم برای اندازه‌های متنوع شبکه
- پیش‌نمایش زنده با شبکه‌ای که دقیقاً محل تقسیم صفحات را نشان می‌دهد
- فیلتر بازهٔ صفحات برای پوستری‌کردن فقط صفحات خاص
- پیمایش صفحه به صفحه در پیش‌نمایش
- ذخیرهٔ موقت تصویر صفحات برای پیمایش سریع پیش‌نمایش
- خطوط قرمز خط‌چین مرز برش‌ها را به‌وضوح مشخص می‌کنند
## گزینه‌ها
| گزینه | توضیح |
| --------------- | -------------------------------------------- |
| **ردیف‌ها** | تعداد تقسیم‌های افقی (پیش‌فرض: ۱) |
| **ستون‌ها** | تعداد تقسیم‌های عمودی (پیش‌فرض: ۱) |
| **بازهٔ صفحات** | صفحاتی که پوستری می‌شوند (خالی = همهٔ صفحات) |
## موارد استفاده
- چاپ یک PDF در اندازهٔ پوستر روی برگه‌های استاندارد A4 یا Letter برای چیدن روی دیوار
- ساخت بنرهای بزرگ از طرح PDF تک‌صفحه‌ای
- تقسیم نقشه‌های فنی بزرگ به قطعات قابل چاپ
- چاپ در قطع بزرگ بدون دسترسی به چاپگر عریض
## نکته‌ها
- شبکهٔ 2x2 یک صفحه را به ۴ صفحه و شبکهٔ 3x3 یک صفحه را به ۹ صفحه تبدیل می‌کند. شبکه را بر اساس اندازهٔ نهایی مورد نظر برنامه‌ریزی کنید.
- شبکهٔ پیش‌نمایش کمک می‌کند مطمئن شوید محتوای مهم روی خط برش قرار نمی‌گیرد. در صورت نیاز ردیف‌ها یا ستون‌ها را تغییر دهید.
- برای عملیات معکوس (قرار دادن چند صفحه روی یک برگه)، از [N-Up کردن PDF](./n-up-pdf) استفاده کنید.
## ابزارهای مرتبط
- [N-Up کردن PDF](./n-up-pdf)
- [تقسیم صفحات](./divide-pages)
- [تقسیم PDF](./split-pdf)
+55
View File
@@ -0,0 +1,55 @@
---
title: PowerPoint به PDF
description: ارائه‌های PowerPoint (PPT، PPTX) و فایل‌های ODP را با حفظ قالب‌بندی اسلایدها به PDF تبدیل کنید.
---
# PowerPoint به PDF
فایل‌های ارائه را به PDF تبدیل کنید. هر اسلاید به یک صفحه در سند خروجی تبدیل می‌شود و متن، تصاویر، شکل‌ها و جلوه‌ها با موتور LibreOffice در مرورگر رندر می‌شوند. از قالب‌های جدید و قدیمی PowerPoint و همچنین قالب OpenDocument Presentation پشتیبانی می‌کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوندها |
| :------------------------ | :------ |
| PowerPoint (جدید) | `.pptx` |
| PowerPoint (قدیمی) | `.ppt` |
| OpenDocument Presentation | `.odp` |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های ارائه را بکشید و رها کنید.
2. فهرست فایل‌ها را بررسی کنید. در صورت نیاز فایل اضافه یا حذف کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور LibreOffice در اولین استفاده بارگذاری می‌شود و سپس هر فایل را تبدیل می‌کند.
4. یک فایل مستقیماً به‌صورت PDF دانلود می‌شود. چند فایل در `powerpoint-converted.zip` بسته‌بندی می‌شوند.
## گزینه‌ها
این ابزار تنظیمات اضافی ندارد. اسلایدها در ابعاد اصلی خود رندر می‌شوند.
## خروجی
| تعداد ورودی | خروجی |
| :-------------- | :---------------------------------------------------------------- |
| ۱ فایل | دانلود یک PDF (نام اصلی فایل با پسوند `.pdf`) |
| ۲ فایل یا بیشتر | بایگانی ZIP (`powerpoint-converted.zip`) شامل یک PDF برای هر فایل |
## موارد استفاده
- تبدیل ارائه به PDF پیش از اشتراک با مخاطبانی که ممکن است PowerPoint نداشته باشند
- ساخت نسخهٔ چاپی جزوه از اسلایدها برای همایش یا کارگاه
- بایگانی ارائه‌ها در قالبی که روی همهٔ دستگاه‌ها یکسان نمایش داده می‌شود
- تبدیل دسته‌ای مجموعه‌ای از ارائه‌های ODP از LibreOffice Impress به PDF
- تهیهٔ نسخهٔ PDF از ارائهٔ معرفی کسب‌وکار برای پیوست ایمیل
## نکته‌ها
- انیمیشن‌ها و جلوه‌های گذار اسلایدها در PDF نمایش داده نمی‌شوند. هر اسلاید به‌صورت یک صفحهٔ ثابت ثبت می‌شود.
- ویدیوهای جاسازی‌شده در خروجی نمایش داده نمی‌شوند. در صورت نیاز آن‌ها را با یک اسکرین‌شات یا تصویر جایگزین کنید.
- یادداشت‌های سخنران در خروجی پیش‌فرض PDF گنجانده نمی‌شوند. اگر به یادداشت‌ها نیاز دارید، ابتدا از نمای «چاپ یادداشت‌ها» در خود PowerPoint خروجی بگیرید.
- موتور LibreOffice پس از اولین بارگذاری ذخیره می‌شود، بنابراین تبدیل ارائهٔ دوم در همان نشست بسیار سریع‌تر است.
## ابزارهای مرتبط
- [Word به PDF](./word-to-pdf)
- [Excel به PDF](./excel-to-pdf)
- [تصاویر به PDF](./image-to-pdf)
+47
View File
@@ -0,0 +1,47 @@
---
title: آماده‌سازی PDF برای هوش مصنوعی
description: محتوای PDF را به JSON ساختاریافته و بهینه برای LLMها و خطوط پردازش هوش مصنوعی مانند LlamaIndex استخراج کنید. از پردازش دسته‌ای پشتیبانی می‌کند.
---
# آماده‌سازی PDF برای هوش مصنوعی
محتوای فایل‌های PDF را استخراج کرده و به‌صورت JSON بهینه برای ورود به مدل‌های زبانی بزرگ (LLM) و چارچوب‌های هوش مصنوعی مانند LlamaIndex ساختاردهی می‌کند. محتوای هر صفحه استخراج شده و در قالبی ساختاریافته، آماده برای خطوط RAG، چت‌بات‌ها یا سامانه‌های جست‌وجوی معنایی، سازماندهی می‌شود.
## نحوهٔ کار
1. یک یا چند PDF را با کلیک روی ناحیهٔ رها کردن یا کشیدن فایل‌ها روی آن بارگذاری کنید.
2. برای شروع پردازش روی **استخراج** کلیک کنید.
3. یک فایل به‌صورت `filename_llm.json` دانلود می‌شود. چند فایل یک بایگانی `pdf-for-ai.zip` تولید می‌کنند.
این ابزار از یکپارچگی PyMuPDF با LlamaIndex برای استخراج محتوای سطح صفحه همراه با فراداده استفاده می‌کند و خروجی‌ای تولید می‌کند که مستقیماً در چارچوب‌های هوش مصنوعی قابل بارگذاری است.
## گزینه‌ها
این ابزار گزینهٔ قابل تنظیمی ندارد. همهٔ صفحات با متن کامل و فراداده استخراج می‌شوند.
## قالب خروجی
- **یک فایل**: `filename_llm.json`
- **چند فایل**: `pdf-for-ai.zip` شامل یک `_llm.json` برای هر PDF ورودی.
خروجی JSON از طرح‌وارهٔ سند LlamaIndex با محتوای متنی و فیلدهای فرادادهٔ هر صفحه پیروی می‌کند.
## موارد استفاده
- آماده‌سازی اسناد PDF برای خطوط تولید تقویت‌شده با بازیابی (RAG).
- ساخت پایگاه دانش قابل جست‌وجو از بایگانی‌های PDF برای یک چت‌بات هوش مصنوعی.
- ارسال گزارش‌های PDF به جریان‌های تحلیل مبتنی بر LLM.
- پیش‌پردازش مقالات پژوهشی برای سامانه‌های جست‌وجوی معنایی و پرسش و پاسخ.
- ساخت داده‌های آموزشی ساختاریافته از مجموعه‌های اسناد PDF.
## نکته‌ها
- برای استخراج متن ساده بدون قالب‌بندی ویژهٔ هوش مصنوعی، از [PDF به متن](./pdf-to-text) استفاده کنید.
- برای خروجی Markdown که سرفصل‌ها و ساختار را حفظ می‌کند، از [PDF به Markdown](./pdf-to-markdown) استفاده کنید.
- PDFهای اسکن‌شده خروجی خالی یا ناچیزی تولید می‌کنند. ابتدا آن‌ها را با OCR پردازش کنید تا پیش از استخراج یک لایهٔ متنی اضافه شود.
## ابزارهای مرتبط
- [PDF به متن](./pdf-to-text)
- [PDF به Markdown](./pdf-to-markdown)
- [PDF به JSON](./pdf-to-json)
+64
View File
@@ -0,0 +1,64 @@
---
title: محافظت از PDF
description: از فایل‌های PDF با رمزگذاری AES ۲۵۶ بیتی محافظت کنید. رمز کاربر و رمز مالک را با محدودیت‌های استفادهٔ قابل تنظیم تعیین کنید.
---
# محافظت از PDF
PDF خود را پشت یک رمز عبور قفل کنید تا فقط افراد مجاز بتوانند آن را باز کنند. BentoPDF از رمزگذاری AES ۲۵۶ بیتی استفاده می‌کند (همان استانداردی که بانک‌ها و نهادهای دولتی به کار می‌برند) و کاملاً در مرورگر شما با QPDF اعمال می‌شود.
## نحوهٔ کار
1. یک فایل PDF بارگذاری کنید.
2. یک **رمز کاربر** (الزامی) وارد کنید. این رمزی است که افراد برای باز کردن فایل به آن نیاز دارند.
3. در صورت تمایل یک **رمز مالک** وارد کنید. با تعیین آن، PDF محدودیت‌هایی می‌گیرد که از چاپ، ویرایش، کپی و حاشیه‌نویسی جلوگیری می‌کند.
4. روی **رمزگذاری PDF** کلیک کنید.
5. فایل رمزگذاری‌شده را دانلود کنید.
## انواع رمز عبور
### رمز کاربر (الزامی)
رمز کاربر همان چیزی است که گیرندگان برای باز کردن PDF وارد می‌کنند. بدون آن، سند کاملاً غیرقابل دسترس است. هر PDF رمزگذاری‌شده باید یکی داشته باشد.
### رمز مالک (اختیاری)
رمز مالک تعیین می‌کند کاربر مجاز پس از باز کردن فایل چه کارهایی می‌تواند انجام دهد. وقتی یک رمز مالک متفاوت تعیین می‌کنید، BentoPDF به‌طور خودکار سخت‌گیرانه‌ترین مجموعهٔ محدودیت‌ها را اعمال می‌کند:
- غیرفعال‌شدن تغییر
- غیرفعال‌شدن استخراج/کپی
- غیرفعال‌شدن چاپ
- غیرفعال‌شدن حاشیه‌نویسی
- غیرفعال‌شدن پر کردن فرم
- غیرفعال‌شدن مونتاژ سند
اگر رمز مالک را خالی بگذارید، PDF رمزگذاری می‌شود (همچنان برای باز شدن به رمز کاربر نیاز دارد) اما پس از باز شدن هیچ محدودیت استفاده‌ای ندارد.
## جزئیات رمزگذاری
- **الگوریتم**: AES-256 (استاندارد رمزگذاری پیشرفتهٔ ۲۵۶ بیتی)
- **طول کلید**: ۲۵۶ بیت
- **استاندارد**: رمزگذاری PDF 2.0 (پیاده‌سازی QPDF)
شکستن AES-256 با حملهٔ جست‌وجوی فراگیر با فناوری فعلی از نظر محاسباتی ناممکن است. امنیت PDF رمزگذاری‌شدهٔ شما کاملاً به قدرت رمز عبورتان بستگی دارد.
## موارد استفاده
- محافظت از گزارش‌های مالی محرمانه پیش از ارسال با ایمیل
- ایمن‌سازی اسناد حقوقی که با وکیل طرف مقابل به اشتراک گذاشته می‌شوند
- افزودن رمز عبور به پرونده‌های پزشکی یا اطلاعات شناسایی شخصی
- توزیع محتوای پولی (کتاب الکترونیکی، گزارش) با کنترل دسترسی
- رعایت سیاست‌های حفاظت از داده که رمزگذاری داده‌های ذخیره‌شده را الزامی می‌کنند
## نکته‌ها
- از یک رمز عبور قوی و منحصربه‌فرد استفاده کنید. یک عبارت عبور ۱۲ نویسه‌ای یا بیشتر با حروف کوچک و بزرگ، اعداد و نمادها ایده‌آل است.
- رمز عبور را از طریق کانالی جداگانه (تلفن، پیامک) به اشتراک بگذارید، هرگز در همان ایمیلی که PDF را می‌فرستید.
- اگر فقط می‌خواهید کارها را محدود کنید (بدون چاپ، بدون کپی) بدون اینکه برای باز کردن رمز لازم باشد، به‌جای آن از ابزار تغییر مجوزها استفاده کنید.
## ابزارهای مرتبط
- [رمزگشایی PDF](./unlock-pdf): حذف رمزگذاری وقتی رمز عبور را می‌دانید
- [تغییر مجوزها](./change-permissions): تغییر محدودیت‌های استفادهٔ خاص
- [حذف محدودیت‌ها](./remove-restrictions): حذف تمام امنیت از یک PDF
- [پاک‌سازی PDF](./sanitize-pdf): حذف محتوای پنهان پیش از رمزگذاری
+44
View File
@@ -0,0 +1,44 @@
---
title: PSD به PDF
description: فایل‌های Photoshop (PSD) را در مرورگر به PDF تبدیل کنید. رایگان، خصوصی و بدون نیاز به نرم‌افزار Adobe.
---
# PSD به PDF
فایل‌های PSD برنامهٔ Adobe Photoshop را به سند PDF تبدیل کنید. PSD قالب اصلی Photoshop است و باز کردن آن معمولاً به نرم‌افزار گران Adobe نیاز دارد. این ابزار تصویر ترکیبی یکپارچهٔ فایل PSD را به‌صورت یک صفحهٔ PDF با وضوح کامل رندر می‌کند.
## قالب‌های پشتیبانی‌شده
| قالب | پسوند | توضیحات |
| :-------------- | :----- | :---------------------------------- |
| Adobe Photoshop | `.psd` | تصویر ترکیبی یکپارچه را رندر می‌کند |
## نحوهٔ کار
1. روی ناحیهٔ بارگذاری کلیک کنید یا فایل‌های PSD را بکشید و رها کنید. از چند فایل پشتیبانی می‌شود.
2. فهرست فایل‌ها را بررسی کنید. فایل‌های ناخواسته را با نماد سطل زباله حذف کنید یا با **افزودن فایل‌های بیشتر** فایل اضافه کنید.
3. روی **تبدیل به PDF** کلیک کنید. موتور PyMuPDF فایل PSD را می‌خواند و تصویر ترکیبی را با وضوح اصلی در یک صفحهٔ PDF جاسازی می‌کند.
4. یک PSD یک PDF تولید می‌کند. وقتی چند فایل PSD بارگذاری می‌کنید، در یک PDF چندصفحه‌ای به نام `psd_to_pdf.pdf` ترکیب می‌شوند و هر PSD یک صفحه می‌شود.
## گزینه‌ها
نیازی به تنظیمات نیست. مبدل از دادهٔ تصویر یکپارچهٔ فایل PSD استفاده می‌کند.
## موارد استفاده
- پیش‌نمایش طرح‌های Photoshop بدون باز کردن Photoshop
- ارسال نمونهٔ طرح برای مشتریانی که Adobe Creative Suite ندارند
- چاپ آثار هنری با وضوح بالا از فایل‌های PSD
- ساخت نمونه‌کار PDF از چند فایل طراحی PSD، که هر کدام یک صفحه در یک سند می‌شود
## نکته‌ها
- تبدیل، نمای ترکیبی (یکپارچه) PSD را رندر می‌کند. لایه‌های جداگانه، لایه‌های تنظیم و جلوه‌های لایه به‌صورت عناصر جداگانه در PDF حفظ نمی‌شوند.
- چند فایل PSD به‌جای PDFهای جداگانه در یک PDF چندصفحه‌ای ادغام می‌شوند. این برای ساخت نمونه‌کار یا کاتالوگ مفید است.
- فایل‌های PSD با وضوح بسیار بالا (فایل‌های چاپی ۳۰۰ DPI یا بیشتر) PDFهای حجیمی تولید می‌کنند. ابزار وضوح کامل را حفظ می‌کند.
## ابزارهای مرتبط
- [تصاویر به PDF](./image-to-pdf)
- [PNG به PDF](./png-to-pdf)
- [VSD به PDF](./vsd-to-pdf)
Loaded 100 of 3344 files, more files were not shown because too many files have changed in this diff. Show more