diff --git a/.github/workflows/seo-audit.yml b/.github/workflows/seo-audit.yml index d8b9f4d1..848e3593 100644 --- a/.github/workflows/seo-audit.yml +++ b/.github/workflows/seo-audit.yml @@ -5,9 +5,9 @@ on: paths: - '**/*.html' - 'public/locales/**' - - 'scripts/generate-i18n-pages.mjs' - - 'scripts/generate-sitemap.mjs' - - 'scripts/seo-audit.mjs' + - 'scripts/**' + - 'translations/**' + - 'docs/**' - 'src/partials/**' - 'package.json' - 'package-lock.json' diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index ea552ee5..3e3208cd 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -28,6 +28,7 @@ env: SIMPLE_MODE: ${{ vars.SIMPLE_MODE }} BASE_URL: ${{ vars.BASE_URL }}/ SITE_URL: ${{ vars.SITE_URL }} + ALLOW_INDEXING: ${{ vars.ALLOW_INDEXING }} HUSKY: 0 jobs: diff --git a/.prettierignore b/.prettierignore index fb47a898..5e8b35fd 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,3 +5,7 @@ blog/posts/ public/pdfjs-viewer/ public/pdfjs-annotation-viewer/ + +translations/source.json +translations/pages.json +translations/ui-source.json diff --git a/COMMERCIAL-LICENSE.md b/COMMERCIAL-LICENSE.md new file mode 100644 index 00000000..33545ac4 --- /dev/null +++ b/COMMERCIAL-LICENSE.md @@ -0,0 +1,37 @@ +# BentoPDF Commercial License + +Thank you for purchasing a BentoPDF commercial license. This file summarizes what your license covers. The full terms are on the [licensing page](https://www.bentopdf.com/licensing). + +## What the license covers + +- Use of BentoPDF in closed-source or proprietary applications, without the AGPL-3.0 obligation to disclose your source code. +- Unlimited users and devices. +- Private modifications, including your own branding and removing the BentoPDF branding (Simple Mode). +- Self-hosting, including hosted access for your own users and customers. +- Lifetime updates and email support. + +No license key is required or provided. + +## Bundled components + +**Building on BentoPDF? Hyper Compress is included.** The license includes Hyper Compress as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF. + +You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not: + +- call it from your own code through an API, SDK, command line, or headless or server process; +- separate, repackage or sublicense it, or use it in other software; +- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website; +- modify the bundled component itself. + +Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year. + +## Third-party components + +The commercial license covers BentoPDF's own code. Third-party components keep their own licenses: + +- **PyMuPDF, Ghostscript and CoherentPDF** are licensed under AGPL-3.0. By default they load at runtime from a CDN. If you host or modify them yourself, their AGPL-3.0 terms apply to them. +- Other components are distributed under their own open-source licenses. Keep their license and notice files in your deployment. + +## Questions + +Email [contact@bentopdf.com](mailto:contact@bentopdf.com) with your purchase details. diff --git a/Dockerfile b/Dockerfile index 4551448e..21ecea51 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ ARG SIMPLE_MODE=false ENV SIMPLE_MODE=$SIMPLE_MODE ARG DISABLE_GITHUB_STARS=false ENV DISABLE_GITHUB_STARS=$DISABLE_GITHUB_STARS -ARG COMPRESSION_MODE=all +ARG COMPRESSION_MODE=o ENV COMPRESSION_MODE=$COMPRESSION_MODE # global arg to local arg - BASE_URL is read from env by vite.config.ts @@ -65,10 +65,12 @@ ARG DISABLE_TOOLS ENV DISABLE_TOOLS=$DISABLE_TOOLS # Public-facing canonical site URL. Defaults to the official site so self-hosters -# consolidate SEO signals back to bentopdf.com. Override with --build-arg -# SITE_URL=https://your-domain.example to claim canonical for your own deployment. +# consolidate SEO signals back to bentopdf.com. A custom SITE_URL marks every page +# noindex unless ALLOW_INDEXING=true is also set. ARG SITE_URL=https://www.bentopdf.com ENV SITE_URL=$SITE_URL +ARG ALLOW_INDEXING=false +ENV ALLOW_INDEXING=$ALLOW_INDEXING ENV NODE_OPTIONS="--max-old-space-size=3072" diff --git a/Dockerfile.nonroot b/Dockerfile.nonroot index ebeb6f30..681635c4 100644 --- a/Dockerfile.nonroot +++ b/Dockerfile.nonroot @@ -21,7 +21,7 @@ ARG SIMPLE_MODE=false ENV SIMPLE_MODE=$SIMPLE_MODE ARG DISABLE_GITHUB_STARS=false ENV DISABLE_GITHUB_STARS=$DISABLE_GITHUB_STARS -ARG COMPRESSION_MODE=all +ARG COMPRESSION_MODE=o ENV COMPRESSION_MODE=$COMPRESSION_MODE ARG BASE_URL @@ -60,6 +60,8 @@ ENV VITE_FOOTER_TEXT=$VITE_FOOTER_TEXT # Public-facing canonical site URL. See Dockerfile for details. ARG SITE_URL=https://www.bentopdf.com ENV SITE_URL=$SITE_URL +ARG ALLOW_INDEXING=false +ENV ALLOW_INDEXING=$ALLOW_INDEXING ENV NODE_OPTIONS="--max-old-space-size=3072" diff --git a/README.md b/README.md index ea008571..5a887074 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@
Supported by
+Organizational Supporters
@@ -9,12 +10,21 @@
+
+
+
+
+
Individual Supporters
+ + **BentoPDF** is a powerful, privacy-first, client-side PDF toolkit that is self-hostable and allows you to manipulate, edit, merge, and process PDF files directly in your browser. No server-side processing is required, ensuring your files remain secure and private. -[](https://github.com/alam00000/bentopdf/pkgs/container/bentopdf-simple) [](https://ko-fi.com/alio01)  -[](https://github.com/sponsors/alam00000) +[](https://github.com/alam00000/bentopdf/pkgs/container/bentopdf-simple)   @@ -26,7 +36,6 @@ - [Documentation](#-documentation) - [Licensing](#-licensing) - [Stargazers over time](#-stargazers-over-time) -- [Thank You to Our Sponsors](#-thank-you-to-our-sponsors) - [Why BentoPDF?](#-why-bentopdf) - [Features / Tools Supported](#️-features--tools-supported) - [Organize & Manage PDFs](#organize--manage-pdfs) @@ -100,6 +109,8 @@ BentoPDF is **dual-licensed** to fit your needs: > **One-time purchase** · **Unlimited devices & users** · **Lifetime updates** · **No AGPL obligations** +> **Building on BentoPDF? Hyper Compress is included.** The commercial license covers [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component when you use it through BentoPDF's own tools. Using the engine on its own or in other software needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing) from $99/year, and [Kura](https://www.bentopdf.com/kura#pricing) is licensed separately from $99/year. See [Bundled Components](https://www.bentopdf.com/licensing#bundled-components). + 📖 For more details, see our [Licensing Page](https://www.bentopdf.com/licensing) ### AGPL Components (Pre-configured via CDN) @@ -123,17 +134,6 @@ BentoPDF does **not** bundle AGPL-licensed processing libraries in its source co --- -## 💖 Thank You to Our Sponsors - -We're incredibly grateful to all our sponsors and supporters who help keep BentoPDF free and open source! - -[](https://github.com/sponsors/alam00000) -[](https://ko-fi.com/alio01) - -














-
----
-
## ✨ Why BentoPDF?
- **Privacy First**: All processing happens in your browser. Your files are never uploaded to a server, guaranteeing 100% privacy.
@@ -430,32 +430,34 @@ npm run preview
**Compression Modes:**
-BentoPDF supports different compression modes for optimized builds:
+By default the build saves no compressed copies, and your server or host compresses files as it sends them. If your server can send precompressed files (nginx `gzip_static` or `brotli_static`, Apache, Caddy `precompressed`), set `COMPRESSION_MODE` to save `.gz` and/or `.br` copies next to each text and WASM file. The originals are always kept.
+
+The prebuilt Docker images have no copies, and their nginx compresses with gzip on the fly. Build your own image with `COMPRESSION_MODE=g` to have it serve `.gz` copies instead. The image's nginx can't serve brotli, so for brotli put a proxy or CDN that compresses with brotli, such as Traefik or Cloudflare, in front of it.
```bash
-# Gzip only (smallest Docker image size)
-npm run build:gzip
-docker build --build-arg COMPRESSION_MODE=g -t bentopdf:gzip .
-
-# Brotli only (best compression ratio)
-npm run build:brotli
-docker build --build-arg COMPRESSION_MODE=b -t bentopdf:brotli .
-
-# No compression (fastest build time)
+# No copies (default)
npm run build:original
docker build --build-arg COMPRESSION_MODE=o -t bentopdf:original .
-# All formats (default, maximum browser compatibility)
+# Gzip copies
+npm run build:gzip
+docker build --build-arg COMPRESSION_MODE=g -t bentopdf:gzip .
+
+# Brotli copies
+npm run build:brotli
+docker build --build-arg COMPRESSION_MODE=b -t bentopdf:brotli .
+
+# Both
npm run build:all
docker build --build-arg COMPRESSION_MODE=all -t bentopdf:all .
```
-| Mode | Files Kept | Use Case |
-| ----- | ----------- | --------------------------------- |
-| `g` | `.gz` only | Standard nginx or minimal size |
-| `b` | `.br` only | Modern CDN with Brotli support |
-| `o` | originals | Development or custom compression |
-| `all` | all formats | Maximum compatibility (default) |
+| Mode | Copies made | Use case |
+| ----- | --------------- | ------------------------------------- |
+| `o` | none | Default, server compresses on the fly |
+| `g` | `.gz` | nginx with `gzip_static` |
+| `b` | `.br` | Servers with `brotli_static` |
+| `all` | `.gz` and `.br` | Servers that serve both |
**CDN Optimization:**
diff --git a/STATIC-HOSTING.md b/STATIC-HOSTING.md
index 44ec284f..6f3d1be3 100644
--- a/STATIC-HOSTING.md
+++ b/STATIC-HOSTING.md
@@ -94,32 +94,38 @@ You have two clean overrides depending on what you want.
### Run your own SEO instance (claim canonical for yourself)
If you operate a public deployment and want it to be the indexed copy for
-your audience, set `SITE_URL` at build time to your origin. The build will
-emit canonicals, hreflang, and structured data pointing at your domain.
+your audience, set `SITE_URL` at build time to your origin and also set
+`ALLOW_INDEXING=true`. The build will emit canonicals, hreflang and
+sitemap URLs pointing at your domain. Without `ALLOW_INDEXING=true`, a
+build with a custom `SITE_URL` marks every page `noindex`.
- Docker:
```sh
- docker build --build-arg SITE_URL=https://pdf.example.com -t bentopdf-self .
+ docker build --build-arg SITE_URL=https://pdf.example.com --build-arg ALLOW_INDEXING=true -t bentopdf-self .
```
- Netlify, Vercel, GitHub Pages, or any other static host: set `SITE_URL`
- in your project's environment variables and re-deploy. The build script
- reads it during `npm run build`.
+ and `ALLOW_INDEXING=true` in your project's environment variables and
+ re-deploy. The build script reads them during `npm run build`. For the
+ GitHub Pages workflow, add both as repository variables.
### Stay invisible to search engines (no SEO competition either way)
Set the runtime environment variable `ROBOTS_NOINDEX=true`. The container
-injects `` into every served
-HTML file at startup. The canonical link still points at the official site
-by default, so when crawlers do follow internal links they still see
-bentopdf.com as the authoritative source.
+then sends an `X-Robots-Tag: noindex, follow` header with every response.
+The canonical link still points at the official site by default, so when
+crawlers do follow internal links they still see bentopdf.com as the
+authoritative source. `ROBOTS_NOINDEX` only works in the Docker image; if
+you serve the files yourself, build with your own `SITE_URL` instead (see
+above).
```sh
docker run -d -p 8080:8080 -e ROBOTS_NOINDEX=true ghcr.io/alam00000/bentopdf:latest
```
-You can combine the two: build with your own `SITE_URL` and run with
-`ROBOTS_NOINDEX=true` for a private deployment that's neither competing
-with bentopdf.com nor advertising itself.
+A build with your own `SITE_URL` and without `ALLOW_INDEXING=true` is
+already `noindex`, so it neither competes with bentopdf.com nor advertises
+itself. `ROBOTS_NOINDEX=true` does the same at runtime for the prebuilt
+images.
### Note on Simple Mode
diff --git a/advertise.html b/advertise.html
new file mode 100644
index 00000000..433f63ad
--- /dev/null
+++ b/advertise.html
@@ -0,0 +1,399 @@
+
+
+
+
+
+ + Payment received, thanks. + We review every ad and put it live within 24 hours. To change + anything, email + contact@bentopdf.com. +
++ Checkout didn't go through. + Nothing was charged. Try again below or email + contact@bentopdf.com. +
++ Put your logo on the BentoPDF homepage, right above the tools + people open to work on their PDFs. Eight slots, a flat monthly + price, and no tracking of any kind. +
++ Billed monthly. Cancel anytime and your ad stays up until the + end of the month you paid for. +
++ Four slots, first in line above the tools +
+Four slots, right below the top row
++ Checkout is handled by Dodo Payments, our merchant of record, so + you get a proper invoice with sales tax taken care of. +
++ Checkout asks for the name to show, your link, and a link to + your logo as a square SVG or PNG of at least 128 by 128 pixels. +
++ We review every ad by hand and put it live within 24 hours. Need + a new logo or link later? Just email us. +
++ We don't track our visitors, so we don't track your ad + either. + No pixels, no scripts, no impression or click counts. Your logo + is served from bentopdf.com and links straight to your site. To + measure visits, add UTM parameters to your link and read them in + your own analytics. +
++ Software, services and products that are useful to people + who work with documents. We don't accept gambling, adult + content, malware, or anything misleading. If we turn your ad + down, we refund you in full. +
++ On the bentopdf.com homepage, in every language, directly + above the tool grid. Self-hosted copies of BentoPDF never + show ads. +
++ No. BentoPDF has no analytics, so there are no impression or + click numbers to share. Add UTM parameters to your link to + see the visits we send you in your own analytics. +
++ Email us and we'll cancel your subscription. Your ad stays + up until the end of the month you paid for. +
+Email us about slots, pricing or anything else.
+` | لغة الواجهة الافتراضية (مثل `fr` و`de`) | _(none)_ |
+| `--brand-name ` | اسم العلامة التجارية المخصص | _(none)_ |
+| `--brand-logo ` | مسار الشعار نسبةً إلى `public/` | _(none)_ |
+| `--footer-text ` | نص التذييل المخصص | _(none)_ |
+| `--ocr-languages ` | لغات OCR المراد تضمينها مفصولة بفواصل | `eng` |
+| `--list-ocr-languages` | يطبع رموز وأسماء OCR المدعومة ثم يخرج | off |
+| `--search-ocr-language ` | يبحث في رموز OCR بالاسم أو الاختصار | off |
+| `--dockerfile ` | ملف Dockerfile المستخدم | `Dockerfile` |
+| `--skip-docker` | تخطي بناء Docker وتصديره | off |
+| `--skip-wasm` | تخطي تنزيل WASM (إعادة استخدام ملفات `.tgz`) | off |
+
+تقبل المطالبة التفاعلية أيضًا `list` لطباعة القائمة الكاملة لرموز Tesseract المدعومة و`search ` للعثور على تطابقات مثل `search german` أو `search chi`.
+
+::: warning شرط الأصل نفسه
+يجب تقديم ملفات WASM من **الأصل نفسه** الذي يقدّم تطبيق BentoPDF. تستخدم Web Workers الدالة `importScripts()` التي لا تستطيع تحميل السكربتات عبر الأصول. فمثلًا، إذا كان BentoPDF يعمل على `https://internal.example.com`، فيجب أن يكون عنوان WASM الأساسي أيضًا `https://internal.example.com/wasm`.
+:::
+
+#### الخطوات اليدوية
+
+
+إذا كنت تفضّل تنفيذ الخطوات يدويًا دون السكربت
+
+**الخطوة 1: نزّل حزم 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
+```
+
+**الخطوة 2: ابنِ صورة Docker بالعناوين الداخلية**
+
+```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 .
+```
+
+**الخطوة 3: صدّر صورة Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**الخطوة 4: انقل إلى الشبكة المعزولة**
+
+انسخ عبر USB أو مستودع الأدوات الداخلي أو أي وسيلة نقل معتمدة:
+
+- `bentopdf.tar`: صورة Docker
+- حزم `.tgz` الخمس لـ WASM/OCR من الخطوة 1
+- مجلد `tesseract-langdata/` من الخطوة 1
+- مجلد `ocr-fonts/` من الخطوة 1
+
+**الخطوة 5: الإعداد داخل الشبكة المعزولة**
+
+```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
+```
+
+تأكد من أن الملفات متاحة على العناوين التي ضبطتها في الخطوة 2، بما فيها `.../ocr/worker.min.js` و`.../ocr/core` و`.../ocr/lang-data` و`.../ocr/fonts`.
+
+
+
+::: info البناء من المصدر بدلًا من Docker؟
+اضبط المتغيرات في `.env.production` قبل تشغيل `npm run build`:
+
+```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 وقت التشغيل، لا تضمينها في المصدر
+ :::
+
+## متطلبات النظام
+
+| المتطلب | الحد الأدنى |
+| ------- | -------------------------------- |
+| التخزين | ~100 MB (النواة بدون وحدات AGPL) |
+| الذاكرة | 512 MB |
+| المعالج | أي معالج حديث |
+
+::: tip
+BentoPDF موقع ثابت، فلا حاجة إلى قاعدة بيانات أو خادم خلفي!
+:::
diff --git a/docs/ar/self-hosting/kubernetes.md b/docs/ar/self-hosting/kubernetes.md
new file mode 100644
index 00000000..104a97e0
--- /dev/null
+++ b/docs/ar/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# النشر باستخدام Kubernetes
+
+قد يكون Kubernetes أكثر مما يلزم لموقع ثابت، لكنه قد يكون خيارًا ممتازًا إذا كنت تعتمد أصلًا Helm وGitOps.
+
+> [!IMPORTANT]
+> **الترويسات المطلوبة لتحويل ملفات Office**
+>
+> تتطلب الأدوات المعتمدة على LibreOffice (تحويل Word وExcel وPowerPoint) ترويسات HTTP هذه لدعم `SharedArrayBuffer`:
+>
+> - `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:`) تعمل على **المنفذ 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)
+
+إذا كان المخطط منشورًا على GHCR كعنصر OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## إتاحته
+
+### إعادة توجيه المنفذ (اختبار سريع)
+
+```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` (عارض توقيع PDF / ملء النماذج فارغ)
+
+إذا عرضت وحدة تحكم المتصفح `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` عند طلب `.mjs`، فإن وحدة تحكم 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"]
+ }
+```
+
+اربطه بالمجلد المقدَّم:
+
+```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`: افتح أي أداة وانظر إلى العنوان (مثل `edit-pdf` و`merge-pdf` و`compress-pdf`). تُخفى الأدوات المعطلة من الصفحة الرئيسية والبحث والاختصارات ومنشئ سير العمل والوصول المباشر عبر URL. راجع [دليل Docker](/ar/self-hosting/docker#تعطيل-أدوات-محددة) للاطلاع على القائمة الكاملة للخيارات.
diff --git a/docs/ar/self-hosting/netlify.md b/docs/ar/self-hosting/netlify.md
new file mode 100644
index 00000000..4d9ce36e
--- /dev/null
+++ b/docs/ar/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# النشر على Netlify
+
+توفّر [Netlify](https://netlify.com) استضافة ممتازة للمواقع الثابتة مع خطة مجانية سخية.
+
+## النشر بنقرة واحدة
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## النشر اليدوي
+
+### الخطوة 1: ربط المستودع
+
+1. سجّل الدخول إلى [Netlify](https://app.netlify.com)
+2. انقر على "Add new site" ← "Import an existing project"
+3. اربط حسابك على GitHub
+4. اختر نسخة BentoPDF المتفرعة (fork) الخاصة بك
+
+### الخطوة 2: ضبط إعدادات البناء
+
+| الإعداد | القيمة |
+| ---------- | --------------- |
+| أمر البناء | `npm run build` |
+| مجلد النشر | `dist` |
+| إصدار Node | 18+ |
+
+### الخطوة 3: النشر
+
+انقر على "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 يتوقف عند 55%
+
+إذا توقفت تحويلات المستندات عند 55%، فافتح وحدة تحكم 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` في وحدة التحكم، فإن ملفات `.wasm.gz` تفتقر إلى ترويسات `Content-Encoding: gzip`. تأكد من وجود كتل `[[headers]]` الخاصة بـ `soffice.wasm.gz` و`soffice.data.gz` في `netlify.toml`.
+
+### فشل البناء
+
+تحقق من توافق إصدار Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### بطء التحميل الأولي
+
+فعّل تحسين الأصول في Site settings ← Build & deploy ← Asset optimization.
diff --git a/docs/ar/self-hosting/nginx.md b/docs/ar/self-hosting/nginx.md
new file mode 100644
index 00000000..1964a057
--- /dev/null
+++ b/docs/ar/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# النشر باستخدام Nginx
+
+استضف BentoPDF على خادمك الخاص باستخدام Nginx.
+
+## المتطلبات
+
+- خادم Ubuntu/Debian
+- Nginx مثبّت
+- شهادة SSL (يُنصح بـ Let's Encrypt)
+
+## الخطوة 1: بناء المشروع
+
+```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
+```
+
+## الخطوة 2: نسخ الملفات
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## الخطوة 3: إعداد 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;
+ }
+}
+```
+
+## الخطوة 4: تفعيل الموقع
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## الخطوة 5: 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
+```
diff --git a/docs/ar/self-hosting/vercel.md b/docs/ar/self-hosting/vercel.md
new file mode 100644
index 00000000..737430a3
--- /dev/null
+++ b/docs/ar/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# النشر على Vercel
+
+توفّر [Vercel](https://vercel.com) أسهل تجربة نشر للمواقع الثابتة.
+
+## النشر بنقرة واحدة
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## النشر اليدوي
+
+### الخطوة 1: عمل Fork للمستودع
+
+اعمل Fork لـ [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) إلى حسابك على GitHub.
+
+### الخطوة 2: الاستيراد إلى 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` |
+
+### الخطوة 3: متغيرات البيئة (اختياري)
+
+أضف هذه عند الحاجة:
+
+| المتغير | الوصف |
+| ----------------------- | ---------------------------------------------------------- |
+| `SIMPLE_MODE` | اضبطه على `true` لواجهة مبسطة |
+| `VITE_BRAND_NAME` | اسم العلامة التجارية المخصص (يحل محل "BentoPDF") |
+| `VITE_BRAND_LOGO` | مسار الشعار نسبةً إلى `public/` (مثل `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | نص التذييل/حقوق النشر المخصص |
+| `VITE_DEFAULT_LANGUAGE` | لغة الواجهة الافتراضية (مثل `fr` و`de` و`es`) |
+
+### الخطوة 4: النشر
+
+انقر على "Deploy" وانتظر اكتمال البناء.
+
+## نطاق مخصص
+
+1. انتقل إلى إعدادات مشروعك
+2. افتح "Domains"
+3. أضف نطاقك المخصص
+4. اضبط DNS كما هو موضح
+
+## القيود
+
+::: warning الملفات الكبيرة
+للدوال عديمة الخادم (serverless) في Vercel حد قدره 50MB. بما أن BentoPDF موقع ثابت، فلا ينبغي أن يؤثر ذلك عليك، لكن وحدات WASM كبيرة (~100MB إجمالًا). تأكد من تقديمها من مجلد `/public`.
+:::
+
+## استكشاف الأخطاء وإصلاحها
+
+### انتهاء مهلة البناء
+
+إذا انتهت مهلة البناء، فجرّب:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### خطأ 404 عند التحديث
+
+أضف ملف `vercel.json` لتوجيه SPA:
+
+```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" }
+ ]
+ }
+ ]
+}
+```
+
+للتحقق، افتح وحدة تحكم DevTools ونفّذ `console.log(window.crossOriginIsolated)`، ويجب أن تعيد `true`.
diff --git a/docs/ar/tools/add-attachments.md b/docs/ar/tools/add-attachments.md
new file mode 100644
index 00000000..cd798894
--- /dev/null
+++ b/docs/ar/tools/add-attachments.md
@@ -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)
diff --git a/docs/ar/tools/add-blank-page.md b/docs/ar/tools/add-blank-page.md
new file mode 100644
index 00000000..37b1a210
--- /dev/null
+++ b/docs/ar/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: إضافة صفحة فارغة
+description: أدرج صفحة فارغة أو أكثر في أي موضع من مستند PDF.
+---
+
+# إضافة صفحة فارغة
+
+أدرج صفحات فارغة في ملف PDF في الموضع الذي تحدده. أنت تتحكم في مكان الصفحات الفارغة وعددها.
+
+## طريقة العمل
+
+1. ارفع ملف PDF. تعرض الأداة عدد الصفحات.
+2. أدخل **الموضع** الذي ستُدرج فيه الصفحات الفارغة. استخدم `0` للإدراج في البداية تمامًا، أو إجمالي عدد الصفحات للإضافة في النهاية.
+3. أدخل **عدد** الصفحات الفارغة المراد إضافتها (الافتراضي 1).
+4. انقر على زر المعالجة. سيتم تنزيل ملف PDF المعدّل مع الصفحات الفارغة المدرجة.
+
+## المزايا
+
+- الإدراج في أي موضع: بداية المستند أو وسطه أو نهايته
+- إضافة عدة صفحات فارغة في عملية واحدة
+- يتحدث تلميح الموضع ديناميكيًا بحسب عدد صفحات ملف PDF المرفوع
+- صفحات فارغة بحجم A4 القياسي
+
+## حالات الاستخدام
+
+- إضافة صفحة فاصلة فارغة بين أقسام مستند مجمّع
+- إدراج صفحات فارغة لضبط الطباعة على الوجهين
+- إضافة مساحة للملاحظات المكتوبة بخط اليد في دليل دراسي مطبوع
+- إكمال مستند لتحقيق الحد الأدنى المطلوب لعدد الصفحات
+
+## نصائح
+
+- الموضع `0` يُدرج قبل الصفحة الأولى. أما الموضع المساوي لإجمالي عدد الصفحات فيضيف بعد الصفحة الأخيرة.
+- إذا أردت إدراج محتوى (وليس صفحات فارغة فقط) في موضع محدد، فاستخدم [أداة PDF المتعددة](./pdf-multi-tool) لإدراج ملف PDF آخر بعد صفحة معينة.
+
+## أدوات ذات صلة
+
+- [تكرار وتنظيم](./organize-pdf)
+- [أداة PDF المتعددة](./pdf-multi-tool)
+- [دمج PDF](./merge-pdf)
diff --git a/docs/ar/tools/add-page-labels.md b/docs/ar/tools/add-page-labels.md
new file mode 100644
index 00000000..49fc4f5d
--- /dev/null
+++ b/docs/ar/tools/add-page-labels.md
@@ -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. اضبطه على 0 للترقيم الذي يبدأ من الصفر.
+- **متابعة الترقيم عبر النطاقات المتفرقة**: فعّله عندما تستهدف القاعدة صفحات غير متجاورة (مثل `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-numbering)
+- [تعديل الإشارات المرجعية](./bookmark)
diff --git a/docs/ar/tools/add-stamps.md b/docs/ar/tools/add-stamps.md
new file mode 100644
index 00000000..0d83528e
--- /dev/null
+++ b/docs/ar/tools/add-stamps.md
@@ -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)
diff --git a/docs/ar/tools/add-watermark.md b/docs/ar/tools/add-watermark.md
new file mode 100644
index 00000000..465b4831
--- /dev/null
+++ b/docs/ar/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: إضافة علامة مائية
+description: ضع علامات مائية نصية أو صورية على صفحات PDF باستخدام محرر مرئي بالسحب والإفلات ومعاينة مباشرة.
+---
+
+# إضافة علامة مائية
+
+أضف علامات مائية نصية أو صورية إلى صفحات PDF باستخدام محرر مرئي. يمكنك تحديد موضع العلامة المائية بسحبها مباشرة على المعاينة، وتغيير حجمها بمقابض الزوايا، وضبط الشفافية والتدوير والخط واللون. يمكن أن يكون لكل صفحة موضع علامة مائية خاص بها، أو يمكنك تطبيق العلامة نفسها على جميع الصفحات دفعة واحدة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. يفتح المحرر مع معاينة مباشرة للصفحة الأولى وطبقة علامة مائية قابلة للسحب.
+3. اختر بين وضع العلامة المائية **النصية** أو **الصورية** باستخدام أزرار التبديل.
+4. اضبط إعدادات العلامة المائية في اللوحة الجانبية.
+5. اسحب العلامة المائية على المعاينة لوضعها في المكان الذي تريده تمامًا. استخدم مقابض الزوايا لتغيير الحجم.
+6. تنقّل بين الصفحات لضبط علامات مائية لكل صفحة، أو أبقِ خيار **تطبيق على جميع الصفحات** محددًا.
+7. انقر على **إضافة علامة مائية** للمعالجة والتنزيل.
+
+## الخيارات
+
+**إعدادات العلامة المائية النصية:**
+
+- **النص**: نص العلامة المائية (مثل "CONFIDENTIAL" أو "DRAFT").
+- **حجم الخط**: من 10 إلى 200 نقطة. الافتراضي 72.
+- **اللون**: أي لون عبر منتقي الألوان.
+- **الشفافية**: تحكم في الشفافية من شفاف تمامًا إلى معتم تمامًا.
+- **التدوير**: دوّر نص العلامة المائية من -180 إلى 180 درجة.
+
+**إعدادات العلامة المائية الصورية:**
+
+- **رفع صورة**: ارفع ملف PNG أو JPG أو أي صورة أخرى لاستخدامه كعلامة مائية.
+- **الشفافية**: تحكم في شفافية الصورة.
+- **المقياس**: غيّر حجم العلامة المائية الصورية.
+
+**إعدادات التخطيط:**
+
+- **مفردة**: علامة مائية واحدة لكل صفحة، تُحدَّد بالسحب أو بالمواضع المسبقة.
+- **مكررة**: تكرر العلامة المائية على الصفحة كلها في شبكة قطرية تتبع زاوية التدوير، فتغطي العلامة المستند من حافة إلى حافة.
+- **الفجوة الأفقية**: المسافة بين المربعات المكررة على امتداد اتجاه النص، كنسبة مئوية من عرض العلامة المائية (في الوضع المكرر فقط).
+- **الفجوة الرأسية**: المسافة بين صفوف المربعات المكررة، كنسبة مئوية من ارتفاع العلامة المائية (في الوضع المكرر فقط).
+
+**الإعدادات العامة:**
+
+- **تطبيق على جميع الصفحات**: عند تحديده تنطبق العلامة المائية نفسها على كل صفحة. ألغِ تحديده لضبط علامات مائية فردية لكل صفحة.
+- **نطاق الصفحات**: حدد الصفحات التي ستحصل على العلامة المائية (مثل "1-3, 5, 7-9" أو "all").
+
+## المزايا
+
+- تحديد الموضع بالسحب والإفلات على معاينة PDF مباشرة
+- علامة مائية قابلة لتغيير الحجم بمقابض الزوايا
+- وضعا العلامة المائية النصية والصورية
+- تخطيط مفرد أو مكرر على كامل الصفحة مع مسافات قابلة للضبط
+- تطبيق العلامة لكل صفحة أو على المستند كله
+- التنقل بين الصفحات صفحة صفحة في المعاينة
+- عناصر تحكم في الشفافية والتدوير
+- تصفية بنطاق الصفحات
+
+## حالات الاستخدام
+
+- وسم المستندات المسودة بعلامة "DRAFT" قبل تعميمها للمراجعة
+- إضافة علامات "CONFIDENTIAL" المائية إلى التقارير المالية الحساسة
+- وسم المستندات بعلامة مائية صورية لشعار الشركة
+- ختم "SAMPLE" على وثائق المنتجات المشاركة مع العملاء المحتملين
+- إضافة إشعارات حقوق النشر إلى مواد PDF الموزعة
+
+## نصائح
+
+- للعلامات المائية القطرية عبر الصفحة، اضبط التدوير على نحو 45 درجة وكبّر حجم الخط.
+- يجعل الوضع المكرر إعادة استخدام المستند بعد القص أصعب بكثير، لأن إزالة علامة واحدة تترك عشرات غيرها. خفّض الشفافية عند التكرار ليبقى النص الأساسي مقروءًا.
+- العلامات المائية الصورية ذات الخلفيات الشفافة (بصيغة PNG) تمتزج بسلاسة أكبر مع محتوى المستند.
+- إذا كنت تحتاج نص علامة مائية مختلفًا في صفحات مختلفة، فألغِ تحديد "تطبيق على جميع الصفحات" وتنقّل صفحة بصفحة.
+
+## أدوات ذات صلة
+
+- [رأس وتذييل](./header-footer)
+- [إضافة أختام](./add-stamps)
+- [ترقيم بيتس](./bates-numbering)
+- [توقيع PDF](./sign-pdf)
diff --git a/docs/ar/tools/adjust-colors.md b/docs/ar/tools/adjust-colors.md
new file mode 100644
index 00000000..d23a7bd6
--- /dev/null
+++ b/docs/ar/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: ضبط الألوان
+description: اضبط السطوع والتباين والتشبع والصبغة ودرجة الحرارة والتلوين وغاما والبني الداكن (سيبيا) في ملف PDF.
+---
+
+# ضبط الألوان
+
+مجموعة أدوات كاملة لتدرج الألوان في ملفات PDF. اضبط ثمانية معاملات مستقلة (السطوع، التباين، التشبع، إزاحة الصبغة، درجة الحرارة، التلوين، غاما، السيبيا) مع معاينة مباشرة تتحدث أثناء تحريك كل شريط تمرير.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. يفتح المحرر عارضًا معاينة للصفحة الأولى ولوحة إعدادات الألوان.
+3. حرّك أشرطة التمرير لضبط كل معامل لوني. تتحدث المعاينة في الوقت الفعلي.
+4. انقر على **إعادة تعيين** لاستعادة جميع أشرطة التمرير إلى مواضعها الافتراضية.
+5. انقر على **تطبيق** لمعالجة جميع الصفحات وتنزيل ملف PDF المعدّل.
+
+## الخيارات
+
+- **السطوع**: تفتيح الصفحة بأكملها أو تعتيمها (من -100 إلى +100).
+- **التباين**: زيادة الفرق بين المناطق الفاتحة والداكنة أو تقليله (من -100 إلى +100).
+- **التشبع**: زيادة شدة الألوان أو تقليلها (من -100 إلى +100). ضبطه على -100 ينتج تدرجًا رماديًا.
+- **إزاحة الصبغة**: تدوير عجلة الألوان لإزاحة جميع الألوان بشكل موحد.
+- **درجة الحرارة**: إزاحة الألوان نحو الدفء (أصفر/برتقالي) أو البرودة (أزرق).
+- **التلوين**: إضافة مسحة خضراء أو أرجوانية.
+- **غاما**: ضبط سطوع الدرجات المتوسطة باستخدام منحنى غاما. القيم الأقل من 1.0 تعتّم الدرجات المتوسطة، والقيم الأعلى من 1.0 تفتّحها.
+- **السيبيا**: تطبيق تأثير لوني سيبيا كلاسيكي. القيم الأعلى تعطي صبغة بنية أقوى.
+
+## المزايا
+
+- ثمانية معاملات لونية قابلة للضبط بشكل مستقل
+- معاينة مباشرة تستجيب فورًا لتغييرات أشرطة التمرير
+- زر إعادة تعيين للعودة السريعة إلى الإعدادات الافتراضية
+- معالجة جميع صفحات المستند
+- يعمل مع أي محتوى PDF (نصوص وصور ورسومات)
+
+## حالات الاستخدام
+
+- تفتيح مسح ضوئي داكن أو تصحيح صفحات مفرطة التعريض
+- تقليل تشبع مستند ملون لتوفير الحبر قبل الطباعة
+- تطبيق صبغة سيبيا لإعطاء الشهادات أو الجوائز مظهرًا قديمًا
+- تصحيح درجة حرارة اللون في الصور المضمّنة في ملف PDF
+- رفع التباين في المستندات الممسوحة الباهتة أو منخفضة الجودة
+
+## نصائح
+
+- للتحويل السريع إلى التدرج الرمادي، اسحب شريط التشبع إلى -100 بالكامل.
+- شريط غاما مفيد بشكل خاص لتحسين قابلية قراءة المستندات الممسوحة التي تكون فيها الدرجات المتوسطة داكنة جدًا أو فاتحة جدًا.
+- مثل أدوات التأثيرات الصورية الأخرى، تحوّل هذه الأداة كل صفحة إلى صورة نقطية. سيكون الناتج قائمًا على الصور، لذا لن يكون النص قابلًا للتحديد.
+
+## أدوات ذات صلة
+
+- [عكس الألوان](./invert-colors)
+- [تأثير الماسح الضوئي](./scanner-effect)
+- [لون الخلفية](./background-color)
diff --git a/docs/ar/tools/alternate-merge.md b/docs/ar/tools/alternate-merge.md
new file mode 100644
index 00000000..ae91273d
--- /dev/null
+++ b/docs/ar/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: تبديل ومزج الصفحات
+description: ادمج ملفات PDF بتداخل الصفحات من كل ملف بالتناوب، مع الحفاظ على الإشارات المرجعية.
+---
+
+# تبديل ومزج الصفحات
+
+داخِل صفحات عدة ملفات PDF بحيث تتناوب الصفحات بين المستندات. هذه هي الأداة التي تلجأ إليها عندما يكتفي الدمج العادي بإلحاق الملفات واحدًا تلو الآخر، بينما تحتاج إلى الصفحة 1 من الملف A، ثم الصفحة 1 من الملف B، ثم الصفحة 2 من الملف A، وهكذا.
+
+## طريقة العمل
+
+1. ارفع ملفي PDF على الأقل باستخدام منطقة الإفلات.
+2. تعرض الأداة كل ملف مع عدد صفحاته وحجمه.
+3. اسحب مقابض الإمساك لإعادة ترتيب الملف الذي تأتي صفحاته أولًا في تسلسل التداخل.
+4. انقر على **مزج الصفحات** لإنتاج الناتج المتداخل.
+5. يتم تنزيل النتيجة باسم `alternated-mixed.pdf`.
+
+## المزايا
+
+- تداخل الصفحات عبر أي عدد من ملفات PDF (اثنان على الأقل)
+- إعادة ترتيب الملفات بالسحب والإفلات للتحكم في أولوية التداخل
+- الحفاظ على الإشارات المرجعية من المستندات المصدر
+- عرض عدد الصفحات وحجم الملف لكل ملف مرفوع
+- المعالجة عبر web worker مخصص للحفاظ على سلاسة الواجهة
+
+## حالات الاستخدام
+
+- إعادة تجميع المسح الضوئي على الوجهين عندما مُسحت الصفحات الفردية والزوجية بشكل منفصل
+- دمج أوراق الأسئلة مع مفاتيح الإجابات بحيث يتبع كل سؤال جوابه
+- دمج مستندات بلغتين صفحة بصفحة (مثل الإنجليزية في وجه والترجمة في الوجه التالي)
+- تداخل مسح الوجه الأمامي والخلفي من ماسح ضوئي أحادي الوجه
+
+## نصائح
+
+- إذا كانت أعداد صفحات ملفات PDF المصدر مختلفة، فستنفد صفحات المستند الأقصر أولًا وستظهر الصفحات المتبقية من المستند الأطول في النهاية.
+- ترتيب الملفات مهم: الملف الأول في القائمة يقدّم الصفحة الأولى من الناتج. اسحب لإعادة الترتيب عند الحاجة.
+
+## أدوات ذات صلة
+
+- [دمج PDF](./merge-pdf)
+- [تكرار وتنظيم](./organize-pdf)
+- [تقسيم PDF](./split-pdf)
diff --git a/docs/ar/tools/background-color.md b/docs/ar/tools/background-color.md
new file mode 100644
index 00000000..f82868e3
--- /dev/null
+++ b/docs/ar/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: لون الخلفية
+description: غيّر لون خلفية كل صفحة في ملف PDF مع الحفاظ على كل المحتوى فوقها.
+---
+
+# لون الخلفية
+
+اضبط لون خلفية موحدًا خلف كل المحتوى الموجود في ملف PDF. تنشئ الأداة مستطيلًا ملونًا في كل صفحة وتضع المحتوى الأصلي فوقه، فتبقى النصوص والصور والرسومات مرئية بالكامل على الخلفية الجديدة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. اختر لون الخلفية باستخدام منتقي الألوان. الافتراضي أصفر فاتح (#FFFFCC).
+3. انقر على **تغيير لون الخلفية** للمعالجة.
+4. يتم تنزيل ملف PDF المحدّث تلقائيًا.
+
+## الخيارات
+
+- **لون الخلفية**: منتقي ألوان قياسي لاختيار أي لون موحد. الافتراضي أصفر فاتح.
+
+## المزايا
+
+- تطبيق لون خلفية موحد على كل صفحة
+- الحفاظ على كل المحتوى الأصلي (نصوص وصور ورسومات متجهة) فوق الطبقة الملونة
+- الإبقاء على أبعاد الصفحات الأصلية
+- يعمل مع مستندات بأي عدد من الصفحات
+
+## حالات الاستخدام
+
+- إضافة خلفية بلون كريمي أو عاجي فاتح لمنح المستندات مظهرًا أنعم يشبه الورق
+- ترميز مجموعات المستندات بالألوان بتطبيق ألوان خلفية مختلفة على فئات مختلفة
+- إنشاء نسخ متميزة بصريًا من المستند نفسه لجماهير مختلفة
+- إضافة صبغة خلفية فاتحة لتحسين القراءة عند عرض المستندات على الشاشة
+
+## نصائح
+
+- الألوان الفاتحة الهادئة هي الأنسب. قد تجعل الخلفية الداكنة جدًا النص صعب القراءة ما لم يكن النص فاتح اللون أصلًا.
+- إذا أردت تغيير لون الخلفية والنص معًا، فطبّق لون الخلفية أولًا، ثم استخدم [تغيير لون النص](./text-color) على الناتج.
+- تعمل هذه الأداة على مستوى بنية PDF (دون تحويل إلى صور نقطية)، لذا يبقى النص قابلًا للتحديد والبحث في الناتج.
+
+## أدوات ذات صلة
+
+- [تغيير لون النص](./text-color)
+- [عكس الألوان](./invert-colors)
+- [ضبط الألوان](./adjust-colors)
diff --git a/docs/ar/tools/bates-numbering.md b/docs/ar/tools/bates-numbering.md
new file mode 100644
index 00000000..732ab2a7
--- /dev/null
+++ b/docs/ar/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: ترقيم بيتس
+description: طبّق أرقام بيتس على ملف PDF واحد أو عدة ملفات بقوالب وحشو وخطوط ومواضع قابلة للتخصيص.
+---
+
+# ترقيم بيتس
+
+يختم ترقيم بيتس معرّفات متسلسلة على كل صفحة من ملفات PDF. وهو الطريقة القياسية لتسمية المستندات في الإجراءات القانونية وعمليات التدقيق وسير عمل الامتثال. تدعم هذه الأداة عدة ملفات وقوالب قابلة للتخصيص، وتنتج ملفات PDF مرقّمة بشكل فردي أو أرشيف ZIP واحدًا.
+
+## طريقة العمل
+
+1. ارفع ملف PDF واحدًا أو أكثر. يمكنك سحب عدة ملفات دفعة واحدة.
+2. اختر نمطًا جاهزًا أو أنشئ قالبًا مخصصًا.
+3. اضبط الموضع والخط والحجم واللون وأرقام البداية.
+4. انقر على **تطبيق أرقام بيتس** للمعالجة.
+5. يُنزَّل الملف الواحد مباشرة. أما الملفات المتعددة فتُنزَّل كأرشيف ZIP.
+
+## الخيارات
+
+- **النمط الجاهز**: اختر من الصيغ المدمجة:
+ - Exhibit + Case + Bates + Page (مثل "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (بدون رقم الصفحة)
+ - Case + Bates
+ - Bates Number Only (مثل "000001")
+ - مخصص (اكتب قالبك الخاص)
+- **تخصيص النمط**: سلسلة قالب تستخدم العناصر النائبة: `[BATES]` و`[PAGE]` و`[FILE]` و`[FILENAME]`.
+- **حشو بيتس**: عدد الخانات (من 3 إلى 6) لأرقام بيتس المحشوة بالأصفار. يظهر في الوضع المخصص فقط.
+- **الموضع**: رأس أو تذييل، يسار أو وسط أو يمين.
+- **يبدأ بيتس من**: أول رقم بيتس. الافتراضي 1. يستمر الترقيم عبر الملفات.
+- **يبدأ عداد الملفات من**: الرقم الابتدائي للعنصر النائب `[FILE]`.
+- **الخط**: Helvetica أو Times New Roman أو Courier.
+- **حجم الخط**: حجم النص المختوم.
+- **اللون**: منتقي ألوان لنص رقم بيتس.
+
+## المزايا
+
+- معاينة مباشرة توضح شكل أرقام بيتس عبر جميع الملفات المرفوعة
+- دعم عدة ملفات مع ترقيم متواصل عبر المستندات
+- إعادة ترتيب الملفات بالسحب والإفلات للتحكم في تسلسل الترقيم
+- ستة خيارات للموضع (رأس/تذييل، يسار/وسط/يمين)
+- حساب تكيفي للهوامش يراعي أحجام الصفحات المختلفة
+- ناتج ZIP لدفعات الملفات المتعددة
+- عناصر نائبة في القوالب لأقصى قدر من المرونة
+
+## حالات الاستخدام
+
+- ختم مستندات الكشف في التقاضي بأرقام مرفقات متسلسلة
+- ترقيم حزم أدلة التدقيق التي تمتد عبر عشرات الملفات
+- تطبيق أرقام مرجعية تنظيمية على وثائق الامتثال
+- تسمية مرفقات طلبات براءات الاختراع بمعرّفات خاصة بالقضية
+
+## نصائح
+
+- اسحب الملفات في قائمة الملفات لإعادة ترتيبها قبل المعالجة. يتبع تسلسل ترقيم بيتس هذا الترتيب.
+- استخدم العنصر النائب `[FILENAME]` لتضمين اسم الملف الأصلي في الختم، ما يساعد على تتبع الصفحات إلى المستندات المصدر.
+- يتحدث مربع المعاينة في الوقت الفعلي عند تغيير الإعدادات، لذا يمكنك التحقق من الصيغة قبل المعالجة.
+
+## أدوات ذات صلة
+
+- [أرقام الصفحات](./page-numbers)
+- [إضافة تسميات الصفحات](./add-page-labels)
+- [رأس وتذييل](./header-footer)
diff --git a/docs/ar/tools/bmp-to-pdf.md b/docs/ar/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..f22c91cd
--- /dev/null
+++ b/docs/ar/tools/bmp-to-pdf.md
@@ -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 باستخدام pdf-lib. يطابق حجم الصفحة أبعاد الصورة الأصلية.
+
+## الخيارات
+
+لا تعرض هذه الأداة إعدادات جودة إضافية. تُضمَّن الصور بدقتها الأصلية بصيغة 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)
diff --git a/docs/ar/tools/bookmark.md b/docs/ar/tools/bookmark.md
new file mode 100644
index 00000000..72535c25
--- /dev/null
+++ b/docs/ar/tools/bookmark.md
@@ -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 الحالية وتعرضها عند التحميل.
+- **الوضع الدفعي**: فعّله لتحديد عدة إشارات وتطبيق تغيير اللون أو النمط أو الحذف عليها دفعة واحدة.
+- **توسيع/طي الكل**: إظهار أو إخفاء الإشارات الفرعية المتداخلة بسرعة.
+
+## حالات الاستخدام
+
+- إضافة جدول محتويات إلى كتاب مدرسي أو دليل لا يحتوي على إشارات
+- إعادة هيكلة الإشارات في مستند ممسوح ضوئيًا بعد المعالجة بالتعرف الضوئي
+- تصدير الإشارات إلى CSV وتعديلها في جدول بيانات ثم إعادة استيرادها
+- تنظيف الإشارات المولّدة تلقائيًا التي تحتوي على مراجع صفحات خاطئة
+- إضافة إشارات ملونة لتمييز الأقسام المهمة في مذكرة قانونية
+
+## نصائح
+
+- استخدم استيراد CSV لإنشاء إشارات كثيرة دفعة واحدة. الصيغة بسيطة: `title,page,level` حيث المستوى 1 هو المستوى الأعلى.
+- يتيح لك وضع الالتقاط النقر على موضع محدد في صفحة PDF لتعيين وجهة الإشارة، وهو أدق من استهداف رقم الصفحة فقط.
+- صدّر إشاراتك قبل إجراء تغييرات كبيرة لتحتفظ بنسخة احتياطية.
+
+## أدوات ذات صلة
+
+- [جدول المحتويات](./table-of-contents)
+- [محرر PDF](./edit-pdf)
+- [إضافة تسميات الصفحات](./add-page-labels)
diff --git a/docs/ar/tools/cbz-to-pdf.md b/docs/ar/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..00c128a9
--- /dev/null
+++ b/docs/ar/tools/cbz-to-pdf.md
@@ -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 باستخدام pdf-lib. أما ملفات 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)
diff --git a/docs/ar/tools/change-permissions.md b/docs/ar/tools/change-permissions.md
new file mode 100644
index 00000000..2117781b
--- /dev/null
+++ b/docs/ar/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: تغيير الأذونات
+description: اضبط أو عدّل أذونات استخدام PDF للطباعة والنسخ والتحرير والتعليق. يستخدم تشفير AES بطول 256 بت.
+---
+
+# تغيير الأذونات
+
+تحكم بدقة فيما يستطيع المستلمون فعله بملف PDF الخاص بك. فعلى عكس التشفير الأساسي الذي يكتفي بقفل الملف بكلمة مرور، تتيح لك هذه الأداة السماح أو المنع انتقائيًا للطباعة والنسخ والتحرير والتعليق وتعبئة النماذج وتجميع المستند واستخراج الصفحات، وكل ذلك يُفرض عبر تشفير AES بطول 256 بت.
+
+## طريقة العمل
+
+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): أزل جميع القيود عندما تملك كلمة مرور المالك
diff --git a/docs/ar/tools/combine-single-page.md b/docs/ar/tools/combine-single-page.md
new file mode 100644
index 00000000..c65714a0
--- /dev/null
+++ b/docs/ar/tools/combine-single-page.md
@@ -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)
diff --git a/docs/ar/tools/compare-pdfs.md b/docs/ar/tools/compare-pdfs.md
new file mode 100644
index 00000000..76709e98
--- /dev/null
+++ b/docs/ar/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: مقارنة ملفات PDF
+description: قارن مستندي PDF جنبًا إلى جنب أو بوضع التراكب مع كشف مفصل للتغييرات وتصنيفها.
+---
+
+# مقارنة ملفات PDF
+
+ارفع ملفي PDF وشاهد بالضبط ما تغيّر بينهما. تقرن الأداة الصفحات بذكاء وتكشف الاختلافات في النصوص والصور والتعليقات التوضيحية والرؤوس والتنسيق وتعرضها بعرض جنبًا إلى جنب أو بالتراكب.
+
+## طريقة العمل
+
+1. ارفع ملفي PDF: الأصلي (يسارًا) والنسخة المعدّلة (يمينًا).
+2. تقرن الأداة الصفحات بين المستندين باستخدام بصمات المحتوى.
+3. اختر وضع العرض: **جنبًا إلى جنب** أو **تراكب**.
+4. تنقّل بين أزواج الصفحات باستخدام عناصر التحكم بالترقيم.
+5. تُميَّز الاختلافات وتُصنَّف. استخدم لوحة التصفية للتركيز على أنواع تغيير محددة.
+6. يمكنك تصدير المقارنة كتقرير PDF.
+
+## الميزات
+
+- اقتران تلقائي للصفحات بناءً على تشابه المحتوى
+- عرضا مقارنة: جنبًا إلى جنب وتراكب
+- تصنيف التغييرات: نص، صورة، رأس/تذييل، تعليق توضيحي، تنسيق، خلفية
+- مفاتيح تصفية لكل فئة لإظهار أنواع تغيير محددة أو إخفائها
+- بحث في تغييرات النص مع تصفية بالاستعلام
+- دعم التعرف الضوئي لمقارنة المستندات الممسوحة ضوئيًا
+- أدوات تكبير للفحص التفصيلي
+- تمرير متزامن بين اللوحتين في وضع جنبًا إلى جنب
+- تصدير نتائج المقارنة بصيغة PDF
+
+## الخيارات
+
+| الخيار | الوصف |
+| --------------------- | ------------------------------------------------------------------------------------- |
+| **وضع العرض** | جنبًا إلى جنب أو تراكب |
+| **التعرف الضوئي** | تفعيل/تعطيل التعرف الضوئي لمقارنة المستندات الممسوحة ضوئيًا |
+| **لغة التعرف الضوئي** | لغة استخراج النص بالتعرف الضوئي |
+| **مرشحات الفئات** | تبديل ظهور تغييرات النص والصورة والرأس/التذييل والتعليقات التوضيحية والتنسيق والخلفية |
+| **نطاق التغيير** | في وضع التراكب، التصفية بين كل التغييرات أو المحتوى فقط |
+| **التكبير** | ضبط مستوى التكبير للفحص التفصيلي |
+
+## حالات الاستخدام
+
+- مراجعة تعديلات العقود لمعرفة ما تغيّر بالضبط بين النسخ
+- مقارنة التصاميم التجريبية للتحقق من أن تصديرات PDF تطابق المتوقع
+- تدقيق تغييرات المستندات في القطاعات الخاضعة للتنظيم حيث يجب تتبع كل تعديل
+- التحقق من أن عملية تحويل PDF حافظت على المحتوى الأصلي بدقة
+- فحص مستندات الترجمة مقابل الأصل بحثًا عن تغييرات في التخطيط
+
+## نصائح
+
+- يضع عرض التراكب المستندين فوق بعضهما، فتظهر الفروق المكانية (العناصر المزاحة والصور المعاد تحجيمها) فورًا.
+- فعّل التعرف الضوئي عند مقارنة مستندات ممسوحة ضوئيًا لا تحتوي على طبقة نصية. سيستخرج محرك المقارنة النص من صور الصفحات.
+- استخدم مرشحات الفئات للتركيز على المهم. على سبيل المثال، أخفِ تغييرات التنسيق عندما تهتم باختلافات محتوى النص فقط.
+
+## أدوات ذات صلة
+
+- [عرض البيانات الوصفية](./view-metadata)
+- [التعرف الضوئي على PDF](./ocr-pdf)
+- [دمج PDF](./merge-pdf)
diff --git a/docs/ar/tools/compress-pdf.md b/docs/ar/tools/compress-pdf.md
new file mode 100644
index 00000000..db93a5ff
--- /dev/null
+++ b/docs/ar/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: ضغط PDF
+description: قلّل حجم ملف PDF حتى 90% بمحرك 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) لإضافتها مجددًا.
+- **الممسوحات الضوئية بلا طبقة نصية** يمكن تقليص حجمها أكثر بخيار **تحويل الصفحات إلى صور** ضمن الإعدادات المخصصة، الذي يستبدل كل صفحة بصورة واحدة محسّنة. يُتخطى هذا الخيار لأي مستند فيه نص قابل للتحديد، بما في ذلك الممسوحات ضوئيًا التي خضعت للتعرف الضوئي، ما لم يكن **تجاوز حماية المحتوى** مفعّلًا. عندها تتحول صفحات النص إلى صور أيضًا، فيتوقف النص عن كونه قابلًا للتحديد وتتوقف الروابط عن العمل.
+
+## مستويات الضغط
+
+| المستوى | جودة الصورة | أقصى دقة | الأنسب لـ |
+| ------------- | ------------ | --------- | ---------------------------- |
+| **منخفض** | 80 | 200 DPI | الحفاظ على الجودة البصرية |
+| **متوسط** | 50 | 150 DPI | المستندات اليومية |
+| **عالٍ** | 20 | 72 DPI | مرفقات البريد وتحميلات الويب |
+| **بلا فقدان** | صور دون مساس | دون تغيير | نسخ الأرشفة |
+
+يزيل المستوى العالي أيضًا تضمين الخطوط القياسية الـ 14 في PDF، إضافة إلى الخطوط المشابهة لها مثل Arial عندما يكون ذلك آمنًا.
+
+## حجم الملف المستهدف
+
+أدخل حجمًا بالكيلوبايت أو الميغابايت ويبحث Hyper Compress عن أفضل جودة صور تظل ضمن هذا الحجم، بدءًا من المستوى الذي اخترته. إذا تعذّر تصغير المستند إلى ذلك الحجم، تحصل على أصغر نسخة يمكنه إنتاجها مع رسالة بذلك. أما الصفحات المخصصة مثل [ضغط PDF إلى 1 ميغابايت](https://www.bentopdf.com/compress-pdf-to-1mb) فتفتح والهدف مملوء مسبقًا.
+
+## الإعدادات المخصصة
+
+وسّع لوحة الإعدادات المخصصة لضبط Hyper Compress مباشرة. اختيار مستوى ضغط يعيد هذه الإعدادات إلى قيم ذلك المستوى، وتعديل أي منها ينقل المستوى إلى مخصص.
+
+- **تجاوز حماية المحتوى**: افتراضيًا يترك Hyper Compress ملفات PDF الموقعة دون مساس ولا يحوّل الصفحات التي تحتوي نصًا إلى صور. تفعيل هذا الخيار يتجاوز الأمرين. ويبقى مفعّلًا عند تغيير المستوى.
+
+- **الصور**: جودة الصورة وأقصى دقة وإعادة التشكيل القسرية وتقليل الألوان وقص مناطق الصور غير المرئية وإزالة الصور البديلة وتبسيط ملفات الألوان وJPEG 2000 والوضع بلا فقدان
+- **الخطوط**: استخلاص المجموعات الجزئية ودمج المكرر وإلغاء تضمين الخطوط القياسية وما يشبهها
+- **المحتوى**: تسطيح التعليقات التوضيحية أو حقول النماذج أو الروابط
+- **التنظيف**: إزالة الصور المصغرة وبيانات التطبيقات وخيوط المقالات ومعلومات التقاط الويب وشجرة البنية ونوايا الإخراج
+- **التحويل إلى صور**: استبدال الصفحات بصور، للممسوحات ضوئيًا المكونة من صور فقط؛ يُتخطى عندما يحتوي المستند نصًا قابلًا للتحديد
+- **الإخراج**: الحفاظ على PDF/A، وضغط Brotli لقارئات PDF 2.0 التي تدعمه
+
+## حالات الاستخدام
+
+- خفض تقرير بحجم 50 ميغابايت إلى ما دون حد مرفقات البريد
+- إنزال ملف ممسوح ضوئيًا تحت حد الرفع الصارم لبوابة ما باستخدام حجم ملف مستهدف
+- تحسين ملفات PDF التسويقية لتنزيل أسرع من المواقع
+- أرشفة مجموعات مستندات كبيرة حيث تهم تكاليف التخزين
+- تقليل استهلاك بيانات الجوال عند مشاركة ملفات PDF عبر تطبيقات المراسلة
+
+## نصائح
+
+- ابدأ بالمستوى المتوسط. وإذا بقيت النتيجة كبيرة، حدّد حجم ملف مستهدفًا أو انتقل إلى العالي.
+- للممسوحات الضوئية بلا طبقة نصية، فعّل تحويل الصفحات إلى صور ضمن الإعدادات المخصصة.
+- يمكن للتحويل إلى تدرج الرمادي، ضمن الإعدادات المخصصة، أن يخفض حجم المستندات الغنية بالألوان.
+
+## أدوات ذات صلة
+
+- [تحسين PDF للويب](./linearize-pdf): حسّن PDF المضغوط لعرض سريع على الويب
+- [تحويل PDF إلى صور](./rasterize-pdf): حوّل الصفحات إلى صور بدقة DPI محددة، بما فيها الصفحات التي تحتوي نصًا
+- [إصلاح PDF](./repair-pdf): أصلح ملف PDF تعطل أثناء الضغط في مكان آخر
+- [إزالة البيانات الوصفية](./remove-metadata): أزل البيانات المخفية للخصوصية
diff --git a/docs/ar/tools/crop-pdf.md b/docs/ar/tools/crop-pdf.md
new file mode 100644
index 00000000..bb7e0890
--- /dev/null
+++ b/docs/ar/tools/crop-pdf.md
@@ -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)
diff --git a/docs/ar/tools/csv-to-pdf.md b/docs/ar/tools/csv-to-pdf.md
new file mode 100644
index 00000000..7546184d
--- /dev/null
+++ b/docs/ar/tools/csv-to-pdf.md
@@ -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 وينسَّق كجدول تلقائيًا.
+
+## الناتج
+
+| عدد المدخلات | الناتج |
+| :------------ | :---------------------------------------------------- |
+| ملف واحد | تنزيل ملف PDF واحد (مثل `data.pdf`) |
+| ملفان أو أكثر | أرشيف 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)
diff --git a/docs/ar/tools/delete-pages.md b/docs/ar/tools/delete-pages.md
new file mode 100644
index 00000000..99d37bf2
--- /dev/null
+++ b/docs/ar/tools/delete-pages.md
@@ -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)
diff --git a/docs/ar/tools/deskew-pdf.md b/docs/ar/tools/deskew-pdf.md
new file mode 100644
index 00000000..231e80cd
--- /dev/null
+++ b/docs/ar/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: تصحيح انحراف PDF
+description: عدّل الصفحات المائلة تلقائيًا في ملفات PDF الممسوحة ضوئيًا باستخدام كشف الانحراف في OpenCV. مع حد ودقة DPI قابلين للضبط.
+---
+
+# تصحيح انحراف PDF
+
+نادرًا ما تكون المستندات الممسوحة ضوئيًا مستقيمة تمامًا. حتى الميل الطفيف يقلل دقة التعرف الضوئي ويجعل الطباعة تبدو غير مرتبة. تستخدم هذه الأداة خوارزميات معالجة الصور في OpenCV لكشف زاوية انحراف كل صفحة وإعادة تدويرها لتصبح مستوية.
+
+## طريقة العمل
+
+1. ارفع ملف PDF ممسوحًا ضوئيًا واحدًا أو أكثر.
+2. اضبط **حد الانحراف**: تُترك دون تغيير الصفحات التي يقل انحرافها المكتشف عن هذه القيمة.
+3. اختر **جودة المعالجة (DPI)**: الدقة الأعلى تحسّن دقة الكشف لكنها تستغرق وقتًا أطول.
+4. انقر **تصحيح انحراف PDF**.
+5. بعد المعالجة، تعرض لوحة النتائج زاوية كل صفحة المكتشفة وهل صُحِّحت.
+
+## الخيارات
+
+| الإعداد | القيم | الافتراضي |
+| ---------------- | ----------------------- | --------- |
+| **حد الانحراف** | 0.1، 0.5، 1.0، 2.0 درجة | 0.5 |
+| **DPI المعالجة** | 100، 150، 200، 300 | 150 |
+
+## كيف يعمل كشف الانحراف
+
+تعرض الأداة كل صفحة كصورة بدقة DPI المحددة، ثم تستخدم OpenCV لكشف زوايا الخطوط المهيمنة في المحتوى. إذا تجاوز الانحراف المكتشف الحد، تُدوَّر الصفحة بالزاوية المعاكسة لتستقيم. وتمر الصفحات الأقل من الحد دون تغيير.
+
+## حالات الاستخدام
+
+- تنظيف العقود أو المستندات القانونية الممسوحة ضوئيًا دفعة واحدة
+- تجهيز الإيصالات أو الفواتير الممسوحة للتعرف الضوئي
+- تقويم صفحات من ماسح مسطح وُضع فيه الورق بشكل غير متسق
+- تحسين الجودة البصرية للمواد الأرشيفية المرقمنة
+
+## نصائح
+
+- اخفض الحد إلى 0.1 درجة إذا احتجت محاذاة دقيقة للتعرف الضوئي.
+- 150 DPI سريعة ودقيقة لمعظم المستندات. استخدم 300 DPI للنصوص الصغيرة جدًا أو الصفحات كثيرة التفاصيل.
+- يعمل تصحيح الانحراف بأفضل شكل على المستندات ذات الأسطر الأفقية الواضحة. وقد يواجه صعوبة مع الصفحات التي تغلب عليها الصور أو عناصر التصميم المائلة.
+
+## أدوات ذات صلة
+
+- [تحويل PDF إلى صور](./rasterize-pdf): حوّل الناتج المصحّح إلى PDF مسطح قائم على الصور
+- [ضغط PDF](./compress-pdf): قلّل حجم الملف بعد التصحيح
+- [إصلاح PDF](./repair-pdf): أصلح المشكلات البنيوية في ملفات PDF الممسوحة ضوئيًا
diff --git a/docs/ar/tools/digital-sign-pdf.md b/docs/ar/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..0042f4bf
--- /dev/null
+++ b/docs/ar/tools/digital-sign-pdf.md
@@ -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 (توقيعك بخط اليد أو ختم شركتك وغيرها)
+- **النص**: نص مخصص بلون وحجم خط قابلين للضبط. إذا لم تُقدَّم صورة أو نص، تولّد الأداة نصًا تلقائيًا من الاسم الشائع للشهادة والتاريخ الحالي.
+
+## بيانات التوقيع الوصفية
+
+- **السبب**: لماذا وُقّع المستند (مثل "تمت الموافقة"، "تمت المراجعة")
+- **الموقع**: مكان التوقيع (مثل "New York, NY")
+- **معلومات الاتصال**: كيفية الوصول إلى الموقّع (مثل البريد الإلكتروني)
+
+## ملاحظة حول الاتصال بالإنترنت
+
+قد يتطلب التوقيع اتصالًا بالإنترنت. تجلب مكتبة التوقيع سلسلة الشهادات من عناوين URL مضمنة في امتداد الوصول إلى معلومات الجهة (AIA) في شهادتك. وإذا تعذّر الوصول إلى تلك الخوادم، سيفشل التوقيع للشهادات التي تتطلب التحقق من السلسلة.
+
+## حالات الاستخدام
+
+- توقيع العقود والعروض والاتفاقيات بتوقيعات رقمية ملزمة قانونًا
+- اعتماد المستندات الرسمية في سير العمل الذي يتطلب مصادقة قائمة على PKI
+- توقيع فواتير PDF للامتثال التنظيمي (تشترط دول أوروبية كثيرة فواتير إلكترونية موقعة رقميًا)
+- إضافة اعتماد مؤسسي إلى الرسومات الهندسية أو مستندات الجودة
+
+## نصائح
+
+- تصلح الشهادات الموقعة ذاتيًا للاختبار لكنها ستعرض تحذيرات في Adobe Reader. استخدم شهادة من جهة إصدار شهادات موثوقة للمستندات الفعلية.
+- التوقيع المرئي بصري فقط. أما التوقيع التشفيري فيُضمَّن سواء فُعِّلت الكتلة المرئية أم لا.
+- تحقق من ملف PDF الموقّع باستخدام أداة التحقق من التوقيع للتأكد من سلامة التوقيع.
+
+## أدوات ذات صلة
+
+- [التحقق من توقيع PDF](./validate-signature-pdf): تحقق من التوقيعات الرقمية في ملفات PDF الموقعة
+- [تسطيح PDF](./flatten-pdf): سطّح النماذج قبل التوقيع لمنع التعديلات
+- [حماية PDF](./protect-pdf): أضف حماية بكلمة مرور فوق التوقيع الرقمي
+- [إزالة البيانات الوصفية](./remove-metadata): أزل البيانات الوصفية قبل التوقيع
diff --git a/docs/ar/tools/divide-pages.md b/docs/ar/tools/divide-pages.md
new file mode 100644
index 00000000..1279444f
--- /dev/null
+++ b/docs/ar/tools/divide-pages.md
@@ -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)
diff --git a/docs/ar/tools/duplex-collate.md b/docs/ar/tools/duplex-collate.md
new file mode 100644
index 00000000..145379b7
--- /dev/null
+++ b/docs/ar/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: ترتيب المسح على الوجهين
+description: أعد ترتيب ملفات PDF الممسوحة على الوجهين التي تحتوي الصفحات الأمامية والخلفية في كتلتين منفصلتين إلى ترتيب صحيح أمامي/خلفي.
+---
+
+# ترتيب المسح على الوجهين
+
+صُمّمت هذه الأداة لسير عمل المسح بالتغذية التلقائية (ADF) حيث يحتوي ملف PDF واحد على كتلتين من الصفحات:
+
+- كل الوجوه الأمامية أولًا
+- كل الوجوه الخلفية ثانيًا
+
+بدلًا من التقسيم وإعادة التجميع يدويًا، تدمج هذه الأداة الكتلتين بترتيب القراءة الطبيعي: أمامي1، خلفي1، أمامي2، خلفي2، وهكذا.
+
+## طريقة العمل
+
+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)
diff --git a/docs/ar/tools/edit-attachments.md b/docs/ar/tools/edit-attachments.md
new file mode 100644
index 00000000..d3ce5970
--- /dev/null
+++ b/docs/ar/tools/edit-attachments.md
@@ -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)
diff --git a/docs/ar/tools/edit-metadata.md b/docs/ar/tools/edit-metadata.md
new file mode 100644
index 00000000..d91f02d0
--- /dev/null
+++ b/docs/ar/tools/edit-metadata.md
@@ -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)
+- [طبقات PDF OCG](./pdf-layers)
+- [ضغط PDF](./compress-pdf)
diff --git a/docs/ar/tools/edit-pdf.md b/docs/ar/tools/edit-pdf.md
new file mode 100644
index 00000000..f6ab21e7
--- /dev/null
+++ b/docs/ar/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: محرر PDF
+description: علّق على ملفات PDF وميّزها واحجب منها وأضف أشكالًا وصورًا وابحث فيها واعرضها مباشرة في متصفحك.
+---
+
+# محرر PDF
+
+يتيح لك محرر PDF في BentoPDF التعليق على ملفات PDF وتمييزها وحجب محتواها وإضافة ملاحظات وأشكال وصور والبحث فيها. يحمّل محررًا متكامل الميزات مباشرة في متصفحك دون الحاجة إلى رفع أي ملفات إلى خادم.
+
+## طريقة العمل
+
+1. ارفع ملف PDF بالنقر على منطقة الإسقاط أو بسحب ملف إليها.
+2. يفتح محرر PDF المضمن تلقائيًا ومستندك محمّل فيه.
+3. استخدم شريط الأدوات للتعليق أو التمييز أو الحجب أو إضافة نص أو رسم أشكال أو إدراج صور.
+4. انقر **تنزيل PDF المعدّل** لحفظ تغييراتك.
+
+## الميزات
+
+- شريط أدوات تعليق كامل مع التمييز والتسطير والشطب والرسم الحر
+- إدراج النصوص والتعليقات
+- أدوات حجب تزيل المحتوى المعلَّم نهائيًا بعد تطبيق الحجب. إذا كانت هناك علامات لم تُطبَّق عند النقر على **تنزيل PDF المعدّل**، يعرض المحرر تطبيقها أولًا.
+- أدوات أشكال للمستطيلات والدوائر والخطوط والأسهم
+- إدراج الصور على صفحات PDF
+- بحث نصي مدمج في المستند
+- دعم مستندات متعددة بعلامات تبويب (حتى 10 مستندات مفتوحة في وقت واحد)
+- تحميل الملفات بالسحب والإفلات
+
+## حالات الاستخدام
+
+- مراجعة العقود ووضع علامات على التغييرات بالتمييز والتعليقات
+- حجب المعلومات السرية مثل أرقام الضمان الاجتماعي أو البيانات المالية قبل المشاركة
+- إضافة تعليقات على المخططات المعمارية أو الرسومات الهندسية
+- إدراج شعارات الشركات أو الأختام على صفحات المستند
+- البحث في مستندات قانونية طويلة عن مصطلحات محددة
+
+## نصائح
+
+- يمكنك فتح عدة ملفات PDF في وقت واحد والتبديل بينها باستخدام شريط علامات التبويب أعلى المحرر.
+- يحافظ المحرر على بنية PDF الأصلية، فتبقى الخطوط والتخطيطات وحقول النماذج سليمة.
+- تعليم نص أو منطقة للحجب لا يزيل أي شيء حتى يُطبَّق الحجب. وعند حجب نص محدد، تُزال أيضًا نسخه الموجودة في خصائص الملف والإشارات المرجعية والتعليقات والمرفقات من الملف المنزَّل، ما لم يكن الملف مشفرًا.
+- للعلامات المائية أو ترقيم الصفحات بالجملة، استخدم الأدوات المخصصة لهما للحصول على تحكم أكبر في التنسيق.
+
+## أدوات ذات صلة
+
+- [إضافة علامة مائية](./add-watermark)
+- [توقيع PDF](./sign-pdf)
+- [إضافة أختام](./add-stamps)
+- [إزالة التعليقات](./remove-annotations)
diff --git a/docs/ar/tools/email-to-pdf.md b/docs/ar/tools/email-to-pdf.md
new file mode 100644
index 00000000..dac2ab51
--- /dev/null
+++ b/docs/ar/tools/email-to-pdf.md
@@ -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 منسّق وتحوّله إلى PDF عبر محرك PyMuPDF.
+5. تُنزَّل الرسالة الواحدة مباشرة بصيغة PDF. وتُجمَّع الرسائل المتعددة في `emails-converted.zip`.
+
+## الخيارات
+
+| الخيار | الافتراضي | الوصف |
+| :---------------------------------- | :-------- | :------------------------------------------------------------------------------ |
+| **حجم الصفحة** | A4 | اختر بين أبعاد A4 أو Letter أو Legal. |
+| **تضمين النسخة الكربونية والمخفية** | مفعّل | عند التفعيل، تظهر قوائم مستلمي CC وBCC في قسم رأس الرسالة في PDF. |
+| **تضمين قائمة المرفقات** | مفعّل | عند التفعيل، تظهر في PDF قائمة بالملفات المرفقة بالرسالة (مع أسمائها وأحجامها). |
+
+## حالات الاستخدام
+
+- أرشفة المراسلات التجارية المهمة بصيغة PDF للامتثال أو التدقيق
+- طباعة سلاسل الرسائل للإجراءات القانونية أو طلبات الكشف
+- إنشاء سجل دائم لتأكيدات الطلبات أو الإيصالات أو العقود الواردة بالبريد
+- نسخ ملفات Outlook MSG احتياطيًا بصيغة لا تتطلب Outlook لقراءتها
+- توثيق تفاعلات دعم العملاء من ملفات EML المصدّرة
+
+## نصائح
+
+- كلٌّ من EML (المستخدمة في Thunderbird وApple Mail ومعظم برامج البريد) وملفات Outlook MSG مدعومة. صدّر الرسائل من برنامج بريدك وأفلتها مباشرة في الأداة.
+- تحتفظ رسائل البريد المنسقة بـ HTML بتنسيقها في PDF. أما الرسائل النصية العادية فتُعرض بتنسيق نظيف ومقروء.
+- تعرض قائمة المرفقات الأسماء والأحجام لكنها لا تضمّن ملفات المرفقات الفعلية في PDF.
+
+## أدوات ذات صلة
+
+- [XML إلى PDF](./xml-to-pdf)
+- [XPS إلى PDF](./xps-to-pdf)
diff --git a/docs/ar/tools/epub-to-pdf.md b/docs/ar/tools/epub-to-pdf.md
new file mode 100644
index 00000000..5276ac0b
--- /dev/null
+++ b/docs/ar/tools/epub-to-pdf.md
@@ -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)
diff --git a/docs/ar/tools/excel-to-pdf.md b/docs/ar/tools/excel-to-pdf.md
new file mode 100644
index 00000000..06b3538e
--- /dev/null
+++ b/docs/ar/tools/excel-to-pdf.md
@@ -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 Spreadsheet | `.ods` |
+| CSV | `.csv` |
+
+## طريقة العمل
+
+1. انقر منطقة الرفع أو اسحب ملفات جداول البيانات وأفلتها.
+2. راجع قائمة الملفات. أضف المزيد أو أزل ما لا تريده.
+3. انقر **تحويل إلى PDF**. يبدأ محرك LibreOffice عند أول استخدام، ثم يعالج كل ملف.
+4. يُنزَّل الملف الواحد مباشرة بصيغة PDF. وتُسلَّم الملفات المتعددة باسم `excel-converted.zip`.
+
+## الخيارات
+
+لا تحتاج هذه الأداة إلى أي إعداد إضافي. يحدد محرك LibreOffice تخطيط الصفحة والتحجيم ومنطقة الطباعة بناءً على الإعدادات المضمنة في جدول البيانات.
+
+## الناتج
+
+| عدد المدخلات | الناتج |
+| :------------ | :------------------------------------------------------ |
+| ملف واحد | تنزيل ملف PDF واحد (اسم الملف الأصلي بامتداد `.pdf`) |
+| ملفان أو أكثر | أرشيف 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)
diff --git a/docs/ar/tools/extract-attachments.md b/docs/ar/tools/extract-attachments.md
new file mode 100644
index 00000000..81cdb9b8
--- /dev/null
+++ b/docs/ar/tools/extract-attachments.md
@@ -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)
diff --git a/docs/ar/tools/extract-images.md b/docs/ar/tools/extract-images.md
new file mode 100644
index 00000000..d8470832
--- /dev/null
+++ b/docs/ar/tools/extract-images.md
@@ -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)
diff --git a/docs/ar/tools/extract-pages.md b/docs/ar/tools/extract-pages.md
new file mode 100644
index 00000000..47d91f91
--- /dev/null
+++ b/docs/ar/tools/extract-pages.md
@@ -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)
diff --git a/docs/ar/tools/extract-tables.md b/docs/ar/tools/extract-tables.md
new file mode 100644
index 00000000..ba784d32
--- /dev/null
+++ b/docs/ar/tools/extract-tables.md
@@ -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 للصقها مباشرة في مسائل GitHub أو الويكي أو الوثائق.
+- سحب بيانات JSON منظمة من جداول PDF لتكاملات API أو السكربتات.
+- مقارنة الجداول بين نسخ PDF مختلفة بتصدير كليهما إلى CSV ومقارنة الفروق.
+
+## نصائح
+
+- تمنحك هذه الأداة تحكمًا لكل جدول. إذا أردت فقط تفريغ كل الجداول في ملف CSV واحد، استخدم [PDF إلى CSV](./pdf-to-csv). ولمصنف Excel كامل، استخدم [PDF إلى Excel](./pdf-to-excel).
+- قد تُكتشف الجداول الممتدة على عدة صفحات كجداول منفصلة لكل صفحة. وقد تحتاج إلى دمجها يدويًا.
+- إذا لم تُكتشف أي جداول، فقد يكون PDF صورة ممسوحة ضوئيًا. مرّره على التعرف الضوئي أولًا لإضافة طبقة نصية.
+
+## أدوات ذات صلة
+
+- [PDF إلى CSV](./pdf-to-csv)
+- [PDF إلى Excel](./pdf-to-excel)
+- [PDF إلى نص](./pdf-to-text)
diff --git a/docs/ar/tools/fb2-to-pdf.md b/docs/ar/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..c650f363
--- /dev/null
+++ b/docs/ar/tools/fb2-to-pdf.md
@@ -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`.
+
+## الخيارات
+
+لا حاجة إلى أي إعدادات. يتعامل المحوّل مع بنية FB2 XML تلقائيًا، ويحافظ على فواصل الفصول والتنسيق وأي صور مضمّنة.
+
+## حالات الاستخدام
+
+- قراءة كتب 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)
diff --git a/docs/ar/tools/fix-page-size.md b/docs/ar/tools/fix-page-size.md
new file mode 100644
index 00000000..86dc55ba
--- /dev/null
+++ b/docs/ar/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: توحيد حجم الصفحة
+description: وحّد حجم جميع صفحات ملف PDF. اختر من أحجام الورق القياسية أو حدّد أبعادًا مخصصة.
+---
+
+# توحيد حجم الصفحة
+
+غالبًا ما تحتوي ملفات PDF المجمّعة من مصادر متعددة على صفحات بأحجام غير متطابقة: بعضها Letter وبعضها A4 وبعضها بحجم غير قياسي تمامًا. تفرض هذه الأداة حجمًا مستهدفًا واحدًا على كل الصفحات، مع تحجيم المحتوى ليلائم الصفحة أو يملأها حسب الحاجة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. اختر **حجم الصفحة المستهدف** من القائمة المنسدلة (A4 أو Letter أو Legal أو A3 أو A5 أو Tabloid أو مخصص).
+3. اختر **الاتجاه**: تلقائي يُبقي اتجاه كل صفحة الأصلي، أو يمكنك فرض عمودي أو أفقي.
+4. اختر وضع **تحجيم المحتوى**: ملاءمة (يحافظ على كل المحتوى وقد يضيف هوامش) أو ملء (يملأ الصفحة وقد يقص الحواف).
+5. يمكنك اختياريًا تعيين **لون الخلفية** للهوامش المضافة.
+6. انقر على **توحيد حجم الصفحة**.
+
+## الخيارات
+
+- **الأحجام القياسية**: A4 وLetter وLegal وA3 وA5 وTabloid
+- **أبعاد مخصصة**: أدخل العرض والارتفاع بالبوصة أو بالملليمتر
+- **الاتجاه**: تلقائي أو عمودي أو أفقي
+- **وضع التحجيم**: ملاءمة أو ملء (قص)
+- **لون الخلفية**: أي لون لتعبئة الهوامش
+
+## حالات الاستخدام
+
+- توحيد ملف PDF مدموج جاءت صفحاته من ماسحات ضوئية مختلفة
+- تحويل مستند بحجم US Letter إلى A4 للتوزيع الدولي
+- تجهيز ملفات PDF للطباعة تتطلب حجم قص ثابتًا
+- إصلاح الصفحات التي تنحرف قليلًا عن الحجم القياسي (مثل 8.49 × 11.02 بوصة بدلًا من 8.5 × 11)
+
+## نصائح
+
+- استخدم وضع الملاءمة لضمان عدم فقدان أي محتوى. وضع الملء يبدو أنظف لكنه قد يقص الحواف.
+- افحص الناتج بأداة أبعاد الصفحة للتأكد من تطابق كل الصفحات مع الحجم المستهدف.
+- الأبيض هو لون الخلفية الافتراضي، فبدّله إلى لون داكن إذا كان لمستندك هوامش داكنة.
+
+## أدوات ذات صلة
+
+- [أبعاد الصفحة](./page-dimensions): افحص أحجام الصفحات قبل التوحيد وبعده
+- [ضغط PDF](./compress-pdf): قلّل حجم الملف بعد التوحيد
+- [قص PDF](./crop-pdf): اقصص الصفحات يدويًا بدل التحجيم التلقائي
diff --git a/docs/ar/tools/flatten-pdf.md b/docs/ar/tools/flatten-pdf.md
new file mode 100644
index 00000000..0c568900
--- /dev/null
+++ b/docs/ar/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: تسطيح PDF
+description: سطّح النماذج التفاعلية والتعليقات التوضيحية إلى محتوى ثابت. يجعل حقول النماذج غير قابلة للتحرير ويدمج التعليقات في الصفحة.
+---
+
+# تسطيح PDF
+
+يدمج التسطيح العناصر التفاعلية (حقول النماذج والقوائم المنسدلة ومربعات الاختيار والتعليقات التوضيحية والتحديدات والملاحظات اللاصقة) مباشرة في محتوى الصفحة. يبقى المظهر المرئي كما هو، لكن لا شيء يصبح قابلًا للتحرير أو الاستخراج. إنه المكافئ في PDF لطباعة نموذج مملوء ثم مسحه ضوئيًا، إلا أن الجودة تبقى مثالية.
+
+## طريقة العمل
+
+1. ارفع ملف PDF واحدًا أو أكثر.
+2. انقر على **تسطيح PDF**.
+3. يُنزَّل الملف الواحد مباشرة. أما الملفات المتعددة فتنتج أرشيف ZIP.
+
+تستخدم الأداة pdf-lib لتسطيح حقول النماذج (عبر `form.flatten()`) ومسطِّحًا مخصصًا للتعليقات التوضيحية لدمجها في تدفق الصفحة. تتم العمليتان في تمريرة واحدة.
+
+## ما الذي يُسطَّح
+
+- **حقول النماذج**: حقول النص ومربعات الاختيار وأزرار الراديو والقوائم المنسدلة وحقول التوقيع
+- **التعليقات التوضيحية**: التعليقات والتحديدات والشطب والتسطير والملاحظات اللاصقة والأختام وتعليقات الحبر
+- **العناصر التفاعلية**: الأزرار ومشغّلات الإجراءات
+
+## ما الذي يبقى دون تغيير
+
+- محتوى النص (يظل قابلًا للتحديد والبحث)
+- الصور والرسومات
+- تخطيط الصفحة وأبعادها
+- الإشارات المرجعية وجدول المحتويات
+- الروابط التشعبية (ما لم تكن مبنية على تعليقات توضيحية)
+
+## حالات الاستخدام
+
+- قفل نموذج مكتمل حتى لا يتمكن المستلمون من تغيير الإجابات المقدَّمة
+- تجهيز ملف PDF للأرشفة حيث لا حاجة إلى العناصر التفاعلية
+- إصلاح مشكلات العرض الناتجة عن اختلاف ظهور التعليقات بين برامج العرض
+- ضمان عدم إمكانية تعديل مستند موقَّع بعد تطبيق التوقيع
+- تقليل حجم الملف بإزالة تعريفات حقول النماذج وكائنات التعليقات التوضيحية
+
+## نصائح
+
+- سطّح بعد اكتمال جميع التعديلات. لا توجد طريقة لعكس تسطيح ملف PDF.
+- إذا كنت تريد التسطيح وإزالة البيانات الوصفية وJavaScript والمرفقات أيضًا، فاستخدم أداة تنظيف PDF بدلًا من ذلك، إذ تتضمن التسطيح كأحد خياراتها.
+- قد تعرض بعض ملفات PDF رسالة "لم يتم العثور على نموذج". هذا طبيعي إذا كان المستند يحتوي على تعليقات توضيحية فقط دون حقول نماذج.
+
+## أدوات ذات صلة
+
+- [تنظيف PDF](./sanitize-pdf): سطّح النماذج وأزل البيانات الوصفية والبرامج النصية وغيرها
+- [تحويل PDF إلى صور نقطية](./rasterize-pdf): حوّل إلى PDF مبني على الصور لأقصى درجات التسطيح
+- [تحويل الخطوط إلى مخططات](./font-to-outline): سطّح الخطوط إلى مسارات متجهة
+- [حماية PDF](./protect-pdf): اقفل ملف PDF المسطَّح بكلمة مرور
diff --git a/docs/ar/tools/font-to-outline.md b/docs/ar/tools/font-to-outline.md
new file mode 100644
index 00000000..67ce23c6
--- /dev/null
+++ b/docs/ar/tools/font-to-outline.md
@@ -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): حوّل للأرشفة بعد ضمان الاستقلال عن الخطوط
diff --git a/docs/ar/tools/form-creator.md b/docs/ar/tools/form-creator.md
new file mode 100644
index 00000000..eb51db85
--- /dev/null
+++ b/docs/ar/tools/form-creator.md
@@ -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)
diff --git a/docs/ar/tools/form-filler.md b/docs/ar/tools/form-filler.md
new file mode 100644
index 00000000..c863ead2
--- /dev/null
+++ b/docs/ar/tools/form-filler.md
@@ -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. إذا فتحت ملف XFA PDF في Chrome أو معظم الأدوات الأخرى ورأيت صفحات فارغة، فهذا يعني أن تلك العارضات لا تدعم XFA. يتعامل ملء نماذج PDF في BentoPDF وFirefox مع XFA بشكل صحيح.
+- لملفات PDF التي لا تحتوي على حقول نماذج، استخدم أداة [إنشاء نموذج PDF](./form-creator) لإضافة الحقول أولًا، ثم املأها هنا.
+- يضبط العارض حجمه تلقائيًا ليطابق أبعاد صفحة PDF.
+
+## أدوات ذات صلة
+
+- [إنشاء نموذج PDF](./form-creator)
+- [توقيع PDF](./sign-pdf)
+- [محرر PDF](./edit-pdf)
diff --git a/docs/ar/tools/header-footer.md b/docs/ar/tools/header-footer.md
new file mode 100644
index 00000000..071f0531
--- /dev/null
+++ b/docs/ar/tools/header-footer.md
@@ -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-numbering)
diff --git a/docs/ar/tools/heic-to-pdf.md b/docs/ar/tools/heic-to-pdf.md
new file mode 100644
index 00000000..cf42323d
--- /dev/null
+++ b/docs/ar/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC إلى PDF
+description: حوّل صور HEIC وHEIF من أجهزة iPhone وiPad إلى صيغة PDF مباشرة في متصفحك.
+---
+
+# HEIC إلى PDF
+
+حوّل صور HEIC/HEIF إلى PDF. HEIC هي صيغة الصور الافتراضية على أجهزة iPhone وiPad منذ iOS 11. تتيح لك هذه الأداة تحويل تلك الصور إلى ملفات PDF دون تثبيت أي برنامج مكتبي ودون رفع الملفات إلى خادم.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات |
+| :----- | :--------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات HEIC/HEIF وأفلتها.
+2. راجع قائمة الملفات وأزل أي ملفات غير مرغوبة.
+3. انقر على **تحويل إلى PDF**. تُنزَّل النتيجة باسم `from_heic.pdf`.
+
+يُفك ترميز كل ملف HEIC باستخدام مكتبة heic2any التي تحوّله إلى PNG بجودة 92%. ثم تُضمَّن صورة PNG في ملف PDF باستخدام pdf-lib، مع وضع كل صورة في صفحة مستقلة بدقتها الكاملة.
+
+## الخيارات
+
+لا تعرض هذه الأداة إعدادات إضافية. تُحوَّل صور HEIC بجودة عالية (0.92) إلى PNG قبل التضمين.
+
+## حالات الاستخدام
+
+- إنشاء ملف PDF من صور iPhone لإرفاقه بمطالبة تأمين أو تقرير
+- تحويل صور HEIC لإعلان عقاري إلى مستند واحد قابل للطباعة
+- تحويل لقطات شاشة iPad (بصيغة HEIF) إلى PDF قابل للمشاركة
+- تحويل صور الإجازة دفعة واحدة لمفكرة سفر
+
+## نصائح
+
+- يتم فك ترميز HEIC بالكامل داخل المتصفح باستخدام WebAssembly. قد يستغرق التحويل الأول لحظة ريثما يُحمَّل المفكّك.
+- إذا كنت تحتاج إلى مزج HEIC مع صيغ صور أخرى (JPG وPNG وغيرها)، فاستخدم أداة [صور إلى PDF](./image-to-pdf) التي تتعامل مع HEIC إلى جانب كل الصيغ الأخرى.
+- غالبًا ما تحتوي ملفات HEIC من iPhone على بيانات EXIF بما فيها إحداثيات GPS. لا ينقل ملف PDF الناتج هذه البيانات الوصفية.
+
+## أدوات ذات صلة
+
+- [صور إلى PDF](./image-to-pdf)
+- [JPG إلى PDF](./jpg-to-pdf)
+- [PNG إلى PDF](./png-to-pdf)
diff --git a/docs/ar/tools/image-to-pdf.md b/docs/ar/tools/image-to-pdf.md
new file mode 100644
index 00000000..61396c3e
--- /dev/null
+++ b/docs/ar/tools/image-to-pdf.md
@@ -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 واحد
+- إنشاء ملف أعمال أو كتيّب صور من صور بصيغ مختلطة
+- تحويل صور iPhone (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)
diff --git a/docs/ar/tools/index.md b/docs/ar/tools/index.md
new file mode 100644
index 00000000..2cc44cd0
--- /dev/null
+++ b/docs/ar/tools/index.md
@@ -0,0 +1,183 @@
+# مرجع الأدوات
+
+يقدّم BentoPDF **أكثر من 130 أداة** للعمل مع ملفات PDF. تعمل كل الأدوات بالكامل في متصفحك: ملفاتك لا تغادر جهازك أبدًا.
+
+---
+
+## تحرير وتعليق
+
+عدّل مستندات PDF وعلّق عليها وحسّنها بمجموعة كاملة من أدوات التحرير.
+
+
+
+- [**محرر PDF**](./edit-pdf): علّق على ملفات PDF وحدّد النص واحجب المعلومات وأضف تعليقات وأشكالًا وصورًا وابحث واعرضها.
+- [**تعديل الإشارات المرجعية**](./bookmark): أضف إشارات PDF المرجعية وعدّلها واستوردها واحذفها واستخرجها.
+- [**جدول المحتويات**](./table-of-contents): أنشئ صفحة جدول محتويات من إشارات PDF المرجعية.
+- [**أرقام الصفحات**](./page-numbers): أدرج أرقام الصفحات في مستندك.
+- [**إضافة تسميات الصفحات**](./add-page-labels): طبّق تسميات صفحات PDF بأرقام رومانية وبادئات وبدايات مخصصة.
+- [**ترقيم بيتس**](./bates-numbering): أضف أرقام بيتس التسلسلية عبر ملف 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): اكتشف الصفحات الفارغة واحذفها تلقائيًا.
+
+
+
+---
+
+## التحويل إلى PDF
+
+حوّل الصور والمستندات والكتب الإلكترونية وصيغ الملفات الأخرى إلى PDF.
+
+
+
+- [**صور إلى 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.
+
+
+
+---
+
+## التحويل من PDF
+
+استخرج المحتوى من ملفات PDF إلى صور ومستندات وصيغ بيانات.
+
+
+
+- [**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 (أرشيف كتب مصورة) لقارئات الكتب المصورة و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 بصيغة LlamaIndex JSON لمسارات RAG/LLM.
+- [**PDF إلى نص**](./pdf-to-text): استخرج النص من ملفات PDF واحفظه كنص عادي.
+- [**استخراج جداول PDF**](./extract-tables): استخرج الجداول من ملفات PDF بصيغة CSV أو JSON أو Markdown.
+
+
+
+---
+
+## التنظيم والإدارة
+
+أعد ترتيب صفحات PDF وملفاتها وادمجها وقسّمها وأدرها.
+
+
+
+- [**منشئ سير عمل PDF**](./pdf-workflow): ابنِ مسارات معالجة PDF مخصصة بمحرر عُقد مرئي.
+- [**أداة PDF المتعددة**](./pdf-multi-tool): محرر PDF متكامل مع إدارة الصفحات.
+- [**التعرف الضوئي على PDF**](./ocr-pdf): اجعل ملف PDF قابلًا للبحث والنسخ.
+- [**دمج PDF**](./merge-pdf): ادمج عدة ملفات PDF في ملف واحد.
+- [**تبديل ومزج الصفحات**](./alternate-merge): ادمج ملفات PDF بتبديل الصفحات من كل ملف.
+- [**ترتيب المسح على الوجهين**](./duplex-collate): أعد ترتيب كتل المسح الأمامي والخلفي إلى تسلسل الصفحات الصحيح.
+- [**تكرار وتنظيم**](./organize-pdf): كرّر الصفحات وأعد ترتيبها واحذفها.
+- [**إضافة مرفقات**](./add-attachments): ضمّن ملفًا واحدًا أو أكثر في ملف PDF.
+- [**استخراج المرفقات**](./extract-attachments): استخرج كل الملفات المضمّنة من ملفات PDF في ملف ZIP.
+- [**تعديل المرفقات**](./edit-attachments): اعرض المرفقات في ملف PDF أو أزلها.
+- [**طبقات PDF OCG**](./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): قسّم صفحة كبيرة إلى عدة صفحات أصغر.
+
+
+
+---
+
+## التحسين والإصلاح
+
+اضغط ملفات PDF وأصلحها وحسّنها لأداء وتوافق أفضل.
+
+
+
+- [**ضغط 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): حوّل كل الخطوط إلى مخططات متجهة لعرض متسق.
+
+
+
+---
+
+## تأمين PDF
+
+احمِ مستندات PDF وشفّرها وتحكم في الوصول إليها.
+
+
+
+- [**تشفير 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): تحقق من التوقيعات الرقمية واعرض تفاصيل الشهادة.
+
+
diff --git a/docs/ar/tools/invert-colors.md b/docs/ar/tools/invert-colors.md
new file mode 100644
index 00000000..441d4e3f
--- /dev/null
+++ b/docs/ar/tools/invert-colors.md
@@ -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)
diff --git a/docs/ar/tools/jpg-to-pdf.md b/docs/ar/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..73d6b3e8
--- /dev/null
+++ b/docs/ar/tools/jpg-to-pdf.md
@@ -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)
diff --git a/docs/ar/tools/json-to-pdf.md b/docs/ar/tools/json-to-pdf.md
new file mode 100644
index 00000000..0a136ef9
--- /dev/null
+++ b/docs/ar/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON إلى PDF
+description: أعد بناء ملفات PDF من صيغة JSON الخاصة بـ BentoPDF. حوّل ملفات JSON المصدّرة إلى مستندات PDF الأصلية.
+---
+
+# JSON إلى PDF
+
+أعد بناء مستندات PDF من ملفات JSON أُنشئت سابقًا بأداة **PDF إلى JSON** في BentoPDF. هذه أداة تحويل ذهابًا وإيابًا: تأخذ التمثيل المنظَّم لملف PDF بصيغة JSON وتعيد بناء المستند الأصلي.
+
+::: 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` ويحتوي على ملف PDF واحد لكل ملف JSON مُدخَل.
+
+يعمل التحويل في 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)
diff --git a/docs/ar/tools/linearize-pdf.md b/docs/ar/tools/linearize-pdf.md
new file mode 100644
index 00000000..c6cec607
--- /dev/null
+++ b/docs/ar/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: تحسين PDF للويب
+description: حسّن ملفات PDF للعرض السريع على الويب بالتحميل التدريجي. يُعرف أيضًا بتحسين "Fast Web View".
+---
+
+# تحسين PDF للويب
+
+يعيد التحسين للويب (Linearization) هيكلة ملف 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): أزل البيانات الوصفية قبل النشر على الإنترنت
diff --git a/docs/ar/tools/markdown-to-pdf.md b/docs/ar/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..1a2005cb
--- /dev/null
+++ b/docs/ar/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown إلى PDF
+description: اكتب Markdown أو الصقه وصدّره كملف PDF منسّق باحترافية مع معاينة مباشرة وتمييز للصياغة.
+---
+
+# Markdown إلى PDF
+
+محرر Markdown متكامل مع معاينة مباشرة وتصدير PDF بنقرة واحدة. اكتب من الصفر، أو ارفع ملف `.md` موجودًا، أو الصق المحتوى من الحافظة. يعرض المحرر Markdown في الوقت الفعلي ويصدّر ملف PDF منسقًا باستخدام محرك الطباعة المدمج في المتصفح.
+
+## الصيغ المدعومة
+
+| المدخل | الوصف |
+| :---------- | :--------------------- |
+| ملفات `.md` | ارفعها عبر زر الرفع |
+| إدخال مباشر | اكتب أو الصق في المحرر |
+
+## طريقة العمل
+
+1. افتح أداة Markdown إلى PDF. يُحمَّل المحرر بعرض مقسوم: مصدر Markdown على اليسار والمعاينة المعروضة على اليمين.
+2. اكتب Markdown أو الصقه، أو انقر على **رفع** لتحميل ملف `.md`.
+3. بدّل بين السمتين الفاتحة والداكنة بمنزلق السمة في شريط الأدوات.
+4. انقر على **تصدير PDF** (أو اضغط `Ctrl/Cmd + S`) لإنشاء ملف PDF عبر مربع حوار الطباعة في المتصفح.
+
+## الميزات
+
+يدعم المحرر مجموعة واسعة من ميزات Markdown تتجاوز الأساسيات:
+
+- **Markdown القياسي**: العناوين والخط الغامق والمائل والروابط والصور والقوائم والاقتباسات والخطوط الأفقية
+- **كتل الأكواد** مع تمييز الصياغة لأكثر من 15 لغة (JavaScript وTypeScript وPython وGo وRust وSQL وJava وC# وC++ وYAML وBash وغيرها)
+- **مخططات Mermaid**: تُعرض المخططات الانسيابية ومخططات التسلسل ومخططات ER وأنواع مخططات Mermaid الأخرى مباشرة في المعاينة
+- **الجداول** بصياغة جداول Markdown القياسية
+- **قوائم المهام** مع مربعات اختيار
+- **الحواشي السفلية** و**النص المنخفض** و**النص المرتفع**
+- **قوائم التعريفات** و**الاختصارات**
+- دعم **الرموز التعبيرية** (يُعرض `:smile:` كرمز تعبيري)
+- **التمييز** (`==marked text==`) و**الإدراج** (`++inserted text++`)
+- **الروابط التلقائية**: تُحوَّل عناوين 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)
diff --git a/docs/ar/tools/merge-pdf.md b/docs/ar/tools/merge-pdf.md
new file mode 100644
index 00000000..3e9a88d4
--- /dev/null
+++ b/docs/ar/tools/merge-pdf.md
@@ -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)
diff --git a/docs/ar/tools/mobi-to-pdf.md b/docs/ar/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..d3ac4257
--- /dev/null
+++ b/docs/ar/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI إلى PDF
+description: حوّل ملفات الكتب الإلكترونية MOBI إلى PDF مباشرة في متصفحك. مجاني وخاص ودون رفع ملفات.
+---
+
+# MOBI إلى PDF
+
+حوّل كتب Amazon Kindle الإلكترونية بصيغة MOBI إلى مستندات 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)
diff --git a/docs/ar/tools/n-up-pdf.md b/docs/ar/tools/n-up-pdf.md
new file mode 100644
index 00000000..9d49c5be
--- /dev/null
+++ b/docs/ar/tools/n-up-pdf.md
@@ -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 و4 و6 و8 و9 و16 صفحة في الورقة
+- حجم صفحة الناتج واتجاهها قابلان للضبط
+- تباعد اختياري بين الصفحات المرصوفة
+- إعدادات لون الخلفية والحدود
+- يحافظ على نسبة أبعاد الصفحات الأصلية أثناء التحجيم للملاءمة
+
+## الخيارات
+
+| الخيار | الوصف |
+| --------------------- | ------------------------------------------------------------------ |
+| **الصفحات في الورقة** | عدد الصفحات الأصلية في كل صفحة ناتجة (2 أو 4 أو 6 أو 8 أو 9 أو 16) |
+| **حجم الصفحة** | حجم ورقة الناتج (A4 وLetter وLegal وغيرها) |
+| **الاتجاه** | عمودي أو أفقي لورقة الناتج |
+| **التباعد** | الفجوة بالنقاط بين الصفحات المرصوفة |
+| **لون الخلفية** | لون تعبئة خلفية ورقة الناتج |
+| **لون الحدود** | لون الحدود حول كل صفحة مرصوفة |
+
+## حالات الاستخدام
+
+- طباعة نشرات بأربع شرائح في الصفحة لتوفير الورق
+- إنشاء أوراق مذاكرة بعدة صفحات مرجعية في ورقة واحدة
+- إنتاج أرشيفات مستندات مضغوطة للحفظ
+- إنشاء أوراق نظرة عامة مصغرة لمستند طويل
+
+## نصائح
+
+- غالبًا ما يعمل الاتجاه الأفقي بشكل أفضل مع تخطيط 2 في الورقة، بينما يكون العمودي الأفضل عادةً لـ 4 وما فوق.
+- زيادة التباعد تحسّن القراءة لكنها تقلل المساحة المتاحة لكل صفحة مرصوفة.
+- للعملية العكسية (تقسيم صفحة واحدة إلى عدة صفحات)، راجع [تقسيم PDF إلى ملصقات](./posterize-pdf).
+
+## أدوات ذات صلة
+
+- [تقسيم PDF إلى ملصقات](./posterize-pdf)
+- [كتيّب PDF](./pdf-booklet)
+- [دمج في صفحة واحدة](./combine-single-page)
diff --git a/docs/ar/tools/ocr-pdf.md b/docs/ar/tools/ocr-pdf.md
new file mode 100644
index 00000000..0841940e
--- /dev/null
+++ b/docs/ar/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: التعرف الضوئي على PDF
+description: اجعل ملفات PDF الممسوحة قابلة للبحث والنسخ باستخدام Tesseract 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)
diff --git a/docs/ar/tools/odg-to-pdf.md b/docs/ar/tools/odg-to-pdf.md
new file mode 100644
index 00000000..d2f76de9
--- /dev/null
+++ b/docs/ar/tools/odg-to-pdf.md
@@ -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)
diff --git a/docs/ar/tools/odp-to-pdf.md b/docs/ar/tools/odp-to-pdf.md
new file mode 100644
index 00000000..3651e7fe
--- /dev/null
+++ b/docs/ar/tools/odp-to-pdf.md
@@ -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)
diff --git a/docs/ar/tools/ods-to-pdf.md b/docs/ar/tools/ods-to-pdf.md
new file mode 100644
index 00000000..9c11e77d
--- /dev/null
+++ b/docs/ar/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS إلى PDF
+description: حوّل جداول LibreOffice Calc (ODS) إلى PDF داخل متصفحك. مجاني وخاص وبدون تسجيل.
+---
+
+# ODS إلى PDF
+
+حوّل ملفات OpenDocument Spreadsheet إلى PDF. ODS هو الصيغة الأصلية لـ LibreOffice Calc وصيغة تصدير شائعة من Google Sheets. تعرض هذه الأداة بيانات جدولك وتنسيقه ومخططاته في ملف PDF مقسّم إلى صفحات يمكنك طباعته أو مشاركته.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :----------------------- | :------- | :------------------------------------- |
+| OpenDocument Spreadsheet | `.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)
diff --git a/docs/ar/tools/odt-to-pdf.md b/docs/ar/tools/odt-to-pdf.md
new file mode 100644
index 00000000..85f0af3c
--- /dev/null
+++ b/docs/ar/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT إلى PDF
+description: حوّل ملفات OpenDocument Text (ODT) إلى صيغة PDF داخل متصفحك باستخدام محرك يعتمد على LibreOffice.
+---
+
+# ODT إلى PDF
+
+حوّل ملفات OpenDocument Text إلى PDF. ODT هي الصيغة الأصلية لـ LibreOffice Writer وApache OpenOffice وغيرهما من معالجات النصوص مفتوحة المصدر. تستخدم هذه الأداة محرك LibreOffice يعمل داخل المتصفح لإنتاج تحويلات دقيقة تحافظ على التنسيق والجداول والصور والأنماط.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات |
+| :---------------- | :--------- |
+| OpenDocument Text | `.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)
diff --git a/docs/ar/tools/organize-pdf.md b/docs/ar/tools/organize-pdf.md
new file mode 100644
index 00000000..bbfca2ed
--- /dev/null
+++ b/docs/ar/tools/organize-pdf.md
@@ -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)
diff --git a/docs/ar/tools/page-dimensions.md b/docs/ar/tools/page-dimensions.md
new file mode 100644
index 00000000..19da9c53
--- /dev/null
+++ b/docs/ar/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: أبعاد الصفحة
+description: حلّل أحجام صفحات PDF واتجاهاتها ونسب أبعادها ودورانها. اكتشف المستندات ذات الأحجام المختلطة وصدّر البيانات إلى CSV.
+---
+
+# أبعاد الصفحة
+
+أداة تشخيصية تقرأ كل صفحة في ملف PDF وتعرض أبعادها الدقيقة واتجاهها واسم حجمها القياسي ونسبة أبعادها ومساحتها ودورانها. مفيدة لاكتشاف الصفحات ذات الأحجام المختلفة قبل الطباعة أو لتوثيق خصائص ملف PDF استلمته.
+
+## طريقة العمل
+
+1. ارفع ملف PDF. يبدأ التحليل تلقائيًا، فلا يوجد زر للضغط عليه.
+2. تعرض لوحة الملخص إجمالي الصفحات وعدد الأحجام الفريدة وما إذا كان المستند يحتوي على أحجام مختلطة.
+3. تصفّح جدول النتائج الكامل مع تفاصيل كل صفحة.
+4. بدّل وحدات العرض بين النقاط والبوصات والمليمترات والبكسلات.
+5. انقر على **تصدير إلى CSV** لحفظ البيانات.
+
+## الحقول المعروضة
+
+| العمود | الوصف |
+| ----------------------- | ------------------------------------------- |
+| رقم الصفحة | رقم الصفحة التسلسلي |
+| الأبعاد | العرض × الارتفاع بالوحدة المحددة |
+| الحجم القياسي | الاسم المطابق (A4 وLetter وغيرها) أو "مخصص" |
+| الاتجاه | عمودي أو أفقي |
+| نسبة العرض إلى الارتفاع | نسبة العرض إلى الارتفاع كعدد عشري |
+| المساحة | مساحة الصفحة بمربع الوحدة المحددة |
+| Rotation | دوران الصفحة بالدرجات |
+
+## الميزات
+
+- اكتشاف تلقائي لأحجام الورق القياسية (A3 وA4 وA5 وLetter وLegal وTabloid وغيرها)
+- تحذير من المستند ذي الأحجام المختلطة مع تفصيل الأحجام الموجودة وعدد الصفحات التي تستخدم كل حجم
+- تحويل الوحدات بين النقاط والبوصات والمليمترات والبكسلات (بدقة 96 PPI)
+- تصدير CSV للاستخدام في جداول البيانات أو أنظمة التوثيق
+
+## حالات الاستخدام
+
+- التحقق من أن جميع الصفحات بحجم A4 قبل تسليم المستند إلى المطبعة
+- تشخيص سبب طباعة ملف PDF مدموج بهوامش غير متوقعة في بعض الصفحات
+- توثيق تخطيط صفحات أرشيف PDF كبير لسجلات البيانات الوصفية
+- تحديد الصفحات المدارة التي تحتاج إلى تصحيح
+
+## نصائح
+
+- إذا أظهر الملخص "أحجام مختلفة"، فاستخدم أداة توحيد حجم الصفحة لتوحيد الأحجام قبل الطباعة.
+- يساعد حقل الدوران على تحديد الصفحات التي تُعرض بشكل صحيح لكن لها خاصية دوران غير صفرية، وقد تسبب مشاكل في بعض سير العمل.
+
+## أدوات ذات صلة
+
+- [توحيد حجم الصفحة](./fix-page-size) (وحّد الصفحات بعد تحديد الأحجام المختلطة)
+- [ضغط PDF](./compress-pdf) (حسّن ملف PDF بعد إصلاح مشاكل الصفحات)
+- [تدوير PDF](./rotate-pdf) (صحّح الصفحات المدارة)
diff --git a/docs/ar/tools/page-numbers.md b/docs/ar/tools/page-numbers.md
new file mode 100644
index 00000000..e4c22b97
--- /dev/null
+++ b/docs/ar/tools/page-numbers.md
@@ -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-numbering)
+- [رأس وتذييل](./header-footer)
diff --git a/docs/ar/tools/pdf-booklet.md b/docs/ar/tools/pdf-booklet.md
new file mode 100644
index 00000000..a1974ea8
--- /dev/null
+++ b/docs/ar/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: كتيّب PDF
+description: أعد ترتيب صفحات PDF بنظام الكتيب (التدبيس بالسرج) للطي والتدبيس في كتيب مطبوع.
+---
+
+# كتيّب PDF
+
+أعد ترتيب صفحات ملف PDF بنظام فرض الكتيب. عند الطباعة على الوجهين والطي من المنتصف، تظهر الصفحات بتسلسل القراءة الصحيح. هذا هو التخطيط المستخدم في الكتيبات المدبّسة بالسرج والمجلات الصغيرة (zines).
+
+## طريقة العمل
+
+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)
diff --git a/docs/ar/tools/pdf-layers.md b/docs/ar/tools/pdf-layers.md
new file mode 100644
index 00000000..3b41ee64
--- /dev/null
+++ b/docs/ar/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: طبقات PDF OCG
+description: اعرض طبقات Optional Content Group (OCG) في مستند PDF وبدّل ظهورها وأضفها واحذفها.
+---
+
+# طبقات PDF OCG
+
+أدر مجموعات المحتوى الاختياري (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)
diff --git a/docs/ar/tools/pdf-multi-tool.md b/docs/ar/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..f8764d60
--- /dev/null
+++ b/docs/ar/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: أداة PDF المتعددة
+description: منظِّم صفحات شامل لدمج صفحات PDF وتقسيمها وتدويرها وتكرارها وحذفها وإعادة ترتيبها وتغيير حجمها.
+---
+
+# أداة PDF المتعددة
+
+مساحة عمل موحدة لكل عمليات PDF على مستوى الصفحة. ارفع ملف PDF واحدًا أو أكثر وتعامل مع جميع صفحاتها في شبكة مرئية واحدة. دوّر الصفحات وأعد ترتيبها وكرّرها واحذفها، وأدرج ملفات PDF وصورًا وصفحات فارغة، وأعد الترقيم، وغيّر الحجم، وقسّم النتيجة، كل ذلك دون مغادرة الأداة.
+
+## طريقة العمل
+
+1. انقر على **اختر الملفات** أو اسحب الملفات إلى منطقة الرفع. يمكنك رفع عدة ملفات، وتُدمج بترتيب رفعها.
+2. تظهر جميع الصفحات في شبكة قابلة للتمرير مع صور مصغرة.
+3. انقر على صفحة لتحديدها. استخدم Shift مع النقر لتحديد نطاق، وCmd/Ctrl مع النقر لإضافة صفحات مفردة إلى التحديد أو إزالتها منه.
+4. استخدم شريط أدوات المنظِّم أو انقر بزر الفأرة الأيمن على صفحة للوصول إلى إجراءات الصفحة.
+5. انقر على **تصدير PDF** لتنزيل النتيجة النهائية.
+
+## الميزات
+
+- **دمج**: ارفع عدة ملفات PDF وصور وستُدمج في مستند واحد تلقائيًا
+- **إعادة الترتيب**: اسحب الصفحات وأفلتها لإعادة ترتيب التسلسل، أو اعكس ترتيب المستند بالكامل
+- **تدوير**: دوّر الصفحات المحددة يسارًا أو يمينًا بخطوات قدرها 90 درجة
+- **تكرار**: انسخ الصفحات المحددة وضع النسخ بعدها مباشرة
+- **حذف**: احذف الصفحات المحددة
+- **إدراج**: أضف صفحات من ملف PDF آخر أو من صورة، أو صفحة فارغة، أو صفحات من الحافظة، أو ادمج صفحات ملف PDF ثانٍ بالتناوب مع الصفحات الحالية
+- **استبدال**: استبدل صفحة بالصفحة الأولى من ملف PDF آخر
+- **قص ونسخ ولصق**: انقل الصفحات أو انسخها داخل المستند
+- **استخراج**: نزّل الصفحات المحددة كملف PDF أو كصور
+- **أرقام الصفحات**: عيّن تسميات لنطاق من الصفحات مثل i وii وiii أو A-1 وA-2
+- **حجم الصفحة**: اضبط الصفحات على مقاس ورق قياسي أو على مقاس مخصص
+- **تقسيم**: قسّم المستند حسب نطاقات الصفحات، أو الصفحات الفردية والزوجية، أو كل صفحة، أو الإشارات المرجعية، أو كل N صفحات، أو حجم الملف
+- **تراجع / إعادة**: يمكن التراجع عن كل عملية على الصفحات وإعادتها
+- يصلح ملفات PDF التالفة تلقائيًا قبل التحميل
+
+## اختصارات لوحة المفاتيح
+
+| الإجراء | الاختصار |
+| --------------------- | ----------------------------- |
+| تدوير لليمين / لليسار | R / Shift+R |
+| تحديد الكل | Cmd/Ctrl+A |
+| قص، نسخ، لصق | Cmd/Ctrl+X, C, V |
+| تكرار | Cmd/Ctrl+D |
+| حذف | Delete أو Backspace |
+| تراجع / إعادة | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| نقل التحديد | مفاتيح الأسهم وHome وEnd |
+
+## حالات الاستخدام
+
+- إنشاء مستند مخصص من صفحات عدة ملفات PDF مصدر
+- تنظيف مستند ممسوح ضوئيًا بحذف الصفحات الفارغة وتدوير الصفحات الجانبية وإعادة ترتيب الأقسام
+- تقسيم ملف PDF كبير عند حدود الفصول باستخدام إشاراته المرجعية
+- تعديل سريع على مستوى الصفحة دون الحاجة إلى محرر PDF كامل
+
+## نصائح
+
+- يتتبع سجل التراجع والإعادة كل عملية على الصفحات. استخدمه بحرية، فلا يمكنك إتلاف عملك عن طريق الخطأ.
+- استخدم **Insert > From File** أو أفلت مزيدًا من ملفات PDF أو الصور على شبكة الصفحات في أي وقت لإضافتها إلى المستند.
+- لمهام الدمج أو التقسيم البسيطة، قد تكون أداتا [دمج PDF](./merge-pdf) و[تقسيم PDF](./split-pdf) المخصصتان أسرع. تتألق الأداة المتعددة عندما تحتاج إلى عدة عمليات في جلسة واحدة.
+
+## أدوات ذات صلة
+
+- [دمج PDF](./merge-pdf)
+- [تقسيم PDF](./split-pdf)
+- [تنظيم ونسخ الصفحات](./organize-pdf)
+- [تدوير PDF](./rotate-pdf)
diff --git a/docs/ar/tools/pdf-to-bmp.md b/docs/ar/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..f039b560
--- /dev/null
+++ b/docs/ar/tools/pdf-to-bmp.md
@@ -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` وهكذا.
+
+## حالات الاستخدام
+
+- تغذية الأنظمة أو الأجهزة القديمة التي لا تقبل إلا BMP بصفحات PDF.
+- تجهيز صور غير مضغوطة لسير عمل طباعة معين.
+- استخدام الناتج النقطي كمدخل لأدوات معالجة الصور التي تتطلب بيانات بكسلات خام.
+
+## نصائح
+
+- ملفات BMP كبيرة جدًا لأنها تخزن بيانات البكسلات الخام دون ضغط. في معظم الاستخدامات، تمنحك [PDF إلى PNG](./pdf-to-png) جودة دون فقدان بملفات أصغر بكثير.
+- إذا كان نظامك الهدف يقبل PNG أو TIFF، ففضّل هاتين الصيغتين لتوفير مساحة القرص.
+
+## أدوات ذات صلة
+
+- [PDF إلى PNG](./pdf-to-png)
+- [PDF إلى TIFF](./pdf-to-tiff)
+- [PDF إلى JPG](./pdf-to-jpg)
diff --git a/docs/ar/tools/pdf-to-cbz.md b/docs/ar/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..3cf0dced
--- /dev/null
+++ b/docs/ar/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF إلى CBZ
+description: حوّل ملف PDF إلى ملف CBZ (أرشيف الكتب المصورة) لقارئات الكتب المصورة مثل 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").
+- **الرقم (#)**: رقم العدد داخل السلسلة.
+- **المجلد**: رقم المجلد.
+- **المؤلف(ون)**: اسم الكاتب أو المبدع.
+- **الناشر**: شركة النشر.
+- **الوسوم / النوع**: وسوم مفصولة بفواصل (مثل "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)
diff --git a/docs/ar/tools/pdf-to-csv.md b/docs/ar/tools/pdf-to-csv.md
new file mode 100644
index 00000000..947a2da3
--- /dev/null
+++ b/docs/ar/tools/pdf-to-csv.md
@@ -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.
+
+## الخيارات
+
+لا تحتوي هذه الأداة على خيارات قابلة للضبط. تُستخرج جميع الجداول الموجودة في المستند وتُدمج في ملف 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)
diff --git a/docs/ar/tools/pdf-to-excel.md b/docs/ar/tools/pdf-to-excel.md
new file mode 100644
index 00000000..243a181b
--- /dev/null
+++ b/docs/ar/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF إلى Excel
+description: استخرج الجداول من مستندات PDF إلى جدول بيانات Excel. يحصل كل جدول على ورقة عمل خاصة به مع مرجع الصفحة.
+---
+
+# PDF إلى Excel
+
+يستخرج الجداول من ملف PDF ويحفظها كجدول بيانات Excel (`.xlsx`). يوضع كل جدول مكتشف في ورقة عمل خاصة به، مسمّاة برقم الجدول وصفحة المصدر. يعتمد على PyMuPDF لاكتشاف الجداول ومكتبة SheetJS لإنشاء ملف Excel.
+
+## طريقة العمل
+
+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)
diff --git a/docs/ar/tools/pdf-to-greyscale.md b/docs/ar/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..0387d2dd
--- /dev/null
+++ b/docs/ar/tools/pdf-to-greyscale.md
@@ -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 بتدرج الرمادي.
+
+## حالات الاستخدام
+
+- تجهيز المستندات للطباعة بالأبيض والأسود لتوفير تكلفة الحبر الملون.
+- تلبية متطلبات التقديم في الملفات القانونية أو الحكومية التي تشترط تدرج الرمادي.
+- تقليل حجم الملفات الغنية بالألوان (صور JPEG بتدرج الرمادي أصغر من الملونة).
+- إنشاء أسلوب بصري موحد عبر مستندات تحتوي على صفحات ملونة وأخرى بالأبيض والأسود.
+
+## نصائح
+
+- بما أن كل صفحة تُحوَّل إلى صورة وتُضمَّن كـ JPEG، فإن الناتج قائم على الصور. لن يكون النص في ملف PDF الأصلي قابلًا للتحديد أو البحث بعد ذلك. إذا كنت تحتاج إلى نص قابل للبحث لاحقًا، فمرّر الناتج عبر أداة OCR.
+- لمزيد من التحكم في تعديلات الألوان (السطوع والتباين والتشبع)، راجع أداة "ضبط الألوان" أو عقدة "PDF إلى تدرج الرمادي" في [منشئ سير عمل PDF](./pdf-workflow).
+
+## أدوات ذات صلة
+
+- [PDF إلى JPG](./pdf-to-jpg)
+- [PDF إلى PNG](./pdf-to-png)
+- [منشئ سير عمل PDF](./pdf-workflow)
diff --git a/docs/ar/tools/pdf-to-jpg.md b/docs/ar/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..e8d7935f
--- /dev/null
+++ b/docs/ar/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF إلى JPG
+description: حوّل صفحات PDF إلى صور JPG بجودة قابلة للضبط. تُنزَّل ملفات 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 × 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)
diff --git a/docs/ar/tools/pdf-to-json.md b/docs/ar/tools/pdf-to-json.md
new file mode 100644
index 00000000..ae3cf127
--- /dev/null
+++ b/docs/ar/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF إلى JSON
+description: حوّل ملفات PDF إلى صيغة JSON منظمة باستخدام CPDF. يصدّر البنية الداخلية لـ 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)
diff --git a/docs/ar/tools/pdf-to-markdown.md b/docs/ar/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..086a11e5
--- /dev/null
+++ b/docs/ar/tools/pdf-to-markdown.md
@@ -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`.
+
+## الخيارات
+
+- **تضمين الصور بصيغة base64**: عند تفعيله، تُستخرج الصور المضمّنة من ملف 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)
diff --git a/docs/ar/tools/pdf-to-pdfa.md b/docs/ar/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..6fb491b7
--- /dev/null
+++ b/docs/ar/tools/pdf-to-pdfa.md
@@ -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 ومصممة للحفظ الرقمي طويل الأمد. تحوّل هذه الأداة ملفات PDF العادية إلى مستندات متوافقة مع PDF/A باستخدام Ghostscript الذي يعمل مباشرة في متصفحك.
+
+## طريقة العمل
+
+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) (أزل البيانات الوصفية قبل الأرشفة)
diff --git a/docs/ar/tools/pdf-to-png.md b/docs/ar/tools/pdf-to-png.md
new file mode 100644
index 00000000..402ec937
--- /dev/null
+++ b/docs/ar/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF إلى PNG
+description: حوّل صفحات PDF إلى صور PNG دون فقدان بمقياس قابل للضبط. مثالي للقطات الشاشة عالية الجودة والخلفيات الشفافة.
+---
+
+# PDF إلى PNG
+
+يحوّل كل صفحة من ملف PDF إلى صورة PNG. يستخدم PNG ضغطًا دون فقدان، لذا يحافظ الناتج على كل تفصيل في الصفحة الأصلية. تُنزَّل ملفات PDF ذات الصفحة الواحدة كملف `.png`، وتنتج متعددة الصفحات ملف ZIP.
+
+## طريقة العمل
+
+1. ارفع ملف PDF بالنقر على منطقة الإفلات أو بسحب ملف إليها.
+2. اضبط شريط **مقياس الصورة** للتحكم في دقة الناتج.
+3. انقر على **تحويل** لبدء المعالجة.
+4. يتم تنزيل ملف PNG واحد أو أرشيف ZIP تلقائيًا.
+
+## الخيارات
+
+- **مقياس الصورة**: يتراوح من 1.0x إلى 3.0x (الافتراضي 2.0x). عند 2.0x، تُعرض صفحة بحجم Letter القياسي بحجم 1,224 × 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)
diff --git a/docs/ar/tools/pdf-to-svg.md b/docs/ar/tools/pdf-to-svg.md
new file mode 100644
index 00000000..62edccb1
--- /dev/null
+++ b/docs/ar/tools/pdf-to-svg.md
@@ -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.
+
+## الخيارات
+
+لا تحتوي هذه الأداة على خيارات قابلة للضبط. تُحوَّل كل صفحة إلى SVG باستخدام التصدير المتجهي الأصلي في PyMuPDF.
+
+## صيغة الناتج
+
+- **ملف واحد، صفحة واحدة**: `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)
diff --git a/docs/ar/tools/pdf-to-text.md b/docs/ar/tools/pdf-to-text.md
new file mode 100644
index 00000000..7b2bff44
--- /dev/null
+++ b/docs/ar/tools/pdf-to-text.md
@@ -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)
diff --git a/docs/ar/tools/pdf-to-tiff.md b/docs/ar/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..5a98d56e
--- /dev/null
+++ b/docs/ar/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF إلى TIFF
+description: حوّل صفحات PDF إلى صور TIFF، المستخدمة عادةً في الطباعة والفاكس وسير عمل الأرشفة. يعود إلى PNG إذا فشل الترميز.
+---
+
+# PDF إلى TIFF
+
+يحوّل كل صفحة من ملف PDF إلى صورة TIFF. TIFF هي الصيغة القياسية لإنتاج المطبوعات وأنظمة الفاكس وأرشفة المستندات. تستخدم الأداة ضغط PackBits لترميز TIFF وتعود إلى 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) خيار أفضل.
+- تحقق من محتويات ملف ZIP إذا احتاجت بعض الصفحات إلى الرجوع إلى PNG، فقد ترغب في تحويلها بشكل منفصل.
+
+## أدوات ذات صلة
+
+- [PDF إلى PNG](./pdf-to-png)
+- [PDF إلى BMP](./pdf-to-bmp)
+- [PDF إلى JPG](./pdf-to-jpg)
diff --git a/docs/ar/tools/pdf-to-webp.md b/docs/ar/tools/pdf-to-webp.md
new file mode 100644
index 00000000..e2ded2e2
--- /dev/null
+++ b/docs/ar/tools/pdf-to-webp.md
@@ -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)
diff --git a/docs/ar/tools/pdf-to-word.md b/docs/ar/tools/pdf-to-word.md
new file mode 100644
index 00000000..2d3b4a01
--- /dev/null
+++ b/docs/ar/tools/pdf-to-word.md
@@ -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 إلى DOCX باستخدام محرك التحويل المدمج في PyMuPDF.
+
+## صيغة الناتج
+
+- **ملف واحد**: `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)
diff --git a/docs/ar/tools/pdf-to-zip.md b/docs/ar/tools/pdf-to-zip.md
new file mode 100644
index 00000000..f70129f1
--- /dev/null
+++ b/docs/ar/tools/pdf-to-zip.md
@@ -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)
diff --git a/docs/ar/tools/pdf-workflow.md b/docs/ar/tools/pdf-workflow.md
new file mode 100644
index 00000000..f267cfd2
--- /dev/null
+++ b/docs/ar/tools/pdf-workflow.md
@@ -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 إلى ملصقات وتعديل البيانات الوصفية وجدول المحتويات والتعرف الضوئي على 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** (أخضر): كائن صورة.
+
+## الخيارات
+
+لكل عقدة إعداداتها الخاصة المتاحة عبر لوحة الإعدادات اليمنى. تشمل الأنماط الشائعة:
+
+- **نطاقات الصفحات** في عقد تقسيم PDF واستخراج الصفحات وحذف الصفحات
+- **أشرطة الجودة** في عقد إخراج تحويل الصور
+- **حقول كلمة المرور** في عقدتي تشفير وفك التشفير
+- **مدخلات نصية** لـ إضافة علامة مائية ورأس وتذييل وتعديل البيانات الوصفية
+- **زوايا التدوير** في عقدة تدوير PDF
+- **مستوى الضغط** في عقدة ضغط PDF
+- **اختيار لغة OCR** في عقدة التعرف الضوئي على PDF
+
+## حالات الاستخدام
+
+- **خط معالجة الفواتير**: إدخال PDF -> التعرف الضوئي على 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)
diff --git a/docs/ar/tools/png-to-pdf.md b/docs/ar/tools/png-to-pdf.md
new file mode 100644
index 00000000..d963e52c
--- /dev/null
+++ b/docs/ar/tools/png-to-pdf.md
@@ -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. إذا كنت تحتاج إلى خلفية مختلفة، فعدّل الصور مسبقًا.
+- بالنسبة للقطات الشاشة والمخططات ذات الحواف الحادة والنصوص، تتجنب الجودة High عيوب ضغط JPEG. وقد تتحول الصور داخليًا إلى JPEG مع Medium أو Low.
+
+## أدوات ذات صلة
+
+- [صور إلى PDF](./image-to-pdf)
+- [JPG إلى PDF](./jpg-to-pdf)
+- [SVG إلى PDF](./svg-to-pdf)
diff --git a/docs/ar/tools/posterize-pdf.md b/docs/ar/tools/posterize-pdf.md
new file mode 100644
index 00000000..9a070340
--- /dev/null
+++ b/docs/ar/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: تقسيم PDF إلى ملصقات
+description: قسّم صفحات PDF إلى شبكة من الصفحات الأصغر للطباعة بحجم كبير على عدة أوراق.
+---
+
+# تقسيم PDF إلى ملصقات
+
+قسّم كل صفحة في ملف PDF إلى شبكة من الصفحات الفرعية الأصغر. هذه هي الأداة المناسبة لطباعة صفحة واحدة على عدة أوراق، ثم تجميعها معًا للحصول على ملصق كبير أو لافتة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. حدّد عدد **الصفوف** و**الأعمدة** لتكوين الشبكة (مثلًا، 2 صف × 2 عمود يقسم كل صفحة إلى 4 صفحات فرعية).
+3. يمكنك اختياريًا تحديد نطاق صفحات لتقييد الصفحات التي سيتم تقسيمها.
+4. تعرض لوحة المعاينة شبكة فوق الصفحة الحالية لتتمكن من رؤية أماكن القص.
+5. تنقّل بين الصفحات للتحقق من الشبكة على صفحات مختلفة.
+6. انقر على زر المعالجة. تصبح كل خلية في الشبكة صفحة مستقلة في ملف PDF الناتج.
+
+## الميزات
+
+- عدد صفوف وأعمدة قابل للضبط لأحجام شبكة مرنة
+- معاينة مباشرة مع شبكة توضح بدقة أماكن تقسيم الصفحات
+- مرشح نطاق الصفحات لتقسيم صفحات محددة فقط
+- التنقل بين الصفحات في المعاينة
+- لقطات مخزنة مؤقتًا للصفحات لتنقل سريع في المعاينة
+- خطوط شبكة حمراء متقطعة تحدد حدود القص بوضوح
+
+## الخيارات
+
+| الخيار | الوصف |
+| ---------------- | ------------------------------------------ |
+| **الصفوف** | عدد التقسيمات الأفقية (الافتراضي: 1) |
+| **الأعمدة** | عدد التقسيمات الرأسية (الافتراضي: 1) |
+| **نطاق الصفحات** | الصفحات المراد تقسيمها (فارغ = كل الصفحات) |
+
+## حالات الاستخدام
+
+- طباعة ملف PDF بحجم ملصق على أوراق A4 أو Letter القياسية لتجميعها على الحائط
+- إنشاء لافتات كبيرة من تصميم PDF من صفحة واحدة
+- تقسيم الرسومات الفنية كبيرة الحجم إلى أجزاء قابلة للطباعة
+- الحصول على مطبوعات كبيرة دون الحاجة إلى طابعة عريضة
+
+## نصائح
+
+- شبكة 2×2 تحوّل الصفحة الواحدة إلى 4 صفحات، وشبكة 3×3 تحوّلها إلى 9. خطّط للشبكة بحسب الحجم الذي تريده للناتج النهائي بعد التجميع.
+- تساعدك الشبكة في المعاينة على التأكد من أن المحتوى المهم لا يقع على خط القص. عدّل الصفوف والأعمدة عند الحاجة.
+- للعملية العكسية (وضع عدة صفحات على ورقة واحدة)، استخدم [N-Up PDF](./n-up-pdf).
+
+## أدوات ذات صلة
+
+- [N-Up PDF](./n-up-pdf)
+- [تقسيم الصفحات](./divide-pages)
+- [تقسيم PDF](./split-pdf)
diff --git a/docs/ar/tools/powerpoint-to-pdf.md b/docs/ar/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..bbc22406
--- /dev/null
+++ b/docs/ar/tools/powerpoint-to-pdf.md
@@ -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)
diff --git a/docs/ar/tools/prepare-pdf-for-ai.md b/docs/ar/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..273d32ec
--- /dev/null
+++ b/docs/ar/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: تحضير PDF للذكاء الاصطناعي
+description: استخرج محتوى PDF إلى JSON منظم ومحسّن لنماذج اللغة الكبيرة وخطوط الذكاء الاصطناعي مثل LlamaIndex. يدعم المعالجة الدفعية.
+---
+
+# تحضير PDF للذكاء الاصطناعي
+
+يستخرج محتوى ملفات PDF وينظّمه بصيغة JSON محسّنة للاستيعاب من قبل نماذج اللغة الكبيرة (LLMs) وأطر الذكاء الاصطناعي مثل LlamaIndex. يُستخرج محتوى كل صفحة ويُنظَّم في بنية جاهزة لخطوط RAG وروبوتات المحادثة وأنظمة البحث الدلالي.
+
+## طريقة العمل
+
+1. ارفع ملف PDF واحدًا أو أكثر بالنقر على منطقة الإفلات أو بسحب الملفات إليها.
+2. انقر على **استخراج** لبدء المعالجة.
+3. يتم تنزيل الملف الواحد باسم `filename_llm.json`. أما الملفات المتعددة فتنتج أرشيف `pdf-for-ai.zip`.
+
+تستخدم الأداة تكامل LlamaIndex في PyMuPDF لاستخراج محتوى كل صفحة مع البيانات الوصفية، لينتج مخرجات يمكن تحميلها مباشرة في أطر الذكاء الاصطناعي.
+
+## الخيارات
+
+لا تحتوي هذه الأداة على خيارات قابلة للضبط. تُستخرج كل الصفحات بالنص الكامل والبيانات الوصفية.
+
+## صيغة الناتج
+
+- **ملف واحد**: `filename_llm.json`
+- **ملفات متعددة**: `pdf-for-ai.zip` يحتوي على ملف `_llm.json` واحد لكل ملف PDF مدخل.
+
+يتبع ناتج JSON مخطط مستندات LlamaIndex مع محتوى نصي وحقول بيانات وصفية لكل صفحة.
+
+## حالات الاستخدام
+
+- تحضير مستندات PDF لخطوط التوليد المعزز بالاسترجاع (RAG).
+- بناء قاعدة معرفة قابلة للبحث من أرشيفات PDF لروبوت محادثة يعمل بالذكاء الاصطناعي.
+- تغذية تقارير PDF إلى مسارات التحليل المعتمدة على نماذج اللغة الكبيرة.
+- المعالجة المسبقة للأوراق البحثية لأنظمة البحث الدلالي والإجابة عن الأسئلة.
+- إنشاء بيانات تدريب منظمة من مجموعات مستندات PDF.
+
+## نصائح
+
+- لاستخراج النص العادي دون تنسيق خاص بالذكاء الاصطناعي، استخدم [PDF إلى نص](./pdf-to-text).
+- للحصول على ناتج Markdown يحافظ على العناوين والبنية، استخدم [PDF إلى Markdown](./pdf-to-markdown).
+- ستنتج ملفات PDF الممسوحة ضوئيًا مخرجات فارغة أو شبه فارغة. مرّرها عبر التعرف الضوئي على الحروف أولًا لإضافة طبقة نصية قبل الاستخراج.
+
+## أدوات ذات صلة
+
+- [PDF إلى نص](./pdf-to-text)
+- [PDF إلى Markdown](./pdf-to-markdown)
+- [PDF إلى JSON](./pdf-to-json)
diff --git a/docs/ar/tools/protect-pdf.md b/docs/ar/tools/protect-pdf.md
new file mode 100644
index 00000000..a0a590be
--- /dev/null
+++ b/docs/ar/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: حماية PDF
+description: احمِ ملفات PDF بكلمة مرور وتشفير AES بطول 256 بت. عيّن كلمتي مرور المستخدم والمالك مع قيود استخدام قابلة للضبط.
+---
+
+# حماية PDF
+
+اقفل ملف PDF بكلمة مرور بحيث لا يفتحه إلا الأشخاص المصرّح لهم. يستخدم BentoPDF تشفير AES بطول 256 بت، وهو المعيار نفسه الذي تستخدمه البنوك والجهات الحكومية، ويُطبَّق بالكامل داخل متصفحك عبر QPDF.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. أدخل **كلمة مرور المستخدم** (مطلوبة). هذه هي كلمة المرور التي سيحتاجها الأشخاص لفتح الملف.
+3. يمكنك اختياريًا إدخال **كلمة مرور المالك**. عند تعيينها، يحصل ملف PDF على قيود استخدام تمنع الطباعة والتحرير والنسخ والتعليق.
+4. انقر على **تشفير PDF**.
+5. نزّل الملف المشفر.
+
+## أنواع كلمات المرور
+
+### كلمة مرور المستخدم (مطلوبة)
+
+كلمة مرور المستخدم هي ما يكتبه المستلمون لفتح ملف PDF. بدونها يصبح المستند غير متاح تمامًا. يجب أن يملك كل ملف PDF مشفر كلمة مرور مستخدم.
+
+### كلمة مرور المالك (اختيارية)
+
+تتحكم كلمة مرور المالك فيما يستطيع المستخدم المصرّح له فعله بعد فتح الملف. عند تعيين كلمة مرور مالك مختلفة، يطبّق BentoPDF تلقائيًا أشد مجموعة قيود:
+
+- التعديل معطّل
+- الاستخراج والنسخ معطّلان
+- الطباعة معطّلة
+- التعليق معطّل
+- تعبئة النماذج معطّلة
+- تجميع المستند معطّل
+
+إذا تركت كلمة مرور المالك فارغة، فسيكون ملف PDF مشفرًا (ما زال يتطلب كلمة مرور المستخدم لفتحه) لكن دون قيود استخدام بعد فتحه.
+
+## تفاصيل التشفير
+
+- **الخوارزمية**: AES-256 (معيار التشفير المتقدم بطول 256 بت)
+- **طول المفتاح**: 256 بت
+- **المعيار**: تشفير PDF 2.0 (تنفيذ QPDF)
+
+يستحيل عمليًا كسر AES-256 بالقوة الغاشمة بالتقنيات الحالية. يعتمد أمان ملف PDF المشفر بالكامل على قوة كلمة المرور.
+
+## حالات الاستخدام
+
+- حماية التقارير المالية السرية قبل إرسالها بالبريد الإلكتروني
+- تأمين المستندات القانونية المشاركة مع الطرف المقابل
+- إضافة كلمة مرور إلى السجلات الطبية أو المعلومات الشخصية
+- توزيع المحتوى المدفوع (الكتب الإلكترونية والتقارير) مع التحكم في الوصول
+- الامتثال لسياسات حماية البيانات التي تتطلب التشفير أثناء التخزين
+
+## نصائح
+
+- استخدم كلمة مرور قوية وفريدة. عبارة مرور من 12 حرفًا أو أكثر تجمع الأحرف الكبيرة والصغيرة والأرقام والرموز مثالية.
+- شارك كلمة المرور عبر قناة منفصلة (الهاتف أو رسالة نصية)، وليس أبدًا في رسالة البريد نفسها التي تحمل ملف PDF.
+- إذا كنت تريد فقط تقييد الإجراءات (منع الطباعة والنسخ) دون طلب كلمة مرور للفتح، فاستخدم أداة تغيير الأذونات.
+
+## أدوات ذات صلة
+
+- [إلغاء قفل PDF](./unlock-pdf): أزل التشفير عندما تعرف كلمة المرور
+- [تغيير الأذونات](./change-permissions): عدّل قيود الاستخدام المحددة
+- [إزالة القيود](./remove-restrictions): أزل كل إعدادات الأمان من ملف PDF
+- [تنظيف PDF](./sanitize-pdf): أزل المحتوى المخفي قبل التشفير
diff --git a/docs/ar/tools/psd-to-pdf.md b/docs/ar/tools/psd-to-pdf.md
new file mode 100644
index 00000000..67292694
--- /dev/null
+++ b/docs/ar/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD إلى PDF
+description: حوّل ملفات Photoshop (PSD) إلى PDF داخل متصفحك. مجاني وخاص ولا يتطلب برامج Adobe.
+---
+
+# PSD إلى PDF
+
+حوّل ملفات Adobe Photoshop بصيغة PSD إلى مستندات 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 عالية الدقة (ملفات الطباعة بدقة 300 نقطة في البوصة أو أكثر) ملفات PDF كبيرة. تحافظ الأداة على الدقة الكاملة.
+
+## أدوات ذات صلة
+
+- [صور إلى PDF](./image-to-pdf)
+- [PNG إلى PDF](./png-to-pdf)
+- [VSD إلى PDF](./vsd-to-pdf)
diff --git a/docs/ar/tools/pub-to-pdf.md b/docs/ar/tools/pub-to-pdf.md
new file mode 100644
index 00000000..217dac48
--- /dev/null
+++ b/docs/ar/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB إلى PDF
+description: حوّل ملفات Microsoft Publisher (PUB) إلى PDF داخل متصفحك. مجاني وخاص ولا يتطلب أي برنامج.
+---
+
+# PUB إلى PDF
+
+حوّل ملفات Microsoft Publisher إلى PDF. Publisher أداة نشر مكتبي مرفقة مع بعض إصدارات Microsoft Office، لكن معظم الناس لا يملكونها. تتيح لك هذه الأداة تحويل ملفات PUB إلى PDF مباشرة في المتصفح، دون الحاجة إلى أي برنامج من Microsoft.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :------------------ | :------- | :-------------------- |
+| Microsoft Publisher | `.pub` | مستندات النشر المكتبي |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات PUB وأفلتها. يمكن رفع عدة ملفات دفعة واحدة.
+2. راجع قائمة الملفات. أزل الملفات غير المرغوبة بأيقونة سلة المهملات، أو انقر على **إضافة المزيد من الملفات** لإضافة ملفات أخرى.
+3. انقر على **تحويل إلى PDF**. يتم تحميل محرك قائم على LibreOffice في المتصفح ويحوّل كل ملف PUB مع الحفاظ على التخطيط والصور ومربعات النص.
+4. يُنزَّل الملف الواحد مباشرة بصيغة PDF. أما الملفات المتعددة فتُسلَّم في أرشيف ZIP باسم `pub-to-pdf.zip`.
+
+## الخيارات
+
+لا حاجة إلى إعدادات إضافية. يتعامل المحوّل مع محرك تخطيط PUB تلقائيًا.
+
+## حالات الاستخدام
+
+- فتح نشرة إعلانية أو رسالة إخبارية بصيغة PUB من عميل دون شراء Microsoft Publisher
+- تحويل نشرات الكنائس وبرامج الفعاليات والرسائل الإخبارية المدرسية المنشأة في Publisher
+- أرشفة المواد التسويقية من Publisher بصيغة يمكن للجميع فتحها
+- طباعة ملفات PUB على جهاز لا يحتوي على Publisher
+
+## نصائح
+
+- قد تتحرك قليلًا التخطيطات المعقدة في Publisher التي تضم مربعات نص متراكبة وتموضعًا دقيقًا أثناء التحويل. راجع الناتج إذا كان التموضع الدقيق مهمًا.
+- يُهيَّأ محرك LibreOffice مرة واحدة في كل جلسة. يستغرق التحويل الأول وقتًا أطول، وتكون التحويلات اللاحقة أسرع.
+- للحصول على أدق تحويل لملفات Publisher، تأكد من أن أي خطوط مخصصة مستخدمة في الملف الأصلي هي خطوط نظام قياسية.
+
+## أدوات ذات صلة
+
+- [VSD إلى PDF](./vsd-to-pdf)
+- [ODP إلى PDF](./odp-to-pdf)
diff --git a/docs/ar/tools/rasterize-pdf.md b/docs/ar/tools/rasterize-pdf.md
new file mode 100644
index 00000000..b80dae84
--- /dev/null
+++ b/docs/ar/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: تحويل PDF إلى صور نقطية
+description: حوّل صفحات PDF إلى ملف PDF قائم على الصور. سطّح كل الطبقات، وأزل النص القابل للتحديد، وتحكم في الدقة وصيغة الصورة.
+---
+
+# تحويل PDF إلى صور نقطية
+
+يحوّل التحويل النقطي كل صفحة من ملف PDF إلى صورة ثم يعيد تجميع هذه الصور في ملف PDF. تبدو النتيجة مطابقة للأصل لكنها لا تحتوي على نص قابل للتحديد ولا عناصر تفاعلية ولا طبقات قابلة للتحرير. إنها عمليًا نسخة ضوئية عالية الجودة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF واحدًا أو أكثر.
+2. اضبط **الدقة (DPI)** للناتج النقطي.
+3. اختر **صيغة الصورة**: PNG لجودة بلا فقدان أو JPEG لملفات أصغر.
+4. يمكنك اختياريًا تحديد **التحويل إلى تدرج الرمادي**.
+5. انقر على **تحويل PDF إلى صور نقطية**. تُنزَّل الملفات المتعددة في ملف ZIP.
+
+## الخيارات
+
+| الإعداد | القيم | الافتراضي |
+| ---------------- | ---------------------------- | --------- |
+| **الدقة (DPI)** | 72، 150، 200، 300، 600 | 150 |
+| **صيغة الصورة** | PNG (بلا فقدان)، JPEG (أصغر) | PNG |
+| **تدرج الرمادي** | تشغيل/إيقاف | إيقاف |
+
+## إرشادات الدقة
+
+- **72**: للعرض على الشاشة فقط، وأصغر حجم للملف
+- **150**: توازن جيد للاستخدام العام
+- **200**: نص أكثر حدة وحجم ملف معتدل
+- **300**: ناتج بجودة الطباعة
+- **600**: أرشفة عالية الجودة أو طباعة احترافية
+
+## حالات الاستخدام
+
+- منع استخراج النص من المستندات السرية قبل مشاركتها
+- التخلص من مشكلات الاعتماد على الخطوط بتحويل النص إلى بكسلات
+- إنشاء نسخة "مسطحة" من ملف PDF ذي طبقات معقدة أو شفافية تظهر بشكل مختلف بين برامج العرض
+- تجهيز ملف PDF لنظام يقبل المدخلات القائمة على الصور فقط
+- إزالة المحتوى المخفي (مثل التغييرات المتتبعة أو بيانات النماذج) بتحويل PDF إلى صور خالصة
+
+## نصائح
+
+- دقة 150 مع PNG إعداد افتراضي جيد. لا ترفعها إلا إذا احتجت إلى ناتج للطباعة أو إلى تكبير التفاصيل الدقيقة.
+- ينتج JPEG ملفات أصغر بشكل ملحوظ لكنه يضيف تشوهات الضغط على حواف النص الحادة.
+- التحويل النقطي لا رجعة فيه، لذا احتفظ بملف PDF الأصلي إذا كنت قد تحتاج إلى نص قابل للتحرير لاحقًا.
+
+## أدوات ذات صلة
+
+- [ضغط PDF](./compress-pdf): قلّل حجم ملف PDF النقطي
+- [تصحيح انحراف PDF](./deskew-pdf): عدّل استقامة الصفحات قبل التحويل النقطي للمستندات الممسوحة ضوئيًا
+- [تحويل الخطوط إلى مخططات](./font-to-outline): حوّل الخطوط إلى مسارات متجهة إذا أردت الحفاظ على قابلية التكبير
+- [تسطيح PDF](./flatten-pdf): سطّح النماذج دون التحويل إلى صور
diff --git a/docs/ar/tools/remove-annotations.md b/docs/ar/tools/remove-annotations.md
new file mode 100644
index 00000000..73a00eb7
--- /dev/null
+++ b/docs/ar/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: إزالة التعليقات
+description: أزل كل التعليقات والتمييزات والروابط وسائر الشروح من ملف PDF بنقرة واحدة.
+---
+
+# إزالة التعليقات
+
+نظّف ملف PDF بإزالة كل التعليقات التوضيحية: الملاحظات والتمييزات والملاحظات اللاصقة وعلامات النص والروابط والأختام وأي كائنات تعليق أخرى مضمّنة في المستند. يبقى محتوى الصفحة الأساسي (النصوص والصور والرسومات) دون تغيير.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. تكتشف الأداة عدد صفحات المستند وتعرض معلومات الملف.
+3. انقر على **إزالة التعليقات** للمعالجة.
+4. يُنزَّل ملف PDF النظيف تلقائيًا بعد إزالة كل التعليقات.
+
+## الميزات
+
+- تزيل كل أنواع التعليقات: الملاحظات والتمييزات والتسطير والشطب والملاحظات اللاصقة والأختام والروابط وعلامات النماذج
+- تعمل على كل صفحة في المستند
+- تحافظ على كل المحتوى غير التعليقي (النصوص والصور والرسومات المتجهة وحقول النماذج)
+- تعرض عدد الصفحات وحجم الملف قبل المعالجة
+
+## حالات الاستخدام
+
+- تنظيف مستند قبل توزيعه النهائي بعد دورة مراجعة أضاف فيها عدة مراجعين تعليقاتهم
+- إزالة التمييزات والملاحظات اللاصقة من دليل دراسة مشترك
+- إزالة تعليقات الروابط من مستند قبل أرشفته
+- تجهيز نسخة "نظيفة" من مستند قانوني كثرت عليه التعليقات أثناء التفاوض
+- إزالة تعليقات المراجعين من مخطوطة قبل إرسالها إلى الطباعة
+
+## نصائح
+
+- تزيل هذه الأداة التعليقات على مستوى بنية PDF، لذا تحتفظ النتيجة بالنص القابل للتحديد والجودة الأصلية دون أي تحويل نقطي.
+- إذا أردت إزالة تعليقات محددة فقط بدلًا من كلها، فاستخدم [محرر PDF](./edit-pdf) لحذف التعليقات الفردية بشكل انتقائي.
+- لا يمكن إزالة التعليقات في ملفات PDF المسطّحة (التي دُمجت فيها التعليقات داخل محتوى الصفحة) لأنها لم تعد كائنات منفصلة.
+
+## أدوات ذات صلة
+
+- [محرر PDF](./edit-pdf)
+- [إضافة علامة مائية](./add-watermark)
+- [توقيع PDF](./sign-pdf)
diff --git a/docs/ar/tools/remove-blank-pages.md b/docs/ar/tools/remove-blank-pages.md
new file mode 100644
index 00000000..444bdfeb
--- /dev/null
+++ b/docs/ar/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: إزالة الصفحات الفارغة
+description: اكتشف الصفحات الفارغة أو شبه الفارغة في ملف PDF وأزلها تلقائيًا مع حساسية قابلة للضبط.
+---
+
+# إزالة الصفحات الفارغة
+
+افحص ملف PDF بحثًا عن الصفحات الفارغة أو شبه الفارغة وأزلها تلقائيًا. تعرض الأداة كل صفحة وتحلل محتوى بكسلاتها لتحديد ما إذا كانت فارغة، ثم تتيح لك تأكيد الصفحات المراد إزالتها قبل المعالجة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. اضبط شريط **الحساسية** للتحكم في مدى صرامة تعريف "الفارغة".
+3. انقر على **اكتشاف الصفحات الفارغة** لفحص المستند.
+4. تعرض الأداة صورًا مصغرة للصفحات الفارغة المكتشفة لتراجعها.
+5. أكّد التحديد ونزّل ملف PDF النظيف بعد إزالة الصفحات الفارغة.
+
+## الخيارات
+
+- **الحساسية**: شريط من 0% إلى 100% (الافتراضي 80%). القيم الأعلى أكثر صرامة، فلا تُعلَّم إلا الصفحات البيضاء تمامًا أو تقريبًا. القيم الأدنى أكثر تساهلًا، فتلتقط الصفحات ذات المحتوى الضئيل مثل نقطة واحدة أو علامة مائية باهتة.
+
+## الميزات
+
+- تحليل على مستوى البكسل لكل صفحة لاكتشاف المحتوى الفارغ
+- شريط حساسية قابل للضبط لتحسين الاكتشاف
+- معاينة بصور مصغرة للصفحات الفارغة المكتشفة للتحقق اليدوي
+- تحافظ على كل الصفحات غير الفارغة كما هي تمامًا
+- تتعامل مع مستندات من أي حجم أو عدد صفحات
+- تعرض تقدم الفحص أثناء المعالجة
+
+## حالات الاستخدام
+
+- تنظيف المستندات الممسوحة ضوئيًا التي التقط فيها الماسح الضوئي ظهر الأوراق الفارغ من الأصول أحادية الوجه
+- إزالة صفحات الفصل من دفعات المستندات الممسوحة بالجملة
+- إزالة الصفحات الفارغة التي تضيفها أنظمة إدارة المستندات
+- تنظيف ملفات PDF المصدّرة من معالجات النصوص التي تضيف أحيانًا صفحات فارغة في النهاية
+- تقليل حجم الملف بإزالة الصفحات الفارغة غير الضرورية
+
+## نصائح
+
+- ابدأ بالحساسية الافتراضية 80% ثم عدّل منها. إذا فاتت الأداة صفحات تبدو لك فارغة، فخفّض الحساسية. وإذا علّمت صفحات ذات محتوى خفيف تريد الاحتفاظ بها، فارفعها.
+- تعرض الأداة كل صفحة لتحليل محتواها، لذا يزداد وقت المعالجة مع عدد الصفحات. توقع انتظارًا قصيرًا للمستندات الكبيرة جدًا.
+- راجع الصفحات الفارغة المكتشفة في المعاينة المصغرة قبل تأكيد الإزالة. قد تُعلَّم الصفحات ذات الرؤوس أو التذييلات أو العلامات المائية الباهتة بحسب إعدادات الحساسية.
+
+## أدوات ذات صلة
+
+- [اقتصاص PDF](./crop-pdf)
+- [محرر PDF](./edit-pdf)
+- [أرقام الصفحات](./page-numbers)
diff --git a/docs/ar/tools/remove-metadata.md b/docs/ar/tools/remove-metadata.md
new file mode 100644
index 00000000..95b886c1
--- /dev/null
+++ b/docs/ar/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: إزالة البيانات الوصفية
+description: أزل كل البيانات الوصفية المخفية من ملفات PDF بما في ذلك المؤلف والعنوان وتاريخ الإنشاء والمنتج وبيانات XMP ومعرّفات المستند.
+---
+
+# إزالة البيانات الوصفية
+
+يحمل كل ملف PDF بيانات وصفية قد تكشف من أنشأه، وأي برنامج استُخدم، ومتى عُدّل آخر مرة، وغير ذلك. تزيل هذه الأداة كل ذلك: قاموس المعلومات، وتدفقات بيانات XMP الوصفية، ومعرّفات المستند، والبيانات الخاصة بالتطبيقات، لتترك مستندًا نظيفًا بلا أي أثر لأصله.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. انقر على **إزالة البيانات الوصفية**.
+3. نزّل الملف النظيف.
+
+لا توجد خيارات للضبط. الأداة شاملة بطبيعتها: تمسح كل شيء.
+
+## ما الذي تتم إزالته
+
+- **حقول قاموس المعلومات**: العنوان والمؤلف والموضوع والكلمات المفتاحية والمنشئ والمنتج وتاريخ الإنشاء وتاريخ التعديل
+- **تدفق بيانات XMP الوصفية**: كتلة البيانات الوصفية المبنية على XML المخزنة في فهرس المستند
+- **معرّفات المستند**: المعرّفات الفريدة في ذيل PDF التي يمكن استخدامها لتتبع مستند عبر الأنظمة
+- **PieceInfo**: بيانات وصفية خاصة بالتطبيقات تضيفها برامج مثل Illustrator أو InDesign
+
+## ما الذي يبقى
+
+- كل محتوى الصفحات المرئي (النصوص والصور والرسومات)
+- حقول النماذج والتعليقات
+- الإشارات المرجعية والروابط
+- بنية المستند نفسها
+
+## حالات الاستخدام
+
+- إزالة اسمك ومؤسستك من مستند قبل نشره دون الكشف عن هويتك
+- إزالة الطوابع الزمنية للإنشاء التي تكشف وقت إعداد المستند
+- تنظيف سلاسل المنتج التي تحدد البرنامج المستخدم في إنشاء PDF
+- تجهيز مستندات للتقديم التنظيمي تتطلب ملفات PDF خالية من البيانات الوصفية
+- إزالة آثار سجل التعديل قبل مشاركة مستند خارجيًا
+
+## نصائح
+
+- استخدم أداة عرض البيانات الوصفية أولًا لترى بالضبط ما تحتويه ملفات PDF من بيانات وصفية قبل إزالتها.
+- إذا أردت إزالة البيانات الوصفية _وكذلك_ JavaScript والتعليقات والملفات المضمّنة، فاستخدم تنظيف PDF لتنظيف أشمل.
+- إزالة البيانات الوصفية دائمة. احتفظ بالأصل إذا كنت قد تحتاج إلى تلك البيانات لاحقًا.
+
+## أدوات ذات صلة
+
+- [تنظيف PDF](./sanitize-pdf): أزل البيانات الوصفية إضافة إلى السكربتات والمرفقات وغيرها
+- [حماية PDF](./protect-pdf): احمِ ملف PDF النظيف بكلمة مرور
+- [ضغط PDF](./compress-pdf): قد تقلل إزالة البيانات الوصفية حجم الملف قليلًا، واستخدم الضغط لتوفير أكبر
diff --git a/docs/ar/tools/remove-restrictions.md b/docs/ar/tools/remove-restrictions.md
new file mode 100644
index 00000000..a41f7975
--- /dev/null
+++ b/docs/ar/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: إزالة القيود
+description: أزل الحماية بكلمة المرور وقيود الطباعة وأقفال التحرير وحدود النسخ من ملفات PDF.
+---
+
+# إزالة القيود
+
+يمكن أن يحمل PDF نوعين من كلمات المرور: كلمة مرور المستخدم (مطلوبة لفتح الملف) وكلمة مرور المالك (تتحكم فيما يمكنك فعله به). تزيل هذه الأداة الاثنين مع كل القيود المرتبطة بهما: أقفال الطباعة والتحرير والنسخ والتعليق.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. إذا كان لملف PDF كلمة مرور مالك، فأدخلها في حقل **كلمة مرور المالك**. اتركه فارغًا إذا كان ملف PDF يحتوي على قيود استخدام فقط دون كلمة مرور.
+3. انقر على **إزالة القيود**.
+4. نزّل ملف PDF الخالي من القيود.
+
+تستخدم الأداة الخيارين `--decrypt` و`--remove-restrictions` من QPDF لإنتاج نسخة نظيفة وغير مقيدة.
+
+## ما الذي تتم إزالته
+
+- الحماية بكلمة المرور (كلمتا مرور المستخدم والمالك)
+- قيود الطباعة
+- قيود التحرير
+- قيود نسخ النصوص والصور
+- قيود التعليق والتدوين
+- كل القيود الأمنية الأخرى المضمّنة في PDF
+
+## حالات الاستخدام
+
+- فتح قفل ملف PDF تملكه لكنك عيّنت كلمة مروره قبل سنوات
+- إزالة قيود الطباعة من مستند يحق لك الوصول إليه
+- تمكين النسخ واللصق في المراجع لتدوين الملاحظات
+- تجهيز ملفات PDF لأدوات إمكانية الوصول التي لا تتعامل مع المستندات المقيدة
+
+## نصائح
+
+- يجب أن تعرف كلمة مرور المالك إذا كانت معيّنة. لا تكسر هذه الأداة كلمات المرور ولا تخمّنها بالقوة الغاشمة.
+- إذا أردت إبقاء الملف مشفرًا مع تغيير أذونات محددة، فاستخدم أداة تغيير الأذونات بدلًا من ذلك.
+- لا يحتوي الملف الناتج على أي تشفير، فيمكن لأي شخص يستلمه فتحه بحرية.
+
+## أدوات ذات صلة
+
+- [إلغاء قفل PDF](./unlock-pdf): افتح قفل ملف PDF عندما تعرف كلمة مرور المستخدم
+- [حماية PDF](./protect-pdf): أعد تطبيق التشفير بإعدادات جديدة
+- [تغيير الأذونات](./change-permissions): عدّل الإجراءات المسموح بها بشكل انتقائي
diff --git a/docs/ar/tools/repair-pdf.md b/docs/ar/tools/repair-pdf.md
new file mode 100644
index 00000000..a5c61c04
--- /dev/null
+++ b/docs/ar/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: إصلاح PDF
+description: استعد البيانات من ملفات PDF التالفة أو المعطوبة باستخدام محرك الإصلاح في QPDF. يدعم المعالجة الدفعية.
+---
+
+# إصلاح PDF
+
+عندما يرفض ملف PDF أن يُفتح أو يعرض محتوى مشوشًا أو يسبب أخطاء في برنامج العرض، تحاول هذه الأداة إعادة بناء بنيته الداخلية. تستخدم محرك الإصلاح في QPDF الذي يستطيع استعادة البيانات من أنواع كثيرة من التلف: جداول المراجع المتقاطعة المكسورة، والتدفقات المقتطعة، ومراجع الكائنات غير الصالحة، وغيرها.
+
+## طريقة العمل
+
+1. ارفع ملف PDF تالفًا واحدًا أو أكثر.
+2. انقر على **إصلاح PDF**.
+3. يُنزَّل الملف المُصلَح الواحد مباشرة. أما الملفات المتعددة فتنتج أرشيف ZIP.
+
+تمرر الأداة كل ملف عبر QPDF مع الخيار `--decrypt`، الذي يجبر QPDF على قراءة بنية PDF بالكامل وإعادة كتابتها، فتُصلَح المشكلات القابلة للإصلاح أثناء ذلك.
+
+## الميزات
+
+- إصلاح دفعي لعدة ملفات PDF في عملية واحدة
+- اكتشاف تلقائي للملفات القابلة للاسترداد وغير القابلة له
+- تقرير نجاح/فشل لكل ملف عند معالجة ملفات متعددة
+- يستخدم QPDF (WebAssembly)، وهي مكتبة مجرَّبة لتحويل PDF
+
+## ما الذي يمكنها إصلاحه
+
+- جداول المراجع المتقاطعة المكسورة أو المفقودة
+- نهايات الملفات المقتطعة بسبب تنزيلات غير مكتملة
+- ترقيم الكائنات وأطوال التدفقات غير الصالحة
+- التناقضات البنيوية الطفيفة الناتجة عن مولدات PDF المعيبة
+- آثار التشفير الناتجة عن محاولات فك تشفير فاشلة
+
+## ما الذي لا يمكنها إصلاحه
+
+- الملفات المقتطعة بشدة التي فُقد معظم بيانات محتواها
+- ملفات PDF المشفرة بكلمة مرور لا تملكها
+- الملفات التي ليست PDF فعليًا (امتداد ملف خاطئ)
+- تلف الصور داخل PDF (تُصلَح البنية لكن لا يُعاد توليد بيانات البكسل)
+
+## حالات الاستخدام
+
+- استعادة ملف PDF من تنزيل فاشل عبر البريد الإلكتروني
+- فتح ملفات أنتجتها مولدات PDF قديمة أو غير قياسية
+- إصلاح ملفات PDF التي تعمل في برنامج عرض ولا تعمل في آخر
+- تجهيز مستندات أرشيفية تالفة للتخزين طويل الأمد
+
+## نصائح
+
+- إذا فشل الإصلاح، فجرّب فتح الملف في المتصفح أولًا، فللمتصفحات منطق استرداد خاص بها وقد تعرض محتوى كافيًا لإعادة حفظه.
+- بالنسبة لملفات PDF المشفرة التي يفشل إصلاحها، جرّب فك تشفير PDF أولًا، ثم أصلح الناتج بعد فك التشفير.
+
+## أدوات ذات صلة
+
+- [ضغط PDF](./compress-pdf): نظّف بنية ملف PDF المُصلَح أكثر
+- [تحسين PDF للويب](./linearize-pdf): حسّن الملف المُصلَح للعرض عبر الويب
+- [تسطيح PDF](./flatten-pdf): سطّح النماذج التي ربما تضررت
diff --git a/docs/ar/tools/reverse-pages.md b/docs/ar/tools/reverse-pages.md
new file mode 100644
index 00000000..ea92a4e9
--- /dev/null
+++ b/docs/ar/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: عكس الصفحات
+description: اعكس ترتيب صفحات ملف PDF أو أكثر ليصبح آخر صفحة هي الأولى.
+---
+
+# عكس الصفحات
+
+اعكس ترتيب صفحات ملف PDF بحيث تصبح الصفحة الأخيرة هي الأولى، والصفحة قبل الأخيرة هي الثانية، وهكذا. يدعم المعالجة الدفعية لعدة ملفات في آنٍ واحد.
+
+## طريقة العمل
+
+1. ارفع ملف PDF واحدًا أو أكثر.
+2. انقر على زر المعالجة.
+3. يُعكس كل ملف بشكل مستقل. إذا رفعت ملفات متعددة، فالناتج أرشيف ZIP يحتوي على كل ملفات PDF المعكوسة.
+4. يُنزَّل الملف الواحد مباشرة بصيغة PDF معكوس.
+
+## الميزات
+
+- معالجة دفعية: اعكس عدة ملفات PDF في عملية واحدة
+- ناتج بملف واحد لملف PDF واحد، وبصيغة ZIP للملفات المتعددة
+- أزرار إزالة لكل ملف قبل المعالجة
+- تحافظ على كل محتوى الصفحات وتنسيقها
+
+## حالات الاستخدام
+
+- إصلاح مستند مُسح ضوئيًا بترتيب معكوس
+- تجهيز عرض تقديمي بصيغة PDF ليُقرأ من الخلف إلى الأمام
+- عكس ترتيب الصفحات لسير عمل طباعة معين يغذّي الصفحات بترتيب معكوس
+- تصحيح مستند جُمعت صفحاته بالخطأ بترتيب معكوس
+
+## نصائح
+
+- يُعكس كل ملف في الدفعة بشكل مستقل، ولا يُعاد ترتيب الملفات نفسها بالنسبة لبعضها.
+- لإعادة ترتيب أدق للصفحات (وليس عكسًا كاملًا فقط)، استخدم [تنظيم وتكرار](./organize-pdf).
+
+## أدوات ذات صلة
+
+- [تنظيم وتكرار](./organize-pdf)
+- [تدوير PDF](./rotate-pdf)
+- [أداة PDF المتعددة](./pdf-multi-tool)
diff --git a/docs/ar/tools/rotate-custom.md b/docs/ar/tools/rotate-custom.md
new file mode 100644
index 00000000..d659bccb
--- /dev/null
+++ b/docs/ar/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: تدوير بزاوية مخصصة
+description: دوّر صفحات PDF بأي زاوية مع إدخال درجات لكل صفحة وعناصر تحكم للتدوير الدفعي.
+---
+
+# تدوير بزاوية مخصصة
+
+دوّر صفحات PDF بأي زاوية تريدها، وليس فقط بمضاعفات 90 درجة. لكل صفحة حقل زاوية خاص بها، ويمكنك تطبيق زاوية واحدة على كل الصفحات دفعة واحدة باستخدام عنصر التحكم الدفعي.
+
+## طريقة العمل
+
+1. ارفع ملف PDF. تُعرض صور مصغرة لكل صفحة.
+2. لكل صفحة حقل إدخال رقمي يعرض زاوية تدويرها الحالية.
+3. اكتب أي قيمة بالدرجات (موجبة أو سالبة) لتدوير صفحة محددة، أو استخدم أزرار اليسار/اليمين لكل صفحة لتعديلات سريعة بمقدار 90 درجة.
+4. استخدم حقل **الزاوية الدفعية** في الأعلى لتعيين تدوير موحد لكل الصفحات.
+5. انقر على زر المعالجة لإنشاء ملف PDF المدوَّر.
+
+## الميزات
+
+- إدخال حر للدرجات لكل صفحة (أي عدد صحيح)
+- عنصر تحكم بزاوية دفعية لتعيين التدوير نفسه على كل صفحة
+- معاينة فورية للتدوير في الصور المصغرة
+- أزرار تدوير سريع لكل صفحة بمقدار 90 درجة
+- تحميل الصور المصغرة عند الحاجة لأداء أفضل في المستندات الكبيرة
+
+## حالات الاستخدام
+
+- تصحيح المسوحات الضوئية المائلة قليلًا بضع درجات
+- تدوير الصفحات لتطابق متطلبات اتجاه غير قياسية
+- تطبيق تدويرات دقيقة على صفحات فردية في مستند متنوع المحتوى
+- ضبط زوايا الصفحات بدقة بعد تدوير جماعي أولي
+
+## نصائح
+
+- القيم الموجبة تدور مع اتجاه عقارب الساعة، والقيم السالبة عكس اتجاه عقارب الساعة.
+- يستبدل حقل الزاوية الدفعية كل زوايا الصفحات عند تطبيقه. أجرِ التعديلات الفردية بعد العملية الدفعية عند الحاجة.
+- لتدويرات 90/180/270 درجة القياسية بواجهة أبسط، استخدم [تدوير PDF](./rotate-pdf).
+
+## أدوات ذات صلة
+
+- [تدوير PDF](./rotate-pdf)
+- [أداة PDF المتعددة](./pdf-multi-tool)
+- [تنظيم وتكرار](./organize-pdf)
diff --git a/docs/ar/tools/rotate-pdf.md b/docs/ar/tools/rotate-pdf.md
new file mode 100644
index 00000000..c661ba3f
--- /dev/null
+++ b/docs/ar/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: تدوير PDF
+description: دوّر صفحات فردية أو كل صفحات ملف PDF بمضاعفات 90 درجة عبر واجهة صور مصغرة مرئية.
+---
+
+# تدوير PDF
+
+دوّر صفحات ملف PDF بمقدار 90 درجة مع اتجاه عقارب الساعة أو عكسه. تعرض الأداة معاينات مصغرة لكل صفحة، فتتيح لك تدويرها فرديًا أو تطبيق تدوير جماعي على المستند بأكمله.
+
+## طريقة العمل
+
+1. ارفع ملف PDF. تُعرض الصور المصغرة لكل صفحة في شبكة.
+2. استخدم أزرار التدوير يسارًا/يمينًا أسفل كل صورة مصغرة لتدوير تلك الصفحة تحديدًا.
+3. استخدم عناصر التدوير الجماعي في الأعلى لتدوير كل الصفحات دفعة واحدة.
+4. تتحدث المعاينة المصغرة فوريًا لتُظهر التدوير.
+5. انقر على زر المعالجة لحفظ ملف PDF المدوَّر.
+
+## الميزات
+
+- تدوير لكل صفحة بمضاعفات 90 درجة (يسارًا أو يمينًا)
+- تدوير جماعي لكل الصفحات في آنٍ واحد
+- معاينة مصغرة فورية مع انتقالات تدوير متحركة
+- تحميل الصور المصغرة عند الحاجة لأداء سلس في المستندات الكبيرة
+- تحافظ على محتوى الصفحات الأصلي وجودته
+
+## حالات الاستخدام
+
+- إصلاح الصفحات الممسوحة ضوئيًا بشكل جانبي أو مقلوبة
+- تدوير الصفحات الأفقية إلى اتجاه عمودي (أو العكس)
+- تصحيح مستند متنوع الاتجاهات مُسحت بعض صفحاته بزاوية خاطئة
+- تجهيز مستند لاتجاه عرض معين
+
+## نصائح
+
+- التدويرات تراكمية. النقر على زر اتجاه عقارب الساعة مرتين يطبّق تدويرًا بمقدار 180 درجة.
+- للتدويرات التي ليست من مضاعفات 90 درجة (مثل 45 درجة لتصحيح مسح ضوئي مائل قليلًا)، استخدم [تدوير بزاوية مخصصة](./rotate-custom) بدلًا من ذلك.
+- تؤثر عناصر التدوير الجماعي على كل الصفحات، وليس على المحددة فقط. لا توجد آلية تحديد في هذه الأداة، وللتحديد استخدم [أداة PDF المتعددة](./pdf-multi-tool).
+
+## أدوات ذات صلة
+
+- [تدوير بزاوية مخصصة](./rotate-custom)
+- [أداة PDF المتعددة](./pdf-multi-tool)
+- [تنظيم وتكرار](./organize-pdf)
diff --git a/docs/ar/tools/rtf-to-pdf.md b/docs/ar/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..d419252c
--- /dev/null
+++ b/docs/ar/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF إلى PDF
+description: حوّل ملفات Rich Text Format (RTF) إلى PDF داخل متصفحك باستخدام محرك يعمل بـ LibreOffice.
+---
+
+# RTF إلى PDF
+
+حوّل مستندات Rich Text Format إلى PDF. RTF صيغة مستندات متعددة المنصات تدعمها تقريبًا كل معالجات النصوص. تستخدم هذه الأداة محرك LibreOffice يعمل داخل المتصفح لعرض ملفات RTF مع الحفاظ على تنسيقها: الخط العريض والمائل والجداول والصور المضمّنة كلها تنتقل إلى PDF.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات | أنواع MIME |
+| :----- | :--------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملف RTF واحدًا أو أكثر وأفلته.
+2. راجع قائمة الملفات. أضف المزيد أو أزل ما لا تحتاجه.
+3. انقر على **تحويل إلى PDF**. يُهيَّأ محرك LibreOffice عند أول استخدام، ثم يعالج كل ملف.
+4. يُنزَّل الملف الواحد مباشرة بصيغة PDF. أما الملفات المتعددة فتُسلَّم باسم `rtf-converted.zip`.
+
+## الخيارات
+
+لا تحتوي هذه الأداة على إعدادات إضافية. يحافظ التحويل على تنسيق RTF الأصلي.
+
+## الناتج
+
+| عدد الملفات المدخلة | الناتج |
+| :------------------ | :-------------------------------------------------------- |
+| ملف واحد | تنزيل ملف PDF واحد (مثل `letter.pdf`) |
+| ملفان أو أكثر | أرشيف ZIP (`rtf-converted.zip`) يحتوي على ملف PDF لكل ملف |
+
+## حالات الاستخدام
+
+- تحويل مستندات RTF القديمة من معالجات النصوص الأقدم إلى ملفات PDF حديثة
+- تحويل قوالب البريد الإلكتروني بصيغة RTF إلى معاينات PDF
+- معالجة مخرجات RTF من الأنظمة القانونية أو الطبية
+- تحويل ملفات RTF من نظام إدارة مستندات إلى PDF للأرشفة دفعة واحدة
+
+## نصائح
+
+- يُحمَّل محرك LibreOffice مرة واحدة ويُخزَّن مؤقتًا. يستغرق التحويل الأول في الجلسة بضع ثوانٍ إضافية، وتكون التحويلات اللاحقة أسرع.
+- قد لا تُعرض كائنات OLE المضمّنة في ملفات RTF بشكل مثالي. أما النص العادي والصور والتنسيق القياسي فتُحوَّل بموثوقية.
+- إذا أُنشئت ملفات RTF بواسطة Microsoft Word، فيمكنك أيضًا تحويلها مباشرة بأداة [Word إلى PDF](./word-to-pdf) التي تقبل RTF إلى جانب DOC وDOCX.
+
+## أدوات ذات صلة
+
+- [Word إلى PDF](./word-to-pdf)
+- [ODT إلى PDF](./odt-to-pdf)
+- [نص إلى PDF](./txt-to-pdf)
diff --git a/docs/ar/tools/sanitize-pdf.md b/docs/ar/tools/sanitize-pdf.md
new file mode 100644
index 00000000..4d7f02ca
--- /dev/null
+++ b/docs/ar/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: تنظيف PDF
+description: أزل المحتوى المخفي والخطير محتملًا من ملفات PDF بما في ذلك البيانات الوصفية وJavaScript والملفات المضمّنة والتعليقات والطبقات.
+---
+
+# تنظيف PDF
+
+يمكن أن تحمل ملفات PDF أكثر بكثير مما تراه على الشاشة. فالبيانات الوصفية المخفية وJavaScript المضمّن ومرفقات الملفات وبيانات النماذج ومعلومات الطبقات قد تسرّب بيانات حساسة أو تشكل مخاطر أمنية. يزيل التنظيف كل ذلك، ليترك لك مستندًا نظيفًا وآمنًا للمشاركة العلنية.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. حدد العناصر المراد إزالتها من قائمة الخيارات.
+3. انقر على **تنظيف PDF**.
+4. نزّل الملف النظيف.
+
+## خيارات التنظيف
+
+كل الخيارات مفعّلة افتراضيًا. ألغِ تحديد أي خيار تريد الإبقاء عليه.
+
+| الخيار | ما الذي يزيله |
+| -------------------------- | ----------------------------------------------------------------- |
+| **تسطيح النماذج** | يحوّل حقول النماذج التفاعلية إلى محتوى ثابت |
+| **إزالة البيانات الوصفية** | يزيل المؤلف والعنوان وتاريخ الإنشاء ومعلومات البرنامج وبيانات XMP |
+| **إزالة التعليقات** | يحذف الملاحظات والتمييزات والملاحظات اللاصقة وعلامات التدوين |
+| **إزالة JavaScript** | يزيل السكربتات المضمّنة التي قد تُنفَّذ عند الفتح |
+| **إزالة الملفات المضمّنة** | يزيل مرفقات الملفات المضمّنة داخل PDF |
+| **إزالة الطبقات (OCG)** | يسطّح مجموعات المحتوى الاختياري في طبقة واحدة |
+| **إزالة الروابط** | يزيل الروابط التشعبية ومراجع URL |
+| **إزالة شجرة البنية** | يزيل بنية المستند المستخدمة في وسوم إمكانية الوصول |
+| **إزالة MarkInfo** | يزيل معلومات المحتوى الموسوم |
+| **إزالة الخطوط** | يزيل بيانات الخطوط المضمّنة (استخدمه بحذر) |
+
+## حالات الاستخدام
+
+- تجهيز ملف PDF للنشر العلني بإزالة البيانات الوصفية الداخلية (أسماء المؤلفين وإصدارات البرامج وسجل التعديل)
+- إزالة JavaScript من ملف PDF وارد من مصدر غير موثوق قبل فتحه
+- تنظيف ملف PDF قبل إرساله إلى عميل لا ينبغي أن يرى التعليقات المضمّنة أو أسماء حقول النماذج
+- إزالة الطبقات المخفية من رسم معماري قبل مشاركة النسخة النهائية
+- الامتثال لمتطلبات تقليل البيانات بموجب لوائح الخصوصية
+
+## نصائح
+
+- اترك "إزالة الخطوط" غير محدد ما لم تكن متأكدًا من أن ملف PDF سيظهر بشكل صحيح بعد ذلك. قد تجعل إزالة الخطوط النص غير مرئي في بعض برامج العرض.
+- إذا كنت تحتاج فقط إلى إزالة البيانات الوصفية، فأداة إزالة البيانات الوصفية المخصصة أسرع وأكثر تركيزًا.
+- التنظيف لا رجعة فيه. احتفظ بملفك الأصلي.
+
+## أدوات ذات صلة
+
+- [إزالة البيانات الوصفية](./remove-metadata): أزل البيانات الوصفية فقط دون المساس بالمحتوى الآخر
+- [تسطيح PDF](./flatten-pdf): سطّح النماذج والتعليقات تحديدًا
+- [حماية PDF](./protect-pdf): أضف حماية بكلمة مرور بعد التنظيف
+- [تحويل PDF إلى صور نقطية](./rasterize-pdf): الخيار الأشد: حوّل إلى صور للقضاء على كل المحتوى المخفي
diff --git a/docs/ar/tools/scanner-effect.md b/docs/ar/tools/scanner-effect.md
new file mode 100644
index 00000000..f6666f63
--- /dev/null
+++ b/docs/ar/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: تأثير الماسح الضوئي
+description: اجعل ملف PDF يبدو كمستند ممسوح ضوئيًا مع ضوضاء وتدوير وتمويه وتأثيرات تقادم الورق القابلة للضبط.
+---
+
+# تأثير الماسح الضوئي
+
+حوّل ملف PDF رقميًا نظيفًا إلى ما يبدو وكأنه خرج من ماسح ضوئي مسطح. تطبّق الأداة ضوضاء وتدويرًا طفيفًا وتمويهًا وتغييرات في السطوع واصفرارًا اختياريًا لمحاكاة عيوب المسح الضوئي الفعلي.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. يفتح المحرر مع معاينة مباشرة للصفحة الأولى بجانب لوحة الإعدادات.
+3. اضبط معاملات تأثير المسح باستخدام أشرطة التمرير ومفاتيح التبديل.
+4. تتحدث المعاينة فوريًا أثناء تغيير الإعدادات.
+5. انقر على **تطبيق** لمعالجة كل الصفحات وتنزيل النتيجة.
+
+## الخيارات
+
+- **فضاء الألوان (مفتاح تدرج الرمادي)**: حوّل الناتج إلى تدرج الرمادي لمظهر مسح كلاسيكي بالأبيض والأسود.
+- **الحدود**: أضف حدودًا داكنة خفيفة حول أطراف الصفحة لمحاكاة آثار حدود الماسح الضوئي.
+- **التدوير**: طبّق تدويرًا طفيفًا (من -5 إلى +5 درجات) لمحاكاة تغذية الورق غير المستقيمة.
+- **تباين التدوير**: أضف تباينًا عشوائيًا إلى زاوية التدوير ليميل كل صفحة ميلًا مختلفًا قليلًا.
+- **السطوع**: ارفع السطوع العام أو اخفضه.
+- **التباين**: اضبط التباين لمحاكاة اختلافات جودة الحبر.
+- **التمويه**: طبّق تمويهًا غاوسيًا لتليين حواف النص كما في مسح منخفض الجودة.
+- **الضوضاء**: أضف ضوضاء بكسلات عشوائية لمحاكاة حبيبات مستشعر الماسح الضوئي. القيم الأعلى تنتج نتائج أكثر خشونة.
+- **الاصفرار**: أضف صبغة صفراء دافئة لمحاكاة الورق القديم أو المعاد تدويره.
+- **الدقة**: عيّن الدقة (DPI) للناتج. القيم الأدنى تعطي مظهرًا أكثر تحببًا يشبه المسح الضوئي.
+- **إعادة تعيين**: أعد كل الإعدادات إلى قيمها الافتراضية.
+
+## الميزات
+
+- معاينة فورية تتحدث أثناء تعديل كل معامل
+- تباين عشوائي في التدوير لكل صفحة لتنوع واقعي
+- عشرة معاملات قابلة للضبط بشكل مستقل
+- وضع تدرج الرمادي لناتج مسح أصيل بالأبيض والأسود
+- تحكم في الدقة من جودة الفاكس المنخفضة إلى جودة الأرشيف العالية
+
+## حالات الاستخدام
+
+- جعل المستندات المنشأة رقميًا تبدو كأنها طُبعت ثم مُسحت ضوئيًا
+- محاكاة تقادم المستندات الورقية لإعادة إنشاء مستندات تاريخية
+- اختبار برامج التعرف الضوئي على الحروف مع جودة مسح متدهورة
+- إنتاج مستندات تطابق النمط المرئي لأرشيفات ممسوحة ضوئيًا موجودة
+
+## نصائح
+
+- ابدأ بقيم خفيفة. مستوى ضوضاء 10 إلى 20 وتدوير طفيف بمقدار 0.5 درجة وتمويه أدنى تكفي لمظهر مسح مقنع.
+- اجمع وضع تدرج الرمادي مع اصفرار طفيف لتأثير "نسخة من نسخة".
+- إعدادات الدقة المنخفضة (100 إلى 150 DPI) تعطي مظهر جهاز الفاكس الأكثر واقعية.
+
+## أدوات ذات صلة
+
+- [عكس الألوان](./invert-colors)
+- [ضبط الألوان](./adjust-colors)
+- [لون الخلفية](./background-color)
diff --git a/docs/ar/tools/sign-pdf.md b/docs/ar/tools/sign-pdf.md
new file mode 100644
index 00000000..2ebd2145
--- /dev/null
+++ b/docs/ar/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: توقيع PDF
+description: ارسم توقيعًا أو اكتبه أو ارفعه وضعه على صفحات PDF عبر عارض مدمج.
+---
+
+# توقيع PDF
+
+أضف توقيعك إلى أي مستند PDF. تضمّن الأداة عارض PDF كاملًا بأدوات توقيع مدمجة، يمكنك فيها رسم توقيع بيدك أو كتابة اسمك بخط توقيع أو رفع صورة توقيع. ضع التوقيعات وغيّر حجمها على أي صفحة، ثم احفظ المستند الموقَّع.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. يفتح المستند في عارض PDF مدمج بأدوات تعليق.
+3. استخدم أداة التوقيع في العارض لإنشاء توقيعك بالرسم أو الكتابة أو رفع صورة.
+4. انقر على الصفحة في المكان الذي تريد وضع التوقيع فيه واضبط حجمه وموضعه.
+5. يمكنك اختياريًا تحديد **تسطيح PDF** لتضمين التوقيع نهائيًا في المستند.
+6. انقر على **حفظ وتنزيل PDF الموقَّع** للحصول على ملفك الموقَّع.
+
+## الخيارات
+
+- **تسطيح PDF**: عند تحديده، يُضمَّن التوقيع نهائيًا في محتوى الصفحة. يمنع هذا الآخرين من تحريك التوقيع أو حذفه. وعند عدم تحديده، يبقى التوقيع تعليقًا يمكن تحريره في برامج العرض المتوافقة.
+
+## الميزات
+
+- ثلاث طرق لإنشاء التوقيع: الرسم اليدوي أو النص المكتوب أو الصورة المرفوعة
+- عارض PDF مدمج للتموضع الدقيق
+- السحب لتحديد موضع التوقيعات وتغيير حجمها على أي صفحة
+- تسطيح اختياري لتضمين التوقيعات نهائيًا
+- دعم عدة توقيعات في المستند نفسه
+
+## حالات الاستخدام
+
+- توقيع العقود والاتفاقيات ونماذج الموافقة قبل إعادة إرسالها
+- إضافة توقيعك إلى المستندات الضريبية ومطالبات التأمين والنماذج الحكومية
+- وضع الأحرف الأولى على صفحات فردية من اتفاقية متعددة الصفحات
+- توقيع اتفاقيات عدم الإفصاح أو مستندات الموارد البشرية التي تصل كمرفقات PDF
+
+## نصائح
+
+- فعّل التسطيح إذا كنت سترسل ملف PDF الموقَّع إلى شخص لا ينبغي أن يتمكن من إزالة توقيعك أو تغيير موضعه.
+- للتوقيعات الرقمية الملزمة قانونيًا مع التحقق القائم على الشهادات، يقدم BentoPDF أيضًا أداة توقيع رقمي منفصلة.
+- ارفع صورة توقيع بصيغة PNG بخلفية شفافة للحصول على أنظف نتيجة.
+
+## أدوات ذات صلة
+
+- [محرر PDF](./edit-pdf)
+- [إضافة أختام](./add-stamps)
+- [تعبئة النماذج](./form-filler)
diff --git a/docs/ar/tools/split-pdf.md b/docs/ar/tools/split-pdf.md
new file mode 100644
index 00000000..759720ef
--- /dev/null
+++ b/docs/ar/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: تقسيم PDF
+description: قسّم ملف PDF إلى ملفات أصغر بحسب نطاق الصفحات أو التحديد المرئي أو الإشارات المرجعية أو الصفحات الزوجية والفردية أو فواصل ثابتة.
+---
+
+# تقسيم PDF
+
+قسّم ملف PDF إلى مستندات أصغر باستخدام أحد ستة أوضاع تقسيم. من نطاقات الصفحات البسيطة إلى التقسيم بحسب الإشارات المرجعية، تتعامل هذه الأداة مع كل سيناريو لتقسيم المستند.
+
+## طريقة العمل
+
+1. ارفع ملف PDF واحدًا.
+2. اختر وضع التقسيم من القائمة المنسدلة.
+3. اضبط الخيارات الخاصة بالوضع (نطاقات الصفحات والتحديدات وغيرها).
+4. انقر على زر المعالجة.
+5. تُنزَّل النتيجة كملف PDF واحد أو أرشيف ZIP بحسب الوضع والإعدادات.
+
+## أوضاع التقسيم
+
+| الوضع | الوصف |
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
+| **نطاق** | أدخل نطاقات صفحات مثل `1-3, 5, 8-10`. النطاقات المتعددة تنتج ملفات PDF منفصلة في ZIP. النطاق الواحد ينتج ملف PDF واحدًا. |
+| **تحديد مرئي** | تصفح الصور المصغرة للصفحات وانقر لتحديد الصفحات المطلوبة. تُستخرج الصفحات المحددة في ملف PDF جديد. |
+| **زوجي / فردي** | استخرج الصفحات ذات الأرقام الزوجية أو الفردية فقط. |
+| **كل الصفحات** | قسّم كل صفحة إلى ملف PDF مستقل، يُنزَّل في ZIP. |
+| **الإشارات المرجعية** | قسّم عند حدود الإشارات المرجعية. اختر مستوى الإشارة للتحكم في أماكن التقسيم. |
+| **كل N صفحة** | قسّم إلى أجزاء من N صفحة لكل منها (مثلًا كل 5 صفحات). قد يحتوي الجزء الأخير على صفحات أقل. |
+
+## الميزات
+
+- ستة أوضاع تقسيم متميزة تغطي تقريبًا كل حالات الاستخدام
+- محدد صفحات مرئي مع صور مصغرة تُحمَّل عند الحاجة
+- تقسيم يراعي الإشارات المرجعية مع تصفية المستويات
+- خيار ناتج ZIP لوضعي النطاق والتحديد المرئي
+- يتعامل مع نطاقات الصفحات ذات الصيغة المختلطة (`1-3, 5, 8-10`)
+- تحذير عندما ينتج تقسيم N صفحة أجزاء غير متساوية
+
+## حالات الاستخدام
+
+- استخراج فصل أو قسم محدد من مستند كبير
+- فصل الصفحات الفردية والزوجية لسير عمل الطباعة على الوجهين
+- تقسيم كتاب PDF إلى ملفات فصول فردية عند حدود الإشارات المرجعية
+- عزل صفحات محددة (مثل صفحة التوقيع) من عقد
+- تقسيم تقرير مجمَّع إلى ملفات لكل قسم للتوزيع
+
+## نصائح
+
+- النطاقات المتعددة المفصولة بفواصل (مثل `1-5, 10-15, 20-25`) تنتج ملفات PDF منفصلة، واحدًا لكل نطاق، في حزمة ZIP.
+- يتطلب وضع التقسيم بالإشارات المرجعية أن يحتوي ملف PDF فعليًا على إشارات مرجعية. إذا لم توجد، فستظهر رسالة خطأ.
+- يتيح مربع "تنزيل كملف ZIP" في وضعي النطاق والتحديد المرئي الحصول على ملف PDF منفصل لكل صفحة بدلًا من ملف مجمَّع.
+
+## أدوات ذات صلة
+
+- [دمج PDF](./merge-pdf)
+- [استخراج الصفحات](./extract-pages)
+- [حذف الصفحات](./delete-pages)
+- [أداة PDF المتعددة](./pdf-multi-tool)
diff --git a/docs/ar/tools/svg-to-pdf.md b/docs/ar/tools/svg-to-pdf.md
new file mode 100644
index 00000000..1e3cff9d
--- /dev/null
+++ b/docs/ar/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG إلى PDF
+description: حوّل الرسومات المتجهة SVG إلى PDF مع التحكم في الجودة، بالكامل داخل متصفحك.
+---
+
+# SVG إلى PDF
+
+حوّل ملفات Scalable Vector Graphics (SVG) إلى PDF. تحوّل الأداة كل ملف SVG إلى صورة نقطية عبر محرك العرض في المتصفح، ثم تضمّن النتيجة بدقتها الأصلية. مفيدة لتحويل الأيقونات المتجهة والمخططات والرسوم التوضيحية إلى مستندات قابلة للنقل.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات |
+| :----- | :--------- |
+| SVG | `.svg` |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملف SVG واحدًا أو أكثر وأفلته.
+2. راجع قائمة الملفات وأدرها.
+3. اختر مستوى **جودة PDF**.
+4. انقر على **تحويل إلى PDF**. تُنزَّل النتيجة باسم `from_svgs.pdf`.
+
+يُقرأ كل ملف SVG كنص، ويُعرض على لوحة رسم بعرضه وارتفاعه الأصليين (الافتراضي 800x600 إذا لم تُحدَّد أبعاد)، ويُصدَّر بصيغة PNG. ثم تُضمَّن صورة PNG هذه في PDF باستخدام pdf-lib. تُملأ المناطق الشفافة بخلفية بيضاء.
+
+## الخيارات
+
+تتحكم **جودة PDF** في الضغط بعد التحويل إلى صورة نقطية:
+
+- **جودة عالية**: الأقرب إلى العرض الأصلي.
+- **جودة متوسطة** (الافتراضي): توازن جيد.
+- **جودة منخفضة**: أصغر ملف مع بعض فقدان التفاصيل.
+
+## حالات الاستخدام
+
+- تحويل المخططات المعمارية أو الهندسية من SVG إلى PDF جاهز للطباعة
+- تجميع مجموعات الأيقونات في ملف PDF مرجعي لنظام تصميم
+- تحويل تصورات البيانات (D3.js وتصديرات مكتبات الرسوم البيانية) إلى ملفات PDF جاهزة للتقارير
+- إنشاء نسخ قابلة للطباعة من الرسوم المعلوماتية المعتمدة على SVG
+
+## نصائح
+
+- تُعرض ملفات SVG التي لا تحتوي على السمتين `width` و`height` الصريحتين بحجم 800x600 بكسل. للحصول على أفضل النتائج، عيّن الأبعاد في مصدر SVG قبل التحويل.
+- قد لا تُعرض ملفات SVG المعقدة ذات مراجع الخطوط الخارجية أو الصور المرتبطة بشكل مثالي. ضمّن كل الموارد داخل ملف SVG للحصول على ناتج موثوق.
+- بما أن ملف SVG يُحوَّل إلى صورة نقطية، سيحتوي ملف PDF على صورة نقطية بدلًا من مسارات متجهة. للحصول على ناتج PDF متجه حقيقي، تلزم أداة متجهة مخصصة.
+
+## أدوات ذات صلة
+
+- [صور إلى PDF](./image-to-pdf)
+- [PNG إلى PDF](./png-to-pdf)
+- [BMP إلى PDF](./bmp-to-pdf)
diff --git a/docs/ar/tools/table-of-contents.md b/docs/ar/tools/table-of-contents.md
new file mode 100644
index 00000000..d84dcb32
--- /dev/null
+++ b/docs/ar/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: جدول المحتويات
+description: أنشئ صفحة جدول محتويات منسقة من الإشارات المرجعية الموجودة في ملف PDF.
+---
+
+# جدول المحتويات
+
+تقرأ هذه الأداة الإشارات المرجعية (المخططات التفصيلية) في ملف PDF وتنشئ صفحة جدول محتويات منسقة تُضاف إلى بداية المستند. إذا كان ملف PDF يحتوي على إشارات مرجعية لكنه يفتقر إلى صفحة فهرس مرئية، فتنشئ هذه الأداة واحدة تلقائيًا.
+
+## طريقة العمل
+
+1. ارفع ملف PDF يحتوي على إشارات مرجعية.
+2. خصّص عنوان الفهرس وحجم الخط ونوع الخط.
+3. يمكنك اختياريًا تحديد **إضافة إشارة مرجعية لصفحة الفهرس** لإدراج الفهرس نفسه في شجرة الإشارات المرجعية.
+4. انقر على **إنشاء جدول المحتويات** لمعالجة الملف.
+5. يُنزَّل ملف PDF المحدَّث تلقائيًا مع إدراج صفحة الفهرس في البداية.
+
+## الخيارات
+
+- **عنوان الفهرس**: العنوان المعروض في أعلى الصفحة المنشأة. الافتراضي "جدول المحتويات".
+- **حجم الخط**: اختر من 10 إلى 72 نقطة. الافتراضي 12 نقطة.
+- **نوع الخط**: اختر من متغيرات Times Roman أو Helvetica أو Courier (عادي وعريض ومائل وعريض مائل). الافتراضي Helvetica.
+- **إضافة إشارة مرجعية لصفحة الفهرس**: عند تحديده، تُضاف إشارة مرجعية لصفحة الفهرس نفسها إلى شجرة المخطط التفصيلي في PDF.
+
+## الميزات
+
+- يقرأ التسلسل الهرمي الكامل للإشارات المرجعية من PDF
+- ينشئ صفحة فهرس منسقة بوضوح مع مراجع أرقام الصفحات
+- يدعم مستويات الإشارات المرجعية المتداخلة مع الإزاحة
+- اختيار من 12 خطًا مدمجًا في PDF
+- إشارة مرجعية ذاتية المرجع اختيارية لصفحة الفهرس
+
+## حالات الاستخدام
+
+- إضافة جدول محتويات قابل للطباعة إلى الكتب الإلكترونية أو التقارير التي تحتوي على إشارات مرجعية رقمية فقط
+- إنشاء فهرس لمستند مدمج بعد جمع عدة ملفات PDF
+- إنشاء صفحة مرجعية للأدلة التقنية الطويلة
+- تجهيز المستندات للطباعة حيث يُتوقع وجود فهرس مرئي
+
+## نصائح
+
+- إذا لم يكن في ملف PDF إشارات مرجعية، فاستخدم أداة [تحرير الإشارات المرجعية](./bookmark) أولًا لإنشائها، ثم عد إلى هنا لإنشاء الفهرس.
+- للمستندات الكبيرة، يحسّن حجم خط أكبر مثل 14 أو 16 نقطة سهولة القراءة.
+
+## أدوات ذات صلة
+
+- [تحرير الإشارات المرجعية](./bookmark)
+- [أرقام الصفحات](./page-numbers)
+- [رأس وتذييل الصفحة](./header-footer)
diff --git a/docs/ar/tools/text-color.md b/docs/ar/tools/text-color.md
new file mode 100644
index 00000000..f1e66cba
--- /dev/null
+++ b/docs/ar/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: تغيير لون النص
+description: غيّر لون كل النصوص في ملف PDF إلى أي لون تختاره.
+---
+
+# تغيير لون النص
+
+استبدل لون النص في ملف PDF بالكامل. تحدد الأداة مناطق النص في كل صفحة وتعيد تلوينها باللون الذي تختاره مع الحفاظ على تخطيط المستند والمحتوى غير النصي.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. اختر لون النص الجديد باستخدام محدد الألوان. الافتراضي هو الأزرق (#0000FF).
+3. انقر على **تغيير لون النص** للمعالجة.
+4. يُنزَّل ملف PDF المعاد تلوينه تلقائيًا. يوضح مؤشر التقدم أي صفحة تجري معالجتها.
+
+## الخيارات
+
+- **لون النص الجديد**: محدد ألوان لاختيار اللون البديل لكل النصوص في المستند.
+
+## الميزات
+
+- يعيد تلوين النص في كل صفحة من المستند
+- معالجة لكل صفحة مع عرض التقدم
+- محدد ألوان يدعم الألوان السداسية بالكامل
+- يحافظ على تخطيط الصفحة والعناصر غير النصية
+
+## حالات الاستخدام
+
+- تغيير النص الأسود إلى أزرق داكن لمظهر مستند أخف وأحدث
+- إعادة تلوين النص ليتوافق مع إرشادات العلامة التجارية قبل توزيع المستندات
+- تحويل النص إلى لون محدد للامتثال لمتطلبات إمكانية الوصول
+- جعل النص مرئيًا على خلفية جديدة مطبَّقة
+
+## نصائح
+
+- تعرض هذه الأداة الصفحات بمقياس 2x للجودة، ثم تعيد بناء ملف PDF. الناتج قائم على الصور، لذا لن يعود النص قابلًا للتحديد أو البحث.
+- للمستندات التي تحتاج فيها إلى إبقاء النص قابلًا للتحديد، فكّر في تحرير ملف PDF مباشرة باستخدام [محرر PDF](./edit-pdf) بدلًا من ذلك.
+- يزداد وقت المعالجة مع عدد الصفحات لأن كل صفحة تُعرض على حدة.
+
+## أدوات ذات صلة
+
+- [لون الخلفية](./background-color)
+- [عكس الألوان](./invert-colors)
+- [ضبط الألوان](./adjust-colors)
diff --git a/docs/ar/tools/tiff-to-pdf.md b/docs/ar/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..d704bc52
--- /dev/null
+++ b/docs/ar/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF إلى PDF
+description: حوّل صور TIFF أحادية الصفحة ومتعددة الصفحات إلى PDF داخل متصفحك مع دعم كامل للصفحات.
+---
+
+# TIFF إلى PDF
+
+حوّل ملفات TIFF إلى PDF، بما فيها ملفات TIFF متعددة الصفحات. تصبح كل صفحة (أو "IFD") في ملف TIFF صفحة منفصلة في ملف PDF الناتج. هذا مفيد خصوصًا للمستندات الممسوحة ضوئيًا والفاكسات والصور الطبية التي تُخزَّن عادةً بصيغة TIFF متعددة الصفحات.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات TIFF وأفلتها.
+2. راجع قائمة الملفات وأدرها حسب الحاجة.
+3. انقر على **تحويل إلى PDF**. تُنزَّل النتيجة باسم `from_tiff.pdf`.
+
+تفك الأداة ترميز كل ملف TIFF باستخدام مفكك ترميز TIFF بلغة JavaScript، وتستخرج بيانات بكسلات RGBA الخام لكل صفحة. تُعرض كل صفحة على لوحة رسم وتُصدَّر بصيغة PNG وتُضمَّن في PDF. تطابق أبعاد الصفحات صفحات TIFF الأصلية.
+
+## الخيارات
+
+لا تعرض هذه الأداة إعدادات جودة إضافية. تُضمَّن الصور بدقتها الأصلية.
+
+## حالات الاستخدام
+
+- تحويل مستندات الفاكس متعددة الصفحات (TIFF-F) إلى صيغة PDF أكثر قابلية للنقل
+- تحويل أرشيفات المستندات الممسوحة ضوئيًا المخزنة بصيغة TIFF إلى ملفات PDF قابلة للبحث (اجمعها مع أداة التعرف الضوئي لاحقًا)
+- معالجة ملفات التصوير الطبي (شرائح علم الأمراض وتصديرات الأشعة) التي تستخدم TIFF
+- تحويل ملفات TIFF الخاصة بنظم المعلومات الجغرافية أو صور الأقمار الصناعية إلى مستندات قابلة للمشاركة
+
+## نصائح
+
+- ملفات TIFF متعددة الصفحات مدعومة بالكامل. ملف TIFF من 10 صفحات سينتج ملف PDF من 10 صفحات. لا حاجة إلى تقسيم TIFF أولًا.
+- قد تستغرق ملفات TIFF الكبيرة جدًا (مئات الميغابايت) وقتًا أطول لأن الملف بأكمله يجب فك ترميزه في ذاكرة المتصفح.
+- إذا احتجت إلى التعرف الضوئي على الحروف في ملف PDF الناتج، فمرّره عبر أداة [التعرف الضوئي على PDF](./ocr-pdf) بعد التحويل.
+
+## أدوات ذات صلة
+
+- [صور إلى PDF](./image-to-pdf)
+- [BMP إلى PDF](./bmp-to-pdf)
+- [JPG إلى PDF](./jpg-to-pdf)
diff --git a/docs/ar/tools/txt-to-pdf.md b/docs/ar/tools/txt-to-pdf.md
new file mode 100644
index 00000000..f4947bb4
--- /dev/null
+++ b/docs/ar/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: نص إلى PDF
+description: حوّل ملفات النص العادي أو النص المكتوب إلى PDF مع خطوط وألوان وأحجام صفحات مخصصة.
+---
+
+# نص إلى PDF
+
+حوّل النص العادي إلى ملف PDF منسق. يمكنك رفع ملفات `.txt` أو الكتابة مباشرة في محرر النص المدمج. تدعم الأداة عدة خطوط وألوان نص مخصصة ومجموعة واسعة من أحجام الصفحات، من A0 إلى A10، إضافة إلى US Letter وLegal وTabloid.
+
+## الصيغ المدعومة
+
+| المدخلات | الامتدادات |
+| :------------- | :--------------------- |
+| ملفات نص عادي | `.txt` |
+| إدخال نص مباشر | اكتب أو الصق في المحرر |
+
+## طريقة العمل
+
+1. اختر وضع الإدخال باستخدام المفتاح في الأعلى: **رفع الملفات** أو **كتابة نص**.
+2. إذا كنت ترفع ملفات، فاسحب وأفلت أو انقر لاختيار ملف `.txt` واحد أو أكثر. وإذا كنت تكتب، فأدخل النص مباشرة في مربع النص.
+3. اضبط خيارات التنسيق: نوع الخط وحجمه ولون النص وحجم الصفحة.
+4. انقر على **إنشاء PDF**. يُنزَّل الناتج باسم `text_to_pdf.pdf`.
+
+عند رفع عدة ملفات، تُدمج محتوياتها مع أسطر فارغة بينها.
+
+## الخيارات
+
+| الخيار | القيم | الافتراضي |
+| :------------- | :------------------------------------------------------------------------------- | :------------- |
+| **نوع الخط** | Helvetica (بلا زوائد)، Tiro (بزوائد)، Courier (أحادي المسافة)، Times (بزوائد) | Helvetica |
+| **حجم الخط** | 6 إلى 72 نقطة | 12 |
+| **لون النص** | أي لون عبر محدد الألوان | أسود (#000000) |
+| **حجم الصفحة** | ISO A0 إلى A10، B0 إلى B10، C0 إلى C10، US Letter، Legal، Tabloid، Ledger، 11x17 | A4 |
+
+تُكتشف اللغات التي تُكتب من اليمين إلى اليسار (العربية والعبرية والفارسية والأردية) تلقائيًا. وعند العثور على نص من اليمين إلى اليسار، يتبدل اتجاه النص ومحاذاته وفقًا لذلك.
+
+## حالات الاستخدام
+
+- تحويل مقتطفات الشيفرة أو ملفات السجل إلى ملف PDF قابل للطباعة بخط Courier
+- إنشاء ملف PDF سريع من ملاحظات اجتماع مكتوبة في الحال
+- تنسيق مخطوطة نصية عادية بخط وحجم صفحة محددين للتقديم
+- إنتاج نسخة PDF من README أو سجل التغييرات للتوزيع دون اتصال
+
+## نصائح
+
+- استخدم وضع **كتابة نص** عندما تريد تحويل محتوى الحافظة بسرعة دون حفظه كملف أولًا.
+- خط Courier (أحادي المسافة) هو الخيار الأفضل للشيفرة والسجلات وأي محتوى تهم فيه محاذاة الأعمدة.
+- هوامش الصفحة ثابتة عند 72 نقطة (بوصة واحدة) من كل الجهات.
+
+## أدوات ذات صلة
+
+- [Markdown إلى PDF](./markdown-to-pdf)
+- [CSV إلى PDF](./csv-to-pdf)
+- [Word إلى PDF](./word-to-pdf)
diff --git a/docs/ar/tools/unlock-pdf.md b/docs/ar/tools/unlock-pdf.md
new file mode 100644
index 00000000..3dd58627
--- /dev/null
+++ b/docs/ar/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: إلغاء قفل PDF
+description: أزل حماية كلمة المرور من ملفات PDF المشفرة. يدعم فك التشفير على دفعات بكلمة مرور واحدة لعدة ملفات.
+---
+
+# إلغاء قفل PDF
+
+إذا كانت لديك كلمة مرور ملف PDF مشفر، تزيل هذه الأداة التشفير بالكامل وتنتج نسخة غير مقفلة يمكن لأي شخص فتحها دون بيانات اعتماد. وهي تدعم فك التشفير على دفعات عندما تشترك عدة ملفات PDF في كلمة المرور نفسها.
+
+## طريقة العمل
+
+1. ارفع ملف PDF مشفرًا واحدًا أو أكثر.
+2. أدخل **كلمة المرور** المستخدمة لحماية الملفات.
+3. انقر على **فك تشفير PDF**.
+4. يتم تنزيل الملف الواحد مباشرة. أما الملفات المتعددة فتنتج أرشيف ZIP يضم جميع ملفات PDF غير المقفلة.
+
+## الميزات
+
+- فك التشفير لملف واحد أو على دفعات
+- يتعامل مع كلمات مرور المستخدم وكلمات مرور المالك
+- ينتج ملفًا غير مشفر تمامًا دون أي قيود متبقية
+- رسائل خطأ واضحة عند إدخال كلمة مرور خاطئة أو وجود ملفات تالفة
+- تتبع النجاح أو الفشل لكل ملف في وضع الدفعات
+
+## الفرق بينها وبين إزالة القيود
+
+تتطلب **فك تشفير PDF** كلمة المرور وتزيل كل أنواع التشفير. أما **إزالة القيود** فتستهدف قيود الاستخدام (الطباعة والنسخ والتحرير) وقد لا تحتاج إلى كلمة مرور إذا كانت كلمة مرور المالك فقط هي المعيّنة. استخدم فك التشفير عندما لا يُفتح ملف PDF إطلاقًا دون كلمة مرور.
+
+## حالات الاستخدام
+
+- فتح ملفات PDF التي شفّرتها سابقًا بشكل دائم عندما لا تعود كلمة المرور مطلوبة
+- إزالة التشفير من دفعة من المستندات المؤرشفة لتسهيل الوصول إليها على المدى الطويل
+- تجهيز ملفات PDF المحمية بكلمة مرور لنظام إدارة مستندات لا يدعم الملفات المشفرة
+- فك قفل ملفات PDF قبل دمجها مع مستندات أخرى (فكثير من أدوات الدمج لا تستطيع معالجة المدخلات المشفرة)
+
+## نصائح
+
+- يُطبَّق حقل كلمة المرور على جميع الملفات المرفوعة. إذا كانت لملفاتك كلمات مرور مختلفة، فعالجها في دفعات منفصلة.
+- إذا ظهر خطأ "كلمة المرور غير صحيحة"، فتحقق من وجود مسافات زائدة أو من تفعيل Caps Lock.
+- بعد فك التشفير لا تبقى أي حماية للملف. أعد تشفيره باستخدام تشفير PDF إذا أردت تطبيق كلمة مرور جديدة.
+
+## أدوات ذات صلة
+
+- [حماية PDF](./protect-pdf): أعد تطبيق التشفير بكلمة مرور جديدة
+- [إزالة القيود](./remove-restrictions): أزل قيود الاستخدام دون فك التشفير بالكامل
+- [تغيير الأذونات](./change-permissions): عدّل أذونات محددة في ملف PDF مشفر
diff --git a/docs/ar/tools/validate-signature-pdf.md b/docs/ar/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..24a2b6e7
--- /dev/null
+++ b/docs/ar/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: التحقق من توقيع PDF
+description: تحقق من التوقيعات الرقمية في ملفات PDF. افحص صلاحية الشهادة وهوية الموقّع وسلامة المستند وحالة سلسلة الثقة.
+---
+
+# التحقق من توقيع PDF
+
+ارفع ملف PDF موقّعًا وستستخرج هذه الأداة كل توقيع رقمي، وتحدد هوية الموقّع، وتفحص صلاحية الشهادة، وتبلغك ما إذا كان المستند قد تغيّر منذ توقيعه. يمكنك أيضًا تقديم شهادة موثوقة للتحقق من سلسلة التوقيع.
+
+## طريقة العمل
+
+1. ارفع ملف PDF موقّعًا. يبدأ التحقق تلقائيًا.
+2. تعرض الأداة ملخصًا: عدد التوقيعات التي وُجدت وعدد الصالحة منها.
+3. يحصل كل توقيع على بطاقة مفصلة تعرض اسم الموقّع والجهة المصدِرة والتواريخ والحالة.
+4. يمكنك اختياريًا رفع **شهادة موثوقة** (.pem أو .crt أو .cer أو .der) للتحقق من التوقيع مقابل مرساة ثقة محددة. تعمل إعادة التحقق تلقائيًا.
+
+## ما الذي يُفحص
+
+### تحليل التوقيع
+
+تستخرج الأداة كائنات توقيع PKCS#7 من ملف PDF، وتفك ترميز بنية ASN.1، وتستخرج شهادة X.509 الخاصة بالموقّع مع أي سلسلة شهادات مضمّنة في التوقيع.
+
+### صلاحية الشهادة
+
+- **انتهاء الصلاحية**: هل الشهادة ضمن نطاق تواريخ صلاحيتها حاليًا؟
+- **اكتشاف التوقيع الذاتي**: هل الشهادة هي مُصدِرة نفسها؟
+- **سلسلة الثقة**: عند تقديم شهادة موثوقة، هل ترتبط شهادة الموقّع بها عبر السلسلة؟
+
+### التحقق التشفيري
+
+- تعيد الأداة بناء البايتات التي يغطيها `/ByteRange` الخاص بالتوقيع، وتحسب لها التجزئة بالخوارزمية التي أعلن عنها الموقّع، وتقارن النتيجة بالسمة `messageDigest` داخل التوقيع.
+- ثم تعيد تسلسل السمات الموقّعة كمجموعة DER SET وتتحقق من التوقيع مقابل المفتاح العام لشهادة الموقّع.
+- **لا يُبلَّغ عن التوقيع على أنه صالح إلا عند نجاح جميع هذه الفحوص.** إذا تغيرت بايتات PDF بعد التوقيع، أو لم يطابق التوقيع المضمّن مفتاح الموقّع، تعرض الحالة "غير صالح، فشل التحقق التشفيري" مع السبب المحدد.
+
+#### خوارزميات التوقيع المدعومة
+
+| الخوارزمية | مسار التحقق |
+| ----------------------- | ----------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`، مع بديل Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})`، بعد تحويل التوقيع من DER إلى IEEE P1363 |
+
+إذا استخدم التوقيع خوارزمية خارج هذه القائمة (مثل Ed25519 أو SM2 أو RSA مع OID غير معتاد للتجزئة)، تعرض البطاقة **"غير متحقق منه، خوارزمية توقيع غير مدعومة"** باللون الأصفر، مع OID المحدد أو السبب. وهذا تمييز متعمد بين ثلاث حالات:
+
+- **صالح**: تم التحقق من التوقيع تشفيريًا مقابل المفتاح العام للموقّع.
+- **غير صالح**: جرى التحقق وأعطى نتيجة سلبية (تغيّرت البايتات أو عدم تطابق المفتاح).
+- **غير متحقق منه**: تعذر على الأداة إجراء التحقق لهذه الخوارزمية. تبقى بيانات الشهادة معروضة، لكن عليك التعامل مع التوقيع على أنه "غير معروف" والتحقق منه باستخدام Adobe Acrobat أو `openssl cms -verify`.
+
+### خوارزميات التجزئة غير الآمنة
+
+- تُرفض التوقيعات التي تستخدم **MD5 أو SHA-1** وتُعد غير صالحة وتُوسم بحالة "تجزئة غير آمنة". لكلتا الخوارزميتين هجمات تصادم منشورة، لذا لا يوفر التوقيع على تجزئة SHA-1 أو MD5 أي ضمان للسلامة.
+- يُقبل كل من SHA-224 وSHA-256 وSHA-384 وSHA-512.
+
+### تغطية المستند
+
+- **تغطية كاملة**: يغطي التوقيع ملف PDF بأكمله، أي لم تُضف أو تُغيَّر أي بايتات بعد التوقيع.
+- **تغطية جزئية**: يغطي التوقيع جزءًا من الملف فقط. قد يشير ذلك إلى إجراء تعديلات بعد التوقيع (وليس بالضرورة بنية خبيثة، فالحفظ التزايدي ينتج تغطية جزئية).
+
+## تفاصيل التوقيع
+
+تعرض كل بطاقة توقيع ما يلي:
+
+- **وُقّع بواسطة**: الاسم الشائع والمؤسسة والبريد الإلكتروني من شهادة الموقّع
+- **المُصدِر**: سلطة الشهادات التي أصدرت شهادة الموقّع
+- **تاريخ التوقيع**: الطابع الزمني المضمّن في التوقيع
+- **صالح من / صالح حتى**: فترة صلاحية الشهادة
+- **السبب**: سبب توقيع المستند (إن وُجد)
+- **الموقع**: مكان التوقيع (إن وُجد)
+- **حالة التغطية**: كاملة أو جزئية
+- **شارة الثقة**: موثوق أو خارج سلسلة الثقة (فقط عند تقديم شهادة مخصصة)
+
+### التفاصيل التقنية
+
+وسّع قسم التفاصيل التقنية لعرض:
+
+- الرقم التسلسلي لشهادة الموقّع
+- خوارزمية التجزئة (SHA-256 وSHA-512 وغيرها)
+- خوارزمية التوقيع (RSA مع SHA-256 وECDSA مع SHA-256 وغيرها)
+- رسائل الخطأ الخاصة بالتوقيعات غير الصالحة
+
+## حالات الاستخدام
+
+- التحقق من عقد موقّع رقميًا قبل التوقيع المقابل
+- تدقيق المستندات الموقّعة للتأكد من عدم العبث بها
+- فحص ما إذا كانت الشهادة قد انتهت صلاحيتها منذ توقيع المستند
+- التحقق من التوقيعات مقابل الشهادة الجذرية لمؤسستك
+- فحص تفاصيل التوقيع في المستندات الحكومية أو القانونية
+
+## نصائح
+
+- الشهادة الموقّعة ذاتيًا لا تعني أن التوقيع غير صالح، بل تعني أنه لا يمكن التحقق من هوية الموقّع عبر طرف ثالث موثوق. وهذا شائع في المستندات الداخلية.
+- التغطية الجزئية لا تدل دائمًا على عبث. فكثير من سير عمل PDF يضيف تحديثات تزايدية (مثل توقيع ثانٍ) تنتج تغطية جزئية.
+- ارفع الشهادة الجذرية أو الوسيطة لمؤسستك كشهادة موثوقة للحصول على التحقق من سلسلة الثقة.
+
+## أدوات ذات صلة
+
+- [توقيع رقمي لـ PDF](./digital-sign-pdf): وقّع ملفات PDF بشهادتك الخاصة
+- [تسطيح PDF](./flatten-pdf): سطّح ملف PDF قبل التوقيع لمنع التعديلات بعد التوقيع
+- [إزالة البيانات الوصفية](./remove-metadata): نظّف ملف PDF قبل تطبيق التوقيع
diff --git a/docs/ar/tools/view-metadata.md b/docs/ar/tools/view-metadata.md
new file mode 100644
index 00000000..33c5e4fb
--- /dev/null
+++ b/docs/ar/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: عرض البيانات الوصفية
+description: افحص جميع خصائص البيانات الوصفية في ملف PDF، بما في ذلك معلومات المستند وبيانات XMP والتفاصيل البنيوية.
+---
+
+# عرض البيانات الوصفية
+
+اطّلع على الخصائص المخفية المضمّنة في ملف PDF. تعرض الأداة معلومات المستند (العنوان والمؤلف والتواريخ) وبيانات XMP الوصفية وأبعاد الصفحات وغيرها من البيانات البنيوية بصيغة مقروءة.
+
+## طريقة العمل
+
+1. ارفع ملف PDF.
+2. تحلل الأداة الملف فورًا وتعرض كل البيانات الوصفية المتاحة في أقسام منظمة.
+3. راجع قاموس معلومات المستند وشجرة بيانات XMP الوصفية والخصائص البنيوية.
+4. لا حاجة إلى خطوة معالجة: تُعرض البيانات الوصفية بمجرد تحميل الملف.
+
+## الميزات
+
+- يعرض حقول معلومات المستند القياسية: العنوان والمؤلف والموضوع والكلمات المفتاحية والمنشئ والمنتج
+- يعرض تواريخ الإنشاء والتعديل بصيغة مقروءة
+- يحلل شجرة بيانات XMP الوصفية كاملة بمساحات أسماء متداخلة ويعرضها
+- يحول صيغة تاريخ PDF (`D:20240101120000Z`) إلى تواريخ مقروءة
+- منظم في أقسام قابلة للطي لسهولة التنقل
+
+## أقسام البيانات الوصفية
+
+| القسم | المحتويات |
+| ---------------------- | ----------------------------------------------------------------------------------------- |
+| **معلومات المستند** | العنوان والمؤلف والموضوع والكلمات المفتاحية والمنشئ والمنتج وتاريخ الإنشاء وتاريخ التعديل |
+| **بيانات XMP الوصفية** | شجرة بيانات وصفية كاملة بصيغة XML مع Dublin Core وXAP وPDF ومساحات أسماء مخصصة |
+| **خصائص المستند** | عدد الصفحات وإصدار PDF وحجم الملف وحالة التشفير |
+
+## حالات الاستخدام
+
+- معرفة من أنشأ ملف PDF ومتى عُدّل آخر مرة
+- التحقق من ضبط البيانات الوصفية بشكل صحيح قبل نشر مستند
+- تدقيق ملفات PDF من حيث الخصوصية بفحص المعلومات الشخصية المضمّنة
+- معرفة البرنامج المستخدم في إنشاء ملف PDF أو تعديله (عبر حقل المنتج)
+- مراجعة بيانات XMP الوصفية للامتثال في إدارة الأصول الرقمية
+
+## نصائح
+
+- تُحوَّل سلاسل تاريخ PDF التي تبدأ بـ `D:` تلقائيًا إلى صيغة منطقتك الزمنية المحلية.
+- إذا بدت بعض الحقول فارغة، فهذا يعني أن منشئ ملف PDF لم يضبطها. لا تحتوي كل ملفات PDF على بيانات وصفية غنية.
+- لتعديل البيانات الوصفية بعد فحصها، استخدم [تعديل البيانات الوصفية](./edit-metadata). ولإزالتها بالكامل، استخدم إزالة البيانات الوصفية.
+
+## أدوات ذات صلة
+
+- [تعديل البيانات الوصفية](./edit-metadata)
+- [طبقات PDF OCG](./pdf-layers)
+- [مقارنة ملفات PDF](./compare-pdfs)
diff --git a/docs/ar/tools/vsd-to-pdf.md b/docs/ar/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..debe4a7f
--- /dev/null
+++ b/docs/ar/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD إلى PDF
+description: حوّل مخططات Microsoft Visio (VSD/VSDX) إلى PDF في متصفحك. مجاني وخاص ولا يتطلب Visio.
+---
+
+# VSD إلى PDF
+
+حوّل مخططات Microsoft Visio إلى PDF دون تثبيت Visio. تحتوي ملفات VSD وVSDX على مخططات انسيابية ومخططات هيكلية ومخططات شبكات ومخططات طوابق يعجز معظم الناس عن فتحها. تعرضها هذه الأداة كملفات PDF نظيفة يمكن عرضها على أي جهاز.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :----------- | :------- | :--------------------------------------- |
+| Visio Binary | `.vsd` | صيغة Visio القديمة (Visio 2003 وما قبله) |
+| Visio XML | `.vsdx` | صيغة Visio الحديثة (Visio 2013 وما بعده) |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات VSD أو VSDX وأفلتها. يمكن خلط الصيغتين في دفعة واحدة.
+2. راجع قائمة الملفات. أزل الإدخالات غير المرغوبة بأيقونة سلة المهملات، أو استخدم **إضافة المزيد من الملفات** لإضافة مخططات أخرى.
+3. انقر على **تحويل إلى PDF**. يُحمَّل المحرك المعتمد على LibreOffice في المتصفح ويحوّل كل مخطط إلى PDF مع الحفاظ على الأشكال والموصلات والتسميات وتخطيط الصفحة.
+4. يُنزَّل المخطط الواحد مباشرة كملف PDF. أما الملفات المتعددة فتنتج أرشيف ZIP باسم `vsd-to-pdf.zip`.
+
+## الخيارات
+
+لا حاجة إلى أي إعداد. يحترم المحوّل حجم الصفحة واتجاهها الأصليين من مستند Visio.
+
+## حالات الاستخدام
+
+- مراجعة مخططات Visio من زميل عندما لا تملك ترخيص Visio
+- تضمين مخططات الشبكات أو البنية في وثائق المشروع بصيغة PDF
+- طباعة المخططات الهيكلية أو مخططات سير العمل كمطبوعات للاجتماعات
+- أرشفة ملفات VSD القديمة من إصدارات Visio السابقة بصيغة تدوم مستقبلًا
+
+## نصائح
+
+- تنتج مستندات Visio متعددة الصفحات ملفات PDF متعددة الصفحات، وتقابل كل صفحة Visio صفحة PDF.
+- تُحوَّل ملفات VSDX (الصيغة الحديثة المعتمدة على XML) عمومًا بدقة أعلى من ملفات VSD الثنائية الأقدم.
+- يُحمَّل محرك LibreOffice مرة واحدة في كل جلسة. توقع انتظارًا قصيرًا عند أول تحويل، ونتائج أسرع مع الملفات اللاحقة.
+
+## أدوات ذات صلة
+
+- [ODG إلى PDF](./odg-to-pdf)
+- [PUB إلى PDF](./pub-to-pdf)
+- [PSD إلى PDF](./psd-to-pdf)
diff --git a/docs/ar/tools/webp-to-pdf.md b/docs/ar/tools/webp-to-pdf.md
new file mode 100644
index 00000000..16924c28
--- /dev/null
+++ b/docs/ar/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP إلى PDF
+description: حوّل صور WebP إلى صيغة PDF مباشرة في متصفحك مع جودة ضغط قابلة للتعديل.
+---
+
+# WebP إلى PDF
+
+حوّل صيغة الصور WebP من Google إلى PDF. هذا مفيد خصوصًا عندما تنزّل صورًا من الويب بصيغة WebP وتحتاجها بصيغة أوسع قبولًا للطباعة أو المشاركة.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات |
+| :----- | :--------- |
+| WebP | `.webp` |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات WebP وأفلتها.
+2. راجع قائمة الملفات وأزل ما لا تحتاج إليه.
+3. اختر مستوى **جودة PDF**.
+4. انقر على **تحويل إلى PDF**. يُنزَّل الناتج باسم `from_webps.pdf`.
+
+داخليًا، تُفك ترميز كل صورة WebP عبر واجهة canvas في المتصفح، ثم تُضمَّن في PDF باستخدام pdf-lib. وهذا يعني أن التحويل يعمل في أي متصفح يدعم فك ترميز WebP (وكل المتصفحات الحديثة تدعمه).
+
+## الخيارات
+
+تتحكم **جودة PDF** في الضغط عند تضمين الصور:
+
+- **جودة عالية**: تحافظ على أكبر قدر من التفاصيل.
+- **جودة متوسطة** (الافتراضية): ناتج متوازن.
+- **جودة منخفضة**: أصغر حجم للملف.
+
+## حالات الاستخدام
+
+- تحويل الصور المنزّلة من الويب والمحفوظة بصيغة WebP إلى PDF قابل للطباعة
+- تجميع لقطات شاشة WebP من Chrome أو Edge في وثائق
+- إنشاء ملف أعمال PDF من صور صدّرتها أدوات تصميم تعتمد WebP افتراضيًا
+- أرشفة صور WebP بصيغة أوسع قابلية للقراءة
+
+## نصائح
+
+- تُحوَّل WebP إلى PNG داخليًا قبل التضمين في PDF، لذا تحافظ صور WebP غير الفاقدة على جودتها عند الإعداد العالي.
+- إذا كان لديك خليط من WebP وصيغ صور أخرى، فاستخدم أداة [الصور إلى PDF](./image-to-pdf) بدلًا من ذلك، فهي تقبل كل شيء دفعة واحدة.
+
+## أدوات ذات صلة
+
+- [الصور إلى PDF](./image-to-pdf)
+- [PNG إلى PDF](./png-to-pdf)
+- [JPG إلى PDF](./jpg-to-pdf)
diff --git a/docs/ar/tools/word-to-pdf.md b/docs/ar/tools/word-to-pdf.md
new file mode 100644
index 00000000..e66979ac
--- /dev/null
+++ b/docs/ar/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word إلى PDF
+description: حوّل مستندات Word (DOC وDOCX) وملفات ODT وRTF إلى PDF في متصفحك مع الحفاظ الكامل على التنسيق.
+---
+
+# Word إلى PDF
+
+حوّل مستندات Microsoft Word والصيغ المتوافقة معها إلى PDF. تستخدم الأداة محرك LibreOffice يعمل في المتصفح ويتعامل مع ملفات DOC وDOCX وODT وRTF، مع الحفاظ على التنسيق والجداول والصور والرؤوس والتذييلات والأنماط في الناتج.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتدادات |
+| :---------------- | :--------- |
+| Word (حديثة) | `.docx` |
+| Word (قديمة) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب مستندات Word وأفلتها. يمكن تحديد عدة ملفات دفعة واحدة.
+2. راجع قائمة الملفات وأدرها.
+3. انقر على **تحويل إلى PDF**. يُحمَّل محرك LibreOffice عند أول استخدام (يعرض مؤشر التقدم حالة التهيئة)، ثم يُحوَّل كل ملف.
+4. يُنزَّل الملف الواحد مباشرة كملف PDF. أما الملفات المتعددة فتُجمَّع في `word-converted.zip`.
+
+## الخيارات
+
+لا تحتوي هذه الأداة على إعدادات إضافية. ينتج محرك LibreOffice الناتج باستخدام ملف تصدير PDF الافتراضي.
+
+## الناتج
+
+| عدد المدخلات | الناتج |
+| :------------ | :---------------------------------------------------------- |
+| ملف واحد | تنزيل ملف PDF واحد (اسم الملف الأصلي بالامتداد `.pdf`) |
+| ملفان أو أكثر | أرشيف ZIP (`word-converted.zip`) يضم ملف PDF واحدًا لكل ملف |
+
+## حالات الاستخدام
+
+- تحويل سيرة ذاتية أو خطاب تقديم من DOCX إلى PDF قبل إرسال طلب وظيفة
+- تحويل مجموعة من العقود أو العروض دفعة واحدة إلى PDF لتسليمها لعميل
+- تحويل ملفات `.doc` القديمة إلى ملفات PDF حديثة للأرشفة طويلة الأمد
+- تحويل المستندات التعاونية من Google Docs (المصدّرة بصيغة DOCX) إلى PDF
+- إنتاج ملفات PDF جاهزة للطباعة من قوالب Word المستخدمة في توليد المستندات آليًا
+
+## نصائح
+
+- يُنزَّل محرك LibreOffice مرة واحدة في كل جلسة ويُخزَّن مؤقتًا. توقع بضع ثوانٍ من التحميل عند أول تحويل، وتكون التحويلات اللاحقة أسرع بكثير.
+- قد لا تُحوَّل التنسيقات المعقدة (الماكرو وعناصر ActiveX وSmartArt المتقدمة) بشكل مثالي. أما عناصر المستند القياسية (النصوص والجداول والصور والرؤوس والحواشي السفلية) فتُحوَّل بموثوقية.
+- بما أن هذه الأداة تقبل ODT وRTF أيضًا، يمكنك استخدامها كمحوّل شامل لجميع صيغ معالجة النصوص.
+
+## أدوات ذات صلة
+
+- [ODT إلى PDF](./odt-to-pdf)
+- [RTF إلى PDF](./rtf-to-pdf)
+- [Excel إلى PDF](./excel-to-pdf)
+- [PowerPoint إلى PDF](./powerpoint-to-pdf)
diff --git a/docs/ar/tools/wpd-to-pdf.md b/docs/ar/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..db4c271a
--- /dev/null
+++ b/docs/ar/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD إلى PDF
+description: حوّل مستندات WordPerfect (WPD) إلى PDF في متصفحك باستخدام LibreOffice. مجاني وخاص.
+---
+
+# WPD إلى PDF
+
+حوّل مستندات Corel WordPerfect إلى ملفات PDF. كانت WPD ذات يوم صيغة معالجة النصوص المهيمنة في المكاتب القانونية والجهات الحكومية. وإذا كانت لديك ملفات WordPerfect قديمة ترفض البرامج الحديثة فتحها، تعيدها هذه الأداة إلى الحياة كملفات PDF قياسية.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :---------- | :------- | :-------------------------------- |
+| WordPerfect | `.wpd` | جميع إصدارات WordPerfect الرئيسية |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات WPD وأفلتها. يمكن تحديد عدة ملفات دفعة واحدة.
+2. راجع قائمة الملفات. أزل الملفات غير المرغوبة بأيقونة سلة المهملات، أو استخدم **إضافة المزيد من الملفات** لإضافة مستندات أخرى.
+3. انقر على **تحويل إلى PDF**. تحمّل الأداة محرك تحويل معتمدًا على LibreOffice في متصفحك، يحلل صيغة WPD وينتج PDF.
+4. يُنزَّل الملف الواحد مباشرة كملف PDF. أما التحويلات الدفعية فتنتج أرشيف ZIP باسم `wpd-to-pdf.zip`.
+
+## الخيارات
+
+لا حاجة إلى أي إعداد. يتعامل محرك LibreOffice مع تنسيق WPD والخطوط والتخطيط تلقائيًا.
+
+## حالات الاستخدام
+
+- فتح مستندات قانونية عمرها عقود كُتبت بـ WordPerfect
+- تحويل الملفات الحكومية المؤرشفة من WPD إلى صيغة حديثة
+- ترحيل مكتبة مستندات WordPerfect قديمة إلى PDF للتخزين طويل الأمد
+- مشاركة ملفات WPD مع مستلمين لا يملكون Corel WordPerfect
+
+## نصائح
+
+- يُحمَّل محرك LibreOffice عند أول استخدام، وهذا يستغرق لحظة. تكون التحويلات اللاحقة في الجلسة نفسها أسرع.
+- لا تُحفظ ماكروهات WPD المعقدة ورموز الكشف (reveal codes)، لكن التخطيط المرئي والمحتوى النصي والتنسيق الأساسي تنتقل إلى PDF.
+
+## أدوات ذات صلة
+
+- [WPS إلى PDF](./wps-to-pdf)
+- [ODG إلى PDF](./odg-to-pdf)
diff --git a/docs/ar/tools/wps-to-pdf.md b/docs/ar/tools/wps-to-pdf.md
new file mode 100644
index 00000000..4bea9572
--- /dev/null
+++ b/docs/ar/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS إلى PDF
+description: حوّل مستندات Microsoft Works (WPS) إلى PDF في متصفحك. مجاني وبلا تسجيل وخاص تمامًا.
+---
+
+# WPS إلى PDF
+
+حوّل ملفات معالج النصوص في Microsoft Works إلى PDF. كان Microsoft Works يأتي مع الحواسيب الشخصية الاستهلاكية في أواخر التسعينيات وخلال العقد الأول من الألفية، وما زالت ملفات WPS كثيرة موجودة على الأقراص الصلبة القديمة وأرشيفات البريد. تفتحها هذه الأداة في المتصفح وتنتج ملفات PDF نظيفة.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :-------------- | :------- | :------------------------------------ |
+| Microsoft Works | `.wps` | ملفات معالج النصوص من Microsoft Works |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات WPS وأفلتها. تُقبل عدة ملفات.
+2. راجع قائمة الملفات. استخدم أيقونة سلة المهملات لإزالة ملفات فردية، أو انقر على **إضافة المزيد من الملفات** لتوسيع الدفعة.
+3. انقر على **تحويل إلى PDF**. يُحمَّل محرك معتمد على LibreOffice في المتصفح ويحوّل كل مستند WPS إلى PDF.
+4. يُنزَّل ملف واحد مباشرة كملف PDF. أما الملفات المتعددة فتُجمَّع في أرشيف ZIP باسم `wps-to-pdf.zip`.
+
+## الخيارات
+
+لا حاجة إلى إعدادات إضافية. يتعامل المحوّل مع النص والتنسيق الأساسي والصور المضمّنة من ملف WPS.
+
+## حالات الاستخدام
+
+- استرداد مستندات المدرسة أو العمل القديمة المحفوظة بصيغة Microsoft Works
+- فتح مرفقات البريد بصيغة WPS عندما لا يكون Microsoft Works مثبتًا لديك
+- تحويل أرشيف من ملفات WPS للانتقال إلى نظام مستندات حديث
+- طباعة مستندات قديمة لا تستطيع معالجات النصوص الحالية فتحها
+
+## نصائح
+
+- لا تخلط بين ملفات Microsoft Works بامتداد `.wps` وملفات WPS Office. هذه الأداة مخصصة لصيغة Microsoft Works الأقدم.
+- يستغرق محرك LibreOffice لحظة للتحميل عند أول استخدام. وبعد تحميله، تعمل التحويلات الإضافية في الجلسة نفسها بسرعة أكبر.
+
+## أدوات ذات صلة
+
+- [WPD إلى PDF](./wpd-to-pdf)
+- [PUB إلى PDF](./pub-to-pdf)
diff --git a/docs/ar/tools/xml-to-pdf.md b/docs/ar/tools/xml-to-pdf.md
new file mode 100644
index 00000000..8433f381
--- /dev/null
+++ b/docs/ar/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML إلى PDF
+description: حوّل ملفات XML إلى مستندات PDF منظمة في متصفحك. مجاني وخاص وبلا معالجة على الخادم.
+---
+
+# XML إلى PDF
+
+حوّل ملفات بيانات XML إلى مستندات PDF منظمة ومقروءة. XML قوي لكنه صعب القراءة على البشر. تحلل هذه الأداة شجرة XML وتتعرف على هياكل البيانات المتكررة وتعرضها كجداول وأقسام منسقة في ملف PDF بحجم A4 أفقي.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :----- | :------- | :----------------------- |
+| XML | `.xml` | أي مستند XML سليم البنية |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات XML وأفلتها. يمكن معالجة عدة ملفات في دفعة واحدة.
+2. راجع قائمة الملفات. أزل الملفات غير المرغوبة بأيقونة سلة المهملات، أو انقر على **إضافة المزيد من الملفات** لإضافة المزيد.
+3. انقر على **تحويل إلى PDF**. تحلل الأداة بنية XML باستخدام DOMParser المدمج في المتصفح، وتحلل التسلسل الهرمي للبيانات، وتعرضه في PDF باستخدام jsPDF مع تنسيق الجداول التلقائي.
+4. يُنزَّل الملف الواحد كملف PDF. أما التحويلات المتعددة فتُجمَّع في `xml-to-pdf.zip`.
+
+## الخيارات
+
+لا حاجة إلى إعداد يدوي. يكتشف المحوّل بنية XML تلقائيًا ويختار تخطيطات الجداول المناسبة. يستخدم الناتج اتجاه A4 الأفقي لاستيعاب مجموعات البيانات العريضة.
+
+## حالات الاستخدام
+
+- تحويل بيانات XML المصدّرة من قواعد البيانات أو واجهات API إلى تقارير قابلة للطباعة
+- إنشاء ملخصات مقروءة من ملفات إعداد XML
+- تحويل الفواتير أو سجلات المعاملات المعتمدة على XML إلى PDF لحفظ السجلات
+- جعل خرائط مواقع XML أو خلاصات RSS مقروءة بصيغة مستند
+
+## نصائح
+
+- يجب أن يكون XML سليم البنية. إذا واجه المحلل أخطاء في الصياغة، يفشل التحويل مع رسالة خطأ وصفية تشير إلى المشكلة.
+- تُسطَّح بنى XML العميقة التداخل إلى جداول. وللحصول على أفضل النتائج، ينبغي أن تحتوي البيانات على عناصر شقيقة متكررة ذات عناصر فرعية متسقة.
+- تظهر تحديثات التقدم أثناء التحويل وتعرض كل مرحلة: القراءة والتحليل والفحص والعرض.
+
+## أدوات ذات صلة
+
+- [FB2 إلى PDF](./fb2-to-pdf)
+- [XPS إلى PDF](./xps-to-pdf)
+- [البريد الإلكتروني إلى PDF](./email-to-pdf)
diff --git a/docs/ar/tools/xps-to-pdf.md b/docs/ar/tools/xps-to-pdf.md
new file mode 100644
index 00000000..7d25085b
--- /dev/null
+++ b/docs/ar/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS إلى PDF
+description: حوّل مستندات XPS وOXPS إلى صيغة PDF في متصفحك. بلا رفع وبلا تسجيل وخاص تمامًا.
+---
+
+# XPS إلى PDF
+
+حوّل مستندات Microsoft XPS وOXPS إلى ملفات PDF قياسية. كانت XPS (XML Paper Specification) رد Microsoft على PDF، لكن دعمها تراجع عبر المنصات. تجعل هذه الأداة تلك المستندات مقروءة للجميع من جديد.
+
+## الصيغ المدعومة
+
+| الصيغة | الامتداد | ملاحظات |
+| :----- | :------- | :------------------------------------------- |
+| XPS | `.xps` | صيغة Microsoft XPS الأصلية |
+| OXPS | `.oxps` | Open XPS، النسخة المتوافقة مع معيار ECMA-388 |
+
+## طريقة العمل
+
+1. انقر على منطقة الرفع أو اسحب ملفات XPS/OXPS وأفلتها. يمكنك تحديد عدة ملفات دفعة واحدة.
+2. راجع قائمة الملفات. أزل الملفات الفردية بأيقونة سلة المهملات، أو انقر على **إضافة المزيد من الملفات** لإلحاق مستندات إضافية.
+3. انقر على **تحويل إلى PDF**. يعالج محرك PyMuPDF كل مستند محليًا في متصفحك.
+4. يُنزَّل الملف الواحد مباشرة كملف PDF. أما الملفات المتعددة فتُجمَّع في أرشيف ZIP باسم `xps-converted.zip`.
+
+## الخيارات
+
+تجري هذه الأداة تحويلًا مباشرًا للصيغة دون أي إعداد إضافي. يحافظ الناتج على أبعاد الصفحات الأصلية والرسومات المتجهية والخطوط والصور من مصدر XPS.
+
+## حالات الاستخدام
+
+- فتح ملفات XPS المستلمة من أنظمة Windows الأقدم التي كانت تعتمد برنامج طباعة XPS افتراضيًا
+- تحويل مستندات OXPS من Windows 10/11 لمشاركتها مع مستخدمي macOS أو Linux
+- أرشفة ملفات XPS القديمة في صيغة أوسع دعمًا
+- إتاحة المستندات الحكومية أو المؤسسية المعتمدة على XPS للمستلمين الخارجيين
+
+## نصائح
+
+- يُتعامل مع الامتدادين `.xps` و`.oxps` تلقائيًا، ويمكنك خلطهما في الدفعة نفسها.
+- إذا أُنشئ ملف XPS الأصلي من برنامج طباعة عالي الدقة، يحتفظ ملف PDF الناتج بتلك الجودة. لا تجري أي إعادة أخذ عينات.
+
+## أدوات ذات صلة
+
+- [Word إلى PDF](./word-to-pdf)
+- [XML إلى PDF](./xml-to-pdf)
diff --git a/docs/be/contributing.md b/docs/be/contributing.md
new file mode 100644
index 00000000..f45303b3
--- /dev/null
+++ b/docs/be/contributing.md
@@ -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
+```
+
+## Даданне новага інструмента
+
+### Крок 1: Стварыце файл логікі
+
+Стварыце `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
+});
+```
+
+### Крок 2: Стварыце HTML-старонку
+
+Стварыце `src/pages/your-tool.html`, абапіраючыся на існуючыя шаблоны інструментаў.
+
+### Крок 3: Зарэгіструйце інструмент
+
+Дадайце ў `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.',
+}
+```
+
+### Крок 4: Дадайце ў канфігурацыю зборкі
+
+Дадайце старонку ў `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Крок 5: Дадайце пераклады
+
+Дадайце запісы ва ўсе файлы лакалізацыі ў `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Стыль кода
+
+- Выкарыстоўвайце TypeScript для ўсяго новага кода
+- Прытрымлівайцеся існуючых шаблонаў для аднастайнасці
+- Запускайце `npm run format` перад камітам
+- Без каментарыяў у прадакшн-кодзе (каментарыі выдаляюцца падчас зборкі)
+
+## Працэс 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)
+
+## Атрыманне дапамогі
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Супольнасць у Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Ліцэнзія
+
+BentoPDF мае падвойную ліцэнзію:
+
+- **AGPL-3.0** для праектаў з адкрытым зыходным кодам, якія публічна дзеляцца ўсім сваім зыходным кодам
+- **Камерцыйная ліцэнзія** для прапрыетарных праграм і праграм з закрытым кодам: [Атрымаць пажыццёвую ліцэнзію за $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Робячы ўнёсак, вы згаджаецеся, што ваш унёсак будзе ліцэнзаваны на гэтых умовах.
diff --git a/docs/be/getting-started.md b/docs/be/getting-started.md
new file mode 100644
index 00000000..b89284c9
--- /dev/null
+++ b/docs/be/getting-started.md
@@ -0,0 +1,80 @@
+# Пачатак працы
+
+Вітаем у BentoPDF! Гэта кіраўніцтва дапаможа вам хутка пачаць працу.
+
+## Што такое BentoPDF?
+
+BentoPDF гэта бясплатны набор інструментаў PDF з адкрытым зыходным кодам, арыентаваны на прыватнасць, які працуе **цалкам у вашым браўзеры**. Вашы файлы ніколі не пакідаюць вашу прыладу: уся апрацоўка адбываецца лакальна з дапамогай тэхналогіі WebAssembly (WASM).
+
+## Хуткі старт
+
+### Варыянт 1: Выкарыстоўвайце размешчаную версію
+
+Наведайце [bentopdf.com](https://www.bentopdf.com), каб адразу карыстацца BentoPDF, без усталявання.
+
+### Варыянт 2: Уласнае размяшчэнне з Docker
+
+> [!IMPORTANT]
+> Канвертацыя офісных файлаў патрабуе `SharedArrayBuffer`, для якога патрэбныя:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - бяспечны кантэкст
+>
+> `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 пастаўляецца ў дзвюх зборках: **Self-Hosted build** (`bentopdf-simple`, выкарыстоўваецца вышэй) для ўнутраных, камандных і арганізацыйных разгортванняў, і **Commercial build** (`bentopdf:latest`), якую выкарыстоўвае сам bentopdf.com і ўладальнікі камерцыйнай ліцэнзіі для публічных разгортванняў. Абедзве маюць аднолькавыя інструменты PDF; Commercial build дадае галоўны блок, FAQ, водгукі і футэр bentopdf.com. Калі сумняваецеся, выкарыстоўвайце Self-Hosted build.
+
+Затым адкрыйце `http://localhost:3000` у браўзеры.
+
+> [!NOTE]
+> Калі вы рыхтуеце ізаляванае (air-gapped) разгортванне OCR, вам трэба размясціць шрыфты тэкставага слоя OCR унутры сеткі ў дадатак да воркера Tesseract, асноўнага асяроддзя выканання і файлаў traineddata. Поўная наладка апісана ў раздзеле [Уласнае размяшчэнне](/be/self-hosting/), уключаючы `VITE_OCR_FONT_BASE_URL` і ўбудаваны каталог `ocr-fonts/`.
+
+### Варыянт 3: Зборка з зыходнага кода
+
+```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+
+
+## Наступныя крокі
+
+- [Агляд усіх інструментаў](/be/tools/)
+- [Размясціць BentoPDF у сябе](/be/self-hosting/)
+- [Зрабіць унёсак у праект](/be/contributing)
diff --git a/docs/be/index.md b/docs/be/index.md
new file mode 100644
index 00000000..d3ac50dd
--- /dev/null
+++ b/docs/be/index.md
@@ -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: /be/getting-started
+ - theme: alt
+ text: Інструменты
+ link: /be/tools/
+ - theme: alt
+ text: Уласнае размяшчэнне
+ link: /be/self-hosting/
+ - theme: alt
+ text: Камерцыйная ліцэнзія
+ link: /be/licensing
+
+features:
+ - icon: 🔒
+ title: 100% прыватна
+ details: Вашы файлы ніколі не пакідаюць вашу прыладу. Уся апрацоўка адбываецца лакальна ў браўзеры з дапамогай WebAssembly.
+ - icon: ⚡
+ title: Хутка і бясплатна
+ details: Без рэгістрацыі, без абмежаванняў, без вадзяных знакаў. Апрацоўвайце колькі заўгодна PDF бясплатна, назаўсёды.
+ - icon: 🛠️
+ title: 50+ інструментаў
+ details: Канвертацыя, рэдагаванне, аб'яднанне, падзел, сцісканне, подпіс, OCR і іншае. Усё неабходнае ў адным месцы.
+
+ - icon: 🌐
+ title: Уласнае размяшчэнне
+ details: Разгортвайце на ўласнай інфраструктуры. Docker, Vercel, Netlify, AWS або цалкам ізаляваныя асяроддзі з уласнымі воркерамі OCR, моўнымі данымі і шрыфтамі тэкставага слоя.
+---
+
+## OCR па-за сеткай
+
+Калі вы размяшчаеце BentoPDF у ізаляваным або аўтаномным асяроддзі, для OCR патрэбны не толькі воркер Tesseract і файлы traineddata. Для PDF з магчымасцю пошуку таксама трэба раздаваць шрыфты тэкставага слоя OCR унутры сеткі.
+Глядзіце [Уласнае размяшчэнне](/be/self-hosting/), каб даведацца пра поўную наладку, уключаючы `VITE_OCR_FONT_BASE_URL`, убудаваны каталог `ocr-fonts/` і абноўлены працэс для ізаляваных сетак.
diff --git a/docs/be/licensing.md b/docs/be/licensing.md
new file mode 100644
index 00000000..4a511e92
--- /dev/null
+++ b/docs/be/licensing.md
@@ -0,0 +1,110 @@
+# 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](/be/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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/be/self-hosting/apache.md b/docs/be/self-hosting/apache.md
new file mode 100644
index 00000000..2b1fff65
--- /dev/null
+++ b/docs/be/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Разгортванне з Apache
+
+Размясціце BentoPDF з дапамогай Apache HTTP Server.
+
+## Патрабаванні
+
+- Apache 2.4+
+- уключаны mod_rewrite
+- SSL-сертыфікат (рэкамендуецца)
+
+## Крок 1: Збярыце праект
+
+```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
+```
+
+## Крок 2: Скапіруйце файлы
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Крок 3: Канфігурацыя Apache
+
+Стварыце `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Крок 4: .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
+```
+
+## Крок 5: Уключыце неабходныя модулі
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Крок 6: Уключыце сайт
+
+```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 або Запоўніць форму 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`.
+
+### Rewrite не працуе
+
+Праверце, што 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"
+```
+
+Таксама патрэбны бяспечны кантэкст. `http://localhost` падыходзіць для лакальнага тэсціравання, але `http://192.168.x.x` і іншыя IP-адрасы лакальнай сеткі звычайна патрабуюць HTTPS. Калі загалоўкі ёсць, але `window.crossOriginIsolated` усё яшчэ `false`, праверце, ці не адкрываецца старонка праз звычайны HTTP з адраса, які не з'яўляецца loopback.
+
+Папярэдне сціснутым файлам `.wasm.gz` і `.data.gz` таксама патрэбны правільны `Content-Encoding`:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Пераканайцеся, што `mod_headers` уключаны: `sudo a2enmod headers`
+
+### Адмоўлена ў доступе
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/be/self-hosting/aws.md b/docs/be/self-hosting/aws.md
new file mode 100644
index 00000000..ddf8621d
--- /dev/null
+++ b/docs/be/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Разгортванне на AWS S3 + CloudFront
+
+Размясціце BentoPDF на AWS для максімальнага кантролю і маштабаванасці.
+
+## Архітэктура
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Крок 1: Стварыце бакет S3
+
+```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
+```
+
+## Крок 2: Зборка і загрузка
+
+```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
+```
+
+## Крок 3: Стварыце дыстрыбуцыю CloudFront
+
+```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
+3. Уключыце "Origin Access Control"
+4. Default root object: `index.html`
+5. Стварыце дыстрыбуцыю
+
+## Крок 3b: Палітыка загалоўкаў адказу (абавязкова для 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 вашай дыстрыбуцыі
+
+Або праз 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}
+ ]
+ }
+ }'
+```
+
+## Крок 3c: Метаданыя 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 завісаюць на ~55%. Без правільнага Content-Encoding для файлаў `.gz` браўзер атрымлівае сырыя байты gzip, і кампіляцыя WASM не ўдаецца.
+:::
+
+## Крок 4: Палітыка бакета S3
+
+Дазвольце CloudFront доступ да бакета:
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Крок 5: Уласныя старонкі памылак
+
+Наладзьце 404 так, каб вяртаўся `index.html` для SPA-маршрутызацыі:
+
+1. CloudFront → Error pages
+2. Стварыце custom error response:
+ - 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"
+ }
+}
+```
diff --git a/docs/be/self-hosting/cloudflare.md b/docs/be/self-hosting/cloudflare.md
new file mode 100644
index 00000000..d75264c0
--- /dev/null
+++ b/docs/be/self-hosting/cloudflare.md
@@ -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 аўтаматычна наладзіць DNS, калі дамен знаходзіцца ў Cloudflare
+
+## Перавагі
+
+- **Бясплатная неабмежаваная прапускная здольнасць**
+- **Глабальны CDN** з 300+ пагранічнымі вузламі
+- **Аўтаматычны HTTPS**
+- **Папярэднія разгортванні** для pull request
+- **Хуткія зборкі**
+
+## Вырашэнне праблем
+
+### Загрузка вялікіх файлаў
+
+Cloudflare Pages падтрымлівае файлы да 25 MB. З модулямі WASM праблем быць не павінна, але калі вы ўпраецеся ў ліміты, паспрабуйце:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Ліміты памеру Worker
+
+Калі вы выкарыстоўваеце Cloudflare Workers для пашыранай маршрутызацыі, улічвайце ліміт 1 MB на бясплатных планах.
+
+## CORS-проксі Worker (для лічбавых подпісаў)
+
+Інструменту лічбавага подпісу патрэбны CORS-проксі, каб атрымліваць ланцужкі сертыфікатаў. Разгарніце ўключаны worker:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Функцыі бяспекі
+
+| Функцыя | Апісанне |
+| --------------------------- | --------------------------------- |
+| **Абмежаванні URL** | Дазволены толькі URL сертыфікатаў |
+| **Ліміт памеру файла** | Максімум 10MB на запыт |
+| **Абмежаванне частаты** | 60 запытаў/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).
diff --git a/docs/be/self-hosting/cors-proxy.md b/docs/be/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..ce9d2c39
--- /dev/null
+++ b/docs/be/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS-проксі для атрымання сертыфікатаў
+
+Інструмент лічбавага подпісу выкарыстоўвае CORS-проксі, каб атрымліваць сертыфікаты выдаўцоў ад знешніх цэнтраў сертыфікацыі (CA). Гэта неабходна, бо многія серверы CA не ўключаюць загалоўкі CORS у свае адказы, што не дазваляе атрымліваць іх непасрэдна з браўзера.
+
+Акрамя таго, многія серверы CA аддаюць сертыфікаты праз звычайны HTTP. Калі ваш экзэмпляр BentoPDF працуе праз HTTPS, браўзеры блакіруюць такія HTTP-запыты (палітыка змешанага кантэнту). CORS-проксі вырашае абедзве праблемы, накіроўваючы запыты праз HTTPS-адрас з правільнымі загалоўкамі.
+
+## Як гэта працуе
+
+Пры подпісе PDF сертыфікатам:
+
+1. Бібліятэка `zgapdfsigner` спрабуе пабудаваць поўны ланцужок сертыфікатаў
+2. Яна атрымлівае сертыфікаты выдаўцоў па URL, укладзеных у пашырэнне AIA (Authority Information Access) вашага сертыфіката
+3. Гэтыя запыты праходзяць праз CORS-проксі, які дадае неабходныя загалоўкі `Access-Control-Allow-Origin`
+4. Проксі вяртае даныя сертыфіката браўзеру
+
+## Уласнае размяшчэнне CORS-проксі
+
+Калі вы размяшчаеце BentoPDF у сябе, вам трэба разгарнуць уласны CORS-проксі, каб лічбавыя подпісы працавалі з сертыфікатамі, якія патрабуюць атрымання ланцужка.
+
+### Варыянт 1: 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
+ ```
+
+### Варыянт 2: Уласны серверны проксі
+
+Вы таксама можаце стварыць уласны адрас проксі. Патрабаванні:
+
+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, перарывае загрузку пры перавышэнні |
+| **Абмежаванне частаты** | 60 запытаў у хвіліну на IP або IPv6 /64 (патрабуе KV, пры памылках KV прапускае запыты) |
+| **Подпісы HMAC** | Неабавязковы подпіс на баку кліента (стрымлівае выпадковыя злоўжыванні) |
+
+### DNS rebinding (уласнае размяшчэнне па-за Cloudflare)
+
+Worker адхіляе любы URL, які разрознаецца ў прыватны або ўнутраны IP. Ён не можа выкарыстоўваць фіксаваны спіс дазволеных хостаў, бо URL ланцужкоў сертыфікатаў вядуць да таго CA, які выдаў сертыфікат (FNMT, карпаратыўныя CA і г.д.), таму адрасы загадзя невядомыя. Гэта пакідае невялікае акно для rebinding: той, хто кіруе DNS свайго дамена, можа аддаць публічны IP для праверкі бяспекі, а праз імгненне прыватны для сапраўднага запыту.
+
+На Cloudflare гэтым немагчыма скарыстацца: Workers не маюць доступу да прыватных IP і адраса метаданых `169.254.169.254`, таму rebind нікуды не вядзе. Проста не давайце worker шляху ўнутр: не падключайце Tunnel, Service або прывязку да прыватнай сеткі (яму патрэбен толькі `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, якія дадаюць прамежкавыя сертыфікаты
+- Сертыфікаты, у якія вы ўручную сабралі поўны ланцужок
diff --git a/docs/be/self-hosting/docker.md b/docs/be/self-hosting/docker.md
new file mode 100644
index 00000000..46499cfc
--- /dev/null
+++ b/docs/be/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Разгортванне з Docker / Podman
+
+Самы просты спосаб размясціць BentoPDF у сябе ў працоўным асяроддзі.
+
+> [!IMPORTANT]
+> **Неабходныя загалоўкі для канвертацыі офісных файлаў**
+>
+> Інструменты на аснове LibreOffice (канвертацыя Word, Excel, PowerPoint) патрабуюць гэтых HTTP-загалоўкаў для падтрымкі `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Старонка таксама павінна аддавацца ў бяспечным кантэксце. `http://localhost` падыходзіць для лакальнага тэсціравання, але `http://192.168.x.x` і іншыя IP-адрасы лакальнай сеткі звычайна не, таму канвертацыя офісных файлаў праз звычайны HTTP не спрацуе нават пры наяўнасці загалоўкаў.
+>
+> Афіцыйныя вобразы кантэйнераў уключаюць гэтыя загалоўкі. Калі вы выкарыстоўваеце зваротны проксі (Traefik, Caddy і г.д.), пераканайцеся, што гэтыя загалоўкі захоўваюцца або дадаюцца, і выкарыстоўвайце HTTPS для доступу не праз loopback.
+
+> [!TIP]
+> **Карыстальнікам Podman:** усе каманды `docker` працуюць з Podman, калі замяніць `docker` на `podman`, а `docker-compose` на `podman-compose`.
+
+## Хуткі старт
+
+> [!TIP]
+> BentoPDF пастаўляецца ў дзвюх зборках:
+>
+> - **Self-Hosted build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Усе інструменты PDF **без** маркетынгавага афармлення (без галоўнага блока, FAQ, водгукаў, футэра). Выкарыстоўвайце яе для ўнутраных, камандных і арганізацыйных разгортванняў. Гэта **не** скарочаная "lite" версія.
+> - **Commercial build**: `ghcr.io/alam00000/bentopdf:latest`. Поўны маркетынгавы сайт, які выкарыстоўвае сам bentopdf.com і ўладальнікі камерцыйнай ліцэнзіі для публічных разгортванняў.
+>
+> Калі сумняваецеся, выкарыстоўвайце Self-Hosted build.
+
+```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
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Збярыце і запусціце:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Зменныя асяроддзя
+
+| Зменная | Апісанне | Па змаўчанні |
+| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Зборка варыянта Self-Hosted (хавае маркетынгавае афармленне bentopdf.com: галоўны блок, FAQ, водгукі, футэр). Усе інструменты 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 скрыпта воркера 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` | ID інструментаў праз коску, якія трэба схаваць | _(пуста; усе інструменты ўключаны)_ |
+| `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` |
+| `COMPRESSION_MODE` | Папярэдне сціснутыя копіі побач з кожным файлам: `o` няма, `g` `.gz` (іх аддае nginx вобраза), `b` `.br`, `all` абедзве. Nginx вобраза не ўмее аддаваць `.br`. | `o` |
+
+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`. Дырэктывы CSP `script-src`, `connect-src` і `font-src` **генеруюцца падчас зборкі** з 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 на іншых хастах дазваляюцца па крыніцы (origin).
+- Калі вы наладжваеце ўласныя 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 адхіляюцца, бо воркер, асноўнае асяроддзе выканання і каталог 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 паказваецца старонка "інструмент недаступны".
+
+ID інструмента гэта URL старонкі без `.html`. Напрыклад, калі інструмент знаходзіцца па адрасе `bentopdf.com/edit-pdf.html`, яго ID `edit-pdf`.
+
+#### Як знайсці ID інструментаў
+
+Самы просты спосаб: адкрыйце любы інструмент у BentoPDF і паглядзіце на URL. Апошняя частка шляху (без `.html`) і ёсць ID інструмента.
+
+
+Поўны спіс ID інструментаў
+
+**Рэдагаванне і анатацыі:** `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`
+
+
+
+#### Варыянт 1: Падчас зборкі (Docker build arg)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Спіс адключаных інструментаў убудоўваецца ў JavaScript-бандл. Для змены патрэбна перазборка.
+
+#### Варыянт 2: Падчас выканання (config.json)
+
+Падключыце файл `config.json` у каталог, які аддаецца серверам, перазборка не патрэбна:
+
+```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"]
+}
+```
+
+
+Поўны спіс катэгорый рэдактара
+
+**Маштаб:** `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`
+
+**Вымярэнне:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Формы:** `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`, `organize`
+
+**Вылучэнне:** `selection`, `selection-copy`
+
+**Гісторыя:** `history`, `history-undo`, `history-redo`
+
+
+
+Катэгорыі іерархічныя: адключэнне бацькоўскай (напрыклад, `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`) заўсёды прапускаюць лічыльнік зорак; гэты сцяг патрэбны толькі для Commercial build або ўласных поўных зборак.
+
+### Уласныя 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 `. Калі збіраеце з абмежаваным наборам моў 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` |
+
+Гэта працуе і са стандартным, і з nonroot Dockerfile.
+
+## Уласны ID карыстальніка (PUID/PGID)
+
+Для асяроддзяў, дзе патрабуецца запуск ад пэўнага карыстальніка без правоў root (NAS-прылады, Kubernetes з security contexts, палітыкі арганізацыі), 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` | ID карыстальніка для запуску | `1000` |
+| `PGID` | ID групы для запуску | `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) і рэкамендуецца для большасці разгортванняў. Выкарыстоўвайце `Dockerfile.nonroot`, толькі калі вам патрэбны пэўны UID/GID.
+
+> [!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. Гэта ідэальна для працоўных разгортванняў на 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
+```
diff --git a/docs/be/self-hosting/hostinger.md b/docs/be/self-hosting/hostinger.md
new file mode 100644
index 00000000..290da96c
--- /dev/null
+++ b/docs/be/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Разгортванне на Hostinger
+
+[Hostinger](https://hostinger.com) папулярны правайдар віртуальнага хостынгу. У гэтым кіраўніцтве апісана разгортванне BentoPDF на віртуальным хостынгу Hostinger.
+
+## Патрабаванні
+
+- Тарыф хостынгу Hostinger з доступам да файлавага менеджара
+- Node.js, усталяваны лакальна для зборкі
+
+## Крок 1: Збярыце праект
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Сабраныя файлы будуць у тэчцы `dist`.
+
+## Крок 2: Загрузка ў Hostinger
+
+### Разгортванне ў каранёвым дамене
+
+1. Увайдзіце ў ваш уліковы запіс Hostinger
+2. Перайдзіце ў **File Manager** → **public_html**
+3. **Выдаліце** ўсе існуючыя файлы (пры неабходнасці зрабіце рэзервовую копію)
+4. **Загрузіце** ўвесь змест вашай лакальнай тэчкі `dist` у `public_html`
+
+### Разгортванне ў падкаталогу
+
+Калі разгортваеце ў падкаталог (напрыклад, `yourdomain.com/pdf-tools/`):
+
+1. Збярыце з правільным базавым URL:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Стварыце тэчку ў Hostinger:
+ - Перайдзіце ў **File Manager** → **public_html**
+ - Стварыце новую тэчку: `pdf-tools`
+3. Загрузіце ўвесь змест `dist` у `public_html/pdf-tools/`
+
+## Крок 3: Стварыце файл .htaccess
+
+Стварыце файл `.htaccess` у корані тэчкі разгортвання (`public_html` або `public_html/pdf-tools/`):
+
+::: warning Важна
+Для разгортвання ў падкаталогу змяніце `RewriteBase /` на `RewriteBase /pdf-tools/` (або назву вашай тэчкі).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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 асобна.
diff --git a/docs/be/self-hosting/index.md b/docs/be/self-hosting/index.md
new file mode 100644
index 00000000..41793ff9
--- /dev/null
+++ b/docs/be/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Кіраўніцтва па самастойным размяшчэнні
+
+BentoPDF можна размясціць на ўласнай інфраструктуры. Гэта кіраўніцтва апісвае розныя варыянты разгортвання.
+
+## Хуткі старт з Docker / Podman
+
+Самы хуткі спосаб размясціць BentoPDF самастойна:
+
+> [!TIP]
+> BentoPDF пастаўляецца ў дзвюх зборках:
+>
+> - **Зборка для самастойнага размяшчэння**: `ghcr.io/alam00000/bentopdf-simple:latest`. Усе інструменты PDF, **без** маркетынгавага афармлення (без hero-блока, FAQ, водгукаў, ніжняга калантытула). Выкарыстоўвайце яе для ўнутраных разгортванняў каманды або арганізацыі. Гэта **не** скарочаная "lite" версія.
+> - **Камерцыйная зборка**: `ghcr.io/alam00000/bentopdf:latest`. Поўны маркетынгавы сайт, які выкарыстоўвае сам bentopdf.com і ўладальнікі камерцыйнай ліцэнзіі для публічных разгортванняў.
+>
+> Калі сумняваецеся, бярыце зборку для самастойнага размяшчэння.
+
+> [!IMPORTANT]
+> Пераўтварэнне офісных файлаў патрабуе `SharedArrayBuffer`, а значыць, праграма павінна быць ізаляванай паміж крыніцамі (cross-origin isolated) і раздавацца з бяспечнага кантэксту. Афіцыйны вобраз ужо адпраўляе патрэбныя загалоўкі COOP/COEP, але браўзеры ўсё роўна адключаюць `SharedArrayBuffer` на звычайных HTTP-адрасах лакальнай сеткі, напрыклад `http://192.168.x.x`.
+>
+> Выкарыстоўвайце `http://localhost` толькі для праверкі на той жа прыладзе. Калі карыстальнікі заходзяць у BentoPDF праз IP або імя хаста ў LAN, падключыце 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](/be/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 або ў камерцыйным публічным разгортванні. **Гэта не скарочаная і не "lite" версія.**
+
+**Што хавае зборка для самастойнага размяшчэння** (толькі касметыка, ніякія функцыі PDF не выдаляюцца):
+
+- Панэль навігацыі, hero-блок, раздзел магчымасцей, FAQ, водгукі, ніжні калантытул
+- Змяняе загаловак старонкі на "Інструменты PDF"
+
+**Што застаецца ў зборцы для самастойнага размяшчэння** (усё, што сапраўды працуе з PDF):
+
+- Усе інструменты PDF (аб'яднанне, падзел, рэдагаванне, подпіс, OCR, пераўтварэнне офісных файлаў і г.д.)
+- Падтрымка ўласнага брэндынгу, уся канфігурацыя падчас зборкі і выканання
+
+Камерцыйная зборка (`ghcr.io/alam00000/bentopdf:latest`) ляжыць у аснове самога bentopdf.com і выкарыстоўваецца ўладальнікамі камерцыйнай ліцэнзіі для публічных разгортванняў: яна дадае hero-блок, FAQ, водгукі і ніжні калантытул, якія не мелі б сэнсу ва ўнутраным інструменце.
+
+Калі вы размяшчаеце 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. Яна ўключае поўны маркетынгавы сайт (hero-блок, магчымасці, FAQ, водгукі, ніжні калантытул) у дадатак да ўсіх інструментаў PDF. Выкарыстоўвайце гэтую зборку, калі хочаце **разгарнуць 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, уключаючы змены брэндынгу і звязаную бізнес-логіку.
+- **Камерцыйная ліцэнзія** ($79 пажыццёва): патрэбна для закрытых / прапрыетарных разгортванняў, калі вы не адкрываеце код свайго форка з брэндынгам або бізнес-код.
+
+Поўнае параўнанне глядзіце на [старонцы ліцэнзавання](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`):
+
+```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
+```
+
+Абодва спосабы можна спалучаць: спісы аб'ядноўваюцца.
+
+Таксама можна адключыць асобныя функцыі ў рэдактары PDF (напрыклад, рэдагаванне канфідэнцыйных даных), не адключаючы ўвесь інструмент, дадаўшы `editorDisabledCategories` у `config.json`. Поўны спіс катэгорый глядзіце ў [кіраўніцтве па Docker](/be/self-hosting/docker#адключэнне-функцыи-рэдактара).
+
+## Кіраўніцтвы па разгортванні
+
+Выберыце платформу:
+
+- [Vercel](/be/self-hosting/vercel)
+- [Netlify](/be/self-hosting/netlify)
+- [Cloudflare Pages](/be/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/be/self-hosting/aws)
+- [Hostinger](/be/self-hosting/hostinger)
+- [Nginx](/be/self-hosting/nginx)
+- [Apache](/be/self-hosting/apache)
+- [Docker](/be/self-hosting/docker)
+- [Kubernetes](/be/self-hosting/kubernetes)
+- [CORS-проксі](/be/self-hosting/cors-proxy) - патрэбны для лічбавых подпісаў
+
+## Тыповыя праблемы
+
+### Word / ODT / Excel / PowerPoint у PDF завісае (SharedArrayBuffer недаступны)
+
+**Сімптом**: пераўтварэнні дакументаў на базе LibreOffice (Word, ODT, Excel, PowerPoint у PDF) завісаюць на ~55% або не пачынаюцца. У кансолі браўзера можа быць:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…або `window.crossOriginIsolated` вяртае `false`, або кампіляцыя WASM паведамляе `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Прычына**: LibreOffice WASM патрабуе `SharedArrayBuffer`, які браўзер уключае толькі калі старонка **ізаляваная паміж крыніцамі** І раздаецца з **бяспечнага кантэксту**. Гэта значыць, што павінны выконвацца дзве ўмовы:
+
+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`, таму браўзер атрымлівае сырыя байты gzip замест распакаванага WASM.
+
+**Рашэнне**: дакладную канфігурацыю глядзіце ў кіраўніцтве для вашай платформы:
+
+- [Nginx →](/be/self-hosting/nginx#word-odt-excel-у-pdf-не-працуе)
+- [Apache →](/be/self-hosting/apache#word-odt-excel-у-pdf-не-працуе)
+- [AWS S3 + CloudFront →](/be/self-hosting/aws#крок-3b-палітыка-загалоукау-адказу-абавязкова-для-libreoffice-wasm)
+- [Cloudflare Pages →](/be/self-hosting/cloudflare#фаил-канфігурацыі) (файл `_headers`)
+- [Netlify →](/be/self-hosting/netlify#word-odt-excel-у-pdf-спыняецца-на-55) (`netlify.toml`)
+- [Vercel →](/be/self-hosting/vercel#word-odt-excel-у-pdf-не-працуе) (`vercel.json`)
+- [Hostinger →](/be/self-hosting/hostinger#інструменты-libreoffice-не-працуюць) (`.htaccess`)
+- [Kubernetes →](/be/self-hosting/kubernetes#як-пераканацца-што-загалоукі-sharedarraybuffer-працуюць-ingress-gateway)
+- **Docker**: апрацоўваецца аўтаматычна ўбудаванай канфігурацыяй nginx, нічога рабіць не трэба.
+
+**Праверка**: адкрыйце кансоль 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` або іншым не-loopback HTTP-адрасе, падключыце 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 →](/be/self-hosting/nginx#падпісаць-pdf-або-запауненне-форм-паказвае-пусты-праглядальнік-памылка-mime-mjs)
+- [Apache →](/be/self-hosting/apache#падпісаць-pdf-або-запоуніць-форму-pdf-паказвае-пусты-прагляднік-памылка-mime-mjs)
+- [AWS S3 + CloudFront →](/be/self-hosting/aws#крок-2-зборка-і-загрузка) (глядзіце `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/be/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 ` | Дзе WASM будуць размешчаны ўнутры сеткі | _(абавязкова, запытваецца, калі няма)_ |
+| `--image-name ` | Тэг вобраза Docker | `bentopdf` |
+| `--output-dir ` | Каталог выніковага пакета | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Уключыць Simple Mode | выкл. |
+| `--base-url ` | Базавы URL падкаталога (напрыклад, `/pdf/`) | `/` |
+| `--language ` | Мова інтэрфейсу па змаўчанні (напрыклад, `fr`, `de`) | _(няма)_ |
+| `--brand-name ` | Уласная назва брэнда | _(няма)_ |
+| `--brand-logo ` | Шлях да лагатыпа адносна `public/` | _(няма)_ |
+| `--footer-text ` | Уласны тэкст ніжняга калантытула | _(няма)_ |
+| `--ocr-languages ` | Мовы OCR для ўключэння ў пакет праз коску | `eng` |
+| `--list-ocr-languages` | Вывесці падтрымліваемыя коды і назвы OCR і выйсці | выкл. |
+| `--search-ocr-language ` | Пошук кодаў OCR па назве або скарачэнні | выкл. |
+| `--dockerfile ` | Dockerfile для выкарыстання | `Dockerfile` |
+| `--skip-docker` | Прапусціць зборку і экспарт Docker | выкл. |
+| `--skip-wasm` | Прапусціць спампоўванне WASM (выкарыстаць існуючыя `.tgz`) | выкл. |
+
+Інтэрактыўны рэжым таксама прымае `list`, каб вывесці поўны спіс падтрымліваемых кодаў Tesseract, і `search ` для пошуку адпаведнасцей, напрыклад `search german` або `search chi`.
+
+::: warning Патрабаванне аднаго паходжання
+Файлы WASM павінны раздавацца з **таго ж паходжання (origin)**, што і праграма BentoPDF. Web Workers выкарыстоўваюць `importScripts()`, які не можа загружаць скрыпты з іншых паходжанняў. Напрыклад, калі BentoPDF працуе на `https://internal.example.com`, базавы URL для WASM таксама павінен быць `https://internal.example.com/wasm`.
+:::
+
+#### Ручныя крокі
+
+
+Калі вы аддаеце перавагу рабіць усё ўручную без скрыпта
+
+**Крок 1: Спампуйце пакеты 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
+```
+
+**Крок 2: Збярыце вобраз 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 .
+```
+
+**Крок 3: Экспартуйце вобраз Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Крок 4: Перанясіце ў ізаляваную сетку**
+
+Скапіруйце праз USB, унутраны рэпазіторый артэфактаў або іншы дазволены спосаб:
+
+- `bentopdf.tar`: вобраз Docker
+- Пяць пакетаў WASM/OCR `.tgz` з кроку 1
+- Каталог `tesseract-langdata/` з кроку 1
+- Каталог `ocr-fonts/` з кроку 1
+
+**Крок 5: Наладзьце ўнутры ізаляванай сеткі**
+
+```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, наладжаных на кроку 2, уключаючы `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` і `.../ocr/fonts`.
+
+
+
+::: info Збіраеце з зыходнага кода замест Docker?
+Задайце зменныя ў `.env.production` перад запускам `npm run build`:
+
+```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 загружаюцца падчас выканання, а не ўключаюцца ў зыходны код
+ :::
+
+## Сістэмныя патрабаванні
+
+| Патрабаванне | Мінімум |
+| ------------ | ------------------------------- |
+| Сховішча | ~100 MB (ядро без модуляў AGPL) |
+| RAM | 512 MB |
+| CPU | Любы сучасны працэсар |
+
+::: tip
+BentoPDF з'яўляецца статычным сайтам: ніякая база даных або бэкэнд-сервер не патрэбныя!
+:::
diff --git a/docs/be/self-hosting/kubernetes.md b/docs/be/self-hosting/kubernetes.md
new file mode 100644
index 00000000..b5a31e96
--- /dev/null
+++ b/docs/be/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Разгортванне з Kubernetes
+
+Kubernetes можа быць залішнім для статычнага сайта, але выдатна падыходзіць, калі вы ўжо карыстаецеся Helm + GitOps як стандартам.
+
+> [!IMPORTANT]
+> **Абавязковыя загалоўкі для пераўтварэння офісных файлаў**
+>
+> Інструменты на базе LibreOffice (пераўтварэнне Word, Excel, PowerPoint) патрабуюць гэтыя HTTP-загалоўкі для падтрымкі `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Афіцыйныя вобразы BentoPDF з nginx уключаюць гэтыя загалоўкі. У Kubernetes **кантролеры Ingress/Gateway таксама з'яўляюцца зваротнымі проксі**, таму пераканайцеся, што гэтыя загалоўкі захоўваюцца (або дадайце іх на краі).
+
+## Патрабаванні
+
+- Кластар Kubernetes
+- Helm v3
+- Вобраз BentoPDF з nginx (напрыклад, `ghcr.io/alam00000/bentopdf:`), які працуе на **порце 8080**
+
+## Разгортванне з Helm
+
+### Усталяванне з гэтага рэпазіторыя (лакальны chart)
+
+```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 chart)
+
+Калі chart апублікаваны ў GHCR як артэфакт OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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 (неабавязкова)
+
+Гэты chart падтрымлівае Gateway API `Gateway` + `HTTPRoute`.
+
+Прыклад (аператар 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 **перадаюць загалоўкі адказу ад upstream без змен**.
+
+### Што можа гэта зламаць
+
+- Палітыка кантролера/краю, якая **перавызначае** або **выдаляе** загалоўкі адказу
+- Прамежкавае ПЗ для "security headers", якое задае іншыя значэнні 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 / Запаўненне форм)
+
+Калі ў кансолі браўзера бачна `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` для запыту `.mjs`, кантролер Ingress/Gateway перад nginx BentoPDF замяняе загаловак `Content-Type` ад upstream на `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"]
+ }
+```
+
+Падключыце яго ў каталог, які раздаецца:
+
+```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](/be/self-hosting/docker#адключэнне-асобных-інструментау).
diff --git a/docs/be/self-hosting/netlify.md b/docs/be/self-hosting/netlify.md
new file mode 100644
index 00000000..8a931290
--- /dev/null
+++ b/docs/be/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Разгортванне на Netlify
+
+[Netlify](https://netlify.com) прапануе выдатны хостынг статычных сайтаў са шчодрым бясплатным тарыфам.
+
+## Разгортванне адным клікам
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Ручное разгортванне
+
+### Крок 1: Падключыце рэпазіторый
+
+1. Увайдзіце ў [Netlify](https://app.netlify.com)
+2. Націсніце "Add new site" → "Import an existing project"
+3. Падключыце свой уліковы запіс GitHub
+4. Выберыце свой форк BentoPDF
+
+### Крок 2: Наладзьце параметры зборкі
+
+| Налада | Значэнне |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Версія Node | 18+ |
+
+### Крок 3: Разгортванне
+
+Націсніце "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 спыняецца на 55%
+
+Калі пераўтварэнне дакументаў завісае на 55%, адкрыйце кансоль 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`, у файлаў `.wasm.gz` няма загалоўкаў `Content-Encoding: gzip`. Пераканайцеся, што блокі `[[headers]]` для `soffice.wasm.gz` і `soffice.data.gz` ёсць у вашым `netlify.toml`.
+
+### Памылка зборкі
+
+Праверце сумяшчальнасць версіі Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Павольная першая загрузка
+
+Уключыце аптымізацыю рэсурсаў у Site settings → Build & deploy → Asset optimization.
diff --git a/docs/be/self-hosting/nginx.md b/docs/be/self-hosting/nginx.md
new file mode 100644
index 00000000..cfacf9ba
--- /dev/null
+++ b/docs/be/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Разгортванне з Nginx
+
+Размясціце BentoPDF на ўласным серверы з дапамогай Nginx.
+
+## Патрабаванні
+
+- Сервер Ubuntu/Debian
+- Усталяваны Nginx
+- SSL-сертыфікат (рэкамендуецца Let's Encrypt)
+
+## Крок 1: Зборка праекта
+
+```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
+```
+
+## Крок 2: Капіраванне файлаў
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Крок 3: Канфігурацыя 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;
+ }
+}
+```
+
+## Крок 4: Уключэнне сайта
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Крок 5: 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. Звярніце ўвагу: дырэктывы nginx `add_header` у блоку `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
+```
diff --git a/docs/be/self-hosting/vercel.md b/docs/be/self-hosting/vercel.md
new file mode 100644
index 00000000..4357f9cd
--- /dev/null
+++ b/docs/be/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Разгортванне на Vercel
+
+[Vercel](https://vercel.com) прапануе самы просты спосаб разгортвання статычных сайтаў.
+
+## Разгортванне адным клікам
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Ручное разгортванне
+
+### Крок 1: Зрабіце форк рэпазіторыя
+
+Зрабіце форк [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) у свой уліковы запіс GitHub.
+
+### Крок 2: Імпарт у 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` |
+
+### Крок 3: Зменныя асяроддзя (неабавязкова)
+
+Дадайце пры неабходнасці:
+
+| Зменная | Апісанне |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Задайце `true` для мінімальнага інтэрфейсу |
+| `VITE_BRAND_NAME` | Уласная назва брэнда (замяняе "BentoPDF") |
+| `VITE_BRAND_LOGO` | Шлях да лагатыпа адносна `public/` (напрыклад, `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Уласны тэкст ніжняга калантытула/аўтарскага права |
+| `VITE_DEFAULT_LANGUAGE` | Мова інтэрфейсу па змаўчанні (напрыклад, `fr`, `de`, `es`) |
+
+### Крок 4: Разгортванне
+
+Націсніце "Deploy" і пачакайце завяршэння зборкі.
+
+## Уласны дамен
+
+1. Адкрыйце налады праекта
+2. Перайдзіце ў "Domains"
+3. Дадайце свой дамен
+4. Наладзьце DNS паводле інструкцый
+
+## Абмежаванні
+
+::: warning Вялікія файлы
+Бессерверныя функцыі Vercel маюць абмежаванне 50MB. Паколькі BentoPDF з'яўляецца статычным сайтам, гэта не павінна вас закрануць, але модулі WASM вялікія (каля 100MB агулам). Пераканайцеся, што яны раздаюцца з папкі `/public`.
+:::
+
+## Выпраўленне непаладак
+
+### Перавышэнне часу зборкі
+
+Калі зборка перавышае час чакання, паспрабуйце:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 пры абнаўленні старонкі
+
+Дадайце `vercel.json` для маршрутызацыі SPA:
+
+```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" }
+ ]
+ }
+ ]
+}
+```
+
+Каб праверыць, адкрыйце кансоль DevTools і выканайце `console.log(window.crossOriginIsolated)`: павінна вярнуцца `true`.
diff --git a/docs/be/tools/add-attachments.md b/docs/be/tools/add-attachments.md
new file mode 100644
index 00000000..2edaa74a
--- /dev/null
+++ b/docs/be/tools/add-attachments.md
@@ -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)
diff --git a/docs/be/tools/add-blank-page.md b/docs/be/tools/add-blank-page.md
new file mode 100644
index 00000000..577ed423
--- /dev/null
+++ b/docs/be/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Дадаць пустую старонку
+description: Устаўляйце адну або некалькі пустых старонак у любое месца PDF-дакумента.
+---
+
+# Дадаць пустую старонку
+
+Устаўляйце пустыя старонкі ў PDF у вызначанае вамі месца. Вы самі выбіраеце, куды іх уставіць і колькі дадаць.
+
+## Як гэта працуе
+
+1. Загрузіце PDF-файл. Інструмент пакажа колькасць старонак.
+2. Увядзіце **пазіцыю**, куды трэба ўставіць пустыя старонкі. Выкарыстайце `0`, каб уставіць у самы пачатак, або агульную колькасць старонак, каб дадаць у канец.
+3. Увядзіце **колькасць** пустых старонак (па змаўчанні 1).
+4. Націсніце кнопку апрацоўкі. Зменены PDF з устаўленымі пустымі старонкамі спампуецца.
+
+## Магчымасці
+
+- Устаўка ў любое месца: пачатак, сярэдзіну або канец дакумента
+- Даданне некалькіх пустых старонак за адну аперацыю
+- Падказка пазіцыі абнаўляецца паводле колькасці старонак загружанага PDF
+- Стандартныя пустыя старонкі памеру A4
+
+## Сцэнарыі выкарыстання
+
+- Даданне пустой старонкі-раздзяляльніка паміж раздзеламі сабранага дакумента
+- Устаўка пустых старонак для выраўноўвання пры двухбаковым друку
+- Даданне месца для рукапісных нататак у раздрукаваным вучэбным дапаможніку
+- Дапаўненне дакумента да мінімальнай патрабаванай колькасці старонак
+
+## Парады
+
+- Пазіцыя `0` устаўляе перад першай старонкай. Пазіцыя, роўная агульнай колькасці старонак, дадае пасля апошняй.
+- Калі трэба ўставіць змест (а не толькі пустыя старонкі) у пэўнае месца, выкарыстайце [Шматфункцыянальны інструмент PDF](./pdf-multi-tool), каб уставіць іншы PDF пасля зададзенай старонкі.
+
+## Звязаныя інструменты
+
+- [Упарадкаваць і дубляваць](./organize-pdf)
+- [Шматфункцыянальны інструмент PDF](./pdf-multi-tool)
+- [Аб'яднаць PDF](./merge-pdf)
diff --git a/docs/be/tools/add-page-labels.md b/docs/be/tools/add-page-labels.md
new file mode 100644
index 00000000..3329b8da
--- /dev/null
+++ b/docs/be/tools/add-page-labels.md
@@ -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. Устанавіце 0 для нумарацыі з нуля.
+- **Працягваць нумарацыю праз несумежныя дыяпазоны**: уключыце, калі правіла ахоплівае несумежныя старонкі (напрыклад, `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-numbering)
+- [Рэдагаваць закладкі](./bookmark)
diff --git a/docs/be/tools/add-stamps.md b/docs/be/tools/add-stamps.md
new file mode 100644
index 00000000..dce85b1a
--- /dev/null
+++ b/docs/be/tools/add-stamps.md
@@ -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)
diff --git a/docs/be/tools/add-watermark.md b/docs/be/tools/add-watermark.md
new file mode 100644
index 00000000..964cac8e
--- /dev/null
+++ b/docs/be/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Дадаць вадзяны знак
+description: Дадавайце тэкставыя або графічныя вадзяныя знакі на старонкі PDF з дапамогай візуальнага рэдактара з перацягваннем і жывым праглядам.
+---
+
+# Дадаць вадзяны знак
+
+Дадавайце тэкставыя або графічныя вадзяныя знакі на старонкі PDF у візуальным рэдактары. Вадзяны знак можна размясціць, перацягнуўшы яго непасрэдна на праглядзе, змяніць памер вугловымі маркерамі і наладзіць непразрыстасць, паварот, шрыфт і колер. Кожная старонка можа мець сваё размяшчэнне вадзянога знака, або можна прымяніць адзін знак да ўсіх старонак адразу.
+
+## Як гэта працуе
+
+1. Загрузіце PDF-файл.
+2. Адкрыецца рэдактар з жывым праглядам першай старонкі і вадзяным знакам, які можна перацягваць.
+3. Выберыце рэжым **Тэкст** або **Выява** кнопкамі-пераключальнікамі.
+4. Наладзьце параметры вадзянога знака на бакавой панэлі.
+5. Перацягніце вадзяны знак на праглядзе туды, дзе ён патрэбен. Выкарыстайце вугловыя маркеры для змены памеру.
+6. Пераходзьце паміж старонкамі, каб задаць вадзяныя знакі для кожнай, або пакіньце ўключаным **Прымяніць да ўсіх старонак**.
+7. Націсніце **Дадаць вадзяны знак**, каб апрацаваць і спампаваць.
+
+## Параметры
+
+**Налады тэкставага вадзянога знака:**
+
+- **Тэкст**: тэкст вадзянога знака (напрыклад, "КАНФІДЭНЦЫЙНА", "ЧАРНАВІК").
+- **Памер шрыфту**: ад 10 да 200 пунктаў. Па змаўчанні 72.
+- **Колер**: любы колер праз палітру.
+- **Непразрыстасць**: ад цалкам празрыстага да цалкам непразрыстага.
+- **Паварот**: паварот тэксту ад -180 да 180 градусаў.
+
+**Налады графічнага вадзянога знака:**
+
+- **Загрузка выявы**: загрузіце PNG, JPG або іншую выяву для вадзянога знака.
+- **Непразрыстасць**: празрыстасць выявы.
+- **Маштаб**: змена памеру графічнага вадзянога знака.
+
+**Налады размяшчэння:**
+
+- **Адзіночны**: адзін вадзяны знак на старонку, размешчаны перацягваннем або з дапамогай гатовых пазіцый.
+- **Плітка**: паўтарае вадзяны знак па ўсёй старонцы дыяганальнай сеткай, якая адпавядае куту павароту, так што знак пакрывае дакумент ад краю да краю.
+- **Гарызантальны прамежак**: адлегласць паміж пліткамі ўздоўж напрамку тэксту ў працэнтах ад шырыні вадзянога знака (толькі ў рэжыме пліткі).
+- **Вертыкальны прамежак**: адлегласць паміж радамі плітак у працэнтах ад вышыні вадзянога знака (толькі ў рэжыме пліткі).
+
+**Агульныя налады:**
+
+- **Прымяніць да ўсіх старонак**: калі ўключана, адзін вадзяны знак ужываецца да кожнай старонкі. Адключыце, каб задаць асобныя знакі для кожнай старонкі.
+- **Дыяпазон старонак**: якія старонкі атрымаюць вадзяны знак (напрыклад, "1-3, 5, 7-9" або "all").
+
+## Магчымасці
+
+- Візуальнае размяшчэнне перацягваннем на жывым праглядзе PDF
+- Змена памеру вадзянога знака вугловымі маркерамі
+- Рэжымы тэкставага і графічнага вадзянога знака
+- Адзіночнае або плітачнае (паўторнае) размяшчэнне на ўсю старонку з наладжвальнымі прамежкамі
+- Вадзяныя знакі для кожнай старонкі асобна або для ўсіх
+- Пастаронкавая навігацыя ў праглядзе
+- Кіраванне непразрыстасцю і паваротам
+- Фільтр па дыяпазоне старонак
+
+## Сцэнарыі выкарыстання
+
+- Пазначэнне чарнавікоў знакам "ЧАРНАВІК" перад рассылкай на рэцэнзію
+- Даданне вадзяных знакаў "КАНФІДЭНЦЫЙНА" да канфідэнцыйных фінансавых справаздач
+- Брэндынг дакументаў графічным вадзяным знакам з лагатыпам кампаніі
+- Пазначэнне "SAMPLE" на дакументацыі прадукту для патэнцыйных кліентаў
+- Даданне апавяшчэнняў аб аўтарскім праве да распаўсюджваных PDF-матэрыялаў
+
+## Парады
+
+- Для дыяганальных вадзяных знакаў задайце паварот каля 45 градусаў і павялічце памер шрыфту.
+- Рэжым пліткі значна ўскладняе паўторнае выкарыстанне дакумента пасля абрэзкі, бо выдаленне аднаго знака пакідае дзясяткі іншых. Пры плітцы паменшыце непразрыстасць, каб тэкст пад знакам заставаўся чытэльным.
+- Графічныя вадзяныя знакі з празрыстым фонам (фармат PNG) больш натуральна спалучаюцца са зместам дакумента.
+- Калі патрэбны розны тэкст вадзянога знака на розных старонках, адключыце "Прымяніць да ўсіх старонак" і праходзьце старонку за старонкай.
+
+## Звязаныя інструменты
+
+- [Верхні і ніжні калантытулы](./header-footer)
+- [Дадаць штампы](./add-stamps)
+- [Нумарацыя Бейтса](./bates-numbering)
+- [Падпісаць PDF](./sign-pdf)
diff --git a/docs/be/tools/adjust-colors.md b/docs/be/tools/adjust-colors.md
new file mode 100644
index 00000000..517bd03a
--- /dev/null
+++ b/docs/be/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Наладзіць колеры
+description: Тонка наладжвайце яркасць, кантраст, насычанасць, адценне, тэмпературу, тон, гаму і сэпію ў PDF.
+---
+
+# Наладзіць колеры
+
+Поўны набор інструментаў каляровай карэкцыі для PDF. Наладжвайце восем незалежных параметраў (яркасць, кантраст, насычанасць, зрух адцення, тэмпературу, тон, гаму і сэпію) з жывым праглядам, які абнаўляецца пры руху кожнага паўзунка.
+
+## Як гэта працуе
+
+1. Загрузіце PDF-файл.
+2. Адкрыецца рэдактар з праглядам першай старонкі і панэллю налад колеру.
+3. Рухайце паўзункі, каб наладзіць кожны параметр. Прагляд абнаўляецца ў рэальным часе.
+4. Націсніце **Скінуць**, каб вярнуць усе паўзункі ў пачатковае становішча.
+5. Націсніце **Прымяніць**, каб апрацаваць усе старонкі і спампаваць зменены PDF.
+
+## Параметры
+
+- **Яркасць**: асвятліць або зацямніць усю старонку (ад -100 да +100).
+- **Кантраст**: павялічыць або паменшыць розніцу паміж светлымі і цёмнымі ўчасткамі (ад -100 да +100).
+- **Насычанасць**: узмацніць або аслабіць інтэнсіўнасць колераў (ад -100 да +100). Значэнне -100 дае адценні шэрага.
+- **Зрух адцення**: паварочвае каляровае кола, раўнамерна зрушваючы ўсе колеры.
+- **Тэмпература**: робіць колеры цяплейшымі (жоўты/аранжавы) або халаднейшымі (сіні).
+- **Тон**: дадае зялёны або пурпурны адцянак.
+- **Гама**: наладжвае яркасць сярэдніх тонаў з дапамогай крывой гамы. Значэнні ніжэй за 1.0 зацямняюць сярэднія тоны, вышэй за 1.0 асвятляюць іх.
+- **Сэпія**: прымяняе класічны эфект сэпіі. Большыя значэнні даюць мацнейшы карычневы адцянак.
+
+## Магчымасці
+
+- Восем незалежна наладжвальных параметраў колеру
+- Жывы прагляд, які адразу рэагуе на змены паўзункоў
+- Кнопка скіду для хуткага вяртання да значэнняў па змаўчанні
+- Апрацоўка ўсіх старонак дакумента
+- Працуе з любым змесцівам PDF (тэкст, выявы, графіка)
+
+## Сцэнарыі выкарыстання
+
+- Асвятленне цёмнага скана або выпраўленне перасветленых старонак
+- Зніжэнне насычанасці каляровага дакумента, каб зэканоміць чарніла пры друку
+- Эфект сэпіі для старадаўняга выгляду сертыфікатаў або ўзнагарод
+- Выпраўленне каляровай тэмпературы фотаздымкаў, убудаваных у PDF
+- Павышэнне кантрасту выцвілых або няякасных сканаваных дакументаў
+
+## Парады
+
+- Для хуткага пераўтварэння ў адценні шэрага перацягніце паўзунок насычанасці да -100.
+- Паўзунок гамы асабліва карысны для паляпшэння чытэльнасці сканаваных дакументаў, дзе сярэднія тоны занадта цёмныя або светлыя.
+- Як і іншыя інструменты эфектаў выяў, гэты растравае кожную старонку. Вынік будзе складацца з выяў, таму тэкст нельга будзе вылучыць.
+
+## Звязаныя інструменты
+
+- [Інвертаваць колеры](./invert-colors)
+- [Эфект сканера](./scanner-effect)
+- [Колер фону](./background-color)
diff --git a/docs/be/tools/alternate-merge.md b/docs/be/tools/alternate-merge.md
new file mode 100644
index 00000000..65471b5b
--- /dev/null
+++ b/docs/be/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Чаргаваць і змяшаць старонкі
+description: Аб'ядноўвайце PDF, чаргуючы старонкі з кожнага файла, з захаваннем закладак.
+---
+
+# Чаргаваць і змяшаць старонкі
+
+Перамяжоўвайце старонкі з некалькіх PDF-файлаў так, каб яны чаргаваліся паміж дакументамі. Гэты інструмент патрэбен, калі звычайнае аб'яднанне проста дадало б файлы адзін за адным, а вам трэба старонка 1 файла A, потым старонка 1 файла B, потым старонка 2 файла A і гэтак далей.
+
+## Як гэта працуе
+
+1. Загрузіце як мінімум два PDF-файлы праз вобласць загрузкі.
+2. Інструмент пакажа кожны файл з колькасцю старонак і памерам.
+3. Перацягвайце за маркеры, каб змяніць, старонкі якога файла ідуць першымі ў паслядоўнасці.
+4. Націсніце **Змяшаць старонкі**, каб атрымаць вынік.
+5. Вынік спампуецца як `alternated-mixed.pdf`.
+
+## Магчымасці
+
+- Чаргаванне старонак любой колькасці PDF (мінімум два)
+- Змена парадку файлаў перацягваннем для кіравання прыярытэтам чаргавання
+- Захаванне закладак з зыходных дакументаў
+- Паказ колькасці старонак і памеру кожнага загружанага файла
+- Апрацоўка ў асобным web worker для спагаднага інтэрфейсу
+
+## Сцэнарыі выкарыстання
+
+- Зборка двухбаковых сканаў, дзе няцотныя і цотныя старонкі сканаваліся асобна
+- Спалучэнне аркушаў з пытаннямі і адказаў, каб пасля кожнага пытання ішоў адказ
+- Пастаронкавае аб'яднанне двухмоўных дакументаў (напрыклад, англійская на адной старонцы, пераклад на наступнай)
+- Чаргаванне сканаў пярэдняга і адваротнага бакоў з аднабаковага сканера
+
+## Парады
+
+- Калі ў зыходных PDF розная колькасць старонак, старонкі карацейшага дакумента скончацца раней, а астатнія старонкі даўжэйшага з'явяцца ў канцы.
+- Парадак файлаў важны: першы файл у спісе дае першую старонку выніку. Пры неабходнасці перацягніце, каб змяніць парадак.
+
+## Звязаныя інструменты
+
+- [Аб'яднаць PDF](./merge-pdf)
+- [Упарадкаваць і дубляваць](./organize-pdf)
+- [Падзяліць PDF](./split-pdf)
diff --git a/docs/be/tools/background-color.md b/docs/be/tools/background-color.md
new file mode 100644
index 00000000..fed61ff0
--- /dev/null
+++ b/docs/be/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Колер фону
+description: Змяняйце колер фону кожнай старонкі PDF з захаваннем усяго змесціва зверху.
+---
+
+# Колер фону
+
+Задайце суцэльны колер фону пад усім існуючым змесцівам PDF. Інструмент стварае каляровы прамавугольнік на кожнай старонцы і накладае зверху зыходнае змесціва, таму тэкст, выявы і графіка застаюцца цалкам бачнымі на новым фоне.
+
+## Як гэта працуе
+
+1. Загрузіце PDF-файл.
+2. Выберыце колер фону ў палітры. Па змаўчанні светла-жоўты (#FFFFCC).
+3. Націсніце **Змяніць колер фону**, каб апрацаваць.
+4. Абноўлены PDF спампуецца аўтаматычна.
+
+## Параметры
+
+- **Колер фону**: стандартная палітра для выбару любога суцэльнага колеру. Па змаўчанні светла-жоўты.
+
+## Магчымасці
+
+- Аднолькавы колер фону на кожнай старонцы
+- Захаванне ўсяго зыходнага змесціва (тэкст, выявы, вектарная графіка) над каляровым слоем
+- Захаванне зыходных памераў старонак
+- Працуе з дакументамі любой колькасці старонак
+
+## Сцэнарыі выкарыстання
+
+- Светла-крэмавы або слановай косці фон, каб надаць дакументам мякчэйшы выгляд, падобны да паперы
+- Каляровае кадзіраванне камплектаў дакументаў рознымі фонамі для розных катэгорый
+- Стварэнне візуальна адрозных версій аднаго дакумента для розных аўдыторый
+- Лёгкі адценне фону для лепшай чытэльнасці пры праекцыі дакументаў на экран
+
+## Парады
+
+- Лепш за ўсё падыходзяць светлыя, прыглушаныя колеры. Вельмі цёмны фон можа зрабіць тэкст цяжкім для чытання, калі тэкст не светлы.
+- Калі трэба змяніць і фон, і колер тэксту, спачатку прымяніце колер фону, а потым выкарыстайце [Змяніць колер тэксту](./text-color) для выніку.
+- Інструмент працуе на ўзроўні структуры PDF (без растравання), таму тэкст у выніку застаецца даступным для вылучэння і пошуку.
+
+## Звязаныя інструменты
+
+- [Змяніць колер тэксту](./text-color)
+- [Інвертаваць колеры](./invert-colors)
+- [Наладзіць колеры](./adjust-colors)
diff --git a/docs/be/tools/bates-numbering.md b/docs/be/tools/bates-numbering.md
new file mode 100644
index 00000000..71abb6f4
--- /dev/null
+++ b/docs/be/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Нумарацыя Бейтса
+description: Дадавайце нумары Бейтса да аднаго або некалькіх PDF з наладжвальнымі шаблонамі, дапаўненнем нулямі, шрыфтамі і размяшчэннем.
+---
+
+# Нумарацыя Бейтса
+
+Нумарацыя Бейтса праштампоўвае паслядоўныя ідэнтыфікатары на кожнай старонцы PDF. Гэта стандартны спосаб пазначэння дакументаў у судовых працэсах, аўдытах і працэсах адпаведнасці патрабаванням. Інструмент падтрымлівае некалькі файлаў і наладжвальныя шаблоны і стварае асобна пранумараваныя PDF або адзін ZIP-архіў.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі PDF-файлаў. Можна перацягнуць некалькі файлаў адразу.
+2. Выберыце гатовы стыль або стварыце ўласны шаблон.
+3. Наладзьце размяшчэнне, шрыфт, памер, колер і пачатковыя нумары.
+4. Націсніце **Прымяніць нумары Бейтса**, каб апрацаваць.
+5. Адзін файл спампуецца непасрэдна. Некалькі файлаў спампуюцца як ZIP-архіў.
+
+## Параметры
+
+- **Гатовы стыль**: выберыце адзін з убудаваных фарматаў:
+ - Доказ + Справа + Бейтс + Старонка (напрыклад, "Exhibit 1 Case XYZ 000001 Page 1")
+ - Доказ + Справа + Бейтс (без нумара старонкі)
+ - Справа + Бейтс
+ - Толькі нумар Бейтса (напрыклад, "000001")
+ - Уласны (напішыце свой шаблон)
+- **Наладзіць стыль**: радок шаблону з запаўняльнікамі: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Дапаўненне Бейтса**: колькасць лічбаў (ад 3 да 6) для нумароў Бейтса з вядучымі нулямі. Бачна толькі ва ўласным рэжыме.
+- **Размяшчэнне**: верхні або ніжні калантытул, злева, па цэнтры або справа.
+- **Бейтс пачынаецца з**: першы нумар Бейтса. Па змаўчанні 1. Нумарацыя працягваецца паміж файламі.
+- **Лічыльнік файлаў пачынаецца з**: пачатковы нумар для запаўняльніка `[FILE]`.
+- **Шрыфт**: Helvetica, Times New Roman або Courier.
+- **Памер шрыфту**: памер праштампаванага тэксту.
+- **Колер**: палітра для колеру тэксту нумара Бейтса.
+
+## Магчымасці
+
+- Жывы прагляд таго, як нумары Бейтса будуць выглядаць ва ўсіх загружаных файлах
+- Падтрымка некалькіх файлаў з бесперапыннай нумарацыяй паміж дакументамі
+- Змена парадку файлаў перацягваннем для кіравання паслядоўнасцю нумарацыі
+- Шэсць варыянтаў размяшчэння (верхні/ніжні калантытул, злева/па цэнтры/справа)
+- Адаптыўны разлік палёў з улікам розных памераў старонак
+- Вынік у ZIP для пакетаў з некалькіх файлаў
+- Запаўняльнікі шаблону для максімальнай гнуткасці
+
+## Сцэнарыі выкарыстання
+
+- Штампаванне дакументаў для судовага разбору паслядоўнымі нумарамі доказаў
+- Нумарацыя пакетаў аўдытарскіх доказаў з дзясяткаў файлаў
+- Нанясенне рэгулятарных даведачных нумароў на дакументацыю адпаведнасці
+- Пазначэнне дадаткаў да патэнтавых заявак ідэнтыфікатарамі справы
+
+## Парады
+
+- Перацягвайце файлы ў спісе, каб змяніць іх парадак перад апрацоўкай. Паслядоўнасць нумарацыі Бейтса ідзе ў гэтым парадку.
+- Выкарыстайце запаўняльнік `[FILENAME]`, каб уключыць у штамп зыходную назву файла: гэта дапамагае адсочваць старонкі да зыходных дакументаў.
+- Акно прагляду абнаўляецца ў рэальным часе пры змене налад, таму фармат можна праверыць перад апрацоўкай.
+
+## Звязаныя інструменты
+
+- [Нумары старонак](./page-numbers)
+- [Дадаць пазнакі старонак](./add-page-labels)
+- [Верхні і ніжні калантытулы](./header-footer)
diff --git a/docs/be/tools/bmp-to-pdf.md b/docs/be/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..2b25ec0a
--- /dev/null
+++ b/docs/be/tools/bmp-to-pdf.md
@@ -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 з дапамогай pdf-lib. Памер старонкі адпавядае памерам зыходнай выявы.
+
+## Параметры
+
+Інструмент не мае дадатковых налад якасці. Выявы ўбудоўваюцца ў PDF у зыходным раздзяленні як PNG без страт.
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне састарэлых сканаваных дакументаў у 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)
diff --git a/docs/be/tools/bookmark.md b/docs/be/tools/bookmark.md
new file mode 100644
index 00000000..4bfbfb14
--- /dev/null
+++ b/docs/be/tools/bookmark.md
@@ -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)
diff --git a/docs/be/tools/cbz-to-pdf.md b/docs/be/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..be592d54
--- /dev/null
+++ b/docs/be/tools/cbz-to-pdf.md
@@ -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 з дапамогай pdf-lib. Файлы 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)
diff --git a/docs/be/tools/change-permissions.md b/docs/be/tools/change-permissions.md
new file mode 100644
index 00000000..aeef7b22
--- /dev/null
+++ b/docs/be/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Змяніць дазволы
+description: Задавайце або змяняйце дазволы PDF на друк, капіраванне, рэдагаванне і анатаванне. Выкарыстоўваецца 256-бітнае шыфраванне AES.
+---
+
+# Змяніць дазволы
+
+Дакладна вызначайце, што атрымальнікі могуць рабіць з вашым PDF. У адрозненне ад простага шыфравання, якое толькі закрывае файл паролем, гэты інструмент дазваляе выбарачна дазваляць або забараняць друк, капіраванне, рэдагаванне, анатаванне, запаўненне форм, зборку дакумента і выманне старонак, і ўсё гэта забяспечваецца 256-бітным шыфраваннем 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): зняцце ўсіх абмежаванняў, калі ў вас ёсць пароль уладальніка
diff --git a/docs/be/tools/combine-single-page.md b/docs/be/tools/combine-single-page.md
new file mode 100644
index 00000000..8c00b16a
--- /dev/null
+++ b/docs/be/tools/combine-single-page.md
@@ -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)
diff --git a/docs/be/tools/compare-pdfs.md b/docs/be/tools/compare-pdfs.md
new file mode 100644
index 00000000..f355f67b
--- /dev/null
+++ b/docs/be/tools/compare-pdfs.md
@@ -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)
diff --git a/docs/be/tools/compress-pdf.md b/docs/be/tools/compress-pdf.md
new file mode 100644
index 00000000..f7bb059e
--- /dev/null
+++ b/docs/be/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Сціснуць PDF
+description: Памяншайце памер файла PDF да 90% з дапамогай рухавіка 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 | Укладанняў у ліст, загрузак у інтэрнэт |
+| **Без страт** | Відарысы не змяняюцца | Без змен | Архіўных копій |
+
+Высокі ўзровень таксама адмяняе ўбудаванне 14 стандартных шрыфтоў PDF, а таксама падобных да іх, напрыклад Arial, калі гэта бяспечна.
+
+## Мэтавы памер файла
+
+Увядзіце памер у КБ або МБ, і Hyper Compress падбярэ найлепшую якасць відарысаў, пры якой файл усё яшчэ змяшчаецца ў гэты памер, пачынаючы з выбранага ўзроўню. Калі дакумент нельга зрабіць такім малым, вы атрымаеце найменшую магчымую версію і паведамленне пра гэта. Асобныя старонкі, напрыклад [Сціснуць PDF да 1 МБ](https://www.bentopdf.com/compress-pdf-to-1mb), адкрываюцца з ужо запоўненым мэтавым памерам.
+
+## Уласныя налады
+
+Разгарніце панэль Уласных налад, каб наладзіць Hyper Compress напрамую. Выбар узроўню сціскання скідае гэтыя налады да значэнняў узроўню, а змяненне любой з іх пераключае ўзровень на Уласны.
+
+- **Абыйсці абарону змесціва**: па змаўчанні Hyper Compress не чапае падпісаныя PDF і не растарызуе старонкі з тэкстам. Гэтая опцыя абыходзіць абодва абмежаванні. Яна застаецца ўключанай пры змене ўзроўню.
+
+- **Відарысы**: якасць відарысаў, максімальнае разрозненне, прымусовая перадыскрэтызацыя, памяншэнне колькасці колераў, абрэзка нябачных абласцей відарысаў, выдаленне альтэрнатыўных відарысаў, спрашчэнне колеравых профіляў, JPEG 2000 і рэжым без страт
+- **Шрыфты**: стварэнне падмностваў, аб'яднанне дублікатаў і адмена ўбудавання стандартных шрыфтоў і падобных да іх
+- **Змесціва**: звядзенне анатацый, палёў форм або спасылак
+- **Ачыстка**: выдаленне мініяцюр, даных праграм, ланцужкоў артыкулаў, інфармацыі вэб-захопу, дрэва структуры або выходных інтэнтаў
+- **Растарызацыя**: замена старонак відарысамі для сканаў толькі з відарысаў; не выконваецца, калі ў дакуменце ёсць тэкст, які можна вылучыць
+- **Вывад**: Захаваць PDF/A і сцісканне Brotli для праграм чытання PDF 2.0, якія яго падтрымліваюць
+
+## Сцэнарыі выкарыстання
+
+- Памяншэнне справаздачы на 50 МБ да ліміту ўкладанняў электроннай пошты
+- Змяншэнне скана пад строгі ліміт загрузкі партала з дапамогай мэтавага памеру файла
+- Аптымізацыя маркетынгавых PDF для хутчэйшага спампоўвання з сайта
+- Архіваванне вялікіх набораў дакументаў, калі важны кошт захоўвання
+- Скарачэнне мабільнага трафіку пры абмене PDF у месенджарах
+
+## Парады
+
+- Пачніце з Сярэдняга. Калі вынік усё яшчэ завялікі, задайце мэтавы памер файла або перайдзіце на Высокі.
+- Для скана без тэкставага пласта ўключыце Растарызаваць старонкі ва Уласных наладах.
+- Пераўтварэнне ў градацыі шэрага ва Уласных наладах можа паменшыць памер файла для дакументаў з вялікай колькасцю колеру.
+
+## Звязаныя інструменты
+
+- [Зрабіць лінейны PDF](./linearize-pdf): аптымізуе сціснуты PDF для хуткага прагляду ў інтэрнэце
+- [Растарызаваць PDF](./rasterize-pdf): пераўтварае старонкі ў відарысы з зададзеным DPI, у тым ліку старонкі з тэкстам
+- [Аднавіць PDF](./repair-pdf): выпраўляе PDF, які пашкодзіўся пры сцісканні ў іншым месцы
+- [Выдаліць метаданыя](./remove-metadata): выдаляе схаваныя даныя для прыватнасці
diff --git a/docs/be/tools/crop-pdf.md b/docs/be/tools/crop-pdf.md
new file mode 100644
index 00000000..1ad8087a
--- /dev/null
+++ b/docs/be/tools/crop-pdf.md
@@ -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)
diff --git a/docs/be/tools/csv-to-pdf.md b/docs/be/tools/csv-to-pdf.md
new file mode 100644
index 00000000..d9f33c22
--- /dev/null
+++ b/docs/be/tools/csv-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/delete-pages.md b/docs/be/tools/delete-pages.md
new file mode 100644
index 00000000..28e39bf6
--- /dev/null
+++ b/docs/be/tools/delete-pages.md
@@ -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)
diff --git a/docs/be/tools/deskew-pdf.md b/docs/be/tools/deskew-pdf.md
new file mode 100644
index 00000000..ec9084c6
--- /dev/null
+++ b/docs/be/tools/deskew-pdf.md
@@ -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
+- Выраўноўванне старонак з планшэтнага сканера пры няроўна пакладзенай паперы
+- Паляпшэнне візуальнай якасці алічбаваных архіўных матэрыялаў
+
+## Парады
+
+- Паменшыце парог да 0.1 градуса, калі для OCR патрэбна ідэальнае выраўноўванне.
+- 150 DPI хутка і дакладна для большасці дакументаў. Для вельмі дробнага тэксту або старонак з дробнымі дэталямі выкарыстоўвайце 300 DPI.
+- Выпрастанне лепш за ўсё працуе з дакументамі з выразнымі гарызантальнымі радкамі тэксту. Яно можа не спраўляцца са старонкамі, дзе пераважаюць відарысы або дыяганальныя элементы дызайну.
+
+## Звязаныя інструменты
+
+- [Растарызаваць PDF](./rasterize-pdf): пераўтварае выпраўлены вынік у PDF на аснове плоскіх відарысаў
+- [Сціснуць PDF](./compress-pdf): памяншае памер файла пасля выпрастання
+- [Аднавіць PDF](./repair-pdf): выпраўляе структурныя праблемы ў сканаваных PDF
diff --git a/docs/be/tools/digital-sign-pdf.md b/docs/be/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..4ab81d59
--- /dev/null
+++ b/docs/be/tools/digital-sign-pdf.md
@@ -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 (рукапісны подпіс, пячатка кампаніі і г. д.)
+- **Тэкст**: уласны тэкст з наладжвальным колерам і памерам шрыфту. Калі не зададзены ні відарыс, ні тэкст, інструмент аўтаматычна стварае тэкст з агульнага імя сертыфіката і бягучай даты.
+
+## Метаданыя подпісу
+
+- **Прычына**: чаму дакумент быў падпісаны (напрыклад, «Зацверджана», «Праверана»)
+- **Месца**: дзе адбылося падпісанне (напрыклад, «Мінск»)
+- **Кантактная інфармацыя**: як звязацца з падпісантам (напрыклад, адрас электроннай пошты)
+
+## Заўвага пра падключэнне да інтэрнэту
+
+Для падпісання можа спатрэбіцца падключэнне да інтэрнэту. Бібліятэка подпісу атрымлівае ланцужок сертыфікатаў па URL, убудаваных у пашырэнне Authority Information Access (AIA) вашага сертыфіката. Калі гэтыя серверы недаступныя, падпісанне не атрымаецца для сертыфікатаў, якія патрабуюць праверкі ланцужка.
+
+## Сцэнарыі выкарыстання
+
+- Падпісанне дагавораў, прапаноў і пагадненняў юрыдычна значнымі лічбавымі подпісамі
+- Сертыфікацыя афіцыйных дакументаў у працэсах, якія патрабуюць аўтэнтыфікацыі на аснове PKI
+- Падпісанне рахункаў PDF для выканання патрабаванняў рэгулятараў (многія краіны ЕС патрабуюць лічбава падпісаных электронных рахункаў)
+- Дадаванне арганізацыйнага зацвярджэння да інжынерных чарцяжоў або дакументаў па якасці
+
+## Парады
+
+- Самападпісаныя сертыфікаты падыходзяць для тэставання, але ў Adobe Reader будуць паказваць папярэджанні. Для рабочых дакументаў выкарыстоўвайце сертыфікат ад давернага цэнтра сертыфікацыі.
+- Бачны подпіс з'яўляецца чыста візуальным. Крыптаграфічны подпіс убудоўваецца незалежна ад таго, ці ўключаны бачны блок.
+- Праверце падпісаны PDF інструментам «Праверыць подпіс PDF», каб пераканацца, што подпіс цэлы.
+
+## Звязаныя інструменты
+
+- [Праверыць подпіс PDF](./validate-signature-pdf): правярае лічбавыя подпісы ў падпісаных PDF
+- [Звесці PDF](./flatten-pdf): зводзіць формы перад падпісаннем, каб прадухіліць змены
+- [Зашыфраваць PDF](./protect-pdf): дадае абарону паролем паверх лічбавага подпісу
+- [Выдаліць метаданыя](./remove-metadata): выдаляе метаданыя перад падпісаннем
diff --git a/docs/be/tools/divide-pages.md b/docs/be/tools/divide-pages.md
new file mode 100644
index 00000000..1a221445
--- /dev/null
+++ b/docs/be/tools/divide-pages.md
@@ -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)
+- [Пераўтварыць у постэр](./posterize-pdf)
diff --git a/docs/be/tools/duplex-collate.md b/docs/be/tools/duplex-collate.md
new file mode 100644
index 00000000..b007a7dd
--- /dev/null
+++ b/docs/be/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Сартаванне двухбаковага сканавання
+description: Упарадкоўвайце PDF двухбаковага сканавання, дзе пярэднія і адваротныя бакі ідуць асобнымі блокамі, у правільны парадак старонак.
+---
+
+# Сартаванне двухбаковага сканавання
+
+Сартаванне двухбаковага сканавання прызначана для сканавання з аўтападатчыкам (ADF), калі адзін PDF утрымлівае два блокі старонак:
+
+- спачатку ўсе пярэднія бакі
+- потым усе адваротныя бакі
+
+Замест ручнога падзелу і зборкі інструмент чаргуе два блокі ў натуральны парадак чытання: пярэдні1, адваротны1, пярэдні2, адваротны2 і г. д.
+
+## Як гэта працуе
+
+1. Загрузіце адзін PDF, створаны пры двухбаковым сканаванні стосу.
+2. Задайце пункт падзелу, дзе заканчваецца блок пярэдніх бакоў.
+3. Выберыце, як апрацоўваць блок адваротных бакоў:
+ - **Перавярнуць блок адваротных бакоў** (звычайна, калі стос пераварочваюць перад сканаваннем адваротных бакоў)
+ - **Пакінуць блок адваротных бакоў як ёсць**
+4. Націсніце **Сартаваць PDF**, каб спампаваць упарадкаваны вынік.
+
+## Параметры
+
+- **Аўтавызначэнне падзелу (палова)**: задае пункт падзелу як `ceil(totalPages / 2)`.
+- **Папярэджанне пра няцотную колькасць**: папярэджвае, калі агульная колькасць старонак няцотная (часта гэта памылка сканавання).
+- **Пацвярджэнне няроўных блокаў**: запытвае пацвярджэнне, калі памеры блокаў пярэдніх і адваротных бакоў адрозніваюцца.
+- **Групавы экспарт**: дзеліць вынік на асобныя PDF паводле колькасці старонак у арыгінальным дакуменце і спампоўвае іх як ZIP.
+
+## Паводзіны выніку
+
+- **Па змаўчанні**: адзін выходны PDF (адзін PDF на ўваходзе, адзін на выхадзе).
+- **Групавы рэжым**: вынік дзеліцца на часткі паводле значэння старонак на дакумент; калі атрымліваецца некалькі частак, яны спампоўваюцца адным ZIP, інакш спампоўваецца адзін PDF.
+
+Калі памеры блокаў няроўныя, спачатку сартуюцца старонкі, што маюць пару, а астатнія старонкі без пары дадаюцца ў канцы.
+
+## Звычайныя сцэнарыі выкарыстання
+
+- Аднаўленне парадку пасля сканавання стосу двухбаковых бланкаў за два праходы.
+- Аднаўленне пакетаў «пярэдні/адваротны бок» з офісных сканераў, якія выводзяць спачатку ўсе пярэднія бакі, потым усе адваротныя.
+- Апрацоўка архіўных сканаў перад падзелам на файлы па дакументах.
+
+## Парады
+
+- У большасці пакетаў двухбаковага сканавання агульная колькасць старонак павінна быць цотнай.
+- Калі адваротныя бакі ў выніку ідуць у адваротным парадку, пераключыцеся паміж **Перавярнуць блок адваротных бакоў** і **Пакінуць блок адваротных бакоў як ёсць**.
+- Для двухстаронкавых арыгіналаў (пярэдні+адваротны бок) выкарыстоўвайце групавы экспарт з `2` старонкамі на дакумент.
+
+## Звязаныя інструменты
+
+- [Чаргаваць і змяшаць старонкі](./alternate-merge)
+- [Падзяліць PDF](./split-pdf)
+- [Аб'яднаць PDF](./merge-pdf)
+- [Дубляваць і арганізаваць](./organize-pdf)
diff --git a/docs/be/tools/edit-attachments.md b/docs/be/tools/edit-attachments.md
new file mode 100644
index 00000000..c13f8fda
--- /dev/null
+++ b/docs/be/tools/edit-attachments.md
@@ -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)
diff --git a/docs/be/tools/edit-metadata.md b/docs/be/tools/edit-metadata.md
new file mode 100644
index 00000000..0477eaf6
--- /dev/null
+++ b/docs/be/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Рэдагаваць метаданыя
+description: Праглядайце і змяняйце палі метаданых PDF, у тым ліку назву, аўтара, ключавыя словы, даты і ўласныя ўласцівасці.
+---
+
+# Рэдагаваць метаданыя
+
+Рэдагуйце метаданыя, убудаваныя ў файл PDF. Інструмент загадзя запаўняе форму існуючымі метаданымі дакумента, дазваляе змяніць любое поле і захоўвае змены ў новы PDF.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF. Інструмент чытае яго бягучыя метаданыя і запаўняе форму.
+2. Рэдагуйце любыя стандартныя палі: Назва, Аўтар, Тэма, Ключавыя словы, Стваральнік, Вытворца.
+3. Наладзьце Дату стварэння і Дату змянення з дапамогай выбару даты і часу.
+4. Дадавайце ўласныя палі метаданых: націсніце кнопку дадавання і ўвядзіце пару ключ-значэнне.
+5. Націсніце кнопку апрацоўкі, каб захаваць зменены PDF.
+
+## Магчымасці
+
+- Загадзя запаўняе ўсе існуючыя метаданыя з загружанага PDF
+- Стандартныя палі: Назва, Аўтар, Тэма, Ключавыя словы, Стваральнік, Вытворца
+- Выбар даты і часу для Даты стварэння і Даты змянення
+- Уласныя палі метаданых ключ-значэнне для любых уласцівасцей
+- Захоўвае змены непасрэдна ў інфармацыйны слоўнік дакумента PDF
+
+## Палі для рэдагавання
+
+| Поле | Апісанне |
+| ------------------ | --------------------------------------------------------- |
+| **Назва** | Назва дакумента, якая паказваецца ў праграмах чытання PDF |
+| **Аўтар** | Чалавек або арганізацыя, якія стварылі дакумент |
+| **Тэма** | Кароткае апісанне тэмы дакумента |
+| **Ключавыя словы** | Тэрміны праз коску для пошуку і катэгарызацыі |
+| **Стваральнік** | Праграма, у якой першапачаткова створана змесціва |
+| **Вытворца** | Праграма, якая стварыла PDF |
+| **Дата стварэння** | Калі дакумент быў першапачаткова створаны |
+| **Дата змянення** | Калі дакумент быў апошні раз зменены |
+| **Уласныя палі** | Любыя дадатковыя пары ключ-значэнне, якія вы задасце |
+
+## Сцэнарыі выкарыстання
+
+- Заданне правільнай назвы і аўтара перад публікацыяй дакумента
+- Дадаванне ключавых слоў для лепшага пошуку ў сістэмах кіравання дакументамі
+- Абнаўленне даты змянення ў адпаведнасці з бягучай рэдакцыяй
+- Дадаванне ўласных палёў метаданых, такіх як Аддзел, ID праекта або Класіфікацыя
+- Ачыстка метаданых, пакінутых зыходнай праграмай стварэння
+
+## Парады
+
+- Уласныя палі запісваюцца непасрэдна ў інфармацыйны слоўнік PDF. Некаторыя праграмы чытання PDF могуць іх не паказваць, але ў файле яны захоўваюцца.
+- Пакіньце поле пустым, каб выдаліць яго з метаданых. Кнопка апрацоўкі захоўвае тое, што ёсць у форме.
+- Каб праглядзець метаданыя без рэдагавання, скарыстайцеся [Праглядзець метаданыя](./view-metadata). Каб цалкам выдаліць усе метаданыя, скарыстайцеся «Выдаліць метаданыя».
+
+## Звязаныя інструменты
+
+- [Праглядзець метаданыя](./view-metadata)
+- [Пласты PDF OCG](./pdf-layers)
+- [Сціснуць PDF](./compress-pdf)
diff --git a/docs/be/tools/edit-pdf.md b/docs/be/tools/edit-pdf.md
new file mode 100644
index 00000000..7e5fad24
--- /dev/null
+++ b/docs/be/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Рэдактар PDF
+description: Анатуйце, вылучайце, рэдагуйце з выдаленнем, дадавайце фігуры і відарысы, шукайце і праглядайце PDF непасрэдна ў браўзеры.
+---
+
+# Рэдактар PDF
+
+Рэдактар PDF ад BentoPDF дазваляе анатаваць, вылучаць, выдаляць канфідэнцыйнае змесціва, каментаваць, дадаваць фігуры і відарысы і шукаць у вашых PDF. Ён загружае поўнафункцыянальны рэдактар непасрэдна ў браўзеры без загрузкі файлаў на сервер.
+
+## Як гэта працуе
+
+1. Загрузіце PDF: націсніце на вобласць загрузкі або перацягніце на яе файл.
+2. Убудаваны рэдактар PDF адкрываецца аўтаматычна з вашым дакументам.
+3. Карыстайцеся панэллю інструментаў, каб анатаваць, вылучаць, выдаляць змесціва, дадаваць тэкст, маляваць фігуры або ўстаўляць відарысы.
+4. Націсніце **Спампаваць адрэдагаваны PDF**, каб захаваць змены.
+
+## Магчымасці
+
+- Поўная панэль анатацый з вылучэннем, падкрэсліваннем, закрэсліваннем і малюнкам ад рукі
+- Устаўка тэксту і каментаванне
+- Інструменты выдалення змесціва, якія назаўсёды выдаляюць пазначанае змесціва пасля прымянення. Калі пры націску **Спампаваць адрэдагаваны PDF** засталіся непрымененыя пазнакі, рэдактар прапануе спачатку прымяніць іх.
+- Інструменты фігур: прамавугольнікі, кругі, лініі і стрэлкі
+- Устаўка відарысаў на старонкі PDF
+- Убудаваны пошук тэксту па дакуменце
+- Падтрымка некалькіх дакументаў ва ўкладках (да 10 адначасова адкрытых дакументаў)
+- Загрузка файлаў перацягваннем
+
+## Сцэнарыі выкарыстання
+
+- Праверка дагавораў і пазначэнне змен вылучэннямі і каментарыямі
+- Выдаленне канфідэнцыйнай інфармацыі, напрыклад нумароў сацыяльнага страхавання або фінансавых даных, перад абменам
+- Дадаванне анатацый да архітэктурных планаў або інжынерных чарцяжоў
+- Устаўка лагатыпаў кампаніі або штампаў на старонкі дакумента
+- Пошук пэўных тэрмінаў у аб'ёмных юрыдычных дакументах
+
+## Парады
+
+- Можна адкрыць некалькі PDF адначасова і пераключацца паміж імі ўкладкамі ўверсе рэдактара.
+- Рэдактар захоўвае арыгінальную структуру PDF, таму шрыфты, макеты і палі форм застаюцца некранутымі.
+- Пазначэнне тэксту або вобласці для выдалення нічога не выдаляе, пакуль выдаленне не прыменена. Калі вы выдаляеце вылучаны тэкст, яго копіі ва ўласцівасцях файла, закладках, каментарыях і далучэннях таксама выдаляюцца са спампаванага файла, калі файл не зашыфраваны.
+- Для масавага дадавання вадзяных знакаў або нумароў старонак карыстайцеся спецыяльнымі інструментамі, яны даюць больш кантролю над фарматаваннем.
+
+## Звязаныя інструменты
+
+- [Дадаць вадзяны знак](./add-watermark)
+- [Падпісаць PDF](./sign-pdf)
+- [Дадаць штампы](./add-stamps)
+- [Выдаліць анатацыі](./remove-annotations)
diff --git a/docs/be/tools/email-to-pdf.md b/docs/be/tools/email-to-pdf.md
new file mode 100644
index 00000000..ee235cb7
--- /dev/null
+++ b/docs/be/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Email у PDF
+description: Пераўтварайце файлы электроннай пошты EML і MSG у PDF у браўзеры. Захоўваюцца загалоўкі, тэкст і спіс далучэнняў.
+---
+
+# Email у PDF
+
+Пераўтварайце захаваныя лісты ў акуратныя PDF для друку. Інструмент разбірае файлы EML і MSG, вымае ўвесь ліст (загалоўкі, тэкст і метаданыя далучэнняў) і выводзіць усё ў структураваны PDF. Зручна для юрыдычнага раскрыцця даных, вядзення запісаў або проста друку важнага ліста.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :----- | :-------- | :------------------------------------------------------------------------ |
+| EML | `.eml` | Стандартны фармат лістоў MIME (экспартуецца з большасці паштовых праграм) |
+| MSG | `.msg` | Уласны фармат Microsoft Outlook |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы EML ці MSG. Можна змешваць абодва фарматы ў адным пакеце.
+2. Праверце спіс файлаў. Выдаліце непатрэбныя значком кошыка або націсніце **Дадаць файлы**, каб дадаць яшчэ лісты.
+3. Наладзьце параметры пераўтварэння (гл. ніжэй).
+4. Націсніце **Пераўтварыць у PDF**. Інструмент разбірае кожны ліст, выводзіць змесціва як аформлены HTML і пераўтварае яго ў PDF рухавіком PyMuPDF.
+5. Адзін ліст спампоўваецца непасрэдна як PDF. Некалькі лістоў пакуюцца ў `emails-converted.zip`.
+
+## Параметры
+
+| Параметр | Па змаўчанні | Апісанне |
+| :--------------------------- | :----------- | :-------------------------------------------------------------------------------------- |
+| **Памер старонкі** | A4 | Выбар паміж памерамі старонак A4, Letter або Legal. |
+| **Уключыць CC і BCC** | Укл. | Калі ўключана, спісы атрымальнікаў CC і BCC паказваюцца ў загалоўку ліста ў PDF. |
+| **Уключыць спіс далучэнняў** | Укл. | Калі ўключана, у PDF паказваецца спіс далучаных да ліста файлаў (з назвамі і памерамі). |
+
+## Сцэнарыі выкарыстання
+
+- Архіваванне важнай дзелавой перапіскі ў PDF для адпаведнасці патрабаванням або аўдыту
+- Друк ланцужкоў лістоў для судовых разбіральніцтваў або запытаў на раскрыццё
+- Стварэнне пастаяннага запісу пацвярджэнняў заказаў, чэкаў або дагавораў, атрыманых па пошце
+- Рэзервовае капіраванне файлаў Outlook MSG у фармат, для чытання якога не патрэбны Outlook
+- Дакументаванне зваротаў у службу падтрымкі з экспартаваных файлаў EML
+
+## Парады
+
+- Падтрымліваюцца і EML (выкарыстоўваецца ў Thunderbird, Apple Mail і большасці паштовых праграм), і файлы Outlook MSG. Экспартуйце лісты з паштовай праграмы і перацягніце іх непасрэдна ў інструмент.
+- Лісты ў фармаце HTML захоўваюць афармленне ў PDF. Лісты простым тэкстам выводзяцца з акуратным, лёгкім для чытання фарматаваннем.
+- Спіс далучэнняў паказвае назвы і памеры файлаў, але не ўбудоўвае самі далучаныя файлы ў PDF.
+
+## Звязаныя інструменты
+
+- [XML у PDF](./xml-to-pdf)
+- [XPS у PDF](./xps-to-pdf)
diff --git a/docs/be/tools/epub-to-pdf.md b/docs/be/tools/epub-to-pdf.md
new file mode 100644
index 00000000..52899e01
--- /dev/null
+++ b/docs/be/tools/epub-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/excel-to-pdf.md b/docs/be/tools/excel-to-pdf.md
new file mode 100644
index 00000000..497c7608
--- /dev/null
+++ b/docs/be/tools/excel-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/extract-attachments.md b/docs/be/tools/extract-attachments.md
new file mode 100644
index 00000000..96a05838
--- /dev/null
+++ b/docs/be/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Выняць далучэнні
+description: Вымайце ўсе ўбудаваныя далучаныя файлы з аднаго або некалькіх PDF і спампоўвайце іх як архіў ZIP.
+---
+
+# Выняць далучэнні
+
+Вымайце кожнае ўбудаванае далучэнне з аднаго або некалькіх файлаў PDF. Усе вынятыя файлы збіраюцца ў адзін архіў ZIP для спампоўвання.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі файлаў PDF з убудаванымі далучэннямі.
+2. Націсніце **Выняць далучэнні**.
+3. Інструмент шукае ў кожным PDF далучэнні на ўзроўні дакумента і старонак.
+4. Усе знойдзеныя файлы пакуюцца ў архіў ZIP і спампоўваюцца аўтаматычна.
+5. Паведамленне пра стан паказвае, колькі далучэнняў знойдзена і іх агульны памер.
+
+## Магчымасці
+
+- Пакетнае выманне з некалькіх PDF адначасова
+- Выманне далучэнняў як на ўзроўні дакумента, так і на ўзроўні старонак
+- Вынік у выглядзе аднаго файла ZIP з усімі вынятымі файламі
+- Паказ агульнай колькасці далучэнняў і іх сумарнага памеру
+- Зразумелыя паведамленні, калі далучэнні не знойдзены
+
+## Сцэнарыі выкарыстання
+
+- Аднаўленне файлаў даных, убудаваных у PDF справаздачы
+- Выманне відарысаў з партфоліо або дакумента са спецыфікацыяй
+- Выманне дадатковых матэрыялаў з навучальных PDF або PDF па адпаведнасці
+- Аўдыт таго, якія файлы ўбудаваны ў набор PDF
+
+## Парады
+
+- Калі інструмент не знаходзіць далучэнняў, PDF можа ўтрымліваць убудаваныя відарысы або даныя форм, якія не з'яўляюцца далучанымі файламі. Для ўбудаваных відарысаў карыстайцеся [Выняць відарысы](./extract-images).
+- Пры апрацоўцы некалькіх PDF усе далучэнні з кожнага файла трапляюць у адзін ZIP. Назвы файлаў захоўваюцца з арыгінальных далучэнняў.
+
+## Звязаныя інструменты
+
+- [Дадаць далучэнні](./add-attachments)
+- [Рэдагаваць далучэнні](./edit-attachments)
+- [Выняць відарысы](./extract-images)
diff --git a/docs/be/tools/extract-images.md b/docs/be/tools/extract-images.md
new file mode 100644
index 00000000..b295e33f
--- /dev/null
+++ b/docs/be/tools/extract-images.md
@@ -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)
diff --git a/docs/be/tools/extract-pages.md b/docs/be/tools/extract-pages.md
new file mode 100644
index 00000000..6d64bc01
--- /dev/null
+++ b/docs/be/tools/extract-pages.md
@@ -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)
diff --git a/docs/be/tools/extract-tables.md b/docs/be/tools/extract-tables.md
new file mode 100644
index 00000000..6a1597cf
--- /dev/null
+++ b/docs/be/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Выняць табліцы з PDF
+description: Знаходзьце і вымайце табліцы з дакументаў PDF. Экспартуйце ў CSV, JSON або Markdown з падзелам па табліцах.
+---
+
+# Выняць табліцы з PDF
+
+Знаходзіць усе табліцы ў PDF і дазваляе экспартаваць іх у выбраным фармаце: CSV, JSON або Markdown. Кожная табліца вымаецца асобна з метаданымі пра старонку і пазіцыю. Працуе на рухавіку выяўлення табліц PyMuPDF.
+
+## Як гэта працуе
+
+1. Загрузіце PDF: націсніце на вобласць загрузкі або перацягніце на яе файл.
+2. Выберыце патрэбны **фармат экспарту**: CSV, JSON або Markdown.
+3. Націсніце **Выняць**, каб пачаць апрацоўку.
+4. Калі знойдзена адна табліца, яна спампоўваецца як адзін файл. Некалькі табліц даюць архіў ZIP з адным файлам на кожную табліцу.
+
+## Параметры
+
+- **Фармат экспарту**: выбар паміж:
+ - **CSV**: значэнні праз коску з правільным выкарыстаннем двукоссяў для палёў, што ўтрымліваюць коскі, двукоссі або пераносы радкоў. Падыходзіць для электронных табліц і баз даных.
+ - **JSON**: структура «масіў масіваў», адфарматаваная з водступам у 2 прабелы. Падыходзіць для праграмнай апрацоўкі.
+ - **Markdown**: фармат табліц з раздзяляльнікамі `|`, які стварае PyMuPDF. Падыходзіць для дакументацыі і файлаў README.
+
+## Фармат выніку
+
+- **Адна табліца**: `filename_table.csv` (або `.json` / `.md`)
+- **Некалькі табліц**: `filename_tables.zip` з файламі `table_1_page3.csv`, `table_2_page5.csv` і г. д.
+
+## Сцэнарыі выкарыстання
+
+- Выманне пэўных табліц з аб'ёмных справаздач PDF без вымання даных усяго дакумента.
+- Атрыманне табліц у фармаце Markdown, каб устаўляць іх непасрэдна ў issues на 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)
diff --git a/docs/be/tools/fb2-to-pdf.md b/docs/be/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..b5c727f3
--- /dev/null
+++ b/docs/be/tools/fb2-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/fix-page-size.md b/docs/be/tools/fix-page-size.md
new file mode 100644
index 00000000..eb01cfe2
--- /dev/null
+++ b/docs/be/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Уніфікаваць памер старонак
+description: Прывядзіце ўсе старонкі PDF да аднаго памеру. Выбірайце стандартныя памеры паперы або задавайце ўласныя.
+---
+
+# Уніфікаваць памер старонак
+
+PDF, сабраныя з розных крыніц, часта маюць старонкі рознага памеру: адны Letter, іншыя A4, а некаторыя зусім нестандартныя. Гэты інструмент прыводзіць кожную старонку да аднаго мэтавага памеру, маштабуючы змесціва так, каб яно ўмяшчалася або запаўняла старонку.
+
+## Як гэта працуе
+
+1. Запампуйце файл PDF.
+2. Выберыце **Мэтавы памер старонкі** у спісе (A4, Letter, Legal, A3, A5, Tabloid або ўласны).
+3. Выберыце **Арыентацыю**: «Аўта» захоўвае арыгінальную арыентацыю кожнай старонкі, або можна прымусова задаць кніжную ці альбомную.
+4. Выберыце рэжым **Маштабавання змесціва**: «Умясціць» (захоўвае ўсё змесціва, можа дадаць палі) або «Запоўніць» (запаўняе старонку, можа абрэзаць краі).
+5. Пры жаданні задайце **Колер фону** для дададзеных палёў.
+6. Націсніце **Уніфікаваць памер старонак**.
+
+## Параметры
+
+- **Стандартныя памеры**: A4, Letter, Legal, A3, A5, Tabloid
+- **Уласныя памеры**: увядзіце шырыню і вышыню ў цалях або міліметрах
+- **Арыентацыя**: аўта, кніжная, альбомная
+- **Рэжым маштабавання**: «Умясціць» або «Запоўніць» (абрэзка)
+- **Колер фону**: любы колер для запаўнення палёў
+
+## Сцэнарыі выкарыстання
+
+- Нармалізацыя аб'яднанага PDF, старонкі якога атрыманы з розных сканераў
+- Пераўтварэнне дакумента US Letter у A4 для міжнароднага распаўсюджвання
+- Падрыхтоўка PDF да друку, дзе патрэбны аднолькавы фармат
+- Выпраўленне старонак, якія крыху адхіляюцца ад стандарту (напрыклад, 8.49 x 11.02 цаля замест 8.5 x 11)
+
+## Парады
+
+- Выкарыстоўвайце рэжым «Умясціць», каб гарантавана не страціць змесціва. Рэжым «Запоўніць» выглядае акуратней, але можа абрэзаць краі.
+- Праверце вынік інструментам «Памеры старонкі», каб пераканацца, што кожная старонка адпавядае мэтаваму памеру.
+- Колер фону па змаўчанні белы; выберыце цёмны колер, калі ў дакумента цёмныя палі.
+
+## Звязаныя інструменты
+
+- [Памеры старонкі](./page-dimensions): праверка памераў старонак да і пасля выпраўлення
+- [Сціснуць PDF](./compress-pdf): памяншэнне памеру файла пасля ўніфікацыі
+- [Абрэзаць PDF](./crop-pdf): ручная абрэзка старонак замест аўтамаштабавання
diff --git a/docs/be/tools/flatten-pdf.md b/docs/be/tools/flatten-pdf.md
new file mode 100644
index 00000000..a5f79272
--- /dev/null
+++ b/docs/be/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Звесці PDF
+description: Звядзіце інтэрактыўныя формы і анатацыі ў статычнае змесціва. Палі формы становяцца нерэдагаванымі, а анатацыі ўпякаюцца ў старонку.
+---
+
+# Звесці PDF
+
+Зводжанне ўбудоўвае інтэрактыўныя элементы (палі формы, выпадальныя спісы, сцяжкі, анатацыі, вылучэнні, нататкі) непасрэдна ў змесціва старонкі. Выгляд застаецца ранейшым, але нічога больш нельга рэдагаваць або выняць. Гэта аналаг друку запоўненай формы і яе сканавання назад, толькі якасць застаецца ідэальнай.
+
+## Як гэта працуе
+
+1. Запампуйце адзін або некалькі файлаў PDF.
+2. Націсніце **Звесці PDF**.
+3. Адзін файл спампоўваецца адразу. Некалькі файлаў ствараюць архіў ZIP.
+
+Інструмент выкарыстоўвае pdf-lib для зводжання палёў формы (праз `form.flatten()`) і асобны модуль, які ўпякае анатацыі ў паток старонкі. Абедзве аперацыі выконваюцца за адзін праход.
+
+## Што зводзіцца
+
+- **Палі формы**: тэкставыя палі, сцяжкі, перамыкачы, выпадальныя спісы, палі подпісу
+- **Анатацыі**: каментарыі, вылучэнні, закрэсліванне, падкрэсліванне, нататкі, штампы, рукапісныя анатацыі
+- **Інтэрактыўныя элементы**: кнопкі, трыгеры дзеянняў
+
+## Што застаецца без змен
+
+- Тэкставае змесціва (застаецца даступным для вылучэння і пошуку)
+- Відарысы і графіка
+- Макет і памеры старонак
+- Закладкі і змест
+- Гіперспасылкі (калі яны не з'яўляюцца анатацыямі)
+
+## Сцэнарыі выкарыстання
+
+- Блакіроўка запоўненай формы, каб атрымальнікі не маглі змяніць адказы
+- Падрыхтоўка PDF да архівавання, калі інтэрактыўныя элементы не патрэбныя
+- Выпраўленне праблем адлюстравання, калі анатацыі выглядаюць па-рознаму ў розных праглядальніках
+- Гарантыя таго, што падпісаны дакумент нельга змяніць пасля подпісу
+- Памяншэнне памеру файла за кошт выдалення азначэнняў палёў формы і аб'ектаў анатацый
+
+## Парады
+
+- Зводзьце пасля завяршэння ўсіх правак. Адмяніць зводжанне PDF немагчыма.
+- Калі трэба звесці і адначасова выдаліць метаданыя, JavaScript і далучэнні, выкарыстоўвайце інструмент «Ачысціць PDF»: зводжанне ўваходзіць у яго параметры.
+- Некаторыя PDF паведамляюць «форма не знойдзена». Гэта нармальна, калі ў дакуменце ёсць толькі анатацыі без палёў формы.
+
+## Звязаныя інструменты
+
+- [Ачысціць PDF](./sanitize-pdf): зводжанне формаў плюс выдаленне метаданых, скрыптоў і іншага
+- [Растарызаваць PDF](./rasterize-pdf): пераўтварэнне ў PDF на аснове відарысаў для максімальнага зводжання
+- [Шрыфт у контуры](./font-to-outline): пераўтварэнне шрыфтоў у вектарныя контуры
+- [Зашыфраваць PDF](./protect-pdf): абарона зведзенага PDF паролем
diff --git a/docs/be/tools/font-to-outline.md b/docs/be/tools/font-to-outline.md
new file mode 100644
index 00000000..671a2f49
--- /dev/null
+++ b/docs/be/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Шрыфт у контуры
+description: Пераўтварыце ўсе шрыфты PDF у вектарныя контуры для аднолькавага адлюстравання на ўсіх прыладах. Пазбаўляе ад залежнасці ад шрыфтоў.
+---
+
+# Шрыфт у контуры
+
+Пераўтварэнне шрыфтоў у контуры ператварае кожны сімвал тэксту з гліфа шрыфту ў вектарны контур. PDF больш не залежыць ад усталяваных шрыфтоў: ён выглядае аднолькава на любой прыладзе, аперацыйнай сістэме і прынтары. Гэта стандартны этап дадрукарскай падрыхтоўкі.
+
+## Як гэта працуе
+
+1. Запампуйце адзін або некалькі файлаў PDF.
+2. Націсніце **Пераўтварыць у контуры**.
+3. Ghostscript пераўтварае ўвесь тэкст у вектарныя контуры.
+4. Спампуйце вынік. Некалькі файлаў ствараюць архіў ZIP.
+
+Наладжваць нічога не трэба. Інструмент выкарыстоўвае Ghostscript (WebAssembly), каб пераўтварыць усе спасылкі на шрыфты ў контуры за адзін праход.
+
+## Што змяняецца
+
+- Сімвалы тэксту становяцца вектарнымі крывымі (крывыя Безье)
+- Убудоўванне шрыфтоў больш не патрэбнае: PDF самадастатковы на ўзроўні гліфаў
+- Памер файла можа павялічыцца, бо вектарныя контуры звычайна займаюць больш, чым спасылкі на шрыфты
+- Выгляд захоўваецца дакладна
+
+## Што вы губляеце
+
+- Вылучэнне і капіраванне тэксту
+- Пошук па тэксце (Ctrl+F перастае працаваць)
+- Магчымасць рэдагаваць тэкст
+- Даступнасць для чытачоў экрана
+
+## Сцэнарыі выкарыстання
+
+- Адпраўка PDF у друкарню, якая патрабуе шрыфтоў у контурах
+- Абмен дакументамі з уласнымі або ліцэнзаванымі шрыфтамі з людзьмі, у якіх гэтых шрыфтоў няма
+- Прадухіленне замены шрыфтоў, якая змяняе выгляд дакумента ў іншых сістэмах
+- Падрыхтоўка PDF для лазернай гравіроўкі або ЧПУ-рэзкі, дзе патрэбны вектарныя дадзеныя
+- Карэктнае адлюстраванне PDF з вялікай колькасцю лагатыпаў на ўсіх платформах
+
+## Парады
+
+- Захоўвайце арыгінальны PDF. Пераўтварэнне ў контуры незваротнае: контуры нельга вярнуць у рэдагаваны тэкст.
+- Калі тэкст павінен заставацца даступным для пошуку, разгледзьце інструмент «Растарызаваць PDF» з наступным OCR.
+- PDF з контурамі звычайна большыя. Пасля пераўтварэння запусціце «Сціснуць PDF», калі важны памер файла.
+
+## Звязаныя інструменты
+
+- [Звесці PDF](./flatten-pdf): зводжанне формаў і анатацый без змены шрыфтоў
+- [Растарызаваць PDF](./rasterize-pdf): пераўтварэнне ў PDF на аснове відарысаў замест вектарных контураў
+- [Сціснуць PDF](./compress-pdf): памяншэнне памеру файла пасля пераўтварэння
+- [PDF у PDF/A](./pdf-to-pdfa): пераўтварэнне для архівавання пасля пазбаўлення ад залежнасці ад шрыфтоў
diff --git a/docs/be/tools/form-creator.md b/docs/be/tools/form-creator.md
new file mode 100644
index 00000000..a8d31407
--- /dev/null
+++ b/docs/be/tools/form-creator.md
@@ -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)
diff --git a/docs/be/tools/form-filler.md b/docs/be/tools/form-filler.md
new file mode 100644
index 00000000..0b2ff335
--- /dev/null
+++ b/docs/be/tools/form-filler.md
@@ -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)
diff --git a/docs/be/tools/header-footer.md b/docs/be/tools/header-footer.md
new file mode 100644
index 00000000..d0b81ddd
--- /dev/null
+++ b/docs/be/tools/header-footer.md
@@ -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-numbering)
diff --git a/docs/be/tools/heic-to-pdf.md b/docs/be/tools/heic-to-pdf.md
new file mode 100644
index 00000000..6a64a3bd
--- /dev/null
+++ b/docs/be/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC у PDF
+description: Пераўтварайце відарысы HEIC і HEIF з iPhone і iPad у фармат PDF непасрэдна ў браўзеры.
+---
+
+# HEIC у PDF
+
+Пераўтварайце відарысы HEIC/HEIF у PDF. HEIC з'яўляецца стандартным фарматам фота на iPhone і iPad пачынаючы з iOS 11. Гэты інструмент дазваляе ператварыць такія фота ў PDF без усталявання праграм на камп'ютар і без запампоўвання файлаў на сервер.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні |
+| :----- | :-------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць запампоўвання або перацягніце файлы HEIC/HEIF.
+2. Праверце спіс файлаў і выдаліце непатрэбныя.
+3. Націсніце **Пераўтварыць у PDF**. Вынік спампоўваецца як `from_heic.pdf`.
+
+Кожны файл HEIC дэкадуецца бібліятэкай heic2any, якая пераўтварае яго ў PNG з якасцю 92%. Потым PNG убудоўваецца ў PDF з дапамогай pdf-lib, кожны відарыс на асобнай старонцы ў поўным разрозненні.
+
+## Параметры
+
+Дадатковых налад няма. Відарысы HEIC пераўтвараюцца ў PNG з высокай якасцю (0.92) перад убудоўваннем.
+
+## Сцэнарыі выкарыстання
+
+- Стварэнне PDF з фота з iPhone для далучэння да страхавой заявы або справаздачы
+- Пераўтварэнне фота HEIC для аб'явы аб нерухомасці ў адзін дакумент для друку
+- Ператварэнне здымкаў экрана iPad (фармат HEIF) у PDF для абмену
+- Пакетнае пераўтварэнне фота з адпачынку для дзённіка падарожжаў
+
+## Парады
+
+- Дэкадаванне HEIC цалкам адбываецца ў браўзеры з дапамогай WebAssembly. Першае пераўтварэнне можа заняць крыху часу, пакуль загружаецца дэкодар.
+- Калі трэба спалучыць HEIC з іншымі фарматамі відарысаў (JPG, PNG і г.д.), выкарыстоўвайце інструмент [Відарысы ў PDF](./image-to-pdf), які апрацоўвае HEIC разам з усімі іншымі фарматамі.
+- Файлы HEIC з iPhone часта змяшчаюць даныя EXIF, у тым ліку каардынаты GPS. Выніковы PDF гэтыя метаданыя не захоўвае.
+
+## Звязаныя інструменты
+
+- [Відарысы ў PDF](./image-to-pdf)
+- [JPG у PDF](./jpg-to-pdf)
+- [PNG у PDF](./png-to-pdf)
diff --git a/docs/be/tools/image-to-pdf.md b/docs/be/tools/image-to-pdf.md
new file mode 100644
index 00000000..48fa7b95
--- /dev/null
+++ b/docs/be/tools/image-to-pdf.md
@@ -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
+- Стварэнне фотапартфоліо або лукбука з відарысаў розных фарматаў
+- Пераўтварэнне фота з iPhone (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)
diff --git a/docs/be/tools/index.md b/docs/be/tools/index.md
new file mode 100644
index 00000000..1ce9b303
--- /dev/null
+++ b/docs/be/tools/index.md
@@ -0,0 +1,183 @@
+# Даведнік па інструментах
+
+BentoPDF прапануе **больш за 130 інструментаў** для працы з PDF. Усе інструменты працуюць цалкам у вашым браўзеры: вашы файлы ніколі не пакідаюць прыладу.
+
+---
+
+## Рэдагаванне і анатацыі
+
+Змяняйце, размячайце і паляпшайце дакументы PDF з дапамогай поўнага набору інструментаў рэдагавання.
+
+
+
+- [**Рэдактар PDF**](./edit-pdf): анатацыі, вылучэнне, рэдакцыя, каментарыі, даданне фігур і відарысаў, пошук і прагляд PDF.
+- [**Рэдагаваць закладкі**](./bookmark): даданне, рэдагаванне, імпарт, выдаленне і выманне закладак PDF.
+- [**Змест**](./table-of-contents): стварэнне старонкі зместу з закладак PDF.
+- [**Нумары старонак**](./page-numbers): устаўка нумароў старонак у дакумент.
+- [**Дадаць пазнакі старонак**](./add-page-labels): пазнакі старонак PDF з рымскімі лічбамі, прэфіксамі і ўласным пачатковым нумарам.
+- [**Нумарацыя Бейтса**](./bates-numbering): паслядоўныя нумары Бейтса ў адным або некалькіх файлах 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): аўтаматычнае выяўленне і выдаленне пустых старонак.
+
+
+
+---
+
+## Пераўтварэнне ў PDF
+
+Ператварайце відарысы, дакументы, электронныя кнігі і іншыя фарматы файлаў у PDF.
+
+
+
+- [**Відарысы ў 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.
+- [**Email у PDF**](./email-to-pdf): пераўтварэнне файлаў электроннай пошты (EML, MSG) у фармат PDF.
+
+
+
+---
+
+## Пераўтварэнне з PDF
+
+Вымайце змесціва з PDF у відарысы, дакументы і фарматы даных.
+
+
+
+- [**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 (архіў коміксаў) для праграм чытання коміксаў і 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 для ШI**](./prepare-pdf-for-ai): выманне змесціва PDF у фармаце LlamaIndex JSON для канвеераў RAG/LLM.
+- [**PDF у тэкст**](./pdf-to-text): выманне тэксту з файлаў PDF і захаванне ў выглядзе звычайнага тэксту.
+- [**Выняць табліцы**](./extract-tables): выманне табліц з PDF у фарматы CSV, JSON або Markdown.
+
+
+
+---
+
+## Арганізацыя і кіраванне
+
+Пераўпарадкоўвайце, аб'ядноўвайце, дзяліце старонкі і файлы PDF і кіруйце імі.
+
+
+
+- [**Канструктар рабочага працэсу PDF**](./pdf-workflow): стварэнне ўласных канвеераў апрацоўкі PDF у візуальным рэдактары вузлоў.
+- [**Мультыінструмент PDF**](./pdf-multi-tool): поўнафункцыйны рэдактар PDF з кіраваннем старонкамі.
+- [**OCR PDF**](./ocr-pdf): PDF з магчымасцю пошуку і капіравання.
+- [**Аб'яднаць PDF**](./merge-pdf): аб'яднанне некалькіх PDF у адзін файл.
+- [**Чаргаваць і змяшаць старонкі**](./alternate-merge): аб'яднанне PDF з чаргаваннем старонак з кожнага файла.
+- [**Сартаванне двухбаковага сканавання**](./duplex-collate): пераўпарадкаванне блокаў сканаў пярэдняга і адваротнага бакоў у правільную паслядоўнасць.
+- [**Дубляваць і арганізаваць**](./organize-pdf): дубляванне, пераўпарадкаванне і выдаленне старонак.
+- [**Дадаць далучэнні**](./add-attachments): убудоўванне аднаго або некалькіх файлаў у PDF.
+- [**Выняць далучэнні**](./extract-attachments): выманне ўсіх убудаваных файлаў з PDF у ZIP.
+- [**Рэдагаваць далучэнні**](./edit-attachments): прагляд або выдаленне далучэнняў у PDF.
+- [**PDF OCG**](./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 побач.
+- [**Пераўтварыць у постэр**](./posterize-pdf): падзел вялікай старонкі на некалькі меншых.
+
+
+
+---
+
+## Аптымізацыя і аднаўленне
+
+Сціскайце, выпраўляйце і аптымізуйце PDF для лепшай прадукцыйнасці і сумяшчальнасці.
+
+
+
+- [**Сціснуць 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): пераўтварэнне ўсіх шрыфтоў у вектарныя контуры для аднолькавага адлюстравання.
+
+
+
+---
+
+## Бяспека PDF
+
+Абараняйце, шыфруйце і кіруйце доступам да дакументаў PDF.
+
+
+
+- [**Зашыфраваць 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): праверка лічбавых подпісаў і прагляд звестак пра сертыфікаты.
+
+
diff --git a/docs/be/tools/invert-colors.md b/docs/be/tools/invert-colors.md
new file mode 100644
index 00000000..e4db2c07
--- /dev/null
+++ b/docs/be/tools/invert-colors.md
@@ -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)
diff --git a/docs/be/tools/jpg-to-pdf.md b/docs/be/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..026721b3
--- /dev/null
+++ b/docs/be/tools/jpg-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/json-to-pdf.md b/docs/be/tools/json-to-pdf.md
new file mode 100644
index 00000000..1eed6b90
--- /dev/null
+++ b/docs/be/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON у PDF
+description: Аднаўляйце файлы PDF з фармату JSON BentoPDF. Пераўтварайце экспарты JSON назад у арыгінальныя дакументы PDF.
+---
+
+# JSON у PDF
+
+Аднаўляйце дакументы PDF з файлаў JSON, раней створаных інструментам BentoPDF **PDF у JSON**. Гэта інструмент зваротнага пераўтварэння: ён бярэ структураванае JSON-прадстаўленне PDF і аднаўляе арыгінальны дакумент.
+
+::: warning
+Гэты інструмент прымае толькі файлы JSON, створаныя канвертарам BentoPDF «PDF у JSON». Звычайныя файлы JSON з API, баз даных або іншых інструментаў не падтрымліваюцца.
+:::
+
+## Падтрымліваемыя фарматы
+
+| Уваход | Апісанне |
+| :------ | :----------------------------------------------------------- |
+| `.json` | Файлы JSON, экспартаваныя інструментам BentoPDF «PDF у JSON» |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць запампоўвання або перацягніце адзін або некалькі файлаў JSON.
+2. Спіс файлаў паказвае кожны выбраны файл з яго памерам.
+3. Націсніце **Пераўтварыць у PDF**. Інструмент апрацоўвае ўсе файлы з дапамогай Web Worker і рухавіка CPDF.
+4. Вынік спампоўваецца як `jsons-to-pdf.zip`, які змяшчае па адным PDF на кожны ўваходны файл JSON.
+
+Пераўтварэнне выконваецца ў фонавым 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)
diff --git a/docs/be/tools/linearize-pdf.md b/docs/be/tools/linearize-pdf.md
new file mode 100644
index 00000000..c26bb6f3
--- /dev/null
+++ b/docs/be/tools/linearize-pdf.md
@@ -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): ачыстка метаданых перад публікацыяй
diff --git a/docs/be/tools/markdown-to-pdf.md b/docs/be/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..086b5241
--- /dev/null
+++ b/docs/be/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown у PDF
+description: Пішыце або ўстаўляйце Markdown і экспартуйце яго ў прафесійна адфарматаваны PDF з жывым перадпраглядам і падсветкай сінтаксісу.
+---
+
+# Markdown у PDF
+
+Поўнафункцыйны рэдактар Markdown з жывым перадпраглядам і экспартам у PDF адным націскам. Пішыце з нуля, запампуйце існуючы файл `.md` або ўстаўце змесціва з буфера абмену. Рэдактар паказвае ваш Markdown у рэальным часе і экспартуе стыльны PDF праз убудаваны механізм друку браўзера.
+
+## Падтрымліваемыя фарматы
+
+| Уваход | Апісанне |
+| :-------------- | :---------------------------------- |
+| Файлы `.md` | Запампоўванне кнопкай «Запампаваць» |
+| Непасрэдны ўвод | Увядзіце або ўстаўце ў рэдактар |
+
+## Як гэта працуе
+
+1. Адкрыйце інструмент «Markdown у PDF». Рэдактар загружаецца ў падзеленым выглядзе: зыходны Markdown злева, перадпрагляд справа.
+2. Пішыце Markdown, устаўце яго або націсніце **Запампаваць**, каб загрузіць файл `.md`.
+3. Пераключайцеся паміж светлай і цёмнай тэмамі паўзунком тэмы на панэлі інструментаў.
+4. Націсніце **Экспартаваць PDF** (або `Ctrl/Cmd + S`), каб стварыць PDF праз дыялог друку браўзера.
+
+## Магчымасці
+
+Рэдактар падтрымлівае шырокі набор магчымасцей Markdown, акрамя базавых:
+
+- **Стандартны Markdown**: загалоўкі, тлусты шрыфт, курсіў, спасылкі, відарысы, спісы, цытаты, гарызантальныя лініі
+- **Блокі кода** з падсветкай сінтаксісу для больш чым 15 моў (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash і іншыя)
+- **Дыяграмы Mermaid**: блок-схемы, дыяграмы паслядоўнасці, ER-дыяграмы і іншыя тыпы дыяграм Mermaid паказваюцца непасрэдна ў перадпраглядзе
+- **Табліцы** са стандартным сінтаксісам табліц Markdown
+- **Спісы задач** са сцяжкамі
+- **Зноскі**, **ніжні індэкс**, **верхні індэкс**
+- **Спісы азначэнняў**, **абрэвіятуры**
+- Падтрымка **эмодзі** (`:smile:` паказваецца як эмодзі)
+- **Вылучэнні** (`==marked text==`) і **ўстаўкі** (`++inserted text++`)
+- **Аўтаспасылкі**: звычайныя 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)
diff --git a/docs/be/tools/merge-pdf.md b/docs/be/tools/merge-pdf.md
new file mode 100644
index 00000000..99efb6fc
--- /dev/null
+++ b/docs/be/tools/merge-pdf.md
@@ -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)
diff --git a/docs/be/tools/mobi-to-pdf.md b/docs/be/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..317d1d20
--- /dev/null
+++ b/docs/be/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI у PDF
+description: Пераўтварайце электронныя кнігі MOBI у PDF непасрэдна ў браўзеры. Бясплатна, прыватна, без запампоўвання файлаў.
+---
+
+# MOBI у PDF
+
+Пераўтварайце электронныя кнігі Amazon Kindle MOBI у дакументы PDF. Файлы MOBI прывязаныя да прылад і праграм Kindle, таму іх складана чытаць у іншых месцах. Пераўтварэнне ў PDF дае партатыўную версію, якую можна адкрыць на любой прыладзе або надрукаваць.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :----- | :-------- | :------------------------------------------ |
+| MOBI | `.mobi` | Фармат электронных кніг Kindle (Mobipocket) |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць запампоўвання або перацягніце адзін або некалькі файлаў MOBI.
+2. Праверце спіс файлаў. Выдаліце непатрэбныя файлы значком сметніцы або выкарыстоўвайце **Дадаць яшчэ файлы**, каб дадаць іншыя кнігі.
+3. Націсніце **Пераўтварыць у PDF**. Рухавік PyMuPDF разбірае структуру MOBI і выводзіць кожную старонку як змесціва PDF.
+4. Адзін файл спампоўваецца як PDF. Пры пераўтварэнні некалькіх файлаў вы атрымаеце архіў ZIP з назвай `mobi-converted.zip`.
+
+## Параметры
+
+Дадатковыя налады не патрэбныя. Пераўтварэнне захоўвае тэкст, фарматаванне і ўбудаваныя відарысы з арыгінальнага файла MOBI.
+
+## Сцэнарыі выкарыстання
+
+- Чытанне набытага ў Kindle змесціва на іншай чытанцы, якая падтрымлівае толькі PDF
+- Друк раздзелаў электроннай кнігі для афлайн-вывучэння або нататак
+- Архіваванне асабістай бібліятэкі электронных кніг ва ўніверсальным фармаце
+- Абмен урыўкамі з чалавекам, у якога не ўсталявана праграма Kindle
+
+## Парады
+
+- Файлы MOBI з абаронай DRM нельга пераўтварыць. Інструмент працуе толькі з файламі MOBI без DRM.
+- Вялікія кнігі з мноствам відарысаў могуць апрацоўвацца на некалькі секунд даўжэй, бо ўсё адбываецца ў браўзеры.
+
+## Звязаныя інструменты
+
+- [EPUB у PDF](./epub-to-pdf)
+- [FB2 у PDF](./fb2-to-pdf)
+- [CBZ у PDF](./cbz-to-pdf)
diff --git a/docs/be/tools/n-up-pdf.md b/docs/be/tools/n-up-pdf.md
new file mode 100644
index 00000000..68765b19
--- /dev/null
+++ b/docs/be/tools/n-up-pdf.md
@@ -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 і больш.
+- Павелічэнне адступу паляпшае чытэльнасць, але памяншае даступную плошчу для кожнай старонкі.
+- Для адваротнай аперацыі (падзел адной старонкі на некалькі) гл. [Пераўтварыць у постэр](./posterize-pdf).
+
+## Звязаныя інструменты
+
+- [Пераўтварыць у постэр](./posterize-pdf)
+- [Буклет PDF](./pdf-booklet)
+- [Аб'яднаць у адну старонку](./combine-single-page)
diff --git a/docs/be/tools/ocr-pdf.md b/docs/be/tools/ocr-pdf.md
new file mode 100644
index 00000000..bdac3e38
--- /dev/null
+++ b/docs/be/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Зрабіце сканаваныя PDF даступнымі для пошуку і капіравання з дапамогай Tesseract OCR з падтрымкай некалькіх моў і фільтрацыяй сімвалаў.
+---
+
+# OCR PDF
+
+Ператварайце сканаваныя дакументы ў PDF з пошукам і капіраваннем. Інструмент выкарыстоўвае Tesseract OCR для распазнавання тэксту на відарысах і накладае нябачны тэкставы пласт на арыгінальныя старонкі, захоўваючы іх выгляд і робячы змесціва цалкам даступным для пошуку.
+
+## Як гэта працуе
+
+1. Запампуйце сканаваны PDF або PDF на аснове відарысаў.
+2. Выберыце адну або некалькі моў дакумента ў спісе моў з пошукам.
+3. Пры жаданні змяніце пашыраныя налады (разрозненне, бінарызацыя, белы спіс).
+4. Націсніце **Пачаць OCR** і сачыце за ходам па індыкатары ў рэальным часе.
+5. Пасля завяршэння праглядзіце атрыманы тэкст і спампуйце PDF з пошукам або звычайны файл `.txt`.
+
+## Магчымасці
+
+- OCR на некалькіх мовах з пошукам у выбары моў
+- Нябачны тэкставы пласт захоўвае арыгінальны выгляд дакумента
+- Індыкатар ходу і журнал у рэальным часе падчас апрацоўкі
+- Спампоўванне вынікаў як PDF з пошукам або звычайнага тэкставага файла
+- Капіраванне вынятага тэксту непасрэдна ў буфер абмену
+- Тры ўзроўні разрознення для балансу паміж хуткасцю і дакладнасцю
+
+## Параметры
+
+| Налада | Значэнні | Па змаўчанні | Прызначэнне |
+| -------------------------------- | ----------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------------- |
+| **Разрозненне** | Стандартнае (192 DPI), Высокае (288 DPI), Ультра (384 DPI) | Высокае | Больш высокае разрозненне павышае дакладнасць на дробным тэксце, але займае больш часу |
+| **Бінарызаваць відарыс** | Укл. / Выкл. | Выкл. | Павышае кантраст чыстых сканаў, пераўтвараючы іх у чорна-белыя |
+| **Шаблон белага спіса сімвалаў** | Няма, Літары і лічбы, Лічбы + валюта, Толькі літары, Толькі лічбы, Рахунак, Формы, Уласны | Няма | Абмяжоўвае распазнаваныя сімвалы для павышэння дакладнасці на пэўных тыпах дакументаў |
+| **Белы спіс сімвалаў** | Адвольны тэкст | Пуста | Ручны набор сімвалаў, калі выбраны шаблон «Уласны» |
+
+## Сцэнарыі выкарыстання
+
+- Пошук па сканаваных дагаворах і рахунках з дапамогай Ctrl+F
+- Выманне тэксту з сфатаграфаваных дакументаў або старых папяровых запісаў
+- Апрацоўка чэкаў з шаблонам «Рахунак» для дакладнага распазнавання сум у доларах і дат
+- Стварэнне даступных PDF са сканаў, якія складаюцца толькі з відарысаў, для выканання патрабаванняў
+- Пакетнае выманне тэксту са сканаваных кніг або інструкцый
+
+## Парады
+
+- Выберыце некалькі моў, калі дакумент змяшчае тэкст на розных мовах (напрыклад, англійскія загалоўкі і асноўны тэкст на японскай).
+- Выкарыстоўвайце бінарызацыю для дакументаў з выцвілым або малакантрасным тэкстам: яна можа значна павысіць дакладнасць распазнавання.
+- Шаблоны белага спіса «Рахунак» і «Формы» значна памяншаюць колькасць ілжывых спрацоўванняў на структураваных дакументах, ігнаруючы непатрэбныя формы сімвалаў.
+
+## Звязаныя інструменты
+
+- [Выняць табліцы](./extract-tables)
+- [Аб'яднаць PDF](./merge-pdf)
+- [Сціснуць PDF](./compress-pdf)
diff --git a/docs/be/tools/odg-to-pdf.md b/docs/be/tools/odg-to-pdf.md
new file mode 100644
index 00000000..b75940df
--- /dev/null
+++ b/docs/be/tools/odg-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/odp-to-pdf.md b/docs/be/tools/odp-to-pdf.md
new file mode 100644
index 00000000..7eadb065
--- /dev/null
+++ b/docs/be/tools/odp-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/ods-to-pdf.md b/docs/be/tools/ods-to-pdf.md
new file mode 100644
index 00000000..30604cdc
--- /dev/null
+++ b/docs/be/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS у PDF
+description: Пераўтварайце электронныя табліцы LibreOffice Calc (ODS) у PDF у браўзеры. Бясплатна, прыватна, без рэгістрацыі.
+---
+
+# ODS у PDF
+
+Пераўтварайце файлы OpenDocument Spreadsheet у PDF. ODS з'яўляецца ўласным фарматам LibreOffice Calc і распаўсюджаным фарматам экспарту з Google Sheets. Гэты інструмент ператварае даныя, фарматаванне і дыяграмы вашай табліцы ў PDF са старонкамі, які можна надрукаваць або адправіць.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :----------------------- | :-------- | :----------------------------------------- |
+| OpenDocument Spreadsheet | `.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)
diff --git a/docs/be/tools/odt-to-pdf.md b/docs/be/tools/odt-to-pdf.md
new file mode 100644
index 00000000..41d97fd9
--- /dev/null
+++ b/docs/be/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT у PDF
+description: Пераўтварайце файлы OpenDocument Text (ODT) у PDF у браўзеры з дапамогай рухавіка на аснове LibreOffice.
+---
+
+# ODT у PDF
+
+Пераўтварайце файлы OpenDocument Text у PDF. ODT з'яўляецца ўласным фарматам LibreOffice Writer, Apache OpenOffice і іншых тэкставых рэдактараў з адкрытым кодам. Гэты інструмент выкарыстоўвае рухавік LibreOffice у браўзеры для дакладнага пераўтварэння з захаваннем фарматавання, табліц, відарысаў і стыляў.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні |
+| :---------------- | :-------- |
+| OpenDocument Text | `.odt` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце адзін ці некалькі файлаў ODT.
+2. Праверце спіс файлаў. Дадайце яшчэ файлы або выдаліце непатрэбныя.
+3. Націсніце **Пераўтварыць у PDF**. Рухавік LibreOffice ініцыялізуецца (індыкатар паказвае ход загрузкі), затым кожны файл пераўтвараецца.
+4. Адзін файл спампоўваецца непасрэдна як PDF. Некалькі файлаў пакуюцца ў `odt-converted.zip`.
+
+## Налады
+
+У гэтага інструмента няма дадатковых налад. Пераўтварэнне як мага дакладней захоўвае фарматаванне арыгінальнага дакумента.
+
+## Вынік
+
+| Колькасць файлаў | Вынік |
+| :--------------- | :-------------------------------------------------------- |
+| 1 файл | Адзін PDF (напрыклад, `document.pdf`) |
+| 2+ файлы | Архіў 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)
diff --git a/docs/be/tools/organize-pdf.md b/docs/be/tools/organize-pdf.md
new file mode 100644
index 00000000..ba040508
--- /dev/null
+++ b/docs/be/tools/organize-pdf.md
@@ -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)
diff --git a/docs/be/tools/page-dimensions.md b/docs/be/tools/page-dimensions.md
new file mode 100644
index 00000000..a87ca1c9
--- /dev/null
+++ b/docs/be/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Памеры старонкі
+description: Аналізуйце памеры, арыентацыю, суадносіны бакоў і паварот старонак PDF. Выяўляйце дакументы са змешанымі памерамі і экспартуйце даныя ў CSV.
+---
+
+# Памеры старонкі
+
+Дыягнастычны інструмент, які чытае кожную старонку PDF і паказвае яе дакладныя памеры, арыентацыю, назву стандартнага фармату, суадносіны бакоў, плошчу і паварот. Карысны, каб заўважыць старонкі розных памераў перад друкам або задакументаваць уласцівасці атрыманага PDF.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF. Аналіз пачынаецца аўтаматычна, націскаць кнопку не трэба.
+2. Панэль зводкі паказвае колькасць старонак, колькасць унікальных памераў і ці ёсць у дакуменце змешаныя памеры.
+3. Праглядзіце поўную табліцу вынікаў з падрабязнасцямі па кожнай старонцы.
+4. Пераключайце адзінкі паміж пунктамі, цалямі, міліметрамі і пікселямі.
+5. Націсніце **Экспарт у CSV**, каб захаваць даныя.
+
+## Палі справаздачы
+
+| Слупок | Апісанне |
+| ----------------- | ------------------------------------------------- |
+| Старонка № | Паслядоўны нумар старонкі |
+| Памеры | Шырыня x Вышыня ў выбраных адзінках |
+| Стандартны фармат | Знойдзеная назва (A4, Letter і г.д.) або «Уласны» |
+| Арыентацыя | Кніжная або альбомная |
+| Суадносіны бакоў | Адносіны шырыні да вышыні ў выглядзе дробу |
+| Плошча | Плошча старонкі ў квадратных выбраных адзінках |
+| Паварот | Паварот старонкі ў градусах |
+
+## Магчымасці
+
+- Аўтаматычнае вызначэнне стандартных фарматаў паперы (A3, A4, A5, Letter, Legal, Tabloid і іншыя)
+- Папярэджанне пра змешаныя памеры з разбіўкай, якія памеры ёсць і колькі старонак кожнага
+- Пераўтварэнне адзінак паміж пунктамі, цалямі, міліметрамі і пікселямі (пры 96 PPI)
+- Экспарт у CSV для электронных табліц або сістэм дакументацыі
+
+## Сцэнарыі выкарыстання
+
+- Праверка, што ўсе старонкі A4, перад адпраўкай дакумента ў друкарню
+- Высвятленне, чаму аб'яднаны PDF друкуецца з нечаканымі палямі на некаторых старонках
+- Дакументаванне макета старонак вялікага архіва PDF для запісаў метаданых
+- Пошук павернутых старонак, якія трэба выправіць
+
+## Парады
+
+- Калі зводка паказвае «Змешаныя памеры», выкарыстайце інструмент «Уніфікаваць памер старонак» перад друкам.
+- Поле павароту дапамагае знайсці старонкі, якія адлюстроўваюцца правільна, але маюць ненулявы атрыбут павароту, што можа выклікаць праблемы ў некаторых працэсах.
+
+## Звязаныя інструменты
+
+- [Уніфікаваць памер старонак](./fix-page-size): выраўноўвае старонкі пасля выяўлення змешаных памераў
+- [Сціснуць PDF](./compress-pdf): аптымізуе PDF пасля выпраўлення старонак
+- [Павярнуць PDF](./rotate-pdf): выпраўляе павернутыя старонкі
diff --git a/docs/be/tools/page-numbers.md b/docs/be/tools/page-numbers.md
new file mode 100644
index 00000000..b4c616af
--- /dev/null
+++ b/docs/be/tools/page-numbers.md
@@ -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-numbering)
+- [Верхні і ніжні калантытул](./header-footer)
diff --git a/docs/be/tools/pdf-booklet.md b/docs/be/tools/pdf-booklet.md
new file mode 100644
index 00000000..547dcaa3
--- /dev/null
+++ b/docs/be/tools/pdf-booklet.md
@@ -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)
diff --git a/docs/be/tools/pdf-layers.md b/docs/be/tools/pdf-layers.md
new file mode 100644
index 00000000..109f63be
--- /dev/null
+++ b/docs/be/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: PDF OCG
+description: Праглядайце, пераключайце, дадавайце і выдаляйце пласты Optional Content Group (OCG) у дакуменце PDF.
+---
+
+# PDF OCG
+
+Кіруйце групамі дадатковага змесціва (OCG), якія звычайна называюць «пластамі», у PDF. Можна пераключаць бачнасць пластоў, дадаваць новыя пласты (у тым ліку ўкладзеныя даччыныя), выдаляць пласты і захоўваць змены ў PDF.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Націсніце кнопку апрацоўкі, каб загрузіць дакумент рухавіком PyMuPDF.
+3. Інструмент паказвае ўсе існуючыя пласты з іх бачнасцю, станам блакіроўкі і іерархіяй укладзенасці.
+4. Адзначайце сцяжкі, каб паказаць або схаваць пласты. Заблакіраваныя пласты пераключыць нельга.
+5. Дадавайце новыя пласты верхняга ўзроўню, увёўшы назву і націснуўшы кнопку дадавання, або даччыныя пласты пад існуючым бацькоўскім.
+6. Выдаляйце непатрэбныя пласты.
+7. Націсніце **Захаваць**, каб спампаваць PDF са змененымі пластамі.
+
+## Магчымасці
+
+- Іерархія пластоў з адступамі для ўкладзеных пластоў
+- Уключэнне і выключэнне бачнасці пластоў
+- Індыкатар блакіроўкі абараняе ад выпадковых змен
+- Дадаванне пластоў верхняга ўзроўню або даччыных з уласнымі назвамі
+- Выдаленне асобных пластоў
+- Захаванне ўсіх змен у новы файл PDF
+
+## Сцэнарыі выкарыстання
+
+- Пераключэнне бачнасці пластоў з разметкай у архітэктурных або інжынерных чарцяжах
+- Дадаванне новых пластоў анатацый у шматпластавы дызайнерскі дакумент
+- Выдаленне састарэлых пластоў з шаблона перад распаўсюджваннем
+- Праверка, якія пласты ёсць у складаным PDF, атрыманым ад іншага боку
+
+## Парады
+
+- Калі ў PDF няма пластоў, інструмент паказвае пусты стан з прапановай дадаць пласт. Не ўсе PDF выкарыстоўваюць пласты OCG: часцей за ўсё яны сустракаюцца ў экспарце з CAD і дызайнерскіх файлах.
+- Даччыныя пласты паказваюцца з адступам пад бацькоўскім. Укладваць пласты можна на любую глыбіню.
+- Заблакіраваныя пласты паказваюцца са значком замка, а іх сцяжкі неактыўныя. Гэтыя блакіроўкі задае стваральнік PDF.
+
+## Звязаныя інструменты
+
+- [Праглядзець метаданыя](./view-metadata)
+- [Рэдагаваць метаданыя](./edit-metadata)
+- [Дубляваць і арганізаваць](./organize-pdf)
diff --git a/docs/be/tools/pdf-multi-tool.md b/docs/be/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..e4fd82c1
--- /dev/null
+++ b/docs/be/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Мультыінструмент PDF
+description: Універсальны арганайзер старонак для аб'яднання, падзелу, павароту, дублявання, выдалення, змены парадку і памеру старонак PDF.
+---
+
+# Мультыінструмент PDF
+
+Адзінае працоўнае асяроддзе для ўсіх аперацый са старонкамі PDF. Загрузіце адзін ці некалькі PDF і працуйце з усімі старонкамі ў адной візуальнай сетцы. Паварочвайце, пераўпарадкоўвайце, дублюйце і выдаляйце старонкі, устаўляйце PDF, выявы і пустыя старонкі, змяняйце нумарацыю і памер старонак і дзяліце вынік, не пакідаючы інструмента.
+
+## Як гэта працуе
+
+1. Націсніце **Выбраць файлы** або перацягніце файлы ў вобласць загрузкі. Падтрымліваецца некалькі файлаў, яны аб'ядноўваюцца ў парадку загрузкі.
+2. Усе старонкі з'яўляюцца ў сетцы мініяцюр з пракруткай.
+3. Націсніце на старонку, каб вылучыць яе. Каб вылучыць дыяпазон, націскайце з Shift, а каб дадаць або прыбраць асобныя старонкі, націскайце з Cmd/Ctrl.
+4. Выкарыстоўвайце панэль інструментаў арганайзера або націсніце на старонку правай кнопкай мышы, каб адкрыць дзеянні са старонкай.
+5. Націсніце **Экспартаваць PDF**, каб спампаваць канчатковы вынік.
+
+## Магчымасці
+
+- **Аб'яднанне**: загрузіце некалькі PDF і выяў, і яны аўтаматычна аб'яднаюцца ў адзін дакумент
+- **Змяненне парадку**: перацягвайце старонкі, каб змяніць паслядоўнасць, або перавярніце парадак усяго дакумента
+- **Паварот**: паварочвайце вылучаныя старонкі ўлева або ўправа з крокам 90 градусаў
+- **Дубляванне**: капіруйце вылучаныя старонкі і змяшчайце копіі адразу пасля іх
+- **Выдаленне**: выдаляйце вылучаныя старонкі
+- **Устаўка**: дадавайце старонкі з іншага PDF або выявы, пустую старонку, старонкі з буфера абмену або чаргуйце старонкі другога PDF з бягучымі
+- **Замена**: замяняйце старонку першай старонкай іншага PDF
+- **Выразаць, капіраваць і ўставіць**: перамяшчайце або капіруйце старонкі ўнутры дакумента
+- **Выманне**: спампоўвайце вылучаныя старонкі як PDF або як выявы
+- **Нумары старонак**: задавайце для дыяпазону старонак меткі, напрыклад i, ii, iii або A-1, A-2
+- **Памер старонкі**: падганяйце старонкі пад стандартны фармат паперы або адвольны памер
+- **Падзел**: дзяліце дакумент па дыяпазонах старонак, на няцотныя і цотныя старонкі, па кожнай старонцы, па закладках, кожныя N старонак або па памеры файла
+- **Адрабіць / Паўтарыць**: кожную аперацыю са старонкамі можна адмяніць і паўтарыць
+- Аўтаматычнае аднаўленне пашкоджаных PDF перад загрузкай
+
+## Спалучэнні клавіш
+
+| Дзеянне | Спалучэнне клавіш |
+| ------------------------------ | ------------------------------- |
+| Павярнуць управа / улева | R / Shift+R |
+| Вылучыць усё | Cmd/Ctrl+A |
+| Выразаць, капіраваць, уставіць | Cmd/Ctrl+X, C, V |
+| Дубляваць | Cmd/Ctrl+D |
+| Выдаліць | Delete або Backspace |
+| Адрабіць / Паўтарыць | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Перамясціць вылучэнне | Клавішы са стрэлкамі, Home, End |
+
+## Сцэнарыі выкарыстання
+
+- Стварэнне ўласнага дакумента са старонак некалькіх зыходных PDF
+- Ачыстка сканаванага дакумента: выдаленне пустых старонак, паварот бакавых сканаў і змяненне парадку раздзелаў
+- Падзел вялікага PDF па межах раздзелаў з дапамогай яго закладак
+- Хуткае рэдагаванне старонак без поўнага рэдактара PDF
+
+## Парады
+
+- Гісторыя адмены і паўтору адсочвае кожную аперацыю са старонкамі. Карыстайцеся ёй смела: выпадкова знішчыць сваю працу не атрымаецца.
+- Каб дадаць у дакумент новыя PDF або выявы, у любы момант выкарыстоўвайце **Insert > From File** або перацягніце іх на сетку старонак.
+- Для простага аб'яднання або падзелу спецыяльныя інструменты [Аб'яднаць PDF](./merge-pdf) і [Падзяліць PDF](./split-pdf) могуць быць хутчэйшыя. Мультыінструмент найлепшы, калі ў адной сесіі патрэбныя некалькі аперацый.
+
+## Звязаныя інструменты
+
+- [Аб'яднаць PDF](./merge-pdf)
+- [Падзяліць PDF](./split-pdf)
+- [Дубляваць і арганізаваць](./organize-pdf)
+- [Павярнуць PDF](./rotate-pdf)
diff --git a/docs/be/tools/pdf-to-bmp.md b/docs/be/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..ce0e9bf1
--- /dev/null
+++ b/docs/be/tools/pdf-to-bmp.md
@@ -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)
diff --git a/docs/be/tools/pdf-to-cbz.md b/docs/be/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..15d39be9
--- /dev/null
+++ b/docs/be/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF у CBZ
+description: Пераўтварайце PDF у файл CBZ (архіў коміксаў) для праграм чытання коміксаў, такіх як 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.)**: нумар тома.
+- **Аўтар(ы)**: імя сцэнарыста або стваральніка.
+- **Выдавец**: выдавецкая кампанія.
+- **Тэгі / Жанр**: тэгі праз коску (напрыклад, «Баявік, Прыгоды»).
+- **Год выдання**: год публікацыі (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)
diff --git a/docs/be/tools/pdf-to-csv.md b/docs/be/tools/pdf-to-csv.md
new file mode 100644
index 00000000..63f47b1c
--- /dev/null
+++ b/docs/be/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF у CSV
+description: Вымайце табліцы з дакументаў PDF і экспартуйце іх у адзін файл CSV. Падтрымліваюцца шматстаронкавыя PDF з аўтаматычным выяўленнем табліц.
+---
+
+# PDF у CSV
+
+Вымае табліцы з PDF і экспартуе іх у файл CSV. Інструмент шукае таблічныя даныя на кожнай старонцы з дапамогай рухавіка выяўлення табліц PyMuPDF, а потым запісвае ўсе знойдзеныя радкі ў адзін файл са значэннямі праз коску.
+
+## Як гэта працуе
+
+1. Загрузіце PDF, націснуўшы на вобласць загрузкі або перацягнуўшы туды файл.
+2. Націсніце **Пераўтварыць**, каб пачаць выманне табліц.
+3. Інструмент праглядае кожную старонку і аўтаматычна знаходзіць табліцы.
+4. Спампоўваецца файл `.csv` з усімі вынятымі данымі табліц.
+
+Табліцы з розных старонак у выніку раздзеленыя пустымі радкамі. Ячэйкі з коскамі, двукоссямі або пераносамі радкоў экранаваныя паводле RFC 4180.
+
+## Налады
+
+У гэтага інструмента няма налад. Усе знойдзеныя ў дакуменце табліцы вымаюцца і аб'ядноўваюцца ў адзін CSV.
+
+## Фармат выніку
+
+- Адзін файл `filename.csv` з усімі знойдзенымі табліцамі.
+
+## Сцэнарыі выкарыстання
+
+- Перанос фінансавых даных з PDF-выпісак банка або рахункаў у электронную табліцу.
+- Выманне табліц цэн з камерцыйных прапаноў пастаўшчыкоў для параўнання.
+- Пераўтварэнне таблічных даных даследаванняў з PDF у фармат для інструментаў аналізу.
+- Перанос даных са старых справаздач PDF у базы даных.
+
+## Парады
+
+- Калі табліцы не знойдзеныя, інструмент паказвае паведамленне «Табліцы не знойдзены». Звычайна гэта значыць, што PDF выкарыстоўвае тэкставы макет, які выглядае як табліца, але не з'яўляецца сапраўднай табліцай.
+- Для большага кантролю над асобнымі табліцамі выкарыстайце [Выняць табліцы з PDF](./extract-tables): там можна выбраць фармат CSV, JSON або Markdown.
+- Калі даныя патрэбныя ў фармаце Excel з асобным аркушам на кожную табліцу, выкарыстайце [PDF у Excel](./pdf-to-excel).
+
+## Звязаныя інструменты
+
+- [PDF у Excel](./pdf-to-excel)
+- [Выняць табліцы з PDF](./extract-tables)
+- [PDF у тэкст](./pdf-to-text)
diff --git a/docs/be/tools/pdf-to-excel.md b/docs/be/tools/pdf-to-excel.md
new file mode 100644
index 00000000..99760816
--- /dev/null
+++ b/docs/be/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF у Excel
+description: Вымайце табліцы з дакументаў PDF у электронную табліцу Excel. Кожная табліца трапляе на асобны аркуш са спасылкай на старонку.
+---
+
+# PDF у Excel
+
+Вымае табліцы з PDF і захоўвае іх як электронную табліцу Excel (`.xlsx`). Кожная знойдзеная табліца змяшчаецца на асобны аркуш з нумарам табліцы і зыходнай старонкай. Выяўленне табліц працуе на PyMuPDF, а файл Excel стварае бібліятэка SheetJS.
+
+## Як гэта працуе
+
+1. Загрузіце PDF, націснуўшы на вобласць загрузкі або перацягнуўшы туды файл.
+2. Націсніце **Пераўтварыць**, каб пачаць выманне табліц.
+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). Каб спампоўваць кожную табліцу асобна ў розных фарматах, выкарыстайце [Выняць табліцы з PDF](./extract-tables).
+- Па назвах аркушаў відаць, з якой старонкі ўзята кожная табліца.
+
+## Звязаныя інструменты
+
+- [PDF у CSV](./pdf-to-csv)
+- [Выняць табліцы з PDF](./extract-tables)
+- [PDF у тэкст](./pdf-to-text)
diff --git a/docs/be/tools/pdf-to-greyscale.md b/docs/be/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..fa115780
--- /dev/null
+++ b/docs/be/tools/pdf-to-greyscale.md
@@ -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.
+- Для большага кантролю над колерам (яркасць, кантраст, насычанасць) паглядзіце інструмент «Наладзіць колеры» або вузел градацый шэрага ў [Канструктары рабочага працэсу PDF](./pdf-workflow).
+
+## Звязаныя інструменты
+
+- [PDF у JPG](./pdf-to-jpg)
+- [PDF у PNG](./pdf-to-png)
+- [Канструктар рабочага працэсу PDF](./pdf-workflow)
diff --git a/docs/be/tools/pdf-to-jpg.md b/docs/be/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..20b6eb49
--- /dev/null
+++ b/docs/be/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF у JPG
+description: Пераўтварайце старонкі PDF у відарысы JPG з наладжвальнай якасцю. Аднастаронкавыя 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)
diff --git a/docs/be/tools/pdf-to-json.md b/docs/be/tools/pdf-to-json.md
new file mode 100644
index 00000000..8121109a
--- /dev/null
+++ b/docs/be/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF у JSON
+description: Пераўтварайце файлы PDF у структураваны фармат JSON з дапамогай CPDF. Экспартуе ўнутраную структуру PDF як машыначытэльныя даныя JSON.
+---
+
+# PDF у JSON
+
+Пераўтварае адзін або некалькі файлаў PDF у фармат JSON. Інструмент выкарыстоўвае CPDF (Coherent PDF), каб сэрыялізаваць унутраную структуру кожнага PDF у машыначытэльнае прадстаўленне JSON. Вынік заўсёды выдаецца як архіў ZIP.
+
+## Як гэта працуе
+
+1. Выберыце адзін або некалькі файлаў PDF праз акно выбару файлаў.
+2. Націсніце **Пераўтварыць**, каб пачаць апрацоўку. Пераўтварэнне выконваецца ў фонавым web worker.
+3. Спампоўваецца архіў ZIP з адным файлам JSON на кожны ўваходны PDF.
+
+Радок стану паказвае ход пераўтварэння і стварэння ZIP.
+
+## Налады
+
+У гэтага інструмента няма налад. Кожны PDF пераўтвараецца ў поўнае прадстаўленне JSON.
+
+## Фармат выніку
+
+- Файл `pdfs-to-json.zip` з `filename.json` для кожнага ўваходнага PDF.
+
+Вынік JSON адлюстроўвае ўнутраную структуру аб'ектаў PDF, у тым ліку дрэвы старонак, спасылкі на шрыфты, метаданыя і патокі змесціва.
+
+## Сцэнарыі выкарыстання
+
+- Праверка ўнутранай структуры PDF для адладкі або валідацыі.
+- Праграмнае выманне структураваных метаданых і ўласцівасцей старонак.
+- Перадача даных структуры PDF ва ўласныя канвееры апрацоўкі.
+- Аўдыт дакументаў PDF на адпаведнасць праз аналіз дрэў аб'ектаў.
+
+## Парады
+
+- Гэты інструмент выдае сырую структуру аб'ектаў PDF, а не вынятае тэкставае змесціва. Калі патрэбны тэкст старонак у JSON, выкарыстайце [Падрыхтаваць PDF для ШI](./prepare-pdf-for-ai).
+- Для простага вымання тэксту [PDF у тэкст](./pdf-to-text) зручнейшы.
+- Вялікія PDF са складанай структурай даюць вельмі вялікія файлы JSON.
+
+## Звязаныя інструменты
+
+- [PDF у тэкст](./pdf-to-text)
+- [Падрыхтаваць PDF для ШI](./prepare-pdf-for-ai)
+- [Выняць табліцы з PDF](./extract-tables)
diff --git a/docs/be/tools/pdf-to-markdown.md b/docs/be/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..05ab0431
--- /dev/null
+++ b/docs/be/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF у Markdown
+description: Пераўтварайце дакументы PDF у фармат Markdown з магчымасцю вымання відарысаў. Падтрымліваецца пакетнае пераўтварэнне некалькіх файлаў.
+---
+
+# PDF у Markdown
+
+Пераўтварае файлы PDF у фармат Markdown (`.md`), захоўваючы загалоўкі, абзацы, спісы і базавае фарматаванне. Пры жаданні вымае і ўключае ўбудаваныя відарысы. Падтрымліваецца адзіночнае і пакетнае пераўтварэнне. Працуе на PyMuPDF.
+
+## Як гэта працуе
+
+1. Загрузіце адзін ці некалькі PDF, націснуўшы на вобласць загрузкі або перацягнуўшы туды файлы.
+2. Пры жаданні ўключыце **Уключаць відарысы**, каб убудаваць вынятыя відарысы ў Markdown.
+3. Націсніце **Пераўтварыць**, каб пачаць апрацоўку.
+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 для пераафармлення.
+
+## Парады
+
+- Опцыя «Уключаць відарысы» карысная, калі PDF змяшчае схемы або ілюстрацыі, важныя для зместу. Для тэкставых дакументаў адключыце яе, каб вынік быў чыстым.
+- Складаныя макеты з бакавымі панэлямі, зноскамі або некалькімі слупкамі могуць даць недасканалы Markdown. Праверце і пры неабходнасці выпраўце вынік.
+- Для сырога тэксту без фарматавання выкарыстайце [PDF у тэкст](./pdf-to-text).
+
+## Звязаныя інструменты
+
+- [PDF у тэкст](./pdf-to-text)
+- [PDF у Word](./pdf-to-word)
+- [Падрыхтаваць PDF для ШI](./prepare-pdf-for-ai)
diff --git a/docs/be/tools/pdf-to-pdfa.md b/docs/be/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..b9ce7d09
--- /dev/null
+++ b/docs/be/tools/pdf-to-pdfa.md
@@ -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 з'яўляецца стандартызаваным ISO падмноствам PDF для доўгатэрміновага лічбавага захоўвання. Гэты інструмент пераўтварае звычайныя PDF у дакументы, сумяшчальныя з PDF/A, з дапамогай Ghostscript, які працуе непасрэдна ў браўзеры.
+
+## Як гэта працуе
+
+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 выбрана па змаўчанні і падыходзіць для пераважнай большасці задач архівавання.
+
+## Опцыя папярэдняга звядзення
+
+Некаторыя PDF маюць асаблівасці, якія перашкаджаюць чыстаму пераўтварэнню ў PDF/A: незвычайныя кадзіроўкі шрыфтоў, складаныя стэкі празрыстасці або пашкоджаную ўнутраную структуру. Опцыя **Папярэдне звесці** растарызуе PDF з 300 DPI перад пераўтварэннем, што гарантуе адпаведнасць, але тэкст больш нельга вылучыць. Выкарыстоўвайце яе як запасны варыянт, калі звычайнае пераўтварэнне дае памылкі.
+
+Для папярэдняга звядзення патрэбны рухавік PyMuPDF WASM.
+
+## Сцэнарыі выкарыстання
+
+- Выкананне дзяржаўных або юрыдычных патрабаванняў да архівавання (многія юрысдыкцыі патрабуюць PDF/A для судовых дакументаў)
+- Падача дакументаў у інстытуцыйныя рэпазіторыі або лічбавыя бібліятэкі
+- Захаванне дзелавых запісаў, калі арыгінальнай праграмы праз дзесяць гадоў можа ўжо не быць
+- Падрыхтоўка рахункаў для стандартаў электронных рахункаў, якія патрабуюць PDF/A-3b з далучэннямі XML
+
+## Парады
+
+- Спачатку паспрабуйце пераўтварэнне без папярэдняга звядзення. Уключайце яго, толькі калі атрымаеце памылку.
+- PDF/A убудоўвае ўсе шрыфты, таму выходныя файлы часта большыя за арыгіналы.
+- Калі для вашага працэсу патрэбная строгая адпаведнасць, праверце вынік у спецыяльным валідатары PDF/A.
+
+## Звязаныя інструменты
+
+- [Сціснуць PDF](./compress-pdf): памяншае памер файла пасля пераўтварэння
+- [Звесці PDF](./flatten-pdf): зводзіць формы перад пераўтварэннем у PDF/A
+- [Выдаліць метаданыя](./remove-metadata): выдаляе метаданыя перад архіваваннем
diff --git a/docs/be/tools/pdf-to-png.md b/docs/be/tools/pdf-to-png.md
new file mode 100644
index 00000000..66b53302
--- /dev/null
+++ b/docs/be/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF у PNG
+description: Пераўтварайце старонкі PDF у відарысы PNG без страт з наладжвальным маштабам. Ідэальна для якасных здымкаў і празрыстага фону.
+---
+
+# PDF у PNG
+
+Пераўтварае кожную старонку PDF у відарыс PNG. PNG выкарыстоўвае сцісканне без страт, таму вынік захоўвае кожную дэталь арыгінальнай старонкі. Аднастаронкавыя PDF спампоўваюцца як файл `.png`, шматстаронкавыя даюць 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)
diff --git a/docs/be/tools/pdf-to-svg.md b/docs/be/tools/pdf-to-svg.md
new file mode 100644
index 00000000..9fe9a9aa
--- /dev/null
+++ b/docs/be/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF у SVG
+description: Пераўтварайце старонкі PDF у маштабуемую вектарную графіку SVG. Тэкст і фігуры захоўваюцца як вектарныя контуры для бясконцага маштабавання.
+---
+
+# PDF у SVG
+
+Пераўтварае кожную старонку PDF у файл SVG (Scalable Vector Graphics). У адрозненне ад растравых фарматаў, SVG захоўвае вектарныя контуры, тэкст і фігуры, таму вынік маштабуецца да любога памеру без пікселізацыі. Працуе на PyMuPDF.
+
+## Як гэта працуе
+
+1. Загрузіце адзін ці некалькі PDF, націснуўшы на вобласць загрузкі або перацягнуўшы туды файлы. Можна дадаць некалькі файлаў і кіраваць імі асобна.
+2. Націсніце **Пераўтварыць**, каб апрацаваць усе загружаныя файлы.
+3. Адзін файл з адной старонкай спампоўваецца як асобны `.svg`. Усё астатняе спампоўваецца як архіў ZIP.
+
+## Налады
+
+У гэтага інструмента няма налад. Кожная старонка пераўтвараецца ў SVG уласным вектарным экспартам PyMuPDF.
+
+## Фармат выніку
+
+- **Адзін файл, адна старонка**: `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)
diff --git a/docs/be/tools/pdf-to-text.md b/docs/be/tools/pdf-to-text.md
new file mode 100644
index 00000000..c0acaca1
--- /dev/null
+++ b/docs/be/tools/pdf-to-text.md
@@ -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 у просты тэкст для чытання на прыладах з e-ink.
+- Выманне тэксту з дагавораў або юрыдычных дакументаў для аналізу ключавых слоў.
+- Выдаленне фарматавання з PDF, каб атрымаць чысты тэкст для скрыптоў апрацоўкі даных.
+- Падрыхтоўка тэкставага корпуса з архіваў PDF для апрацоўкі натуральнай мовы.
+
+## Парады
+
+- Сканаваныя PDF (толькі відарысы) дадуць пустыя тэкставыя файлы, бо ў іх няма тэкставага пласта. Спачатку апрацуйце сканы з дапамогай OCR.
+- Вынік захоўвае парадак чытання так, як яго вызначае PyMuPDF: звычайна злева направа і зверху ўніз. Макеты з некалькімі слупкамі могуць даць перамешаны тэкст.
+- Для структураванага выніку з загалоўкамі і фарматаваннем паспрабуйце [PDF у Markdown](./pdf-to-markdown). Для структураванага JSON, гатовага для ШI, выкарыстайце [Падрыхтаваць PDF для ШI](./prepare-pdf-for-ai).
+
+## Звязаныя інструменты
+
+- [PDF у Markdown](./pdf-to-markdown)
+- [Падрыхтаваць PDF для ШI](./prepare-pdf-for-ai)
+- [PDF у Word](./pdf-to-word)
diff --git a/docs/be/tools/pdf-to-tiff.md b/docs/be/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..d0199cd0
--- /dev/null
+++ b/docs/be/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF у TIFF
+description: Пераўтварайце старонкі PDF у відарысы TIFF, якія часта выкарыстоўваюцца ў друку, факсе і архіваванні. Калі кадаванне не ўдаецца, выкарыстоўваецца PNG.
+---
+
+# PDF у TIFF
+
+Пераўтварае кожную старонку PDF у відарыс TIFF. TIFF з'яўляецца стандартным фарматам для друкарскай вытворчасці, факсавых сістэм і архівавання дакументаў. Інструмент выкарыстоўвае сцісканне PackBits для кадавання TIFF і пераходзіць на 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).
+- Праверце змесціва ZIP, калі для некаторых старонак спатрэбіўся PNG: магчыма, іх варта пераўтварыць асобна.
+
+## Звязаныя інструменты
+
+- [PDF у PNG](./pdf-to-png)
+- [PDF у BMP](./pdf-to-bmp)
+- [PDF у JPG](./pdf-to-jpg)
diff --git a/docs/be/tools/pdf-to-webp.md b/docs/be/tools/pdf-to-webp.md
new file mode 100644
index 00000000..d32dd277
--- /dev/null
+++ b/docs/be/tools/pdf-to-webp.md
@@ -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)
diff --git a/docs/be/tools/pdf-to-word.md b/docs/be/tools/pdf-to-word.md
new file mode 100644
index 00000000..9f99a140
--- /dev/null
+++ b/docs/be/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF у Word
+description: Пераўтварайце файлы PDF у рэдагаваныя дакументы Word (DOCX). Падтрымліваецца пакетнае пераўтварэнне некалькіх PDF адразу.
+---
+
+# PDF у Word
+
+Пераўтварае файлы PDF у рэдагаваныя дакументы Word (`.docx`). Інструмент выкарыстоўвае PyMuPDF, каб аднавіць змесціва дакумента з захаваннем тэксту, базавага фарматавання і макета. Падтрымліваецца адзіночнае і пакетнае пераўтварэнне.
+
+## Як гэта працуе
+
+1. Загрузіце адзін ці некалькі PDF, націснуўшы на вобласць загрузкі або перацягнуўшы туды файлы. Можна дадаць яшчэ файлы або выдаліць асобныя са спісу.
+2. Націсніце **Пераўтварыць**, каб пачаць апрацоўку.
+3. Адзін файл спампоўваецца як `filename.docx`. Некалькі файлаў пакуюцца ў `converted-documents.zip`.
+
+## Налады
+
+У гэтага інструмента няма налад. Кожны PDF пераўтвараецца ў DOCX убудаваным рухавіком пераўтварэння PyMuPDF.
+
+## Фармат выніку
+
+- **Адзін файл**: `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)
diff --git a/docs/be/tools/pdf-to-zip.md b/docs/be/tools/pdf-to-zip.md
new file mode 100644
index 00000000..c312006b
--- /dev/null
+++ b/docs/be/tools/pdf-to-zip.md
@@ -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)
diff --git a/docs/be/tools/pdf-workflow.md b/docs/be/tools/pdf-workflow.md
new file mode 100644
index 00000000..d7fda336
--- /dev/null
+++ b/docs/be/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Канструктар рабочага працэсу PDF
+description: Стварайце ўласныя канвееры апрацоўкі PDF візуальна, злучаючы вузлы на палатне. Аб'ядноўвайце ў ланцужок аб'яднанне, сцісканне, вадзяны знак і экспарт.
+---
+
+# Канструктар рабочага працэсу PDF
+
+Канструктар рабочага працэсу дазваляе аб'яднаць некалькі аперацый з PDF у адзін аўтаматызаваны канвеер. Замест таго каб запускаць інструменты па адным, вы злучаеце візуальны граф вузлоў (увод, апрацоўка, вывад) і выконваеце ўсё адным націскам. Вашы файлы ніколі не пакідаюць браўзер.
+
+## Як гэта працуе
+
+Інтэрфейс падзелены на тры панэлі: **набор вузлоў** злева, **палатно** ў цэнтры і **панэль налад** справа, якая з'яўляецца пры выбары вузла.
+
+1. **Дадавайце вузлы**, націскаючы на іх у левай бакавой панэлі, або перацягвайце іх непасрэдна на палатно. Радок пошуку ўверсе набору фільтруе вузлы па назве.
+2. **Злучайце вузлы**, перацягваючы ад выходнага гнязда (унізе вузла) да ўваходнага гнязда (уверсе іншага вузла). Злучэнні ідуць зверху ўніз.
+3. **Наладжвайце** вузел, націснуўшы на яго, каб адкрыць панэль налад справа. У кожнага тыпу вузла свае налады (дыяпазоны старонак, паўзункі якасці, паролі і г.д.).
+4. **Запускайце рабочы працэс** кнопкай **Запусціць** на панэлі інструментаў. Рухавік выконвае вузлы ў тапалагічным парадку, апрацоўваючы іх па чарзе. Радок стану ўнізе паказвае ход выканання.
+5. **Спампоўвайце вынікі**: канчатковы вузел «Спампаваць» захоўвае выніковы PDF (або ZIP, калі файлаў некалькі).
+
+## Катэгорыі вузлоў
+
+Вузлы падзелены на шэсць катэгорый, кожная мае свой колер на палатне:
+
+- **Увод** (сіні): Увод PDF, Увод відарысаў, Word/Excel/PowerPoint у PDF і больш за 15 іншых канвертараў фарматаў, якія падаюць файлы ў канвеер.
+- **Рэдагаванне і анатацыі** (індыга): Абрэзка, Градацыі шэрага, Інвертаваць колеры, Вадзяны знак, Нумары старонак, Верхні і ніжні калантытул, Эфект сканера, Наладзіць колеры, Колер фону, Выдаліць пустыя старонкі, Выдаліць анатацыі.
+- **Арганізацыя і кіраванне** (фіялетавы): Аб'яднаць, Падзяліць, Выняць старонкі, Павярнуць, Выдаліць старонкі, Адваротны парадак, Дадаць пустую старонку, Падзяліць старонкі, N-Up, Уніфікаваць памер старонак, Аб'яднаць у адну старонку, Буклет, Постэр, Рэдагаваць метаданыя, Змест, OCR.
+- **Аптымізацыя і аднаўленне** (бурштынавы): Сціснуць, Растарызаваць, Зрабіць лінейным, Выпрастаць, PDF у PDF/A, Шрыфт у контуры, Аднавіць.
+- **Абарона PDF** (ружовы): Зашыфраваць, Расшыфраваць, Ачысціць, Звесці, Лічбавы подпіс, Схаваць даныя.
+- **Вывад** (бірузовы): Спампаваць (аўтаматычна выбірае адзін PDF або ZIP), PDF у відарысы, PDF у тэкст, PDF у DOCX, PDF у XLSX, PDF у CSV, PDF у SVG, PDF у Markdown, Выняць відарысы.
+
+## Захаванне і загрузка рабочых працэсаў
+
+Панэль інструментаў мае чатыры спосабы захавання:
+
+- **Захаваць**: захоўвае бягучы рабочы працэс як названы шаблон у лакальным сховішчы браўзера. Можна захаваць некалькі шаблонаў.
+- **Загрузіць**: адкрывае акно са спісам захаваных шаблонаў. Націсніце «Загрузіць», каб аднавіць шаблон, або выдаліце непатрэбныя.
+- **Экспарт**: спампоўвае рабочы працэс як файл `.json`, каб падзяліцца ім або зрабіць рэзервовую копію.
+- **Імпарт**: загружае файл рабочага працэсу `.json` з дыска і аднаўляе ўсе вузлы, пазіцыі і злучэнні.
+
+Шаблоны захоўваюцца паміж сесіямі ў лакальным сховішчы. Экспартаваныя файлы JSON можна пераносіць паміж браўзерамі і камп'ютарамі.
+
+## Мадэль выканання
+
+Рухавік будуе граф залежнасцей па вашых злучэннях і выконвае вузлы ў тапалагічным парадку. Калі які-небудзь вузел дае збой, выкананне спыняецца, а гэты вузел пазначаецца чырвоным. Некалькі правілаў:
+
+- Кожнаму рабочаму працэсу патрэбны хаця б адзін вузел **Увод** і адзін вузел **Вывад**.
+- Рухавік выяўляе цыклічныя залежнасці і блакіруе выкананне з памылкай.
+- Вузел **Зашыфраваць** павінен быць апошнім крокам апрацоўкі перад вузлом вываду. Калі паставіць яго раней, з'явіцца папярэджанне праверкі, бо наступныя вузлы не могуць працаваць з зашыфраванымі данымі.
+- Для PDF, абароненых паролем, падчас выканання запытваецца пароль.
+- Падтрымліваецца ўвод некалькіх PDF: вузел «Аб'яднаць» можа іх аб'яднаць, або вузлы пакетнай апрацоўкі апрацуюць кожны PDF асобна.
+
+## Тыпы гнёздаў
+
+Злучэнні выкарыстоўваюць тыпізаваныя гнёзды, каб не дапусціць няправільных злучэнняў:
+
+- **PDF** (індыга): адзін дакумент PDF.
+- **MultiPDF** (бурштынавы): некалькі дакументаў PDF разам.
+- **Відарыс** (зялёны): blob відарыса.
+
+## Налады
+
+Кожны вузел мае ўласныя налады на правай панэлі налад. Тыповыя прыклады:
+
+- **Дыяпазоны старонак** у вузлах «Падзяліць», «Выняць старонкі», «Выдаліць старонкі»
+- **Паўзункі якасці** ў вузлах вываду з пераўтварэннем у відарысы
+- **Палі пароля** ў вузлах «Зашыфраваць» і «Расшыфраваць»
+- **Тэкставыя палі** для «Вадзяны знак», «Верхні і ніжні калантытул», «Рэдагаваць метаданыя»
+- **Вуглы павароту** ў вузле «Павярнуць»
+- **Узровень сціскання** ў вузле «Сціснуць»
+- **Выбар мовы OCR** у вузле OCR
+
+## Сцэнарыі выкарыстання
+
+- **Апрацоўка рахункаў**: Увод PDF -> OCR -> Выняць табліцы -> Спампаваць як CSV.
+- **Стандартызацыя справаздач**: Word у PDF -> Уніфікаваць памер старонак -> Нумары старонак -> Вадзяны знак -> Сціснуць -> Спампаваць.
+- **Падрыхтоўка да архівавання**: Увод PDF -> Аднавіць -> Звесці -> Ачысціць -> PDF у PDF/A -> Спампаваць.
+- **Пакетнае выманне відарысаў**: Увод PDF (некалькі файлаў) -> Выняць відарысы -> Спампаваць ZIP.
+- **Буклеты для друку**: Увод PDF -> Буклет -> Абрэзка -> Сціснуць -> Спампаваць.
+- **Бяспечнае распаўсюджванне**: Увод PDF -> Схаваць даныя -> Выдаліць анатацыі -> Зашыфраваць -> Спампаваць.
+
+## Парады
+
+- Націсніце **Delete** або **Backspace**, каб выдаліць вылучаны вузел з палатна.
+- Націсніце кнопку **X** на радку стану вузла, каб выдаліць яго адразу.
+- Перамяшчайце палатно, націскаючы і перацягваючы на пустым месцы. Падчас перамяшчэння курсор змяняецца на значок рукі.
+- На мабільных прыладах выкарыстоўвайце кнопку **+** на панэлі інструментаў, каб паказаць або схаваць набор вузлоў.
+- Калі рабочы працэс стварае некалькі выходных файлаў, вузел «Спампаваць» аўтаматычна пакуе іх у ZIP.
+- Пачынайце з простага: збярыце і праверце канвеер з двух вузлоў, перш чым ускладняць.
+
+## Звязаныя інструменты
+
+- [PDF у тэкст](./pdf-to-text)
+- [PDF у Excel](./pdf-to-excel)
+- [Выняць відарысы](./extract-images)
+- [PDF у Markdown](./pdf-to-markdown)
diff --git a/docs/be/tools/png-to-pdf.md b/docs/be/tools/png-to-pdf.md
new file mode 100644
index 00000000..920ae784
--- /dev/null
+++ b/docs/be/tools/png-to-pdf.md
@@ -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)
diff --git a/docs/be/tools/posterize-pdf.md b/docs/be/tools/posterize-pdf.md
new file mode 100644
index 00000000..34fb10c5
--- /dev/null
+++ b/docs/be/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Пераўтварыць у постэр
+description: Дзяліце старонкі PDF на сетку меншых старонак для друку вялікага фармату на некалькіх аркушах.
+---
+
+# Пераўтварыць у постэр
+
+Дзяліце кожную старонку PDF на сетку меншых падстаронак. Гэты інструмент дазваляе надрукаваць адну старонку на некалькіх аркушах паперы, якія потым складаюцца разам у вялікі постэр або банер.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Задайце колькасць **радкоў** і **слупкоў** сеткі (напрыклад, 2 радкі x 2 слупкі дзеляць кожную старонку на 4 падстаронкі).
+3. Пры жаданні ўкажыце дыяпазон старонак, каб абмежаваць, якія старонкі будуць апрацаваны.
+4. Палатно папярэдняга прагляду паказвае сетку на бягучай старонцы, каб вы бачылі лініі разрэзу.
+5. Пераключайцеся паміж старонкамі, каб праверыць сетку на розных старонках.
+6. Націсніце кнопку апрацоўкі. Кожная ячэйка сеткі становіцца асобнай старонкай у выніковым PDF.
+
+## Магчымасці
+
+- Наладжвальная колькасць радкоў і слупкоў для гнуткага памеру сеткі
+- Жывы папярэдні прагляд з сеткай, якая дакладна паказвае, дзе будуць падзелены старонкі
+- Фільтр дыяпазону старонак, каб апрацаваць толькі пэўныя старонкі
+- Пастаронкавая навігацыя ў папярэднім праглядзе
+- Кэшаваныя здымкі старонак для хуткай навігацыі
+- Чырвоныя пункцірныя лініі сеткі выразна адзначаюць межы разрэзу
+
+## Параметры
+
+| Параметр | Апісанне |
+| --------------------- | ---------------------------------------------------- |
+| **Радкі** | Колькасць гарызантальных дзяленняў (па змаўчанні: 1) |
+| **Слупкі** | Колькасць вертыкальных дзяленняў (па змаўчанні: 1) |
+| **Дыяпазон старонак** | Якія старонкі апрацаваць (пуста = усе старонкі) |
+
+## Сцэнарыі выкарыстання
+
+- Друк PDF памеру постэра на стандартных аркушах A4 або Letter для зборкі на сцяне
+- Стварэнне вялікіх банераў з аднастаронкавага дызайну PDF
+- Падзел вялікіх тэхнічных чарцяжоў на фрагменты для друку
+- Друк вялікага фармату без шырокафарматнага прынтара
+
+## Парады
+
+- Сетка 2x2 ператварае адну старонку ў 4. Сетка 3x3 ператварае адну старонку ў 9. Плануйце сетку ў залежнасці ад жаданага памеру сабранага выніку.
+- Сетка ў папярэднім праглядзе дапамагае пераканацца, што важны змест не трапляе на лінію разрэзу. Пры неабходнасці змяніце радкі або слупкі.
+- Для адваротнай аперацыі (размяшчэнне некалькіх старонак на адным аркушы) выкарыстоўвайце [N-Up PDF](./n-up-pdf).
+
+## Звязаныя інструменты
+
+- [N-Up PDF](./n-up-pdf)
+- [Падзяліць старонкі](./divide-pages)
+- [Падзяліць PDF](./split-pdf)
diff --git a/docs/be/tools/powerpoint-to-pdf.md b/docs/be/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..4da267b3
--- /dev/null
+++ b/docs/be/tools/powerpoint-to-pdf.md
@@ -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`.
+
+## Параметры
+
+У гэтага інструмента няма дадатковых налад. Слайды адмалёўваюцца ў іх родных памерах.
+
+## Вынік
+
+| Колькасць файлаў | Вынік |
+| :--------------- | :--------------------------------------------------------------- |
+| 1 файл | Спампоўка аднаго PDF (зыходная назва файла з пашырэннем `.pdf`) |
+| 2+ файлы | Архіў 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)
diff --git a/docs/be/tools/prepare-pdf-for-ai.md b/docs/be/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..1a3d4cd7
--- /dev/null
+++ b/docs/be/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Падрыхтаваць PDF для ШI
+description: Выцягвайце змест PDF у структураваны JSON, аптымізаваны для LLM і ШI-канвеераў, такіх як LlamaIndex. Падтрымліваецца пакетная апрацоўка.
+---
+
+# Падрыхтаваць PDF для ШI
+
+Выцягвае змест з файлаў PDF і структуруе яго ў JSON, аптымізаваны для апрацоўкі вялікімі моўнымі мадэлямі (LLM) і ШI-фрэймворкамі, такімі як LlamaIndex. Змест кожнай старонкі выцягваецца і арганізуецца ў структураваны фармат, гатовы для RAG-канвеераў, чат-ботаў або сістэм семантычнага пошуку.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі PDF, націснуўшы на вобласць загрузкі або перацягнуўшы файлы на яе.
+2. Націсніце **Выняць для ШІ**, каб пачаць апрацоўку.
+3. Адзін файл спампоўваецца як `filename_llm.json`. Некалькі файлаў ствараюць архіў `pdf-for-ai.zip`.
+
+Інструмент выкарыстоўвае інтэграцыю PyMuPDF з LlamaIndex, каб выцягваць змест на ўзроўні старонак разам з метаданымі, і стварае вынік, які можна адразу загрузіць у ШI-фрэймворкі.
+
+## Параметры
+
+У гэтага інструмента няма наладжвальных параметраў. Усе старонкі выцягваюцца з поўным тэкстам і метаданымі.
+
+## Фармат выніку
+
+- **Адзін файл**: `filename_llm.json`
+- **Некалькі файлаў**: `pdf-for-ai.zip` з адным `_llm.json` на кожны ўваходны PDF.
+
+Вынік у JSON адпавядае схеме дакумента LlamaIndex з тэкставым зместам і палямі метаданых для кожнай старонкі.
+
+## Сцэнарыі выкарыстання
+
+- Падрыхтоўка дакументаў PDF для канвеераў генерацыі з дапамогай пошуку (RAG).
+- Стварэнне базы ведаў з архіваў PDF для ШI-чат-бота.
+- Перадача справаздач PDF у працоўныя працэсы аналізу на аснове LLM.
+- Папярэдняя апрацоўка навуковых артыкулаў для семантычнага пошуку і сістэм адказаў на пытанні.
+- Стварэнне структураваных навучальных даных з калекцый дакументаў PDF.
+
+## Парады
+
+- Для простага выцягвання тэксту без фарматавання для ШI выкарыстоўвайце [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)
diff --git a/docs/be/tools/protect-pdf.md b/docs/be/tools/protect-pdf.md
new file mode 100644
index 00000000..02e988f1
--- /dev/null
+++ b/docs/be/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Абараніць PDF
+description: Абараняйце файлы PDF паролем з 256-бітным шыфраваннем AES. Задавайце пароль карыстальніка і пароль уладальніка з наладжвальнымі абмежаваннямі выкарыстання.
+---
+
+# Абараніць PDF
+
+Закрыйце PDF паролем, каб адкрыць яго маглі толькі ўпаўнаважаныя людзі. BentoPDF выкарыстоўвае 256-бітнае шыфраванне AES (той жа стандарт, што выкарыстоўваюць банкі і дзяржаўныя ўстановы), і ўсё гэта выконваецца цалкам у вашым браўзеры праз QPDF.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Увядзіце **Пароль карыстальніка** (абавязкова). Гэта пароль, які спатрэбіцца, каб адкрыць файл.
+3. Пры жаданні ўвядзіце **Пароль уладальніка**. Калі ён зададзены, PDF атрымлівае абмежаванні, якія забараняюць друк, рэдагаванне, капіраванне і анатаванне.
+4. Націсніце **Зашыфраваць PDF**.
+5. Спампуйце зашыфраваны файл.
+
+## Тыпы пароляў
+
+### Пароль карыстальніка (абавязковы)
+
+Пароль карыстальніка атрымальнікі ўводзяць, каб адкрыць PDF. Без яго дакумент цалкам недаступны. Кожны зашыфраваны PDF павінен яго мець.
+
+### Пароль уладальніка (неабавязковы)
+
+Пароль уладальніка вызначае, што ўпаўнаважаны карыстальнік можа рабіць пасля адкрыцця файла. Калі вы задаяце асобны пароль уладальніка, BentoPDF аўтаматычна ўжывае самы строгі набор абмежаванняў:
+
+- Змяненне забаронена
+- Выцягванне і капіраванне забаронены
+- Друк забаронены
+- Анатаванне забаронена
+- Запаўненне формаў забаронена
+- Зборка дакумента забаронена
+
+Калі пакінуць пароль уладальніка пустым, PDF будзе зашыфраваны (для адкрыцця ўсё роўна патрэбны пароль карыстальніка), але пасля адкрыцця не будзе мець абмежаванняў.
+
+## Падрабязнасці шыфравання
+
+- **Алгарытм**: AES-256 (256-бітны Advanced Encryption Standard)
+- **Даўжыня ключа**: 256 біт
+- **Стандарт**: шыфраванне PDF 2.0 (рэалізацыя QPDF)
+
+AES-256 практычна немагчыма ўзламаць перабором з сучаснымі тэхналогіямі. Бяспека вашага зашыфраванага PDF цалкам залежыць ад надзейнасці пароля.
+
+## Сцэнарыі выкарыстання
+
+- Абарона канфідэнцыйных фінансавых справаздач перад адпраўкай па электроннай пошце
+- Абарона юрыдычных дакументаў, якія перадаюцца процілегламу боку
+- Даданне пароля да медыцынскіх запісаў або персанальных даных
+- Распаўсюджванне платнага кантэнту (электронныя кнігі, справаздачы) з кантролем доступу
+- Выкананне палітык аховы даных, якія патрабуюць шыфравання пры захоўванні
+
+## Парады
+
+- Выкарыстоўвайце надзейны ўнікальны пароль. Ідэальна падыходзіць парольная фраза з 12+ сімвалаў з вялікімі і малымі літарамі, лічбамі і сімваламі.
+- Перадавайце пароль па асобным канале (тэлефон, SMS), ніколі не ў тым жа лісце, што і PDF.
+- Калі трэба толькі абмежаваць дзеянні (без друку, без капіравання), не патрабуючы пароля для адкрыцця, выкарыстоўвайце інструмент "Змяніць дазволы".
+
+## Звязаныя інструменты
+
+- [Расшыфраваць PDF](./unlock-pdf): выдаліць шыфраванне, калі вы ведаеце пароль
+- [Змяніць дазволы](./change-permissions): змяніць пэўныя абмежаванні выкарыстання
+- [Выдаліць абмежаванні](./remove-restrictions): прыбраць усю абарону з PDF
+- [Ачысціць PDF](./sanitize-pdf): выдаліць схаваны змест перад шыфраваннем
diff --git a/docs/be/tools/psd-to-pdf.md b/docs/be/tools/psd-to-pdf.md
new file mode 100644
index 00000000..781fe444
--- /dev/null
+++ b/docs/be/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD у PDF
+description: Пераўтварайце файлы Photoshop (PSD) у PDF у браўзеры. Бясплатна, прыватна, без праграм Adobe.
+---
+
+# PSD у PDF
+
+Пераўтварайце файлы Adobe Photoshop PSD у дакументы 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 з вельмі высокім разрозненнем (файлы для друку 300+ DPI) дадуць вялікія PDF. Інструмент захоўвае поўнае разрозненне.
+
+## Звязаныя інструменты
+
+- [Відарысы ў PDF](./image-to-pdf)
+- [PNG у PDF](./png-to-pdf)
+- [VSD у PDF](./vsd-to-pdf)
diff --git a/docs/be/tools/pub-to-pdf.md b/docs/be/tools/pub-to-pdf.md
new file mode 100644
index 00000000..383bf294
--- /dev/null
+++ b/docs/be/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB у PDF
+description: Пераўтварайце файлы Microsoft Publisher (PUB) у PDF у браўзеры. Бясплатна, прыватна, без дадатковых праграм.
+---
+
+# PUB у PDF
+
+Пераўтварайце файлы Microsoft Publisher у PDF. Publisher з'яўляецца праграмай для настольнай вёрсткі, якая ўваходзіць у некаторыя выданні Microsoft Office, але ў большасці людзей яна не ўсталявана. Гэты інструмент дазваляе любому пераўтварыць файлы PUB у PDF проста ў браўзеры, без праграм Microsoft.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :------------------ | :-------- | :--------------------------- |
+| Microsoft Publisher | `.pub` | Дакументы настольнай вёрсткі |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы PUB. Можна загрузіць некалькі файлаў адразу.
+2. Праверце спіс файлаў. Выдаліце непатрэбныя файлы значком сметніцы або націсніце **Дадаць больш файлаў**, каб дадаць іншыя.
+3. Націсніце **Канвертаваць у PDF**. Рухавік на аснове LibreOffice загружаецца ў браўзеры і пераўтварае кожны файл PUB, захоўваючы макет, відарысы і тэкставыя блокі.
+4. Адзін файл спампоўваецца адразу як PDF. Некалькі файлаў перадаюцца ў архіве ZIP з назвай `pub-to-pdf.zip`.
+
+## Параметры
+
+Дадатковая налада не патрэбна. Канвертар аўтаматычна апрацоўвае макет PUB.
+
+## Сцэнарыі выкарыстання
+
+- Адкрыццё флаера або бюлетэня PUB ад кліента без набыцця Microsoft Publisher
+- Пераўтварэнне царкоўных бюлетэняў, праграм мерапрыемстваў або школьных газет, створаных у Publisher
+- Архіваванне маркетынгавых матэрыялаў з Publisher у агульнадаступным фармаце
+- Друк файлаў PUB на сістэме без усталяванага Publisher
+
+## Парады
+
+- Складаныя макеты Publisher з накладзенымі тэкставымі блокамі і дакладным пазіцыянаваннем могуць крыху зрушыцца пры пераўтварэнні. Праверце вынік, калі дакладнае размяшчэнне важнае.
+- Рухавік LibreOffice ініцыялізуецца адзін раз за сесію. Першае пераўтварэнне займае больш часу, наступныя хутчэйшыя.
+- Для найбольш дакладнага пераўтварэння файлаў Publisher пераканайцеся, што ўсе шрыфты ў арыгінале з'яўляюцца стандартнымі сістэмнымі шрыфтамі.
+
+## Звязаныя інструменты
+
+- [VSD у PDF](./vsd-to-pdf)
+- [ODP у PDF](./odp-to-pdf)
diff --git a/docs/be/tools/rasterize-pdf.md b/docs/be/tools/rasterize-pdf.md
new file mode 100644
index 00000000..388545d3
--- /dev/null
+++ b/docs/be/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Растарызаваць PDF
+description: Пераўтварайце старонкі PDF у PDF на аснове відарысаў. Зводзьце ўсе пласты, выдаляйце вылучальны тэкст і кіруйце DPI і фарматам відарысаў.
+---
+
+# Растарызаваць PDF
+
+Растарызацыя пераўтварае кожную старонку PDF у відарыс і збірае гэтыя відарысы назад у PDF. Вынік выглядае гэтак жа, як арыгінал, але не мае вылучальнага тэксту, інтэрактыўных элементаў і рэдагавальных пластоў. Па сутнасці, гэта якасная ксеракопія.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі файлаў PDF.
+2. Задайце **DPI** (разрозненне) выніку.
+3. Выберыце **Фармат выявы**: PNG для якасці без страт або JPEG для меншых файлаў.
+4. Пры жаданні адзначце **Пераўтварыць у адценні шэрага**.
+5. Націсніце **Растарызаваць PDF**. Некалькі файлаў спампоўваюцца як ZIP.
+
+## Параметры
+
+| Налада | Значэнні | Па змаўчанні |
+| --------------------------------- | ----------------------------- | ------------ |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Фармат выявы** | PNG (без страт), JPEG (меншы) | PNG |
+| **Пераўтварыць у адценні шэрага** | Укл./Выкл. | Выкл. |
+
+## Рэкамендацыі па DPI
+
+- **72**: толькі для прагляду на экране, найменшы памер файла
+- **150**: добры баланс для звычайнага выкарыстання
+- **200**: больш выразны тэкст, умераны памер файла
+- **300**: якасць для друку
+- **600**: высокая якасць для архівавання або прафесійнага друку
+
+## Сцэнарыі выкарыстання
+
+- Прадухіленне выцягвання тэксту з канфідэнцыйных дакументаў перад перадачай
+- Пазбаўленне ад праблем з шрыфтамі праз пераўтварэнне тэксту ў пікселі
+- Стварэнне "плоскай" версіі PDF са складанымі пластамі або празрыстасцю, якія па-рознаму адлюстроўваюцца ў розных праграмах
+- Падрыхтоўка PDF для сістэмы, якая прымае толькі відарысы
+- Выдаленне схаванага зместу (напрыклад, адсочаных змен або даных формаў) шляхам ператварэння PDF у чыстыя відарысы
+
+## Парады
+
+- 150 DPI у PNG з'яўляецца надзейным значэннем па змаўчанні. Павялічвайце толькі для друку або калі трэба набліжаць дробныя дэталі.
+- JPEG дае прыкметна меншыя файлы, але дадае артэфакты сціскання на рэзкіх краях тэксту.
+- Растарызацыя незваротная: захоўвайце арыгінальны PDF, калі пазней можа спатрэбіцца рэдагавальны тэкст.
+
+## Звязаныя інструменты
+
+- [Сціснуць PDF](./compress-pdf): паменшыць памер растарызаванага PDF
+- [Выпрастаць PDF](./deskew-pdf): выраўнаваць старонкі перад растарызацыяй сканаваных дакументаў
+- [Шрыфт у контуры](./font-to-outline): пераўтварыць шрыфты ў вектарныя контуры, каб захаваць маштабаванасць
+- [Звесці PDF](./flatten-pdf): звесці формы без пераўтварэння ў відарысы
diff --git a/docs/be/tools/remove-annotations.md b/docs/be/tools/remove-annotations.md
new file mode 100644
index 00000000..cdd0b1d4
--- /dev/null
+++ b/docs/be/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Выдаліць анатацыі
+description: Выдаляйце ўсе каментарыі, вылучэнні, спасылкі і іншыя анатацыі з PDF адным націскам.
+---
+
+# Выдаліць анатацыі
+
+Ачысціце PDF, выдаліўшы ўсе анатацыі: каментарыі, вылучэнні, нататкі-налепкі, тэкставую разметку, спасылкі, штампы і любыя іншыя аб'екты анатацый у дакуменце. Асноўны змест старонак (тэкст, відарысы, графіка) застаецца некранутым.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Інструмент вызначае колькасць старонак дакумента і паказвае звесткі пра файл.
+3. Націсніце **Выдаліць анатацыі**, каб пачаць апрацоўку.
+4. Ачышчаны PDF без анатацый спампоўваецца аўтаматычна.
+
+## Магчымасці
+
+- Выдаляе ўсе тыпы анатацый: каментарыі, вылучэнні, падкрэсліванні, закрэсліванні, нататкі-налепкі, штампы, спасылкі і разметку формаў
+- Апрацоўвае кожную старонку дакумента
+- Захоўвае ўвесь змест, які не з'яўляецца анатацыямі (тэкст, відарысы, вектарную графіку, палі формаў)
+- Паказвае колькасць старонак і памер файла перад апрацоўкай
+
+## Сцэнарыі выкарыстання
+
+- Ачыстка дакумента перад канчатковым распаўсюджваннем пасля рэцэнзавання, калі некалькі рэцэнзентаў дадалі каментарыі
+- Выдаленне вылучэнняў і нататак-налепак з агульнага навучальнага дапаможніка
+- Выдаленне анатацый-спасылак з дакумента перад архіваваннем
+- Падрыхтоўка "чыстай" версіі юрыдычнага дакумента, які актыўна анатаваўся падчас перамоў
+- Выдаленне каментарыяў рэцэнзентаў з рукапісу перад адпраўкай у друк
+
+## Парады
+
+- Гэты інструмент выдаляе анатацыі на ўзроўні структуры PDF, таму вынік захоўвае вылучальны тэкст і зыходную якасць, без растарызацыі.
+- Калі трэба выдаліць толькі пэўныя анатацыі, а не ўсе, выкарыстоўвайце [Рэдактар PDF](./edit-pdf), каб выбіральна выдаліць асобныя анатацыі.
+- Анатацыі ў зведзеных PDF (дзе анатацыі ўжо аб'яднаны са зместам старонкі) выдаліць немагчыма, бо яны больш не з'яўляюцца асобнымі аб'ектамі.
+
+## Звязаныя інструменты
+
+- [Рэдактар PDF](./edit-pdf)
+- [Дадаць вадзяны знак](./add-watermark)
+- [Падпісаць PDF](./sign-pdf)
diff --git a/docs/be/tools/remove-blank-pages.md b/docs/be/tools/remove-blank-pages.md
new file mode 100644
index 00000000..7c31a8b7
--- /dev/null
+++ b/docs/be/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Выдаліць пустыя старонкі
+description: Аўтаматычна знаходзьце і выдаляйце пустыя або амаль пустыя старонкі з PDF з наладжвальнай адчувальнасцю.
+---
+
+# Выдаліць пустыя старонкі
+
+Праскануйце PDF на наяўнасць пустых або амаль пустых старонак і аўтаматычна выдаліце іх. Інструмент адмалёўвае кожную старонку і аналізуе яе пікселі, каб вызначыць, ці пустая яна, а потым дазваляе пацвердзіць, якія старонкі выдаліць, перад апрацоўкай.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Наладзьце паўзунок **Адчувальнасць**, каб вызначыць, наколькі строга вызначаецца "пустая" старонка.
+3. Націсніце **Знайсці пустыя старонкі**, каб праскануваць дакумент.
+4. Інструмент паказвае мініяцюры знойдзеных пустых старонак для праверкі.
+5. Пацвердзіце выбар і спампуйце ачышчаны PDF без пустых старонак.
+
+## Параметры
+
+- **Адчувальнасць**: паўзунок ад 0% да 100% (па змаўчанні 80%). Больш высокія значэнні строжэйшыя і адзначаюць толькі цалкам або амаль белыя старонкі. Ніжэйшыя значэнні мякчэйшыя і ловяць старонкі з мінімальным зместам, напрыклад з адной кропкай або бледным вадзяным знакам.
+
+## Магчымасці
+
+- Аналіз кожнай старонкі на ўзроўні пікселяў для выяўлення пустога зместу
+- Наладжвальны паўзунок адчувальнасці для дакладнай налады выяўлення
+- Мініяцюры знойдзеных пустых старонак для ручной праверкі
+- Захоўвае ўсе непустыя старонкі без змен
+- Апрацоўвае дакументы любога памеру і з любой колькасцю старонак
+- Паказ прагрэсу падчас сканавання
+
+## Сцэнарыі выкарыстання
+
+- Ачыстка сканаваных дакументаў, дзе сканер захапіў пустыя адваротныя бакі аднабаковых арыгіналаў
+- Выдаленне раздзяляльных старонак з пакетаў масава сканаваных дакументаў
+- Выдаленне пустых старонак, устаўленых сістэмамі кіравання дакументамі
+- Ачыстка PDF, экспартаваных з тэкставых рэдактараў, якія часам дадаюць пустыя старонкі ў канцы
+- Памяншэнне памеру файла за кошт выдалення непатрэбных пустых старонак
+
+## Парады
+
+- Пачніце са стандартнай адчувальнасці 80% і падладжвайце ад яе. Калі інструмент прапускае старонкі, якія вам здаюцца пустымі, панізьце адчувальнасць. Калі ён адзначае старонкі са слабым зместам, які вы хочаце захаваць, павысьце яе.
+- Інструмент адмалёўвае кожную старонку для аналізу, таму час апрацоўкі расце з колькасцю старонак. Для вельмі вялікіх дакументаў давядзецца крыху пачакаць.
+- Праглядзіце знойдзеныя пустыя старонкі ў мініяцюрах перад пацвярджэннем выдалення. Старонкі з бледнымі калантытуламі або вадзянымі знакамі могуць быць адзначаны ў залежнасці ад адчувальнасці.
+
+## Звязаныя інструменты
+
+- [Абрэзаць PDF](./crop-pdf)
+- [Рэдактар PDF](./edit-pdf)
+- [Нумары старонак](./page-numbers)
diff --git a/docs/be/tools/remove-metadata.md b/docs/be/tools/remove-metadata.md
new file mode 100644
index 00000000..5ada9073
--- /dev/null
+++ b/docs/be/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Выдаліць метаданыя
+description: Выдаляйце ўсе схаваныя метаданыя з файлаў PDF, уключаючы аўтара, назву, дату стварэння, вытворцу, даныя XMP і ідэнтыфікатары дакумента.
+---
+
+# Выдаліць метаданыя
+
+Кожны PDF змяшчае метаданыя, якія могуць паказаць, хто яго стварыў, якая праграма выкарыстоўвалася, калі ён апошні раз змяняўся, і іншае. Гэты інструмент выдаляе ўсё гэта: слоўнік Info, патокі метаданых XMP, ідэнтыфікатары дакумента і спецыфічныя для праграм даныя, пакідаючы чысты дакумент без слядоў паходжання.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Націсніце **Выдаліць метаданыя**.
+3. Спампуйце ачышчаны файл.
+
+Налад няма. Інструмент наўмысна грунтоўны: ён ачышчае ўсё.
+
+## Што выдаляецца
+
+- **Палі слоўніка Info**: загаловак, аўтар, тэма, ключавыя словы, стваральнік, вытворца, дата стварэння, дата змянення
+- **Паток метаданых XMP**: блок метаданых на аснове XML, які захоўваецца ў каталогу дакумента
+- **Ідэнтыфікатары дакумента**: унікальныя ідэнтыфікатары ў трэйлеры PDF, якія можна выкарыстоўваць для адсочвання дакумента паміж сістэмамі
+- **PieceInfo**: спецыфічныя метаданыя, дададзеныя праграмамі накшталт Illustrator або InDesign
+
+## Што застаецца
+
+- Увесь бачны змест старонак (тэкст, відарысы, графіка)
+- Палі формаў і анатацыі
+- Закладкі і спасылкі
+- Сама структура дакумента
+
+## Сцэнарыі выкарыстання
+
+- Выдаленне вашага імя і арганізацыі з дакумента перад ананімнай публікацыяй
+- Выдаленне часовых метак стварэння, якія паказваюць, калі дакумент быў падрыхтаваны
+- Ачыстка радкоў вытворцы, якія ідэнтыфікуюць ваша праграмнае забеспячэнне для PDF
+- Падрыхтоўка дакументаў для рэгулятарных падач, якія патрабуюць PDF без метаданых
+- Выдаленне слядоў гісторыі рэдагавання перад перадачай дакумента вонкі
+
+## Парады
+
+- Спачатку выкарыстайце інструмент "Праглядзець метаданыя", каб убачыць, якія менавіта метаданыя ёсць у PDF, перад іх выдаленнем.
+- Калі трэба выдаліць метаданыя _і_ JavaScript, анатацыі і ўбудаваныя файлы, выкарыстоўвайце "Ачысціць PDF" для больш грунтоўнай ачысткі.
+- Выдаленне метаданых незваротнае. Захавайце арыгінал, калі гэтыя даныя могуць спатрэбіцца пазней.
+
+## Звязаныя інструменты
+
+- [Ачысціць PDF](./sanitize-pdf): выдаліць метаданыя, а таксама скрыпты, далучэнні і іншае
+- [Зашыфраваць PDF](./protect-pdf): абараніць ачышчаны PDF паролем
+- [Сціснуць PDF](./compress-pdf): выдаленне метаданых можа крыху паменшыць памер файла; сцісканне дае большую эканомію
diff --git a/docs/be/tools/remove-restrictions.md b/docs/be/tools/remove-restrictions.md
new file mode 100644
index 00000000..14755d42
--- /dev/null
+++ b/docs/be/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Выдаліць абмежаванні
+description: Выдаляйце абарону паролем, абмежаванні друку, блакіроўкі рэдагавання і забароны капіравання з файлаў PDF.
+---
+
+# Выдаліць абмежаванні
+
+PDF можа мець два тыпы пароляў: пароль карыстальніка (патрэбны для адкрыцця файла) і пароль уладальніка (вызначае, што можна рабіць з файлам). Гэты інструмент выдаляе абодва разам з усімі звязанымі абмежаваннямі: блакіроўкамі друку, рэдагавання, капіравання і анатавання.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Калі PDF мае пароль уладальніка, увядзіце яго ў поле **Пароль уладальніка**. Пакіньце поле пустым, калі PDF мае толькі абмежаванні выкарыстання без пароля.
+3. Націсніце **Выдаліць абмежаванні**.
+4. Спампуйце PDF без абмежаванняў.
+
+Інструмент выкарыстоўвае сцягі QPDF `--decrypt` і `--remove-restrictions`, каб стварыць чыстую копію без абмежаванняў.
+
+## Што выдаляецца
+
+- Абарона паролем (і пароль карыстальніка, і пароль уладальніка)
+- Абмежаванні друку
+- Абмежаванні рэдагавання
+- Абмежаванні капіравання тэксту і відарысаў
+- Абмежаванні анатавання і каментавання
+- Усе іншыя абмежаванні бяспекі, закадаваныя ў PDF
+
+## Сцэнарыі выкарыстання
+
+- Разблакіроўка вашага ўласнага PDF, пароль якога вы задалі шмат гадоў таму
+- Выдаленне абмежаванняў друку з дакумента, да якога ў вас ёсць законны доступ
+- Уключэнне капіравання і ўстаўкі ў даведачных матэрыялах для нататак
+- Падрыхтоўка PDF для інструментаў даступнасці, якія не працуюць з абмежаванымі дакументамі
+
+## Парады
+
+- Калі пароль уладальніка зададзены, вы павінны яго ведаць. Гэты інструмент не ўзломвае і не падбірае паролі.
+- Калі трэба пакінуць файл зашыфраваным, але змяніць пэўныя дазволы, выкарыстоўвайце інструмент "Змяніць дазволы".
+- Выніковы файл зусім не зашыфраваны: любы, хто яго атрымае, зможа свабодна яго адкрыць.
+
+## Звязаныя інструменты
+
+- [Расшыфраваць PDF](./unlock-pdf): разблакіраваць PDF, калі вы ведаеце пароль карыстальніка
+- [Зашыфраваць PDF](./protect-pdf): зноў зашыфраваць з новымі наладамі
+- [Змяніць дазволы](./change-permissions): выбіральна змяніць дазволеныя дзеянні
diff --git a/docs/be/tools/repair-pdf.md b/docs/be/tools/repair-pdf.md
new file mode 100644
index 00000000..1495d3a6
--- /dev/null
+++ b/docs/be/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Аднавіць PDF
+description: Аднаўляйце даныя з пашкоджаных файлаў PDF з дапамогай рухавіка аднаўлення QPDF. Падтрымліваецца пакетная апрацоўка.
+---
+
+# Аднавіць PDF
+
+Калі PDF не адкрываецца, паказвае скажоны змест або выклікае памылкі ў праграме прагляду, гэты інструмент спрабуе перабудаваць яго ўнутраную структуру. Ён выкарыстоўвае рухавік аднаўлення QPDF, які можа аднавіць даныя пры многіх відах пашкоджанняў: зламаных табліцах перакрыжаваных спасылак, абрэзаных патоках, няслушных спасылках на аб'екты і іншых.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі пашкоджаных файлаў PDF.
+2. Націсніце **Аднавіць PDF**.
+3. Адзін адноўлены файл спампоўваецца адразу. Некалькі файлаў ствараюць архіў ZIP.
+
+Інструмент прапускае кожны файл праз QPDF са сцягам `--decrypt`, які прымушае QPDF прачытаць і перазапісаць усю структуру PDF, па ходзе выпраўляючы праблемы, якія можна выправіць.
+
+## Магчымасці
+
+- Пакетнае аднаўленне некалькіх PDF за адну аперацыю
+- Аўтаматычнае вызначэнне файлаў, якія можна і нельга аднавіць
+- Справаздача пра поспех або памылку для кожнага файла пры апрацоўцы некалькіх файлаў
+- Выкарыстоўвае QPDF (WebAssembly), правераную часам бібліятэку пераўтварэння PDF
+
+## Што можна выправіць
+
+- Зламаныя або адсутныя табліцы перакрыжаваных спасылак
+- Абрэзаныя канцы файлаў пасля незавершаных спамповак
+- Няслушную нумарацыю аб'ектаў і даўжыні патокаў
+- Дробныя структурныя неадпаведнасці ад памылковых генератараў PDF
+- Артэфакты шыфравання пасля няўдалых спроб расшыфроўкі
+
+## Што выправіць нельга
+
+- Моцна абрэзаныя файлы, у якіх адсутнічае большая частка даных
+- PDF, зашыфраваныя паролем, якога ў вас няма
+- Файлы, якія насамрэч не з'яўляюцца PDF (няправільнае пашырэнне)
+- Пашкоджанне відарысаў унутры PDF (структура выпраўляецца, але даныя пікселяў не ствараюцца нанова)
+
+## Сцэнарыі выкарыстання
+
+- Аднаўленне PDF пасля няўдалай спампоўкі з электроннай пошты
+- Адкрыццё файлаў, створаных старымі або нестандартнымі генератарамі PDF
+- Выпраўленне PDF, якія працуюць у адной праграме прагляду, але не ў іншай
+- Падрыхтоўка пашкоджаных архіўных дакументаў да доўгатэрміновага захоўвання
+
+## Парады
+
+- Калі аднавіць не атрымалася, паспрабуйце спачатку адкрыць файл у браўзеры: у браўзераў ёсць уласная логіка аднаўлення, і яны могуць адмаляваць дастаткова зместу для паўторнага захавання.
+- Для зашыфраваных PDF, якія не ўдаецца аднавіць, спачатку выкарыстайце "Расшыфраваць PDF", а потым аднавіце расшыфраваны вынік.
+
+## Звязаныя інструменты
+
+- [Сціснуць PDF](./compress-pdf): дадаткова ачысціць структуру адноўленага PDF
+- [Зрабіць лінейны PDF](./linearize-pdf): аптымізаваць адноўлены файл для вэб-дастаўкі
+- [Звесці PDF](./flatten-pdf): звесці формы, якія маглі быць пашкоджаны
diff --git a/docs/be/tools/reverse-pages.md b/docs/be/tools/reverse-pages.md
new file mode 100644
index 00000000..f0908987
--- /dev/null
+++ b/docs/be/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Адваротны парадак старонак
+description: Перавярніце парадак старонак аднаго або некалькіх файлаў PDF, каб апошняя старонка стала першай.
+---
+
+# Адваротны парадак старонак
+
+Перавярніце парадак старонак PDF, каб апошняя старонка стала першай, перадапошняя другой і гэтак далей. Падтрымліваецца пакетная апрацоўка некалькіх файлаў адразу.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі файлаў PDF.
+2. Націсніце кнопку апрацоўкі.
+3. Кожны файл апрацоўваецца асобна. Калі вы загрузілі некалькі файлаў, вынікам будзе архіў ZIP з усімі перавернутымі PDF.
+4. Адзін файл спампоўваецца адразу як перавернуты PDF.
+
+## Магчымасці
+
+- Пакетная апрацоўка: змяненне парадку ў некалькіх PDF за адну аперацыю
+- Адзін файл на выхадзе для аднаго PDF, ZIP для некалькіх
+- Кнопкі выдалення кожнага файла перад апрацоўкай
+- Захоўвае ўвесь змест і фарматаванне старонак
+
+## Сцэнарыі выкарыстання
+
+- Выпраўленне дакумента, які быў адсканаваны ў адваротным парадку
+- Падрыхтоўка PDF прэзентацыі для чытання з канца ў пачатак
+- Змяненне парадку старонак для пэўных працэсаў друку, якія падаюць старонкі ў адваротным парадку
+- Выпраўленне дакумента, старонкі якога выпадкова сабралі задам наперад
+
+## Парады
+
+- Кожны файл у пакеце перагортваецца асобна: самі файлы не мяняюць парадак адзін адносна аднаго.
+- Для больш дэталёвага змянення парадку старонак (не толькі поўнага перагортвання) выкарыстоўвайце [Дубляваць і арганізаваць](./organize-pdf).
+
+## Звязаныя інструменты
+
+- [Дубляваць і арганізаваць](./organize-pdf)
+- [Павярнуць PDF](./rotate-pdf)
+- [Мультыінструмент PDF](./pdf-multi-tool)
diff --git a/docs/be/tools/rotate-custom.md b/docs/be/tools/rotate-custom.md
new file mode 100644
index 00000000..8800c8ad
--- /dev/null
+++ b/docs/be/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Павярнуць на зададзены вугал
+description: Паварочвайце старонкі PDF на любы вугал з полем градусаў для кожнай старонкі і пакетным кіраваннем паваротам.
+---
+
+# Павярнуць на зададзены вугал
+
+Паварочвайце старонкі PDF на любы адвольны вугал, а не толькі з крокам 90 градусаў. Кожная старонка мае ўласнае поле вугла, а з дапамогай пакетнага кіравання можна адразу ўжыць адзін вугал да ўсіх старонак.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF. Для кожнай старонкі адмалёўваюцца мініяцюры.
+2. Кожная старонка мае лікавае поле з яе бягучым вуглом павароту.
+3. Увядзіце любое значэнне ў градусах (дадатнае або адмоўнае), каб павярнуць пэўную старонку, або выкарыстоўвайце кнопкі ўлева/ўправа для хуткага павароту на 90 градусаў.
+4. Выкарыстоўвайце поле **пакетнага вугла** уверсе, каб задаць аднолькавы паварот для ўсіх старонак.
+5. Націсніце кнопку апрацоўкі, каб стварыць павернуты PDF.
+
+## Магчымасці
+
+- Адвольнае значэнне градусаў для кожнай старонкі (любы цэлы лік)
+- Пакетнае кіраванне вуглом для аднолькавага павароту ўсіх старонак
+- Папярэдні прагляд павароту ў мініяцюрах у рэальным часе
+- Кнопкі хуткага павароту на 90 градусаў для кожнай старонкі
+- Адкладзеная загрузка мініяцюр для хуткасці на вялікіх дакументах
+
+## Сцэнарыі выкарыстання
+
+- Выпраўленне крыху нахіленых сканаў на некалькі градусаў
+- Паварот старонак пад нестандартную арыентацыю
+- Дакладны паварот асобных старонак у дакуменце са змешаным зместам
+- Тонкая налада вуглоў старонак пасля першаснага масавага павароту
+
+## Парады
+
+- Дадатныя значэнні паварочваюць па гадзінніку, адмоўныя супраць гадзінніка.
+- Пакетнае поле вугла перазапісвае ўсе вуглы асобных старонак пры ўжыванні. Пры неабходнасці задавайце асобныя налады пасля пакетнай аперацыі.
+- Для стандартных паваротаў на 90/180/270 градусаў з прасцейшым інтэрфейсам выкарыстоўвайце [Павярнуць PDF](./rotate-pdf).
+
+## Звязаныя інструменты
+
+- [Павярнуць PDF](./rotate-pdf)
+- [Мультыінструмент PDF](./pdf-multi-tool)
+- [Дубляваць і арганізаваць](./organize-pdf)
diff --git a/docs/be/tools/rotate-pdf.md b/docs/be/tools/rotate-pdf.md
new file mode 100644
index 00000000..bb426b5e
--- /dev/null
+++ b/docs/be/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Павярнуць PDF
+description: Паварочвайце асобныя старонкі або ўсе старонкі PDF з крокам 90 градусаў праз візуальны інтэрфейс з мініяцюрамі.
+---
+
+# Павярнуць PDF
+
+Паварочвайце старонкі PDF на 90 градусаў па гадзінніку або супраць гадзінніка. Інструмент паказвае мініяцюры ўсіх старонак, дазваляючы паварочваць іх асобна або ўжыць масавы паварот да ўсяго дакумента.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF. Мініяцюры ўсіх старонак адмалёўваюцца ў сетцы.
+2. Выкарыстоўвайце кнопкі павароту ўлева/ўправа пад кожнай мініяцюрай, каб павярнуць пэўную старонку.
+3. Выкарыстоўвайце элементы масавага павароту ўверсе, каб павярнуць усе старонкі адразу.
+4. Мініяцюры абнаўляюцца ў рэальным часе, паказваючы паварот.
+5. Націсніце кнопку апрацоўкі, каб захаваць павернуты PDF.
+
+## Магчымасці
+
+- Паварот кожнай старонкі з крокам 90 градусаў (улева або ўправа)
+- Масавы паварот усіх старонак адначасова
+- Папярэдні прагляд мініяцюр у рэальным часе з анімацыяй павароту
+- Адкладзеная загрузка мініяцюр для плаўнай працы з вялікімі дакументамі
+- Захоўвае зыходны змест і якасць старонак
+
+## Сцэнарыі выкарыстання
+
+- Выпраўленне сканаваных старонак, якія ляжаць бокам або дагары нагамі
+- Паварот альбомных старонак у кніжную арыентацыю (або наадварот)
+- Выпраўленне дакумента са змешанай арыентацыяй, дзе частка старонак адсканавана пад няправільным вуглом
+- Падрыхтоўка дакумента для пэўнай арыентацыі адлюстравання
+
+## Парады
+
+- Павароты сумуюцца. Двайны націск кнопкі па гадзінніку дае паварот на 180 градусаў.
+- Для паваротаў, не кратных 90 градусам (напрыклад, 45 градусаў, каб выправіць крыху нахілены скан), выкарыстоўвайце [Павярнуць на зададзены вугал](./rotate-custom).
+- Элементы масавага павароту ўплываюць на ўсе старонкі, а не толькі на выбраныя. У гэтым інструменце няма выбару старонак: для гэтага выкарыстоўвайце [Мультыінструмент PDF](./pdf-multi-tool).
+
+## Звязаныя інструменты
+
+- [Павярнуць на зададзены вугал](./rotate-custom)
+- [Мультыінструмент PDF](./pdf-multi-tool)
+- [Дубляваць і арганізаваць](./organize-pdf)
diff --git a/docs/be/tools/rtf-to-pdf.md b/docs/be/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..ca39d06c
--- /dev/null
+++ b/docs/be/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF у PDF
+description: Пераўтварайце файлы Rich Text Format (RTF) у PDF у браўзеры з дапамогай рухавіка на аснове LibreOffice.
+---
+
+# RTF у PDF
+
+Пераўтварайце дакументы Rich Text Format у PDF. RTF з'яўляецца кросплатформенным фарматам дакументаў, які падтрымліваюць практычна ўсе тэкставыя рэдактары. Гэты інструмент выкарыстоўвае рухавік LibreOffice у браўзеры, каб адмаляваць файлы RTF з захаваннем фарматавання: тлусты шрыфт, курсіў, табліцы і ўбудаваныя відарысы пераносяцца ў PDF.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні | Тыпы MIME |
+| :----- | :-------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце адзін або некалькі файлаў RTF.
+2. Праверце спіс файлаў. Дадайце або выдаліце файлы пры неабходнасці.
+3. Націсніце **Канвертаваць у PDF**. Рухавік LibreOffice ініцыялізуецца пры першым выкарыстанні, а потым апрацоўвае кожны файл.
+4. Адзін файл спампоўваецца адразу як PDF. Некалькі файлаў перадаюцца як `rtf-converted.zip`.
+
+## Параметры
+
+У гэтага інструмента няма дадатковых налад. Пераўтварэнне захоўвае зыходнае фарматаванне RTF.
+
+## Вынік
+
+| Колькасць файлаў | Вынік |
+| :--------------- | :-------------------------------------------------------- |
+| 1 файл | Спампоўка аднаго PDF (напрыклад, `letter.pdf`) |
+| 2+ файлы | Архіў ZIP (`rtf-converted.zip`) з адным PDF на кожны файл |
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне старых дакументаў RTF са старых тэкставых рэдактараў у сучасныя PDF
+- Ператварэнне шаблонаў электронных лістоў RTF у папярэдні прагляд PDF
+- Апрацоўка вынікаў RTF з юрыдычных або медыцынскіх праграмных сістэм
+- Пакетнае пераўтварэнне файлаў RTF з сістэмы кіравання дакументамі ў PDF для архіва
+
+## Парады
+
+- Рухавік LibreOffice загружаецца адзін раз і кэшуецца. Першае пераўтварэнне ў сесіі займае некалькі лішніх секунд, наступныя хутчэйшыя.
+- Файлы RTF з убудаванымі аб'ектамі OLE могуць адмалёўвацца не ідэальна. Просты тэкст, відарысы і стандартнае фарматаванне пераўтвараюцца надзейна.
+- Калі файлы RTF створаны ў Microsoft Word, іх таксама можна пераўтварыць праз інструмент [Word у PDF](./word-to-pdf), які прымае RTF разам з DOC і DOCX.
+
+## Звязаныя інструменты
+
+- [Word у PDF](./word-to-pdf)
+- [ODT у PDF](./odt-to-pdf)
+- [Тэкст у PDF](./txt-to-pdf)
diff --git a/docs/be/tools/sanitize-pdf.md b/docs/be/tools/sanitize-pdf.md
new file mode 100644
index 00000000..8142b940
--- /dev/null
+++ b/docs/be/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Ачысціць PDF
+description: Выдаляйце з PDF схаваны і патэнцыйна небяспечны змест, уключаючы метаданыя, JavaScript, убудаваныя файлы, анатацыі і пласты.
+---
+
+# Ачысціць PDF
+
+PDF можа змяшчаць значна больш, чым вы бачыце на экране. Схаваныя метаданыя, убудаваны JavaScript, далучаныя файлы, даныя формаў і звесткі пра пласты могуць выдаць адчувальныя даныя або стварыць рызыку бяспекі. Ачыстка выдаляе ўсё гэта і пакідае чысты дакумент, які бяспечна публікаваць.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Выберыце ў спісе элементы, якія трэба выдаліць.
+3. Націсніце **Ачысціць PDF**.
+4. Спампуйце ачышчаны файл.
+
+## Параметры ачысткі
+
+Усе параметры ўключаны па змаўчанні. Зніміце адзнаку з тых, што хочаце захаваць.
+
+| Параметр | Што выдаляе |
+| ------------------------------ | ------------------------------------------------------------------------ |
+| **Сплошчыць формы** | Пераўтварае інтэрактыўныя палі формаў у статычны змест |
+| **Выдаліць метаданыя** | Выдаляе аўтара, назву, дату стварэння, звесткі пра праграму і даныя XMP |
+| **Выдаліць анатацыі** | Выдаляе каментарыі, вылучэнні, нататкі-налепкі і разметку |
+| **Выдаліць JavaScript** | Выдаляе ўбудаваныя скрыпты, якія могуць выконвацца пры адкрыцці |
+| **Выдаліць убудаваныя файлы** | Выдаляе файлы, далучаныя ўнутры PDF |
+| **Выдаліць слаі (OCG)** | Зводзіць групы неабавязковага зместу ў адзін пласт |
+| **Выдаліць спасылкі** | Выдаляе гіперспасылкі і спасылкі на URL |
+| **Выдаліць дрэва структуры** | Выдаляе структуру дакумента, якая выкарыстоўваецца для тэгаў даступнасці |
+| **Выдаліць MarkInfo** | Выдаляе звесткі пра пазначаны змест |
+| **Выдаліць убудаваныя шрыфты** | Выдаляе ўбудаваныя даныя шрыфтоў (выкарыстоўвайце асцярожна) |
+
+## Сцэнарыі выкарыстання
+
+- Падрыхтоўка PDF да публікацыі з выдаленнем унутраных метаданых (імёнаў аўтараў, версій праграм, гісторыі рэдагавання)
+- Выдаленне JavaScript з PDF, атрыманага з ненадзейнай крыніцы, перад адкрыццём
+- Ачыстка PDF перад адпраўкай кліенту, які не павінен бачыць убудаваныя каментарыі або назвы палёў формаў
+- Выдаленне схаваных пластоў з архітэктурнага чарцяжа перад перадачай канчатковай версіі
+- Выкананне патрабаванняў мінімізацыі даных паводле правілаў прыватнасці
+
+## Парады
+
+- Не адзначайце "Выдаліць убудаваныя шрыфты", калі не ўпэўнены, што PDF усё роўна будзе адлюстроўвацца правільна. Выдаленне шрыфтоў можа зрабіць тэкст нябачным у некаторых праграмах прагляду.
+- Калі трэба выдаліць толькі метаданыя, асобны інструмент "Выдаліць метаданыя" хутчэйшы і больш мэтанакіраваны.
+- Ачыстка незваротная. Захавайце арыгінальны файл.
+
+## Звязаныя інструменты
+
+- [Выдаліць метаданыя](./remove-metadata): выдаліць толькі метаданыя, не кранаючы іншы змест
+- [Звесці PDF](./flatten-pdf): звесці менавіта формы і анатацыі
+- [Зашыфраваць PDF](./protect-pdf): дадаць абарону паролем пасля ачысткі
+- [Растарызаваць PDF](./rasterize-pdf): радыкальны варыянт, пераўтварэнне ў відарысы для выдалення ўсяго схаванага зместу
diff --git a/docs/be/tools/scanner-effect.md b/docs/be/tools/scanner-effect.md
new file mode 100644
index 00000000..932ca2ce
--- /dev/null
+++ b/docs/be/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Эфект сканера
+description: Зрабіце PDF падобным да сканаванага дакумента з наладжвальным шумам, паваротам, размыццём і эфектам старой паперы.
+---
+
+# Эфект сканера
+
+Ператварыце чысты лічбавы PDF у дакумент, які выглядае так, быццам выйшаў з планшэтнага сканера. Інструмент ужывае наладжвальны шум, лёгкі паварот, размыццё, змяненне яркасці і неабавязковае пажаўценне, каб імітаваць недахопы фізічнага сканавання.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Рэдактар адкрываецца з жывым папярэднім праглядам першай старонкі побач з панэллю налад.
+3. Наладзьце параметры эфекту сканавання паўзункамі і пераключальнікамі.
+4. Папярэдні прагляд абнаўляецца ў рэальным часе пры змене налад.
+5. Націсніце **Ужыць эфект сканера**, каб апрацаваць усе старонкі і спампаваць вынік.
+
+## Параметры
+
+- **Colorspace (пераключальнік Grayscale)**: пераўтварыць вынік у адценні шэрага для класічнага чорна-белага выгляду скана.
+- **Рамка**: дадаць лёгкую цёмную рамку па краях старонкі, каб імітаваць артэфакты краёў сканера.
+- **Паварот**: ужыць лёгкі паварот (ад -5 да +5 градусаў), каб імітаваць крыва пададзеную паперу.
+- **Варыяцыя павароту**: дадаць выпадковае адхіленне вугла павароту, каб кожная старонка нахілялася крыху па-рознаму.
+- **Яркасць**: павысіць або панізіць агульную яркасць.
+- **Кантраст**: наладзіць кантраснасць, каб імітаваць ваганні якасці тонера.
+- **Размытасць**: ужыць размыццё па Гаусе, каб змякчыць краі тэксту як у скане нізкай якасці.
+- **Шум**: дадаць выпадковы шум пікселяў, каб імітаваць зярністасць сенсара сканера. Больш высокія значэнні даюць больш зярністы вынік.
+- **Жаўтаватасць**: дадаць цёплы жоўты адценак, каб імітаваць старую або перапрацаваную паперу.
+- **Раздзяляльнасць**: задаць DPI выніку. Ніжэйшыя значэнні ствараюць больш піксельны выгляд, падобны да скана.
+- **Скінуць**: вярнуць усе налады да стандартных значэнняў.
+
+## Магчымасці
+
+- Папярэдні прагляд у рэальным часе, які абнаўляецца пры змене кожнага параметра
+- Выпадковае адхіленне павароту для кожнай старонкі для рэалістычнай варыятыўнасці
+- Дзесяць параметраў, якія наладжваюцца незалежна
+- Рэжым адценняў шэрага для сапраўднага чорна-белага скана
+- Кіраванне разрозненнем ад нізкага DPI, як у факса, да высокага DPI архіўнай якасці
+
+## Сцэнарыі выкарыстання
+
+- Каб лічбава створаныя дакументы выглядалі адсканаванымі і надрукаванымі
+- Імітацыя старэння фізічных дакументаў для ўзнаўлення гістарычных дакументаў
+- Тэставанне праграм OCR на сканах дрэннай якасці
+- Стварэнне дакументаў, якія адпавядаюць візуальнаму стылю існых сканаваных архіваў
+
+## Парады
+
+- Пачынайце з невялікіх значэнняў. Шум 10-20, лёгкі паварот на 0,5 градуса і мінімальнае размыццё ўжо даюць пераканаўчы выгляд скана.
+- Спалучайце рэжым адценняў шэрага з лёгкім пажаўценнем для эфекту "ксеракопіі з ксеракопіі".
+- Нізкае разрозненне (100-150 DPI) стварае найбольш рэалістычны выгляд факса.
+
+## Звязаныя інструменты
+
+- [Інвертаваць колеры](./invert-colors)
+- [Наладзіць колеры](./adjust-colors)
+- [Колер фону](./background-color)
diff --git a/docs/be/tools/sign-pdf.md b/docs/be/tools/sign-pdf.md
new file mode 100644
index 00000000..f9b28c88
--- /dev/null
+++ b/docs/be/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Падпісаць PDF
+description: Намалюйце, увядзіце або загрузіце подпіс і размясціце яго на старонках PDF ва ўбудаванай праграме прагляду.
+---
+
+# Падпісаць PDF
+
+Дадайце свой подпіс у любы дакумент PDF. Інструмент убудоўвае поўную праграму прагляду PDF з інструментамі подпісу, дзе можна намаляваць подпіс ад рукі, увесці імя рукапісным шрыфтам або загрузіць відарыс подпісу. Размяшчайце і змяняйце памер подпісаў на любой старонцы, а потым захавайце падпісаны дакумент.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Дакумент адкрываецца ва ўбудаванай праграме прагляду PDF з інструментамі анатавання.
+3. Выкарыстоўвайце інструмент подпісу, каб стварыць подпіс: намаляваць, увесці або загрузіць відарыс.
+4. Націсніце на месца на старонцы, дзе трэба размясціць подпіс, і наладзьце яго памер і пазіцыю.
+5. Пры жаданні адзначце **Сплошчыць PDF**, каб назаўсёды ўбудаваць подпіс у дакумент.
+6. Націсніце **Захаваць і спампаваць падпісаны PDF**, каб атрымаць падпісаны файл.
+
+## Параметры
+
+- **Сплошчыць PDF**: калі адзначана, подпіс назаўсёды ўбудоўваецца ў змест старонкі. Гэта не дае іншым перамясціць або выдаліць подпіс. Калі не адзначана, подпіс застаецца анатацыяй, якую можна рэдагаваць у сумяшчальных праграмах прагляду.
+
+## Магчымасці
+
+- Тры спосабы стварэння подпісу: малюнак ад рукі, уведзены тэкст або загружаны відарыс
+- Убудаваная праграма прагляду PDF для дакладнага размяшчэння
+- Перацягванне для размяшчэння і змянення памеру подпісаў на любой старонцы
+- Неабавязковае зводжанне для пастаяннага ўбудавання подпісаў
+- Падтрымка некалькіх подпісаў у адным дакуменце
+
+## Сцэнарыі выкарыстання
+
+- Падпісанне кантрактаў, пагадненняў або формаў зацвярджэння перад адпраўкай назад
+- Даданне подпісу да падатковых дакументаў, страхавых заяў або дзяржаўных формаў
+- Размяшчэнне ініцыялаў на асобных старонках шматстаронкавага пагаднення
+- Падпісанне NDA або кадравых дакументаў, якія прыходзяць як далучэнні PDF
+
+## Парады
+
+- Уключыце зводжанне, калі адпраўляеце падпісаны PDF таму, хто не павінен мець магчымасці выдаліць або перамясціць ваш подпіс.
+- Для юрыдычна значных лічбавых подпісаў з праверкай на аснове сертыфікатаў BentoPDF таксама прапануе асобны інструмент "Лічбавы подпіс PDF".
+- Для найлепшага выніку загружайце відарыс подпісу PNG з празрыстым фонам.
+
+## Звязаныя інструменты
+
+- [Рэдактар PDF](./edit-pdf)
+- [Дадаць штампы](./add-stamps)
+- [Запоўніць форму PDF](./form-filler)
diff --git a/docs/be/tools/split-pdf.md b/docs/be/tools/split-pdf.md
new file mode 100644
index 00000000..a07f8142
--- /dev/null
+++ b/docs/be/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Падзяліць PDF
+description: Дзяліце PDF на меншыя файлы па дыяпазоне старонак, візуальным выбары, закладках, цотных і няцотных старонках або фіксаваных інтэрвалах.
+---
+
+# Падзяліць PDF
+
+Разбівайце PDF на меншыя дакументы з дапамогай аднаго з шасці рэжымаў падзелу. Ад простых дыяпазонаў старонак да падзелу па закладках, гэты інструмент спраўляецца з любым сцэнарыем падзелу дакумента.
+
+## Як гэта працуе
+
+1. Загрузіце адзін файл PDF.
+2. Выберыце рэжым падзелу ў выпадальным спісе.
+3. Наладзьце параметры рэжыму (дыяпазоны старонак, выбар і г.д.).
+4. Націсніце кнопку апрацоўкі.
+5. Вынік спампоўваецца як адзін PDF або архіў ZIP у залежнасці ад рэжыму і налад.
+
+## Рэжымы падзелу
+
+| Рэжым | Апісанне |
+| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| **Здабыванне па дыяпазоне старонак** | Увядзіце дыяпазоны старонак, напрыклад `1-3, 5, 8-10`. Некалькі дыяпазонаў ствараюць асобныя PDF у ZIP. Адзін дыяпазон стварае адзін PDF. |
+| **Выбар старонак візуальна** | Праглядайце мініяцюры старонак і націскайце, каб выбраць патрэбныя старонкі. Выбраныя старонкі выцягваюцца ў новы PDF. |
+| **Падзел па цотных і няцотных старонках** | Выцягнуць толькі цотныя або няцотныя старонкі. |
+| **Падзяліць усе старонкі на асобныя файлы** | Падзяліць кожную старонку ў асобны файл PDF, які спампоўваецца як ZIP. |
+| **Падзел па закладках** | Дзяліць па межах закладак. Выберыце ўзровень закладак, каб вызначыць месцы падзелу. |
+| **Падзел кожныя N старонак** | Дзяліць на часткі па N старонак (напрыклад, кожныя 5 старонак). Апошняя частка можа мець менш старонак. |
+
+## Магчымасці
+
+- Шэсць розных рэжымаў падзелу, якія ахопліваюць практычна любы сцэнарый
+- Візуальны выбар старонак з адкладзенай загрузкай мініяцюр
+- Падзел з улікам закладак з фільтрацыяй па ўзроўні
+- Варыянт выніку ў ZIP для рэжымаў дыяпазону і візуальнага выбару
+- Апрацоўка дыяпазонаў старонак са змешаным сінтаксісам (`1-3, 5, 8-10`)
+- Папярэджанне, калі падзел па N старонак дае нераўнамерныя часткі
+
+## Сцэнарыі выкарыстання
+
+- Выцягванне пэўнага раздзела або часткі з вялікага дакумента
+- Падзел цотных і няцотных старонак для двухбаковага друку
+- Разбіўка кнігі PDF на асобныя файлы раздзелаў па межах закладак
+- Вылучэнне пэўных старонак (напрыклад, старонкі подпісу) з кантракта
+- Падзел зводнай справаздачы на файлы па раздзелах для распаўсюджвання
+
+## Парады
+
+- Некалькі дыяпазонаў старонак праз коску (напрыклад, `1-5, 10-15, 20-25`) ствараюць асобныя PDF, па адным на дыяпазон, сабраныя ў ZIP.
+- Рэжым падзелу па закладках патрабуе, каб PDF сапраўды змяшчаў закладкі. Калі іх няма, вы ўбачыце паведамленне пра памылку.
+- Сцяжок "Спампаваць як ZIP" у рэжымах выбару дыяпазону і візуальнага выбару дазваляе атрымаць асобныя PDF для кожнай старонкі замест аднаго аб'яднанага файла.
+
+## Звязаныя інструменты
+
+- [Аб'яднаць PDF](./merge-pdf)
+- [Выняць старонкі](./extract-pages)
+- [Выдаліць старонкі](./delete-pages)
+- [Мультыінструмент PDF](./pdf-multi-tool)
diff --git a/docs/be/tools/svg-to-pdf.md b/docs/be/tools/svg-to-pdf.md
new file mode 100644
index 00000000..193f6767
--- /dev/null
+++ b/docs/be/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG у PDF
+description: Пераўтварайце вектарную графіку SVG у PDF з кіраваннем якасцю, цалкам у браўзеры.
+---
+
+# SVG у PDF
+
+Пераўтварайце файлы Scalable Vector Graphics (SVG) у PDF. Інструмент растарызуе кожны SVG рухавіком адмалёўкі браўзера, а потым убудоўвае вынік у родным разрозненні. Зручна, каб ператварыць вектарныя значкі, дыяграмы і ілюстрацыі ў партатыўныя дакументы.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні |
+| :----- | :-------- |
+| SVG | `.svg` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце адзін або некалькі файлаў SVG.
+2. Праверце спіс файлаў і кіруйце ім.
+3. Выберыце ўзровень **Якасць PDF**.
+4. Націсніце **Канвертаваць у PDF**. Вынік спампоўваецца як `from_svgs.pdf`.
+
+Кожны SVG чытаецца як тэкст, адмалёўваецца на палатне ў яго ўласнай шырыні і вышыні (800x600 па змаўчанні, калі памеры не зададзены) і экспартуецца ў PNG. Затым гэты PNG убудоўваецца ў PDF з дапамогай pdf-lib. Празрыстыя вобласці запаўняюцца белым фонам.
+
+## Параметры
+
+**Якасць PDF** кіруе сцісканнем пасля растарызацыі:
+
+- **Высокая якасць**: найбліжэй да арыгінальнай адмалёўкі.
+- **Сярэдняя якасць** (па змаўчанні): добры баланс.
+- **Нізкая якасць**: найменшы файл, частковая страта дэталяў.
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне архітэктурных або інжынерных дыяграм з SVG у PDF, гатовы да друку
+- Упакоўка набораў значкоў у даведачны PDF для дызайн-сістэмы
+- Ператварэнне візуалізацый даных (D3.js, экспарт бібліятэк дыяграм) у PDF для справаздач
+- Стварэнне версій інфаграфікі на аснове SVG для друку
+
+## Парады
+
+- Файлы SVG без яўных атрыбутаў `width` і `height` адмалёўваюцца ў памеры 800x600 пікселяў. Для найлепшага выніку задайце памеры ў зыходным SVG перад пераўтварэннем.
+- Складаныя SVG са спасылкамі на знешнія шрыфты або звязаныя відарысы могуць адмалёўвацца не ідэальна. Убудуйце ўсе рэсурсы ў SVG для надзейнага выніку.
+- Паколькі SVG растарызуецца, PDF будзе змяшчаць растравы відарыс, а не вектарныя контуры. Для сапраўднага вектарнага PDF патрэбны спецыяльны вектарны інструмент.
+
+## Звязаныя інструменты
+
+- [Відарысы ў PDF](./image-to-pdf)
+- [PNG у PDF](./png-to-pdf)
+- [BMP у PDF](./bmp-to-pdf)
diff --git a/docs/be/tools/table-of-contents.md b/docs/be/tools/table-of-contents.md
new file mode 100644
index 00000000..aec58fe1
--- /dev/null
+++ b/docs/be/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Змест
+description: Стварайце адфарматаваную старонку зместу з існых закладак PDF.
+---
+
+# Змест
+
+Гэты інструмент чытае закладкі (структуру) вашага PDF і стварае адфарматаваную старонку зместу, якая дадаецца ў пачатак дакумента. Калі ў PDF ужо ёсць закладкі, але няма бачнай старонкі зместу, гэты інструмент створыць яе аўтаматычна.
+
+## Як гэта працуе
+
+1. Загрузіце PDF, які змяшчае закладкі.
+2. Наладзьце загаловак зместу, памер шрыфту і гарнітуру.
+3. Пры жаданні адзначце **Дадаць закладку для старонкі зместу**, каб уключыць саму старонку зместу ў дрэва закладак.
+4. Націсніце **Стварыць змест**, каб апрацаваць файл.
+5. Абноўлены PDF са старонкай зместу ў пачатку спампоўваецца аўтаматычна.
+
+## Параметры
+
+- **Загаловак зместу**: загаловак уверсе створанай старонкі. Па змаўчанні "Змест".
+- **Памер шрыфта**: ад 10pt да 72pt. Па змаўчанні 12pt.
+- **Сямейства шрыфтоў**: выбар з варыянтаў Times Roman, Helvetica або Courier (звычайны, тлусты, курсіў, тлусты курсіў). Па змаўчанні Helvetica.
+- **Дадаць закладку для старонкі зместу**: калі адзначана, у дрэва структуры PDF дадаецца закладка на саму старонку зместу.
+
+## Магчымасці
+
+- Чытае ўсю іерархію закладак з PDF
+- Стварае акуратна адфарматаваную старонку зместу з нумарамі старонак
+- Падтрымлівае ўкладзеныя ўзроўні закладак з водступамі
+- Выбар з 12 убудаваных шрыфтоў PDF
+- Неабавязковая закладка на саму старонку зместу
+
+## Сцэнарыі выкарыстання
+
+- Даданне зместу для друку ў электронныя кнігі або справаздачы, якія маюць толькі лічбавыя закладкі
+- Стварэнне зместу для аб'яднанага дакумента пасля злучэння некалькіх PDF
+- Стварэнне даведачнай старонкі для доўгіх тэхнічных дапаможнікаў
+- Падрыхтоўка дакументаў да друку, дзе чакаецца бачны змест
+
+## Парады
+
+- Калі ў PDF няма закладак, спачатку стварыце іх у інструменце [Рэдагаваць закладкі](./bookmark), а потым вярніцеся сюды, каб стварыць змест.
+- Для вялікіх дакументаў больш буйны шрыфт, напрыклад 14pt або 16pt, палепшыць чытэльнасць.
+
+## Звязаныя інструменты
+
+- [Рэдагаваць закладкі](./bookmark)
+- [Нумары старонак](./page-numbers)
+- [Верхні і ніжні калантытул](./header-footer)
diff --git a/docs/be/tools/text-color.md b/docs/be/tools/text-color.md
new file mode 100644
index 00000000..4ed87712
--- /dev/null
+++ b/docs/be/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Змяніць колер тэксту
+description: Змяняйце колер усяго тэксту ў PDF на любы выбраны колер.
+---
+
+# Змяніць колер тэксту
+
+Замяніце колер тэксту ва ўсім PDF. Інструмент знаходзіць вобласці тэксту на кожнай старонцы і перафарбоўвае іх у выбраны колер, захоўваючы макет дакумента і нетэкставы змест.
+
+## Як гэта працуе
+
+1. Загрузіце файл PDF.
+2. Выберыце новы колер тэксту праз выбар колеру. Па змаўчанні сіні (#0000FF).
+3. Націсніце **Змяніць колер тэксту**, каб пачаць апрацоўку.
+4. Перафарбаваны PDF спампоўваецца аўтаматычна. Індыкатар прагрэсу паказвае, якая старонка апрацоўваецца.
+
+## Параметры
+
+- **Новы колер тэксту**: выбар колеру, які заменіць колер усяго тэксту ў дакуменце.
+
+## Магчымасці
+
+- Перафарбоўвае тэкст на кожнай старонцы дакумента
+- Пастаронкавая апрацоўка з паказам прагрэсу
+- Выбар колеру з поўнай падтрымкай hex-колераў
+- Захоўвае макет старонак і нетэкставыя элементы
+
+## Сцэнарыі выкарыстання
+
+- Змяненне чорнага тэксту на цёмна-сіні для больш мяккага і сучаснага выгляду дакумента
+- Перафарбоўванне тэксту пад патрабаванні брэнда перад распаўсюджваннем дакументаў
+- Змяненне колеру тэксту на пэўны для адпаведнасці патрабаванням даступнасці
+- Каб тэкст быў бачны на новым колеры фону
+
+## Парады
+
+- Гэты інструмент адмалёўвае старонкі ў маштабе 2x для якасці, а потым перабудоўвае PDF. Вынік складаецца з відарысаў, таму тэкст больш нельга будзе вылучыць або шукаць.
+- Для дакументаў, дзе трэба захаваць вылучальны тэкст, лепш рэдагаваць PDF непасрэдна ў [Рэдактары PDF](./edit-pdf).
+- Час апрацоўкі расце з колькасцю старонак, бо кожная старонка адмалёўваецца асобна.
+
+## Звязаныя інструменты
+
+- [Колер фону](./background-color)
+- [Інвертаваць колеры](./invert-colors)
+- [Наладзіць колеры](./adjust-colors)
diff --git a/docs/be/tools/tiff-to-pdf.md b/docs/be/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..73827459
--- /dev/null
+++ b/docs/be/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF у PDF
+description: Пераўтварайце аднастаронкавыя і шматстаронкавыя відарысы TIFF у PDF у браўзеры з поўнай падтрымкай старонак.
+---
+
+# TIFF у PDF
+
+Пераўтварайце файлы TIFF у PDF, у тым ліку шматстаронкавыя TIFF. Кожная старонка (або "IFD") у файле TIFF становіцца асобнай старонкай выніковага PDF. Гэта асабліва зручна для сканаваных дакументаў, факсаў і медыцынскіх відарысаў, якія часта захоўваюцца як шматстаронкавыя TIFF.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы TIFF.
+2. Праверце спіс файлаў і кіруйце ім пры неабходнасці.
+3. Націсніце **Канвертаваць у PDF**. Вынік спампоўваецца як `from_tiff.pdf`.
+
+Інструмент дэкадуе кожны файл TIFF з дапамогай дэкодэра TIFF на JavaScript і выцягвае сырыя даныя пікселяў RGBA кожнай старонкі. Кожная старонка адмалёўваецца на палатне, экспартуецца ў PNG і ўбудоўваецца ў PDF. Памеры старонак адпавядаюць зыходным старонкам TIFF.
+
+## Параметры
+
+Гэты інструмент не мае дадатковых налад якасці. Відарысы ўбудоўваюцца ў родным разрозненні.
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне шматстаронкавых факсаў (TIFF-F) у больш партатыўны фармат PDF
+- Ператварэнне архіваў сканаваных дакументаў у TIFF у PDF з пошукам (пасля выкарыстайце інструмент OCR)
+- Апрацоўка медыцынскіх відарысаў (гісталагічныя прэпараты, экспарт з радыялогіі) у фармаце TIFF
+- Пераўтварэнне файлаў TIFF з ГІС або спадарожнікавымі здымкамі ў дакументы, якімі зручна дзяліцца
+
+## Парады
+
+- Шматстаронкавыя TIFF падтрымліваюцца цалкам. 10-старонкавы TIFF дасць 10-старонкавы PDF. Падзяляць TIFF загадзя не трэба.
+- Вельмі вялікія файлы TIFF (сотні мегабайт) могуць апрацоўвацца даўжэй, бо ўвесь файл трэба дэкадаваць у памяці браўзера.
+- Калі для выніковага PDF патрэбны OCR, пасля пераўтварэння апрацуйце яго інструментам [OCR PDF](./ocr-pdf).
+
+## Звязаныя інструменты
+
+- [Відарысы ў PDF](./image-to-pdf)
+- [BMP у PDF](./bmp-to-pdf)
+- [JPG у PDF](./jpg-to-pdf)
diff --git a/docs/be/tools/txt-to-pdf.md b/docs/be/tools/txt-to-pdf.md
new file mode 100644
index 00000000..244f7bb1
--- /dev/null
+++ b/docs/be/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Тэкст у PDF
+description: Пераўтварайце простыя тэкставыя файлы або ўведзены тэкст у PDF з наладай шрыфтоў, колераў і памераў старонак.
+---
+
+# Тэкст у PDF
+
+Пераўтварайце просты тэкст у адфарматаваны PDF. Можна загрузіць файлы `.txt` або ўвесці тэкст непасрэдна ва ўбудаваны тэкставы рэдактар. Інструмент падтрымлівае некалькі шрыфтоў, уласныя колеры тэксту і шырокі выбар памераў старонак: ад A0 да A10, а таксама US Letter, Legal і Tabloid.
+
+## Падтрымліваемыя фарматы
+
+| Увод | Пашырэнні |
+| :---------------------- | :------------------------------ |
+| Простыя тэкставыя файлы | `.txt` |
+| Непасрэдны ўвод тэксту | Увядзіце або ўстаўце ў рэдактар |
+
+## Як гэта працуе
+
+1. Выберыце рэжым уводу пераключальнікам уверсе: **Запампаваць файлы** або **Увесці тэкст**.
+2. Пры загрузцы перацягніце або націсніце, каб выбраць адзін або некалькі файлаў `.txt`. Пры ўводзе ўпішыце тэкст непасрэдна ў тэкставае поле.
+3. Наладзьце параметры фарматавання: гарнітуру, памер шрыфту, колер тэксту і памер старонкі.
+4. Націсніце **Стварыць PDF**. Вынік спампоўваецца як `text_to_pdf.pdf`.
+
+Пры загрузцы некалькіх файлаў іх змест аб'ядноўваецца з пустымі радкамі паміж імі.
+
+## Параметры
+
+| Параметр | Значэнні | Па змаўчанні |
+| :-------------------- | :-------------------------------------------------------------------------------------- | :-------------- |
+| **Сямейства шрыфтоў** | Helvetica (без засечак), Tiro (з засечкамі), Courier (монашырынны), Times (з засечкамі) | Helvetica |
+| **Памер шрыфта** | 6-72 pt | 12 |
+| **Колер тэксту** | Любы колер праз выбар колеру | Чорны (#000000) |
+| **Памер старонкі** | ISO A0-A10, B0-B10, C0-C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Мовы з напрамкам справа налева (арабская, іўрыт, фарсі, урду) вызначаюцца аўтаматычна. Калі знойдзены такі тэкст, напрамак і выраўноўванне тэксту пераключаюцца адпаведна.
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне фрагментаў кода або файлаў журналаў у PDF для друку са шрыфтам Courier
+- Хуткае стварэнне PDF з нататак сустрэчы, набраных на месцы
+- Фарматаванне простага тэкставага рукапісу з пэўным шрыфтам і памерам старонкі для падачы
+- Стварэнне PDF-версіі README або changelog для распаўсюджвання па-за сеткай
+
+## Парады
+
+- Выкарыстоўвайце рэжым **Увесці тэкст**, калі трэба хутка пераўтварыць змест буфера абмену, не захоўваючы яго спачатку ў файл.
+- Courier (монашырынны) з'яўляецца найлепшым выбарам для кода, журналаў або любога зместу, дзе важнае выраўноўванне па слупках.
+- Палі старонкі фіксаваныя: 72 пункты (1 цаля) з усіх бакоў.
+
+## Звязаныя інструменты
+
+- [Markdown у PDF](./markdown-to-pdf)
+- [CSV у PDF](./csv-to-pdf)
+- [Word у PDF](./word-to-pdf)
diff --git a/docs/be/tools/unlock-pdf.md b/docs/be/tools/unlock-pdf.md
new file mode 100644
index 00000000..85eb3a65
--- /dev/null
+++ b/docs/be/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Разблакаваць PDF
+description: Выдаляйце абарону паролем з зашыфраваных PDF. Падтрымліваецца пакетная расшыфроўка некалькіх файлаў адным паролем.
+---
+
+# Разблакаваць PDF
+
+Калі ў вас ёсць пароль ад зашыфраванага PDF, гэты інструмент цалкам выдаляе шыфраванне і стварае разблакаваную копію, якую любы можа адкрыць без уліковых даных. Падтрымліваецца пакетная расшыфроўка, калі некалькі PDF маюць аднолькавы пароль.
+
+## Як гэта працуе
+
+1. Загрузіце адзін або некалькі зашыфраваных PDF-файлаў.
+2. Увядзіце **пароль**, якім абаронены файлы.
+3. Націсніце **Расшыфраваць PDF**.
+4. Адзін файл спампоўваецца адразу. Некалькі файлаў ствараюць ZIP-архіў з усімі разблакаванымі PDF.
+
+## Магчымасці
+
+- Расшыфроўка аднаго файла і пакетная расшыфроўка
+- Апрацоўка як пароляў карыстальніка, так і пароляў уладальніка
+- Цалкам незашыфраваны вынік без рэшткавых абмежаванняў
+- Зразумелыя паведамленні пра памылкі пры няправільным паролі або пашкоджаных файлах
+- Адсочванне поспеху або памылкі для кожнага файла ў пакетным рэжыме
+
+## Чым адрозніваецца ад «Выдаліць абмежаванні»
+
+**Расшыфраваць PDF** патрабуе пароль і выдаляе ўсё шыфраванне. **Выдаліць абмежаванні** працуе з абмежаваннямі выкарыстання (друк, капіраванне, рэдагаванне) і можа не патрабаваць пароля, калі быў зададзены толькі пароль уладальніка. Выкарыстоўвайце расшыфроўку, калі PDF наогул не адкрываецца без пароля.
+
+## Сцэнарыі выкарыстання
+
+- Канчатковая разблакоўка PDF, якія вы раней зашыфравалі, калі пароль больш не патрэбны
+- Выдаленне шыфравання з пакета архіўных дакументаў для зручнага доўгатэрміновага доступу
+- Падрыхтоўка абароненых паролем PDF для сістэмы кіравання дакументамі, якая не падтрымлівае зашыфраваныя файлы
+- Разблакоўка PDF перад іх аб'яднаннем з іншымі дакументамі (многія інструменты аб'яднання не могуць апрацоўваць зашыфраваныя файлы)
+
+## Парады
+
+- Поле пароля прымяняецца да ўсіх загружаных файлаў. Калі ў вашых PDF розныя паролі, апрацоўвайце іх асобнымі пакетамі.
+- Калі вы атрымалі памылку «Няправільны пароль», праверце, ці няма прабелаў у канцы і ці не ўключаны Caps Lock.
+- Пасля расшыфроўкі вынік не мае ніякай абароны. Зашыфруйце яго зноў праз «Зашыфраваць PDF», калі трэба задаць новы пароль.
+
+## Звязаныя інструменты
+
+- [Зашыфраваць PDF](./protect-pdf): паўторна прымяніць шыфраванне з новым паролем
+- [Выдаліць абмежаванні](./remove-restrictions): выдаліць абмежаванні выкарыстання без поўнай расшыфроўкі
+- [Змяніць дазволы](./change-permissions): змяніць асобныя дазволы ў зашыфраваным PDF
diff --git a/docs/be/tools/validate-signature-pdf.md b/docs/be/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..b97f4d70
--- /dev/null
+++ b/docs/be/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Праверыць подпіс PDF
+description: Правярайце лічбавыя подпісы ў PDF-файлах. Праверка сапраўднасці сертыфіката, асобы падпісанта, цэласнасці дакумента і ланцужка даверу.
+---
+
+# Праверыць подпіс PDF
+
+Загрузіце падпісаны PDF, і гэты інструмент выцягне кожны лічбавы подпіс, вызначыць падпісанта, праверыць сапраўднасць сертыфіката і паведаміць, ці быў дакумент зменены пасля падпісання. Таксама можна дадаць давераны сертыфікат, каб праверыць ланцужок подпісу.
+
+## Як гэта працуе
+
+1. Загрузіце падпісаны PDF-файл. Праверка пачнецца аўтаматычна.
+2. Інструмент пакажа зводку: колькасць знойдзеных подпісаў і колькі з іх сапраўдныя.
+3. Для кожнага подпісу ствараецца падрабязная картка з імем падпісанта, выдаўцом, датамі і статусам.
+4. Пры жаданні загрузіце **давераны сертыфікат** (.pem, .crt, .cer, .der), каб праверыць подпіс адносна пэўнага якара даверу. Паўторная праверка запусціцца аўтаматычна.
+
+## Што правяраецца
+
+### Разбор подпісу
+
+Інструмент выцягвае з PDF аб'екты подпісу PKCS#7, дэкадуе структуру ASN.1 і атрымлівае сертыфікат X.509 падпісанта разам з любым ланцужком сертыфікатаў, убудаваным у подпіс.
+
+### Сапраўднасць сертыфіката
+
+- **Тэрмін дзеяння**: ці знаходзіцца сертыфікат зараз у межах свайго тэрміну дзеяння?
+- **Выяўленне самападпісаных**: ці з'яўляецца сертыфікат сам сваім выдаўцом?
+- **Ланцужок даверу**: калі дададзены давераны сертыфікат, ці вядзе да яго ланцужок сертыфіката падпісанта?
+
+### Крыптаграфічная праверка
+
+- Інструмент аднаўляе байты, ахопленыя `/ByteRange` подпісу, хэшуе іх алгарытмам, заяўленым падпісантам, і параўноўвае вынік з атрыбутам `messageDigest` унутры подпісу.
+- Затым ён паўторна серыялізуе падпісаныя атрыбуты як DER SET і правярае подпіс з дапамогай адкрытага ключа сертыфіката падпісанта.
+- **Подпіс лічыцца сапраўдным, толькі калі ўсе гэтыя праверкі пройдзены.** Калі байты PDF былі зменены пасля падпісання або ўбудаваны подпіс не адпавядае ключу падпісанта, статус будзе «Несапраўдны: крыптаграфічная праверка не пройдзена» з канкрэтнай прычынай.
+
+#### Падтрымліваемыя алгарытмы подпісу
+
+| Алгарытм | Спосаб праверкі |
+| ----------------------- | --------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, з рэзервовым Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` пасля пераўтварэння подпісу DER → IEEE P1363 |
+
+Калі подпіс выкарыстоўвае алгарытм не з гэтага спіса (напрыклад, Ed25519, SM2 або RSA з незвычайным OID дайджэста), картка паказвае жоўты статус **«Не праверана: непадтрымліваемы алгарытм подпісу»** разам з канкрэтным OID або прычынай. Гэта наўмыснае падзяленне на тры станы:
+
+- **Сапраўдны**: подпіс крыптаграфічна правераны з дапамогай адкрытага ключа падпісанта.
+- **Несапраўдны**: праверка выканана і дала адмоўны вынік (байты зменены, ключ не адпавядае).
+- **Не праверана**: інструмент не змог выканаць праверку для гэтага алгарытму. Метаданыя сертыфіката ўсё роўна паказваюцца, але лічыце подпіс «невядомым» і праверце яго ў Adobe Acrobat або праз `openssl cms -verify`.
+
+### Ненадзейныя алгарытмы дайджэста
+
+- Подпісы з **MD5 або SHA-1** адхіляюцца як несапраўдныя і пазначаюцца статусам «Ненадзейны дайджэст». Для абодвух алгарытмаў апублікаваны атакі на калізіі, таму подпіс над хэшам SHA-1 або MD5 не гарантуе цэласнасці.
+- SHA-224, SHA-256, SHA-384 і SHA-512 прымаюцца.
+
+### Ахоп дакумента
+
+- **Поўны ахоп**: подпіс ахоплівае ўвесь PDF-файл, гэта значыць пасля падпісання ніводзін байт не быў дададзены або зменены.
+- **Частковы ахоп**: подпіс ахоплівае толькі частку файла. Гэта можа азначаць, што пасля падпісання былі ўнесены змены (не абавязкова зламысныя: інкрэментальныя захаванні даюць частковы ахоп).
+
+## Падрабязнасці подпісу
+
+Кожная картка подпісу паказвае:
+
+- **Падпісаў**: агульнае імя, арганізацыя і электронная пошта з сертыфіката падпісанта
+- **Выдавец**: цэнтр сертыфікацыі, які выдаў сертыфікат падпісанта
+- **Дата подпісу**: часавая пазнака, убудаваная ў подпіс
+- **Сапраўдны з / Сапраўдны да**: тэрмін дзеяння сертыфіката
+- **Прычына**: чаму дакумент быў падпісаны (калі пазначана)
+- **Месца**: дзе ён быў падпісаны (калі пазначана)
+- **Статус ахопу**: поўны або частковы
+- **Значок даверу**: давераны або не ў ланцужку даверу (толькі калі дададзены ўласны сертыфікат)
+
+### Тэхнічныя падрабязнасці
+
+Разгарніце раздзел тэхнічных падрабязнасцей, каб убачыць:
+
+- Серыйны нумар сертыфіката падпісанта
+- Алгарытм дайджэста (SHA-256, SHA-512 і г. д.)
+- Алгарытм подпісу (RSA з SHA-256, ECDSA з SHA-256 і г. д.)
+- Паведамленні пра памылкі для несапраўдных подпісаў
+
+## Сцэнарыі выкарыстання
+
+- Праверка лічбава падпісанага дагавора перад сустрэчным падпісаннем
+- Аўдыт падпісаных дакументаў, каб пераканацца, што іх не падрабілі
+- Праверка, ці не скончыўся тэрмін дзеяння сертыфіката пасля падпісання дакумента
+- Праверка подпісаў адносна каранёвага сертыфіката вашай арганізацыі
+- Прагляд падрабязнасцей подпісу дзяржаўных або юрыдычных дакументаў
+
+## Парады
+
+- Самападпісаны сертыфікат не азначае, што подпіс несапраўдны: гэта значыць, што асобу падпісанта нельга пацвердзіць праз давераны трэці бок. Для ўнутраных дакументаў гэта звычайная справа.
+- Частковы ахоп не заўсёды сведчыць пра падробку. Многія працэсы працы з PDF дадаюць інкрэментальныя абнаўленні (напрыклад, другі подпіс), якія ствараюць частковы ахоп.
+- Загрузіце каранёвы або прамежкавы сертыфікат вашай арганізацыі як давераны, каб праверыць ланцужок даверу.
+
+## Звязаныя інструменты
+
+- [Лічбавы подпіс PDF](./digital-sign-pdf): падпісвайце PDF уласным сертыфікатам
+- [Звесці PDF](./flatten-pdf): звядзіце PDF перад падпісаннем, каб прадухіліць змены пасля подпісу
+- [Выдаліць метаданыя](./remove-metadata): ачысціце PDF перад падпісаннем
diff --git a/docs/be/tools/view-metadata.md b/docs/be/tools/view-metadata.md
new file mode 100644
index 00000000..83ce4743
--- /dev/null
+++ b/docs/be/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Праглядзець метаданыя
+description: Праглядайце ўсе ўласцівасці метаданых PDF, уключаючы звесткі пра дакумент, даныя XMP і структурныя падрабязнасці.
+---
+
+# Праглядзець метаданыя
+
+Вывучайце схаваныя ўласцівасці, убудаваныя ў PDF-файл. Інструмент паказвае звесткі пра дакумент (назва, аўтар, даты), метаданыя XMP, памеры старонак і іншыя структурныя даныя ў зручным для чытання выглядзе.
+
+## Як гэта працуе
+
+1. Загрузіце PDF-файл.
+2. Інструмент адразу разбірае файл і паказвае ўсе даступныя метаданыя ў выглядзе ўпарадкаваных раздзелаў.
+3. Праглядзіце слоўнік звестак пра дакумент, дрэва метаданых XMP і структурныя ўласцівасці.
+4. Асобны крок апрацоўкі не патрэбны: метаданыя паказваюцца адразу пасля загрузкі файла.
+
+## Магчымасці
+
+- Паказвае стандартныя палі звестак пра дакумент: загаловак, аўтар, тэма, ключавыя словы, стваральнік, вытворца
+- Паказвае даты стварэння і змянення ў зручным для чытання фармаце
+- Разбірае і адлюстроўвае поўнае дрэва метаданых XMP з укладзенымі прасторамі імёнаў
+- Пераўтварае фармат даты PDF (`D:20240101120000Z`) у зразумелыя даты
+- Раздзелы можна згортваць для зручнай навігацыі
+
+## Раздзелы метаданых
+
+| Раздзел | Змест |
+| ------------------------- | ----------------------------------------------------------------------------------------- |
+| **Звесткі пра дакумент** | Назва, аўтар, тэма, ключавыя словы, стваральнік, вытворца, дата стварэння, дата змянення |
+| **Метаданыя XMP** | Поўнае дрэва метаданых на аснове XML з прасторамі імёнаў Dublin Core, XAP, PDF і ўласнымі |
+| **Уласцівасці дакумента** | Колькасць старонак, версія PDF, памер файла, стан шыфравання |
+
+## Сцэнарыі выкарыстання
+
+- Праверка, хто аўтар PDF і калі ён быў зменены апошні раз
+- Праверка, што метаданыя правільна зададзены перад публікацыяй дакумента
+- Аўдыт PDF на прыватнасць: праверка, якія асабістыя звесткі ўбудаваны
+- Вызначэнне праграмы, з дапамогай якой PDF быў створаны або зменены (праз поле Producer)
+- Прагляд метаданых XMP для адпаведнасці патрабаванням кіравання лічбавымі актывамі
+
+## Парады
+
+- Радкі дат PDF, якія пачынаюцца з `D:`, аўтаматычна пераўтвараюцца ў фармат вашага мясцовага часавага пояса.
+- Калі палі метаданых пустыя, стваральнік PDF проста іх не запоўніў. Не ўсе PDF маюць багатыя метаданыя.
+- Каб змяніць метаданыя пасля прагляду, выкарыстоўвайце [Рэдагаваць метаданыя](./edit-metadata). Каб цалкам іх выдаліць, выкарыстоўвайце «Выдаліць метаданыя».
+
+## Звязаныя інструменты
+
+- [Рэдагаваць метаданыя](./edit-metadata)
+- [Слаі OCG у PDF](./pdf-layers)
+- [Параўнаць PDF](./compare-pdfs)
diff --git a/docs/be/tools/vsd-to-pdf.md b/docs/be/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..9fbd6689
--- /dev/null
+++ b/docs/be/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD у PDF
+description: Пераўтварайце дыяграмы Microsoft Visio (VSD/VSDX) у PDF у браўзеры. Бясплатна, прыватна, Visio не патрэбны.
+---
+
+# VSD у PDF
+
+Пераўтварайце дыяграмы Microsoft Visio у PDF без усталёўкі Visio. Файлы VSD і VSDX змяшчаюць блок-схемы, арганізацыйныя дыяграмы, сеткавыя схемы і планы памяшканняў, якія большасць людзей не можа адкрыць. Гэты інструмент ператварае іх у акуратныя PDF, якія можна праглядаць на любой прыладзе.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :----------- | :-------- | :----------------------------------------- |
+| Visio Binary | `.vsd` | Стары фармат Visio (Visio 2003 і ранейшыя) |
+| Visio XML | `.vsdx` | Сучасны фармат Visio (Visio 2013+) |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы VSD ці VSDX. Абодва фарматы можна змешваць у адным пакеце.
+2. Праглядзіце спіс файлаў. Выдаліце непатрэбныя з дапамогай значка сметніцы або выкарыстайце **Дадаць файлы**, каб дадаць іншыя дыяграмы.
+3. Націсніце **Пераўтварыць у PDF**. Рухавік на аснове LibreOffice загружаецца ў браўзеры і ператварае кожную дыяграму ў PDF, захоўваючы фігуры, злучальнікі, подпісы і макет старонкі.
+4. Адна дыяграма спампоўваецца адразу як PDF. Некалькі файлаў ствараюць ZIP-архіў з назвай `vsd-to-pdf.zip`.
+
+## Параметры
+
+Налады не патрэбны. Пераўтваральнік захоўвае арыгінальны памер і арыентацыю старонкі з дакумента Visio.
+
+## Сцэнарыі выкарыстання
+
+- Прагляд дыяграм Visio ад калегі, калі ў вас няма ліцэнзіі Visio
+- Уключэнне сеткавых або архітэктурных дыяграм у праектную дакументацыю ў выглядзе PDF
+- Друк арганізацыйных дыяграм або схем працэсаў для раздатковых матэрыялаў на сустрэчах
+- Архіваванне старых файлаў VSD з ранейшых версій Visio ў надзейным фармаце
+
+## Парады
+
+- Шматстаронкавыя дакументы Visio ствараюць шматстаронкавыя PDF: кожная старонка Visio адпавядае старонцы PDF.
+- Файлы VSDX (сучасны фармат на аснове XML) звычайна пераўтвараюцца дакладней, чым старыя двайковыя файлы VSD.
+- Рухавік LibreOffice загружаецца адзін раз за сеанс. Пры першым пераўтварэнні давядзецца крыху пачакаць, наступныя файлы апрацоўваюцца хутчэй.
+
+## Звязаныя інструменты
+
+- [ODG у PDF](./odg-to-pdf)
+- [PUB у PDF](./pub-to-pdf)
+- [PSD у PDF](./psd-to-pdf)
diff --git a/docs/be/tools/webp-to-pdf.md b/docs/be/tools/webp-to-pdf.md
new file mode 100644
index 00000000..98cd2f5e
--- /dev/null
+++ b/docs/be/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP у PDF
+description: Пераўтварайце выявы WebP у фармат PDF непасрэдна ў браўзеры з рэгуляванай якасцю сціскання.
+---
+
+# WebP у PDF
+
+Пераўтварайце выявы ў фармаце Google WebP у PDF. Гэта асабліва карысна, калі вы спампавалі з сеціва выявы ў фармаце WebP і вам патрэбны больш універсальны фармат для друку або абмену.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні |
+| :----- | :-------- |
+| WebP | `.webp` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы WebP.
+2. Праглядзіце спіс файлаў і выдаліце непатрэбныя.
+3. Выберыце ўзровень **Якасць PDF**.
+4. Націсніце **Пераўтварыць у PDF**. Вынік спампуецца як `from_webps.pdf`.
+
+Унутры кожная выява WebP дэкадуецца праз canvas API браўзера, а затым убудоўваецца ў PDF з дапамогай pdf-lib. Гэта значыць, што пераўтварэнне працуе ў любым браўзеры, які падтрымлівае дэкадаванне WebP (так робяць усе сучасныя браўзеры).
+
+## Параметры
+
+**Якасць PDF** кіруе сцісканнем пры ўбудаванні выяў:
+
+- **Высокая якасць**: захоўвае найбольш дэталей.
+- **Сярэдняя якасць** (па змаўчанні): збалансаваны вынік.
+- **Нізкая якасць**: найменшы памер файла.
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне спампаваных з сеціва выяў WebP у PDF для друку
+- Афармленне здымкаў экрана WebP з Chrome або Edge у дакументацыю
+- Стварэнне PDF-партфоліо з выяў, экспартаваных з дызайнерскіх праграм, якія па змаўчанні захоўваюць у WebP
+- Архіваванне выяў WebP у больш універсальным фармаце
+
+## Парады
+
+- Унутры WebP дэкадуецца ў PNG перад убудаваннем у PDF, таму выявы WebP без страт захоўваюць якасць пры наладзе «Высокая».
+- Калі ў вас сумесь WebP і іншых фарматаў выяў, выкарыстоўвайце інструмент [Відарысы ў PDF](./image-to-pdf): ён прымае ўсё адразу.
+
+## Звязаныя інструменты
+
+- [Відарысы ў PDF](./image-to-pdf)
+- [PNG у PDF](./png-to-pdf)
+- [JPG у PDF](./jpg-to-pdf)
diff --git a/docs/be/tools/word-to-pdf.md b/docs/be/tools/word-to-pdf.md
new file mode 100644
index 00000000..bc5f92cc
--- /dev/null
+++ b/docs/be/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word у PDF
+description: Пераўтварайце дакументы Word (DOC, DOCX), файлы ODT і RTF у PDF у браўзеры з поўным захаваннем фарматавання.
+---
+
+# Word у PDF
+
+Пераўтварайце дакументы Microsoft Word і сумяшчальныя фарматы ў PDF. Інструмент выкарыстоўвае рухавік LibreOffice у браўзеры, які апрацоўвае файлы DOC, DOCX, ODT і RTF і захоўвае ў выніку фарматаванне, табліцы, выявы, верхнія і ніжнія калантытулы і стылі.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнні |
+| :---------------- | :-------- |
+| Word (сучасны) | `.docx` |
+| Word (стары) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце дакументы Word. Можна выбраць некалькі файлаў адразу.
+2. Праглядзіце спіс файлаў і кіруйце ім.
+3. Націсніце **Пераўтварыць у PDF**. Рухавік LibreOffice загружаецца пры першым выкарыстанні (індыкатар прагрэсу паказвае стан ініцыялізацыі), пасля чаго пераўтвараецца кожны файл.
+4. Адзін файл спампоўваецца адразу як PDF. Некалькі файлаў пакуюцца ў `word-converted.zip`.
+
+## Параметры
+
+У гэтага інструмента няма дадатковых налад. Рухавік LibreOffice стварае вынік з дапамогай свайго стандартнага профілю экспарту ў PDF.
+
+## Вынік
+
+| Колькасць файлаў | Вынік |
+| :--------------- | :--------------------------------------------------------- |
+| 1 файл | Адзін PDF (арыгінальная назва файла з пашырэннем `.pdf`) |
+| 2+ файлы | ZIP-архіў (`word-converted.zip`) з адным PDF на кожны файл |
+
+## Сцэнарыі выкарыстання
+
+- Пераўтварэнне рэзюмэ або суправаджальнага ліста з DOCX у PDF перад адпраўкай на вакансію
+- Пакетнае пераўтварэнне дагавораў або прапаноў у PDF для перадачы кліенту
+- Ператварэнне старых файлаў `.doc` у сучасныя PDF для доўгатэрміновага архіва
+- Пераўтварэнне сумесных дакументаў з Google Docs (экспартаваных як DOCX) у PDF
+- Стварэнне гатовых да друку PDF з шаблонаў Word, якія выкарыстоўваюцца для аўтаматычнага стварэння дакументаў
+
+## Парады
+
+- Рухавік LibreOffice спампоўваецца адзін раз за сеанс і кэшуецца. Пры першым пераўтварэнні загрузка зойме некалькі секунд, наступныя пераўтварэнні значна хутчэйшыя.
+- Складанае фарматаванне (макрасы, элементы ActiveX, складаны SmartArt) можа пераўтварыцца не ідэальна. Стандартныя элементы дакумента (тэкст, табліцы, выявы, калантытулы, зноскі) пераўтвараюцца надзейна.
+- Паколькі інструмент таксама прымае ODT і RTF, яго можна выкарыстоўваць як універсальны пераўтваральнік для ўсіх тэкставых фарматаў.
+
+## Звязаныя інструменты
+
+- [ODT у PDF](./odt-to-pdf)
+- [RTF у PDF](./rtf-to-pdf)
+- [Excel у PDF](./excel-to-pdf)
+- [PowerPoint у PDF](./powerpoint-to-pdf)
diff --git a/docs/be/tools/wpd-to-pdf.md b/docs/be/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..840c44fa
--- /dev/null
+++ b/docs/be/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD у PDF
+description: Пераўтварайце дакументы WordPerfect (WPD) у PDF у браўзеры з дапамогай LibreOffice. Бясплатна і прыватна.
+---
+
+# WPD у PDF
+
+Пераўтварайце дакументы Corel WordPerfect у PDF-файлы. Калісьці WPD быў асноўным тэкставым фарматам у юрыдычных кантор і дзяржаўных установах. Калі ў вас ёсць старыя файлы WordPerfect, якія сучасныя праграмы не адкрываюць, гэты інструмент верне іх да жыцця ў выглядзе стандартных PDF.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :---------- | :-------- | :------------------------------ |
+| WordPerfect | `.wpd` | Усе асноўныя версіі WordPerfect |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы WPD. Можна выбраць некалькі файлаў адразу.
+2. Праглядзіце спіс файлаў. Выдаліце непатрэбныя з дапамогай значка сметніцы або выкарыстайце **Дадаць файлы**, каб дадаць іншыя дакументы.
+3. Націсніце **Пераўтварыць у PDF**. Інструмент загружае ў браўзеры рухавік пераўтварэння на аснове LibreOffice, які разбірае фармат WPD і стварае PDF.
+4. Адзін файл спампоўваецца адразу як PDF. Пакетнае пераўтварэнне стварае ZIP-архіў з назвай `wpd-to-pdf.zip`.
+
+## Параметры
+
+Налады не патрэбны. Рухавік LibreOffice аўтаматычна апрацоўвае фарматаванне, шрыфты і макет WPD.
+
+## Сцэнарыі выкарыстання
+
+- Адкрыццё юрыдычных дакументаў многагадовай даўнасці, напісаных у WordPerfect
+- Пераўтварэнне архіўных дзяржаўных дакументаў з WPD у сучасны фармат
+- Перанос старой бібліятэкі дакументаў WordPerfect у PDF для доўгатэрміновага захоўвання
+- Абмен файламі WPD з атрымальнікамі, у якіх не ўсталяваны Corel WordPerfect
+
+## Парады
+
+- Рухавік LibreOffice загружаецца пры першым выкарыстанні, гэта займае некаторы час. Наступныя пераўтварэнні ў тым жа сеансе хутчэйшыя.
+- Складаныя макрасы WPD і коды фарматавання (reveal codes) не захоўваюцца, але візуальны макет, тэкст і базавае фарматаванне пераносяцца ў PDF.
+
+## Звязаныя інструменты
+
+- [WPS у PDF](./wps-to-pdf)
+- [ODG у PDF](./odg-to-pdf)
diff --git a/docs/be/tools/wps-to-pdf.md b/docs/be/tools/wps-to-pdf.md
new file mode 100644
index 00000000..dce22aa2
--- /dev/null
+++ b/docs/be/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS у PDF
+description: Пераўтварайце дакументы Microsoft Works (WPS) у PDF у браўзеры. Бясплатна, без рэгістрацыі, цалкам прыватна.
+---
+
+# WPS у PDF
+
+Пераўтварайце файлы тэкставага рэдактара Microsoft Works у PDF. Microsoft Works пастаўляўся з хатнімі камп'ютарамі ў канцы 1990-х і ў 2000-я гады, і шмат файлаў WPS дагэтуль захоўваецца на старых дысках і ў архівах пошты. Гэты інструмент адкрывае іх у браўзеры і стварае акуратныя PDF.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :-------------- | :-------- | :------------------------------------------- |
+| Microsoft Works | `.wps` | Файлы тэкставага рэдактара з Microsoft Works |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы WPS. Можна дадаць некалькі файлаў.
+2. Праглядзіце спіс файлаў. Выкарыстайце значок сметніцы, каб выдаліць асобныя файлы, або націсніце **Дадаць файлы**, каб пашырыць пакет.
+3. Націсніце **Пераўтварыць у PDF**. Рухавік на аснове LibreOffice загружаецца ў браўзеры і пераўтварае кожны дакумент WPS у PDF.
+4. Адзін файл спампоўваецца адразу як PDF. Некалькі файлаў аб'ядноўваюцца ў ZIP-архіў з назвай `wps-to-pdf.zip`.
+
+## Параметры
+
+Дадатковыя налады не патрэбны. Пераўтваральнік апрацоўвае тэкст, базавае фарматаванне і ўбудаваныя выявы з файла WPS.
+
+## Сцэнарыі выкарыстання
+
+- Аднаўленне старых школьных або працоўных дакументаў, захаваных у фармаце Microsoft Works
+- Адкрыццё далучэнняў WPS з электроннай пошты, калі Microsoft Works не ўсталяваны
+- Пераўтварэнне архіва файлаў WPS для пераносу ў сучасную сістэму дакументаў
+- Друк старых дакументаў, якія сучасныя тэкставыя рэдактары не могуць адкрыць
+
+## Парады
+
+- Не блытайце файлы `.wps` з Microsoft Works з файламі WPS Office. Гэты інструмент прызначаны менавіта для старога фармату Microsoft Works.
+- Рухавік LibreOffice загружаецца пры першым выкарыстанні некаторы час. Пасля загрузкі наступныя пераўтварэнні ў тым жа сеансе выконваюцца хутчэй.
+
+## Звязаныя інструменты
+
+- [WPD у PDF](./wpd-to-pdf)
+- [PUB у PDF](./pub-to-pdf)
diff --git a/docs/be/tools/xml-to-pdf.md b/docs/be/tools/xml-to-pdf.md
new file mode 100644
index 00000000..5abacf4f
--- /dev/null
+++ b/docs/be/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML у PDF
+description: Пераўтварайце файлы XML у структураваныя PDF-дакументы ў браўзеры. Бясплатна, прыватна, без апрацоўкі на серверы.
+---
+
+# XML у PDF
+
+Пераўтварайце файлы даных XML у зручныя для чытання структураваныя PDF-дакументы. Сыры XML магутны, але людзям яго цяжка чытаць. Гэты інструмент разбірае дрэва XML, знаходзіць паўторныя структуры даных і афармляе іх як табліцы і раздзелы ў PDF фармату A4 з альбомнай арыентацыяй.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :----- | :-------- | :------------------------------------ |
+| XML | `.xml` | Любы карэктна сфармаваны XML-дакумент |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы XML. Некалькі файлаў можна апрацаваць адным пакетам.
+2. Праглядзіце спіс файлаў. Выдаліце непатрэбныя з дапамогай значка сметніцы або націсніце **Дадаць файлы**, каб дадаць іншыя.
+3. Націсніце **Пераўтварыць у PDF**. Інструмент разбірае структуру XML з дапамогай убудаванага ў браўзер DOMParser, аналізуе іерархію даных і стварае PDF з дапамогай jsPDF з аўтаматычным фарматаваннем табліц.
+4. Адзін файл спампоўваецца як PDF. Некалькі вынікаў пакуюцца ў `xml-to-pdf.zip`.
+
+## Параметры
+
+Ручная налада не патрэбна. Пераўтваральнік аўтаматычна вызначае структуру XML і выбірае прыдатны макет табліц. Вынік выкарыстоўвае альбомную арыентацыю A4, каб змясціць шырокія наборы даных.
+
+## Сцэнарыі выкарыстання
+
+- Ператварэнне экспартаў даных XML з баз даных або API у справаздачы для друку
+- Стварэнне зразумелых зводак з файлаў канфігурацыі XML
+- Пераўтварэнне рахункаў або журналаў транзакцый на аснове XML у PDF для ўліку
+- Ператварэнне карт сайта XML або стужак RSS у зручныя для чытання дакументы
+
+## Парады
+
+- XML павінен быць карэктна сфармаваны. Калі аналізатар знойдзе сінтаксічныя памылкі, пераўтварэнне не атрымаецца, і з'явіцца паведамленне з апісаннем праблемы.
+- Глыбока ўкладзеныя структуры XML разгортваюцца ў табліцы. Для лепшага выніку даныя павінны мець паўторныя суседнія элементы з аднолькавымі даччынымі элементамі.
+- Падчас пераўтварэння паказваецца прагрэс кожнага этапу: чытанне, разбор, аналіз і адлюстраванне.
+
+## Звязаныя інструменты
+
+- [FB2 у PDF](./fb2-to-pdf)
+- [XPS у PDF](./xps-to-pdf)
+- [Email у PDF](./email-to-pdf)
diff --git a/docs/be/tools/xps-to-pdf.md b/docs/be/tools/xps-to-pdf.md
new file mode 100644
index 00000000..c20f79ff
--- /dev/null
+++ b/docs/be/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS у PDF
+description: Пераўтварайце дакументы XPS і OXPS у фармат PDF у браўзеры. Без загрузкі на сервер, без рэгістрацыі, цалкам прыватна.
+---
+
+# XPS у PDF
+
+Пераўтварайце дакументы Microsoft XPS і OXPS у стандартныя PDF-файлы. XPS (XML Paper Specification) быў адказам Microsoft на PDF, але яго падтрымка на розных платформах значна скарацілася. Гэты інструмент зноў робіць такія дакументы даступнымі для ўсіх.
+
+## Падтрымліваемыя фарматы
+
+| Фармат | Пашырэнне | Заўвагі |
+| :----- | :-------- | :----------------------------------- |
+| XPS | `.xps` | Арыгінальны фармат Microsoft XPS |
+| OXPS | `.oxps` | Open XPS, варыянт стандарту ECMA-388 |
+
+## Як гэта працуе
+
+1. Націсніце на вобласць загрузкі або перацягніце файлы XPS/OXPS. Можна выбраць некалькі файлаў адразу.
+2. Праглядзіце спіс файлаў. Выдаліце асобныя файлы з дапамогай значка сметніцы або націсніце **Дадаць файлы**, каб дадаць іншыя дакументы.
+3. Націсніце **Пераўтварыць у PDF**. Рухавік PyMuPDF апрацоўвае кожны дакумент лакальна ў вашым браўзеры.
+4. Адзін файл спампоўваецца адразу як PDF. Некалькі файлаў аб'ядноўваюцца ў ZIP-архіў з назвай `xps-converted.zip`.
+
+## Параметры
+
+Гэты інструмент выконвае прамое пераўтварэнне фармату без дадатковых налад. Вынік захоўвае арыгінальныя памеры старонак, вектарную графіку, шрыфты і выявы з крыніцы XPS.
+
+## Сцэнарыі выкарыстання
+
+- Адкрыццё файлаў XPS са старых сістэм Windows, дзе па змаўчанні выкарыстоўваўся драйвер друку XPS
+- Пераўтварэнне дакументаў OXPS з Windows 10/11 для абмену з карыстальнікамі macOS або Linux
+- Архіваванне старых файлаў XPS у больш распаўсюджаным фармаце
+- Забеспячэнне доступу знешніх атрымальнікаў да дзяржаўных або карпаратыўных дакументаў у фармаце XPS
+
+## Парады
+
+- Пашырэнні `.xps` і `.oxps` апрацоўваюцца аўтаматычна: іх можна змешваць у адным пакеце.
+- Калі арыгінальны файл XPS быў створаны драйверам друку з высокай раздзяляльнасцю, атрыманы PDF захоўвае гэтую якасць. Перадыскрэтызацыя не выконваецца.
+
+## Звязаныя інструменты
+
+- [Word у PDF](./word-to-pdf)
+- [XML у PDF](./xml-to-pdf)
diff --git a/docs/ca/contributing.md b/docs/ca/contributing.md
new file mode 100644
index 00000000..b223d032
--- /dev/null
+++ b/docs/ca/contributing.md
@@ -0,0 +1,136 @@
+# Contribuir
+
+Gràcies pel teu interès a contribuir a BentoPDF! Aquesta guia t'ajudarà a començar.
+
+## Primers passos
+
+### Requisits previs
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Configuració
+
+```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
+```
+
+## Estructura del projecte
+
+```
+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
+```
+
+## Afegir una eina nova
+
+### Pas 1: crea el fitxer de lògica
+
+Crea `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
+});
+```
+
+### Pas 2: crea la pàgina HTML
+
+Crea `src/pages/your-tool.html` seguint les plantilles d'eines existents.
+
+### Pas 3: registra l'eina
+
+Afegeix a `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.',
+}
+```
+
+### Pas 4: afegeix-la a la configuració de la compilació
+
+Afegeix la pàgina a `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Pas 5: afegeix les traduccions
+
+Afegeix entrades a tots els fitxers d'idioma de `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Estil de codi
+
+- Utilitza TypeScript per a tot el codi nou
+- Segueix els patrons existents per mantenir la coherència
+- Executa `npm run format` abans de fer commit
+- Sense comentaris al codi de producció (els comentaris s'eliminen durant la compilació)
+
+## Procés de pull request
+
+1. Crea una branca de funcionalitat: `git checkout -b feature/your-feature`
+2. Fes els canvis
+3. Prova-ho a fons: `npm run build`
+4. Envia una PR amb una descripció clara
+
+## Traducció
+
+Consulta [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) per afegir idiomes nous.
+
+## Acord de llicència de col·laborador
+
+Abans que es pugui fusionar la teva PR, hauràs de signar el nostre CLA:
+
+- [CLA individual (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [CLA corporatiu (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Obtenir ajuda
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Comunitat de Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Llicència
+
+BentoPDF té doble llicència:
+
+- **AGPL-3.0** per a projectes de codi obert on comparteixes tot el codi font públicament
+- **Llicència comercial** per a aplicacions propietàries o de codi tancat: [Aconsegueix la llicència vitalícia per 79 $](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+En contribuir, acceptes que les teves contribucions es llicenciïn amb aquests termes.
diff --git a/docs/ca/getting-started.md b/docs/ca/getting-started.md
new file mode 100644
index 00000000..778554a4
--- /dev/null
+++ b/docs/ca/getting-started.md
@@ -0,0 +1,80 @@
+# Primers passos
+
+Et donem la benvinguda a BentoPDF! Aquesta guia t'ajudarà a posar-te en marxa ràpidament.
+
+## Què és BentoPDF?
+
+BentoPDF és un conjunt d'eines PDF gratuït, de codi obert i pensat per protegir la privadesa, que funciona **íntegrament al navegador**. Els fitxers no surten mai del dispositiu: tot el processament es fa en local amb tecnologia WebAssembly (WASM).
+
+## Inici ràpid
+
+### Opció 1: utilitza la versió allotjada
+
+Visita [bentopdf.com](https://www.bentopdf.com) per utilitzar BentoPDF a l'instant, sense instal·lació.
+
+### Opció 2: allotja'l tu mateix amb Docker
+
+> [!IMPORTANT]
+> La conversió de fitxers d'Office requereix `SharedArrayBuffer`, que necessita tots dos:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - un context segur
+>
+> `http://localhost` funciona per a proves locals perquè els navegadors consideren fiable el bucle local. `http://192.168.x.x` o altres IP de la xarxa local normalment no, de manera que les conversions de Word/Excel/PowerPoint requeriran HTTPS quan s'hi accedeixi des d'altres dispositius de la xarxa.
+
+```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 s'ofereix en dues versions: la **versió autoallotjada** (`bentopdf-simple`, la utilitzada més amunt) per a desplegaments interns, d'equip o d'organització, i la **versió comercial** (`bentopdf:latest`) que utilitza el mateix bentopdf.com i els titulars de llicència comercial amb desplegaments públics. Totes dues inclouen les mateixes eines PDF: la versió comercial afegeix la portada, les preguntes freqüents, els testimonis i el peu de pàgina de bentopdf.com. Si tens dubtes, utilitza la versió autoallotjada.
+
+Després obre `http://localhost:3000` al navegador.
+
+> [!NOTE]
+> Si prepares un desplegament d'OCR aïllat de la xarxa, has d'allotjar internament les fonts de la capa de text d'OCR, a més del worker de Tesseract, el runtime principal i els fitxers traineddata. La configuració completa es documenta a [Autoallotjament](/ca/self-hosting/), incloent-hi `VITE_OCR_FONT_BASE_URL` i el directori `ocr-fonts/` inclòs.
+
+### Opció 3: compila des del codi font
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Les funcions d'un cop d'ull
+
+| Categoria | Eines |
+| ------------------------- | ------------------------------------------------------------ |
+| **Converteix a PDF** | Word, Excel, PowerPoint, imatges, Markdown, EPUB, MOBI i més |
+| **Converteix des de PDF** | JPG, PNG, text, Excel, SVG i més |
+| **Edita i anota** | Signa, ressalta, censura, omple formularis, afegeix segells |
+| **Organitza** | Fusiona, divideix, gira, suprimeix pàgines, reordena |
+| **Optimitza** | Comprimeix, repara, aplana, OCR |
+| **Seguretat** | Xifra, desxifra, elimina restriccions |
+
+## Compatibilitat amb navegadors
+
+BentoPDF funciona millor en navegadors moderns:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Següents passos
+
+- [Explora totes les eines](/ca/tools/)
+- [Allotja BentoPDF tu mateix](/ca/self-hosting/)
+- [Contribueix al projecte](/ca/contributing)
diff --git a/docs/ca/index.md b/docs/ca/index.md
new file mode 100644
index 00000000..1c308d63
--- /dev/null
+++ b/docs/ca/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Eines PDF gratuïtes i de codi obert'
+ tagline: Processa PDF íntegrament al navegador. Sense càrregues. Sense servidors. Privadesa total.
+ actions:
+ - theme: brand
+ text: Comença
+ link: /ca/getting-started
+ - theme: alt
+ text: Veure les eines
+ link: /ca/tools/
+ - theme: alt
+ text: Autoallotjament
+ link: /ca/self-hosting/
+ - theme: alt
+ text: Llicència comercial
+ link: /ca/licensing
+
+features:
+ - icon: 🔒
+ title: 100 % privat
+ details: Els fitxers no surten mai del dispositiu. Tot el processament es fa en local al navegador amb WebAssembly.
+ - icon: ⚡
+ title: Ràpid i gratuït
+ details: Sense registres, sense límits, sense marques d'aigua. Processa PDF il·limitats de franc, per sempre.
+ - icon: 🛠️
+ title: Més de 50 eines
+ details: Converteix, edita, fusiona, divideix, comprimeix, signa, aplica OCR i més. Tot el que necessites en un sol lloc.
+
+ - icon: 🌐
+ title: Autoallotjable
+ details: Desplega'l a la teva pròpia infraestructura. Docker, Vercel, Netlify, AWS o entorns totalment aïllats de la xarxa amb workers d'OCR, dades d'idioma i fonts de capa de text autoallotjats.
+---
+
+## OCR sense connexió
+
+Si autoallotges BentoPDF en un entorn aïllat de la xarxa o sense connexió, l'OCR necessita més que el worker de Tesseract i els fitxers traineddata. Per generar PDF amb text cercable, també cal servir internament les fonts de la capa de text d'OCR.
+Consulta [Autoallotjament](/ca/self-hosting/) per a la configuració completa, incloent-hi `VITE_OCR_FONT_BASE_URL`, el directori `ocr-fonts/` inclòs i el flux de treball aïllat actualitzat.
diff --git a/docs/ca/licensing.md b/docs/ca/licensing.md
new file mode 100644
index 00000000..8874b45c
--- /dev/null
+++ b/docs/ca/licensing.md
@@ -0,0 +1,110 @@
+# 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](/ca/self-hosting/#configuracio-de-wasm-components-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/ca/self-hosting/apache.md b/docs/ca/self-hosting/apache.md
new file mode 100644
index 00000000..50838591
--- /dev/null
+++ b/docs/ca/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Desplega amb Apache
+
+Allotja BentoPDF amb Apache HTTP Server.
+
+## Requisits previs
+
+- Apache 2.4+
+- mod_rewrite activat
+- Certificat SSL (recomanat)
+
+## Pas 1: compila el projecte
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Per personalitzar la marca, defineix variables d'entorn abans de compilar:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Pas 2: copia els fitxers
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Pas 3: configuració d'Apache
+
+Crea `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Pas 4: .htaccess per a l'encaminament
+
+Crea `/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
+```
+
+## Pas 5: activa els mòduls necessaris
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Pas 6: activa el lloc
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Desplegament en un subdirectori
+
+Per allotjar-lo a `/pdf/`:
+
+1. Compila amb la URL base:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Actualitza `.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
+```
+
+## Resolució de problemes
+
+### Errors 404 amb WASM
+
+Assegura't que el tipus MIME està configurat:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Signa PDF o el emplenador de formularis mostra un visor en blanc (error de MIME amb `.mjs`)
+
+Si la consola del navegador mostra:
+
+```
+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.
+```
+
+…i la petició que falla acaba en `.mjs`, a la configuració d'Apache li falta l'assignació `.mjs → application/javascript`. El visor de PDF inclòs porta fitxers de mòdul ES amb extensió `.mjs`, i el `mime.types` estàndard d'Apache no els inclou per defecte.
+
+Afegeix-ho al VirtualHost o a `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Després recarrega Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Per comprovar-ho: a les DevTools del navegador → pestanya Network, troba la petició `.mjs` que falla i mira la capçalera de resposta `Content-Type`. Ara hauria de ser `application/javascript`, no `application/octet-stream`.
+
+### La reescriptura no funciona
+
+Comprova que mod_rewrite està activat:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### La conversió de Word/ODT/Excel a PDF no funciona
+
+LibreOffice WASM requereix `SharedArrayBuffer`, que necessita aquestes capçaleres:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+També necessita un context segur. `http://localhost` funciona per a proves locals, però `http://192.168.x.x` o altres IP de la xarxa local normalment requereixen HTTPS. Si les capçaleres hi són però `window.crossOriginIsolated` continua sent `false`, comprova si la pàgina s'obre per HTTP sense xifrar des d'un origen que no és de bucle local.
+
+Els fitxers precomprimits `.wasm.gz` i `.data.gz` també necessiten un `Content-Encoding` correcte:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Assegura't que `mod_headers` està activat: `sudo a2enmod headers`
+
+### Permís denegat
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/ca/self-hosting/aws.md b/docs/ca/self-hosting/aws.md
new file mode 100644
index 00000000..0c19695a
--- /dev/null
+++ b/docs/ca/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Desplega a AWS S3 + CloudFront
+
+Allotja BentoPDF a AWS per tenir el màxim control i escalabilitat.
+
+## Arquitectura
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Pas 1: crea el bucket d'S3
+
+```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
+```
+
+## Pas 2: compila i puja
+
+```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
+```
+
+## Pas 3: crea la distribució de CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+O utilitza la consola d'AWS:
+
+1. Ves a CloudFront → Create distribution
+2. Origin domain: selecciona el teu bucket d'S3
+3. Activa "Origin Access Control"
+4. Default root object: `index.html`
+5. Crea la distribució
+
+## Pas 3b: política de capçaleres de resposta (obligatòria per a LibreOffice WASM)
+
+Les conversions basades en LibreOffice (Word, Excel i PowerPoint a PDF) requereixen `SharedArrayBuffer`, que necessita unes capçaleres de resposta concretes. Crea una Response Headers Policy de CloudFront:
+
+1. Ves a CloudFront → Policies → Response headers
+2. Crea una política personalitzada amb aquestes capçaleres:
+
+| Capçalera | Valor |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Associa la política al comportament de memòria cau per defecte de la distribució
+
+O per 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}
+ ]
+ }
+ }'
+```
+
+## Pas 3c: metadades d'S3 per als fitxers WASM precomprimits
+
+Els fitxers WASM de LibreOffice estan precomprimits (`.wasm.gz`, `.data.gz`). Defineix el Content-Type i el Content-Encoding correctes perquè els navegadors els descomprimeixin:
+
+```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 Important
+Sense la política de capçaleres de resposta, `SharedArrayBuffer` no està disponible i les conversions de LibreOffice WASM es quedaran bloquejades al ~55 %. Sense el Content-Encoding correcte als fitxers `.gz`, el navegador rep bytes gzip en brut i la compilació de WASM falla.
+:::
+
+## Pas 4: política del bucket d'S3
+
+Permet que CloudFront accedeixi al 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Pas 5: pàgines d'error personalitzades
+
+Configura el 404 perquè retorni `index.html` per a l'encaminament SPA:
+
+1. CloudFront → Error pages
+2. Crea una resposta d'error personalitzada:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Estimació de costos
+
+| Recurs | Cost estimat |
+| --------------------------- | ------------ |
+| Emmagatzematge S3 (~500MB) | ~0,01 $/mes |
+| CloudFront (1TB transfer.) | ~85 $/mes |
+| CloudFront (10GB transfer.) | ~0,85 $/mes |
+
+::: tip
+Utilitza S3 Intelligent Tiering per optimitzar costos en fitxers d'accés poc freqüent.
+:::
+
+## Automatització amb 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"
+ }
+}
+```
diff --git a/docs/ca/self-hosting/cloudflare.md b/docs/ca/self-hosting/cloudflare.md
new file mode 100644
index 00000000..85a5eb95
--- /dev/null
+++ b/docs/ca/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Desplega a Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) ofereix allotjament estàtic ràpid i global amb amplada de banda il·limitada.
+
+## Desplegament ràpid
+
+1. Ves a [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Fes clic a "Create a project"
+3. Connecta el teu repositori de GitHub
+
+## Configuració de la compilació
+
+| Paràmetre | Valor |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Variables d'entorn
+
+Afegeix-les a Settings → Environment variables:
+
+| Variable | Valor |
+| ----------------------- | ----------------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (opcional) |
+| `VITE_BRAND_NAME` | Nom de marca personalitzat (opcional) |
+| `VITE_BRAND_LOGO` | Ruta del logotip relativa a `public/` (opcional) |
+| `VITE_FOOTER_TEXT` | Text personalitzat del peu de pàgina/copyright (opcional) |
+| `VITE_DEFAULT_LANGUAGE` | Idioma per defecte de la interfície, p. ex. `fr` (opcional) |
+
+## Fitxer de configuració
+
+Crea `_headers` a la carpeta `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 Important
+Les capçaleres `Cross-Origin-Embedder-Policy` i `Cross-Origin-Opener-Policy` són obligatòries per a les conversions de Word/ODT/Excel/PowerPoint a PDF. Sense elles, `SharedArrayBuffer` no està disponible i el motor LibreOffice WASM no s'inicialitzarà.
+:::
+
+Crea `_redirects` per a l'encaminament SPA:
+
+```
+/* /index.html 200
+```
+
+## Domini personalitzat
+
+1. Ves al teu projecte de Pages
+2. Fes clic a "Custom domains"
+3. Afegeix el teu domini
+4. Cloudflare configurarà el DNS automàticament si el domini és a Cloudflare
+
+## Avantatges
+
+- **Amplada de banda il·limitada i gratuïta**
+- **CDN global** amb més de 300 ubicacions de xarxa
+- **HTTPS automàtic**
+- **Desplegaments de previsualització** per a les pull requests
+- **Compilacions ràpides**
+
+## Resolució de problemes
+
+### Càrrega de fitxers grans
+
+Cloudflare Pages admet fitxers de fins a 25 MB. Els mòduls WASM haurien d'anar bé, però si arribes als límits, considera:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Límits de mida dels Workers
+
+Si utilitzes Cloudflare Workers per a un encaminament avançat, tingues en compte el límit d'1 MB dels plans gratuïts.
+
+## Worker de proxy CORS (per a signatures digitals)
+
+L'eina de signatura digital requereix un proxy CORS per obtenir les cadenes de certificats. Desplega el worker inclòs:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Funcions de seguretat
+
+| Funció | Descripció |
+| -------------------------- | ------------------------------------ |
+| **Restriccions d'URL** | Només es permeten URL de certificats |
+| **Límit de mida** | Màx. 10MB per petició |
+| **Límit de freqüència** | 60 peticions/IP/min (requereix KV) |
+| **Bloqueig d'IP privades** | Bloqueja localhost i IP internes |
+
+### Activa el límit de freqüència
+
+```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
+```
+
+### Compila amb la URL del proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+O amb 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 .
+```
+
+> **Nota:** Consulta el [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) per a la configuració de la signatura HMAC.
diff --git a/docs/ca/self-hosting/cors-proxy.md b/docs/ca/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..88f6c0d5
--- /dev/null
+++ b/docs/ca/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# Proxy CORS per obtenir certificats
+
+L'eina de signatura digital utilitza un proxy CORS per obtenir els certificats dels emissors a les autoritats de certificació (CA) externes. Això és necessari perquè molts servidors de CA no inclouen capçaleres CORS a les respostes, cosa que impedeix la consulta directa des del navegador.
+
+A més, molts servidors de CA serveixen els certificats per HTTP sense xifrar. Quan la teva instància de BentoPDF s'allotja per HTTPS, els navegadors bloquegen aquestes peticions HTTP (política de contingut mixt). El proxy CORS resol tots dos problemes encaminant les peticions per un punt final HTTPS amb les capçaleres adequades.
+
+## Com funciona
+
+Quan signes un PDF amb un certificat:
+
+1. La biblioteca `zgapdfsigner` intenta construir una cadena de certificats completa
+2. Obté els certificats dels emissors a partir de les URL incrustades a l'extensió AIA (Authority Information Access) del teu certificat
+3. Aquestes peticions passen per un proxy CORS que afegeix les capçaleres `Access-Control-Allow-Origin` necessàries
+4. El proxy retorna les dades del certificat al navegador
+
+## Autoallotjar el proxy CORS
+
+Si autoallotges BentoPDF, hauràs de desplegar el teu propi proxy CORS perquè les signatures digitals funcionin amb certificats que requereixen obtenir la cadena.
+
+### Opció 1: Cloudflare Workers (recomanada)
+
+1. **Instal·la la CLI de Wrangler**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Inicia sessió a Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clona BentoPDF i actualitza els orígens permesos**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Obre `cors-proxy-worker.js` i canvia l'array `ALLOWED_ORIGINS` pel teu domini:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Important
+ Sense aquest canvi, el proxy rebutjarà totes les peticions del teu lloc amb un error **403 Forbidden**. Per defecte, només permet peticions de `bentopdf.com`.
+ :::
+
+4. **Desplega el proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Anota la URL del worker (p. ex., `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Torna a compilar BentoPDF amb la URL del proxy**:
+
+ Si utilitzes 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 .
+ ```
+
+ Si compiles des del codi font:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Opció 2: proxy de backend propi
+
+També pots crear el teu propi punt final de proxy. Els requisits són:
+
+1. Acceptar peticions GET amb un paràmetre de consulta `url`
+2. Obtenir la URL des del teu servidor (sense restriccions CORS al servidor)
+3. Retornar la resposta amb aquestes capçaleres:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Exemple d'implementació amb 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' });
+ }
+});
+```
+
+## Consideracions de seguretat
+
+El Cloudflare Worker inclòs té diverses mesures de seguretat:
+
+| Funció | Descripció |
+| ------------------------------ | ------------------------------------------------------------------------------------------------------- |
+| **Validació d'origen** | Només permet peticions dels dominis llistats a `ALLOWED_ORIGINS` |
+| **Restriccions d'URL** | Només permet URL de certificats (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Bloqueig d'IP privades** | Bloqueja intervals privats IPv4/IPv6, d'enllaç local, de bucle local, IP decimals i metadades del núvol |
+| **Seguretat del Content-Type** | Només retorna tipus MIME de certificats segurs i bloqueja la injecció de content-type des de l'origen |
+| **Límit de mida** | Transmet la resposta amb un límit de 10MB i l'interromp a mitja descàrrega si se supera |
+| **Límit de freqüència** | 60 peticions per minut per IP o IPv6 /64 (requereix KV, no bloqueja si KV falla) |
+| **Signatures HMAC** | Signatura opcional al client (dissuadeix l'abús casual) |
+
+### DNS rebinding (autoallotjament fora de Cloudflare)
+
+El worker rebutja qualsevol URL que es resolgui a una IP privada o interna. No pot utilitzar una llista fixa de servidors permesos, ja que les URL de la cadena de certificats apunten a qualsevol CA que hagi emès el certificat (FNMT, CA corporatives, etc.), de manera que les destinacions no es coneixen per endavant. Això deixa una petita finestra de rebinding: algú que gestioni el DNS del seu propi domini podria donar una IP pública a la comprovació de seguretat i una de privada a la petició real un moment després.
+
+A Cloudflare no es pot explotar: els Workers no poden accedir a IP privades ni al punt final de metadades `169.254.169.254`, així que un rebinding no arriba enlloc. Només cal no donar al worker cap via d'entrada: no hi associïs cap Tunnel, Service ni enllaç de xarxa privada (només necessita `RATE_LIMIT_KV`).
+
+Si l'executes fora de Cloudflare (workerd, Node i similars) dins d'una VPC, l'entorn _sí_ pot accedir a IP internes. Posa-hi al davant un tallafoc de sortida i bloqueja els intervals privats: `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` i els seus equivalents IPv6. El codi de l'aplicació no ho pot garantir un cop fora de Cloudflare.
+
+## Desactivar el proxy
+
+Si no vols utilitzar un proxy CORS, defineix la variable d'entorn amb una cadena buida:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Nota**: sense el proxy, la signatura amb certificats que requereixen obtenir la cadena externament (com FNMT o algunes CA corporatives) fallarà amb l'error "Failed to fetch".
+
+## Resolució de problemes
+
+### "Signing error: TypeError: Failed to fetch"
+
+Normalment vol dir una d'aquestes coses:
+
+1. **No hi ha cap proxy CORS configurat**: defineix `VITE_CORS_PROXY_URL` i torna a compilar
+2. **Contingut mixt bloquejat**: el teu lloc és HTTPS però la URL de l'emissor del certificat és HTTP. El proxy CORS ho resol.
+3. **El proxy CORS rebutja el teu origen**: comprova que el teu domini és a l'array `ALLOWED_ORIGINS` de `cors-proxy-worker.js`
+
+### "403 Forbidden" del proxy
+
+El teu domini no és a la llista `ALLOWED_ORIGINS`. Edita `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Després torna a desplegar: `npx wrangler deploy`
+
+### Provar el proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certificats que funcionen sense proxy
+
+Alguns certificats inclouen la cadena completa al fitxer P12/PFX i no requereixen obtenir res externament:
+
+- Certificats autosignats
+- Algunes CA comercials que inclouen els certificats intermedis
+- Certificats que has muntat manualment amb la cadena completa
diff --git a/docs/ca/self-hosting/docker.md b/docs/ca/self-hosting/docker.md
new file mode 100644
index 00000000..66135a34
--- /dev/null
+++ b/docs/ca/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Desplega amb Docker / Podman
+
+La manera més fàcil d'autoallotjar BentoPDF en un entorn de producció.
+
+> [!IMPORTANT]
+> **Capçaleres necessàries per a la conversió de fitxers d'Office**
+>
+> Les eines basades en LibreOffice (conversió de Word, Excel i PowerPoint) requereixen aquestes capçaleres HTTP per admetre `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> La pàgina també s'ha de servir des d'un context segur. `http://localhost` funciona per a proves locals, però `http://192.168.x.x` o altres IP de la xarxa local normalment no ho compleixen, de manera que la conversió d'Office per HTTP sense xifrar fallarà encara que les capçaleres hi siguin.
+>
+> Les imatges de contenidor oficials inclouen aquestes capçaleres. Si utilitzes un proxy invers (Traefik, Caddy, etc.), assegura't que aquestes capçaleres es conserven o s'afegeixen, i utilitza HTTPS per a l'accés fora del bucle local.
+
+> [!TIP]
+> **Usuaris de Podman:** totes les ordres `docker` funcionen amb Podman substituint `docker` per `podman` i `docker-compose` per `podman-compose`.
+
+## Inici ràpid
+
+> [!TIP]
+> BentoPDF s'ofereix en dues versions:
+>
+> - **Versió autoallotjada**: `ghcr.io/alam00000/bentopdf-simple:latest`. Totes les eines PDF, **sense** els elements de màrqueting (sense portada, preguntes freqüents, testimonis ni peu de pàgina). Utilitza-la per a desplegaments interns, d'equip o d'organització. **No** és una versió "lite" amb menys funcions.
+> - **Versió comercial**: `ghcr.io/alam00000/bentopdf:latest`. El lloc de màrqueting complet, que utilitza el mateix bentopdf.com i els titulars de llicència comercial amb desplegaments públics.
+>
+> Si tens dubtes, descarrega la versió autoallotjada.
+
+```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
+
+Crea `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
+```
+
+Executa:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Compila la teva pròpia imatge
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Compila i executa:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Variables d'entorn
+
+| Variable | Descripció | Per defecte |
+| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Compila la variant autoallotjada (amaga els elements de màrqueting de bentopdf.com: portada, preguntes freqüents, testimonis i peu de pàgina). Es mantenen totes les eines PDF. | `false` |
+| `BASE_URL` | Desplega en un subdirectori | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL del mòdul WASM de PyMuPDF | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL del mòdul WASM de Ghostscript | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL del mòdul WASM de CoherentPDF | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL del script del worker d'OCR | _(buit; utilitza el CDN per defecte de Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Directori del runtime principal d'OCR | _(buit; utilitza el CDN per defecte de Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Directori de traineddata d'OCR | _(buit; utilitza el CDN per defecte de Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Idiomes d'OCR separats per comes que es mostren a la interfície | _(buit; mostra el catàleg complet)_ |
+| `VITE_OCR_FONT_BASE_URL` | Directori de fonts de la capa de text d'OCR | _(buit; utilitza les URL remotes de fonts Noto)_ |
+| `VITE_DEFAULT_LANGUAGE` | Idioma per defecte de la interfície | `en` |
+| `VITE_BRAND_NAME` | Nom de marca personalitzat | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Ruta del logotip relativa a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Text personalitzat del peu de pàgina/copyright | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | ID d'eines separats per comes que s'han d'amagar | _(buit; totes les eines activades)_ |
+| `DISABLE_GITHUB_STARS` | Omet la consulta del nombre d'estrelles de GitHub en carregar la pàgina i elimina `api.github.com` de la CSP. Les compilacions en mode simple sempre l'ometen. | `false` |
+| `SITE_URL` | URL pública escrita als enllaços canonical, hreflang i del mapa del lloc. Deixa-la per defecte tret que vulguis que els cercadors tractin el teu desplegament com un lloc propi. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Amb un `SITE_URL` personalitzat, totes les pàgines es marquen com a `noindex` perquè la teva còpia no competeixi amb bentopdf.com als resultats de cerca. Defineix-ho a `true` perquè els cercadors l'indexin. | `false` |
+| `COMPRESSION_MODE` | Còpies precomprimides que es desen al costat de cada fitxer: `o` cap, `g` `.gz` (les serveix el nginx de la imatge), `b` `.br`, `all` totes dues. El nginx de la imatge no pot servir `.br`. | `o` |
+
+Les URL dels mòduls WASM vénen preconfigurades amb CDN per defecte, així que totes les funcions avançades funcionen directament. Substitueix-les en desplegaments aïllats de la xarxa o autoallotjats.
+
+### Cercadors
+
+Per defecte, totes les pàgines indiquen als cercadors que l'original és bentopdf.com, de manera que el teu desplegament no apareix com a duplicat. No cal canviar res per a una instància privada o interna.
+
+- **Mantenir la instància fora dels resultats de cerca:** executa el contenidor amb `-e ROBOTS_NOINDEX=true`. Només cal reiniciar-lo, no tornar a compilar.
+- **Fer que la instància sigui un lloc propi als resultats de cerca:** compila amb `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Sense `ALLOW_INDEXING=true`, un `SITE_URL` personalitzat marca totes les pàgines com a `noindex`.
+
+### Content-Security-Policy
+
+La imatge d'nginx inclou una capçalera `Content-Security-Policy` d'aplicació obligatòria. Les directives `script-src`, `connect-src` i `font-src` de la CSP es **generen en el moment de la compilació** a partir de les variables d'URL `VITE_*` anteriors: els servidors que passis amb `--build-arg` s'afegeixen automàticament a la política.
+
+Com a resultat:
+
+- Si substitueixes `VITE_CORS_PROXY_URL` o `VITE_WASM_*_URL` en compilar, la CSP permet aquests orígens automàticament, sense cap configuració addicional.
+- Per a les URL de `cdn.jsdelivr.net`, `script-src` només permet la carpeta exacta del paquet amb versió, per exemple `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, no tot el CDN. jsDelivr serveix qualsevol paquet npm públic o repositori de GitHub, així que permetre tot el servidor deixaria executar-los a la teva instància. Les URL de qualsevol altre servidor es permeten per origen.
+- Si configures URL WASM personalitzades _en execució_ a la pàgina de configuració avançada de l'aplicació, aquests orígens **no** són a la CSP i el navegador en bloquejarà les peticions. Això també val per a una versió diferent del mateix paquet a `cdn.jsdelivr.net`, perquè només es permet la versió definida en compilar. La configuració en execució és per experimentar; per a URL personalitzades permanents, defineix l'argument de compilació `VITE_*` corresponent.
+- Als desplegaments aïllats de la xarxa que substitueixen els tres valors `VITE_WASM_*_URL`, també s'eliminen de la CSP aquestes carpetes de paquets de `cdn.jsdelivr.net` (cada valor per defecte se substitueix, no s'afegeix). Els valors per defecte d'OCR de Tesseract a `cdn.jsdelivr.net` es queden a la política fins que també defineixis els tres valors `VITE_TESSERACT_*`. De la mateixa manera, definir `VITE_CORS_PROXY_URL` substitueix el valor públic per defecte `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+La CSP inclou `'unsafe-eval'` a `script-src` perquè el runtime de LibreOffice WASM (utilitzat per les eines de conversió de Word/Excel/PowerPoint) i la biblioteca d'imatges wasm-vips (utilitzada per PDF a TIFF) compilen codi de distribució intern mitjançant `new Function()`. Eliminar-lo trencaria aquestes eines. Si compiles en `SIMPLE_MODE` (sense LibreOffice) i no necessites PDF a TIFF, pots editar manualment el `security-headers.conf` generat per treure `'unsafe-eval'` i obtenir una política més estricta.
+
+Per a l'OCR, deixa buides les variables `VITE_TESSERACT_*` per utilitzar els recursos en línia per defecte, o defineix-les totes tres alhora per a l'OCR autoallotjat o sense connexió. Les substitucions parcials d'OCR es rebutgen perquè el worker, el runtime principal i el directori de traineddata han de coincidir. Per generar PDF cercables totalment sense connexió, defineix també `VITE_OCR_FONT_BASE_URL` perquè les fonts de la capa de text d'OCR es carreguin des del teu servidor intern i no des de les URL públiques de fonts Noto.
+
+`VITE_DEFAULT_LANGUAGE` defineix l'idioma de la interfície per als visitants que hi entren per primera vegada. Valors admesos: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Els usuaris poden canviar d'idioma igualment: això només canvia el valor per defecte.
+
+Exemple:
+
+```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
+```
+
+### Marca personalitzada
+
+Substitueix el logotip, el nom i el text del peu de pàgina de BentoPDF pels teus. Posa el fitxer del logotip a la carpeta `public/` (o utilitza una imatge existent) i passa les variables de marca en compilar:
+
+```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 .
+```
+
+La marca funciona tant en mode complet com en mode simple, i es pot combinar amb totes les altres opcions de compilació.
+
+### Desactivar eines concretes
+
+Amaga eines de la interfície per requisits de compliment o seguretat. Les eines desactivades s'eliminen de la pàgina d'inici, dels resultats de cerca, de les dreceres de teclat i del creador de fluxos de treball. L'accés directe per URL mostra una pàgina d'"eina no disponible".
+
+Els ID d'eina són la URL de la pàgina sense `.html`. Per exemple, si l'eina és a `bentopdf.com/edit-pdf.html`, l'ID és `edit-pdf`.
+
+#### Trobar els ID d'eina
+
+La manera més fàcil: obre qualsevol eina de BentoPDF i mira la URL. L'última part de la ruta (sense `.html`) és l'ID de l'eina.
+
+
+Llista completa d'ID d'eina
+
+**Edita i anota:** `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`
+
+**Converteix a 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`
+
+**Converteix des de 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`
+
+**Organitza i gestiona:** `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`
+
+**Optimitza i repara:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Seguretat:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Opció 1: en compilar (argument de compilació de Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Això incorpora la llista de desactivades al paquet de JavaScript. Per canviar-la cal tornar a compilar.
+
+#### Opció 2: en execució (config.json)
+
+Munta un fitxer `config.json` al directori servit, sense necessitat de tornar a compilar:
+
+```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
+```
+
+O amb 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
+```
+
+Els dos mètodes es poden combinar: les llistes es fusionen. Si una eina apareix en qualsevol de les dues, es desactiva.
+
+#### Desactivar funcions de l'editor
+
+També pots desactivar funcions concretes de l'editor de PDF (p. ex., censura, anotacions, formularis) sense desactivar tota l'eina d'edició. Afegeix `editorDisabledCategories` al teu `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Llista completa de categories de l'editor
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Anotació:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Formes:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Mesura:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formulari:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Censura:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Document:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Pàgina:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Tauler:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Eines:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Selecció:** `selection`, `selection-copy`
+
+**Historial:** `history`, `history-undo`, `history-redo`
+
+
+
+Les categories són jeràrquiques: desactivar una categoria pare (p. ex., `annotation`) desactiva tots els seus fills.
+
+### Desactivar el comptador d'estrelles de GitHub
+
+La barra de navegació mostra el nombre d'estrelles de GitHub en directe, obtingut de `api.github.com` en carregar la pàgina. És l'única petició externa que no serveix una funció de PDF. Desactiva-ho en compilar per eliminar el codi de consulta del paquet i treure `api.github.com` de la Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Les compilacions en mode simple (`bentopdf-simple`) sempre ometen el comptador d'estrelles: aquesta opció només cal a la versió comercial o a compilacions completes personalitzades.
+
+### URL WASM personalitzades (aïllat de la xarxa / autoallotjat)
+
+> [!IMPORTANT]
+> Les URL WASM s'incorporen al JavaScript **en compilar**. Els fitxers WASM els descarrega el **navegador de l'usuari** en execució: Docker no els descarrega durant la compilació. En xarxes aïllades, has d'allotjar els fitxers WASM en un servidor intern al qual arribin els navegadors.
+
+**Flux de treball complet en xarxa aïllada:**
+
+```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
+```
+
+Utilitza per a `--ocr-languages` els codis que mostra `bash scripts/prepare-airgap.sh --list-ocr-languages`, o cerca per nom amb `bash scripts/prepare-airgap.sh --search-ocr-language `. Quan compiles amb un subconjunt restringit d'OCR, passa els mateixos codis a `VITE_TESSERACT_AVAILABLE_LANGUAGES` perquè l'aplicació només mostri els idiomes inclosos. Per a una sortida d'OCR totalment sense connexió, allotja també el directori `ocr-fonts/` inclòs i fes que `VITE_OCR_FONT_BASE_URL` hi apunti.
+
+Defineix una variable amb una cadena buida per desactivar aquest mòdul (els usuaris l'hauran de configurar manualment a la configuració avançada).
+
+## Port personalitzat
+
+Per defecte, BentoPDF escolta al port `8080` dins del contenidor. Per canviar-ho, defineix la variable d'entorn `PORT` en execució:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variable | Descripció | Per defecte |
+| -------- | ------------------------------------ | ----------- |
+| `PORT` | Port d'escolta d'Nginx al contenidor | `8080` |
+
+Això funciona tant amb el Dockerfile estàndard com amb el nonroot.
+
+## ID d'usuari personalitzat (PUID/PGID)
+
+Per a entorns que requereixen executar-se com un usuari concret que no sigui root (dispositius NAS, Kubernetes amb contextos de seguretat, polítiques de l'organització), BentoPDF ofereix un Dockerfile independent amb suport de PUID/PGID a l'estil LSIO.
+
+### Compila i executa
+
+```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
+```
+
+### Variables d'entorn
+
+| Variable | Descripció | Per defecte |
+| -------------- | ----------------------------- | ----------- |
+| `PUID` | ID d'usuari amb què s'executa | `1000` |
+| `PGID` | ID de grup amb què s'executa | `1000` |
+| `PORT` | Port d'escolta d'Nginx | `8080` |
+| `DISABLE_IPV6` | Desactiva l'escoltador 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
+```
+
+### Com funciona
+
+El contenidor s'inicia com a root, crea un usuari amb el PUID/PGID especificat, ajusta la propietat de tots els directoris escrivibles i després retira els privilegis mitjançant `su-exec`. El procés d'nginx s'executa íntegrament com l'usuari que has indicat.
+
+> [!NOTE]
+> El `Dockerfile` estàndard utilitza `nginx-unprivileged` (UID 101) i es recomana per a la majoria de desplegaments. Utilitza `Dockerfile.nonroot` només quan necessitis un UID/GID concret.
+
+> [!WARNING]
+> PUID/PGID no poden ser `0` (root). El punt d'entrada valida els valors i sortirà amb un error si no són vàlids.
+
+## Amb Traefik (proxy invers)
+
+```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
+```
+
+## Amb Caddy (proxy invers)
+
+```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"
+}
+```
+
+## Límits de recursos
+
+```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 (integració amb systemd)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) permet executar contenidors de Podman com a serveis de systemd. És ideal per a desplegaments de producció en sistemes Linux.
+
+### Configuració bàsica de Quadlet
+
+Crea un fitxer d'unitat de contenidor a `~/.config/containers/systemd/bentopdf.container` (usuari) o `/etc/containers/systemd/bentopdf.container` (sistema):
+
+```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
+```
+
+### Activa i inicia
+
+```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]
+> Per a un desplegament a nivell de sistema, utilitza `systemctl` sense l'opció `--user` i posa el fitxer a `/etc/containers/systemd/`.
+
+### Quadlet amb comprovació d'estat
+
+```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
+```
+
+### Actualització automàtica amb Quadlet
+
+Podman pot actualitzar els contenidors automàticament quan hi ha imatges noves disponibles:
+
+```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
+```
+
+### Configuració de xarxa de Quadlet
+
+Per a una configuració de xarxa personalitzada, crea un fitxer de xarxa `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Després fes-hi referència al fitxer del contenidor:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Actualització
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/ca/self-hosting/hostinger.md b/docs/ca/self-hosting/hostinger.md
new file mode 100644
index 00000000..62fbf897
--- /dev/null
+++ b/docs/ca/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Desplega a Hostinger
+
+[Hostinger](https://hostinger.com) és un proveïdor d'allotjament compartit molt popular. Aquesta guia explica com desplegar BentoPDF a l'allotjament compartit de Hostinger.
+
+## Requisits previs
+
+- Pla d'allotjament de Hostinger amb accés al gestor de fitxers
+- Node.js instal·lat en local per compilar
+
+## Pas 1: compila el projecte
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Els fitxers compilats seran a la carpeta `dist`.
+
+## Pas 2: puja'l a Hostinger
+
+### Desplegament al domini arrel
+
+1. Inicia sessió al teu compte de Hostinger
+2. Ves a **File Manager** → **public_html**
+3. **Suprimeix** els fitxers existents (fes-ne una còpia de seguretat si cal)
+4. **Puja** tot el contingut de la teva carpeta `dist` local a `public_html`
+
+### Desplegament en un subdirectori
+
+Si el desplegues en un subdirectori (p. ex., `yourdomain.com/pdf-tools/`):
+
+1. Compila amb la URL base correcta:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Crea la carpeta a Hostinger:
+ - Ves a **File Manager** → **public_html**
+ - Crea una carpeta nova: `pdf-tools`
+3. Puja tot el contingut de `dist` a `public_html/pdf-tools/`
+
+## Pas 3: crea el fitxer .htaccess
+
+Crea un fitxer `.htaccess` a l'arrel de la carpeta de desplegament (`public_html` o `public_html/pdf-tools/`):
+
+::: warning Important
+Per al desplegament en un subdirectori, canvia `RewriteBase /` per `RewriteBase /pdf-tools/` (o el nom de la teva carpeta).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Exemple de .htaccess per a un subdirectori
+
+Per a `yourdomain.com/pdf-tools/`, actualitza aquestes línies:
+
+```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
+```
+
+## Resolució de problemes
+
+### Els fitxers WASM no es carreguen
+
+Assegura't que els tipus MIME estan ben definits a `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Les eines de LibreOffice no funcionen
+
+Les capçaleres de seguretat són imprescindibles per a SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Si les capçaleres no s'apliquen, contacta amb el suport de Hostinger perquè activin `mod_headers`.
+
+### Errors 404 en actualitzar la pàgina
+
+Assegura't que la regla de l'extensió `.html` i les rutes d'idioma estan ben configurades. BentoPDF utilitza fitxers HTML estàtics, no encaminament 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]
+```
+
+### Límits de càrrega de fitxers
+
+Hostinger pot tenir límits de mida de fitxer. Puja els fitxers WASM per separat si la càrrega en bloc falla.
diff --git a/docs/ca/self-hosting/index.md b/docs/ca/self-hosting/index.md
new file mode 100644
index 00000000..67f6a698
--- /dev/null
+++ b/docs/ca/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Guia d'autoallotjament
+
+BentoPDF es pot autoallotjar a la teva pròpia infraestructura. Aquesta guia cobreix diverses opcions de desplegament.
+
+## Inici ràpid amb Docker / Podman
+
+La manera més ràpida d'autoallotjar BentoPDF:
+
+> [!TIP]
+> BentoPDF es distribueix en dues compilacions:
+>
+> - **Compilació autoallotjada**: `ghcr.io/alam00000/bentopdf-simple:latest`. Totes les eines de PDF, **sense** l'embolcall de màrqueting (sense secció principal, preguntes freqüents, testimonis ni peu de pàgina). Fes-la servir per a desplegaments interns, d'equip o d'organització. **No** és una versió "lite" amb menys funcions.
+> - **Compilació comercial**: `ghcr.io/alam00000/bentopdf:latest`. El lloc de màrqueting complet, que fan servir el mateix bentopdf.com i els titulars de llicència comercial que executen desplegaments de cara al públic.
+>
+> Si tens dubtes: descarrega la compilació autoallotjada.
+
+> [!IMPORTANT]
+> La conversió de fitxers d'Office requereix `SharedArrayBuffer`, cosa que vol dir que l'aplicació ha d'estar aïllada entre orígens i servida des d'un context segur. La imatge oficial ja envia les capçaleres COOP/COEP necessàries, però els navegadors encara desactiven `SharedArrayBuffer` en orígens HTTP simples de la xarxa local, com `http://192.168.x.x`.
+>
+> Utilitza `http://localhost` només per a proves al mateix dispositiu. Si els usuaris accedeixen a BentoPDF mitjançant una IP o un nom d'amfitrió de la xarxa local, finalitza la connexió amb 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
+```
+
+O amb 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)
+
+Executa BentoPDF com a servei de systemd. Crea `~/.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
+```
+
+Consulta la [guia de desplegament amb Docker](/ca/self-hosting/docker) per a la documentació completa de Quadlet.
+
+## Compilació des del codi font
+
+```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
+```
+
+## Opcions de configuració
+
+### Compilació autoallotjada (mode simple)
+
+La compilació autoallotjada (la imatge `bentopdf-simple`, també anomenada mode simple) és **funcionalment idèntica** a la compilació comercial: totes les eines de PDF hi són i es comporten igual. Només amaga l'embolcall de màrqueting, que només té sentit al mateix bentopdf.com o en un desplegament comercial de cara al públic. **No és una versió reduïda ni "lite".**
+
+**Què amaga la compilació autoallotjada** (només cosmètic, no s'elimina cap funció de PDF):
+
+- Barra de navegació, secció principal, secció de característiques, preguntes freqüents, testimonis i peu de pàgina
+- Actualitza el títol de la pàgina a "Eines PDF"
+
+**Què conserva la compilació autoallotjada** (tot el que realment treballa amb PDF):
+
+- Totes les eines de PDF (fusionar, dividir, editar, signar, OCR, conversió d'Office, etc.)
+- Compatibilitat amb marca personalitzada i tota la configuració en temps de compilació i d'execució
+
+La compilació comercial (`ghcr.io/alam00000/bentopdf:latest`) és la que fa funcionar el mateix bentopdf.com i la fan servir els titulars de llicència comercial que executen desplegaments de cara al públic: afegeix la secció principal, les preguntes freqüents, els testimonis i el peu de pàgina, que no tindrien sentit en una eina interna.
+
+Si autoallotges BentoPDF per al teu equip, la teva organització o com a eina interna, descarrega la compilació autoallotjada:
+
+```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
+```
+
+Consulta [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) per a més detalls.
+
+### Compilació comercial (desplegaments de cara al públic amb la teva pròpia marca)
+
+La compilació comercial (la imatge `bentopdf`, sense el sufix `-simple`) és la que fa funcionar el mateix bentopdf.com. Inclou el lloc de màrqueting complet (secció principal, característiques, preguntes freqüents, testimonis i peu de pàgina) a més de totes les eines de PDF. Fes servir aquesta compilació quan vulguis **desplegar BentoPDF com a servei de PDF de cara al públic sota la teva pròpia marca**, per exemple:
+
+- Executes BentoPDF com a SaaS allotjat per a usuaris finals al teu propi domini
+- Vols l'experiència de pàgina d'aterratge (seccions de màrqueting + eines), no només la superfície nua de les eines
+- Ets titular d'una llicència comercial i incrustes BentoPDF en un producte comercial
+
+**Executa'l tal com és** (amb la marca BentoPDF, útil per previsualitzar la compilació):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Compila amb la teva pròpia marca** (el flux de treball comercial habitual):
+
+```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
+```
+
+Totes les altres opcions de compilació (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, substitució d'URL de WASM, etc.) funcionen igual que a la compilació autoallotjada.
+
+::: warning Llicències
+Executar la compilació comercial està permès amb qualsevol de les dues opcions de llicència de BentoPDF:
+
+- **AGPL-3.0** (gratuïta): permesa si el teu desplegament publica tot el seu codi font sota AGPL, incloses les modificacions de marca i la lògica de negoci que l'envolta.
+- **Llicència comercial** (79 $ de per vida): necessària per a desplegaments de codi tancat o propietaris en què no publiques el codi del teu fork de marca ni del teu codi de negoci.
+
+Consulta la [pàgina de llicències](https://www.bentopdf.com/licensing) per a la comparació completa. Els mòduls WASM amb llicència AGPL (PyMuPDF, Ghostscript, CoherentPDF) es carreguen des d'un CDN en temps d'execució, de manera que no entren a la teva imatge i no canvien la teva situació de llicència.
+:::
+
+### URL base
+
+Desplega en un subdirectori:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Marca personalitzada
+
+Substitueix el logotip, el nom i el text del peu de pàgina per defecte de BentoPDF pels teus en temps de compilació:
+
+| Variable | Descripció | Per defecte |
+| ------------------ | --------------------------------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nom de marca mostrat a la capçalera i al peu | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Ruta del logotip relativa a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Text personalitzat del peu de pàgina o dels drets d'autor | `© 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
+```
+
+O amb 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 .
+```
+
+La marca funciona tant en mode complet com en mode simple, i es pot combinar amb totes les altres opcions de compilació (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Desactiva eines concretes
+
+Amaga eines individuals per motius de compliment normatiu o de seguretat. Les eines desactivades s'eliminen de la pàgina d'inici, la cerca, les dreceres, el constructor de fluxos de treball i l'accés directe per URL.
+
+Els identificadors d'eina són l'URL de la pàgina sense `.html`: obre qualsevol eina i mira l'URL (per exemple, `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**En temps de compilació** (integrat al paquet):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**En temps d'execució** (sense recompilar: munta un `config.json`):
+
+```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
+```
+
+Els dos mètodes es poden combinar: les llistes es fusionen.
+
+També pots desactivar funcions concretes de l'Editor de PDF (per exemple, la censura) sense desactivar tota l'eina, afegint `editorDisabledCategories` a `config.json`. Consulta la [guia de Docker](/ca/self-hosting/docker#desactivar-funcions-de-l-editor) per veure la llista completa de categories.
+
+## Guies de desplegament
+
+Tria la teva plataforma:
+
+- [Vercel](/ca/self-hosting/vercel)
+- [Netlify](/ca/self-hosting/netlify)
+- [Cloudflare Pages](/ca/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/ca/self-hosting/aws)
+- [Hostinger](/ca/self-hosting/hostinger)
+- [Nginx](/ca/self-hosting/nginx)
+- [Apache](/ca/self-hosting/apache)
+- [Docker](/ca/self-hosting/docker)
+- [Kubernetes](/ca/self-hosting/kubernetes)
+- [Servidor intermediari CORS](/ca/self-hosting/cors-proxy): necessari per a les signatures digitals
+
+## Problemes habituals
+
+### La conversió de Word / ODT / Excel / PowerPoint a PDF es penja (SharedArrayBuffer no disponible)
+
+**Símptoma**: les conversions de documents basades en LibreOffice (Word, ODT, Excel, PowerPoint a PDF) es pengen cap al 55 % o no s'arriben a iniciar. La consola del navegador pot mostrar:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+...o `window.crossOriginIsolated` retorna `false`, o la compilació de WASM informa `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Causa**: LibreOffice WASM requereix `SharedArrayBuffer`, que el navegador només activa quan la pàgina està **aïllada entre orígens** I es serveix des d'un **context segur**. Això vol dir que s'han de complir dues coses:
+
+1. Totes les respostes inclouen les dues capçaleres:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. La pàgina es serveix des de `https://...` o `http://localhost`. HTTP simple en una IP de la xarxa local (p. ex. `http://192.168.x.x`) NO es considera segur: els navegadors hi desactiven `SharedArrayBuffer`.
+
+La discrepància `00 61 73 6d / 1f 8b 08 08` és un subsímptoma a part: als fitxers precomprimits `.wasm.gz` / `.data.gz` els falta la capçalera de resposta `Content-Encoding: gzip`, de manera que el navegador rep bytes gzip en brut en comptes de WASM descomprimit.
+
+**Solució**: consulta la guia de desplegament de la teva plataforma per veure la configuració exacta:
+
+- [Nginx →](/ca/self-hosting/nginx#la-conversio-de-word-odt-excel-a-pdf-no-funciona)
+- [Apache →](/ca/self-hosting/apache#la-conversio-de-word-odt-excel-a-pdf-no-funciona)
+- [AWS S3 + CloudFront →](/ca/self-hosting/aws#pas-3b-politica-de-capcaleres-de-resposta-obligatoria-per-a-libreoffice-wasm)
+- [Cloudflare Pages →](/ca/self-hosting/cloudflare#fitxer-de-configuracio) (`_headers` file)
+- [Netlify →](/ca/self-hosting/netlify#la-conversio-de-word-odt-excel-a-pdf-es-queda-al-55) (`netlify.toml`)
+- [Vercel →](/ca/self-hosting/vercel#la-conversio-de-word-odt-excel-a-pdf-no-funciona) (`vercel.json`)
+- [Hostinger →](/ca/self-hosting/hostinger#les-eines-de-libreoffice-no-funcionen) (`.htaccess`)
+- [Kubernetes →](/ca/self-hosting/kubernetes#comprova-que-les-capcaleres-de-sharedarraybuffer-continuen-funcionant-ingress-gateway)
+- **Docker**: ho gestiona automàticament la configuració de nginx inclosa, no cal fer res.
+
+**Verificació**: obre la consola de DevTools en qualsevol pàgina de BentoPDF i executa:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Si la pàgina és HTTPS o `http://localhost` I les dues capçaleres COEP/COOP són presents a totes les respostes, les dues comprovacions passen. Si ets a `http://192.168.x.x` o a un altre origen HTTP que no sigui de loopback, finalitza la connexió amb HTTPS: no hi ha cap solució només amb capçaleres.
+
+### Fitxers `.mjs` servits com a `application/octet-stream`
+
+**Símptoma**: Signa PDF, l'Emplenador de formularis i algunes altres eines mostren un visualitzador en blanc o no es carreguen. La consola del navegador informa:
+
+> `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.`
+
+**Causa**: el teu servidor web o servidor intermediari invers no té cap assignació de tipus MIME per als fitxers `.mjs` (el visualitzador de PDF incorporat inclou mòduls ES amb aquesta extensió). Moltes configuracions de servidor estàndard fan servir `application/octet-stream` per a extensions no reconegudes, i els navegadors es neguen a executar-ho com a mòduls ES.
+
+**Solució**: consulta la guia de desplegament de la teva plataforma per veure el fragment exacte:
+
+- [Nginx →](/ca/self-hosting/nginx#signa-pdf-o-l-emplenador-de-formularis-mostra-un-visualitzador-en-blanc-error-mime-de-mjs)
+- [Apache →](/ca/self-hosting/apache#signa-pdf-o-el-emplenador-de-formularis-mostra-un-visor-en-blanc-error-de-mime-amb-mjs)
+- [AWS S3 + CloudFront →](/ca/self-hosting/aws#pas-2-compila-i-puja) (consulta `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/ca/self-hosting/kubernetes#errors-de-tipus-mime-de-mjs-iframe-en-blanc-a-signa-pdf-emplenador-de-formularis)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: es gestiona automàticament, no cal fer res.
+
+**Verificació**: obre DevTools → pestanya Network, troba la petició `.mjs` que falla i comprova la capçalera de resposta `Content-Type`. Hauria de ser `application/javascript`. Si encara és `application/octet-stream`, és possible que un servidor intermediari invers o un CDN exterior estigui tornant a detectar el tipus: revisa cada capa de la teva cadena de servei.
+
+## Configuració de WASM (components AGPL)
+
+BentoPDF **no inclou** al seu codi font les biblioteques de processament amb llicència AGPL, però **preconfigura URL de CDN** perquè totes les funcions funcionin de sèrie, sense configuració manual.
+
+::: tip Sense configuració per defecte
+Des de la v2.0.0, els mòduls WASM estan preconfigurats per carregar-se des del CDN de jsDelivr mitjançant variables d'entorn. Totes les funcions avançades funcionen de seguida sense cap configuració per part de l'usuari.
+:::
+
+| Component | Llicència | Funcions |
+| --------------- | --------- | -------------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Conversió d'EPUB/MOBI/FB2/XPS, extracció d'imatges i de taules |
+| **Ghostscript** | AGPL-3.0 | Conversió a PDF/A, compressió, correcció d'inclinació, rasterització |
+| **CoherentPDF** | AGPL-3.0 | Taula de continguts, adjunts, fusió de PDF amb marcadors |
+
+### Variables d'entorn per defecte
+
+Estan definides a `.env.production` i integrades a la compilació:
+
+```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=
+```
+
+### Substitució de les URL de WASM
+
+Pots substituir els valors per defecte en temps de compilació per a desplegaments personalitzats:
+
+```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
+```
+
+Per desactivar un mòdul del tot (cal que l'usuari el configuri manualment a Configuració avançada), posa la seva variable a una cadena buida.
+
+Per a l'OCR, deixa totes les variables `VITE_TESSERACT_*` buides i conserva els recursos en línia per defecte, o defineix alhora les URL de worker, core i lang per a un OCR autoallotjat o sense connexió. Si només incloses idiomes d'OCR concrets, defineix també `VITE_TESSERACT_AVAILABLE_LANGUAGES` amb els mateixos codis separats per comes perquè la interfície només ofereixi els idiomes instal·lats i les seleccions no admeses fallin amb un error descriptiu. Per obtenir PDF cercables totalment sense connexió, defineix també `VITE_OCR_FONT_BASE_URL` amb el directori intern que serveix els tipus de lletra d'OCR inclosos.
+
+Els usuaris també poden substituir aquests valors per defecte en qualsevol moment a **Configuració avançada** de la interfície: les substitucions de l'usuari desades al navegador tenen prioritat sobre els valors per defecte de l'entorn.
+
+### Desplegament aïllat de la xarxa / sense connexió
+
+Per a xarxes sense accés a Internet (govern, sanitat, finances, etc.). Les URL de WASM s'integren al JavaScript en **temps de compilació**; els fitxers WASM reals els baixa el **navegador de l'usuari** en temps d'execució. Per tant, has de preparar-ho tot en una màquina amb Internet i després transferir-ho a la xarxa aïllada.
+
+#### Script automatitzat (recomanat)
+
+L'script `prepare-airgap.sh` inclòs automatitza tot el procés: descarrega els paquets WASM, compila la imatge de Docker i genera un paquet autocontingut amb un script de configuració.
+
+```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
+```
+
+Això genera un directori de paquet:
+
+```
+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
+```
+
+Transfereix el paquet a la xarxa aïllada per USB, un repositori d'artefactes intern o un mètode aprovat. Després executa l'script de configuració inclòs:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+L'script de configuració carrega la imatge de Docker, extreu els fitxers WASM i, opcionalment, inicia el contenidor.
+
+**Opcions de l'script:**
+
+| Indicador | Descripció | Per defecte |
+| ------------------------------ | --------------------------------------------------------- | ---------------------------------- |
+| `--wasm-base-url ` | On s'allotjaran els WASM internament | _(obligatori, es demana si falta)_ |
+| `--image-name ` | Etiqueta de la imatge de Docker | `bentopdf` |
+| `--output-dir ` | Directori de sortida del paquet | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Activa el mode simple | desactivat |
+| `--base-url ` | URL base del subdirectori (p. ex. `/pdf/`) | `/` |
+| `--language ` | Idioma per defecte de la interfície (p. ex. `fr`, `de`) | _(cap)_ |
+| `--brand-name ` | Nom de marca personalitzat | _(cap)_ |
+| `--brand-logo ` | Ruta del logotip relativa a `public/` | _(cap)_ |
+| `--footer-text ` | Text personalitzat del peu de pàgina | _(cap)_ |
+| `--ocr-languages ` | Idiomes d'OCR a incloure, separats per comes | `eng` |
+| `--list-ocr-languages` | Mostra els codis i noms d'OCR admesos i surt | desactivat |
+| `--search-ocr-language ` | Cerca codis d'OCR per nom o abreviatura | desactivat |
+| `--dockerfile ` | Dockerfile que s'utilitzarà | `Dockerfile` |
+| `--skip-docker` | Omet la compilació i l'exportació de Docker | desactivat |
+| `--skip-wasm` | Omet la baixada de WASM (reutilitza els `.tgz` existents) | desactivat |
+
+El mode interactiu també accepta `list` per mostrar la llista completa de codis de Tesseract admesos i `search ` per trobar coincidències, com `search german` o `search chi`.
+
+::: warning Requisit del mateix origen
+Els fitxers WASM s'han de servir des del **mateix origen** que l'aplicació BentoPDF. Els Web Workers fan servir `importScripts()`, que no pot carregar scripts d'un altre origen. Per exemple, si BentoPDF s'executa a `https://internal.example.com`, l'URL base de WASM també ha de ser `https://internal.example.com/wasm`.
+:::
+
+#### Passos manuals
+
+
+Si prefereixes fer-ho manualment sense l'script
+
+**Pas 1: baixa els paquets WASM i d'OCR** (en una màquina amb Internet)
+
+```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
+```
+
+**Pas 2: compila la imatge de Docker amb les URL internes**
+
+```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 .
+```
+
+**Pas 3: exporta la imatge de Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Pas 4: transfereix-ho a la xarxa aïllada**
+
+Copia-ho per USB, un repositori d'artefactes intern o un mètode de transferència aprovat:
+
+- `bentopdf.tar`: la imatge de Docker
+- Els cinc paquets `.tgz` de WASM/OCR del pas 1
+- El directori `tesseract-langdata/` del pas 1
+- El directori `ocr-fonts/` del pas 1
+
+**Pas 5: configura-ho dins de la xarxa aïllada**
+
+```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
+```
+
+Assegura't que els fitxers són accessibles a les URL que has configurat al pas 2, incloses `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` i `.../ocr/fonts`.
+
+
+
+::: info Compiles des del codi font en comptes de fer servir Docker?
+Defineix les variables a `.env.production` abans d'executar `npm run build`:
+
+```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
+```
+
+:::
+
+### Allotja el teu propi servidor intermediari de WASM
+
+Si necessites servir fitxers WASM AGPL amb les capçaleres CORS adequades, pots desplegar un servidor intermediari senzill. Consulta la [guia del servidor intermediari de WASM de Cloudflare](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) per veure una implementació d'exemple.
+
+::: tip Per què separat?
+Aquesta separació garanteix:
+
+- Un compliment legal clar per als usuaris comercials
+- El nucli de BentoPDF es manté sota la seva llicència dual (AGPL-3.0 / comercial)
+- Els fitxers WASM es carreguen en temps d'execució, no s'inclouen al codi font
+ :::
+
+## Requisits del sistema
+
+| Requisit | Mínim |
+| -------------- | --------------------------------- |
+| Emmagatzematge | ~100 MB (nucli sense mòduls AGPL) |
+| RAM | 512 MB |
+| CPU | Qualsevol processador modern |
+
+::: tip
+BentoPDF és un lloc estàtic: no cal cap base de dades ni servidor de backend!
+:::
diff --git a/docs/ca/self-hosting/kubernetes.md b/docs/ca/self-hosting/kubernetes.md
new file mode 100644
index 00000000..1af0cedd
--- /dev/null
+++ b/docs/ca/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Desplega amb Kubernetes
+
+Kubernetes pot ser excessiu per a un lloc estàtic, però pot encaixar molt bé si ja estandarditzes amb Helm + GitOps.
+
+> [!IMPORTANT]
+> **Capçaleres necessàries per a la conversió de fitxers d'Office**
+>
+> Les eines basades en LibreOffice (conversió de Word, Excel i PowerPoint) requereixen aquestes capçaleres HTTP per a la compatibilitat amb `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Les imatges nginx oficials de BentoPDF inclouen aquestes capçaleres. A Kubernetes, **els controladors d'Ingress/Gateway també són servidors intermediaris inversos**, així que assegura't que aquestes capçaleres es conservin (o afegeix-les a l'edge).
+
+## Requisits previs
+
+- Clúster de Kubernetes
+- Helm v3
+- Una imatge nginx de BentoPDF (per exemple, `ghcr.io/alam00000/bentopdf:`) que serveixi pel **port 8080**
+
+## Desplega amb Helm
+
+### Instal·la des d'aquest repositori (chart local)
+
+```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
+```
+
+### Instal·la des de GHCR (chart OCI)
+
+Si el chart es publica a GHCR com a artefacte OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Exposa'l
+
+### Port-forward (prova ràpida)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (opcional)
+
+Activa l'Ingress (exemple per a nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (opcional)
+
+Aquest chart admet `Gateway` + `HTTPRoute` de Gateway API.
+
+Exemple (operador de Gateway API de Cloudflare):
+
+```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
+```
+
+## Comprova que les capçaleres de SharedArrayBuffer continuen funcionant (Ingress/Gateway)
+
+### Què hauria de passar
+
+La configuració de nginx de BentoPDF estableix les capçaleres de resposta necessàries. La majoria de controladors d'Ingress/Gateway **deixen passar les capçaleres de resposta de l'origen sense canvis**.
+
+### Què ho pot trencar
+
+- Una política del controlador o de l'edge que **sobreescrigui** o **elimini** capçaleres de resposta
+- Un middleware de "capçaleres de seguretat" que estableixi valors de COOP/COEP diferents
+
+### Com verificar-ho
+
+Executa això contra el teu punt d'accés públic:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Hauries de veure:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Si el teu controlador d'Ingress no les conserva
+
+Afegeix les capçaleres a l'edge (depèn del controlador). Exemple per a **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;
+```
+
+## Errors de tipus MIME de `.mjs` (iframe en blanc a Signa PDF / Emplenador de formularis)
+
+Si la consola del navegador mostra `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` en una petició `.mjs`, un controlador d'Ingress/Gateway situat davant del nginx de BentoPDF està substituint la capçalera `Content-Type` de l'origen per `application/octet-stream`.
+
+El nginx de la imatge de BentoPDF ja serveix `.mjs` com a `application/javascript`. La solució és evitar que el controlador l'elimini o la substitueixi. Per a nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+O utilitza un filtre `ResponseHeaderModifier` a Gateway API per establir `Content-Type: application/javascript` per a les rutes `.mjs`. Verifica-ho amb DevTools → pestanya Network: la petició `.mjs` que fallava ara hauria de mostrar `content-type: application/javascript`.
+
+### Si utilitzes Gateway API i vols forçar l'addició de capçaleres
+
+Gateway API admet un filtre `ResponseHeaderModifier`. Pots afegir-lo a `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
+```
+
+La compatibilitat amb filtres concrets depèn del teu controlador de Gateway; si un filtre s'ignora, afegeix les capçaleres a la capa d'edge o de controlador.
+
+## Desactiva eines concretes
+
+Utilitza un ConfigMap per desactivar eines en temps d'execució sense reconstruir la imatge:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Munta'l al directori servit:
+
+```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
+```
+
+Els identificadors d'eina són l'URL de la pàgina sense `.html`: obre qualsevol eina i mira l'URL (per exemple, `edit-pdf`, `merge-pdf`, `compress-pdf`). Les eines desactivades s'amaguen de la pàgina d'inici, la cerca, les dreceres, el constructor de fluxos de treball i l'accés directe per URL. Consulta la [guia de Docker](/ca/self-hosting/docker#desactivar-eines-concretes) per veure la llista completa d'opcions.
diff --git a/docs/ca/self-hosting/netlify.md b/docs/ca/self-hosting/netlify.md
new file mode 100644
index 00000000..40fb3d51
--- /dev/null
+++ b/docs/ca/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Desplega a Netlify
+
+[Netlify](https://netlify.com) ofereix un excel·lent allotjament de llocs estàtics amb un nivell gratuït generós.
+
+## Desplegament amb un clic
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Desplegament manual
+
+### Pas 1: connecta el repositori
+
+1. Inicia sessió a [Netlify](https://app.netlify.com)
+2. Fes clic a "Add new site" → "Import an existing project"
+3. Connecta el teu compte de GitHub
+4. Selecciona el teu fork de BentoPDF
+
+### Pas 2: configura la compilació
+
+| Paràmetre | Valor |
+| ----------------------- | --------------- |
+| Ordre de compilació | `npm run build` |
+| Directori de publicació | `dist` |
+| Versió de Node | 18+ |
+
+### Pas 3: desplega
+
+Fes clic a "Deploy site" i espera que acabi la compilació.
+
+## Fitxer de configuració
+
+Crea `netlify.toml` a l'arrel del projecte:
+
+```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 Important
+Les capçaleres `Cross-Origin-Embedder-Policy` i `Cross-Origin-Opener-Policy` són necessàries per a les conversions de Word/ODT/Excel/PowerPoint a PDF. Sense elles, `SharedArrayBuffer` no està disponible i el motor WASM de LibreOffice no es podrà inicialitzar.
+
+Les capçaleres `Content-Encoding: gzip` als fitxers `.wasm.gz` i `.data.gz` indiquen al navegador que els descomprimeixi automàticament. Sense elles, el navegador rep bytes gzip en brut i la compilació de WASM falla.
+:::
+
+## Variables d'entorn
+
+Defineix-les a Site settings → Environment variables:
+
+| Variable | Descripció |
+| ----------------------- | ------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Posa-ho a `true` per a una compilació mínima |
+| `VITE_BRAND_NAME` | Nom de marca personalitzat (substitueix "BentoPDF") |
+| `VITE_BRAND_LOGO` | Ruta del logotip relativa a `public/` (p. ex. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Text personalitzat del peu de pàgina o dels drets d'autor |
+| `VITE_DEFAULT_LANGUAGE` | Idioma per defecte de la interfície (p. ex. `fr`, `de`, `es`) |
+
+## Domini personalitzat
+
+1. Ves a Site settings → Domain management
+2. Fes clic a "Add custom domain"
+3. Segueix les instruccions de configuració del DNS
+
+## Fitxers multimèdia grans
+
+Per als fitxers WASM grans, considera activar [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Resolució de problemes
+
+### La conversió de Word/ODT/Excel a PDF es queda al 55 %
+
+Si les conversions de documents es queden penjades al 55 %, obre la consola de DevTools i comprova:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Si `crossOriginIsolated` és `false`, les capçaleres COEP/COOP del teu `netlify.toml` no s'estan aplicant. Assegura't que el fitxer és a l'arrel del projecte i torna a desplegar.
+
+Si veus `expected magic word 00 61 73 6d, found 1f 8b 08 08` a la consola, als fitxers `.wasm.gz` els falten les capçaleres `Content-Encoding: gzip`. Assegura't que els blocs `[[headers]]` de `soffice.wasm.gz` i `soffice.data.gz` són al teu `netlify.toml`.
+
+### La compilació falla
+
+Comprova la compatibilitat de la versió de Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Càrrega inicial lenta
+
+Activa l'optimització d'actius a Site settings → Build & deploy → Asset optimization.
diff --git a/docs/ca/self-hosting/nginx.md b/docs/ca/self-hosting/nginx.md
new file mode 100644
index 00000000..d3e3f844
--- /dev/null
+++ b/docs/ca/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Desplega amb Nginx
+
+Allotja BentoPDF al teu propi servidor amb Nginx.
+
+## Requisits previs
+
+- Servidor Ubuntu/Debian
+- Nginx instal·lat
+- Certificat SSL (recomanat: Let's Encrypt)
+
+## Pas 1: compila el projecte
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Per personalitzar la marca, defineix variables d'entorn abans de compilar:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Pas 2: copia els fitxers
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Pas 3: configuració de Nginx
+
+Crea `/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;
+ }
+}
+```
+
+## Pas 4: activa el lloc
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Pas 5: SSL amb Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Desplegament en un subdirectori
+
+Per allotjar-lo a `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Compila amb:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Ajust del rendiment
+
+Afegeix a `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;
+}
+```
+
+## Resolució de problemes
+
+### WASM no es carrega
+
+Assegura't que el tipus MIME està definit:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Signa PDF o l'Emplenador de formularis mostra un visualitzador en blanc (error MIME de `.mjs`)
+
+Si la consola del navegador mostra:
+
+```
+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.
+```
+
+...i la petició que falla acaba en `.mjs`, al teu nginx li falta l'assignació `.mjs → application/javascript`. El visualitzador de PDF incorporat (que fan servir Signa PDF, l'Emplenador de formularis i algunes altres eines) inclou fitxers de mòdul ES amb extensió `.mjs`, i el `mime.types` estàndard de nginx no els inclou per defecte.
+
+Per solucionar-ho, afegeix `mjs` a la línia existent d'`application/javascript` de `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> NO afegeixis una _segona_ línia `application/javascript`: nginx analitza `mime.types` línia per línia i només guanya una assignació de tipus a extensió, així que una segona línia s'ignora en silenci en algunes versions. Edita la línia existent per afegir `mjs` al costat de `js`.
+
+O sobreescriu-ho localment dins del bloc server (sense editar el fitxer global):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Torna a carregar nginx després del canvi:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Per confirmar-ho: a DevTools del navegador → pestanya Network, troba la petició `.mjs` que fallava i comprova la capçalera de resposta `Content-Type`. Ara hauria de ser `application/javascript`, no `application/octet-stream`.
+
+### La conversió de Word/ODT/Excel a PDF no funciona
+
+LibreOffice WASM requereix `SharedArrayBuffer`, que necessita les capçaleres `Cross-Origin-Embedder-Policy` i `Cross-Origin-Opener-Policy`. També necessita un context segur, així que `http://localhost` funciona per a proves locals, però `http://192.168.x.x` o altres IP de la xarxa local normalment requereixen HTTPS. Tingues en compte que les directives `add_header` de nginx dins d'un bloc `location` **sobreescriuen** les directives `add_header` del nivell de servidor: no es combinen. Cada bloc `location` amb el seu propi `add_header` ha d'incloure les capçaleres COEP/COOP.
+
+Verifica-ho amb:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Si fas servir un servidor intermediari invers davant de nginx, assegura't que conservi aquestes capçaleres.
+
+### 502 Bad Gateway
+
+Comprova els registres d'errors de Nginx:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/ca/self-hosting/vercel.md b/docs/ca/self-hosting/vercel.md
new file mode 100644
index 00000000..4777752f
--- /dev/null
+++ b/docs/ca/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Desplega a Vercel
+
+[Vercel](https://vercel.com) ofereix l'experiència de desplegament més senzilla per a llocs estàtics.
+
+## Desplegament amb un clic
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Desplegament manual
+
+### Pas 1: fes un fork del repositori
+
+Fes un fork de [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) al teu compte de GitHub.
+
+### Pas 2: importa'l a Vercel
+
+1. Ves a [vercel.com/new](https://vercel.com/new)
+2. Selecciona el repositori del teu fork
+3. Configura el projecte:
+
+| Paràmetre | Valor |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Pas 3: variables d'entorn (opcional)
+
+Afegeix-les si cal:
+
+| Variable | Descripció |
+| ----------------------- | ------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Posa-ho a `true` per a una interfície mínima |
+| `VITE_BRAND_NAME` | Nom de marca personalitzat (substitueix "BentoPDF") |
+| `VITE_BRAND_LOGO` | Ruta del logotip relativa a `public/` (p. ex. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Text personalitzat del peu de pàgina o dels drets d'autor |
+| `VITE_DEFAULT_LANGUAGE` | Idioma per defecte de la interfície (p. ex. `fr`, `de`, `es`) |
+
+### Pas 4: desplega
+
+Fes clic a "Deploy" i espera que s'acabi la compilació.
+
+## Domini personalitzat
+
+1. Ves a la configuració del projecte
+2. Navega a "Domains"
+3. Afegeix el teu domini personalitzat
+4. Configura el DNS segons les instruccions
+
+## Limitacions
+
+::: warning Fitxers grans
+Les funcions serverless de Vercel tenen un límit de 50 MB. Com que BentoPDF és un lloc estàtic, això no hauria d'afectar-te, però els mòduls WASM són grans (~100 MB en total). Assegura't que es serveixin des de la carpeta `/public`.
+:::
+
+## Resolució de problemes
+
+### Temps d'espera de la compilació esgotat
+
+Si les compilacions s'esgoten, prova això:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 en actualitzar la pàgina
+
+Afegeix un `vercel.json` per a l'encaminament SPA:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### La conversió de Word/ODT/Excel a PDF no funciona
+
+Les conversions de LibreOffice WASM requereixen `SharedArrayBuffer`, que necessita aquestes capçaleres de resposta a totes les pàgines:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Els fitxers precomprimits `.wasm.gz` i `.data.gz` també necessiten `Content-Encoding: gzip` perquè el navegador els descomprimeixi.
+
+Afegeix-ho al teu `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" }
+ ]
+ }
+ ]
+}
+```
+
+Per verificar-ho, obre la consola de DevTools i executa `console.log(window.crossOriginIsolated)`: hauria de retornar `true`.
diff --git a/docs/ca/tools/add-attachments.md b/docs/ca/tools/add-attachments.md
new file mode 100644
index 00000000..a05c41e8
--- /dev/null
+++ b/docs/ca/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Afegeix fitxers adjunts
+description: Incrusta fitxers de qualsevol tipus en un PDF, a nivell de document o adjunts a pàgines concretes.
+---
+
+# Afegeix fitxers adjunts
+
+Incrusta un o més fitxers directament dins d'un document PDF. Els adjunts es poden afegir a nivell de document (visibles al tauler d'adjunts de qualsevol lector de PDF) o vincular a pàgines concretes.
+
+## Com funciona
+
+1. Puja el PDF al qual vols adjuntar fitxers.
+2. Fes servir la zona de càrrega d'adjunts per seleccionar els fitxers que vols incrustar (de qualsevol tipus).
+3. Tria el nivell de l'adjunt: **Document** (per defecte) o **Pàgina**.
+4. Si tries el nivell de pàgina, introdueix un interval de pàgines (per exemple, `1-3` o `5`).
+5. Fes clic al botó de processar. El PDF modificat es baixa amb els fitxers incrustats.
+
+## Característiques
+
+- Adjunta qualsevol tipus de fitxer: imatges, fulls de càlcul, arxius comprimits, executables, el que sigui
+- Adjunts a nivell de document o de pàgina
+- Es poden adjuntar diversos fitxers en una sola operació
+- Mostra els noms i les mides de tots els adjunts seleccionats
+- El resultat conserva el contingut original del PDF amb els fitxers incrustats afegits
+
+## Opcions
+
+| Opció | Descripció |
+| ---------------------- | ----------------------------------------------------------------------------- |
+| **Nivell de document** | Adjunta els fitxers al PDF en conjunt, accessibles des del tauler d'adjunts |
+| **Nivell de pàgina** | Adjunta els fitxers a pàgines concretes, indicades amb un interval de pàgines |
+
+## Casos d'ús
+
+- Incloure dades d'origen (fitxers Excel, CSV) amb un informe en PDF
+- Adjuntar les imatges originals a un PDF de portfoli fotogràfic
+- Incrustar documents justificatius dins d'un contracte o una proposta
+- Afegir material complementari a pàgines concretes d'un manual de formació
+
+## Consells
+
+- Els adjunts a nivell de document són els més compatibles amb els lectors de PDF. És possible que els adjunts a nivell de pàgina no es vegin en tots els visualitzadors.
+- No hi ha cap límit de mida per als adjunts, però els fitxers incrustats molt grans fan créixer el PDF en la mateixa proporció.
+
+## Eines relacionades
+
+- [Extreu fitxers adjunts](./extract-attachments)
+- [Edita fitxers adjunts](./edit-attachments)
+- [Fusiona PDF](./merge-pdf)
diff --git a/docs/ca/tools/add-blank-page.md b/docs/ca/tools/add-blank-page.md
new file mode 100644
index 00000000..0a21fa36
--- /dev/null
+++ b/docs/ca/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Afegeix una pàgina en blanc
+description: Insereix una o més pàgines en blanc a qualsevol posició d'un document PDF.
+---
+
+# Afegeix una pàgina en blanc
+
+Insereix pàgines buides en un PDF a la posició que indiquis. Tu decideixes on van les pàgines en blanc i quantes n'afegeixes.
+
+## Com funciona
+
+1. Puja un fitxer PDF. L'eina mostra el nombre de pàgines.
+2. Introdueix la **posició** on s'han d'inserir les pàgines en blanc. Utilitza `0` per inserir-les al principi de tot, o el total de pàgines per afegir-les al final.
+3. Introdueix el **nombre** de pàgines en blanc que vols afegir (per defecte, 1).
+4. Fes clic al botó de processar. El PDF modificat es baixa amb les pàgines en blanc inserides.
+
+## Característiques
+
+- Insereix a qualsevol posició: al principi, al mig o al final del document
+- Afegeix diverses pàgines en blanc en una sola operació
+- La indicació de la posició s'actualitza dinàmicament segons el nombre de pàgines del PDF pujat
+- Pàgines en blanc de mida A4 estàndard
+
+## Casos d'ús
+
+- Afegir una pàgina separadora en blanc entre les seccions d'un document recopilat
+- Inserir pàgines en blanc per alinear la impressió a doble cara
+- Deixar espai per a notes manuscrites en una guia d'estudi impresa
+- Completar un document per arribar a un nombre mínim de pàgines
+
+## Consells
+
+- La posició `0` insereix abans de la primera pàgina. Una posició igual al total de pàgines afegeix després de l'última pàgina.
+- Si has d'inserir contingut (no només pàgines en blanc) en una posició concreta, utilitza l'[Eina multifunció de PDF](./pdf-multi-tool) per inserir un altre PDF després d'una pàgina determinada.
+
+## Eines relacionades
+
+- [Organitza i duplica](./organize-pdf)
+- [Eina multifunció de PDF](./pdf-multi-tool)
+- [Fusiona PDF](./merge-pdf)
diff --git a/docs/ca/tools/add-page-labels.md b/docs/ca/tools/add-page-labels.md
new file mode 100644
index 00000000..d7d3e103
--- /dev/null
+++ b/docs/ca/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Afegeix etiquetes de pàgina
+description: Afegeix etiquetes de pàgina al PDF amb xifres romanes, prefixos de lletres, numeració personalitzada i diverses regles per document.
+---
+
+# Afegeix etiquetes de pàgina
+
+Les etiquetes de pàgina controlen com es mostren els números de pàgina als visualitzadors de PDF (el número que apareix a la barra d'eines, no el imprès a la pàgina). Aquesta eina et permet assignar diferents esquemes d'etiquetatge a diferents intervals de pàgines: xifres romanes per als preliminars, números decimals per al cos, apèndixs amb lletres i més.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. Apareix el tauler d'opcions amb una regla d'etiqueta per defecte.
+3. Configura cada regla amb un interval de pàgines, un estil, un prefix opcional i un valor inicial.
+4. Fes clic a **Afegeix una regla** per crear regles addicionals per a altres seccions.
+5. Fes clic a **Afegeix etiquetes de pàgina** per aplicar totes les regles i baixar el resultat.
+
+## Opcions
+
+Cada regla d'etiqueta té aquests paràmetres:
+
+- **Interval de pàgines**: les pàgines a les quals s'aplica la regla. Deixa-ho buit per a totes les pàgines. Admet intervals com `1-4`, `7`, `odd` o `1-9,30-40`.
+- **Estil d'etiqueta**: àrab decimal, romà en minúscula (i, ii, iii), romà en majúscula (I, II, III), lletres en minúscula (a, b, c), lletres en majúscula (A, B, C) o sense etiqueta (només prefix).
+- **Prefix de l'etiqueta**: text opcional que s'afegeix davant de cada etiqueta, com ara "A-" per crear etiquetes com A-1, A-2, A-3.
+- **Valor inicial**: el número des del qual comença el recompte. Per defecte és 1. Posa 0 per a una numeració que comenci per zero.
+- **Continua la numeració entre intervals no contigus**: activa-ho quan una regla afecta pàgines no contigües (com `1-9,30-40` o `odd`) i vols que la numeració continuï de manera seqüencial.
+- **Elimina les etiquetes de pàgina existents**: marcat per defecte. Esborra les etiquetes anteriors abans d'aplicar les regles noves.
+
+## Característiques
+
+- Diverses regles d'etiqueta per document per a esquemes de numeració complexos
+- Sis estils d'etiqueta que cobreixen tots els sistemes de numeració estàndard
+- Prefixos personalitzats per etiquetar per seccions
+- Compatibilitat amb intervals no contigus amb numeració progressiva
+- Opció de conservar o eliminar les etiquetes existents
+
+## Casos d'ús
+
+- Posar etiquetes amb xifres romanes (i, ii, iii) al prefaci d'un llibre i etiquetes decimals al text principal
+- Etiquetar les pàgines d'un apèndix amb prefixos de lletres com "A-1", "A-2", "B-1", "B-2"
+- Corregir les etiquetes de pàgina d'un document escanejat en què els números de pàgina físics no coincideixen amb l'ordre de pàgines del PDF
+- Afegir una numeració que comenci per zero a documents tècnics
+
+## Consells
+
+- Les etiquetes de pàgina són metadades que els visualitzadors de PDF mostren a la barra de navegació. No s'imprimeixen a la pàgina. Per a números visibles, utilitza [Números de pàgina](./page-numbers).
+- Aquesta eina requereix que CoherentPDF (CPDF) estigui configurat a la configuració de WASM. Si no ho està, se't demanarà que el configuris.
+
+## Eines relacionades
+
+- [Números de pàgina](./page-numbers)
+- [Numeració Bates](./bates-numbering)
+- [Edita els marcadors](./bookmark)
diff --git a/docs/ca/tools/add-stamps.md b/docs/ca/tools/add-stamps.md
new file mode 100644
index 00000000..f396f3ae
--- /dev/null
+++ b/docs/ca/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Afegeix segells
+description: Afegeix segells d'imatge a les pàgines del PDF amb una barra d'eines d'anotació integrada i atribució amb nom d'usuari.
+---
+
+# Afegeix segells
+
+Col·loca segells d'imatge a les pàgines del PDF amb un visualitzador incrustat que inclou una barra d'eines d'anotació de segells. Els segells poden incloure el teu nom com a atribució, cosa que és útil per a fluxos d'aprovació, processos de revisió i marcatge de documents.
+
+## Com funciona
+
+1. Introdueix el teu nom al camp **Nom d'usuari del segell**. Aquest nom apareixerà als segells que creïs.
+2. Puja el fitxer PDF fent-hi clic o arrossegant-lo a la zona de càrrega.
+3. S'obre l'editor de segells amb el document carregat en un visualitzador.
+4. Utilitza l'eina de segell d'imatge de la barra d'eines per seleccionar i col·locar segells a qualsevol pàgina.
+5. Posiciona i redimensiona els segells segons calgui.
+6. Fes clic a **Desa el PDF amb segells** per baixar el resultat.
+
+## Característiques
+
+- Visualitzador de PDF integrat amb una barra d'eines d'anotació específica per a segells
+- Atribució amb nom d'usuari als segells creats
+- Col·locació de segells d'imatge a qualsevol pàgina
+- Posicionament i redimensionament arrossegant
+- Mida del visualitzador automàtica segons la proporció d'aspecte de la pàgina
+- Visualització del fitxer amb el nom i la mida
+
+## Casos d'ús
+
+- Afegir segells d'imatge "APROVAT" o "REVISAT" a documents en un flux de revisió
+- Col·locar imatges del segell de l'empresa o d'un notari en documents oficials
+- Marcar pàgines amb segells "REBUT" que inclouen el nom del revisor
+- Afegir segells de control de qualitat als informes d'inspecció
+
+## Consells
+
+- Defineix el nom d'usuari del segell abans de pujar el PDF. El nom d'usuari s'incrusta a les metadades del segell.
+- El visualitzador ajusta l'alçada segons la proporció d'aspecte de la primera pàgina del PDF per oferir una visualització òptima.
+- Per a marques d'aigua de text en comptes de segells d'imatge, utilitza l'eina [Afegeix una marca d'aigua](./add-watermark).
+
+## Eines relacionades
+
+- [Signa PDF](./sign-pdf)
+- [Afegeix una marca d'aigua](./add-watermark)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/ca/tools/add-watermark.md b/docs/ca/tools/add-watermark.md
new file mode 100644
index 00000000..652ce01c
--- /dev/null
+++ b/docs/ca/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Afegeix una marca d'aigua
+description: Estampa marques d'aigua de text o d'imatge a les pàgines del PDF amb un editor visual d'arrossegar i deixar anar i vista prèvia en directe.
+---
+
+# Afegeix una marca d'aigua
+
+Afegeix marques d'aigua de text o d'imatge a les pàgines del PDF amb un editor visual. Pots posicionar la marca d'aigua arrossegant-la directament sobre la vista prèvia, redimensionar-la amb els tiradors de les cantonades i configurar l'opacitat, la rotació, el tipus de lletra i el color. Cada pàgina pot tenir la seva pròpia posició de marca d'aigua, o pots aplicar la mateixa marca a totes les pàgines alhora.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. S'obre l'editor amb una vista prèvia en directe de la primera pàgina i una superposició de marca d'aigua que es pot arrossegar.
+3. Tria entre el mode de marca d'aigua de **Text** o d'**Imatge** amb els botons commutadors.
+4. Configura els paràmetres de la marca d'aigua al tauler lateral.
+5. Arrossega la marca d'aigua sobre la vista prèvia per posicionar-la exactament on vulguis. Utilitza els tiradors de les cantonades per redimensionar-la.
+6. Navega entre pàgines per definir marques d'aigua per pàgina, o deixa marcat **Aplica a totes les pàgines**.
+7. Fes clic a **Afegeix una marca d'aigua** per processar i baixar.
+
+## Opcions
+
+**Paràmetres de la marca d'aigua de text:**
+
+- **Text**: el text de la marca d'aigua (per exemple, "CONFIDENCIAL", "ESBORRANY").
+- **Mida de la lletra**: de 10 a 200 punts. Per defecte és 72.
+- **Color**: qualsevol color amb el selector de color.
+- **Opacitat**: controla la transparència, de totalment transparent a totalment opac.
+- **Rotació**: gira el text de la marca d'aigua de -180 a 180 graus.
+
+**Paràmetres de la marca d'aigua d'imatge:**
+
+- **Càrrega d'imatge**: puja un fitxer PNG, JPG o d'un altre format d'imatge per fer-lo servir com a marca d'aigua.
+- **Opacitat**: controla la transparència de la imatge.
+- **Escala**: redimensiona la marca d'aigua d'imatge.
+
+**Paràmetres de disposició:**
+
+- **Única**: una marca d'aigua per pàgina, posicionada arrossegant-la o amb les posicions predefinides.
+- **En mosaic**: repeteix la marca d'aigua per tota la pàgina en una quadrícula diagonal que segueix l'angle de rotació, de manera que la marca cobreix el document d'extrem a extrem.
+- **Separació horitzontal**: espai entre les rajoles al llarg de la direcció del text, com a percentatge de l'amplada de la marca d'aigua (només en mode mosaic).
+- **Separació vertical**: espai entre les files de rajoles, com a percentatge de l'alçada de la marca d'aigua (només en mode mosaic).
+
+**Paràmetres generals:**
+
+- **Aplica a totes les pàgines**: si està marcat, la mateixa marca d'aigua s'aplica a cada pàgina. Desmarca-ho per definir marques d'aigua individuals per pàgina.
+- **Interval de pàgines**: indica quines pàgines reben la marca d'aigua (per exemple, "1-3, 5, 7-9" o "all").
+
+## Característiques
+
+- Posicionament visual arrossegant sobre una vista prèvia en directe del PDF
+- Marca d'aigua redimensionable amb tiradors a les cantonades
+- Modes de marca d'aigua de text i d'imatge
+- Disposició única o en mosaic (repetida) a tota la pàgina amb espaiat ajustable
+- Aplicació de la marca d'aigua per pàgina o global
+- Navegació pàgina per pàgina a la vista prèvia
+- Controls d'opacitat i rotació
+- Filtratge per interval de pàgines
+
+## Casos d'ús
+
+- Marcar documents en esborrany amb "ESBORRANY" abans de fer-los circular per revisar
+- Afegir marques d'aigua "CONFIDENCIAL" a informes financers sensibles
+- Donar identitat de marca als documents amb una marca d'aigua amb el logotip de l'empresa
+- Estampar "MOSTRA" a la documentació de productes compartida amb clients potencials
+- Afegir avisos de drets d'autor als materials en PDF que es distribueixen
+
+## Consells
+
+- Per a marques d'aigua diagonals a tota la pàgina, defineix una rotació d'uns 45 graus i augmenta la mida de la lletra.
+- El mode en mosaic fa que un document sigui molt més difícil de reutilitzar després de retallar-lo, ja que eliminar una marca deixa desenes d'altres. Redueix l'opacitat quan facis servir mosaic perquè el text de sota continuï sent llegible.
+- Les marques d'aigua d'imatge amb fons transparent (format PNG) es combinen de manera més natural amb el contingut del document.
+- Si necessites un text de marca d'aigua diferent a pàgines diferents, desmarca "Aplica a totes les pàgines" i navega pàgina per pàgina.
+
+## Eines relacionades
+
+- [Capçalera i peu de pàgina](./header-footer)
+- [Afegeix segells](./add-stamps)
+- [Numeració Bates](./bates-numbering)
+- [Signa PDF](./sign-pdf)
diff --git a/docs/ca/tools/adjust-colors.md b/docs/ca/tools/adjust-colors.md
new file mode 100644
index 00000000..691c37c9
--- /dev/null
+++ b/docs/ca/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Ajusta els colors
+description: Ajusta amb precisió la brillantor, el contrast, la saturació, el to, la temperatura, el matís, la gamma i el sèpia del PDF.
+---
+
+# Ajusta els colors
+
+Un conjunt complet d'eines de gradació de color per a PDF. Ajusta vuit paràmetres independents (brillantor, contrast, saturació, canvi de to, temperatura, matís, gamma i sèpia) amb una vista prèvia en directe que s'actualitza a mesura que mous cada control lliscant.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. S'obre l'editor amb una vista prèvia de la primera pàgina i un tauler de configuració del color.
+3. Mou els controls lliscants per ajustar cada paràmetre de color. La vista prèvia s'actualitza en temps real.
+4. Fes clic a **Restableix** per tornar tots els controls lliscants a la posició per defecte.
+5. Fes clic a **Aplica** per processar totes les pàgines i baixar el PDF ajustat.
+
+## Opcions
+
+- **Brillantor**: il·lumina o enfosqueix tota la pàgina (de -100 a +100).
+- **Contrast**: augmenta o redueix la diferència entre les zones clares i fosques (de -100 a +100).
+- **Saturació**: augmenta o redueix la intensitat del color (de -100 a +100). Si la poses a -100, el resultat és en escala de grisos.
+- **Canvi de to**: gira la roda de colors per desplaçar tots els colors de manera uniforme.
+- **Temperatura**: desplaça els colors cap a tons més càlids (groc/taronja) o més freds (blau).
+- **Matís**: afegeix una dominant verda o magenta.
+- **Gamma**: ajusta la brillantor dels tons mitjans amb una corba gamma. Els valors inferiors a 1,0 enfosqueixen els tons mitjans; els valors superiors a 1,0 els il·luminen.
+- **Sèpia**: aplica un efecte clàssic de to sèpia. Com més alt és el valor, més intens és el to marró.
+
+## Característiques
+
+- Vuit paràmetres de color que es poden ajustar de manera independent
+- Vista prèvia en directe que respon immediatament als canvis dels controls lliscants
+- Botó de restabliment per tornar ràpidament als valors per defecte
+- Processa totes les pàgines del document
+- Funciona amb qualsevol contingut del PDF (text, imatges, gràfics)
+
+## Casos d'ús
+
+- Il·luminar un escaneig fosc o corregir pàgines sobreexposades
+- Desaturar un document de colors per reduir el consum de tinta abans d'imprimir
+- Aplicar un to sèpia per donar un aspecte antic a certificats o guardons
+- Corregir la temperatura de color de les fotos incrustades en un PDF
+- Augmentar el contrast de documents escanejats esvaïts o de baixa qualitat
+
+## Consells
+
+- Per fer una conversió ràpida a escala de grisos, arrossega el control de saturació fins a -100.
+- El control de gamma és especialment útil per millorar la llegibilitat de documents escanejats en què els tons mitjans són massa foscos o massa clars.
+- Igual que les altres eines d'efectes d'imatge, aquesta rasteritza cada pàgina. El resultat serà basat en imatges, de manera que el text no es podrà seleccionar.
+
+## Eines relacionades
+
+- [Inverteix els colors](./invert-colors)
+- [Efecte d'escàner](./scanner-effect)
+- [Color de fons](./background-color)
diff --git a/docs/ca/tools/alternate-merge.md b/docs/ca/tools/alternate-merge.md
new file mode 100644
index 00000000..ad3c6667
--- /dev/null
+++ b/docs/ca/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Alterna i barreja pàgines
+description: Fusiona PDF intercalant les pàgines de cada fitxer en ordre alternat, conservant els marcadors.
+---
+
+# Alterna i barreja pàgines
+
+Intercala les pàgines de diversos fitxers PDF perquè les pàgines s'alternin entre documents. És l'eina que necessites quan una fusió estàndard només enganxaria els fitxers un darrere l'altre, però tu vols la pàgina 1 del fitxer A, després la pàgina 1 del fitxer B, després la pàgina 2 del fitxer A, i així successivament.
+
+## Com funciona
+
+1. Puja almenys dos fitxers PDF amb la zona de càrrega.
+2. L'eina mostra cada fitxer amb el seu nombre de pàgines i la seva mida.
+3. Arrossega els tiradors per reordenar quin fitxer aporta les pàgines primer en la seqüència d'intercalat.
+4. Fes clic a **Barreja pàgines** per generar el resultat intercalat.
+5. El resultat es baixa com a `alternated-mixed.pdf`.
+
+## Característiques
+
+- Intercala pàgines de qualsevol nombre de PDF (mínim dos)
+- Reordenació dels fitxers arrossegant-los per controlar la prioritat de l'intercalat
+- Conserva els marcadors dels documents d'origen
+- Mostra el nombre de pàgines i la mida de cada fitxer pujat
+- Es processa en un web worker dedicat perquè la interfície respongui bé
+
+## Casos d'ús
+
+- Tornar a muntar escanejos a doble cara en què les pàgines senars i parelles es van escanejar per separat
+- Combinar fulls de preguntes amb les claus de respostes perquè cada pregunta vagi seguida de la seva resposta
+- Fusionar documents en dos idiomes pàgina per pàgina (per exemple, l'anglès en una cara i la traducció a la següent)
+- Intercalar escanejos de l'anvers i el revers fets amb un escàner d'una sola cara
+
+## Consells
+
+- Si els PDF d'origen tenen un nombre de pàgines diferent, les pàgines del document més curt s'acabaran primer i les pàgines restants del document més llarg apareixeran al final.
+- L'ordre dels fitxers importa: el primer fitxer de la llista aporta la primera pàgina del resultat. Arrossega'ls per reordenar-los si cal.
+
+## Eines relacionades
+
+- [Fusiona PDF](./merge-pdf)
+- [Organitza i duplica](./organize-pdf)
+- [Divideix PDF](./split-pdf)
diff --git a/docs/ca/tools/background-color.md b/docs/ca/tools/background-color.md
new file mode 100644
index 00000000..b87e18ae
--- /dev/null
+++ b/docs/ca/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Color de fons
+description: Canvia el color de fons de totes les pàgines del PDF conservant tot el contingut al damunt.
+---
+
+# Color de fons
+
+Defineix un color de fons uniforme darrere de tot el contingut existent del PDF. L'eina crea un rectangle de color a cada pàgina i hi col·loca al damunt el contingut original, de manera que el text, les imatges i els gràfics es continuen veient perfectament sobre el fons nou.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. Tria un color de fons amb el selector de color. El valor per defecte és un groc clar (#FFFFCC).
+3. Fes clic a **Canvia el color de fons** per processar.
+4. El PDF actualitzat es baixa automàticament.
+
+## Opcions
+
+- **Color de fons**: un selector de color estàndard per triar qualsevol color uniforme. Per defecte és groc clar.
+
+## Característiques
+
+- Aplica un color de fons uniforme a totes les pàgines
+- Conserva tot el contingut original (text, imatges, gràfics vectorials) al damunt de la capa de color
+- Manté les dimensions originals de la pàgina
+- Funciona amb documents de qualsevol nombre de pàgines
+
+## Casos d'ús
+
+- Afegir un fons crema o ivori clar per donar als documents un aspecte més suau, semblant al paper
+- Codificar amb colors conjunts de documents aplicant fons diferents a categories diferents
+- Crear versions visualment diferenciades del mateix document per a públics diferents
+- Afegir un lleu to de fons per millorar la llegibilitat quan es projecten documents en pantalla
+
+## Consells
+
+- Els colors clars i suaus funcionen millor. Un fons molt fosc pot dificultar la lectura del text, tret que el text ja sigui de color clar.
+- Si vols canviar tant el color de fons com el del text, aplica primer el color de fons i després utilitza [Canvia el color del text](./text-color) sobre el resultat.
+- Aquesta eina treballa a nivell estructural del PDF (no rasteritza), de manera que el text continua sent seleccionable i es pot cercar al resultat.
+
+## Eines relacionades
+
+- [Canvia el color del text](./text-color)
+- [Inverteix els colors](./invert-colors)
+- [Ajusta els colors](./adjust-colors)
diff --git a/docs/ca/tools/bates-numbering.md b/docs/ca/tools/bates-numbering.md
new file mode 100644
index 00000000..34f13a96
--- /dev/null
+++ b/docs/ca/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Numeració Bates
+description: Aplica números Bates a un o diversos PDF amb plantilles personalitzables, farciment, tipus de lletra i posicionament.
+---
+
+# Numeració Bates
+
+La numeració Bates estampa identificadors seqüencials a cada pàgina dels PDF. És el mètode estàndard per etiquetar documents en procediments judicials, auditories i fluxos de compliment normatiu. Aquesta eina admet diversos fitxers i plantilles personalitzables, i genera PDF numerats individualment o un únic arxiu ZIP.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF. Pots arrossegar-ne diversos alhora.
+2. Tria un estil predefinit o crea una plantilla personalitzada.
+3. Configura la posició, el tipus de lletra, la mida, el color i els números inicials.
+4. Fes clic a **Aplica els números Bates** per processar.
+5. Un sol fitxer es baixa directament. Diversos fitxers es baixen en un arxiu ZIP.
+
+## Opcions
+
+- **Estil predefinit**: tria entre els formats integrats:
+ - Exhibit + Case + Bates + Page (per exemple, "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (sense número de pàgina)
+ - Case + Bates
+ - Només número Bates (per exemple, "000001")
+ - Personalitzat (escriu la teva pròpia plantilla)
+- **Personalitza l'estil**: una cadena de plantilla amb marcadors de posició: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Farciment Bates**: nombre de dígits (de 3 a 6) dels números Bates amb zeros a l'esquerra. Només es veu en mode personalitzat.
+- **Posició**: capçalera o peu de pàgina, esquerra, centre o dreta.
+- **El Bates comença a**: el primer número Bates. Per defecte és 1. La numeració continua entre fitxers.
+- **El comptador de fitxers comença a**: el número inicial del marcador de posició `[FILE]`.
+- **Tipus de lletra**: Helvetica, Times New Roman o Courier.
+- **Mida de la lletra**: mida del text estampat.
+- **Color**: selector de color per al text del número Bates.
+
+## Característiques
+
+- Vista prèvia en directe que mostra com apareixeran els números Bates a tots els fitxers pujats
+- Compatibilitat amb diversos fitxers amb numeració contínua entre documents
+- Reordenació dels fitxers arrossegant-los per controlar la seqüència de numeració
+- Sis opcions de posició (capçalera/peu, esquerra/centre/dreta)
+- Càlcul adaptatiu dels marges que respecta les diferents mides de pàgina
+- Sortida en ZIP per a lots de diversos fitxers
+- Marcadors de posició a les plantilles per a la màxima flexibilitat
+
+## Casos d'ús
+
+- Estampar documents de descobriment per a litigis amb números d'exhibit seqüencials
+- Numerar paquets de proves d'auditoria que abasten desenes de fitxers
+- Aplicar números de referència reglamentaris a la documentació de compliment normatiu
+- Etiquetar els annexos d'una sol·licitud de patent amb identificadors propis del cas
+
+## Consells
+
+- Arrossega els fitxers de la llista per reordenar-los abans de processar. La seqüència de numeració Bates segueix aquest ordre.
+- Utilitza el marcador de posició `[FILENAME]` per incloure el nom original del fitxer a l'estampat, cosa que ajuda a localitzar les pàgines als documents d'origen.
+- El quadre de vista prèvia s'actualitza en temps real quan canvies la configuració, de manera que pots comprovar el format abans de processar.
+
+## Eines relacionades
+
+- [Números de pàgina](./page-numbers)
+- [Afegeix etiquetes de pàgina](./add-page-labels)
+- [Capçalera i peu de pàgina](./header-footer)
diff --git a/docs/ca/tools/bmp-to-pdf.md b/docs/ca/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..4b0d666a
--- /dev/null
+++ b/docs/ca/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP a PDF
+description: Converteix imatges de mapa de bits BMP a PDF directament al navegador, sense pujar res a cap servidor.
+---
+
+# BMP a PDF
+
+Converteix fitxers Windows Bitmap (BMP) a PDF. BMP és un format d'imatge sense compressió que encara es troba en sistemes antics, imatgeria mèdica i escàners industrials. Aquesta eina els converteix a PDF sense haver d'instal·lar res.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :----- | :--------- |
+| BMP | `.bmp` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers BMP.
+2. Revisa la llista de fitxers. Afegeix-ne més o elimina els que no vulguis.
+3. Fes clic a **Converteix a PDF**. El resultat es baixa com a `from_bmps.pdf`.
+
+Cada BMP es dibuixa en un canvas, s'exporta com a PNG i després s'incrusta al PDF amb pdf-lib. La mida de la pàgina coincideix amb les dimensions originals de la imatge.
+
+## Opcions
+
+Aquesta eina no ofereix paràmetres de qualitat addicionals. Les imatges s'incrusten a la resolució original com a PNG sense pèrdua dins del PDF.
+
+## Casos d'ús
+
+- Convertir en PDF d'arxiu documents antics escanejats i desats com a BMP
+- Convertir captures de pantalla BMP d'aplicacions antigues de Windows en documents que es puguin compartir
+- Processar la sortida d'escàners mèdics o industrials que per defecte genera BMP
+- Migrar arxius d'imatges antics a un format més portàtil
+
+## Consells
+
+- Els fitxers BMP no estan comprimits, de manera que solen ser grans. El PDF resultant serà considerablement més petit perquè internament les imatges es tornen a codificar com a PNG.
+- Si tens fitxers BMP juntament amb altres formats d'imatge, utilitza l'eina [Imatges a PDF](./image-to-pdf) per convertir-ho tot en un sol lot.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [TIFF a PDF](./tiff-to-pdf)
diff --git a/docs/ca/tools/bookmark.md b/docs/ca/tools/bookmark.md
new file mode 100644
index 00000000..e18cf0e7
--- /dev/null
+++ b/docs/ca/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Edita els marcadors
+description: Afegeix, edita, importa, exporta i elimina els marcadors d'un PDF amb un editor visual i compatibilitat amb CSV/JSON.
+---
+
+# Edita els marcadors
+
+L'editor de marcadors et dona control total sobre els marcadors de navegació d'un PDF (també anomenats esquema). Pots afegir-ne de nous, editar els existents, reorganitzar la jerarquia i importar o exportar les dades dels marcadors en format CSV i JSON.
+
+## Com funciona
+
+1. Puja el PDF fent clic o arrossegant un fitxer a la zona de càrrega.
+2. Si vols, marca **Extreu automàticament els marcadors existents** per carregar l'arbre de marcadors actual del document.
+3. L'editor s'obre amb una vista dividida: el visor de PDF a l'esquerra i el tauler de marcadors a la dreta.
+4. Escriu el títol d'un marcador i fes clic a **Afegeix a la pàgina** per crear un marcador que apunti a la pàgina actual.
+5. Fes servir els botons de la barra d'eines per reorganitzar, aplicar estil o eliminar marcadors.
+6. Fes clic a **Desa el PDF amb els marcadors** per baixar el fitxer actualitzat.
+
+## Funcions
+
+- Visor de PDF visual amb navegació per pàgines, controls de zoom i camp per anar a una pàgina
+- Afegeix marcadors a qualsevol pàgina amb un sol clic
+- Fes clic directament al PDF per definir una destinació exacta del marcador (mode de selecció)
+- Jerarquia de marcadors imbricats amb reordenació per arrossegament
+- Operacions per lots: selecciona diversos marcadors per canviar-ne el color o l'estil, o eliminar-los alhora
+- Cerca de marcadors per trobar ràpidament entrades en arbres grans
+- Suport de desfer i refer per a tots els canvis
+- Importa marcadors des de fitxers CSV (títol, pàgina, nivell) o JSON
+- Exporta marcadors a CSV o JSON per editar-los externament
+- Estil dels marcadors: color (vermell, blau, verd, groc, lila) i estil de la lletra (negreta, cursiva, negreta cursiva)
+- Navegació ràpida: desplaça't per les pàgines amb les tecles de pàgina amunt i avall
+
+## Opcions
+
+- **Extreu automàticament els marcadors existents**: quan està marcada, l'eina llegeix i mostra els marcadors actuals del PDF en carregar-lo.
+- **Mode per lots**: activa-ho per seleccionar diversos marcadors i aplicar-hi canvis de color o estil, o eliminar-los en bloc.
+- **Desplega-ho tot / Replega-ho tot**: mostra o amaga ràpidament els marcadors fills imbricats.
+
+## Casos d'ús
+
+- Afegir una taula de continguts a un llibre de text o un manual que no té marcadors
+- Reestructurar els marcadors d'un document escanejat després de processar-lo amb OCR
+- Exportar els marcadors a CSV, editar-los en un full de càlcul i tornar-los a importar
+- Netejar marcadors generats automàticament que tenen referències de pàgina incorrectes
+- Afegir marcadors de colors per assenyalar les seccions importants d'un escrit jurídic
+
+## Consells
+
+- Fes servir la importació CSV per crear marcadors en massa. El format és senzill: `title,page,level`, on el nivell 1 és el nivell superior.
+- El mode de selecció et permet fer clic en un punt exacte de la pàgina del PDF per definir la destinació del marcador, cosa que és més precisa que apuntar només a un número de pàgina.
+- Exporta els marcadors abans de fer canvis importants per tenir-ne una còpia de seguretat.
+
+## Eines relacionades
+
+- [Taula de continguts](./table-of-contents)
+- [Editor de PDF](./edit-pdf)
+- [Afegeix etiquetes de pàgina](./add-page-labels)
diff --git a/docs/ca/tools/cbz-to-pdf.md b/docs/ca/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..a7765ed5
--- /dev/null
+++ b/docs/ca/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ a PDF
+description: Converteix arxius de còmics CBZ i CBR a PDF al navegador. Gratuït, privat i sense càrrega de fitxers.
+---
+
+# CBZ a PDF
+
+Converteix arxius de còmics en PDF. CBZ i CBR són els formats estàndard dels còmics digitals: simplement són arxius ZIP o RAR plens d'imatges. Aquesta eina extreu cada pàgina, conserva l'ordre de lectura i genera un PDF net on cada imatge es converteix en una pàgina a mida completa.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :----- | :------- | :------------------------------------------------------------ |
+| CBZ | `.cbz` | Arxiu de còmic basat en ZIP (processat localment amb pdf-lib) |
+| CBR | `.cbr` | Arxiu de còmic basat en RAR (processat amb el motor PyMuPDF) |
+
+El convertidor de CBZ reconeix imatges JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC i JXL dins de l'arxiu. Els formats no estàndard es converteixen automàticament a PNG abans d'incrustar-los.
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega i deixa anar els fitxers CBZ o CBR. Pots barrejar tots dos formats en un mateix lot.
+2. Revisa els fitxers de la llista. Elimina els que no necessitis o fes clic a **Afegeix més fitxers** per afegir-ne més.
+3. Fes clic a **Converteix a PDF**. Als fitxers CBZ, l'eina descomprimeix l'arxiu, ordena les imatges pel nom en ordre natural, detecta el format real de cada imatge i les incrusta en un PDF amb pdf-lib. Els fitxers CBR passen pel motor PyMuPDF.
+4. Un sol fitxer es baixa com a PDF. Si en són diversos, es genera un arxiu ZIP anomenat `comic-converted.zip`.
+
+## Opcions
+
+No cal cap configuració. Cada imatge es converteix en una pàgina amb les mateixes dimensions que l'original, de manera que les pàgines dobles continuen sent amples i les pàgines senzilles continuen sent estretes.
+
+## Casos d'ús
+
+- Llegir còmics en una tauleta o una aplicació mòbil que admet PDF però no CBZ/CBR
+- Imprimir pàgines concretes d'un còmic digital
+- Arxivar una col·lecció de còmics en un format que qualsevol visor de fitxers pugui obrir
+- Compartir un còmic amb algú que no té un lector de còmics específic
+
+## Consells
+
+- Les imatges de l'arxiu s'ordenen amb ordre natural (de manera que `page2.jpg` va abans de `page10.jpg`). Posa als fitxers una numeració coherent perquè la seqüència de pàgines sigui correcta.
+- El convertidor detecta el format de les imatges per les seves signatures binàries, no per l'extensió. Un PNG anomenat per error `.jpg` s'incrustarà correctament igualment.
+- Els fitxers CBZ es processen íntegrament al navegador sense carregar el motor PyMuPDF, de manera que es converteixen més de pressa que els CBR.
+
+## Eines relacionades
+
+- [EPUB a PDF](./epub-to-pdf)
+- [MOBI a PDF](./mobi-to-pdf)
+- [Imatges a PDF](./image-to-pdf)
diff --git a/docs/ca/tools/change-permissions.md b/docs/ca/tools/change-permissions.md
new file mode 100644
index 00000000..52e0b961
--- /dev/null
+++ b/docs/ca/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Canvia els permisos
+description: Defineix o modifica els permisos d'ús d'un PDF per a la impressió, la còpia, l'edició i les anotacions. Fa servir xifratge AES de 256 bits.
+---
+
+# Canvia els permisos
+
+Ajusta amb precisió què poden fer els destinataris amb el teu PDF. A diferència del xifratge bàsic, que només bloqueja el fitxer amb una contrasenya, aquesta eina et permet permetre o denegar selectivament la impressió, la còpia, l'edició, les anotacions, l'emplenament de formularis, el muntatge del document i l'extracció de pàgines, tot garantit amb xifratge AES de 256 bits.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Si el PDF ja està xifrat, introdueix la **Contrasenya actual**.
+3. Defineix una **Nova contrasenya d'usuari** (necessària per obrir-lo) i/o una **Nova contrasenya de propietari** (controla els permisos).
+4. Activa o desactiva cada permís amb les caselles de verificació.
+5. Fes clic a **Canvia els permisos**.
+6. Baixa el PDF actualitzat.
+
+Si deixes buits els dos camps de contrasenya nova, l'eina desxifra el PDF completament i n'elimina tot el xifratge i les restriccions.
+
+## Control de permisos
+
+| Permís | Què controla |
+| ------------------------------ | ------------------------------------------------------- |
+| **Permet imprimir** | Si el document es pot imprimir |
+| **Permet copiar text** | Si es pot seleccionar i copiar el text i les imatges |
+| **Permet modificar** | Si es pot editar el contingut del document |
+| **Permet anotar** | Si es poden afegir comentaris, ressaltats i segells |
+| **Permet emplenar formularis** | Si es poden emplenar els camps de formulari interactius |
+| **Permet muntar el document** | Si es poden inserir, eliminar o girar pàgines |
+| **Permet extreure pàgines** | Si es poden extreure pàgines individuals |
+
+Tots els permisos necessiten una contrasenya de propietari per aplicar-se. Sense contrasenya de propietari, la majoria de lectors de PDF ignoren els indicadors de permisos.
+
+## Com funcionen els permisos en un PDF
+
+Els permisos d'un PDF formen part de l'especificació de xifratge. Es desen com a indicadors de bits al diccionari de xifratge i els apliquen els lectors de PDF compatibles. La diferència clau:
+
+- **Contrasenya d'usuari**: necessària per obrir el fitxer.
+- **Contrasenya de propietari**: necessària per canviar els permisos o eliminar les restriccions. Sense ella, els indicadors de permisos controlen quines operacions pot fer l'usuari.
+
+Si només defineixes una contrasenya de propietari (sense contrasenya d'usuari), tothom pot obrir el fitxer però queda limitat a les operacions permeses. Si defineixes les dues, el fitxer requereix una contrasenya per obrir-se i queda restringit després de l'autenticació.
+
+## Casos d'ús
+
+- Distribuir un informe que es pot veure i imprimir però no editar ni copiar
+- Compartir una plantilla de contracte que els destinataris poden emplenar però no modificar
+- Publicar un catàleg en PDF amb la còpia d'imatges desactivada
+- Permetre anotacions en un esborrany de revisió i evitar canvis estructurals
+
+## Consells
+
+- Perquè sigui efectiu, defineix sempre una contrasenya de propietari. Els permisos sense contrasenya de propietari no es poden fer complir.
+- Algunes eines de PDF de tercers ignoren els indicadors de permisos. Per a una protecció més sòlida, considera rasteritzar el PDF o fer servir DRM.
+- Fes servir aquesta eina per actualitzar PDF antics xifrats amb RC4 a AES-256.
+
+## Eines relacionades
+
+- [Xifra PDF](./protect-pdf): protecció senzilla amb contrasenya, sense permisos granulars
+- [Desxifra PDF](./unlock-pdf): elimina el xifratge completament
+- [Elimina les restriccions](./remove-restrictions): elimina totes les restriccions quan tens la contrasenya de propietari
diff --git a/docs/ca/tools/combine-single-page.md b/docs/ca/tools/combine-single-page.md
new file mode 100644
index 00000000..e4fbcea9
--- /dev/null
+++ b/docs/ca/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Combina en una única pàgina
+description: Uneix totes les pàgines d'un PDF en un únic desplaçament continu vertical o horitzontal.
+---
+
+# Combina en una única pàgina
+
+Fusiona totes les pàgines d'un PDF en una sola pàgina llarga. Les pàgines s'uneixen en vertical (com un rotllo) o en horitzontal (una al costat de l'altra) i el resultat és una única pàgina contínua.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Selecciona la direcció del disseny: **Vertical** (pàgines apilades de dalt a baix) o **Horitzontal** (pàgines col·locades una al costat de l'altra).
+3. Defineix l'espai entre pàgines en punts.
+4. Tria un color de fons per als espais entre pàgines.
+5. Si vols, activa els separadors (línies fines entre pàgines) i configura'n el gruix i el color.
+6. Fes clic al botó de processar. El resultat és un PDF d'una sola pàgina.
+
+## Funcions
+
+- Unió de pàgines en vertical o en horitzontal
+- Espai entre pàgines configurable
+- Selector de color de fons per a les àrees d'espai
+- Línies separadores opcionals amb gruix i color ajustables
+- Renderitza cada pàgina original a resolució completa sobre el llenç combinat
+
+## Opcions
+
+| Opció | Descripció |
+| ------------------------------ | ----------------------------------------------------------- |
+| **Direcció de la disposició** | Vertical (apilades) o Horizontal (una al costat de l'altra) |
+| **Espaiat** | Espai entre pàgines en punts |
+| **Color de fons** | Color de l'àrea entre pàgines |
+| **Afegeix línies separadores** | Activa les línies fines entre pàgines |
+| **Gruix del separador** | Gruix de la línia en punts |
+| **Color del separador** | Color de les línies separadores |
+
+## Casos d'ús
+
+- Crear una única imatge llarga a partir d'un wireframe o una maqueta de disseny de diverses pàgines
+- Generar una vista contínua i desplaçable d'un document per incrustar-la al web
+- Unir un còmic o un guió gràfic de diverses pàgines en una sola tira
+- Obtenir una vista panoràmica de pàgines consecutives per revisar-les
+
+## Consells
+
+- L'orientació vertical funciona millor amb documents de pàgines verticals. L'horitzontal és més adequada per a contingut apaïsat.
+- Els documents grans amb moltes pàgines generaran un resultat molt alt o molt ample. Alguns visors de PDF poden tenir problemes amb pàgines úniques extremadament grans.
+- Afegir separadors d'un color que contrasti permet veure fàcilment on acaba una pàgina original i on comença la següent.
+
+## Eines relacionades
+
+- [PDF amb diverses pàgines per full](./n-up-pdf)
+- [Fusiona PDF](./merge-pdf)
+- [Divideix pàgines](./divide-pages)
diff --git a/docs/ca/tools/compare-pdfs.md b/docs/ca/tools/compare-pdfs.md
new file mode 100644
index 00000000..cd8d6871
--- /dev/null
+++ b/docs/ca/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Compara PDF
+description: Compara dos documents PDF un al costat de l'altre o en mode de superposició, amb detecció i categorització detallades dels canvis.
+---
+
+# Compara PDF
+
+Puja dos PDF i comprova exactament què ha canviat entre ells. L'eina aparella les pàgines de manera intel·ligent, detecta diferències en el text, les imatges, les anotacions, les capçaleres i el format, i les presenta en una vista de costat a costat o de superposició.
+
+## Com funciona
+
+1. Puja dos fitxers PDF: l'original (a l'esquerra) i la versió revisada (a la dreta).
+2. L'eina aparella les pàgines dels dos documents mitjançant signatures de contingut.
+3. Selecciona un mode de vista: **Un al costat de l'altre** o **Superposició**.
+4. Navega entre els parells de pàgines amb els controls de paginació.
+5. Les diferències es ressalten i es classifiquen. Fes servir el tauler de filtres per centrar-te en tipus de canvi concrets.
+6. Si vols, exporta la comparació com a informe en PDF.
+
+## Funcions
+
+- Aparellament automàtic de pàgines segons la semblança del contingut
+- Vistes de comparació de costat a costat i de superposició
+- Classificació dels canvis: text, imatge, capçalera/peu de pàgina, anotació, format, fons
+- Filtres per categoria per mostrar o amagar tipus de canvi concrets
+- Cerca de canvis de text amb filtratge per consulta
+- Compatibilitat amb OCR per comparar documents escanejats
+- Controls de zoom per a una inspecció detallada
+- Desplaçament sincronitzat entre tauler i tauler en el mode de costat a costat
+- Exporta els resultats de la comparació com a PDF
+
+## Opcions
+
+| Opció | Descripció |
+| ------------------------- | ----------------------------------------------------------------------------------------------------- |
+| **Mode de visualització** | Un al costat de l'altre o Superposició |
+| **OCR** | Activa o desactiva l'OCR per comparar documents escanejats |
+| **Idioma de l'OCR** | Idioma per a l'extracció de text amb OCR |
+| **Filtres de categoria** | Activa o desactiva la visibilitat dels canvis de text, imatge, capçalera/peu, anotació, format i fons |
+| **Abast dels canvis** | En mode de superposició, filtra entre tots els canvis o només el contingut |
+| **Zoom** | Ajusta el nivell d'ampliació per a una inspecció detallada |
+
+## Casos d'ús
+
+- Revisar les modificacions d'un contracte per trobar exactament què ha canviat entre versions
+- Comparar maquetes de disseny per verificar que les exportacions a PDF coincideixen amb el que s'espera
+- Auditar els canvis en documents de sectors regulats on cal registrar cada edició
+- Verificar que un procés de conversió de PDF ha conservat amb precisió el contingut original
+- Comprovar si hi ha canvis de disseny en documents traduïts respecte a l'original
+
+## Consells
+
+- La vista de superposició apila els dos documents l'un sobre l'altre, de manera que les diferències espacials (elements desplaçats, imatges redimensionades) es veuen a l'instant.
+- Activa l'OCR quan comparis documents escanejats que no tenen capa de text. El motor de comparació extreurà el text de les imatges de les pàgines.
+- Fes servir els filtres per categoria per centrar-te en el que importa. Per exemple, amaga els canvis de format quan només t'interessin les diferències en el text.
+
+## Eines relacionades
+
+- [Visualitza les metadades](./view-metadata)
+- [Reconeixement OCR de PDF](./ocr-pdf)
+- [Fusiona PDF](./merge-pdf)
diff --git a/docs/ca/tools/compress-pdf.md b/docs/ca/tools/compress-pdf.md
new file mode 100644
index 00000000..754254e6
--- /dev/null
+++ b/docs/ca/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Comprimeix PDF
+description: Redueix la mida d'un PDF fins a un 90 % amb el motor Hyper Compress. Admet mides de fitxer objectiu, processament per lots i ajustos de qualitat personalitzats.
+---
+
+# Comprimeix PDF
+
+Redueix els teus fitxers PDF sense fer-los malbé. Comprimeix PDF funciona amb [Hyper Compress](https://www.bentopdf.com/hyper-compress), el motor de compressió propi de BentoPDF. Torna a comprimir les imatges, crea subconjunts de tipus de lletra i els fusiona, i elimina el pes mort, com ara les miniatures incrustades i les dades privades d'aplicacions. El PDF continua sent plenament funcional: el text es pot seleccionar i els enllaços i els camps de formulari continuen funcionant.
+
+Hyper Compress està compilat a WebAssembly i s'inclou amb BentoPDF, de manera que la compressió funciona sense connexió i en desplegaments aïllats de la xarxa, sense cap configuració addicional.
+
+## Com funciona
+
+1. Puja un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers.
+2. Tria un **Nivell de compressió**: Baix, Mitjà, Alt o Sense pèrdua.
+3. Si vols, introdueix una **Mida objectiu del fitxer**, o desplega **Configuració personalitzada** per a un control més precís, inclosa l'opció **Converteix a escala de grisos**.
+4. Fes clic a **Comprimeix PDF**. Si hi ha diversos fitxers, obtens una única baixada en ZIP.
+
+## Documents especials
+
+- **Els PDF signats digitalment** es retornen sense canvis, perquè qualsevol modificació invalidaria la signatura. Activa **Substitueix la protecció del contingut** a Configuració personalitzada per eliminar-ne les signatures i comprimir-los; la signatura visible es manté a la pàgina, però el fitxer ja no està signat.
+- **Els fitxers PDF/A** perden l'etiqueta PDF/A després de la compressió, de manera que el fitxer no declara mai una conformitat que ja no compleix. Activa **Conserva el PDF/A** a Configuració personalitzada per mantenir el fitxer conforme.
+- **Els PDF protegits amb contrasenya** mostren un camp de contrasenya a la targeta del fitxer. Introdueix-hi la contrasenya i Hyper Compress obre el fitxer ell mateix, sense un pas de desbloqueig a part. Amb dos o més fitxers bloquejats, un únic camp compartit desbloqueja tots els fitxers que fan servir la mateixa contrasenya. La còpia comprimida no té contrasenya; fes servir [Protegeix PDF](./protect-pdf) per tornar-n'hi a afegir una.
+- **Els escanejos sense capa de text** poden reduir-se encara més amb **Rasteritza les pàgines a imatges** a Configuració personalitzada, que substitueix cada pàgina per una imatge optimitzada. S'omet en qualsevol document que tingui text seleccionable, inclosos els escanejos amb OCR, tret que **Substitueix la protecció del contingut** estigui activat. Aleshores les pàgines de text també es converteixen en imatges, de manera que el text deixa de poder-se seleccionar i els enllaços deixen de funcionar.
+
+## Nivells de compressió
+
+| Nivell | Qualitat d'imatge | Resolució màxima | Ideal per a |
+| ---------------- | ----------------- | ---------------- | ------------------------------------------- |
+| **Baix** | 80 | 200 DPI | Conservar la qualitat visual |
+| **Mitjà** | 50 | 150 DPI | Documents quotidians |
+| **Alt** | 20 | 72 DPI | Fitxers adjunts de correu, càrregues al web |
+| **Sense pèrdua** | Imatges intactes | Sense canvis | Còpies d'arxiu |
+
+Alt també desincrusta les 14 fonts PDF estàndard, a més de tipus de lletra semblants com Arial quan és segur fer-ho.
+
+## Mida de fitxer objectiu
+
+Introdueix una mida en KB o MB i Hyper Compress cerca la millor qualitat d'imatge que hi càpiga, partint del nivell que has triat. Si el document no pot arribar a ser tan petit, obtens la versió més petita possible i un missatge que ho indica. Les pàgines dedicades, com [Comprimeix PDF a 1 MB](https://www.bentopdf.com/compress-pdf-to-1mb), s'obren amb l'objectiu ja emplenat.
+
+## Configuració personalitzada
+
+Desplega el tauler Configuració personalitzada per ajustar Hyper Compress directament. En triar un nivell de compressió, aquests valors es restableixen als del nivell, i si en edites qualsevol, el nivell passa a Personalitzat.
+
+- **Substitueix la protecció del contingut**: per defecte, Hyper Compress no toca els PDF signats i no rasteritza les pàgines amb text. Si l'actives, se salta totes dues limitacions. Continua activat quan canvies de nivell.
+
+- **Imatges**: qualitat de la imatge, resolució màxima, remostreig forçat, reducció de color, retallada de les àrees invisibles de les imatges, eliminació d'imatges alternatives, simplificació dels perfils de color, JPEG 2000 i mode sense pèrdua
+- **Tipus de lletra**: creació de subconjunts, fusió de duplicats i desincrustació de fonts estàndard i de les que s'hi assemblen
+- **Contingut**: aplanament d'anotacions, camps de formulari o enllaços
+- **Neteja**: eliminació de miniatures, dades d'aplicacions, fils d'articles, informació de captura web, l'arbre d'estructura o les intencions de sortida
+- **Rasteritza**: substitució de pàgines per imatges, per a escanejos que només tenen imatges; s'omet quan el document té text seleccionable
+- **Sortida**: Conserva el PDF/A i compressió Brotli per a lectors de PDF 2.0 que la admetin
+
+## Casos d'ús
+
+- Fer que un informe de 50 MB càpiga en el límit d'un fitxer adjunt de correu
+- Aconseguir que un escaneig càpiga en el límit estricte de càrrega d'un portal amb una mida de fitxer objectiu
+- Optimitzar PDF de màrqueting perquè es baixin més de pressa des d'un lloc web
+- Arxivar grans conjunts de documents quan els costos d'emmagatzematge importen
+- Reduir l'ús de dades mòbils en compartir PDF per aplicacions de missatgeria
+
+## Consells
+
+- Comença amb Mitjà. Si el resultat continua sent massa gran, defineix una mida de fitxer objectiu o puja a Alt.
+- Per a un escaneig sense capa de text, activa Rasteritza les pàgines a imatges a Configuració personalitzada.
+- Converteix a escala de grisos, a Configuració personalitzada, pot reduir la mida dels documents amb molt de color.
+
+## Eines relacionades
+
+- [Linealitza PDF](./linearize-pdf): optimitza el PDF comprimit per veure'l ràpidament al web
+- [Rasteritza PDF](./rasterize-pdf): converteix les pàgines en imatges a un DPI concret, incloses les pàgines amb text
+- [Repara PDF](./repair-pdf): arregla un PDF que s'ha fet malbé durant una compressió en un altre lloc
+- [Elimina les metadades](./remove-metadata): elimina les dades ocultes per a més privadesa
diff --git a/docs/ca/tools/crop-pdf.md b/docs/ca/tools/crop-pdf.md
new file mode 100644
index 00000000..dab4efae
--- /dev/null
+++ b/docs/ca/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Retalla PDF
+description: Retalla visualment les pàgines d'un PDF dibuixant una regió de retall a cada pàgina amb un editor basat en Cropper.js.
+---
+
+# Retalla PDF
+
+Retalla els marges de les pàgines del teu PDF amb una interfície de retall visual. Dibuixa un rectangle de retall directament sobre cada pàgina, previsualitza el resultat i aplica el retall. Pots definir regions de retall diferents per a pàgines diferents o aplicar el mateix retall a tot el document.
+
+## Com funciona
+
+1. Puja el teu fitxer PDF.
+2. S'obre l'editor de retall, que mostra la primera pàgina amb una superposició de retall que es pot arrossegar.
+3. Ajusta el rectangle de retall arrossegant-ne les vores o els cantons.
+4. Fes servir els botons de navegació de pàgines per moure't entre pàgines i definir la regió de retall de cadascuna.
+5. Fes clic a **Retalla i descarrega** per aplicar el retall i baixar el resultat.
+
+## Funcions
+
+- Editor de retall visual amb Cropper.js i nanses per a un ajust precís
+- Navegació pàgina a pàgina per definir regions de retall individuals
+- Desa la configuració del retall per pàgina, de manera que pots definir retalls diferents per a pàgines diferents
+- Previsualització en directe de l'àrea de retall seleccionada
+- Admet PDF de qualsevol mida o orientació de pàgina
+
+## Casos d'ús
+
+- Eliminar els marges amples dels documents escanejats per centrar-se en l'àrea de contingut
+- Treure les marques de tall o de registre de la impressora dels PDF de preimpressió
+- Retallar diapositives de classe per eliminar l'àrea de notes del presentador
+- Eliminar les capçaleres o els peus de pàgina de totes les pàgines abans de compartir un fragment d'un document
+- Canviar la mida de les pàgines perquè s'ajustin a una pantalla o a un disseny d'impressió concrets
+
+## Consells
+
+- La superposició de retall es pot redimensionar i reposicionar lliurement. Arrossega els cantons per redimensionar-la proporcionalment o les vores per ajustar-la en un sol eix.
+- En documents on totes les pàgines necessiten el mateix retall, defineix-lo a la primera pàgina: l'eina recorda la regió de retall mentre navegues per les pàgines.
+- Si necessites normalitzar la mida de les pàgines en lloc de retallar visualment, l'eina Uniformitza la mida de pàgina pot ser més adequada.
+
+## Eines relacionades
+
+- [Editor de PDF](./edit-pdf)
+- [Números de pàgina](./page-numbers)
+- [Elimina les pàgines en blanc](./remove-blank-pages)
diff --git a/docs/ca/tools/csv-to-pdf.md b/docs/ca/tools/csv-to-pdf.md
new file mode 100644
index 00000000..f30b656e
--- /dev/null
+++ b/docs/ca/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV a PDF
+description: Converteix fitxers de full de càlcul CSV en taules PDF formatades directament al navegador.
+---
+
+# CSV a PDF
+
+Converteix fitxers CSV en documents PDF nets i formatats. Cada CSV s'analitza i es representa com una taula al PDF resultant. Això és útil quan necessites imprimir o compartir dades tabulars sense que el destinatari hagi de tenir un programa de fulls de càlcul.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :----- | :--------- |
+| CSV | `.csv` |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega i deixa anar un o més fitxers CSV.
+2. Revisa la llista de fitxers. Afegeix-ne més o elimina els que no vulguis.
+3. Fes clic a **Converteix a PDF**. Un indicador de progrés mostra l'estat de la conversió.
+4. Un sol fitxer es baixa directament com a PDF. Si són diversos, s'empaqueten a `csv-converted.zip`.
+
+## Opcions
+
+Aquesta eina no té cap configuració addicional. El CSV s'analitza i es formata automàticament com a taula.
+
+## Resultat
+
+| Nombre d'entrades | Resultat |
+| :---------------- | :--------------------------------------------------------- |
+| 1 fitxer | Baixada d'un únic PDF (p. ex., `data.pdf`) |
+| 2 o més fitxers | Arxiu ZIP (`csv-converted.zip`) amb un PDF per cada fitxer |
+
+## Casos d'ús
+
+- Convertir informes de bases de dades exportats en taules PDF imprimibles
+- Compartir dades financeres o llistes d'inventari amb persones que no tenen Excel
+- Crear versions en PDF de fitxers de registre CSV per a la documentació de compliment normatiu
+- Imprimir llistes d'adreces, fulls de notes o qualsevol dada tabular desada com a CSV
+
+## Consells
+
+- Per obtenir els millors resultats, assegura't que el CSV fa servir comes com a delimitadors estàndard. L'eina segueix les convencions habituals d'anàlisi de CSV.
+- Si el CSV té moltes columnes, la taula es pot comprimir per ajustar-se a l'amplada de la pàgina. Considera dividir els conjunts de dades amples en diversos fitxers.
+- Per als fitxers d'Excel (`.xls`, `.xlsx`), fes servir l'eina [Excel a PDF](./excel-to-pdf), que conserva el format del full de càlcul i els diversos fulls.
+
+## Eines relacionades
+
+- [Excel a PDF](./excel-to-pdf)
+- [Text a PDF](./txt-to-pdf)
+- [JSON a PDF](./json-to-pdf)
diff --git a/docs/ca/tools/delete-pages.md b/docs/ca/tools/delete-pages.md
new file mode 100644
index 00000000..e4604d26
--- /dev/null
+++ b/docs/ca/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Suprimeix pàgines
+description: Elimina pàgines concretes d'un PDF per número de pàgina, per interval o mitjançant la selecció visual de miniatures.
+---
+
+# Suprimeix pàgines
+
+Elimina les pàgines no desitjades d'un document PDF. Indica les pàgines que vols suprimir escrivint-ne els números o intervals, o fes clic directament a les miniatures de les pàgines per marcar-les perquè s'eliminin.
+
+## Com funciona
+
+1. Puja un fitxer PDF. L'eina mostra previsualitzacions en miniatura de totes les pàgines.
+2. Introdueix les pàgines que vols suprimir al camp de text amb la sintaxi d'intervals (p. ex., `2, 5-8`), o fes clic a les miniatures per activar-les o desactivar-les.
+3. Les pàgines marcades es ressalten visualment perquè puguis confirmar la selecció.
+4. Fes clic al botó de processar. Es crea un PDF nou sense les pàgines seleccionades.
+
+## Funcions
+
+- Selecció de pàgines per text amb sintaxi d'intervals (`2, 5-8, 12`)
+- Quadrícula visual de miniatures per suprimir amb un clic
+- Ressaltat en temps real de les pàgines marcades per suprimir
+- Validació de l'entrada segons el nombre real de pàgines
+- Conserva totes les pàgines no suprimides en l'ordre original
+
+## Casos d'ús
+
+- Eliminar pàgines en blanc o de farciment d'un document escanejat
+- Treure les portades o els apèndixs abans de compartir un document
+- Netejar les pàgines d'esborrany que s'han deixat per error en un PDF final
+- Eliminar les pàgines amb informació sensible abans de distribuir-lo
+
+## Consells
+
+- Suprimir pàgines no afecta el contingut ni el format de les pàgines restants. El resultat és una còpia fidel de l'original sense les pàgines eliminades.
+- Si vols conservar només pàgines concretes en lloc d'eliminar-ne, [Extreu pàgines](./extract-pages) és l'opció més adequada.
+- La vista de miniatures es carrega de manera progressiva, de manera que els documents grans continuen responent bé.
+
+## Eines relacionades
+
+- [Extreu pàgines](./extract-pages)
+- [Duplica i organitza](./organize-pdf)
+- [Divideix PDF](./split-pdf)
diff --git a/docs/ca/tools/deskew-pdf.md b/docs/ca/tools/deskew-pdf.md
new file mode 100644
index 00000000..6b503a60
--- /dev/null
+++ b/docs/ca/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Redreça PDF
+description: Redreça automàticament les pàgines inclinades dels PDF escanejats amb la detecció d'inclinació d'OpenCV. Llindar i DPI ajustables.
+---
+
+# Redreça PDF
+
+Els documents escanejats poques vegades queden perfectament rectes. Fins i tot una lleugera inclinació fa que l'OCR sigui menys precís i que la impressió quedi descuidada. Aquesta eina fa servir els algorismes de processament d'imatge d'OpenCV per detectar l'angle d'inclinació de cada pàgina i tornar-la a posar recta.
+
+## Com funciona
+
+1. Puja un o més PDF escanejats.
+2. Defineix el **Llindar d'inclinació**: les pàgines amb una inclinació detectada inferior a aquest valor no es toquen.
+3. Tria una **Qualitat de processament (DPI)**: un DPI més alt millora la precisió de la detecció però triga més.
+4. Fes clic a **Redreça PDF**.
+5. Un cop processat, un tauler de resultats mostra l'angle detectat a cada pàgina i si s'ha corregit.
+
+## Opcions
+
+| Paràmetre | Valors | Per defecte |
+| ---------------------------------- | ------------------------ | ----------- |
+| **Llindar d'inclinació** | 0,1, 0,5, 1,0, 2,0 graus | 0,5 |
+| **Qualitat de processament (DPI)** | 100, 150, 200, 300 | 150 |
+
+## Com funciona la detecció d'inclinació
+
+L'eina renderitza cada pàgina com a imatge amb el DPI seleccionat i després fa servir OpenCV per detectar els angles de les línies dominants del contingut. Si la inclinació detectada supera el llindar, la pàgina es gira l'angle invers per redreçar-la. Les pàgines per sota del llindar passen sense canvis.
+
+## Casos d'ús
+
+- Netejar contractes o documents legals escanejats per lots
+- Preparar rebuts o factures escanejats per al processament amb OCR
+- Redreçar pàgines d'un escàner pla amb una col·locació del paper irregular
+- Millorar la qualitat visual de materials d'arxiu digitalitzats
+
+## Consells
+
+- Redueix el llindar a 0,1 graus si necessites un alineament perfecte per a l'OCR.
+- 150 DPI és ràpid i precís per a la majoria de documents. Fes servir 300 DPI per a text molt petit o pàgines amb molt de detall.
+- Redreça PDF funciona millor amb documents que tenen línies de text horitzontals clares. Pot tenir dificultats amb pàgines que són sobretot imatges o elements de disseny en diagonal.
+
+## Eines relacionades
+
+- [Rasteritza PDF](./rasterize-pdf): converteix el resultat redreçat en un PDF pla basat en imatges
+- [Comprimeix PDF](./compress-pdf): redueix la mida del fitxer després de redreçar-lo
+- [Repara PDF](./repair-pdf): arregla problemes estructurals en PDF escanejats
diff --git a/docs/ca/tools/digital-sign-pdf.md b/docs/ca/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..81119442
--- /dev/null
+++ b/docs/ca/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Signatura digital de PDF
+description: Afegeix signatures digitals criptogràfiques als PDF amb certificats X.509. Admet els formats PKCS#12 i PEM amb opcions de signatura visible.
+---
+
+# Signatura digital de PDF
+
+Una signatura digital és una prova criptogràfica que una persona concreta ha signat un document i que el document no s'ha alterat des de llavors. A diferència d'una signatura dibuixada (que és només una imatge), una signatura digital fa servir certificats X.509 i els estàndards PKCS#7 per oferir autenticitat i integritat verificables.
+
+BentoPDF aplica les signatures digitals íntegrament al teu navegador. La teva clau privada no surt mai del dispositiu.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Puja el fitxer del teu certificat (.pfx, .p12 o .pem).
+3. Introdueix la contrasenya del certificat per desbloquejar-lo. L'eina mostra el subjecte, l'emissor i el període de validesa del certificat.
+4. Si vols, configura les metadades de la signatura (motiu, ubicació, informació de contacte).
+5. Si vols, activa una **signatura visible** amb personalització de la posició, la mida, la imatge i el text.
+6. Fes clic a **Signa PDF**.
+
+## Formats de certificat compatibles
+
+| Format | Extensions | Descripció |
+| ----------- | ---------- | --------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Paquet estàndard del sector que conté la clau privada i la cadena de certificats. El format més habitual. |
+| **PEM** | .pem | Format basat en text. Ha de contenir el certificat i la clau privada en un sol fitxer. Admet claus privades xifrades. |
+
+## Opcions de la signatura visible
+
+Quan s'activa, es renderitza un bloc de signatura visible a la pàgina del PDF:
+
+- **Posició**: coordenades X/Y i amplada/alçada en punts
+- **Pàgina**: primera pàgina, última pàgina, totes les pàgines o un número de pàgina concret
+- **Imatge**: puja una imatge PNG, JPG o WebP (la teva signatura manuscrita, el segell de l'empresa, etc.)
+- **Text**: text personalitzat amb color i mida de lletra configurables. Si no es proporciona cap imatge ni text, l'eina genera automàticament un text a partir del nom comú del certificat i la data actual.
+
+## Metadades de la signatura
+
+- **Motiu**: per què s'ha signat el document (p. ex., "Aprovat", "Revisat")
+- **Ubicació**: on s'ha fet la signatura (p. ex., "Barcelona")
+- **Informació de contacte**: com contactar amb el signant (p. ex., una adreça electrònica)
+
+## Nota sobre la connexió a internet
+
+Pot ser que signar requereixi una connexió a internet. La biblioteca de signatura obté la cadena de certificats d'unes URL incrustades a l'extensió Authority Information Access (AIA) del teu certificat. Si aquests servidors no són accessibles, la signatura fallarà amb els certificats que requereixen validació de la cadena.
+
+## Casos d'ús
+
+- Signar contractes, propostes i acords amb signatures digitals jurídicament vinculants
+- Certificar documents oficials en fluxos de treball que requereixen autenticació basada en PKI
+- Signar factures en PDF per complir la normativa (molts països de la UE exigeixen factures electròniques signades digitalment)
+- Afegir l'aprovació d'una organització a plànols d'enginyeria o documents de qualitat
+
+## Consells
+
+- Els certificats autosignats serveixen per fer proves, però mostraran advertències a l'Adobe Reader. Fes servir un certificat d'una autoritat de certificació de confiança per als documents en producció.
+- La signatura visible és purament visual. La signatura criptogràfica s'incrusta tant si el bloc visible està activat com si no.
+- Verifica el PDF signat amb l'eina Valida la signatura d'un PDF per confirmar que la signatura està intacta.
+
+## Eines relacionades
+
+- [Valida la signatura d'un PDF](./validate-signature-pdf): verifica les signatures digitals dels PDF signats
+- [Aplana PDF](./flatten-pdf): aplana els formularis abans de signar per evitar modificacions
+- [Xifra PDF](./protect-pdf): afegeix protecció amb contrasenya a sobre de la signatura digital
+- [Elimina les metadades](./remove-metadata): elimina les metadades abans de signar
diff --git a/docs/ca/tools/divide-pages.md b/docs/ca/tools/divide-pages.md
new file mode 100644
index 00000000..a9907ef2
--- /dev/null
+++ b/docs/ca/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Divideix pàgines
+description: Divideix les pàgines d'un PDF en vertical o en horitzontal en subpàgines més petites.
+---
+
+# Divideix pàgines
+
+Talla les pàgines d'un PDF per la meitat, dividint-les en horitzontal o en vertical. Això és útil quan una sola pàgina conté contingut que s'hauria de separar en pàgines diferents, per exemple, un disseny de dues columnes escanejat com una única pàgina ampla.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Selecciona la direcció de la divisió: **Vertical** (meitats esquerra i dreta) o **Horitzontal** (meitats superior i inferior).
+3. Si vols, indica un interval de pàgines per limitar quines pàgines es divideixen. Deixa-ho en blanc per dividir-les totes.
+4. Fes clic al botó de processar per generar el PDF dividit.
+
+## Funcions
+
+- Divisió vertical: divideix cada pàgina en una meitat esquerra i una de dreta
+- Divisió horitzontal: divideix cada pàgina en una meitat superior i una d'inferior
+- Filtre per interval de pàgines per dividir només pàgines concretes
+- Les pàgines no seleccionades passen sense canvis
+- Conserva la qualitat del contingut sense tornar-lo a renderitzar
+
+## Casos d'ús
+
+- Separar pàgines escanejades de dues en dues (p. ex., l'escaneig d'un llibre amb la pàgina esquerra i la dreta en un mateix full)
+- Dividir un PDF apaïsat amb contingut un al costat de l'altre en pàgines verticals individuals
+- Dividir infografies o pòsters alts en seccions superior i inferior separades
+- Preparar documents de format ample per imprimir-los en paper estàndard
+
+## Consells
+
+- Si les pàgines tenen el contingut repartit de manera desigual, la divisió es fa igualment al punt mitjà exacte. Per a divisions asimètriques, considera fer servir [Retalla PDF](./crop-pdf).
+- Combina aquesta eina amb [Gira PDF](./rotate-pdf) si les pàgines s'han de girar abans o després de dividir-les.
+
+## Eines relacionades
+
+- [Divideix PDF](./split-pdf)
+- [Retalla PDF](./crop-pdf)
+- [PDF amb diverses pàgines per full](./n-up-pdf)
+- [Divideix PDF en format pòster](./posterize-pdf)
diff --git a/docs/ca/tools/duplex-collate.md b/docs/ca/tools/duplex-collate.md
new file mode 100644
index 00000000..adbdae68
--- /dev/null
+++ b/docs/ca/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Ordena les cares d'un escaneig a doble cara
+description: Reordena els PDF d'escanejos a doble cara que tenen les pàgines anteriors i les posteriors en blocs separats, i els posa en l'ordre correcte de cara i revers.
+---
+
+# Ordena les cares d'un escaneig a doble cara
+
+Aquesta eina està pensada per als fluxos d'escaneig amb alimentador automàtic en què un PDF conté dos blocs de pàgines:
+
+- primer, totes les cares anteriors
+- després, totes les cares posteriors
+
+En lloc de dividir i tornar a muntar manualment, l'eina intercala els dos blocs en l'ordre natural de lectura: cara 1, revers 1, cara 2, revers 2, i així successivament.
+
+## Com funciona
+
+1. Puja un sol PDF creat a partir de l'escaneig d'una pila a doble cara.
+2. Defineix el punt de divisió on acaba el bloc de cares anteriors.
+3. Tria com es tracta el bloc de reversos:
+ - **Inverteix el bloc de reversos** (habitual quan la pila es gira abans d'escanejar els reversos)
+ - **Mantén el bloc de reversos tal com està**
+4. Fes clic a **Ordena les cares del PDF** per baixar el resultat reordenat.
+
+## Opcions
+
+- **Detecta automàticament el punt de divisió (meitat)**: defineix el punt de divisió a `ceil(totalPages / 2)`.
+- **Avís de pàgines senars**: avisa quan el total de pàgines és senar (sovint és un desajust de l'escaneig).
+- **Confirmació de blocs desiguals**: demana confirmació quan les mides dels blocs de cares i reversos són diferents.
+- **Exportació agrupada**: divideix el resultat ordenat en PDF separats segons el nombre de pàgines del document original i el baixa com a ZIP.
+
+## Comportament de la sortida
+
+- **Per defecte**: un PDF de sortida (un PDF d'entrada, un PDF de sortida).
+- **Mode agrupat**: la sortida es divideix en fragments segons el valor de pàgines per document; si es produeixen diversos fragments, es baixen en un sol ZIP, i si no, es baixa un únic PDF.
+
+Si les mides dels blocs són desiguals, primer s'ordenen les pàgines aparellades i les pàgines sense parella restants s'afegeixen al final.
+
+## Casos d'ús habituals
+
+- Restaurar l'ordre després d'escanejar una pila de formularis a doble cara en dues passades.
+- Reconstruir paquets de cara i revers a partir d'escàners d'oficina que generen primer totes les cares i després tots els reversos.
+- Postprocessar escanejos d'arxiu abans de dividir-los en fitxers per document.
+
+## Consells
+
+- La majoria dels lots a doble cara haurien de tenir un nombre total de pàgines parell.
+- Si el resultat sembla invertit als reversos, canvia entre **Inverteix el bloc de reversos** i **Mantén el bloc de reversos tal com està**.
+- Per a originals de 2 pàgines (cara i revers), fes servir l'exportació agrupada amb `2` pàgines per document.
+
+## Eines relacionades
+
+- [Alterna i barreja pàgines](./alternate-merge)
+- [Divideix PDF](./split-pdf)
+- [Fusiona PDF](./merge-pdf)
+- [Duplica i organitza](./organize-pdf)
diff --git a/docs/ca/tools/edit-attachments.md b/docs/ca/tools/edit-attachments.md
new file mode 100644
index 00000000..46488a2b
--- /dev/null
+++ b/docs/ca/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Edita els fitxers adjunts
+description: Visualitza i elimina selectivament els fitxers adjunts incrustats en un document PDF.
+---
+
+# Edita els fitxers adjunts
+
+Inspecciona i gestiona els fitxers adjunts d'un PDF. L'eina llista cada fitxer incrustat amb el seu nom i nivell d'adjunció, i després et permet marcar adjunts individuals per eliminar-los o eliminar-los tots alhora.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. L'eina cerca automàticament els fitxers adjunts i els mostra en una llista.
+3. Cada adjunt mostra el nom del fitxer i si és un adjunt de nivell de document o de nivell de pàgina.
+4. Fes clic a la icona de la paperera al costat d'un adjunt per marcar-lo per eliminar (torna-hi a fer clic per desmarcar-lo).
+5. Fes servir el botó **Elimina tots els fitxers adjunts** per seleccionar-ho tot alhora, o **Desselecciona-ho tot** per esborrar les seleccions.
+6. Fes clic al botó de processar per desar un PDF nou sense els adjunts seleccionats.
+
+## Funcions
+
+- Llista tots els adjunts de nivell de document i de nivell de pàgina
+- Eliminació d'adjunts individual o en bloc
+- Activa i desactiva la selecció abans de confirmar els canvis
+- Ratllat visual i canvi d'opacitat en els elements marcats per eliminar
+- Baixa el PDF modificat sense els adjunts seleccionats
+
+## Casos d'ús
+
+- Eliminar fitxers obsolets o incorrectes incrustats en un document abans de tornar-lo a distribuir
+- Treure d'un PDF els adjunts sensibles (dades financeres, informació personal) abans de compartir-lo
+- Reduir la mida del PDF eliminant fitxers incrustats grans que ja no calen
+- Auditar el contingut incrustat i netejar un document abans d'arxivar-lo
+
+## Consells
+
+- Els adjunts marcats per eliminar es mostren ratllats. Pots tornar-los a activar abans de processar si canvies d'idea.
+- Si no es troba cap adjunt, l'eina mostra un missatge clar de "No s'ha trobat cap fitxer adjunt": el PDF simplement no conté fitxers incrustats.
+
+## Eines relacionades
+
+- [Afegeix fitxers adjunts](./add-attachments)
+- [Extreu fitxers adjunts](./extract-attachments)
+- [Visualitza les metadades](./view-metadata)
diff --git a/docs/ca/tools/edit-metadata.md b/docs/ca/tools/edit-metadata.md
new file mode 100644
index 00000000..fac936d8
--- /dev/null
+++ b/docs/ca/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Edita les metadades
+description: Visualitza i modifica els camps de metadades d'un PDF, com el títol, l'autor, les paraules clau, les dates i les propietats personalitzades.
+---
+
+# Edita les metadades
+
+Edita les metadades incrustades en un fitxer PDF. L'eina emplena prèviament un formulari amb les metadades existents del document, et deixa modificar qualsevol camp i desa els canvis en un PDF nou.
+
+## Com funciona
+
+1. Puja un fitxer PDF. L'eina en llegeix les metadades actuals i emplena el formulari.
+2. Edita qualsevol dels camps estàndard: Títol, Autor, Assumpte, Paraules clau, Creador, Productor.
+3. Ajusta la Data de creació i la Data de modificació amb els selectors de data i hora.
+4. Afegeix camps de metadades personalitzats fent clic al botó d'afegir i introduint un parell clau-valor.
+5. Fes clic al botó de processar per desar el PDF modificat.
+
+## Funcions
+
+- Emplena prèviament totes les metadades existents del PDF pujat
+- Camps estàndard: Títol, Autor, Assumpte, Paraules clau, Creador, Productor
+- Selectors de data i hora per a la Data de creació i la Data de modificació
+- Camps de metadades personalitzats de tipus clau-valor per a propietats arbitràries
+- Desa els canvis directament al diccionari d'informació del document del PDF
+
+## Camps editables
+
+| Camp | Descripció |
+| ------------------------ | ------------------------------------------------------------ |
+| **Títol** | El títol del document que mostren els lectors de PDF |
+| **Autor** | La persona o organització que ha creat el document |
+| **Assumpte** | Una breu descripció del tema del document |
+| **Paraules clau** | Termes separats per comes per a la cerca i la categorització |
+| **Creador** | L'aplicació que va crear originalment el contingut |
+| **Productor** | L'aplicació que ha generat el PDF |
+| **Data de creació** | Quan es va crear originalment el document |
+| **Data de modificació** | Quan es va modificar per darrera vegada el document |
+| **Camps personalitzats** | Qualsevol parell clau-valor addicional que defineixis |
+
+## Casos d'ús
+
+- Definir un títol i un autor adequats abans de publicar un document
+- Afegir paraules clau per millorar la cerca als sistemes de gestió documental
+- Actualitzar la data de modificació perquè reflecteixi la revisió actual
+- Afegir camps de metadades personalitzats com Departament, ID de projecte o Classificació
+- Netejar les metadades que ha deixat el programari d'autoria original
+
+## Consells
+
+- Els camps personalitzats s'escriuen directament al diccionari d'informació del PDF. Pot ser que alguns lectors de PDF no mostrin els camps personalitzats, però es conserven al fitxer.
+- Deixa un camp en blanc per esborrar-lo de les metadades. El botó de processar desa el que hi hagi al formulari.
+- Per veure les metadades sense editar-les, fes servir [Visualitza les metadades](./view-metadata). Per eliminar-les totes completament, fes servir Elimina les metadades.
+
+## Eines relacionades
+
+- [Visualitza les metadades](./view-metadata)
+- [Capes OCG del PDF](./pdf-layers)
+- [Comprimeix PDF](./compress-pdf)
diff --git a/docs/ca/tools/edit-pdf.md b/docs/ca/tools/edit-pdf.md
new file mode 100644
index 00000000..df22c4b1
--- /dev/null
+++ b/docs/ca/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Editor de PDF
+description: Anota, ressalta, censura, afegeix formes i imatges, cerca i visualitza PDF directament al navegador.
+---
+
+# Editor de PDF
+
+L'Editor de PDF de BentoPDF et permet anotar, ressaltar, censurar, comentar, afegir formes i imatges i fer cerques als teus PDF. Carrega un editor complet directament al navegador, sense càrregues a cap servidor.
+
+## Com funciona
+
+1. Puja el PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. L'editor de PDF integrat s'obre automàticament amb el document carregat.
+3. Fes servir la barra d'eines per anotar, ressaltar, censurar, afegir text, dibuixar formes o inserir imatges.
+4. Fes clic a **Baixa el PDF editat** per desar els canvis.
+
+## Funcions
+
+- Barra d'eines d'anotació completa amb ressaltat, subratllat, ratllat i dibuix a mà alçada
+- Inserció de text i comentaris
+- Eines de censura que eliminen permanentment el contingut marcat un cop apliques la censura. Si en fer clic a **Baixa el PDF editat** hi ha marques sense aplicar, l'editor ofereix aplicar-les primer.
+- Eines de formes per a rectangles, cercles, línies i fletxes
+- Inserció d'imatges a les pàgines del PDF
+- Cerca de text integrada a tot el document
+- Compatibilitat amb diversos documents amb pestanyes (fins a 10 documents oberts simultàniament)
+- Càrrega de fitxers per arrossegament
+
+## Casos d'ús
+
+- Revisar contractes i marcar-hi els canvis amb ressaltats i comentaris
+- Censurar informació confidencial, com números de la seguretat social o dades financeres, abans de compartir-la
+- Afegir anotacions a plànols d'arquitectura o dibuixos d'enginyeria
+- Inserir logotips o segells d'empresa a les pàgines d'un document
+- Cercar termes concrets en documents jurídics extensos
+
+## Consells
+
+- Pots obrir diversos PDF alhora i canviar entre ells amb la barra de pestanyes de la part superior de l'editor.
+- L'editor conserva l'estructura original del PDF, de manera que els tipus de lletra, els dissenys i els camps de formulari es mantenen intactes.
+- Marcar un text o una àrea per censurar no elimina res fins que s'aplica la censura. Quan censures un text seleccionat, també se n'eliminen de la baixada les còpies que hi hagi a les propietats del fitxer, els marcadors, els comentaris i els fitxers adjunts, tret que el fitxer estigui xifrat.
+- Per aplicar marques d'aigua o numeració de pàgines en massa, fes servir les eines específiques, que ofereixen més control sobre el format.
+
+## Eines relacionades
+
+- [Afegeix una marca d'aigua](./add-watermark)
+- [Signa PDF](./sign-pdf)
+- [Afegeix segells](./add-stamps)
+- [Elimina les anotacions](./remove-annotations)
diff --git a/docs/ca/tools/email-to-pdf.md b/docs/ca/tools/email-to-pdf.md
new file mode 100644
index 00000000..bc0796f2
--- /dev/null
+++ b/docs/ca/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Correu electrònic a PDF
+description: Converteix fitxers de correu EML i MSG a PDF al navegador. Conserva les capçaleres, el cos i la llista de fitxers adjunts.
+---
+
+# Correu electrònic a PDF
+
+Converteix fitxers de correu desats en PDF nets i imprimibles. L'eina analitza fitxers EML i MSG, n'extreu el missatge complet (capçaleres, contingut del cos i metadades dels adjunts) i ho renderitza tot en un PDF estructurat. És útil per a la descoberta judicial, per conservar registres o simplement per imprimir un correu important.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :----- | :------- | :----------------------------------------------------------------------------- |
+| EML | `.eml` | Format de correu MIME estàndard (exportat per la majoria de clients de correu) |
+| MSG | `.msg` | Format propietari de Microsoft Outlook |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega i deixa anar els fitxers EML o MSG. Pots barrejar tots dos formats en un mateix lot.
+2. Revisa la llista de fitxers. Elimina les entrades que no vulguis amb la icona de la paperera o fes clic a **Afegeix més fitxers** per incloure-hi més correus.
+3. Configura les opcions de conversió (vegeu més avall).
+4. Fes clic a **Converteix a PDF**. L'eina analitza cada correu, en renderitza el contingut com a HTML amb estil i el converteix a PDF amb el motor PyMuPDF.
+5. Un sol correu es baixa directament com a PDF. Si són diversos, s'empaqueten a `emails-converted.zip`.
+
+## Opcions
+
+| Opció | Per defecte | Descripció |
+| :-------------------------------------------------- | :---------- | :------------------------------------------------------------------------------------------------------------- |
+| **Mida de pàgina** | A4 | Tria entre les dimensions de pàgina A4, Letter o Legal. |
+| **Inclou els destinataris CC i CCO a la capçalera** | Activat | Si està activat, les llistes de destinataris en CC i CCO apareixen a la secció de capçalera del correu al PDF. |
+| **Inclou la llista d'adjunts del correu** | Activat | Si està activat, al PDF apareix una llista dels fitxers adjunts del correu (amb noms i mides). |
+
+## Casos d'ús
+
+- Arxivar correspondència empresarial important en PDF per al compliment normatiu o l'auditoria
+- Imprimir fils de correu per a procediments judicials o sol·licituds de descoberta
+- Crear un registre permanent de confirmacions de comanda, rebuts o contractes rebuts per correu
+- Fer una còpia de seguretat de fitxers MSG d'Outlook en un format que no requereixi Outlook per llegir-los
+- Documentar interaccions d'atenció al client a partir de fitxers EML exportats
+
+## Consells
+
+- S'admeten tant els fitxers EML (que fan servir Thunderbird, Apple Mail i la majoria de clients de correu) com els MSG d'Outlook. Exporta els correus des del teu client de correu i deixa'ls anar directament a l'eina.
+- Els correus en format HTML conserven l'estil al PDF. Els correus en text pla es renderitzen amb un format net i llegible.
+- La llista d'adjunts mostra noms de fitxer i mides, però no incrusta els fitxers adjunts reals al PDF.
+
+## Eines relacionades
+
+- [XML a PDF](./xml-to-pdf)
+- [XPS a PDF](./xps-to-pdf)
diff --git a/docs/ca/tools/epub-to-pdf.md b/docs/ca/tools/epub-to-pdf.md
new file mode 100644
index 00000000..a420d060
--- /dev/null
+++ b/docs/ca/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB a PDF
+description: Converteix llibres electrònics EPUB a PDF al navegador. Gratuït, sense càrrega de fitxers i amb una conversió que prioritza la privadesa.
+---
+
+# EPUB a PDF
+
+Converteix llibres electrònics EPUB en fitxers PDF sense sortir del navegador. EPUB és l'estàndard obert dels llibres digitals, però de vegades necessites un PDF de disseny fix per imprimir, anotar o compartir amb persones que no tenen un lector de llibres electrònics.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :----- | :------- | :---------------------- |
+| EPUB | `.epub` | Fitxers EPUB 2 i EPUB 3 |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega i deixa anar els fitxers EPUB. Es permet la selecció múltiple.
+2. Revisa els fitxers pujats. Elimina les entrades que no vulguis amb la icona de la paperera o fes clic a **Afegeix més fitxers** per ampliar el lot.
+3. Fes clic a **Converteix a PDF**. El motor PyMuPDF renderitza el contingut de l'EPUB (text, imatges i format) en una sortida PDF paginada.
+4. Un sol EPUB es baixa directament com a PDF. Si són diversos fitxers, s'empaqueten en un arxiu ZIP anomenat `epub-converted.zip`.
+
+## Opcions
+
+La conversió s'executa amb uns valors per defecte raonables i no requereix cap configuració. El text es reajusta a les dimensions de pàgina estàndard, i els tipus de lletra i les imatges incrustats passen al PDF.
+
+## Casos d'ús
+
+- Imprimir un llibre electrònic sense DRM per llegir-lo lluny de les pantalles
+- Enviar un manuscrit EPUB com a PDF de disseny fix per a la revisió
+- Arxivar llibres digitals en un format que tots els sistemes operatius poden obrir de manera nativa
+- Compartir un capítol amb un company que no té un lector d'EPUB
+- Convertir documentació tècnica distribuïda com a EPUB en PDF que es poden anotar
+
+## Consells
+
+- Les funcions d'EPUB 3, com l'àudio i el vídeo incrustats, no passaran al PDF, però tot el text, les imatges i les taules es converteixen sense problemes.
+- Per obtenir els millors resultats amb EPUB amb molt d'estil, revisa les primeres pàgines del resultat per confirmar la fidelitat del disseny.
+
+## Eines relacionades
+
+- [MOBI a PDF](./mobi-to-pdf)
+- [FB2 a PDF](./fb2-to-pdf)
+- [CBZ a PDF](./cbz-to-pdf)
diff --git a/docs/ca/tools/excel-to-pdf.md b/docs/ca/tools/excel-to-pdf.md
new file mode 100644
index 00000000..c9dbe094
--- /dev/null
+++ b/docs/ca/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel a PDF
+description: Converteix fulls de càlcul d'Excel (XLS, XLSX), ODS i fitxers CSV a PDF conservant el format.
+---
+
+# Excel a PDF
+
+Converteix fitxers de full de càlcul en PDF. L'eina admet fitxers d'Excel moderns, el format XLS antic, fulls de càlcul OpenDocument i fins i tot CSV, tots renderitzats amb un motor LibreOffice al navegador que conserva el format de les cel·les, les fórmules (com a valors calculats), els gràfics i els dissenys de diversos fulls.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :-------------------------- | :--------- |
+| Excel (modern) | `.xlsx` |
+| Excel (antic) | `.xls` |
+| Full de càlcul OpenDocument | `.ods` |
+| CSV | `.csv` |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega i deixa anar els fitxers de full de càlcul.
+2. Revisa la llista de fitxers. Afegeix-ne més o elimina els que no vulguis.
+3. Fes clic a **Converteix a PDF**. El motor LibreOffice s'inicialitza la primera vegada que s'utilitza i després processa cada fitxer.
+4. Un sol fitxer es baixa directament com a PDF. Si són diversos, es lliuren com a `excel-converted.zip`.
+
+## Opcions
+
+Aquesta eina no té cap configuració addicional. El motor LibreOffice determina el disseny de pàgina, l'escala i l'àrea d'impressió segons els paràmetres integrats del full de càlcul.
+
+## Resultat
+
+| Nombre d'entrades | Resultat |
+| :---------------- | :------------------------------------------------------------------- |
+| 1 fitxer | Baixada d'un únic PDF (nom de fitxer original amb l'extensió `.pdf`) |
+| 2 o més fitxers | Arxiu ZIP (`excel-converted.zip`) amb un PDF per cada fitxer |
+
+## Casos d'ús
+
+- Convertir informes financers o pressupostos d'Excel a PDF per distribuir-los
+- Crear PDF llestos per imprimir a partir de fulls de càlcul d'inventari o de catàlegs de productes
+- Compartir els resultats d'una anàlisi de dades amb parts interessades que no tenen Excel instal·lat
+- Arxivar informes trimestrals en un format no editable
+- Convertir fitxers ODS de LibreOffice Calc a PDF
+
+## Consells
+
+- Els gràfics incrustats al full de càlcul es renderitzen al PDF. Assegura't que es vegin correctament al fitxer d'origen abans de convertir.
+- Si el full de càlcul té diversos fulls, tots s'inclouen al PDF resultant.
+- Per a dades CSV simples sense format, l'eina [CSV a PDF](./csv-to-pdf) ofereix una conversió més lleugera. Fes servir Excel a PDF quan necessitis conservar el format, els gràfics o diversos fulls.
+
+## Eines relacionades
+
+- [CSV a PDF](./csv-to-pdf)
+- [Word a PDF](./word-to-pdf)
+- [PowerPoint a PDF](./powerpoint-to-pdf)
diff --git a/docs/ca/tools/extract-attachments.md b/docs/ca/tools/extract-attachments.md
new file mode 100644
index 00000000..1a5f9975
--- /dev/null
+++ b/docs/ca/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Extreu fitxers adjunts
+description: Extreu tots els fitxers adjunts incrustats d'un o més PDF i baixa'ls com a arxiu ZIP.
+---
+
+# Extreu fitxers adjunts
+
+Extreu tots els adjunts incrustats d'un o més fitxers PDF. Tots els fitxers extrets s'agrupen en un únic arxiu ZIP per baixar-lo.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF que continguin adjunts incrustats.
+2. Fes clic a **Extreu fitxers adjunts**.
+3. L'eina cerca adjunts de nivell de document i de nivell de pàgina a cada PDF.
+4. Tots els fitxers trobats s'empaqueten en un arxiu ZIP i es baixen automàticament.
+5. Un missatge d'estat confirma quants adjunts s'han trobat i la seva mida total.
+
+## Funcions
+
+- Extracció per lots de diversos PDF alhora
+- Extreu tant els adjunts de nivell de document com els de nivell de pàgina
+- Genera un únic fitxer ZIP amb tots els fitxers extrets
+- Mostra el nombre total d'adjunts i la mida combinada dels fitxers
+- Missatges d'estat clars si no es troba cap adjunt
+
+## Casos d'ús
+
+- Recuperar fitxers de dades incrustats en un PDF d'informe
+- Extreure recursos d'imatge d'un porfoli o d'un document d'especificacions
+- Extreure materials complementaris de PDF de formació o de compliment normatiu
+- Auditar quins fitxers hi ha incrustats en un lot de PDF
+
+## Consells
+
+- Si l'eina informa que no hi ha adjunts, és possible que el PDF contingui imatges incrustades o dades de formulari, que no són fitxers adjunts. Fes servir [Extreu imatges](./extract-images) per a les imatges incrustades.
+- Quan processes diversos PDF, tots els adjunts de tots els fitxers acaben en un sol ZIP. Els noms dels fitxers es conserven tal com eren a les incrustacions originals.
+
+## Eines relacionades
+
+- [Afegeix fitxers adjunts](./add-attachments)
+- [Edita els fitxers adjunts](./edit-attachments)
+- [Extreu imatges](./extract-images)
diff --git a/docs/ca/tools/extract-images.md b/docs/ca/tools/extract-images.md
new file mode 100644
index 00000000..a19ca888
--- /dev/null
+++ b/docs/ca/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Extreu imatges
+description: Extreu totes les imatges incrustades dels fitxers PDF. Previsualitza-les en una quadrícula i baixa-les individualment o com a arxiu ZIP.
+---
+
+# Extreu imatges
+
+Extreu totes les imatges incrustades d'un o més fitxers PDF. Les imatges extretes es mostren en una quadrícula de previsualització on pots baixar-les individualment o agafar-ho tot alhora en un ZIP. Funciona amb PyMuPDF.
+
+## Com funciona
+
+1. Puja un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers. Afegeix-ne més o elimina'n d'individuals segons calgui.
+2. Fes clic a **Extreu imatges** per iniciar el processament.
+3. L'eina explora totes les pàgines de tots els PDF pujats, i troba i extreu les imatges incrustades.
+4. Les imatges extretes apareixen en una quadrícula amb miniatures. Cada imatge té un botó de baixada.
+5. Fes clic a **Baixa-ho tot** per desar-ho tot com a arxiu ZIP.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Totes les imatges incrustades s'extreuen en el seu format original (normalment PNG, JPEG o el format que es va fer servir quan la imatge es va incrustar al PDF).
+
+## Format de sortida
+
+- Les imatges es mostren en una quadrícula de previsualització amb noms com `image_1.png`, `image_2.jpg`, etc.
+- **Baixa-ho tot** genera `extracted-images.zip` amb totes les imatges.
+- Les imatges es poden baixar una a una des de la quadrícula.
+
+## Casos d'ús
+
+- Recuperar fotos o gràfics d'un PDF per reutilitzar-los en un altre projecte.
+- Extreure imatges de productes d'un PDF de catàleg per a una fitxa de comerç electrònic.
+- Treure diagrames de documentació tècnica per fer-los servir en presentacions.
+- Auditar quines imatges hi ha incrustades en un document abans de compartir-lo.
+
+## Consells
+
+- L'eina extreu les imatges exactament com estan emmagatzemades al PDF. No torna a renderitzar les pàgines com a imatges: per a això, fes servir [PDF a PNG](./pdf-to-png) o [PDF a JPG](./pdf-to-jpg).
+- Si l'eina informa de "No s'ha trobat cap imatge", és possible que el PDF faci servir gràfics vectorials en lloc d'imatges de mapa de bits incrustades, o que sigui un document escanejat on tota la pàgina és una sola imatge gran.
+- El processament per lots funciona amb diversos PDF. Totes les imatges de tots els fitxers es combinen en una única quadrícula i en un sol ZIP.
+
+## Eines relacionades
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a JPG](./pdf-to-jpg)
+- [Creador de fluxos de treball PDF](./pdf-workflow)
diff --git a/docs/ca/tools/extract-pages.md b/docs/ca/tools/extract-pages.md
new file mode 100644
index 00000000..4fdfe084
--- /dev/null
+++ b/docs/ca/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Extreu pàgines
+description: Desa un interval concret de pàgines d'un PDF com a document nou.
+---
+
+# Extreu pàgines
+
+Extreu un conjunt de pàgines d'un PDF i desa-les com a fitxer nou. Indica exactament quines pàgines vols amb la sintaxi d'intervals i l'eina crea un PDF net que conté només aquestes pàgines.
+
+## Com funciona
+
+1. Puja un fitxer PDF. L'eina mostra el nom del fitxer, la mida i el nombre total de pàgines.
+2. Introdueix les pàgines que vols extreure amb la sintaxi d'intervals (p. ex., `1-5`, `3, 7, 10-12`).
+3. Si vols, tria baixar cada interval com un PDF separat en un arxiu ZIP.
+4. Fes clic al botó de processar. Les pàgines extretes es baixen com un PDF nou (o un ZIP).
+
+## Funcions
+
+- Sintaxi d'intervals de pàgines flexible: pàgines individuals, intervals o combinacions separades per comes
+- Mostra el nombre total de pàgines després de la càrrega per consultar-lo fàcilment
+- Opció de generar un únic PDF combinat o fitxers separats en un ZIP
+- Conserva el contingut i el format originals de les pàgines
+
+## Casos d'ús
+
+- Extreure el resum executiu (les primeres pàgines) d'un informe extens
+- Extreure un sol capítol d'un PDF de llibre de text
+- Desar pàgines concretes d'un paquet de formularis com a documents independents
+- Crear un document de mostra a partir de pàgines seleccionades d'un fitxer més gran
+
+## Consells
+
+- Els números de pàgina comencen a 1. Fes servir `1` per a la primera pàgina, no `0`.
+- Per eliminar pàgines en lloc d'extreure-les, fes servir [Suprimeix pàgines](./delete-pages), que és l'operació inversa.
+- Si necessites una selecció visual de pàgines amb miniatures, fes servir [Divideix PDF](./split-pdf) en mode Visual Select.
+
+## Eines relacionades
+
+- [Divideix PDF](./split-pdf)
+- [Suprimeix pàgines](./delete-pages)
+- [Fusiona PDF](./merge-pdf)
diff --git a/docs/ca/tools/extract-tables.md b/docs/ca/tools/extract-tables.md
new file mode 100644
index 00000000..9f823017
--- /dev/null
+++ b/docs/ca/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Extreu taules de PDF
+description: Detecta i extreu taules de documents PDF. Exporta-les com a CSV, JSON o Markdown amb una granularitat per taula.
+---
+
+# Extreu taules de PDF
+
+Detecta totes les taules d'un PDF i et permet exportar-les en el format que triïs: CSV, JSON o Markdown. Cada taula s'extreu individualment amb metadades de pàgina i de posició. Funciona amb el motor de detecció de taules de PyMuPDF.
+
+## Com funciona
+
+1. Puja un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Selecciona el **format d'exportació** que prefereixis: CSV, JSON o Markdown.
+3. Fes clic a **Extreu taules** per iniciar el processament.
+4. Si es troba una sola taula, es baixa com un únic fitxer. Si n'hi ha diverses, es genera un arxiu ZIP amb un fitxer per taula.
+
+## Opcions
+
+- **Format d'exportació**: tria entre:
+ - **CSV**: valors separats per comes, amb les cometes adequades als camps que contenen comes, cometes o salts de línia. Adequat per a fulls de càlcul i bases de dades.
+ - **JSON**: estructura de matrius de matrius, amb format llegible i sagnat de 2 espais. Adequat per al consum programàtic.
+ - **Markdown**: format de taula delimitada per barres verticals renderitzat per PyMuPDF. Adequat per a documentació i fitxers README.
+
+## Format de sortida
+
+- **Una sola taula**: `filename_table.csv` (o `.json` / `.md`)
+- **Diverses taules**: `filename_tables.zip` amb fitxers anomenats `table_1_page3.csv`, `table_2_page5.csv`, etc.
+
+## Casos d'ús
+
+- Extreure taules concretes d'informes PDF extensos sense treure les dades de tot el document.
+- Obtenir taules en format Markdown per enganxar-les directament a incidències de GitHub, wikis o documentació.
+- Obtenir dades JSON estructurades de les taules d'un PDF per a integracions d'API o scripts.
+- Comparar taules entre diferents versions d'un PDF exportant-ne totes dues a CSV i comparant-les.
+
+## Consells
+
+- Aquesta eina et dona control per taula. Si només vols abocar totes les taules en un únic CSV, fes servir [PDF a CSV](./pdf-to-csv). Per a un llibre d'Excel complet, fes servir [PDF a Excel](./pdf-to-excel).
+- Les taules que s'estenen per diverses pàgines es poden detectar com a taules separades per pàgina. Potser les hauràs de concatenar manualment.
+- Si no es detecta cap taula, és possible que el PDF sigui una imatge escanejada. Passa'l primer per l'OCR per afegir-hi una capa de text.
+
+## Eines relacionades
+
+- [PDF a CSV](./pdf-to-csv)
+- [PDF a Excel](./pdf-to-excel)
+- [PDF a text](./pdf-to-text)
diff --git a/docs/ca/tools/fb2-to-pdf.md b/docs/ca/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..230badce
--- /dev/null
+++ b/docs/ca/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 a PDF
+description: Converteix llibres electrònics FictionBook (FB2) a PDF al navegador. Gratuït, privat i sense pujar res a cap servidor.
+---
+
+# FB2 a PDF
+
+Converteix fitxers FictionBook 2 (FB2) en documents PDF. FB2 és un format de llibre electrònic basat en XML molt popular a Rússia i a l'Europa de l'Est. Tot i que algunes plataformes el reconeixen bé, en moltes altres és pràcticament desconegut: convertir-lo a PDF fa que els teus llibres es puguin llegir a qualsevol lloc.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :------------ | :------- | :--------------------------------------- |
+| FictionBook 2 | `.fb2` | Format de llibre electrònic basat en XML |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers FB2. Pots seleccionar-ne diversos alhora.
+2. Revisa la llista de fitxers. Fes servir la icona de la paperera per eliminar-ne de concrets, o **Afegeix més fitxers** per incloure'n més.
+3. Fes clic a **Converteix a PDF**. El motor PyMuPDF analitza l'estructura XML de l'FB2 i la renderitza com a contingut de PDF paginat.
+4. Si és un sol fitxer, es baixa directament com a PDF. Si en converteixes diversos, s'agrupen a `fb2-converted.zip`.
+
+## Opcions
+
+No cal configurar res. El convertidor gestiona automàticament l'estructura XML de l'FB2 i conserva els salts de capítol, el format i les imatges incrustades.
+
+## Casos d'ús
+
+- Llegir llibres FB2 en dispositius o aplicacions que només admeten PDF
+- Imprimir literatura en rus distribuïda en format FB2
+- Arxivar una biblioteca FB2 en un format compatible arreu
+- Compartir un llibre amb algú el lector del qual no admet FictionBook
+
+## Consells
+
+- Els fitxers FB2 són XML pla, de manera que solen ser petits i es converteixen ràpidament, fins i tot al navegador.
+- Si els teus fitxers FB2 estan comprimits com a `.fb2.zip`, extreu-los abans de pujar-los.
+
+## Eines relacionades
+
+- [EPUB a PDF](./epub-to-pdf)
+- [MOBI a PDF](./mobi-to-pdf)
+- [XML a PDF](./xml-to-pdf)
diff --git a/docs/ca/tools/fix-page-size.md b/docs/ca/tools/fix-page-size.md
new file mode 100644
index 00000000..502da253
--- /dev/null
+++ b/docs/ca/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Uniformitza la mida de pàgina
+description: Uniformitza totes les pàgines d'un PDF a la mateixa mida. Tria una mida de paper estàndard o defineix dimensions personalitzades.
+---
+
+# Uniformitza la mida de pàgina
+
+Els PDF muntats a partir de diverses fonts solen tenir pàgines de mides diferents: unes en Letter, unes altres en A4 i d'altres amb mides gens estàndard. Aquesta eina força totes les pàgines a una única mida de destinació i escala el contingut perquè hi càpiga o l'ompli, segons el cas.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Selecciona una **Mida de pàgina de destinació** al desplegable (A4, Letter, Legal, A3, A5, Tabloid o Personalitzada).
+3. Tria una **Orientació**: Automàtica conserva l'orientació original de cada pàgina, o bé pots forçar Vertical o Horitzontal.
+4. Escull un mode d'**Escalat del contingut**: Ajusta (conserva tot el contingut i pot afegir marges) o Omple (omple la pàgina i pot retallar les vores).
+5. Si vols, defineix un **Color de fons** per als marges afegits.
+6. Fes clic a **Uniformitza la mida de pàgina**.
+
+## Opcions
+
+- **Mides estàndard**: A4, Letter, Legal, A3, A5, Tabloid
+- **Dimensions personalitzades**: introdueix l'amplada i l'alçada en polzades o mil·límetres
+- **Orientació**: Automàtica, Vertical, Horitzontal
+- **Mode d'escalat**: Ajusta o Omple (retalla)
+- **Color de fons**: qualsevol color per als marges
+
+## Casos d'ús
+
+- Normalitzar un PDF fusionat amb pàgines que provenen d'escàners diferents
+- Convertir un document en US Letter a A4 per distribuir-lo internacionalment
+- Preparar PDF llestos per imprimir que requereixen una mida de tall uniforme
+- Corregir pàgines que no s'ajusten gaire a l'estàndard (p. ex., 8,49 x 11,02 polzades en lloc de 8,5 x 11)
+
+## Consells
+
+- Fes servir el mode Ajusta per garantir que no es perdi cap contingut. El mode Omple té un aspecte més net, però pot tallar les vores.
+- Comprova el resultat amb l'eina Dimensions de pàgina per confirmar que totes les pàgines coincideixen amb la mida de destinació.
+- El blanc és el color de fons per defecte; canvia'l a un color fosc si el teu document té marges foscos.
+
+## Eines relacionades
+
+- [Dimensions de pàgina](./page-dimensions): inspecciona les mides de pàgina abans i després de la correcció
+- [Comprimeix PDF](./compress-pdf): redueix la mida del fitxer després d'uniformitzar-lo
+- [Retalla PDF](./crop-pdf): retalla les pàgines manualment en lloc d'escalar-les automàticament
diff --git a/docs/ca/tools/flatten-pdf.md b/docs/ca/tools/flatten-pdf.md
new file mode 100644
index 00000000..f67a613a
--- /dev/null
+++ b/docs/ca/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Aplana PDF
+description: Aplana els formularis interactius i les anotacions en contingut estàtic. Fa que els camps del formulari no es puguin editar i incrusta les anotacions a la pàgina.
+---
+
+# Aplana PDF
+
+Aplanar fusiona els elements interactius (camps de formulari, desplegables, caselles de selecció, anotacions, ressaltats, notes adhesives) directament amb el contingut de la pàgina. L'aspecte visual es manté, però ja no es pot editar ni extreure res. És l'equivalent en PDF d'imprimir un formulari emplenat i tornar-lo a escanejar, tot i que la qualitat es manté perfecta.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF.
+2. Fes clic a **Aplana PDF**.
+3. Un sol fitxer es baixa directament. Si en són diversos, es genera un arxiu ZIP.
+
+L'eina fa servir pdf-lib per aplanar els camps del formulari (mitjançant `form.flatten()`) i un aplanador d'anotacions propi per incrustar les anotacions al flux de la pàgina. Ambdues operacions es fan en una sola passada.
+
+## Què s'aplana
+
+- **Camps de formulari**: camps de text, caselles de selecció, botons d'opció, desplegables, camps de signatura
+- **Anotacions**: comentaris, ressaltats, text ratllat, subratllat, notes adhesives, segells, anotacions de tinta
+- **Elements interactius**: botons, activadors d'accions
+
+## Què no canvia
+
+- El contingut de text (continua sent seleccionable i es pot cercar)
+- Imatges i gràfics
+- El disseny i les dimensions de la pàgina
+- Marcadors i taula de continguts
+- Enllaços (tret que estiguin basats en anotacions)
+
+## Casos d'ús
+
+- Bloquejar un formulari emplenat perquè els destinataris no puguin canviar les respostes enviades
+- Preparar un PDF per arxivar-lo quan els elements interactius no són necessaris
+- Corregir problemes de visualització causats per anotacions que es mostren diferent segons el visor
+- Assegurar que un document signat no es pugui modificar després d'aplicar la signatura
+- Reduir la mida del fitxer eliminant les definicions de camps de formulari i els objectes d'anotació
+
+## Consells
+
+- Aplana quan hagis acabat totes les edicions. No hi ha cap manera de desfer l'aplanament d'un PDF.
+- Si necessites aplanar i, a més, eliminar metadades, JavaScript i fitxers adjunts, fes servir l'eina Neteja PDF: inclou l'aplanament com una de les seves opcions.
+- Alguns PDF indiquen «no s'ha trobat cap formulari»: és normal si el document només té anotacions i cap camp de formulari.
+
+## Eines relacionades
+
+- [Neteja PDF](./sanitize-pdf): aplana formularis i, a més, elimina metadades, scripts i més
+- [Rasteritza PDF](./rasterize-pdf): converteix a un PDF basat en imatges per a un aplanament màxim
+- [Converteix tipus de lletra en contorns](./font-to-outline): aplana els tipus de lletra en traçats vectorials
+- [Xifra PDF](./protect-pdf): bloqueja el PDF aplanat amb una contrasenya
diff --git a/docs/ca/tools/font-to-outline.md b/docs/ca/tools/font-to-outline.md
new file mode 100644
index 00000000..e20e0b73
--- /dev/null
+++ b/docs/ca/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Converteix tipus de lletra en contorns
+description: Converteix tots els tipus de lletra d'un PDF en contorns vectorials per obtenir una renderització coherent a tots els dispositius. Elimina els problemes de dependència de tipus de lletra.
+---
+
+# Converteix tipus de lletra en contorns
+
+Convertir els tipus de lletra en contorns transforma cada caràcter de text, que deixa de ser un glif basat en un tipus de lletra i passa a ser un traçat vectorial. El PDF ja no depèn de cap tipus de lletra instal·lat: es veu igual a tots els dispositius, a tots els sistemes operatius i a totes les impressores. És un pas estàndard en els fluxos de treball de preimpressió.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF.
+2. Fes clic a **Converteix en contorns**.
+3. Ghostscript converteix tot el text en traçats vectorials.
+4. Baixa el resultat. Si en són diversos fitxers, es genera un arxiu ZIP.
+
+No hi ha cap paràmetre per configurar. L'eina fa servir Ghostscript (WebAssembly) per convertir totes les referències a tipus de lletra en traçats de contorn en una sola passada.
+
+## Què canvia
+
+- Els caràcters de text passen a ser corbes vectorials (traçats de Bézier)
+- Ja no cal incrustar els tipus de lletra: el PDF és autònom a nivell de glif
+- La mida del fitxer pot augmentar perquè els traçats vectorials solen pesar més que les referències a tipus de lletra
+- L'aspecte visual es conserva exactament
+
+## Què es perd
+
+- La selecció de text i copiar i enganxar
+- La possibilitat de cercar text (Ctrl+F deixa de funcionar)
+- La capacitat d'editar el contingut del text
+- L'accessibilitat per a lectors de pantalla
+
+## Casos d'ús
+
+- Enviar PDF a una impremta que exigeix tipus de lletra en contorns
+- Compartir documents que fan servir tipus de lletra personalitzats o amb llicència amb persones que no els tenen
+- Evitar la substitució de tipus de lletra que canvia l'aspecte del document en altres sistemes
+- Preparar PDF per a fluxos de gravat làser o tall CNC que requereixen entrada vectorial
+- Assegurar que un PDF ple de logotips es mostri correctament a totes les plataformes
+
+## Consells
+
+- Conserva el PDF original. Convertir en contorns és irreversible: no es poden tornar a convertir els traçats en text editable.
+- Si necessites que el text es pugui seguir cercant, considera l'eina Rasteritza PDF amb OCR com a pas posterior.
+- Els PDF amb contorns solen ser més grans. Executa després Comprimeix PDF si la mida del fitxer és important.
+
+## Eines relacionades
+
+- [Aplana PDF](./flatten-pdf): aplana formularis i anotacions sense tocar els tipus de lletra
+- [Rasteritza PDF](./rasterize-pdf): converteix a un PDF basat en imatges en lloc de contorns vectorials
+- [Comprimeix PDF](./compress-pdf): redueix la mida del fitxer després de convertir en contorns
+- [PDF a PDF/A](./pdf-to-pdfa): converteix per arxivar després d'assegurar la independència dels tipus de lletra
diff --git a/docs/ca/tools/form-creator.md b/docs/ca/tools/form-creator.md
new file mode 100644
index 00000000..2d1a8807
--- /dev/null
+++ b/docs/ca/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Crea un formulari PDF
+description: Crea formularis PDF emplenables amb camps de text, caselles de selecció, desplegables, botons d'opció i més, arrossegant i deixant anar.
+---
+
+# Crea un formulari PDF
+
+Dissenya formularis PDF emplenables professionals des de zero o afegint camps a un PDF existent. L'editor visual et permet arrossegar i deixar anar elements de formulari (camps de text, caselles de selecció, desplegables, botons d'opció, camps de signatura i més) directament sobre les vistes prèvies de les pàgines. Configura les propietats dels camps, defineix regles de visibilitat condicional i exporta un formulari PDF totalment interactiu.
+
+## Com funciona
+
+1. Puja un PDF existent **o** fes clic a **Crea un PDF en blanc** per començar de zero.
+2. Si crees un PDF en blanc, selecciona una mida de pàgina (Letter, A4, A5, Legal, Tabloid, A3 o dimensions personalitzades).
+3. S'obre l'editor de formularis amb una barra d'eines amb els tipus de camp i una àrea de vista prèvia de la pàgina.
+4. Selecciona un tipus de camp a la barra d'eines i fes clic a la pàgina per col·locar-lo.
+5. Arrossega els camps per canviar-ne la posició. Fes servir els tiradors per ajustar-ne les dimensions.
+6. Fes clic en un camp per obrir el tauler de propietats, on pots definir el nom del camp, el valor per defecte, la mida de la lletra, l'alineació i més.
+7. Navega entre pàgines amb els controls de pàgina.
+8. Fes clic a **Desa** per baixar el PDF emplenable acabat.
+
+## Funcionalitats
+
+- Col·locació de camps arrossegant i deixant anar, amb tiradors visuals per redimensionar
+- Tipus de camp: entrada de text, text multilínia, casella de selecció, desplegable, botó d'opció, signatura, data, número i codi de barres
+- Tauler de propietats per configurar el nom, l'etiqueta, el valor per defecte, la mida de la lletra, el color, l'alineació i la validació de cada camp
+- Accions de camp i regles de visibilitat condicional (mostrar o amagar camps segons els valors d'altres camps)
+- Navegació per pàgines per a formularis de diverses pàgines
+- Extracció de camps existents: detecta i importa automàticament els camps de formulari dels PDF pujats
+- Compatibilitat amb PDF pujats i pàgines en blanc com a llenç del formulari
+- Diverses mides de pàgina predefinides, a més de dimensions personalitzades
+- Generació de codis de barres amb bwip-js
+- Gestió de grups de botons d'opció
+
+## Opcions
+
+**Mides de pàgina predefinides (per a PDF en blanc):**
+
+- Letter (8,5" x 11")
+- A4 (210 mm x 297 mm)
+- A5 (148 mm x 210 mm)
+- Legal (8,5" x 14")
+- Tabloid (11" x 17")
+- A3 (297 mm x 420 mm)
+- Personalitzada (indica l'amplada i l'alçada)
+
+**Propietats dels camps (varien segons el tipus de camp):**
+
+- Nom, etiqueta i text de subtítol
+- Valor per defecte
+- Família, mida i color de la lletra
+- Alineació del text (esquerra, centre, dreta)
+- Interruptor de camp obligatori
+- Interruptor de només lectura
+- Longitud màxima dels camps de text
+- Llista d'opcions per a desplegables i botons d'opció
+- Accions de visibilitat condicional
+
+## Casos d'ús
+
+- Crear formularis d'acollida d'empleats amb camps de text per a les dades personals i caselles de selecció per acceptar polítiques
+- Crear qüestionaris d'entrada de clients amb desplegables per triar el servei
+- Dissenyar formularis de comanda amb camps calculats i identificadors de codi de barres
+- Crear llistes de control d'inspecció amb botons d'opció per a valoracions d'apte o no apte
+- Crear formularis d'enquesta amb preguntes de seguiment condicionals que apareixen segons les respostes
+
+## Consells
+
+- Si puges un PDF existent, l'eina intentarà extreure'n els camps de formulari que ja hi hagi, perquè els puguis editar o ampliar.
+- Fes servir la funció de grup de botons d'opció per crear seleccions mútuament excloents. Els camps del mateix grup comparteixen un nom de grup.
+- Prova el formulari baixant-lo i obrint-lo a l'[Emplena formularis PDF](./form-filler) per comprovar el comportament dels camps.
+
+## Eines relacionades
+
+- [Emplena formularis PDF](./form-filler)
+- [Signa PDF](./sign-pdf)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/ca/tools/form-filler.md b/docs/ca/tools/form-filler.md
new file mode 100644
index 00000000..971f4742
--- /dev/null
+++ b/docs/ca/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Emplena formularis PDF
+description: Emplena formularis PDF, inclosos els formularis XFA, directament al navegador amb un visor integrat.
+---
+
+# Emplena formularis PDF
+
+Obre un PDF amb camps de formulari i emplena'l directament en un visor integrat. L'eina admet tant els camps AcroForm estàndard com els formularis XFA (XML Forms Architecture) heretats. Quan hagis acabat el formulari, baixa la versió emplenada amb un sol clic.
+
+## Com funciona
+
+1. Puja un PDF que contingui camps de formulari.
+2. El document s'obre en un visor de PDF integrat que mostra els camps de formulari com a entrades interactives.
+3. Fes clic als camps de text, les caselles de selecció, els desplegables i els botons d'opció per emplenar-los.
+4. Fes clic a **Desa i baixa el formulari emplenat** per obtenir el PDF completat.
+
+## Funcionalitats
+
+- Visor PDF.js integrat amb interacció completa amb els camps de formulari
+- Compatibilitat amb els camps AcroForm estàndard (entrades de text, caselles de selecció, desplegables, botons d'opció)
+- Compatibilitat amb formularis XFA per a formularis heretats basats en XML
+- Mida del visor ajustada automàticament segons les dimensions de la pàgina
+- Visualització del fitxer amb el nom i la mida
+
+## Opcions
+
+No hi ha opcions de configuració addicionals. Puja el formulari, emplena'l i baixa'l.
+
+## Casos d'ús
+
+- Completar formularis d'impostos, sol·licituds d'assegurança o tràmits administratius
+- Emplenar formularis de sol·licitud de feina rebuts com a fitxers PDF adjunts
+- Completar formularis d'alta de proveïdors o qüestionaris per a proveïdors
+- Aprovar llistes de control de compliment amb camps de casella de selecció
+- Emplenar formularis mèdics d'ingrés abans d'una cita
+
+## Consells
+
+- Els formularis XFA són un format heretat que només admeten alguns visors de PDF. Si obres un PDF XFA a Chrome o a la majoria d'altres eines i veus pàgines en blanc, vol dir que aquests visors no admeten XFA. L'emplenador de formularis de BentoPDF i Firefox gestionen correctament l'XFA.
+- Per als PDF sense camps de formulari, fes servir l'eina [Crea un formulari PDF](./form-creator) per afegir-hi camps primer i després emplena'ls aquí.
+- El visor ajusta automàticament la mida perquè coincideixi amb les dimensions de la pàgina del PDF.
+
+## Eines relacionades
+
+- [Crea un formulari PDF](./form-creator)
+- [Signa PDF](./sign-pdf)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/ca/tools/header-footer.md b/docs/ca/tools/header-footer.md
new file mode 100644
index 00000000..6f282bcb
--- /dev/null
+++ b/docs/ca/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Capçalera i peu de pàgina
+description: Afegeix text personalitzable de capçalera i peu de pàgina a les pàgines d'un PDF amb variables dinàmiques de número de pàgina.
+---
+
+# Capçalera i peu de pàgina
+
+Afegeix text a sis posicions de les pàgines del PDF: capçalera esquerra, capçalera centre, capçalera dreta, peu esquerre, peu centre i peu dret. L'eina admet variables dinàmiques per al número de pàgina i el total de pàgines, de manera que pots crear plantilles com «Pàgina 3 de 10» que s'actualitzen automàticament a cada pàgina.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. Apareix el tauler d'opcions amb els controls de format i sis camps de text.
+3. Escriu el text que vulguis en qualsevol de les posicions de capçalera o peu.
+4. Fes servir els marcadors `{page}` i `{total}` per a la numeració dinàmica de pàgines.
+5. Ajusta la mida i el color de la lletra i, si vols, limita-ho a un interval de pàgines concret.
+6. Fes clic a **Afegeix capçalera i peu de pàgina** per processar i baixar el resultat.
+
+## Opcions
+
+- **Interval de pàgines**: limita, si vols, quines pàgines porten capçalera i peu. Deixa-ho buit per aplicar-ho a totes. Format: «1-3, 5» (intervals separats per comes).
+- **Mida de la lletra**: entre 6 i 24 punts. Per defecte, 10.
+- **Color de la lletra**: tria qualsevol color amb el selector de color.
+- **Capçalera esquerra / centre / dreta**: camps de text per a la part superior de cada pàgina.
+- **Peu esquerre / centre / dret**: camps de text per a la part inferior de cada pàgina.
+
+## Funcionalitats
+
+- Sis posicions de text independents per pàgina
+- Variable dinàmica `{page}` que insereix el número de la pàgina actual
+- Variable dinàmica `{total}` que insereix el nombre total de pàgines
+- Filtratge per interval de pàgines per afectar només pàgines concretes
+- Mida i color de la lletra personalitzables
+- Tipus de lletra Helvetica per a un resultat net i professional
+
+## Casos d'ús
+
+- Afegir «Pàgina {page} de {total}» al peu centre d'un informe
+- Posar el nom de l'empresa a la capçalera esquerra i la data del document a la capçalera dreta
+- Afegir avisos de confidencialitat al peu dels documents legals
+- Estampar els números de revisió del document en intervals de pàgines concrets
+
+## Consells
+
+- Combina `{page}` i `{total}` en un sol camp per a formats com «Pàgina {page} de {total}» o «{page}/{total}».
+- Pots deixar la majoria dels camps buits i omplir només les posicions que necessitis. Els camps buits simplement s'ometen.
+- Per a capçaleres més complexes amb imatges o logotips, considera l'eina [Afegeix una marca d'aigua](./add-watermark) col·locada a la part superior de la pàgina.
+
+## Eines relacionades
+
+- [Números de pàgina](./page-numbers)
+- [Afegeix una marca d'aigua](./add-watermark)
+- [Numeració Bates](./bates-numbering)
diff --git a/docs/ca/tools/heic-to-pdf.md b/docs/ca/tools/heic-to-pdf.md
new file mode 100644
index 00000000..cfba98ca
--- /dev/null
+++ b/docs/ca/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC a PDF
+description: Converteix imatges HEIC i HEIF d'iPhone i iPad a PDF directament al navegador.
+---
+
+# HEIC a PDF
+
+Converteix imatges HEIC/HEIF a PDF. HEIC és el format de foto per defecte dels iPhone i els iPad des d'iOS 11. Aquesta eina et permet convertir aquestes fotos en PDF sense instal·lar cap programa d'escriptori ni pujar fitxers a cap servidor.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :----- | :--------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers HEIC/HEIF.
+2. Revisa la llista de fitxers i elimina els que no vulguis.
+3. Fes clic a **Converteix a PDF**. El resultat es baixa com a `from_heic.pdf`.
+
+Cada fitxer HEIC es descodifica amb la biblioteca heic2any, que el converteix a PNG amb una qualitat del 92 %. Després, el PNG s'incrusta al PDF amb pdf-lib, amb cada imatge en una pàgina pròpia a resolució completa.
+
+## Opcions
+
+Aquesta eina no ofereix paràmetres addicionals. Les imatges HEIC es converteixen a PNG amb alta qualitat (0,92) abans d'incrustar-les.
+
+## Casos d'ús
+
+- Crear un PDF a partir de fotos d'iPhone per adjuntar-lo a una reclamació d'assegurança o a un informe
+- Convertir fotos HEIC per a un anunci immobiliari en un únic document imprimible
+- Convertir captures de pantalla d'iPad (format HEIF) en un PDF que es pugui compartir
+- Convertir per lots fotos de vacances per a un diari de viatge
+
+## Consells
+
+- La descodificació de HEIC es fa íntegrament al navegador amb WebAssembly. La primera conversió pot trigar una mica mentre es carrega el descodificador.
+- Si necessites barrejar HEIC amb altres formats d'imatge (JPG, PNG, etc.), fes servir l'eina [Imatges a PDF](./image-to-pdf), que gestiona HEIC juntament amb tots els altres formats.
+- Els fitxers HEIC dels iPhone sovint contenen dades EXIF, com ara coordenades GPS. El PDF resultant no conserva aquestes metadades.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
+- [PNG a PDF](./png-to-pdf)
diff --git a/docs/ca/tools/image-to-pdf.md b/docs/ca/tools/image-to-pdf.md
new file mode 100644
index 00000000..ec345595
--- /dev/null
+++ b/docs/ca/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Imatges a PDF
+description: Converteix JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD i més de 10 formats d'imatge en un únic fitxer PDF.
+---
+
+# Imatges a PDF
+
+El convertidor universal d'imatges a PDF. Puja imatges en pràcticament qualsevol format i combina-les en un únic document PDF. Cada imatge té la seva pròpia pàgina, amb la mida de l'original.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Aquesta és la compatibilitat de formats més àmplia de tots els convertidors d'imatges de BentoPDF. Si només necessites un format concret, fes servir una de les eines dedicades.
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers d'imatge. Pots seleccionar-ne diversos alhora.
+2. Revisa la llista de fitxers. Elimina els que no vulguis amb la icona de la paperera, o fes clic a **Afegeix més fitxers** per incloure més imatges.
+3. Tria un nivell de **Qualitat del PDF** al desplegable.
+4. Fes clic a **Converteix a PDF**. L'eina processa les imatges amb el motor PyMuPDF i baixa el resultat com a `images_to_pdf.pdf`.
+
+## Opcions
+
+**Qualitat del PDF** controla la compressió que s'aplica a les imatges en incrustar-les al PDF:
+
+- **Alta qualitat**: compressió mínima, mida de fitxer més gran. Ideal per a impressió o arxiu.
+- **Qualitat mitjana** (per defecte): compressió equilibrada. Bona per a la majoria d'usos.
+- **Baixa qualitat**: compressió agressiva, la mida de fitxer més petita. Adequada per al correu electrònic o per compartir ràpidament.
+
+Els fitxers HEIC i WebP es converteixen automàticament a PNG abans d'incrustar-los. Es fa de manera transparent i no requereix cap pas addicional.
+
+## Casos d'ús
+
+- Combinar en un sol PDF tiquets o documents escanejats amb la càmera del mòbil
+- Crear un portafoli de fotos o un catàleg a partir d'imatges de formats diversos
+- Convertir fotos d'iPhone (HEIC) en un PDF que es pugui compartir sense instal·lar cap programa d'escriptori
+- Muntar maquetes de disseny a partir d'exportacions PSD i captures de pantalla com a lliurable per a un client
+- Arxivar una carpeta de formats d'imatge antics (PNM, JXR, JP2) com un únic PDF
+
+## Consells
+
+- L'ordre de les imatges al PDF coincideix amb l'ordre de la llista de fitxers. Puja-les en la seqüència que vulguis.
+- Per obtenir la mida de fitxer més petita possible, tria Baixa qualitat. La diferència visual sol ser insignificant en escanejos amb molt de text.
+- Si només tens un format d'imatge, els convertidors dedicats (JPG a PDF, PNG a PDF, etc.) donen el mateix resultat amb una interfície més senzilla.
+
+## Eines relacionades
+
+- [JPG a PDF](./jpg-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [HEIC a PDF](./heic-to-pdf)
+- [WebP a PDF](./webp-to-pdf)
diff --git a/docs/ca/tools/index.md b/docs/ca/tools/index.md
new file mode 100644
index 00000000..15b8fb79
--- /dev/null
+++ b/docs/ca/tools/index.md
@@ -0,0 +1,183 @@
+# Referència d'eines
+
+BentoPDF ofereix **més de 130 eines** per treballar amb PDF. Totes les eines s'executen íntegrament al navegador: els teus fitxers no surten mai del dispositiu.
+
+---
+
+## Edita i anota
+
+Modifica, marca i millora els teus documents PDF amb un conjunt complet d'eines d'edició.
+
+
+
+- [**Editor de PDF**](./edit-pdf): anota, ressalta, censura, comenta, afegeix formes i imatges, cerca i visualitza PDF.
+- [**Edita els marcadors**](./bookmark): afegeix, edita, importa, elimina i extreu marcadors de PDF.
+- [**Taula de continguts**](./table-of-contents): genera una pàgina de taula de continguts a partir dels marcadors del PDF.
+- [**Números de pàgina**](./page-numbers): insereix números de pàgina al document.
+- [**Afegeix etiquetes de pàgina**](./add-page-labels): aplica etiquetes de pàgina de PDF amb números romans, prefixos i inicis personalitzats.
+- [**Numeració Bates**](./bates-numbering): afegeix números Bates seqüencials a un o més fitxers PDF.
+- [**Afegeix una marca d'aigua**](./add-watermark): estampa text o una imatge sobre les pàgines del PDF.
+- [**Capçalera i peu de pàgina**](./header-footer): afegeix text a la part superior i inferior de les pàgines.
+- [**Inverteix els colors**](./invert-colors): crea una versió en mode fosc del PDF.
+- [**Efecte d'escàner**](./scanner-effect): fes que el PDF sembli un document escanejat.
+- [**Ajusta els colors**](./adjust-colors): ajusta amb precisió la brillantor, el contrast, la saturació i més.
+- [**Color de fons**](./background-color): canvia el color de fons del PDF.
+- [**Canvia el color del text**](./text-color): canvia el color del text del PDF.
+- [**Signa PDF**](./sign-pdf): dibuixa, escriu o puja la teva signatura.
+- [**Afegeix segells**](./add-stamps): afegeix segells d'imatge al PDF amb la barra d'eines d'anotacions.
+- [**Elimina les anotacions**](./remove-annotations): elimina comentaris, ressaltats i enllaços.
+- [**Retalla PDF**](./crop-pdf): retalla els marges de totes les pàgines del PDF.
+- [**Emplena formularis PDF**](./form-filler): emplena formularis directament al navegador. També admet formularis XFA.
+- [**Crea un formulari PDF**](./form-creator): crea formularis PDF emplenables amb camps de text arrossegant i deixant anar.
+- [**Elimina les pàgines en blanc**](./remove-blank-pages): detecta i elimina automàticament les pàgines en blanc.
+
+
+
+---
+
+## Converteix a PDF
+
+Converteix imatges, documents, llibres electrònics i altres formats de fitxer en PDF.
+
+
+
+- [**Imatges a PDF**](./image-to-pdf): converteix JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP i més a PDF.
+- [**JPG a PDF**](./jpg-to-pdf): crea un PDF a partir d'una o més imatges JPG.
+- [**PNG a PDF**](./png-to-pdf): crea un PDF a partir d'una o més imatges PNG.
+- [**WebP a PDF**](./webp-to-pdf): crea un PDF a partir d'una o més imatges WebP.
+- [**SVG a PDF**](./svg-to-pdf): crea un PDF a partir d'una o més imatges SVG.
+- [**BMP a PDF**](./bmp-to-pdf): crea un PDF a partir d'una o més imatges BMP.
+- [**HEIC a PDF**](./heic-to-pdf): crea un PDF a partir d'una o més imatges HEIC.
+- [**TIFF a PDF**](./tiff-to-pdf): crea un PDF a partir d'una o més imatges TIFF.
+- [**Text a PDF**](./txt-to-pdf): converteix un fitxer de text pla en un PDF.
+- [**Markdown a PDF**](./markdown-to-pdf): converteix Markdown a PDF amb vista prèvia en directe i ressaltat de sintaxi.
+- [**JSON a PDF**](./json-to-pdf): converteix fitxers JSON a format PDF.
+- [**ODT a PDF**](./odt-to-pdf): converteix fitxers ODT (OpenDocument Text) a PDF.
+- [**CSV a PDF**](./csv-to-pdf): converteix fulls de càlcul CSV a PDF.
+- [**RTF a PDF**](./rtf-to-pdf): converteix documents RTF (Rich Text Format) a PDF.
+- [**Word a PDF**](./word-to-pdf): converteix documents de Word (DOCX, DOC, ODT) a PDF.
+- [**Excel a PDF**](./excel-to-pdf): converteix fulls de càlcul d'Excel (XLSX, XLS, ODS) a PDF.
+- [**PowerPoint a PDF**](./powerpoint-to-pdf): converteix presentacions de PowerPoint (PPTX, PPT, ODP) a PDF.
+- [**XPS a PDF**](./xps-to-pdf): converteix documents XPS/OXPS a PDF.
+- [**MOBI a PDF**](./mobi-to-pdf): converteix llibres electrònics MOBI a PDF.
+- [**EPUB a PDF**](./epub-to-pdf): converteix llibres electrònics EPUB a PDF.
+- [**FB2 a PDF**](./fb2-to-pdf): converteix llibres electrònics FictionBook (FB2) a PDF.
+- [**CBZ a PDF**](./cbz-to-pdf): converteix arxius de còmics (CBZ/CBR) a PDF.
+- [**WPD a PDF**](./wpd-to-pdf): converteix documents de WordPerfect (WPD) a PDF.
+- [**WPS a PDF**](./wps-to-pdf): converteix documents de WPS Office a PDF.
+- [**XML a PDF**](./xml-to-pdf): converteix documents XML a PDF.
+- [**ODG a PDF**](./odg-to-pdf): converteix OpenDocument Graphics (ODG) a PDF.
+- [**ODS a PDF**](./ods-to-pdf): converteix OpenDocument Spreadsheet (ODS) a PDF.
+- [**ODP a PDF**](./odp-to-pdf): converteix OpenDocument Presentation (ODP) a PDF.
+- [**PUB a PDF**](./pub-to-pdf): converteix Microsoft Publisher (PUB) a PDF.
+- [**VSD a PDF**](./vsd-to-pdf): converteix Microsoft Visio (VSD, VSDX) a PDF.
+- [**PSD a PDF**](./psd-to-pdf): converteix fitxers d'Adobe Photoshop (PSD) a PDF.
+- [**Correu electrònic a PDF**](./email-to-pdf): converteix fitxers de correu electrònic (EML, MSG) a format PDF.
+
+
+
+---
+
+## Converteix des de PDF
+
+Extreu el contingut dels PDF a imatges, documents i formats de dades.
+
+
+
+- [**PDF a JPG**](./pdf-to-jpg): converteix cada pàgina del PDF en una imatge JPG.
+- [**PDF a PNG**](./pdf-to-png): converteix cada pàgina del PDF en una imatge PNG.
+- [**PDF a WebP**](./pdf-to-webp): converteix cada pàgina del PDF en una imatge WebP.
+- [**PDF a BMP**](./pdf-to-bmp): converteix cada pàgina del PDF en una imatge BMP.
+- [**PDF a TIFF**](./pdf-to-tiff): converteix cada pàgina del PDF en una imatge TIFF.
+- [**PDF a CBZ**](./pdf-to-cbz): converteix un PDF en un CBZ (arxiu de còmic) per a lectors de còmics i Calibre.
+- [**PDF a SVG**](./pdf-to-svg): converteix cada pàgina del PDF en un gràfic vectorial escalable.
+- [**PDF a CSV**](./pdf-to-csv): extreu taules del PDF i converteix-les a format CSV.
+- [**PDF a Excel**](./pdf-to-excel): extreu taules del PDF i converteix-les a Excel (XLSX).
+- [**PDF a escala de grisos**](./pdf-to-greyscale): converteix tots els colors a blanc i negre.
+- [**PDF a JSON**](./pdf-to-json): converteix fitxers PDF a format JSON.
+- [**PDF a Word**](./pdf-to-word): converteix fitxers PDF en documents de Word editables.
+- [**Extreu imatges**](./extract-images): extreu totes les imatges incrustades dels fitxers PDF.
+- [**PDF a Markdown**](./pdf-to-markdown): converteix el text i les taules del PDF a format Markdown.
+- [**Prepara PDF per a IA**](./prepare-pdf-for-ai): extreu el contingut del PDF com a JSON de LlamaIndex per a fluxos RAG/LLM.
+- [**PDF a text**](./pdf-to-text): extreu el text dels fitxers PDF i desa'l com a text pla.
+- [**Extreu taules de PDF**](./extract-tables): extreu taules dels PDF com a CSV, JSON o Markdown.
+
+
+
+---
+
+## Organitza i gestiona
+
+Reorganitza, combina, divideix i gestiona les pàgines i els fitxers PDF.
+
+
+
+- [**Creador de fluxos de treball PDF**](./pdf-workflow): crea fluxos de processament de PDF personalitzats amb un editor visual de nodes.
+- [**Eina PDF multifunció**](./pdf-multi-tool): editor de PDF complet amb gestió de pàgines.
+- [**Reconeixement OCR de PDF**](./ocr-pdf): fes que un PDF es pugui cercar i copiar.
+- [**Fusiona PDF**](./merge-pdf): combina diversos PDF en un sol fitxer.
+- [**Alterna i barreja pàgines**](./alternate-merge): fusiona PDF alternant les pàgines de cada PDF.
+- [**Ordena les cares d'un escaneig a doble cara**](./duplex-collate): reordena els blocs d'escaneig d'anvers i revers en la seqüència de pàgines correcta.
+- [**Duplica i organitza**](./organize-pdf): duplica, reordena i elimina pàgines.
+- [**Afegeix fitxers adjunts**](./add-attachments): incrusta un o més fitxers al PDF.
+- [**Extreu fitxers adjunts**](./extract-attachments): extreu tots els fitxers incrustats dels PDF en un ZIP.
+- [**Edita els fitxers adjunts**](./edit-attachments): consulta o elimina els fitxers adjunts del PDF.
+- [**Capes OCG del PDF**](./pdf-layers): consulta, activa o desactiva, afegeix i elimina capes OCG del PDF.
+- [**Divideix PDF**](./split-pdf): extreu un interval de pàgines en un PDF nou.
+- [**Divideix pàgines**](./divide-pages): divideix les pàgines horitzontalment o verticalment.
+- [**Extreu pàgines**](./extract-pages): desa una selecció de pàgines com a fitxers nous.
+- [**Suprimeix pàgines**](./delete-pages): elimina pàgines concretes del document.
+- [**Afegeix una pàgina en blanc**](./add-blank-page): insereix una pàgina buida en qualsevol lloc del PDF.
+- [**Inverteix l'ordre de les pàgines**](./reverse-pages): inverteix l'ordre de totes les pàgines del document.
+- [**Gira PDF**](./rotate-pdf): gira les pàgines en increments de 90 graus.
+- [**Gira amb un angle personalitzat**](./rotate-custom): gira les pàgines amb qualsevol angle personalitzat.
+- [**PDF amb diverses pàgines per full**](./n-up-pdf): disposa diverses pàgines en un sol full.
+- [**Fullet PDF**](./pdf-booklet): reorganitza les pàgines per imprimir un fullet a doble cara.
+- [**Combina en una única pàgina**](./combine-single-page): uneix totes les pàgines en un únic desplaçament continu.
+- [**Visualitza les metadades**](./view-metadata): inspecciona les propietats ocultes del PDF.
+- [**Edita les metadades**](./edit-metadata): canvia l'autor, el títol i altres propietats.
+- [**PDF a ZIP**](./pdf-to-zip): empaqueta diversos fitxers PDF en un arxiu ZIP.
+- [**Compara PDF**](./compare-pdfs): compara dos PDF un al costat de l'altre.
+- [**Divideix PDF en format pòster**](./posterize-pdf): divideix una pàgina gran en diverses pàgines més petites.
+
+
+
+---
+
+## Optimitza i repara
+
+Comprimeix, corregeix i optimitza els PDF per a un millor rendiment i compatibilitat.
+
+
+
+- [**Comprimeix PDF**](./compress-pdf): redueix la mida del fitxer del PDF.
+- [**PDF a PDF/A**](./pdf-to-pdfa): converteix el PDF a PDF/A per a l'arxiu a llarg termini.
+- [**Uniformitza la mida de pàgina**](./fix-page-size): uniformitza totes les pàgines a la mateixa mida.
+- [**Linealitza PDF**](./linearize-pdf): optimitza el PDF per a una visualització web ràpida.
+- [**Dimensions de pàgina**](./page-dimensions): analitza la mida, l'orientació i les unitats de les pàgines.
+- [**Elimina les restriccions**](./remove-restrictions): elimina la protecció amb contrasenya i les restriccions de seguretat.
+- [**Repara PDF**](./repair-pdf): recupera dades de fitxers PDF corruptes o danyats.
+- [**Rasteritza PDF**](./rasterize-pdf): converteix el PDF en un PDF basat en imatges. Aplana les capes i elimina el text seleccionable.
+- [**Redreça PDF**](./deskew-pdf): redreça automàticament les pàgines escanejades inclinades amb OpenCV.
+- [**Converteix tipus de lletra en contorns**](./font-to-outline): converteix tots els tipus de lletra en contorns vectorials per a una renderització coherent.
+
+
+
+---
+
+## Protegeix PDF
+
+Protegeix, xifra i controla l'accés als teus documents PDF.
+
+
+
+- [**Xifra PDF**](./protect-pdf): bloqueja el PDF afegint-hi una contrasenya.
+- [**Neteja PDF**](./sanitize-pdf): elimina metadades, anotacions, scripts i més.
+- [**Desxifra PDF**](./unlock-pdf): desbloqueja el PDF eliminant-ne la protecció amb contrasenya.
+- [**Aplana PDF**](./flatten-pdf): fes que els camps de formulari i les anotacions no es puguin editar.
+- [**Elimina les metadades**](./remove-metadata): elimina les dades ocultes del PDF.
+- [**Canvia els permisos**](./change-permissions): defineix o canvia els permisos d'usuari d'un PDF.
+- [**Signatura digital de PDF**](./digital-sign-pdf): afegeix una signatura digital criptogràfica amb certificats X.509.
+- [**Valida la signatura d'un PDF**](./validate-signature-pdf): verifica les signatures digitals i consulta els detalls del certificat.
+
+
diff --git a/docs/ca/tools/invert-colors.md b/docs/ca/tools/invert-colors.md
new file mode 100644
index 00000000..253dfb54
--- /dev/null
+++ b/docs/ca/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Inverteix els colors
+description: Inverteix tots els colors del PDF per crear una versió en mode fosc de qualsevol document.
+---
+
+# Inverteix els colors
+
+Canvia cada color del PDF pel seu invers. Els fons blancs passen a ser negres, el text negre passa a ser blanc i la resta de colors es converteixen en els seus complementaris. És la manera més ràpida de crear una versió en «mode fosc» de qualsevol PDF.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. Fes clic a **Inverteix els colors** per processar-lo.
+3. El PDF invertit es baixa automàticament.
+
+No hi ha cap paràmetre addicional. L'eina renderitza cada pàgina com a imatge, inverteix el color de tots els píxels i torna a muntar el resultat en un PDF nou.
+
+## Funcionalitats
+
+- Inversió de colors amb un sol clic per a totes les pàgines
+- Processa totes les pàgines del document
+- Manté les dimensions i el disseny originals de la pàgina
+- Funciona amb qualsevol PDF, sigui quin sigui el tipus de contingut (text, imatges o mixt)
+
+## Casos d'ús
+
+- Crear versions en mode fosc de llibres de text o manuals per llegir còmodament de nit
+- Preparar versions d'alt contrast dels documents per a l'accessibilitat
+- Invertir documents escanejats que es van capturar amb una exposició incorrecta
+- Generar versions en negatiu de PDF plens d'imatges per a l'anàlisi visual
+
+## Consells
+
+- Com que l'eina rasteritza les pàgines per aplicar l'efecte, el resultat és basat en imatges. El text ja no es podrà seleccionar ni cercar. Si necessites text cercable després de la inversió, passa el resultat per una eina d'OCR.
+- Per a ajustos de color més detallats (brillantor, contrast, saturació), fes servir l'eina [Ajusta els colors](./adjust-colors).
+- Els PDF grans amb moltes pàgines poden trigar més a processar-se, ja que cada pàgina es renderitza i s'inverteix per separat.
+
+## Eines relacionades
+
+- [Ajusta els colors](./adjust-colors)
+- [Color de fons](./background-color)
+- [Efecte d'escàner](./scanner-effect)
diff --git a/docs/ca/tools/jpg-to-pdf.md b/docs/ca/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..3c94090e
--- /dev/null
+++ b/docs/ca/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG a PDF
+description: Converteix una o més imatges JPG, JPEG i JPEG 2000 en un únic fitxer PDF directament al navegador.
+---
+
+# JPG a PDF
+
+Converteix imatges JPG en un PDF net. Puja un fitxer o diversos JPG alhora: cada imatge es converteix en una pàgina a mida completa del document resultant.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers JPG. Es pot seleccionar més d'un fitxer.
+2. Revisa els fitxers pujats. Fes servir la icona de la paperera per eliminar-ne de concrets, o fes clic a **Afegeix més fitxers** per afegir-ne a la llista.
+3. Selecciona un nivell de **Qualitat del PDF**.
+4. Fes clic a **Converteix a PDF**. L'eina comprimeix les imatges segons la qualitat triada, les converteix amb el motor PyMuPDF i baixa `from_jpgs.pdf`.
+
+## Opcions
+
+**Qualitat del PDF** ajusta la compressió que s'aplica a cada imatge abans d'incrustar-la al PDF:
+
+- **Alta qualitat**: conserva el màxim detall. Fes-la servir per a fotografia o impressió.
+- **Qualitat mitjana** (per defecte): un bon equilibri entre nitidesa i mida del fitxer.
+- **Baixa qualitat**: compressió agressiva per obtenir el resultat més petit.
+
+## Casos d'ús
+
+- Convertir en un únic PDF per presentar documents escanejats desats com a JPG
+- Empaquetar fotos de productes en un catàleg per als clients
+- Convertir imatges mèdiques o de satèl·lit en JPEG 2000 en un PDF portàtil
+- Crear un àlbum de fotos imprimible a partir d'exportacions de la càmera
+
+## Consells
+
+- Els fitxers JPEG 2000 (`.jp2`, `.jpx`) són totalment compatibles, no només el JPEG estàndard. És útil per a imatgeria mèdica i dades geoespacials.
+- Si els teus JPG provenen de la càmera d'un mòbil, la qualitat mitjana sol produir un fitxer entre un 40 % i un 60 % més petit que l'alta, sense cap diferència visible a la pantalla.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [WebP a PDF](./webp-to-pdf)
diff --git a/docs/ca/tools/json-to-pdf.md b/docs/ca/tools/json-to-pdf.md
new file mode 100644
index 00000000..877e26d0
--- /dev/null
+++ b/docs/ca/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON a PDF
+description: Reconstrueix fitxers PDF a partir del format JSON de BentoPDF. Converteix les exportacions JSON de nou en els documents PDF originals.
+---
+
+# JSON a PDF
+
+Reconstrueix documents PDF a partir de fitxers JSON creats prèviament amb l'eina **PDF a JSON** de BentoPDF. És una eina de conversió d'anada i tornada: agafa la representació estructurada en JSON d'un PDF i en reconstrueix el document original.
+
+::: warning
+Aquesta eina només accepta fitxers JSON generats pel convertidor PDF a JSON de BentoPDF. Els fitxers JSON estàndard d'API, bases de dades o altres eines no són compatibles.
+:::
+
+## Formats compatibles
+
+| Entrada | Descripció |
+| :------ | :------------------------------------------------------- |
+| `.json` | Fitxers JSON exportats per l'eina PDF a JSON de BentoPDF |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi un o més fitxers JSON.
+2. La llista de fitxers mostra cada fitxer seleccionat amb la seva mida.
+3. Fes clic a **Converteix a PDF**. L'eina processa tots els fitxers amb un Web Worker i el motor CPDF.
+4. El resultat es baixa com a `jsons-to-pdf.zip`, que conté un PDF per cada fitxer JSON d'entrada.
+
+La conversió s'executa en un Web Worker en segon pla, de manera que la interfície continua responent bé fins i tot amb fitxers grans.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. L'estructura del JSON determina completament el PDF resultant.
+
+## Sortida
+
+Quan converteixes diversos fitxers JSON, els resultats es lliuren en un arxiu ZIP. Cada PDF rep el nom del seu fitxer JSON d'origen (p. ex., `report.json` passa a ser `report.pdf`).
+
+## Casos d'ús
+
+- Restaurar PDF des d'una còpia de seguretat o un flux d'arxiu basat en JSON
+- Fer passar un PDF per JSON per inspeccionar-lo i tornar-lo a convertir en PDF
+- Reconstruir documents després de modificacions programàtiques de l'estructura JSON
+- Verificar que una exportació de PDF a JSON ha capturat tot el contingut del document tornant-la a convertir
+
+## Consells
+
+- Si necessites convertir dades JSON arbitràries (com respostes d'API o fitxers de configuració) en un PDF amb format, l'eina [Text a PDF](./txt-to-pdf) és més adequada. Enganxa el JSON com a text i es renderitzarà amb el format correcte.
+- El motor WebAssembly CPDF ha d'estar disponible perquè aquesta eina funcioni. Les instàncies autoallotjades necessiten tenir configurats els fitxers WASM de CPDF.
+
+## Eines relacionades
+
+- [Text a PDF](./txt-to-pdf)
+- [Markdown a PDF](./markdown-to-pdf)
+- [CSV a PDF](./csv-to-pdf)
diff --git a/docs/ca/tools/linearize-pdf.md b/docs/ca/tools/linearize-pdf.md
new file mode 100644
index 00000000..5ad54d30
--- /dev/null
+++ b/docs/ca/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Linealitza PDF
+description: Optimitza els fitxers PDF per a una visualització web ràpida amb càrrega progressiva. També conegut com a optimització «Fast Web View».
+---
+
+# Linealitza PDF
+
+La linealització reestructura un PDF perquè la primera pàgina es pugui mostrar abans que s'hagi baixat tot el fitxer. Adobe ho anomena «Fast Web View». Si publiques PDF en un lloc web o els serveixes mitjançant un portal de documents, la linealització fa que s'obrin molt més ràpid.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF.
+2. Fes clic a **Linealitza PDF**.
+3. Baixa els resultats en un arxiu ZIP que conté tots els fitxers linealitzats.
+
+No hi ha cap paràmetre per configurar. L'eina fa servir l'indicador `--linearize` de QPDF, que reorganitza l'estructura interna del PDF sense alterar-ne el contingut visual.
+
+## Què fa la linealització
+
+- Reordena els objectes del PDF perquè les dades de la primera pàgina apareguin al principi del fitxer
+- Afegeix un diccionari de linealització i taules de pistes perquè els visors sàpiguen on trobar cada pàgina
+- Permet les peticions per intervals de bytes: un navegador pot obtenir només la primera pàgina sense baixar tot el fitxer
+- Neteja la taula de referències creuades per a un accés aleatori eficient
+
+## Funcionalitats
+
+- Processament per lots de diversos PDF en una sola operació
+- El resultat conserva tot el contingut, els tipus de lletra, les imatges i els elements interactius
+- Fa servir QPDF (WebAssembly) per a una linealització fiable i conforme a l'estàndard
+- Els resultats s'empaqueten en un ZIP per baixar-los fàcilment
+
+## Casos d'ús
+
+- Publicar informes en PDF en un lloc web on els usuaris esperen que les pàgines es mostrin a l'instant
+- Incrustar PDF en aplicacions web amb visors al navegador
+- Publicar catàlegs o manuals en PDF als quals s'accedeix amb connexions mòbils lentes
+- Preparar documents per a xarxes de distribució de contingut (CDN) que admeten el servei per intervals de bytes
+
+## Consells
+
+- Linealitza quan hagis acabat totes les altres edicions. Qualsevol modificació posterior (fusionar, afegir pàgines) trencarà la linealització.
+- Combina-ho amb Comprimeix PDF per obtenir els PDF més petits i que es carreguin més ràpid possible.
+- La linealització afegeix una petita quantitat de pes al fitxer (normalment menys d'un 1 %).
+
+## Eines relacionades
+
+- [Comprimeix PDF](./compress-pdf): redueix la mida del fitxer abans de linealitzar-lo
+- [Repara PDF](./repair-pdf): corregeix els problemes estructurals que impedeixen la linealització
+- [Elimina les metadades](./remove-metadata): elimina les metadades abans de publicar en línia
diff --git a/docs/ca/tools/markdown-to-pdf.md b/docs/ca/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..8c70598f
--- /dev/null
+++ b/docs/ca/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown a PDF
+description: Escriu o enganxa Markdown i exporta'l com a PDF amb un format professional, amb vista prèvia en directe i ressaltat de sintaxi.
+---
+
+# Markdown a PDF
+
+Un editor de Markdown complet amb vista prèvia en directe i exportació a PDF amb un sol clic. Escriu des de zero, puja un fitxer `.md` existent o enganxa contingut del porta-retalls. L'editor renderitza el Markdown en temps real i exporta un PDF amb estil mitjançant el motor d'impressió integrat al navegador.
+
+## Formats compatibles
+
+| Entrada | Descripció |
+| :-------------- | :----------------------------------- |
+| Fitxers `.md` | Puja'ls amb el botó Puja |
+| Entrada directa | Escriu o enganxa al camp de l'editor |
+
+## Com funciona
+
+1. Obre l'eina Markdown a PDF. L'editor es carrega amb una vista dividida: el codi Markdown a l'esquerra i la vista prèvia renderitzada a la dreta.
+2. Escriu el Markdown, enganxa'l o fes clic a **Puja** per carregar un fitxer `.md`.
+3. Canvia entre el tema clar i el fosc amb el control lliscant de tema de la barra d'eines.
+4. Fes clic a **Exporta PDF** (o prem `Ctrl/Cmd + S`) per generar un PDF mitjançant el diàleg d'impressió del navegador.
+
+## Funcionalitats
+
+L'editor admet un conjunt ampli de funcionalitats de Markdown més enllà de les bàsiques:
+
+- **Markdown estàndard**: encapçalaments, negreta, cursiva, enllaços, imatges, llistes, cites, línies horitzontals
+- **Blocs de codi** amb ressaltat de sintaxi per a més de 15 llenguatges (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash i més)
+- **Diagrames Mermaid**: els diagrames de flux, de seqüència, ER i altres tipus de gràfics Mermaid es renderitzen directament a la vista prèvia
+- **Taules** amb la sintaxi estàndard de taules de Markdown
+- **Llistes de tasques** amb caselles de selecció
+- **Notes a peu de pàgina**, **subíndexs**, **superíndexs**
+- **Llistes de definicions**, **abreviatures**
+- Compatibilitat amb **emojis** (`:smile:` es renderitza com a emoji)
+- **Ressaltats** (`==marked text==`) i **insercions** (`++inserted text++`)
+- **URL enllaçades automàticament**: les URL soltes es converteixen en enllaços clicables
+- Generació de **taula de continguts**
+- **Enllaços d'àncora** als encapçalaments
+
+## Casos d'ús
+
+- Escriure documentació de projectes i exportar un PDF acurat per als interessats
+- Crear informes tècnics amb exemples de codi i diagrames d'arquitectura Mermaid
+- Convertir un README de GitHub en un PDF per utilitzar-lo sense connexió o imprimir-lo
+- Redactar una proposta o una especificació amb llistes de tasques i taules
+- Generar un full de resum amb estil a partir d'apunts de classe escrits en Markdown
+
+## Consells
+
+- El PDF resultant es genera amb la funció d'imprimir a PDF del navegador. A Chrome, pots personalitzar els marges i l'escala al diàleg d'impressió abans de desar.
+- Els diagrames Mermaid es renderitzen a la vista prèvia, però poden necessitar un moment per inicialitzar-se el primer cop.
+- Fes servir `Ctrl/Cmd + S` com a drecera de teclat per exportar sense haver d'anar al botó.
+
+## Eines relacionades
+
+- [Text a PDF](./txt-to-pdf)
+- [Word a PDF](./word-to-pdf)
+- [JSON a PDF](./json-to-pdf)
diff --git a/docs/ca/tools/merge-pdf.md b/docs/ca/tools/merge-pdf.md
new file mode 100644
index 00000000..4bd6bc51
--- /dev/null
+++ b/docs/ca/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Fusiona PDF
+description: Combina diversos fitxers PDF en un sol document amb reordenació arrossegant i deixant anar i control a nivell de pàgina.
+---
+
+# Fusiona PDF
+
+Combina diversos fitxers PDF en un únic document. Pots fusionar fitxers sencers en un ordre concret o canviar al mode Pàgina per tenir un control detallat de cada pàgina de tots els PDF pujats.
+
+## Com funciona
+
+1. Puja dos o més fitxers PDF fent clic a la zona de càrrega o arrossegant-hi els fitxers.
+2. Tria entre el **Mode Fitxer** i el **Mode Pàgina** amb l'interruptor de la part superior.
+3. Al Mode Fitxer, arrossega els fitxers per reordenar-los i, si vols, indica intervals de pàgines (p. ex., `1-3, 5`) per a cadascun. Deixa l'interval en blanc per incloure-hi totes les pàgines.
+4. Al Mode Pàgina, arrossega i deixa anar les miniatures de cada pàgina per construir la seqüència exacta.
+5. Fes clic a **Fusiona PDF** per combinar-ho tot en un sol fitxer. El PDF fusionat es baixa automàticament.
+
+## Funcionalitats
+
+- Dos modes de fusió: el Mode Fitxer per combinar fitxers sencers ràpidament i el Mode Pàgina per controlar cada pàgina
+- Reordenació arrossegant i deixant anar en tots dos modes, amb animacions fluides
+- La sintaxi d'intervals de pàgines (p. ex., `1-3, 5, 8-10`) permet triar pàgines concretes sense canviar al Mode Pàgina
+- Les miniatures de pàgina es carreguen a mesura que cal, de manera que la interfície continua responent bé amb documents grans
+- Sense límit de nombre de fitxers ni de pàgines totals
+- Conserva la qualitat original del PDF, sense tornar a codificar res
+
+## Opcions
+
+| Opció | Descripció |
+| ------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| **Mode Fitxer** | Fusiona fitxers sencers en un ordre personalitzat, amb filtres opcionals d'interval de pàgines per fitxer |
+| **Mode Pàgina** | Quadrícula visual amb totes les pàgines de tots els fitxers: arrossega les miniatures per construir la seqüència exacta |
+| **Camp de pàgines** | Camp de text per fitxer que accepta intervals com `1-3, 5` per incloure només pàgines concretes |
+
+## Casos d'ús
+
+- Combinar PDF de capítols independents en un sol llibre o informe
+- Fusionar una carta de presentació i un currículum en un únic document de candidatura
+- Reunir pàgines concretes de diversos documents d'origen en un fitxer consolidat
+- Muntar tiquets o factures escanejats en un únic PDF d'arxiu
+- Crear un full de resum d'una presentació a partir de diapositives de diverses presentacions
+
+## Consells
+
+- Fes servir el Mode Pàgina quan necessitis intercalar pàgines de fitxers diferents en lloc d'afegir un fitxer darrere de l'altre.
+- Pots afegir més fitxers després de la càrrega inicial amb el botó **Afegeix més fitxers** sense perdre l'ordenació actual.
+- Els intervals de pàgines comencen a 1, de manera que `1` fa referència a la primera pàgina d'aquell fitxer.
+
+## Eines relacionades
+
+- [Divideix PDF](./split-pdf)
+- [Duplica i organitza](./organize-pdf)
+- [Alterna i barreja pàgines](./alternate-merge)
+- [Suprimeix pàgines](./delete-pages)
diff --git a/docs/ca/tools/mobi-to-pdf.md b/docs/ca/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..cb7e505a
--- /dev/null
+++ b/docs/ca/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI a PDF
+description: Converteix fitxers de llibre electrònic MOBI a PDF directament al navegador. Gratuït, privat i sense pujar fitxers.
+---
+
+# MOBI a PDF
+
+Converteix llibres electrònics MOBI d'Amazon Kindle en documents PDF. Els fitxers MOBI estan lligats als dispositius i aplicacions Kindle, la qual cosa dificulta llegir-los en altres llocs. Convertir-los a PDF et dona una versió portàtil que pots obrir en qualsevol dispositiu o imprimir.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :----- | :------- | :---------------------------------------------- |
+| MOBI | `.mobi` | Format de llibre electrònic Kindle (Mobipocket) |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi un o més fitxers MOBI.
+2. Revisa la llista de fitxers. Elimina els que no vulguis amb la icona de la paperera, o fes servir **Afegeix més fitxers** per incloure més llibres electrònics.
+3. Fes clic a **Converteix a PDF**. El motor PyMuPDF analitza l'estructura del MOBI i renderitza cada pàgina com a contingut de PDF.
+4. Si és un sol fitxer, es baixa com a PDF. Si en converteixes diversos, obtens un arxiu ZIP anomenat `mobi-converted.zip`.
+
+## Opcions
+
+No calen paràmetres addicionals. La conversió conserva el contingut de text, el format i les imatges incrustades del fitxer MOBI original.
+
+## Casos d'ús
+
+- Llegir contingut comprat a Kindle en un lector electrònic que no sigui Kindle i només admeti PDF
+- Imprimir capítols d'un llibre electrònic per estudiar-los o anotar-los sense connexió
+- Arxivar la teva biblioteca personal de llibres electrònics en un format universal
+- Compartir fragments amb algú que no té l'aplicació Kindle instal·lada
+
+## Consells
+
+- Els fitxers MOBI protegits amb DRM no es poden convertir. L'eina només funciona amb fitxers MOBI sense DRM.
+- Els llibres electrònics grans amb moltes imatges incrustades poden trigar uns segons més a processar-se, ja que tot es fa al navegador.
+
+## Eines relacionades
+
+- [EPUB a PDF](./epub-to-pdf)
+- [FB2 a PDF](./fb2-to-pdf)
+- [CBZ a PDF](./cbz-to-pdf)
diff --git a/docs/ca/tools/n-up-pdf.md b/docs/ca/tools/n-up-pdf.md
new file mode 100644
index 00000000..5f2d56fd
--- /dev/null
+++ b/docs/ca/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF amb diverses pàgines per full
+description: Disposa diverses pàgines d'un PDF en un sol full amb una quadrícula per a una impressió compacta.
+---
+
+# PDF amb diverses pàgines per full
+
+Col·loca diverses pàgines en un sol full amb una disposició en quadrícula. Així es redueix el nombre de pàgines impreses, ja que hi caben 2, 4, 6, 8, 9 o 16 pàgines per full. L'eina s'encarrega de l'escalat, el posicionament i la configuració opcional de la mida de pàgina.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Selecciona el nombre de pàgines per full (el valor «N»): 2, 4, 6, 8, 9 o 16.
+3. Tria la mida de pàgina de sortida (per defecte, A4) i l'orientació.
+4. Si vols, configura l'espaiat, el color de la vora i el color de fons.
+5. Fes clic al botó de processar. L'eina escala cada pàgina i les distribueix en fulls nous.
+
+## Funcionalitats
+
+- Disposicions en quadrícula: 2, 4, 6, 8, 9 i 16 pàgines per full
+- Mida de pàgina de sortida i orientació configurables
+- Espaiat opcional entre les pàgines disposades
+- Configuració del color de fons i de les vores
+- Manté la proporció de les pàgines originals en escalar-les perquè hi càpiguen
+
+## Opcions
+
+| Opció | Descripció |
+| -------------------- | ---------------------------------------------------------------------------------- |
+| **Pàgines per full** | Nombre de pàgines originals que caben a cada pàgina de sortida (2, 4, 6, 8, 9, 16) |
+| **Mida de pàgina** | Mida del full de sortida (A4, Letter, Legal, etc.) |
+| **Orientació** | Vertical o horitzontal per al full de sortida |
+| **Espaiat** | Espai en punts entre les pàgines disposades |
+| **Color de fons** | Color d'emplenament del fons del full de sortida |
+| **Color de la vora** | Color de les vores al voltant de cada pàgina disposada |
+
+## Casos d'ús
+
+- Imprimir resums amb 4 diapositives per pàgina per estalviar paper
+- Crear fulls d'estudi amb diverses pàgines de referència en un sol full
+- Produir arxius de documents compactes per arxivar
+- Generar fulls de miniatures per tenir una visió general d'un document llarg
+
+## Consells
+
+- L'orientació horitzontal sol anar millor per a les disposicions de 2 pàgines per full, mentre que la vertical acostuma a ser la millor per a 4 o més.
+- Augmentar l'espaiat millora la llegibilitat, però redueix l'àrea disponible per a cada pàgina disposada.
+- Per a l'operació inversa (dividir una pàgina en diverses), consulta [Divideix PDF en format pòster](./posterize-pdf).
+
+## Eines relacionades
+
+- [Divideix PDF en format pòster](./posterize-pdf)
+- [Fullet PDF](./pdf-booklet)
+- [Combina en una única pàgina](./combine-single-page)
diff --git a/docs/ca/tools/ocr-pdf.md b/docs/ca/tools/ocr-pdf.md
new file mode 100644
index 00000000..8a56b01d
--- /dev/null
+++ b/docs/ca/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Reconeixement OCR de PDF
+description: Fes que els PDF escanejats es puguin cercar i copiar amb Tesseract OCR, amb compatibilitat amb diversos idiomes i filtratge de caràcters.
+---
+
+# Reconeixement OCR de PDF
+
+Converteix documents escanejats en PDF en què es pot cercar i copiar. L'eina fa servir Tesseract OCR per reconèixer el text de les imatges i superposa una capa de text invisible sobre les pàgines originals, de manera que es conserva l'aspecte visual i el contingut es pot cercar completament.
+
+## Com funciona
+
+1. Puja un PDF escanejat o basat en imatges.
+2. Selecciona un o més idiomes presents al document a la llista d'idiomes amb cercador.
+3. Si vols, ajusta la configuració avançada (resolució, binarització, llista blanca).
+4. Fes clic a **Inicia l'OCR** i segueix el progrés a la barra de progrés en temps real.
+5. Quan acabi, revisa el text extret i baixa el PDF cercable o un fitxer `.txt` de text pla.
+
+## Funcionalitats
+
+- OCR multilingüe amb un selector d'idiomes amb cercador
+- La capa de text invisible conserva l'aspecte original del document
+- Barra de progrés en temps real i registre de sortida durant el processament
+- Baixa els resultats com a PDF cercable o com a fitxer de text pla
+- Copia el text extret directament al porta-retalls
+- Tres nivells de resolució per equilibrar velocitat i precisió
+
+## Opcions
+
+| Paràmetre | Valors | Per defecte | Finalitat |
+| --------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------- |
+| **Resolució** | Estàndard (192 DPI), Alta (288 DPI), Ultra (384 DPI) | Alta | Una resolució més alta millora la precisió amb text petit, però triga més |
+| **Binaritza la imatge** | Activat / Desactivat | Desactivat | Millora el contrast d'escanejos nets convertint-los a blanc i negre |
+| **Preajust de la llista blanca de caràcters** | Cap, Alfanumèric, Números i moneda, Només lletres, Només números, Factura, Formularis, Personalitzat | Cap | Restringeix els caràcters reconeguts per millorar la precisió en tipus de document concrets |
+| **Llista blanca de caràcters** | Text lliure | Buit | Conjunt de caràcters manual quan el preajust és Personalitzat |
+
+## Casos d'ús
+
+- Fer que els contractes i les factures escanejats es puguin cercar per poder fer Ctrl+F
+- Extreure text de documents fotografiats o de registres antics en paper
+- Processar tiquets amb el preajust Factura per capturar amb precisió imports i dates
+- Crear PDF accessibles a partir d'escanejos que només contenen imatges per complir requisits normatius
+- Extreure per lots el contingut de text de llibres o manuals escanejats
+
+## Consells
+
+- Selecciona diversos idiomes si el document conté contingut en llengües mixtes (p. ex., capçaleres en anglès amb text en japonès).
+- Fes servir l'opció de binarització en documents amb text esvaït o de poc contrast: pot millorar considerablement la precisió del reconeixement.
+- Els preajustos Factura i Formularis de la llista blanca redueixen dràsticament els falsos positius en documents estructurats en ignorar les formes de caràcter irrellevants.
+
+## Eines relacionades
+
+- [Extreu taules de PDF](./extract-tables)
+- [Fusiona PDF](./merge-pdf)
+- [Comprimeix PDF](./compress-pdf)
diff --git a/docs/ca/tools/odg-to-pdf.md b/docs/ca/tools/odg-to-pdf.md
new file mode 100644
index 00000000..c5409b64
--- /dev/null
+++ b/docs/ca/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG a PDF
+description: Converteix fitxers de LibreOffice Draw (ODG) a PDF al navegador. Gratuït, sense pujar res i totalment privat.
+---
+
+# ODG a PDF
+
+Converteix fitxers OpenDocument Graphics en PDF. ODG és el format natiu de LibreOffice Draw i s'utilitza per a diagrames, diagrames de flux i il·lustracions vectorials. Convertir-los a PDF facilita compartir aquests dibuixos, imprimir-los i incrustar-los en altres documents.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :-------------------- | :------- | :-------------------------------------------- |
+| OpenDocument Graphics | `.odg` | Fitxers de LibreOffice Draw / OpenOffice Draw |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers ODG. Pots afegir-ne diversos alhora.
+2. Revisa la llista de fitxers. Elimina entrades concretes amb la icona de la paperera, o fes clic a **Afegeix més fitxers** per afegir més dibuixos.
+3. Fes clic a **Converteix a PDF**. Un motor basat en LibreOffice es carrega al navegador i converteix cada fitxer ODG, conservant els gràfics vectorials, les formes i el text.
+4. Si és un sol fitxer, es baixa directament com a PDF. Si són diversos, es genera un arxiu ZIP anomenat `odg-to-pdf.zip`.
+
+## Opcions
+
+No calen paràmetres addicionals. La conversió conserva les dimensions de pàgina, les formes, els connectors i els quadres de text originals de l'ODG.
+
+## Casos d'ús
+
+- Compartir diagrames de LibreOffice Draw amb clients que no tenen LibreOffice instal·lat
+- Imprimir diagrames de flux i diagrames de xarxa creats amb Draw
+- Incloure il·lustracions ODG en un informe o una presentació com a PDF incrustats
+- Arxivar dibuixos tècnics en un format que continuarà sent llegible durant dècades
+
+## Consells
+
+- Els elements vectorials es conserven com a vectors al PDF resultant, de manera que escalen netament a qualsevol mida d'impressió.
+- El motor de LibreOffice triga una mica a inicialitzar-se el primer cop. Les conversions posteriors dins de la mateixa sessió són més ràpides.
+
+## Eines relacionades
+
+- [ODS a PDF](./ods-to-pdf)
+- [ODP a PDF](./odp-to-pdf)
+- [VSD a PDF](./vsd-to-pdf)
diff --git a/docs/ca/tools/odp-to-pdf.md b/docs/ca/tools/odp-to-pdf.md
new file mode 100644
index 00000000..4a26143d
--- /dev/null
+++ b/docs/ca/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP a PDF
+description: Converteix presentacions de LibreOffice Impress (ODP) a PDF al navegador. Gratuït, privat i sense pujar res.
+---
+
+# ODP a PDF
+
+Converteix fitxers OpenDocument Presentation en PDF. ODP és el format natiu de LibreOffice Impress i una exportació estàndard de Google Slides. Convertir les presentacions a PDF permet que qualsevol persona les pugui veure sense programari de presentacions, i les diapositives s'imprimeixen netament.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :------------------------ | :------- | :------------------------------------------------ |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / exportació de Google Slides |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega-hi els fitxers ODP. Pots seleccionar diverses presentacions alhora.
+2. Revisa la llista de fitxers. Elimina entrades amb la icona de la paperera, o fes servir **Afegeix més fitxers** per incloure més presentacions.
+3. Fes clic a **Converteix a PDF**. El motor basat en LibreOffice processa cada presentació i genera un PDF on cada diapositiva és una pàgina.
+4. Si és un sol fitxer, es baixa com a PDF. Si són diversos, es lliuren en un arxiu ZIP anomenat `odp-to-pdf.zip`.
+
+## Opcions
+
+No hi ha res per configurar. Cada diapositiva es renderitza a les seves dimensions originals, conservant el text, les imatges, les formes i els fons de les diapositives.
+
+## Casos d'ús
+
+- Distribuir una presentació al públic com a PDF de resum
+- Compartir exportacions de Google Slides amb persones que prefereixen el PDF a l'ODP
+- Arxivar xerrades de congressos i classes en un format de només lectura
+- Imprimir presentacions per a tallers presencials
+
+## Consells
+
+- Les transicions i les animacions de les diapositives són funcions purament visuals que no passen al PDF, però tot el contingut estàtic es renderitza correctament.
+- Les notes de l'orador no s'inclouen al PDF resultant. Si en necessites, exporta-les per separat des del teu programari de presentacions.
+- Com les altres eines basades en LibreOffice, el motor es carrega el primer cop que s'usa i es conserva a la memòria cau durant la sessió.
+
+## Eines relacionades
+
+- [ODG a PDF](./odg-to-pdf)
+- [ODS a PDF](./ods-to-pdf)
+- [PUB a PDF](./pub-to-pdf)
diff --git a/docs/ca/tools/ods-to-pdf.md b/docs/ca/tools/ods-to-pdf.md
new file mode 100644
index 00000000..d5eb9a1a
--- /dev/null
+++ b/docs/ca/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS a PDF
+description: Converteix fulls de càlcul de LibreOffice Calc (ODS) a PDF al navegador. Gratuït, privat i sense registre.
+---
+
+# ODS a PDF
+
+Converteix fitxers OpenDocument Spreadsheet a PDF. ODS és el format natiu de LibreOffice Calc i una exportació habitual de Google Sheets. Aquesta eina renderitza les dades, el format i els gràfics del full de càlcul en un PDF paginat que pots imprimir o compartir.
+
+## Formats compatibles
+
+| Format | Extensió | Notes |
+| :----------------------- | :------- | :--------------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | Exportació de LibreOffice Calc / Google Sheets |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega-hi els teus fitxers ODS. Admet diversos fitxers.
+2. Revisa la llista de fitxers. Utilitza la icona de la paperera per eliminar fitxers, o fes clic a **Afegeix més fitxers** per ampliar el lot.
+3. Fes clic a **Converteix a PDF**. El motor basat en LibreOffice es carrega al navegador i renderitza cada full de càlcul en pàgines PDF.
+4. Un sol full de càlcul es baixa com a PDF. Si són diversos fitxers, s'empaqueten a `ods-to-pdf.zip`.
+
+## Opcions
+
+No cal cap configuració. El convertidor aplica al PDF el disseny d'impressió, el format de les cel·les i l'amplada de les columnes del full de càlcul.
+
+## Casos d'ús
+
+- Compartir un pressupost o un informe de LibreOffice Calc amb algú que només accepta PDF
+- Imprimir una exportació de Google Sheets que s'ha baixat com a ODS
+- Arxivar registres financers en un format no editable
+- Presentar formularis o fulls d'hores basats en ODS com a documents de disseny fix
+
+## Consells
+
+- Si el full de càlcul té diversos fulls, tots s'inclouen al PDF.
+- Els fulls de càlcul molt amples poden ocupar diverses pàgines PDF en horitzontal. Si el disseny és important, considera ajustar l'amplada de les columnes al fitxer d'origen abans de convertir.
+- El motor de LibreOffice s'inicialitza en el primer ús. Les conversions posteriors de la mateixa sessió són més ràpides.
+
+## Eines relacionades
+
+- [ODG a PDF](./odg-to-pdf)
+- [ODP a PDF](./odp-to-pdf)
+- [XML a PDF](./xml-to-pdf)
diff --git a/docs/ca/tools/odt-to-pdf.md b/docs/ca/tools/odt-to-pdf.md
new file mode 100644
index 00000000..95f5868e
--- /dev/null
+++ b/docs/ca/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT a PDF
+description: Converteix fitxers OpenDocument Text (ODT) a PDF al navegador amb un motor basat en LibreOffice.
+---
+
+# ODT a PDF
+
+Converteix fitxers OpenDocument Text a PDF. ODT és el format natiu de LibreOffice Writer, Apache OpenOffice i altres processadors de textos de codi obert. Aquesta eina utilitza un motor LibreOffice al navegador per obtenir conversions precises que conserven el format, les taules, les imatges i els estils.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :---------------- | :--------- |
+| OpenDocument Text | `.odt` |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega-hi un o més fitxers ODT.
+2. Revisa la llista de fitxers. Afegeix-ne més o elimina els que no vulguis.
+3. Fes clic a **Converteix a PDF**. El motor de LibreOffice s'inicialitza (un indicador de progrés mostra l'estat de la càrrega) i després es converteix cada fitxer.
+4. Un sol fitxer es baixa directament com a PDF. Si són diversos, s'empaqueten a `odt-converted.zip`.
+
+## Opcions
+
+Aquesta eina no té cap configuració addicional. La conversió conserva el format del document original tan fidelment com és possible.
+
+## Sortida
+
+| Nombre d'entrades | Sortida |
+| :---------------- | :---------------------------------------------------- |
+| 1 fitxer | Baixada d'un sol PDF (p. ex., `document.pdf`) |
+| 2 o més fitxers | Arxiu ZIP (`odt-converted.zip`) amb un PDF per fitxer |
+
+## Casos d'ús
+
+- Convertir documents de LibreOffice Writer a PDF per compartir-los amb usuaris de Microsoft Office
+- Generar PDF llestos per imprimir a partir de treballs acadèmics escrits en format OpenDocument
+- Convertir en lot una carpeta de plantilles ODT a PDF per distribuir-les
+- Generar PDF a partir de fitxers ODT creats per sistemes automàtics de generació de documents
+
+## Consells
+
+- El motor de LibreOffice es carrega en el primer ús i es desa a la memòria cau per a les conversions posteriors. La primera càrrega triga uns segons; després, les conversions són ràpides.
+- Els documents complexos amb objectes OLE incrustats o tipus de lletra poc habituals poden renderitzar-se lleugerament diferent que a LibreOffice d'escriptori. Fes una prova amb un exemple abans de convertir en lot.
+- Per als documents de Word (`.doc`, `.docx`), utilitza l'eina [Word a PDF](./word-to-pdf), que també fa servir el motor de LibreOffice però accepta directament els formats de Microsoft.
+
+## Eines relacionades
+
+- [Word a PDF](./word-to-pdf)
+- [RTF a PDF](./rtf-to-pdf)
+- [Text a PDF](./txt-to-pdf)
diff --git a/docs/ca/tools/organize-pdf.md b/docs/ca/tools/organize-pdf.md
new file mode 100644
index 00000000..9a259625
--- /dev/null
+++ b/docs/ca/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplica i organitza
+description: Reordena, duplica i suprimeix pàgines d'un PDF amb miniatures d'arrossegar i deixar anar i un ordre de pàgines personalitzat.
+---
+
+# Duplica i organitza
+
+Reorganitza, duplica i elimina pàgines d'un PDF amb una interfície visual d'arrossegar i deixar anar. Cada pàgina apareix com a miniatura que pots moure, clonar o suprimir abans de desar el resultat com a fitxer nou.
+
+## Com funciona
+
+1. Carrega un únic fitxer PDF.
+2. L'eina renderitza una quadrícula de miniatures amb totes les pàgines.
+3. Arrossega les miniatures per reordenar les pàgines, fes clic al botó verd de duplicar per clonar una pàgina o al botó vermell de suprimir per eliminar-la.
+4. També pots introduir un ordre de pàgines personalitzat al camp de text (p. ex., `3, 1, 2, 4`) i fer clic a **Aplica** per reorganitzar totes les pàgines alhora.
+5. Fes clic al botó de processar per crear i baixar el PDF reorganitzat.
+
+## Característiques
+
+- Reordenació de pàgines arrossegant i deixant anar amb transicions animades
+- Botons de duplicar i suprimir per a cada pàgina
+- Camp d'ordre de pàgines personalitzat per a una reorganització precisa
+- Els números de pàgina s'actualitzen automàticament després de cada canvi
+- Impedeix suprimir l'última pàgina que queda
+
+## Casos d'ús
+
+- Moure una pàgina mal col·locada a la posició correcta d'un informe
+- Duplicar la pàgina d'un formulari per tenir diverses còpies en blanc en un sol fitxer
+- Eliminar pàgines d'esborrany o de reserva abans de distribuir un document
+- Invertir o barrejar l'ordre de les pàgines per preparar la impressió
+- Crear una seqüència de pàgines personalitzada sense tornar a fusionar fitxers separats
+
+## Consells
+
+- El camp d'ordre de pàgines personalitzat espera els números de pàgina originals separats per comes. Ha d'incloure cada pàgina exactament una vegada, sense ometre'n ni repetir-ne cap.
+- Després de duplicar una pàgina, les dues còpies fan referència al mateix índex de pàgina original. Reordenar qualsevol de les dues funciona de manera independent.
+- Per a operacions en bloc amb diversos fitxers o fluxos més avançats, considera l'[Eina PDF multifunció](./pdf-multi-tool).
+
+## Eines relacionades
+
+- [Fusiona PDF](./merge-pdf)
+- [Suprimeix pàgines](./delete-pages)
+- [Eina PDF multifunció](./pdf-multi-tool)
+- [Inverteix l'ordre de les pàgines](./reverse-pages)
diff --git a/docs/ca/tools/page-dimensions.md b/docs/ca/tools/page-dimensions.md
new file mode 100644
index 00000000..6b0d3212
--- /dev/null
+++ b/docs/ca/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Dimensions de pàgina
+description: Analitza les mides, les orientacions, les proporcions i la rotació de les pàgines d'un PDF. Detecta documents amb mides mixtes i exporta les dades a CSV.
+---
+
+# Dimensions de pàgina
+
+Una eina de diagnòstic que llegeix cada pàgina del PDF i en informa de les dimensions exactes, l'orientació, el nom de la mida estàndard, la proporció, l'àrea i la rotació. És útil per detectar pàgines de mides diferents abans d'imprimir o per documentar les propietats d'un PDF que has rebut.
+
+## Com funciona
+
+1. Carrega un fitxer PDF. L'anàlisi comença automàticament, sense cap botó per prémer.
+2. Un quadre de resum mostra el total de pàgines, el nombre de mides de pàgina úniques i si el document té mides mixtes.
+3. Consulta la taula completa de resultats amb els detalls de cada pàgina.
+4. Canvia les unitats de visualització entre punts, polzades, mil·límetres o píxels.
+5. Fes clic a **Exporta a CSV** per desar les dades.
+
+## Camps de l'informe
+
+| Columna | Descripció |
+| -------------- | ------------------------------------------------------ |
+| Pàg. núm. | Número de pàgina correlatiu |
+| Dimensions | Amplada x Alçada en la unitat seleccionada |
+| Mida estàndard | Nom coincident (A4, Letter, etc.) o "Personalitzada" |
+| Orientació | Vertical o Horitzontal |
+| Proporció | Relació entre amplada i alçada en decimal |
+| Àrea | Àrea de la pàgina en la unitat seleccionada al quadrat |
+| Rotació | Rotació de la pàgina en graus |
+
+## Característiques
+
+- Detecció automàtica de mides de paper estàndard (A3, A4, A5, Letter, Legal, Tabloid i més)
+- Avís de document amb mides mixtes amb el detall de quines mides apareixen i quantes pàgines n'utilitzen cadascuna
+- Conversió d'unitats entre punts, polzades, mil·límetres i píxels (a 96 PPI)
+- Exportació a CSV per utilitzar-la en fulls de càlcul o sistemes de documentació
+
+## Casos d'ús
+
+- Verificar que totes les pàgines són A4 abans de lliurar un document a una impremta
+- Diagnosticar per què un PDF fusionat s'imprimeix amb marges inesperats en algunes pàgines
+- Documentar el disseny de pàgina d'un gran arxiu de PDF per als registres de metadades
+- Identificar pàgines girades que cal corregir
+
+## Consells
+
+- Si el resum mostra "Mides mixtes", utilitza l'eina Uniformitza la mida de pàgina per estandarditzar abans d'imprimir.
+- El camp de rotació ajuda a identificar pàgines que es mostren correctament però tenen un atribut de rotació diferent de zero, cosa que pot causar problemes en alguns fluxos de treball.
+
+## Eines relacionades
+
+- [Uniformitza la mida de pàgina](./fix-page-size): estandarditza les pàgines després d'identificar mides mixtes
+- [Comprimeix PDF](./compress-pdf): optimitza el PDF després de corregir els problemes de pàgina
+- [Gira PDF](./rotate-pdf): corregeix les pàgines girades
diff --git a/docs/ca/tools/page-numbers.md b/docs/ca/tools/page-numbers.md
new file mode 100644
index 00000000..82cc1b08
--- /dev/null
+++ b/docs/ca/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Números de pàgina
+description: Afegeix números de pàgina personalitzables a qualsevol posició de les pàgines del PDF amb tipus de lletra, mida i color configurables.
+---
+
+# Números de pàgina
+
+Afegeix números de pàgina visibles a totes les pàgines del PDF. Tu tries la posició, el format, la mida del text i el color, i l'eina fa la resta.
+
+## Com funciona
+
+1. Carrega el fitxer PDF.
+2. Configura els paràmetres dels números de pàgina al quadre d'opcions que apareix.
+3. Fes clic a **Afegeix números de pàgina** per processar.
+4. El PDF numerat es baixa automàticament.
+
+## Opcions
+
+- **Posició**: tria on apareixen els números de pàgina: a baix al centre, a baix a l'esquerra, a baix a la dreta, a dalt al centre, a dalt a l'esquerra o a dalt a la dreta.
+- **Format**: selecciona entre la numeració simple (1, 2, 3...) o el format "pàgina X de Y" (1 / 5, 2 / 5...).
+- **Mida del text**: defineix la mida del text del número de pàgina. Per defecte, 12.
+- **Color**: tria qualsevol color per al text del número de pàgina amb el selector de color.
+
+## Característiques
+
+- Sis opcions de posició que cobreixen totes les cantonades i les posicions centrals
+- Dos formats de numeració: correlatiu simple o "pàgina X de Y"
+- Mida del text personalitzable de 6 a 72 punts
+- Selector de color complet per al color del text
+- Gestió automàtica dels marges que manté els números dins de les àrees segures, sigui quina sigui la mida de la pàgina
+
+## Casos d'ús
+
+- Preparar documents per imprimir que necessiten referències de pàgina visibles
+- Afegir números de pàgina a un PDF fusionat creat a partir de diversos fitxers d'origen
+- Numerar el material de les presentacions abans de distribuir-lo
+- Afegir numeració correlativa a documents legals o contractes
+
+## Consells
+
+- El format "pàgina X de Y" és útil per als documents en què els lectors necessiten saber la longitud total, com ara propostes o informes.
+- Si necessites estils de numeració diferents per a seccions diferents (com xifres romanes per a les pàgines preliminars), utilitza l'eina [Afegeix etiquetes de pàgina](./add-page-labels).
+
+## Eines relacionades
+
+- [Afegeix etiquetes de pàgina](./add-page-labels)
+- [Numeració Bates](./bates-numbering)
+- [Capçalera i peu de pàgina](./header-footer)
diff --git a/docs/ca/tools/pdf-booklet.md b/docs/ca/tools/pdf-booklet.md
new file mode 100644
index 00000000..27fac804
--- /dev/null
+++ b/docs/ca/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Fullet PDF
+description: Reorganitza les pàgines d'un PDF en l'ordre de fullet (grapat pel llom) per plegar-les i grapar-les en un fullet físic.
+---
+
+# Fullet PDF
+
+Reorganitza les pàgines d'un PDF en l'ordre d'imposició de fullet. Quan s'imprimeix a doble cara i es plega per la meitat, les pàgines queden en la seqüència de lectura correcta. És el disseny que s'utilitza per als fullets grapats pel llom i els fanzins.
+
+## Com funciona
+
+1. Carrega un fitxer PDF.
+2. Configura els paràmetres del fullet: mida i orientació de la pàgina de sortida.
+3. Fes clic a **Genera la previsualització** per veure com s'organitzaran les pàgines a cada full.
+4. Revisa la previsualització, que mostra cada full físic amb les pàgines assignades al davant i al darrere.
+5. Fes clic a **Baixa** per desar el PDF amb la imposició de fullet.
+
+## Característiques
+
+- Reordenació automàtica de pàgines per a l'enquadernació grapada pel llom
+- Mida de la pàgina de sortida configurable
+- Previsualització visual del disseny del fullet abans de baixar-lo
+- Gestiona els nombres senars de pàgines inserint-hi pàgines en blanc quan cal
+- Escala les pàgines d'origen perquè càpiguen a la mida del full del fullet
+
+## Casos d'ús
+
+- Crear fullets o fanzins imprimibles a partir d'un PDF normal
+- Preparar programes de congressos o guies d'esdeveniments per imprimir-los internament
+- Fer targetes de felicitació plegades o catàlegs petits
+- Produir quaderns de poemes o recopilacions de poesia per enquadernar a mà
+
+## Consells
+
+- Idealment, el nombre de pàgines del PDF d'origen hauria de ser múltiple de 4 per obtenir un fullet net. Si no ho és, s'afegeixen pàgines en blanc automàticament per completar l'últim full.
+- Imprimeix la sortida a doble cara amb l'opció "gira pel costat curt" de la impressora, després plega tots els fulls junts i grapa'ls pel llom.
+- Per posar simplement diverses pàgines en un full sense l'ordre de fullet, utilitza [PDF amb diverses pàgines per full](./n-up-pdf).
+
+## Eines relacionades
+
+- [PDF amb diverses pàgines per full](./n-up-pdf)
+- [Gira PDF](./rotate-pdf)
+- [Afegeix una pàgina en blanc](./add-blank-page)
diff --git a/docs/ca/tools/pdf-layers.md b/docs/ca/tools/pdf-layers.md
new file mode 100644
index 00000000..882b76ae
--- /dev/null
+++ b/docs/ca/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Capes OCG de PDF
+description: Visualitza, mostra o amaga, afegeix i suprimeix capes de grups de contingut opcional (OCG) en un document PDF.
+---
+
+# Capes OCG de PDF
+
+Gestiona els grups de contingut opcional (OCG), coneguts habitualment com a "capes", d'un PDF. Pots mostrar o amagar capes, afegir-ne de noves (incloses capes filles niades), suprimir-ne i desar el PDF modificat.
+
+## Com funciona
+
+1. Carrega un fitxer PDF.
+2. Fes clic al botó de processar per carregar el document amb el motor PyMuPDF.
+3. L'eina mostra totes les capes existents amb l'estat de visibilitat, l'estat de bloqueig i la jerarquia d'imbricació.
+4. Marca o desmarca les caselles per mostrar o amagar capes. Les capes bloquejades no es poden canviar.
+5. Afegeix capes de nivell superior escrivint un nom i fent clic al botó d'afegir, o afegeix capes filles sota una capa mare existent.
+6. Suprimeix les capes que ja no necessitis.
+7. Fes clic a **Desa** per baixar el PDF modificat amb els canvis de capes aplicats.
+
+## Característiques
+
+- Mostra la jerarquia de capes amb la sagnia adequada per a les capes niades
+- Mostra o amaga la visibilitat de cada capa
+- L'indicador de capa bloquejada evita canvis accidentals
+- Afegeix capes de nivell superior o filles amb noms personalitzats
+- Suprimeix capes individuals
+- Desa tots els canvis en un fitxer PDF nou
+
+## Casos d'ús
+
+- Mostrar o amagar capes de marcatge en plànols d'arquitectura o enginyeria
+- Afegir noves capes d'anotació a un document de disseny amb diverses capes
+- Eliminar capes obsoletes d'una plantilla abans de distribuir-la
+- Inspeccionar quines capes té un PDF complex rebut d'un tercer
+
+## Consells
+
+- Si el PDF no té capes, l'eina mostra un estat buit amb una invitació a afegir-ne una. No tots els PDF utilitzen capes OCG: són més habituals en exportacions de CAD i fitxers de disseny.
+- Les capes filles apareixen amb sagnia sota la capa mare. Pots niar capes a qualsevol profunditat.
+- Les capes bloquejades es mostren amb una icona de cadenat i les caselles estan desactivades. Aquests bloquejos els defineix el creador del PDF.
+
+## Eines relacionades
+
+- [Visualitza les metadades](./view-metadata)
+- [Edita les metadades](./edit-metadata)
+- [Duplica i organitza](./organize-pdf)
diff --git a/docs/ca/tools/pdf-multi-tool.md b/docs/ca/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..0968c62e
--- /dev/null
+++ b/docs/ca/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Eina PDF multifunció
+description: Un organitzador de pàgines tot en un per fusionar, dividir, girar, duplicar, suprimir, reordenar i redimensionar pàgines de PDF.
+---
+
+# Eina PDF multifunció
+
+Un espai de treball unificat per a totes les operacions de PDF a nivell de pàgina. Carrega un o més PDF i treballa amb totes les pàgines en una sola quadrícula visual. Gira, reordena, duplica, suprimeix, insereix PDF, imatges i pàgines en blanc, renumera, redimensiona i divideix el resultat, sense sortir de l'eina.
+
+## Com funciona
+
+1. Fes clic a **Selecciona fitxers** o arrossega fitxers a la zona de càrrega. Admet diversos fitxers, que es combinen en l'ordre en què es carreguen.
+2. Totes les pàgines apareixen en una quadrícula desplaçable amb miniatures.
+3. Fes clic a una pàgina per seleccionar-la. Fes Shift-clic per seleccionar un interval i Cmd/Ctrl-clic per afegir o treure pàgines individuals de la selecció.
+4. Utilitza la barra d'eines de l'organitzador o fes clic amb el botó dret a una pàgina per accedir a les accions de pàgina.
+5. Fes clic a **Exporta el PDF** per baixar el resultat final.
+
+## Característiques
+
+- **Fusiona**: carrega diversos PDF i imatges i es combinen automàticament en un sol document
+- **Reordena**: arrossega i deixa anar les pàgines per canviar la seqüència, o inverteix l'ordre de tot el document
+- **Gira**: gira les pàgines seleccionades a l'esquerra o a la dreta en increments de 90 graus
+- **Duplica**: copia les pàgines seleccionades i col·loca les còpies just després
+- **Suprimeix**: elimina les pàgines seleccionades
+- **Insereix**: afegeix pàgines d'un altre PDF o d'una imatge, una pàgina en blanc, pàgines del porta-retalls, o intercala les pàgines d'un segon PDF amb les actuals
+- **Substitueix**: canvia una pàgina per la primera pàgina d'un altre PDF
+- **Retalla, copia i enganxa**: mou o copia pàgines dins del document
+- **Extreu**: baixa les pàgines seleccionades com a PDF o com a imatges
+- **Números de pàgina**: defineix etiquetes de pàgina com i, ii, iii o A-1, A-2 per a un interval de pàgines
+- **Mida de pàgina**: ajusta les pàgines a una mida de paper estàndard o a una mida personalitzada
+- **Divideix**: divideix el document per intervals de pàgines, pàgines senars i parells, cada pàgina, marcadors, cada N pàgines o mida del fitxer
+- **Desfés / Refés**: totes les operacions de pàgina es poden desfer i refer
+- Repara automàticament els PDF malmesos abans de carregar-los
+
+## Dreceres de teclat
+
+| Acció | Drecera |
+| ------------------------------ | ----------------------------- |
+| Gira a la dreta / a l'esquerra | R / Shift+R |
+| Selecciona-ho tot | Cmd/Ctrl+A |
+| Retalla, copia, enganxa | Cmd/Ctrl+X, C, V |
+| Duplica | Cmd/Ctrl+D |
+| Suprimeix | Supr o Retrocés |
+| Desfés / Refés | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Mou la selecció | Tecles de fletxa, Home, End |
+
+## Casos d'ús
+
+- Crear un document personalitzat amb pàgines de diversos PDF d'origen
+- Netejar un document escanejat suprimint pàgines en blanc, girant els escanejos de costat i reordenant seccions
+- Dividir un PDF gran pels capítols fent servir els seus marcadors
+- Edició ràpida a nivell de pàgina sense necessitat d'un editor de PDF complet
+
+## Consells
+
+- L'historial de desfer i refer registra cada operació de pàgina. Utilitza'l amb llibertat: no pots destruir el teu treball per accident.
+- Utilitza **Insert > From File** o deixa anar més PDF o imatges a la quadrícula de pàgines en qualsevol moment per afegir-los al document.
+- Per a tasques senzilles de fusió o divisió, les eines dedicades [Fusiona PDF](./merge-pdf) o [Divideix PDF](./split-pdf) poden ser més ràpides. L'eina multifunció destaca quan necessites fer diverses operacions en una sola sessió.
+
+## Eines relacionades
+
+- [Fusiona PDF](./merge-pdf)
+- [Divideix PDF](./split-pdf)
+- [Duplica i organitza](./organize-pdf)
+- [Gira PDF](./rotate-pdf)
diff --git a/docs/ca/tools/pdf-to-bmp.md b/docs/ca/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..164d9322
--- /dev/null
+++ b/docs/ca/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF a BMP
+description: Converteix pàgines de PDF en imatges BMP sense comprimir. Útil per a sistemes antics i fluxos d'impressió que requereixen mapes de bits.
+---
+
+# PDF a BMP
+
+Converteix cada pàgina d'un PDF en una imatge BMP (mapa de bits). BMP és un format sense comprimir, de manera que la sortida és exacta fins al píxel i sense pèrdua de qualitat, però els fitxers són grans.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Fes clic a **Converteix** per processar el fitxer.
+3. Es baixa automàticament un sol fitxer `.bmp` o un arxiu ZIP.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Les pàgines es renderitzen a una escala fixa de 2x, cosa que produeix imatges d'aproximadament el doble de les dimensions natives de la pàgina del PDF.
+
+## Format de sortida
+
+- **Una pàgina**: `filename.bmp`
+- **Diverses pàgines**: `filename_bmps.zip` amb `page_1.bmp`, `page_2.bmp`, etc.
+
+## Casos d'ús
+
+- Introduir pàgines de PDF en sistemes antics o maquinari que només accepten BMP.
+- Preparar imatges sense comprimir per a fluxos d'impressió específics.
+- Utilitzar la sortida en mapa de bits com a entrada d'eines de processament d'imatges que requereixen dades de píxels en brut.
+
+## Consells
+
+- Els fitxers BMP són molt grans perquè emmagatzemen dades de píxels en brut sense compressió. Per a la majoria d'usos, [PDF a PNG](./pdf-to-png) ofereix qualitat sense pèrdua amb fitxers molt més petits.
+- Si el sistema de destinació accepta PNG o TIFF, millor aquests formats per estalviar espai al disc.
+
+## Eines relacionades
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a TIFF](./pdf-to-tiff)
+- [PDF a JPG](./pdf-to-jpg)
diff --git a/docs/ca/tools/pdf-to-cbz.md b/docs/ca/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..a7d8e0b7
--- /dev/null
+++ b/docs/ca/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF a CBZ
+description: Converteix un PDF en un fitxer CBZ (Comic Book Archive) per a lectors de còmics com Komga, Kavita, CDisplayEx i Calibre.
+---
+
+# PDF a CBZ
+
+Converteix un PDF en un fitxer CBZ (Comic Book ZIP), el format estàndard dels còmics i el manga digitals. Cada pàgina del PDF es converteix en una imatge dins de l'arxiu. L'eina genera metadades en tres formats per garantir la màxima compatibilitat: ComicInfo.xml, metadata.opf i JSON de ComicBookInfo.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Tria el format d'imatge, la qualitat, l'escala i les metadades opcionals.
+3. Fes clic a **Converteix** per generar el fitxer CBZ.
+4. El fitxer `.cbz` es baixa automàticament.
+
+## Opcions
+
+| Opció | Valors | Per defecte | Descripció |
+| -------------------- | --------------- | ----------- | ----------------------------------------------------------------------------------------------------------- |
+| Format d'imatge | JPEG, PNG, WebP | JPEG | JPEG per a còmics en color, PNG per a manga en blanc i negre sense pèrdua, WebP per a la millor compressió. |
+| Qualitat | 50–100% | 85% | Controla la compressió de JPEG/WebP. Amagada per a PNG (sempre sense pèrdua). |
+| Escala | 1.0x–4.0x | 2.0x | Una escala més alta produeix imatges més nítides per a pantalles d'alta resolució. |
+| Escala de grisos | Sí/No | No | Converteix les pàgines a escala de grisos. Redueix la mida del fitxer en contingut en blanc i negre. |
+| Mode manga | Sí/No | No | Defineix la direcció de lectura de dreta a esquerra a les metadades. |
+| Inclou les metadades | Sí/No | Sí | Incrusta ComicInfo.xml, metadata.opf i el JSON de ComicBookInfo. |
+
+## Camps de metadades
+
+Quan les metadades estan activades, pots omplir:
+
+- **Títol**: es detecta automàticament a partir del nom del fitxer PDF.
+- **Sèrie**: el nom de la sèrie (p. ex., "Naruto").
+- **Número (#)**: número de l'exemplar dins de la sèrie.
+- **Volum (Vol.)**: número de volum.
+- **Autor(s)**: nom de l'escriptor o creador.
+- **Editorial**: l'empresa editora.
+- **Etiquetes / Gènere**: etiquetes separades per comes (p. ex., "Acció, Aventura").
+- **Any de publicació**: any de publicació (1900–2100).
+- **Valoració**: valoració de la comunitat de 0 a 5.
+
+## Compatibilitat de les metadades
+
+L'eina escriu les metadades en tres formats perquè tots els lectors les puguin trobar:
+
+| Format | Ubicació | Compatible amb |
+| ------------------ | ------------------------- | ------------------------------------------- |
+| ComicInfo.xml | Fitxer dins del ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Fitxer dins del ZIP | Calibre |
+| ComicBookInfo JSON | Camp de comentari del ZIP | Calibre (alternativa) |
+
+## Format de sortida
+
+- `filename.cbz`: un arxiu ZIP amb les imatges de les pàgines numerades i els fitxers de metadades.
+
+Les imatges de les pàgines es nomenen amb números emplenats amb zeros (`01.jpg`, `02.jpg`, etc.) perquè els lectors les mostrin en l'ordre correcte.
+
+## Casos d'ús
+
+- Convertir PDF de manga o còmics per utilitzar-los amb lectors de còmics.
+- Crear una biblioteca de còmics digital a Komga, Kavita o Calibre.
+- Convertir còmics escanejats a un format còmode per als lectors.
+- Compartir còmics en un format que conserva la direcció de lectura i les metadades.
+
+## Consells
+
+- Utilitza **JPEG** per a còmics en color i **PNG** per a manga en blanc i negre: PNG comprimeix molt eficientment el contingut en blanc i negre.
+- Activa l'**Escala de grisos** per al manga per reduir significativament la mida del fitxer.
+- Omple els camps **Sèrie** i **Número** perquè els gestors de biblioteca (Komga, Calibre) puguin organitzar la teva col·lecció automàticament.
+- **WebP** ofereix la millor compressió, però els lectors de còmics més antics poden no ser-hi compatibles.
+
+## Eines relacionades
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a PNG](./pdf-to-png)
+- [PDF a TIFF](./pdf-to-tiff)
+- [Extreu imatges](./extract-images)
diff --git a/docs/ca/tools/pdf-to-csv.md b/docs/ca/tools/pdf-to-csv.md
new file mode 100644
index 00000000..0396d19b
--- /dev/null
+++ b/docs/ca/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF a CSV
+description: Extreu taules de documents PDF i exporta-les en un únic fitxer CSV. Admet PDF de diverses pàgines amb detecció automàtica de taules.
+---
+
+# PDF a CSV
+
+Extreu les taules d'un PDF i les exporta com a fitxer CSV. L'eina analitza cada pàgina a la cerca de dades tabulars amb el motor de detecció de taules de PyMuPDF i després escriu totes les files trobades en una única sortida separada per comes.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Fes clic a **Converteix** per iniciar l'extracció de taules.
+3. L'eina analitza cada pàgina i identifica les taules automàticament.
+4. Es baixa un fitxer `.csv` amb totes les dades de les taules extretes.
+
+Les taules de pàgines diferents se separen amb files en blanc a la sortida. Les cel·les que contenen comes, cometes o salts de línia s'escapen correctament segons la RFC 4180.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Totes les taules trobades al document s'extreuen i es combinen en un únic CSV.
+
+## Format de sortida
+
+- Un únic fitxer `filename.csv` amb totes les taules detectades.
+
+## Casos d'ús
+
+- Passar a un full de càlcul dades financeres d'extractes bancaris o factures en PDF.
+- Extreure taules de preus de pressupostos de proveïdors per comparar-les.
+- Convertir dades de recerca tabulars de treballs en PDF a un format adequat per a eines d'anàlisi.
+- Migrar dades d'informes PDF antics a bases de dades.
+
+## Consells
+
+- Si no es troba cap taula, l'eina mostra el missatge "No s'ha trobat cap taula". Normalment vol dir que el PDF utilitza una disposició de text que sembla tabular però que no està estructurada com una taula real.
+- Per tenir més control sobre cada taula, utilitza [Extreu taules](./extract-tables), que et permet triar entre els formats de sortida CSV, JSON i Markdown.
+- Si necessites les dades en format Excel amb un full per a cada taula, utilitza [PDF a Excel](./pdf-to-excel).
+
+## Eines relacionades
+
+- [PDF a Excel](./pdf-to-excel)
+- [Extreu taules](./extract-tables)
+- [PDF a text](./pdf-to-text)
diff --git a/docs/ca/tools/pdf-to-excel.md b/docs/ca/tools/pdf-to-excel.md
new file mode 100644
index 00000000..5f7bc07f
--- /dev/null
+++ b/docs/ca/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF a Excel
+description: Extreu taules de documents PDF a un full de càlcul d'Excel. Cada taula té el seu propi full amb referència de pàgina.
+---
+
+# PDF a Excel
+
+Extreu les taules d'un PDF i les desa com a full de càlcul d'Excel (`.xlsx`). Cada taula detectada es col·loca en el seu propi full, etiquetat amb el número de taula i la pàgina d'origen. Funciona amb PyMuPDF per a la detecció de taules i la biblioteca SheetJS per generar l'Excel.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Fes clic a **Converteix** per iniciar l'extracció de taules.
+3. L'eina analitza cada pàgina a la cerca de taules i després crea un llibre d'Excel.
+4. Es baixa un fitxer `.xlsx` amb un full per a cada taula.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Totes les taules detectades s'extreuen automàticament.
+
+## Format de sortida
+
+- Un únic fitxer `filename.xlsx`.
+- **Una taula**: un sol full anomenat "Table".
+- **Diverses taules**: fulls anomenats "Table 1 (Page 3)", "Table 2 (Page 5)", etc. Els noms dels fulls es trunquen a 31 caràcters (el límit d'Excel).
+
+## Casos d'ús
+
+- Convertir informes financers en PDF a fulls de càlcul editables per continuar l'anàlisi.
+- Extreure taules d'inventari o de comandes de PDF de proveïdors.
+- Passar dades estructurades de formularis o catàlegs en PDF a Excel per ordenar-les i filtrar-les.
+- Arxivar dades tabulars de PDF en un format amb el qual els companys no tècnics puguin treballar.
+
+## Consells
+
+- Si l'eina informa "No s'ha trobat cap taula", el PDF probablement utilitza una disposició de text lliure en lloc de taules estructurades. Prova [PDF a text](./pdf-to-text) per obtenir el contingut en brut.
+- Per a un format pla més senzill, utilitza [PDF a CSV](./pdf-to-csv). Per a baixades per taula en diversos formats, utilitza [Extreu taules](./extract-tables).
+- Revisa els noms dels fulls per identificar de quina pàgina prové cada taula.
+
+## Eines relacionades
+
+- [PDF a CSV](./pdf-to-csv)
+- [Extreu taules](./extract-tables)
+- [PDF a text](./pdf-to-text)
diff --git a/docs/ca/tools/pdf-to-greyscale.md b/docs/ca/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..cfef8f44
--- /dev/null
+++ b/docs/ca/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF a escala de grisos
+description: Converteix un PDF en color en una versió en escala de grisos (blanc i negre). Genera un PDF nou amb tot el color eliminat de totes les pàgines.
+---
+
+# PDF a escala de grisos
+
+Converteix un PDF en color en una versió en escala de grisos. Cada pàgina es renderitza, es desatura i es torna a incrustar com a imatge JPEG en un PDF nou. La sortida conserva les dimensions originals de la pàgina.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Fes clic a **Converteix** per processar el fitxer.
+3. Es baixa un `greyscale.pdf` nou amb totes les pàgines convertides a blanc i negre.
+
+Internament, cada pàgina es renderitza a escala 2x, les dades de píxels passen per un filtre d'escala de grisos i després es tornen a codificar com a JPEG al 90 % de qualitat i es col·loquen en un document PDF nou.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. La conversió a escala de grisos utilitza una fórmula de luminància estàndard i la qualitat JPEG està fixada al 90 %.
+
+## Format de sortida
+
+- Un únic fitxer `greyscale.pdf` amb totes les pàgines com a imatges JPEG en escala de grisos.
+
+## Casos d'ús
+
+- Preparar documents per a la impressió en blanc i negre per estalviar en tinta de color.
+- Complir els requisits de presentació de tràmits legals o governamentals que exigeixen l'escala de grisos.
+- Reduir la mida de fitxer de PDF amb molt de color (les imatges JPEG en escala de grisos són més petites que les de color).
+- Crear un estil visual coherent en documents amb pàgines en color i en blanc i negre.
+
+## Consells
+
+- Com que cada pàgina es rasteritza i es torna a incrustar com a JPEG, la sortida és basada en imatges. El text del PDF original ja no es podrà seleccionar ni cercar. Si després necessites text cercable, passa la sortida per l'eina d'OCR.
+- Per tenir més control sobre els ajustos de color (brillantor, contrast, saturació), mira l'eina Ajusta els colors o el node d'escala de grisos del [Creador de fluxos de treball PDF](./pdf-workflow).
+
+## Eines relacionades
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a PNG](./pdf-to-png)
+- [Creador de fluxos de treball PDF](./pdf-workflow)
diff --git a/docs/ca/tools/pdf-to-jpg.md b/docs/ca/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..4352883d
--- /dev/null
+++ b/docs/ca/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF a JPG
+description: Converteix pàgines de PDF en imatges JPG amb qualitat ajustable. Els PDF d'una pàgina es baixen directament; els de diverses pàgines s'exporten com a ZIP.
+---
+
+# PDF a JPG
+
+Converteix cada pàgina d'un PDF en una imatge JPG. Els documents d'una sola pàgina es baixen com a fitxer `.jpg` independent. Els PDF de diverses pàgines generen un arxiu ZIP amb un JPG per pàgina.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer. L'eina mostra el nom del fitxer, la mida i el nombre de pàgines.
+2. Ajusta el control lliscant de **Qualitat** per controlar la compressió del JPG.
+3. Fes clic a **Converteix** per iniciar el processament.
+4. El resultat es baixa automàticament: un sol JPG per als PDF d'una pàgina o un fitxer ZIP per als documents de diverses pàgines.
+
+## Opcions
+
+- **Qualitat**: un control lliscant del 0 % al 100 % (per defecte, 90 %). Els valors més alts produeixen imatges més nítides amb fitxers més grans. Els valors més baixos comprimeixen més agressivament.
+
+Les pàgines es renderitzen internament a escala 2x, de manera que la resolució de sortida és el doble de les dimensions de la pàgina del PDF. Una pàgina estàndard de mida Letter produeix una imatge d'aproximadament 1.224 x 1.584 píxels.
+
+## Format de sortida
+
+- **Una pàgina**: `filename.jpg`
+- **Diverses pàgines**: `filename_jpgs.zip` amb `page_1.jpg`, `page_2.jpg`, etc.
+
+## Casos d'ús
+
+- Generar miniatures de previsualització per a un sistema de gestió documental.
+- Compartir una pàgina d'un informe en un xat o correu que no admet PDF.
+- Crear recursos d'imatge a partir de diagrames o il·lustracions d'un PDF.
+- Arxivar documents escanejats com a imatges individuals.
+
+## Consells
+
+- Per a una sortida sense pèrdua, utilitza [PDF a PNG](./pdf-to-png).
+- Una qualitat del 80-90 % ofereix un bon equilibri entre mida de fitxer i fidelitat visual.
+- Si necessites un format específic per a cada pàgina, considera el [Creador de fluxos de treball PDF](./pdf-workflow), que té un node de sortida de PDF a imatges.
+
+## Eines relacionades
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a WebP](./pdf-to-webp)
+- [PDF a BMP](./pdf-to-bmp)
+- [PDF a TIFF](./pdf-to-tiff)
diff --git a/docs/ca/tools/pdf-to-json.md b/docs/ca/tools/pdf-to-json.md
new file mode 100644
index 00000000..f3537d09
--- /dev/null
+++ b/docs/ca/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF a JSON
+description: Converteix fitxers PDF a format JSON estructurat amb CPDF. Exporta l'estructura interna del PDF com a dades JSON llegibles per màquina.
+---
+
+# PDF a JSON
+
+Converteix un o més fitxers PDF a format JSON. L'eina utilitza CPDF (Coherent PDF) per serialitzar l'estructura interna de cada PDF en una representació JSON llegible per màquina. La sortida sempre es lliura com a arxiu ZIP.
+
+## Com funciona
+
+1. Selecciona un o més fitxers PDF amb el selector de fitxers.
+2. Fes clic a **Converteix** per iniciar el processament. La conversió s'executa en un web worker en segon pla.
+3. Es baixa un arxiu ZIP amb un fitxer JSON per a cada PDF d'entrada.
+
+La barra d'estat mostra el progrés de les etapes de conversió i de creació del ZIP.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Cada PDF es converteix a la seva representació JSON completa.
+
+## Format de sortida
+
+- Un fitxer `pdfs-to-json.zip` amb `filename.json` per a cada PDF d'entrada.
+
+La sortida JSON representa l'estructura interna d'objectes del PDF, incloent-hi els arbres de pàgines, les referències de tipus de lletra, les metadades i els fluxos de contingut.
+
+## Casos d'ús
+
+- Inspeccionar l'estructura interna d'un PDF per depurar-lo o validar-lo.
+- Extreure de manera programàtica metadades estructurades i propietats de pàgina.
+- Alimentar fluxos de processament personalitzats amb dades d'estructura de PDF.
+- Auditar documents PDF per complir normatives analitzant-ne els arbres d'objectes.
+
+## Consells
+
+- Aquesta eina produeix l'estructura bruta d'objectes del PDF, no el contingut de text extret. Si necessites el text de les pàgines en format JSON, utilitza [Prepara el PDF per a IA](./prepare-pdf-for-ai).
+- Per a l'extracció de text net, [PDF a text](./pdf-to-text) és més directe.
+- Els PDF grans amb estructures complexes produeixen fitxers JSON molt grans.
+
+## Eines relacionades
+
+- [PDF a text](./pdf-to-text)
+- [Prepara el PDF per a IA](./prepare-pdf-for-ai)
+- [Extreu taules](./extract-tables)
diff --git a/docs/ca/tools/pdf-to-markdown.md b/docs/ca/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..ad0b4274
--- /dev/null
+++ b/docs/ca/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF a Markdown
+description: Converteix documents PDF a format Markdown amb extracció opcional d'imatges. Admet la conversió en lot de diversos fitxers.
+---
+
+# PDF a Markdown
+
+Converteix fitxers PDF a format Markdown (`.md`) conservant els encapçalaments, els paràgrafs, les llistes i el format bàsic. Opcionalment extreu i inclou les imatges incrustades. Admet la conversió individual i en lot. Funciona amb PyMuPDF.
+
+## Com funciona
+
+1. Carrega un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers.
+2. Opcionalment, activa **Inclou les imatges** per incrustar les imatges extretes a la sortida Markdown.
+3. Fes clic a **Converteix** per iniciar el processament.
+4. Un sol fitxer es baixa com a `filename.md`. Diversos fitxers generen un `markdown-files.zip`.
+
+## Opcions
+
+- **Inclou les imatges**: quan està marcada, les imatges incrustades del PDF s'extreuen i es referencien a la sortida Markdown. Quan no ho està, només es converteix el contingut de text.
+
+## Format de sortida
+
+- **Un fitxer**: `filename.md`
+- **Diversos fitxers**: `markdown-files.zip` amb un `.md` per a cada PDF d'entrada.
+
+## Casos d'ús
+
+- Convertir documentació en PDF a Markdown per a un generador de llocs estàtics com VitePress, Hugo o Jekyll.
+- Convertir treballs de recerca en PDF a Markdown editable per a aplicacions de notes com Obsidian.
+- Migrar bases de coneixement antigues en PDF a un format de text compatible amb Git.
+- Extreure contingut estructurat de llibres electrònics en PDF per reformatar-lo.
+
+## Consells
+
+- L'opció Inclou les imatges és útil quan el PDF conté diagrames o figures essencials per al contingut. Desactiva-la en documents amb molt de text per mantenir la sortida neta.
+- Els dissenys complexos amb barres laterals, notes al peu o text en diverses columnes poden produir un Markdown imperfecte. Revisa i ajusta la sortida si cal.
+- Per a text en brut sense cap format, utilitza [PDF a text](./pdf-to-text).
+
+## Eines relacionades
+
+- [PDF a text](./pdf-to-text)
+- [PDF a Word](./pdf-to-word)
+- [Prepara el PDF per a IA](./prepare-pdf-for-ai)
diff --git a/docs/ca/tools/pdf-to-pdfa.md b/docs/ca/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..8010ba10
--- /dev/null
+++ b/docs/ca/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF a PDF/A
+description: Converteix PDF estàndard a format PDF/A per a l'arxivament a llarg termini. Admet els nivells de conformitat PDF/A-1b, PDF/A-2b i PDF/A-3b.
+---
+
+# PDF a PDF/A
+
+PDF/A és un subconjunt de PDF normalitzat per l'ISO i pensat per a la preservació digital a llarg termini. Aquesta eina converteix els teus PDF estàndard en documents compatibles amb PDF/A amb Ghostscript executant-se directament al navegador.
+
+## Com funciona
+
+1. Carrega un o més fitxers PDF.
+2. Selecciona una **versió de PDF/A** al menú desplegable.
+3. Opcionalment, activa **Aplana el PDF prèviament** per a fitxers complexos que fallen amb la conversió normal.
+4. Fes clic a **Converteix a PDF/A**. Si són diversos fitxers, es genera un arxiu ZIP.
+
+## Versions de PDF/A
+
+| Versió | Restriccions | Ideal per a |
+| ------------ | ----------------------------------------------- | ------------------------------------------------- |
+| **PDF/A-1b** | La més estricta. Sense transparències ni capes. | Màxima compatibilitat amb sistemes d'arxiu antics |
+| **PDF/A-2b** | Permet transparències i JPEG2000. | Arxivament de propòsit general (recomanada) |
+| **PDF/A-3b** | Permet adjunts incrustats de qualsevol format. | Arxivar documents amb fitxers de dades d'origen |
+
+PDF/A-2b ve seleccionada per defecte i serveix per a la gran majoria de necessitats d'arxivament.
+
+## Opció d'aplanament previ
+
+Alguns PDF contenen característiques que impedeixen una conversió neta a PDF/A: codificacions de tipus de lletra poc habituals, piles de transparència complexes o estructures internes malmeses. Activar l'**aplanament previ** rasteritza el PDF a 300 DPI abans de la conversió, cosa que garanteix la conformitat a costa que el text deixi de ser seleccionable. Utilitza'l com a alternativa quan la conversió estàndard produeixi errors.
+
+L'aplanament previ requereix el motor WASM de PyMuPDF.
+
+## Casos d'ús
+
+- Complir els requisits d'arxivament governamentals o legals (moltes jurisdiccions exigeixen PDF/A per als escrits judicials)
+- Presentar documents a repositoris institucionals o biblioteques digitals
+- Preservar registres empresarials quan el programari original potser ja no existirà d'aquí a deu anys
+- Preparar factures per a estàndards de facturació electrònica que requereixen PDF/A-3b amb adjunts XML
+
+## Consells
+
+- Prova primer la conversió sense aplanament previ. Activa'l només si obtens un error.
+- PDF/A incrusta tots els tipus de lletra, de manera que els fitxers de sortida sovint són més grans que els originals.
+- Valida la sortida amb un validador de PDF/A específic si el teu flux de treball requereix una conformitat estricta.
+
+## Eines relacionades
+
+- [Comprimeix PDF](./compress-pdf): redueix la mida del fitxer després de la conversió
+- [Aplana PDF](./flatten-pdf): aplana els formularis abans de convertir a PDF/A
+- [Elimina les metadades](./remove-metadata): suprimeix les metadades abans d'arxivar
diff --git a/docs/ca/tools/pdf-to-png.md b/docs/ca/tools/pdf-to-png.md
new file mode 100644
index 00000000..7a0c4746
--- /dev/null
+++ b/docs/ca/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF a PNG
+description: Converteix pàgines de PDF en imatges PNG sense pèrdua amb escala ajustable. Ideal per a captures d'alta qualitat i fons transparents.
+---
+
+# PDF a PNG
+
+Converteix cada pàgina d'un PDF en una imatge PNG. PNG utilitza compressió sense pèrdua, de manera que la sortida conserva tots els detalls de la pàgina original. Els PDF d'una pàgina es baixen com a fitxer `.png`; els de diverses pàgines generen un ZIP.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Defineix el control lliscant d'**Escala** per controlar la resolució de sortida.
+3. Fes clic a **Converteix** per iniciar el processament.
+4. Un sol PNG o un arxiu ZIP es baixa automàticament.
+
+## Opcions
+
+- **Escala**: va d'1.0x a 3.0x (per defecte 2.0x). A 2.0x, una pàgina estàndard de mida Letter es renderitza a aproximadament 1.224 x 1.584 píxels. Els valors d'escala més alts produeixen imatges més grans i nítides a costa de la mida del fitxer i del temps de processament.
+
+## Format de sortida
+
+- **Una pàgina**: `filename.png`
+- **Diverses pàgines**: `filename_pngs.zip` amb `page_1.png`, `page_2.png`, etc.
+
+## Casos d'ús
+
+- Capturar pàgines de PDF amb gran fidelitat per a presentacions.
+- Extreure gràfics o diagrames que necessiten vores nítides i cap artefacte de compressió.
+- Preparar recursos per al disseny web a partir de maquetes en PDF.
+- Crear imatges de pàgina sense pèrdua per al preprocessament d'OCR.
+
+## Consells
+
+- Els fitxers PNG són molt més grans que els JPG. Si la mida del fitxer importa més que la qualitat perfecta, utilitza [PDF a JPG](./pdf-to-jpg) o [PDF a WebP](./pdf-to-webp).
+- A escala 1.0x, la sortida coincideix amb la resolució nativa del PDF. Puja a 3.0x per a exportacions amb qualitat d'impressió.
+
+## Eines relacionades
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a WebP](./pdf-to-webp)
+- [PDF a SVG](./pdf-to-svg)
diff --git a/docs/ca/tools/pdf-to-svg.md b/docs/ca/tools/pdf-to-svg.md
new file mode 100644
index 00000000..dcd89b24
--- /dev/null
+++ b/docs/ca/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF a SVG
+description: Converteix pàgines de PDF en gràfics vectorials SVG escalables. Conserva el text i les formes com a traçats vectorials per a un escalat infinit.
+---
+
+# PDF a SVG
+
+Converteix cada pàgina d'un PDF en un fitxer SVG (Scalable Vector Graphics). A diferència dels formats ràster, SVG conserva els traçats vectorials, el text i les formes, de manera que la sortida s'escala a qualsevol mida sense pixelar-se. Funciona amb PyMuPDF.
+
+## Com funciona
+
+1. Carrega un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers. Pots afegir diversos fitxers i gestionar-los individualment.
+2. Fes clic a **Converteix** per processar tots els fitxers carregats.
+3. Les conversions d'un sol fitxer d'una sola pàgina es baixen com a `.svg` independent. La resta es baixa com a arxiu ZIP.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Cada pàgina es converteix a SVG amb l'exportació vectorial nativa de PyMuPDF.
+
+## Format de sortida
+
+- **Un fitxer, una pàgina**: `filename.svg`
+- **Un fitxer, diverses pàgines**: `filename_svg.zip` amb `page_1.svg`, `page_2.svg`, etc.
+- **Diversos fitxers**: `pdf_to_svg.zip` amb els fitxers organitzats pel nom del document d'origen.
+
+## Casos d'ús
+
+- Extreure diagrames vectorials, gràfics o il·lustracions d'informes en PDF per utilitzar-los en pàgines web.
+- Editar el contingut de les pàgines d'un PDF en un editor vectorial com Inkscape o Illustrator.
+- Incrustar previsualitzacions de pàgines escalables en aplicacions web adaptables.
+- Extreure logotips o gràfics de fullets en PDF conservant les vores nítides.
+
+## Consells
+
+- SVG funciona millor amb PDF que contenen contingut vectorial. Els documents escanejats o els PDF amb moltes imatges produiran fitxers SVG grans amb dades ràster incrustades.
+- Per a una sortida ràster de PDF amb moltes imatges, utilitza [PDF a PNG](./pdf-to-png) o [PDF a JPG](./pdf-to-jpg).
+- Aquesta eina admet la conversió en lot: carrega diversos PDF alhora per convertir-los tots en una sola execució.
+
+## Eines relacionades
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a Markdown](./pdf-to-markdown)
diff --git a/docs/ca/tools/pdf-to-text.md b/docs/ca/tools/pdf-to-text.md
new file mode 100644
index 00000000..a94bd157
--- /dev/null
+++ b/docs/ca/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF a text
+description: Extreu el contingut de text net de fitxers PDF. Admet l'extracció en lot de diversos PDF amb sortida en fitxers TXT.
+---
+
+# PDF a text
+
+Extreu tot el contingut de text de fitxers PDF i el desa com a fitxers `.txt` de text net. Admet el processament en lot: carrega diversos PDF i obtén el text de cadascun en una sola operació. Funciona amb PyMuPDF.
+
+## Com funciona
+
+1. Carrega un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers. Gestiona la llista de fitxers amb els botons Afegeix més i Esborra.
+2. Fes clic a **Extreu** per iniciar el processament.
+3. Un sol fitxer es baixa com a `filename.txt`. Diversos fitxers generen un arxiu `pdf-to-text.zip`.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Tot el contingut de text s'extreu de cada pàgina en ordre de lectura.
+
+## Format de sortida
+
+- **Un fitxer**: `filename.txt`
+- **Diversos fitxers**: `pdf-to-text.zip` amb un `.txt` per a cada PDF d'entrada.
+
+## Casos d'ús
+
+- Extreure el cos de text d'informes en PDF per a la indexació de cerca de text complet.
+- Convertir llibres electrònics o articles en PDF a text net per llegir-los en dispositius de tinta electrònica.
+- Obtenir text de contractes o documents legals per a l'anàlisi de paraules clau.
+- Eliminar el format dels PDF per obtenir text net per a scripts de processament de dades.
+- Preparar un corpus de text a partir d'arxius de PDF per al processament del llenguatge natural.
+
+## Consells
+
+- Els PDF escanejats (només imatge) produiran fitxers de text buits perquè no hi ha capa de text per extreure. Passa abans els documents escanejats per OCR.
+- La sortida conserva l'ordre de lectura tal com l'interpreta PyMuPDF, que en general segueix d'esquerra a dreta i de dalt a baix. Els dissenys de diverses columnes poden produir text entrellaçat.
+- Per a una sortida estructurada amb encapçalaments i format, prova [PDF a Markdown](./pdf-to-markdown). Per a un JSON estructurat preparat per a IA, utilitza [Prepara el PDF per a IA](./prepare-pdf-for-ai).
+
+## Eines relacionades
+
+- [PDF a Markdown](./pdf-to-markdown)
+- [Prepara el PDF per a IA](./prepare-pdf-for-ai)
+- [PDF a Word](./pdf-to-word)
diff --git a/docs/ca/tools/pdf-to-tiff.md b/docs/ca/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..a19dbf93
--- /dev/null
+++ b/docs/ca/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF a TIFF
+description: Converteix pàgines de PDF en imatges TIFF, molt utilitzades en fluxos d'impressió, fax i arxivament. Recorre a PNG si la codificació falla.
+---
+
+# PDF a TIFF
+
+Converteix cada pàgina d'un PDF en una imatge TIFF. TIFF és el format estàndard per a la producció d'impressió, els sistemes de fax i l'arxivament de documents. L'eina utilitza compressió PackBits per a la codificació TIFF i recorre a PNG si una pàgina no es pot codificar.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Fes clic a **Converteix** per processar el fitxer.
+3. Un sol fitxer TIFF o un arxiu ZIP es baixa automàticament.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Les pàgines es renderitzen a una escala fixa de 2x.
+
+## Format de sortida
+
+- **Una pàgina**: `filename.tiff`
+- **Diverses pàgines**: `filename_tiffs.zip` amb `page_1.tiff`, `page_2.tiff`, etc.
+
+Si la codificació TIFF falla en una pàgina concreta (per problemes de compressió), aquesta pàgina es desa com a fitxer `.png`. En aquest cas, el ZIP contindrà una barreja de fitxers TIFF i PNG.
+
+## Casos d'ús
+
+- Presentar documents a organismes governamentals o sistemes legals que exigeixen el format TIFF.
+- Preparar pàgines per transmetre-les per fax mitjançant serveis de fax digitals.
+- Arxivar documents escanejats en un format sense pèrdua àmpliament compatible.
+- Introduir pàgines en sistemes de gestió documental empresarials.
+
+## Consells
+
+- Els fitxers TIFF són grans. Si només necessites qualitat sense pèrdua per a ús web o en pantalla, [PDF a PNG](./pdf-to-png) és una opció millor.
+- Revisa el contingut del ZIP si algunes pàgines han necessitat l'alternativa PNG: potser vulguis convertir-les per separat.
+
+## Eines relacionades
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a BMP](./pdf-to-bmp)
+- [PDF a JPG](./pdf-to-jpg)
diff --git a/docs/ca/tools/pdf-to-webp.md b/docs/ca/tools/pdf-to-webp.md
new file mode 100644
index 00000000..5edc0a91
--- /dev/null
+++ b/docs/ca/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF a WebP
+description: Converteix pàgines de PDF en imatges WebP amb qualitat ajustable. Fitxers més petits que JPG amb una qualitat visual comparable.
+---
+
+# PDF a WebP
+
+Converteix cada pàgina d'un PDF en una imatge WebP. WebP sol produir fitxers entre un 25 % i un 35 % més petits que JPG amb la mateixa qualitat percebuda, cosa que el converteix en una bona opció per a l'ús web.
+
+## Com funciona
+
+1. Carrega un PDF fent clic a la zona de càrrega o arrossegant-hi un fitxer.
+2. Ajusta el control lliscant de **Qualitat**.
+3. Fes clic a **Converteix** per processar el fitxer.
+4. Un sol fitxer `.webp` o un arxiu ZIP es baixa automàticament.
+
+## Opcions
+
+- **Qualitat**: un control lliscant del 0 % al 100 % (per defecte 85 %). Controla el nivell de compressió amb pèrdua. Els valors més alts conserven més detall.
+
+Les pàgines es renderitzen internament a escala 2x, de manera que s'obtenen imatges d'aproximadament el doble de les dimensions natives del PDF.
+
+## Format de sortida
+
+- **Una pàgina**: `filename.webp`
+- **Diverses pàgines**: `filename_webps.zip` amb `page_1.webp`, `page_2.webp`, etc.
+
+## Casos d'ús
+
+- Preparar previsualitzacions de pàgines per a llocs web on l'ample de banda és important.
+- Generar versions d'imatge lleugeres de flyers o fullets per a les xarxes socials.
+- Convertir en lot documents de diverses pàgines en un conjunt d'imatges optimitzat per a la web.
+
+## Consells
+
+- WebP és compatible amb tots els navegadors moderns. Per a la compatibilitat amb sistemes antics, recorre a [PDF a JPG](./pdf-to-jpg).
+- Una qualitat del 80-85 % acostuma a ser indistingible de l'original en pantalla i manté els fitxers petits.
+
+## Eines relacionades
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a PNG](./pdf-to-png)
+- [PDF a BMP](./pdf-to-bmp)
diff --git a/docs/ca/tools/pdf-to-word.md b/docs/ca/tools/pdf-to-word.md
new file mode 100644
index 00000000..c6c14d76
--- /dev/null
+++ b/docs/ca/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF a Word
+description: Converteix fitxers PDF en documents Word (DOCX) editables. Admet la conversió en lot de diversos PDF alhora.
+---
+
+# PDF a Word
+
+Converteix fitxers PDF en documents Word (`.docx`) editables. L'eina utilitza PyMuPDF per reconstruir el contingut del document, conservant el text, el format bàsic i el disseny. Admet la conversió individual i en lot.
+
+## Com funciona
+
+1. Carrega un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers. Pots afegir-ne més o eliminar-ne de la llista individualment.
+2. Fes clic a **Converteix** per iniciar el processament.
+3. Un sol fitxer es baixa com a `filename.docx`. Diversos fitxers s'empaqueten a `converted-documents.zip`.
+
+## Opcions
+
+Aquesta eina no té opcions configurables. Cada PDF es converteix a DOCX amb el motor de conversió integrat de PyMuPDF.
+
+## Format de sortida
+
+- **Un fitxer**: `filename.docx`
+- **Diversos fitxers**: `converted-documents.zip` amb un `.docx` per a cada PDF d'entrada.
+
+## Casos d'ús
+
+- Editar el text d'un PDF que has rebut i que necessites modificar.
+- Convertir informes PDF arxivats en un format que els companys puguin editar a Microsoft Word o Google Docs.
+- Passar contingut de contractes o propostes en PDF a Word per revisar-los amb control de canvis.
+- Migrar documentació antiga en PDF a un format editable.
+
+## Consells
+
+- Els dissenys complexos amb text en diverses columnes, formularis incrustats o molts gràfics poden no convertir-se perfectament. Revisa la sortida i ajusta el format al teu processador de textos.
+- Els PDF escanejats (només imatge) produiran fitxers DOCX buits o mínims. Passa'ls abans per OCR per afegir-hi una capa de text.
+- El mode en lot és eficient per convertir carpetes senceres de PDF: carrega'ls tots alhora.
+
+## Eines relacionades
+
+- [PDF a text](./pdf-to-text)
+- [PDF a Markdown](./pdf-to-markdown)
+- [Creador de fluxos de treball PDF](./pdf-workflow)
diff --git a/docs/ca/tools/pdf-to-zip.md b/docs/ca/tools/pdf-to-zip.md
new file mode 100644
index 00000000..ea575f95
--- /dev/null
+++ b/docs/ca/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF a ZIP
+description: Empaqueta diversos fitxers PDF en un únic arxiu ZIP per compartir-los i desar-los fàcilment.
+---
+
+# PDF a ZIP
+
+Agrupa diversos fitxers PDF en un únic arxiu ZIP. És una eina d'empaquetament senzilla: no es converteix, comprimeix ni modifica els PDF.
+
+## Com funciona
+
+1. Carrega diversos fitxers PDF amb la zona de càrrega.
+2. Revisa la llista de fitxers. Elimina els que no vulguis incloure.
+3. Fes clic al botó de processar.
+4. Un arxiu ZIP amb tots els PDF carregats es baixa immediatament.
+
+## Característiques
+
+- Accepta qualsevol nombre de fitxers PDF
+- Eliminació de fitxers individuals abans de crear l'arxiu
+- Conserva els noms de fitxer originals dins del ZIP
+- No modifica el contingut dels PDF: els fitxers s'empaqueten tal com són
+- Mostra el nom i la mida de cada PDF carregat
+
+## Casos d'ús
+
+- Agrupar un conjunt de factures o rebuts per adjuntar-los en un correu
+- Empaquetar lliurables d'un projecte (diversos informes en PDF) per al traspàs
+- Crear una única baixada per a una col·lecció de formularis o plantilles
+- Arxivar un lot de documents en un sol fitxer comprimit
+
+## Consells
+
+- El fitxer ZIP utilitza els noms de fitxer originals dels PDF. Si tens fitxers amb el mateix nom, canvia'ls abans de carregar-los per evitar conflictes.
+- Aquesta eina no comprimeix els PDF en si. Per reduir-ne la mida, passa'ls primer per Comprimeix PDF i després empaqueta'ls amb aquesta eina.
+
+## Eines relacionades
+
+- [Fusiona PDF](./merge-pdf)
+- [Divideix PDF](./split-pdf)
+- [Comprimeix PDF](./compress-pdf)
diff --git a/docs/ca/tools/pdf-workflow.md b/docs/ca/tools/pdf-workflow.md
new file mode 100644
index 00000000..53a41ba8
--- /dev/null
+++ b/docs/ca/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Creador de fluxos de treball PDF
+description: Crea fluxos de processament de PDF personalitzats de manera visual connectant nodes en un llenç. Encadena operacions com fusionar, comprimir, afegir marca d'aigua i exportar.
+---
+
+# Creador de fluxos de treball PDF
+
+El Creador de fluxos de treball et permet encadenar diverses operacions de PDF en un únic flux automatitzat. En lloc d'executar les eines una per una, connectes un graf visual de nodes (entrada, processament i sortida) i ho executes tot amb un clic. Els teus fitxers no surten mai del navegador.
+
+## Com funciona
+
+La interfície es divideix en tres panells: una **caixa de nodes** a l'esquerra, el **llenç** al centre i un **panell de paràmetres** a la dreta que apareix quan selecciones un node.
+
+1. **Afegeix nodes** fent-hi clic a la barra lateral esquerra o arrossegant-los directament al llenç. Utilitza la barra de cerca de la part superior de la caixa de nodes per filtrar per nom.
+2. **Connecta els nodes** arrossegant des d'un connector de sortida (a la part inferior d'un node) fins a un connector d'entrada (a la part superior d'un altre). Les connexions flueixen de dalt a baix.
+3. **Configura els paràmetres** fent clic en un node per obrir-ne el panell de paràmetres a la dreta. Cada tipus de node té les seves pròpies opcions (intervals de pàgines, controls lliscants de qualitat, contrasenyes, etc.).
+4. **Executa el flux de treball** fent clic al botó **Executa** de la barra d'eines. El motor executa els nodes en ordre topològic, processant-los un darrere l'altre. Una barra d'estat a la part inferior en mostra el progrés.
+5. **Baixa els resultats**: el node final Baixa desa el PDF resultant (o un ZIP si es generen diversos fitxers).
+
+## Categories de nodes
+
+Els nodes s'organitzen en sis categories, cadascuna amb un color diferent al llenç:
+
+- **Entrada** (blau): entrada de PDF, entrada d'imatges, Word/Excel/PowerPoint a PDF i més de 15 convertidors d'altres formats que alimenten el flux amb fitxers.
+- **Edita i anota** (índigo): retalla, escala de grisos, inverteix els colors, marca d'aigua, números de pàgina, capçalera i peu de pàgina, efecte d'escàner, ajusta els colors, color de fons, elimina les pàgines en blanc, elimina les anotacions.
+- **Organitza i gestiona** (violeta): fusiona, divideix, extreu pàgines, gira, suprimeix pàgines, inverteix, afegeix una pàgina en blanc, divideix pàgines, diverses pàgines per full, uniformitza la mida de pàgina, combina en una sola pàgina, fullet, pòster, edita les metadades, taula de continguts, OCR.
+- **Optimitza i repara** (ambre): comprimeix, rasteritza, linealitza, corregeix la inclinació, PDF a PDF/A, tipus de lletra a contorns, repara.
+- **Protegeix el PDF** (rosa): xifra, desxifra, sanititza, aplana, signatura digital, censura.
+- **Sortida** (verd blavós): baixa (detecta automàticament un sol PDF o un ZIP), PDF a imatges, PDF a text, PDF a DOCX, PDF a XLSX, PDF a CSV, PDF a SVG, PDF a Markdown, extreu imatges.
+
+## Desar i carregar fluxos de treball
+
+La barra d'eines ofereix quatre opcions de persistència:
+
+- **Desa**: desa el flux de treball actual com a plantilla amb nom a l'emmagatzematge local del navegador. Pots desar diverses plantilles.
+- **Carrega**: obre una finestra amb totes les plantilles desades. Fes clic a Carrega per restaurar-ne una, o suprimeix les plantilles que ja no necessitis.
+- **Exporta**: baixa el flux de treball com a fitxer `.json` perquè el puguis compartir o en facis una còpia de seguretat.
+- **Importa**: carrega un fitxer de flux de treball `.json` del disc, restaurant tots els nodes, les posicions i les connexions.
+
+Les plantilles es conserven entre sessions a l'emmagatzematge local. Els fitxers JSON exportats són portàtils entre navegadors i ordinadors.
+
+## Model d'execució
+
+El motor crea un graf de dependències a partir de les teves connexions i executa els nodes en ordre topològic. Si algun node falla, l'execució s'atura i el node amb error es marca en vermell. Cal tenir en compte unes quantes regles:
+
+- Cada flux de treball necessita almenys un node d'**Entrada** i un node de **Sortida**.
+- El motor detecta les dependències circulars i bloqueja l'execució amb un error.
+- El node **Xifra** ha de ser l'últim pas de processament abans del node de sortida. Si el col·loques abans, apareixerà un avís de validació perquè els nodes posteriors no poden operar amb dades xifrades.
+- Els PDF protegits amb contrasenya demanen la contrasenya durant l'execució.
+- S'admeten entrades de diversos PDF: el node Fusiona pot combinar-los, o els nodes de processament en lot processaran cada PDF individualment.
+
+## Tipus de connectors
+
+Les connexions utilitzen connectors tipats per evitar connexions no vàlides:
+
+- **PDF** (índigo): un sol document PDF.
+- **MultiPDF** (ambre): diversos documents PDF agrupats.
+- **Image** (verd): un blob d'imatge.
+
+## Opcions
+
+Cada node té la seva pròpia configuració accessible des del panell de paràmetres de la dreta. Els patrons habituals inclouen:
+
+- **Intervals de pàgines** als nodes Divideix, Extreu pàgines i Suprimeix pàgines
+- **Controls lliscants de qualitat** als nodes de sortida de conversió d'imatges
+- **Camps de contrasenya** als nodes Xifra i Desxifra
+- **Entrades de text** per a Marca d'aigua, Capçalera i peu de pàgina, Edita les metadades
+- **Angles de rotació** al node Gira
+- **Nivell de compressió** al node Comprimeix
+- **Selecció d'idioma d'OCR** al node OCR
+
+## Casos d'ús
+
+- **Flux de processament de factures**: entrada de PDF -> OCR -> Extreu taules -> Baixa com a CSV.
+- **Estandardització d'informes**: Word a PDF -> Uniformitza la mida de pàgina -> Afegeix números de pàgina -> Marca d'aigua -> Comprimeix -> Baixa.
+- **Preparació per a l'arxivament**: entrada de PDF -> Repara -> Aplana -> Sanititza -> PDF a PDF/A -> Baixa.
+- **Extracció d'imatges en lot**: entrada de PDF (diversos fitxers) -> Extreu imatges -> Baixa el ZIP.
+- **Fullets llestos per imprimir**: entrada de PDF -> Fullet -> Retalla -> Comprimeix -> Baixa.
+- **Distribució segura**: entrada de PDF -> Censura -> Elimina les anotacions -> Xifra -> Baixa.
+
+## Consells
+
+- Utilitza **Supr** o **Retrocés** per eliminar el node seleccionat del llenç.
+- Fes clic al botó **X** de la barra d'estat d'un node per suprimir-lo directament.
+- Desplaça el llenç fent clic i arrossegant sobre un espai buit. El cursor canvia a una icona de mà mentre es desplaça.
+- Al mòbil, utilitza el botó **+** de la barra d'eines per mostrar o amagar la caixa de nodes.
+- Si el flux de treball genera diversos fitxers de sortida, el node Baixa els agrupa automàticament en un ZIP.
+- Comença amb coses senzilles: crea i prova un flux de dos nodes abans d'afegir-hi complexitat.
+
+## Eines relacionades
+
+- [PDF a text](./pdf-to-text)
+- [PDF a Excel](./pdf-to-excel)
+- [Extreu imatges](./extract-images)
+- [PDF a Markdown](./pdf-to-markdown)
diff --git a/docs/ca/tools/png-to-pdf.md b/docs/ca/tools/png-to-pdf.md
new file mode 100644
index 00000000..09a2ce31
--- /dev/null
+++ b/docs/ca/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG a PDF
+description: Converteix una o més imatges PNG en un document PDF amb qualitat ajustable, íntegrament al navegador.
+---
+
+# PNG a PDF
+
+Converteix imatges PNG a PDF conservant-ne tota la resolució. Cada PNG es converteix en la seva pròpia pàgina, amb la mida de la imatge original. La transparència es gestiona automàticament.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :----- | :--------- |
+| PNG | `.png` |
+
+## Com funciona
+
+1. Fes clic a la zona de càrrega o arrossega-hi fitxers PNG. En pots seleccionar diversos alhora.
+2. Gestiona la llista de fitxers: elimina els que no vulguis o afegeix-ne més.
+3. Tria un nivell de **qualitat del PDF** al menú desplegable.
+4. Fes clic a **Converteix a PDF**. La sortida es baixa com a `from_jpgs.pdf`.
+
+L'eina utilitza pdf-lib per incrustar cada imatge directament. Si un PNG no es pot incrustar de manera nativa (p. ex., per un perfil de color poc habitual), recorre a tornar-lo a renderitzar mitjançant un canvas com a JPEG.
+
+## Opcions
+
+La **qualitat del PDF** controla la compressió aplicada abans d'incrustar:
+
+- **Qualitat alta**: compressió mínima, mida de fitxer més gran.
+- **Qualitat mitjana** (per defecte): bon equilibri entre mida i claredat.
+- **Qualitat baixa**: compressió màxima, sortida més petita.
+
+## Casos d'ús
+
+- Convertir captures de pantalla en un PDF de diverses pàgines per a informes d'errors o documentació
+- Empaquetar exportacions de disseny d'interfícies en un sol fitxer per revisar-lo
+- Convertir exportacions de diagrames (draw.io, Excalidraw) en un PDF compartible
+- Reunir un conjunt d'imatges de gràfics en un informe
+
+## Consells
+
+- Els fitxers PNG amb transparència obtenen un fons blanc al PDF. Si necessites un fons diferent, edita les imatges abans.
+- Per a captures de pantalla i diagrames amb vores nítides i text, la qualitat alta evita els artefactes de compressió JPEG. La qualitat mitjana o baixa pot convertir internament a JPEG.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
+- [SVG a PDF](./svg-to-pdf)
diff --git a/docs/ca/tools/posterize-pdf.md b/docs/ca/tools/posterize-pdf.md
new file mode 100644
index 00000000..d7ea50c2
--- /dev/null
+++ b/docs/ca/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Divideix PDF en format pòster
+description: Divideix les pàgines d'un PDF en una quadrícula de pàgines més petites per imprimir en gran format repartit en diversos fulls.
+---
+
+# Divideix PDF en format pòster
+
+Divideix cada pàgina d'un PDF en una quadrícula de subpàgines més petites. És l'eina per imprimir una sola pàgina repartida en diversos fulls de paper, que després pots unir per crear un pòster o una pancarta gran.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Defineix el nombre de **files** i **columnes** de la quadrícula (p. ex., 2 files x 2 columnes divideix cada pàgina en 4 subpàgines).
+3. Opcionalment, indica un interval de pàgines per limitar quines pàgines es divideixen.
+4. El llenç de previsualització mostra una quadrícula superposada a la pàgina actual perquè visualitzis els talls.
+5. Navega entre pàgines per comprovar la quadrícula a les altres pàgines.
+6. Fes clic al botó de processar. Cada cel·la de la quadrícula es converteix en una pàgina pròpia del PDF resultant.
+
+## Funcions
+
+- Nombre de files i columnes configurable per a quadrícules flexibles
+- Previsualització en directe amb la quadrícula superposada que mostra exactament on es dividiran les pàgines
+- Filtre d'interval de pàgines per dividir només pàgines concretes
+- Navegació pàgina a pàgina a la previsualització
+- Instantànies de pàgina en memòria cau per navegar ràpidament per la previsualització
+- Les línies vermelles discontínues de la quadrícula marquen clarament els límits de tall
+
+## Opcions
+
+| Opció | Descripció |
+| ----------------------- | ------------------------------------------------- |
+| **Files** | Nombre de divisions horitzontals (per defecte: 1) |
+| **Columnes** | Nombre de divisions verticals (per defecte: 1) |
+| **Interval de pàgines** | Quines pàgines es divideixen (buit = totes) |
+
+## Casos d'ús
+
+- Imprimir un PDF de mida pòster en fulls A4 o Letter estàndard per muntar-lo a la paret
+- Crear pancartes grans a partir d'un disseny PDF d'una sola pàgina
+- Dividir plànols tècnics de grans dimensions en peces imprimibles
+- Fer impressions de gran format sense tenir una impressora de format ample
+
+## Consells
+
+- Una quadrícula de 2x2 converteix una pàgina en 4 pàgines. Una de 3x3 la converteix en 9. Planifica la quadrícula segons la mida que vulguis que tingui el resultat final muntat.
+- La quadrícula de la previsualització t'ajuda a comprovar que el contingut important no queda sobre una línia de tall. Ajusta les files i columnes si cal.
+- Per a l'operació inversa (encabir diverses pàgines en un full), utilitza [PDF amb diverses pàgines per full](./n-up-pdf).
+
+## Eines relacionades
+
+- [PDF amb diverses pàgines per full](./n-up-pdf)
+- [Divideix pàgines](./divide-pages)
+- [Divideix PDF](./split-pdf)
diff --git a/docs/ca/tools/powerpoint-to-pdf.md b/docs/ca/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..c0ada4e5
--- /dev/null
+++ b/docs/ca/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint a PDF
+description: Converteix presentacions de PowerPoint (PPT, PPTX) i fitxers ODP a PDF conservant el format de les diapositives.
+---
+
+# PowerPoint a PDF
+
+Converteix fitxers de presentació a PDF. Cada diapositiva es converteix en una pàgina del document resultant, amb text, imatges, formes i transicions renderitzats mitjançant un motor LibreOffice que s'executa al navegador. Admet tant els formats moderns com els antics de PowerPoint, i també el format OpenDocument Presentation.
+
+## Formats admesos
+
+| Format | Extensions |
+| :------------------------ | :--------- |
+| PowerPoint (modern) | `.pptx` |
+| PowerPoint (antic) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar les presentacions.
+2. Revisa la llista de fitxers. Afegeix-ne més o elimina'n els que no calguin.
+3. Fes clic a **Converteix a PDF**. El motor LibreOffice es carrega la primera vegada que l'utilitzes i després converteix cada fitxer.
+4. Un sol fitxer es descarrega directament com a PDF. Diversos fitxers s'empaqueten a `powerpoint-converted.zip`.
+
+## Opcions
+
+Aquesta eina no té cap configuració addicional. Les diapositives es renderitzen amb les dimensions originals.
+
+## Resultat
+
+| Nombre de fitxers | Resultat |
+| :---------------- | :----------------------------------------------------------- |
+| 1 fitxer | Descàrrega d'un sol PDF (nom original amb extensió `.pdf`) |
+| 2 o més fitxers | Arxiu ZIP (`powerpoint-converted.zip`) amb un PDF per fitxer |
+
+## Casos d'ús
+
+- Convertir una presentació a PDF abans de compartir-la amb un públic que potser no té PowerPoint
+- Crear una versió imprimible d'una presentació com a material per a una conferència o un taller
+- Arxivar presentacions en un format que es veu igual a tots els dispositius
+- Convertir per lots una biblioteca de presentacions ODP de LibreOffice Impress a PDF
+- Generar una versió PDF d'una presentació comercial per adjuntar-la a un correu
+
+## Consells
+
+- Les animacions i transicions de les diapositives no es representen al PDF. Cada diapositiva es captura com a pàgina estàtica.
+- Els vídeos incrustats no apareixeran al resultat. Substitueix-los per una captura de pantalla o una imatge de marcador de posició si cal.
+- Les notes de l'orador no s'inclouen a l'exportació a PDF per defecte. Si necessites les notes, considera exportar primer des de la vista nativa «Imprimeix notes» de PowerPoint.
+- El motor LibreOffice es guarda a la memòria cau després de la primera càrrega, de manera que convertir una segona presentació a la mateixa sessió és molt més ràpid.
+
+## Eines relacionades
+
+- [Word a PDF](./word-to-pdf)
+- [Excel a PDF](./excel-to-pdf)
+- [Imatges a PDF](./image-to-pdf)
diff --git a/docs/ca/tools/prepare-pdf-for-ai.md b/docs/ca/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..d7c73228
--- /dev/null
+++ b/docs/ca/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Prepara PDF per a IA
+description: Extreu el contingut d'un PDF en JSON estructurat optimitzat per a LLM i fluxos d'IA com LlamaIndex. Admet processament per lots.
+---
+
+# Prepara PDF per a IA
+
+Extreu el contingut de fitxers PDF i l'estructura en JSON optimitzat per ser ingerit per models de llenguatge grans (LLM) i frameworks d'IA com LlamaIndex. El contingut de cada pàgina s'extreu i s'organitza en un format estructurat llest per a fluxos RAG, xatbots o sistemes de cerca semàntica.
+
+## Com funciona
+
+1. Puja un o més PDF fent clic a la zona de càrrega o arrossegant-hi fitxers.
+2. Fes clic a **Extreu** per iniciar el processament.
+3. Un sol fitxer es descarrega com a `filename_llm.json`. Diversos fitxers produeixen un arxiu `pdf-for-ai.zip`.
+
+L'eina utilitza la integració de PyMuPDF amb LlamaIndex per extreure el contingut per pàgines amb metadades, i genera un resultat que es pot carregar directament en frameworks d'IA.
+
+## Opcions
+
+Aquesta eina no té cap opció configurable. Totes les pàgines s'extreuen amb text complet i metadades.
+
+## Format de sortida
+
+- **Un sol fitxer**: `filename_llm.json`
+- **Diversos fitxers**: `pdf-for-ai.zip` amb un `_llm.json` per cada PDF d'entrada.
+
+El JSON resultant segueix l'esquema de documents de LlamaIndex, amb el contingut de text de cada pàgina i camps de metadades.
+
+## Casos d'ús
+
+- Preparar documents PDF per a fluxos de generació augmentada per recuperació (RAG).
+- Crear una base de coneixement cercable a partir d'arxius PDF per a un xatbot d'IA.
+- Alimentar fluxos d'anàlisi basats en LLM amb informes en PDF.
+- Preprocessar articles de recerca per a sistemes de cerca semàntica i de preguntes i respostes.
+- Crear dades d'entrenament estructurades a partir de col·leccions de documents PDF.
+
+## Consells
+
+- Per extreure text pla sense format específic per a IA, utilitza [PDF a text](./pdf-to-text).
+- Per obtenir una sortida en Markdown que conservi els encapçalaments i l'estructura, utilitza [PDF a Markdown](./pdf-to-markdown).
+- Els PDF escanejats produiran un resultat buit o mínim. Passa'ls primer per l'OCR per afegir-hi una capa de text abans d'extreure.
+
+## Eines relacionades
+
+- [PDF a text](./pdf-to-text)
+- [PDF a Markdown](./pdf-to-markdown)
+- [PDF a JSON](./pdf-to-json)
diff --git a/docs/ca/tools/protect-pdf.md b/docs/ca/tools/protect-pdf.md
new file mode 100644
index 00000000..eb73a400
--- /dev/null
+++ b/docs/ca/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Protegeix PDF
+description: Protegeix fitxers PDF amb contrasenya mitjançant xifratge AES de 256 bits. Defineix contrasenyes d'usuari i de propietari amb restriccions d'ús configurables.
+---
+
+# Protegeix PDF
+
+Bloqueja el PDF amb una contrasenya perquè només les persones autoritzades puguin obrir-lo. BentoPDF utilitza xifratge AES de 256 bits (el mateix estàndard que fan servir bancs i agències governamentals), aplicat íntegrament al navegador mitjançant QPDF.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Introdueix una **contrasenya d'usuari** (obligatòria). És la contrasenya que caldrà per obrir el fitxer.
+3. Opcionalment, introdueix una **contrasenya de propietari**. Si l'estableixes, el PDF adquireix restriccions d'ús que impedeixen imprimir, editar, copiar i anotar.
+4. Fes clic a **Xifra PDF**.
+5. Descarrega el fitxer xifrat.
+
+## Tipus de contrasenya
+
+### Contrasenya d'usuari (obligatòria)
+
+La contrasenya d'usuari és la que els destinataris escriuen per obrir el PDF. Sense ella, el document és totalment inaccessible. Tot PDF xifrat n'ha de tenir una.
+
+### Contrasenya de propietari (opcional)
+
+La contrasenya de propietari controla què pot fer un usuari autoritzat després d'obrir el fitxer. Quan estableixes una contrasenya de propietari diferent, BentoPDF aplica automàticament el conjunt de restriccions més estricte:
+
+- Modificació desactivada
+- Extracció o còpia desactivada
+- Impressió desactivada
+- Anotació desactivada
+- Emplenament de formularis desactivat
+- Muntatge del document desactivat
+
+Si deixes en blanc la contrasenya de propietari, el PDF queda xifrat (cal la contrasenya d'usuari per obrir-lo) però no té cap restricció d'ús un cop obert.
+
+## Detalls del xifratge
+
+- **Algorisme**: AES-256 (Advanced Encryption Standard de 256 bits)
+- **Longitud de la clau**: 256 bits
+- **Estàndard**: xifratge PDF 2.0 (implementació de QPDF)
+
+Amb la tecnologia actual, és computacionalment inviable trencar AES-256 per força bruta. La seguretat del PDF xifrat depèn totalment de la fortalesa de la contrasenya.
+
+## Casos d'ús
+
+- Protegir informes financers confidencials abans d'enviar-los per correu
+- Protegir documents legals compartits amb la part contrària
+- Afegir una contrasenya a historials mèdics o a informació d'identificació personal
+- Distribuir contingut de pagament (llibres electrònics, informes) amb control d'accés
+- Complir polítiques de protecció de dades que exigeixen xifratge en repòs
+
+## Consells
+
+- Utilitza una contrasenya forta i única. Una frase de pas de 12 o més caràcters amb majúscules, minúscules, números i símbols és ideal.
+- Comparteix la contrasenya per un canal diferent (telèfon, missatge de text), mai al mateix correu que el PDF.
+- Si només vols restringir accions (sense imprimir ni copiar) sense exigir contrasenya per obrir-lo, utilitza l'eina Canvia els permisos.
+
+## Eines relacionades
+
+- [Desxifra PDF](./unlock-pdf): elimina el xifratge quan coneguis la contrasenya
+- [Canvia els permisos](./change-permissions): modifica restriccions d'ús concretes
+- [Elimina les restriccions](./remove-restrictions): elimina tota la seguretat d'un PDF
+- [Neteja PDF](./sanitize-pdf): elimina el contingut ocult abans de xifrar
diff --git a/docs/ca/tools/psd-to-pdf.md b/docs/ca/tools/psd-to-pdf.md
new file mode 100644
index 00000000..0de21360
--- /dev/null
+++ b/docs/ca/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD a PDF
+description: Converteix fitxers de Photoshop (PSD) a PDF al navegador. Gratuït, privat i sense necessitat de programari d'Adobe.
+---
+
+# PSD a PDF
+
+Converteix fitxers PSD d'Adobe Photoshop en documents PDF. PSD és el format natiu de Photoshop i obrir-lo normalment requereix programari d'Adobe car. Aquesta eina renderitza la imatge composta aplanada del fitxer PSD com a pàgina PDF a resolució completa.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :-------------- | :------- | :------------------------------------- |
+| Adobe Photoshop | `.psd` | Renderitza la imatge composta aplanada |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers PSD. Se n'admeten diversos.
+2. Revisa la llista de fitxers. Elimina els que no vulguis amb la icona de la paperera, o utilitza **Afegeix més fitxers** per incloure'n més.
+3. Fes clic a **Converteix a PDF**. El motor PyMuPDF llegeix el fitxer PSD i incrusta la imatge composta en una pàgina PDF a la resolució original.
+4. Un sol PSD produeix un PDF. Quan puges diversos fitxers PSD, es combinen en un únic PDF de diverses pàgines anomenat `psd_to_pdf.pdf`, on cada PSD es converteix en una pàgina.
+
+## Opcions
+
+No cal cap configuració. El convertidor utilitza les dades d'imatge aplanades del fitxer PSD.
+
+## Casos d'ús
+
+- Previsualitzar dissenys de Photoshop sense obrir Photoshop
+- Enviar proves de disseny a clients que no tenen Adobe Creative Suite
+- Imprimir il·lustracions d'alta resolució a partir de fitxers PSD
+- Crear un porfolio en PDF a partir de diversos fitxers de disseny PSD: cadascun es converteix en una pàgina d'un únic document
+
+## Consells
+
+- La conversió renderitza la vista composta (aplanada) del PSD. Les capes individuals, les capes d'ajust i els efectes de capa no es conserven com a elements separats al PDF.
+- Els fitxers PSD múltiples es fusionen en un PDF de diverses pàgines en lloc de PDF individuals. Això és útil per crear porfolis o catàlegs.
+- Els fitxers PSD de resolució molt alta (fitxers d'impressió de 300 o més DPI) produiran PDF grans. L'eina conserva la resolució completa.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [VSD a PDF](./vsd-to-pdf)
diff --git a/docs/ca/tools/pub-to-pdf.md b/docs/ca/tools/pub-to-pdf.md
new file mode 100644
index 00000000..c75aa4ea
--- /dev/null
+++ b/docs/ca/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB a PDF
+description: Converteix fitxers de Microsoft Publisher (PUB) a PDF al navegador. Gratuït, privat i sense necessitat de cap programari.
+---
+
+# PUB a PDF
+
+Converteix fitxers de Microsoft Publisher en PDF. Publisher és una eina d'autoedició inclosa en algunes edicions de Microsoft Office, però la majoria de persones no la tenen instal·lada. Aquesta eina permet a qualsevol convertir fitxers PUB a PDF directament al navegador, sense programari de Microsoft.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :------------------ | :------- | :--------------------- |
+| Microsoft Publisher | `.pub` | Documents d'autoedició |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers PUB. Pots pujar-ne diversos alhora.
+2. Revisa la llista de fitxers. Elimina els que no vulguis amb la icona de la paperera, o fes clic a **Afegeix més fitxers** per afegir-ne més.
+3. Fes clic a **Converteix a PDF**. Un motor basat en LibreOffice es carrega al navegador i converteix cada fitxer PUB, conservant el disseny, les imatges i els quadres de text.
+4. Un sol fitxer es descarrega directament com a PDF. Diversos fitxers es lliuren en un arxiu ZIP anomenat `pub-to-pdf.zip`.
+
+## Opcions
+
+No cal cap configuració addicional. El convertidor gestiona automàticament el motor de disseny de PUB.
+
+## Casos d'ús
+
+- Obrir un full volant o un butlletí PUB d'un client sense comprar Microsoft Publisher
+- Convertir fulls parroquials, programes d'esdeveniments o butlletins escolars creats amb Publisher
+- Arxivar material de màrqueting de Publisher en un format accessible per a tothom
+- Imprimir fitxers PUB en un sistema que no té Publisher instal·lat
+
+## Consells
+
+- Els dissenys complexos de Publisher amb quadres de text superposats i posicionament precís poden desplaçar-se lleugerament durant la conversió. Revisa el resultat si la posició exacta és crítica.
+- El motor LibreOffice s'inicialitza una vegada per sessió. La primera conversió triga més; les següents són més ràpides.
+- Per obtenir la conversió més fidel dels fitxers de Publisher, assegura't que els tipus de lletra personalitzats de l'original siguin tipus de lletra estàndard del sistema.
+
+## Eines relacionades
+
+- [VSD a PDF](./vsd-to-pdf)
+- [ODP a PDF](./odp-to-pdf)
diff --git a/docs/ca/tools/rasterize-pdf.md b/docs/ca/tools/rasterize-pdf.md
new file mode 100644
index 00000000..077f33ee
--- /dev/null
+++ b/docs/ca/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasteritza PDF
+description: Converteix les pàgines d'un PDF en un PDF basat en imatges. Aplana totes les capes, elimina el text seleccionable i controla els DPI i el format d'imatge.
+---
+
+# Rasteritza PDF
+
+La rasterització converteix cada pàgina d'un PDF en una imatge i torna a muntar aquestes imatges en un PDF. El resultat es veu idèntic a l'original però no conté text seleccionable, ni elements interactius, ni capes editables. És, en la pràctica, una fotocòpia d'alta qualitat.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF.
+2. Defineix els **DPI** (resolució) de la sortida rasteritzada.
+3. Tria un **format d'imatge**: PNG per a qualitat sense pèrdua o JPEG per a fitxers més petits.
+4. Opcionalment, marca **Converteix a escala de grisos**.
+5. Fes clic a **Rasteritza PDF**. Si hi ha diversos fitxers, es descarreguen en un ZIP.
+
+## Opcions
+
+| Paràmetre | Valors | Per defecte |
+| -------------------- | ------------------------------------ | ----------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Format d'imatge** | PNG (sense pèrdua), JPEG (més petit) | PNG |
+| **Escala de grisos** | Activat/Desactivat | Desactivat |
+
+## Orientacions sobre els DPI
+
+- **72**: només per veure en pantalla, la mida de fitxer més petita
+- **150**: bon equilibri per a l'ús general
+- **200**: text més nítid, mida de fitxer moderada
+- **300**: sortida amb qualitat d'impressió
+- **600**: arxiu d'alta qualitat o impressió professional
+
+## Casos d'ús
+
+- Evitar l'extracció de text de documents confidencials abans de compartir-los
+- Eliminar problemes de dependència de tipus de lletra convertint el text en píxels
+- Crear una versió «plana» d'un PDF amb capes complexes o transparències que es renderitza diferent en cada visor
+- Preparar un PDF per a un sistema que només accepta entrada basada en imatges
+- Eliminar el contingut ocult (com els canvis de seguiment o les dades de formulari) reduint el PDF a imatges pures
+
+## Consells
+
+- 150 DPI amb PNG és una bona opció per defecte. Puja'l només si necessites sortida per a impressió o has d'ampliar detalls fins.
+- JPEG produeix fitxers notablement més petits però introdueix artefactes de compressió a les vores nítides del text.
+- La rasterització és irreversible: conserva el PDF original si més endavant pots necessitar text editable.
+
+## Eines relacionades
+
+- [Comprimeix PDF](./compress-pdf): redueix la mida del PDF rasteritzat
+- [Redreça PDF](./deskew-pdf): redreça les pàgines abans de rasteritzar documents escanejats
+- [Converteix tipus de lletra en contorns](./font-to-outline): converteix els tipus de lletra en traçats vectorials si vols conservar l'escalabilitat
+- [Aplana PDF](./flatten-pdf): aplana formularis sense convertir-los en imatges
diff --git a/docs/ca/tools/remove-annotations.md b/docs/ca/tools/remove-annotations.md
new file mode 100644
index 00000000..1d41f330
--- /dev/null
+++ b/docs/ca/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Elimina les anotacions
+description: Elimina tots els comentaris, ressaltats, enllaços i altres anotacions del PDF amb un sol clic.
+---
+
+# Elimina les anotacions
+
+Neteja el PDF eliminant-ne totes les anotacions: comentaris, ressaltats, notes adhesives, marcatge de text, enllaços, segells i qualsevol altre objecte d'anotació incrustat al document. El contingut de fons de les pàgines (text, imatges, gràfics) queda intacte.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. L'eina detecta el nombre de pàgines del document i mostra la informació del fitxer.
+3. Fes clic a **Elimina les anotacions** per processar-lo.
+4. El PDF net es descarrega automàticament sense cap anotació.
+
+## Funcions
+
+- Elimina tots els tipus d'anotació: comentaris, ressaltats, subratllats, tacats, notes adhesives, segells, enllaços i marcatge de formularis
+- Actua sobre totes les pàgines del document
+- Conserva tot el contingut que no és anotació (text, imatges, gràfics vectorials, camps de formulari)
+- Mostra el nombre de pàgines i la mida del fitxer abans de processar
+
+## Casos d'ús
+
+- Netejar un document abans de la distribució final després d'un cicle de revisió en què diversos revisors han afegit comentaris
+- Eliminar el marcatge de ressaltats i les notes adhesives d'una guia d'estudi compartida
+- Eliminar les anotacions d'enllaç d'un document abans d'arxivar-lo
+- Preparar una versió «neta» d'un document legal que s'ha anotat intensament durant una negociació
+- Eliminar els comentaris dels revisors d'un manuscrit abans d'enviar-lo a impremta
+
+## Consells
+
+- Aquesta eina elimina les anotacions a nivell d'estructura del PDF, de manera que el resultat manté el text seleccionable i la qualitat original, sense cap rasterització.
+- Si només vols eliminar anotacions concretes i no totes, utilitza l'[Editor de PDF](./edit-pdf) per suprimir-ne de manera selectiva.
+- Les anotacions dels PDF aplanats (on les anotacions s'han fusionat amb el contingut de la pàgina) no es poden eliminar perquè ja no són objectes separats.
+
+## Eines relacionades
+
+- [Editor de PDF](./edit-pdf)
+- [Afegeix una marca d'aigua](./add-watermark)
+- [Signa PDF](./sign-pdf)
diff --git a/docs/ca/tools/remove-blank-pages.md b/docs/ca/tools/remove-blank-pages.md
new file mode 100644
index 00000000..836eb22a
--- /dev/null
+++ b/docs/ca/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Elimina les pàgines en blanc
+description: Detecta i elimina automàticament les pàgines en blanc o gairebé en blanc del PDF amb sensibilitat ajustable.
+---
+
+# Elimina les pàgines en blanc
+
+Analitza el PDF a la cerca de pàgines en blanc o gairebé en blanc i elimina-les automàticament. L'eina renderitza cada pàgina i n'analitza el contingut de píxels per determinar si és en blanc, i després et deixa confirmar quines pàgines s'eliminen abans de processar.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. Ajusta el control lliscant de **Sensibilitat** per controlar com d'estricta és la definició de «en blanc».
+3. Fes clic a **Detecta pàgines en blanc** per analitzar el document.
+4. L'eina mostra miniatures de les pàgines en blanc detectades perquè les revisis.
+5. Confirma la selecció i descarrega el PDF net sense les pàgines en blanc.
+
+## Opcions
+
+- **Sensibilitat**: un control lliscant del 0 % al 100 % (per defecte, 80 %). Els valors alts són més estrictes i només marquen pàgines completament o gairebé blanques. Els valors baixos són més permissius i detecten pàgines amb contingut mínim, com un sol punt o una marca d'aigua tènue.
+
+## Funcions
+
+- Anàlisi a nivell de píxel de cada pàgina per detectar contingut en blanc
+- Control lliscant de sensibilitat ajustable per afinar la detecció
+- Previsualització en miniatura de les pàgines en blanc detectades per a la verificació manual
+- Conserva exactament com són totes les pàgines que no són en blanc
+- Admet documents de qualsevol mida o nombre de pàgines
+- Indicador de progrés durant l'anàlisi
+
+## Casos d'ús
+
+- Netejar documents escanejats on l'escàner ha capturat el revers buit d'originals d'una sola cara
+- Eliminar pàgines separadores de lots de documents escanejats en massa
+- Eliminar pàgines en blanc inserides per sistemes de gestió documental
+- Netejar PDF exportats de processadors de textos que de vegades inclouen pàgines en blanc al final
+- Reduir la mida del fitxer eliminant pàgines buides innecessàries
+
+## Consells
+
+- Comença amb la sensibilitat per defecte del 80 % i ajusta-la a partir d'aquí. Si l'eina no detecta pàgines que a tu et semblen en blanc, redueix la sensibilitat. Si marca pàgines amb contingut lleuger que vols conservar, augmenta-la.
+- L'eina renderitza cada pàgina per analitzar-ne el contingut, de manera que el temps de processament augmenta amb el nombre de pàgines. En documents molt grans, compta amb una espera breu.
+- Revisa les pàgines en blanc detectades a la previsualització en miniatura abans de confirmar l'eliminació. Les pàgines amb capçaleres, peus o marques d'aigua tènues poden quedar marcades segons la sensibilitat configurada.
+
+## Eines relacionades
+
+- [Retalla PDF](./crop-pdf)
+- [Editor de PDF](./edit-pdf)
+- [Números de pàgina](./page-numbers)
diff --git a/docs/ca/tools/remove-metadata.md b/docs/ca/tools/remove-metadata.md
new file mode 100644
index 00000000..87fca82c
--- /dev/null
+++ b/docs/ca/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Elimina les metadades
+description: Elimina totes les metadades ocultes dels fitxers PDF, com l'autor, el títol, la data de creació, el productor, les dades XMP i els identificadors de document.
+---
+
+# Elimina les metadades
+
+Tot PDF porta metadades que poden revelar qui l'ha creat, quin programari s'ha utilitzat, quan es va modificar per última vegada i més. Aquesta eina ho elimina tot (el diccionari d'informació, els fluxos de metadades XMP, els identificadors de document i les dades específiques d'aplicacions) i deixa un document net sense cap rastre del seu origen.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Fes clic a **Elimina les metadades**.
+3. Descarrega el fitxer net.
+
+No hi ha opcions per configurar. L'eina és exhaustiva per disseny: ho esborra tot.
+
+## Què s'elimina
+
+- **Camps del diccionari d'informació**: títol, autor, assumpte, paraules clau, creador, productor, data de creació, data de modificació
+- **Flux de metadades XMP**: el bloc de metadades basat en XML emmagatzemat al catàleg del document
+- **Identificadors de document**: identificadors únics al tràiler del PDF que es poden utilitzar per rastrejar un document entre sistemes
+- **PieceInfo**: metadades específiques d'aplicacions afegides per programes com Illustrator o InDesign
+
+## Què es conserva
+
+- Tot el contingut visible de les pàgines (text, imatges, gràfics)
+- Camps de formulari i anotacions
+- Marcadors i enllaços
+- L'estructura del document en si
+
+## Casos d'ús
+
+- Eliminar el teu nom i organització d'un document abans de publicar-lo de manera anònima
+- Eliminar les marques de temps de creació que revelen quan es va preparar un document
+- Netejar les cadenes de productor que identifiquen el teu programari PDF
+- Preparar documents per a presentacions reguladores que exigeixen PDF sense metadades
+- Eliminar els rastres de l'historial d'edició abans de compartir un document externament
+
+## Consells
+
+- Utilitza primer l'eina Visualitza les metadades per veure exactament quines metadades conté el PDF abans d'eliminar-les.
+- Si necessites eliminar les metadades _i també_ JavaScript, anotacions i fitxers incrustats, utilitza Neteja PDF per fer una neteja més exhaustiva.
+- L'eliminació de metadades és permanent. Conserva l'original si més endavant pots necessitar aquestes dades.
+
+## Eines relacionades
+
+- [Neteja PDF](./sanitize-pdf): elimina les metadades i també scripts, fitxers adjunts i més
+- [Xifra PDF](./protect-pdf): protegeix amb contrasenya el PDF net
+- [Comprimeix PDF](./compress-pdf): eliminar les metadades pot reduir lleugerament la mida del fitxer; comprimeix per estalviar-ne més
diff --git a/docs/ca/tools/remove-restrictions.md b/docs/ca/tools/remove-restrictions.md
new file mode 100644
index 00000000..58e7169f
--- /dev/null
+++ b/docs/ca/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Elimina les restriccions
+description: Elimina la protecció amb contrasenya, les restriccions d'impressió, els bloquejos d'edició i els límits de còpia dels fitxers PDF.
+---
+
+# Elimina les restriccions
+
+Els PDF poden tenir dos tipus de contrasenya: una contrasenya d'usuari (necessària per obrir el fitxer) i una contrasenya de propietari (que controla què pots fer amb ell). Aquesta eina elimina totes dues, juntament amb totes les restriccions associades: bloquejos d'impressió, edició, còpia i anotació.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Si el PDF té una contrasenya de propietari, introdueix-la al camp **Contrasenya de propietari**. Deixa'l en blanc si el PDF només té restriccions d'ús sense contrasenya.
+3. Fes clic a **Elimina les restriccions**.
+4. Descarrega el PDF sense restriccions.
+
+L'eina utilitza els indicadors `--decrypt` i `--remove-restrictions` de QPDF per produir una còpia neta i sense restriccions.
+
+## Què s'elimina
+
+- La protecció amb contrasenya (tant la d'usuari com la de propietari)
+- Les restriccions d'impressió
+- Les restriccions d'edició
+- Les restriccions de còpia de text i imatges
+- Les restriccions d'anotació i comentaris
+- Qualsevol altra limitació de seguretat codificada al PDF
+
+## Casos d'ús
+
+- Desbloquejar un PDF teu del qual vas establir la contrasenya fa anys
+- Eliminar les restriccions d'impressió d'un document al qual tens accés legítim
+- Activar la còpia i enganxament en material de referència per prendre apunts
+- Preparar PDF per a eines d'accessibilitat que no admeten documents restringits
+
+## Consells
+
+- Has de saber la contrasenya de propietari si n'hi ha una. Aquesta eina no desxifra ni força contrasenyes per força bruta.
+- Si vols mantenir el fitxer xifrat però canviar permisos concrets, utilitza l'eina Canvia els permisos.
+- El fitxer resultant no té cap xifratge: qualsevol persona que el rebi el pot obrir lliurement.
+
+## Eines relacionades
+
+- [Desxifra PDF](./unlock-pdf): desbloqueja un PDF quan coneixes la contrasenya d'usuari
+- [Xifra PDF](./protect-pdf): torna a aplicar el xifratge amb una configuració nova
+- [Canvia els permisos](./change-permissions): modifica de manera selectiva quines accions es permeten
diff --git a/docs/ca/tools/repair-pdf.md b/docs/ca/tools/repair-pdf.md
new file mode 100644
index 00000000..295ab5ce
--- /dev/null
+++ b/docs/ca/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Repara PDF
+description: Recupera dades de fitxers PDF corruptes o danyats amb el motor de reparació de QPDF. Admet processament per lots.
+---
+
+# Repara PDF
+
+Quan un PDF no s'obre, mostra contingut il·legible o provoca errors al visor, aquesta eina intenta reconstruir-ne l'estructura interna. Utilitza el motor de reparació de QPDF, que pot recuperar dades de molts tipus de corrupció: taules de referències creuades trencades, fluxos truncats, referències d'objecte no vàlides i més.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF danyats.
+2. Fes clic a **Repara PDF**.
+3. Un sol fitxer reparat es descarrega directament. Diversos fitxers produeixen un arxiu ZIP.
+
+L'eina passa cada fitxer per QPDF amb l'indicador `--decrypt`, que força QPDF a llegir i reescriure tota l'estructura del PDF, corregint pel camí els problemes recuperables.
+
+## Funcions
+
+- Reparació per lots de diversos PDF en una sola operació
+- Detecció automàtica de fitxers recuperables i no recuperables
+- Informe d'èxit o error per fitxer quan se'n processen diversos
+- Utilitza QPDF (WebAssembly), una biblioteca de transformació de PDF molt contrastada
+
+## Què pot corregir
+
+- Taules de referències creuades trencades o inexistents
+- Finals de fitxer truncats per descàrregues incompletes
+- Numeració d'objectes i longituds de flux no vàlides
+- Incoherències estructurals menors de generadors de PDF amb errors
+- Artefactes de xifratge d'intents de desxifratge fallits
+
+## Què no pot corregir
+
+- Fitxers molt truncats on falta la major part de les dades de contingut
+- PDF xifrats amb una contrasenya que no tens
+- Fitxers que en realitat no són PDF (extensió de fitxer incorrecta)
+- Corrupció d'imatges dins del PDF (l'estructura es corregeix, però les dades de píxels no es regeneren)
+
+## Casos d'ús
+
+- Recuperar un PDF d'una descàrrega de correu fallida
+- Obrir fitxers produïts per generadors de PDF antics o no estàndard
+- Corregir PDF que funcionen en un visor però no en un altre
+- Preparar documents d'arxiu danyats per a l'emmagatzematge a llarg termini
+
+## Consells
+
+- Si la reparació falla, prova d'obrir primer el fitxer en un navegador: els navegadors tenen la seva pròpia lògica de recuperació i potser renderitzen prou contingut per tornar-lo a desar.
+- Per als PDF xifrats que fallen en la reparació, prova primer Desxifra PDF i després repara el resultat desxifrat.
+
+## Eines relacionades
+
+- [Comprimeix PDF](./compress-pdf): neteja encara més l'estructura del PDF reparat
+- [Linealitza PDF](./linearize-pdf): optimitza el fitxer reparat per a la distribució web
+- [Aplana PDF](./flatten-pdf): aplana formularis que poden haver quedat danyats
diff --git a/docs/ca/tools/reverse-pages.md b/docs/ca/tools/reverse-pages.md
new file mode 100644
index 00000000..7d1f6d4a
--- /dev/null
+++ b/docs/ca/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Inverteix l'ordre de les pàgines
+description: Inverteix l'ordre de les pàgines d'un o més fitxers PDF perquè l'última pàgina passi a ser la primera.
+---
+
+# Inverteix l'ordre de les pàgines
+
+Inverteix l'ordre de les pàgines d'un PDF perquè l'última passi a ser la primera, la penúltima la segona, i així successivament. Admet el processament per lots de diversos fitxers alhora.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF.
+2. Fes clic al botó de processament.
+3. Cada fitxer s'inverteix de manera independent. Si has pujat diversos fitxers, el resultat és un arxiu ZIP amb tots els PDF invertits.
+4. Un sol fitxer es baixa directament com a PDF invertit.
+
+## Funcions
+
+- Processament per lots: inverteix diversos PDF en una sola operació
+- Sortida en un sol fitxer per a un PDF, sortida ZIP per a diversos
+- Botons per eliminar cada fitxer abans del processament
+- Conserva tot el contingut i el format de les pàgines
+
+## Casos d'ús
+
+- Corregir un document que es va escanejar en ordre invers
+- Preparar un PDF de presentació per llegir-lo del final al principi
+- Invertir l'ordre de les pàgines per a fluxos d'impressió que alimenten les pàgines a la inversa
+- Corregir un document on les pàgines es van muntar al revés per error
+
+## Consells
+
+- Cada fitxer d'un lot s'inverteix de manera independent: els fitxers no es reordenen entre ells.
+- Per reordenar les pàgines amb més detall (no només una inversió completa), utilitza [Duplica i organitza](./organize-pdf).
+
+## Eines relacionades
+
+- [Duplica i organitza](./organize-pdf)
+- [Gira PDF](./rotate-pdf)
+- [Eina PDF multifunció](./pdf-multi-tool)
diff --git a/docs/ca/tools/rotate-custom.md b/docs/ca/tools/rotate-custom.md
new file mode 100644
index 00000000..57c8b50b
--- /dev/null
+++ b/docs/ca/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Gira amb un angle personalitzat
+description: Gira les pàgines d'un PDF en qualsevol angle amb camps de graus per pàgina i controls de rotació per lots.
+---
+
+# Gira amb un angle personalitzat
+
+Gira les pàgines d'un PDF en qualsevol angle arbitrari, no només en increments de 90 graus. Cada pàgina té el seu propi camp d'angle, i pots aplicar un mateix angle a totes les pàgines alhora amb el control per lots.
+
+## Com funciona
+
+1. Puja un fitxer PDF. Es mostren miniatures de totes les pàgines.
+2. Cada pàgina té un camp numèric que mostra el seu angle de rotació actual.
+3. Escriu qualsevol valor en graus (positiu o negatiu) per girar una pàgina concreta, o utilitza els botons esquerra/dreta de cada pàgina per fer ajustos ràpids de 90 graus.
+4. Utilitza el camp **angle per lots** de la part superior per aplicar una rotació uniforme a totes les pàgines.
+5. Fes clic al botó de processament per generar el PDF girat.
+
+## Funcions
+
+- Camp de graus lliure per pàgina (qualsevol valor enter)
+- Control d'angle per lots per aplicar la mateixa rotació a cada pàgina
+- Previsualització de la rotació en temps real a les miniatures
+- Botons de gir ràpid per pàgina en increments de 90 graus
+- Miniatures amb càrrega diferida per a un bon rendiment en documents grans
+
+## Casos d'ús
+
+- Corregir escanejats lleugerament inclinats uns quants graus
+- Girar pàgines per complir un requisit d'orientació no estàndard
+- Aplicar rotacions precises a pàgines individuals d'un document amb contingut mixt
+- Ajustar amb precisió els angles de les pàgines després d'una rotació massiva inicial
+
+## Consells
+
+- Els valors positius giren en sentit horari i els negatius en sentit antihorari.
+- El camp d'angle per lots sobreescriu tots els angles de cada pàgina quan s'aplica. Si cal, fes els ajustos individuals després de l'operació per lots.
+- Per a rotacions estàndard de 90/180/270 graus amb una interfície més senzilla, utilitza [Gira PDF](./rotate-pdf).
+
+## Eines relacionades
+
+- [Gira PDF](./rotate-pdf)
+- [Eina PDF multifunció](./pdf-multi-tool)
+- [Duplica i organitza](./organize-pdf)
diff --git a/docs/ca/tools/rotate-pdf.md b/docs/ca/tools/rotate-pdf.md
new file mode 100644
index 00000000..813ed44c
--- /dev/null
+++ b/docs/ca/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Gira PDF
+description: Gira pàgines individuals o totes les pàgines d'un PDF en increments de 90 graus amb una interfície visual de miniatures.
+---
+
+# Gira PDF
+
+Gira les pàgines d'un PDF 90 graus en sentit horari o antihorari. L'eina mostra miniatures de cada pàgina i et permet girar-les individualment o aplicar una rotació massiva a tot el document.
+
+## Com funciona
+
+1. Puja un fitxer PDF. Les miniatures de totes les pàgines es mostren en una quadrícula.
+2. Utilitza els botons de rotació esquerra/dreta sota cada miniatura per girar aquella pàgina concreta.
+3. Utilitza els controls de rotació massiva de la part superior per girar totes les pàgines alhora.
+4. La previsualització de les miniatures s'actualitza en temps real per mostrar la rotació.
+5. Fes clic al botó de processament per desar el PDF girat.
+
+## Funcions
+
+- Rotació per pàgina en increments de 90 graus (esquerra o dreta)
+- Rotació massiva de totes les pàgines alhora
+- Previsualització de miniatures en temps real amb transicions de rotació animades
+- Miniatures amb càrrega diferida per a un rendiment fluid en documents grans
+- Conserva el contingut i la qualitat originals de les pàgines
+
+## Casos d'ús
+
+- Corregir pàgines escanejades de costat o cap per avall
+- Girar pàgines horitzontals a orientació vertical (o a l'inrevés)
+- Corregir un document amb orientació mixta on algunes pàgines es van escanejar amb un angle incorrecte
+- Preparar un document per a una orientació de visualització concreta
+
+## Consells
+
+- Les rotacions són acumulatives. Si fas clic dues vegades al botó horari, s'aplica una rotació de 180 graus.
+- Per a rotacions que no siguin de 90 graus (p. ex., 45 graus per corregir un escanejat lleugerament inclinat), utilitza [Gira amb un angle personalitzat](./rotate-custom).
+- Els controls de rotació massiva afecten totes les pàgines, no només les seleccionades. Aquesta eina no té cap mecanisme de selecció: per a això, utilitza [Eina PDF multifunció](./pdf-multi-tool).
+
+## Eines relacionades
+
+- [Gira amb un angle personalitzat](./rotate-custom)
+- [Eina PDF multifunció](./pdf-multi-tool)
+- [Duplica i organitza](./organize-pdf)
diff --git a/docs/ca/tools/rtf-to-pdf.md b/docs/ca/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..28b8c183
--- /dev/null
+++ b/docs/ca/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF a PDF
+description: Converteix fitxers Rich Text Format (RTF) a PDF al navegador amb un motor basat en LibreOffice.
+---
+
+# RTF a PDF
+
+Converteix documents Rich Text Format a PDF. RTF és un format de document multiplataforma compatible amb pràcticament tots els processadors de text. Aquesta eina utilitza un motor LibreOffice al navegador per representar els fitxers RTF amb el format intacte: la negreta, la cursiva, les taules i les imatges incrustades es mantenen al PDF.
+
+## Formats compatibles
+
+| Format | Extensions | Tipus MIME |
+| :----- | :--------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar un o més fitxers RTF.
+2. Revisa la llista de fitxers. Afegeix-ne o elimina'n segons calgui.
+3. Fes clic a **Converteix a PDF**. El motor LibreOffice s'inicialitza el primer cop i després processa cada fitxer.
+4. Un sol fitxer es baixa directament com a PDF. Diversos fitxers s'entreguen com a `rtf-converted.zip`.
+
+## Opcions
+
+Aquesta eina no té opcions addicionals. La conversió conserva el format RTF original.
+
+## Sortida
+
+| Nombre d'entrades | Sortida |
+| :---------------- | :---------------------------------------------------- |
+| 1 fitxer | Baixada d'un sol PDF (p. ex., `letter.pdf`) |
+| 2+ fitxers | Arxiu ZIP (`rtf-converted.zip`) amb un PDF per fitxer |
+
+## Casos d'ús
+
+- Convertir documents RTF antics de processadors de text antics a PDF moderns
+- Convertir plantilles de correu RTF en previsualitzacions PDF
+- Processar la sortida RTF de programari jurídic o mèdic
+- Convertir per lots fitxers RTF d'un sistema de gestió documental a PDF per arxivar-los
+
+## Consells
+
+- El motor LibreOffice es carrega una vegada i es desa a la memòria cau. La primera conversió d'una sessió triga uns segons més; les següents són més ràpides.
+- Els fitxers RTF amb objectes OLE incrustats poden no representar tots els objectes perfectament. El text pla, les imatges i el format estàndard es converteixen de manera fiable.
+- Si els teus fitxers RTF es van crear amb Microsoft Word, també els pots convertir directament amb l'eina [Word a PDF](./word-to-pdf), que accepta RTF a més de DOC i DOCX.
+
+## Eines relacionades
+
+- [Word a PDF](./word-to-pdf)
+- [ODT a PDF](./odt-to-pdf)
+- [Text a PDF](./txt-to-pdf)
diff --git a/docs/ca/tools/sanitize-pdf.md b/docs/ca/tools/sanitize-pdf.md
new file mode 100644
index 00000000..91d58f4b
--- /dev/null
+++ b/docs/ca/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Neteja PDF
+description: Elimina contingut ocult i potencialment perillós dels PDF, com ara metadades, JavaScript, fitxers incrustats, anotacions i capes.
+---
+
+# Neteja PDF
+
+Els PDF poden contenir molt més del que veus a la pantalla. Les metadades ocultes, el JavaScript incrustat, els fitxers adjunts, les dades de formularis i la informació de capes poden filtrar dades sensibles o suposar riscos de seguretat. La neteja ho elimina tot i et deixa un document net i segur per compartir públicament.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. Selecciona a la llista quins elements vols eliminar.
+3. Fes clic a **Neteja PDF**.
+4. Baixa el fitxer net.
+
+## Opcions de neteja
+
+Totes les opcions estan activades per defecte. Desmarca les que vulguis conservar.
+
+| Opció | Què elimina |
+| ---------------------------------- | --------------------------------------------------------------------------------- |
+| **Aplana els formularis** | Converteix els camps de formulari interactius en contingut estàtic |
+| **Elimina les metadades** | Suprimeix l'autor, el títol, la data de creació, el programari i les dades XMP |
+| **Elimina les anotacions** | Suprimeix comentaris, ressaltats, notes adhesives i marques |
+| **Elimina el JavaScript** | Elimina els scripts incrustats que es podrien executar en obrir el fitxer |
+| **Elimina els fitxers incrustats** | Suprimeix els fitxers adjunts incrustats al PDF |
+| **Elimina les capes (OCG)** | Aplana els grups de contingut opcional en una sola capa |
+| **Elimina els enllaços** | Suprimeix els hipervincles i les referències a URL |
+| **Elimina l'arbre d'estructura** | Elimina l'estructura del document utilitzada per a l'etiquetatge d'accessibilitat |
+| **Elimina MarkInfo** | Suprimeix la informació de contingut marcat |
+| **Elimina les fonts** | Elimina les dades de fonts incrustades (amb precaució) |
+
+## Casos d'ús
+
+- Preparar un PDF per a la publicació eliminant les metadades internes (noms d'autors, versions de programari, historial d'edicions)
+- Eliminar el JavaScript d'un PDF rebut d'una font no fiable abans d'obrir-lo
+- Netejar un PDF abans d'enviar-lo a un client que no hauria de veure comentaris incrustats ni noms de camps de formulari
+- Eliminar capes ocultes d'un plànol arquitectònic abans de compartir-ne la versió final
+- Complir els requisits de minimització de dades de les normatives de privadesa
+
+## Consells
+
+- Deixa "Elimina les fonts" sense marcar tret que estiguis segur que el PDF es continuarà mostrant correctament. Eliminar les fonts pot fer el text invisible en alguns visors.
+- Si només cal eliminar les metadades, l'eina dedicada Elimina les metadades és més ràpida i específica.
+- La neteja és irreversible. Conserva el fitxer original.
+
+## Eines relacionades
+
+- [Elimina les metadades](./remove-metadata): elimina només les metadades sense tocar la resta del contingut
+- [Aplana PDF](./flatten-pdf): aplana específicament formularis i anotacions
+- [Xifra PDF](./protect-pdf): afegeix protecció amb contrasenya després de netejar
+- [Rasteritza PDF](./rasterize-pdf): l'opció radical, converteix a imatges per eliminar tot el contingut ocult
diff --git a/docs/ca/tools/scanner-effect.md b/docs/ca/tools/scanner-effect.md
new file mode 100644
index 00000000..a6250673
--- /dev/null
+++ b/docs/ca/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Efecte d'escàner
+description: Fes que el teu PDF sembli un document escanejat amb efectes ajustables de soroll, rotació, desenfocament i envelliment del paper.
+---
+
+# Efecte d'escàner
+
+Transforma un PDF digital net en un document que sembli sortit d'un escàner pla. L'eina aplica soroll configurable, una lleugera rotació, desenfocament, canvis de brillantor i un groguejat opcional per simular les imperfeccions d'un escaneig físic.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. L'editor s'obre amb una previsualització en directe de la primera pàgina i un tauler de configuració.
+3. Ajusta els paràmetres de l'efecte d'escàner amb els controls lliscants i els interruptors.
+4. La previsualització s'actualitza en temps real quan canvies la configuració.
+5. Fes clic a **Aplica** per processar totes les pàgines i baixar el resultat.
+
+## Opcions
+
+- **Espai de color (interruptor d'escala de grisos)**: converteix la sortida a escala de grisos per a un aspecte clàssic d'escaneig en blanc i negre.
+- **Vora**: afegeix una vora fosca subtil al voltant de les pàgines per imitar els artefactes de vora de l'escàner.
+- **Rotació**: aplica una lleugera rotació (de -5 a +5 graus) per simular un paper mal alineat.
+- **Variació de rotació**: afegeix una variació aleatòria a l'angle de rotació perquè cada pàgina s'inclini una mica diferent.
+- **Brillantor**: augmenta o redueix la brillantor general.
+- **Contrast**: ajusta el contrast per simular variacions en la qualitat del tòner.
+- **Desenfocament**: aplica un desenfocament gaussià per suavitzar les vores del text com en un escaneig de baixa qualitat.
+- **Soroll**: afegeix soroll de píxels aleatori per simular el gra del sensor de l'escàner. Els valors més alts produeixen resultats més granulats.
+- **Groguenc**: afegeix un to groc càlid per simular paper envellit o reciclat.
+- **Resolució**: defineix els DPI de sortida. Els valors més baixos creen un aspecte més pixelat i d'escaneig.
+- **Restableix**: restaura tota la configuració als valors per defecte.
+
+## Funcions
+
+- Previsualització en temps real que s'actualitza a mesura que ajustes cada paràmetre
+- Variació aleatòria de rotació per pàgina per a una variació realista
+- Deu paràmetres ajustables de manera independent
+- Mode d'escala de grisos per a una sortida d'escaneig en blanc i negre autèntica
+- Control de resolució des de qualitat de fax amb DPI baixos fins a qualitat d'arxiu amb DPI alts
+
+## Casos d'ús
+
+- Fer que documents creats digitalment semblin escanejats i impresos
+- Simular l'envelliment de documents físics per recrear documents històrics
+- Provar programari OCR amb escanejats de qualitat degradada
+- Produir documents que coincideixin amb l'estil visual d'arxius escanejats existents
+
+## Consells
+
+- Comença amb valors subtils. Un nivell de soroll de 10-20, una lleugera rotació de 0,5 graus i un desenfocament mínim ja donen un aspecte d'escaneig convincent.
+- Combina el mode d'escala de grisos amb un lleuger groguejat per a un efecte de "fotocòpia d'una fotocòpia".
+- La configuració de resolució baixa (100-150 DPI) crea l'aspecte més realista de fax.
+
+## Eines relacionades
+
+- [Inverteix els colors](./invert-colors)
+- [Ajusta els colors](./adjust-colors)
+- [Color de fons](./background-color)
diff --git a/docs/ca/tools/sign-pdf.md b/docs/ca/tools/sign-pdf.md
new file mode 100644
index 00000000..7bd87801
--- /dev/null
+++ b/docs/ca/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Signa PDF
+description: Dibuixa, escriu o puja una signatura i col·loca-la a les pàgines del PDF amb un visor integrat.
+---
+
+# Signa PDF
+
+Afegeix la teva signatura a qualsevol document PDF. L'eina incorpora un visor PDF complet amb eines de signatura on pots dibuixar una signatura a mà alçada, escriure el teu nom amb una font de signatura o pujar una imatge de signatura. Col·loca i redimensiona les signatures a qualsevol pàgina i després desa el document signat.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. El document s'obre en un visor PDF integrat amb eines d'anotació.
+3. Utilitza l'eina de signatura del visor per crear la signatura dibuixant, escrivint o pujant una imatge.
+4. Fes clic a la pàgina on vulguis col·locar la signatura i ajusta'n la mida i la posició.
+5. Opcionalment, marca **Aplana el PDF** per incrustar la signatura de manera permanent al document.
+6. Fes clic a **Desa i baixa el PDF signat** per obtenir el fitxer signat.
+
+## Opcions
+
+- **Aplana el PDF**: si està marcat, la signatura s'incrusta de manera permanent al contingut de la pàgina. Això impedeix que altres persones la moguin o l'eliminin. Si no està marcat, la signatura continua sent una anotació que es pot editar en visors compatibles.
+
+## Funcions
+
+- Tres maneres de crear signatures: dibuix a mà alçada, text escrit o imatge pujada
+- Visor PDF integrat per a una col·locació precisa
+- Arrossega per posicionar i redimensionar signatures a qualsevol pàgina
+- Aplanament opcional per incrustar les signatures de manera permanent
+- Compatibilitat amb diverses signatures al mateix document
+
+## Casos d'ús
+
+- Signar contractes, acords o formularis d'aprovació abans de retornar-los
+- Afegir la teva signatura a documents fiscals, reclamacions d'assegurances o formularis oficials
+- Posar inicials a pàgines individuals d'un acord de diverses pàgines
+- Signar acords de confidencialitat o documents de RH que arriben com a fitxers PDF adjunts
+
+## Consells
+
+- Activa l'aplanament si envies el PDF signat a algú que no hauria de poder eliminar ni moure la teva signatura.
+- Per a signatures digitals legalment vinculants amb verificació basada en certificats, BentoPDF també ofereix una eina independent de signatura digital.
+- Puja una imatge de signatura PNG amb fons transparent per obtenir el resultat més net.
+
+## Eines relacionades
+
+- [Editor de PDF](./edit-pdf)
+- [Afegeix segells](./add-stamps)
+- [Emplena formularis PDF](./form-filler)
diff --git a/docs/ca/tools/split-pdf.md b/docs/ca/tools/split-pdf.md
new file mode 100644
index 00000000..5dc59d5d
--- /dev/null
+++ b/docs/ca/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Divideix PDF
+description: Divideix un PDF en fitxers més petits per intervals de pàgines, selecció visual, marcadors, pàgines parells/senars o intervals fixos.
+---
+
+# Divideix PDF
+
+Divideix un PDF en documents més petits amb un dels sis modes de divisió. Des d'intervals de pàgines senzills fins a la divisió per marcadors, aquesta eina cobreix tots els casos per dividir un document.
+
+## Com funciona
+
+1. Puja un sol fitxer PDF.
+2. Tria un mode de divisió al menú desplegable.
+3. Configura les opcions específiques del mode (intervals de pàgines, seleccions, etc.).
+4. Fes clic al botó de processament.
+5. El resultat es baixa com a un sol PDF o com a arxiu ZIP segons el mode i la configuració.
+
+## Modes de divisió
+
+| Mode | Descripció |
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
+| **Interval** | Introdueix intervals de pàgines com `1-3, 5, 8-10`. Diversos intervals generen PDF separats en un ZIP. Un sol interval genera un PDF. |
+| **Selecció visual** | Navega per les miniatures i fes clic per seleccionar les pàgines que vulguis. Les pàgines seleccionades s'extreuen en un PDF nou. |
+| **Parells / Senars** | Extreu només les pàgines parells o les senars. |
+| **Totes les pàgines** | Divideix cada pàgina en un fitxer PDF individual, baixat com a ZIP. |
+| **Marcadors** | Divideix als límits dels marcadors. Tria el nivell de marcador per controlar on es fan les divisions. |
+| **Cada N pàgines** | Divideix en blocs de N pàgines (p. ex., cada 5 pàgines). L'últim bloc pot tenir menys pàgines. |
+
+## Funcions
+
+- Sis modes de divisió diferents que cobreixen pràcticament tots els casos d'ús
+- Selector visual de pàgines amb miniatures de càrrega diferida
+- Divisió per marcadors amb filtre de nivell
+- Opció de sortida ZIP per als modes d'interval i visual
+- Admet intervals de pàgines amb sintaxi mixta (`1-3, 5, 8-10`)
+- Avís quan la divisió per N pàgines genera blocs desiguals
+
+## Casos d'ús
+
+- Extreure un capítol o secció concrets d'un document gran
+- Separar pàgines senars i parells per a fluxos d'impressió a doble cara
+- Dividir un llibre en PDF en fitxers per capítol segons els marcadors
+- Aïllar pàgines concretes (com la pàgina de signatures) d'un contracte
+- Dividir un informe recopilat en fitxers per secció per distribuir-los
+
+## Consells
+
+- Diversos intervals de pàgines separats per comes (p. ex., `1-5, 10-15, 20-25`) generen PDF separats, un per interval, agrupats en un ZIP.
+- El mode de divisió per marcadors requereix que el PDF contingui marcadors. Si no se'n troba cap, rebràs un missatge d'error.
+- La casella "Baixa com a ZIP" dels modes Interval i Visual et permet obtenir PDF individuals per pàgina en lloc d'un fitxer combinat.
+
+## Eines relacionades
+
+- [Fusiona PDF](./merge-pdf)
+- [Extreu pàgines](./extract-pages)
+- [Suprimeix pàgines](./delete-pages)
+- [Eina PDF multifunció](./pdf-multi-tool)
diff --git a/docs/ca/tools/svg-to-pdf.md b/docs/ca/tools/svg-to-pdf.md
new file mode 100644
index 00000000..f2ba2d45
--- /dev/null
+++ b/docs/ca/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG a PDF
+description: Converteix gràfics vectorials SVG a PDF amb control de qualitat, completament al navegador.
+---
+
+# SVG a PDF
+
+Converteix fitxers Scalable Vector Graphics (SVG) a PDF. L'eina rasteritza cada SVG amb el motor de renderització del navegador i n'incrusta el resultat a la resolució nativa. És útil per convertir icones vectorials, diagrames i il·lustracions en documents portàtils.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :----- | :--------- |
+| SVG | `.svg` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar un o més fitxers SVG.
+2. Revisa i gestiona la llista de fitxers.
+3. Tria un nivell de **Qualitat del PDF**.
+4. Fes clic a **Converteix a PDF**. El resultat es baixa com a `from_svgs.pdf`.
+
+Cada SVG es llegeix com a text, es representa en un llenç amb l'amplada i l'alçada intrínseques (800x600 per defecte si no s'especifiquen dimensions) i s'exporta com a PNG. Aquest PNG s'incrusta després al PDF amb pdf-lib. Les àrees transparents s'omplen amb un fons blanc.
+
+## Opcions
+
+**Qualitat del PDF** controla la compressió després de la rasterització:
+
+- **Alta qualitat**: el més proper a la representació original.
+- **Qualitat mitjana** (per defecte): bon equilibri.
+- **Qualitat baixa**: fitxer més petit, amb una mica de pèrdua de detall.
+
+## Casos d'ús
+
+- Convertir diagrames d'arquitectura o enginyeria d'SVG a un PDF llest per imprimir
+- Empaquetar conjunts d'icones en un PDF de referència per a un sistema de disseny
+- Convertir visualitzacions de dades (D3.js, exportacions de biblioteques de gràfics) en PDF per a informes
+- Crear versions imprimibles d'infografies basades en SVG
+
+## Consells
+
+- Els fitxers SVG sense atributs `width` i `height` explícits es representen a 800x600 píxels. Per obtenir els millors resultats, defineix les dimensions a l'SVG abans de convertir-lo.
+- Els SVG complexos amb referències a fonts externes o imatges enllaçades poden no representar-se perfectament. Incrusta tots els recursos a l'SVG per a una sortida fiable.
+- Com que l'SVG es rasteritza, el PDF contindrà una imatge de mapa de bits en lloc de traçats vectorials. Per a una sortida PDF realment vectorial, cal una eina vectorial dedicada.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [BMP a PDF](./bmp-to-pdf)
diff --git a/docs/ca/tools/table-of-contents.md b/docs/ca/tools/table-of-contents.md
new file mode 100644
index 00000000..7e6852c2
--- /dev/null
+++ b/docs/ca/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Taula de continguts
+description: Genera una pàgina de taula de continguts amb format a partir dels marcadors existents del PDF.
+---
+
+# Taula de continguts
+
+Aquesta eina llegeix els marcadors (esquemes) del PDF i genera una pàgina de taula de continguts amb format que s'afegeix al principi del document. Si el PDF ja té marcadors però no té una pàgina de sumari visible, aquesta eina en crea una automàticament.
+
+## Com funciona
+
+1. Puja un PDF que contingui marcadors.
+2. Personalitza el títol, la mida de lletra i la família tipogràfica del sumari.
+3. Opcionalment, marca **Afegeix un marcador per a la pàgina del sumari** per incloure el sumari mateix a l'arbre de marcadors.
+4. Fes clic a **Genera la taula de continguts** per processar el fitxer.
+5. El PDF actualitzat es baixa automàticament amb la pàgina del sumari inserida al principi.
+
+## Opcions
+
+- **Títol del sumari**: l'encapçalament que es mostra a la part superior de la pàgina generada. Per defecte és "Taula de continguts".
+- **Mida de lletra**: tria entre 10 pt i 72 pt. El valor per defecte és 12 pt.
+- **Família tipogràfica**: tria entre variants de Times Roman, Helvetica o Courier (normal, negreta, cursiva, negreta cursiva). Per defecte és Helvetica.
+- **Afegeix un marcador per a la pàgina del sumari**: si està marcat, s'afegeix a l'esquema del PDF un marcador per a la pàgina del sumari mateixa.
+
+## Funcions
+
+- Llegeix tota la jerarquia de marcadors del PDF
+- Genera una pàgina de sumari amb un format net i referències de número de pàgina
+- Admet nivells de marcadors imbricats amb sagnat
+- Tria entre 12 fonts PDF integrades
+- Marcador opcional que apunta a la pàgina del sumari mateixa
+
+## Casos d'ús
+
+- Afegir una taula de continguts imprimible a llibres electrònics o informes que només tenen marcadors digitals
+- Crear un sumari per a un document fusionat després de combinar diversos PDF
+- Generar una pàgina de referència per a manuals tècnics llargs
+- Preparar documents per imprimir quan s'espera un sumari visible
+
+## Consells
+
+- Si el PDF no té marcadors, utilitza primer l'eina [Edita els marcadors](./bookmark) per crear-los i després torna aquí per generar el sumari.
+- En documents grans, una mida de lletra més gran com 14 pt o 16 pt millora la llegibilitat.
+
+## Eines relacionades
+
+- [Edita els marcadors](./bookmark)
+- [Números de pàgina](./page-numbers)
+- [Capçalera i peu de pàgina](./header-footer)
diff --git a/docs/ca/tools/text-color.md b/docs/ca/tools/text-color.md
new file mode 100644
index 00000000..d8c1377a
--- /dev/null
+++ b/docs/ca/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Canvia el color del text
+description: Canvia el color de tot el text del PDF al color que triïs.
+---
+
+# Canvia el color del text
+
+Substitueix el color del text de tot el PDF. L'eina identifica les zones de text de cada pàgina i les torna a pintar amb el color triat, conservant el disseny del document i el contingut que no és text.
+
+## Com funciona
+
+1. Puja el fitxer PDF.
+2. Tria un color de text nou amb el selector de color. El valor per defecte és blau (#0000FF).
+3. Fes clic a **Canvia el color del text** per processar-lo.
+4. El PDF amb el color nou es baixa automàticament. Un indicador de progrés mostra quina pàgina s'està processant.
+
+## Opcions
+
+- **Color de text nou**: un selector de color per triar el color de substitució de tot el text del document.
+
+## Funcions
+
+- Canvia el color del text a totes les pàgines del document
+- Processament per pàgina amb indicació del progrés
+- Selector de color amb compatibilitat completa amb colors hexadecimals
+- Conserva el disseny de la pàgina i els elements que no són text
+
+## Casos d'ús
+
+- Canviar el text negre a blau fosc per donar al document un aspecte més suau i modern
+- Canviar el color del text perquè coincideixi amb la guia d'estil de la marca abans de distribuir documents
+- Convertir el text a un color concret per complir requisits d'accessibilitat
+- Fer visible el text sobre un color de fons aplicat recentment
+
+## Consells
+
+- Aquesta eina representa les pàgines a escala 2x per mantenir la qualitat i després reconstrueix el PDF. La sortida es basa en imatges, de manera que el text ja no es podrà seleccionar ni cercar.
+- Per a documents en què necessitis conservar el text seleccionable, considera editar el PDF directament amb l'[Editor de PDF](./edit-pdf).
+- El temps de processament augmenta amb el nombre de pàgines, ja que cada pàgina es representa individualment.
+
+## Eines relacionades
+
+- [Color de fons](./background-color)
+- [Inverteix els colors](./invert-colors)
+- [Ajusta els colors](./adjust-colors)
diff --git a/docs/ca/tools/tiff-to-pdf.md b/docs/ca/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..b3a18649
--- /dev/null
+++ b/docs/ca/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF a PDF
+description: Converteix imatges TIFF d'una o diverses pàgines a format PDF al navegador, amb compatibilitat completa de pàgines.
+---
+
+# TIFF a PDF
+
+Converteix fitxers TIFF a PDF, inclosos els TIFF de diverses pàgines. Cada pàgina (o "IFD") d'un fitxer TIFF es converteix en una pàgina separada al PDF de sortida. Això és especialment útil per a documents escanejats, faxos i imatges mèdiques, que sovint es desen com a TIFF de diverses pàgines.
+
+## Formats compatibles
+
+| Format | Extensions |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers TIFF.
+2. Revisa la llista de fitxers i gestiona-la segons calgui.
+3. Fes clic a **Converteix a PDF**. El resultat es baixa com a `from_tiff.pdf`.
+
+L'eina descodifica cada fitxer TIFF amb un descodificador TIFF en JavaScript i n'extreu les dades de píxels RGBA de cada pàgina. Cada pàgina es representa en un llenç, s'exporta com a PNG i s'incrusta al PDF. Les dimensions de les pàgines coincideixen amb les pàgines TIFF originals.
+
+## Opcions
+
+Aquesta eina no ofereix opcions de qualitat addicionals. Les imatges s'incrusten a la seva resolució nativa.
+
+## Casos d'ús
+
+- Convertir documents de fax de diverses pàgines (TIFF-F) a un format PDF més portàtil
+- Convertir arxius de documents escanejats desats com a TIFF en PDF cercables (combinant-ho després amb l'eina OCR)
+- Processar fitxers d'imatge mèdica (preparacions de patologia, exportacions de radiologia) que utilitzen TIFF
+- Convertir fitxers TIFF d'imatges SIG o de satèl·lit en documents fàcils de compartir
+
+## Consells
+
+- Els TIFF de diverses pàgines són totalment compatibles. Un TIFF de 10 pàgines produirà un PDF de 10 pàgines. No cal dividir el TIFF abans.
+- Els fitxers TIFF molt grans (centenars de megabytes) poden trigar més a processar-se, ja que tot el fitxer s'ha de descodificar a la memòria del navegador.
+- Si necessites OCR al PDF resultant, passa'l per l'eina [Reconeixement OCR de PDF](./ocr-pdf) després de la conversió.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [BMP a PDF](./bmp-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
diff --git a/docs/ca/tools/txt-to-pdf.md b/docs/ca/tools/txt-to-pdf.md
new file mode 100644
index 00000000..1922b115
--- /dev/null
+++ b/docs/ca/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Text a PDF
+description: Converteix fitxers de text pla o text escrit a PDF amb fonts, colors i mides de pàgina personalitzats.
+---
+
+# Text a PDF
+
+Converteix text pla en un PDF amb format. Pots pujar fitxers `.txt` o escriure directament a l'editor de text integrat. L'eina admet diverses fonts, colors de text personalitzats i una àmplia gamma de mides de pàgina, des d'A0 fins a A10, a més de US Letter, Legal i Tabloid.
+
+## Formats compatibles
+
+| Entrada | Extensions |
+| :---------------------- | :---------------------------------- |
+| Fitxers de text pla | `.txt` |
+| Entrada de text directa | Escriu o enganxa el text a l'editor |
+
+## Com funciona
+
+1. Tria el mode d'entrada amb el commutador de la part superior: **Puja fitxers** o **Escriu text**.
+2. Si puges fitxers, arrossega i deixa anar o fes clic per seleccionar un o més fitxers `.txt`. Si escrius, introdueix el text directament a l'àrea de text.
+3. Configura les opcions de format: família tipogràfica, mida de lletra, color del text i mida de pàgina.
+4. Fes clic a **Crea el PDF**. La sortida es baixa com a `text_to_pdf.pdf`.
+
+Quan puges diversos fitxers, el seu contingut es concatena amb línies en blanc entre ells.
+
+## Opcions
+
+| Opció | Valors | Per defecte |
+| :---------------------- | :----------------------------------------------------------------------- | :-------------- |
+| **Família tipogràfica** | Helvetica (sans-serif), Tiro (serif), Courier (monospace), Times (serif) | Helvetica |
+| **Mida de lletra** | 6-72 pt | 12 |
+| **Color del text** | Qualsevol color amb el selector de color | Negre (#000000) |
+| **Mida de pàgina** | ISO A0-A10, B0-B10, C0-C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Les llengües de dreta a esquerra (àrab, hebreu, persa, urdú) es detecten automàticament. Quan es troba text RTL, la direcció i l'alineació del text canvien en conseqüència.
+
+## Casos d'ús
+
+- Convertir fragments de codi o fitxers de registre en un PDF imprimible amb la font Courier
+- Crear ràpidament un PDF a partir de notes de reunió escrites al moment
+- Donar format a un manuscrit de text pla amb una font i una mida de pàgina concretes per enviar-lo
+- Produir una versió PDF d'un README o d'un registre de canvis per distribuir-lo fora de línia
+
+## Consells
+
+- Utilitza el mode **Escriu text** quan vulguis convertir ràpidament el contingut del porta-retalls sense desar-lo abans com a fitxer.
+- Courier (monospace) és la millor font per a codi, registres o qualsevol contingut on importi l'alineació de columnes.
+- Els marges de la pàgina són fixos de 72 punts (1 polzada) a tots els costats.
+
+## Eines relacionades
+
+- [Markdown a PDF](./markdown-to-pdf)
+- [CSV a PDF](./csv-to-pdf)
+- [Word a PDF](./word-to-pdf)
diff --git a/docs/ca/tools/unlock-pdf.md b/docs/ca/tools/unlock-pdf.md
new file mode 100644
index 00000000..b75bdf58
--- /dev/null
+++ b/docs/ca/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Desbloqueja PDF
+description: Elimina la protecció amb contrasenya dels PDF xifrats. Admet el desxifratge per lots amb una sola contrasenya per a diversos fitxers.
+---
+
+# Desbloqueja PDF
+
+Si tens la contrasenya d'un PDF xifrat, aquesta eina n'elimina el xifratge per complet i genera una còpia desbloquejada que qualsevol pot obrir sense credencials. Admet el desxifratge per lots quan diversos PDF comparteixen la mateixa contrasenya.
+
+## Com funciona
+
+1. Puja un o més fitxers PDF xifrats.
+2. Introdueix la **contrasenya** utilitzada per protegir els fitxers.
+3. Fes clic a **Desxifra PDF**.
+4. Un sol fitxer es descarrega directament. Diversos fitxers generen un arxiu ZIP amb tots els PDF desbloquejats.
+
+## Característiques
+
+- Desxifratge d'un sol fitxer i per lots
+- Admet tant contrasenyes d'usuari com de propietari
+- Genera una sortida completament sense xifrar i sense cap restricció residual
+- Informes d'error clars per a contrasenyes incorrectes o fitxers malmesos
+- Seguiment per fitxer de l'èxit o l'error en mode per lots
+
+## En què es diferencia d'Elimina les restriccions
+
+**Desxifra PDF** requereix la contrasenya i elimina tot el xifratge. **Elimina les restriccions** actua sobre les restriccions d'ús (impressió, còpia, edició) i pot no requerir contrasenya si només s'havia definit una contrasenya de propietari. Utilitza Desxifra quan el PDF no s'obre de cap manera sense contrasenya.
+
+## Casos d'ús
+
+- Desbloquejar de manera permanent PDF que vas xifrar abans quan ja no cal la contrasenya
+- Eliminar el xifratge d'un lot de documents arxivats per facilitar-ne l'accés a llarg termini
+- Preparar PDF protegits amb contrasenya per a un sistema de gestió documental que no admet fitxers xifrats
+- Desbloquejar PDF abans de combinar-los amb altres documents (moltes eines de combinació no poden processar fitxers xifrats)
+
+## Consells
+
+- El camp de la contrasenya s'aplica a tots els fitxers pujats. Si els teus PDF tenen contrasenyes diferents, processa'ls en lots separats.
+- Si obtens l'error «Contrasenya incorrecta», comprova que no hi hagi espais al final ni les majúscules activades.
+- Després del desxifratge, la sortida no té cap seguretat. Torna-la a xifrar amb Xifra PDF si vols aplicar una contrasenya nova.
+
+## Eines relacionades
+
+- [Xifra PDF](./protect-pdf): torna a aplicar el xifratge amb una contrasenya nova
+- [Elimina les restriccions](./remove-restrictions): elimina les restriccions d'ús sense desxifrar-ho tot
+- [Canvia els permisos](./change-permissions): modifica permisos concrets d'un PDF xifrat
diff --git a/docs/ca/tools/validate-signature-pdf.md b/docs/ca/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..132709dc
--- /dev/null
+++ b/docs/ca/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Valida la signatura
+description: Verifica les signatures digitals dels fitxers PDF. Comprova la validesa del certificat, la identitat del signant, la integritat del document i l'estat de la cadena de confiança.
+---
+
+# Valida la signatura
+
+Puja un PDF signat i aquesta eina n'extreu totes les signatures digitals, identifica el signant, comprova la validesa del certificat i indica si el document s'ha modificat després de signar-lo. També pots proporcionar un certificat de confiança per verificar la cadena de signatura.
+
+## Com funciona
+
+1. Puja un fitxer PDF signat. La validació comença automàticament.
+2. L'eina mostra un resum: nombre de signatures trobades i quantes són vàlides.
+3. Cada signatura té una targeta detallada amb el nom del signant, l'emissor, les dates i l'estat.
+4. Opcionalment, puja un **certificat de confiança** (.pem, .crt, .cer, .der) per verificar la signatura amb una àncora de confiança concreta. La revalidació s'executa automàticament.
+
+## Què es comprova
+
+### Anàlisi de la signatura
+
+L'eina extreu els objectes de signatura PKCS#7 del PDF, descodifica l'estructura ASN.1 i n'obté el certificat X.509 del signant, juntament amb qualsevol cadena de certificats inclosa a la signatura.
+
+### Validesa del certificat
+
+- **Caducitat**: el certificat és actualment dins del seu període de validesa?
+- **Detecció d'autosignatura**: el certificat és el seu propi emissor?
+- **Cadena de confiança**: quan es proporciona un certificat de confiança, el certificat del signant enllaça amb aquest?
+
+### Verificació criptogràfica
+
+- L'eina reconstrueix els bytes coberts per `/ByteRange` de la signatura, en calcula el resum amb l'algorisme declarat pel signant i compara el resultat amb l'atribut `messageDigest` de la signatura.
+- Després torna a serialitzar els atributs signats com a DER SET i verifica la signatura amb la clau pública del certificat del signant.
+- **Una signatura es considera vàlida només quan totes aquestes comprovacions es superen.** Si els bytes del PDF s'han modificat després de signar, o la signatura incrustada no coincideix amb la clau del signant, l'estat mostra «No vàlida: la verificació criptogràfica ha fallat» amb el motiu concret.
+
+#### Algorismes de signatura admesos
+
+| Algorisme | Camí de verificació |
+| ----------------------- | ----------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, amb alternativa a Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` després de la conversió DER → IEEE P1363 |
+
+Si una signatura utilitza un algorisme que no és a la llista (per exemple Ed25519, SM2 o RSA amb un OID de resum poc habitual), la targeta mostra **«No verificada: algorisme de signatura no compatible»** en groc, juntament amb l'OID o el motiu concret. És una distinció deliberada de tres estats:
+
+- **Vàlida**: la signatura s'ha verificat criptogràficament amb la clau pública del signant.
+- **No vàlida**: la verificació s'ha executat i ha donat un resultat negatiu (bytes modificats, clau no coincident).
+- **No verificada**: l'eina no ha pogut executar la verificació per a aquest algorisme. Les metadades del certificat es mostren igualment, però has de tractar la signatura com a «desconeguda» i verificar-la amb Adobe Acrobat o `openssl cms -verify`.
+
+### Algorismes de resum insegurs
+
+- Les signatures que utilitzen **MD5 o SHA-1** es rebutgen com a no vàlides i es marquen amb l'estat «Resum insegur». Tots dos algorismes tenen atacs de col·lisió publicats, de manera que una signatura sobre un resum SHA-1 o MD5 no ofereix cap garantia d'integritat.
+- SHA-224, SHA-256, SHA-384 i SHA-512 s'accepten tots.
+
+### Cobertura del document
+
+- **Cobertura completa**: la signatura cobreix tot el fitxer PDF, és a dir, no s'ha afegit ni canviat cap byte després de signar.
+- **Cobertura parcial**: la signatura només cobreix una part del fitxer. Pot indicar que s'han fet modificacions després de signar (no necessàriament malintencionades: els desats incrementals produeixen cobertura parcial).
+
+## Detalls de la signatura
+
+Cada targeta de signatura mostra:
+
+- **Signat per**: nom comú, organització i correu electrònic del certificat del signant
+- **Emissor**: l'autoritat de certificació que va emetre el certificat del signant
+- **Signat el**: la marca de temps incrustada a la signatura
+- **Vàlid des de / Vàlid fins a**: el període de validesa del certificat
+- **Motiu**: per què es va signar el document (si es proporciona)
+- **Ubicació**: on es va signar (si es proporciona)
+- **Estat de cobertura**: completa o parcial
+- **Insígnia de confiança**: de confiança o fora de la cadena de confiança (només quan es proporciona un certificat personalitzat)
+
+### Detalls tècnics
+
+Desplega la secció de detalls tècnics per veure:
+
+- El número de sèrie del certificat del signant
+- L'algorisme de resum (SHA-256, SHA-512, etc.)
+- L'algorisme de signatura (RSA amb SHA-256, ECDSA amb SHA-256, etc.)
+- Els missatges d'error de les signatures no vàlides
+
+## Casos d'ús
+
+- Verificar un contracte signat digitalment abans de contrasignar-lo
+- Auditar documents signats per confirmar que no s'han manipulat
+- Comprovar si un certificat ha caducat des que es va signar el document
+- Validar signatures amb el certificat arrel de la teva organització
+- Inspeccionar els detalls de signatura de documents governamentals o legals
+
+## Consells
+
+- Un certificat autosignat no vol dir que la signatura no sigui vàlida: vol dir que la identitat del signant no es pot verificar mitjançant un tercer de confiança. És habitual en documents interns.
+- La cobertura parcial no sempre indica manipulació. Molts fluxos de treball amb PDF afegeixen actualitzacions incrementals (com una segona signatura) que creen cobertura parcial.
+- Puja el certificat arrel o intermedi de la teva organització com a certificat de confiança per obtenir la verificació de la cadena de confiança.
+
+## Eines relacionades
+
+- [Signatura digital de PDF](./digital-sign-pdf): signa PDF amb el teu propi certificat
+- [Aplana PDF](./flatten-pdf): aplana un PDF abans de signar-lo per evitar modificacions posteriors a la signatura
+- [Elimina les metadades](./remove-metadata): neteja un PDF abans d'aplicar-hi una signatura
diff --git a/docs/ca/tools/view-metadata.md b/docs/ca/tools/view-metadata.md
new file mode 100644
index 00000000..48a14cbc
--- /dev/null
+++ b/docs/ca/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Visualitza les metadades
+description: Inspecciona totes les propietats de metadades d'un PDF, incloent-hi la informació del document, les dades XMP i els detalls estructurals.
+---
+
+# Visualitza les metadades
+
+Examina les propietats ocultes incrustades en un fitxer PDF. L'eina mostra la informació del document (títol, autor, dates), les metadades XMP, les dimensions de les pàgines i altres dades estructurals en un format llegible.
+
+## Com funciona
+
+1. Puja un fitxer PDF.
+2. L'eina analitza el fitxer immediatament i mostra totes les metadades disponibles en seccions organitzades.
+3. Revisa el diccionari d'informació del document, l'arbre de metadades XMP i les propietats estructurals.
+4. No cal cap pas de processament: les metadades es mostren tan bon punt es carrega el fitxer.
+
+## Característiques
+
+- Mostra els camps d'informació estàndard del document: Títol, Autor, Assumpte, Paraules clau, Creador, Productor
+- Mostra les dates de creació i modificació en un format llegible
+- Analitza i mostra l'arbre complet de metadades XMP amb espais de noms imbricats
+- Converteix el format de data del PDF (`D:20240101120000Z`) en dates llegibles
+- Organitzat en seccions plegables per facilitar la navegació
+
+## Seccions de metadades
+
+| Secció | Contingut |
+| --------------------------- | ------------------------------------------------------------------------------------------------- |
+| **Informació del document** | Títol, Autor, Assumpte, Paraules clau, Creador, Productor, Data de creació, Data de modificació |
+| **Metadades XMP** | Arbre complet de metadades basat en XML amb Dublin Core, XAP, PDF i espais de noms personalitzats |
+| **Propietats del document** | Nombre de pàgines, versió del PDF, mida del fitxer, estat del xifratge |
+
+## Casos d'ús
+
+- Comprovar qui ha creat un PDF i quan es va modificar per última vegada
+- Verificar que les metadades s'han definit correctament abans de publicar un document
+- Auditar PDF per protegir la privadesa comprovant quina informació personal hi ha incrustada
+- Investigar el programari utilitzat per crear o modificar un PDF (mitjançant el camp Productor)
+- Revisar les metadades XMP per complir amb la gestió d'actius digitals
+
+## Consells
+
+- Les cadenes de data del PDF que comencen per `D:` es converteixen automàticament al format de la teva zona horària local.
+- Si els camps de metadades apareixen buits, el creador del PDF simplement no els va definir. No tots els PDF contenen metadades riques.
+- Per modificar les metadades després d'inspeccionar-les, utilitza [Edita les metadades](./edit-metadata). Per eliminar-les del tot, utilitza Elimina les metadades.
+
+## Eines relacionades
+
+- [Edita les metadades](./edit-metadata)
+- [Capes OCG del PDF](./pdf-layers)
+- [Compara PDF](./compare-pdfs)
diff --git a/docs/ca/tools/vsd-to-pdf.md b/docs/ca/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..545ef53f
--- /dev/null
+++ b/docs/ca/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD a PDF
+description: Converteix diagrames de Microsoft Visio (VSD/VSDX) a PDF al navegador. Gratuït, privat i sense necessitat de Visio.
+---
+
+# VSD a PDF
+
+Converteix diagrames de Microsoft Visio a PDF sense instal·lar Visio. Els fitxers VSD i VSDX contenen diagrames de flux, organigrames, diagrames de xarxa i plànols que la majoria de persones no poden obrir. Aquesta eina els renderitza com a PDF nets que es poden veure en qualsevol dispositiu.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :----------- | :------- | :----------------------------------------------- |
+| Visio binari | `.vsd` | Format antic de Visio (Visio 2003 i anteriors) |
+| Visio XML | `.vsdx` | Format modern de Visio (Visio 2013 i posteriors) |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers VSD o VSDX. Es poden barrejar tots dos formats en un mateix lot.
+2. Revisa la llista de fitxers. Elimina les entrades que no vulguis amb la icona de la paperera, o utilitza **Afegeix més fitxers** per afegir més diagrames.
+3. Fes clic a **Converteix a PDF**. El motor basat en LibreOffice es carrega al navegador i renderitza cada diagrama en un PDF, conservant les formes, els connectors, les etiquetes i la maquetació de la pàgina.
+4. Un sol diagrama es descarrega directament com a PDF. Diversos fitxers generen un arxiu ZIP anomenat `vsd-to-pdf.zip`.
+
+## Opcions
+
+No cal cap configuració. El convertidor respecta la mida i l'orientació de pàgina originals del document de Visio.
+
+## Casos d'ús
+
+- Revisar diagrames de Visio d'un company quan no tens llicència de Visio
+- Incloure diagrames de xarxa o d'arquitectura en la documentació d'un projecte com a PDF
+- Imprimir organigrames o fluxos de processos per a materials de reunions
+- Arxivar fitxers VSD antics de versions anteriors de Visio en un format preparat per al futur
+
+## Consells
+
+- Els documents de Visio de diverses pàgines generen PDF de diverses pàgines, amb cada pàgina de Visio assignada a una pàgina del PDF.
+- Els fitxers VSDX (el format modern basat en XML) generalment es converteixen amb més fidelitat que els fitxers binaris VSD antics.
+- El motor LibreOffice es carrega un cop per sessió. Espera una breu estona a la primera conversió, amb resultats més ràpids als fitxers següents.
+
+## Eines relacionades
+
+- [ODG a PDF](./odg-to-pdf)
+- [PUB a PDF](./pub-to-pdf)
+- [PSD a PDF](./psd-to-pdf)
diff --git a/docs/ca/tools/webp-to-pdf.md b/docs/ca/tools/webp-to-pdf.md
new file mode 100644
index 00000000..7e9495b6
--- /dev/null
+++ b/docs/ca/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP a PDF
+description: Converteix imatges WebP a PDF directament al navegador amb una qualitat de compressió ajustable.
+---
+
+# WebP a PDF
+
+Converteix el format d'imatge WebP de Google a PDF. És especialment útil quan has baixat imatges del web en format WebP i les necessites en un format més acceptat universalment per imprimir-les o compartir-les.
+
+## Formats admesos
+
+| Format | Extensions |
+| :----- | :--------- |
+| WebP | `.webp` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers WebP.
+2. Revisa la llista de fitxers i elimina els que no necessitis.
+3. Selecciona un nivell de **Qualitat del PDF**.
+4. Fes clic a **Converteix a PDF**. El resultat es descarrega com a `from_webps.pdf`.
+
+Internament, cada imatge WebP es descodifica mitjançant l'API canvas del navegador i després s'incrusta al PDF amb pdf-lib. Això vol dir que la conversió funciona en qualsevol navegador que admeti la descodificació de WebP (tots els navegadors moderns ho fan).
+
+## Opcions
+
+**Qualitat del PDF** controla la compressió en incrustar les imatges:
+
+- **Qualitat alta**: conserva el màxim detall.
+- **Qualitat mitjana** (per defecte): resultat equilibrat.
+- **Qualitat baixa**: mida de fitxer més petita.
+
+## Casos d'ús
+
+- Convertir en un PDF imprimible les imatges baixades del web i desades com a WebP
+- Reunir captures de pantalla WebP de Chrome o Edge en documentació
+- Crear un porfolit en PDF a partir d'imatges exportades per eines de disseny que fan servir WebP per defecte
+- Arxivar imatges WebP en un format llegible de manera més universal
+
+## Consells
+
+- WebP es descodifica internament a PNG abans d'incrustar-lo al PDF, de manera que les imatges WebP sense pèrdua conserven la qualitat amb l'opció Alta.
+- Si tens una barreja d'imatges WebP i d'altres formats, utilitza l'eina [Imatges a PDF](./image-to-pdf): accepta tot d'una vegada.
+
+## Eines relacionades
+
+- [Imatges a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
diff --git a/docs/ca/tools/word-to-pdf.md b/docs/ca/tools/word-to-pdf.md
new file mode 100644
index 00000000..09d3e0a2
--- /dev/null
+++ b/docs/ca/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word a PDF
+description: Converteix documents de Word (DOC, DOCX), ODT i RTF a PDF al navegador conservant tot el format.
+---
+
+# Word a PDF
+
+Converteix documents de Microsoft Word i formats compatibles a PDF. L'eina utilitza un motor LibreOffice que s'executa al navegador i que admet fitxers DOC, DOCX, ODT i RTF, conservant a la sortida el format, les taules, les imatges, les capçaleres, els peus de pàgina i els estils.
+
+## Formats admesos
+
+| Format | Extensions |
+| :---------------------- | :--------- |
+| Word (modern) | `.docx` |
+| Word (antic) | `.doc` |
+| Text OpenDocument | `.odt` |
+| Format de text enriquit | `.rtf` |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els documents de Word. Pots seleccionar diversos fitxers alhora.
+2. Revisa i gestiona la llista de fitxers.
+3. Fes clic a **Converteix a PDF**. El motor LibreOffice es carrega en el primer ús (un indicador de progrés mostra l'estat d'inicialització) i després es converteix cada fitxer.
+4. Un sol fitxer es descarrega directament com a PDF. Diversos fitxers s'empaqueten a `word-converted.zip`.
+
+## Opcions
+
+Aquesta eina no té cap configuració addicional. El motor LibreOffice genera la sortida amb el seu perfil d'exportació a PDF per defecte.
+
+## Sortida
+
+| Nombre d'entrades | Sortida |
+| :---------------- | :------------------------------------------------------------------ |
+| 1 fitxer | Baixada d'un sol PDF (nom de fitxer original amb l'extensió `.pdf`) |
+| 2 o més fitxers | Arxiu ZIP (`word-converted.zip`) que conté un PDF per fitxer |
+
+## Casos d'ús
+
+- Convertir un currículum o una carta de presentació de DOCX a PDF abans d'enviar una candidatura
+- Convertir per lots un conjunt de contractes o propostes a PDF per lliurar-los a un client
+- Convertir fitxers `.doc` antics en PDF moderns per a l'arxivament a llarg termini
+- Convertir a PDF documents col·laboratius de Google Docs (exportats com a DOCX)
+- Generar PDF llestos per imprimir a partir de plantilles de Word utilitzades en la generació automatitzada de documents
+
+## Consells
+
+- El motor LibreOffice es descarrega un cop per sessió i es desa a la memòria cau. Espera uns segons de càrrega a la primera conversió, amb conversions posteriors molt més ràpides.
+- El format complex (macros, controls ActiveX, SmartArt avançat) pot no convertir-se perfectament. Els elements estàndard d'un document (text, taules, imatges, capçaleres, notes al peu) es converteixen de manera fiable.
+- Com que aquesta eina també accepta ODT i RTF, pots utilitzar-la com a convertidor únic per a tots els formats de processament de textos.
+
+## Eines relacionades
+
+- [ODT a PDF](./odt-to-pdf)
+- [RTF a PDF](./rtf-to-pdf)
+- [Excel a PDF](./excel-to-pdf)
+- [PowerPoint a PDF](./powerpoint-to-pdf)
diff --git a/docs/ca/tools/wpd-to-pdf.md b/docs/ca/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..f1eb1298
--- /dev/null
+++ b/docs/ca/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD a PDF
+description: Converteix documents de WordPerfect (WPD) a PDF al navegador amb LibreOffice. Gratuït i privat.
+---
+
+# WPD a PDF
+
+Converteix documents de Corel WordPerfect en fitxers PDF. WPD va ser en el seu dia el format de processament de textos dominant en despatxos d'advocats i organismes públics. Si tens fitxers antics de WordPerfect que el programari modern es nega a obrir, aquesta eina els torna a la vida com a PDF estàndard.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :---------- | :------- | :------------------------------------------- |
+| WordPerfect | `.wpd` | Totes les versions principals de WordPerfect |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers WPD. Pots seleccionar diversos fitxers alhora.
+2. Revisa la llista de fitxers. Elimina els fitxers que no vulguis amb la icona de la paperera, o utilitza **Afegeix més fitxers** per afegir més documents.
+3. Fes clic a **Converteix a PDF**. L'eina carrega al navegador un motor de conversió basat en LibreOffice, que analitza el format WPD i genera el PDF.
+4. Un sol fitxer es descarrega directament com a PDF. Les conversions per lots generen un arxiu ZIP anomenat `wpd-to-pdf.zip`.
+
+## Opcions
+
+No cal cap configuració. El motor LibreOffice gestiona automàticament el format, les tipografies i la maquetació de WPD.
+
+## Casos d'ús
+
+- Obrir documents legals de fa dècades escrits amb WordPerfect
+- Convertir expedients governamentals arxivats de WPD a un format modern
+- Migrar una biblioteca antiga de documents de WordPerfect a PDF per a l'emmagatzematge a llarg termini
+- Compartir fitxers WPD amb destinataris que no tenen Corel WordPerfect instal·lat
+
+## Consells
+
+- El motor LibreOffice es carrega en el primer ús, cosa que triga una estona. Les conversions següents de la mateixa sessió són més ràpides.
+- Les macros complexes de WPD i els codis de revelació no es conserven, però la maquetació visual, el contingut del text i el format bàsic es mantenen al PDF.
+
+## Eines relacionades
+
+- [WPS a PDF](./wps-to-pdf)
+- [ODG a PDF](./odg-to-pdf)
diff --git a/docs/ca/tools/wps-to-pdf.md b/docs/ca/tools/wps-to-pdf.md
new file mode 100644
index 00000000..a38478d3
--- /dev/null
+++ b/docs/ca/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS a PDF
+description: Converteix documents de Microsoft Works (WPS) a PDF al navegador. Gratuït, sense registre i totalment privat.
+---
+
+# WPS a PDF
+
+Converteix fitxers de processador de textos de Microsoft Works a PDF. Microsoft Works s'incloïa als ordinadors domèstics a finals dels anys 90 i durant els 2000, i encara hi ha molts fitxers WPS en discs durs antics i arxius de correu. Aquesta eina els obre al navegador i genera PDF nets.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :-------------- | :------- | :-------------------------------------------------- |
+| Microsoft Works | `.wps` | Fitxers de processador de textos de Microsoft Works |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers WPS. S'accepten diversos fitxers.
+2. Revisa la llista de fitxers. Utilitza la icona de la paperera per eliminar fitxers individuals, o fes clic a **Afegeix més fitxers** per ampliar el lot.
+3. Fes clic a **Converteix a PDF**. Un motor basat en LibreOffice es carrega al navegador i converteix cada document WPS a PDF.
+4. Un fitxer es descarrega directament com a PDF. Diversos fitxers s'agrupen en un arxiu ZIP anomenat `wps-to-pdf.zip`.
+
+## Opcions
+
+No calen paràmetres addicionals. El convertidor gestiona el text, el format bàsic i les imatges incrustades del fitxer WPS.
+
+## Casos d'ús
+
+- Recuperar documents antics d'escola o de feina desats en format Microsoft Works
+- Obrir fitxers WPS adjunts al correu quan no tens Microsoft Works instal·lat
+- Convertir un arxiu de fitxers WPS per migrar-lo a un sistema de documents modern
+- Imprimir documents antics que els processadors de textos actuals no poden obrir
+
+## Consells
+
+- No confonguis els fitxers `.wps` de Microsoft Works amb els fitxers de WPS Office. Aquesta eina és específicament per al format antic de Microsoft Works.
+- El motor LibreOffice triga una estona a carregar-se en el primer ús. Un cop carregat, les conversions següents de la mateixa sessió són més ràpides.
+
+## Eines relacionades
+
+- [WPD a PDF](./wpd-to-pdf)
+- [PUB a PDF](./pub-to-pdf)
diff --git a/docs/ca/tools/xml-to-pdf.md b/docs/ca/tools/xml-to-pdf.md
new file mode 100644
index 00000000..38c288cf
--- /dev/null
+++ b/docs/ca/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML a PDF
+description: Converteix fitxers XML en documents PDF estructurats al navegador. Gratuït, privat i sense processament al servidor.
+---
+
+# XML a PDF
+
+Converteix fitxers de dades XML en documents PDF llegibles i estructurats. L'XML en brut és potent, però difícil de llegir per a les persones. Aquesta eina analitza l'arbre XML, identifica les estructures de dades repetides i les renderitza com a taules i seccions amb format en un PDF A4 apaïsat.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :----- | :------- | :-------------------------------- |
+| XML | `.xml` | Qualsevol document XML ben format |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers XML. Es poden processar diversos fitxers en un sol lot.
+2. Revisa la llista de fitxers. Elimina els fitxers que no vulguis amb la icona de la paperera, o fes clic a **Afegeix més fitxers** per incloure'n més.
+3. Fes clic a **Converteix a PDF**. L'eina analitza l'estructura XML amb el DOMParser integrat del navegador, n'analitza la jerarquia de dades i la renderitza en un PDF amb jsPDF i format de taula automàtic.
+4. Un sol fitxer es descarrega com a PDF. Diverses conversions s'empaqueten a `xml-to-pdf.zip`.
+
+## Opcions
+
+No cal cap configuració manual. El convertidor detecta automàticament l'estructura XML i tria les maquetacions de taula adequades. La sortida utilitza l'orientació A4 apaïsada per encabir conjunts de dades amples.
+
+## Casos d'ús
+
+- Convertir exportacions de dades XML de bases de dades o API en informes imprimibles
+- Crear resums llegibles a partir de fitxers de configuració XML
+- Convertir factures o registres de transaccions basats en XML en PDF per conservar-los
+- Fer llegibles en forma de document mapes del lloc XML o canals RSS
+
+## Consells
+
+- L'XML ha d'estar ben format. Si l'analitzador troba errors de sintaxi, la conversió fallarà amb un missatge d'error descriptiu que indica el problema.
+- Les estructures XML molt imbricades s'aplanen en taules. Per obtenir els millors resultats, les dades haurien de tenir elements germans repetits amb elements fills coherents.
+- Durant la conversió apareixen actualitzacions de progrés que mostren cada fase: lectura, anàlisi, estudi i renderització.
+
+## Eines relacionades
+
+- [FB2 a PDF](./fb2-to-pdf)
+- [XPS a PDF](./xps-to-pdf)
+- [Correu electrònic a PDF](./email-to-pdf)
diff --git a/docs/ca/tools/xps-to-pdf.md b/docs/ca/tools/xps-to-pdf.md
new file mode 100644
index 00000000..a8657c71
--- /dev/null
+++ b/docs/ca/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS a PDF
+description: Converteix documents XPS i OXPS a PDF al navegador. Sense càrregues, sense registre i totalment privat.
+---
+
+# XPS a PDF
+
+Converteix documents Microsoft XPS i OXPS en fitxers PDF estàndard. XPS (XML Paper Specification) va ser la resposta de Microsoft al PDF, però el seu suport ha anat minvant a totes les plataformes. Aquesta eina fa que aquests documents tornin a ser llegibles per a tothom.
+
+## Formats admesos
+
+| Format | Extensió | Notes |
+| :----- | :------- | :------------------------------------------- |
+| XPS | `.xps` | Format XPS original de Microsoft |
+| OXPS | `.oxps` | Open XPS, la variant de l'estàndard ECMA-388 |
+
+## Com funciona
+
+1. Fes clic a l'àrea de càrrega o arrossega i deixa anar els fitxers XPS/OXPS. Pots seleccionar diversos fitxers alhora.
+2. Revisa la llista de fitxers. Elimina fitxers individuals amb la icona de la paperera, o fes clic a **Afegeix més fitxers** per afegir-hi més documents.
+3. Fes clic a **Converteix a PDF**. El motor PyMuPDF processa cada document localment al navegador.
+4. Un sol fitxer es descarrega directament com a PDF. Diversos fitxers s'agrupen en un arxiu ZIP anomenat `xps-converted.zip`.
+
+## Opcions
+
+Aquesta eina fa una conversió de format directa, sense cap configuració addicional. La sortida conserva les dimensions de pàgina, els gràfics vectorials, les tipografies i les imatges originals de l'XPS.
+
+## Casos d'ús
+
+- Obrir fitxers XPS rebuts de sistemes Windows antics que feien servir per defecte el controlador d'impressió XPS
+- Convertir documents OXPS de Windows 10/11 per compartir-los amb usuaris de macOS o Linux
+- Arxivar fitxers XPS antics en un format més àmpliament compatible
+- Fer accessibles a destinataris externs documents governamentals o corporatius basats en XPS
+
+## Consells
+
+- Les extensions `.xps` i `.oxps` es gestionen automàticament: les pots barrejar en un mateix lot.
+- Si el fitxer XPS original es va crear amb un controlador d'impressió d'alta resolució, el PDF resultant conserva aquesta qualitat. No es fa cap remostreig.
+
+## Eines relacionades
+
+- [Word a PDF](./word-to-pdf)
+- [XML a PDF](./xml-to-pdf)
diff --git a/docs/da/contributing.md b/docs/da/contributing.md
new file mode 100644
index 00000000..9887c6ad
--- /dev/null
+++ b/docs/da/contributing.md
@@ -0,0 +1,136 @@
+# Contributing
+
+Tak for din interesse i at bidrage til BentoPDF! Denne vejledning hjælper dig i gang.
+
+## Kom i gang
+
+### Forudsætninger
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Opsætning
+
+```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
+```
+
+## Projektstruktur
+
+```
+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
+```
+
+## Tilføj et nyt værktøj
+
+### Trin 1: Opret logikfilen
+
+Opret `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
+});
+```
+
+### Trin 2: Opret HTML-siden
+
+Opret `src/pages/your-tool.html` efter de eksisterende værktøjsskabeloner.
+
+### Trin 3: Registrer værktøjet
+
+Tilføj til `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.',
+}
+```
+
+### Trin 4: Tilføj til build-konfigurationen
+
+Tilføj siden til `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Trin 5: Tilføj oversættelser
+
+Tilføj poster til alle sprogfiler i `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Kodestil
+
+- Brug TypeScript til al ny kode
+- Følg eksisterende mønstre for at holde det ensartet
+- Kør `npm run format` før du committer
+- Ingen kommentarer i produktionskode (kommentarer fjernes under build)
+
+## Pull request-processen
+
+1. Opret en feature-branch: `git checkout -b feature/your-feature`
+2. Foretag dine ændringer
+3. Test grundigt: `npm run build`
+4. Send en PR med en tydelig beskrivelse
+
+## Oversættelse
+
+Se [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) for at tilføje nye sprog.
+
+## Contributor License Agreement
+
+Før din PR kan flettes, skal du underskrive vores CLA:
+
+- [Individuel CLA (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [Virksomheds-CLA (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Få hjælp
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Discord-fællesskab](https://discord.gg/Bgq3Ay3f2w)
+
+## Licens
+
+BentoPDF er dobbeltlicenseret:
+
+- **AGPL-3.0** til open source-projekter, hvor du deler hele din kildekode offentligt
+- **Kommerciel licens** til proprietære applikationer med lukket kildekode: [Få en livstidslicens for $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Når du bidrager, accepterer du, at dine bidrag licenseres på disse vilkår.
diff --git a/docs/da/getting-started.md b/docs/da/getting-started.md
new file mode 100644
index 00000000..d5f8f7f3
--- /dev/null
+++ b/docs/da/getting-started.md
@@ -0,0 +1,80 @@
+# Kom i gang
+
+Velkommen til BentoPDF! Denne vejledning hjælper dig hurtigt i gang.
+
+## Hvad er BentoPDF?
+
+BentoPDF er en gratis, open source PDF-værktøjskasse med privatliv i fokus, der kører **helt i din browser**. Dine filer forlader aldrig din enhed. Al behandling sker lokalt ved hjælp af WebAssembly (WASM).
+
+## Hurtig start
+
+### Mulighed 1: Brug den hostede version
+
+Besøg [bentopdf.com](https://www.bentopdf.com) for at bruge BentoPDF med det samme, uden installation.
+
+### Mulighed 2: Selvhost med Docker
+
+> [!IMPORTANT]
+> Konvertering af Office-filer kræver `SharedArrayBuffer`, som kræver både:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - en sikker kontekst
+>
+> `http://localhost` virker til lokal test, fordi browsere behandler loopback som troværdig. `http://192.168.x.x` eller andre LAN-IP'er gør det normalt ikke, så Word/Excel/PowerPoint-konverteringer kræver HTTPS, når der tilgås fra andre enheder på dit netværk.
+
+```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 leveres i to builds: **Self-Hosted-builden** (`bentopdf-simple`, brugt ovenfor) til interne installationer i teams og organisationer, og **Commercial-builden** (`bentopdf:latest`), som bruges af bentopdf.com selv og af indehavere af kommercielle licenser med offentligt tilgængelige installationer. Begge indeholder de samme PDF-værktøjer. Commercial-builden tilføjer bentopdf.com's hero, FAQ, udtalelser og footer. Er du i tvivl, så brug Self-Hosted-builden.
+
+Åbn derefter `http://localhost:3000` i din browser.
+
+> [!NOTE]
+> Hvis du forbereder en air-gapped OCR-installation, skal du hoste OCR-tekstlagets skrifttyper internt ud over Tesseract-workeren, kerne-runtime og traineddata-filerne. Den fulde opsætning er beskrevet i [Selvhosting](/da/self-hosting/), herunder `VITE_OCR_FONT_BASE_URL` og den medfølgende mappe `ocr-fonts/`.
+
+### Mulighed 3: Byg fra kildekode
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Funktioner i overblik
+
+| Kategori | Værktøjer |
+| ---------------------- | ---------------------------------------------------------------- |
+| **Konverter til PDF** | Word, Excel, PowerPoint, billeder, Markdown, EPUB, MOBI og mere |
+| **Konverter fra PDF** | JPG, PNG, tekst, Excel, SVG og mere |
+| **Rediger og annotér** | Underskriv, fremhæv, sortlæg, udfyld formularer, tilføj stempler |
+| **Organiser** | Flet, opdel, roter, slet sider, omarranger |
+| **Optimer** | Komprimer, reparer, fladgør, OCR |
+| **Sikkerhed** | Kryptér, dekryptér, fjern begrænsninger |
+
+## Browserunderstøttelse
+
+BentoPDF fungerer bedst i moderne browsere:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Næste skridt
+
+- [Udforsk alle værktøjer](/da/tools/)
+- [Selvhost BentoPDF](/da/self-hosting/)
+- [Bidrag til projektet](/da/contributing)
diff --git a/docs/da/index.md b/docs/da/index.md
new file mode 100644
index 00000000..116e5e0c
--- /dev/null
+++ b/docs/da/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Gratis PDF-værktøjer med åben kildekode'
+ tagline: Behandl PDF'er helt i din browser. Ingen uploads. Ingen servere. Fuldt privatliv.
+ actions:
+ - theme: brand
+ text: Kom i gang
+ link: /da/getting-started
+ - theme: alt
+ text: Se værktøjer
+ link: /da/tools/
+ - theme: alt
+ text: Selvhost
+ link: /da/self-hosting/
+ - theme: alt
+ text: Kommerciel licens
+ link: /da/licensing
+
+features:
+ - icon: 🔒
+ title: 100% privat
+ details: Dine filer forlader aldrig din enhed. Al behandling sker lokalt i din browser ved hjælp af WebAssembly.
+ - icon: ⚡
+ title: Hurtig og gratis
+ details: Ingen tilmeldinger, ingen grænser, ingen vandmærker. Behandl ubegrænset mange PDF'er gratis, for altid.
+ - icon: 🛠️
+ title: 50+ værktøjer
+ details: Konverter, rediger, flet, opdel, komprimer, underskriv, OCR og mere. Alt hvad du har brug for samlet ét sted.
+
+ - icon: 🌐
+ title: Kan selvhostes
+ details: Installer på din egen infrastruktur. Docker, Vercel, Netlify, AWS eller helt air-gapped miljøer med selvhostede OCR-workers, sprogdata og tekstlagsskrifttyper.
+---
+
+## OCR offline
+
+Hvis du selvhoster BentoPDF i et air-gapped eller offline miljø, kræver OCR mere end Tesseract-workeren og traineddata-filerne. Søgbar PDF-output kræver også, at OCR-tekstlagets skrifttyper serveres internt.
+Se [Selvhosting](/da/self-hosting/) for den fulde opsætning, herunder `VITE_OCR_FONT_BASE_URL`, den medfølgende mappe `ocr-fonts/` og den opdaterede air-gap-arbejdsgang.
diff --git a/docs/da/licensing.md b/docs/da/licensing.md
new file mode 100644
index 00000000..265ea730
--- /dev/null
+++ b/docs/da/licensing.md
@@ -0,0 +1,110 @@
+# 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](/da/self-hosting/#wasm-konfiguration-agpl-komponenter) 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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/da/self-hosting/apache.md b/docs/da/self-hosting/apache.md
new file mode 100644
index 00000000..ffd47fb9
--- /dev/null
+++ b/docs/da/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Installer med Apache
+
+Host BentoPDF med Apache HTTP Server.
+
+## Forudsætninger
+
+- Apache 2.4+
+- mod_rewrite aktiveret
+- SSL-certifikat (anbefales)
+
+## Trin 1: Byg projektet
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Hvis du vil tilpasse branding, skal du sætte miljøvariabler før build:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Trin 2: Kopiér filer
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Trin 3: Apache-konfiguration
+
+Opret `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Trin 4: .htaccess til routing
+
+Opret `/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
+```
+
+## Trin 5: Aktivér de nødvendige moduler
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Trin 6: Aktivér sitet
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Installation i en undermappe
+
+For at hoste på `/pdf/`:
+
+1. Byg med base-URL:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Opdater `.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
+```
+
+## Fejlfinding
+
+### WASM 404-fejl
+
+Sørg for, at MIME-typen er konfigureret:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Underskriv PDF eller Formularudfylder viser en tom viewer (`.mjs` MIME-fejl)
+
+Hvis browserkonsollen viser:
+
+```
+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.
+```
+
+…og den mislykkede forespørgsel ender på `.mjs`, mangler din Apache-konfiguration tilknytningen `.mjs → application/javascript`. Den medfølgende PDF-viewer leveres med ES-modulfiler med filtypen `.mjs`, og Apaches standard-`mime.types` indeholder dem ikke som standard.
+
+Tilføj til din VirtualHost eller `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Genindlæs derefter Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Sådan bekræfter du: find den mislykkede `.mjs`-forespørgsel under fanen Network i browserens DevTools, og tjek svarheaderen `Content-Type`. Den skal nu være `application/javascript`, ikke `application/octet-stream`.
+
+### Rewrite virker ikke
+
+Tjek, at mod_rewrite er aktiveret:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Word/ODT/Excel til PDF virker ikke
+
+LibreOffice WASM kræver `SharedArrayBuffer`, som kræver disse headers:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Det kræver også en sikker kontekst. `http://localhost` virker til lokal test, men `http://192.168.x.x` eller andre LAN-IP'er kræver normalt HTTPS. Hvis headerne er til stede, men `window.crossOriginIsolated` stadig er `false`, så tjek, om siden åbnes over almindelig HTTP på en origin, der ikke er loopback.
+
+De forkomprimerede `.wasm.gz`- og `.data.gz`-filer kræver også korrekt `Content-Encoding`:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Sørg for, at `mod_headers` er aktiveret: `sudo a2enmod headers`
+
+### Tilladelse nægtet
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/da/self-hosting/aws.md b/docs/da/self-hosting/aws.md
new file mode 100644
index 00000000..e7a6a38d
--- /dev/null
+++ b/docs/da/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Installer på AWS S3 + CloudFront
+
+Host BentoPDF på AWS for maksimal kontrol og skalerbarhed.
+
+## Arkitektur
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Trin 1: Opret 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
+```
+
+## Trin 2: Byg og upload
+
+```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
+```
+
+## Trin 3: Opret CloudFront-distribution
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Eller brug AWS Console:
+
+1. Gå til CloudFront → Create distribution
+2. Origin domain: Vælg din S3-bucket
+3. Aktivér "Origin Access Control"
+4. Default root object: `index.html`
+5. Opret distributionen
+
+## Trin 3b: Response Headers Policy (påkrævet til LibreOffice WASM)
+
+LibreOffice-baserede konverteringer (Word, Excel, PowerPoint til PDF) kræver `SharedArrayBuffer`, som kræver bestemte svarheadere. Opret en CloudFront Response Headers Policy:
+
+1. Gå til CloudFront → Policies → Response headers
+2. Opret en brugerdefineret policy med disse headere:
+
+| Header | Værdi |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Tilknyt policyen til din distributions standard-cache behavior
+
+Eller via 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}
+ ]
+ }
+ }'
+```
+
+## Trin 3c: S3-metadata til forkomprimerede WASM-filer
+
+LibreOffice WASM-filerne er forkomprimerede (`.wasm.gz`, `.data.gz`). Sæt den korrekte Content-Type og Content-Encoding, så browsere dekomprimerer dem:
+
+```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 Vigtigt
+Uden response headers policy er `SharedArrayBuffer` ikke tilgængelig, og LibreOffice WASM-konverteringer hænger ved ca. 55 %. Uden den korrekte Content-Encoding på `.gz`-filerne modtager browseren rå gzip-bytes, og WASM-kompilering mislykkes.
+:::
+
+## Trin 4: S3 bucket policy
+
+Giv CloudFront adgang til bucketten:
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Trin 5: Brugerdefinerede fejlsider
+
+Konfigurer 404 til at returnere `index.html` til SPA-routing:
+
+1. CloudFront → Error pages
+2. Opret et brugerdefineret fejlsvar:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Omkostningsestimat
+
+| Ressource | Estimeret pris |
+| -------------------------- | -------------- |
+| S3 Storage (~500MB) | ~$0.01/måned |
+| CloudFront (1TB transfer) | ~$85/måned |
+| CloudFront (10GB transfer) | ~$0.85/måned |
+
+::: tip
+Brug S3 Intelligent Tiering til at spare penge på filer, der sjældent tilgås.
+:::
+
+## Automatisering med 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"
+ }
+}
+```
diff --git a/docs/da/self-hosting/cloudflare.md b/docs/da/self-hosting/cloudflare.md
new file mode 100644
index 00000000..a1788b44
--- /dev/null
+++ b/docs/da/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Installer på Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) tilbyder hurtig, global hosting af statiske sites med ubegrænset båndbredde.
+
+## Hurtig installation
+
+1. Gå til [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Klik på "Create a project"
+3. Forbind dit GitHub-repository
+
+## Build-konfiguration
+
+| Indstilling | Værdi |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Miljøvariabler
+
+Tilføj disse under Settings → Environment variables:
+
+| Variabel | Værdi |
+| ----------------------- | ---------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (valgfrit) |
+| `VITE_BRAND_NAME` | Brugerdefineret brandnavn (valgfrit) |
+| `VITE_BRAND_LOGO` | Logosti relativt til `public/` (valgfrit) |
+| `VITE_FOOTER_TEXT` | Brugerdefineret footer-/copyrighttekst (valgfrit) |
+| `VITE_DEFAULT_LANGUAGE` | Standardsprog i brugerfladen, f.eks. `fr` (valgfrit) |
+
+## Konfigurationsfil
+
+Opret `_headers` i din `public`-mappe:
+
+```
+# 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 Vigtigt
+Headerne `Cross-Origin-Embedder-Policy` og `Cross-Origin-Opener-Policy` er påkrævet til konvertering af Word/ODT/Excel/PowerPoint til PDF. Uden dem er `SharedArrayBuffer` ikke tilgængelig, og LibreOffice WASM-motoren kan ikke starte.
+:::
+
+Opret `_redirects` til SPA-routing:
+
+```
+/* /index.html 200
+```
+
+## Eget domæne
+
+1. Gå til dit Pages-projekt
+2. Klik på "Custom domains"
+3. Tilføj dit domæne
+4. Cloudflare konfigurerer automatisk DNS, hvis domænet ligger hos Cloudflare
+
+## Fordele
+
+- **Gratis, ubegrænset båndbredde**
+- **Globalt CDN** med 300+ edge-lokationer
+- **Automatisk HTTPS**
+- **Preview-installationer** til pull requests
+- **Hurtige builds**
+
+## Fejlfinding
+
+### Upload af store filer
+
+Cloudflare Pages understøtter filer op til 25 MB. WASM-moduler bør være fine, men hvis du rammer grænser, kan du overveje:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Størrelsesgrænser for Workers
+
+Hvis du bruger Cloudflare Workers til avanceret routing, skal du være opmærksom på grænsen på 1 MB for gratis planer.
+
+## CORS-proxy-worker (til digitale signaturer)
+
+Værktøjet til digital signatur kræver en CORS-proxy for at hente certifikatkæder. Installer den medfølgende worker:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Sikkerhedsfunktioner
+
+| Funktion | Beskrivelse |
+| ------------------------------ | ----------------------------------- |
+| **URL-begrænsninger** | Kun certifikat-URL'er tilladt |
+| **Filstørrelsesgrænse** | Maks. 10MB pr. forespørgsel |
+| **Rate limiting** | 60 forespørgsler/IP/min (kræver KV) |
+| **Blokering af private IP'er** | Blokerer localhost og interne IP'er |
+
+### Aktivér rate limiting
+
+```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
+```
+
+### Byg med proxy-URL
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Eller med 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 .
+```
+
+> **Bemærk:** Se [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) for opsætning af HMAC-signatur.
diff --git a/docs/da/self-hosting/cors-proxy.md b/docs/da/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..433119de
--- /dev/null
+++ b/docs/da/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS-proxy til hentning af certifikater
+
+Værktøjet til digital signatur bruger en CORS-proxy til at hente udstedercertifikater fra eksterne certifikatudstedere (CA'er). Det er nødvendigt, fordi mange CA-servere ikke inkluderer CORS-headere i deres svar, hvilket forhindrer direkte hentning fra browseren.
+
+Derudover udleverer mange CA-servere certifikater over almindelig HTTP. Når din BentoPDF-instans hostes over HTTPS, blokerer browsere disse HTTP-forespørgsler (mixed content-politik). CORS-proxyen løser begge problemer ved at route forespørgsler gennem et HTTPS-endpoint med de rette headere.
+
+## Sådan fungerer det
+
+Når du signerer en PDF med et certifikat:
+
+1. Biblioteket `zgapdfsigner` forsøger at bygge en komplet certifikatkæde
+2. Det henter udstedercertifikater fra URL'er indlejret i dit certifikats AIA-udvidelse (Authority Information Access)
+3. Disse forespørgsler routes gennem en CORS-proxy, der tilføjer de nødvendige `Access-Control-Allow-Origin`-headere
+4. Proxyen returnerer certifikatdata til browseren
+
+## Selvhosting af CORS-proxyen
+
+Hvis du selvhoster BentoPDF, skal du installere din egen CORS-proxy, for at digitale signaturer virker med certifikater, der kræver hentning af kæden.
+
+### Mulighed 1: Cloudflare Workers (anbefales)
+
+1. **Installer Wrangler CLI**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Log ind på Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Klon BentoPDF og opdater tilladte origins**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Åbn `cors-proxy-worker.js` og ret arrayet `ALLOWED_ORIGINS` til dit domæne:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Vigtigt
+ Uden denne ændring afviser proxyen alle forespørgsler fra dit site med fejlen **403 Forbidden**. Standarden tillader kun forespørgsler fra `bentopdf.com`.
+ :::
+
+4. **Installer proxyen**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Notér din worker-URL (f.eks. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Genbyg BentoPDF med proxy-URL'en**:
+
+ Hvis du bruger 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 .
+ ```
+
+ Hvis du bygger fra kildekode:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Mulighed 2: Egen backend-proxy
+
+Du kan også oprette dit eget proxy-endpoint. Kravene er:
+
+1. Acceptér GET-forespørgsler med en `url`-forespørgselsparameter
+2. Hent URL'en fra din server (ingen CORS-begrænsninger på serversiden)
+3. Returnér svaret med disse headere:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Eksempel på en implementering i 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' });
+ }
+});
+```
+
+## Sikkerhedsovervejelser
+
+Den medfølgende Cloudflare Worker har flere sikkerhedsforanstaltninger:
+
+| Funktion | Beskrivelse |
+| ------------------------------ | ------------------------------------------------------------------------------------------------ |
+| **Origin-validering** | Tillader kun forespørgsler fra domæner på listen `ALLOWED_ORIGINS` |
+| **URL-begrænsninger** | Tillader kun certifikat-URL'er (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blokering af private IP'er** | Blokerer private IPv4/IPv6-områder, link-local, loopback, decimale IP'er og cloud-metadata |
+| **Content-Type-sikkerhed** | Returnerer kun sikre MIME-typer for certifikater og blokerer content-type-injektion fra upstream |
+| **Filstørrelsesgrænse** | Streamer svaret med en grænse på 10MB og afbryder midt i overførslen, hvis den overskrides |
+| **Rate limiting** | 60 forespørgsler pr. minut pr. IP eller IPv6 /64 (kræver KV, fejler åbent ved KV-fejl) |
+| **HMAC-signaturer** | Valgfri signering på klientsiden (afskrækker tilfældigt misbrug) |
+
+### DNS rebinding (selvhosting uden for Cloudflare)
+
+Workeren afviser enhver URL, der resolver til en privat eller intern IP. Den kan ikke bruge en fast tilladelsesliste over værter, fordi URL'er i certifikatkæder peger på den CA, der har udstedt certifikatet (FNMT, virksomheders CA'er og så videre), så destinationerne kendes ikke på forhånd. Det efterlader et lille rebinding-vindue: en person, der driver DNS for sit eget domæne, kan give sikkerhedstjekket en offentlig IP og den egentlige forespørgsel en privat lidt senere.
+
+På Cloudflare kan det ikke udnyttes: Workers kan ikke nå private IP'er eller metadata-endpointet `169.254.169.254`, så en rebind rammer ingenting. Giv bare ikke workeren en vej ind: tilknyt ikke en Tunnel, Service eller binding til et privat netværk (den behøver kun `RATE_LIMIT_KV`).
+
+Hvis du kører den uden for Cloudflare (workerd, Node og lignende) i en VPC, _kan_ runtime'en nå interne IP'er. Sæt en egress-firewall foran, og bloker de private områder: `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` og deres IPv6-ækvivalenter. Det kan applikationskode ikke håndhæve, når du er uden for Cloudflare.
+
+## Deaktivering af proxyen
+
+Hvis du ikke vil bruge en CORS-proxy, så sæt miljøvariablen til en tom streng:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Bemærk**: Uden proxyen mislykkes signering med certifikater, der kræver ekstern hentning af kæden (som FNMT eller nogle virksomheders CA'er), med fejlen "Failed to fetch".
+
+## Fejlfinding
+
+### "Signing error: TypeError: Failed to fetch"
+
+Det betyder normalt enten:
+
+1. **Ingen CORS-proxy konfigureret**: Sæt `VITE_CORS_PROXY_URL` og genbyg
+2. **Mixed content blokeret**: Dit site bruger HTTPS, men certifikatets udsteder-URL er HTTP. CORS-proxyen løser dette.
+3. **CORS-proxyen afviser din origin**: Tjek, at dit domæne står i arrayet `ALLOWED_ORIGINS` i `cors-proxy-worker.js`
+
+### "403 Forbidden" fra proxyen
+
+Dit domæne står ikke på listen `ALLOWED_ORIGINS`. Rediger `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Installer derefter igen: `npx wrangler deploy`
+
+### Test af proxyen
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certifikater, der virker uden proxy
+
+Nogle certifikater indeholder hele kæden i P12/PFX-filen og kræver ikke ekstern hentning:
+
+- Selvsignerede certifikater
+- Nogle kommercielle CA'er, der medsender mellemliggende certifikater
+- Certifikater, du selv har samlet med hele kæden
diff --git a/docs/da/self-hosting/docker.md b/docs/da/self-hosting/docker.md
new file mode 100644
index 00000000..dd0f620c
--- /dev/null
+++ b/docs/da/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Installer med Docker / Podman
+
+Den nemmeste måde at selvhoste BentoPDF i et produktionsmiljø.
+
+> [!IMPORTANT]
+> **Påkrævede headere til konvertering af Office-filer**
+>
+> LibreOffice-baserede værktøjer (konvertering af Word, Excel og PowerPoint) kræver disse HTTP-headere for at understøtte `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Siden skal også serveres fra en sikker kontekst. `http://localhost` virker til lokal test, men `http://192.168.x.x` eller andre LAN-IP'er opfylder normalt ikke kravet, så Office-konvertering over almindelig HTTP mislykkes, selv om headerne er til stede.
+>
+> De officielle containerbilleder indeholder disse headere. Hvis du bruger en reverse proxy (Traefik, Caddy osv.), så sørg for, at headerne bevares eller tilføjes, og brug HTTPS ved adgang uden for loopback.
+
+> [!TIP]
+> **Podman-brugere:** Alle `docker`-kommandoer virker med Podman, hvis du erstatter `docker` med `podman` og `docker-compose` med `podman-compose`.
+
+## Hurtig start
+
+> [!TIP]
+> BentoPDF leveres i to builds:
+>
+> - **Self-Hosted-build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Alle PDF-værktøjer, **uden** markedsføringsindhold (ingen hero, FAQ, udtalelser, footer). Brug den til interne installationer i teams og organisationer. Det er **ikke** en "lite"-version med færre funktioner.
+> - **Commercial-build**: `ghcr.io/alam00000/bentopdf:latest`. Det fulde markedsføringssite, som bruges af bentopdf.com selv og af indehavere af kommercielle licenser med offentligt tilgængelige installationer.
+>
+> Er du i tvivl: hent Self-Hosted-builden.
+
+```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
+
+Opret `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
+```
+
+Kør:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Byg dit eget image
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Byg og kør:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Miljøvariabler
+
+| Variabel | Beskrivelse | Standard |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Byg Self-Hosted-varianten (skjuler bentopdf.com's markedsføringsindhold: hero, FAQ, udtalelser, footer). Alle PDF-værktøjer bevares. | `false` |
+| `BASE_URL` | Installer i en undermappe | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL til PyMuPDF WASM-modul | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL til Ghostscript WASM-modul | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL til CoherentPDF WASM-modul | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL til OCR-workerscript | _(tom; brug Tesseract.js' standard-CDN)_ |
+| `VITE_TESSERACT_CORE_URL` | Mappe til OCR-kerne-runtime | _(tom; brug Tesseract.js' standard-CDN)_ |
+| `VITE_TESSERACT_LANG_URL` | Mappe til OCR-traineddata | _(tom; brug Tesseract.js' standard-CDN)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Kommaseparerede OCR-sprog, der vises i brugerfladen | _(tom; vis hele kataloget)_ |
+| `VITE_OCR_FONT_BASE_URL` | Mappe til OCR-tekstlagets skrifttyper | _(tom; brug eksterne Noto-skrift-URL'er)_ |
+| `VITE_DEFAULT_LANGUAGE` | Standard UI language | `en` |
+| `VITE_BRAND_NAME` | Brugerdefineret brandnavn | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logosti relativt til `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Brugerdefineret footer-/copyrighttekst | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | Kommaseparerede værktøjs-ID'er, der skal skjules | _(tom; alle værktøjer aktiveret)_ |
+| `DISABLE_GITHUB_STARS` | Spring hentningen af GitHub-stjerneantal over ved sideindlæsning, og fjern `api.github.com` fra CSP. Simple Mode-builds springer den altid over. | `false` |
+| `SITE_URL` | Offentlig URL, der skrives i canonical-, hreflang- og sitemap-links. Lad den stå på standardværdien, medmindre du vil have søgemaskiner til at behandle din installation som et eget site. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Med en brugerdefineret `SITE_URL` markeres hver side `noindex`, så din kopi ikke konkurrerer med bentopdf.com i søgeresultaterne. Sæt til `true` for at lade søgemaskiner indeksere den. | `false` |
+| `COMPRESSION_MODE` | Forhåndskomprimerede kopier, der gemmes ved siden af hver fil: `o` ingen, `g` `.gz` (serveres af imagets nginx), `b` `.br`, `all` begge. Imagets nginx kan ikke servere `.br`. | `o` |
+
+WASM-modul-URL'erne er forudkonfigureret med CDN-standarder, så alle avancerede funktioner virker fra start. Overskriv dem til air-gapped eller selvhostede installationer.
+
+### Søgemaskiner
+
+Som standard peger hver side søgemaskiner hen på bentopdf.com som originalen, så din installation ikke vises som dublet. Du behøver ikke ændre noget for en privat eller intern instans.
+
+- **Hold din instans helt ude af søgeresultaterne:** kør containeren med `-e ROBOTS_NOINDEX=true`. Det kræver kun en genstart, ikke en ny build.
+- **Gør din instans til sit eget site i søgeresultaterne:** byg med `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Uden `ALLOW_INDEXING=true` markerer en brugerdefineret `SITE_URL` hver side `noindex`.
+
+### Content-Security-Policy
+
+Nginx-imaget leveres med en håndhævende `Content-Security-Policy`-header. CSP'ens direktiver `script-src`, `connect-src` og `font-src` **genereres ved build** ud fra `VITE_*`-URL-variablerne ovenfor, og alle værter, du angiver via `--build-arg`, føjes automatisk til politikken.
+
+Det betyder:
+
+- Hvis du overskriver `VITE_CORS_PROXY_URL` eller `VITE_WASM_*_URL` ved build, tillader CSP automatisk disse origins, så der kræves ingen ekstra konfiguration.
+- For URL'er på `cdn.jsdelivr.net` tillader `script-src` kun den præcise versionerede pakkemappe, for eksempel `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, ikke hele CDN'et. jsDelivr leverer enhver offentlig npm-pakke eller GitHub-repository, så hvis hele værten blev tilladt, kunne hvilken som helst af dem køre på din instans. URL'er på alle andre værter tillades pr. origin.
+- Hvis du konfigurerer brugerdefinerede WASM-URL'er _ved kørsel_ via siden Avancerede indstillinger i appen, står disse origins **ikke** i CSP, og browseren blokerer hentning fra dem. Det gælder også en anden version af samme pakke på `cdn.jsdelivr.net`, fordi kun den version, der blev sat ved build, er tilladt. Konfiguration ved kørsel er beregnet til eksperimenter. Til permanente brugerdefinerede URL'er skal du sætte det tilsvarende `VITE_*`-build-arg.
+- Air-gapped installationer, der overskriver alle tre `VITE_WASM_*_URL`-værdier, får også disse `cdn.jsdelivr.net`-pakkemapper fjernet fra CSP (hver standardværdi erstattes, ikke tilføjes). Tesseract OCR-standarderne på `cdn.jsdelivr.net` forbliver i politikken, indtil du også sætter de tre `VITE_TESSERACT_*`-værdier. Tilsvarende erstatter `VITE_CORS_PROXY_URL` den offentlige standard `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+CSP indeholder `'unsafe-eval'` i `script-src`, fordi LibreOffice WASM-runtime (brugt af værktøjerne til konvertering af Word/Excel/PowerPoint) og billedbiblioteket wasm-vips (brugt til PDF til TIFF) kompilerer intern dispatch-kode via `new Function()`. Hvis den fjernes, holder de værktøjer op med at virke. Hvis du bygger i `SIMPLE_MODE` (uden LibreOffice) og ikke har brug for PDF til TIFF, kan du manuelt redigere den genererede `security-headers.conf` og fjerne `'unsafe-eval'` for en strengere politik.
+
+For OCR skal du lade `VITE_TESSERACT_*`-variablerne stå tomme for at bruge standardressourcerne online, eller sætte alle tre sammen til selvhostet/offline OCR. Delvise OCR-overskrivninger afvises, fordi worker, kerne-runtime og traineddata-mappe skal passe sammen. For fuldt offline søgbar PDF-output skal du også sætte `VITE_OCR_FONT_BASE_URL`, så OCR-tekstlagets skrifttyper indlæses fra din interne server i stedet for de offentlige Noto-skrift-URL'er.
+
+`VITE_DEFAULT_LANGUAGE` angiver brugerfladens sprog for førstegangsbesøgende. Understøttede værdier: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Brugere kan stadig skifte sprog, det ændrer kun standarden.
+
+Eksempel:
+
+```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
+```
+
+### Brugerdefineret branding
+
+Erstat BentoPDF's standardlogo, navn og footertekst med dine egne. Læg din logofil i mappen `public/` (eller brug et eksisterende billede), og angiv derefter branding-variablerne ved build:
+
+```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 .
+```
+
+Branding virker i både fuld tilstand og Simple Mode og kan kombineres med alle andre build-indstillinger.
+
+### Deaktivering af bestemte værktøjer
+
+Skjul værktøjer i brugerfladen af hensyn til compliance eller sikkerhed. Deaktiverede værktøjer fjernes fra forsiden, søgeresultater, tastaturgenveje og workflow-builderen. Direkte adgang via URL viser en side om, at værktøjet ikke er tilgængeligt.
+
+Værktøjs-ID'er er sidens URL uden `.html`. Hvis værktøjet for eksempel ligger på `bentopdf.com/edit-pdf.html`, er ID'et `edit-pdf`.
+
+#### Find værktøjs-ID'er
+
+Den nemmeste måde: åbn et værktøj i BentoPDF og se på URL'en. Den sidste del af stien (uden `.html`) er værktøjs-ID'et.
+
+
+Komplet liste over værktøjs-ID'er
+
+**Rediger og annotér:** `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`
+
+**Konverter til 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`
+
+**Konverter fra 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`
+
+**Organiser og administrer:** `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`
+
+**Optimer og reparer:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Sikkerhed:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Mulighed 1: Ved build (Docker build-arg)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Det bager listen over deaktiverede værktøjer ind i JavaScript-bundlen. Kræver en ny build at ændre.
+
+#### Mulighed 2: Ved kørsel (config.json)
+
+Mount en `config.json`-fil i den serverede mappe, uden behov for ny build:
+
+```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
+```
+
+Eller med 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
+```
+
+Begge metoder kan kombineres, og listerne flettes. Hvis et værktøj står i en af dem, er det deaktiveret.
+
+#### Deaktivering af editorfunktioner
+
+Du kan også deaktivere bestemte funktioner i PDF-editoren (f.eks. sortlægning, annotationer, formularer) uden at deaktivere hele editorværktøjet. Tilføj `editorDisabledCategories` til din `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Komplet liste over editorkategorier
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Annotation:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Former:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Måling:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formular:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Sortlægning:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Dokument:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Side:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Værktøjer:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Markering:** `selection`, `selection-copy`
+
+**Historik:** `history`, `history-undo`, `history-redo`
+
+
+
+Kategorierne er hierarkiske: Deaktiverer du en overordnet kategori (f.eks. `annotation`), deaktiveres alle dens underkategorier.
+
+### Deaktivering af GitHub-stjernetælleren
+
+Navigationslinjen viser et live antal GitHub-stjerner, som hentes fra `api.github.com` ved sideindlæsning. Det er den eneste eksterne forespørgsel, der ikke tjener en PDF-funktion. Deaktivér den ved build for at fjerne hentekoden fra bundlen og fjerne `api.github.com` fra Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Simple Mode-builds (`bentopdf-simple`) springer altid stjernetælleren over. Flaget er kun nødvendigt på Commercial-builden eller egne fulde builds.
+
+### Brugerdefinerede WASM-URL'er (air-gapped / selvhostet)
+
+> [!IMPORTANT]
+> WASM-URL'er bages ind i JavaScript **ved build**. WASM-filerne downloades af **brugerens browser** ved kørsel, og Docker downloader dem ikke under build. I air-gapped netværk skal du hoste WASM-filerne på en intern server, som browsere kan nå.
+
+**Fuld air-gapped arbejdsgang:**
+
+```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
+```
+
+Brug koderne udskrevet af `bash scripts/prepare-airgap.sh --list-ocr-languages`, eller søg på navn med `bash scripts/prepare-airgap.sh --search-ocr-language `, til `--ocr-languages`. Når du bygger med en begrænset OCR-delmængde, skal du give de samme koder til `VITE_TESSERACT_AVAILABLE_LANGUAGES`, så appen kun viser medfølgende sprog. For fuld offline OCR-output skal du også hoste den medfølgende mappe `ocr-fonts/` og pege `VITE_OCR_FONT_BASE_URL` på den.
+
+Sæt en variabel til en tom streng for at deaktivere det modul (brugere skal så konfigurere manuelt via Avancerede indstillinger).
+
+## Brugerdefineret port
+
+Som standard lytter BentoPDF på port `8080` inde i containeren. For at ændre det skal du sætte miljøvariablen `PORT` ved kørsel:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variable | Beskrivelse | Standard |
+| -------- | ------------------------------ | -------- |
+| `PORT` | Nginx' lytteport i containeren | `8080` |
+
+Det virker med både standard- og nonroot-Dockerfilerne.
+
+## Brugerdefineret bruger-ID (PUID/PGID)
+
+Til miljøer, der kræver kørsel som en bestemt bruger uden root (NAS-enheder, Kubernetes med sikkerhedskontekster, organisationens politikker), tilbyder BentoPDF en separat Dockerfile med PUID/PGID-understøttelse i LSIO-stil.
+
+### Byg og kør
+
+```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
+```
+
+### Miljøvariabler
+
+| Variabel | Beskrivelse | Standard |
+| -------------- | --------------------- | -------- |
+| `PUID` | Bruger-ID at køre som | `1000` |
+| `PGID` | Gruppe-ID at køre som | `1000` |
+| `PORT` | Nginx' lytteport | `8080` |
+| `DISABLE_IPV6` | Deaktivér IPv6-lytter | `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
+```
+
+### Sådan fungerer det
+
+Containeren starter som root, opretter en bruger med den angivne PUID/PGID, justerer ejerskab på alle skrivbare mapper og dropper derefter rettigheder med `su-exec`. Nginx-processen kører udelukkende som den bruger, du har angivet.
+
+> [!NOTE]
+> Standard-`Dockerfile` bruger `nginx-unprivileged` (UID 101) og anbefales til de fleste installationer. Brug kun `Dockerfile.nonroot`, når du har brug for et bestemt UID/GID.
+
+> [!WARNING]
+> PUID/PGID kan ikke være `0` (root). Entrypointet validerer input og afslutter med en fejl ved ugyldige værdier.
+
+## Med Traefik (reverse proxy)
+
+```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
+```
+
+## Med Caddy (reverse proxy)
+
+```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"
+}
+```
+
+## Ressourcegrænser
+
+```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-integration)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) giver dig mulighed for at køre Podman-containere som systemd-services. Det er ideelt til produktionsinstallationer på Linux-systemer.
+
+### Grundlæggende Quadlet-opsætning
+
+Opret en container-unitfil på `~/.config/containers/systemd/bentopdf.container` (bruger) eller `/etc/containers/systemd/bentopdf.container` (system):
+
+```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
+```
+
+### Aktivér og start
+
+```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]
+> Til installation for hele systemet skal du bruge `systemctl` uden flaget `--user` og placere filen i `/etc/containers/systemd/`.
+
+### Quadlet med health check
+
+```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
+```
+
+### Automatisk opdatering med Quadlet
+
+Podman kan automatisk opdatere containere, når nye images er tilgængelige:
+
+```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-netværkskonfiguration
+
+Til brugerdefineret netværkskonfiguration skal du oprette en netværksfil `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Henvis derefter til den i din containerfil:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Opdatering
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/da/self-hosting/hostinger.md b/docs/da/self-hosting/hostinger.md
new file mode 100644
index 00000000..dc7a3397
--- /dev/null
+++ b/docs/da/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Installer på Hostinger
+
+[Hostinger](https://hostinger.com) er en populær udbyder af shared hosting. Denne vejledning beskriver, hvordan du installerer BentoPDF på Hostingers shared hosting.
+
+## Forudsætninger
+
+- Hostinger-hostingplan med adgang til filhåndtering
+- Node.js installeret lokalt til build
+
+## Trin 1: Byg projektet
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+De byggede filer ligger i mappen `dist`.
+
+## Trin 2: Upload til Hostinger
+
+### Installation på rodomænet
+
+1. Log ind på din Hostinger-konto
+2. Gå til **File Manager** → **public_html**
+3. **Slet** eventuelle eksisterende filer (tag backup, hvis nødvendigt)
+4. **Upload** hele indholdet af din lokale `dist`-mappe til `public_html`
+
+### Installation i en undermappe
+
+Hvis du installerer i en undermappe (f.eks. `yourdomain.com/pdf-tools/`):
+
+1. Byg med den korrekte base-URL:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Opret mappen i Hostinger:
+ - Gå til **File Manager** → **public_html**
+ - Opret en ny mappe: `pdf-tools`
+3. Upload hele indholdet af `dist` til `public_html/pdf-tools/`
+
+## Trin 3: Opret .htaccess-filen
+
+Opret en `.htaccess`-fil i roden af din installationsmappe (`public_html` eller `public_html/pdf-tools/`):
+
+::: warning Vigtigt
+Ved installation i en undermappe skal du ændre `RewriteBase /` til `RewriteBase /pdf-tools/` (eller navnet på din mappe).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Eksempel på .htaccess i en undermappe
+
+For `yourdomain.com/pdf-tools/` skal du opdatere disse linjer:
+
+```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
+```
+
+## Fejlfinding
+
+### WASM-filer indlæses ikke
+
+Sørg for, at MIME-typerne er sat korrekt i `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### LibreOffice-værktøjer virker ikke
+
+Sikkerhedsheaderne er afgørende for SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Hvis headerne ikke bliver anvendt, så kontakt Hostingers support for at aktivere `mod_headers`.
+
+### 404-fejl ved genindlæsning af siden
+
+Sørg for, at reglen for filtypen `.html` og sprogrutene er konfigureret korrekt. BentoPDF bruger statiske HTML-filer, ikke SPA-routing:
+
+```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]
+```
+
+### Grænser for filupload
+
+Hostinger kan have grænser for filstørrelse. Upload WASM-filer separat, hvis masseupload mislykkes.
diff --git a/docs/da/self-hosting/index.md b/docs/da/self-hosting/index.md
new file mode 100644
index 00000000..3746d5ac
--- /dev/null
+++ b/docs/da/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Selvhostingsguide
+
+BentoPDF kan selvhostes på din egen infrastruktur. Denne guide gennemgår forskellige deployment-muligheder.
+
+## Hurtig start med Docker / Podman
+
+Den hurtigste måde at selvhoste BentoPDF på:
+
+> [!TIP]
+> BentoPDF leveres i to builds:
+>
+> - **Selvhostet build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Alle PDF-værktøjer, **uden** marketingelementerne (ingen hero, FAQ, udtalelser eller sidefod). Brug denne til interne deployments i teams og organisationer. Den er **ikke** en "lite"-version med færre funktioner.
+> - **Kommerciel build**: `ghcr.io/alam00000/bentopdf:latest`. Det fulde marketingsite, brugt af bentopdf.com selv og af kommercielle licensindehavere med offentligt tilgængelige deployments.
+>
+> Er du i tvivl: Hent det selvhostede build.
+
+> [!IMPORTANT]
+> Konvertering af Office-filer kræver `SharedArrayBuffer`, hvilket betyder, at appen både skal være cross-origin-isoleret og serveres fra en sikker kontekst. Det officielle image sender allerede de nødvendige COOP/COEP-headere, men browsere deaktiverer stadig `SharedArrayBuffer` på almindelige HTTP-origins i lokale netværk som `http://192.168.x.x`.
+>
+> Brug kun `http://localhost` til test på samme enhed. Hvis brugerne tilgår BentoPDF via en LAN-IP eller et værtsnavn, skal du afslutte forbindelsen med 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
+```
+
+Eller med 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)
+
+Kør BentoPDF som en systemd-tjeneste. Opret `~/.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
+```
+
+Se [Docker-deploymentguiden](/da/self-hosting/docker) for den fulde Quadlet-dokumentation.
+
+## Bygning fra kildekode
+
+```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
+```
+
+## Konfigurationsindstillinger
+
+### Selvhostet build (Simple Mode)
+
+Det selvhostede build (imaget `bentopdf-simple`, også kaldet Simple Mode) er **funktionelt identisk** med det kommercielle build. Alle PDF-værktøjer er til stede og opfører sig på samme måde. Det skjuler blot de marketingelementer, der kun giver mening på bentopdf.com selv eller i en kommerciel, offentligt tilgængelig deployment. **Det er ikke en version med færre funktioner eller en "lite"-version.**
+
+**Hvad det selvhostede build skjuler** (kun kosmetisk, ingen PDF-funktioner fjernes):
+
+- Navigationslinje, hero-sektion, funktionssektion, FAQ, udtalelser, sidefod
+- Opdaterer sidens titel til "PDF-værktøjer"
+
+**Hvad det selvhostede build beholder** (alt det, der faktisk arbejder med PDF):
+
+- Alle PDF-værktøjer (flet, opdel, rediger, underskriv, OCR, Office-konvertering osv.)
+- Understøttelse af eget brand, al konfiguration ved build og under kørsel
+
+Det kommercielle build (`ghcr.io/alam00000/bentopdf:latest`) driver bentopdf.com selv og bruges af kommercielle licensindehavere med offentligt tilgængelige deployments. Det tilføjer hero, FAQ, udtalelser og sidefod, som ikke ville give mening i et internt værktøj.
+
+Hvis du selvhoster BentoPDF til dit team, din organisation eller som internt værktøj, skal du hente det selvhostede build:
+
+```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
+```
+
+Se [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) for alle detaljer.
+
+### Kommerciel build (offentligt tilgængelige deployments med dit eget brand)
+
+Det kommercielle build (imaget `bentopdf`, uden suffikset `-simple`) driver bentopdf.com selv. Det indeholder det fulde marketingsite (hero, funktioner, FAQ, udtalelser, sidefod) oven på alle PDF-værktøjer. Brug dette build, når du vil **deploye BentoPDF som en offentligt tilgængelig PDF-tjeneste under dit eget brand**, for eksempel:
+
+- Du kører BentoPDF som hostet SaaS for slutbrugere på dit eget domæne
+- Du vil have landingsside-oplevelsen (marketingsektioner + værktøjer), ikke kun selve værktøjsfladen
+- Du er kommerciel licensindehaver og indlejrer BentoPDF i et kommercielt produkt
+
+**Kør det som det er** (BentoPDF-branding, nyttigt til at få vist buildet):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Byg med dit eget brand** (den typiske kommercielle arbejdsgang):
+
+```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
+```
+
+Alle andre build-indstillinger (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, WASM-URL-overstyringer osv.) virker på samme måde som i det selvhostede build.
+
+::: warning Licensering
+Det er tilladt at køre det kommercielle build under begge af BentoPDF's to licensmuligheder:
+
+- **AGPL-3.0** (gratis): tilladt, hvis din deployment udgiver hele sin kildekode under AGPL, inklusive eventuelle branding-ændringer og omkringliggende forretningslogik.
+- **Kommerciel licens** ($79 livstid): påkrævet til lukkede/proprietære deployments, hvor du ikke gør din branding-fork eller forretningskode open source.
+
+Se [licenssiden](https://www.bentopdf.com/licensing) for den fulde sammenligning. AGPL-licenserede WASM-moduler (PyMuPDF, Ghostscript, CoherentPDF) indlæses fra et CDN under kørsel, så de indgår ikke i dit image og ændrer ikke din licensmæssige stilling.
+:::
+
+### Base-URL
+
+Deploy til en undermappe:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Eget brand
+
+Erstat BentoPDF's standardlogo, -navn og sidefodstekst med dine egne ved build:
+
+| Variabel | Beskrivelse | Standard |
+| ------------------ | ----------------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Brandnavn vist i sidehoved og sidefod | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logosti relativt til `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Brugerdefineret sidefods-/ophavsretstekst | `© 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
+```
+
+Eller via 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 .
+```
+
+Branding virker i både fuld tilstand og Simple Mode og kan kombineres med alle andre build-indstillinger (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Deaktivering af bestemte værktøjer
+
+Skjul enkelte værktøjer af hensyn til compliance eller sikkerhed. Deaktiverede værktøjer fjernes fra startsiden, søgning, genveje, workflow-builderen og direkte URL-adgang.
+
+Værktøjs-id'er er sidens URL uden `.html`. Åbn et værktøj, og se på URL'en (f.eks. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Ved build** (indbygget i bundlen):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Under kørsel** (ingen genopbygning nødvendig, montér en `config.json`):
+
+```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
+```
+
+Begge metoder kan kombineres, og listerne bliver slået sammen.
+
+Du kan også deaktivere bestemte funktioner i PDF-editoren (f.eks. redigering af indhold) uden at deaktivere hele værktøjet ved at tilføje `editorDisabledCategories` til `config.json`. Se [Docker-guiden](/da/self-hosting/docker#deaktivering-af-editorfunktioner) for den fulde liste over kategorier.
+
+## Deployment-guider
+
+Vælg din platform:
+
+- [Vercel](/da/self-hosting/vercel)
+- [Netlify](/da/self-hosting/netlify)
+- [Cloudflare Pages](/da/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/da/self-hosting/aws)
+- [Hostinger](/da/self-hosting/hostinger)
+- [Nginx](/da/self-hosting/nginx)
+- [Apache](/da/self-hosting/apache)
+- [Docker](/da/self-hosting/docker)
+- [Kubernetes](/da/self-hosting/kubernetes)
+- [CORS-proxy](/da/self-hosting/cors-proxy) - Påkrævet til digitale signaturer
+
+## Almindelige problemer
+
+### Word / ODT / Excel / PowerPoint til PDF hænger (SharedArrayBuffer utilgængelig)
+
+**Symptom**: LibreOffice-baserede dokumentkonverteringer (Word, ODT, Excel, PowerPoint til PDF) hænger ved ca. 55 % eller starter ikke. Browserens konsol kan vise:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…eller `window.crossOriginIsolated` rapporterer `false`, eller WASM-kompileringen rapporterer `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Årsag**: LibreOffice WASM kræver `SharedArrayBuffer`, som browseren kun aktiverer, når siden er **cross-origin-isoleret** OG serveres fra en **sikker kontekst**. Det betyder, at to ting skal være opfyldt:
+
+1. Hvert svar indeholder begge headere:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. Siden serveres fra `https://...` eller `http://localhost`. Almindelig HTTP på en LAN-IP (f.eks. `http://192.168.x.x`) tæller IKKE som sikker, og browsere deaktiverer `SharedArrayBuffer` dér.
+
+Uoverensstemmelsen `00 61 73 6d / 1f 8b 08 08` er et separat undersymptom: De forkomprimerede `.wasm.gz`- / `.data.gz`-filer mangler svarheaderen `Content-Encoding: gzip`, så browseren modtager rå gzip-bytes i stedet for dekomprimeret WASM.
+
+**Løsning**: Se din platformspecifikke deployment-guide for den præcise konfiguration:
+
+- [Nginx →](/da/self-hosting/nginx#underskriv-pdf-eller-formularudfylder-viser-en-tom-læser-mjs-mime-fejl)
+- [Apache →](/da/self-hosting/apache#underskriv-pdf-eller-formularudfylder-viser-en-tom-viewer-mjs-mime-fejl)
+- [AWS S3 + CloudFront →](/da/self-hosting/aws#trin-3b-response-headers-policy-pakrævet-til-libreoffice-wasm)
+- [Cloudflare Pages →](/da/self-hosting/cloudflare#konfigurationsfil) (`_headers`-fil)
+- [Netlify →](/da/self-hosting/netlify#word-odt-excel-til-pdf-hænger-ved-55) (`netlify.toml`)
+- [Vercel →](/da/self-hosting/vercel#word-odt-excel-til-pdf-virker-ikke) (`vercel.json`)
+- [Hostinger →](/da/self-hosting/hostinger#libreoffice-værktøjer-virker-ikke) (`.htaccess`)
+- [Kubernetes →](/da/self-hosting/kubernetes#mjs-mime-typefejl-underskriv-pdf-formularudfylder-tom-iframe)
+- **Docker**: håndteres automatisk af den medfølgende nginx-konfiguration, ingen handling nødvendig.
+
+**Kontrollér**: Åbn DevTools Console på en vilkårlig BentoPDF-side, og kør:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Hvis siden er HTTPS eller `http://localhost` OG begge COEP/COOP-headere findes på hvert svar, består begge kontroller. Hvis du er på `http://192.168.x.x` eller en anden HTTP-origin, der ikke er loopback, skal du afslutte den med HTTPS. Der findes ingen løsning, der kun bruger headere.
+
+### `.mjs`-filer serveres som `application/octet-stream`
+
+**Symptom**: Underskriv PDF / Formularudfylder / visse andre værktøjer viser en tom læser eller kan ikke indlæses. Browserens konsol rapporterer:
+
+> `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.`
+
+**Årsag**: Din webserver eller reverse proxy har ingen MIME-type-tilknytning til `.mjs`-filer (den indbyggede PDF-læser leverer ES-moduler med den filendelse). Mange standardkonfigurationer bruger som standard `application/octet-stream` til ukendte filendelser, og browsere nægter at køre dem som ES-moduler.
+
+**Løsning**: Se din platformspecifikke deployment-guide for det præcise udsnit:
+
+- [Nginx →](/da/self-hosting/nginx#underskriv-pdf-eller-formularudfylder-viser-en-tom-læser-mjs-mime-fejl)
+- [Apache →](/da/self-hosting/apache#underskriv-pdf-eller-formularudfylder-viser-en-tom-viewer-mjs-mime-fejl)
+- [AWS S3 + CloudFront →](/da/self-hosting/aws#trin-2-byg-og-upload) (se `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/da/self-hosting/kubernetes#mjs-mime-typefejl-underskriv-pdf-formularudfylder-tom-iframe)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: håndteres automatisk, ingen handling nødvendig.
+
+**Kontrollér**: Åbn DevTools → fanen Network, find den mislykkede `.mjs`-anmodning, og kontrollér svarheaderen `Content-Type`. Den skal være `application/javascript`. Hvis den stadig er `application/octet-stream`, er det muligt, at en ydre reverse proxy eller et CDN gætter typen igen. Tjek hvert led i din serveringskæde.
+
+## WASM-konfiguration (AGPL-komponenter)
+
+BentoPDF **bundler ikke** AGPL-licenserede behandlingsbiblioteker i sin kildekode, men **forhåndskonfigurerer CDN-URL'er**, så alle funktioner virker ud af boksen, uden manuel opsætning.
+
+::: tip Nul konfiguration som standard
+Fra og med v2.0.0 er WASM-moduler forhåndskonfigureret til at blive indlæst fra jsDelivr CDN via miljøvariabler. Alle avancerede funktioner virker med det samme uden brugerkonfiguration.
+:::
+
+| Komponent | Licens | Funktioner |
+| --------------- | -------- | ------------------------------------------------------------------------------ |
+| **PyMuPDF** | AGPL-3.0 | EPUB/MOBI/FB2/XPS-konvertering, udtrækning af billeder, udtrækning af tabeller |
+| **Ghostscript** | AGPL-3.0 | PDF/A-konvertering, komprimering, udretning af skæve sider, rasterisering |
+| **CoherentPDF** | AGPL-3.0 | Indholdsfortegnelse, vedhæftninger, PDF-sammenfletning med bogmærker |
+
+### Standardmiljøvariabler
+
+Disse er sat i `.env.production` og indbygget i buildet:
+
+```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=
+```
+
+### Overstyring af WASM-URL'er
+
+Du kan overstyre standardværdierne ved build til brugerdefinerede deployments:
+
+```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
+```
+
+For at deaktivere et modul helt (kræver manuel brugerkonfiguration via Avancerede indstillinger) skal du sætte dets variabel til en tom streng.
+
+Til OCR skal du enten lade alle `VITE_TESSERACT_*`-variabler være tomme og beholde de online standardressourcer, eller angive worker-, core- og lang-URL'erne sammen til selvhostet/offline OCR. Hvis du kun bundler bestemte OCR-sprog, skal du også sætte `VITE_TESSERACT_AVAILABLE_LANGUAGES` til de samme kommaseparerede koder, så brugerfladen kun tilbyder installerede sprog, og ikke-understøttede valg fejler med en beskrivende fejl. Til fuldt offline PDF-output med søgbar tekst skal du desuden sætte `VITE_OCR_FONT_BASE_URL` til den interne mappe, der serverer de bundlede OCR-skrifttyper.
+
+Brugere kan også til enhver tid overstyre disse standardværdier via **Avancerede indstillinger** i brugerfladen. Brugeroverstyringer gemt i browseren har forrang over miljøstandarderne.
+
+### Air-gapped / offline deployment
+
+Til netværk uden internetadgang (offentlig sektor, sundhed, finans osv.). WASM-URL'erne er indbygget i JavaScript ved **build**. De egentlige WASM-filer downloades af **brugerens browser** under kørsel. Du skal derfor forberede alt på en maskine med internet og derefter overføre det til det isolerede netværk.
+
+#### Automatiseret script (anbefalet)
+
+Det medfølgende script `prepare-airgap.sh` automatiserer hele processen: det downloader WASM-pakker, bygger Docker-imaget og producerer en selvstændig bundle med et opsætningsscript.
+
+```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
+```
+
+Dette producerer en bundle-mappe:
+
+```
+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
+```
+
+Overfør bundlen til det air-gappede netværk via USB, internt artefaktlager eller en godkendt metode. Kør derefter det medfølgende opsætningsscript:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Opsætningsscriptet indlæser Docker-imaget, udpakker WASM-filer og starter eventuelt containeren.
+
+**Script-indstillinger:**
+
+| Flag | Beskrivelse | Standard |
+| ------------------------------ | ------------------------------------------------------------- | -------------------------------------- |
+| `--wasm-base-url ` | Hvor WASM-filerne hostes internt | _(påkrævet, spørges om, hvis mangler)_ |
+| `--image-name ` | Docker image-tag | `bentopdf` |
+| `--output-dir ` | Output-mappe til bundlen | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Aktivér Simple Mode | fra |
+| `--base-url ` | Base-URL til undermappe (f.eks. `/pdf/`) | `/` |
+| `--language ` | Standardsprog i brugerfladen (f.eks. `fr`, `de`) | _(ingen)_ |
+| `--brand-name ` | Brugerdefineret brandnavn | _(ingen)_ |
+| `--brand-logo ` | Logosti relativt til `public/` | _(ingen)_ |
+| `--footer-text ` | Brugerdefineret sidefodstekst | _(ingen)_ |
+| `--ocr-languages ` | Kommasepareret liste over OCR-sprog, der skal bundles | `eng` |
+| `--list-ocr-languages` | Udskriv understøttede OCR-koder og navne, og afslut | fra |
+| `--search-ocr-language ` | Søg efter OCR-koder via navn eller forkortelse | fra |
+| `--dockerfile ` | Dockerfile, der skal bruges | `Dockerfile` |
+| `--skip-docker` | Spring Docker-build og eksport over | fra |
+| `--skip-wasm` | Spring WASM-download over (genbrug eksisterende `.tgz`-filer) | fra |
+
+Den interaktive prompt accepterer også `list` for at udskrive den fulde liste over understøttede Tesseract-koder og `search ` for at finde match som `search german` eller `search chi`.
+
+::: warning Krav om samme origin
+WASM-filer skal serveres fra **samme origin** som BentoPDF-appen. Web Workers bruger `importScripts()`, som ikke kan indlæse scripts på tværs af origins. Hvis BentoPDF for eksempel kører på `https://internal.example.com`, skal WASM-base-URL'en også være `https://internal.example.com/wasm`.
+:::
+
+#### Manuelle trin
+
+
+Hvis du foretrækker at gøre det manuelt uden scriptet
+
+**Trin 1: Download WASM- og OCR-pakkerne** (på en maskine med internet)
+
+```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
+```
+
+**Trin 2: Byg Docker-imaget med interne URL'er**
+
+```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 .
+```
+
+**Trin 3: Eksportér Docker-imaget**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Trin 4: Overfør til det air-gappede netværk**
+
+Kopiér via USB, internt artefaktlager eller en godkendt overførselsmetode:
+
+- `bentopdf.tar`: Docker-imaget
+- De fem `.tgz` WASM/OCR-pakker fra trin 1
+- Mappen `tesseract-langdata/` fra trin 1
+- Mappen `ocr-fonts/` fra trin 1
+
+**Trin 5: Opsætning inde i det air-gappede netværk**
+
+```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
+```
+
+Sørg for, at filerne er tilgængelige på de URL'er, du konfigurerede i trin 2, herunder `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` og `.../ocr/fonts`.
+
+
+
+::: info Bygger du fra kildekode i stedet for Docker?
+Sæt variablerne i `.env.production`, før du kører `npm run build`:
+
+```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
+```
+
+:::
+
+### Hosting af din egen WASM-proxy
+
+Hvis du skal servere AGPL WASM-filer med korrekte CORS-headere, kan du deploye en simpel proxy. Se [Cloudflare WASM Proxy-guiden](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) for et eksempel på en implementering.
+
+::: tip Hvorfor adskilt?
+Denne adskillelse sikrer:
+
+- Klar juridisk compliance for kommercielle brugere
+- BentoPDF's kerne forbliver under sin dobbeltlicens (AGPL-3.0 / kommerciel)
+- WASM-filer indlæses under kørsel og bundles ikke i kildekoden
+ :::
+
+## Systemkrav
+
+| Krav | Minimum |
+| ---------- | --------------------------------- |
+| Lagerplads | ~100 MB (kerne uden AGPL-moduler) |
+| RAM | 512 MB |
+| CPU | Enhver moderne processor |
+
+::: tip
+BentoPDF er et statisk site, så der kræves ingen database eller backend-server!
+:::
diff --git a/docs/da/self-hosting/kubernetes.md b/docs/da/self-hosting/kubernetes.md
new file mode 100644
index 00000000..38a4f0db
--- /dev/null
+++ b/docs/da/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Deploy med Kubernetes
+
+Kubernetes er måske overkill til et statisk site, men det kan passe godt, hvis du allerede standardiserer på Helm + GitOps.
+
+> [!IMPORTANT]
+> **Påkrævede headere til konvertering af Office-filer**
+>
+> LibreOffice-baserede værktøjer (konvertering af Word, Excel, PowerPoint) kræver disse HTTP-headere for at understøtte `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> De officielle BentoPDF nginx-images indeholder disse headere. I Kubernetes er **Ingress-/Gateway-controllere også reverse proxies**, så sørg for, at disse headere bevares (eller tilføj dem i kanten).
+
+## Forudsætninger
+
+- Kubernetes-klynge
+- Helm v3
+- Et BentoPDF nginx-image (f.eks. `ghcr.io/alam00000/bentopdf:`), der serverer på **port 8080**
+
+## Deploy med Helm
+
+### Installér fra dette repo (lokalt chart)
+
+```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
+```
+
+### Installér fra GHCR (OCI-chart)
+
+Hvis chartet er udgivet til GHCR som et OCI-artefakt:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Gør det tilgængeligt
+
+### Port-forward (hurtig test)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (valgfrit)
+
+Aktivér Ingress (eksempel til nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (valgfrit)
+
+Dette chart understøtter Gateway API `Gateway` + `HTTPRoute`.
+
+Eksempel (Cloudflare Gateway API-operator):
+
+```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
+```
+
+## Sørg for, at SharedArrayBuffer-headerne stadig virker (Ingress/Gateway)
+
+### Hvad der "burde" ske
+
+BentoPDF's nginx-konfiguration sætter de nødvendige svarheadere. De fleste Ingress-/Gateway-controllere **sender upstream-svarheadere videre uændret**.
+
+### Hvad der kan gå galt
+
+- En controller- eller edge-politik, der **overskriver** eller **fjerner** svarheadere
+- En "security headers"-middleware, der sætter andre COOP/COEP-værdier
+
+### Sådan kontrollerer du det
+
+Kør dette mod dit offentlige endpoint:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Du skal se:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Hvis din Ingress-controller ikke bevarer dem
+
+Tilføj headerne i kanten (afhænger af controlleren). Eksempel til **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;
+```
+
+## `.mjs` MIME-typefejl (Underskriv PDF / Formularudfylder, tom iframe)
+
+Hvis browserens konsol viser `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` på en `.mjs`-anmodning, erstatter en Ingress-/Gateway-controller foran BentoPDF's nginx den upstream `Content-Type`-header med `application/octet-stream`.
+
+BentoPDF-imagets nginx serverer allerede `.mjs` som `application/javascript`. Løsningen er at stoppe controlleren i at fjerne eller erstatte den. For nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Eller brug et `ResponseHeaderModifier`-filter i Gateway API til at sætte `Content-Type: application/javascript` for `.mjs`-stier. Kontrollér i DevTools → fanen Network: Den mislykkede `.mjs`-anmodning skulle nu vise `content-type: application/javascript`.
+
+### Hvis du bruger Gateway API og vil tvinge headere på
+
+Gateway API understøtter et `ResponseHeaderModifier`-filter. Du kan knytte det til i `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
+```
+
+Understøttelse af bestemte filtre afhænger af din Gateway-controller. Hvis et filter ignoreres, så tilføj headerne i kanten eller i controller-laget i stedet.
+
+## Deaktivering af bestemte værktøjer
+
+Brug en ConfigMap til at deaktivere værktøjer under kørsel uden at genopbygge imaget:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Montér den i den serverede mappe:
+
+```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
+```
+
+Værktøjs-id'er er sidens URL uden `.html`. Åbn et værktøj, og se på URL'en (f.eks. `edit-pdf`, `merge-pdf`, `compress-pdf`). Deaktiverede værktøjer skjules fra startsiden, søgning, genveje, workflow-builderen og direkte URL-adgang. Se [Docker-guiden](/da/self-hosting/docker#deaktivering-af-bestemte-værktøjer) for den fulde liste over indstillinger.
diff --git a/docs/da/self-hosting/netlify.md b/docs/da/self-hosting/netlify.md
new file mode 100644
index 00000000..d0593c4c
--- /dev/null
+++ b/docs/da/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Deploy til Netlify
+
+[Netlify](https://netlify.com) tilbyder fremragende hosting af statiske sites med en generøs gratis plan.
+
+## Deploy med ét klik
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Manuel deployment
+
+### Trin 1: Forbind repository
+
+1. Log ind på [Netlify](https://app.netlify.com)
+2. Klik på "Add new site" → "Import an existing project"
+3. Forbind din GitHub-konto
+4. Vælg din BentoPDF-fork
+
+### Trin 2: Konfigurér build-indstillinger
+
+| Indstilling | Værdi |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### Trin 3: Deploy
+
+Klik på "Deploy site", og vent på buildet.
+
+## Konfigurationsfil
+
+Opret `netlify.toml` i dit projekts rodmappe:
+
+```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 Vigtigt
+Headerne `Cross-Origin-Embedder-Policy` og `Cross-Origin-Opener-Policy` er påkrævet til konvertering af Word/ODT/Excel/PowerPoint til PDF. Uden dem er `SharedArrayBuffer` utilgængelig, og LibreOffice WASM-motoren kan ikke starte.
+
+Headerne `Content-Encoding: gzip` på filerne `.wasm.gz` og `.data.gz` får browseren til at dekomprimere dem automatisk. Uden dem modtager browseren rå gzip-bytes, og WASM-kompileringen mislykkes.
+:::
+
+## Miljøvariabler
+
+Angiv disse under Site settings → Environment variables:
+
+| Variabel | Beskrivelse |
+| ----------------------- | ------------------------------------------------------------ |
+| `SIMPLE_MODE` | Sæt til `true` for et minimalt build |
+| `VITE_BRAND_NAME` | Brugerdefineret brandnavn (erstatter "BentoPDF") |
+| `VITE_BRAND_LOGO` | Logosti relativt til `public/` (f.eks. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Brugerdefineret sidefods-/ophavsretstekst |
+| `VITE_DEFAULT_LANGUAGE` | Standardsprog i brugerfladen (f.eks. `fr`, `de`, `es`) |
+
+## Eget domæne
+
+1. Gå til Site settings → Domain management
+2. Klik på "Add custom domain"
+3. Følg anvisningerne til DNS-konfiguration
+
+## Store mediefiler
+
+Til store WASM-filer kan du overveje at aktivere [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Fejlfinding
+
+### Word/ODT/Excel til PDF hænger ved 55 %
+
+Hvis dokumentkonverteringer hænger ved 55 %, så åbn DevTools Console og kontrollér:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Hvis `crossOriginIsolated` er `false`, bliver COEP/COOP-headerne fra din `netlify.toml` ikke anvendt. Sørg for, at filen ligger i dit projekts rodmappe, og deploy igen.
+
+Hvis du ser `expected magic word 00 61 73 6d, found 1f 8b 08 08` i konsollen, mangler `.wasm.gz`-filerne headerne `Content-Encoding: gzip`. Sørg for, at blokkene `[[headers]]` til `soffice.wasm.gz` og `soffice.data.gz` findes i din `netlify.toml`.
+
+### Build mislykkes
+
+Kontrollér kompatibiliteten med Node-versionen:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Langsom første indlæsning
+
+Aktivér asset-optimering under Site settings → Build & deploy → Asset optimization.
diff --git a/docs/da/self-hosting/nginx.md b/docs/da/self-hosting/nginx.md
new file mode 100644
index 00000000..4b224ae3
--- /dev/null
+++ b/docs/da/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Deploy med Nginx
+
+Host BentoPDF på din egen server med Nginx.
+
+## Forudsætninger
+
+- Ubuntu/Debian-server
+- Nginx installeret
+- SSL-certifikat (anbefalet: Let's Encrypt)
+
+## Trin 1: Byg projektet
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+For at tilpasse branding skal du sætte miljøvariabler, før du bygger:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Trin 2: Kopiér filer
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Trin 3: Nginx-konfiguration
+
+Opret `/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;
+ }
+}
+```
+
+## Trin 4: Aktivér sitet
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Trin 5: SSL med Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Deployment i undermappe
+
+For at hoste på `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Byg med:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Ydelsesjustering
+
+Tilføj til `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;
+}
+```
+
+## Fejlfinding
+
+### WASM indlæses ikke
+
+Sørg for, at MIME-typen er sat:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Underskriv PDF eller Formularudfylder viser en tom læser (`.mjs` MIME-fejl)
+
+Hvis browserens konsol viser:
+
+```
+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.
+```
+
+…og den mislykkede anmodning ender på `.mjs`, mangler din nginx tilknytningen `.mjs → application/javascript`. Den indbyggede PDF-læser (brugt af Underskriv PDF, Formularudfylder og et par andre værktøjer) leverer ES-modulfiler med filendelsen `.mjs`, og nginx' standardfil `mime.types` indeholder dem ikke som standard.
+
+Ret det ved at tilføje `mjs` til den eksisterende `application/javascript`-linje i `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> Tilføj IKKE en _anden_ `application/javascript`-linje. Nginx læser `mime.types` linje for linje, og kun én tilknytning mellem type og filendelse vinder, så en anden linje ignoreres i stilhed på nogle versioner. Redigér den eksisterende linje, så `mjs` står ved siden af `js`.
+
+Eller overstyr lokalt i din server-blok (uden at redigere den globale fil):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Genindlæs nginx efter ændringen:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+For at bekræfte det: Find den mislykkede `.mjs`-anmodning i browserens DevTools → fanen Network, og kontrollér svarheaderen `Content-Type`. Den skulle nu være `application/javascript`, ikke `application/octet-stream`.
+
+### Word/ODT/Excel til PDF virker ikke
+
+LibreOffice WASM kræver `SharedArrayBuffer`, som kræver headerne `Cross-Origin-Embedder-Policy` og `Cross-Origin-Opener-Policy`. Det kræver også en sikker kontekst, så `http://localhost` virker til lokal test, men `http://192.168.x.x` eller andre LAN-IP'er kræver normalt HTTPS. Bemærk, at nginx' `add_header`-direktiver i en `location`-blok **overskriver** `add_header`-direktiver på serverniveau. De bliver ikke slået sammen. Hver `location`-blok med sin egen `add_header` skal indeholde COEP/COOP-headerne.
+
+Kontrollér med:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Hvis du bruger en reverse proxy foran nginx, så sørg for, at den bevarer disse headere.
+
+### 502 Bad Gateway
+
+Tjek Nginx' fejllogge:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/da/self-hosting/vercel.md b/docs/da/self-hosting/vercel.md
new file mode 100644
index 00000000..63fcc5aa
--- /dev/null
+++ b/docs/da/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Deploy til Vercel
+
+[Vercel](https://vercel.com) tilbyder den letteste deployment-oplevelse for statiske sites.
+
+## Deploy med ét klik
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Manuel deployment
+
+### Trin 1: Fork repositoriet
+
+Fork [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) til din GitHub-konto.
+
+### Trin 2: Importér til Vercel
+
+1. Gå til [vercel.com/new](https://vercel.com/new)
+2. Vælg dit forkede repository
+3. Konfigurér projektet:
+
+| Indstilling | Værdi |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Trin 3: Miljøvariabler (valgfrit)
+
+Tilføj disse, hvis det er nødvendigt:
+
+| Variabel | Beskrivelse |
+| ----------------------- | ------------------------------------------------------------ |
+| `SIMPLE_MODE` | Sæt til `true` for minimal brugerflade |
+| `VITE_BRAND_NAME` | Brugerdefineret brandnavn (erstatter "BentoPDF") |
+| `VITE_BRAND_LOGO` | Logosti relativt til `public/` (f.eks. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Brugerdefineret sidefods-/ophavsretstekst |
+| `VITE_DEFAULT_LANGUAGE` | Standardsprog i brugerfladen (f.eks. `fr`, `de`, `es`) |
+
+### Trin 4: Deploy
+
+Klik på "Deploy", og vent på, at buildet er færdigt.
+
+## Eget domæne
+
+1. Gå til dit projekts indstillinger
+2. Naviger til "Domains"
+3. Tilføj dit eget domæne
+4. Konfigurér DNS som anvist
+
+## Begrænsninger
+
+::: warning Store filer
+Vercels serverless-funktioner har en grænse på 50 MB. Da BentoPDF er et statisk site, bør det ikke påvirke dig, men WASM-modulerne er store (ca. 100 MB i alt). Sørg for, at de leveres fra mappen `/public`.
+:::
+
+## Fejlfinding
+
+### Build-timeout
+
+Hvis buildet timer ud, så prøv:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 ved opdatering af siden
+
+Tilføj en `vercel.json` til SPA-routing:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Word/ODT/Excel til PDF virker ikke
+
+LibreOffice WASM-konverteringer kræver `SharedArrayBuffer`, som kræver disse svarheadere på alle sider:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+De forkomprimerede `.wasm.gz`- og `.data.gz`-filer skal også have `Content-Encoding: gzip`, så browseren dekomprimerer dem.
+
+Tilføj disse til din `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" }
+ ]
+ }
+ ]
+}
+```
+
+For at kontrollere det skal du åbne DevTools Console og køre `console.log(window.crossOriginIsolated)`. Den skal returnere `true`.
diff --git a/docs/da/tools/add-attachments.md b/docs/da/tools/add-attachments.md
new file mode 100644
index 00000000..18be1f1d
--- /dev/null
+++ b/docs/da/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Tilføj vedhæftninger
+description: Indlejr filer af enhver type i en PDF på dokumentniveau eller knyttet til bestemte sider.
+---
+
+# Tilføj vedhæftninger
+
+Indlejr en eller flere filer direkte i et PDF-dokument. Vedhæftninger kan tilføjes på dokumentniveau (synlige i enhver PDF-læsers panel for vedhæftninger) eller knyttes til bestemte sider.
+
+## Sådan fungerer det
+
+1. Upload den PDF, du vil vedhæfte filer til.
+2. Brug dropzonen til vedhæftninger til at vælge de filer, du vil indlejre (alle filtyper).
+3. Vælg niveau for vedhæftningen: **Dokument** (standard) eller **Side**.
+4. Hvis du vælger sideniveau, skal du angive et sideinterval (f.eks. `1-3` eller `5`).
+5. Klik på knappen for at behandle. Den ændrede PDF downloades med dine filer indlejret.
+
+## Funktioner
+
+- Vedhæft enhver filtype: billeder, regneark, arkiver, programfiler, alt muligt
+- Placering af vedhæftninger på dokumentniveau eller sideniveau
+- Flere filer kan vedhæftes i én handling
+- Viser filnavne og størrelser for alle valgte vedhæftninger
+- Outputtet bevarer det oprindelige PDF-indhold med de indlejrede filer tilføjet
+
+## Indstillinger
+
+| Indstilling | Beskrivelse |
+| ------------------ | --------------------------------------------------------------------------------- |
+| **Dokumentniveau** | Vedhæfter filer til PDF'en som helhed, tilgængelige fra panelet for vedhæftninger |
+| **Sideniveau** | Vedhæfter filer til bestemte sider, angivet med et sideinterval |
+
+## Anvendelsesområder
+
+- Samle kildedata (Excel-filer, CSV'er) med en PDF-rapport
+- Vedhæfte de originale billedfiler til en PDF med et fotoportfolio
+- Indlejre underbilag i en kontrakt eller et tilbud
+- Tilføje supplerende materiale til bestemte sider i en træningsmanual
+
+## Tips
+
+- Vedhæftninger på dokumentniveau understøttes bredest på tværs af PDF-læsere. Vedhæftninger på sideniveau er muligvis ikke synlige i alle læsere.
+- Der er ingen grænse for filstørrelsen på vedhæftninger, men meget store indlejrede filer øger PDF'ens størrelse tilsvarende.
+
+## Relaterede værktøjer
+
+- [Udtræk vedhæftninger](./extract-attachments)
+- [Redigér vedhæftninger](./edit-attachments)
+- [Flet PDF](./merge-pdf)
diff --git a/docs/da/tools/add-blank-page.md b/docs/da/tools/add-blank-page.md
new file mode 100644
index 00000000..b17a83cf
--- /dev/null
+++ b/docs/da/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Tilføj tom side
+description: Indsæt en eller flere tomme sider på en vilkårlig position i et PDF-dokument.
+---
+
+# Tilføj tom side
+
+Indsæt tomme sider i en PDF på en position, du selv angiver. Du bestemmer, hvor de tomme sider placeres, og hvor mange der tilføjes.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Værktøjet viser antallet af sider.
+2. Angiv den **position**, hvor de tomme sider skal indsættes. Brug `0` for at indsætte allerførst, eller det samlede antal sider for at tilføje til sidst.
+3. Angiv **antallet** af tomme sider, der skal tilføjes (standard er 1).
+4. Klik på knappen for at behandle. Den ændrede PDF downloades med de tomme sider indsat.
+
+## Funktioner
+
+- Indsæt på enhver position: i begyndelsen, i midten eller til sidst i dokumentet
+- Tilføj flere tomme sider i én handling
+- Positionshinten opdateres dynamisk ud fra den uploadede PDF's sideantal
+- Tomme sider i standard A4-format
+
+## Anvendelsesområder
+
+- Tilføje en tom skilleside mellem afsnit i et sammensat dokument
+- Indsætte tomme sider, så dobbeltsidet udskrivning passer
+- Tilføje plads til håndskrevne noter i en udskrevet studievejledning
+- Fylde et dokument ud, så det opfylder et krav om minimum sideantal
+
+## Tips
+
+- Position `0` indsætter før første side. En position svarende til det samlede sideantal tilføjer efter sidste side.
+- Hvis du skal indsætte indhold (ikke kun tomme sider) på en bestemt position, kan du bruge [PDF Multi-værktøj](./pdf-multi-tool) til at indsætte en anden PDF efter en given side.
+
+## Relaterede værktøjer
+
+- [Organisér og dupliker](./organize-pdf)
+- [PDF Multi-værktøj](./pdf-multi-tool)
+- [Flet PDF](./merge-pdf)
diff --git a/docs/da/tools/add-page-labels.md b/docs/da/tools/add-page-labels.md
new file mode 100644
index 00000000..d3c5c0ca
--- /dev/null
+++ b/docs/da/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Tilføj sideetiketter
+description: Tilføj PDF-sideetiketter med romertal, bogstavpræfikser, brugerdefineret nummerering og flere regler pr. dokument.
+---
+
+# Tilføj sideetiketter
+
+Sideetiketter styrer, hvordan sidetal vises i PDF-læsere (tallet i værktøjslinjen, ikke det der er trykt på siden). Med dette værktøj kan du give forskellige sideintervaller forskellige nummereringsmåder: romertal til forsiden, decimaltal til hoveddelen, bogstaver til bilag og meget mere.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Indstillingspanelet vises med én etiketregel som standard.
+3. Konfigurér hver regel med et sideinterval, en stil, et valgfrit præfiks og en startværdi.
+4. Klik på **Tilføj regel** for at oprette flere regler til forskellige afsnit.
+5. Klik på **Tilføj sideetiketter** for at anvende alle regler og downloade resultatet.
+
+## Indstillinger
+
+Hver etiketregel har disse indstillinger:
+
+- **Sideinterval** -- Hvilke sider reglen gælder for. Lad feltet stå tomt for alle sider. Understøtter intervaller som `1-4`, `7`, `odd` eller `1-9,30-40`.
+- **Etiketstil** -- Arabiske decimaltal, små romertal (i, ii, iii), store romertal (I, II, III), små bogstaver (a, b, c), store bogstaver (A, B, C) eller ingen etiket (kun præfiks).
+- **Etiketpræfiks** -- Valgfri tekst foran hver etiket, f.eks. "A-" for at lave etiketter som A-1, A-2, A-3.
+- **Startværdi** -- Det tal, der tælles fra. Standard er 1. Sæt til 0 for nulbaseret nummerering.
+- **Fortsæt nummerering på tværs af adskilte intervaller** -- Slå dette til, når en regel rammer ikke-sammenhængende sider (som `1-9,30-40` eller `odd`), og du vil have nummereringen til at fortsætte i rækkefølge.
+- **Fjern eksisterende sideetiketter** -- Markeret som standard. Rydder tidligere etiketter, før dine nye regler anvendes.
+
+## Funktioner
+
+- Flere etiketregler pr. dokument til komplekse nummereringsskemaer
+- Seks etiketstile, der dækker alle gængse nummereringssystemer
+- Understøttelse af brugerdefinerede præfikser til afsnitsbaseret etikettering
+- Understøttelse af adskilte intervaller med fortløbende nummerering
+- Mulighed for at beholde eller fjerne eksisterende etiketter
+
+## Anvendelsesområder
+
+- Sætte romertalsetiketter (i, ii, iii) på en bogs forord og decimaletiketter på hovedteksten
+- Etikettere bilagssider med bogstavpræfikser som "A-1", "A-2", "B-1", "B-2"
+- Rette sideetiketter i et scannet dokument, hvor de fysiske sidetal ikke passer med PDF'ens siderækkefølge
+- Tilføje nulbaseret nummerering til tekniske dokumenter
+
+## Tips
+
+- Sideetiketter er metadata, som PDF-læsere viser i deres navigationslinje. De udskrives ikke på selve siden. Til synlige tal kan du bruge [Sidetal](./page-numbers).
+- Dette værktøj kræver, at CoherentPDF (CPDF) er konfigureret i dine WASM-indstillinger. Hvis det ikke er sat op, bliver du bedt om at konfigurere det.
+
+## Relaterede værktøjer
+
+- [Sidetal](./page-numbers)
+- [Bates-nummerering](./bates-numbering)
+- [Redigér bogmærker](./bookmark)
diff --git a/docs/da/tools/add-stamps.md b/docs/da/tools/add-stamps.md
new file mode 100644
index 00000000..68e75cd4
--- /dev/null
+++ b/docs/da/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Tilføj stempler
+description: Tilføj billedstempler til dine PDF-sider med en integreret annoteringsværktøjslinje og angivelse af brugernavn.
+---
+
+# Tilføj stempler
+
+Placér billedstempler på dine PDF-sider i en indlejret læser med en værktøjslinje til stempelannotering. Stempler kan indeholde dit navn som afsender, hvilket gør værktøjet nyttigt til godkendelsesforløb, gennemgange og markering af dokumenter.
+
+## Sådan fungerer det
+
+1. Skriv dit navn i feltet **Stempelbrugernavn**. Dette navn vises på de stempler, du opretter.
+2. Upload din PDF-fil ved at klikke eller trække den ind i dropzonen.
+3. Stempeleditoren åbner med dit dokument indlæst i en læser.
+4. Brug værktøjslinjens billedstempelværktøj til at vælge og placere stempler på en vilkårlig side.
+5. Placér og tilpas størrelsen på stemplerne efter behov.
+6. Klik på **Gem stemplet PDF** for at downloade resultatet.
+
+## Funktioner
+
+- Integreret PDF-læser med en stempelspecifik annoteringsværktøjslinje
+- Angivelse af brugernavn på oprettede stempler
+- Placering af billedstempler på enhver side
+- Placering og størrelsesændring med træk og slip
+- Automatisk tilpasning af læserens størrelse efter sidens billedformat
+- Visning af fil med navn og størrelse
+
+## Anvendelsesområder
+
+- Tilføje billedstemplerne "GODKENDT" eller "GENNEMGÅET" til dokumenter i et gennemgangsforløb
+- Placere billeder af firmasegl eller notarstempel på officielle dokumenter
+- Markere sider med "MODTAGET"-stempler med gennemgangerens navn
+- Tilføje kvalitetskontrolstempler til inspektionsrapporter
+
+## Tips
+
+- Angiv dit stempelbrugernavn, før du uploader PDF'en. Brugernavnet indlejres i stemplets metadata.
+- Læseren tilpasser sin højde efter PDF'ens første sides billedformat, så visningen bliver optimal.
+- Til tekstbaserede vandmærker i stedet for billedstempler kan du bruge værktøjet [Tilføj vandmærke](./add-watermark).
+
+## Relaterede værktøjer
+
+- [Underskriv PDF](./sign-pdf)
+- [Tilføj vandmærke](./add-watermark)
+- [PDF-editor](./edit-pdf)
diff --git a/docs/da/tools/add-watermark.md b/docs/da/tools/add-watermark.md
new file mode 100644
index 00000000..cc98034c
--- /dev/null
+++ b/docs/da/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Tilføj vandmærke
+description: Sæt tekst- eller billedvandmærker på PDF-sider med en visuel træk-og-slip-editor og live eksempelvisning.
+---
+
+# Tilføj vandmærke
+
+Tilføj tekst- eller billedvandmærker til dine PDF-sider med en visuel editor. Du kan placere vandmærket ved at trække det direkte i eksempelvisningen, ændre størrelsen med hjørnehåndtag og indstille gennemsigtighed, rotation, skrifttype og farve. Hver side kan have sin egen vandmærkeposition, eller du kan anvende det samme vandmærke på alle sider på én gang.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Editoren åbner med en live eksempelvisning af første side og et vandmærke, der kan trækkes.
+3. Vælg mellem **Tekst**- eller **Billede**-vandmærke med skiftknapperne.
+4. Konfigurér vandmærkets indstillinger i sidepanelet.
+5. Træk vandmærket i eksempelvisningen, så det står præcis, hvor du vil have det. Brug hjørnehåndtagene til at ændre størrelsen.
+6. Gå mellem siderne for at indstille vandmærker pr. side, eller lad **Anvend på alle sider** være markeret.
+7. Klik på **Tilføj vandmærke** for at behandle og downloade.
+
+## Indstillinger
+
+**Indstillinger for tekstvandmærke:**
+
+- **Tekst** -- Vandmærkets tekst (f.eks. "FORTROLIG", "UDKAST").
+- **Skriftstørrelse** -- Fra 10 til 200 punkt. Standard er 72.
+- **Farve** -- Vilkårlig farve via farvevælgeren.
+- **Gennemsigtighed** -- Styr gennemsigtigheden fra helt gennemsigtig til helt uigennemsigtig.
+- **Rotation** -- Roter vandmærketeksten fra -180 til 180 grader.
+
+**Indstillinger for billedvandmærke:**
+
+- **Billedupload** -- Upload en PNG, JPG eller anden billedfil, der skal bruges som vandmærke.
+- **Gennemsigtighed** -- Styr billedets gennemsigtighed.
+- **Skala** -- Ændr størrelsen på billedvandmærket.
+
+**Layoutindstillinger:**
+
+- **Enkelt** -- Ét vandmærke pr. side, placeret ved at trække eller med positionsforvalgene.
+- **Fliselagt** -- Gentager vandmærket over hele siden i et diagonalt gitter, der følger rotationsvinklen, så mærket dækker dokumentet fra kant til kant.
+- **Vandret afstand** -- Afstand mellem fliserne langs tekstretningen, som en procentdel af vandmærkets bredde (kun fliselagt tilstand).
+- **Lodret afstand** -- Afstand mellem flisernes rækker, som en procentdel af vandmærkets højde (kun fliselagt tilstand).
+
+**Generelle indstillinger:**
+
+- **Anvend på alle sider** -- Når den er markeret, gælder det samme vandmærke for alle sider. Fjern markeringen for at indstille individuelle vandmærker pr. side.
+- **Sideinterval** -- Angiv, hvilke sider der får vandmærket (f.eks. "1-3, 5, 7-9" eller "all").
+
+## Funktioner
+
+- Visuel placering med træk og slip i en live PDF-eksempelvisning
+- Vandmærke, hvis størrelse kan ændres med hjørnehåndtag
+- Tilstande for tekst- og billedvandmærker
+- Enkelt layout eller fliselagt (gentaget) layout over hele siden med justerbar afstand
+- Vandmærke pr. side eller globalt
+- Navigation side for side i eksempelvisningen
+- Styring af gennemsigtighed og rotation
+- Filtrering efter sideinterval
+
+## Anvendelsesområder
+
+- Markere udkast med "UDKAST", før de sendes rundt til gennemgang
+- Tilføje "FORTROLIG"-vandmærker til følsomme regnskabsrapporter
+- Brande dokumenter med et vandmærke med firmalogo
+- Stemple "EKSEMPEL" på produktdokumentation, der deles med potentielle kunder
+- Tilføje ophavsretsmeddelelser til distribuerede PDF-materialer
+
+## Tips
+
+- Til diagonale vandmærker hen over siden kan du sætte rotationen til omkring 45 grader og øge skriftstørrelsen.
+- Fliselagt tilstand gør et dokument meget sværere at genbruge efter beskæring, da der stadig er snesevis af mærker tilbage, hvis du fjerner ét. Sænk gennemsigtigheden, når du bruger fliser, så den underliggende tekst forbliver læselig.
+- Billedvandmærker med gennemsigtig baggrund (PNG-format) smelter mere naturligt sammen med dokumentets indhold.
+- Hvis du skal bruge forskellig vandmærketekst på forskellige sider, skal du fjerne markeringen af "Anvend på alle sider" og gå side for side.
+
+## Relaterede værktøjer
+
+- [Sidehoved og sidefod](./header-footer)
+- [Tilføj stempler](./add-stamps)
+- [Bates-nummerering](./bates-numbering)
+- [Underskriv PDF](./sign-pdf)
diff --git a/docs/da/tools/adjust-colors.md b/docs/da/tools/adjust-colors.md
new file mode 100644
index 00000000..7a6965d8
--- /dev/null
+++ b/docs/da/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Justér farver
+description: Finjustér lysstyrke, kontrast, mætning, farvetone, temperatur, nuance, gamma og sepia i din PDF.
+---
+
+# Justér farver
+
+Et komplet værktøj til farvekorrektion af PDF'er. Juster otte uafhængige parametre (lysstyrke, kontrast, mætning, farvetoneforskydning, temperatur, nuance, gamma og sepia) med en live eksempelvisning, der opdateres, mens du flytter hver skyder.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Editoren åbner med en eksempelvisning af første side og et panel med farveindstillinger.
+3. Flyt skyderne for at justere hver farveparameter. Eksempelvisningen opdateres i realtid.
+4. Klik på **Nulstil** for at sætte alle skydere tilbage til deres standardpositioner.
+5. Klik på **Anvend** for at behandle alle sider og downloade den justerede PDF.
+
+## Indstillinger
+
+- **Lysstyrke** -- Gør hele siden lysere eller mørkere (-100 til +100).
+- **Kontrast** -- Øg eller mindsk forskellen mellem lyse og mørke områder (-100 til +100).
+- **Mætning** -- Forstærk eller reducér farveintensiteten (-100 til +100). Sættes den til -100, bliver resultatet gråtoner.
+- **Farvetoneforskydning** -- Drej farvehjulet for at forskyde alle farver ensartet.
+- **Temperatur** -- Gør farverne varmere (gul/orange) eller koldere (blå).
+- **Nuance** -- Tilføj et grønt eller magentafarvet skær.
+- **Gamma** -- Juster mellemtoners lysstyrke med en gammakurve. Værdier under 1,0 gør mellemtonerne mørkere, og værdier over 1,0 gør dem lysere.
+- **Sepia** -- Anvend en klassisk sepiatone. Højere værdier giver et kraftigere brunt skær.
+
+## Funktioner
+
+- Otte uafhængigt justerbare farveparametre
+- Live eksempelvisning, der reagerer med det samme på ændringer af skyderne
+- Nulstillingsknap til hurtigt at vende tilbage til standardværdierne
+- Behandler alle sider i dokumentet
+- Virker med alt PDF-indhold (tekst, billeder, grafik)
+
+## Anvendelsesområder
+
+- Gøre en mørk scanning lysere eller rette overeksponerede sider
+- Affarve et farverigt dokument for at spare blæk før udskrivning
+- Anvende en sepiatone for at skabe et antikt look til certifikater eller priser
+- Rette farvetemperaturen på fotos, der er indlejret i en PDF
+- Øge kontrasten i falmede eller scannede dokumenter af lav kvalitet
+
+## Tips
+
+- For en hurtig konvertering til gråtoner skal du trække mætningsskyderen helt ned til -100.
+- Gammaskyderen er særligt nyttig til at forbedre læsbarheden af scannede dokumenter, hvor mellemtonerne er for mørke eller for lyse.
+- Ligesom de andre billedeffektværktøjer rasteriserer dette værktøj hver side. Outputtet er billedbaseret, så teksten kan ikke markeres.
+
+## Relaterede værktøjer
+
+- [Invertér farver](./invert-colors)
+- [Scannereffekt](./scanner-effect)
+- [Baggrundsfarve](./background-color)
diff --git a/docs/da/tools/alternate-merge.md b/docs/da/tools/alternate-merge.md
new file mode 100644
index 00000000..f1e75aef
--- /dev/null
+++ b/docs/da/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Alternér og miks sider
+description: Flet PDF'er ved at flette sider fra hver fil ind i skiftevis rækkefølge, med bevarelse af bogmærker.
+---
+
+# Alternér og miks sider
+
+Flet sider fra flere PDF-filer, så siderne skifter mellem dokumenterne. Dette er værktøjet, du skal bruge, når en almindelig sammenfletning blot sætter filerne efter hinanden, men du har brug for side 1 fra fil A, derefter side 1 fra fil B, derefter side 2 fra fil A og så videre.
+
+## Sådan fungerer det
+
+1. Upload mindst to PDF-filer i dropzonen.
+2. Værktøjet viser hver fil med sideantal og filstørrelse.
+3. Træk i grebshåndtagene for at ændre, hvilken fils sider der kommer først i rækkefølgen.
+4. Klik på **Miks sider** for at lave det sammenflettede output.
+5. Resultatet downloades som `alternated-mixed.pdf`.
+
+## Funktioner
+
+- Fletter sider på tværs af et vilkårligt antal PDF'er (minimum to)
+- Omarrangering af filer med træk og slip for at styre sammenfletningens prioritet
+- Bevarer bogmærker fra kildedokumenterne
+- Viser sideantal og filstørrelse for hver uploadet fil
+- Behandler i en dedikeret web worker, så brugerfladen forbliver responsiv
+
+## Anvendelsesområder
+
+- Samle dobbeltsidede scanninger igen, hvor ulige og lige sider er scannet hver for sig
+- Kombinere opgaveark med facitlister, så hvert spørgsmål efterfølges af sit svar
+- Flette tosprogede dokumenter side for side (f.eks. engelsk på den ene side og oversættelsen på den næste)
+- Flette for- og bagsider fra en scanner, der kun scanner enkeltsidet
+
+## Tips
+
+- Hvis dine kilde-PDF'er har forskelligt sideantal, løber det korteste dokument tør for sider først, og de resterende sider fra det længste dokument kommer til sidst.
+- Filrækkefølgen har betydning: Den første fil på listen bidrager med outputtets første side. Træk for at omarrangere, hvis det er nødvendigt.
+
+## Relaterede værktøjer
+
+- [Flet PDF](./merge-pdf)
+- [Organisér og dupliker](./organize-pdf)
+- [Opdel PDF](./split-pdf)
diff --git a/docs/da/tools/background-color.md b/docs/da/tools/background-color.md
new file mode 100644
index 00000000..52349379
--- /dev/null
+++ b/docs/da/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Baggrundsfarve
+description: Skift baggrundsfarven på hver side i din PDF, mens alt indhold bevares ovenpå.
+---
+
+# Baggrundsfarve
+
+Angiv en ensfarvet baggrund bag alt eksisterende indhold i din PDF. Værktøjet opretter et farvet rektangel på hver side og lægger det oprindelige indhold ovenpå, så tekst, billeder og grafik forbliver fuldt synlige mod den nye baggrund.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Vælg en baggrundsfarve med farvevælgeren. Standard er en lysegul (#FFFFCC).
+3. Klik på **Skift baggrundsfarve** for at behandle.
+4. Den opdaterede PDF downloades automatisk.
+
+## Indstillinger
+
+- **Baggrundsfarve** -- En almindelig farvevælger til at vælge en vilkårlig ensfarvet farve. Standard er lysegul.
+
+## Funktioner
+
+- Anvender en ensartet baggrundsfarve på hver side
+- Bevarer alt oprindeligt indhold (tekst, billeder, vektorgrafik) oven på det farvede lag
+- Bevarer de oprindelige sidemål
+- Virker med dokumenter med et vilkårligt antal sider
+
+## Anvendelsesområder
+
+- Tilføje en lys creme- eller elfenbensfarvet baggrund, så dokumenter får et blødere, papirlignende udseende
+- Farvekode dokumentsæt ved at give forskellige kategorier forskellige baggrundsfarver
+- Lave visuelt adskilte versioner af det samme dokument til forskellige målgrupper
+- Tilføje en lys baggrundstone for at forbedre læsbarheden, når dokumenter vises på en skærm
+
+## Tips
+
+- Lyse, dæmpede farver fungerer bedst. En meget mørk baggrund kan gøre teksten svær at læse, medmindre teksten allerede er lys.
+- Hvis du vil ændre både baggrunds- og tekstfarve, skal du først anvende baggrundsfarven og derefter bruge [Skift tekstfarve](./text-color) på resultatet.
+- Dette værktøj arbejder på PDF'ens strukturelle niveau (ikke rasterisering), så teksten forbliver markerbar og søgbar i outputtet.
+
+## Relaterede værktøjer
+
+- [Skift tekstfarve](./text-color)
+- [Invertér farver](./invert-colors)
+- [Justér farver](./adjust-colors)
diff --git a/docs/da/tools/bates-numbering.md b/docs/da/tools/bates-numbering.md
new file mode 100644
index 00000000..5b991bce
--- /dev/null
+++ b/docs/da/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Bates-nummerering
+description: Anvend Bates-numre på en eller flere PDF'er med tilpasselige skabeloner, polstring, skrifttyper og placering.
+---
+
+# Bates-nummerering
+
+Bates-nummerering stempler fortløbende identifikatorer på hver side i dine PDF'er. Det er standardmetoden til mærkning af dokumenter i retssager, revisioner og compliance-forløb. Dette værktøj understøtter flere filer og tilpasselige skabeloner og giver enten individuelt nummererede PDF'er eller ét samlet ZIP-arkiv.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer. Du kan trække flere filer ind på én gang.
+2. Vælg et stilforvalg, eller opret en brugerdefineret skabelon.
+3. Konfigurér position, skrifttype, størrelse, farve og startnumre.
+4. Klik på **Anvend Bates-numre** for at behandle.
+5. Én fil downloades direkte. Flere filer downloades som et ZIP-arkiv.
+
+## Indstillinger
+
+- **Stilforvalg** -- Vælg mellem indbyggede formater:
+ - Bilag + Sag + Bates + Side (f.eks. "Exhibit 1 Case XYZ 000001 Page 1")
+ - Bilag + Sag + Bates (uden sidetal)
+ - Sag + Bates
+ - Kun Bates-nummer (f.eks. "000001")
+ - Brugerdefineret (skriv din egen skabelon)
+- **Tilpas stil** -- En skabelonstreng med pladsholdere: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Bates-polstring** -- Antal cifre (3 til 6) for Bates-numre polstret med nuller. Vises kun i brugerdefineret tilstand.
+- **Position** -- Sidehoved eller sidefod, venstre, midten eller højre.
+- **Bates starter fra** -- Det første Bates-nummer. Standard er 1. Nummereringen fortsætter på tværs af filer.
+- **Filtæller starter fra** -- Startnummeret for pladsholderen `[FILE]`.
+- **Skrifttype** -- Helvetica, Times New Roman eller Courier.
+- **Skriftstørrelse** -- Størrelsen på den stemplede tekst.
+- **Farve** -- Farvevælger til Bates-nummerets tekst.
+
+## Funktioner
+
+- Live eksempelvisning, der viser, hvordan Bates-numre vises på tværs af alle uploadede filer
+- Understøttelse af flere filer med fortløbende nummerering på tværs af dokumenter
+- Omarrangering af filer med træk og slip for at styre nummereringsrækkefølgen
+- Seks positionsmuligheder (sidehoved/sidefod, venstre/midten/højre)
+- Adaptiv beregning af margener, der tager hensyn til forskellige sidestørrelser
+- ZIP-output til batches med flere filer
+- Skabelonpladsholdere for maksimal fleksibilitet
+
+## Anvendelsesområder
+
+- Stemple dokumenter til brug i bevisindsamling i retssager med fortløbende bilagsnumre
+- Nummerere revisionsbeviser, der spænder over dusinvis af filer
+- Anvende regulatoriske referencenumre på compliance-dokumentation
+- Mærke bilag til patentansøgninger med sagsspecifikke identifikatorer
+
+## Tips
+
+- Træk filerne på fillisten for at omarrangere dem, før du behandler. Bates-nummereringen følger denne rækkefølge.
+- Brug pladsholderen `[FILENAME]` til at medtage det oprindelige filnavn i stemplet, hvilket gør det lettere at spore sider tilbage til kildedokumenterne.
+- Eksempelboksen opdateres i realtid, når du ændrer indstillinger, så du kan kontrollere formatet, før du behandler.
+
+## Relaterede værktøjer
+
+- [Sidetal](./page-numbers)
+- [Tilføj sideetiketter](./add-page-labels)
+- [Sidehoved og sidefod](./header-footer)
diff --git a/docs/da/tools/bmp-to-pdf.md b/docs/da/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..87ea5832
--- /dev/null
+++ b/docs/da/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP til PDF
+description: Konvertér BMP-bitmapbilleder til PDF direkte i din browser, uden upload til nogen server.
+---
+
+# BMP til PDF
+
+Konvertér Windows Bitmap-filer (BMP) til PDF. BMP er et ukomprimeret billedformat, der stadig findes i ældre systemer, medicinsk billeddannelse og industrielle scannere. Dette værktøj konverterer dem til PDF uden at du skal installere noget.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :----- | :----------- |
+| BMP | `.bmp` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine BMP-filer.
+2. Gennemgå fillisten. Tilføj flere filer, eller fjern uønskede.
+3. Klik på **Konvertér til PDF**. Outputtet downloades som `from_bmps.pdf`.
+
+Hver BMP tegnes på et canvas, eksporteres som PNG og indlejres derefter i PDF'en med pdf-lib. Sidestørrelsen svarer til det oprindelige billedes mål.
+
+## Indstillinger
+
+Dette værktøj har ingen ekstra kvalitetsindstillinger. Billederne indlejres i deres oprindelige opløsning som tabsfri PNG i PDF'en.
+
+## Anvendelsesområder
+
+- Konvertere ældre scannede dokumenter gemt som BMP til arkiv-PDF'er
+- Gøre BMP-skærmbilleder fra ældre Windows-programmer til dokumenter, der kan deles
+- Behandle output fra medicinske eller industrielle scannere, der som standard bruger BMP
+- Migrere gamle billedarkiver til et mere flytbart format
+
+## Tips
+
+- BMP-filer er ukomprimerede og derfor ofte store. Den resulterende PDF bliver betydeligt mindre, fordi billederne internt omkodes til PNG.
+- Hvis du har BMP-filer sammen med andre billedformater, kan du bruge værktøjet [Billeder til PDF](./image-to-pdf) til at konvertere alt i én batch.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [PNG til PDF](./png-to-pdf)
+- [TIFF til PDF](./tiff-to-pdf)
diff --git a/docs/da/tools/bookmark.md b/docs/da/tools/bookmark.md
new file mode 100644
index 00000000..c1316899
--- /dev/null
+++ b/docs/da/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Redigér bogmærker
+description: Tilføj, redigér, importér, eksportér og slet PDF-bogmærker med en visuel editor og understøttelse af CSV/JSON.
+---
+
+# Redigér bogmærker
+
+Bogmærkeeditoren giver dig fuld kontrol over PDF'ens navigationsbogmærker (også kaldet konturer). Du kan tilføje nye bogmærker, redigere eksisterende, omorganisere hierarkiet og importere eller eksportere bogmærkedata i CSV- og JSON-format.
+
+## Sådan fungerer det
+
+1. Upload din PDF ved at klikke eller trække en fil ind i slipzonen.
+2. Markér eventuelt **Udtræk eksisterende bogmærker automatisk** for at hente dokumentets nuværende bogmærketræ.
+3. Editoren åbner med delt visning: PDF-fremviser til venstre, bogmærkepanel til højre.
+4. Skriv en bogmærketitel og klik på **Tilføj til side** for at oprette et nyt bogmærke, der peger på den aktuelle side.
+5. Brug værktøjslinjens knapper til at omarrangere, style eller slette bogmærker.
+6. Klik på **Gem PDF med bogmærker** for at downloade den opdaterede fil.
+
+## Funktioner
+
+- Visuel PDF-fremviser med sidenavigation, zoomkontroller og gå-til-side-felt
+- Tilføj bogmærker til enhver side med ét klik
+- Klik direkte på PDF'en for at angive en præcis bogmærkedestination (udvælgelsestilstand)
+- Indlejret bogmærkehierarki med omarrangering via træk og slip
+- Batchhandlinger: vælg flere bogmærker for at ændre farve eller stil eller slette dem på én gang
+- Bogmærkesøgning, så du hurtigt finder poster i store træer
+- Fortryd og gentag for alle ændringer
+- Importér bogmærker fra CSV (titel, side, niveau) eller JSON-filer
+- Eksportér bogmærker til CSV eller JSON til redigering i andre programmer
+- Bogmærkestil: farve (rød, blå, grøn, gul, lilla) og skrifttypestil (fed, kursiv, fed kursiv)
+- Hurtig navigation: rul gennem siderne med side op/ned-tasterne
+
+## Indstillinger
+
+- **Udtræk eksisterende bogmærker automatisk**: Når den er markeret, læser og viser værktøjet PDF'ens nuværende bogmærker ved indlæsning.
+- **Batchtilstand**: Slå til for at vælge flere bogmærker og anvende farve, stil eller sletning på dem samlet.
+- **Udvid/skjul alle**: Vis eller skjul hurtigt indlejrede underbogmærker.
+
+## Anvendelser
+
+- Tilføj en indholdsfortegnelse til en lærebog eller manual uden bogmærker
+- Omstrukturér bogmærker i et skannet dokument efter OCR-behandling
+- Eksportér bogmærker til CSV, redigér dem i et regneark og importér dem igen
+- Ryd op i automatisk genererede bogmærker med forkerte sidehenvisninger
+- Tilføj farvede bogmærker for at markere vigtige afsnit i et juridisk notat
+
+## Tips
+
+- Brug CSV-import til oprettelse af mange bogmærker. Formatet er enkelt: `title,page,level`, hvor niveau 1 er øverste niveau.
+- Udvælgelsestilstanden lader dig klikke på et præcist sted på PDF-siden for at angive bogmærkets destination, hvilket er mere præcist end blot at pege på et sidetal.
+- Eksportér dine bogmærker, før du foretager store ændringer, så du har en sikkerhedskopi.
+
+## Relaterede værktøjer
+
+- [Indholdsfortegnelse](./table-of-contents)
+- [PDF-editor](./edit-pdf)
+- [Tilføj sideetiketter](./add-page-labels)
diff --git a/docs/da/tools/cbz-to-pdf.md b/docs/da/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..cafcafb3
--- /dev/null
+++ b/docs/da/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ til PDF
+description: Konvertér CBZ- og CBR-tegneseriearkiver til PDF i din browser. Gratis, privat, ingen upload nødvendig.
+---
+
+# CBZ til PDF
+
+Gør tegneseriearkiver om til PDF'er. CBZ og CBR er standardformaterne til digitale tegneserier. De er blot ZIP- eller RAR-arkiver fyldt med billeder. Værktøjet udpakker hver side, bevarer læserækkefølgen og laver en ren PDF, hvor hvert billede bliver til en side i fuld størrelse.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----- | :---------- | :---------------------------------------------------------- |
+| CBZ | `.cbz` | ZIP-baseret tegneseriearkiv (behandles lokalt med pdf-lib) |
+| CBR | `.cbr` | RAR-baseret tegneseriearkiv (behandles via PyMuPDF-motoren) |
+
+CBZ-konverteren genkender JPEG-, PNG-, GIF-, BMP-, WebP-, AVIF-, TIFF-, HEIC- og JXL-billeder i arkivet. Ikke-standardformater konverteres automatisk til PNG, før de indlejres.
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet eller træk og slip dine CBZ- eller CBR-filer. Du kan blande begge formater i en enkelt batch.
+2. Gennemgå de viste filer. Fjern dem, du ikke har brug for, eller klik på **Tilføj flere filer** for at tilføje flere.
+3. Klik på **Konvertér til PDF**. For CBZ-filer pakker værktøjet arkivet ud, sorterer billedfilerne efter navn i naturlig rækkefølge, registrerer hvert billedes faktiske format og indlejrer dem i en PDF med pdf-lib. CBR-filer sendes i stedet gennem PyMuPDF-motoren.
+4. En enkelt fil downloades som en PDF. Flere filer giver et ZIP-arkiv ved navn `comic-converted.zip`.
+
+## Indstillinger
+
+Ingen konfiguration er nødvendig. Hvert billede bliver til en side med samme størrelse som originalen, så dobbeltsider forbliver brede, og enkeltsider forbliver smalle.
+
+## Anvendelser
+
+- Læs tegneserier på en tablet eller i en mobilapp, der understøtter PDF, men ikke CBZ/CBR
+- Udskriv bestemte sider fra en digital tegneserie
+- Arkivér en tegneseriesamling i et format, som enhver filfremviser kan åbne
+- Del en tegneserie med en person, der ikke har en dedikeret tegneserielæser
+
+## Tips
+
+- Billeder i arkivet sorteres i naturlig rækkefølge (så `page2.jpg` kommer før `page10.jpg`). Giv dine filer ensartet nummerering for at få den rigtige siderækkefølge.
+- Konverteren registrerer billedformater ud fra deres binære signaturer, ikke filendelser. En PNG, der ved en fejl hedder `.jpg`, indlejres stadig korrekt.
+- CBZ-filer behandles helt i browseren uden at indlæse PyMuPDF-motoren, så de konverteres hurtigere end CBR-filer.
+
+## Relaterede værktøjer
+
+- [EPUB til PDF](./epub-to-pdf)
+- [MOBI til PDF](./mobi-to-pdf)
+- [Billeder til PDF](./image-to-pdf)
diff --git a/docs/da/tools/change-permissions.md b/docs/da/tools/change-permissions.md
new file mode 100644
index 00000000..cb814f09
--- /dev/null
+++ b/docs/da/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Skift tilladelser
+description: Angiv eller ændr PDF-brugstilladelser for udskrivning, kopiering, redigering og annotering. Bruger 256-bit AES-kryptering.
+---
+
+# Skift tilladelser
+
+Finjustér, hvad modtagerne kan gøre med din PDF. I modsætning til almindelig kryptering, der blot låser filen bag en adgangskode, lader dette værktøj dig selektivt tillade eller afvise udskrivning, kopiering, redigering, annotering, formularudfyldning, dokumentsammensætning og sideudtrækning, alt sammen håndhævet via 256-bit AES-kryptering.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Hvis PDF'en allerede er krypteret, skal du indtaste den **nuværende adgangskode**.
+3. Angiv en **ny brugeradgangskode** (kræves for at åbne) og/eller en **ny ejeradgangskode** (styrer tilladelser).
+4. Slå de enkelte tilladelser til eller fra med afkrydsningsfelterne.
+5. Klik på **Skift tilladelser**.
+6. Download den opdaterede PDF.
+
+Hvis du lader begge felter til nye adgangskoder stå tomme, dekrypterer værktøjet PDF'en helt og fjerner al kryptering og alle begrænsninger.
+
+## Tilladelseskontroller
+
+| Tilladelse | Hvad den styrer |
+| -------------------------------- | ------------------------------------------------------ |
+| **Tillad udskrivning** | Om dokumentet kan udskrives |
+| **Tillad kopiering** | Om tekst og billeder kan markeres og kopieres |
+| **Tillad ændring** | Om dokumentets indhold kan redigeres |
+| **Tillad annotering** | Om kommentarer, fremhævninger og stempler kan tilføjes |
+| **Tillad formularudfyldning** | Om interaktive formularfelter kan udfyldes |
+| **Tillad dokumentsammensætning** | Om sider kan indsættes, slettes eller roteres |
+| **Tillad sideudtrækning** | Om enkelte sider kan udtrækkes |
+
+Alle tilladelser kræver en ejeradgangskode for at blive håndhævet. Uden en ejeradgangskode ignoreres tilladelsesflagene af de fleste PDF-læsere.
+
+## Sådan fungerer tilladelser i PDF
+
+PDF-tilladelser er en del af krypteringsspecifikationen. De gemmes som bitflag i krypteringsordbogen og håndhæves af kompatible PDF-læsere. Den vigtige forskel:
+
+- **Brugeradgangskode**: Kræves for overhovedet at åbne filen.
+- **Ejeradgangskode**: Kræves for at ændre tilladelser eller fjerne begrænsninger. Uden den styrer tilladelsesflagene, hvilke handlinger brugeren kan udføre.
+
+Hvis du kun angiver en ejeradgangskode (ingen brugeradgangskode), kan alle åbne filen, men de er begrænset til de tilladte handlinger. Hvis du angiver begge, kræver filen en adgangskode for at åbnes og er begrænset efter godkendelse.
+
+## Anvendelser
+
+- Distribuér en rapport, der kan ses og udskrives, men ikke redigeres eller kopieres
+- Del en kontraktskabelon, som modtagerne kan udfylde, men ikke ændre
+- Udgiv et PDF-katalog, hvor kopiering af billeder er deaktiveret
+- Tillad annotering af et udkast til gennemgang, mens strukturelle ændringer forhindres
+
+## Tips
+
+- For at det virker, skal du altid angive en ejeradgangskode. Tilladelser uden ejeradgangskode kan ikke håndhæves.
+- Nogle tredjeparts PDF-værktøjer ignorerer tilladelsesflag. For stærkere beskyttelse kan du overveje at rasterisere PDF'en eller bruge DRM.
+- Brug dette værktøj til at opgradere gamle RC4-krypterede PDF'er til AES-256.
+
+## Relaterede værktøjer
+
+- [Kryptér PDF](./protect-pdf): enkel adgangskodebeskyttelse uden detaljerede tilladelser
+- [Dekryptér PDF](./unlock-pdf): fjern kryptering helt
+- [Fjern begrænsninger](./remove-restrictions): fjern alle begrænsninger, når du har ejeradgangskoden
diff --git a/docs/da/tools/combine-single-page.md b/docs/da/tools/combine-single-page.md
new file mode 100644
index 00000000..b68b637c
--- /dev/null
+++ b/docs/da/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Kombinér til én side
+description: Sammensæt alle sider i en PDF til én sammenhængende lodret eller vandret rulleside.
+---
+
+# Kombinér til én side
+
+Flet hver side i en PDF til én enkelt, lang side. Siderne sættes sammen lodret (som en rulle) eller vandret (side om side), så resultatet er én sammenhængende side.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Vælg layoutretning: **Lodret** (sider stablet fra top til bund) eller **Vandret** (sider placeret side om side).
+3. Angiv afstanden mellem siderne i punkter.
+4. Vælg en baggrundsfarve til mellemrummene mellem siderne.
+5. Aktivér eventuelt skillelinjer (tynde linjer mellem siderne) og indstil deres tykkelse og farve.
+6. Klik på behandlingsknappen. Resultatet er en PDF med én side.
+
+## Funktioner
+
+- Lodret eller vandret sammensætning af sider
+- Konfigurerbar afstand mellem siderne
+- Farvevælger til baggrunden i mellemrummene
+- Valgfrie skillelinjer med justerbar tykkelse og farve
+- Gengiver hver oprindelig side i fuld opløsning på det kombinerede lærred
+
+## Indstillinger
+
+| Indstilling | Beskrivelse |
+| -------------------------- | --------------------------------------------- |
+| **Retning** | Lodret (stablet) eller vandret (side om side) |
+| **Sideafstand** | Mellemrum mellem siderne i punkter |
+| **Baggrundsfarve** | Farven på området mellem siderne |
+| **Tilføj skillelinje** | Slå tynde linjer mellem siderne til eller fra |
+| **Skillelinjens tykkelse** | Linjetykkelse i punkter |
+| **Skillelinjens farve** | Farven på skillelinjerne |
+
+## Anvendelser
+
+- Lav ét langt billede ud fra en flersidet wireframe eller et designudkast
+- Generér en sammenhængende rullevisning af et dokument til indlejring på nettet
+- Sæt en flersidet tegneserie eller storyboard sammen til én strimmel
+- Lav en panoramavisning af sider i rækkefølge til gennemgang
+
+## Tips
+
+- Lodret retning fungerer bedst til dokumenter med stående sider. Vandret er bedre til indhold i liggende format.
+- Store dokumenter med mange sider giver et meget højt eller bredt resultat. Nogle PDF-fremvisere kan have problemer med ekstremt store enkeltsider.
+- Skillelinjer i en kontrastfarve gør det let at se, hvor en oprindelig side slutter, og den næste begynder.
+
+## Relaterede værktøjer
+
+- [N-Up PDF](./n-up-pdf)
+- [Flet PDF](./merge-pdf)
+- [Opdel sider](./divide-pages)
diff --git a/docs/da/tools/compare-pdfs.md b/docs/da/tools/compare-pdfs.md
new file mode 100644
index 00000000..97380e87
--- /dev/null
+++ b/docs/da/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Sammenlign PDF’er
+description: Sammenlign to PDF-dokumenter side om side eller i overlejringstilstand med detaljeret registrering og kategorisering af ændringer.
+---
+
+# Sammenlign PDF’er
+
+Upload to PDF'er og se præcis, hvad der er ændret mellem dem. Værktøjet parrer sider intelligent, registrerer forskelle i tekst, billeder, annotationer, sidehoveder og formatering og viser dem i en side-om-side- eller overlejringsvisning.
+
+## Sådan fungerer det
+
+1. Upload to PDF-filer: originalen (til venstre) og den reviderede version (til højre).
+2. Værktøjet parrer sider mellem dokumenterne ud fra indholdssignaturer.
+3. Vælg en visningstilstand: **Side om side** eller **Overlejring**.
+4. Naviger mellem sideparrene med sideinddelingskontrollerne.
+5. Forskelle fremhæves og kategoriseres. Brug filterpanelet til at fokusere på bestemte typer ændringer.
+6. Eksportér eventuelt sammenligningen som en PDF-rapport.
+
+## Funktioner
+
+- Automatisk sideparring baseret på indholdslighed
+- Sammenligningsvisning side om side og som overlejring
+- Kategorisering af ændringer: tekst, billede, sidehoved/sidefod, annotation, formatering, baggrund
+- Filterkontakter pr. kategori til at vise eller skjule bestemte typer ændringer
+- Søgning i tekstændringer med forespørgselsfilter
+- OCR-understøttelse til sammenligning af skannede dokumenter
+- Zoomkontroller til detaljeret gennemgang
+- Synkroniseret rulning mellem panelerne i side-om-side-tilstand
+- Eksportér sammenligningsresultater som PDF
+
+## Indstillinger
+
+| Indstilling | Beskrivelse |
+| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
+| **Visningstilstand** | Side om side eller overlejring |
+| **OCR** | Aktivér/deaktivér OCR til sammenligning af skannede dokumenter |
+| **OCR-sprog** | Sprog til OCR-tekstudtræk |
+| **Kategorifiltre** | Slå synligheden af ændringer i tekst, billeder, sidehoved/sidefod, annotationer, formatering og baggrund til eller fra |
+| **Ændringsomfang** | I overlejringstilstand: filtrér mellem alle ændringer eller kun indhold |
+| **Zoom** | Justér forstørrelsen til detaljeret gennemgang |
+
+## Anvendelser
+
+- Gennemgå kontraktrevisioner for at finde præcis, hvad der er ændret mellem versioner
+- Sammenlign designudkast for at bekræfte, at PDF-eksporter lever op til forventningerne
+- Revidér dokumentændringer i regulerede brancher, hvor hver redigering skal spores
+- Kontrollér, at en PDF-konvertering har bevaret det oprindelige indhold korrekt
+- Kontrollér oversatte dokumenter mod kilden for layoutændringer
+
+## Tips
+
+- Overlejringsvisningen stabler begge dokumenter oven på hinanden, så rumlige forskelle (forskudte elementer, ændrede billedstørrelser) straks er synlige.
+- Aktivér OCR, når du sammenligner skannede dokumenter uden tekstlag. Sammenligningsmotoren udtrækker så tekst fra sidebillederne.
+- Brug kategorifiltrene til at fokusere på det vigtige. Skjul for eksempel formateringsændringer, hvis du kun interesserer dig for forskelle i tekstindhold.
+
+## Relaterede værktøjer
+
+- [Vis metadata](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [Flet PDF](./merge-pdf)
diff --git a/docs/da/tools/compress-pdf.md b/docs/da/tools/compress-pdf.md
new file mode 100644
index 00000000..b083b2a0
--- /dev/null
+++ b/docs/da/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Komprimer PDF
+description: Reducer PDF-filstørrelsen med op til 90 % med Hyper Compress-motoren. Understøtter målfilstørrelser, batchbehandling og tilpassede kvalitetsindstillinger.
+---
+
+# Komprimer PDF
+
+Gør dine PDF-filer mindre uden at ødelægge dem. Komprimer PDF drives af [Hyper Compress](https://www.bentopdf.com/hyper-compress), BentoPDF's egen komprimeringsmotor. Den genkomprimerer billeder, laver delmængder af skrifttyper og fletter dem og fjerner overflødig vægt som indlejrede miniaturebilleder og private programdata. PDF'en forbliver fuldt funktionel: tekst kan stadig markeres, og links og formularfelter virker fortsat.
+
+Hyper Compress er kompileret til WebAssembly og følger med BentoPDF, så komprimering virker offline og i isolerede (air-gapped) installationer uden ekstra opsætning.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF'er ved at klikke på slipzonen eller trække filer ind.
+2. Vælg et **komprimeringsniveau**: Lav, Medium, Høj eller Tabsfri.
+3. Angiv eventuelt en **målfilstørrelse**, eller udvid **Brugerdefinerede indstillinger** for finjustering, herunder **Konvertér til gråtoner**.
+4. Klik på **Komprimer PDF**. Ved flere filer får du en samlet ZIP-download.
+
+## Særlige dokumenter
+
+- **Digitalt signerede PDF'er** returneres uændrede, fordi enhver ændring ville ugyldiggøre signaturen. Slå **Tilsidesæt indholdsbeskyttelse** til under Brugerdefinerede indstillinger for at fjerne signaturerne og komprimere dem. Den synlige signatur bliver på siden, men filen er ikke længere signeret.
+- **PDF/A-filer** mister deres PDF/A-mærkning efter komprimering, så filen aldrig hævder en overensstemmelse, den ikke længere opfylder. Slå **Bevar PDF/A** til under Brugerdefinerede indstillinger for i stedet at beholde filens overensstemmelse.
+- **Adgangskodebeskyttede PDF'er** får et adgangskodefelt på deres filkort. Indtast adgangskoden dér, så åbner Hyper Compress selv filen, uden separat oplåsningstrin. Med to eller flere låste filer låser ét fælles felt alle filer op, som bruger samme adgangskode. Den komprimerede kopi har ingen adgangskode. Brug [Kryptér PDF](./protect-pdf) til at tilføje en igen.
+- **Scanninger uden tekstlag** kan blive endnu mindre med **Rasterisér sider** under Brugerdefinerede indstillinger, som erstatter hver side med ét optimeret billede. Det springes over for dokumenter med markérbar tekst, herunder OCR-behandlede scanninger, medmindre **Tilsidesæt indholdsbeskyttelse** er slået til. Så bliver tekstsider også til billeder, så tekst ikke længere kan markeres, og links holder op med at virke.
+
+## Komprimeringsniveauer
+
+| Niveau | Billedkvalitet | Maks. opløsning | Bedst til |
+| ----------- | -------------- | --------------- | ------------------------------- |
+| **Lav** | 80 | 200 DPI | Bevarelse af visuel kvalitet |
+| **Mellem** | 50 | 150 DPI | Dagligdags dokumenter |
+| **Høj** | 20 | 72 DPI | E-mail-vedhæftninger, webupload |
+| **Tabsfri** | Billeder urørt | Uændret | Arkivkopier |
+
+Høj fjerner også indlejringen af de 14 standardskrifttyper i PDF samt lignende skrifttyper som Arial, når det er sikkert.
+
+## Målfilstørrelse
+
+Angiv en størrelse i KB eller MB, og Hyper Compress søger efter den bedste billedkvalitet, der stadig passer, med udgangspunkt i det valgte niveau. Hvis dokumentet ikke kan blive så lille, får du den mindste version, det kan lave, og en besked om det. De dedikerede sider som [Komprimer PDF til 1 MB](https://www.bentopdf.com/compress-pdf-to-1mb) åbner med målet allerede udfyldt.
+
+## Brugerdefinerede indstillinger
+
+Udvid panelet Brugerdefinerede indstillinger for at justere Hyper Compress direkte. Når du vælger et komprimeringsniveau, nulstilles disse til det niveaus værdier, og hvis du ændrer en af dem, skifter niveauet til Brugerdefineret.
+
+- **Tilsidesæt indholdsbeskyttelse**: Som standard lader Hyper Compress signerede PDF'er være urørte og rasteriserer ikke sider med tekst. Når den slås til, springes begge over. Den forbliver slået til, når du skifter niveau.
+
+- **Billeder**: billedkvalitet, maksimal opløsning, gennemtvunget gensampling, farvereduktion, beskæring af usynlige billedområder, fjernelse af alternative billeder, forenkling af farveprofiler, JPEG 2000 og tabsfri tilstand
+- **Skrifttyper**: delmængder, sammenfletning af dubletter og fjernelse af indlejring af standardskrifttyper og deres lignende
+- **Indhold**: fladning af annotationer, formularfelter eller links
+- **Oprydning**: fjernelse af miniaturebilleder, programdata, artikeltråde, weboptagelsesoplysninger, strukturtræet eller outputhensigter
+- **Rasterisér**: erstatning af sider med billeder til scanninger, der kun består af billeder. Springes over, når dokumentet har markérbar tekst
+- **Output**: Bevar PDF/A og Brotli-komprimering til PDF 2.0-læsere, der understøtter det
+
+## Anvendelser
+
+- Få en rapport på 50 MB under grænsen for e-mail-vedhæftninger
+- Få en scanning under en portals strenge uploadgrænse med en målfilstørrelse
+- Optimér marketing-PDF'er til hurtigere downloads fra et website
+- Arkivér store dokumentsamlinger, hvor lageromkostninger har betydning
+- Reducér mobildataforbruget, når du deler PDF'er via beskedapps
+
+## Tips
+
+- Start med Medium. Hvis resultatet stadig er for stort, kan du angive en målfilstørrelse eller gå op til Høj.
+- For en scanning uden tekstlag kan du slå Rasterisér sider til under Brugerdefinerede indstillinger.
+- Konvertér til gråtoner under Brugerdefinerede indstillinger kan skære i filstørrelsen for farvetunge dokumenter.
+
+## Relaterede værktøjer
+
+- [Lineariser PDF](./linearize-pdf): optimér den komprimerede PDF til hurtig visning på nettet
+- [Rasterisér PDF](./rasterize-pdf): konvertér sider til billeder ved en bestemt DPI, også sider med tekst
+- [Reparér PDF](./repair-pdf): ret en PDF, der gik i stykker under komprimering andetsteds
+- [Fjern metadata](./remove-metadata): fjern skjulte data af hensyn til privatlivet
diff --git a/docs/da/tools/crop-pdf.md b/docs/da/tools/crop-pdf.md
new file mode 100644
index 00000000..59d7058f
--- /dev/null
+++ b/docs/da/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Beskær PDF
+description: Beskær PDF-sider visuelt ved at tegne et beskæringsområde på hver side i en editor drevet af Cropper.js.
+---
+
+# Beskær PDF
+
+Trim marginerne på dine PDF-sider med en visuel beskæringsgrænseflade. Tegn et beskæringsrektangel direkte på hver side, forhåndsvis resultatet og anvend beskæringen. Du kan angive forskellige beskæringsområder for forskellige sider eller anvende den samme beskæring på hele dokumentet.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Beskæringseditoren åbner og viser første side med et trækbart beskæringsoverlay.
+3. Justér beskæringsrektanglet ved at trække i dets kanter eller hjørner.
+4. Brug sidenavigationsknapperne til at skifte mellem sider og angive beskæringsområder for hver enkelt.
+5. Klik på **Beskær** for at anvende beskæringen og downloade resultatet.
+
+## Funktioner
+
+- Visuel beskæringseditor drevet af Cropper.js med håndtag til præcis justering
+- Navigation side for side til at angive individuelle beskæringsområder
+- Gemmer beskæringsindstillinger pr. side, så du kan definere forskellige beskæringer for forskellige sider
+- Live-forhåndsvisning af det valgte beskæringsområde
+- Understøtter PDF'er i enhver sidestørrelse og retning
+
+## Anvendelser
+
+- Fjern brede margener fra skannede dokumenter for at fokusere på indholdsområdet
+- Trim printerens beskæringsmærker eller registreringsmærker fra PDF'er til prepress
+- Beskær forelæsningsslides for at fjerne området med oplægsholderens noter
+- Fjern sidehoveder eller sidefødder fra hver side, før du deler et uddrag af et dokument
+- Tilpas sidestørrelsen til en bestemt visning eller et bestemt udskriftslayout
+
+## Tips
+
+- Beskæringsoverlayet kan frit ændres i størrelse og flyttes. Træk i hjørnerne for proportional størrelsesændring eller i kanterne for justering på én akse.
+- Hvis alle sider skal have samme beskæring, kan du angive den på første side. Værktøjet husker dit beskæringsområde, mens du navigerer mellem siderne.
+- Hvis du vil standardisere sidestørrelser frem for at beskære visuelt, passer værktøjet Ret sidestørrelse muligvis bedre.
+
+## Relaterede værktøjer
+
+- [PDF-editor](./edit-pdf)
+- [Sidetal](./page-numbers)
+- [Fjern tomme sider](./remove-blank-pages)
diff --git a/docs/da/tools/csv-to-pdf.md b/docs/da/tools/csv-to-pdf.md
new file mode 100644
index 00000000..5a923bce
--- /dev/null
+++ b/docs/da/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV til PDF
+description: Konvertér CSV-regnearksfiler til formaterede PDF-tabeller direkte i din browser.
+---
+
+# CSV til PDF
+
+Gør CSV-filer om til rene, formaterede PDF-dokumenter. Hver CSV-fil fortolkes og gengives som en tabel i PDF'en. Det er nyttigt, når du skal udskrive eller dele tabeldata uden at modtageren behøver regnearksprogrammer.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :----- | :----------- |
+| CSV | `.csv` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet eller træk og slip en eller flere CSV-filer.
+2. Gennemgå fillisten. Tilføj flere filer eller fjern uønskede.
+3. Klik på **Konvertér til PDF**. En statusindikator viser konverteringens fremdrift.
+4. En enkelt fil downloades direkte som PDF. Flere filer pakkes i `csv-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere konfiguration. CSV-filen fortolkes og formateres automatisk som en tabel.
+
+## Output
+
+| Antal input | Output |
+| :---------- | :------------------------------------------------- |
+| 1 fil | Download af en enkelt PDF (f.eks. `data.pdf`) |
+| 2+ filer | ZIP-arkiv (`csv-converted.zip`) med én PDF pr. fil |
+
+## Anvendelser
+
+- Konvertér eksporterede databaserapporter til udskrivbare PDF-tabeller
+- Del økonomidata eller lagerlister med personer, der ikke har Excel
+- Opret PDF-versioner af CSV-logfiler til compliance-dokumentation
+- Udskriv adresselister, karakterark eller andre tabeldata gemt som CSV
+
+## Tips
+
+- For de bedste resultater bør din CSV bruge standard kommaseparatorer. Værktøjet følger almindelige CSV-konventioner.
+- Hvis din CSV har mange kolonner, kan tabellen blive presset sammen for at passe til sidebredden. Overvej at dele brede datasæt op i flere filer.
+- Til Excel-filer (`.xls`, `.xlsx`) kan du bruge værktøjet [Excel til PDF](./excel-to-pdf), som bevarer regnearksformatering og flere ark.
+
+## Relaterede værktøjer
+
+- [Excel til PDF](./excel-to-pdf)
+- [Tekst til PDF](./txt-to-pdf)
+- [JSON til PDF](./json-to-pdf)
diff --git a/docs/da/tools/delete-pages.md b/docs/da/tools/delete-pages.md
new file mode 100644
index 00000000..0923b711
--- /dev/null
+++ b/docs/da/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Slet sider
+description: Fjern bestemte sider fra en PDF efter sidetal, interval eller visuelt valg af miniaturer.
+---
+
+# Slet sider
+
+Fjern uønskede sider fra et PDF-dokument. Angiv sider, der skal slettes, ved at skrive sidetal eller intervaller, eller klik direkte på sidernes miniaturer for at markere dem til fjernelse.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Værktøjet gengiver miniaturer af hver side.
+2. Indtast de sider, der skal slettes, i tekstfeltet med intervalsyntaks (f.eks. `2, 5-8`), eller klik på miniaturer for at skifte dem.
+3. Markerede sider fremhæves visuelt, så du kan bekræfte dit valg.
+4. Klik på behandlingsknappen. Der oprettes en ny PDF uden de valgte sider.
+
+## Funktioner
+
+- Tekstbaseret sidevalg med intervalsyntaks (`2, 5-8, 12`)
+- Visuelt miniaturegitter til sletning med klik
+- Fremhævning i realtid af sider, der er markeret til sletning
+- Inputvalidering mod det faktiske antal sider
+- Bevarer alle ikke-slettede sider i deres oprindelige rækkefølge
+
+## Anvendelser
+
+- Fjern tomme sider eller fyldsider fra et skannet dokument
+- Fjern forsider eller bilag, før du deler et dokument
+- Ryd op i udkastsider, der ved en fejl blev liggende i en endelig PDF
+- Fjern sider med følsomme oplysninger før distribution
+
+## Tips
+
+- Sletning af sider påvirker ikke de resterende siders indhold eller formatering. Resultatet er en tro kopi af originalen minus de fjernede sider.
+- Hvis du vil beholde bestemte sider i stedet for at fjerne bestemte sider, er [Udtræk sider](./extract-pages) et bedre valg.
+- Miniaturevisningen indlæses løbende, så store dokumenter forbliver responsive.
+
+## Relaterede værktøjer
+
+- [Udtræk sider](./extract-pages)
+- [Duplikér og organisér](./organize-pdf)
+- [Opdel PDF](./split-pdf)
diff --git a/docs/da/tools/deskew-pdf.md b/docs/da/tools/deskew-pdf.md
new file mode 100644
index 00000000..6002b153
--- /dev/null
+++ b/docs/da/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Ret skæve sider
+description: Ret automatisk skæve sider i skannede PDF'er med OpenCV-skævhedsregistrering. Justerbar tærskel og DPI.
+---
+
+# Ret skæve sider
+
+Skannede dokumenter er sjældent helt lige. Selv en lille hældning gør OCR mindre præcis og udskrifter sjuskede. Dette værktøj bruger OpenCV's billedbehandlingsalgoritmer til at registrere hver sides skævhedsvinkel og dreje den tilbage, så den står lige.
+
+## Sådan fungerer det
+
+1. Upload en eller flere skannede PDF'er.
+2. Angiv **skævhedstærsklen**: sider med registreret skævhed under denne værdi røres ikke.
+3. Vælg en **behandlingskvalitet (DPI)**: højere DPI giver mere præcis registrering, men tager længere tid.
+4. Klik på **Ret skæve sider**.
+5. Efter behandlingen viser et resultatpanel hver sides registrerede vinkel, og om den blev rettet.
+
+## Indstillinger
+
+| Indstilling | Værdier | Standard |
+| ------------------- | ------------------------- | -------- |
+| **Skævhedstærskel** | 0,1, 0,5, 1,0, 2,0 grader | 0,5 |
+| **Behandlings-DPI** | 100, 150, 200, 300 | 150 |
+
+## Sådan fungerer skævhedsregistrering
+
+Værktøjet gengiver hver side som et billede ved den valgte DPI og bruger derefter OpenCV til at registrere de dominerende linjevinkler i indholdet. Hvis den registrerede skævhed overstiger tærsklen, drejes siden med den omvendte vinkel for at rette den. Sider under tærsklen sendes uændrede igennem.
+
+## Anvendelser
+
+- Ryd op i batchskannede kontrakter eller juridiske dokumenter
+- Forbered skannede kvitteringer eller fakturaer til OCR-behandling
+- Ret sider fra en flatbed-scanner, hvor papiret er lagt forskelligt
+- Forbedr den visuelle kvalitet af digitaliseret arkivmateriale
+
+## Tips
+
+- Sæt tærsklen ned til 0,1 grader, hvis du har brug for pixelpræcis justering til OCR.
+- 150 DPI er hurtigt og præcist til de fleste dokumenter. Brug 300 DPI til meget lille tekst eller sider med fine detaljer.
+- Retning af skæve sider virker bedst på dokumenter med tydelige vandrette tekstlinjer. Det kan have svært ved sider, der mest består af billeder eller diagonale designelementer.
+
+## Relaterede værktøjer
+
+- [Rasterisér PDF](./rasterize-pdf): konvertér det rettede resultat til en flad, billedbaseret PDF
+- [Komprimer PDF](./compress-pdf): reducer filstørrelsen efter retning
+- [Reparér PDF](./repair-pdf): ret strukturelle problemer i skannede PDF'er
diff --git a/docs/da/tools/digital-sign-pdf.md b/docs/da/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..5bc188a9
--- /dev/null
+++ b/docs/da/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Digital signatur
+description: Tilføj kryptografiske digitale signaturer til PDF'er med X.509-certifikater. Understøtter PKCS#12- og PEM-formater med valgfri synlig signatur.
+---
+
+# Digital signatur
+
+En digital signatur er kryptografisk bevis for, at en bestemt person har underskrevet et dokument, og at dokumentet ikke er ændret siden. I modsætning til en tegnet underskrift (som blot er et billede) bruger en digital signatur X.509-certifikater og PKCS#7-standarder til at give verificerbar ægthed og integritet.
+
+BentoPDF anvender digitale signaturer helt i din browser. Din private nøgle forlader aldrig din enhed.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Upload din certifikatfil (.pfx, .p12 eller .pem).
+3. Indtast certifikatets adgangskode for at låse det op. Værktøjet viser certifikatets emne, udsteder og gyldighedsperiode.
+4. Konfigurér eventuelt signaturmetadata (årsag, sted, kontaktoplysninger).
+5. Aktivér eventuelt en **synlig signatur** med tilpasning af position, størrelse, billede og tekst.
+6. Klik på **Underskriv PDF**.
+
+## Understøttede certifikatformater
+
+| Format | Filendelser | Beskrivelse |
+| ----------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Branchestandard-pakke med den private nøgle og certifikatkæden. Det mest almindelige format. |
+| **PEM** | .pem | Tekstbaseret format. Skal indeholde både certifikatet og den private nøgle i én fil. Understøtter krypterede private nøgler. |
+
+## Indstillinger for synlig signatur
+
+Når den er aktiveret, gengives en synlig signaturblok på PDF-siden:
+
+- **Position**: X/Y-koordinater samt bredde/højde i punkter
+- **Side**: Første side, sidste side, alle sider eller et bestemt sidetal
+- **Billede**: Upload et PNG-, JPG- eller WebP-billede (din håndskrevne underskrift, virksomhedsstempel osv.)
+- **Tekst**: Brugerdefineret tekst med konfigurerbar farve og skriftstørrelse. Hvis der ikke angives billede eller tekst, genererer værktøjet automatisk tekst ud fra certifikatets almindelige navn og den aktuelle dato.
+
+## Signaturmetadata
+
+- **Årsag**: Hvorfor dokumentet blev underskrevet (f.eks. "Godkendt", "Gennemgået")
+- **Sted**: Hvor underskrivelsen fandt sted (f.eks. "New York, NY")
+- **Kontaktoplysninger**: Hvordan underskriveren kan kontaktes (f.eks. e-mailadresse)
+
+## Note om internetforbindelse
+
+Underskrivning kan kræve en internetforbindelse. Signaturbiblioteket henter certifikatkæden fra URL'er, der er indlejret i dit certifikats AIA-udvidelse (Authority Information Access). Hvis disse servere ikke kan nås, mislykkes underskrivningen for certifikater, der kræver kædevalidering.
+
+## Anvendelser
+
+- Underskriv kontrakter, tilbud og aftaler med juridisk bindende digitale signaturer
+- Certificér officielle dokumenter i arbejdsgange, der kræver PKI-baseret autentificering
+- Underskriv PDF-fakturaer af hensyn til lovgivningsmæssig overholdelse (mange EU-lande kræver digitalt signerede e-fakturaer)
+- Tilføj organisatorisk godkendelse til tekniske tegninger eller kvalitetsdokumenter
+
+## Tips
+
+- Selvsignerede certifikater fungerer til test, men viser advarsler i Adobe Reader. Brug et certifikat fra en betroet certifikatudsteder til produktionsdokumenter.
+- Den synlige signatur er rent visuel. Den kryptografiske signatur indlejres, uanset om den synlige blok er aktiveret.
+- Verificér din signerede PDF med værktøjet Validér signatur for at bekræfte, at signaturen er intakt.
+
+## Relaterede værktøjer
+
+- [Validér signatur](./validate-signature-pdf): verificér digitale signaturer i signerede PDF'er
+- [Fladgør PDF](./flatten-pdf): flad formularer ud før underskrivning for at forhindre ændringer
+- [Kryptér PDF](./protect-pdf): tilføj adgangskodebeskyttelse oven på den digitale signatur
+- [Fjern metadata](./remove-metadata): fjern metadata før underskrivning
diff --git a/docs/da/tools/divide-pages.md b/docs/da/tools/divide-pages.md
new file mode 100644
index 00000000..5bb3e9d1
--- /dev/null
+++ b/docs/da/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Opdel sider
+description: Opdel PDF-sider vandret eller lodret i mindre delsider.
+---
+
+# Opdel sider
+
+Skær enkelte PDF-sider i halvdele ved at opdele dem vandret eller lodret. Det er nyttigt, når en enkelt side indeholder indhold, der bør adskilles på særskilte sider, for eksempel et tospaltet layout skannet som én bred side.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Vælg opdelingsretning: **Lodret** (venstre/højre halvdel) eller **Vandret** (øverste/nederste halvdel).
+3. Angiv eventuelt et sideinterval for at begrænse, hvilke sider der opdeles. Lad feltet stå tomt for at opdele alle sider.
+4. Klik på behandlingsknappen for at generere den opdelte PDF.
+
+## Funktioner
+
+- Lodret opdeling: deler hver side i en venstre og en højre halvdel
+- Vandret opdeling: deler hver side i en øverste og en nederste halvdel
+- Sideintervalfilter til selektiv opdeling af bestemte sider
+- Sider uden for udvalget sendes uændrede igennem
+- Bevarer indholdskvaliteten uden at gengive siderne igen
+
+## Anvendelser
+
+- Adskil to-op-scannede sider (f.eks. en bogscanning med venstre og højre side på ét ark)
+- Opdel en liggende PDF med side-om-side-indhold i individuelle stående sider
+- Del høje infografikker eller plakater i separate øvre og nedre sektioner
+- Forbered bredformatdokumenter til udskrivning på standardpapir
+
+## Tips
+
+- Hvis indholdet på dine sider er ujævnt fordelt, sker opdelingen stadig præcis på midten. Til asymmetriske opdelinger kan du overveje [Beskær PDF](./crop-pdf) i stedet.
+- Kombinér dette værktøj med [Roter PDF](./rotate-pdf), hvis dine sider skal roteres før eller efter opdelingen.
+
+## Relaterede værktøjer
+
+- [Opdel PDF](./split-pdf)
+- [Beskær PDF](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [Posterisér PDF](./posterize-pdf)
diff --git a/docs/da/tools/duplex-collate.md b/docs/da/tools/duplex-collate.md
new file mode 100644
index 00000000..b48c2ef6
--- /dev/null
+++ b/docs/da/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Sortér dupleks-scanning
+description: Omsortér dupleks-scannede PDF'er, hvor forsider og bagsider ligger i separate blokke, til korrekt for-/bagside-rækkefølge.
+---
+
+# Sortér dupleks-scanning
+
+Sortér dupleks-scanning er designet til ADF-scanningsarbejdsgange, hvor én PDF indeholder to blokke af sider:
+
+- først alle forsider
+- derefter alle bagsider
+
+I stedet for manuelt at dele og samle igen fletter dette værktøj de to blokke til naturlig læserækkefølge: forside1, bagside1, forside2, bagside2 og så videre.
+
+## Sådan fungerer det
+
+1. Upload en enkelt PDF, der er oprettet ved scanning af en dupleksstak.
+2. Angiv delingspunktet, hvor forsideblokken slutter.
+3. Vælg håndtering af bagsideblokken:
+ - **Vend bagsideblokken** (almindeligt, når stakken vendes, før bagsiderne scannes)
+ - **Behold bagsideblokken som den er**
+4. Klik på **Sortér PDF** for at downloade det omsorterede resultat.
+
+## Indstillinger
+
+- **Registrér deling automatisk (halvdelen)**: sætter delingspunktet til `ceil(totalPages / 2)`.
+- **Advarsel om ulige sidetal**: advarer, når det samlede antal sider er ulige (ofte en scanningsfejl).
+- **Bekræftelse ved ujævne blokke**: beder om bekræftelse, når forside- og bagsideblokkene har forskellig størrelse.
+- **Grupperet eksport**: del det sorterede output i separate PDF'er ud fra det oprindelige dokuments sideantal og download som ZIP.
+
+## Outputadfærd
+
+- **Standard**: én output-PDF (én input-PDF giver én output-PDF).
+- **Grupperet tilstand**: outputtet opdeles efter din værdi for sider pr. dokument. Hvis der dannes flere bidder, downloades de som én ZIP, ellers downloades en enkelt PDF.
+
+Hvis blokkene er ujævne, sorteres de parrede sider først, og de resterende uparrede sider sættes til sidst.
+
+## Almindelige anvendelser
+
+- Gendan rækkefølgen efter scanning af en bunke dobbeltsidede formularer i to omgange.
+- Genopbyg for-/bagside-pakker fra kontorscannere, der udskriver alle forsider og derefter alle bagsider.
+- Efterbehandl arkivscanninger, før de deles op i filer pr. dokument.
+
+## Tips
+
+- De fleste dupleksbatches bør have et lige samlet sidetal.
+- Hvis bagsiderne ser omvendt ud i resultatet, så skift mellem **Vend bagsideblokken** og **Behold bagsideblokken som den er**.
+- Til originaler på 2 sider (forside+bagside) bruges grupperet eksport med `2` sider pr. dokument.
+
+## Relaterede værktøjer
+
+- [Alternér og miks sider](./alternate-merge)
+- [Opdel PDF](./split-pdf)
+- [Flet PDF](./merge-pdf)
+- [Duplikér og organisér](./organize-pdf)
diff --git a/docs/da/tools/edit-attachments.md b/docs/da/tools/edit-attachments.md
new file mode 100644
index 00000000..e000e972
--- /dev/null
+++ b/docs/da/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Redigér vedhæftninger
+description: Se og fjern selektivt filvedhæftninger, der er indlejret i et PDF-dokument.
+---
+
+# Redigér vedhæftninger
+
+Undersøg og administrér filvedhæftningerne i en PDF. Værktøjet viser hver indlejret fil med navn og vedhæftningsniveau og lader dig derefter markere enkelte vedhæftninger til fjernelse eller fjerne dem alle på én gang.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Værktøjet scanner automatisk efter vedhæftninger og viser dem på en liste.
+3. Hver vedhæftning viser sit filnavn, og om den er en vedhæftning på dokumentniveau eller sideniveau.
+4. Klik på papirkurvsikonet ved en vedhæftning for at markere den til fjernelse (klik igen for at fjerne markeringen).
+5. Brug knappen **Fjern alle vedhæftninger** til at vælge alt på én gang, eller **Fravælg alle** for at rydde dine valg.
+6. Klik på behandlingsknappen for at gemme en ny PDF uden de valgte vedhæftninger.
+
+## Funktioner
+
+- Viser alle vedhæftninger på dokumentniveau og sideniveau
+- Fjernelse af enkelte eller alle vedhæftninger
+- Slå valg til og fra, før du bekræfter ændringerne
+- Visuel gennemstregning og ændret gennemsigtighed på elementer markeret til fjernelse
+- Downloader den ændrede PDF uden de valgte vedhæftninger
+
+## Anvendelser
+
+- Fjern forældede eller forkerte filer indlejret i et dokument, før det distribueres igen
+- Fjern følsomme vedhæftninger (økonomidata, personoplysninger) fra en PDF, før du deler den
+- Reducér PDF-filstørrelsen ved at fjerne store indlejrede filer, der ikke længere er nødvendige
+- Gennemgå indlejret indhold og ryd op i et dokument, før det arkiveres
+
+## Tips
+
+- Vedhæftninger markeret til fjernelse vises med gennemstregning. Du kan slå markeringen fra igen, før du behandler, hvis du ombestemmer dig.
+- Hvis der ikke findes vedhæftninger, viser værktøjet en tydelig besked om "Ingen vedhæftninger fundet". PDF'en indeholder så ganske enkelt ingen indlejrede filer.
+
+## Relaterede værktøjer
+
+- [Tilføj vedhæftninger](./add-attachments)
+- [Udtræk vedhæftninger](./extract-attachments)
+- [Vis metadata](./view-metadata)
diff --git a/docs/da/tools/edit-metadata.md b/docs/da/tools/edit-metadata.md
new file mode 100644
index 00000000..ee37623e
--- /dev/null
+++ b/docs/da/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Redigér metadata
+description: Se og ændr PDF-metadatafelter, herunder titel, forfatter, nøgleord, datoer og brugerdefinerede egenskaber.
+---
+
+# Redigér metadata
+
+Redigér de metadata, der er indlejret i en PDF-fil. Værktøjet udfylder en formular på forhånd med dokumentets eksisterende metadata, lader dig ændre ethvert felt og gemmer ændringerne i en ny PDF.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Værktøjet læser de nuværende metadata og udfylder formularen.
+2. Redigér et af standardfelterne: Titel, Forfatter, Emne, Nøgleord, Opretter, Producent.
+3. Justér oprettelsesdato og ændringsdato med dato- og tidsvælgerne.
+4. Tilføj brugerdefinerede metadatafelter ved at klikke på tilføjknappen og indtaste et nøgle-værdi-par.
+5. Klik på behandlingsknappen for at gemme den ændrede PDF.
+
+## Funktioner
+
+- Udfylder automatisk alle eksisterende metadata fra den uploadede PDF
+- Standardfelter: Titel, Forfatter, Emne, Nøgleord, Opretter, Producent
+- Dato- og tidsvælgere til oprettelsesdato og ændringsdato
+- Brugerdefinerede nøgle-værdi-felter til vilkårlige egenskaber
+- Gemmer ændringerne direkte i PDF'ens dokumentinfo-ordbog
+
+## Redigerbare felter
+
+| Felt | Beskrivelse |
+| --------------------------- | ---------------------------------------------------------- |
+| **Titel** | Dokumenttitlen, der vises i PDF-læsere |
+| **Forfatter** | Den person eller organisation, der har oprettet dokumentet |
+| **Emne** | En kort beskrivelse af dokumentets emne |
+| **Nøgleord** | Kommaseparerede termer til søgning og kategorisering |
+| **Opretter** | Programmet, der oprindeligt oprettede indholdet |
+| **Producent** | Programmet, der genererede PDF'en |
+| **Oprettelsesdato** | Hvornår dokumentet oprindeligt blev oprettet |
+| **Ændringsdato** | Hvornår dokumentet sidst blev ændret |
+| **Brugerdefinerede felter** | Alle yderligere nøgle-værdi-par, du definerer |
+
+## Anvendelser
+
+- Angiv en korrekt titel og forfatter, før et dokument udgives
+- Tilføj nøgleord for at forbedre søgbarheden i dokumenthåndteringssystemer
+- Opdatér ændringsdatoen, så den afspejler den aktuelle revision
+- Tilføj brugerdefinerede metadatafelter som Afdeling, Projekt-id eller Klassifikation
+- Ryd op i metadata, som det oprindelige forfatterprogram har efterladt
+
+## Tips
+
+- Brugerdefinerede felter skrives direkte i PDF'ens infoordbog. Nogle PDF-læsere viser dem muligvis ikke, men de bevares i filen.
+- Lad et felt stå tomt for at rydde det fra metadata. Behandlingsknappen gemmer det, der står i formularen.
+- Brug [Vis metadata](./view-metadata) for at se metadata uden at redigere. Brug Fjern metadata for at fjerne alle metadata helt.
+
+## Relaterede værktøjer
+
+- [Vis metadata](./view-metadata)
+- [PDF OCG-lag](./pdf-layers)
+- [Komprimer PDF](./compress-pdf)
diff --git a/docs/da/tools/edit-pdf.md b/docs/da/tools/edit-pdf.md
new file mode 100644
index 00000000..bebde56e
--- /dev/null
+++ b/docs/da/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF-editor
+description: Annotér, fremhæv, redigér ud (redaktion), tilføj figurer og billeder, søg og se PDF'er direkte i din browser.
+---
+
+# PDF-editor
+
+BentoPDF's PDF-editor lader dig annotere, fremhæve, redigere ud, kommentere, tilføje figurer og billeder og søge i dine PDF'er. Den indlæser en fuldt udstyret editor direkte i din browser uden serveruploads.
+
+## Sådan fungerer det
+
+1. Upload din PDF ved at klikke på slipzonen eller trække en fil hen på den.
+2. Den indlejrede PDF-editor åbner automatisk med dit dokument indlæst.
+3. Brug værktøjslinjen til at annotere, fremhæve, redigere ud, tilføje tekst, tegne figurer eller indsætte billeder.
+4. Klik på **Download redigeret PDF** for at gemme dine ændringer.
+
+## Funktioner
+
+- Fuld annotationsværktøjslinje med fremhævning, understregning, gennemstregning og frihåndstegning
+- Tekstindsættelse og kommentarer
+- Redaktionsværktøjer, der permanent fjerner markeret indhold, når du anvender redaktionen. Hvis nogle markeringer ikke er anvendt, når du klikker på **Download redigeret PDF**, tilbyder editoren at anvende dem først.
+- Figurværktøjer til rektangler, cirkler, linjer og pile
+- Indsættelse af billeder på PDF-sider
+- Indbygget tekstsøgning i hele dokumentet
+- Understøttelse af flere dokumenter med faner (op til 10 dokumenter åbne samtidig)
+- Indlæsning af filer med træk og slip
+
+## Anvendelser
+
+- Gennemgå kontrakter og markér ændringer med fremhævninger og kommentarer
+- Rediger fortrolige oplysninger som cpr-numre eller økonomidata ud, før du deler dokumentet
+- Tilføj annotationer til arkitekttegninger eller tekniske tegninger
+- Indsæt virksomhedslogoer eller stempler på dokumentsider
+- Søg efter bestemte termer i lange juridiske dokumenter
+
+## Tips
+
+- Du kan åbne flere PDF'er på én gang og skifte mellem dem med fanelinjen øverst i editoren.
+- Editoren bevarer den oprindelige PDF-struktur, så skrifttyper, layout og formularfelter forbliver intakte.
+- Når du markerer tekst eller et område til redaktion, fjernes intet, før redaktionen anvendes. Når du redigerer markeret tekst ud, fjernes også kopier af den i filens egenskaber, bogmærker, kommentarer og vedhæftninger fra downloaden, medmindre filen er krypteret.
+- Til masse-vandmærkning eller sidenummerering bør du bruge de dedikerede værktøjer for bedre kontrol over formateringen.
+
+## Relaterede værktøjer
+
+- [Tilføj vandmærke](./add-watermark)
+- [Underskriv PDF](./sign-pdf)
+- [Tilføj stempler](./add-stamps)
+- [Fjern annotationer](./remove-annotations)
diff --git a/docs/da/tools/email-to-pdf.md b/docs/da/tools/email-to-pdf.md
new file mode 100644
index 00000000..edd48425
--- /dev/null
+++ b/docs/da/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: E-mail til PDF
+description: Konvertér EML- og MSG-e-mailfiler til PDF i din browser. Bevarer headere, brødtekst og vedhæftningsliste.
+---
+
+# E-mail til PDF
+
+Konvertér gemte e-mailfiler til rene, udskrivbare PDF'er. Værktøjet fortolker EML- og MSG-filer, udtrækker hele beskeden (headere, brødtekst og metadata om vedhæftninger) og gengiver det hele i en struktureret PDF. Nyttigt til juridisk bevisindsamling, journalføring eller blot til at udskrive en vigtig e-mail.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----- | :---------- | :---------------------------------------------------------------------- |
+| EML | `.eml` | Standard MIME-e-mailformat (eksporteres fra de fleste e-mailprogrammer) |
+| MSG | `.msg` | Microsoft Outlooks proprietære format |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet eller træk og slip dine EML- eller MSG-filer. Du kan blande begge formater i en enkelt batch.
+2. Gennemgå fillisten. Fjern uønskede poster med papirkurvsikonet, eller klik på **Tilføj flere filer** for at medtage flere e-mails.
+3. Konfigurér konverteringsindstillingerne (se nedenfor).
+4. Klik på **Konvertér til PDF**. Værktøjet fortolker hver e-mail, gengiver indholdet som formateret HTML og konverterer det til PDF via PyMuPDF-motoren.
+5. En enkelt e-mail downloades direkte som PDF. Flere e-mails pakkes i `emails-converted.zip`.
+
+## Indstillinger
+
+| Indstilling | Standard | Beskrivelse |
+| :--------------------------- | :------- | :---------------------------------------------------------------------------------------------------------- |
+| **Sidestørrelse** | A4 | Vælg mellem A4-, Letter- eller Legal-sidemål. |
+| **Medtag CC og BCC** | Til | Når den er aktiveret, vises CC- og BCC-modtagerlister i e-mailens headerafsnit i PDF'en. |
+| **Medtag vedhæftningsliste** | Til | Når den er aktiveret, vises en liste over e-mailens filvedhæftninger (med filnavne og størrelser) i PDF'en. |
+
+## Anvendelser
+
+- Arkivér vigtig forretningskorrespondance som PDF til compliance eller revision
+- Udskriv e-mailtråde til retssager eller anmodninger om bevisindsamling
+- Opret en permanent registrering af ordrebekræftelser, kvitteringer eller kontrakter modtaget på e-mail
+- Sikkerhedskopiér Outlook MSG-filer i et format, der ikke kræver Outlook for at blive læst
+- Dokumentér kundesupporthenvendelser fra eksporterede EML-filer
+
+## Tips
+
+- Både EML (brugt af Thunderbird, Apple Mail og de fleste e-mailprogrammer) og Outlook MSG-filer understøttes. Eksportér e-mails fra dit e-mailprogram og slip dem direkte i værktøjet.
+- HTML-formaterede e-mails beholder deres styling i PDF'en. E-mails i almindelig tekst gengives med ren, læsbar formatering.
+- Vedhæftningslisten viser filnavne og størrelser, men indlejrer ikke selve vedhæftningsfilerne i PDF'en.
+
+## Relaterede værktøjer
+
+- [XML til PDF](./xml-to-pdf)
+- [XPS til PDF](./xps-to-pdf)
diff --git a/docs/da/tools/epub-to-pdf.md b/docs/da/tools/epub-to-pdf.md
new file mode 100644
index 00000000..7d16faa7
--- /dev/null
+++ b/docs/da/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB til PDF
+description: Konvertér EPUB-e-bøger til PDF i din browser. Gratis, ingen upload nødvendig, privatlivsorienteret konvertering.
+---
+
+# EPUB til PDF
+
+Konvertér EPUB-e-bøger til PDF-filer uden at forlade din browser. EPUB er den åbne standard for digitale bøger, men nogle gange har du brug for en PDF med fast layout til udskrivning, annotering eller deling med personer uden e-bogslæser.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----- | :---------- | :---------------------- |
+| EPUB | `.epub` | EPUB 2- og EPUB 3-filer |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet eller træk og slip dine EPUB-filer. Du kan vælge flere filer.
+2. Gennemgå de uploadede filer. Fjern uønskede poster med papirkurvsikonet, eller klik på **Tilføj flere filer** for at udvide batchen.
+3. Klik på **Konvertér til PDF**. PyMuPDF-motoren gengiver EPUB-indholdet (tekst, billeder og formatering) som sideinddelt PDF.
+4. En enkelt EPUB downloades direkte som PDF. Flere filer pakkes i et ZIP-arkiv ved navn `epub-converted.zip`.
+
+## Indstillinger
+
+Konverteringen kører med fornuftige standardindstillinger og kræver ingen konfiguration. Teksten omflyder til standardsidemål, og indlejrede skrifttyper og billeder overføres til PDF'en.
+
+## Anvendelser
+
+- Udskriv en DRM-fri e-bog, så du kan læse væk fra skærme
+- Indsend et EPUB-manuskript som PDF med fast layout til gennemgang
+- Arkivér digitale bøger i et format, som alle operativsystemer kan åbne direkte
+- Del et kapitel med en kollega, der ikke har en EPUB-læser
+- Konvertér teknisk dokumentation, der distribueres som EPUB, til PDF'er, der kan annoteres
+
+## Tips
+
+- EPUB 3-funktioner som indlejret lyd og video overføres ikke til PDF, men al tekst, alle billeder og tabeller konverteres uden problemer.
+- Ved kraftigt stylede EPUB-filer bør du tjekke de første sider af resultatet for at bekræfte layoutets troværdighed.
+
+## Relaterede værktøjer
+
+- [MOBI til PDF](./mobi-to-pdf)
+- [FB2 til PDF](./fb2-to-pdf)
+- [CBZ til PDF](./cbz-to-pdf)
diff --git a/docs/da/tools/excel-to-pdf.md b/docs/da/tools/excel-to-pdf.md
new file mode 100644
index 00000000..28c6bb5d
--- /dev/null
+++ b/docs/da/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel til PDF
+description: Konvertér Excel-regneark (XLS, XLSX), ODS- og CSV-filer til PDF med bevaret formatering.
+---
+
+# Excel til PDF
+
+Konvertér regnearksfiler til PDF. Værktøjet håndterer moderne Excel-filer, det gamle XLS-format, OpenDocument-regneark og endda CSV, alt sammen gengivet via en browserbaseret LibreOffice-motor, der bevarer cellers formatering, formler (som beregnede værdier), diagrammer og layout med flere ark.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :-------------------- | :----------- |
+| Excel (moderne) | `.xlsx` |
+| Excel (ældre) | `.xls` |
+| OpenDocument-regneark | `.ods` |
+| CSV | `.csv` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet eller træk og slip dine regnearksfiler.
+2. Gennemgå fillisten. Tilføj flere filer eller fjern uønskede.
+3. Klik på **Konvertér til PDF**. LibreOffice-motoren initialiseres ved første brug og behandler derefter hver fil.
+4. En enkelt fil downloades direkte som PDF. Flere filer leveres som `excel-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere konfiguration. LibreOffice-motoren bestemmer sidelayout, skalering og udskriftsområde ud fra regnearkets indbyggede indstillinger.
+
+## Output
+
+| Antal input | Output |
+| :---------- | :--------------------------------------------------------------------- |
+| 1 fil | Download af en enkelt PDF (oprindeligt filnavn med filendelsen `.pdf`) |
+| 2+ filer | ZIP-arkiv (`excel-converted.zip`) med én PDF pr. fil |
+
+## Anvendelser
+
+- Konvertér økonomirapporter eller budgetter fra Excel til PDF til distribution
+- Opret udskriftsklare PDF'er ud fra lager- eller produktkatalogregneark
+- Del dataanalyseresultater med interessenter, der ikke har Excel installeret
+- Arkivér kvartalsrapporter i et format, der ikke kan redigeres
+- Konvertér ODS-filer fra LibreOffice Calc til PDF
+
+## Tips
+
+- Diagrammer indlejret i regnearket gengives i PDF'en. Sørg for, at de ser rigtige ud i kildefilen, før du konverterer.
+- Hvis dit regneark har flere ark, er alle ark med i PDF-outputtet.
+- Til simple CSV-data uden formatering giver værktøjet [CSV til PDF](./csv-to-pdf) en lettere konvertering. Brug Excel til PDF, når du har brug for bevaret formatering, diagrammer eller flere ark.
+
+## Relaterede værktøjer
+
+- [CSV til PDF](./csv-to-pdf)
+- [Word til PDF](./word-to-pdf)
+- [PowerPoint til PDF](./powerpoint-to-pdf)
diff --git a/docs/da/tools/extract-attachments.md b/docs/da/tools/extract-attachments.md
new file mode 100644
index 00000000..74c2be70
--- /dev/null
+++ b/docs/da/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Udtræk vedhæftninger
+description: Udtræk alle indlejrede filvedhæftninger fra en eller flere PDF'er og download dem som et ZIP-arkiv.
+---
+
+# Udtræk vedhæftninger
+
+Træk alle indlejrede vedhæftninger ud af en eller flere PDF-filer. Alle udtrukne filer samles i ét ZIP-arkiv til download.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer, der indeholder indlejrede vedhæftninger.
+2. Klik på **Udtræk vedhæftninger**.
+3. Værktøjet scanner hver PDF efter vedhæftninger på dokumentniveau og sideniveau.
+4. Alle fundne filer pakkes i et ZIP-arkiv og downloades automatisk.
+5. En statusbesked bekræfter, hvor mange vedhæftninger der blev fundet, og deres samlede størrelse.
+
+## Funktioner
+
+- Batchudtræk fra flere PDF'er på én gang
+- Udtrækker både vedhæftninger på dokumentniveau og sideniveau
+- Giver én ZIP-fil med alle udtrukne filer
+- Viser det samlede antal vedhæftninger og den samlede filstørrelse
+- Tydelige statusbeskeder, hvis der ikke findes vedhæftninger
+
+## Anvendelser
+
+- Gendan datafiler indlejret i en rapport-PDF
+- Træk billedmateriale ud af en portefølje eller et specifikationsdokument
+- Udtræk supplerende materiale fra trænings- eller compliance-PDF'er
+- Gennemgå, hvilke filer der er indlejret i en batch af PDF'er
+
+## Tips
+
+- Hvis værktøjet melder, at der ingen vedhæftninger er, kan PDF'en i stedet indeholde indlejrede billeder eller formulardata. Disse er ikke filvedhæftninger. Brug [Udtræk billeder](./extract-images) til indlejrede billeder.
+- Når du behandler flere PDF'er, havner alle vedhæftninger fra alle filer i én ZIP. Filnavnene bevares fra de oprindelige indlejringer.
+
+## Relaterede værktøjer
+
+- [Tilføj vedhæftninger](./add-attachments)
+- [Redigér vedhæftninger](./edit-attachments)
+- [Udtræk billeder](./extract-images)
diff --git a/docs/da/tools/extract-images.md b/docs/da/tools/extract-images.md
new file mode 100644
index 00000000..fb2f0742
--- /dev/null
+++ b/docs/da/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Udtræk billeder
+description: Udtræk alle indlejrede billeder fra PDF-filer. Forhåndsvis dem i et gitter og download dem enkeltvis eller som et ZIP-arkiv.
+---
+
+# Udtræk billeder
+
+Trækker alle indlejrede billeder ud af en eller flere PDF-filer. De udtrukne billeder vises i et forhåndsvisningsgitter, hvor du kan downloade dem enkeltvis eller tage alt på én gang som en ZIP. Drevet af PyMuPDF.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF'er ved at klikke på slipzonen eller trække filer hen på den. Tilføj flere filer, eller fjern enkelte efter behov.
+2. Klik på **Udtræk** for at starte behandlingen.
+3. Værktøjet scanner hver side i hver uploadet PDF og finder og udtrækker indlejrede billeder.
+4. De udtrukne billeder vises i et gitter med miniaturer. Hvert billede har en downloadknap.
+5. Klik på **Download alle** for at gemme alt som et ZIP-arkiv.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Alle indlejrede billeder udtrækkes i deres oprindelige format (typisk PNG, JPEG eller det format, billedet blev indlejret i PDF'en med).
+
+## Outputformat
+
+- Billeder vises i et forhåndsvisningsgitter med navne som `image_1.png`, `image_2.jpg` osv.
+- **Download alle** giver `extracted-images.zip` med alle billeder.
+- Enkelte billeder kan downloades ét ad gangen fra gitteret.
+
+## Anvendelser
+
+- Gendan fotos eller grafik fra en PDF til genbrug i et andet projekt.
+- Udtræk produktbilleder fra en katalog-PDF til en webshopsannonce.
+- Træk diagrammer ud af teknisk dokumentation til brug i præsentationer.
+- Gennemgå, hvilke billeder der er indlejret i et dokument, før du deler det.
+
+## Tips
+
+- Værktøjet udtrækker billeder præcis, som de er gemt i PDF'en. Det gengiver ikke sider som billeder. Til det kan du bruge [PDF til PNG](./pdf-to-png) eller [PDF til JPG](./pdf-to-jpg).
+- Hvis værktøjet melder "Ingen billeder fundet", bruger PDF'en muligvis vektorgrafik i stedet for indlejrede rasterbilleder, eller også er det et skannet dokument, hvor hele siden er ét stort billede.
+- Batchbehandling virker på tværs af flere PDF'er. Alle billeder fra alle filer samles i ét gitter og én ZIP.
+
+## Relaterede værktøjer
+
+- [PDF til PNG](./pdf-to-png)
+- [PDF til JPG](./pdf-to-jpg)
+- [PDF Workflow-bygger](./pdf-workflow)
diff --git a/docs/da/tools/extract-pages.md b/docs/da/tools/extract-pages.md
new file mode 100644
index 00000000..d6078d39
--- /dev/null
+++ b/docs/da/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Udtræk sider
+description: Gem et bestemt sideinterval fra en PDF som et nyt dokument.
+---
+
+# Udtræk sider
+
+Træk et udvalg af sider ud af en PDF og gem dem som en ny fil. Angiv præcis, hvilke sider du vil have, med intervalsyntaks, og værktøjet opretter en ren PDF, der kun indeholder de sider.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Værktøjet viser filnavn, størrelse og det samlede sideantal.
+2. Indtast de sider, du vil udtrække, med intervalsyntaks (f.eks. `1-5`, `3, 7, 10-12`).
+3. Vælg eventuelt at downloade hvert interval som en separat PDF i et ZIP-arkiv.
+4. Klik på behandlingsknappen. De udtrukne sider downloades som en ny PDF (eller ZIP).
+
+## Funktioner
+
+- Fleksibel intervalsyntaks: enkelte sider, intervaller eller kommaseparerede kombinationer
+- Viser det samlede sideantal efter upload, så du let kan se det
+- Mulighed for output som én samlet PDF eller separate filer i en ZIP
+- Bevarer det oprindelige sideindhold og den oprindelige formatering
+
+## Anvendelser
+
+- Træk resuméet (de første par sider) ud af en lang rapport
+- Udtræk et enkelt kapitel fra en lærebogs-PDF
+- Gem bestemte sider fra en formularpakke som selvstændige dokumenter
+- Opret et eksempeldokument ud fra udvalgte sider i en større fil
+
+## Tips
+
+- Sidetal starter ved 1. Brug `1` til den første side, ikke `0`.
+- Hvis du vil fjerne sider i stedet for at udtrække dem, kan du bruge [Slet sider](./delete-pages), som er den omvendte handling.
+- Hvis du har brug for visuelt sidevalg med miniaturer, kan du bruge [Opdel PDF](./split-pdf) i tilstanden Visuelt valg.
+
+## Relaterede værktøjer
+
+- [Opdel PDF](./split-pdf)
+- [Slet sider](./delete-pages)
+- [Flet PDF](./merge-pdf)
diff --git a/docs/da/tools/extract-tables.md b/docs/da/tools/extract-tables.md
new file mode 100644
index 00000000..4e8c4af5
--- /dev/null
+++ b/docs/da/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Udtræk PDF-tabeller
+description: Registrer og udtræk tabeller fra PDF-dokumenter. Eksportér som CSV, JSON eller Markdown med granularitet pr. tabel.
+---
+
+# Udtræk PDF-tabeller
+
+Registrerer alle tabeller i en PDF og lader dig eksportere dem i det format, du vælger: CSV, JSON eller Markdown. Hver tabel udtrækkes individuelt med metadata om side og position. Drevet af PyMuPDF's tabelregistreringsmotor.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipzonen eller trække en fil hen på den.
+2. Vælg dit foretrukne **eksportformat**: CSV, JSON eller Markdown.
+3. Klik på **Udtræk** for at starte behandlingen.
+4. Hvis der findes én tabel, downloades den som en enkelt fil. Flere tabeller giver et ZIP-arkiv med én fil pr. tabel.
+
+## Indstillinger
+
+- **Eksportformat**: vælg mellem:
+ - **CSV**: kommaseparerede værdier med korrekt citering af felter, der indeholder kommaer, anførselstegn eller linjeskift. Velegnet til regneark og databaser.
+ - **JSON**: struktur med array af arrays, pænt formateret med indrykning på 2 mellemrum. Velegnet til programmatisk brug.
+ - **Markdown**: tabelformat med lodrette streger, gengivet af PyMuPDF. Velegnet til dokumentation og README-filer.
+
+## Outputformat
+
+- **Enkelt tabel**: `filename_table.csv` (eller `.json` / `.md`)
+- **Flere tabeller**: `filename_tables.zip` med filer ved navn `table_1_page3.csv`, `table_2_page5.csv` osv.
+
+## Anvendelser
+
+- Udtræk bestemte tabeller fra lange PDF-rapporter uden at hente hele dokumentets data.
+- Få tabeller i Markdown-format til at indsætte direkte i GitHub-issues, wikier eller dokumentation.
+- Træk struktureret JSON-data ud af PDF-tabeller til API-integrationer eller scripts.
+- Sammenlign tabeller på tværs af forskellige PDF-versioner ved at eksportere begge til CSV og lave en diff.
+
+## Tips
+
+- Dette værktøj giver kontrol pr. tabel. Hvis du bare vil have alle tabeller samlet i én CSV, kan du bruge [PDF til CSV](./pdf-to-csv). Til en fuld Excel-projektmappe kan du bruge [PDF til Excel](./pdf-to-excel).
+- Tabeller, der strækker sig over flere sider, kan blive registreret som separate tabeller pr. side. Du skal muligvis sætte dem sammen manuelt.
+- Hvis der ikke registreres tabeller, kan PDF'en være et skannet billede. Kør den gennem OCR først for at tilføje et tekstlag.
+
+## Relaterede værktøjer
+
+- [PDF til CSV](./pdf-to-csv)
+- [PDF til Excel](./pdf-to-excel)
+- [PDF til tekst](./pdf-to-text)
diff --git a/docs/da/tools/fb2-to-pdf.md b/docs/da/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..352d368d
--- /dev/null
+++ b/docs/da/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 til PDF
+description: Konvertér FictionBook-ebogsfiler (FB2) til PDF i din browser. Gratis, privat, ingen upload til server.
+---
+
+# FB2 til PDF
+
+Konvertér FictionBook 2-filer (FB2) til PDF-dokumenter. FB2 er et XML-baseret ebogsformat, der er populært i Rusland og Østeuropa. Det understøttes godt på visse platforme, men er næsten ukendt på andre. Ved at konvertere til PDF kan dine bøger læses overalt.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Bemærkninger |
+| :------------ | :---------- | :---------------------- |
+| FictionBook 2 | `.fb2` | XML-baseret ebogsformat |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine FB2-filer. Du kan vælge flere filer på én gang.
+2. Gennemgå fillisten. Brug papirkurv-ikonet til at fjerne enkelte poster, eller **Tilføj flere filer** for at tilføje flere.
+3. Klik på **Konvertér til PDF**. PyMuPDF-motoren fortolker FB2's XML-struktur og gengiver den som paginerede PDF-sider.
+4. Én fil downloades direkte som PDF. Flere konverteringer samles i `fb2-converted.zip`.
+
+## Indstillinger
+
+Der kræves ingen konfiguration. Konverteren håndterer FB2's XML-struktur automatisk og bevarer kapitelskift, formatering og eventuelle indlejrede billeder.
+
+## Anvendelsesområder
+
+- Læsning af FB2-ebøger på enheder eller apps, der kun understøtter PDF
+- Udskrivning af russisksproget litteratur, der distribueres i FB2-format
+- Arkivering af et FB2-bibliotek i et format, der understøttes overalt
+- Deling af en bog med en person, hvis læser ikke understøtter FictionBook
+
+## Tips
+
+- FB2-filer er almindelig XML, så de er typisk små og konverteres hurtigt, selv i browseren.
+- Hvis dine FB2-filer er komprimeret som `.fb2.zip`, skal du pakke dem ud, før du uploader dem.
+
+## Relaterede værktøjer
+
+- [EPUB til PDF](./epub-to-pdf)
+- [MOBI til PDF](./mobi-to-pdf)
+- [XML til PDF](./xml-to-pdf)
diff --git a/docs/da/tools/fix-page-size.md b/docs/da/tools/fix-page-size.md
new file mode 100644
index 00000000..8eb84ce5
--- /dev/null
+++ b/docs/da/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Ret sidestørrelse
+description: Standardisér alle sider i en PDF til en ensartet størrelse. Vælg mellem standardpapirstørrelser, eller angiv egne mål.
+---
+
+# Ret sidestørrelse
+
+PDF'er, der er samlet fra flere kilder, ender ofte med forskellige sidestørrelser: nogle Letter, nogle A4 og nogle helt ikke-standard. Dette værktøj tvinger alle sider til én målstørrelse og skalerer indholdet, så det passer ind eller fylder siden.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Vælg en **Målsidestørrelse** i rullelisten (A4, Letter, Legal, A3, A5, Tabloid eller Brugerdefineret).
+3. Vælg en **Orientering**. Auto bevarer hver sides oprindelige orientering, eller du kan gennemtvinge Stående eller Liggende.
+4. Vælg en **Indholdsskalering**: Tilpas (bevarer alt indhold, kan tilføje margener) eller Fyld (fylder siden, kan beskære kanter).
+5. Angiv eventuelt en **Baggrundsfarve** til tilføjede margener.
+6. Klik på **Ret sidestørrelse**.
+
+## Indstillinger
+
+- **Standardstørrelser**: A4, Letter, Legal, A3, A5, Tabloid
+- **Brugerdefinerede mål**: Angiv bredde og højde i tommer eller millimeter
+- **Orientering**: Auto, Stående, Liggende
+- **Skaleringstilstand**: Tilpas eller Fyld (beskær)
+- **Baggrundsfarve**: Enhver farve til margenpolstring
+
+## Anvendelsesområder
+
+- Normalisering af en sammenflettet PDF, hvor siderne stammer fra forskellige scannere
+- Konvertering af et amerikansk Letter-dokument til A4 til international distribution
+- Klargøring af trykklare PDF'er, der kræver en ensartet beskæringsstørrelse
+- Rettelse af sider, der er lidt uden for standard (f.eks. 8,49 x 11,02 tommer i stedet for 8,5 x 11)
+
+## Tips
+
+- Brug Tilpas for at sikre, at intet indhold går tabt. Fyld ser pænere ud, men kan klippe kanter af.
+- Kontrollér resultatet med værktøjet Sidestørrelser for at bekræfte, at alle sider matcher målet.
+- Hvid er standardbaggrundsfarven. Skift til en mørk farve, hvis dit dokument har mørke margener.
+
+## Relaterede værktøjer
+
+- [Sidestørrelser](./page-dimensions): kontrollér sidestørrelser før og efter rettelse
+- [Komprimer PDF](./compress-pdf): reducer filstørrelsen efter standardisering
+- [Beskær PDF](./crop-pdf): beskær sider manuelt i stedet for automatisk skalering
diff --git a/docs/da/tools/flatten-pdf.md b/docs/da/tools/flatten-pdf.md
new file mode 100644
index 00000000..9aa60f7c
--- /dev/null
+++ b/docs/da/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Fladgør PDF
+description: Flad interaktive formularer og annotationer ud til statisk indhold. Gør formularfelter uredigerbare og brænder annotationer ind i siden.
+---
+
+# Fladgør PDF
+
+Flatten slår interaktive elementer sammen med sidens indhold: formularfelter, rullelister, afkrydsningsfelter, annotationer, markeringer og påsatte noter. Det visuelle udseende forbliver det samme, men intet kan længere redigeres eller udtrækkes. Det svarer til at udskrive en udfyldt formular og scanne den ind igen, bortset fra at kvaliteten forbliver perfekt.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer.
+2. Klik på **Fladgør PDF**.
+3. En enkelt fil downloades direkte. Flere filer giver et ZIP-arkiv.
+
+Værktøjet bruger pdf-lib til at flade formularfelter ud (via `form.flatten()`) og en dedikeret annotationsflader til at brænde annotationer ind i sidestrømmen. Begge handlinger sker i ét gennemløb.
+
+## Hvad der flades ud
+
+- **Formularfelter**: Tekstfelter, afkrydsningsfelter, radioknapper, rullelister, signaturfelter
+- **Annotationer**: Kommentarer, markeringer, gennemstregning, understregning, påsatte noter, stempler, blækannotationer
+- **Interaktive elementer**: Knapper, handlingsudløsere
+
+## Hvad der forbliver uændret
+
+- Tekstindhold (kan stadig markeres og søges i)
+- Billeder og grafik
+- Sidelayout og -mål
+- Bogmærker og indholdsfortegnelse
+- Hyperlinks (medmindre de er annotationsbaserede)
+
+## Anvendelsesområder
+
+- Låsning af en udfyldt formular, så modtagere ikke kan ændre de indsendte svar
+- Klargøring af en PDF til arkivering, hvor interaktive elementer er unødvendige
+- Rettelse af visningsproblemer, når annotationer gengives forskelligt i forskellige læsere
+- Sikring af, at et underskrevet dokument ikke kan ændres, efter underskriften er påført
+- Reduktion af filstørrelsen ved at fjerne formularfeltdefinitioner og annotationsobjekter
+
+## Tips
+
+- Flatten, når alle redigeringer er færdige. Der er ingen måde at gendanne en flattenet PDF på.
+- Hvis du både vil flatten og fjerne metadata, JavaScript og vedhæftninger, så brug værktøjet Rens PDF i stedet. Det har flatten som en af sine indstillinger.
+- Nogle PDF'er melder "ingen formular fundet". Det er normalt, hvis dokumentet kun har annotationer og ingen formularfelter.
+
+## Relaterede værktøjer
+
+- [Rens PDF](./sanitize-pdf): flatten formularer og fjern desuden metadata, scripts og mere
+- [Rasterisér PDF](./rasterize-pdf): konvertér til billedbaseret PDF for maksimal flatten
+- [Skrifttype til kontur](./font-to-outline): konvertér skrifttyper til vektorstier
+- [Kryptér PDF](./protect-pdf): lås den fladgjorte PDF med en adgangskode
diff --git a/docs/da/tools/font-to-outline.md b/docs/da/tools/font-to-outline.md
new file mode 100644
index 00000000..8d49398b
--- /dev/null
+++ b/docs/da/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Skrifttype til kontur
+description: Konvertér alle skrifttyper i en PDF til vektorkonturer for ensartet gengivelse på tværs af enheder. Eliminerer problemer med skrifttypeafhængighed.
+---
+
+# Skrifttype til kontur
+
+Når skrifttyper konverteres til konturer, omdannes hvert tekstbogstav fra en skrifttypebaseret glyf til en vektorsti. PDF'en afhænger ikke længere af installerede skrifttyper og gengives ens på alle enheder, alle operativsystemer og alle printere. Det er et standardtrin i prepress-arbejdsgange.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer.
+2. Klik på **Konvertér til konturer**.
+3. Ghostscript konverterer al tekst til vektorstier.
+4. Download resultatet. Flere filer giver et ZIP-arkiv.
+
+Der er ingen indstillinger at konfigurere. Værktøjet bruger Ghostscript (WebAssembly) til at konvertere alle skrifttypereferencer til konturstier i ét gennemløb.
+
+## Hvad der ændres
+
+- Tekstbogstaver bliver til vektorkurver (bézier-stier)
+- Indlejring af skrifttyper er ikke længere nødvendig, da PDF'en er selvstændig på glyfniveau
+- Filstørrelsen kan stige, fordi vektorstier typisk er større end skrifttypereferencer
+- Det visuelle udseende bevares nøjagtigt
+
+## Hvad du mister
+
+- Markering og kopiering af tekst
+- Søgbarhed i teksten (Ctrl+F holder op med at virke)
+- Muligheden for at redigere tekstindholdet
+- Tilgængelighed for skærmlæsere
+
+## Anvendelsesområder
+
+- Afsendelse af PDF'er til et trykkeri, der kræver skrifttyper i konturer
+- Deling af dokumenter med brugerdefinerede eller licenserede skrifttyper med personer, der ikke har disse skrifttyper
+- Forebyggelse af skrifttypeudskiftning, der ændrer dit dokuments udseende på andre systemer
+- Klargøring af PDF'er til lasergravering eller CNC-skæring, der kræver vektorinput
+- Sikring af, at en logotung PDF vises korrekt på alle platforme
+
+## Tips
+
+- Behold din oprindelige PDF. Konvertering til konturer kan ikke fortrydes, og stier kan ikke konverteres tilbage til redigerbar tekst.
+- Hvis teksten skal forblive søgbar, kan du i stedet overveje værktøjet Rasterisér PDF efterfulgt af OCR.
+- PDF'er med konturer er ofte større. Kør Komprimer PDF bagefter, hvis filstørrelsen er vigtig.
+
+## Relaterede værktøjer
+
+- [Fladgør PDF](./flatten-pdf): flad formularer ud og annotationer uden at røre skrifttyper
+- [Rasterisér PDF](./rasterize-pdf): konvertér til billedbaseret PDF i stedet for vektorkonturer
+- [Komprimer PDF](./compress-pdf): reducer filstørrelsen efter konvertering til konturer
+- [PDF til PDF/A](./pdf-to-pdfa): konvertér til arkivering, når skrifttypeuafhængighed er sikret
diff --git a/docs/da/tools/form-creator.md b/docs/da/tools/form-creator.md
new file mode 100644
index 00000000..e60814fe
--- /dev/null
+++ b/docs/da/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Opret PDF-formular
+description: Byg udfyldelige PDF-formularer med træk-og-slip-tekstfelter, afkrydsningsfelter, rullelister, radioknapper og mere.
+---
+
+# Opret PDF-formular
+
+Design professionelle udfyldelige PDF-formularer fra bunden, eller tilføj felter til en eksisterende PDF. Den visuelle editor lader dig trække og slippe formularelementer (tekstfelter, afkrydsningsfelter, rullelister, radioknapper, signaturfelter og mere) direkte ind på sideforhåndsvisninger. Konfigurér feltegenskaber, opsæt regler for betinget synlighed, og eksportér en fuldt interaktiv PDF-formular.
+
+## Sådan fungerer det
+
+1. Upload en eksisterende PDF **eller** klik på **Opret tom PDF** for at starte fra bunden.
+2. Hvis du opretter en tom PDF, skal du vælge en sidestørrelse (Letter, A4, A5, Legal, Tabloid, A3 eller brugerdefinerede mål).
+3. Formulareditoren åbner med en værktøjslinje med felttyper og et område med sideforhåndsvisning.
+4. Vælg en felttype på værktøjslinjen, og klik derefter på siden for at placere den.
+5. Træk felter for at flytte dem. Brug størrelseshåndtagene til at justere målene.
+6. Klik på et felt for at åbne egenskabspanelet, hvor du kan angive feltnavn, standardværdi, skriftstørrelse, justering og mere.
+7. Naviger mellem siderne med sidekontrollerne.
+8. Klik på **Gem** for at downloade den færdige udfyldelige PDF.
+
+## Funktioner
+
+- Placering af felter med træk og slip og visuelle håndtag til ændring af størrelse
+- Felttyper: tekstinput, flerlinjet tekst, afkrydsningsfelt, rulleliste, radioknap, signatur, dato, tal og stregkode
+- Egenskabspanel til konfiguration af hvert felts navn, etiket, standardværdi, skriftstørrelse, farve, justering og validering
+- Felthandlinger og regler for betinget synlighed (vis/skjul felter baseret på andre feltværdier)
+- Sidenavigation til formularer med flere sider
+- Udtrækning af eksisterende felter: registrerer og importerer automatisk formularfelter fra uploadede PDF'er
+- Understøttelse af både uploadede PDF'er og tomme sider som formularlærred
+- Flere forudindstillede sidestørrelser plus brugerdefinerede mål
+- Stregkodegenerering drevet af bwip-js
+- Administration af radioknapgrupper
+
+## Indstillinger
+
+**Forudindstillede sidestørrelser (til tomme PDF'er):**
+
+- 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)
+- Brugerdefineret (angiv bredde og højde)
+
+**Feltegenskaber (varierer efter felttype):**
+
+- Navn, etiket og pladsholdertekst
+- Standardværdi
+- Skrifttype, størrelse og farve
+- Tekstjustering (venstre, centreret, højre)
+- Til/fra for obligatorisk felt
+- Til/fra for skrivebeskyttet
+- Maks. længde for tekstfelter
+- Valgmuligheder for rullelister og radioknapper
+- Handlinger for betinget synlighed
+
+## Anvendelsesområder
+
+- Oprettelse af onboarding-formularer til medarbejdere med tekstfelter til personlige oplysninger og afkrydsningsfelter til accept af politikker
+- Oprettelse af spørgeskemaer til kundeoptagelse med rullelister til valg af ydelse
+- Design af bestillingsformularer med beregnede felter og stregkodeidentifikatorer
+- Oprettelse af inspektionstjeklister med radioknapper til bestået/ikke bestået
+- Oprettelse af undersøgelsesformularer med betingede opfølgende spørgsmål, der vises ud fra svar
+
+## Tips
+
+- Hvis du uploader en eksisterende PDF, forsøger værktøjet at udtrække de formularfelter, der allerede findes, så du kan redigere eller tilføje til dem.
+- Brug radioknapgrupper til at oprette gensidigt udelukkende valg. Felter i samme radiogruppe deler et gruppenavn.
+- Test din formular ved at downloade den og åbne den i [PDF-formularudfylder](./form-filler) for at kontrollere feltadfærden.
+
+## Relaterede værktøjer
+
+- [PDF-formularudfylder](./form-filler)
+- [Underskriv PDF](./sign-pdf)
+- [PDF-editor](./edit-pdf)
diff --git a/docs/da/tools/form-filler.md b/docs/da/tools/form-filler.md
new file mode 100644
index 00000000..8147da7f
--- /dev/null
+++ b/docs/da/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: PDF-formularudfylder
+description: Udfyld PDF-formularer, herunder XFA-formularer, direkte i din browser med en indlejret viewer.
+---
+
+# PDF-formularudfylder
+
+Åbn en PDF med formularfelter, og udfyld den direkte i en indlejret viewer. Værktøjet understøtter både almindelige AcroForm-felter og ældre XFA-formularer (XML Forms Architecture). Når du har udfyldt formularen, kan du downloade den udfyldte version med et enkelt klik.
+
+## Sådan fungerer det
+
+1. Upload en PDF, der indeholder formularfelter.
+2. Dokumentet åbner i en integreret PDF-viewer, der gengiver formularfelter som interaktive inputfelter.
+3. Klik på tekstfelter, afkrydsningsfelter, rullelister og radioknapper for at udfylde dem.
+4. Klik på **Gem og download udfyldt formular** for at få den færdige PDF.
+
+## Funktioner
+
+- Indlejret PDF.js-viewer med fuld interaktion med formularfelter
+- Understøttelse af almindelige AcroForm-felter (tekstfelter, afkrydsningsfelter, rullelister, radioknapper)
+- XFA-formularunderstøttelse til ældre XML-baserede formularer
+- Automatisk tilpasning af viewerens størrelse ud fra sidemål
+- Visning af fil med navn og størrelse
+
+## Indstillinger
+
+Der er ingen yderligere konfigurationsindstillinger. Upload formularen, udfyld den, og download.
+
+## Anvendelsesområder
+
+- Udfyldelse af skatteformularer, forsikringsansøgninger eller offentlige papirer
+- Udfyldelse af jobansøgningsskemaer modtaget som PDF-vedhæftninger
+- Udfyldelse af leverandør-onboarding-formularer eller spørgeskemaer til leverandører
+- Godkendelse af compliance-tjeklister med afkrydsningsfelter
+- Udfyldelse af medicinske optagelsesformularer før en aftale
+
+## Tips
+
+- XFA-formularer er et ældre format, som kun understøttes af nogle PDF-læsere. Hvis du åbner en XFA-PDF i Chrome eller de fleste andre værktøjer og ser tomme sider, mangler disse læsere XFA-understøttelse. BentoPDF's formularudfylder og Firefox håndterer begge XFA korrekt.
+- Til PDF'er uden eksisterende formularfelter kan du bruge værktøjet [Opret PDF-formular](./form-creator) til først at tilføje felter og derefter udfylde dem her.
+- Vieweren tilpasser automatisk sin størrelse til PDF'ens sidemål.
+
+## Relaterede værktøjer
+
+- [Opret PDF-formular](./form-creator)
+- [Underskriv PDF](./sign-pdf)
+- [PDF-editor](./edit-pdf)
diff --git a/docs/da/tools/header-footer.md b/docs/da/tools/header-footer.md
new file mode 100644
index 00000000..6108c30b
--- /dev/null
+++ b/docs/da/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Sidehoved og sidefod
+description: Tilføj tilpasselig sidehoved- og sidefodstekst til PDF-sider med dynamiske variabler for sidetal.
+---
+
+# Sidehoved og sidefod
+
+Tilføj tekst i seks positioner på dine PDF-sider: sidehoved til venstre, i midten og til højre samt sidefod til venstre, i midten og til højre. Værktøjet understøtter dynamiske variabler for sidetal og samlet sideantal, så du kan oprette skabeloner som "Side 3 af 10", der opdateres automatisk for hver side.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Indstillingspanelet vises med formateringskontroller og seks tekstfelter.
+3. Indtast den ønskede tekst i en af sidehoved-/sidefodspositionerne.
+4. Brug pladsholderne `{page}` og `{total}` til dynamisk sidenummerering.
+5. Juster skriftstørrelse og skriftfarve, og begræns eventuelt til et bestemt sideinterval.
+6. Klik på **Tilføj sidehoved og sidefod** for at behandle og downloade.
+
+## Indstillinger
+
+- **Sideinterval**: Begræns eventuelt, hvilke sider der får sidehoved og sidefod. Lad feltet stå tomt for at anvende det på alle sider. Format: "1-3, 5" (kommaseparerede intervaller).
+- **Skriftstørrelse**: Mellem 6 og 24 punkter. Standard er 10.
+- **Skriftfarve**: Vælg en vilkårlig farve med farvevælgeren.
+- **Sidehoved venstre / midten / højre**: Tekstfelter øverst på hver side.
+- **Sidefod venstre / midten / højre**: Tekstfelter nederst på hver side.
+
+## Funktioner
+
+- Seks uafhængige tekstpositioner pr. side
+- Dynamisk `{page}`-variabel, der indsætter det aktuelle sidetal
+- Dynamisk `{total}`-variabel, der indsætter det samlede sideantal
+- Filtrering på sideinterval for at ramme bestemte sider
+- Tilpasselig skriftstørrelse og farve
+- Helvetica-skrifttype for et rent, professionelt resultat
+
+## Anvendelsesområder
+
+- Tilføjelse af "Side {page} af {total}" i midten af sidefoden i en rapport
+- Placering af et firmanavn i sidehovedet til venstre og en dokumentdato i sidehovedet til højre
+- Tilføjelse af fortrolighedsmeddelelser i sidefoden i juridiske dokumenter
+- Stempling af dokumentrevisionsnumre på bestemte sideintervaller
+
+## Tips
+
+- Kombinér `{page}` og `{total}` i ét felt til formater som "Side {page} af {total}" eller "{page}/{total}".
+- Du kan lade de fleste felter stå tomme og kun udfylde de positioner, du har brug for. Tomme felter springes blot over.
+- Til mere komplekse sidehoveder med billeder eller logoer kan du overveje værktøjet [Tilføj vandmærke](./add-watermark) placeret øverst på siden.
+
+## Relaterede værktøjer
+
+- [Sidetal](./page-numbers)
+- [Tilføj vandmærke](./add-watermark)
+- [Bates-nummerering](./bates-numbering)
diff --git a/docs/da/tools/heic-to-pdf.md b/docs/da/tools/heic-to-pdf.md
new file mode 100644
index 00000000..b0088898
--- /dev/null
+++ b/docs/da/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC til PDF
+description: Konvertér HEIC- og HEIF-billeder fra iPhones og iPads til PDF-format direkte i din browser.
+---
+
+# HEIC til PDF
+
+Konvertér HEIC/HEIF-billeder til PDF. HEIC har været standardfotoformatet på iPhones og iPads siden iOS 11. Med dette værktøj kan du omdanne disse fotos til PDF'er uden at installere desktopsoftware eller uploade filer til en server.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :----- | :----------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine HEIC/HEIF-filer.
+2. Gennemgå fillisten, og fjern uønskede filer.
+3. Klik på **Konvertér til PDF**. Resultatet downloades som `from_heic.pdf`.
+
+Hver HEIC-fil afkodes med biblioteket heic2any, som konverterer den til PNG i 92 % kvalitet. PNG-billedet indlejres derefter i PDF'en med pdf-lib, med ét billede pr. side i fuld opløsning.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere indstillinger. HEIC-billeder konverteres i høj kvalitet (0,92) til PNG, før de indlejres.
+
+## Anvendelsesområder
+
+- Oprettelse af en PDF af iPhone-fotos til at vedhæfte en forsikringsanmeldelse eller rapport
+- Konvertering af HEIC-fotos til en boligannonce til ét udskrivbart dokument
+- Omdannelse af iPad-skærmbilleder (HEIF-format) til en delbar PDF
+- Batchkonvertering af feriebilleder til en rejsedagbog
+
+## Tips
+
+- HEIC-afkodning sker udelukkende i browseren med WebAssembly. Den første konvertering kan tage et øjeblik, mens afkoderen indlæses.
+- Hvis du skal blande HEIC med andre billedformater (JPG, PNG osv.), kan du bruge værktøjet [Billeder til PDF](./image-to-pdf), som håndterer HEIC sammen med alle andre formater.
+- HEIC-filer fra iPhones indeholder ofte EXIF-data, herunder GPS-koordinater. PDF-outputtet medtager ikke disse metadata.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [JPG til PDF](./jpg-to-pdf)
+- [PNG til PDF](./png-to-pdf)
diff --git a/docs/da/tools/image-to-pdf.md b/docs/da/tools/image-to-pdf.md
new file mode 100644
index 00000000..0d9a357b
--- /dev/null
+++ b/docs/da/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Billeder til PDF
+description: Konvertér JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD og 10+ andre billedformater til én PDF-fil.
+---
+
+# Billeder til PDF
+
+Den universelle billede-til-PDF-konverter. Upload billeder i stort set ethvert format, og kombinér dem i ét PDF-dokument. Hvert billede får sin egen side, der svarer til de oprindelige mål.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Dette er den bredeste formatunderstøttelse af alle BentoPDF's billedkonvertere. Hvis du kun har brug for ét bestemt format, kan du bruge et af de dedikerede værktøjer i stedet.
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine billedfiler. Du kan vælge flere filer på én gang.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurv-ikonet, eller klik på **Tilføj flere filer** for at tilføje flere billeder.
+3. Vælg et **PDF-kvalitetsniveau** i rullelisten.
+4. Klik på **Konvertér til PDF**. Værktøjet behandler billederne med PyMuPDF-motoren og downloader resultatet som `images_to_pdf.pdf`.
+
+## Indstillinger
+
+**PDF-kvalitet** styrer den billedkomprimering, der anvendes, når billeder indlejres i PDF'en:
+
+- **Høj kvalitet**: minimal komprimering, større filstørrelse. Bedst til udskrivning eller arkivering.
+- **Mellem kvalitet** (standard): afbalanceret komprimering. God til de fleste formål.
+- **Lav kvalitet**: kraftig komprimering, mindste filstørrelse. Velegnet til e-mail eller hurtig deling.
+
+HEIC- og WebP-filer konverteres automatisk til PNG, før de indlejres. Det sker gennemsigtigt og kræver ingen ekstra trin.
+
+## Anvendelsesområder
+
+- Kombinering af scannede kvitteringer eller dokumenter fra et telefonkamera i én PDF
+- Oprettelse af en fotoportefølje eller lookbook af billeder i blandede formater
+- Konvertering af iPhone-fotos (HEIC) til en delbar PDF uden at installere desktopsoftware
+- Samling af designskitser fra PSD-eksporter og skærmbilleder til en kundeleverance
+- Arkivering af en mappe med ældre billedformater (PNM, JXR, JP2) som én PDF
+
+## Tips
+
+- Rækkefølgen af billederne i PDF'en svarer til rækkefølgen i fillisten. Upload dem i den rækkefølge, du ønsker.
+- For den mindst mulige filstørrelse skal du vælge Lav kvalitet. Den visuelle forskel er ofte ubetydelig for tekstbaserede scanninger.
+- Hvis du kun har ét billedformat, giver de dedikerede konvertere (JPG til PDF, PNG til PDF osv.) det samme resultat med en enklere grænseflade.
+
+## Relaterede værktøjer
+
+- [JPG til PDF](./jpg-to-pdf)
+- [PNG til PDF](./png-to-pdf)
+- [HEIC til PDF](./heic-to-pdf)
+- [WebP til PDF](./webp-to-pdf)
diff --git a/docs/da/tools/index.md b/docs/da/tools/index.md
new file mode 100644
index 00000000..6e151550
--- /dev/null
+++ b/docs/da/tools/index.md
@@ -0,0 +1,183 @@
+# Værktøjsoversigt
+
+BentoPDF tilbyder **130+ værktøjer** til arbejde med PDF'er. Alle værktøjer kører udelukkende i din browser, og dine filer forlader aldrig din enhed.
+
+---
+
+## Redigér og annotér
+
+Rediger, markér og forbedr dine PDF-dokumenter med en komplet samling redigeringsværktøjer.
+
+
+
+- [**PDF-editor**](./edit-pdf): Annotér, fremhæv, redigér, kommentér, tilføj former/billeder, søg i og vis PDF'er.
+- [**Redigér bogmærker**](./bookmark): Tilføj, redigér, importér, slet og udtræk PDF-bogmærker.
+- [**Indholdsfortegnelse**](./table-of-contents): Generér en indholdsfortegnelsesside ud fra PDF-bogmærker.
+- [**Sidetal**](./page-numbers): Indsæt sidetal i dit dokument.
+- [**Tilføj sideetiketter**](./add-page-labels): Anvend PDF-sideetiketter med romertal, præfikser og brugerdefinerede startværdier.
+- [**Bates-nummerering**](./bates-numbering): Tilføj fortløbende Bates-numre på tværs af en eller flere PDF-filer.
+- [**Tilføj vandmærke**](./add-watermark): Stempl tekst eller et billede over dine PDF-sider.
+- [**Sidehoved og sidefod**](./header-footer): Tilføj tekst øverst og nederst på siderne.
+- [**Invertér farver**](./invert-colors): Opret en mørk version af din PDF.
+- [**Scannereffekt**](./scanner-effect): Få din PDF til at ligne et scannet dokument.
+- [**Justér farver**](./adjust-colors): Finjustér lysstyrke, kontrast, mætning og mere.
+- [**Baggrundsfarve**](./background-color): Skift baggrundsfarven i din PDF.
+- [**Skift tekstfarve**](./text-color): Skift farven på teksten i din PDF.
+- [**Underskriv PDF**](./sign-pdf): Tegn, skriv eller upload din underskrift.
+- [**Tilføj stempler**](./add-stamps): Tilføj billedstempler til din PDF med annotationsværktøjslinjen.
+- [**Fjern annotationer**](./remove-annotations): Fjern kommentarer, fremhævninger og links.
+- [**Beskær PDF**](./crop-pdf): Beskær margenerne på alle sider i din PDF.
+- [**PDF-formularudfylder**](./form-filler): Udfyld formularer direkte i browseren. Understøtter også XFA-formularer.
+- [**Opret PDF-formular**](./form-creator): Opret udfyldelige PDF-formularer med træk-og-slip-tekstfelter.
+- [**Fjern tomme sider**](./remove-blank-pages): Find og slet tomme sider automatisk.
+
+
+
+---
+
+## Konvertér til PDF
+
+Omdan billeder, dokumenter, ebøger og andre filformater til PDF.
+
+
+
+- [**Billeder til PDF**](./image-to-pdf): Konvertér JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP og flere til PDF.
+- [**JPG til PDF**](./jpg-to-pdf): Opret en PDF fra et eller flere JPG-billeder.
+- [**PNG til PDF**](./png-to-pdf): Opret en PDF fra et eller flere PNG-billeder.
+- [**WebP til PDF**](./webp-to-pdf): Opret en PDF fra et eller flere WebP-billeder.
+- [**SVG til PDF**](./svg-to-pdf): Opret en PDF fra et eller flere SVG-billeder.
+- [**BMP til PDF**](./bmp-to-pdf): Opret en PDF fra et eller flere BMP-billeder.
+- [**HEIC til PDF**](./heic-to-pdf): Opret en PDF fra et eller flere HEIC-billeder.
+- [**TIFF til PDF**](./tiff-to-pdf): Opret en PDF fra et eller flere TIFF-billeder.
+- [**Tekst til PDF**](./txt-to-pdf): Konvertér en almindelig tekstfil til en PDF.
+- [**Markdown til PDF**](./markdown-to-pdf): Konvertér Markdown til PDF med live forhåndsvisning og syntaksfremhævning.
+- [**JSON til PDF**](./json-to-pdf): Konvertér JSON-filer til PDF-format.
+- [**ODT til PDF**](./odt-to-pdf): Konvertér ODT-filer (OpenDocument Text) til PDF.
+- [**CSV til PDF**](./csv-to-pdf): Konvertér CSV-regneark til PDF.
+- [**RTF til PDF**](./rtf-to-pdf): Konvertér RTF-dokumenter (Rich Text Format) til PDF.
+- [**Word til PDF**](./word-to-pdf): Konvertér Word-dokumenter (DOCX, DOC, ODT) til PDF.
+- [**Excel til PDF**](./excel-to-pdf): Konvertér Excel-regneark (XLSX, XLS, ODS) til PDF.
+- [**PowerPoint til PDF**](./powerpoint-to-pdf): Konvertér PowerPoint-præsentationer (PPTX, PPT, ODP) til PDF.
+- [**XPS til PDF**](./xps-to-pdf): Konvertér XPS/OXPS-dokumenter til PDF.
+- [**MOBI til PDF**](./mobi-to-pdf): Konvertér MOBI-ebøger til PDF.
+- [**EPUB til PDF**](./epub-to-pdf): Konvertér EPUB-ebøger til PDF.
+- [**FB2 til PDF**](./fb2-to-pdf): Konvertér FictionBook-ebøger (FB2) til PDF.
+- [**CBZ til PDF**](./cbz-to-pdf): Konvertér tegneserie-arkiver (CBZ/CBR) til PDF.
+- [**WPD til PDF**](./wpd-to-pdf): Konvertér WordPerfect-dokumenter (WPD) til PDF.
+- [**WPS til PDF**](./wps-to-pdf): Konvertér WPS Office-dokumenter til PDF.
+- [**XML til PDF**](./xml-to-pdf): Konvertér XML-dokumenter til PDF.
+- [**ODG til PDF**](./odg-to-pdf): Konvertér OpenDocument Graphics (ODG) til PDF.
+- [**ODS til PDF**](./ods-to-pdf): Konvertér OpenDocument Spreadsheet (ODS) til PDF.
+- [**ODP til PDF**](./odp-to-pdf): Konvertér OpenDocument Presentation (ODP) til PDF.
+- [**PUB til PDF**](./pub-to-pdf): Konvertér Microsoft Publisher (PUB) til PDF.
+- [**VSD til PDF**](./vsd-to-pdf): Konvertér Microsoft Visio (VSD, VSDX) til PDF.
+- [**PSD til PDF**](./psd-to-pdf): Konvertér Adobe Photoshop-filer (PSD) til PDF.
+- [**Email til PDF**](./email-to-pdf): Konvertér e-mailfiler (EML, MSG) til PDF-format.
+
+
+
+---
+
+## Konvertér fra PDF
+
+Udtræk indhold fra PDF'er til billeder, dokumenter og dataformater.
+
+
+
+- [**PDF til JPG**](./pdf-to-jpg): Konvertér hver PDF-side til et JPG-billede.
+- [**PDF til PNG**](./pdf-to-png): Konvertér hver PDF-side til et PNG-billede.
+- [**PDF til WebP**](./pdf-to-webp): Konvertér hver PDF-side til et WebP-billede.
+- [**PDF til BMP**](./pdf-to-bmp): Konvertér hver PDF-side til et BMP-billede.
+- [**PDF til TIFF**](./pdf-to-tiff): Konvertér hver PDF-side til et TIFF-billede.
+- [**PDF til CBZ**](./pdf-to-cbz): Konvertér en PDF til et CBZ-arkiv (Comic Book Archive) til tegneserielæsere og Calibre.
+- [**PDF til SVG**](./pdf-to-svg): Konvertér hver PDF-side til en skalerbar vektorgrafik.
+- [**PDF til CSV**](./pdf-to-csv): Udtræk tabeller fra PDF, og konvertér dem til CSV-format.
+- [**PDF til Excel**](./pdf-to-excel): Udtræk tabeller fra PDF, og konvertér dem til Excel (XLSX).
+- [**PDF til gråtoner**](./pdf-to-greyscale): Konvertér alle farver til sort og hvid.
+- [**PDF til JSON**](./pdf-to-json): Konvertér PDF-filer til JSON-format.
+- [**PDF til Word**](./pdf-to-word): Konvertér PDF-filer til redigerbare Word-dokumenter.
+- [**Udtræk billeder**](./extract-images): Udtræk alle indlejrede billeder fra dine PDF-filer.
+- [**PDF til Markdown**](./pdf-to-markdown): Konvertér PDF-tekst og -tabeller til Markdown-format.
+- [**Forbered PDF til AI**](./prepare-pdf-for-ai): Udtræk PDF-indhold som LlamaIndex JSON til RAG/LLM-pipelines.
+- [**PDF til tekst**](./pdf-to-text): Udtræk tekst fra PDF-filer, og gem den som almindelig tekst.
+- [**Udtræk PDF-tabeller**](./extract-tables): Udtræk tabeller fra PDF'er som CSV, JSON eller Markdown.
+
+
+
+---
+
+## Organisér og administrér
+
+Omarranger, kombinér, opdel og administrér dine PDF-sider og -filer.
+
+
+
+- [**PDF Workflow-bygger**](./pdf-workflow): Byg brugerdefinerede PDF-behandlingspipelines med en visuel nodeeditor.
+- [**PDF Multi-værktøj**](./pdf-multi-tool): Fuldt udstyret PDF-editor med sideadministration.
+- [**OCR PDF**](./ocr-pdf): Gør en PDF søgbar og kopierbar.
+- [**Flet PDF**](./merge-pdf): Kombinér flere PDF'er til én fil.
+- [**Alternér og miks sider**](./alternate-merge): Flet PDF'er ved at skiftevis tage sider fra hver PDF.
+- [**Sortér dupleks-scanning**](./duplex-collate): Omordn blokke af for- og bagsidescanninger til den rigtige sidesekvens.
+- [**Duplikér og organisér**](./organize-pdf): Duplikér, omarranger og slet sider.
+- [**Tilføj vedhæftninger**](./add-attachments): Indlejr en eller flere filer i din PDF.
+- [**Udtræk vedhæftninger**](./extract-attachments): Udtræk alle indlejrede filer fra PDF'er som en ZIP-fil.
+- [**Redigér vedhæftninger**](./edit-attachments): Se eller fjern vedhæftninger i din PDF.
+- [**PDF OCG**](./pdf-layers): Vis, skift, tilføj og slet OCG-lag i din PDF.
+- [**Opdel PDF**](./split-pdf): Udtræk et sideinterval til en ny PDF.
+- [**Opdel sider**](./divide-pages): Opdel sider vandret eller lodret.
+- [**Udtræk sider**](./extract-pages): Gem et udvalg af sider som nye filer.
+- [**Slet sider**](./delete-pages): Fjern bestemte sider fra dit dokument.
+- [**Tilføj tom side**](./add-blank-page): Indsæt en tom side hvor som helst i din PDF.
+- [**Vend sider**](./reverse-pages): Vend rækkefølgen af alle sider i dit dokument.
+- [**Roter PDF**](./rotate-pdf): Drej sider i trin på 90 grader.
+- [**Roter med brugerdefineret vinkel**](./rotate-custom): Roter sider med en vilkårlig vinkel.
+- [**N-Up PDF**](./n-up-pdf): Arrangér flere sider på ét ark.
+- [**PDF-hæfte**](./pdf-booklet): Omarranger sider til dobbeltsidet hæfteudskrivning.
+- [**Kombinér til én side**](./combine-single-page): Sammensæt alle sider til én sammenhængende rulleside.
+- [**Vis metadata**](./view-metadata): Undersøg de skjulte egenskaber i din PDF.
+- [**Redigér metadata**](./edit-metadata): Skift forfatter, titel og andre egenskaber.
+- [**PDF'er til ZIP**](./pdf-to-zip): Pak flere PDF-filer i et ZIP-arkiv.
+- [**Sammenlign PDF'er**](./compare-pdfs): Sammenlign to PDF'er side om side.
+- [**Posterisér PDF**](./posterize-pdf): Opdel en stor side i flere mindre sider.
+
+
+
+---
+
+## Optimér og reparér
+
+Komprimer, ret og optimér dine PDF'er for bedre ydeevne og kompatibilitet.
+
+
+
+- [**Komprimer PDF**](./compress-pdf): Reducer filstørrelsen på din PDF.
+- [**PDF til PDF/A**](./pdf-to-pdfa): Konvertér PDF til PDF/A til langtidsarkivering.
+- [**Ret sidestørrelse**](./fix-page-size): Standardisér alle sider til en ensartet størrelse.
+- [**Lineariser PDF**](./linearize-pdf): Optimér PDF til hurtig visning på nettet.
+- [**Sidestørrelser**](./page-dimensions): Analysér sidestørrelse, orientering og enheder.
+- [**Fjern begrænsninger**](./remove-restrictions): Fjern adgangskodebeskyttelse og sikkerhedsbegrænsninger.
+- [**Reparér PDF**](./repair-pdf): Gendan data fra korrupte eller beskadigede PDF-filer.
+- [**Rasterisér PDF**](./rasterize-pdf): Konvertér PDF til billedbaseret PDF. Flad lag ud, og fjern markerbar tekst.
+- [**Ret skæve sider**](./deskew-pdf): Ret automatisk skæve scannede sider ud med OpenCV.
+- [**Skrifttype til kontur**](./font-to-outline): Konvertér alle skrifttyper til vektorkonturer for ensartet gengivelse.
+
+
+
+---
+
+## Sikr PDF
+
+Beskyt, kryptér og kontrollér adgangen til dine PDF-dokumenter.
+
+
+
+- [**Kryptér PDF**](./protect-pdf): Lås din PDF ved at tilføje en adgangskode.
+- [**Rens PDF**](./sanitize-pdf): Fjern metadata, annotationer, scripts og mere.
+- [**Dekryptér PDF**](./unlock-pdf): Lås PDF op ved at fjerne adgangskodebeskyttelse.
+- [**Fladgør PDF**](./flatten-pdf): Gør formularfelter og annotationer uredigerbare.
+- [**Fjern metadata**](./remove-metadata): Fjern skjulte data fra din PDF.
+- [**Skift tilladelser**](./change-permissions): Angiv eller skift brugertilladelser på en PDF.
+- [**Digital signatur PDF**](./digital-sign-pdf): Tilføj en kryptografisk digital signatur med X.509-certifikater.
+- [**Validér PDF-signatur**](./validate-signature-pdf): Bekræft digitale signaturer, og se certifikatoplysninger.
+
+
diff --git a/docs/da/tools/invert-colors.md b/docs/da/tools/invert-colors.md
new file mode 100644
index 00000000..48b46cf4
--- /dev/null
+++ b/docs/da/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Invertér farver
+description: Invertér alle farver i din PDF for at oprette en mørk version af ethvert dokument.
+---
+
+# Invertér farver
+
+Vend hver farve i din PDF om til sin modsætning. Hvide baggrunde bliver sorte, sort tekst bliver hvid, og alle andre farver skifter til deres komplementærfarver. Det er den hurtigste måde at lave en "mørk tilstand"-version af enhver PDF.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Klik på **Invertér farver** for at behandle.
+3. Den inverterede PDF downloades automatisk.
+
+Der er ingen yderligere indstillinger. Værktøjet gengiver hver side som et billede, inverterer alle pixelfarver og samler resultatet i en ny PDF.
+
+## Funktioner
+
+- Farveinvertering med ét klik for alle sider
+- Behandler hver side i dokumentet
+- Bevarer de oprindelige sidemål og layout
+- Virker med enhver PDF uanset indholdstype (tekst, billeder, blandet)
+
+## Anvendelsesområder
+
+- Oprettelse af mørke versioner af lærebøger eller manualer til behagelig læsning om aftenen
+- Klargøring af højkontrastversioner af dokumenter af hensyn til tilgængelighed
+- Invertering af scannede dokumenter, der er optaget med forkert eksponering
+- Generering af negative versioner af billedtunge PDF'er til visuel analyse
+
+## Tips
+
+- Da værktøjet rasteriserer siderne for at opnå effekten, er outputtet billedbaseret. Tekst kan ikke længere markeres eller søges i. Hvis du har brug for søgbar tekst efter invertering, kan du køre outputtet gennem et OCR-værktøj.
+- Til mere detaljerede farvejusteringer (lysstyrke, kontrast, mætning) kan du bruge værktøjet [Justér farver](./adjust-colors) i stedet.
+- Store PDF'er med mange sider kan tage længere tid at behandle, da hver side gengives og inverteres individuelt.
+
+## Relaterede værktøjer
+
+- [Justér farver](./adjust-colors)
+- [Baggrundsfarve](./background-color)
+- [Scannereffekt](./scanner-effect)
diff --git a/docs/da/tools/jpg-to-pdf.md b/docs/da/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..624e5fda
--- /dev/null
+++ b/docs/da/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG til PDF
+description: Konvertér et eller flere JPG-, JPEG- og JPEG 2000-billeder til én PDF-fil direkte i din browser.
+---
+
+# JPG til PDF
+
+Omdan JPG-billeder til en ren PDF. Upload én fil, eller saml flere JPG'er i en batch. Hvert billede bliver til en fuldstørrelsesside i det færdige dokument.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine JPG-filer. Flere filer kan vælges.
+2. Gennemgå de uploadede filer. Brug papirkurv-ikonet til at fjerne enkelte filer, eller klik på **Tilføj flere filer** for at tilføje til listen.
+3. Vælg et **PDF-kvalitetsniveau**.
+4. Klik på **Konvertér til PDF**. Værktøjet komprimerer billederne efter din kvalitetsindstilling, konverterer dem via PyMuPDF-motoren og downloader `from_jpgs.pdf`.
+
+## Indstillinger
+
+**PDF-kvalitet** justerer den komprimering, der anvendes på hvert billede, før det indlejres i PDF'en:
+
+- **Høj kvalitet**: bevarer maksimal detaljegrad. Brug til fotografi eller udskrivning.
+- **Mellem kvalitet** (standard): en solid balance mellem klarhed og filstørrelse.
+- **Lav kvalitet**: kraftig komprimering for det mindste output.
+
+## Anvendelsesområder
+
+- Konvertering af scannede dokumenter gemt som JPG'er til én PDF til indsendelse
+- Samling af produktfotos i et katalog til kunder
+- Omdannelse af JPEG 2000-billeder fra medicin eller satellitter til en bærbar PDF
+- Oprettelse af et udskrivbart fotoalbum fra kameraeksporter
+
+## Tips
+
+- JPEG 2000-filer (`.jp2`, `.jpx`) understøttes fuldt ud, ikke kun standard-JPEG. Det er nyttigt til medicinsk billeddannelse og geospatiale data.
+- Hvis dine JPG'er kommer fra et telefonkamera, giver Mellem kvalitet normalt en fil, der er 40-60 % mindre end Høj uden synlig forskel på skærmen.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [PNG til PDF](./png-to-pdf)
+- [WebP til PDF](./webp-to-pdf)
diff --git a/docs/da/tools/json-to-pdf.md b/docs/da/tools/json-to-pdf.md
new file mode 100644
index 00000000..d8e3b524
--- /dev/null
+++ b/docs/da/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON til PDF
+description: Genskab PDF-filer fra BentoPDF's JSON-format. Konvertér JSON-eksporter tilbage til deres oprindelige PDF-dokumenter.
+---
+
+# JSON til PDF
+
+Genskab PDF-dokumenter fra JSON-filer, der tidligere er oprettet med BentoPDF's værktøj **PDF til JSON**. Dette er et værktøj til rundturskonvertering: det tager den strukturerede JSON-repræsentation af en PDF og genopbygger det oprindelige dokument.
+
+::: warning
+Dette værktøj accepterer kun JSON-filer, der er oprettet af BentoPDF's PDF-til-JSON-konverter. Almindelige JSON-filer fra API'er, databaser eller andre værktøjer understøttes ikke.
+:::
+
+## Understøttede formater
+
+| Input | Beskrivelse |
+| :------ | :-------------------------------------------------------- |
+| `.json` | JSON-filer eksporteret af BentoPDF's PDF-til-JSON-værktøj |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip en eller flere JSON-filer.
+2. Fillisten viser hver valgt fil med dens størrelse.
+3. Klik på **Konvertér til PDF**. Værktøjet behandler alle filer med en Web Worker og CPDF-motoren.
+4. Outputtet downloades som `jsons-to-pdf.zip` med én PDF pr. input-JSON-fil.
+
+Konverteringen kører i en Web Worker i baggrunden, så brugerfladen forbliver responsiv, selv med store filer.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. JSON-strukturen bestemmer fuldt ud den resulterende PDF.
+
+## Output
+
+Når flere JSON-filer konverteres, leveres resultaterne som et ZIP-arkiv. Hver PDF navngives efter sin kilde-JSON-fil (f.eks. bliver `report.json` til `report.pdf`).
+
+## Anvendelsesområder
+
+- Gendannelse af PDF'er fra en JSON-baseret backup eller arkiveringspipeline
+- Rundtur for en PDF gennem JSON til inspektion og derefter tilbage til PDF
+- Genopbygning af dokumenter efter programmatiske ændringer i JSON-strukturen
+- Kontrol af, at en PDF-til-JSON-eksport har fanget alt dokumentindhold, ved at konvertere den tilbage
+
+## Tips
+
+- Hvis du skal konvertere vilkårlige JSON-data (som API-svar eller konfigurationsfiler) til en formateret PDF, passer værktøjet [Tekst til PDF](./txt-to-pdf) bedre. Indsæt JSON'en som tekst, så gengives den med korrekt formatering.
+- CPDF WebAssembly-motoren skal være tilgængelig, for at dette værktøj virker. Selvhostede installationer skal have CPDF WASM-filerne konfigureret.
+
+## Relaterede værktøjer
+
+- [Tekst til PDF](./txt-to-pdf)
+- [Markdown til PDF](./markdown-to-pdf)
+- [CSV til PDF](./csv-to-pdf)
diff --git a/docs/da/tools/linearize-pdf.md b/docs/da/tools/linearize-pdf.md
new file mode 100644
index 00000000..a615c195
--- /dev/null
+++ b/docs/da/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Lineariser PDF
+description: Optimér PDF-filer til hurtig visning på nettet med progressiv indlæsning. Også kendt som "Fast Web View"-optimering.
+---
+
+# Lineariser PDF
+
+Linearisering omstrukturerer en PDF, så den første side kan vises, før hele filen er downloadet. Adobe kalder det "Fast Web View". Hvis du hoster PDF'er på et websted eller leverer dem via en dokumentportal, gør linearisering dem mærkbart hurtigere at åbne.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer.
+2. Klik på **Lineariser PDF(er)**.
+3. Download resultaterne som et ZIP-arkiv med alle de lineariserede filer.
+
+Der er ingen indstillinger at konfigurere. Værktøjet bruger QPDF's `--linearize`-flag, som omarrangerer PDF'ens interne struktur uden at ændre det visuelle indhold.
+
+## Hvad linearisering gør
+
+- Omordner PDF-objekter, så den første sides data ligger i begyndelsen af filen
+- Tilføjer en lineariseringsordbog og hint-tabeller, så læsere ved, hvor hver side findes
+- Muliggør byte-range-forespørgsler: en browser kan hente blot den første side uden at downloade hele filen
+- Rydder op i krydsreferencetabellen for effektiv tilfældig adgang
+
+## Funktioner
+
+- Batchbehandling af flere PDF'er i én handling
+- Outputtet bevarer alt indhold, alle skrifttyper, billeder og interaktive elementer
+- Bruger QPDF (WebAssembly) til pålidelig, standardkompatibel linearisering
+- Resultaterne pakkes i en ZIP-fil for nem download
+
+## Anvendelsesområder
+
+- Hosting af PDF-rapporter på et websted, hvor brugerne forventer øjeblikkelig sidevisning
+- Indlejring af PDF'er i webapplikationer med viewere i browseren
+- Udgivelse af PDF-kataloger eller manualer, der tilgås over langsomme mobilforbindelser
+- Klargøring af dokumenter til content delivery networks (CDN'er), der understøtter byte-range-levering
+
+## Tips
+
+- Lineariser, når alle andre redigeringer er færdige. Enhver efterfølgende ændring (sammenfletning, tilføjelse af sider) ødelægger lineariseringen.
+- Kombinér med Komprimer PDF for de mindste og hurtigst indlæste PDF'er.
+- Linearisering tilføjer en lille ekstra mængde til filstørrelsen (typisk under 1 %).
+
+## Relaterede værktøjer
+
+- [Komprimer PDF](./compress-pdf): reducer filstørrelsen før linearisering
+- [Reparér PDF](./repair-pdf): ret strukturelle problemer, der forhindrer linearisering
+- [Fjern metadata](./remove-metadata): fjern metadata før udgivelse online
diff --git a/docs/da/tools/markdown-to-pdf.md b/docs/da/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..01045bb4
--- /dev/null
+++ b/docs/da/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown til PDF
+description: Skriv eller indsæt Markdown, og eksportér det som en professionelt formateret PDF med live forhåndsvisning og syntaksfremhævning.
+---
+
+# Markdown til PDF
+
+En fuldt udstyret Markdown-editor med live forhåndsvisning og PDF-eksport med ét klik. Skriv fra bunden, upload en eksisterende `.md`-fil, eller indsæt indhold fra udklipsholderen. Editoren gengiver din Markdown i realtid og eksporterer en formateret PDF med browserens indbyggede udskriftsmotor.
+
+## Understøttede formater
+
+| Input | Beskrivelse |
+| :------------ | :---------------------------- |
+| `.md`-filer | Upload med knappen Upload |
+| Direkte input | Skriv eller indsæt i editoren |
+
+## Sådan fungerer det
+
+1. Åbn værktøjet Markdown til PDF. Editoren indlæses med delt visning: Markdown-kilde til venstre og gengivet forhåndsvisning til højre.
+2. Skriv din Markdown, indsæt den, eller klik på **Upload** for at indlæse en `.md`-fil.
+3. Skift mellem lyst og mørkt tema med temaskyderen på værktøjslinjen.
+4. Klik på **Eksportér PDF** (eller tryk på `Ctrl/Cmd + S`) for at generere en PDF via browserens udskriftsdialog.
+
+## Funktioner
+
+Editoren understøtter et omfattende sæt Markdown-funktioner ud over det grundlæggende:
+
+- **Standard-Markdown**: overskrifter, fed, kursiv, links, billeder, lister, blokcitater, vandrette streger
+- **Kodeblokke** med syntaksfremhævning for 15+ sprog (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash og flere)
+- **Mermaid-diagrammer**: rutediagrammer, sekvensdiagrammer, ER-diagrammer og andre Mermaid-diagramtyper gengives direkte i forhåndsvisningen
+- **Tabeller** med standard Markdown-tabelsyntaks
+- **Opgavelister** med afkrydsningsfelter
+- **Fodnoter**, **sænket skrift**, **hævet skrift**
+- **Definitionslister**, **forkortelser**
+- Understøttelse af **emoji** (`:smile:` gengives som emojien)
+- **Fremhævninger** (`==marked text==`) og **indsættelser** (`++inserted text++`)
+- **Automatiske links**: almindelige URL'er konverteres til klikbare links
+- Generering af **indholdsfortegnelse**
+- **Ankerlinks** på overskrifter
+
+## Anvendelsesområder
+
+- Skrivning af projektdokumentation og eksport af en poleret PDF til interessenter
+- Oprettelse af tekniske rapporter med kodeeksempler og Mermaid-arkitekturdiagrammer
+- Konvertering af en GitHub README til en PDF til offlinebrug eller udskrivning
+- Udarbejdelse af et forslag eller en specifikation med opgavelister og tabeller
+- Generering af et formateret handout fra forelæsningsnotater skrevet i Markdown
+
+## Tips
+
+- PDF-outputtet bruger browserens funktion til at udskrive til PDF. I Chrome kan du tilpasse margener og skalering i udskriftsdialogen, før du gemmer.
+- Mermaid-diagrammer gengives i forhåndsvisningen, men kan have brug for et øjeblik til at initialisere ved første brug.
+- Brug `Ctrl/Cmd + S` som tastaturgenvej til at eksportere uden at række ud efter knappen.
+
+## Relaterede værktøjer
+
+- [Tekst til PDF](./txt-to-pdf)
+- [Word til PDF](./word-to-pdf)
+- [JSON til PDF](./json-to-pdf)
diff --git a/docs/da/tools/merge-pdf.md b/docs/da/tools/merge-pdf.md
new file mode 100644
index 00000000..8d138da4
--- /dev/null
+++ b/docs/da/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Flet PDF
+description: Kombinér flere PDF-filer til ét dokument med omrokering via træk og slip og kontrol på sideniveau.
+---
+
+# Flet PDF
+
+Kombinér flere PDF-filer til ét dokument. Du kan flette hele filer i en bestemt rækkefølge eller skifte til Sidetilstand for detaljeret kontrol over enkelte sider fra hver uploadet PDF.
+
+## Sådan fungerer det
+
+1. Upload to eller flere PDF-filer ved at klikke på slipzonen eller trække dem ind.
+2. Vælg mellem **Filtilstand** og **Sidetilstand** med kontakten øverst.
+3. I Filtilstand kan du trække filer for at omrokere dem og eventuelt angive sideintervaller (f.eks. `1-3, 5`) for hver fil. Lad intervallet stå tomt for at medtage alle sider.
+4. I Sidetilstand kan du trække og slippe miniaturebilleder af enkelte sider for at opbygge din nøjagtige sidesekvens.
+5. Klik på **Flet PDF'er** for at kombinere alt i én fil. Den flettede PDF downloades automatisk.
+
+## Funktioner
+
+- To fletningstilstande: Filtilstand til hurtig kombination af hele filer, Sidetilstand til kontrol pr. side
+- Omrokering med træk og slip i begge tilstande med jævne animationer
+- Sideintervalsyntaks (f.eks. `1-3, 5, 8-10`) lader dig udvælge sider uden at skifte til Sidetilstand
+- Miniaturebilleder af sider, der indlæses ved behov, holder brugerfladen responsiv, selv med store dokumenter
+- Ingen grænse for antallet af filer eller samlet sideantal
+- Bevarer den oprindelige PDF-kvalitet uden genkodning
+
+## Indstillinger
+
+| Indstilling | Beskrivelse |
+| ---------------- | --------------------------------------------------------------------------------------------------------- |
+| **Filtilstand** | Flet hele filer i en brugerdefineret rækkefølge, med valgfrie sideintervalfiltre pr. fil |
+| **Sidetilstand** | Visuelt gitter med alle sider fra alle filer: træk miniaturebilleder for at opbygge din nøjagtige sekvens |
+| **Sidefelt** | Tekstfelt pr. fil, der accepterer intervaller som `1-3, 5` for kun at medtage bestemte sider |
+
+## Anvendelsesområder
+
+- Kombinering af separate kapitel-PDF'er til én bog eller rapport
+- Sammenfletning af et følgebrev og et CV til ét ansøgningsdokument
+- Hentning af bestemte sider fra flere kildedokumenter til en samlet fil
+- Samling af scannede kvitteringer eller fakturaer i én arkiv-PDF
+- Oprettelse af et præsentationshandout fra slides på tværs af flere præsentationer
+
+## Tips
+
+- Brug Sidetilstand, når du skal flette sider fra forskellige filer ind mellem hinanden i stedet for at føje én fil efter en anden.
+- Du kan tilføje flere filer efter den første upload med knappen **Tilføj flere filer**, uden at miste din nuværende opstilling.
+- Sideintervaller starter ved 1, så `1` henviser til den første side i den pågældende fil.
+
+## Relaterede værktøjer
+
+- [Opdel PDF](./split-pdf)
+- [Duplikér og organisér](./organize-pdf)
+- [Alternér og miks sider](./alternate-merge)
+- [Slet sider](./delete-pages)
diff --git a/docs/da/tools/mobi-to-pdf.md b/docs/da/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..cbb4d479
--- /dev/null
+++ b/docs/da/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI til PDF
+description: Konvertér MOBI-ebogsfiler til PDF direkte i din browser. Gratis, privat, ingen filuploads.
+---
+
+# MOBI til PDF
+
+Konvertér Amazon Kindle MOBI-ebøger til PDF-dokumenter. MOBI-filer er knyttet til Kindle-enheder og -apps, hvilket gør dem svære at læse andre steder. Ved at konvertere til PDF får du en bærbar version, som du kan åbne på enhver enhed eller udskrive.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Bemærkninger |
+| :----- | :---------- | :------------------------------ |
+| MOBI | `.mobi` | Kindle-ebogsformat (Mobipocket) |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip en eller flere MOBI-filer.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurv-ikonet, eller brug **Tilføj flere filer** for at tilføje flere ebøger.
+3. Klik på **Konvertér til PDF**. PyMuPDF-motoren fortolker MOBI-strukturen og gengiver hver side som PDF-indhold.
+4. En enkelt fil downloades som PDF. Når du konverterer flere filer, får du et ZIP-arkiv med navnet `mobi-converted.zip`.
+
+## Indstillinger
+
+Der er ikke brug for yderligere indstillinger. Konverteringen bevarer tekstindhold, formatering og indlejrede billeder fra den oprindelige MOBI-fil.
+
+## Anvendelsesområder
+
+- Læsning af indhold købt på Kindle på en e-læser uden Kindle, som kun understøtter PDF
+- Udskrivning af kapitler fra en ebog til offlinestudie eller annotering
+- Arkivering af dit personlige ebogsbibliotek i et universelt format
+- Deling af uddrag med en person, der ikke har Kindle-appen installeret
+
+## Tips
+
+- DRM-beskyttede MOBI-filer kan ikke konverteres. Værktøjet virker kun med DRM-frie MOBI-filer.
+- Store ebøger med mange indlejrede billeder kan tage et par sekunder længere at behandle, da alt sker i browseren.
+
+## Relaterede værktøjer
+
+- [EPUB til PDF](./epub-to-pdf)
+- [FB2 til PDF](./fb2-to-pdf)
+- [CBZ til PDF](./cbz-to-pdf)
diff --git a/docs/da/tools/n-up-pdf.md b/docs/da/tools/n-up-pdf.md
new file mode 100644
index 00000000..7fc5d1b9
--- /dev/null
+++ b/docs/da/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-Up PDF
+description: Arrangér flere PDF-sider på ét ark i et gitterlayout til kompakt udskrivning.
+---
+
+# N-Up PDF
+
+Placér flere sider på ét ark i et gitterarrangement. Det reducerer antallet af udskrevne sider ved at samle 2, 4, 6, 8, 9 eller 16 sider pr. ark. Værktøjet håndterer skalering, placering og valgfri konfiguration af sidestørrelse.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Vælg antallet af sider pr. ark ("N"-værdien): 2, 4, 6, 8, 9 eller 16.
+3. Vælg outputsidens størrelse (standard er A4) og orientering.
+4. Konfigurér eventuelt afstand, kantfarve og baggrundsfarve.
+5. Klik på behandlingsknappen. Værktøjet skalerer hver side og lægger dem i fliser på nye ark.
+
+## Funktioner
+
+- Gitterlayouts: 2-up, 4-up, 6-up, 8-up, 9-up og 16-up
+- Konfigurerbar outputsidestørrelse og orientering
+- Valgfri afstand mellem de placerede sider
+- Indstillinger for baggrunds- og kantfarve
+- Bevarer de oprindelige siders højde-bredde-forhold under skalering
+
+## Indstillinger
+
+| Indstilling | Beskrivelse |
+| ------------------ | -------------------------------------------------------------- |
+| **Sider pr. ark** | Antal oprindelige sider på hver outputside (2, 4, 6, 8, 9, 16) |
+| **Sidestørrelse** | Outputarkets størrelse (A4, Letter, Legal osv.) |
+| **Orientering** | Stående eller liggende for outputarket |
+| **Afstand** | Mellemrum i punkter mellem de placerede sider |
+| **Baggrundsfarve** | Fyldfarve til outputarkets baggrund |
+| **Kantfarve** | Farve til kanter omkring hver placeret side |
+
+## Anvendelsesområder
+
+- Udskrivning af handouts med 4 slides pr. side for at spare papir
+- Oprettelse af studieark med flere referencesider på ét ark
+- Produktion af kompakte dokumentarkiver til opbevaring
+- Generering af miniatureoversigtsark af et langt dokument
+
+## Tips
+
+- Liggende orientering fungerer ofte bedre til 2-up-layouts, mens stående normalt er bedst til 4-up og derover.
+- Større afstand forbedrer læsbarheden, men reducerer det tilgængelige areal til hver placeret side.
+- For den omvendte handling (opdeling af én side i flere) se [Posterisér PDF](./posterize-pdf).
+
+## Relaterede værktøjer
+
+- [Posterisér PDF](./posterize-pdf)
+- [PDF-hæfte](./pdf-booklet)
+- [Kombinér til én side](./combine-single-page)
diff --git a/docs/da/tools/ocr-pdf.md b/docs/da/tools/ocr-pdf.md
new file mode 100644
index 00000000..0f1eb770
--- /dev/null
+++ b/docs/da/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Gør scannede PDF'er søgbare og kopierbare med Tesseract OCR med understøttelse af flere sprog og tegnfiltrering.
+---
+
+# OCR PDF
+
+Omdan scannede dokumenter til søgbare, kopierbare PDF'er. Værktøjet bruger Tesseract OCR til at genkende tekst i billeder og lægger et usynligt tekstlag oven på de oprindelige sider, så det visuelle udseende bevares, mens indholdet bliver fuldt søgbart.
+
+## Sådan fungerer det
+
+1. Upload en scannet PDF eller en billedbaseret PDF-fil.
+2. Vælg et eller flere sprog, der findes i dokumentet, i den søgbare sprogliste.
+3. Juster eventuelt avancerede indstillinger (opløsning, binarisering, whitelist).
+4. Klik på **Start OCR**, og følg fremdriften i statuslinjen i realtid.
+5. Når det er færdigt, kan du gennemgå den udtrukne tekst og derefter downloade den søgbare PDF eller en almindelig `.txt`-fil.
+
+## Funktioner
+
+- OCR på flere sprog med en søgbar sprogvælger
+- Usynligt tekstlag bevarer dokumentets oprindelige udseende
+- Statuslinje og logoutput i realtid under behandlingen
+- Download resultater som søgbar PDF eller almindelig tekstfil
+- Kopiér udtrukket tekst direkte til udklipsholderen
+- Tre opløsningsniveauer til at afveje hastighed mod nøjagtighed
+
+## Indstillinger
+
+| Indstilling | Værdier | Standard | Formål |
+| --------------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------- |
+| **Opløsning** | Standard (192 DPI), Høj (288 DPI), Ultra (384 DPI) | Høj | Højere opløsning forbedrer nøjagtigheden på lille tekst, men tager længere tid |
+| **Binarisér billede** | Til / Fra | Fra | Forbedrer kontrasten for rene scanninger ved at konvertere til sort og hvid |
+| **Forudindstilling for tegn-whitelist** | Ingen, Alfanumerisk, Tal + valuta, Kun bogstaver, Kun tal, Faktura, Formularer, Brugerdefineret | Ingen | Begrænser genkendte tegn for at forbedre nøjagtigheden for bestemte dokumenttyper |
+| **Tegn-whitelist** | Fri tekst | Tom | Manuelt tegnsæt, når forudindstillingen er sat til Brugerdefineret |
+
+## Anvendelsesområder
+
+- Gør scannede kontrakter og fakturaer søgbare, så du kan bruge Ctrl+F i dem
+- Udtrækning af tekst fra fotograferede dokumenter eller gamle papirarkiver
+- Behandling af kvitteringer med forudindstillingen Faktura for nøjagtigt at fange beløb og datoer
+- Oprettelse af tilgængelige PDF'er fra scanninger, der kun består af billeder, til compliancekrav
+- Batchudtrækning af tekstindhold fra scannede bøger eller manualer
+
+## Tips
+
+- Vælg flere sprog, hvis dit dokument indeholder tekst på blandede sprog (f.eks. engelske overskrifter med japansk brødtekst).
+- Brug binariseringsindstillingen til dokumenter med falmet tekst eller lav kontrast. Den kan forbedre genkendelsesnøjagtigheden markant.
+- Forudindstillingerne Faktura og Formularer reducerer falske positiver kraftigt på strukturerede dokumenter ved at ignorere irrelevante tegnformer.
+
+## Relaterede værktøjer
+
+- [Udtræk PDF-tabeller](./extract-tables)
+- [Flet PDF](./merge-pdf)
+- [Komprimer PDF](./compress-pdf)
diff --git a/docs/da/tools/odg-to-pdf.md b/docs/da/tools/odg-to-pdf.md
new file mode 100644
index 00000000..8a9c1b20
--- /dev/null
+++ b/docs/da/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG til PDF
+description: Konvertér LibreOffice Draw-filer (ODG) til PDF i din browser. Gratis, ingen upload, fuldt privat.
+---
+
+# ODG til PDF
+
+Konvertér OpenDocument Graphics-filer til PDF. ODG er det oprindelige format for LibreOffice Draw og bruges til diagrammer, rutediagrammer og vektorillustrationer. Ved at konvertere til PDF bliver disse tegninger nemme at dele, udskrive og indlejre i andre dokumenter.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Bemærkninger |
+| :-------------------- | :---------- | :---------------------------------------- |
+| OpenDocument Graphics | `.odg` | LibreOffice Draw- / OpenOffice Draw-filer |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine ODG-filer. Flere filer kan tilføjes på én gang.
+2. Gennemgå fillisten. Fjern enkelte poster med papirkurv-ikonet, eller klik på **Tilføj flere filer** for at tilføje flere tegninger.
+3. Klik på **Konvertér til PDF**. En LibreOffice-baseret motor indlæses i browseren og konverterer hver ODG-fil, så vektorgrafik, former og tekst bevares.
+4. Én fil downloades direkte som PDF. Flere filer giver et ZIP-arkiv med navnet `odg-to-pdf.zip`.
+
+## Indstillinger
+
+Der kræves ingen yderligere indstillinger. Konverteringen bevarer de oprindelige sidemål, former, konnektorer og tekstbokse fra ODG-kilden.
+
+## Anvendelsesområder
+
+- Deling af LibreOffice Draw-diagrammer med kunder, der ikke har LibreOffice installeret
+- Udskrivning af rutediagrammer og netværksdiagrammer oprettet i Draw
+- Medtagelse af ODG-illustrationer i en rapport eller præsentation som indlejrede PDF'er
+- Arkivering af tekniske tegninger i et format, der forbliver læsbart i årtier
+
+## Tips
+
+- Vektorelementer forbliver vektorer i PDF-outputtet, så resultatet skalerer rent til enhver udskriftsstørrelse.
+- LibreOffice-motoren bruger et øjeblik på at initialisere ved første brug. Konverteringer i samme session derefter går hurtigere.
+
+## Relaterede værktøjer
+
+- [ODS til PDF](./ods-to-pdf)
+- [ODP til PDF](./odp-to-pdf)
+- [VSD til PDF](./vsd-to-pdf)
diff --git a/docs/da/tools/odp-to-pdf.md b/docs/da/tools/odp-to-pdf.md
new file mode 100644
index 00000000..5d08aa63
--- /dev/null
+++ b/docs/da/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP til PDF
+description: Konvertér LibreOffice Impress-præsentationer (ODP) til PDF i din browser. Gratis, privat, ingen upload.
+---
+
+# ODP til PDF
+
+Konvertér OpenDocument Presentation-filer til PDF. ODP er det oprindelige format for LibreOffice Impress og en standardeksport fra Google Slides. Når præsentationer bliver til PDF'er, kan alle se dem uden præsentationssoftware, og slides udskrives rent.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Bemærkninger |
+| :------------------------ | :---------- | :------------------------------------------ |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / Google Slides-eksport |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine ODP-filer. Du kan vælge flere præsentationer på én gang.
+2. Gennemgå fillisten. Fjern poster med papirkurv-ikonet, eller brug **Tilføj flere filer** for at tilføje flere præsentationer.
+3. Klik på **Konvertér til PDF**. Den LibreOffice-baserede motor behandler hver præsentation og producerer en PDF, hvor hvert slide bliver til en side.
+4. En enkelt fil downloades som PDF. Flere filer leveres i et ZIP-arkiv med navnet `odp-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen indstillinger at konfigurere. Hvert slide gengives i sine oprindelige mål, så tekst, billeder, former og slidebaggrunde bevares.
+
+## Anvendelsesområder
+
+- Udlevering af en præsentation til et publikum som handout-PDF
+- Deling af Google Slides-eksporter med personer, der foretrækker PDF frem for ODP
+- Arkivering af konferenceindlæg og forelæsninger i et skrivebeskyttet format
+- Udskrivning af slideshows til workshops på stedet
+
+## Tips
+
+- Slideovergange og animationer er rent visuelle funktioner, der ikke overføres til PDF, men alt statisk indhold gengives korrekt.
+- Talenoter medtages ikke i PDF-outputtet. Hvis du har brug for noter, skal du eksportere dem separat fra din præsentationssoftware.
+- Ligesom de andre LibreOffice-baserede værktøjer indlæses motoren ved første brug og forbliver cachet i sessionen.
+
+## Relaterede værktøjer
+
+- [ODG til PDF](./odg-to-pdf)
+- [ODS til PDF](./ods-to-pdf)
+- [PUB til PDF](./pub-to-pdf)
diff --git a/docs/da/tools/ods-to-pdf.md b/docs/da/tools/ods-to-pdf.md
new file mode 100644
index 00000000..235f2613
--- /dev/null
+++ b/docs/da/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS til PDF
+description: Konvertér LibreOffice Calc-regneark (ODS) til PDF i din browser. Gratis, privat, uden tilmelding.
+---
+
+# ODS til PDF
+
+Konvertér OpenDocument Spreadsheet-filer til PDF. ODS er det oprindelige format i LibreOffice Calc og en almindelig eksport fra Google Sheets. Værktøjet gengiver dine regnearksdata, formatering og diagrammer som en PDF med sideinddeling, som du kan udskrive eller dele.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----------------------- | :---------- | :--------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | LibreOffice Calc / Google Sheets-eksport |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine ODS-filer. Flere filer understøttes.
+2. Gennemgå fillisten. Brug papirkurvsikonet til at fjerne filer, eller klik på **Tilføj flere filer** for at udvide batchen.
+3. Klik på **Konvertér til PDF**. LibreOffice-baseret motor indlæses i browseren og gengiver hvert regneark som PDF-sider.
+4. Et enkelt regneark downloades som en PDF. Flere filer pakkes i `ods-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen konfiguration er nødvendig. Konverteren bruger regnearkets eksisterende udskriftslayout, cellformatering og kolonnebredder i PDF-outputtet.
+
+## Anvendelser
+
+- Dele et budget eller en rapport fra LibreOffice Calc med en, der kun accepterer PDF-filer
+- Udskrive en Google Sheets-eksport, der blev downloadet som ODS
+- Arkivere økonomiske optegnelser i et format, der ikke kan redigeres
+- Indsende ODS-baserede formularer eller timesedler som dokumenter med fast layout
+
+## Tips
+
+- Hvis dit regneark har flere ark, medtages alle ark i PDF-outputtet.
+- Meget brede regneark kan fordele sig over flere PDF-sider vandret. Overvej at justere kolonnebredderne i kildefilen før konvertering, hvis layoutet er vigtigt.
+- LibreOffice-motoren initialiseres ved første brug. Efterfølgende konverteringer i samme session går hurtigere.
+
+## Relaterede værktøjer
+
+- [ODG til PDF](./odg-to-pdf)
+- [ODP til PDF](./odp-to-pdf)
+- [XML til PDF](./xml-to-pdf)
diff --git a/docs/da/tools/odt-to-pdf.md b/docs/da/tools/odt-to-pdf.md
new file mode 100644
index 00000000..c42ec8ee
--- /dev/null
+++ b/docs/da/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT til PDF
+description: Konvertér OpenDocument Text-filer (ODT) til PDF i din browser med en LibreOffice-drevet motor.
+---
+
+# ODT til PDF
+
+Konvertér OpenDocument Text-filer til PDF. ODT er det oprindelige format i LibreOffice Writer, Apache OpenOffice og andre open source-tekstbehandlingsprogrammer. Værktøjet bruger en browserbaseret LibreOffice-motor til at lave præcise konverteringer, der bevarer formatering, tabeller, billeder og typografier.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :---------------- | :----------- |
+| OpenDocument Text | `.odt` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip en eller flere ODT-filer.
+2. Gennemgå fillisten. Tilføj flere filer, eller fjern uønskede.
+3. Klik på **Konvertér til PDF**. LibreOffice-motoren initialiseres (en statusindikator viser indlæsningen), og derefter konverteres hver fil.
+4. En enkelt fil downloades direkte som PDF. Flere filer pakkes i `odt-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere konfiguration. Konverteringen bevarer dokumentets oprindelige formatering så præcist som muligt.
+
+## Output
+
+| Antal inputfiler | Output |
+| :--------------- | :------------------------------------------------- |
+| 1 fil | Enkelt PDF-download (f.eks. `document.pdf`) |
+| 2+ filer | ZIP-arkiv (`odt-converted.zip`) med én PDF pr. fil |
+
+## Anvendelser
+
+- Konvertere LibreOffice Writer-dokumenter til PDF, så de kan deles med Microsoft Office-brugere
+- Lave udskriftsklare PDF-filer af akademiske artikler skrevet i OpenDocument-format
+- Batchkonvertere en mappe med ODT-skabeloner til PDF-filer til distribution
+- Generere PDF-filer fra ODT-filer oprettet af automatiske dokumentgenereringssystemer
+
+## Tips
+
+- LibreOffice-motoren indlæses ved første brug og gemmes i cachen til efterfølgende konverteringer. Den første indlæsning tager nogle sekunder, derefter går konverteringerne hurtigt.
+- Komplekse dokumenter med indlejrede OLE-objekter eller usædvanlige skrifttyper kan gengives en smule anderledes end i LibreOffice på computeren. Test med en prøve, før du batchkonverterer.
+- Til Word-dokumenter (`.doc`, `.docx`) skal du bruge værktøjet [Word til PDF](./word-to-pdf), som også bruger LibreOffice-motoren, men accepterer Microsoft-formater direkte.
+
+## Relaterede værktøjer
+
+- [Word til PDF](./word-to-pdf)
+- [RTF til PDF](./rtf-to-pdf)
+- [Tekst til PDF](./txt-to-pdf)
diff --git a/docs/da/tools/organize-pdf.md b/docs/da/tools/organize-pdf.md
new file mode 100644
index 00000000..b95201cf
--- /dev/null
+++ b/docs/da/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplikér og organisér
+description: Omarranger, duplikér og slet PDF-sider med træk og slip-miniaturer og brugerdefineret siderækkefølge.
+---
+
+# Duplikér og organisér
+
+Omarranger, duplikér og fjern sider i en PDF med en visuel træk og slip-grænseflade. Hver side vises som en miniature, som du kan flytte, kopiere eller slette, før du gemmer resultatet som en ny fil.
+
+## Sådan fungerer det
+
+1. Upload en enkelt PDF-fil.
+2. Værktøjet gengiver et miniaturegitter med alle sider.
+3. Træk miniaturer for at ændre rækkefølgen, klik på den grønne duplikeringsknap for at kopiere en side, eller klik på den røde sletteknap for at fjerne en.
+4. Du kan også skrive en brugerdefineret siderækkefølge i tekstfeltet (f.eks. `3, 1, 2, 4`) og klikke på **Anvend** for at omarrangere alle sider på én gang.
+5. Klik på procesknappen for at bygge og downloade den omorganiserede PDF.
+
+## Funktioner
+
+- Omarrangering af sider med træk og slip og animerede overgange
+- Duplikerings- og sletteknapper for hver side
+- Indtastning af brugerdefineret siderækkefølge til præcis omarrangering
+- Sidetalsetiketter, der opdateres automatisk efter hver ændring
+- Forhindrer sletning af den sidste resterende side
+
+## Anvendelser
+
+- Flytte en forkert placeret side til den rigtige position i en rapport
+- Duplikere en formularside, så du har flere blanke kopier i én fil
+- Fjerne kladde- eller pladsholdersider, før et dokument distribueres
+- Vende eller blande siderækkefølgen som forberedelse til udskrivning
+- Bygge en brugerdefineret sidesekvens uden at flette separate filer igen
+
+## Tips
+
+- Feltet til brugerdefineret rækkefølge forventer kommaseparerede oprindelige sidetal. Det skal indeholde hver side præcis én gang, uden udeladelser eller dubletter.
+- Når du har duplikeret en side, refererer begge kopier til det samme oprindelige sideindeks. Du kan omarrangere hver kopi uafhængigt.
+- Til masseoperationer på tværs af flere filer eller mere avancerede arbejdsgange kan du i stedet bruge [PDF Multi-værktøj](./pdf-multi-tool).
+
+## Relaterede værktøjer
+
+- [Flet PDF](./merge-pdf)
+- [Slet sider](./delete-pages)
+- [PDF Multi-værktøj](./pdf-multi-tool)
+- [Vend sider](./reverse-pages)
diff --git a/docs/da/tools/page-dimensions.md b/docs/da/tools/page-dimensions.md
new file mode 100644
index 00000000..d9c56dc2
--- /dev/null
+++ b/docs/da/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Sidestørrelser
+description: Analysér PDF-sidestørrelser, orienteringer, billedformater og rotation. Find dokumenter med blandede størrelser, og eksportér data til CSV.
+---
+
+# Sidestørrelser
+
+Et diagnosticeringsværktøj, der læser hver side i din PDF og rapporterer dens præcise mål, orientering, standardstørrelsesnavn, billedformat, areal og rotation. Nyttigt til at opdage sider i blandede størrelser før udskrivning eller til at dokumentere egenskaberne for en PDF, du har modtaget.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Analysen starter automatisk, så der er ingen knap at trykke på.
+2. Et oversigtspanel viser det samlede sideantal, antallet af unikke sidestørrelser, og om dokumentet har blandede størrelser.
+3. Gennemse den fulde resultattabel med detaljer for hver side.
+4. Skift visningsenhed mellem punkter, tommer, millimeter eller pixel.
+5. Klik på **Eksportér til CSV** for at gemme dataene.
+
+## Rapporterede felter
+
+| Kolonne | Beskrivelse |
+| ----------------- | ------------------------------------------------------ |
+| Side nr. | Fortløbende sidetal |
+| Mål | Bredde x højde i den valgte enhed |
+| Standardstørrelse | Matchet navn (A4, Letter osv.) eller "Brugerdefineret" |
+| Orientering | Stående eller liggende |
+| Billedformat | Forholdet mellem bredde og højde som decimaltal |
+| Areal | Sidens areal i den valgte enhed i anden |
+| Rotation | Sidens rotation i grader |
+
+## Funktioner
+
+- Automatisk genkendelse af standardpapirstørrelser (A3, A4, A5, Letter, Legal, Tabloid og flere)
+- Advarsel om blandede størrelser med en oversigt over, hvilke størrelser der forekommer, og hvor mange sider der bruger hver
+- Enhedsomregning mellem punkter, tommer, millimeter og pixel (ved 96 PPI)
+- CSV-eksport til brug i regneark eller dokumentationssystemer
+
+## Anvendelser
+
+- Kontrollere, at alle sider er A4, før et dokument sendes til et trykkeri
+- Finde ud af, hvorfor en flettet PDF udskrives med uventede margener på bestemte sider
+- Dokumentere sidelayoutet i et stort PDF-arkiv til metadataoptegnelser
+- Finde roterede sider, der skal rettes
+
+## Tips
+
+- Hvis oversigten viser "Blandede størrelser", kan du bruge værktøjet Ret sidestørrelse til at standardisere før udskrivning.
+- Rotationsfeltet hjælper med at finde sider, der vises korrekt, men har en rotationsattribut forskellig fra nul, hvilket kan give problemer i nogle arbejdsgange.
+
+## Relaterede værktøjer
+
+- [Ret sidestørrelse](./fix-page-size): standardisér sider, når du har fundet blandede størrelser
+- [Komprimer PDF](./compress-pdf): optimér PDF'en, når sideproblemerne er rettet
+- [Roter PDF](./rotate-pdf): ret roterede sider
diff --git a/docs/da/tools/page-numbers.md b/docs/da/tools/page-numbers.md
new file mode 100644
index 00000000..27950e01
--- /dev/null
+++ b/docs/da/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Sidetal
+description: Tilføj tilpassede sidetal på en valgfri position på dine PDF-sider med konfigurerbar skrifttype, størrelse og farve.
+---
+
+# Sidetal
+
+Tilføj synlige sidetal på hver side i din PDF. Du vælger position, format, skriftstørrelse og farve, og værktøjet klarer resten.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Konfigurér indstillingerne for sidetal i det indstillingspanel, der vises.
+3. Klik på **Tilføj sidetal** for at behandle.
+4. Den nummererede PDF downloades automatisk.
+
+## Indstillinger
+
+- **Position**: Vælg, hvor sidetallene vises: nederst i midten, nederst til venstre, nederst til højre, øverst i midten, øverst til venstre eller øverst til højre.
+- **Format**: Vælg mellem enkel nummerering (1, 2, 3...) eller formatet "side X af Y" (1 / 5, 2 / 5...).
+- **Skriftstørrelse**: Angiv størrelsen på sidetallets tekst. Standard er 12.
+- **Farve**: Vælg en vilkårlig farve til sidetallets tekst med farvevælgeren.
+
+## Funktioner
+
+- Seks placeringsmuligheder, der dækker alle hjørner og midterpositioner
+- To nummereringsformater: enkel fortløbende eller "side X af Y"
+- Tilpasselig skriftstørrelse fra 6 til 72 punkter
+- Fuld farvevælger til tekstfarven
+- Automatisk margenhåndtering, der holder tallene inden for sikre områder uanset sidestørrelse
+
+## Anvendelser
+
+- Forberede dokumenter til udskrivning, der har brug for synlige sidehenvisninger
+- Tilføje sidetal til en flettet PDF lavet af flere kildefiler
+- Nummerere præsentationsudleveringer før distribution
+- Tilføje fortløbende nummerering til juridiske dokumenter eller kontrakter
+
+## Tips
+
+- Formatet "side X af Y" er nyttigt til dokumenter, hvor læserne skal kende den samlede længde, f.eks. tilbud eller rapporter.
+- Hvis du har brug for forskellige nummereringsstile til forskellige afsnit (f.eks. romertal i forsiden), kan du i stedet bruge værktøjet [Tilføj sideetiketter](./add-page-labels).
+
+## Relaterede værktøjer
+
+- [Tilføj sideetiketter](./add-page-labels)
+- [Bates-nummerering](./bates-numbering)
+- [Sidehoved og sidefod](./header-footer)
diff --git a/docs/da/tools/pdf-booklet.md b/docs/da/tools/pdf-booklet.md
new file mode 100644
index 00000000..87339942
--- /dev/null
+++ b/docs/da/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: PDF-hæfte
+description: Omarranger PDF-sider i hæfterækkefølge (rygstikning) til foldning og hæftning til et fysisk hæfte.
+---
+
+# PDF-hæfte
+
+Omarranger siderne i en PDF til hæfteimposition. Når den udskrives dobbeltsidet og foldes på midten, står siderne i den rigtige læserækkefølge. Det er det layout, der bruges til hæfter med rygstikning og zines.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Konfigurér hæfteindstillinger: outputsidestørrelse og orientering.
+3. Klik på **Generér forhåndsvisning** for at se, hvordan siderne placeres på hvert ark.
+4. Gennemgå forhåndsvisningen, som viser hvert fysiske ark med tildelingen af for- og bagside.
+5. Klik på **Download** for at gemme den hæfteimponerede PDF.
+
+## Funktioner
+
+- Automatisk omarrangering af sider til rygstikning
+- Konfigurerbar outputsidestørrelse
+- Visuel forhåndsvisning af hæftelayoutet før download
+- Håndterer ulige sideantal ved at indsætte blanke sider, hvor det er nødvendigt
+- Skalerer kildesiderne, så de passer til hæftearkets størrelse
+
+## Anvendelser
+
+- Lave udskrivbare hæfter eller zines af en almindelig PDF
+- Forberede konferenceprogrammer eller begivenhedsguider til udskrivning internt
+- Lave foldede lykønskningskort eller små kataloger
+- Producere små digtsamlinger til håndindbinding
+
+## Tips
+
+- Din kilde-PDF bør helst have et sideantal, der er deleligt med 4, for et rent hæfte. Hvis det ikke er tilfældet, tilføjes der automatisk blanke sider for at fylde det sidste ark ud.
+- Udskriv outputtet dobbeltsidet med printerens indstilling "vend på kort led", fold derefter alle ark sammen, og hæft ved ryggen.
+- Hvis du blot vil placere flere sider på ét ark uden hæfterækkefølge, kan du i stedet bruge [N-Up PDF](./n-up-pdf).
+
+## Relaterede værktøjer
+
+- [N-Up PDF](./n-up-pdf)
+- [Roter PDF](./rotate-pdf)
+- [Tilføj tom side](./add-blank-page)
diff --git a/docs/da/tools/pdf-layers.md b/docs/da/tools/pdf-layers.md
new file mode 100644
index 00000000..18daacac
--- /dev/null
+++ b/docs/da/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: PDF OCG
+description: Vis, skift, tilføj og slet OCG-lag (Optional Content Group) i et PDF-dokument.
+---
+
+# PDF OCG-lag
+
+Administrér de valgfrie indholdsgrupper (OCG), som ofte kaldes "lag", i en PDF. Du kan skifte lags synlighed, tilføje nye lag (også indlejrede underlag), slette lag og gemme den ændrede PDF.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Klik på procesknappen for at indlæse dokumentet med PyMuPDF-motoren.
+3. Værktøjet viser alle eksisterende lag med deres synlighedstilstand, låsestatus og indlejringshierarki.
+4. Slå afkrydsningsfelter til eller fra for at vise eller skjule lag. Låste lag kan ikke skiftes.
+5. Tilføj nye lag på øverste niveau ved at skrive et navn og klikke på tilføjknappen, eller tilføj underlag under et eksisterende overordnet lag.
+6. Slet lag, du ikke længere har brug for.
+7. Klik på **Gem** for at downloade den ændrede PDF med dine lagændringer anvendt.
+
+## Funktioner
+
+- Viser lagets hierarki med korrekt indrykning for indlejrede lag
+- Slå lags synlighed til eller fra
+- Indikator for låste lag forhindrer utilsigtede ændringer
+- Tilføj lag på øverste niveau eller underlag med brugerdefinerede navne
+- Slet enkelte lag
+- Gemmer alle ændringer i en ny PDF-fil
+
+## Anvendelser
+
+- Skifte synligheden af markeringslag i arkitekt- eller ingeniørtegninger
+- Tilføje nye annotationslag til et designdokument med flere lag
+- Fjerne forældede lag fra en skabelon, før den distribueres
+- Undersøge, hvilke lag der findes i en kompleks PDF modtaget fra en tredjepart
+
+## Tips
+
+- Hvis PDF'en ikke har nogen lag, viser værktøjet en tom tilstand med en opfordring til at tilføje et. Ikke alle PDF-filer bruger OCG-lag. De er mest almindelige i CAD-eksporter og designfiler.
+- Underlag er visuelt indrykket under deres overordnede lag. Du kan indlejre lag i vilkårlig dybde.
+- Låste lag vises med et låseikon, og deres afkrydsningsfelter er deaktiverede. Disse låse er sat af PDF'ens skaber.
+
+## Relaterede værktøjer
+
+- [Vis metadata](./view-metadata)
+- [Redigér metadata](./edit-metadata)
+- [Duplikér og organisér](./organize-pdf)
diff --git a/docs/da/tools/pdf-multi-tool.md b/docs/da/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..7ca120aa
--- /dev/null
+++ b/docs/da/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: PDF-multiværktøj
+description: En alt-i-ét sideorganisator til at flette, opdele, rotere, duplikere, slette, omarrangere og ændre størrelse på PDF-sider.
+---
+
+# PDF-multiværktøj
+
+Et samlet arbejdsområde til alle sideoperationer i PDF. Upload en eller flere PDF-filer, og arbejd med alle deres sider i ét visuelt gitter. Roter, omarranger, duplikér og slet sider, indsæt PDF-filer, billeder og tomme sider, omnummerér, ændr størrelse og opdel resultatet, uden at forlade værktøjet.
+
+## Sådan fungerer det
+
+1. Klik på **Vælg filer**, eller træk filer ind på uploadområdet. Flere filer understøttes, og de flettes i den rækkefølge, de uploades.
+2. Alle sider vises i et rullbart gitter med miniaturer.
+3. Klik på en side for at vælge den. Brug Shift-klik til at vælge et interval og Cmd/Ctrl-klik til at tilføje eller fjerne enkelte sider fra valget.
+4. Brug organisatorens værktøjslinje, eller højreklik på en side for at få sidehandlingerne frem.
+5. Klik på **Eksportér PDF** for at downloade det endelige resultat.
+
+## Funktioner
+
+- **Flet**: Upload flere PDF-filer og billeder, og de kombineres automatisk til ét dokument
+- **Omarranger**: Træk og slip sider for at ændre rækkefølgen, eller vend rækkefølgen i hele dokumentet om
+- **Roter**: Roter valgte sider til venstre eller højre i trin på 90 grader
+- **Duplikér**: Kopiér valgte sider, og placér kopierne lige efter dem
+- **Slet**: Fjern de valgte sider
+- **Indsæt**: Tilføj sider fra en anden PDF eller et billede, en tom side, sider fra udklipsholderen, eller flet siderne fra en anden PDF skiftevis ind mellem de nuværende
+- **Erstat**: Udskift en side med den første side i en anden PDF
+- **Klip, kopiér og indsæt**: Flyt eller kopiér sider inden for dokumentet
+- **Udtræk**: Download de valgte sider som en PDF eller som billeder
+- **Sidetal**: Angiv sideetiketter som i, ii, iii eller A-1, A-2 for et sideinterval
+- **Sidestørrelse**: Tilpas sider til et standardpapirformat eller en brugerdefineret størrelse
+- **Opdel**: Del dokumentet efter sideintervaller, ulige og lige sider, hver side, bogmærker, hver N. side eller filstørrelse
+- **Fortryd / Gentag**: Alle sideoperationer kan fortrydes og gentages
+- Reparerer automatisk beskadigede PDF-filer, før de indlæses
+
+## Tastaturgenveje
+
+| Handling | Genvej |
+| ------------------------- | ----------------------------- |
+| Roter til højre / venstre | R / Shift+R |
+| Vælg alle | Cmd/Ctrl+A |
+| Klip, kopiér, indsæt | Cmd/Ctrl+X, C, V |
+| Duplikér | Cmd/Ctrl+D |
+| Slet | Delete eller Backspace |
+| Fortryd / Gentag | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Flyt valget | Piletaster, Home, End |
+
+## Anvendelser
+
+- Bygge et brugerdefineret dokument af sider fra flere kilde-PDF'er
+- Rydde op i et scannet dokument ved at slette blanke sider, rotere sidelæns scanninger og omarrangere afsnit
+- Opdele en stor PDF ved kapitelgrænser ved hjælp af dens bogmærker
+- Hurtig redigering på sideniveau uden behov for en fuld PDF-editor
+
+## Tips
+
+- Historikken for fortryd/gentag registrerer hver sideoperation. Brug den frit, for du kan ikke ved et uheld ødelægge dit arbejde.
+- Brug **Insert > From File**, eller slip flere PDF-filer eller billeder på sidegitteret når som helst for at tilføje dem til dokumentet.
+- Til simple flet- eller opdelingsopgaver kan de dedikerede værktøjer [Flet PDF](./merge-pdf) eller [Opdel PDF](./split-pdf) være hurtigere. Multiværktøjet er bedst, når du har brug for flere operationer i én session.
+
+## Relaterede værktøjer
+
+- [Flet PDF](./merge-pdf)
+- [Opdel PDF](./split-pdf)
+- [Duplikér og organisér](./organize-pdf)
+- [Roter PDF](./rotate-pdf)
diff --git a/docs/da/tools/pdf-to-bmp.md b/docs/da/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..645a70b4
--- /dev/null
+++ b/docs/da/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF til BMP
+description: Konvertér PDF-sider til ukomprimerede BMP-billeder. Nyttigt til ældre systemer og udskriftsarbejdsgange, der kræver bitmap som input.
+---
+
+# PDF til BMP
+
+Konverterer hver side i en PDF til et BMP-billede (bitmap). BMP er et ukomprimeret format, så outputtet er pixelperfekt uden kvalitetstab, men filerne er store.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Klik på **Konvertér** for at behandle filen.
+3. En enkelt `.bmp`-fil eller et ZIP-arkiv downloades automatisk.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Siderne gengives i en fast skala på 2x, hvilket giver billeder på cirka dobbelt så store som PDF'ens oprindelige sidemål.
+
+## Outputformat
+
+- **Enkelt side**: `filename.bmp`
+- **Flere sider**: `filename_bmps.zip` med `page_1.bmp`, `page_2.bmp` osv.
+
+## Anvendelser
+
+- Sende PDF-sider ind i ældre systemer eller hardware, der kun accepterer BMP som input.
+- Forberede ukomprimerede billeder til bestemte udskriftsarbejdsgange.
+- Bruge bitmap-output som input til billedbehandlingsværktøjer, der kræver rå pixeldata.
+
+## Tips
+
+- BMP-filer er meget store, fordi de gemmer rå pixeldata uden komprimering. Til de fleste formål giver [PDF til PNG](./pdf-to-png) tabsfri kvalitet med langt mindre filer.
+- Hvis dit målsystem accepterer PNG eller TIFF, bør du foretrække de formater for at spare diskplads.
+
+## Relaterede værktøjer
+
+- [PDF til PNG](./pdf-to-png)
+- [PDF til TIFF](./pdf-to-tiff)
+- [PDF til JPG](./pdf-to-jpg)
diff --git a/docs/da/tools/pdf-to-cbz.md b/docs/da/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..067ee1a1
--- /dev/null
+++ b/docs/da/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF til CBZ
+description: Konvertér en PDF til en CBZ-fil (Comic Book Archive) til tegneserielæsere som Komga, Kavita, CDisplayEx og Calibre.
+---
+
+# PDF til CBZ
+
+Konverterer en PDF til en CBZ-fil (Comic Book ZIP), standardformatet til digitale tegneserier og manga. Hver PDF-side bliver til et billede i arkivet. Værktøjet genererer metadata i tre formater for maksimal kompatibilitet: ComicInfo.xml, metadata.opf og ComicBookInfo JSON.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Vælg billedformat, kvalitet, skala og valgfri metadata.
+3. Klik på **Konvertér** for at generere CBZ-filen.
+4. `.cbz`-filen downloades automatisk.
+
+## Indstillinger
+
+| Indstilling | Værdier | Standard | Beskrivelse |
+| --------------- | --------------- | -------- | ---------------------------------------------------------------------------------------- |
+| Billedformat | JPEG, PNG, WebP | JPEG | JPEG til farvetegneserier, PNG til tabsfri sort-hvid manga, WebP til bedst komprimering. |
+| Kvalitet | 50–100% | 85% | Styrer JPEG/WebP-komprimering. Skjult for PNG (altid tabsfri). |
+| Skala | 1.0x–4.0x | 2.0x | Højere skala giver skarpere billeder til skærme med høj opløsning. |
+| Gråtoner | Til/Fra | Fra | Konverterer sider til gråtoner. Reducerer filstørrelsen for sort-hvidt indhold. |
+| Manga-tilstand | Til/Fra | Fra | Sætter læseretningen til højre mod venstre i metadata. |
+| Medtag metadata | Til/Fra | Til | Indlejrer ComicInfo.xml, metadata.opf og ComicBookInfo JSON. |
+
+## Metadatafelter
+
+Når metadata er aktiveret, kan du udfylde:
+
+- **Titel**: Registreres automatisk fra PDF'ens filnavn.
+- **Serie**: Seriens navn (f.eks. "Naruto").
+- **Nummer (#)**: Udgavenummer i serien.
+- **Bind (Vol.)**: Bindnummer.
+- **Forfatter(e)**: Navn på forfatter eller skaber.
+- **Forlag**: Udgivende virksomhed.
+- **Tags / Genre**: Kommaseparerede tags (f.eks. "Action, Eventyr").
+- **Udgivelsesår**: Udgivelsesår (1900–2100).
+- **Vurdering**: Fællesskabets vurdering fra 0 til 5.
+
+## Metadatakompatibilitet
+
+Værktøjet skriver metadata i tre formater, så alle læsere kan finde dem:
+
+| Format | Placering | Understøttes af |
+| ------------------ | ----------------- | ------------------------------------------- |
+| ComicInfo.xml | Fil i ZIP-filen | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Fil i ZIP-filen | Calibre |
+| ComicBookInfo JSON | ZIP-kommentarfelt | Calibre (reserve) |
+
+## Outputformat
+
+- `filename.cbz`: Et ZIP-arkiv med nummererede sidebilleder og metadatafiler.
+
+Sidebillederne navngives med nuludfyldte tal (`01.jpg`, `02.jpg` osv.), så læserne viser dem i den rigtige rækkefølge.
+
+## Anvendelser
+
+- Konvertere manga- eller tegneserie-PDF'er til brug i tegneserielæsere.
+- Bygge et digitalt tegneseriebibliotek i Komga, Kavita eller Calibre.
+- Konvertere scannede tegneserier til et læservenligt format.
+- Dele tegneserier i et format, der bevarer læseretning og metadata.
+
+## Tips
+
+- Brug **JPEG** til farvetegneserier og **PNG** til sort-hvid manga. PNG komprimerer sort-hvidt indhold meget effektivt.
+- Aktivér **Gråtoner** til manga for at reducere filstørrelsen betydeligt.
+- Udfyld felterne **Serie** og **Nummer**, så biblioteksadministratorer (Komga, Calibre) kan organisere din samling automatisk.
+- **WebP** giver den bedste komprimering, men ældre tegneserielæsere understøtter det måske ikke.
+
+## Relaterede værktøjer
+
+- [PDF til JPG](./pdf-to-jpg)
+- [PDF til PNG](./pdf-to-png)
+- [PDF til TIFF](./pdf-to-tiff)
+- [Udtræk billeder](./extract-images)
diff --git a/docs/da/tools/pdf-to-csv.md b/docs/da/tools/pdf-to-csv.md
new file mode 100644
index 00000000..455e55fc
--- /dev/null
+++ b/docs/da/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF til CSV
+description: Udtræk tabeller fra PDF-dokumenter, og eksportér dem som én CSV-fil. Håndterer PDF-filer med flere sider med automatisk tabelgenkendelse.
+---
+
+# PDF til CSV
+
+Udtrækker tabeller fra en PDF og eksporterer dem som en CSV-fil. Værktøjet scanner hver side efter tabeldata med PyMuPDF's tabelgenkendelsesmotor og skriver derefter alle fundne rækker til ét kommasepareret output.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Klik på **Konvertér** for at starte tabeludtrækningen.
+3. Værktøjet scanner hver side og finder automatisk tabeller.
+4. En `.csv`-fil downloades med alle de udtrukne tabeldata.
+
+Tabeller fra forskellige sider adskilles af tomme rækker i outputtet. Celler med kommaer, anførselstegn eller linjeskift escapes korrekt efter RFC 4180.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Alle tabeller i dokumentet udtrækkes og kombineres i én CSV.
+
+## Outputformat
+
+- En enkelt `filename.csv`-fil med alle fundne tabeller.
+
+## Anvendelser
+
+- Hente økonomiske data fra PDF-kontoudtog eller fakturaer ind i et regneark.
+- Udtrække priser fra leverandørtilbud til sammenligning.
+- Konvertere tabulære forskningsdata fra PDF-artikler til et format, der egner sig til analyseværktøjer.
+- Migrere data fra ældre PDF-rapporter til databaser.
+
+## Tips
+
+- Hvis der ikke findes nogen tabeller, viser værktøjet meddelelsen "Ingen tabeller fundet". Det betyder typisk, at PDF'en bruger et tekstlayout, der ligner en tabel, men ikke er struktureret som en egentlig tabel.
+- Til mere kontrol over de enkelte tabeller kan du bruge [Udtræk PDF-tabeller](./extract-tables), hvor du kan vælge mellem CSV, JSON og Markdown som outputformat.
+- Hvis du har brug for dataene i Excel-format med separate ark for hver tabel, kan du bruge [PDF til Excel](./pdf-to-excel).
+
+## Relaterede værktøjer
+
+- [PDF til Excel](./pdf-to-excel)
+- [Udtræk PDF-tabeller](./extract-tables)
+- [PDF til tekst](./pdf-to-text)
diff --git a/docs/da/tools/pdf-to-excel.md b/docs/da/tools/pdf-to-excel.md
new file mode 100644
index 00000000..3698192e
--- /dev/null
+++ b/docs/da/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF til Excel
+description: Udtræk tabeller fra PDF-dokumenter til et Excel-regneark. Hver tabel får sit eget regneark med sidehenvisninger.
+---
+
+# PDF til Excel
+
+Udtrækker tabeller fra en PDF og gemmer dem som et Excel-regneark (`.xlsx`). Hver fundet tabel placeres på sit eget ark, mærket med tabelnummer og kildeside. Drevet af PyMuPDF til tabelgenkendelse og SheetJS-biblioteket til Excel-generering.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Klik på **Konvertér** for at starte tabeludtrækningen.
+3. Værktøjet scanner hver side efter tabeller og bygger derefter en Excel-projektmappe.
+4. En `.xlsx`-fil downloades med ét ark pr. tabel.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Alle fundne tabeller udtrækkes automatisk.
+
+## Outputformat
+
+- En enkelt `filename.xlsx`-fil.
+- **Én tabel**: ét ark med navnet "Table".
+- **Flere tabeller**: ark med navnene "Table 1 (Page 3)", "Table 2 (Page 5)" osv. Arknavne afkortes til 31 tegn (Excels grænse).
+
+## Anvendelser
+
+- Konvertere økonomiske PDF-rapporter til redigerbare regneark til videre analyse.
+- Udtrække lager- eller ordretabeller fra leverandørers PDF-filer.
+- Hente strukturerede data fra PDF-formularer eller kataloger ind i Excel til sortering og filtrering.
+- Arkivere tabulære PDF-data i et format, som ikke-tekniske kolleger kan arbejde med.
+
+## Tips
+
+- Hvis værktøjet melder "Ingen tabeller fundet", bruger PDF'en sandsynligvis et frit tekstlayout i stedet for strukturerede tabeller. Prøv [PDF til tekst](./pdf-to-text) for at hente det rå indhold i stedet.
+- Til et enklere fladt format kan du bruge [PDF til CSV](./pdf-to-csv). Til downloads pr. tabel i flere formater kan du bruge [Udtræk PDF-tabeller](./extract-tables).
+- Se på arknavnene for at finde ud af, hvilken side hver tabel kom fra.
+
+## Relaterede værktøjer
+
+- [PDF til CSV](./pdf-to-csv)
+- [Udtræk PDF-tabeller](./extract-tables)
+- [PDF til tekst](./pdf-to-text)
diff --git a/docs/da/tools/pdf-to-greyscale.md b/docs/da/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..817052e7
--- /dev/null
+++ b/docs/da/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF til gråtoner
+description: Konvertér en farve-PDF til en gråtoneversion (sort-hvid). Giver en ny PDF, hvor al farve er fjernet fra hver side.
+---
+
+# PDF til gråtoner
+
+Konverterer en farve-PDF til en gråtoneversion. Hver side gengives, affarves og indlejres igen som et JPEG-billede i en ny PDF. Outputtet bevarer de oprindelige sidemål.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Klik på **Konvertér** for at behandle filen.
+3. En ny `greyscale.pdf` downloades med alle sider konverteret til sort-hvid.
+
+Bag kulisserne gengives hver side i 2x skala, pixeldataene sendes gennem et gråtonefilter, kodes derefter igen som JPEG i 90 % kvalitet og placeres i et nyt PDF-dokument.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Gråtonekonverteringen bruger en standardformel for luminans, og JPEG-kvaliteten er fast på 90 %.
+
+## Outputformat
+
+- En enkelt `greyscale.pdf`-fil med alle sider som gråtone-JPEG-billeder.
+
+## Anvendelser
+
+- Forberede dokumenter til sort-hvid udskrivning for at spare på farvekassetter.
+- Opfylde indsendelseskrav til juridiske eller offentlige indberetninger, der kræver gråtoner.
+- Reducere filstørrelsen på PDF-filer med meget farve (JPEG-gråtonebilleder er mindre end farvebilleder).
+- Skabe en ensartet visuel stil på tværs af dokumenter med blandede farve- og sort-hvide sider.
+
+## Tips
+
+- Fordi hver side rasteriseres og indlejres igen som JPEG, er outputtet billedbaseret. Tekst i den oprindelige PDF kan ikke længere markeres eller søges i. Hvis du bagefter har brug for søgbar tekst, kan du køre outputtet gennem OCR-værktøjet.
+- Til mere kontrol over farvejusteringer (lysstyrke, kontrast, mætning) kan du se på værktøjet Justér farver eller gråtonenoden i [PDF Workflow-bygger](./pdf-workflow).
+
+## Relaterede værktøjer
+
+- [PDF til JPG](./pdf-to-jpg)
+- [PDF til PNG](./pdf-to-png)
+- [PDF Workflow-bygger](./pdf-workflow)
diff --git a/docs/da/tools/pdf-to-jpg.md b/docs/da/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..692a8411
--- /dev/null
+++ b/docs/da/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF til JPG
+description: Konvertér PDF-sider til JPG-billeder med justerbar kvalitet. PDF-filer med én side downloades direkte, PDF-filer med flere sider eksporteres som ZIP.
+---
+
+# PDF til JPG
+
+Konverterer hver side i en PDF til et JPG-billede. Dokumenter med én side downloades som en selvstændig `.jpg`-fil. PDF-filer med flere sider giver et ZIP-arkiv med ét JPG pr. side.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det. Værktøjet viser filnavn, filstørrelse og sideantal.
+2. Justér skyderen **Kvalitet** for at styre JPG-komprimeringen.
+3. Klik på **Konvertér** for at starte behandlingen.
+4. Resultatet downloades automatisk: ét JPG for PDF-filer med én side eller en ZIP-fil for dokumenter med flere sider.
+
+## Indstillinger
+
+- **Kvalitet**: en skyder fra 0 % til 100 % (standard 90 %). Højere værdier giver skarpere billeder med større filer. Lavere værdier komprimerer mere aggressivt.
+
+Siderne gengives internt i 2x skala, så outputopløsningen er dobbelt så stor som PDF'ens sidemål. En almindelig Letter-side giver et billede på cirka 1.224 x 1.584 pixel.
+
+## Outputformat
+
+- **Enkelt side**: `filename.jpg`
+- **Flere sider**: `filename_jpgs.zip` med `page_1.jpg`, `page_2.jpg` osv.
+
+## Anvendelser
+
+- Generere forhåndsvisningsminiaturer til et dokumenthåndteringssystem.
+- Dele en side fra en rapport i en chat eller e-mail, der ikke understøtter PDF.
+- Lave billedelementer af PDF-diagrammer eller illustrationer.
+- Arkivere scannede dokumenter som enkeltbilleder.
+
+## Tips
+
+- Til tabsfrit output kan du bruge [PDF til PNG](./pdf-to-png) i stedet.
+- En kvalitetsindstilling på 80-90 % er en god balance mellem filstørrelse og visuel troværdighed.
+- Hvis du har brug for et bestemt format pr. side, kan du overveje [PDF Workflow-bygger](./pdf-workflow), som har en outputnode til PDF til billeder.
+
+## Relaterede værktøjer
+
+- [PDF til PNG](./pdf-to-png)
+- [PDF til WebP](./pdf-to-webp)
+- [PDF til BMP](./pdf-to-bmp)
+- [PDF til TIFF](./pdf-to-tiff)
diff --git a/docs/da/tools/pdf-to-json.md b/docs/da/tools/pdf-to-json.md
new file mode 100644
index 00000000..8c5043e6
--- /dev/null
+++ b/docs/da/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF til JSON
+description: Konvertér PDF-filer til struktureret JSON-format med CPDF. Eksporterer PDF'ens interne struktur som maskinlæsbare JSON-data.
+---
+
+# PDF til JSON
+
+Konverterer en eller flere PDF-filer til JSON-format. Værktøjet bruger CPDF (Coherent PDF) til at serialisere den interne struktur i hver PDF til en maskinlæsbar JSON-repræsentation. Outputtet leveres altid som et ZIP-arkiv.
+
+## Sådan fungerer det
+
+1. Vælg en eller flere PDF-filer med filvælgeren.
+2. Klik på **Konvertér** for at starte behandlingen. Konverteringen kører i en web worker i baggrunden.
+3. Et ZIP-arkiv downloades med én JSON-fil for hver input-PDF.
+
+Statuslinjen viser fremdriften gennem konverteringen og oprettelsen af ZIP-filen.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Hver PDF konverteres til sin fulde JSON-repræsentation.
+
+## Outputformat
+
+- En `pdfs-to-json.zip`-fil med `filename.json` for hver input-PDF.
+
+JSON-outputtet repræsenterer PDF'ens interne objektstruktur, herunder sidetræer, skrifttypereferencer, metadata og indholdsstrømme.
+
+## Anvendelser
+
+- Undersøge den interne struktur i en PDF til fejlfinding eller validering.
+- Udtrække struktureret metadata og sideegenskaber programmatisk.
+- Sende PDF-strukturdata ind i brugerdefinerede behandlingspipelines.
+- Revidere PDF-dokumenter for overholdelse af krav ved at analysere deres objekttræer.
+
+## Tips
+
+- Dette værktøj udskriver den rå PDF-objektstruktur, ikke udtrukket tekstindhold. Hvis du har brug for sidetekst i JSON-format, kan du i stedet bruge [Forbered PDF til AI](./prepare-pdf-for-ai).
+- Til almindelig tekstudtrækning er [PDF til tekst](./pdf-to-text) mere ligetil.
+- Store PDF-filer med komplekse strukturer giver meget store JSON-filer.
+
+## Relaterede værktøjer
+
+- [PDF til tekst](./pdf-to-text)
+- [Forbered PDF til AI](./prepare-pdf-for-ai)
+- [Udtræk PDF-tabeller](./extract-tables)
diff --git a/docs/da/tools/pdf-to-markdown.md b/docs/da/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..44cedbbe
--- /dev/null
+++ b/docs/da/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF til Markdown
+description: Konvertér PDF-dokumenter til Markdown-format med valgfri billedudtrækning. Understøtter batchkonvertering af flere filer.
+---
+
+# PDF til Markdown
+
+Konverterer PDF-filer til Markdown-format (`.md`) og bevarer overskrifter, afsnit, lister og grundlæggende formatering. Udtrækker og medtager eventuelt indlejrede billeder. Understøtter konvertering af enkeltfiler og batchkonvertering. Drevet af PyMuPDF.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer ved at klikke på slipområdet eller trække filer hen på det.
+2. Slå eventuelt **Medtag billeder** til for at indlejre udtrukne billeder i Markdown-outputtet.
+3. Klik på **Konvertér** for at starte behandlingen.
+4. En enkelt fil downloades som `filename.md`. Flere filer giver en `markdown-files.zip`.
+
+## Indstillinger
+
+- **Medtag billeder**: når det er markeret, udtrækkes indlejrede billeder fra PDF'en og refereres i Markdown-outputtet. Når det ikke er markeret, konverteres kun tekstindholdet.
+
+## Outputformat
+
+- **Enkelt fil**: `filename.md`
+- **Flere filer**: `markdown-files.zip` med én `.md` pr. input-PDF.
+
+## Anvendelser
+
+- Konvertere PDF-dokumentation til Markdown til en statisk site-generator som VitePress, Hugo eller Jekyll.
+- Gøre PDF-forskningsartikler til redigerbar Markdown til notatapps som Obsidian.
+- Migrere ældre PDF-vidensbaser til et Git-venligt tekstformat.
+- Udtrække struktureret indhold fra PDF-e-bøger til omformatering.
+
+## Tips
+
+- Indstillingen Medtag billeder er nyttig, når PDF'en indeholder diagrammer eller figurer, der er afgørende for indholdet. Slå den fra for teksttunge dokumenter for at holde outputtet rent.
+- Komplekse layouts med sidebjælker, fodnoter eller tekst i flere kolonner kan give ufuldkommen Markdown. Gennemgå og justér outputtet efter behov.
+- Til rå tekst uden formatering kan du i stedet bruge [PDF til tekst](./pdf-to-text).
+
+## Relaterede værktøjer
+
+- [PDF til tekst](./pdf-to-text)
+- [PDF til Word](./pdf-to-word)
+- [Forbered PDF til AI](./prepare-pdf-for-ai)
diff --git a/docs/da/tools/pdf-to-pdfa.md b/docs/da/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..738f68ff
--- /dev/null
+++ b/docs/da/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF til PDF/A
+description: Konvertér almindelige PDF-filer til PDF/A-format til langtidsarkivering. Understøtter konformitetsniveauerne PDF/A-1b, PDF/A-2b og PDF/A-3b.
+---
+
+# PDF til PDF/A
+
+PDF/A er en ISO-standardiseret delmængde af PDF, der er designet til langtidsbevaring af digitale dokumenter. Dette værktøj konverterer dine almindelige PDF-filer til PDF/A-kompatible dokumenter med Ghostscript, som kører direkte i din browser.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer.
+2. Vælg en **PDF/A-version** i rullemenuen.
+3. Aktivér eventuelt **Flad PDF ud først** til komplekse filer, der ikke kan konverteres normalt.
+4. Klik på **Konvertér til PDF/A**. Flere filer giver et ZIP-arkiv.
+
+## PDF/A-versioner
+
+| Version | Begrænsninger | Bedst til |
+| ------------ | -------------------------------------------------- | ----------------------------------------------------- |
+| **PDF/A-1b** | Strengest. Ingen gennemsigtighed, ingen lag. | Maksimal kompatibilitet med ældre arkiveringssystemer |
+| **PDF/A-2b** | Tillader gennemsigtighed og JPEG2000. | Almindelig arkivering (anbefales) |
+| **PDF/A-3b** | Tillader indlejrede vedhæftninger i alle formater. | Arkivering af dokumenter med kildedatafiler |
+
+PDF/A-2b er valgt som standard og passer til langt de fleste arkiveringsbehov.
+
+## Indstillingen Flad ud først
+
+Nogle PDF-filer indeholder funktioner, der forhindrer en ren PDF/A-konvertering: usædvanlige skrifttypekodninger, komplekse gennemsigtighedsstakke eller ødelagte interne strukturer. Når du aktiverer **Flad ud først**, rasteriseres PDF'en i 300 DPI før konvertering, hvilket garanterer overholdelse af standarden, men gør teksten umulig at markere. Brug den som reserveløsning, når den almindelige konvertering giver fejl.
+
+Udfladning først kræver PyMuPDF WASM-motoren.
+
+## Anvendelser
+
+- Opfylde offentlige eller juridiske arkiveringskrav (mange jurisdiktioner kræver PDF/A til retsdokumenter)
+- Indsende dokumenter til institutionelle arkiver eller digitale biblioteker
+- Bevare forretningsoptegnelser, hvor den oprindelige software måske ikke findes om ti år
+- Forberede fakturaer til e-faktureringsstandarder, der kræver PDF/A-3b med XML-vedhæftninger
+
+## Tips
+
+- Prøv konvertering uden udfladning først. Aktivér den kun, hvis du får en fejl.
+- PDF/A indlejrer alle skrifttyper, så outputfiler er ofte større end originalerne.
+- Valider outputtet i en dedikeret PDF/A-validator, hvis din arbejdsgang kræver streng overholdelse.
+
+## Relaterede værktøjer
+
+- [Komprimer PDF](./compress-pdf): reducér filstørrelsen efter konvertering
+- [Fladgør PDF](./flatten-pdf): flad formularer ud, før du konverterer til PDF/A
+- [Fjern metadata](./remove-metadata): fjern metadata før arkivering
diff --git a/docs/da/tools/pdf-to-png.md b/docs/da/tools/pdf-to-png.md
new file mode 100644
index 00000000..87c7b98e
--- /dev/null
+++ b/docs/da/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF til PNG
+description: Konvertér PDF-sider til tabsfrie PNG-billeder med justerbar skala. Ideelt til skærmbilleder i høj kvalitet og gennemsigtige baggrunde.
+---
+
+# PDF til PNG
+
+Konverterer hver side i en PDF til et PNG-billede. PNG bruger tabsfri komprimering, så outputtet bevarer alle detaljer fra den oprindelige side. PDF-filer med én side downloades som en `.png`-fil, og PDF-filer med flere sider giver en ZIP.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Indstil skyderen **Skala** for at styre outputopløsningen.
+3. Klik på **Konvertér** for at starte behandlingen.
+4. Et enkelt PNG eller et ZIP-arkiv downloades automatisk.
+
+## Indstillinger
+
+- **Skala**: fra 1.0x til 3.0x (standard 2.0x). Ved 2.0x gengives en almindelig Letter-side i cirka 1.224 x 1.584 pixel. Højere skalaværdier giver større og skarpere billeder på bekostning af filstørrelse og behandlingstid.
+
+## Outputformat
+
+- **Enkelt side**: `filename.png`
+- **Flere sider**: `filename_pngs.zip` med `page_1.png`, `page_2.png` osv.
+
+## Anvendelser
+
+- Tage skærmbilleder af PDF-sider i høj kvalitet til præsentationer.
+- Udtrække diagrammer eller figurer, der kræver skarpe kanter og ingen komprimeringsartefakter.
+- Forberede elementer til webdesign ud fra PDF-mockups.
+- Lave tabsfrie sidebilleder til forbehandling før OCR.
+
+## Tips
+
+- PNG-filer er væsentligt større end JPG. Hvis filstørrelsen betyder mere end perfekt kvalitet, kan du bruge [PDF til JPG](./pdf-to-jpg) eller [PDF til WebP](./pdf-to-webp).
+- Ved skala 1.0x svarer outputtet til PDF'ens oprindelige opløsning. Sæt den op til 3.0x for eksport i udskriftskvalitet.
+
+## Relaterede værktøjer
+
+- [PDF til JPG](./pdf-to-jpg)
+- [PDF til WebP](./pdf-to-webp)
+- [PDF til SVG](./pdf-to-svg)
diff --git a/docs/da/tools/pdf-to-svg.md b/docs/da/tools/pdf-to-svg.md
new file mode 100644
index 00000000..ab0cf06b
--- /dev/null
+++ b/docs/da/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF til SVG
+description: Konvertér PDF-sider til skalerbar SVG-vektorgrafik. Bevarer tekst og former som vektorstier, så de kan skaleres uendeligt.
+---
+
+# PDF til SVG
+
+Konverterer hver side i en PDF til en SVG-fil (Scalable Vector Graphics). I modsætning til rasterformater bevarer SVG vektorstier, tekst og former, så outputtet kan skaleres til enhver størrelse uden pixelering. Drevet af PyMuPDF.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer ved at klikke på slipområdet eller trække filer hen på det. Du kan tilføje flere filer og administrere dem enkeltvis.
+2. Klik på **Konvertér** for at behandle alle uploadede filer.
+3. Konverteringer af én fil med én side downloades som en selvstændig `.svg`. Alt andet downloades som et ZIP-arkiv.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Hver side konverteres til SVG med PyMuPDF's indbyggede vektoreksport.
+
+## Outputformat
+
+- **Én fil, én side**: `filename.svg`
+- **Én fil, flere sider**: `filename_svg.zip` med `page_1.svg`, `page_2.svg` osv.
+- **Flere filer**: `pdf_to_svg.zip` med filer organiseret efter kildedokumentets navn.
+
+## Anvendelser
+
+- Udtrække vektordiagrammer, grafer eller illustrationer fra PDF-rapporter til brug på websider.
+- Redigere PDF-sidens indhold i en vektoreditor som Inkscape eller Illustrator.
+- Indlejre skalerbare sideforhåndsvisninger i responsive webapplikationer.
+- Udtrække logoer eller grafik fra PDF-brochurer og bevare skarpe kanter.
+
+## Tips
+
+- SVG fungerer bedst med PDF-filer, der indeholder vektorindhold. Scannede dokumenter eller billedtunge PDF-filer giver store SVG-filer med indlejrede rasterdata.
+- Til rasteroutput af billedtunge PDF-filer kan du i stedet bruge [PDF til PNG](./pdf-to-png) eller [PDF til JPG](./pdf-to-jpg).
+- Dette værktøj understøtter batchkonvertering: upload flere PDF-filer på én gang for at konvertere dem alle i én kørsel.
+
+## Relaterede værktøjer
+
+- [PDF til PNG](./pdf-to-png)
+- [PDF til JPG](./pdf-to-jpg)
+- [PDF til Markdown](./pdf-to-markdown)
diff --git a/docs/da/tools/pdf-to-text.md b/docs/da/tools/pdf-to-text.md
new file mode 100644
index 00000000..d2ae6576
--- /dev/null
+++ b/docs/da/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF til tekst
+description: Udtræk almindeligt tekstindhold fra PDF-filer. Understøtter batchudtrækning fra flere PDF-filer med output som TXT-filer.
+---
+
+# PDF til tekst
+
+Udtrækker alt tekstindhold fra PDF-filer og gemmer det som almindelige `.txt`-filer. Understøtter batchbehandling: upload flere PDF-filer, og få hver enkelts tekst udtrukket i én operation. Drevet af PyMuPDF.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer ved at klikke på slipområdet eller trække filer hen på det. Administrér din filliste med knapperne Tilføj flere og Ryd.
+2. Klik på **Udtræk** for at starte behandlingen.
+3. En enkelt fil downloades som `filename.txt`. Flere filer giver et `pdf-to-text.zip`-arkiv.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Alt tekstindhold udtrækkes fra hver side i læserækkefølge.
+
+## Outputformat
+
+- **Enkelt fil**: `filename.txt`
+- **Flere filer**: `pdf-to-text.zip` med én `.txt` pr. input-PDF.
+
+## Anvendelser
+
+- Udtrække brødtekst fra PDF-rapporter til fuldtekstsøgningsindeksering.
+- Konvertere PDF-e-bøger eller artikler til almindelig tekst til læsning på e-ink-enheder.
+- Hente tekst fra kontrakter eller juridiske dokumenter til søgeordsanalyse.
+- Fjerne formatering fra PDF-filer for at få ren tekst til databehandlingsscripts.
+- Forberede et tekstkorpus fra PDF-arkiver til naturlig sprogbehandling.
+
+## Tips
+
+- Scannede PDF-filer (kun billeder) giver tomme tekstfiler, fordi der ikke er noget tekstlag at udtrække. Kør scannede dokumenter gennem OCR først.
+- Outputtet bevarer den læserækkefølge, som PyMuPDF fortolker, og den følger generelt venstre mod højre og top mod bund. Layouts med flere kolonner kan give blandet tekst.
+- Til struktureret output med overskrifter og formatering kan du prøve [PDF til Markdown](./pdf-to-markdown). Til AI-klar struktureret JSON kan du bruge [Forbered PDF til AI](./prepare-pdf-for-ai).
+
+## Relaterede værktøjer
+
+- [PDF til Markdown](./pdf-to-markdown)
+- [Forbered PDF til AI](./prepare-pdf-for-ai)
+- [PDF til Word](./pdf-to-word)
diff --git a/docs/da/tools/pdf-to-tiff.md b/docs/da/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..10d67fb2
--- /dev/null
+++ b/docs/da/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF til TIFF
+description: Konvertér PDF-sider til TIFF-billeder, som ofte bruges i udskrivning, fax og arkivering. Falder tilbage til PNG, hvis kodningen mislykkes.
+---
+
+# PDF til TIFF
+
+Konverterer hver side i en PDF til et TIFF-billede. TIFF er standardformatet til trykproduktion, faxsystemer og dokumentarkivering. Værktøjet bruger PackBits-komprimering til TIFF-kodning og falder tilbage til PNG, hvis en side ikke kan kodes.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Klik på **Konvertér** for at behandle filen.
+3. En enkelt TIFF-fil eller et ZIP-arkiv downloades automatisk.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Siderne gengives i en fast skala på 2x.
+
+## Outputformat
+
+- **Enkelt side**: `filename.tiff`
+- **Flere sider**: `filename_tiffs.zip` med `page_1.tiff`, `page_2.tiff` osv.
+
+Hvis TIFF-kodningen mislykkes for en bestemt side (på grund af komprimeringsproblemer), gemmes den side som en `.png`-fil i stedet. ZIP-filen indeholder i så fald en blanding af TIFF- og PNG-filer.
+
+## Anvendelser
+
+- Indsende dokumenter til offentlige myndigheder eller juridiske systemer, der kræver TIFF-format.
+- Forberede sider til faxtransmission via digitale faxtjenester.
+- Arkivere scannede dokumenter i et bredt understøttet tabsfrit format.
+- Sende sider ind i dokumenthåndteringssystemer i virksomheder.
+
+## Tips
+
+- TIFF-filer er store. Hvis du kun har brug for tabsfri kvalitet til web eller skærm, er [PDF til PNG](./pdf-to-png) et bedre valg.
+- Tjek ZIP-indholdet, hvis nogle sider krævede PNG-reserven. Du vil måske konvertere dem separat.
+
+## Relaterede værktøjer
+
+- [PDF til PNG](./pdf-to-png)
+- [PDF til BMP](./pdf-to-bmp)
+- [PDF til JPG](./pdf-to-jpg)
diff --git a/docs/da/tools/pdf-to-webp.md b/docs/da/tools/pdf-to-webp.md
new file mode 100644
index 00000000..58411694
--- /dev/null
+++ b/docs/da/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF til WebP
+description: Konvertér PDF-sider til WebP-billeder med justerbar kvalitet. Mindre filer end JPG ved sammenlignelig visuel kvalitet.
+---
+
+# PDF til WebP
+
+Konverterer hver side i en PDF til et WebP-billede. WebP giver typisk filer, der er 25-35 % mindre end JPG ved samme oplevede kvalitet, hvilket gør det til et stærkt valg til web.
+
+## Sådan fungerer det
+
+1. Upload en PDF ved at klikke på slipområdet eller trække en fil hen på det.
+2. Justér skyderen **Kvalitet**.
+3. Klik på **Konvertér** for at behandle filen.
+4. En enkelt `.webp`-fil eller et ZIP-arkiv downloades automatisk.
+
+## Indstillinger
+
+- **Kvalitet**: en skyder fra 0 % til 100 % (standard 85 %). Styrer niveauet for den tabsgivende komprimering. Højere værdier bevarer flere detaljer.
+
+Siderne gengives internt i 2x skala, hvilket giver billeder på cirka dobbelt så store som PDF'ens oprindelige mål.
+
+## Outputformat
+
+- **Enkelt side**: `filename.webp`
+- **Flere sider**: `filename_webps.zip` med `page_1.webp`, `page_2.webp` osv.
+
+## Anvendelser
+
+- Forberede sideforhåndsvisninger til websteder, hvor båndbredde har betydning.
+- Generere lette billedversioner af flyers eller brochurer til sociale medier.
+- Batchkonvertere dokumenter med flere sider til et weboptimeret billedsæt.
+
+## Tips
+
+- WebP understøttes i alle moderne browsere. Til kompatibilitet med ældre systemer kan du falde tilbage til [PDF til JPG](./pdf-to-jpg).
+- En kvalitet på 80-85 % kan som regel ikke skelnes fra originalen på skærmen, mens filstørrelserne holdes små.
+
+## Relaterede værktøjer
+
+- [PDF til JPG](./pdf-to-jpg)
+- [PDF til PNG](./pdf-to-png)
+- [PDF til BMP](./pdf-to-bmp)
diff --git a/docs/da/tools/pdf-to-word.md b/docs/da/tools/pdf-to-word.md
new file mode 100644
index 00000000..8f363513
--- /dev/null
+++ b/docs/da/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF til Word
+description: Konvertér PDF-filer til redigerbare Word-dokumenter (DOCX). Understøtter batchkonvertering af flere PDF-filer på én gang.
+---
+
+# PDF til Word
+
+Konverterer PDF-filer til redigerbare Word-dokumenter (`.docx`). Værktøjet bruger PyMuPDF til at genopbygge dokumentets indhold og bevarer tekst, grundlæggende formatering og layout. Understøtter konvertering af enkeltfiler og batchkonvertering.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer ved at klikke på slipområdet eller trække filer hen på det. Du kan tilføje flere filer eller fjerne enkelte fra listen.
+2. Klik på **Konvertér** for at starte behandlingen.
+3. En enkelt fil downloades som `filename.docx`. Flere filer pakkes i `converted-documents.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Hver PDF konverteres til DOCX med PyMuPDF's indbyggede konverteringsmotor.
+
+## Outputformat
+
+- **Enkelt fil**: `filename.docx`
+- **Flere filer**: `converted-documents.zip` med én `.docx` pr. input-PDF.
+
+## Anvendelser
+
+- Redigere tekst i en PDF, som du har modtaget, og som skal ændres.
+- Konvertere arkiverede PDF-rapporter til et format, som kolleger kan redigere i Microsoft Word eller Google Docs.
+- Hente indhold fra PDF-kontrakter eller tilbud ind i Word til gennemgang med ændringsmarkering.
+- Migrere ældre PDF-dokumentation til et redigerbart format.
+
+## Tips
+
+- Komplekse layouts med tekst i flere kolonner, indlejrede formularer eller meget grafik konverteres muligvis ikke perfekt. Gennemgå outputtet, og justér formateringen i dit tekstbehandlingsprogram.
+- Scannede PDF-filer (kun billeder) giver tomme eller minimale DOCX-filer. Kør dem gennem OCR først for at tilføje et tekstlag.
+- Batchtilstand er effektiv til at konvertere hele mapper med PDF-filer: upload dem alle på én gang.
+
+## Relaterede værktøjer
+
+- [PDF til tekst](./pdf-to-text)
+- [PDF til Markdown](./pdf-to-markdown)
+- [PDF Workflow-bygger](./pdf-workflow)
diff --git a/docs/da/tools/pdf-to-zip.md b/docs/da/tools/pdf-to-zip.md
new file mode 100644
index 00000000..68be708c
--- /dev/null
+++ b/docs/da/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF’er til ZIP
+description: Pak flere PDF-filer i ét ZIP-arkiv, så de er nemme at dele og gemme.
+---
+
+# PDF’er til ZIP
+
+Saml flere PDF-filer i ét ZIP-arkiv. Det er et ligetil pakkeværktøj uden konvertering, komprimering eller ændring af selve PDF-filerne.
+
+## Sådan fungerer det
+
+1. Upload flere PDF-filer via slipområdet.
+2. Gennemgå fillisten. Fjern dem, du ikke vil have med.
+3. Klik på procesknappen.
+4. Et ZIP-arkiv med alle de uploadede PDF-filer downloades med det samme.
+
+## Funktioner
+
+- Accepterer et vilkårligt antal PDF-filer
+- Fjernelse af enkelte filer, før arkivet oprettes
+- Bevarer de oprindelige filnavne i ZIP-filen
+- Ingen ændring af PDF-indholdet: filerne pakkes som de er
+- Viser filnavn og størrelse for hver uploadet PDF
+
+## Anvendelser
+
+- Samle en række fakturaer eller kvitteringer som e-mailvedhæftning
+- Pakke projektleverancer (flere PDF-rapporter) til overdragelse
+- Lave én samlet download til en samling formularer eller skabeloner
+- Arkivere en række dokumenter i én komprimeret fil
+
+## Tips
+
+- ZIP-filen bruger de oprindelige PDF-filnavne. Hvis du har filer med samme navn, skal du omdøbe dem, før du uploader, for at undgå konflikter.
+- Dette værktøj komprimerer ikke selve PDF-filerne. Hvis du vil reducere filstørrelsen, skal du først køre dem gennem Komprimer PDF og derefter pakke dem med dette værktøj.
+
+## Relaterede værktøjer
+
+- [Flet PDF](./merge-pdf)
+- [Opdel PDF](./split-pdf)
+- [Komprimer PDF](./compress-pdf)
diff --git a/docs/da/tools/pdf-workflow.md b/docs/da/tools/pdf-workflow.md
new file mode 100644
index 00000000..cc170c75
--- /dev/null
+++ b/docs/da/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: PDF-workflowbygger
+description: Byg brugerdefinerede PDF-behandlingspipelines visuelt ved at forbinde noder på et lærred. Kæd operationer som flet, komprimer, vandmærke og eksportér sammen.
+---
+
+# PDF-workflowbygger
+
+Workflow-byggeren lader dig kæde flere PDF-operationer sammen i én automatiseret pipeline. I stedet for at køre værktøjer et ad gangen sammensætter du en visuel graf af noder (input, behandling, output) og kører det hele med et enkelt klik. Dine filer forlader aldrig browseren.
+
+## Sådan fungerer det
+
+Grænsefladen er delt i tre paneler: en **nodeværktøjskasse** til venstre, **lærredet** i midten og et **indstillingspanel** til højre, som vises, når du vælger en node.
+
+1. **Tilføj noder** ved at klikke på dem i sidebjælken til venstre, eller træk dem direkte ind på lærredet. Brug søgefeltet øverst i værktøjskassen til at filtrere efter navn.
+2. **Forbind noder** ved at trække fra en outputsokkel (nederst på en node) til en inputsokkel (øverst på en anden node). Forbindelser løber oppefra og ned.
+3. **Konfigurér indstillinger** ved at klikke på en node for at åbne dens indstillingspanel til højre. Hver nodetype har sine egne indstillinger (sideintervaller, kvalitetsskydere, adgangskoder osv.).
+4. **Kør workflowet** ved at klikke på knappen **Kør** på værktøjslinjen. Motoren udfører noderne i topologisk rækkefølge og behandler dem én efter én. En statuslinje nederst følger fremdriften.
+5. **Download resultater**: den afsluttende Download-node gemmer den endelige PDF (eller ZIP, hvis der oprettes flere filer).
+
+## Nodekategorier
+
+Noderne er organiseret i seks kategorier, som hver har sin farve på lærredet:
+
+- **Input** (blå): PDF-input, Billedinput, Word/Excel/PowerPoint til PDF og mere end 15 andre formatkonvertere, der leverer filer ind i pipelinen.
+- **Redigér og annotér** (indigo): Beskær, Gråtoner, Invertér farver, Vandmærke, Sidetal, Sidehoved og sidefod, Scannereffekt, Justér farver, Baggrundsfarve, Fjern tomme sider, Fjern annotationer.
+- **Organisér og administrér** (violet): Flet, Opdel, Udtræk sider, Roter, Slet sider, Vend, Tilføj tom side, Opdel sider, N-Up, Ret sidestørrelse, Kombinér til én side, Hæfte, Posterisér, Redigér metadata, Indholdsfortegnelse, OCR.
+- **Optimér og reparér** (rav): Komprimer, Rasterisér, Lineariser, Ret skæve sider, PDF til PDF/A, Skrifttype til kontur, Reparér.
+- **Beskyt PDF** (rosa): Kryptér, Dekryptér, Rens, Flatten, Digital signatur, Sortlæg.
+- **Output** (blågrøn): Download (registrerer automatisk enkelt PDF eller ZIP), PDF til billeder, PDF til tekst, PDF til DOCX, PDF til XLSX, PDF til CSV, PDF til SVG, PDF til Markdown, Udtræk billeder.
+
+## Gemme og indlæse workflows
+
+Værktøjslinjen har fire muligheder for at bevare dit arbejde:
+
+- **Gem**: gemmer det aktuelle workflow som en navngivet skabelon i din browsers lokale lager. Du kan gemme flere skabeloner.
+- **Indlæs**: åbner en dialog med alle gemte skabeloner. Klik på Indlæs for at gendanne en, eller slet skabeloner, du ikke længere har brug for.
+- **Eksportér**: downloader workflowet som en `.json`-fil, så du kan dele eller sikkerhedskopiere det.
+- **Importér**: indlæser en `.json`-workflowfil fra disken og gendanner alle noder, positioner og forbindelser.
+
+Skabeloner bevares mellem sessioner i det lokale lager. Eksporterede JSON-filer kan flyttes mellem browsere og computere.
+
+## Udførelsesmodel
+
+Motoren bygger en afhængighedsgraf ud fra dine forbindelser og udfører noderne i topologisk rækkefølge. Hvis en node fejler, stopper udførelsen, og den fejlende node markeres rød. Nogle regler at huske:
+
+- Hvert workflow har brug for mindst én **Input**-node og én **Output**-node.
+- Motoren registrerer cirkulære afhængigheder og blokerer udførelsen med en fejl.
+- Noden **Kryptér** skal være det sidste behandlingstrin før outputnoden. Hvis den placeres tidligere, udløses en valideringsadvarsel, fordi efterfølgende noder ikke kan arbejde med krypterede data.
+- Adgangskodebeskyttede PDF-filer beder om en adgangskode under udførelsen.
+- Input med flere PDF-filer understøttes: Flet-noden kan kombinere dem, eller batchbehandlende noder behandler hver PDF enkeltvis.
+
+## Soklertyper
+
+Forbindelser bruger typede sokler for at forhindre ugyldige koblinger:
+
+- **PDF** (indigo): et enkelt PDF-dokument.
+- **MultiPDF** (rav): flere PDF-dokumenter samlet.
+- **Image** (grøn): en billedblob.
+
+## Indstillinger
+
+Hver node har sin egen konfiguration, som du kan nå via indstillingspanelet til højre. Almindelige eksempler:
+
+- **Sideintervaller** på noderne Opdel, Udtræk sider og Slet sider
+- **Kvalitetsskydere** på billedkonverterings-outputnoder
+- **Adgangskodefelter** på noderne Kryptér og Dekryptér
+- **Tekstfelter** til Vandmærke, Sidehoved og sidefod og Redigér metadata
+- **Rotationsvinkler** på noden Roter
+- **Komprimeringsniveau** på noden Komprimer
+- **Valg af OCR-sprog** på OCR-noden
+
+## Anvendelser
+
+- **Fakturabehandlingspipeline**: PDF-input -> OCR -> Udtræk PDF-tabeller -> Download som CSV.
+- **Standardisering af rapporter**: Word til PDF -> Ret sidestørrelse -> Tilføj sidetal -> Vandmærke -> Komprimer -> Download.
+- **Forberedelse til arkivering**: PDF-input -> Reparér -> Flatten -> Rens -> PDF til PDF/A -> Download.
+- **Batchudtrækning af billeder**: PDF-input (flere filer) -> Udtræk billeder -> Download ZIP.
+- **Udskriftsklare hæfter**: PDF-input -> Hæfte -> Beskær -> Komprimer -> Download.
+- **Sikker distribution**: PDF-input -> Sortlæg -> Fjern annotationer -> Kryptér -> Download.
+
+## Tips
+
+- Brug **Delete** eller **Backspace** til at fjerne den valgte node fra lærredet.
+- Klik på knappen **X** i en nodes statuslinje for at slette den direkte.
+- Panorér lærredet ved at klikke og trække på tomt område. Markøren skifter til et gribeikon under panorering.
+- På mobil kan du bruge knappen **+** på værktøjslinjen til at vise eller skjule nodeværktøjskassen.
+- Hvis dit workflow giver flere outputfiler, samler Download-noden dem automatisk i en ZIP.
+- Start enkelt: byg og test en pipeline med to noder, før du tilføjer kompleksitet.
+
+## Relaterede værktøjer
+
+- [PDF til tekst](./pdf-to-text)
+- [PDF til Excel](./pdf-to-excel)
+- [Udtræk billeder](./extract-images)
+- [PDF til Markdown](./pdf-to-markdown)
diff --git a/docs/da/tools/png-to-pdf.md b/docs/da/tools/png-to-pdf.md
new file mode 100644
index 00000000..7884d65a
--- /dev/null
+++ b/docs/da/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG til PDF
+description: Konvertér et eller flere PNG-billeder til et PDF-dokument med justerbar kvalitet, helt i din browser.
+---
+
+# PNG til PDF
+
+Konvertér PNG-billeder til PDF, mens deres fulde opløsning bevares. Hver PNG bliver til sin egen side, tilpasset det oprindelige billedes mål. Gennemsigtighed håndteres automatisk.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :----- | :----------- |
+| PNG | `.png` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip PNG-filer. Du kan vælge flere på én gang.
+2. Administrér fillisten: fjern uønskede filer, eller tilføj flere.
+3. Vælg et niveau for **PDF-kvalitet** i rullemenuen.
+4. Klik på **Konvertér til PDF**. Outputtet downloades som `from_jpgs.pdf`.
+
+Værktøjet bruger pdf-lib til at indlejre hvert billede direkte. Hvis en PNG ikke kan indlejres direkte (f.eks. på grund af en usædvanlig farveprofil), falder det tilbage til at gengive den via et canvas som JPEG.
+
+## Indstillinger
+
+**PDF-kvalitet** styrer den komprimering, der anvendes før indlejring:
+
+- **Høj kvalitet**: minimal komprimering, største filstørrelse.
+- **Mellem kvalitet** (standard): god balance mellem størrelse og klarhed.
+- **Lav kvalitet**: maksimal komprimering, mindste output.
+
+## Anvendelser
+
+- Konvertere skærmbilleder til en PDF med flere sider til fejlrapporter eller dokumentation
+- Pakke eksporter af UI-design i én fil til gennemgang
+- Gøre diagrameksporter (draw.io, Excalidraw) til en delbar PDF
+- Samle en række diagrambilleder til en rapport
+
+## Tips
+
+- PNG-filer med gennemsigtighed får en hvid baggrund i PDF'en. Hvis du har brug for en anden baggrund, skal du redigere billederne på forhånd.
+- Til skærmbilleder og diagrammer med skarpe kanter og tekst undgår Høj kvalitet JPEG-komprimeringsartefakter. Mellem eller Lav kan konvertere til JPEG internt.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [JPG til PDF](./jpg-to-pdf)
+- [SVG til PDF](./svg-to-pdf)
diff --git a/docs/da/tools/posterize-pdf.md b/docs/da/tools/posterize-pdf.md
new file mode 100644
index 00000000..902bbf07
--- /dev/null
+++ b/docs/da/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Posterisér PDF
+description: Opdel PDF-sider i et gitter af mindre sider til storformatudskrivning på flere ark.
+---
+
+# Posterisér PDF
+
+Del hver side i en PDF op i et gitter af mindre delsider. Det er værktøjet, når du vil udskrive én side over flere ark papir, som du derefter sætter sammen til en stor plakat eller et banner.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Angiv antal **rækker** og **kolonner** for at definere gitteret (f.eks. 2 rækker x 2 kolonner deler hver side i 4 delsider).
+3. Angiv eventuelt et sideinterval for at begrænse, hvilke sider der posteriseres.
+4. Forhåndsvisningen viser et gitter over den aktuelle side, så du kan se skæringerne.
+5. Gå mellem siderne for at kontrollere gitteret på andre sider.
+6. Klik på knappen til at behandle. Hver gittercelle bliver til sin egen side i den resulterende PDF.
+
+## Funktioner
+
+- Konfigurerbart antal rækker og kolonner for fleksible gitterstørrelser
+- Live-forhåndsvisning med gitter, der viser præcis, hvor siderne deles
+- Sidefilter, så kun bestemte sider posteriseres
+- Side-for-side-navigation i forhåndsvisningen
+- Cachede sideøjebliksbilleder for hurtig navigation i forhåndsvisningen
+- Stiplede røde gitterlinjer markerer tydeligt skæregrænserne
+
+## Indstillinger
+
+| Indstilling | Beskrivelse |
+| ---------------- | ------------------------------------------------- |
+| **Rækker** | Antal vandrette inddelinger (standard: 1) |
+| **Kolonner** | Antal lodrette inddelinger (standard: 1) |
+| **Sideinterval** | Hvilke sider der posteriseres (tomt = alle sider) |
+
+## Anvendelsesmuligheder
+
+- Udskrive en PDF i plakatstørrelse over standard A4- eller Letter-ark, der samles på en væg
+- Lave store bannere ud fra et enkeltsidet PDF-design
+- Opdele overdimensionerede tekniske tegninger i udskrivbare felter
+- Lave storformatudskrifter uden adgang til en bredformatprinter
+
+## Tips
+
+- Et 2x2-gitter gør én side til 4 sider. Et 3x3-gitter gør én side til 9. Planlæg gitteret ud fra, hvor stort det samlede resultat skal være.
+- Overlejringen i forhåndsvisningen hjælper dig med at kontrollere, at vigtigt indhold ikke havner på en skærelinje. Juster rækker/kolonner efter behov.
+- Til den omvendte handling (at samle flere sider på ét ark) brug [N-Up PDF](./n-up-pdf).
+
+## Relaterede værktøjer
+
+- [N-Up PDF](./n-up-pdf)
+- [Opdel sider](./divide-pages)
+- [Opdel PDF](./split-pdf)
diff --git a/docs/da/tools/powerpoint-to-pdf.md b/docs/da/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..3d46beef
--- /dev/null
+++ b/docs/da/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint til PDF
+description: Konvertér PowerPoint-præsentationer (PPT, PPTX) og ODP-filer til PDF med bevaret slideformatering.
+---
+
+# PowerPoint til PDF
+
+Konvertér præsentationsfiler til PDF. Hvert slide bliver til en side i det resulterende dokument, hvor tekst, billeder, figurer og overgange gengives via en LibreOffice-motor i browseren. Understøtter både moderne og ældre PowerPoint-formater samt OpenDocument Presentation-formatet.
+
+## Understøttede formater
+
+| Format | Filendelser |
+| :------------------------ | :---------- |
+| PowerPoint (moderne) | `.pptx` |
+| PowerPoint (ældre) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine præsentationsfiler.
+2. Gennemgå fillisten. Tilføj flere eller fjern filer efter behov.
+3. Klik på **Konvertér til PDF**. LibreOffice-motoren indlæses ved første brug og konverterer derefter hver fil.
+4. En enkelt fil downloades direkte som PDF. Flere filer pakkes i `powerpoint-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere indstillinger. Slides gengives i deres oprindelige dimensioner.
+
+## Resultat
+
+| Antal filer | Resultat |
+| :---------- | :--------------------------------------------------------------- |
+| 1 fil | Enkelt PDF-download (oprindeligt filnavn med filendelsen `.pdf`) |
+| 2+ filer | ZIP-arkiv (`powerpoint-converted.zip`) med én PDF pr. fil |
+
+## Anvendelsesmuligheder
+
+- Konvertere en præsentation til PDF, før den deles med et publikum, der måske ikke har PowerPoint
+- Lave en udskrivbar håndoutversion af et slideshow til en konference eller workshop
+- Arkivere præsentationer i et format, der ser ens ud på alle enheder
+- Batchkonvertere et bibliotek af ODP-præsentationer fra LibreOffice Impress til PDF
+- Lave en PDF-version af en pitch deck til e-mailvedhæftning
+
+## Tips
+
+- Slideanimationer og overgange kan ikke repræsenteres i PDF. Hvert slide gemmes som en statisk side.
+- Indlejrede videoer vises ikke i resultatet. Erstat dem om nødvendigt med et skærmbillede eller en pladsholder.
+- Talernoter er ikke med i standard-PDF-eksporten. Har du brug for noter, så eksportér først fra PowerPoints egen visning "Udskriv noter".
+- LibreOffice-motoren caches efter første indlæsning, så en anden præsentation i samme session konverteres meget hurtigere.
+
+## Relaterede værktøjer
+
+- [Word til PDF](./word-to-pdf)
+- [Excel til PDF](./excel-to-pdf)
+- [Billeder til PDF](./image-to-pdf)
diff --git a/docs/da/tools/prepare-pdf-for-ai.md b/docs/da/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..9d0a1e73
--- /dev/null
+++ b/docs/da/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Forbered PDF til AI
+description: Udtræk PDF-indhold til struktureret JSON optimeret til LLM'er og AI-pipelines som LlamaIndex. Understøtter batchbehandling.
+---
+
+# Forbered PDF til AI
+
+Udtrækker indhold fra PDF-filer og strukturerer det som JSON optimeret til indlæsning i store sprogmodeller (LLM'er) og AI-frameworks som LlamaIndex. Indholdet på hver side udtrækkes og organiseres i et struktureret format, der er klar til RAG-pipelines, chatbots eller semantiske søgesystemer.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF'er ved at klikke på dropzonen eller trække filer hen på den.
+2. Klik på **Udtræk** for at starte behandlingen.
+3. En enkelt fil downloades som `filename_llm.json`. Flere filer giver et `pdf-for-ai.zip`-arkiv.
+
+Værktøjet bruger PyMuPDF's LlamaIndex-integration til at udtrække indhold på sideniveau med metadata, så resultatet direkte kan indlæses i AI-frameworks.
+
+## Indstillinger
+
+Dette værktøj har ingen konfigurerbare indstillinger. Alle sider udtrækkes med fuld tekst og metadata.
+
+## Outputformat
+
+- **Enkelt fil**: `filename_llm.json`
+- **Flere filer**: `pdf-for-ai.zip` med én `_llm.json` pr. input-PDF.
+
+JSON-outputtet følger LlamaIndex' dokumentskema med tekstindhold og metadatafelter pr. side.
+
+## Anvendelsesmuligheder
+
+- Forberede PDF-dokumenter til retrieval-augmented generation (RAG)-pipelines.
+- Bygge en søgbar vidensbase af PDF-arkiver til en AI-chatbot.
+- Føre PDF-rapporter ind i LLM-baserede analyseforløb.
+- Forbehandle forskningsartikler til semantisk søgning og spørgsmål-svar-systemer.
+- Oprette strukturerede træningsdata fra PDF-samlinger.
+
+## Tips
+
+- Til ren tekstudtrækning uden AI-specifik formatering brug [PDF til tekst](./pdf-to-text).
+- Til Markdown-output, der bevarer overskrifter og struktur, brug [PDF til Markdown](./pdf-to-markdown).
+- Scannede PDF'er giver tomt eller minimalt output. Kør dem gennem OCR først for at tilføje et tekstlag før udtrækning.
+
+## Relaterede værktøjer
+
+- [PDF til tekst](./pdf-to-text)
+- [PDF til Markdown](./pdf-to-markdown)
+- [PDF til JSON](./pdf-to-json)
diff --git a/docs/da/tools/protect-pdf.md b/docs/da/tools/protect-pdf.md
new file mode 100644
index 00000000..84728e6f
--- /dev/null
+++ b/docs/da/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Beskyt PDF
+description: Beskyt PDF-filer med adgangskode og 256-bit AES-kryptering. Angiv bruger- og ejeradgangskoder med konfigurerbare brugsbegrænsninger.
+---
+
+# Beskyt PDF
+
+Lås din PDF bag en adgangskode, så kun autoriserede personer kan åbne den. BentoPDF bruger 256-bit AES-kryptering, den samme standard som banker og offentlige myndigheder bruger, og den udføres helt i din browser via QPDF.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Angiv en **brugeradgangskode** (påkrævet). Det er den adgangskode, folk skal bruge for at åbne filen.
+3. Angiv eventuelt en **ejeradgangskode**. Når den er sat, får PDF'en brugsbegrænsninger, der forhindrer udskrivning, redigering, kopiering og annotering.
+4. Klik på **Kryptér PDF**.
+5. Download den krypterede fil.
+
+## Adgangskodetyper
+
+### Brugeradgangskode (påkrævet)
+
+Brugeradgangskoden er det, modtagerne skriver for at åbne PDF'en. Uden den er dokumentet helt utilgængeligt. Enhver krypteret PDF skal have en.
+
+### Ejeradgangskode (valgfri)
+
+Ejeradgangskoden styrer, hvad en autoriseret bruger kan gøre, efter filen er åbnet. Når du angiver en særskilt ejeradgangskode, anvender BentoPDF automatisk det strengeste sæt begrænsninger:
+
+- Ændring deaktiveret
+- Udtrækning/kopiering deaktiveret
+- Udskrivning deaktiveret
+- Annotering deaktiveret
+- Formularudfyldning deaktiveret
+- Dokumentsammensætning deaktiveret
+
+Hvis du lader ejeradgangskoden stå tom, er PDF'en krypteret (den kræver stadig brugeradgangskoden for at blive åbnet), men har ingen brugsbegrænsninger, når den først er åbnet.
+
+## Krypteringsdetaljer
+
+- **Algoritme**: AES-256 (256-bit Advanced Encryption Standard)
+- **Nøglelængde**: 256 bit
+- **Standard**: PDF 2.0-kryptering (QPDF-implementering)
+
+AES-256 kan med nutidens teknologi ikke brute-force'es i praksis. Sikkerheden i din krypterede PDF afhænger helt af adgangskodens styrke.
+
+## Anvendelsesmuligheder
+
+- Beskytte fortrolige regnskabsrapporter, før de sendes på e-mail
+- Sikre juridiske dokumenter, der deles med modpartens advokat
+- Tilføje en adgangskode til patientjournaler eller personhenførbare oplysninger
+- Distribuere betalt indhold (e-bøger, rapporter) med adgangskontrol
+- Overholde databeskyttelsespolitikker, der kræver kryptering af lagrede data
+
+## Tips
+
+- Brug en stærk, unik adgangskode. En adgangssætning på 12+ tegn med store og små bogstaver, tal og symboler er ideel.
+- Del adgangskoden via en anden kanal (telefon, sms), aldrig i den samme e-mail som PDF'en.
+- Hvis du kun vil begrænse handlinger (ingen udskrivning, ingen kopiering) uden at kræve adgangskode for at åbne, så brug værktøjet Skift tilladelser i stedet.
+
+## Relaterede værktøjer
+
+- [Dekryptér PDF](./unlock-pdf): fjern kryptering, når du kender adgangskoden
+- [Skift tilladelser](./change-permissions): ændr bestemte brugsbegrænsninger
+- [Fjern begrænsninger](./remove-restrictions): fjern al sikkerhed fra en PDF
+- [Rens PDF](./sanitize-pdf): fjern skjult indhold, før du krypterer
diff --git a/docs/da/tools/psd-to-pdf.md b/docs/da/tools/psd-to-pdf.md
new file mode 100644
index 00000000..849da333
--- /dev/null
+++ b/docs/da/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD til PDF
+description: Konvertér Photoshop-filer (PSD) til PDF i din browser. Gratis, privat, ingen Adobe-software nødvendig.
+---
+
+# PSD til PDF
+
+Konvertér Adobe Photoshop PSD-filer til PDF-dokumenter. PSD er Photoshops eget format, og at åbne en kræver normalt dyr Adobe-software. Dette værktøj gengiver det fladede sammensatte billede fra din PSD-fil som en PDF-side i fuld opløsning.
+
+## Understøttede formater
+
+| Format | Filendelse | Bemærkninger |
+| :-------------- | :--------- | :--------------------------------------- |
+| Adobe Photoshop | `.psd` | Gengiver det fladede sammensatte billede |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine PSD-filer. Flere filer understøttes.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurvsikonet, eller brug **Tilføj flere filer** for at tilføje flere.
+3. Klik på **Konvertér til PDF**. PyMuPDF-motoren læser PSD-filen og indlejrer det sammensatte billede på en PDF-side i den oprindelige opløsning.
+4. En enkelt PSD giver én PDF. Når du uploader flere PSD-filer, samles de i én flersidet PDF med navnet `psd_to_pdf.pdf`, hvor hver PSD bliver til én side.
+
+## Indstillinger
+
+Ingen indstillinger er nødvendige. Konverteren bruger de fladede billeddata fra PSD-filen.
+
+## Anvendelsesmuligheder
+
+- Forhåndsvise Photoshop-designs uden at åbne Photoshop
+- Sende designudkast til kunder, der ikke har Adobe Creative Suite
+- Udskrive højopløste værker fra PSD-filer
+- Lave en PDF-portfolio af flere PSD-designfiler, hvor hver bliver til en side i ét dokument
+
+## Tips
+
+- Konverteringen gengiver den sammensatte (fladede) visning af PSD'en. Enkelte lag, justeringslag og lageffekter bevares ikke som separate elementer i PDF'en.
+- Flere PSD-filer flettes til én flersidet PDF i stedet for individuelle PDF'er. Det er nyttigt til portfolioer eller lookbooks.
+- PSD-filer med meget høj opløsning (printfiler på 300+ DPI) giver store PDF'er. Værktøjet bevarer den fulde opløsning.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [PNG til PDF](./png-to-pdf)
+- [VSD til PDF](./vsd-to-pdf)
diff --git a/docs/da/tools/pub-to-pdf.md b/docs/da/tools/pub-to-pdf.md
new file mode 100644
index 00000000..ebe03791
--- /dev/null
+++ b/docs/da/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB til PDF
+description: Konvertér Microsoft Publisher-filer (PUB) til PDF i din browser. Gratis, privat, ingen software nødvendig.
+---
+
+# PUB til PDF
+
+Konvertér Microsoft Publisher-filer til PDF. Publisher er et DTP-program, der følger med nogle udgaver af Microsoft Office, men de fleste har det ikke installeret. Med dette værktøj kan alle konvertere PUB-filer til PDF direkte i browseren, uden Microsoft-software.
+
+## Understøttede formater
+
+| Format | Filendelse | Bemærkninger |
+| :------------------ | :--------- | :------------- |
+| Microsoft Publisher | `.pub` | DTP-dokumenter |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine PUB-filer. Du kan uploade flere filer på én gang.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurvsikonet, eller klik på **Tilføj flere filer** for at tilføje flere.
+3. Klik på **Konvertér til PDF**. En LibreOffice-baseret motor indlæses i browseren og konverterer hver PUB-fil, så layout, billeder og tekstbokse bevares.
+4. Én fil downloades direkte som PDF. Flere filer leveres i et ZIP-arkiv med navnet `pub-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen yderligere konfiguration er nødvendig. Konverteren håndterer PUB-layoutmotoren automatisk.
+
+## Anvendelsesmuligheder
+
+- Åbne en PUB-folder eller et nyhedsbrev fra en kunde uden at købe Microsoft Publisher
+- Konvertere kirkeblade, begivenhedsprogrammer eller skolenyhedsbreve lavet i Publisher
+- Arkivere marketingmateriale fra Publisher i et universelt tilgængeligt format
+- Udskrive PUB-filer på et system, hvor Publisher ikke er installeret
+
+## Tips
+
+- Komplekse Publisher-layouts med lagdelte tekstbokse og præcis placering kan flytte sig lidt under konverteringen. Gennemgå resultatet, hvis den præcise placering er afgørende.
+- LibreOffice-motoren initialiseres én gang pr. session. Den første konvertering tager længere tid, de næste går hurtigere.
+- For den mest tro konvertering af Publisher-filer bør brugerdefinerede skrifttyper i originalen være standardsystemskrifttyper.
+
+## Relaterede værktøjer
+
+- [VSD til PDF](./vsd-to-pdf)
+- [ODP til PDF](./odp-to-pdf)
diff --git a/docs/da/tools/rasterize-pdf.md b/docs/da/tools/rasterize-pdf.md
new file mode 100644
index 00000000..6a493e4b
--- /dev/null
+++ b/docs/da/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasterisér PDF
+description: Konvertér PDF-sider til billedbaseret PDF. Flad alle lag ud, fjern markérbar tekst, og styr DPI og billedformat.
+---
+
+# Rasterisér PDF
+
+Rasterisering konverterer hver side i en PDF til et billede og samler billederne til en PDF igen. Resultatet ser ud som originalen, men indeholder ingen markérbar tekst, ingen interaktive elementer og ingen redigerbare lag. Det er i praksis en fotokopi i høj kvalitet.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer.
+2. Vælg **DPI** (opløsning) for det rasteriserede resultat.
+3. Vælg et **billedformat**: PNG for tabsfri kvalitet eller JPEG for mindre filer.
+4. Markér eventuelt **Konvertér til gråtoner**.
+5. Klik på **Rasterisér PDF**. Flere filer downloades som ZIP.
+
+## Indstillinger
+
+| Indstilling | Værdier | Standard |
+| ---------------- | ---------------------------- | -------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Billedformat** | PNG (tabsfri), JPEG (mindre) | PNG |
+| **Gråtoner** | Til/Fra | Fra |
+
+## DPI-retningslinjer
+
+- **72**: kun visning på skærm, mindste filstørrelse
+- **150**: god balance til almindelig brug
+- **200**: skarpere tekst, moderat filstørrelse
+- **300**: udskriftskvalitet
+- **600**: arkivering i høj kvalitet eller professionel udskrivning
+
+## Anvendelsesmuligheder
+
+- Forhindre tekstudtrækning fra fortrolige dokumenter, før de deles
+- Eliminere problemer med skrifttypeafhængighed ved at konvertere tekst til pixels
+- Lave en "flad" version af en PDF med komplekse lag eller gennemsigtighed, der gengives forskelligt i forskellige læsere
+- Forberede en PDF til et system, der kun accepterer billedbaseret input
+- Fjerne skjult indhold (som sporede ændringer eller formulardata) ved at reducere PDF'en til rene billeder
+
+## Tips
+
+- 150 DPI med PNG er en solid standard. Gå kun højere, hvis du skal bruge udskrift eller zoome ind på fine detaljer.
+- JPEG giver mærkbart mindre filer, men indfører kompressionsartefakter på skarpe tekstkanter.
+- Rasterisering kan ikke fortrydes. Behold din originale PDF, hvis du senere kan få brug for redigerbar tekst.
+
+## Relaterede værktøjer
+
+- [Komprimer PDF](./compress-pdf): reducer den rasteriserede PDF's filstørrelse
+- [Ret skæve sider](./deskew-pdf): ret siderne ud, før du rasteriserer scannede dokumenter
+- [Skrifttype til kontur](./font-to-outline): konvertér skrifttyper til vektorstier, hvis du vil bevare skalerbarheden
+- [Fladgør PDF](./flatten-pdf): flad formularer ud uden at konvertere til billeder
diff --git a/docs/da/tools/remove-annotations.md b/docs/da/tools/remove-annotations.md
new file mode 100644
index 00000000..dd634fbc
--- /dev/null
+++ b/docs/da/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Fjern annotationer
+description: Fjern alle kommentarer, fremhævninger, links og andre annotationer fra din PDF med et enkelt klik.
+---
+
+# Fjern annotationer
+
+Rens din PDF ved at fjerne alle annotationer: kommentarer, fremhævninger, klæbenoter, tekstmarkeringer, links, stempler og alle andre annotationsobjekter i dokumentet. Det underliggende sideindhold (tekst, billeder, grafik) forbliver urørt.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Værktøjet registrerer dokumentets sideantal og viser filoplysninger.
+3. Klik på **Fjern annotationer** for at behandle.
+4. Den rensede PDF downloades automatisk uden annotationer.
+
+## Funktioner
+
+- Fjerner alle annotationstyper: kommentarer, fremhævninger, understregninger, overstregninger, klæbenoter, stempler, links og formularmarkeringer
+- Virker på alle sider i dokumentet
+- Bevarer alt indhold, der ikke er annotationer (tekst, billeder, vektorgrafik, formularfelter)
+- Viser sideantal og filstørrelse før behandling
+
+## Anvendelsesmuligheder
+
+- Rydde op i et dokument før endelig distribution efter en gennemgang, hvor flere korrekturlæsere har tilføjet kommentarer
+- Fjerne fremhævninger og klæbenoter fra en delt studiehåndbog
+- Fjerne linkannotationer fra et dokument før arkivering
+- Lave en "ren" version af et juridisk dokument, der blev kraftigt annoteret under forhandlingerne
+- Fjerne korrekturlæserkommentarer fra et manuskript, før det sendes til tryk
+
+## Tips
+
+- Værktøjet fjerner annotationer på PDF-strukturniveau, så resultatet bevarer markérbar tekst og original kvalitet, uden rasterisering.
+- Hvis du kun vil fjerne bestemte annotationer og ikke alle, så brug [PDF-editor](./edit-pdf) til selektivt at slette enkelte annotationer.
+- Annotationer i fladede PDF'er (hvor annotationerne er flettet ind i sideindholdet) kan ikke fjernes, da de ikke længere er separate objekter.
+
+## Relaterede værktøjer
+
+- [PDF-editor](./edit-pdf)
+- [Tilføj vandmærke](./add-watermark)
+- [Underskriv PDF](./sign-pdf)
diff --git a/docs/da/tools/remove-blank-pages.md b/docs/da/tools/remove-blank-pages.md
new file mode 100644
index 00000000..5016d0ba
--- /dev/null
+++ b/docs/da/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Fjern tomme sider
+description: Find og fjern automatisk tomme eller næsten tomme sider fra din PDF med justerbar følsomhed.
+---
+
+# Fjern tomme sider
+
+Scan din PDF for tomme eller næsten tomme sider, og fjern dem automatisk. Værktøjet gengiver hver side og analyserer pixelindholdet for at afgøre, om den er tom, og lader dig derefter bekræfte, hvilke sider der skal fjernes, før behandlingen.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Justér **Følsomhed**-skyderen for at styre, hvor strengt "tom" defineres.
+3. Klik på **Find tomme sider** for at scanne dokumentet.
+4. Værktøjet viser miniaturer af de fundne tomme sider, så du kan gennemgå dem.
+5. Bekræft udvalget, og download den rensede PDF uden de tomme sider.
+
+## Indstillinger
+
+- **Følsomhed**: En skyder fra 0 % til 100 % (standard 80 %). Højere værdier er strengere og markerer kun sider, der er helt eller næsten hvide. Lavere værdier er mere tolerante og fanger sider med minimalt indhold, som en enkelt prik eller et svagt vandmærke.
+
+## Funktioner
+
+- Pixelanalyse af hver side for at finde tomt indhold
+- Justerbar følsomhedsskyder til finjustering af registreringen
+- Miniaturevisning af fundne tomme sider til manuel kontrol
+- Bevarer alle sider med indhold præcis, som de er
+- Håndterer dokumenter af enhver størrelse og med et vilkårligt sideantal
+- Statusvisning under scanningen
+
+## Anvendelsesmuligheder
+
+- Rydde op i scannede dokumenter, hvor scanneren har fanget tomme bagsider af ensidede originaler
+- Fjerne skillesider fra bulkscannede dokumentbunker
+- Fjerne tomme sider, som dokumenthåndteringssystemer har indsat
+- Rydde op i PDF'er eksporteret fra tekstbehandlingsprogrammer, der somme tider tilføjer tomme sider til sidst
+- Reducere filstørrelsen ved at fjerne unødvendige tomme sider
+
+## Tips
+
+- Start med standardfølsomheden på 80 %, og juster derfra. Hvis værktøjet overser sider, der ser tomme ud for dig, så sænk følsomheden. Hvis det markerer sider med let indhold, du vil beholde, så hæv den.
+- Værktøjet gengiver hver side for at analysere indholdet, så behandlingstiden vokser med sideantallet. Ved meget store dokumenter må du forvente en kort ventetid.
+- Gennemgå de fundne tomme sider i miniaturevisningen, før du bekræfter fjernelsen. Sider med svage sidehoveder, sidefødder eller vandmærker kan blive markeret afhængigt af følsomhedsindstillingen.
+
+## Relaterede værktøjer
+
+- [Beskær PDF](./crop-pdf)
+- [PDF-editor](./edit-pdf)
+- [Sidetal](./page-numbers)
diff --git a/docs/da/tools/remove-metadata.md b/docs/da/tools/remove-metadata.md
new file mode 100644
index 00000000..ca40f6c7
--- /dev/null
+++ b/docs/da/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Fjern metadata
+description: Fjern al skjult metadata fra PDF-filer, herunder forfatter, titel, oprettelsesdato, producent, XMP-data og dokument-id'er.
+---
+
+# Fjern metadata
+
+Enhver PDF indeholder metadata, der kan afsløre, hvem der har oprettet den, hvilken software der blev brugt, hvornår den sidst blev ændret, og meget mere. Dette værktøj fjerner det hele: info-ordbogen, XMP-metadatastrømme, dokument-id'er og programspecifikke data, så du står tilbage med et rent dokument uden spor af oprindelsen.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Klik på **Fjern metadata**.
+3. Download den rensede fil.
+
+Ingen indstillinger at konfigurere. Værktøjet er grundigt af design: det rydder alt.
+
+## Hvad der fjernes
+
+- **Felter i info-ordbogen**: Titel, Forfatter, Emne, Nøgleord, Opretter, Producent, oprettelsesdato, ændringsdato
+- **XMP-metadatastrøm**: Den XML-baserede metadatablok i dokumentkataloget
+- **Dokument-id'er**: Unikke identifikatorer i PDF-trailer, som kan bruges til at spore et dokument på tværs af systemer
+- **PieceInfo**: Programspecifik metadata tilføjet af programmer som Illustrator eller InDesign
+
+## Hvad der bevares
+
+- Alt synligt sideindhold (tekst, billeder, grafik)
+- Formularfelter og annotationer
+- Bogmærker og links
+- Selve dokumentstrukturen
+
+## Anvendelsesmuligheder
+
+- Fjerne dit navn og din organisation fra et dokument, før det udgives anonymt
+- Fjerne oprettelsestidsstempler, der afslører, hvornår et dokument blev udarbejdet
+- Rydde producentstrenge, der afslører din PDF-softwarestak
+- Forberede dokumenter til myndighedsindberetninger, der kræver PDF'er uden metadata
+- Fjerne spor af redigeringshistorik, før et dokument deles eksternt
+
+## Tips
+
+- Brug først værktøjet Vis metadata til at se præcis, hvilken metadata din PDF indeholder, før du fjerner den.
+- Hvis du skal fjerne metadata _og_ JavaScript, annotationer og indlejrede filer, så brug Rens PDF til en grundigere rensning.
+- Fjernelse af metadata er permanent. Behold din original, hvis du senere kan få brug for dataene.
+
+## Relaterede værktøjer
+
+- [Rens PDF](./sanitize-pdf): fjern metadata samt scripts, vedhæftninger og mere
+- [Kryptér PDF](./protect-pdf): beskyt den rensede PDF med en adgangskode
+- [Komprimer PDF](./compress-pdf): fjernelse af metadata kan reducere filstørrelsen en smule, komprimer for større besparelser
diff --git a/docs/da/tools/remove-restrictions.md b/docs/da/tools/remove-restrictions.md
new file mode 100644
index 00000000..e2fa5ae8
--- /dev/null
+++ b/docs/da/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Fjern begrænsninger
+description: Fjern adgangskodebeskyttelse, udskrivningsbegrænsninger, redigeringslåse og kopieringsgrænser fra PDF-filer.
+---
+
+# Fjern begrænsninger
+
+PDF'er kan have to typer adgangskoder: en brugeradgangskode (kræves for at åbne filen) og en ejeradgangskode (styrer, hvad du kan gøre med den). Dette værktøj fjerner begge samt alle tilhørende begrænsninger: udskrivning, redigering, kopiering og annotationslåse.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Hvis PDF'en har en ejeradgangskode, så skriv den i feltet **Ejeradgangskode**. Lad feltet stå tomt, hvis PDF'en kun har brugsbegrænsninger uden adgangskode.
+3. Klik på **Fjern begrænsninger**.
+4. Download den ubegrænsede PDF.
+
+Værktøjet bruger QPDF's flag `--decrypt` og `--remove-restrictions` til at lave en ren, ubegrænset kopi.
+
+## Hvad der fjernes
+
+- Adgangskodebeskyttelse (både bruger- og ejeradgangskoder)
+- Udskrivningsbegrænsninger
+- Redigeringsbegrænsninger
+- Begrænsninger for kopiering af tekst og billeder
+- Begrænsninger for annotering og kommentarer
+- Alle andre sikkerhedsbegrænsninger, der er kodet i PDF'en
+
+## Anvendelsesmuligheder
+
+- Låse en PDF op, som du ejer, men hvis adgangskode du satte for år tilbage
+- Fjerne udskrivningsbegrænsninger fra et dokument, du har legitim adgang til
+- Aktivere kopiér-og-indsæt i opslagsmateriale til notetagning
+- Forberede PDF'er til hjælpemidler, der ikke kan håndtere begrænsede dokumenter
+
+## Tips
+
+- Du skal kende ejeradgangskoden, hvis der er sat en. Dette værktøj knækker eller brute-force'r ikke adgangskoder.
+- Hvis du vil beholde filen krypteret, men ændre bestemte tilladelser, så brug værktøjet Skift tilladelser i stedet.
+- Den resulterende fil har ingen kryptering. Alle, der modtager den, kan åbne den frit.
+
+## Relaterede værktøjer
+
+- [Dekryptér PDF](./unlock-pdf): lås en PDF op, når du kender brugeradgangskoden
+- [Kryptér PDF](./protect-pdf): anvend kryptering igen med nye indstillinger
+- [Skift tilladelser](./change-permissions): ændr selektivt, hvilke handlinger der er tilladt
diff --git a/docs/da/tools/repair-pdf.md b/docs/da/tools/repair-pdf.md
new file mode 100644
index 00000000..bc6a1e55
--- /dev/null
+++ b/docs/da/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Reparér PDF
+description: Gendan data fra korrupte eller beskadigede PDF-filer med QPDF's reparationsmotor. Understøtter batchbehandling.
+---
+
+# Reparér PDF
+
+Når en PDF ikke vil åbne, viser forvansket indhold eller udløser fejl i din læser, forsøger dette værktøj at genopbygge dens interne struktur. Det bruger QPDF's reparationsmotor, der kan genskabe data fra mange typer korruption: ødelagte krydsreferencetabeller, afkortede strømme, ugyldige objektreferencer og mere.
+
+## Sådan fungerer det
+
+1. Upload en eller flere beskadigede PDF-filer.
+2. Klik på **Reparér PDF**.
+3. En enkelt repareret fil downloades direkte. Flere filer giver et ZIP-arkiv.
+
+Værktøjet sender hver fil gennem QPDF med flaget `--decrypt`, som tvinger QPDF til at læse og omskrive hele PDF-strukturen og rette de problemer, der kan rettes, undervejs.
+
+## Funktioner
+
+- Batchreparation af flere PDF'er i én handling
+- Automatisk registrering af filer, der kan genskabes, og filer, der ikke kan
+- Rapportering af succes/fejl pr. fil ved behandling af flere filer
+- Bruger QPDF (WebAssembly), et gennemtestet bibliotek til PDF-transformation
+
+## Hvad den kan rette
+
+- Ødelagte eller manglende krydsreferencetabeller
+- Afkortede filender fra ufuldstændige downloads
+- Ugyldig objektnummerering og strømlængder
+- Mindre strukturelle uoverensstemmelser fra fejlbehæftede PDF-generatorer
+- Krypteringsartefakter fra mislykkede dekrypteringsforsøg
+
+## Hvad den ikke kan rette
+
+- Kraftigt afkortede filer, hvor det meste af indholdet mangler
+- PDF'er krypteret med en adgangskode, du ikke har
+- Filer, der ikke i virkeligheden er PDF'er (forkert filendelse)
+- Billedkorruption i PDF'en (strukturen rettes, men pixeldata genskabes ikke)
+
+## Anvendelsesmuligheder
+
+- Gendanne en PDF fra en mislykket e-maildownload
+- Åbne filer fra ældre eller ikke-standardiserede PDF-generatorer
+- Rette PDF'er, der virker i én læser, men ikke i en anden
+- Forberede beskadigede arkivdokumenter til langtidsopbevaring
+
+## Tips
+
+- Hvis reparationen mislykkes, så prøv først at åbne filen i en browser. Browsere har deres egen gendannelseslogik og kan vise nok indhold til at gemme den igen.
+- Til krypterede PDF'er, hvor reparationen mislykkes, så prøv først Dekryptér PDF og reparér derefter den dekrypterede fil.
+
+## Relaterede værktøjer
+
+- [Komprimer PDF](./compress-pdf): ryd yderligere op i den reparerede PDF's struktur
+- [Lineariser PDF](./linearize-pdf): optimer den reparerede fil til webdistribution
+- [Fladgør PDF](./flatten-pdf): flad formularer ud, som kan være blevet beskadiget
diff --git a/docs/da/tools/reverse-pages.md b/docs/da/tools/reverse-pages.md
new file mode 100644
index 00000000..fe2b9c92
--- /dev/null
+++ b/docs/da/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Vend sider
+description: Vend siderækkefølgen i en eller flere PDF-filer, så den sidste side bliver den første.
+---
+
+# Vend sider
+
+Vend siderækkefølgen i en PDF, så den sidste side bliver den første, den næstsidste bliver den anden, og så videre. Understøtter batchbehandling af flere filer på én gang.
+
+## Sådan fungerer det
+
+1. Upload en eller flere PDF-filer.
+2. Klik på knappen til at behandle.
+3. Hver fil vendes uafhængigt. Hvis du uploadede flere filer, er resultatet et ZIP-arkiv med alle de vendte PDF'er.
+4. En enkelt fil downloades direkte som en vendt PDF.
+
+## Funktioner
+
+- Batchbehandling: vend flere PDF'er i én handling
+- Enkeltfilsoutput for én PDF, ZIP-output for flere
+- Fjernknapper pr. fil før behandling
+- Bevarer alt sideindhold og al formatering
+
+## Anvendelsesmuligheder
+
+- Rette et dokument, der blev scannet i omvendt rækkefølge
+- Forberede en præsentations-PDF, så den læses bagfra og frem
+- Vende siderækkefølgen til bestemte udskrivningsforløb, der fører siderne ind omvendt
+- Rette et dokument, hvor siderne ved en fejl blev samlet bagvendt
+
+## Tips
+
+- Hver fil i et parti vendes uafhængigt. Filerne ombyttes ikke i forhold til hinanden.
+- Til mere detaljeret omorganisering af sider (ikke blot en fuld vending) brug [Duplikér og organisér](./organize-pdf).
+
+## Relaterede værktøjer
+
+- [Duplikér og organisér](./organize-pdf)
+- [Roter PDF](./rotate-pdf)
+- [PDF Multi-værktøj](./pdf-multi-tool)
diff --git a/docs/da/tools/rotate-custom.md b/docs/da/tools/rotate-custom.md
new file mode 100644
index 00000000..d01f151a
--- /dev/null
+++ b/docs/da/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Roter med brugerdefineret vinkel
+description: Roter PDF-sider i enhver vinkel med gradinput pr. side og batchstyring af rotation.
+---
+
+# Roter med brugerdefineret vinkel
+
+Roter PDF-sider i en vilkårlig vinkel, ikke kun i spring på 90 grader. Hver side har sit eget vinkelfelt, og du kan anvende én vinkel på alle sider på én gang med batchstyringen.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Der vises miniaturer af alle sider.
+2. Hver side har et numerisk inputfelt, der viser dens aktuelle rotationsvinkel.
+3. Skriv en vilkårlig gradværdi (positiv eller negativ) for at rotere en bestemt side, eller brug knapperne venstre/højre pr. side til hurtige justeringer på 90 grader.
+4. Brug **batchvinkel**-feltet øverst til at angive en ensartet rotation for alle sider.
+5. Klik på knappen til at behandle for at oprette den roterede PDF.
+
+## Funktioner
+
+- Frit gradinput pr. side (en vilkårlig heltalsværdi)
+- Batchvinkelstyring, der giver alle sider den samme rotation
+- Forhåndsvisning af rotationen i realtid i miniaturerne
+- Hurtigknapper pr. side til spring på 90 grader
+- Miniaturer, der indlæses ved behov, for god ydeevne på store dokumenter
+
+## Anvendelsesmuligheder
+
+- Rette let skæve scanninger med nogle få grader
+- Rotere sider, så de passer til et ikke-standardiseret orienteringskrav
+- Anvende præcise rotationer på enkelte sider i et dokument med blandet indhold
+- Finjustere sidevinkler efter en indledende masserotation
+
+## Tips
+
+- Positive værdier roterer med uret, negative værdier mod uret.
+- Batchvinkelfeltet overskriver alle vinkler pr. side, når det anvendes. Foretag individuelle justeringer efter batchhandlingen, hvis det er nødvendigt.
+- Til standardrotationer på 90/180/270 grader med en enklere grænseflade brug [Roter PDF](./rotate-pdf).
+
+## Relaterede værktøjer
+
+- [Roter PDF](./rotate-pdf)
+- [PDF Multi-værktøj](./pdf-multi-tool)
+- [Duplikér og organisér](./organize-pdf)
diff --git a/docs/da/tools/rotate-pdf.md b/docs/da/tools/rotate-pdf.md
new file mode 100644
index 00000000..50481356
--- /dev/null
+++ b/docs/da/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Roter PDF
+description: Roter enkelte sider eller alle sider i en PDF i spring på 90 grader med en visuel miniaturegrænseflade.
+---
+
+# Roter PDF
+
+Roter sider i en PDF 90 grader med eller mod uret. Værktøjet viser miniaturer af hver side, så du kan rotere dem enkeltvis eller anvende en masserotation på hele dokumentet.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil. Miniaturer af alle sider vises i et gitter.
+2. Brug rotationsknapperne venstre/højre under hver miniature til at rotere den pågældende side.
+3. Brug masserotationsstyringen øverst til at rotere alle sider på én gang.
+4. Miniatureforhåndsvisningen opdateres i realtid og viser rotationen.
+5. Klik på knappen til at behandle for at gemme den roterede PDF.
+
+## Funktioner
+
+- Rotation pr. side i spring på 90 grader (venstre eller højre)
+- Masserotation af alle sider samtidigt
+- Miniatureforhåndsvisning i realtid med animerede rotationsovergange
+- Miniaturer, der indlæses ved behov, for jævn ydeevne på store dokumenter
+- Bevarer det oprindelige sideindhold og den oprindelige kvalitet
+
+## Anvendelsesmuligheder
+
+- Rette sider, der er scannet på siden eller på hovedet
+- Rotere liggende sider til stående retning (eller omvendt)
+- Rette et dokument med blandet orientering, hvor nogle sider blev scannet i den forkerte vinkel
+- Forberede et dokument til en bestemt visningsorientering
+
+## Tips
+
+- Rotationer er kumulative. To klik på knappen med uret giver en rotation på 180 grader.
+- Til rotationer, der ikke er på 90 grader (f.eks. 45 grader for at rette en let skæv scanning), brug i stedet [Roter med brugerdefineret vinkel](./rotate-custom).
+- Masserotationsstyringen påvirker alle sider, ikke kun udvalgte. Der er ingen udvælgelsesmekanisme i dette værktøj. Brug [PDF Multi-værktøj](./pdf-multi-tool) til det.
+
+## Relaterede værktøjer
+
+- [Roter med brugerdefineret vinkel](./rotate-custom)
+- [PDF Multi-værktøj](./pdf-multi-tool)
+- [Duplikér og organisér](./organize-pdf)
diff --git a/docs/da/tools/rtf-to-pdf.md b/docs/da/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..7689619e
--- /dev/null
+++ b/docs/da/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF til PDF
+description: Konvertér Rich Text Format-filer (RTF) til PDF i din browser med en LibreOffice-drevet motor.
+---
+
+# RTF til PDF
+
+Konvertér Rich Text Format-dokumenter til PDF. RTF er et dokumentformat på tværs af platforme, som stort set alle tekstbehandlingsprogrammer understøtter. Dette værktøj bruger en LibreOffice-motor i browseren til at gengive RTF-filer med formateringen intakt: fed, kursiv, tabeller og indlejrede billeder føres alle over i PDF'en.
+
+## Understøttede formater
+
+| Format | Filendelser | MIME-typer |
+| :----- | :---------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip en eller flere RTF-filer.
+2. Gennemgå fillisten. Tilføj flere eller fjern filer efter behov.
+3. Klik på **Konvertér til PDF**. LibreOffice-motoren initialiseres ved første brug og behandler derefter hver fil.
+4. En enkelt fil downloades direkte som PDF. Flere filer leveres som `rtf-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere indstillinger. Konverteringen bevarer den oprindelige RTF-formatering.
+
+## Resultat
+
+| Antal filer | Resultat |
+| :---------- | :------------------------------------------------- |
+| 1 fil | Enkelt PDF-download (f.eks. `letter.pdf`) |
+| 2+ filer | ZIP-arkiv (`rtf-converted.zip`) med én PDF pr. fil |
+
+## Anvendelsesmuligheder
+
+- Konvertere ældre RTF-dokumenter fra gamle tekstbehandlingsprogrammer til moderne PDF'er
+- Gøre RTF-e-mailskabeloner til PDF-forhåndsvisninger
+- Behandle RTF-output fra juridiske eller medicinske softwaresystemer
+- Batchkonvertere RTF-filer fra et dokumenthåndteringssystem til PDF til arkivering
+
+## Tips
+
+- LibreOffice-motoren indlæses én gang og caches. Den første konvertering i en session tager nogle ekstra sekunder, de næste går hurtigere.
+- RTF-filer med indlejrede OLE-objekter gengiver muligvis ikke alle objekter perfekt. Ren tekst, billeder og standardformatering konverteres pålideligt.
+- Hvis dine RTF-filer er oprettet i Microsoft Word, kan du også konvertere dem direkte med værktøjet [Word til PDF](./word-to-pdf), som accepterer RTF ved siden af DOC og DOCX.
+
+## Relaterede værktøjer
+
+- [Word til PDF](./word-to-pdf)
+- [ODT til PDF](./odt-to-pdf)
+- [Tekst til PDF](./txt-to-pdf)
diff --git a/docs/da/tools/sanitize-pdf.md b/docs/da/tools/sanitize-pdf.md
new file mode 100644
index 00000000..44636c2c
--- /dev/null
+++ b/docs/da/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rens PDF
+description: Fjern skjult og potentielt farligt indhold fra PDF'er, herunder metadata, JavaScript, indlejrede filer, annotationer og lag.
+---
+
+# Rens PDF
+
+PDF'er kan indeholde langt mere, end du ser på skærmen. Skjult metadata, indlejret JavaScript, filvedhæftninger, formulardata og laginformation kan lække følsomme data eller udgøre sikkerhedsrisici. Rensning fjerner det hele, så du står tilbage med et rent dokument, der er sikkert at dele offentligt.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Vælg på tjeklisten, hvilke elementer der skal fjernes.
+3. Klik på **Rens PDF**.
+4. Download den rensede fil.
+
+## Rensningsindstillinger
+
+Alle indstillinger er aktiveret som standard. Fjern markeringen ved dem, du vil bevare.
+
+| Indstilling | Hvad den fjerner |
+| -------------------------- | -------------------------------------------------------------------------- |
+| **Flad formularer ud** | Gør interaktive formularfelter til statisk indhold |
+| **Fjern metadata** | Fjerner forfatter, titel, oprettelsesdato, softwareoplysninger og XMP-data |
+| **Fjern annotationer** | Sletter kommentarer, fremhævninger, klæbenoter og markeringer |
+| **Fjern JavaScript** | Fjerner indlejrede scripts, der kan køre ved åbning |
+| **Fjern indlejrede filer** | Fjerner filvedhæftninger, der er indlejret i PDF'en |
+| **Fjern lag (OCG)** | Flader valgfrie indholdsgrupper ud til ét lag |
+| **Fjern links** | Fjerner hyperlinks og URL-referencer |
+| **Fjern strukturtræ** | Fjerner dokumentstrukturen, der bruges til tilgængelighedsmærkning |
+| **Fjern MarkInfo** | Fjerner oplysninger om markeret indhold |
+| **Fjern skrifttyper** | Fjerner indlejrede skrifttypedata (brug med forsigtighed) |
+
+## Anvendelsesmuligheder
+
+- Forberede en PDF til offentlig udgivelse ved at fjerne intern metadata (forfatternavne, softwareversioner, redigeringshistorik)
+- Fjerne JavaScript fra en PDF fra en upålidelig kilde, før du åbner den
+- Rydde op i en PDF, før den sendes til en kunde, som ikke skal se indlejrede kommentarer eller formularfeltnavne
+- Fjerne skjulte lag fra en arkitekttegning, før den endelige version deles
+- Overholde krav om dataminimering i databeskyttelsesreglerne
+
+## Tips
+
+- Lad "Fjern skrifttyper" stå umarkeret, medmindre du er sikker på, at PDF'en stadig vises korrekt. Fjernelse af skrifttyper kan gøre tekst usynlig i nogle læsere.
+- Hvis du kun skal fjerne metadata, er det dedikerede værktøj Fjern metadata hurtigere og mere fokuseret.
+- Rensning kan ikke fortrydes. Behold din originale fil.
+
+## Relaterede værktøjer
+
+- [Fjern metadata](./remove-metadata): fjern kun metadata uden at røre andet indhold
+- [Fladgør PDF](./flatten-pdf): flad specifikt formularer og annotationer ud
+- [Kryptér PDF](./protect-pdf): tilføj adgangskodebeskyttelse efter rensning
+- [Rasterisér PDF](./rasterize-pdf): den drastiske løsning: konvertér til billeder for at fjerne alt skjult indhold
diff --git a/docs/da/tools/scanner-effect.md b/docs/da/tools/scanner-effect.md
new file mode 100644
index 00000000..a4ca6dca
--- /dev/null
+++ b/docs/da/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Scannereffekt
+description: Få din PDF til at ligne et scannet dokument med justerbar støj, rotation, sløring og papirældning.
+---
+
+# Scannereffekt
+
+Forvandl en ren digital PDF til noget, der ser ud, som om det kom fra en flatbed-scanner. Værktøjet anvender konfigurerbar støj, let rotation, sløring, lysstyrkeskift og valgfri gulfarvning for at efterligne en fysisk scannings ufuldkommenheder.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Editoren åbner med en live-forhåndsvisning af første side ved siden af et indstillingspanel.
+3. Justér scanningseffektens parametre med skyderne og kontakterne.
+4. Forhåndsvisningen opdateres i realtid, når du ændrer indstillinger.
+5. Klik på **Anvend** for at behandle alle sider og downloade resultatet.
+
+## Indstillinger
+
+- **Farverum (gråtoneskift)**: Konvertér resultatet til gråtoner for et klassisk sort-hvidt scanningslook.
+- **Kant**: Tilføj en diskret mørk kant rundt om siderne for at efterligne scannerens kantartefakter.
+- **Rotation**: Anvend en let rotation (-5 til +5 grader) for at simulere skæv papirindføring.
+- **Rotationsvariation**: Tilføj tilfældig variation i rotationsvinklen, så hver side hælder lidt forskelligt.
+- **Lysstyrke**: Skift den samlede lysstyrke op eller ned.
+- **Kontrast**: Justér kontrasten for at simulere variationer i tonerkvalitet.
+- **Sløring**: Anvend Gaussisk sløring for at blødgøre tekstkanter som i en scanning af lav kvalitet.
+- **Støj**: Tilføj tilfældig pixelstøj for at efterligne kornethed fra scannerens sensor. Højere værdier giver mere kornet resultat.
+- **Gullig**: Tilføj en varm gul tone for at efterligne ældet eller genbrugspapir.
+- **Opløsning**: Angiv output-DPI. Lavere værdier giver et mere pixeleret, scanningslignende udseende.
+- **Nulstil**: Gendan alle indstillinger til standardværdierne.
+
+## Funktioner
+
+- Realtidsforhåndsvisning, der opdateres, mens du justerer hver parameter
+- Tilfældig rotationsvariation pr. side for realistisk variation
+- Ti uafhængigt justerbare parametre
+- Gråtonetilstand til autentisk sort-hvidt scanningsoutput
+- Opløsningsstyring fra faxkvalitet med lav DPI til arkivkvalitet med høj DPI
+
+## Anvendelsesmuligheder
+
+- Få digitalt oprettede dokumenter til at se ud, som om de er scannet og udskrevet
+- Simulere fysisk dokumentældning til genskabelse af historiske dokumenter
+- Teste OCR-software mod forringet scanningskvalitet
+- Producere dokumenter, der matcher den visuelle stil i eksisterende scannede arkiver
+
+## Tips
+
+- Start med subtile værdier. Et støjniveau på 10-20, en let rotation på 0,5 grader og minimal sløring giver allerede et overbevisende scanningslook.
+- Kombinér gråtonetilstand med let gulfarvning for en "kopi af en kopi"-effekt.
+- Lavere opløsningsindstillinger (100-150 DPI) giver det mest realistiske faxmaskineudseende.
+
+## Relaterede værktøjer
+
+- [Invertér farver](./invert-colors)
+- [Justér farver](./adjust-colors)
+- [Baggrundsfarve](./background-color)
diff --git a/docs/da/tools/sign-pdf.md b/docs/da/tools/sign-pdf.md
new file mode 100644
index 00000000..fd638304
--- /dev/null
+++ b/docs/da/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Underskriv PDF
+description: Tegn, skriv eller upload en signatur, og placér den på dine PDF-sider med en integreret læser.
+---
+
+# Underskriv PDF
+
+Tilføj din signatur til ethvert PDF-dokument. Værktøjet indlejrer en fuld PDF-læser med indbyggede signaturværktøjer, hvor du kan tegne en signatur frihånd, skrive dit navn i en signaturskrifttype eller uploade et signaturbillede. Placér og tilpas størrelsen på signaturer på en vilkårlig side, og gem derefter det underskrevne dokument.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Dokumentet åbnes i en integreret PDF-læser med annotationsværktøjer.
+3. Brug læserens signaturværktøj til at oprette din signatur ved at tegne, skrive eller uploade et billede.
+4. Klik på den side, hvor du vil placere signaturen, og justér dens størrelse og position.
+5. Markér eventuelt **Fladgør PDF** for permanent at indlejre signaturen i dokumentet.
+6. Klik på **Gem og download underskrevet PDF** for at få din underskrevne fil.
+
+## Indstillinger
+
+- **Fladgør PDF**: Når den er markeret, indlejres signaturen permanent i sideindholdet. Det forhindrer, at andre flytter eller sletter signaturen. Når den ikke er markeret, forbliver signaturen en annotation, der kan redigeres i kompatible læsere.
+
+## Funktioner
+
+- Tre måder at oprette en signatur på: frihåndstegning, skrevet tekst eller uploadet billede
+- Integreret PDF-læser til nøjagtig placering
+- Træk for at placere og ændre størrelsen på signaturer på en vilkårlig side
+- Valgfri udfladning for permanent at indlejre signaturer
+- Understøttelse af flere signaturer i samme dokument
+
+## Anvendelsesmuligheder
+
+- Underskrive kontrakter, aftaler eller godkendelsesformularer, før de sendes tilbage
+- Tilføje din signatur til skattedokumenter, forsikringskrav eller offentlige formularer
+- Sætte initialer på enkelte sider i en flersidet aftale
+- Underskrive fortrolighedsaftaler eller HR-dokumenter, der kommer som PDF-vedhæftninger
+
+## Tips
+
+- Aktivér udfladning, hvis du sender den underskrevne PDF til en, der ikke bør kunne fjerne eller flytte din signatur.
+- Til juridisk bindende digitale signaturer med certifikatbaseret verificering tilbyder BentoPDF også et separat værktøj, Digital signatur PDF.
+- Upload et PNG-signaturbillede med gennemsigtig baggrund for det reneste resultat.
+
+## Relaterede værktøjer
+
+- [PDF-editor](./edit-pdf)
+- [Tilføj stempler](./add-stamps)
+- [PDF-formularudfylder](./form-filler)
diff --git a/docs/da/tools/split-pdf.md b/docs/da/tools/split-pdf.md
new file mode 100644
index 00000000..a9b3cad9
--- /dev/null
+++ b/docs/da/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Opdel PDF
+description: Opdel en PDF i mindre filer efter sideinterval, visuelt udvalg, bogmærker, lige/ulige sider eller faste intervaller.
+---
+
+# Opdel PDF
+
+Del en PDF op i mindre dokumenter med en af seks opdelingstilstande. Fra enkle sideintervaller til bogmærkebaseret opdeling dækker dette værktøj alle scenarier, hvor et dokument skal deles.
+
+## Sådan fungerer det
+
+1. Upload en enkelt PDF-fil.
+2. Vælg en opdelingstilstand i rullemenuen.
+3. Konfigurér tilstandens indstillinger (sideintervaller, udvalg osv.).
+4. Klik på knappen til at behandle.
+5. Resultatet downloades som en enkelt PDF eller et ZIP-arkiv afhængigt af tilstand og indstillinger.
+
+## Opdelingstilstande
+
+| Tilstand | Beskrivelse |
+| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
+| **Interval** | Angiv sideintervaller som `1-3, 5, 8-10`. Flere intervaller giver separate PDF'er i et ZIP-arkiv. Ét interval giver én PDF. |
+| **Visuelt udvalg** | Gennemse sideminiaturer, og klik for at vælge de sider, du vil have. De valgte sider udtrækkes til en ny PDF. |
+| **Lige / ulige** | Udtræk kun sider med lige eller ulige numre. |
+| **Alle sider** | Opdel hver side i sin egen PDF-fil, downloadet som ZIP. |
+| **Bogmærker** | Opdel ved bogmærkegrænser. Vælg bogmærkeniveauet for at styre, hvor opdelingerne sker. |
+| **Hver N. side** | Opdel i bidder på N sider hver (f.eks. hver 5. side). Den sidste bid kan have færre sider. |
+
+## Funktioner
+
+- Seks forskellige opdelingstilstande, der dækker stort set alle behov
+- Visuel sidevælger med miniaturer, der indlæses ved behov
+- Bogmærkebevidst opdeling med niveaufiltrering
+- ZIP-output som mulighed i interval- og visuel tilstand
+- Håndterer sideintervaller med blandet syntaks (`1-3, 5, 8-10`)
+- Advarsel, når opdeling i N sider giver ujævne bidder
+
+## Anvendelsesmuligheder
+
+- Udtrække et bestemt kapitel eller afsnit fra et stort dokument
+- Adskille ulige og lige sider til dobbeltsidede udskrivningsforløb
+- Dele en bog-PDF i enkelte kapitelfiler ved bogmærkegrænser
+- Udtrække bestemte sider (som en underskriftsside) fra en kontrakt
+- Opdele en samlet rapport i filer pr. afsnit til distribution
+
+## Tips
+
+- Flere sideintervaller adskilt af kommaer (f.eks. `1-5, 10-15, 20-25`) giver separate PDF'er, én pr. interval, samlet i et ZIP-arkiv.
+- Bogmærketilstanden kræver, at PDF'en rent faktisk indeholder bogmærker. Hvis der ikke findes nogen, får du en fejlmeddelelse.
+- Afkrydsningsfeltet "Download som ZIP" i interval- og visuel tilstand lader dig få individuelle PDF'er pr. side i stedet for en samlet fil.
+
+## Relaterede værktøjer
+
+- [Flet PDF](./merge-pdf)
+- [Udtræk sider](./extract-pages)
+- [Slet sider](./delete-pages)
+- [PDF Multi-værktøj](./pdf-multi-tool)
diff --git a/docs/da/tools/svg-to-pdf.md b/docs/da/tools/svg-to-pdf.md
new file mode 100644
index 00000000..e0c89491
--- /dev/null
+++ b/docs/da/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG til PDF
+description: Konvertér SVG-vektorgrafik til PDF med kvalitetsstyring, helt i din browser.
+---
+
+# SVG til PDF
+
+Konvertér Scalable Vector Graphics-filer (SVG) til PDF. Værktøjet rasteriserer hver SVG gennem browserens gengivelsesmotor og indlejrer derefter resultatet i dets oprindelige opløsning. Nyttigt til at gøre vektorikoner, diagrammer og illustrationer til flytbare dokumenter.
+
+## Understøttede formater
+
+| Format | Filendelser |
+| :----- | :---------- |
+| SVG | `.svg` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip en eller flere SVG-filer.
+2. Gennemgå og administrér fillisten.
+3. Vælg et **PDF-kvalitet**-niveau.
+4. Klik på **Konvertér til PDF**. Resultatet downloades som `from_svgs.pdf`.
+
+Hver SVG læses som tekst, gengives på et lærred i sin egen bredde og højde (standard 800x600, hvis der ikke er angivet mål) og eksporteres som PNG. Den PNG indlejres derefter i PDF'en med pdf-lib. Gennemsigtige områder udfyldes med hvid baggrund.
+
+## Indstillinger
+
+**PDF-kvalitet** styrer komprimeringen efter rasterisering:
+
+- **Høj kvalitet**: tættest på den oprindelige gengivelse.
+- **Medium kvalitet** (standard): god balance.
+- **Lav kvalitet**: mindste fil, noget detaljetab.
+
+## Anvendelsesmuligheder
+
+- Konvertere arkitekt- eller ingeniørdiagrammer fra SVG til en udskriftsklar PDF
+- Samle ikonsæt i en referencerapport-PDF til et designsystem
+- Gøre datavisualiseringer (D3.js, eksport fra diagrambiblioteker) til rapportklare PDF'er
+- Lave udskrivbare versioner af SVG-baserede infografikker
+
+## Tips
+
+- SVG-filer uden eksplicitte attributter `width` og `height` gengives i 800x600 pixels. For det bedste resultat bør du angive mål i SVG-kilden, før du konverterer.
+- Komplekse SVG'er med eksterne skrifttypereferencer eller linkede billeder gengives muligvis ikke perfekt. Indlejr alle ressourcer i SVG'en for pålideligt resultat.
+- Da SVG'en rasteriseres, indeholder PDF'en et bitmapbillede frem for vektorstier. Til ægte vektor-PDF-output kræves et dedikeret vektorværktøj.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [PNG til PDF](./png-to-pdf)
+- [BMP til PDF](./bmp-to-pdf)
diff --git a/docs/da/tools/table-of-contents.md b/docs/da/tools/table-of-contents.md
new file mode 100644
index 00000000..bbe3fd5c
--- /dev/null
+++ b/docs/da/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Indholdsfortegnelse
+description: Generér en formateret indholdsfortegnelsesside ud fra din PDF's eksisterende bogmærker.
+---
+
+# Indholdsfortegnelse
+
+Dette værktøj læser bogmærkerne (konturen) i din PDF og genererer en formateret indholdsfortegnelsesside, som sættes foran dokumentet. Hvis din PDF allerede har bogmærker, men mangler en synlig indholdsfortegnelsesside, opretter dette værktøj en automatisk.
+
+## Sådan fungerer det
+
+1. Upload en PDF, der indeholder bogmærker.
+2. Tilpas titel, skriftstørrelse og skrifttypefamilie for indholdsfortegnelsen.
+3. Markér eventuelt **Tilføj bogmærke til indholdsfortegnelsessiden** for at medtage selve indholdsfortegnelsen i bogmærketræet.
+4. Klik på **Generér indholdsfortegnelse** for at behandle filen.
+5. Den opdaterede PDF downloades automatisk med indholdsfortegnelsessiden indsat først.
+
+## Indstillinger
+
+- **Titel på indholdsfortegnelse**: Overskriften øverst på den genererede side. Standard er "Indholdsfortegnelse".
+- **Skriftstørrelse**: Vælg fra 10 pt til 72 pt. Standard er 12 pt.
+- **Skrifttypefamilie**: Vælg mellem Times Roman-, Helvetica- eller Courier-varianter (normal, fed, kursiv, fed kursiv). Standard er Helvetica.
+- **Tilføj bogmærke til indholdsfortegnelsessiden**: Når den er markeret, tilføjes et bogmærke for selve indholdsfortegnelsessiden til PDF'ens kontur.
+
+## Funktioner
+
+- Læser hele bogmærkehierarkiet fra PDF'en
+- Genererer en pænt formateret indholdsfortegnelsesside med sidetalshenvisninger
+- Understøtter indlejrede bogmærkeniveauer med indrykning
+- Valg mellem 12 indbyggede PDF-skrifttyper
+- Valgfrit selvrefererende bogmærke til indholdsfortegnelsessiden
+
+## Anvendelsesmuligheder
+
+- Tilføje en udskrivbar indholdsfortegnelse til e-bøger eller rapporter, der kun har digitale bogmærker
+- Oprette en indholdsfortegnelse til et sammenflettet dokument efter at have kombineret flere PDF'er
+- Generere en referenceside til lange tekniske manualer
+- Forberede dokumenter til tryk, hvor en synlig indholdsfortegnelse forventes
+
+## Tips
+
+- Hvis din PDF ikke har bogmærker, så brug først værktøjet [Redigér bogmærker](./bookmark) til at oprette dem, og kom derefter tilbage hertil for at generere indholdsfortegnelsen.
+- Til store dokumenter forbedrer en større skriftstørrelse som 14 pt eller 16 pt læsbarheden.
+
+## Relaterede værktøjer
+
+- [Redigér bogmærker](./bookmark)
+- [Sidetal](./page-numbers)
+- [Sidehoved og sidefod](./header-footer)
diff --git a/docs/da/tools/text-color.md b/docs/da/tools/text-color.md
new file mode 100644
index 00000000..7bf1d106
--- /dev/null
+++ b/docs/da/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Skift tekstfarve
+description: Skift farven på al tekst i din PDF til en farve, du selv vælger.
+---
+
+# Skift tekstfarve
+
+Udskift tekstens farve i hele din PDF. Værktøjet finder tekstområder på hver side og genfarver dem til din valgte farve, mens dokumentets layout og indhold, der ikke er tekst, bevares.
+
+## Sådan fungerer det
+
+1. Upload din PDF-fil.
+2. Vælg en ny tekstfarve med farvevælgeren. Standard er blå (#0000FF).
+3. Klik på **Skift tekstfarve** for at behandle.
+4. Den genfarvede PDF downloades automatisk. En statusindikator viser, hvilken side der behandles.
+
+## Indstillinger
+
+- **Ny tekstfarve**: En farvevælger til at vælge erstatningsfarven for al tekst i dokumentet.
+
+## Funktioner
+
+- Genfarver tekst på alle sider i dokumentet
+- Behandling side for side med statusvisning
+- Farvevælger med fuld understøttelse af hex-farver
+- Bevarer sidelayout og elementer, der ikke er tekst
+
+## Anvendelsesmuligheder
+
+- Ændre sort tekst til mørkeblå for et blødere, mere moderne dokumentudseende
+- Genfarve tekst, så den passer til brandretningslinjer, før dokumenter distribueres
+- Konvertere tekst til en bestemt farve af hensyn til tilgængelighed
+- Gøre tekst synlig mod en nyligt anvendt baggrundsfarve
+
+## Tips
+
+- Dette værktøj gengiver sider i 2x skala for kvalitetens skyld og genopbygger derefter PDF'en. Resultatet er billedbaseret, så teksten kan ikke længere markeres eller søges i.
+- Til dokumenter, hvor du skal beholde markérbar tekst, kan du i stedet redigere PDF'en direkte med [PDF-editor](./edit-pdf).
+- Behandlingstiden stiger med sideantallet, da hver side gengives for sig.
+
+## Relaterede værktøjer
+
+- [Baggrundsfarve](./background-color)
+- [Invertér farver](./invert-colors)
+- [Justér farver](./adjust-colors)
diff --git a/docs/da/tools/tiff-to-pdf.md b/docs/da/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..90ef8c11
--- /dev/null
+++ b/docs/da/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF til PDF
+description: Konvertér enkelt- og flersidede TIFF-billeder til PDF i din browser med fuld sideunderstøttelse.
+---
+
+# TIFF til PDF
+
+Konvertér TIFF-filer til PDF, herunder flersidede TIFF'er. Hver side (eller "IFD") i en TIFF-fil bliver til en separat side i den resulterende PDF. Det er især nyttigt til scannede dokumenter, faxer og medicinske billeder, som ofte gemmes som flersidede TIFF'er.
+
+## Understøttede formater
+
+| Format | Filendelser |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine TIFF-filer.
+2. Gennemgå fillisten, og administrér den efter behov.
+3. Klik på **Konvertér til PDF**. Resultatet downloades som `from_tiff.pdf`.
+
+Værktøjet afkoder hver TIFF-fil med en JavaScript-TIFF-dekoder og udtrækker de rå RGBA-pixeldata for hver side. Hver side gengives på et lærred, eksporteres som PNG og indlejres i PDF'en. Sidemålene svarer til de oprindelige TIFF-sider.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere kvalitetsindstillinger. Billeder indlejres i deres oprindelige opløsning.
+
+## Anvendelsesmuligheder
+
+- Konvertere flersidede faxdokumenter (TIFF-F) til et mere flytbart PDF-format
+- Gøre scannede dokumentarkiver gemt som TIFF til søgbare PDF'er (kombinér bagefter med OCR-værktøjet)
+- Behandle medicinske billedfiler (patologisnit, radiologieksport), der bruger TIFF
+- Konvertere GIS- eller satellitbilleder i TIFF til delbare dokumenter
+
+## Tips
+
+- Flersidede TIFF'er understøttes fuldt ud. En TIFF på 10 sider giver en PDF på 10 sider. Du behøver ikke opdele TIFF'en først.
+- Meget store TIFF-filer (hundredvis af megabyte) kan tage længere tid at behandle, da hele filen skal afkodes i browserens hukommelse.
+- Hvis du har brug for OCR på den resulterende PDF, så kør den gennem værktøjet [OCR PDF](./ocr-pdf) efter konverteringen.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [BMP til PDF](./bmp-to-pdf)
+- [JPG til PDF](./jpg-to-pdf)
diff --git a/docs/da/tools/txt-to-pdf.md b/docs/da/tools/txt-to-pdf.md
new file mode 100644
index 00000000..06c2c010
--- /dev/null
+++ b/docs/da/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Tekst til PDF
+description: Konvertér rene tekstfiler eller skrevet tekst til PDF med brugerdefinerede skrifttyper, farver og sidestørrelser.
+---
+
+# Tekst til PDF
+
+Konvertér ren tekst til en formateret PDF. Du kan uploade `.txt`-filer eller skrive direkte i den indbyggede teksteditor. Værktøjet understøtter flere skrifttyper, brugerdefinerede tekstfarver og et bredt udvalg af sidestørrelser, fra A0 ned til A10 samt US Letter, Legal og Tabloid.
+
+## Understøttede formater
+
+| Input | Filendelser |
+| :----------------- | :---------------------------- |
+| Rene tekstfiler | `.txt` |
+| Direkte tekstinput | Skriv eller indsæt i editoren |
+
+## Sådan fungerer det
+
+1. Vælg inputtilstand med kontakten øverst: **Upload filer** eller **Skriv tekst**.
+2. Hvis du uploader, så træk og slip eller klik for at vælge en eller flere `.txt`-filer. Hvis du skriver, så indtast din tekst direkte i tekstfeltet.
+3. Konfigurér formateringsindstillingerne: skrifttypefamilie, skriftstørrelse, tekstfarve og sidestørrelse.
+4. Klik på **Opret PDF**. Resultatet downloades som `text_to_pdf.pdf`.
+
+Når du uploader flere filer, sættes deres indhold sammen med tomme linjer imellem.
+
+## Indstillinger
+
+| Indstilling | Værdier | Standard |
+| :-------------------- | :------------------------------------------------------------------------------- | :------------- |
+| **Skrifttypefamilie** | Helvetica (sans-serif), Tiro (serif), Courier (monospace), Times (serif) | Helvetica |
+| **Skriftstørrelse** | 6 til 72 pt | 12 |
+| **Tekstfarve** | Enhver farve via farvevælger | Sort (#000000) |
+| **Sidestørrelse** | ISO A0 til A10, B0 til B10, C0 til C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+RTL-sprog (arabisk, hebraisk, persisk, urdu) registreres automatisk. Når RTL-tekst findes, skifter tekstretning og justering tilsvarende.
+
+## Anvendelsesmuligheder
+
+- Konvertere kodestykker eller logfiler til en udskrivbar PDF med Courier-skrifttype
+- Lave en hurtig PDF af mødenoter, der er skrevet på stedet
+- Formatere et rent tekstmanuskript med en bestemt skrifttype og sidestørrelse til indsendelse
+- Producere en PDF-version af en README eller changelog til offline distribution
+
+## Tips
+
+- Brug tilstanden **Skriv tekst**, når du hurtigt vil konvertere indhold fra udklipsholderen uden først at gemme det som fil.
+- Courier (monospace) er det bedste skrifttypevalg til kode, logfiler eller alt indhold, hvor kolonnejustering har betydning.
+- Sidemarginerne er faste på 72 punkter (1 tomme) på alle sider.
+
+## Relaterede værktøjer
+
+- [Markdown til PDF](./markdown-to-pdf)
+- [CSV til PDF](./csv-to-pdf)
+- [Word til PDF](./word-to-pdf)
diff --git a/docs/da/tools/unlock-pdf.md b/docs/da/tools/unlock-pdf.md
new file mode 100644
index 00000000..e397eb6f
--- /dev/null
+++ b/docs/da/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Lås PDF op
+description: Fjern adgangskodebeskyttelse fra krypterede PDF-filer. Understøtter batchdekryptering med én adgangskode til flere filer.
+---
+
+# Lås PDF op
+
+Hvis du har adgangskoden til en krypteret PDF, fjerner dette værktøj krypteringen helt og producerer en oplåst kopi, som alle kan åbne uden adgangskode. Det understøtter batchdekryptering, når flere PDF-filer deler den samme adgangskode.
+
+## Sådan fungerer det
+
+1. Upload en eller flere krypterede PDF-filer.
+2. Indtast den **adgangskode**, der blev brugt til at beskytte filerne.
+3. Klik på **Dekryptér PDF**.
+4. En enkelt fil downloades direkte. Flere filer giver et ZIP-arkiv med alle de oplåste PDF-filer.
+
+## Funktioner
+
+- Dekryptering af enkeltfiler og batches
+- Håndterer både brugeradgangskoder og ejeradgangskoder
+- Giver et helt ukrypteret resultat uden resterende begrænsninger
+- Tydelig fejlrapportering ved forkerte adgangskoder eller beskadigede filer
+- Succes og fejl pr. fil i batchtilstand
+
+## Forskellen fra Fjern begrænsninger
+
+**Dekryptér PDF** kræver adgangskoden og fjerner al kryptering. **Fjern begrænsninger** retter sig mod brugsbegrænsninger (udskrivning, kopiering, redigering) og kræver muligvis ikke en adgangskode, hvis der kun er sat en ejeradgangskode. Brug Dekryptér, når PDF-filen slet ikke kan åbnes uden adgangskode.
+
+## Anvendelsesområder
+
+- Permanent oplåsning af PDF-filer, du selv har krypteret tidligere, når adgangskoden ikke længere er nødvendig
+- Fjernelse af kryptering fra en batch af arkiverede dokumenter for lettere langtidsadgang
+- Klargøring af adgangskodebeskyttede PDF-filer til et dokumenthåndteringssystem, der ikke understøtter krypterede filer
+- Oplåsning af PDF-filer før de flettes med andre dokumenter (mange fletteværktøjer kan ikke behandle krypteret input)
+
+## Tips
+
+- Adgangskodefeltet gælder for alle uploadede filer. Hvis dine PDF-filer har forskellige adgangskoder, skal du behandle dem i separate batches.
+- Hvis du får fejlen "Forkert adgangskode", så kontrollér for mellemrum til sidst eller caps lock.
+- Efter dekryptering har resultatet ingen sikkerhed. Kryptér igen med Kryptér PDF, hvis du vil bruge en ny adgangskode.
+
+## Relaterede værktøjer
+
+- [Kryptér PDF](./protect-pdf): anvend kryptering igen med en ny adgangskode
+- [Fjern begrænsninger](./remove-restrictions): fjern brugsbegrænsninger uden fuld dekryptering
+- [Skift tilladelser](./change-permissions): ændr bestemte tilladelser på en krypteret PDF
diff --git a/docs/da/tools/validate-signature-pdf.md b/docs/da/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..df188133
--- /dev/null
+++ b/docs/da/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Validér signatur
+description: Verificér digitale signaturer i PDF-filer. Kontrollér certifikatets gyldighed, underskriverens identitet, dokumentets integritet og status for tillidskæden.
+---
+
+# Validér signatur
+
+Upload en signeret PDF, og værktøjet udtrækker hver digital signatur, identificerer underskriveren, kontrollerer certifikatets gyldighed og rapporterer, om dokumentet er ændret siden signeringen. Du kan også angive et betroet certifikat for at verificere signaturkæden.
+
+## Sådan fungerer det
+
+1. Upload en signeret PDF-fil. Valideringen starter automatisk.
+2. Værktøjet viser en oversigt: antal fundne signaturer og hvor mange der er gyldige.
+3. Hver signatur får et detaljeret kort med underskrivers navn, udsteder, datoer og status.
+4. Du kan eventuelt uploade et **betroet certifikat** (.pem, .crt, .cer, .der) for at verificere signaturen mod et bestemt tillidsanker. Genvalidering kører automatisk.
+
+## Hvad der kontrolleres
+
+### Parsing af signatur
+
+Værktøjet udtrækker PKCS#7-signaturobjekter fra PDF-filen, afkoder ASN.1-strukturen og henter underskriverens X.509-certifikat sammen med en eventuel certifikatkæde, der er indlejret i signaturen.
+
+### Certifikatets gyldighed
+
+- **Udløb**: Ligger certifikatet i øjeblikket inden for sin gyldighedsperiode?
+- **Registrering af selvsignerede certifikater**: Er certifikatet sin egen udsteder?
+- **Tillidskæde**: Når et betroet certifikat er angivet, fører underskriverens certifikat så tilbage til det?
+
+### Kryptografisk verificering
+
+- Værktøjet rekonstruerer de bytes, som signaturens `/ByteRange` dækker, hasher dem med den algoritme, underskriveren har angivet, og sammenligner resultatet med attributten `messageDigest` i signaturen.
+- Derefter serialiseres de signerede attributter igen som et DER SET, og signaturen verificeres mod signaturcertifikatets offentlige nøgle.
+- **En signatur rapporteres kun som gyldig, når alt dette lykkes.** Hvis PDF-bytes er ændret efter signeringen, eller den indlejrede signatur ikke passer til underskriverens nøgle, viser status "Ugyldig: kryptografisk verificering mislykkedes" med den konkrete årsag.
+
+#### Understøttede signaturalgoritmer
+
+| Algoritme | Verificeringsvej |
+| ----------------------- | -------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, med Web Crypto som fallback |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` efter DER → IEEE P1363-signaturkonvertering |
+
+Hvis en signatur bruger en algoritme uden for denne liste (for eksempel Ed25519, SM2 eller RSA med et usædvanligt digest-OID), viser kortet **"Ikke verificeret: signaturalgoritmen understøttes ikke"** med gul farve sammen med det konkrete OID eller den konkrete årsag. Det er en bevidst skelnen mellem tre tilstande:
+
+- **Gyldig**: signaturen er kryptografisk verificeret mod underskriverens offentlige nøgle.
+- **Ugyldig**: verificeringen kørte og gav et negativt resultat (ændrede bytes, nøglen passer ikke).
+- **Ikke verificeret**: værktøjet kunne ikke køre verificering for denne algoritme. Certifikatets metadata vises stadig, men du bør behandle signaturen som "ukendt" og verificere den med Adobe Acrobat eller `openssl cms -verify`.
+
+### Usikre digest-algoritmer
+
+- Signaturer, der bruger **MD5 eller SHA-1**, afvises som ugyldige og markeres med status "Usikker digest". Begge algoritmer har offentliggjorte kollisionsangreb, så en signatur over en SHA-1- eller MD5-hash giver ingen integritetsgaranti.
+- SHA-224, SHA-256, SHA-384 og SHA-512 accepteres alle.
+
+### Dokumentdækning
+
+- **Fuld dækning**: Signaturen dækker hele PDF-filen, hvilket betyder, at ingen bytes er tilføjet eller ændret efter signeringen.
+- **Delvis dækning**: Signaturen dækker kun en del af filen. Det kan betyde, at der er foretaget ændringer efter signeringen (ikke nødvendigvis ondsindede: trinvise gemninger giver delvis dækning).
+
+## Signaturdetaljer
+
+Hvert signaturkort viser:
+
+- **Underskrevet af**: Almindeligt navn, organisation og e-mail fra underskriverens certifikat
+- **Udsteder**: Den certificeringsmyndighed, der udstedte underskriverens certifikat
+- **Underskrevet den**: Tidsstemplet, der er indlejret i signaturen
+- **Gyldig fra / Gyldig til**: Certifikatets gyldighedsperiode
+- **Årsag**: Hvorfor dokumentet blev signeret (hvis angivet)
+- **Placering**: Hvor det blev signeret (hvis angivet)
+- **Dækningsstatus**: Fuld eller delvis
+- **Tillidsmærke**: Betroet eller Ikke i tillidskæden (kun når et brugerdefineret certifikat er angivet)
+
+### Tekniske detaljer
+
+Udvid afsnittet med tekniske detaljer for at se:
+
+- Serienummer på underskriverens certifikat
+- Digest-algoritme (SHA-256, SHA-512 osv.)
+- Signaturalgoritme (RSA med SHA-256, ECDSA med SHA-256 osv.)
+- Fejlmeddelelser for ugyldige signaturer
+
+## Anvendelsesområder
+
+- Verificering af en digitalt signeret kontrakt, før du kontrasignerer
+- Revision af signerede dokumenter for at bekræfte, at de ikke er manipuleret
+- Kontrol af, om et certifikat er udløbet, siden dokumentet blev signeret
+- Validering af signaturer mod din organisations rodcertifikat
+- Undersøgelse af signeringsdetaljer i offentlige eller juridiske dokumenter
+
+## Tips
+
+- Et selvsigneret certifikat betyder ikke, at signaturen er ugyldig. Det betyder, at underskriverens identitet ikke kan bekræftes via en betroet tredjepart. Det er almindeligt for interne dokumenter.
+- Delvis dækning er ikke altid tegn på manipulation. Mange PDF-arbejdsgange tilføjer trinvise opdateringer (som en anden signatur), der giver delvis dækning.
+- Upload din organisations rod- eller mellemcertifikat som betroet certifikat for at få verificering af tillidskæden.
+
+## Relaterede værktøjer
+
+- [Digital signatur](./digital-sign-pdf): signér PDF-filer med dit eget certifikat
+- [Fladgør PDF](./flatten-pdf): fladgør en PDF før signering for at forhindre ændringer efter signeringen
+- [Fjern metadata](./remove-metadata): ryd op i en PDF, før du anvender en signatur
diff --git a/docs/da/tools/view-metadata.md b/docs/da/tools/view-metadata.md
new file mode 100644
index 00000000..1d1c956f
--- /dev/null
+++ b/docs/da/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Vis metadata
+description: Undersøg alle metadataegenskaber i en PDF, herunder dokumentoplysninger, XMP-data og strukturelle detaljer.
+---
+
+# Vis metadata
+
+Undersøg de skjulte egenskaber, der er indlejret i en PDF-fil. Værktøjet viser dokumentoplysninger (titel, forfatter, datoer), XMP-metadata, sidestørrelser og andre strukturelle data i et læsbart format.
+
+## Sådan fungerer det
+
+1. Upload en PDF-fil.
+2. Værktøjet parser straks filen og viser alle tilgængelige metadata i overskuelige sektioner.
+3. Gennemgå dokumentets infoordbog, XMP-metadatatræet og de strukturelle egenskaber.
+4. Intet behandlingstrin er nødvendigt: metadata vises, så snart filen er indlæst.
+
+## Funktioner
+
+- Viser standardfelter for dokumentoplysninger: Title, Author, Subject, Keywords, Creator, Producer
+- Viser oprettelses- og ændringsdatoer i et læsbart format
+- Parser og gengiver hele XMP-metadatatræet med indlejrede navnerum
+- Konverterer PDF-datoformatet (`D:20240101120000Z`) til læsbare datoer
+- Organiseret i sammenklappelige sektioner for nem navigation
+
+## Metadatasektioner
+
+| Sektion | Indhold |
+| ----------------------- | -------------------------------------------------------------------------------------- |
+| **Dokumentoplysninger** | Title, Author, Subject, Keywords, Creator, Producer, Creation Date, Modification Date |
+| **XMP-metadata** | Komplet XML-baseret metadatatræ med Dublin Core, XAP, PDF og brugerdefinerede navnerum |
+| **Dokumentegenskaber** | Sideantal, PDF-version, filstørrelse, krypteringsstatus |
+
+## Anvendelsesområder
+
+- Kontrol af, hvem der har skrevet en PDF, og hvornår den sidst blev ændret
+- Bekræftelse af, at metadata er indstillet korrekt, før et dokument udgives
+- Revision af PDF-filer af hensyn til privatlivet ved at kontrollere, hvilke personlige oplysninger der er indlejret
+- Undersøgelse af, hvilken software der er brugt til at oprette eller ændre en PDF (via feltet Producer)
+- Gennemgang af XMP-metadata i forbindelse med compliance for digital asset management
+
+## Tips
+
+- PDF-datostrenge, der begynder med `D:`, konverteres automatisk til din lokale tidszone.
+- Hvis metadatafelter virker tomme, har PDF-skaberen blot ikke angivet dem. Ikke alle PDF-filer indeholder rige metadata.
+- Brug [Redigér metadata](./edit-metadata) til at ændre metadata efter gennemgangen. Brug Fjern metadata til at fjerne dem helt.
+
+## Relaterede værktøjer
+
+- [Redigér metadata](./edit-metadata)
+- [PDF OCG-lag](./pdf-layers)
+- [Sammenlign PDF-filer](./compare-pdfs)
diff --git a/docs/da/tools/vsd-to-pdf.md b/docs/da/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..70bc86e2
--- /dev/null
+++ b/docs/da/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD til PDF
+description: Konvertér Microsoft Visio-diagrammer (VSD/VSDX) til PDF i din browser. Gratis, privat, ingen Visio nødvendig.
+---
+
+# VSD til PDF
+
+Konvertér Microsoft Visio-diagrammer til PDF uden at installere Visio. VSD- og VSDX-filer indeholder rutediagrammer, organisationsdiagrammer, netværksdiagrammer og plantegninger, som de fleste ikke kan åbne. Dette værktøj gengiver dem som rene PDF-filer, der kan ses på enhver enhed.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----------- | :---------- | :------------------------------------------- |
+| Visio Binary | `.vsd` | Ældre Visio-format (Visio 2003 og tidligere) |
+| Visio XML | `.vsdx` | Moderne Visio-format (Visio 2013+) |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine VSD- eller VSDX-filer. Begge formater kan blandes i en enkelt batch.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurvsikonet, eller brug **Tilføj flere filer** for at tilføje flere diagrammer.
+3. Klik på **Konverter til PDF**. Den LibreOffice-baserede motor indlæses i browseren og gengiver hvert diagram til en PDF, så former, forbindelser, etiketter og sidelayout bevares.
+4. Et enkelt diagram downloades direkte som PDF. Flere filer giver et ZIP-arkiv med navnet `vsd-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen konfiguration er nødvendig. Konverteren respekterer den oprindelige sidestørrelse og orientering fra Visio-dokumentet.
+
+## Anvendelsesområder
+
+- Gennemgang af Visio-diagrammer fra en kollega, når du ikke har en Visio-licens
+- Indsættelse af netværks- eller arkitekturdiagrammer i projektdokumentation som PDF
+- Udskrivning af organisationsdiagrammer eller procesforløb som mødemateriale
+- Arkivering af ældre VSD-filer fra tidligere Visio-versioner i et fremtidssikret format
+
+## Tips
+
+- Visio-dokumenter med flere sider giver PDF-filer med flere sider, hvor hver Visio-side svarer til en PDF-side.
+- VSDX-filer (det moderne XML-baserede format) konverteres generelt med højere troværdighed end ældre binære VSD-filer.
+- LibreOffice-motoren indlæses én gang pr. session. Forvent en kort ventetid ved den første konvertering og hurtigere resultater for efterfølgende filer.
+
+## Relaterede værktøjer
+
+- [ODG til PDF](./odg-to-pdf)
+- [PUB til PDF](./pub-to-pdf)
+- [PSD til PDF](./psd-to-pdf)
diff --git a/docs/da/tools/webp-to-pdf.md b/docs/da/tools/webp-to-pdf.md
new file mode 100644
index 00000000..fe0e2039
--- /dev/null
+++ b/docs/da/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP til PDF
+description: Konvertér WebP-billeder til PDF direkte i din browser med justerbar komprimeringskvalitet.
+---
+
+# WebP til PDF
+
+Konvertér Googles WebP-billedformat til PDF. Det er især nyttigt, når du har downloadet billeder fra nettet i WebP-format og har brug for dem i et mere udbredt format til udskrivning eller deling.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :----- | :----------- |
+| WebP | `.webp` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine WebP-filer.
+2. Gennemgå fillisten, og fjern de filer, du ikke har brug for.
+3. Vælg et niveau for **PDF-kvalitet**.
+4. Klik på **Konverter til PDF**. Resultatet downloades som `from_webps.pdf`.
+
+Internt afkodes hvert WebP-billede via browserens canvas-API og indlejres derefter i PDF-filen med pdf-lib. Det betyder, at konverteringen virker i enhver browser, der understøtter WebP-afkodning (alle moderne browsere gør).
+
+## Indstillinger
+
+**PDF-kvalitet** styrer komprimeringen, når billeder indlejres:
+
+- **Høj kvalitet**: bevarer flest detaljer.
+- **Mellem kvalitet** (standard): afbalanceret resultat.
+- **Lav kvalitet**: mindste filstørrelse.
+
+## Anvendelsesområder
+
+- Konvertering af webdownloadede billeder gemt som WebP til en udskrivbar PDF
+- Samling af WebP-skærmbilleder fra Chrome eller Edge i dokumentation
+- Oprettelse af en PDF-portefølje af billeder eksporteret fra designværktøjer, der som standard bruger WebP
+- Arkivering af WebP-billeder i et mere udbredt læsbart format
+
+## Tips
+
+- WebP afkodes internt til PNG, før det indlejres i PDF-filen, så tabsfrie WebP-billeder bevarer deres kvalitet på indstillingen High.
+- Hvis du har en blanding af WebP og andre billedformater, så brug værktøjet [Billeder til PDF](./image-to-pdf) i stedet: det accepterer alt på én gang.
+
+## Relaterede værktøjer
+
+- [Billeder til PDF](./image-to-pdf)
+- [PNG til PDF](./png-to-pdf)
+- [JPG til PDF](./jpg-to-pdf)
diff --git a/docs/da/tools/word-to-pdf.md b/docs/da/tools/word-to-pdf.md
new file mode 100644
index 00000000..57258690
--- /dev/null
+++ b/docs/da/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word til PDF
+description: Konvertér Word-dokumenter (DOC, DOCX), ODT- og RTF-filer til PDF i din browser med fuld bevarelse af formatering.
+---
+
+# Word til PDF
+
+Konvertér Microsoft Word-dokumenter og kompatible formater til PDF. Værktøjet bruger en browserbaseret LibreOffice-motor, der håndterer DOC-, DOCX-, ODT- og RTF-filer og bevarer formatering, tabeller, billeder, sidehoveder, sidefødder og typografier i resultatet.
+
+## Understøttede formater
+
+| Format | Filtypenavne |
+| :---------------- | :----------- |
+| Word (moderne) | `.docx` |
+| Word (ældre) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine Word-dokumenter. Du kan vælge flere filer på én gang.
+2. Gennemgå og administrér fillisten.
+3. Klik på **Konverter til PDF**. LibreOffice-motoren indlæses ved første brug (en statusindikator viser initialiseringen), og derefter konverteres hver fil.
+4. En enkelt fil downloades direkte som PDF. Flere filer pakkes i `word-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj har ingen yderligere indstillinger. LibreOffice-motoren producerer resultatet med sin standardprofil for PDF-eksport.
+
+## Resultat
+
+| Antal filer | Resultat |
+| :---------- | :----------------------------------------------------------------- |
+| 1 fil | Enkelt PDF-download (oprindeligt filnavn med filtypenavnet `.pdf`) |
+| 2+ filer | ZIP-arkiv (`word-converted.zip`) med én PDF pr. fil |
+
+## Anvendelsesområder
+
+- Konvertering af et CV eller en ansøgning fra DOCX til PDF, før du sender en jobansøgning
+- Batchkonvertering af en række kontrakter eller tilbud til PDF til levering til en kunde
+- Omdannelse af ældre `.doc`-filer til moderne PDF-filer til langtidsarkivering
+- Konvertering af samarbejdsdokumenter fra Google Docs (eksporteret som DOCX) til PDF
+- Fremstilling af udskriftsklare PDF-filer fra Word-skabeloner, der bruges til automatisk dokumentgenerering
+
+## Tips
+
+- LibreOffice-motoren downloades én gang pr. session og caches. Forvent et par sekunders indlæsningstid ved den første konvertering, mens efterfølgende konverteringer er meget hurtigere.
+- Kompleks formatering (makroer, ActiveX-kontroller, avanceret SmartArt) konverteres måske ikke perfekt. Almindelige dokumentelementer som tekst, tabeller, billeder, sidehoveder og fodnoter konverteres pålideligt.
+- Da dette værktøj også accepterer ODT og RTF, kan du bruge det som en samlet konverter til alle tekstbehandlingsformater.
+
+## Relaterede værktøjer
+
+- [ODT til PDF](./odt-to-pdf)
+- [RTF til PDF](./rtf-to-pdf)
+- [Excel til PDF](./excel-to-pdf)
+- [PowerPoint til PDF](./powerpoint-to-pdf)
diff --git a/docs/da/tools/wpd-to-pdf.md b/docs/da/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..e6a802bd
--- /dev/null
+++ b/docs/da/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD til PDF
+description: Konvertér WordPerfect-dokumenter (WPD) til PDF i din browser med LibreOffice. Gratis og privat.
+---
+
+# WPD til PDF
+
+Konvertér Corel WordPerfect-dokumenter til PDF-filer. WPD var engang det dominerende tekstbehandlingsformat på advokatkontorer og i offentlige myndigheder. Hvis du har gamle WordPerfect-filer, som moderne software nægter at åbne, genopliver dette værktøj dem som almindelige PDF-filer.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :---------- | :---------- | :-------------------------------- |
+| WordPerfect | `.wpd` | Alle større WordPerfect-versioner |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine WPD-filer. Du kan vælge flere filer på én gang.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurvsikonet, eller brug **Tilføj flere filer** for at tilføje flere dokumenter.
+3. Klik på **Konverter til PDF**. Værktøjet indlæser en LibreOffice-baseret konverteringsmotor i din browser, som parser WPD-formatet og udskriver PDF.
+4. En enkelt fil downloades direkte som PDF. Batchkonverteringer giver et ZIP-arkiv med navnet `wpd-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen konfiguration er nødvendig. LibreOffice-motoren håndterer WPD-formatering, skrifttyper og layout automatisk.
+
+## Anvendelsesområder
+
+- Åbning af årtier gamle juridiske dokumenter skrevet i WordPerfect
+- Konvertering af arkiverede offentlige indberetninger fra WPD til et moderne format
+- Migrering af et ældre WordPerfect-dokumentbibliotek til PDF til langtidslagring
+- Deling af WPD-filer med modtagere, der ikke har Corel WordPerfect installeret
+
+## Tips
+
+- LibreOffice-motoren indlæses ved første brug, hvilket tager et øjeblik. Efterfølgende konverteringer i samme session er hurtigere.
+- Komplekse WPD-makroer og reveal codes bevares ikke, men det visuelle layout, tekstindholdet og den grundlæggende formatering overføres til PDF.
+
+## Relaterede værktøjer
+
+- [WPS til PDF](./wps-to-pdf)
+- [ODG til PDF](./odg-to-pdf)
diff --git a/docs/da/tools/wps-to-pdf.md b/docs/da/tools/wps-to-pdf.md
new file mode 100644
index 00000000..c3ec61ea
--- /dev/null
+++ b/docs/da/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS til PDF
+description: Konvertér Microsoft Works-dokumenter (WPS) til PDF i din browser. Gratis, ingen tilmelding, fuldt privat.
+---
+
+# WPS til PDF
+
+Konvertér Microsoft Works-tekstbehandlingsfiler til PDF. Microsoft Works fulgte med forbrugercomputere gennem hele slutningen af 1990'erne og 2000'erne, og mange WPS-filer ligger stadig på gamle harddiske og i e-mailarkiver. Dette værktøj åbner dem i browseren og producerer rene PDF-filer.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :-------------- | :---------- | :---------------------------------------- |
+| Microsoft Works | `.wps` | Tekstbehandlingsfiler fra Microsoft Works |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine WPS-filer. Flere filer accepteres.
+2. Gennemgå fillisten. Brug papirkurvsikonet til at fjerne enkelte filer, eller klik på **Tilføj flere filer** for at udvide din batch.
+3. Klik på **Konverter til PDF**. En LibreOffice-baseret motor indlæses i browseren og konverterer hvert WPS-dokument til PDF.
+4. Én fil downloades direkte som PDF. Flere filer samles i et ZIP-arkiv med navnet `wps-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen yderligere indstillinger er nødvendige. Konverteren håndterer tekst, grundlæggende formatering og indlejrede billeder fra WPS-filen.
+
+## Anvendelsesområder
+
+- Gendannelse af gamle skole- eller arbejdsdokumenter gemt i Microsoft Works-format
+- Åbning af WPS-vedhæftninger i e-mails, når du ikke har Microsoft Works installeret
+- Konvertering af et arkiv med WPS-filer til migrering til et moderne dokumentsystem
+- Udskrivning af ældre dokumenter, som nuværende tekstbehandlingsprogrammer ikke kan åbne
+
+## Tips
+
+- Forveksl ikke Microsoft Works-filer med `.wps`-filtypenavnet fra WPS Office. Dette værktøj er specifikt til det ældre Microsoft Works-format.
+- LibreOffice-motoren tager et øjeblik at indlæse ved første brug. Når den er indlæst, kører yderligere konverteringer i samme session hurtigere.
+
+## Relaterede værktøjer
+
+- [WPD til PDF](./wpd-to-pdf)
+- [PUB til PDF](./pub-to-pdf)
diff --git a/docs/da/tools/xml-to-pdf.md b/docs/da/tools/xml-to-pdf.md
new file mode 100644
index 00000000..58d07a02
--- /dev/null
+++ b/docs/da/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML til PDF
+description: Konvertér XML-filer til strukturerede PDF-dokumenter i din browser. Gratis, privat, ingen serverbehandling.
+---
+
+# XML til PDF
+
+Konvertér XML-datafiler til læsbare, strukturerede PDF-dokumenter. Rå XML er kraftfuldt, men svært at læse for mennesker. Dette værktøj parser XML-træet, genkender gentagne datastrukturer og gengiver dem som formaterede tabeller og sektioner i en A4-PDF i liggende format.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----- | :---------- | :----------------------------- |
+| XML | `.xml` | Ethvert velformet XML-dokument |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine XML-filer. Flere filer kan behandles i en enkelt batch.
+2. Gennemgå fillisten. Fjern uønskede filer med papirkurvsikonet, eller klik på **Tilføj flere filer** for at tilføje flere.
+3. Klik på **Konverter til PDF**. Værktøjet parser XML-strukturen med browserens indbyggede DOMParser, analyserer datahierarkiet og gengiver det til en PDF med jsPDF og auto-table-formatering.
+4. En enkelt fil downloades som PDF. Flere konverteringer pakkes i `xml-to-pdf.zip`.
+
+## Indstillinger
+
+Ingen manuel konfiguration er nødvendig. Konverteren registrerer automatisk XML-strukturen og vælger passende tabellayouts. Resultatet bruger A4 i liggende format for at give plads til brede datasæt.
+
+## Anvendelsesområder
+
+- Omdannelse af XML-dataeksporter fra databaser eller API'er til udskrivbare rapporter
+- Oprettelse af læsbare oversigter ud fra XML-konfigurationsfiler
+- Konvertering af XML-baserede fakturaer eller transaktionslogge til PDF til arkivering
+- Gør XML-sitemaps eller RSS-feeds læsbare i dokumentform
+
+## Tips
+
+- XML skal være velformet. Hvis parseren støder på syntaksfejl, mislykkes konverteringen med en beskrivende fejlmeddelelse, der peger på problemet.
+- Dybt indlejrede XML-strukturer flades ud til tabeller. For bedste resultat bør dataene have gentagne søskendeelementer med ensartede underelementer.
+- Statusopdateringer vises under konverteringen og viser hver fase: læsning, parsing, analyse og gengivelse.
+
+## Relaterede værktøjer
+
+- [FB2 til PDF](./fb2-to-pdf)
+- [XPS til PDF](./xps-to-pdf)
+- [E-mail til PDF](./email-to-pdf)
diff --git a/docs/da/tools/xps-to-pdf.md b/docs/da/tools/xps-to-pdf.md
new file mode 100644
index 00000000..79409616
--- /dev/null
+++ b/docs/da/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS til PDF
+description: Konvertér XPS- og OXPS-dokumenter til PDF i din browser. Ingen upload, ingen tilmelding, fuldt privat.
+---
+
+# XPS til PDF
+
+Konvertér Microsoft XPS- og OXPS-dokumenter til almindelige PDF-filer. XPS (XML Paper Specification) var Microsofts svar på PDF, men understøttelsen er faldet på tværs af platforme. Dette værktøj gør de dokumenter universelt læsbare igen.
+
+## Understøttede formater
+
+| Format | Filtypenavn | Noter |
+| :----- | :---------- | :----------------------------------- |
+| XPS | `.xps` | Oprindeligt Microsoft XPS-format |
+| OXPS | `.oxps` | Open XPS, ECMA-388-standardvarianten |
+
+## Sådan fungerer det
+
+1. Klik på uploadområdet, eller træk og slip dine XPS/OXPS-filer. Du kan vælge flere filer på én gang.
+2. Gennemgå fillisten. Fjern enkelte filer med papirkurvsikonet, eller klik på **Tilføj flere filer** for at tilføje flere dokumenter.
+3. Klik på **Konverter til PDF**. PyMuPDF-motoren behandler hvert dokument lokalt i din browser.
+4. En enkelt fil downloades direkte som PDF. Flere filer samles i et ZIP-arkiv med navnet `xps-converted.zip`.
+
+## Indstillinger
+
+Dette værktøj udfører en direkte formatkonvertering uden yderligere konfiguration. Resultatet bevarer de oprindelige sidemål, vektorgrafik, skrifttyper og billeder fra XPS-kilden.
+
+## Anvendelsesområder
+
+- Åbning af XPS-filer modtaget fra ældre Windows-systemer, der som standard brugte XPS-printerdriveren
+- Konvertering af OXPS-dokumenter fra Windows 10/11 til deling med macOS- eller Linux-brugere
+- Arkivering af ældre XPS-filer i et mere udbredt format
+- Gør XPS-baserede offentlige eller virksomhedsdokumenter tilgængelige for eksterne modtagere
+
+## Tips
+
+- Både filtypenavnene `.xps` og `.oxps` håndteres automatisk, så du kan blande dem i samme batch.
+- Hvis den oprindelige XPS-fil blev oprettet med en printerdriver i høj opløsning, bevarer den resulterende PDF den kvalitet. Der sker ingen resampling.
+
+## Relaterede værktøjer
+
+- [Word til PDF](./word-to-pdf)
+- [XML til PDF](./xml-to-pdf)
diff --git a/docs/de/contributing.md b/docs/de/contributing.md
new file mode 100644
index 00000000..42f1d366
--- /dev/null
+++ b/docs/de/contributing.md
@@ -0,0 +1,136 @@
+# Mitwirken
+
+Danke für Ihr Interesse, zu BentoPDF beizutragen! Diese Anleitung hilft Ihnen beim Einstieg.
+
+## Erste Schritte
+
+### Voraussetzungen
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Einrichtung
+
+```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
+```
+
+## Projektstruktur
+
+```
+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
+```
+
+## Ein neues Werkzeug hinzufügen
+
+### Schritt 1: Die Logikdatei erstellen
+
+Erstellen Sie `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
+});
+```
+
+### Schritt 2: Die HTML-Seite erstellen
+
+Erstellen Sie `src/pages/your-tool.html` nach dem Vorbild der bestehenden Werkzeugvorlagen.
+
+### Schritt 3: Das Werkzeug registrieren
+
+Fügen Sie in `src/js/config/tools.ts` Folgendes hinzu:
+
+```typescript
+{
+ href: import.meta.env.BASE_URL + 'your-tool.html',
+ name: 'Your Tool',
+ icon: 'ph-icon-name',
+ subtitle: 'Description of your tool.',
+}
+```
+
+### Schritt 4: Zur Build-Konfiguration hinzufügen
+
+Fügen Sie die Seite in `vite.config.ts` hinzu:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Schritt 5: Übersetzungen hinzufügen
+
+Fügen Sie Einträge in allen Sprachdateien unter `public/locales/` hinzu:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Code-Stil
+
+- Verwenden Sie TypeScript für allen neuen Code
+- Halten Sie sich zugunsten der Einheitlichkeit an bestehende Muster
+- Führen Sie vor dem Commit `npm run format` aus
+- Keine Kommentare im Produktionscode (Kommentare werden beim Build entfernt)
+
+## Pull-Request-Ablauf
+
+1. Erstellen Sie einen Feature-Branch: `git checkout -b feature/your-feature`
+2. Nehmen Sie Ihre Änderungen vor
+3. Testen Sie gründlich: `npm run build`
+4. Reichen Sie einen PR mit einer klaren Beschreibung ein
+
+## Übersetzung
+
+In [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) erfahren Sie, wie Sie neue Sprachen hinzufügen.
+
+## Contributor License Agreement
+
+Bevor Ihr PR gemergt werden kann, müssen Sie unsere CLA unterzeichnen:
+
+- [Individual CLA (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [Corporate CLA (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Hilfe erhalten
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Discord-Community](https://discord.gg/Bgq3Ay3f2w)
+
+## Lizenz
+
+BentoPDF ist dual lizenziert:
+
+- **AGPL-3.0** für Open-Source-Projekte, bei denen Sie Ihren gesamten Quellcode öffentlich teilen
+- **Kommerzielle Lizenz** für proprietäre Anwendungen mit geschlossenem Quellcode: [Lifetime-Lizenz für 79 $ erwerben](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Mit Ihrem Beitrag erklären Sie sich damit einverstanden, dass er unter diesen Bedingungen lizenziert wird.
diff --git a/docs/de/getting-started.md b/docs/de/getting-started.md
new file mode 100644
index 00000000..168918c5
--- /dev/null
+++ b/docs/de/getting-started.md
@@ -0,0 +1,80 @@
+# Erste Schritte
+
+Willkommen bei BentoPDF! Diese Anleitung hilft Ihnen, schnell loszulegen.
+
+## Was ist BentoPDF?
+
+BentoPDF ist ein kostenloses, quelloffenes PDF-Toolkit mit Fokus auf Privatsphäre, das **komplett in Ihrem Browser** läuft. Ihre Dateien verlassen nie Ihr Gerät: Die gesamte Verarbeitung erfolgt lokal mit WebAssembly (WASM).
+
+## Schnellstart
+
+### Option 1: Die gehostete Version nutzen
+
+Besuchen Sie [bentopdf.com](https://www.bentopdf.com), um BentoPDF sofort zu nutzen, ganz ohne Installation.
+
+### Option 2: Selbst hosten mit Docker
+
+> [!IMPORTANT]
+> Die Konvertierung von Office-Dateien benötigt `SharedArrayBuffer`. Dafür sind beide folgenden Header sowie ein sicherer Kontext erforderlich:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - ein sicherer Kontext
+>
+> `http://localhost` funktioniert für lokale Tests, weil Browser Loopback als vertrauenswürdig behandeln. `http://192.168.x.x` oder andere LAN-IPs gelten meist nicht als vertrauenswürdig, daher erfordern Word-/Excel-/PowerPoint-Konvertierungen HTTPS, wenn Sie von anderen Geräten in Ihrem Netzwerk darauf zugreifen.
+
+```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 gibt es in zwei Builds: dem **Self-Hosted-Build** (`bentopdf-simple`, oben verwendet) für interne Bereitstellungen in Teams und Organisationen und dem **Commercial-Build** (`bentopdf:latest`), den bentopdf.com selbst und Inhaber kommerzieller Lizenzen für öffentlich zugängliche Bereitstellungen nutzen. Beide enthalten dieselben PDF-Werkzeuge. Der Commercial-Build ergänzt den Hero-Bereich, die FAQ, Testimonials und den Footer von bentopdf.com. Im Zweifel nehmen Sie den Self-Hosted-Build.
+
+Öffnen Sie danach `http://localhost:3000` in Ihrem Browser.
+
+> [!NOTE]
+> Wenn Sie eine OCR-Bereitstellung in einer Air-Gap-Umgebung vorbereiten, müssen Sie zusätzlich zum Tesseract-Worker, zur Core-Runtime und zu den traineddata-Dateien auch die OCR-Textebenen-Schriften intern hosten. Die vollständige Einrichtung ist unter [Self-Hosting](/de/self-hosting/) dokumentiert, einschließlich `VITE_OCR_FONT_BASE_URL` und des mitgelieferten Verzeichnisses `ocr-fonts/`.
+
+### Option 3: Aus dem Quellcode bauen
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Funktionen im Überblick
+
+| Kategorie | Werkzeuge |
+| --------------------------- | -------------------------------------------------------------------------- |
+| **In PDF konvertieren** | Word, Excel, PowerPoint, Bilder, Markdown, EPUB, MOBI und mehr |
+| **Aus PDF konvertieren** | JPG, PNG, Text, Excel, SVG und mehr |
+| **Bearbeiten & Annotieren** | Signieren, Hervorheben, Schwärzen, Formulare ausfüllen, Stempel hinzufügen |
+| **Organisieren** | Zusammenführen, Teilen, Drehen, Seiten löschen, Neu anordnen |
+| **Optimieren** | Komprimieren, Reparieren, Verflachen, OCR |
+| **Sicherheit** | Verschlüsseln, Entschlüsseln, Beschränkungen entfernen |
+
+## Browser-Unterstützung
+
+BentoPDF funktioniert am besten mit modernen Browsern:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Nächste Schritte
+
+- [Alle Werkzeuge entdecken](/de/tools/)
+- [BentoPDF selbst hosten](/de/self-hosting/)
+- [Zum Projekt beitragen](/de/contributing)
diff --git a/docs/de/index.md b/docs/de/index.md
new file mode 100644
index 00000000..c9c3776b
--- /dev/null
+++ b/docs/de/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Kostenlose Open-Source-PDF-Werkzeuge'
+ tagline: Verarbeiten Sie PDFs komplett in Ihrem Browser. Keine Uploads. Keine Server. Vollständige Privatsphäre.
+ actions:
+ - theme: brand
+ text: Loslegen
+ link: /de/getting-started
+ - theme: alt
+ text: Werkzeuge ansehen
+ link: /de/tools/
+ - theme: alt
+ text: Selbst hosten
+ link: /de/self-hosting/
+ - theme: alt
+ text: Kommerzielle Lizenz
+ link: /de/licensing
+
+features:
+ - icon: 🔒
+ title: 100% privat
+ details: Ihre Dateien verlassen nie Ihr Gerät. Die gesamte Verarbeitung erfolgt lokal in Ihrem Browser mit WebAssembly.
+ - icon: ⚡
+ title: Schnell & kostenlos
+ details: Keine Anmeldung, keine Limits, keine Wasserzeichen. Verarbeiten Sie unbegrenzt viele PDFs, für immer kostenlos.
+ - icon: 🛠️
+ title: 50+ Werkzeuge
+ details: Konvertieren, bearbeiten, zusammenführen, teilen, komprimieren, signieren, OCR und mehr. Alles, was Sie brauchen, an einem Ort.
+
+ - icon: 🌐
+ title: Selbst hostbar
+ details: Betreiben Sie es auf Ihrer eigenen Infrastruktur. Docker, Vercel, Netlify, AWS oder vollständig abgeschottete Umgebungen mit selbst gehosteten OCR-Workern, Sprachdaten und Textebenen-Schriften.
+---
+
+## Offline-OCR
+
+Wenn Sie BentoPDF in einer abgeschotteten oder Offline-Umgebung selbst hosten, braucht OCR mehr als den Tesseract-Worker und die traineddata-Dateien. Für durchsuchbare PDF-Ausgaben müssen außerdem die OCR-Textebenen-Schriften intern bereitgestellt werden.
+Die vollständige Einrichtung, einschließlich `VITE_OCR_FONT_BASE_URL`, des mitgelieferten Verzeichnisses `ocr-fonts/` und des aktualisierten Air-Gap-Workflows, finden Sie unter [Self-Hosting](/de/self-hosting/).
diff --git a/docs/de/licensing.md b/docs/de/licensing.md
new file mode 100644
index 00000000..d0c87713
--- /dev/null
+++ b/docs/de/licensing.md
@@ -0,0 +1,110 @@
+# 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](/de/self-hosting/#wasm-konfiguration-agpl-komponenten) 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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/de/self-hosting/apache.md b/docs/de/self-hosting/apache.md
new file mode 100644
index 00000000..a8633426
--- /dev/null
+++ b/docs/de/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Mit Apache bereitstellen
+
+Hosten Sie BentoPDF mit dem Apache HTTP Server.
+
+## Voraussetzungen
+
+- Apache 2.4+
+- mod_rewrite aktiviert
+- SSL-Zertifikat (empfohlen)
+
+## Schritt 1: Projekt bauen
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Um das Branding anzupassen, setzen Sie vor dem Build Umgebungsvariablen:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Schritt 2: Dateien kopieren
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Schritt 3: Apache-Konfiguration
+
+Erstellen Sie `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Schritt 4: .htaccess für das Routing
+
+Erstellen Sie `/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
+```
+
+## Schritt 5: Erforderliche Module aktivieren
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Schritt 6: Die Site aktivieren
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Bereitstellung in einem Unterverzeichnis
+
+So hosten Sie unter `/pdf/`:
+
+1. Mit Basis-URL bauen:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. `.htaccess` anpassen:
+
+```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
+```
+
+## Fehlerbehebung
+
+### WASM-404-Fehler
+
+Stellen Sie sicher, dass der MIME-Typ konfiguriert ist:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Signieren oder Formularausfüllung zeigt einen leeren Viewer (`.mjs`-MIME-Fehler)
+
+Wenn die Browserkonsole Folgendes anzeigt:
+
+```
+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.
+```
+
+...und die fehlgeschlagene Anfrage auf `.mjs` endet, fehlt in Ihrer Apache-Konfiguration die Zuordnung `.mjs → application/javascript`. Der mitgelieferte PDF-Viewer enthält ES-Moduldateien mit der Endung `.mjs`, die in der Standard-`mime.types` von Apache nicht enthalten sind.
+
+Fügen Sie Folgendes zu Ihrem VirtualHost oder Ihrer `.htaccess` hinzu:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Laden Sie Apache anschließend neu:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Zur Kontrolle: Suchen Sie in den Browser-DevTools im Tab Netzwerk die fehlgeschlagene `.mjs`-Anfrage und prüfen Sie den Antwort-Header `Content-Type`. Er sollte jetzt `application/javascript` lauten, nicht `application/octet-stream`.
+
+### Rewrite funktioniert nicht
+
+Prüfen Sie, ob mod_rewrite aktiviert ist:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Word/ODT/Excel zu PDF funktioniert nicht
+
+LibreOffice WASM benötigt `SharedArrayBuffer`, wofür diese Header erforderlich sind:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Außerdem ist ein sicherer Kontext nötig. `http://localhost` funktioniert für lokale Tests, aber `http://192.168.x.x` oder andere LAN-IPs erfordern meist HTTPS. Sind die Header vorhanden und `window.crossOriginIsolated` ist trotzdem `false`, prüfen Sie, ob die Seite über einfaches HTTP von einem Nicht-Loopback-Origin aus geöffnet wird.
+
+Die vorkomprimierten Dateien `.wasm.gz` und `.data.gz` brauchen außerdem das richtige `Content-Encoding`:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Stellen Sie sicher, dass `mod_headers` aktiviert ist: `sudo a2enmod headers`
+
+### Zugriff verweigert
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/de/self-hosting/aws.md b/docs/de/self-hosting/aws.md
new file mode 100644
index 00000000..61bcfc75
--- /dev/null
+++ b/docs/de/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Auf AWS S3 + CloudFront bereitstellen
+
+Hosten Sie BentoPDF auf AWS für maximale Kontrolle und Skalierbarkeit.
+
+## Architektur
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Schritt 1: S3-Bucket erstellen
+
+```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
+```
+
+## Schritt 2: Bauen und hochladen
+
+```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
+```
+
+## Schritt 3: CloudFront-Distribution erstellen
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Oder nutzen Sie die AWS-Konsole:
+
+1. Gehen Sie zu CloudFront → Create distribution
+2. Origin domain: Wählen Sie Ihren S3-Bucket aus
+3. Aktivieren Sie "Origin Access Control"
+4. Default root object: `index.html`
+5. Erstellen Sie die Distribution
+
+## Schritt 3b: Response Headers Policy (erforderlich für LibreOffice WASM)
+
+LibreOffice-basierte Konvertierungen (Word, Excel, PowerPoint zu PDF) benötigen `SharedArrayBuffer`, wofür bestimmte Response-Header nötig sind. Erstellen Sie eine CloudFront Response Headers Policy:
+
+1. Gehen Sie zu CloudFront → Policies → Response headers
+2. Erstellen Sie eine eigene Policy mit diesen Headern:
+
+| Header | Wert |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Weisen Sie die Policy dem Default Cache Behavior Ihrer Distribution zu
+
+Oder per 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}
+ ]
+ }
+ }'
+```
+
+## Schritt 3c: S3-Metadaten für vorkomprimierte WASM-Dateien
+
+Die LibreOffice-WASM-Dateien sind vorkomprimiert (`.wasm.gz`, `.data.gz`). Setzen Sie den richtigen Content-Type und das richtige Content-Encoding, damit Browser sie entpacken:
+
+```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 Wichtig
+Ohne die Response Headers Policy ist `SharedArrayBuffer` nicht verfügbar, und LibreOffice-WASM-Konvertierungen bleiben bei ca. 55% hängen. Ohne das richtige Content-Encoding für die `.gz`-Dateien erhält der Browser rohe gzip-Bytes, und die WASM-Kompilierung schlägt fehl.
+:::
+
+## Schritt 4: S3-Bucket-Policy
+
+Erlauben Sie CloudFront den Zugriff auf den 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Schritt 5: Eigene Fehlerseiten
+
+Konfigurieren Sie 404 so, dass für das SPA-Routing `index.html` zurückgegeben wird:
+
+1. CloudFront → Error pages
+2. Erstellen Sie eine eigene Fehlerantwort:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Kostenschätzung
+
+| Ressource | Geschätzte Kosten |
+| -------------------------- | ----------------- |
+| S3 Storage (~500MB) | ~$0.01/Monat |
+| CloudFront (1TB transfer) | ~$85/Monat |
+| CloudFront (10GB transfer) | ~$0.85/Monat |
+
+::: tip
+Nutzen Sie S3 Intelligent Tiering zur Kostenoptimierung bei selten abgerufenen Dateien.
+:::
+
+## Automatisierung mit 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"
+ }
+}
+```
diff --git a/docs/de/self-hosting/cloudflare.md b/docs/de/self-hosting/cloudflare.md
new file mode 100644
index 00000000..3501309e
--- /dev/null
+++ b/docs/de/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Auf Cloudflare Pages bereitstellen
+
+[Cloudflare Pages](https://pages.cloudflare.com) bietet schnelles, globales Hosting für statische Websites mit unbegrenzter Bandbreite.
+
+## Schnelle Bereitstellung
+
+1. Gehen Sie zu [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Klicken Sie auf "Create a project"
+3. Verbinden Sie Ihr GitHub-Repository
+
+## Build-Konfiguration
+
+| Einstellung | Wert |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Umgebungsvariablen
+
+Fügen Sie diese unter Settings → Environment variables hinzu:
+
+| Variable | Wert |
+| ----------------------- | -------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (optional) |
+| `VITE_BRAND_NAME` | Eigener Markenname (optional) |
+| `VITE_BRAND_LOGO` | Logo-Pfad relativ zu `public/` (optional) |
+| `VITE_FOOTER_TEXT` | Eigener Footer-/Copyright-Text (optional) |
+| `VITE_DEFAULT_LANGUAGE` | Standard-Oberflächensprache, z. B. `fr` (optional) |
+
+## Konfigurationsdatei
+
+Erstellen Sie `_headers` in Ihrem Ordner `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 Wichtig
+Die Header `Cross-Origin-Embedder-Policy` und `Cross-Origin-Opener-Policy` sind für Konvertierungen von Word/ODT/Excel/PowerPoint zu PDF erforderlich. Ohne sie ist `SharedArrayBuffer` nicht verfügbar, und die LibreOffice-WASM-Engine kann nicht initialisiert werden.
+:::
+
+Erstellen Sie `_redirects` für das SPA-Routing:
+
+```
+/* /index.html 200
+```
+
+## Eigene Domain
+
+1. Öffnen Sie Ihr Pages-Projekt
+2. Klicken Sie auf "Custom domains"
+3. Fügen Sie Ihre Domain hinzu
+4. Cloudflare konfiguriert das DNS automatisch, wenn die Domain bei Cloudflare liegt
+
+## Vorteile
+
+- **Kostenlose, unbegrenzte Bandbreite**
+- **Globales CDN** mit über 300 Edge-Standorten
+- **Automatisches HTTPS**
+- **Vorschau-Bereitstellungen** für Pull Requests
+- **Schnelle Builds**
+
+## Fehlerbehebung
+
+### Upload großer Dateien
+
+Cloudflare Pages unterstützt Dateien bis 25 MB. WASM-Module sollten kein Problem sein, aber wenn Sie an Grenzen stoßen, sollten Sie Folgendes überlegen:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Größenlimits für Worker
+
+Wenn Sie Cloudflare Workers für erweitertes Routing nutzen, beachten Sie das Limit von 1 MB in kostenlosen Tarifen.
+
+## CORS-Proxy-Worker (für digitale Signaturen)
+
+Das Werkzeug für digitale Signaturen benötigt einen CORS-Proxy, um Zertifikatsketten abzurufen. Stellen Sie den mitgelieferten Worker bereit:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Sicherheitsfunktionen
+
+| Funktion | Beschreibung |
+| ---------------------------- | ----------------------------------- |
+| **URL-Beschränkungen** | Nur Zertifikat-URLs erlaubt |
+| **Dateigrößenlimit** | Max. 10MB pro Anfrage |
+| **Ratenbegrenzung** | 60 Anfr./IP/Min. (erfordert KV) |
+| **Blockierung privater IPs** | Blockiert localhost und interne IPs |
+
+### Ratenbegrenzung aktivieren
+
+```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
+```
+
+### Mit Proxy-URL bauen
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Oder mit 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 .
+```
+
+> **Hinweis:** Die Einrichtung der HMAC-Signatur finden Sie in der [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required).
diff --git a/docs/de/self-hosting/cors-proxy.md b/docs/de/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..6d44e963
--- /dev/null
+++ b/docs/de/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS-Proxy zum Abrufen von Zertifikaten
+
+Das Werkzeug für digitale Signaturen nutzt einen CORS-Proxy, um Aussteller-Zertifikate von externen Zertifizierungsstellen (CAs) abzurufen. Das ist nötig, weil viele CA-Server keine CORS-Header in ihren Antworten mitsenden, wodurch ein direkter Abruf aus dem Browser verhindert wird.
+
+Außerdem liefern viele CA-Server Zertifikate über einfaches HTTP aus. Wird Ihre BentoPDF-Instanz über HTTPS gehostet, blockieren Browser diese HTTP-Anfragen (Mixed-Content-Richtlinie). Der CORS-Proxy löst beide Probleme, indem er Anfragen über einen HTTPS-Endpunkt mit den passenden Headern leitet.
+
+## So funktioniert es
+
+Beim Signieren einer PDF mit einem Zertifikat:
+
+1. Die Bibliothek `zgapdfsigner` versucht, eine vollständige Zertifikatskette aufzubauen
+2. Sie ruft Aussteller-Zertifikate von URLs ab, die in der AIA-Erweiterung (Authority Information Access) Ihres Zertifikats eingebettet sind
+3. Diese Anfragen laufen über einen CORS-Proxy, der die nötigen `Access-Control-Allow-Origin`-Header ergänzt
+4. Der Proxy liefert die Zertifikatsdaten an den Browser zurück
+
+## Den CORS-Proxy selbst hosten
+
+Wenn Sie BentoPDF selbst hosten, müssen Sie einen eigenen CORS-Proxy bereitstellen, damit digitale Signaturen mit Zertifikaten funktionieren, die einen Abruf der Kette erfordern.
+
+### Option 1: Cloudflare Workers (empfohlen)
+
+1. **Wrangler CLI installieren**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Bei Cloudflare anmelden**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **BentoPDF klonen und erlaubte Origins anpassen**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Öffnen Sie `cors-proxy-worker.js` und änderen Sie das Array `ALLOWED_ORIGINS` auf Ihre Domain:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Wichtig
+ Ohne diese Änderung lehnt der Proxy alle Anfragen von Ihrer Website mit dem Fehler **403 Forbidden** ab. Standardmäßig sind nur Anfragen von `bentopdf.com` erlaubt.
+ :::
+
+4. **Den Proxy bereitstellen**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Notieren Sie sich die URL Ihres Workers (z. B. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **BentoPDF mit der Proxy-URL neu bauen**:
+
+ Bei Verwendung von 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 .
+ ```
+
+ Beim Bauen aus dem Quellcode:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Option 2: Eigener Backend-Proxy
+
+Sie können auch einen eigenen Proxy-Endpunkt erstellen. Die Anforderungen sind:
+
+1. GET-Anfragen mit einem Query-Parameter `url` annehmen
+2. Die URL von Ihrem Server aus abrufen (serverseitig gibt es keine CORS-Beschränkungen)
+3. Die Antwort mit diesen Headern zurückgeben:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Beispielimplementierung mit 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' });
+ }
+});
+```
+
+## Sicherheitshinweise
+
+Der mitgelieferte Cloudflare Worker hat mehrere Sicherheitsmaßnahmen:
+
+| Funktion | Beschreibung |
+| ---------------------------- | ----------------------------------------------------------------------------------------------- |
+| **Origin-Prüfung** | Erlaubt nur Anfragen von Domains aus `ALLOWED_ORIGINS` |
+| **URL-Beschränkungen** | Erlaubt nur Zertifikat-URLs (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blockierung privater IPs** | Blockiert private IPv4-/IPv6-Bereiche, Link-Local, Loopback, dezimale IPs und Cloud-Metadaten |
+| **Content-Type-Sicherheit** | Liefert nur sicheren Sie Zertifikat-MIME-Typen, blockiert Content-Type-Injection vom Upstream |
+| **Dateigrößenlimit** | Streamt die Antwort mit 10MB-Limit und bricht den Download bei Überschreitung ab |
+| **Ratenbegrenzung** | 60 Anfragen pro Minute pro IP oder IPv6 /64 (erfordert KV, bei KV-Fehlern wird nicht blockiert) |
+| **HMAC-Signaturen** | Optionale clientseitige Signierung (schreckt gelegentlichen Missbrauch ab) |
+
+### DNS-Rebinding (Selbst-Hosting außerhalb von Cloudflare)
+
+Der Worker lehnt jede URL ab, die auf eine private oder interne IP aufgelöst wird. Eine feste Allowlist von Hosts ist nicht möglich, da Zertifikatsketten-URLs auf die jeweilige CA verweisen, die das Zertifikat ausgestellt hat (FNMT, Unternehmens-CAs usw.), die Ziele also nicht im Voraus bekannt sind. Dadurch bleibt ein kleines Rebinding-Fenster: Wer das DNS für seine eigene Domain betreibt, könnte der Sicherheitsprüfung eine öffentliche IP liefern und der eigentlichen Anfrage einen Moment später eine private.
+
+Auf Cloudflare ist das nicht ausnutzbar: Workers können weder private IPs noch den Metadaten-Endpunkt `169.254.169.254` erreichen, ein Rebind läuft also ins Leere. Geben Sie dem Worker nur keinen Zugang: Hängen Sie keinen Tunnel, Service oder kein Private-Network-Binding an (er braucht nur `RATE_LIMIT_KV`).
+
+Betreiben Sie ihn außerhalb von Cloudflare (workerd, Node und Ähnliches) in einer VPC, _kann_ die Runtime interne IPs erreichen. Setzen Sie eine Egress-Firewall davor und blockieren Sie die privaten Bereiche: `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` sowie die IPv6-Entsprechungen. Anwendungscode kann das außerhalb von Cloudflare nicht durchsetzen.
+
+## Den Proxy deaktivieren
+
+Wenn Sie keinen CORS-Proxy nutzen möchten, setzen Sie die Umgebungsvariable auf einen leeren String:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Hinweis**: Ohne den Proxy schlägt das Signieren mit Zertifikaten, die einen externen Abruf der Kette erfordern (wie FNMT oder einige Unternehmens-CAs), mit dem Fehler "Failed to fetch" fehl.
+
+## Fehlerbehebung
+
+### "Signing error: TypeError: Failed to fetch"
+
+Das bedeutet meist eines von beidem:
+
+1. **Kein CORS-Proxy konfiguriert**: Setzen Sie `VITE_CORS_PROXY_URL` und bauen Sie neu
+2. **Mixed Content blockiert**: Ihre Website nutzt HTTPS, aber die Aussteller-URL des Zertifikats ist HTTP. Der CORS-Proxy löst das.
+3. **CORS-Proxy lehnt Ihren Origin ab**: Prüfen Sie, ob Ihre Domain im Array `ALLOWED_ORIGINS` in `cors-proxy-worker.js` steht
+
+### "403 Forbidden" vom Proxy
+
+Ihre Domain steht nicht in der Liste `ALLOWED_ORIGINS`. Bearbeiten Sie `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Stellen Sie danach erneut bereit: `npx wrangler deploy`
+
+### Den Proxy testen
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Zertifikate, die ohne Proxy funktionieren
+
+Manche Zertifikate enthalten die vollständige Kette in der P12/PFX-Datei und benötigen keinen externen Abruf:
+
+- Selbstsignierte Zertifikate
+- Einige kommerzielle CAs, die Zwischenzertifikate mitliefern
+- Zertifikate, die Sie manuell mit der vollständigen Kette zusammengestellt haben
diff --git a/docs/de/self-hosting/docker.md b/docs/de/self-hosting/docker.md
new file mode 100644
index 00000000..2ffa3820
--- /dev/null
+++ b/docs/de/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Mit Docker / Podman bereitstellen
+
+Der einfachste Weg, BentoPDF in einer Produktionsumgebung selbst zu hosten.
+
+> [!IMPORTANT]
+> **Erforderliche Header für die Konvertierung von Office-Dateien**
+>
+> LibreOffice-basierte Werkzeuge (Word-, Excel-, PowerPoint-Konvertierung) benötigen diese HTTP-Header für die `SharedArrayBuffer`-Unterstützung:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Die Seite muss außerdem aus einem sicheren Kontext ausgeliefert werden. `http://localhost` funktioniert für lokale Tests, aber `http://192.168.x.x` oder andere LAN-IPs gelten meist nicht als sicher, daher schlägt die Office-Konvertierung über einfaches HTTP fehl, auch wenn die Header vorhanden sind.
+>
+> Die offiziellen Container-Images enthalten diese Header. Wenn Sie einen Reverse-Proxy (Traefik, Caddy usw.) verwenden, stellen Sie sicher, dass diese Header erhalten bleiben oder hinzugefügt werden, und nutzen Sie HTTPS für Zugriffe außerhalb von Loopback.
+
+> [!TIP]
+> **Podman-Nutzer:** Alle `docker`-Befehle funktionieren mit Podman, wenn Sie `docker` durch `podman` und `docker-compose` durch `podman-compose` ersetzen.
+
+## Schnellstart
+
+> [!TIP]
+> BentoPDF gibt es in zwei Builds:
+>
+> - **Self-Hosted-Build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Jedes PDF-Werkzeug, **ohne** Marketing-Elemente (kein Hero, keine FAQ, keine Testimonials, kein Footer). Nutzen Sie ihn für interne Bereitstellungen in Teams und Organisationen. Er ist **keine** funktionsreduzierte "Lite"-Version.
+> - **Commercial-Build**: `ghcr.io/alam00000/bentopdf:latest`. Die vollständige Marketing-Website, die bentopdf.com selbst und Inhaber kommerzieller Lizenzen für öffentlich zugängliche Bereitstellungen nutzen.
+>
+> Im Zweifel: Nehmen Sie den Self-Hosted-Build.
+
+```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
+
+Erstellen Sie `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
+```
+
+Ausführen:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Eigenes Image bauen
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Bauen und ausführen:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Umgebungsvariablen
+
+| Variable | Beschreibung | Standard |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Baut die Self-Hosted-Variante (blendet die Marketing-Elemente von bentopdf.com aus: Hero, FAQ, Testimonials, Footer). Alle PDF-Werkzeuge bleiben erhalten. | `false` |
+| `BASE_URL` | In Unterverzeichnis bereitstellen | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL des PyMuPDF-WASM-Moduls | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL des Ghostscript-WASM-Moduls | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL des CoherentPDF-WASM-Moduls | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL des OCR-Worker-Skripts | _(leer; Standard-CDN von Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Verzeichnis der OCR-Core-Runtime | _(leer; Standard-CDN von Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Verzeichnis der OCR-traineddata | _(leer; Standard-CDN von Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Kommagetrennte OCR-Sprachen, die in der Oberfläche angeboten werden | _(leer; vollständigen Katalog anzeigen)_ |
+| `VITE_OCR_FONT_BASE_URL` | Verzeichnis der OCR-Textebenen-Schriften | _(leer; externe Noto-Schrift-URLs)_ |
+| `VITE_DEFAULT_LANGUAGE` | Standard UI language | `en` |
+| `VITE_BRAND_NAME` | Eigener Markenname | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logo-Pfad relativ zu `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Eigener Footer-/Copyright-Text | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | Kommagetrennte Werkzeug-IDs zum Ausblenden | _(leer; alle Werkzeuge aktiviert)_ |
+| `DISABLE_GITHUB_STARS` | Überspringt den Abruf der GitHub-Sterne beim Laden der Seite und entfernt `api.github.com` aus der CSP. Simple-Mode-Builds überspringen ihn immer. | `false` |
+| `SITE_URL` | Öffentliche URL, die in Canonical-, hreflang- und Sitemap-Links geschrieben wird. Lassen Sie den Standard, sofern Suchmaschinen Ihre Bereitstellung nicht als eigene Website behandeln sollen. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Bei einer eigenen `SITE_URL` wird jede Seite mit `noindex` markiert, damit Ihre Kopie in den Suchergebnissen nicht mit bentopdf.com konkurriert. Mit `true` dürfen Suchmaschinen sie indexieren. | `false` |
+| `COMPRESSION_MODE` | Vorkomprimierte Kopien: `o` keine, `g` `.gz` (vom nginx des Images ausgeliefert), `b` `.br`, `all` beide. Der nginx des Images kann `.br` nicht ausliefern. | `o` |
+
+Die WASM-Modul-URLs sind mit CDN-Standardwerten vorkonfiguriert, sodass alle erweiterten Funktionen sofort funktionieren. Überschreiben Sie sie für abgeschottete oder selbst gehostete Bereitstellungen.
+
+### Suchmaschinen
+
+Standardmäßig verweist jede Seite Suchmaschinen auf bentopdf.com als Original, sodass Ihre Bereitstellung nicht als Duplikat erscheint. Für eine private oder interne Instanz müssen Sie nichts ändern.
+
+- **Ihre Instanz komplett aus den Suchergebnissen heraushalten:** Starten Sie den Container mit `-e ROBOTS_NOINDEX=true`. Das erfordert nur einen Neustart, keinen Rebuild.
+- **Ihre Instanz als eigene Website in den Suchergebnissen erscheinen lassen:** Bauen Sie mit `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Ohne `ALLOW_INDEXING=true` markiert eine eigene `SITE_URL` jede Seite mit `noindex`.
+
+### Content-Security-Policy
+
+Das nginx-Image wird mit einem erzwingenden `Content-Security-Policy`-Header ausgeliefert. Die Direktiven `script-src`, `connect-src` und `font-src` der CSP werden **beim Build** aus den oben genannten `VITE_*`-URL-Variablen **generiert**: Alle Hosts, die Sie per `--build-arg` übergeben, werden automatisch in die Richtlinie aufgenommen.
+
+Daraus folgt:
+
+- Wenn Sie `VITE_CORS_PROXY_URL` oder `VITE_WASM_*_URL` beim Build überschreiben, erlaubt die CSP diese Origins automatisch, ohne zusätzliche Konfiguration.
+- Für URLs auf `cdn.jsdelivr.net` erlaubt `script-src` nur den exakten versionierten Paketordner, zum Beispiel `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, nicht das gesamte CDN. jsDelivr liefert jedes öffentliche npm-Paket und GitHub-Repository aus, sodass die Freigabe des gesamten Hosts es jedem davon erlauben würde, auf Ihrer Instanz zu laufen. URLs auf allen anderen Hosts werden per Origin erlaubt.
+- Wenn Sie eigene WASM-URLs zur _Laufzeit_ über die Seite Erweiterte Einstellungen in der App konfigurieren, stehen diese Origins **nicht** in der CSP, und der Browser blockiert Abrufe dorthin. Das gilt auch für eine andere Version desselben Pakets auf `cdn.jsdelivr.net`, da nur die beim Build festgelegte Version erlaubt ist. Die Konfiguration zur Laufzeit ist für Experimente gedacht; für dauerhafte eigene URLs setzen Sie das passende `VITE_*`-Build-Argument.
+- Bei abgeschotteten Bereitstellungen, die alle drei `VITE_WASM_*_URL`-Werte überschreiben, werden auch diese `cdn.jsdelivr.net`-Paketordner aus der CSP entfernt (jeder Standardwert wird ersetzt, nicht ergänzt). Die Tesseract-OCR-Standardwerte auf `cdn.jsdelivr.net` bleiben in der Richtlinie, bis Sie auch die drei `VITE_TESSERACT_*`-Werte setzen. Ebenso ersetzt das Setzen von `VITE_CORS_PROXY_URL` den öffentlichen Standard `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+Die CSP enthält `'unsafe-eval'` in `script-src`, weil die LibreOffice-WASM-Runtime (für die Word-/Excel-/PowerPoint-Konvertierung) und die Bildbibliothek wasm-vips (für PDF zu TIFF) internen Dispatch-Code über `new Function()` kompilieren. Ohne es würden diese Werkzeuge nicht mehr funktionieren. Wenn Sie im `SIMPLE_MODE` (ohne LibreOffice) bauen und PDF zu TIFF nicht brauchen, können Sie die generierte `security-headers.conf` manuell bearbeiten und `'unsafe-eval'` für eine strengere Richtlinie entfernen.
+
+Lassen Sie für OCR die `VITE_TESSERACT_*`-Variablen leer, um die Standard-Online-Ressourcen zu nutzen, oder setzen Sie alle drei zusammen für selbst gehostetes/Offline-OCR. Teilweise Überschreibungen werden abgelehnt, weil Worker, Core-Runtime und traineddata-Verzeichnis zusammenpassen müssen. Für eine vollständig offline erzeugte durchsuchbare PDF setzen Sie zusätzlich `VITE_OCR_FONT_BASE_URL`, damit die OCR-Textebenen-Schriften von Ihrem internen Server statt von den öffentlichen Noto-Schrift-URLs geladen werden.
+
+`VITE_DEFAULT_LANGUAGE` legt die Oberflächensprache für Erstbesucher fest. Unterstützte Werte: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Nutzer können die Sprache weiterhin wechseln, das ändert nur den Standard.
+
+Beispiel:
+
+```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
+```
+
+### Eigenes Branding
+
+Ersetzen Sie das Standard-Logo, den Namen und den Footer-Text von BentoPDF durch Ihre eigenen. Legen Sie Ihre Logodatei im Ordner `public/` ab (oder nutzen Sie ein vorhandenes Bild) und übergib die Branding-Variablen beim Build:
+
+```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 .
+```
+
+Das Branding funktioniert im Vollmodus und im Simple Mode und lässt sich mit allen anderen Build-Optionen kombinieren.
+
+### Bestimmte Werkzeuge deaktivieren
+
+Blenden Sie Werkzeuge aus der Oberfläche aus, etwa aus Compliance- oder Sicherheitsgründen. Deaktivierte Werkzeuge werden von der Startseite, aus den Suchergebnissen, den Tastenkürzeln und dem Workflow-Builder entfernt. Beim direkten Aufruf der URL erscheint eine Seite "Werkzeug nicht verfügbar".
+
+Werkzeug-IDs entsprechen der Seiten-URL ohne `.html`. Liegt das Werkzeug zum Beispiel unter `bentopdf.com/edit-pdf.html`, lautet die ID `edit-pdf`.
+
+#### Werkzeug-IDs finden
+
+Am einfachsten: Öffnen Sie ein beliebiges Werkzeug in BentoPDF und sehen Sie sich die URL an. Der letzte Teil des Pfads (ohne `.html`) ist die Werkzeug-ID.
+
+
+Vollständige Liste der Werkzeug-IDs
+
+**Bearbeiten & Annotieren:** `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`
+
+**In PDF konvertieren:** `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`
+
+**Aus PDF konvertieren:** `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`
+
+**Organisieren & Verwalten:** `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`
+
+**Optimieren & Reparieren:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Sicherheit:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Option 1: Zur Build-Zeit (Docker-Build-Argument)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Dadurch wird die Liste der deaktivierten Werkzeuge fest in das JavaScript-Bundle geschrieben. Zum Ändern ist ein Rebuild nötig.
+
+#### Option 2: Zur Laufzeit (config.json)
+
+Binden Sie eine `config.json`-Datei in das ausgelieferte Verzeichnis ein, ganz ohne Rebuild:
+
+```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
+```
+
+Oder mit 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
+```
+
+Beide Methoden lassen sich kombinieren, die Listen werden zusammengeführt. Taucht ein Werkzeug in einer von beiden auf, ist es deaktiviert.
+
+#### Editor-Funktionen deaktivieren
+
+Sie können auch einzelne Funktionen im PDF-Editor (z. B. Schwärzen, Annotationen, Formulare) deaktivieren, ohne das gesamte Editor-Werkzeug abzuschalten. Fügen Sie `editorDisabledCategories` zu Ihrer `config.json` hinzu:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Vollständige Liste der Editor-Kategorien
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Annotation:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Formen:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Messen:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formular:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Schwärzung:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Dokument:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Seite:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Werkzeuge:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Auswahl:** `selection`, `selection-copy`
+
+**Verlauf:** `history`, `history-undo`, `history-redo`
+
+
+
+Kategorien sind hierarchisch: Das Deaktivieren einer übergeordneten Kategorie (z. B. `annotation`) deaktiviert alle ihre untergeordneten.
+
+### Den GitHub-Sternezähler deaktivieren
+
+Die Navigationsleiste zeigt einen Live-Zähler der GitHub-Sterne, der beim Laden der Seite von `api.github.com` abgerufen wird. Es ist die einzige externe Anfrage, die keiner PDF-Funktion dient. Deaktivieren Sie ihn beim Build, um den Abrufcode aus dem Bundle zu entfernen und `api.github.com` aus der Content-Security-Policy zu streichen:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Simple-Mode-Builds (`bentopdf-simple`) überspringen den Sternezähler immer. Dieses Flag wird nur für den Commercial-Build oder eigene Voll-Builds benötigt.
+
+### Eigene WASM-URLs (abgeschottet / selbst gehostet)
+
+> [!IMPORTANT]
+> WASM-URLs werden **beim Build** fest in das JavaScript geschrieben. Die WASM-Dateien lädt der **Browser des Nutzers** zur Laufzeit herunter, Docker lädt sie beim Build nicht herunter. In abgeschotteten Netzwerken müssen Sie die WASM-Dateien auf einem internen Server hosten, den Browser erreichen können.
+
+**Vollständiger Workflow für abgeschottete Umgebungen:**
+
+```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
+```
+
+Verwenden Sie für `--ocr-languages` die Codes, die `bash scripts/prepare-airgap.sh --list-ocr-languages` ausgibt, oder suchen Sie per Name mit `bash scripts/prepare-airgap.sh --search-ocr-language `. Wenn Sie mit einer eingeschränkten OCR-Teilmenge bauen, übergib dieselben Codes an `VITE_TESSERACT_AVAILABLE_LANGUAGES`, damit die App nur gebündelte Sprachen anzeigt. Für eine vollständige Offline-OCR-Ausgabe hosten Sie zusätzlich das mitgelieferte Verzeichnis `ocr-fonts/` und lassen Sie `VITE_OCR_FONT_BASE_URL` darauf zeigen.
+
+Setzen Sie eine Variable auf einen leeren String, um das jeweilige Modul zu deaktivieren (Nutzer müssen es dann manuell über die Erweiterten Einstellungen konfigurieren).
+
+## Eigener Port
+
+Standardmäßig lauscht BentoPDF im Container auf Port `8080`. Um das zu ändern, setzen Sie zur Laufzeit die Umgebungsvariable `PORT`:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variable | Beschreibung | Standard |
+| -------- | ------------------------------ | -------- |
+| `PORT` | Nginx-Listen-Port im Container | `8080` |
+
+Das funktioniert sowohl mit dem Standard- als auch mit dem Nonroot-Dockerfile.
+
+## Eigene Benutzer-ID (PUID/PGID)
+
+Für Umgebungen, die einen bestimmten Nicht-Root-Benutzer erfordern (NAS-Geräte, Kubernetes mit Security-Contexts, organisatorische Vorgaben), bietet BentoPDF ein separates Dockerfile mit PUID/PGID-Unterstützung im LSIO-Stil.
+
+### Bauen und ausführen
+
+```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
+```
+
+### Umgebungsvariablen
+
+| Variable | Beschreibung | Standard |
+| -------------- | -------------------------------------- | -------- |
+| `PUID` | Benutzer-ID, unter der ausgeführt wird | `1000` |
+| `PGID` | Gruppen-ID, unter der ausgeführt wird | `1000` |
+| `PORT` | Nginx-Listen-Port | `8080` |
+| `DISABLE_IPV6` | IPv6-Listener deaktivieren | `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
+```
+
+### So funktioniert es
+
+Der Container startet als root, legt einen Benutzer mit der angegebenen PUID/PGID an, passt die Besitzrechte aller beschreibbaren Verzeichnisse an und gibt dann mit `su-exec` die Rechte ab. Der nginx-Prozess läuft vollständig unter dem angegebenen Benutzer.
+
+> [!NOTE]
+> Das Standard-`Dockerfile` verwendet `nginx-unprivileged` (UID 101) und wird für die meisten Bereitstellungen empfohlen. Nutzen Sie `Dockerfile.nonroot` nur, wenn Sie eine bestimmte UID/GID brauchen.
+
+> [!WARNING]
+> PUID/PGID dürfen nicht `0` (root) sein. Der Entrypoint prüft die Eingaben und beendet sich bei ungültigen Werten mit einem Fehler.
+
+## Mit Traefik (Reverse-Proxy)
+
+```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
+```
+
+## Mit Caddy (Reverse-Proxy)
+
+```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"
+}
+```
+
+## Ressourcenlimits
+
+```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-Integration)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) ermöglicht es, Podman-Container als systemd-Dienste auszuführen. Das ist ideal für Produktionsbereitstellungen auf Linux-Systemen.
+
+### Grundlegende Quadlet-Einrichtung
+
+Erstellen Sie eine Container-Unit-Datei unter `~/.config/containers/systemd/bentopdf.container` (Benutzer) oder `/etc/containers/systemd/bentopdf.container` (System):
+
+```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
+```
+
+### Aktivieren und starten
+
+```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]
+> Für eine systemweite Bereitstellung nutzen Sie `systemctl` ohne das Flag `--user` und legen Sie die Datei in `/etc/containers/systemd/` ab.
+
+### Quadlet mit Health-Check
+
+```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
+```
+
+### Automatisches Update mit Quadlet
+
+Podman kann Container automatisch aktualisieren, wenn neue Images verfügbar sind:
+
+```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-Netzwerkkonfiguration
+
+Für eine eigene Netzwerkkonfiguration erstellen Sie eine Netzwerkdatei `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Verweisen Sie dann in Ihrer Container-Datei darauf:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Aktualisieren
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/de/self-hosting/hostinger.md b/docs/de/self-hosting/hostinger.md
new file mode 100644
index 00000000..1ba4be1a
--- /dev/null
+++ b/docs/de/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Auf Hostinger bereitstellen
+
+[Hostinger](https://hostinger.com) ist ein beliebter Shared-Hosting-Anbieter. Diese Anleitung zeigt, wie Sie BentoPDF auf dem Shared Hosting von Hostinger bereitstellen.
+
+## Voraussetzungen
+
+- Hostinger-Hosting-Tarif mit Zugriff auf den Dateimanager
+- Lokal installiertes Node.js zum Bauen
+
+## Schritt 1: Projekt bauen
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Die gebauten Dateien liegen im Ordner `dist`.
+
+## Schritt 2: Auf Hostinger hochladen
+
+### Bereitstellung auf der Hauptdomain
+
+1. Melden Sie sich bei Ihrem Hostinger-Konto an
+2. Gehen Sie zu **File Manager** → **public_html**
+3. **Löschen Sie** vorhandene Dateien (bei Bedarf vorher sichern)
+4. **Laden Sie** den gesamten Inhalt Ihres lokalen Ordners `dist` nach `public_html` **hoch**
+
+### Bereitstellung in einem Unterverzeichnis
+
+Wenn Sie in einem Unterverzeichnis bereitstellen (z. B. `yourdomain.com/pdf-tools/`):
+
+1. Mit der richtigen Basis-URL bauen:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Den Ordner in Hostinger erstellen:
+ - Gehen Sie zu **File Manager** → **public_html**
+ - Erstellen Sie einen neuen Ordner: `pdf-tools`
+3. Laden Sie den gesamten Inhalt von `dist` nach `public_html/pdf-tools/` hoch
+
+## Schritt 3: .htaccess-Datei erstellen
+
+Erstellen Sie eine `.htaccess`-Datei im Stammverzeichnis Ihres Bereitstellungsordners (`public_html` oder `public_html/pdf-tools/`):
+
+::: warning Wichtig
+Bei der Bereitstellung in einem Unterverzeichnis änderen Sie `RewriteBase /` in `RewriteBase /pdf-tools/` (oder in den Namen Ihres Ordners).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Beispiel für .htaccess im Unterverzeichnis
+
+Für `yourdomain.com/pdf-tools/` passen Sie diese Zeilen an:
+
+```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
+```
+
+## Fehlerbehebung
+
+### WASM-Dateien werden nicht geladen
+
+Stellen Sie sicher, dass die MIME-Typen in der `.htaccess` korrekt gesetzt sind:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### LibreOffice-Werkzeuge funktionieren nicht
+
+Die Sicherheits-Header sind für SharedArrayBuffer entscheidend:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Werden die Header nicht angewendet, bitte den Hostinger-Support, `mod_headers` zu aktivieren.
+
+### 404-Fehler beim Neuladen der Seite
+
+Stellen Sie sicher, dass die Regel für die Endung `.html` und die Sprachrouten korrekt konfiguriert sind. BentoPDF nutzt statische HTML-Dateien, kein SPA-Routing:
+
+```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]
+```
+
+### Limits für Datei-Uploads
+
+Hostinger kann Dateigrößenlimits haben. Laden Sie WASM-Dateien separat hoch, wenn der Massen-Upload fehlschlägt.
diff --git a/docs/de/self-hosting/index.md b/docs/de/self-hosting/index.md
new file mode 100644
index 00000000..41e2915c
--- /dev/null
+++ b/docs/de/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Self-Hosting-Leitfaden
+
+BentoPDF kann auf Ihrer eigenen Infrastruktur selbst gehostet werden. Dieser Leitfaden behandelt verschiedene Bereitstellungsoptionen.
+
+## Schnellstart mit Docker / Podman
+
+Der schnellste Weg, BentoPDF selbst zu hosten:
+
+> [!TIP]
+> BentoPDF gibt es in zwei Builds:
+>
+> - **Self-Hosted-Build** (`ghcr.io/alam00000/bentopdf-simple:latest`). Jedes PDF-Werkzeug, **ohne** das Marketing-Drumherum (kein Hero, keine FAQ, keine Testimonials, kein Footer). Nutzen Sie ihn für interne Bereitstellungen in Teams und Organisationen. Es ist **keine** funktionsreduzierte "Lite"-Version.
+> - **Commercial-Build** (`ghcr.io/alam00000/bentopdf:latest`). Die vollständige Marketing-Website, die von bentopdf.com selbst und von Inhabern einer kommerziellen Lizenz mit öffentlich zugänglichen Bereitstellungen verwendet wird.
+>
+> Im Zweifel: Ziehen Sie den Self-Hosted-Build.
+
+> [!IMPORTANT]
+> Die Konvertierung von Office-Dateien erfordert `SharedArrayBuffer`. Die App muss dafür sowohl Cross-Origin-isoliert sein als auch aus einem sicheren Kontext ausgeliefert werden. Das offizielle Image sendet bereits die erforderlichen COOP/COEP-Header, aber Browser deaktivieren `SharedArrayBuffer` bei reinen HTTP-Ursprüngen im lokalen Netzwerk wie `http://192.168.x.x` trotzdem.
+>
+> Verwenden Sie `http://localhost` nur für Tests auf demselben Gerät. Wenn Nutzende BentoPDF über eine LAN-IP oder einen Hostnamen aufrufen, beenden Sie die Verbindung mit 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
+```
+
+Oder mit 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)
+
+Betreiben Sie BentoPDF als systemd-Dienst. Erstellen Sie `~/.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
+```
+
+Die vollständige Quadlet-Dokumentation finden Sie im [Docker-Bereitstellungsleitfaden](/de/self-hosting/docker).
+
+## Aus dem Quellcode bauen
+
+```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
+```
+
+## Konfigurationsoptionen
+
+### Self-Hosted-Build (Simple Mode)
+
+Der Self-Hosted-Build (das Image `bentopdf-simple`, auch Simple Mode genannt) ist **funktional identisch** mit dem Commercial-Build: Jedes PDF-Werkzeug ist vorhanden und verhält sich gleich. Er blendet lediglich das Marketing-Drumherum aus, das nur auf bentopdf.com selbst oder in einer kommerziellen, öffentlich zugänglichen Bereitstellung sinnvoll ist. **Es ist keine funktionsreduzierte oder "Lite"-Version.**
+
+**Was der Self-Hosted-Build ausblendet** (nur kosmetisch, keine PDF-Funktionen werden entfernt):
+
+- Navigationsleiste, Hero-Bereich, Funktionsbereich, FAQ, Testimonials, Footer
+- Setzt den Seitentitel auf "PDF-Werkzeuge"
+
+**Was der Self-Hosted-Build behält** (alles, was tatsächlich PDF-Arbeit leistet):
+
+- Jedes PDF-Werkzeug (Zusammenführen, Teilen, Bearbeiten, Signieren, OCR, Office-Konvertierung usw.)
+- Unterstützung für eigenes Branding, alle Build-Time- und Runtime-Konfigurationen
+
+Der Commercial-Build (`ghcr.io/alam00000/bentopdf:latest`) betreibt bentopdf.com selbst und wird von Inhabern einer kommerziellen Lizenz für öffentlich zugängliche Bereitstellungen verwendet. Er ergänzt Hero, FAQ, Testimonials und Footer, die bei einem internen Werkzeug keinen Sinn ergeben würden.
+
+Wenn Sie BentoPDF für Ihr Team, Ihre Organisation oder als internes Werkzeug selbst hosten, ziehen Sie den Self-Hosted-Build:
+
+```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
+```
+
+Alle Details finden Sie in [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md).
+
+### Commercial-Build (öffentlich zugängliche Bereitstellungen mit eigener Marke)
+
+Der Commercial-Build (das Image `bentopdf`, ohne Suffix `-simple`) betreibt bentopdf.com selbst. Er enthält die vollständige Marketing-Website (Hero, Funktionen, FAQ, Testimonials, Footer) zusätzlich zu jedem PDF-Werkzeug. Verwenden Sie diesen Build, wenn Sie **BentoPDF als öffentlich zugänglichen PDF-Dienst unter Ihrer eigenen Marke bereitstellen** möchten, zum Beispiel:
+
+- Sie betreiben BentoPDF als gehostetes SaaS für Endnutzende auf Ihrer eigenen Domain
+- Sie möchten das Landingpage-Erlebnis (Marketing-Bereiche + Werkzeuge), nicht nur die reine Werkzeugoberfläche
+- Sie sind Inhaber einer kommerziellen Lizenz und betten BentoPDF in ein kommerzielles Produkt ein
+
+**Unverändert ausführen** (mit BentoPDF-Branding, nützlich, um den Build auszuprobieren):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Mit eigener Marke bauen** (der typische kommerzielle Workflow):
+
+```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
+```
+
+Alle anderen Build-Time-Optionen (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, WASM-URL-Überschreibungen usw.) funktionieren genauso wie beim Self-Hosted-Build.
+
+::: warning Lizenzierung
+Der Commercial-Build darf unter einer der beiden Lizenzoptionen von BentoPDF betrieben werden:
+
+- **AGPL-3.0** (kostenlos): erlaubt, wenn Ihre Bereitstellung ihren vollständigen Quellcode unter der AGPL veröffentlicht, einschließlich aller Branding-Änderungen und der umgebenden Geschäftslogik.
+- **Kommerzielle Lizenz** (79 $ lebenslang): erforderlich für Closed-Source-/proprietäre Bereitstellungen, bei denen Sie Ihren Branding-Fork oder Ihren Geschäftscode nicht als Open Source veröffentlichen.
+
+Den vollständigen Vergleich finden Sie auf der [Lizenzierungsseite](https://www.bentopdf.com/licensing). AGPL-lizenzierte WASM-Module (PyMuPDF, Ghostscript, CoherentPDF) werden zur Laufzeit von einem CDN geladen, gelangen also nicht in Ihr Image und ändern nichts an Ihrer Lizenzlage.
+:::
+
+### Base-URL
+
+In einem Unterverzeichnis bereitstellen:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Eigenes Branding
+
+Ersetzen Sie das Standard-Logo, den Namen und den Footer-Text von BentoPDF zur Build-Zeit durch Ihre eigenen:
+
+| Variable | Beschreibung | Standard |
+| ------------------ | ------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Markenname in Header und Footer | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logopfad relativ zu `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Eigener Footer-/Copyright-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
+```
+
+Oder über 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 .
+```
+
+Das Branding funktioniert sowohl im vollständigen Modus als auch im Simple Mode und lässt sich mit allen anderen Build-Time-Optionen kombinieren (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Bestimmte Werkzeuge deaktivieren
+
+Blenden Sie einzelne Werkzeuge aus Compliance- oder Sicherheitsgründen aus. Deaktivierte Werkzeuge werden auf der Startseite, in der Suche, in den Tastenkürzeln, im Workflow-Builder und beim direkten URL-Zugriff entfernt.
+
+Werkzeug-IDs entsprechen der Seiten-URL ohne `.html`: Öffnen Sie ein beliebiges Werkzeug und sehen Sie sich die URL an (z. B. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Build-Time** (in das Bundle eingebaut):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Runtime** (ohne Neubau: eine `config.json` einbinden):
+
+```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
+```
+
+Beide Methoden lassen sich kombinieren, die Listen werden zusammengeführt.
+
+Sie können außerdem einzelne Funktionen im PDF-Editor (z. B. Schwärzen) deaktivieren, ohne das gesamte Werkzeug zu deaktivieren, indem Sie `editorDisabledCategories` zur `config.json` hinzufügen. Die vollständige Liste der Kategorien finden Sie im [Docker-Leitfaden](/de/self-hosting/docker#editor-funktionen-deaktivieren).
+
+## Bereitstellungsleitfäden
+
+Wählen Sie Ihre Plattform:
+
+- [Vercel](/de/self-hosting/vercel)
+- [Netlify](/de/self-hosting/netlify)
+- [Cloudflare Pages](/de/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/de/self-hosting/aws)
+- [Hostinger](/de/self-hosting/hostinger)
+- [Nginx](/de/self-hosting/nginx)
+- [Apache](/de/self-hosting/apache)
+- [Docker](/de/self-hosting/docker)
+- [Kubernetes](/de/self-hosting/kubernetes)
+- [CORS-Proxy](/de/self-hosting/cors-proxy) - Erforderlich für digitale Signaturen
+
+## Häufige Probleme
+
+### Word / ODT / Excel / PowerPoint zu PDF hängt (SharedArrayBuffer nicht verfügbar)
+
+**Symptom**: LibreOffice-basierte Dokumentkonvertierungen (Word, ODT, Excel, PowerPoint zu PDF) hängen bei ca. 55 % oder starten nicht. Die Browserkonsole zeigt möglicherweise:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…oder `window.crossOriginIsolated` meldet `false`, oder die WASM-Kompilierung meldet `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Ursache**: LibreOffice-WASM benötigt `SharedArrayBuffer`, das der Browser nur aktiviert, wenn die Seite **Cross-Origin-isoliert** ist UND aus einem **sicheren Kontext** ausgeliefert wird. Dafür müssen zwei Dinge zutreffen:
+
+1. Jede Antwort enthält beide Header:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. Die Seite wird über `https://...` oder `http://localhost` ausgeliefert. Reines HTTP auf einer LAN-IP (z. B. `http://192.168.x.x`) zählt NICHT als sicher, dort deaktivieren Browser `SharedArrayBuffer`.
+
+Die Abweichung `00 61 73 6d / 1f 8b 08 08` ist ein separates Teilsymptom: Den vorkomprimierten Dateien `.wasm.gz` / `.data.gz` fehlt der Response-Header `Content-Encoding: gzip`, sodass der Browser rohe gzip-Bytes statt dekomprimiertem WASM erhält.
+
+**Lösung**: Die genaue Konfiguration finden Sie im Bereitstellungsleitfaden Ihrer Plattform:
+
+- [Nginx →](/de/self-hosting/nginx#signieren-oder-formularausfullung-zeigt-einen-leeren-viewer-mjs-mime-fehler)
+- [Apache →](/de/self-hosting/apache#signieren-oder-formularausfullung-zeigt-einen-leeren-viewer-mjs-mime-fehler)
+- [AWS S3 + CloudFront →](/de/self-hosting/aws#schritt-3b-response-headers-policy-erforderlich-fur-libreoffice-wasm)
+- [Cloudflare Pages →](/de/self-hosting/cloudflare#konfigurationsdatei) (`_headers`-Datei)
+- [Netlify →](/de/self-hosting/netlify#word-odt-excel-zu-pdf-bleibt-bei-55-hangen) (`netlify.toml`)
+- [Vercel →](/de/self-hosting/vercel#word-odt-excel-zu-pdf-funktioniert-nicht) (`vercel.json`)
+- [Hostinger →](/de/self-hosting/hostinger#libreoffice-werkzeuge-funktionieren-nicht) (`.htaccess`)
+- [Kubernetes →](/de/self-hosting/kubernetes#mjs-mime-type-fehler-pdf-unterschreiben-pdf-formular-ausfullen-leerer-iframe)
+- **Docker**: wird von der mitgelieferten Nginx-Konfiguration automatisch erledigt, keine Aktion nötig.
+
+**Überprüfen**: Öffnen Sie auf einer beliebigen BentoPDF-Seite die DevTools-Konsole und führen Sie aus:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Wenn die Seite über HTTPS oder `http://localhost` läuft UND beide COEP/COOP-Header in jeder Antwort vorhanden sind, bestehen beide Prüfungen. Wenn Sie auf `http://192.168.x.x` oder einem anderen nicht-Loopback-HTTP-Ursprung sind, beenden Sie die Verbindung mit HTTPS. Es gibt keine Lösung allein über Header.
+
+### `.mjs`-Dateien werden als `application/octet-stream` ausgeliefert
+
+**Symptom**: PDF unterschreiben / PDF-Formular ausfüllen / bestimmte andere Werkzeuge zeigen einen leeren Viewer oder laden nicht. Die Browserkonsole meldet:
+
+> `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.`
+
+**Ursache**: Ihr Webserver oder Reverse-Proxy hat keine MIME-Type-Zuordnung für `.mjs`-Dateien (der mitgelieferte PDF-Viewer enthält ES-Module mit dieser Endung). Viele Standard-Serverkonfigurationen verwenden für unbekannte Endungen `application/octet-stream`, was Browser als ES-Module nicht ausführen.
+
+**Lösung**: Den genauen Ausschnitt finden Sie im Bereitstellungsleitfaden Ihrer Plattform:
+
+- [Nginx →](/de/self-hosting/nginx#signieren-oder-formularausfullung-zeigt-einen-leeren-viewer-mjs-mime-fehler)
+- [Apache →](/de/self-hosting/apache#signieren-oder-formularausfullung-zeigt-einen-leeren-viewer-mjs-mime-fehler)
+- [AWS S3 + CloudFront →](/de/self-hosting/aws#schritt-2-bauen-und-hochladen) (siehe `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/de/self-hosting/kubernetes#mjs-mime-type-fehler-pdf-unterschreiben-pdf-formular-ausfullen-leerer-iframe)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: wird automatisch erledigt, keine Aktion nötig.
+
+**Überprüfen**: Öffnen Sie die DevTools → Tab Network, suchen Sie die fehlgeschlagene `.mjs`-Anfrage und prüfen Sie den Response-Header `Content-Type`. Er sollte `application/javascript` lauten. Wenn er immer noch `application/octet-stream` lautet, bestimmt möglicherweise ein vorgelagerter Reverse-Proxy oder CDN den Typ neu. Prüfen Sie jede Schicht in Ihrer Auslieferungskette.
+
+## WASM-Konfiguration (AGPL-Komponenten)
+
+BentoPDF **bündelt keine** AGPL-lizenzierten Verarbeitungsbibliotheken in seinem Quellcode, **konfiguriert aber CDN-URLs vor**, sodass alle Funktionen sofort funktionieren, ohne manuelle Einrichtung.
+
+::: tip Standardmäßig ohne Konfiguration
+Seit v2.0.0 sind WASM-Module so vorkonfiguriert, dass sie über Umgebungsvariablen vom jsDelivr-CDN geladen werden. Alle erweiterten Funktionen funktionieren sofort, ohne Konfiguration durch Nutzende.
+:::
+
+| Komponente | Lizenz | Funktionen |
+| --------------- | -------- | ---------------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | EPUB-/MOBI-/FB2-/XPS-Konvertierung, Bildextraktion, Tabellenextraktion |
+| **Ghostscript** | AGPL-3.0 | PDF/A-Konvertierung, Komprimierung, Begradigung, Rasterung |
+| **CoherentPDF** | AGPL-3.0 | Inhaltsverzeichnis, Anhänge, PDF-Zusammenführung mit Lesezeichen |
+
+### Standard-Umgebungsvariablen
+
+Diese sind in `.env.production` gesetzt und in den Build eingebaut:
+
+```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=
+```
+
+### WASM-URLs überschreiben
+
+Sie können die Standardwerte zur Build-Zeit für eigene Bereitstellungen überschreiben:
+
+```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
+```
+
+Um ein Modul vollständig zu deaktivieren (manuelle Konfiguration durch Nutzende über die erweiterten Einstellungen erforderlich), setzen Sie seine Variable auf eine leere Zeichenfolge.
+
+Für OCR lassen Sie entweder alle `VITE_TESSERACT_*`-Variablen leer und behalten die standardmäßigen Online-Assets, oder Sie setzen die Worker-/Core-/Sprach-URLs gemeinsam für selbst gehostetes/Offline-OCR. Wenn Sie nur bestimmte OCR-Sprachen bündeln, setzen Sie `VITE_TESSERACT_AVAILABLE_LANGUAGES` ebenfalls auf dieselben kommagetrennten Codes, damit die Oberfläche nur installierte Sprachen anbietet und nicht unterstützte Auswahlen mit einer aussagekräftigen Fehlermeldung fehlschlagen. Für eine vollständig offline erzeugte durchsuchbare PDF-Ausgabe setzen Sie außerdem `VITE_OCR_FONT_BASE_URL` auf das interne Verzeichnis, das die mitgelieferten OCR-Schriftarten bereitstellt.
+
+Nutzende können diese Standardwerte jederzeit über die **erweiterten Einstellungen** in der Oberfläche überschreiben. Im Browser gespeicherte Überschreibungen haben Vorrang vor den Standardwerten der Umgebung.
+
+### Air-Gapped- / Offline-Bereitstellung
+
+Für Netzwerke ohne Internetzugang (Behörden, Gesundheitswesen, Finanzwesen usw.). Die WASM-URLs sind zur **Build-Zeit** in das JavaScript eingebaut, die eigentlichen WASM-Dateien werden zur Laufzeit vom **Browser der Nutzenden** heruntergeladen. Sie müssen also alles auf einem Rechner mit Internetzugang vorbereiten und dann in das isolierte Netzwerk übertragen.
+
+#### Automatisiertes Skript (empfohlen)
+
+Das mitgelieferte Skript `prepare-airgap.sh` automatisiert den gesamten Ablauf: Es lädt die WASM-Pakete herunter, baut das Docker-Image und erzeugt ein in sich geschlossenes Bundle mit einem Setup-Skript.
+
+```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
+```
+
+Dies erzeugt ein Bundle-Verzeichnis:
+
+```
+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
+```
+
+Übertragen Sie das Bundle per USB, internem Artefakt-Repository oder auf einem anderen genehmigten Weg in das Air-Gapped-Netzwerk. Führen Sie dann das mitgelieferte Setup-Skript aus:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Das Setup-Skript lädt das Docker-Image, entpackt die WASM-Dateien und startet optional den Container.
+
+**Skriptoptionen:**
+
+| Flag | Beschreibung | Standard |
+| ------------------------------ | ------------------------------------------------------------- | ------------------------------------------- |
+| `--wasm-base-url ` | Wo die WASMs intern gehostet werden | _(erforderlich, wird bei Fehlen abgefragt)_ |
+| `--image-name ` | Docker-Image-Tag | `bentopdf` |
+| `--output-dir ` | Ausgabeverzeichnis des Bundles | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Simple Mode aktivieren | aus |
+| `--base-url ` | Base-URL des Unterverzeichnisses (z. B. `/pdf/`) | `/` |
+| `--language ` | Standardsprache der Oberfläche (z. B. `fr`, `de`) | _(keine)_ |
+| `--brand-name ` | Eigener Markenname | _(keine)_ |
+| `--brand-logo ` | Logopfad relativ zu `public/` | _(keine)_ |
+| `--footer-text ` | Eigener Footer-Text | _(keine)_ |
+| `--ocr-languages ` | Kommagetrennte OCR-Sprachen zum Bündeln | `eng` |
+| `--list-ocr-languages` | Unterstützte OCR-Codes und Namen ausgeben, dann beenden | aus |
+| `--search-ocr-language ` | OCR-Codes nach Name oder Abkürzung suchen | aus |
+| `--dockerfile ` | Zu verwendendes Dockerfile | `Dockerfile` |
+| `--skip-docker` | Docker-Build und -Export überspringen | aus |
+| `--skip-wasm` | WASM-Download überspringen (vorhandene `.tgz`-Dateien nutzen) | aus |
+
+Die interaktive Abfrage akzeptiert außerdem `list`, um die vollständige Liste der unterstützten Tesseract-Codes auszugeben, und `search `, um Treffer wie `search german` oder `search chi` zu finden.
+
+::: warning Same-Origin-Anforderung
+WASM-Dateien müssen vom **selben Ursprung** wie die BentoPDF-App ausgeliefert werden. Web Worker verwenden `importScripts()`, das keine Skripte von anderen Ursprüngen laden kann. Wenn BentoPDF beispielsweise unter `https://internal.example.com` läuft, sollte auch die WASM-Basis-URL `https://internal.example.com/wasm` lauten.
+:::
+
+#### Manuelle Schritte
+
+
+Wenn Sie es lieber manuell ohne das Skript machen
+
+**Schritt 1: WASM- und OCR-Pakete herunterladen** (auf einem Rechner mit Internetzugang)
+
+```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
+```
+
+**Schritt 2: Das Docker-Image mit internen URLs bauen**
+
+```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 .
+```
+
+**Schritt 3: Das Docker-Image exportieren**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Schritt 4: In das Air-Gapped-Netzwerk übertragen**
+
+Kopieren Sie per USB, internem Artefakt-Repository oder einem genehmigten Übertragungsweg:
+
+- `bentopdf.tar`: das Docker-Image
+- Die fünf `.tgz`-WASM-/OCR-Pakete aus Schritt 1
+- Das Verzeichnis `tesseract-langdata/` aus Schritt 1
+- Das Verzeichnis `ocr-fonts/` aus Schritt 1
+
+**Schritt 5: Im Air-Gapped-Netzwerk einrichten**
+
+```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
+```
+
+Stellen Sie sicher, dass die Dateien unter den in Schritt 2 konfigurierten URLs erreichbar sind, einschließlich `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` und `.../ocr/fonts`.
+
+
+
+::: info Aus dem Quellcode statt mit Docker bauen?
+Setzen Sie die Variablen in `.env.production`, bevor Sie `npm run build` ausführen:
+
+```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
+```
+
+:::
+
+### Einen eigenen WASM-Proxy hosten
+
+Wenn Sie AGPL-WASM-Dateien mit passenden CORS-Headern ausliefern müssen, können Sie einen einfachen Proxy bereitstellen. Eine Beispielimplementierung finden Sie im [Cloudflare-WASM-Proxy-Leitfaden](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md).
+
+::: tip Warum getrennt?
+Diese Trennung sorgt für:
+
+- Klare rechtliche Konformität für kommerzielle Nutzende
+- Den Kern von BentoPDF unter seiner Dual-Lizenz (AGPL-3.0 / Commercial)
+- WASM-Dateien, die zur Laufzeit geladen und nicht im Quellcode gebündelt werden
+ :::
+
+## Systemanforderungen
+
+| Anforderung | Minimum |
+| ----------- | ---------------------------------- |
+| Speicher | ca. 100 MB (Kern ohne AGPL-Module) |
+| RAM | 512 MB |
+| CPU | Jeder moderne Prozessor |
+
+::: tip
+BentoPDF ist eine statische Website, es werden keine Datenbank und kein Backend-Server benötigt!
+:::
diff --git a/docs/de/self-hosting/kubernetes.md b/docs/de/self-hosting/kubernetes.md
new file mode 100644
index 00000000..ff2b3ad6
--- /dev/null
+++ b/docs/de/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Mit Kubernetes bereitstellen
+
+Kubernetes ist für eine statische Website vielleicht überdimensioniert, kann aber gut passen, wenn Sie ohnehin auf Helm + GitOps setzen.
+
+> [!IMPORTANT]
+> **Erforderliche Header für die Office-Dateikonvertierung**
+>
+> LibreOffice-basierte Werkzeuge (Word-, Excel-, PowerPoint-Konvertierung) benötigen diese HTTP-Header für die `SharedArrayBuffer`-Unterstützung:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Die offiziellen BentoPDF-Nginx-Images enthalten diese Header. In Kubernetes sind **Ingress-/Gateway-Controller ebenfalls Reverse-Proxys**. Stellen Sie daher sicher, dass diese Header erhalten bleiben (oder fügen Sie sie am Edge hinzu).
+
+## Voraussetzungen
+
+- Kubernetes-Cluster
+- Helm v3
+- Ein BentoPDF-Nginx-Image (z. B. `ghcr.io/alam00000/bentopdf:`), das auf **Port 8080** läuft
+
+## Mit Helm bereitstellen
+
+### Aus diesem Repo installieren (lokales Chart)
+
+```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
+```
+
+### Aus GHCR installieren (OCI-Chart)
+
+Wenn das Chart als OCI-Artefakt in GHCR veröffentlicht ist:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Verfügbar machen
+
+### Port-Forward (schneller Test)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (optional)
+
+Aktivieren Sie Ingress (Beispiel für nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (optional)
+
+Dieses Chart unterstützt Gateway API `Gateway` + `HTTPRoute`.
+
+Beispiel (Cloudflare-Gateway-API-Operator):
+
+```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
+```
+
+## Sicherstellen, dass die SharedArrayBuffer-Header weiterhin funktionieren (Ingress/Gateway)
+
+### Was passieren "sollte"
+
+Die Nginx-Konfiguration von BentoPDF setzt die erforderlichen Response-Header. Die meisten Ingress-/Gateway-Controller **leiten Response-Header des Upstreams unverändert weiter**.
+
+### Was das verhindern kann
+
+- Eine Controller-/Edge-Richtlinie, die Response-Header **überschreibt** oder **entfernt**
+- Eine "Security-Header"-Middleware, die andere COOP/COEP-Werte setzt
+
+### So überprüfen Sie es
+
+Führen Sie dies gegen Ihren öffentlichen Endpunkt aus:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Sie sollten Folgendes sehen:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Wenn Ihr Ingress-Controller sie nicht beibehält
+
+Fügen Sie die Header am Edge hinzu (controllerspezifisch). Beispiel für **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;
+```
+
+## `.mjs`-MIME-Type-Fehler (PDF unterschreiben / PDF-Formular ausfüllen, leerer iframe)
+
+Wenn die Browserkonsole bei einer `.mjs`-Anfrage `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` anzeigt, ersetzt ein Ingress-/Gateway-Controller vor dem BentoPDF-Nginx den Upstream-Header `Content-Type` durch `application/octet-stream`.
+
+Der Nginx im BentoPDF-Image liefert `.mjs` bereits als `application/javascript` aus. Die Lösung besteht darin, den Controller daran zu hindern, den Header zu entfernen oder zu ersetzen. Für nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Oder verwenden Sie in der Gateway API einen `ResponseHeaderModifier`-Filter, um `Content-Type: application/javascript` für `.mjs`-Pfade zu setzen. Überprüfen Sie es im DevTools-Tab Network: Die fehlgeschlagene `.mjs`-Anfrage sollte nun `content-type: application/javascript` zeigen.
+
+### Wenn Sie die Gateway API nutzen und Header erzwingen möchten
+
+Die Gateway API unterstützt einen `ResponseHeaderModifier`-Filter. Sie können ihn in `httpRoute.rules[*].filters` einbinden:
+
+```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
+```
+
+Die Unterstützung bestimmter Filter hängt von Ihrem Gateway-Controller ab. Wenn ein Filter ignoriert wird, fügen Sie die Header stattdessen am Edge bzw. im Controller hinzu.
+
+## Bestimmte Werkzeuge deaktivieren
+
+Verwenden Sie eine ConfigMap, um Werkzeuge zur Laufzeit zu deaktivieren, ohne das Image neu zu bauen:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Binden Sie sie in das ausgelieferte Verzeichnis ein:
+
+```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
+```
+
+Werkzeug-IDs entsprechen der Seiten-URL ohne `.html`: Öffnen Sie ein beliebiges Werkzeug und sehen Sie sich die URL an (z. B. `edit-pdf`, `merge-pdf`, `compress-pdf`). Deaktivierte Werkzeuge werden auf der Startseite, in der Suche, in den Tastenkürzeln, im Workflow-Builder und beim direkten URL-Zugriff ausgeblendet. Die vollständige Liste der Optionen finden Sie im [Docker-Leitfaden](/de/self-hosting/docker#bestimmte-werkzeuge-deaktivieren).
diff --git a/docs/de/self-hosting/netlify.md b/docs/de/self-hosting/netlify.md
new file mode 100644
index 00000000..901376cb
--- /dev/null
+++ b/docs/de/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Auf Netlify bereitstellen
+
+[Netlify](https://netlify.com) bietet hervorragendes Hosting für statische Websites mit einem großzügigen kostenlosen Kontingent.
+
+## Bereitstellung mit einem Klick
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Manuelle Bereitstellung
+
+### Schritt 1: Repository verbinden
+
+1. Melden Sie sich bei [Netlify](https://app.netlify.com) an
+2. Klicken Sie auf "Add new site" → "Import an existing project"
+3. Verbinden Sie Ihr GitHub-Konto
+4. Wählen Sie Ihren BentoPDF-Fork aus
+
+### Schritt 2: Build-Einstellungen konfigurieren
+
+| Einstellung | Wert |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### Schritt 3: Bereitstellen
+
+Klicken Sie auf "Deploy site" und warten Sie auf den Build.
+
+## Konfigurationsdatei
+
+Erstellen Sie `netlify.toml` im Stammverzeichnis Ihres Projekts:
+
+```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 Wichtig
+Die Header `Cross-Origin-Embedder-Policy` und `Cross-Origin-Opener-Policy` sind für die Konvertierung von Word/ODT/Excel/PowerPoint in PDF erforderlich. Ohne sie ist `SharedArrayBuffer` nicht verfügbar, und die LibreOffice-WASM-Engine kann nicht initialisiert werden.
+
+Die `Content-Encoding: gzip`-Header für die Dateien `.wasm.gz` und `.data.gz` weisen den Browser an, sie automatisch zu dekomprimieren. Ohne sie erhält der Browser rohe gzip-Bytes, und die WASM-Kompilierung schlägt fehl.
+:::
+
+## Umgebungsvariablen
+
+Legen Sie diese unter Site settings → Environment variables fest:
+
+| Variable | Beschreibung |
+| ----------------------- | ---------------------------------------------------------- |
+| `SIMPLE_MODE` | Auf `true` setzen für einen minimalen Build |
+| `VITE_BRAND_NAME` | Eigener Markenname (ersetzt "BentoPDF") |
+| `VITE_BRAND_LOGO` | Logopfad relativ zu `public/` (z. B. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Eigener Footer-/Copyright-Text |
+| `VITE_DEFAULT_LANGUAGE` | Standardsprache der Oberfläche (z. B. `fr`, `de`, `es`) |
+
+## Eigene Domain
+
+1. Gehen Sie zu Site settings → Domain management
+2. Klicken Sie auf "Add custom domain"
+3. Folgen Sie den Anweisungen zur DNS-Konfiguration
+
+## Große Mediendateien
+
+Für große WASM-Dateien können Sie [Netlify Large Media](https://docs.netlify.com/large-media/overview/) aktivieren:
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Fehlerbehebung
+
+### Word/ODT/Excel zu PDF bleibt bei 55 % hängen
+
+Wenn Dokumentkonvertierungen bei 55 % hängen bleiben, öffnen Sie die DevTools-Konsole und prüfen Sie:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Wenn `crossOriginIsolated` den Wert `false` hat, werden die COEP/COOP-Header aus Ihrer `netlify.toml` nicht angewendet. Stellen Sie sicher, dass sich die Datei im Stammverzeichnis Ihres Projekts befindet, und stellen Sie erneut bereit.
+
+Wenn Sie in der Konsole `expected magic word 00 61 73 6d, found 1f 8b 08 08` sehen, fehlen den `.wasm.gz`-Dateien die `Content-Encoding: gzip`-Header. Stellen Sie sicher, dass die `[[headers]]`-Blöcke für `soffice.wasm.gz` und `soffice.data.gz` in Ihrer `netlify.toml` enthalten sind.
+
+### Build schlägt fehl
+
+Prüfen Sie die Kompatibilität der Node-Version:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Langsames erstes Laden
+
+Aktivieren Sie die Asset-Optimierung unter Site settings → Build & deploy → Asset optimization.
diff --git a/docs/de/self-hosting/nginx.md b/docs/de/self-hosting/nginx.md
new file mode 100644
index 00000000..ec4ac172
--- /dev/null
+++ b/docs/de/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Mit Nginx bereitstellen
+
+Hosten Sie BentoPDF mit Nginx auf Ihrem eigenen Server.
+
+## Voraussetzungen
+
+- Ubuntu-/Debian-Server
+- Installierter Nginx
+- SSL-Zertifikat (empfohlen: Let's Encrypt)
+
+## Schritt 1: Das Projekt bauen
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Um das Branding anzupassen, setzen Sie vor dem Build Umgebungsvariablen:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Schritt 2: Dateien kopieren
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Schritt 3: Nginx-Konfiguration
+
+Erstellen Sie `/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;
+ }
+}
+```
+
+## Schritt 4: Die Site aktivieren
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Schritt 5: SSL mit Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Bereitstellung in einem Unterverzeichnis
+
+Um unter `/pdf/` zu hosten:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Bauen Sie mit:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Performance-Tuning
+
+Fügen Sie in `nginx.conf` hinzu:
+
+```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;
+}
+```
+
+## Fehlerbehebung
+
+### WASM wird nicht geladen
+
+Stellen Sie sicher, dass der MIME-Type gesetzt ist:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Signieren oder Formularausfüllung zeigt einen leeren Viewer (`.mjs`-MIME-Fehler)
+
+Wenn die Browserkonsole Folgendes anzeigt:
+
+```
+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.
+```
+
+…und die fehlgeschlagene Anfrage auf `.mjs` endet, fehlt in Ihrem Nginx die Zuordnung `.mjs → application/javascript`. Der mitgelieferte PDF-Viewer (genutzt von PDF unterschreiben, PDF-Formular ausfüllen und einigen weiteren Werkzeugen) enthält ES-Moduldateien mit der Endung `.mjs`, und die Standard-`mime.types` von Nginx enthält diese nicht.
+
+Beheben Sie es, indem Sie `mjs` in der bestehenden `application/javascript`-Zeile in `/etc/nginx/mime.types` ergänzen:
+
+```nginx
+application/javascript js mjs;
+```
+
+> Fügen Sie KEINE _zweite_ `application/javascript`-Zeile hinzu: Nginx liest `mime.types` Zeile für Zeile und nur eine Zuordnung von Typ zu Endung gilt, sodass eine zweite Zeile in manchen Versionen stillschweigend ignoriert wird. Bearbeiten Sie die bestehende Zeile und ergänzen Sie `mjs` neben `js`.
+
+Oder überschreiben Sie es lokal in Ihrem Server-Block (ohne Änderung der globalen Datei):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Laden Sie Nginx nach der Änderung neu:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Zur Bestätigung: Suchen Sie in den Browser-DevTools im Tab Network die fehlgeschlagene `.mjs`-Anfrage und prüfen Sie den Response-Header `Content-Type`. Er sollte jetzt `application/javascript` lauten, nicht `application/octet-stream`.
+
+### Word/ODT/Excel zu PDF funktioniert nicht
+
+LibreOffice-WASM benötigt `SharedArrayBuffer`, wofür die Header `Cross-Origin-Embedder-Policy` und `Cross-Origin-Opener-Policy` nötig sind. Außerdem wird ein sicherer Kontext benötigt: `http://localhost` funktioniert für lokale Tests, aber `http://192.168.x.x` oder andere LAN-IPs erfordern in der Regel HTTPS. Beachten Sie, dass `add_header`-Direktiven in einem `location`-Block die `add_header`-Direktiven auf Server-Ebene **überschreiben**, statt sich mit ihnen zu vereinen. Jeder `location`-Block mit eigenem `add_header` muss die COEP/COOP-Header enthalten.
+
+Überprüfen Sie mit:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Wenn ein Reverse-Proxy vor Nginx liegt, stellen Sie sicher, dass er diese Header beibehält.
+
+### 502 Bad Gateway
+
+Prüfen Sie die Nginx-Fehlerprotokolle:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/de/self-hosting/vercel.md b/docs/de/self-hosting/vercel.md
new file mode 100644
index 00000000..8647cead
--- /dev/null
+++ b/docs/de/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Auf Vercel bereitstellen
+
+[Vercel](https://vercel.com) bietet die einfachste Bereitstellung für statische Websites.
+
+## Bereitstellung mit einem Klick
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Manuelle Bereitstellung
+
+### Schritt 1: Repository forken
+
+Forken Sie [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) in Ihr GitHub-Konto.
+
+### Schritt 2: In Vercel importieren
+
+1. Gehen Sie zu [vercel.com/new](https://vercel.com/new)
+2. Wählen Sie Ihr geforktes Repository aus
+3. Konfigurieren Sie das Projekt:
+
+| Einstellung | Wert |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Schritt 3: Umgebungsvariablen (optional)
+
+Fügen Sie diese bei Bedarf hinzu:
+
+| Variable | Beschreibung |
+| ----------------------- | ---------------------------------------------------------- |
+| `SIMPLE_MODE` | Auf `true` setzen für eine minimale Oberfläche |
+| `VITE_BRAND_NAME` | Eigener Markenname (ersetzt "BentoPDF") |
+| `VITE_BRAND_LOGO` | Logopfad relativ zu `public/` (z. B. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Eigener Footer-/Copyright-Text |
+| `VITE_DEFAULT_LANGUAGE` | Standardsprache der Oberfläche (z. B. `fr`, `de`, `es`) |
+
+### Schritt 4: Bereitstellen
+
+Klicken Sie auf "Deploy" und warten Sie, bis der Build abgeschlossen ist.
+
+## Eigene Domain
+
+1. Öffnen Sie die Einstellungen Ihres Projekts
+2. Navigieren Sie zu "Domains"
+3. Fügen Sie Ihre eigene Domain hinzu
+4. Konfigurieren Sie das DNS wie angegeben
+
+## Einschränkungen
+
+::: warning Große Dateien
+Die Serverless Functions von Vercel haben ein Limit von 50 MB. Da BentoPDF eine statische Website ist, sollte Sie das nicht betreffen, aber die WASM-Module sind groß (insgesamt ca. 100 MB). Stellen Sie sicher, dass sie aus dem Ordner `/public` ausgeliefert werden.
+:::
+
+## Fehlerbehebung
+
+### Build-Timeout
+
+Wenn Builds in ein Timeout laufen, versuchen Sie Folgendes:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 beim Neuladen
+
+Fügen Sie eine `vercel.json` für das SPA-Routing hinzu:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Word/ODT/Excel zu PDF funktioniert nicht
+
+Die LibreOffice-WASM-Konvertierungen erfordern `SharedArrayBuffer`, wofür diese Response-Header auf allen Seiten nötig sind:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Die vorkomprimierten Dateien `.wasm.gz` und `.data.gz` benötigen außerdem `Content-Encoding: gzip`, damit der Browser sie dekomprimiert.
+
+Fügen Sie diese zu Ihrer `vercel.json` hinzu:
+
+```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" }
+ ]
+ }
+ ]
+}
+```
+
+Zur Überprüfung öffnen Sie die DevTools-Konsole und führen Sie `console.log(window.crossOriginIsolated)` aus. Es sollte `true` zurückgeben.
diff --git a/docs/de/tools/add-attachments.md b/docs/de/tools/add-attachments.md
new file mode 100644
index 00000000..f9b11452
--- /dev/null
+++ b/docs/de/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Anhänge hinzufügen
+description: Betten Sie beliebige Dateien auf Dokumentebene oder an bestimmte Seiten gebunden in ein PDF ein.
+---
+
+# Anhänge hinzufügen
+
+Betten Sie eine oder mehrere Dateien direkt in ein PDF-Dokument ein. Anhänge können auf Dokumentebene hinzugefügt werden (sichtbar im Anhangbereich jedes PDF-Readers) oder an bestimmte Seiten gebunden werden.
+
+## So funktioniert es
+
+1. Laden Sie das PDF hoch, an das Sie Dateien anhängen möchten.
+2. Wählen Sie über die Ablagefläche für Anhänge die Dateien aus, die Sie einbetten möchten (beliebiger Dateityp).
+3. Wählen Sie die Anhangsebene: **Dokument** (Standard) oder **Seite**.
+4. Wenn Sie die Seitenebene wählen, geben Sie einen Seitenbereich ein (z. B. `1-3` oder `5`).
+5. Klicken Sie auf die Verarbeiten-Schaltfläche. Das geänderte PDF wird mit den eingebetteten Dateien heruntergeladen.
+
+## Funktionen
+
+- Beliebige Dateitypen anhängen: Bilder, Tabellen, Archive, ausführbare Dateien, alles
+- Anhänge auf Dokument- oder Seitenebene platzieren
+- Mehrere Dateien in einem Vorgang anhängen
+- Zeigt Dateinamen und Größen aller ausgewählten Anhänge an
+- Die Ausgabe behält den ursprünglichen PDF-Inhalt bei und ergänzt die eingebetteten Dateien
+
+## Optionen
+
+| Option | Beschreibung |
+| ----------------- | -------------------------------------------------------------------------------------- |
+| **Dokumentebene** | Hängt Dateien an das gesamte PDF an, abrufbar über den Anhangbereich |
+| **Seitenebene** | Hängt Dateien an bestimmte Seiten an, festgelegt über die Eingabe eines Seitenbereichs |
+
+## Anwendungsfälle
+
+- Quelldaten (Excel-Dateien, CSVs) mit einem PDF-Bericht bündeln
+- Originalbilddateien an ein Fotografie-Portfolio im PDF-Format anhängen
+- Begleitdokumente in einen Vertrag oder ein Angebot einbetten
+- Ergänzendes Material an bestimmte Seiten eines Schulungshandbuchs anhängen
+
+## Tipps
+
+- Anhänge auf Dokumentebene werden von PDF-Readern am besten unterstützt. Anhänge auf Seitenebene sind möglicherweise nicht in allen Viewern sichtbar.
+- Es gibt keine Größenbeschränkung für Anhänge, aber sehr große eingebettete Dateien lassen das PDF entsprechend wachsen.
+
+## Verwandte Werkzeuge
+
+- [Anhänge extrahieren](./extract-attachments)
+- [Anhänge bearbeiten](./edit-attachments)
+- [PDF zusammenführen](./merge-pdf)
diff --git a/docs/de/tools/add-blank-page.md b/docs/de/tools/add-blank-page.md
new file mode 100644
index 00000000..ae012d84
--- /dev/null
+++ b/docs/de/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Leere Seite hinzufügen
+description: Fügen Sie eine oder mehrere leere Seiten an beliebiger Position in ein PDF-Dokument ein.
+---
+
+# Leere Seite hinzufügen
+
+Fügen Sie leere Seiten an einer von Ihnen festgelegten Position in ein PDF ein. Sie bestimmen, wo die leeren Seiten eingefügt werden und wie viele es sein sollen.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Das Werkzeug zeigt die Seitenzahl an.
+2. Geben Sie die **Position** ein, an der leere Seiten eingefügt werden sollen. Verwenden Sie `0` für den Anfang oder die Gesamtseitenzahl, um am Ende anzufügen.
+3. Geben Sie die **Anzahl** der hinzuzufügenden leeren Seiten ein (Standard ist 1).
+4. Klicken Sie auf die Verarbeiten-Schaltfläche. Das geänderte PDF wird mit den eingefügten leeren Seiten heruntergeladen.
+
+## Funktionen
+
+- An beliebiger Position einfügen: am Anfang, in der Mitte oder am Ende des Dokuments
+- Mehrere leere Seiten in einem Vorgang hinzufügen
+- Der Positionshinweis passt sich dynamisch an die Seitenzahl des hochgeladenen PDFs an
+- Leere Seiten im Standardformat A4
+
+## Anwendungsfälle
+
+- Eine leere Trennseite zwischen Abschnitten eines zusammengestellten Dokuments einfügen
+- Leere Seiten für die korrekte Ausrichtung beim doppelseitigen Druck einfügen
+- Platz für handschriftliche Notizen in einem gedruckten Lernleitfaden schaffen
+- Ein Dokument auffüllen, um eine Mindestseitenzahl zu erreichen
+
+## Tipps
+
+- Position `0` fügt vor der ersten Seite ein. Eine Position gleich der Gesamtseitenzahl fügt nach der letzten Seite an.
+- Wenn Sie Inhalte (nicht nur leere Seiten) an einer bestimmten Position einfügen möchten, nutzen Sie das [PDF-Multitool](./pdf-multi-tool), um ein weiteres PDF nach einer bestimmten Seite einzufügen.
+
+## Verwandte Werkzeuge
+
+- [Organisieren & Duplizieren](./organize-pdf)
+- [PDF-Multitool](./pdf-multi-tool)
+- [PDF zusammenführen](./merge-pdf)
diff --git a/docs/de/tools/add-page-labels.md b/docs/de/tools/add-page-labels.md
new file mode 100644
index 00000000..dfa082d5
--- /dev/null
+++ b/docs/de/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Seitenbeschriftungen hinzufügen
+description: Fügen Sie PDF-Seitenbezeichnungen mit römischen Ziffern, Buchstabenpräfixen, eigener Nummerierung und mehreren Regeln pro Dokument hinzu.
+---
+
+# Seitenbeschriftungen hinzufügen
+
+Seitenbezeichnungen legen fest, wie Seitenzahlen in PDF-Viewern angezeigt werden (die Zahl in der Symbolleiste, nicht auf der Seite aufgedruckt). Mit diesem Werkzeug können Sie verschiedenen Seitenbereichen unterschiedliche Bezeichnungsschemata zuweisen: römische Ziffern für den Vorspann, Dezimalzahlen für den Hauptteil, Anhänge mit Buchstaben und mehr.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Das Optionsfeld erscheint mit einer Bezeichnungsregel als Standard.
+3. Konfigurieren Sie jede Regel mit Seitenbereich, Stil, optionalem Präfix und Startwert.
+4. Klicken Sie auf **Regel hinzufügen**, um weitere Regeln für andere Abschnitte zu erstellen.
+5. Klicken Sie auf **Seitenbezeichnungen hinzufügen**, um alle Regeln anzuwenden und das Ergebnis herunterzuladen.
+
+## Optionen
+
+Jede Bezeichnungsregel hat diese Einstellungen:
+
+- **Seitenbereich** -- Auf welche Seiten die Regel angewendet wird. Leer lassen für alle Seiten. Unterstützt Bereiche wie `1-4`, `7`, `odd` oder `1-9,30-40`.
+- **Bezeichnungsstil** -- Dezimale arabische Ziffern, römische Kleinbuchstaben (i, ii, iii), römische Großbuchstaben (I, II, III), Kleinbuchstaben (a, b, c), Großbuchstaben (A, B, C) oder keine Bezeichnung (nur Präfix).
+- **Bezeichnungspräfix** -- Optionaler Text, der jeder Bezeichnung vorangestellt wird, etwa "A-", um Bezeichnungen wie A-1, A-2, A-3 zu erzeugen.
+- **Startwert** -- Die Zahl, ab der gezählt wird. Standard ist 1. Auf 0 setzen für eine bei null beginnende Nummerierung.
+- **Nummerierung über getrennte Bereiche fortsetzen** -- Aktivieren Sie dies, wenn eine Regel nicht zusammenhängende Seiten betrifft (wie `1-9,30-40` oder `odd`) und die Nummerierung fortlaufend weitergehen soll.
+- **Vorhandene Seitenbezeichnungen entfernen** -- Standardmäßig aktiviert. Löscht alle früheren Bezeichnungen, bevor Ihre neuen Regeln angewendet werden.
+
+## Funktionen
+
+- Mehrere Bezeichnungsregeln pro Dokument für komplexe Nummerierungsschemata
+- Sechs Bezeichnungsstile für alle gängigen Nummerierungssysteme
+- Eigene Präfixe für abschnittsbasierte Bezeichnungen
+- Unterstützung getrennter Bereiche mit fortlaufender Nummerierung
+- Vorhandene Bezeichnungen wahlweise beibehalten oder entfernen
+
+## Anwendungsfälle
+
+- Römische Ziffern (i, ii, iii) für das Vorwort eines Buchs und Dezimalzahlen für den Haupttext festlegen
+- Anhangseiten mit Buchstabenpräfixen wie "A-1", "A-2", "B-1", "B-2" bezeichnen
+- Seitenbezeichnungen in einem gescannten Dokument korrigieren, in dem die gedruckten Seitenzahlen nicht zur PDF-Seitenreihenfolge passen
+- Bei null beginnende Nummerierung für technische Dokumente hinzufügen
+
+## Tipps
+
+- Seitenbezeichnungen sind Metadaten, die PDF-Viewer in ihrer Navigationsleiste anzeigen. Sie werden nicht auf die Seite gedruckt. Für sichtbare Zahlen nutzen Sie [Seitenzahlen](./page-numbers).
+- Dieses Werkzeug erfordert, dass CoherentPDF (CPDF) in Ihren WASM-Einstellungen konfiguriert ist. Falls nicht, werden Sie aufgefordert, es einzurichten.
+
+## Verwandte Werkzeuge
+
+- [Seitenzahlen](./page-numbers)
+- [Bates-Nummerierung](./bates-numbering)
+- [Lesezeichen bearbeiten](./bookmark)
diff --git a/docs/de/tools/add-stamps.md b/docs/de/tools/add-stamps.md
new file mode 100644
index 00000000..2debbf46
--- /dev/null
+++ b/docs/de/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Stempel hinzufügen
+description: Fügen Sie Ihren PDF-Seiten Bildstempel hinzu, mit integrierter Annotations-Symbolleiste und Benutzernamen als Zuordnung.
+---
+
+# Stempel hinzufügen
+
+Platzieren Sie Bildstempel auf Ihren PDF-Seiten mit einem eingebetteten Viewer samt Symbolleiste für Stempel-Annotationen. Stempel können Ihren Namen zur Zuordnung enthalten, das ist nützlich für Freigabe-Workflows, Prüfprozesse und die Kennzeichnung von Dokumenten.
+
+## So funktioniert es
+
+1. Geben Sie Ihren Namen in das Feld **Stempel-Benutzername** ein. Dieser Name erscheint auf den Stempeln, die Sie erstellen.
+2. Laden Sie Ihre PDF-Datei hoch, indem Sie auf die Ablagefläche klicken oder die Datei dorthin ziehen.
+3. Der Stempel-Editor öffnet sich mit Ihrem Dokument im Viewer.
+4. Wählen Sie mit dem Bildstempel-Werkzeug der Symbolleiste Stempel aus und platzieren Sie sie auf einer beliebigen Seite.
+5. Positionieren Sie die Stempel und änderen Sie ihre Größe nach Bedarf.
+6. Klicken Sie auf **Gestempeltes PDF speichern**, um das Ergebnis herunterzuladen.
+
+## Funktionen
+
+- Integrierter PDF-Viewer mit spezieller Annotations-Symbolleiste für Stempel
+- Zuordnung über den Benutzernamen auf erstellten Stempeln
+- Bildstempel auf jeder Seite platzieren
+- Positionieren und Skalieren per Drag-and-drop
+- Automatische Viewer-Größe basierend auf dem Seitenverhältnis
+- Dateianzeige mit Name und Größe
+
+## Anwendungsfälle
+
+- "GENEHMIGT"- oder "GEPRÜFT"-Bildstempel in einem Prüf-Workflow auf Dokumente setzen
+- Firmensiegel oder Notarstempel als Bild auf offizielle Dokumente setzen
+- Seiten mit "ERHALTEN"-Stempeln samt Namen der prüfenden Person markieren
+- Qualitätskontrollstempel zu Prüfberichten hinzufügen
+
+## Tipps
+
+- Legen Sie Ihren Stempel-Benutzernamen fest, bevor Sie das PDF hochladen. Der Benutzername wird in den Stempel-Metadaten gespeichert.
+- Der Viewer passt seine Höhe an das Seitenverhältnis der ersten PDF-Seite an, für eine optimale Darstellung.
+- Für textbasierte Wasserzeichen statt Bildstempeln nutzen Sie das Werkzeug [Wasserzeichen hinzufügen](./add-watermark).
+
+## Verwandte Werkzeuge
+
+- [PDF unterschreiben](./sign-pdf)
+- [Wasserzeichen hinzufügen](./add-watermark)
+- [PDF-Editor](./edit-pdf)
diff --git a/docs/de/tools/add-watermark.md b/docs/de/tools/add-watermark.md
new file mode 100644
index 00000000..a252142f
--- /dev/null
+++ b/docs/de/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Wasserzeichen hinzufügen
+description: Setzen Sie Text- oder Bild-Wasserzeichen auf PDF-Seiten, mit visuellem Drag-and-drop-Editor und Live-Vorschau.
+---
+
+# Wasserzeichen hinzufügen
+
+Fügen Sie Ihren PDF-Seiten Text- oder Bild-Wasserzeichen mit einem visuellen Editor hinzu. Sie positionieren das Wasserzeichen direkt in der Vorschau per Ziehen, ändern die Größe über die Eckgriffe und stellen Deckkraft, Drehung, Schriftart und Farbe ein. Jede Seite kann eine eigene Wasserzeichenposition haben, oder Sie wenden dasselbe Wasserzeichen auf alle Seiten gleichzeitig an.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Der Editor öffnet sich mit einer Live-Vorschau der ersten Seite und einem verschiebbaren Wasserzeichen-Overlay.
+3. Wählen Sie mit den Umschaltflächen zwischen dem Modus **Text** und **Bild**.
+4. Konfigurieren Sie die Wasserzeicheneinstellungen im Seitenbereich.
+5. Ziehen Sie das Wasserzeichen in der Vorschau genau an die gewünschte Stelle. Änderen Sie die Größe über die Eckgriffe.
+6. Wechslen Sie zwischen den Seiten, um Wasserzeichen pro Seite festzulegen, oder lassen Sie **Auf alle Seiten anwenden** aktiviert.
+7. Klicken Sie auf **Wasserzeichen hinzufügen**, um zu verarbeiten und herunterzuladen.
+
+## Optionen
+
+**Einstellungen für Text-Wasserzeichen:**
+
+- **Text** -- Der Wasserzeichentext (z. B. "VERTRAULICH", "ENTWURF").
+- **Schriftgröße** -- Von 10 bis 200 Punkt. Standard ist 72.
+- **Farbe** -- Beliebige Farbe über die Farbauswahl.
+- **Deckkraft** -- Steuere die Transparenz von vollständig transparent bis vollständig deckend.
+- **Drehung** -- Drehe den Wasserzeichentext von -180 bis 180 Grad.
+
+**Einstellungen für Bild-Wasserzeichen:**
+
+- **Bild hochladen** -- Laden Sie eine PNG-, JPG- oder andere Bilddatei als Wasserzeichen hoch.
+- **Deckkraft** -- Steuere die Transparenz des Bildes.
+- **Skalierung** -- Änderen Sie die Größe des Bild-Wasserzeichens.
+
+**Layout-Einstellungen:**
+
+- **Einzeln** -- Ein Wasserzeichen pro Seite, positioniert per Ziehen oder mit den Positionsvorgaben.
+- **Gekachelt** -- Wiederholt das Wasserzeichen auf der gesamten Seite in einem diagonalen Raster, das dem Drehwinkel folgt, sodass die Markierung das Dokument von Rand zu Rand abdeckt.
+- **Horizontaler Abstand** -- Abstand zwischen den Kacheln entlang der Textrichtung, als Prozentsatz der Wasserzeichenbreite (nur im gekachelten Modus).
+- **Vertikaler Abstand** -- Abstand zwischen den Kachelreihen, als Prozentsatz der Wasserzeichenhöhe (nur im gekachelten Modus).
+
+**Allgemeine Einstellungen:**
+
+- **Auf alle Seiten anwenden** -- Wenn aktiviert, gilt dasselbe Wasserzeichen für jede Seite. Deaktivieren Sie es, um einzelne Wasserzeichen pro Seite festzulegen.
+- **Seitenbereich** -- Legen Sie fest, welche Seiten das Wasserzeichen erhalten (z. B. "1-3, 5, 7-9" oder "all").
+
+## Funktionen
+
+- Visuelle Positionierung per Drag-and-drop in einer Live-PDF-Vorschau
+- Größenveränderbares Wasserzeichen mit Eckgriffen
+- Text- und Bildmodus für Wasserzeichen
+- Einzelnes oder seitenfüllend gekacheltes (wiederholtes) Layout mit einstellbarem Abstand
+- Wasserzeichen pro Seite oder global anwenden
+- Seitenweise Navigation in der Vorschau
+- Regler für Deckkraft und Drehung
+- Filterung nach Seitenbereich
+
+## Anwendungsfälle
+
+- Entwürfe vor der Weitergabe zur Prüfung mit "ENTWURF" markieren
+- "VERTRAULICH"-Wasserzeichen auf sensible Finanzberichte setzen
+- Dokumente mit einem Firmenlogo als Bild-Wasserzeichen versehen
+- "MUSTER" auf Produktdokumentation stempeln, die an Interessenten weitergegeben wird
+- Urheberrechtshinweise zu verteilten PDF-Materialien hinzufügen
+
+## Tipps
+
+- Für diagonale Wasserzeichen über die Seite stellen Sie eine Drehung von etwa 45 Grad ein und erhöhen Sie die Schriftgröße.
+- Der gekachelte Modus erschwert die Wiederverwendung eines Dokuments nach dem Zuschneiden erheblich, da nach dem Entfernen einer Markierung noch Dutzende übrig bleiben. Verringeren Sie beim Kacheln die Deckkraft, damit der darunterliegende Text lesbar bleibt.
+- Bild-Wasserzeichen mit transparentem Hintergrund (PNG-Format) fügen sich natürlicher in den Dokumentinhalt ein.
+- Wenn Sie auf verschiedenen Seiten unterschiedlichen Wasserzeichentext brauchen, deaktivieren Sie "Auf alle Seiten anwenden" und gehen Sie Seite für Seite vor.
+
+## Verwandte Werkzeuge
+
+- [Kopf- & Fußzeile](./header-footer)
+- [Stempel hinzufügen](./add-stamps)
+- [Bates-Nummerierung](./bates-numbering)
+- [PDF unterschreiben](./sign-pdf)
diff --git a/docs/de/tools/adjust-colors.md b/docs/de/tools/adjust-colors.md
new file mode 100644
index 00000000..36571bd1
--- /dev/null
+++ b/docs/de/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Farben anpassen
+description: Passen Sie Helligkeit, Kontrast, Sättigung, Farbton, Temperatur, Tönung, Gamma und Sepia in Ihrem PDF fein an.
+---
+
+# Farben anpassen
+
+Ein vollständiges Farbkorrektur-Werkzeug für PDFs. Passen Sie acht unabhängige Parameter an (Helligkeit, Kontrast, Sättigung, Farbtonverschiebung, Temperatur, Tönung, Gamma und Sepia) mit einer Live-Vorschau, die sich bei jeder Reglerbewegung aktualisiert.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Der Editor öffnet sich mit einer Vorschau der ersten Seite und einem Bereich für die Farbeinstellungen.
+3. Bewegen Sie die Regler, um jeden Farbparameter anzupassen. Die Vorschau aktualisiert sich in Echtzeit.
+4. Klicken Sie auf **Zurücksetzen**, um alle Regler auf ihre Standardpositionen zurückzusetzen.
+5. Klicken Sie auf **Anwenden**, um alle Seiten zu verarbeiten und das angepasste PDF herunterzuladen.
+
+## Optionen
+
+- **Helligkeit** -- Die gesamte Seite aufhellen oder abdunkeln (-100 bis +100).
+- **Kontrast** -- Den Unterschied zwischen hellen und dunklen Bereichen erhöhen oder verringern (-100 bis +100).
+- **Sättigung** -- Farbintensität verstärken oder verringern (-100 bis +100). Bei -100 entsteht ein Graustufen-Ergebnis.
+- **Farbtonverschiebung** -- Das Farbrad drehen, um alle Farben gleichmäßig zu verschieben.
+- **Temperatur** -- Farben wärmer (gelb/orange) oder kühler (blau) verschieben.
+- **Tönung** -- Einen Grün- oder Magenta-Stich hinzufügen.
+- **Gamma** -- Die Helligkeit der Mitteltöne über eine Gammakurve anpassen. Werte unter 1,0 dunkeln Mitteltöne ab, Werte über 1,0 hellen sie auf.
+- **Sepia** -- Einen klassischen Sepia-Effekt anwenden. Höhere Werte erzeugen einen stärkeren Braunton.
+
+## Funktionen
+
+- Acht unabhängig einstellbare Farbparameter
+- Live-Vorschau, die sofort auf Regleränderungen reagiert
+- Zurücksetzen-Schaltfläche, um schnell zu den Standardwerten zurückzukehren
+- Verarbeitet alle Seiten im Dokument
+- Funktioniert mit jedem PDF-Inhalt (Text, Bilder, Grafiken)
+
+## Anwendungsfälle
+
+- Einen dunklen Scan aufhellen oder überbelichtete Seiten korrigieren
+- Ein farbiges Dokument entsättigen, um vor dem Druck Tinte zu sparen
+- Einen Sepia-Ton anwenden, um Urkunden oder Auszeichnungen einen antiken Look zu geben
+- Die Farbtemperatur von in ein PDF eingebetteten Fotos korrigieren
+- Den Kontrast bei verblassten oder minderwertigen gescannten Dokumenten erhöhen
+
+## Tipps
+
+- Für eine schnelle Umwandlung in Graustufen ziehen Sie den Sättigungsregler ganz auf -100.
+- Der Gamma-Regler ist besonders nützlich, um die Lesbarkeit gescannter Dokumente zu verbessern, bei denen die Mitteltöne zu dunkel oder zu hell sind.
+- Wie die anderen Bildeffekt-Werkzeuge rastert dieses jede Seite. Die Ausgabe ist bildbasiert, daher ist der Text nicht auswählbar.
+
+## Verwandte Werkzeuge
+
+- [Farben invertieren](./invert-colors)
+- [Scanner-Effekt](./scanner-effect)
+- [Hintergrundfarbe](./background-color)
diff --git a/docs/de/tools/alternate-merge.md b/docs/de/tools/alternate-merge.md
new file mode 100644
index 00000000..533a49e2
--- /dev/null
+++ b/docs/de/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Seiten abwechselnd mischen
+description: Führen Sie PDFs zusammen, indem die Seiten jeder Datei abwechselnd verschachtelt werden, mit Beibehaltung der Lesezeichen.
+---
+
+# Seiten abwechselnd mischen
+
+Verschachtelen Sie die Seiten mehrerer PDF-Dateien so, dass sich die Seiten der Dokumente abwechseln. Dieses Werkzeug brauchen Sie, wenn ein normales Zusammenführen die Dateien nur hintereinanderhängen würde, Sie aber Seite 1 von Datei A, dann Seite 1 von Datei B, dann Seite 2 von Datei A und so weiter brauchen.
+
+## So funktioniert es
+
+1. Laden Sie mindestens zwei PDF-Dateien über die Ablagefläche hoch.
+2. Das Werkzeug zeigt jede Datei mit Seitenzahl und Dateigröße an.
+3. Ziehen Sie an den Griffen, um die Reihenfolge festzulegen, welche Datei in der Verschachtelung zuerst kommt.
+4. Klicken Sie auf **Seiten mischen**, um die verschachtelte Ausgabe zu erzeugen.
+5. Das Ergebnis wird als `alternated-mixed.pdf` heruntergeladen.
+
+## Funktionen
+
+- Verschachtelt Seiten über beliebig viele PDFs (mindestens zwei)
+- Dateien per Drag-and-drop neu anordnen, um die Verschachtelungspriorität zu steuern
+- Behält Lesezeichen der Quelldokumente bei
+- Zeigt Seitenzahl und Dateigröße jeder hochgeladenen Datei an
+- Verarbeitung über einen eigenen Web Worker für eine reaktionsfähige Oberfläche
+
+## Anwendungsfälle
+
+- Doppelseitige Scans wieder zusammensetzen, bei denen ungerade und gerade Seiten getrennt gescannt wurden
+- Aufgabenblätter mit Lösungsschlüsseln kombinieren, sodass auf jede Frage direkt die Antwort folgt
+- Zweisprachige Dokumente Seite für Seite zusammenführen (z. B. Englisch auf einer Seite, Übersetzung auf der nächsten)
+- Vorder- und Rückseiten-Scans eines Einzelseiten-Scanners verschachteln
+
+## Tipps
+
+- Wenn Ihre Quell-PDFs unterschiedlich viele Seiten haben, gehen die Seiten des kürzeren Dokuments zuerst aus, und die übrigen Seiten des längeren Dokuments erscheinen am Ende.
+- Die Dateireihenfolge ist wichtig: Die erste Datei in der Liste liefert die erste Seite der Ausgabe. Ziehen Sie die Dateien bei Bedarf um.
+
+## Verwandte Werkzeuge
+
+- [PDF zusammenführen](./merge-pdf)
+- [Organisieren & Duplizieren](./organize-pdf)
+- [PDF teilen](./split-pdf)
diff --git a/docs/de/tools/background-color.md b/docs/de/tools/background-color.md
new file mode 100644
index 00000000..a29d2c42
--- /dev/null
+++ b/docs/de/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Hintergrundfarbe
+description: Änderen Sie die Hintergrundfarbe jeder Seite Ihres PDFs und behalten Sie dabei alle Inhalte darüber bei.
+---
+
+# Hintergrundfarbe
+
+Legen Sie hinter allen vorhandenen Inhalten Ihres PDFs eine einfarbige Hintergrundfarbe fest. Das Werkzeug erstellt auf jeder Seite ein farbiges Rechteck und legt den ursprünglichen Inhalt darüber, sodass Text, Bilder und Grafiken vor dem neuen Hintergrund vollständig sichtbar bleiben.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Wählen Sie mit der Farbauswahl eine Hintergrundfarbe. Standard ist ein helles Gelb (#FFFFCC).
+3. Klicken Sie auf **Hintergrundfarbe ändern**, um zu verarbeiten.
+4. Das aktualisierte PDF wird automatisch heruntergeladen.
+
+## Optionen
+
+- **Hintergrundfarbe** -- Eine Standard-Farbauswahl für jede beliebige einfarbige Farbe. Standard ist helles Gelb.
+
+## Funktionen
+
+- Wendet eine einheitliche Hintergrundfarbe auf jede Seite an
+- Behält alle ursprünglichen Inhalte (Text, Bilder, Vektorgrafiken) über der Farbschicht bei
+- Behält die ursprünglichen Seitenabmessungen bei
+- Funktioniert mit Dokumenten beliebiger Seitenzahl
+
+## Anwendungsfälle
+
+- Einen hellen Creme- oder Elfenbeinhintergrund hinzufügen, damit Dokumente weicher und papierähnlicher wirken
+- Dokumentensätze farblich kennzeichnen, indem verschiedenen Kategorien unterschiedliche Hintergrundfarben zugewiesen werden
+- Optisch unterscheidbare Versionen desselben Dokuments für verschiedene Zielgruppen erstellen
+- Eine helle Hintergrundtönung hinzufügen, um die Lesbarkeit bei der Projektion von Dokumenten auf einen Bildschirm zu verbessern
+
+## Tipps
+
+- Helle, gedeckte Farben funktionieren am besten. Ein sehr dunkler Hintergrund kann Text schwer lesbar machen, sofern der Text nicht bereits hell ist.
+- Wenn Sie sowohl Hintergrund- als auch Textfarbe ändern möchten, wenden Sie zuerst die Hintergrundfarbe an und nutzen Sie dann [Textfarbe ändern](./text-color) auf das Ergebnis.
+- Dieses Werkzeug arbeitet auf der strukturellen PDF-Ebene (ohne Rasterung), daher bleibt der Text in der Ausgabe auswählbar und durchsuchbar.
+
+## Verwandte Werkzeuge
+
+- [Textfarbe ändern](./text-color)
+- [Farben invertieren](./invert-colors)
+- [Farben anpassen](./adjust-colors)
diff --git a/docs/de/tools/bates-numbering.md b/docs/de/tools/bates-numbering.md
new file mode 100644
index 00000000..4ff2fcb2
--- /dev/null
+++ b/docs/de/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Bates-Nummerierung
+description: Wenden Sie Bates-Nummern auf ein oder mehrere PDFs an, mit anpassbaren Vorlagen, Auffüllung, Schriftarten und Positionierung.
+---
+
+# Bates-Nummerierung
+
+Die Bates-Nummerierung stempelt fortlaufende Kennungen auf jede Seite Ihrer PDFs. Sie ist die Standardmethode zur Kennzeichnung von Dokumenten in Gerichtsverfahren, Prüfungen und Compliance-Workflows. Dieses Werkzeug unterstützt mehrere Dateien und anpassbare Vorlagen und erzeugt einzeln nummerierte PDFs oder ein einzelnes ZIP-Archiv.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch. Sie können mehrere Dateien gleichzeitig hineinziehen.
+2. Wählen Sie eine Stilvorlage oder erstellen Sie eine eigene Vorlage.
+3. Konfigurieren Sie Position, Schriftart, Größe, Farbe und Startnummern.
+4. Klicken Sie auf **Bates-Nummern anwenden**, um zu verarbeiten.
+5. Eine einzelne Datei wird direkt heruntergeladen. Mehrere Dateien werden als ZIP-Archiv heruntergeladen.
+
+## Optionen
+
+- **Stilvorlage** -- Wählen Sie aus eingebauten Formaten:
+ - Exhibit + Case + Bates + Page (z. B. "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (ohne Seitenzahl)
+ - Case + Bates
+ - Nur Bates-Nummer (z. B. "000001")
+ - Benutzerdefiniert (eigene Vorlage schreiben)
+- **Stil anpassen** -- Eine Vorlagenzeichenfolge mit Platzhaltern: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Bates-Auffüllung** -- Anzahl der Stellen (3 bis 6) für mit Nullen aufgefüllte Bates-Nummern. Nur im benutzerdefinierten Modus sichtbar.
+- **Position** -- Kopf- oder Fußzeile, links, mittig oder rechts.
+- **Bates beginnt bei** -- Die erste Bates-Nummer. Standard ist 1. Die Nummerierung wird über Dateien hinweg fortgesetzt.
+- **Dateizähler beginnt bei** -- Die Startnummer für den Platzhalter `[FILE]`.
+- **Schriftart** -- Helvetica, Times New Roman oder Courier.
+- **Schriftgröße** -- Größe des gestempelten Texts.
+- **Farbe** -- Farbauswahl für den Text der Bates-Nummer.
+
+## Funktionen
+
+- Live-Vorschau, die zeigt, wie die Bates-Nummern über alle hochgeladenen Dateien aussehen werden
+- Unterstützung mehrerer Dateien mit durchgehender Nummerierung über Dokumente hinweg
+- Dateien per Drag-and-drop in der Liste umsortieren, um die Nummerierungsreihenfolge zu steuern
+- Sechs Positionsoptionen (Kopf-/Fußzeile, links/mittig/rechts)
+- Adaptive Randberechnung, die unterschiedliche Seitengrößen berücksichtigt
+- ZIP-Ausgabe für Stapel mit mehreren Dateien
+- Vorlagenplatzhalter für maximale Flexibilität
+
+## Anwendungsfälle
+
+- Offenlegungsdokumente für Rechtsstreitigkeiten mit fortlaufenden Exhibit-Nummern stempeln
+- Prüfungsnachweispakete nummerieren, die sich über Dutzende Dateien erstrecken
+- Regulatorische Referenznummern auf Compliance-Dokumentation anwenden
+- Exhibits von Patentanmeldungen mit fallbezogenen Kennungen versehen
+
+## Tipps
+
+- Ziehen Sie die Dateien in der Dateiliste, um sie vor der Verarbeitung umzusortieren. Die Bates-Nummerierung folgt dieser Reihenfolge.
+- Verwenden Sie den Platzhalter `[FILENAME]`, um den ursprünglichen Dateinamen in den Stempel aufzunehmen. So lassen sich Seiten zu den Quelldokumenten zurückverfolgen.
+- Das Vorschaufeld aktualisiert sich in Echtzeit, wenn Sie Einstellungen ändern, sodass Sie das Format vor der Verarbeitung prüfen können.
+
+## Verwandte Werkzeuge
+
+- [Seitenzahlen](./page-numbers)
+- [Seitenbezeichnungen hinzufügen](./add-page-labels)
+- [Kopf- & Fußzeile](./header-footer)
diff --git a/docs/de/tools/bmp-to-pdf.md b/docs/de/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..e51939f2
--- /dev/null
+++ b/docs/de/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP zu PDF
+description: Konvertieren Sie BMP-Bitmap-Bilder direkt im Browser in das PDF-Format, ohne Upload auf einen Server.
+---
+
+# BMP zu PDF
+
+Konvertieren Sie Windows-Bitmap-Dateien (BMP) in PDF. BMP ist ein unkomprimiertes Bildformat, das noch in Altsystemen, der medizinischen Bildgebung und bei Industrie-Scannern zu finden ist. Dieses Werkzeug wandelt sie in PDF um, ohne dass Sie etwas installieren müssen.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :----- | :------------ |
+| BMP | `.bmp` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre BMP-Dateien hinein.
+2. Prüfen Sie die Dateiliste. Fügen Sie weitere Dateien hinzu oder entfernen Sie unerwünschte.
+3. Klicken Sie auf **In PDF konvertieren**. Die Ausgabe wird als `from_bmps.pdf` heruntergeladen.
+
+Jede BMP wird auf ein Canvas gezeichnet, als PNG exportiert und dann mit pdf-lib in das PDF eingebettet. Die Seitengröße entspricht den ursprünglichen Bildabmessungen.
+
+## Optionen
+
+Dieses Werkzeug bietet keine zusätzlichen Qualitätseinstellungen. Bilder werden in ihrer ursprünglichen Auflösung als verlustfreies PNG im PDF eingebettet.
+
+## Anwendungsfälle
+
+- Ältere gescannte Dokumente, die als BMP gespeichert sind, in Archiv-PDFs umwandeln
+- BMP-Screenshots älterer Windows-Anwendungen in teilbare Dokumente verwandeln
+- Ausgaben von medizinischen oder industriellen Scannern verarbeiten, die standardmäßig BMP erzeugen
+- Alte Bildarchive in ein portableres Format überführen
+
+## Tipps
+
+- BMP-Dateien sind unkomprimiert und daher oft groß. Das resultierende PDF ist deutlich kleiner, da die Bilder intern als PNG neu kodiert werden.
+- Wenn Sie BMP-Dateien zusammen mit anderen Bildformaten haben, nutzen Sie das Werkzeug [Bilder zu PDF](./image-to-pdf), um alles in einem Stapel zu konvertieren.
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
+- [TIFF zu PDF](./tiff-to-pdf)
diff --git a/docs/de/tools/bookmark.md b/docs/de/tools/bookmark.md
new file mode 100644
index 00000000..61e88379
--- /dev/null
+++ b/docs/de/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Lesezeichen bearbeiten
+description: Fügen Sie PDF-Lesezeichen hinzu, bearbeiten Sie, importiere, exportieren Sie und löschen Sie sie mit einem visuellen Editor und CSV/JSON-Unterstützung.
+---
+
+# Lesezeichen bearbeiten
+
+Der Lesezeichen-Editor gibt Ihnen volle Kontrolle über die Navigationslesezeichen einer PDF (auch Gliederung genannt). Sie können neue Lesezeichen hinzufügen, vorhandene bearbeiten, die Hierarchie umordnen und Lesezeichendaten im CSV- und JSON-Format importieren oder exportieren.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei hineinziehen.
+2. Aktivieren Sie optional **Vorhandene Lesezeichen automatisch extrahieren**, um die aktuelle Lesezeichenstruktur des Dokuments zu übernehmen.
+3. Der Editor öffnet sich in geteilter Ansicht: PDF-Viewer links, Lesezeichen-Bereich rechts.
+4. Geben Sie einen Lesezeichentitel ein und klicken Sie auf **Zur Seite hinzufügen**, um ein neues Lesezeichen für die aktuelle Seite zu erstellen.
+5. Mit den Schaltflächen der Symbolleiste können Sie Lesezeichen verschieben, formatieren oder löschen.
+6. Klicken Sie auf **PDF mit Lesezeichen speichern**, um die aktualisierte Datei herunterzuladen.
+
+## Funktionen
+
+- Visueller PDF-Viewer mit Seitennavigation, Zoom und Eingabefeld zum Springen zu einer Seite
+- Lesezeichen mit einem Klick zu jeder Seite hinzufügen
+- Direkt in die PDF klicken, um ein exaktes Lesezeichenziel zu setzen (Auswahlmodus)
+- Verschachtelte Lesezeichenhierarchie mit Neuordnung per Drag-and-drop
+- Stapelvorgänge: mehrere Lesezeichen auswählen und Farbe oder Stil ändern oder alle auf einmal löschen
+- Lesezeichensuche, um Einträge in großen Strukturen schnell zu finden
+- Rückgängig und Wiederherstellen für alle Änderungen
+- Lesezeichen aus CSV-Dateien (Titel, Seite, Ebene) oder JSON-Dateien importieren
+- Lesezeichen für die externe Bearbeitung als CSV oder JSON exportieren
+- Lesezeichenformatierung: Farbe (rot, blau, grün, gelb, violett) und Schriftstil (fett, kursiv, fett kursiv)
+- Schnelle Navigation: mit den Tasten Bild auf/Bild ab durch die Seiten blättern
+
+## Optionen
+
+- **Vorhandene Lesezeichen automatisch extrahieren**: Wenn aktiviert, liest das Werkzeug die aktuellen Lesezeichen der PDF beim Laden aus und zeigt sie an.
+- **Stapelmodus**: Schalten Sie ihn ein, um mehrere Lesezeichen auszuwählen und Farbe, Stil oder Löschen gesammelt anzuwenden.
+- **Alle ein-/ausklappen**: Verschachtelte untergeordnete Lesezeichen schnell ein- oder ausblenden.
+
+## Anwendungsfälle
+
+- Ein Inhaltsverzeichnis zu einem Lehrbuch oder Handbuch ohne Lesezeichen hinzufügen
+- Lesezeichen in einem gescannten Dokument nach der OCR-Verarbeitung neu strukturieren
+- Lesezeichen als CSV exportieren, in einer Tabellenkalkulation bearbeiten und wieder importieren
+- Automatisch erzeugte Lesezeichen mit falschen Seitenverweisen bereinigen
+- Farbige Lesezeichen hinzufügen, um wichtige Abschnitte in einem Schriftsatz zu markieren
+
+## Tipps
+
+- Nutzen Sie den CSV-Import für das Erstellen vieler Lesezeichen. Das Format ist einfach: `title,page,level`, wobei Ebene 1 die oberste Ebene ist.
+- Im Auswahlmodus können Sie eine exakte Stelle auf der PDF-Seite anklicken, um das Lesezeichenziel zu setzen. Das ist genauer als nur eine Seitenzahl anzugeben.
+- Exportieren Sie Ihre Lesezeichen vor größeren Änderungen, damit Sie eine Sicherung haben.
+
+## Verwandte Werkzeuge
+
+- [Inhaltsverzeichnis](./table-of-contents)
+- [PDF-Editor](./edit-pdf)
+- [Seitenbeschriftungen hinzufügen](./add-page-labels)
diff --git a/docs/de/tools/cbz-to-pdf.md b/docs/de/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..71ca7796
--- /dev/null
+++ b/docs/de/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ zu PDF
+description: Wandlen Sie CBZ- und CBR-Comicarchive in Ihrem Browser in PDF um. Kostenlos, privat, kein Upload nötig.
+---
+
+# CBZ zu PDF
+
+Verwandlen Sie Comic-Archivdateien in PDFs. CBZ und CBR sind die Standardformate für digitale Comics: Es sind einfach ZIP- oder RAR-Archive voller Bilder. Dieses Werkzeug extrahiert jede Seite, behält die Lesereihenfolge bei und erzeugt eine saubere PDF, in der jedes Bild zu einer Seite in voller Größe wird.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----- | :---------- | :-------------------------------------------------------------- |
+| CBZ | `.cbz` | ZIP-basiertes Comicarchiv (lokal mit pdf-lib verarbeitet) |
+| CBR | `.cbr` | RAR-basiertes Comicarchiv (über die PyMuPDF-Engine verarbeitet) |
+
+Der CBZ-Konverter erkennt JPEG-, PNG-, GIF-, BMP-, WebP-, AVIF-, TIFF-, HEIC- und JXL-Bilder im Archiv. Nicht standardmäßige Formate werden vor dem Einbetten automatisch in PNG umgewandelt.
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre CBZ- oder CBR-Dateien hinein. Sie können beide Formate in einem Stapel mischen.
+2. Prüfen Sie die aufgelisteten Dateien. Entfernen Sie nicht benötigte oder klicken Sie auf **Weitere Dateien hinzufügen**, um mehr hinzuzufügen.
+3. Klicken Sie auf **In PDF umwandeln**. Bei CBZ-Dateien entpackt das Werkzeug das Archiv, sortiert die Bilddateien in natürlicher Reihenfolge nach Namen, erkennt das tatsächliche Format jedes Bildes und bettet sie mit pdf-lib in eine PDF ein. CBR-Dateien laufen stattdessen über die PyMuPDF-Engine.
+4. Eine einzelne Datei wird als PDF heruntergeladen. Bei mehreren Dateien entsteht ein ZIP-Archiv namens `comic-converted.zip`.
+
+## Optionen
+
+Es ist keine Konfiguration nötig. Jedes Bild wird zu einer Seite in der Größe des Originals, sodass Doppelseiten breit und Einzelseiten schmal bleiben.
+
+## Anwendungsfälle
+
+- Comics auf einem Tablet oder in einer Handy-App lesen, die PDF, aber nicht CBZ/CBR unterstützt
+- Bestimmte Seiten eines digitalen Comics drucken
+- Eine Comicsammlung in einem Format archivieren, das jeder Dateibetrachter öffnen kann
+- Einen Comic mit jemandem teilen, der keinen speziellen Comic-Reader hat
+
+## Tipps
+
+- Bilder im Archiv werden in natürlicher Reihenfolge sortiert (`page2.jpg` kommt also vor `page10.jpg`). Benennen Sie Ihre Dateien mit einheitlicher Nummerierung, damit die Seitenreihenfolge stimmt.
+- Der Konverter erkennt Bildformate anhand ihrer binären Signatur, nicht anhand der Dateiendung. Eine PNG-Datei, die versehentlich `.jpg` heißt, wird trotzdem korrekt eingebettet.
+- CBZ-Dateien werden vollständig im Browser verarbeitet, ohne die PyMuPDF-Engine zu laden, und werden daher schneller umgewandelt als CBR-Dateien.
+
+## Verwandte Werkzeuge
+
+- [EPUB zu PDF](./epub-to-pdf)
+- [MOBI zu PDF](./mobi-to-pdf)
+- [Bilder zu PDF](./image-to-pdf)
diff --git a/docs/de/tools/change-permissions.md b/docs/de/tools/change-permissions.md
new file mode 100644
index 00000000..39802aa8
--- /dev/null
+++ b/docs/de/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Berechtigungen ändern
+description: Legen Sie PDF-Nutzungsberechtigungen für Drucken, Kopieren, Bearbeiten und Kommentieren fest oder änderen Sie sie. Verwendet 256-Bit-AES-Verschlüsselung.
+---
+
+# Berechtigungen ändern
+
+Legen Sie genau fest, was Empfänger mit Ihrer PDF tun dürfen. Anders als einfache Verschlüsselung, die die Datei nur hinter einem Passwort sperrt, können Sie hier Drucken, Kopieren, Bearbeiten, Kommentieren, Formularausfüllen, Dokumentenzusammenstellung und Seitenextraktion gezielt erlauben oder verbieten. Alles wird durch 256-Bit-AES-Verschlüsselung durchgesetzt.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Ist die PDF bereits verschlüsselt, geben Sie das **Aktuelle Passwort** ein.
+3. Legen Sie ein **Neues Benutzerpasswort** (zum Öffnen erforderlich) und/oder ein **Neues Besitzerpasswort** (steuert die Berechtigungen) fest.
+4. Schalten Sie einzelne Berechtigungen über die Kontrollkästchen ein oder aus.
+5. Klicken Sie auf **Berechtigungen ändern**.
+6. Laden Sie die aktualisierte PDF herunter.
+
+Wenn Sie beide Felder für neue Passwörter leer lassen, entschlüsselt das Werkzeug die PDF vollständig und entfernt alle Verschlüsselungen und Beschränkungen.
+
+## Berechtigungseinstellungen
+
+| Berechtigung | Was sie steuert |
+| ------------------------------------- | ----------------------------------------------------------------- |
+| **Drucken erlauben** | Ob das Dokument gedruckt werden kann |
+| **Kopieren erlauben** | Ob Text und Bilder ausgewählt und kopiert werden können |
+| **Ändern erlauben** | Ob der Dokumentinhalt bearbeitet werden kann |
+| **Kommentieren erlauben** | Ob Kommentare, Markierungen und Stempel hinzugefügt werden können |
+| **Formularausfüllen erlauben** | Ob interaktive Formularfelder ausgefüllt werden können |
+| **Dokumentzusammenstellung erlauben** | Ob Seiten eingefügt, gelöscht oder gedreht werden können |
+| **Seitenextraktion erlauben** | Ob einzelne Seiten extrahiert werden können |
+
+Alle Berechtigungen benötigen ein Besitzerpasswort, um durchgesetzt zu werden. Ohne Besitzerpasswort werden die Berechtigungskennzeichen von den meisten PDF-Readern ignoriert.
+
+## Wie Berechtigungen in PDF funktionieren
+
+PDF-Berechtigungen sind Teil der Verschlüsselungsspezifikation. Sie werden als Bit-Flags im Verschlüsselungswörterbuch gespeichert und von konformen PDF-Readern durchgesetzt. Der entscheidende Unterschied:
+
+- **Benutzerpasswort**: Wird benötigt, um die Datei überhaupt zu öffnen.
+- **Besitzerpasswort**: Wird benötigt, um Berechtigungen zu ändern oder Beschränkungen zu entfernen. Ohne es bestimmen die Berechtigungskennzeichen, welche Vorgänge der Benutzer ausführen darf.
+
+Wenn Sie nur ein Besitzerpasswort festlegen (kein Benutzerpasswort), kann jeder die Datei öffnen, ist aber auf die erlaubten Vorgänge beschränkt. Wenn Sie beide festlegen, braucht die Datei zum Öffnen ein Passwort und ist nach der Authentifizierung eingeschränkt.
+
+## Anwendungsfälle
+
+- Einen Bericht verteilen, der angesehen und gedruckt, aber nicht bearbeitet oder kopiert werden kann
+- Eine Vertragsvorlage teilen, die Empfänger ausfüllen, aber nicht ändern können
+- Einen PDF-Katalog veröffentlichen, in dem das Kopieren von Bildern deaktiviert ist
+- Kommentare in einem Prüfentwurf erlauben und gleichzeitig strukturelle Änderungen verhindern
+
+## Tipps
+
+- Legen Sie immer ein Besitzerpasswort fest, sonst sind die Berechtigungen wirkungslos. Berechtigungen ohne Besitzerpasswort lassen sich nicht durchsetzen.
+- Manche PDF-Werkzeuge von Drittanbietern ignorieren Berechtigungskennzeichen. Für stärkeren Schutz sollten Sie die PDF rastern oder DRM verwenden.
+- Nutzen Sie dieses Werkzeug, um alte RC4-verschlüsselte PDFs auf AES-256 zu aktualisieren.
+
+## Verwandte Werkzeuge
+
+- [PDF verschlüsseln](./protect-pdf): einfacher Passwortschutz ohne detaillierte Berechtigungen
+- [PDF entschlüsseln](./unlock-pdf): Verschlüsselung vollständig entfernen
+- [Beschränkungen entfernen](./remove-restrictions): alle Beschränkungen aufheben, wenn Sie das Besitzerpasswort haben
diff --git a/docs/de/tools/combine-single-page.md b/docs/de/tools/combine-single-page.md
new file mode 100644
index 00000000..627c8498
--- /dev/null
+++ b/docs/de/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Zu einer Seite kombinieren
+description: Fügen Sie alle Seiten einer PDF zu einer durchgehenden vertikalen oder horizontalen Scrollseite zusammen.
+---
+
+# Zu einer Seite kombinieren
+
+Fügen Sie jede Seite einer PDF zu einer einzigen langen Seite zusammen. Die Seiten werden vertikal (wie eine Schriftrolle) oder horizontal (nebeneinander) aneinandergereiht, sodass die Ausgabe aus einer durchgehenden Seite besteht.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Wählen Sie die Ausrichtung: **Vertikal** (Seiten von oben nach unten gestapelt) oder **Horizontal** (Seiten nebeneinander).
+3. Legen Sie den Abstand zwischen den Seiten in Punkt fest.
+4. Wählen Sie eine Hintergrundfarbe für die Lücken zwischen den Seiten.
+5. Aktivieren Sie optional Trennlinien (dünne Linien zwischen den Seiten) und stellen Sie Stärke und Farbe ein.
+6. Klicken Sie auf die Verarbeitungsschaltfläche. Die Ausgabe ist eine einseitige PDF.
+
+## Funktionen
+
+- Vertikales oder horizontales Aneinanderreihen der Seiten
+- Einstellbarer Abstand zwischen den Seiten
+- Farbauswahl für den Hintergrund der Zwischenräume
+- Optionale Trennlinien mit einstellbarer Stärke und Farbe
+- Rendert jede Originalseite in voller Auflösung auf die kombinierte Fläche
+
+## Optionen
+
+| Option | Beschreibung |
+| ------------------------- | ------------------------------------------------------ |
+| **Ausrichtung** | Vertikal (gestapelt) oder Horizontal (nebeneinander) |
+| **Seitenabstand** | Lücke zwischen den Seiten in Punkt |
+| **Hintergrundfarbe** | Farbe des Bereichs zwischen den Seiten |
+| **Trennlinie hinzufügen** | Dünne Linien zwischen den Seiten ein- oder ausschalten |
+| **Trennlinienstärke** | Linienstärke in Punkt |
+| **Trennlinienfarbe** | Farbe der Trennlinien |
+
+## Anwendungsfälle
+
+- Aus einem mehrseitigen Wireframe oder Design-Mockup ein einzelnes langes Bild erstellen
+- Eine durchgehend scrollbare Ansicht eines Dokuments zum Einbetten im Web erzeugen
+- Einen mehrseitigen Comic oder ein Storyboard zu einem Streifen zusammenfügen
+- Eine Panoramaansicht aufeinanderfolgender Seiten zur Durchsicht erstellen
+
+## Tipps
+
+- Die vertikale Ausrichtung eignet sich am besten für Dokumente mit Hochformatseiten. Horizontal passt besser zu Querformat-Inhalten.
+- Große Dokumente mit vielen Seiten ergeben eine sehr hohe oder breite Ausgabe. Einige PDF-Viewer haben mit extrem großen Einzelseiten Probleme.
+- Trennlinien in einer Kontrastfarbe zeigen leicht, wo eine Originalseite endet und die nächste beginnt.
+
+## Verwandte Werkzeuge
+
+- [N-Up PDF](./n-up-pdf)
+- [PDF zusammenführen](./merge-pdf)
+- [Seiten teilen](./divide-pages)
diff --git a/docs/de/tools/compare-pdfs.md b/docs/de/tools/compare-pdfs.md
new file mode 100644
index 00000000..4320ce09
--- /dev/null
+++ b/docs/de/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: PDFs vergleichen
+description: Vergleichen Sie zwei PDF-Dokumente nebeneinander oder im Überlagerungsmodus mit detaillierter Erkennung und Kategorisierung von Änderungen.
+---
+
+# PDFs vergleichen
+
+Laden Sie zwei PDFs hoch und sehen Sie genau, was sich zwischen ihnen geändert hat. Das Werkzeug ordnet Seiten intelligent einander zu, erkennt Unterschiede bei Text, Bildern, Anmerkungen, Kopfzeilen und Formatierung und zeigt sie in einer Nebeneinander- oder Überlagerungsansicht an.
+
+## So funktioniert es
+
+1. Laden Sie zwei PDF-Dateien hoch: das Original (links) und die überarbeitete Version (rechts).
+2. Das Werkzeug ordnet die Seiten beider Dokumente anhand von Inhaltssignaturen einander zu.
+3. Wählen Sie einen Ansichtsmodus: **Nebeneinander** oder **Überlagerung**.
+4. Wechslen Sie mit den Seitensteuerungen zwischen den Seitenpaaren.
+5. Unterschiede werden hervorgehoben und kategorisiert. Nutzen Sie das Filterfeld, um sich auf bestimmte Änderungsarten zu konzentrieren.
+6. Exportieren Sie den Vergleich optional als PDF-Bericht.
+
+## Funktionen
+
+- Automatische Seitenzuordnung anhand der Inhaltsähnlichkeit
+- Vergleichsansichten nebeneinander und als Überlagerung
+- Kategorisierung der Änderungen: Text, Bild, Kopf-/Fußzeile, Anmerkung, Formatierung, Hintergrund
+- Filterschalter pro Kategorie, um bestimmte Änderungsarten ein- oder auszublenden
+- Suche in Textänderungen mit Abfragefilter
+- OCR-Unterstützung zum Vergleichen gescannter Dokumente
+- Zoomsteuerung für die genaue Prüfung
+- Synchronisiertes Scrollen zwischen den Bereichen in der Nebeneinander-Ansicht
+- Vergleichsergebnisse als PDF exportieren
+
+## Optionen
+
+| Option | Beschreibung |
+| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| **Ansichtsmodus** | Nebeneinander oder Überlagerung |
+| **OCR** | OCR für den Vergleich gescannter Dokumente ein- oder ausschalten |
+| **OCR-Sprache** | Sprache für die OCR-Textextraktion |
+| **Kategoriefilter** | Sichtbarkeit von Text-, Bild-, Kopf-/Fußzeilen-, Anmerkungs-, Formatierungs- und Hintergrundänderungen umschalten |
+| **Änderungsumfang** | Im Überlagerungsmodus zwischen allen Änderungen oder nur Inhalt filtern |
+| **Zoom** | Vergrößerungsstufe für die genaue Prüfung anpassen |
+
+## Anwendungsfälle
+
+- Vertragsüberarbeitungen prüfen, um genau zu sehen, was sich zwischen Versionen geändert hat
+- Design-Mockups vergleichen, um zu prüfen, dass PDF-Exporte den Erwartungen entsprechen
+- Dokumentänderungen in regulierten Branchen prüfen, in denen jede Bearbeitung nachvollziehbar sein muss
+- Überprüfen, dass ein PDF-Konvertierungsprozess den Originalinhalt korrekt erhalten hat
+- Übersetzte Dokumente auf Layoutänderungen gegenüber dem Original prüfen
+
+## Tipps
+
+- Die Überlagerungsansicht legt beide Dokumente übereinander, sodass räumliche Unterschiede (verschobene Elemente, skalierte Bilder) sofort sichtbar werden.
+- Aktivieren Sie OCR, wenn Sie gescannte Dokumente ohne Textebene vergleichen. Die Vergleichs-Engine extrahiert dann den Text aus den Seitenbildern.
+- Nutzen Sie die Kategoriefilter, um sich auf das Wesentliche zu konzentrieren. Blenden Sie zum Beispiel Formatierungsänderungen aus, wenn sich nur Unterschiede im Textinhalt interessieren.
+
+## Verwandte Werkzeuge
+
+- [Metadaten anzeigen](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [PDF zusammenführen](./merge-pdf)
diff --git a/docs/de/tools/compress-pdf.md b/docs/de/tools/compress-pdf.md
new file mode 100644
index 00000000..ab9d001f
--- /dev/null
+++ b/docs/de/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: PDF komprimieren
+description: Verkleineren Sie PDF-Dateien um bis zu 90 % mit der Hyper-Compress-Engine. Unterstützt Zieldateigrößen, Stapelverarbeitung und eigene Qualitätseinstellungen.
+---
+
+# PDF komprimieren
+
+Verkleineren Sie Ihre PDF-Dateien, ohne sie zu beschädigen. PDF komprimieren wird von [Hyper Compress](https://www.bentopdf.com/hyper-compress) angetrieben, der eigenen Komprimierungs-Engine von BentoPDF. Sie komprimiert Bilder neu, erstellt Teilmengen von Schriften und führt sie zusammen und entfernt unnötigen Ballast wie eingebettete Vorschaubilder und private Anwendungsdaten. Die PDF bleibt voll funktionsfähig: Text bleibt auswählbar, Links und Formularfelder funktionieren weiter.
+
+Hyper Compress ist zu WebAssembly kompiliert und wird mit BentoPDF ausgeliefert, sodass die Komprimierung offline und in Air-Gap-Umgebungen ohne zusätzliche Einrichtung funktioniert.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien hineinziehen.
+2. Wählen Sie eine **Komprimierungsstufe**: Niedrig, Mittel, Hoch oder Verlustfrei.
+3. Geben Sie optional eine **Zieldateigröße** ein oder öffnen Sie **Benutzerdefinierte Einstellungen** für feinere Kontrolle, einschließlich **In Graustufen umwandeln**.
+4. Klicken Sie auf **PDF komprimieren**. Bei mehreren Dateien erhalten Sie einen einzelnen ZIP-Download.
+
+## Besondere Dokumente
+
+- **Digital signierte PDFs** werden unverändert zurückgegeben, weil jede Änderung die Signatur ungültig machen würde. Aktivieren Sie **Inhaltsschutz überschreiben** unter Benutzerdefinierte Einstellungen, um die Signaturen zu entfernen und die Datei zu komprimieren. Die sichtbare Signatur bleibt auf der Seite, die Datei ist aber nicht mehr signiert.
+- **PDF/A-Dateien** verlieren nach der Komprimierung ihre PDF/A-Kennzeichnung, damit die Datei nie eine Konformität behauptet, die sie nicht mehr erfüllt. Aktivieren Sie **PDF/A beibehalten** unter Benutzerdefinierte Einstellungen, um die Konformität der Datei zu erhalten.
+- **Passwortgeschützte PDFs** bekommen auf ihrer Dateikarte ein Passwortfeld. Geben Sie dort das Passwort ein, und Hyper Compress öffnet die Datei selbst, ganz ohne separaten Entsperrschritt. Bei zwei oder mehr gesperrten Dateien entsperrt ein gemeinsames Feld alle Dateien, die dasselbe Passwort verwenden. Die komprimierte Kopie hat kein Passwort. Mit [PDF verschlüsseln](./protect-pdf) können Sie wieder eines hinzufügen.
+- **Scans ohne Textebene** lassen sich mit **Seiten rastern** unter Benutzerdefinierte Einstellungen weiter verkleinern, wodurch jede Seite durch ein optimiertes Bild ersetzt wird. Bei jedem Dokument mit auswählbarem Text, auch bei per OCR bearbeiteten Scans, wird dies übersprungen, außer **Inhaltsschutz überschreiben** ist aktiviert. Dann werden auch Textseiten zu Bildern, sodass Text nicht mehr auswählbar ist und Links nicht mehr funktionieren.
+
+## Komprimierungsstufen
+
+| Stufe | Bildqualität | Max. Auflösung | Am besten für |
+| --------------- | ------------------ | -------------- | ----------------------------- |
+| **Niedrig** | 80 | 200 DPI | Erhalt der visuellen Qualität |
+| **Mittel** | 50 | 150 DPI | Alltägliche Dokumente |
+| **Hoch** | 20 | 72 DPI | E-Mail-Anhänge, Web-Uploads |
+| **Verlustfrei** | Bilder unverändert | Unverändert | Archivkopien |
+
+Bei Hoch werden außerdem die 14 Standard-PDF-Schriften sowie ähnliche Schriften wie Arial nicht mehr eingebettet, sofern das sicher ist.
+
+## Zieldateigröße
+
+Geben Sie eine Größe in KB oder MB ein, und Hyper Compress sucht die beste Bildqualität, die noch hineinpasst, ausgehend von der gewählten Stufe. Wenn das Dokument nicht so klein werden kann, erhalten Sie die kleinste mögliche Version und eine entsprechende Meldung. Die eigenen Seiten wie [PDF auf 1 MB komprimieren](https://www.bentopdf.com/compress-pdf-to-1mb) öffnen sich mit bereits eingetragenem Ziel.
+
+## Benutzerdefinierte Einstellungen
+
+Öffnen Sie den Bereich Benutzerdefinierte Einstellungen, um Hyper Compress direkt anzupassen. Wenn Sie eine Komprimierungsstufe wählen, werden diese Werte auf die der Stufe zurückgesetzt, und sobald Sie einen davon ändern, wechselt die Stufe zu Benutzerdefiniert.
+
+- **Inhaltsschutz überschreiben**: Standardmäßig lässt Hyper Compress signierte PDFs unangetastet und rastert keine Seiten mit Text. Wenn Sie dies aktivieren, werden beide Schutzmaßnahmen umgangen. Die Einstellung bleibt aktiv, wenn Sie die Stufe wechseln.
+
+- **Bilder**: Bildqualität, maximale Auflösung, erzwungenes Neuabtasten, Farbreduzierung, Beschneiden unsichtbarer Bildbereiche, Entfernen alternativer Bilder, Vereinfachen von Farbprofilen, JPEG 2000 und verlustfreier Modus
+- **Schriften**: Teilmengenbildung, Zusammenführen von Duplikaten und Nicht-Einbetten von Standardschriften und ihren Ähnlichen
+- **Inhalt**: Anmerkungen, Formularfelder oder Links verflachen
+- **Bereinigung**: Entfernen von Vorschaubildern, Anwendungsdaten, Artikel-Threads, Weberfassungsinformationen, der Strukturhierarchie oder Ausgabeabsichten
+- **Rastern**: Seiten durch Bilder ersetzen, für reine Bild-Scans. Wird übersprungen, wenn das Dokument auswählbaren Text enthält
+- **Ausgabe**: PDF/A beibehalten und Brotli-Komprimierung für PDF-2.0-Reader, die sie unterstützen
+
+## Anwendungsfälle
+
+- Einen 50-MB-Bericht unter das Limit für E-Mail-Anhänge bringen
+- Einen Scan mit einer Zieldateigröße unter das strenge Upload-Limit eines Portals bringen
+- Marketing-PDFs für schnellere Downloads auf Websites optimieren
+- Große Dokumentensätze archivieren, wenn Speicherkosten eine Rolle spielen
+- Den mobilen Datenverbrauch beim Teilen von PDFs über Messenger senken
+
+## Tipps
+
+- Beginnen Sie mit Mittel. Ist das Ergebnis immer noch zu groß, legen Sie eine Zieldateigröße fest oder wechslen Sie zu Hoch.
+- Bei einem Scan ohne Textebene aktivieren Sie Seiten rastern unter Benutzerdefinierte Einstellungen.
+- In Graustufen umwandeln unter Benutzerdefinierte Einstellungen kann die Dateigröße bei sehr farbigen Dokumenten deutlich senken.
+
+## Verwandte Werkzeuge
+
+- [PDF linearisieren](./linearize-pdf): die komprimierte PDF für schnelles Anzeigen im Web optimieren
+- [PDF rastern](./rasterize-pdf): Seiten mit einer bestimmten DPI in Bilder umwandeln, auch Seiten mit Text
+- [PDF reparieren](./repair-pdf): eine PDF reparieren, die woanders bei der Komprimierung beschädigt wurde
+- [Metadaten entfernen](./remove-metadata): versteckte Daten für mehr Privatsphäre entfernen
diff --git a/docs/de/tools/crop-pdf.md b/docs/de/tools/crop-pdf.md
new file mode 100644
index 00000000..3462846b
--- /dev/null
+++ b/docs/de/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PDF zuschneiden
+description: Schneiden Sie PDF-Seiten visuell zu, indem Sie in einem Cropper.js-basierten Editor auf jeder Seite einen Zuschneidebereich zeichnen.
+---
+
+# PDF zuschneiden
+
+Beschneiden Sie die Ränder Ihrer PDF-Seiten mit einer visuellen Zuschneideoberfläche. Zeichnen Sie direkt auf jeder Seite ein Zuschneiderechteck, sehen Sie sich das Ergebnis in der Vorschau an und wenden Sie den Zuschnitt an. Sie können für verschiedene Seiten unterschiedliche Zuschneidebereiche festlegen oder denselben Zuschnitt auf das ganze Dokument anwenden.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Der Zuschneide-Editor öffnet sich und zeigt die erste Seite mit einer verschiebbaren Zuschneideüberlagerung.
+3. Passen Sie das Zuschneiderechteck an, indem Sie an Kanten oder Ecken ziehen.
+4. Wechslen Sie mit den Seitennavigationsschaltflächen zwischen den Seiten und legen Sie für jede einen Zuschneidebereich fest.
+5. Klicken Sie auf **Zuschneiden**, um den Zuschnitt anzuwenden und das Ergebnis herunterzuladen.
+
+## Funktionen
+
+- Visueller Zuschneide-Editor auf Basis von Cropper.js mit Anfassern für präzise Anpassung
+- Seitenweise Navigation, um individuelle Zuschneidebereiche festzulegen
+- Speichert Zuschnitteinstellungen pro Seite, sodass Sie für verschiedene Seiten unterschiedliche Zuschnitte definieren können
+- Live-Vorschau des gewählten Zuschneidebereichs
+- Unterstützt PDFs mit beliebiger Seitengröße oder Ausrichtung
+
+## Anwendungsfälle
+
+- Breite Ränder gescannter Dokumente entfernen, um sich auf den Inhaltsbereich zu konzentrieren
+- Druckermarken oder Passermarken aus Druckvorstufen-PDFs entfernen
+- Vorlesungsfolien zuschneiden, um den Bereich mit den Referentennotizen zu entfernen
+- Kopf- oder Fußzeilen von jeder Seite entfernen, bevor Sie einen Dokumentauszug teilen
+- Seiten an ein bestimmtes Anzeige- oder Drucklayout anpassen
+
+## Tipps
+
+- Die Zuschneideüberlagerung lässt sich frei in der Größe ändern und verschieben. Ziehen Sie an den Ecken für proportionale Größenänderung oder an den Kanten für Anpassung in einer Achse.
+- Wenn jede Seite denselben Zuschnitt braucht, legen Sie ihn auf der ersten Seite fest. Das Werkzeug merkt sich Ihren Zuschneidebereich beim Wechseln der Seiten.
+- Wenn Sie Seitengrößen vereinheitlichen statt visuell zuschneiden wollen, passt das Werkzeug Seitengröße korrigieren möglicherweise besser.
+
+## Verwandte Werkzeuge
+
+- [PDF-Editor](./edit-pdf)
+- [Seitenzahlen](./page-numbers)
+- [Leere Seiten entfernen](./remove-blank-pages)
diff --git a/docs/de/tools/csv-to-pdf.md b/docs/de/tools/csv-to-pdf.md
new file mode 100644
index 00000000..38bea5e1
--- /dev/null
+++ b/docs/de/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV zu PDF
+description: Wandlen Sie CSV-Tabellendateien direkt in Ihrem Browser in formatierte PDF-Tabellen um.
+---
+
+# CSV zu PDF
+
+Verwandlen Sie CSV-Dateien in saubere, formatierte PDF-Dokumente. Jede CSV wird geparst und als Tabelle in der Ausgabe-PDF dargestellt. Das ist praktisch, wenn Sie Tabellendaten drucken oder teilen wollen, ohne dass der Empfänger eine Tabellenkalkulation braucht.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :----- | :------------ |
+| CSV | `.csv` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie eine oder mehrere CSV-Dateien hinein.
+2. Prüfen Sie die Dateiliste. Fügen Sie weitere Dateien hinzu oder entfernen Sie unerwünschte.
+3. Klicken Sie auf **In PDF umwandeln**. Eine Fortschrittsanzeige zeigt den Stand der Umwandlung.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in `csv-converted.zip` verpackt.
+
+## Optionen
+
+Dieses Werkzeug hat keine zusätzliche Konfiguration. Die CSV wird automatisch geparst und als Tabelle formatiert.
+
+## Ausgabe
+
+| Anzahl Eingaben | Ausgabe |
+| :-------------- | :------------------------------------------------------- |
+| 1 Datei | Einzelner PDF-Download (z. B. `data.pdf`) |
+| 2+ Dateien | ZIP-Archiv (`csv-converted.zip`) mit einer PDF pro Datei |
+
+## Anwendungsfälle
+
+- Exportierte Datenbankberichte in druckbare PDF-Tabellen umwandeln
+- Finanzdaten oder Bestandslisten mit Personen teilen, die kein Excel haben
+- PDF-Versionen von CSV-Logdateien für Compliance-Dokumentation erstellen
+- Adresslisten, Notenlisten oder andere als CSV gespeicherte Tabellendaten drucken
+
+## Tipps
+
+- Für beste Ergebnisse sollte Ihre CSV Standard-Kommas als Trennzeichen verwenden. Das Werkzeug folgt gängigen CSV-Parsing-Konventionen.
+- Hat Ihre CSV viele Spalten, wird die Tabelle möglicherweise gestaucht, damit sie in die Seitenbreite passt. Teilen Sie breite Datensätze am besten in mehrere Dateien auf.
+- Für Excel-Dateien (`.xls`, `.xlsx`) nutzen Sie das Werkzeug [Excel zu PDF](./excel-to-pdf), das die Tabellenformatierung und mehrere Blätter beibehält.
+
+## Verwandte Werkzeuge
+
+- [Excel zu PDF](./excel-to-pdf)
+- [Text zu PDF](./txt-to-pdf)
+- [JSON zu PDF](./json-to-pdf)
diff --git a/docs/de/tools/delete-pages.md b/docs/de/tools/delete-pages.md
new file mode 100644
index 00000000..5d9afc8d
--- /dev/null
+++ b/docs/de/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Seiten löschen
+description: Entfernen Sie bestimmte Seiten aus einer PDF per Seitenzahl, Bereich oder visueller Auswahl über Vorschaubilder.
+---
+
+# Seiten löschen
+
+Entfernen Sie unerwünschte Seiten aus einem PDF-Dokument. Geben Sie die zu löschenden Seiten als Seitenzahlen oder Bereiche ein oder klicken Sie direkt auf Seitenvorschaubilder, um sie zum Entfernen zu markieren.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Das Werkzeug erstellt Vorschaubilder jeder Seite.
+2. Geben Sie die zu löschenden Seiten im Textfeld mit Bereichssyntax ein (z. B. `2, 5-8`) oder klicken Sie auf Vorschaubilder, um sie umzuschalten.
+3. Markierte Seiten werden visuell hervorgehoben, damit Sie Ihre Auswahl prüfen können.
+4. Klicken Sie auf die Verarbeitungsschaltfläche. Es wird eine neue PDF ohne die ausgewählten Seiten erstellt.
+
+## Funktionen
+
+- Textbasierte Seitenauswahl mit Bereichssyntax (`2, 5-8, 12`)
+- Visuelles Vorschaubildraster zum Löschen per Klick
+- Echtzeit-Hervorhebung der zum Löschen markierten Seiten
+- Eingabeprüfung anhand der tatsächlichen Seitenzahl
+- Behält alle nicht gelöschten Seiten in ihrer ursprünglichen Reihenfolge
+
+## Anwendungsfälle
+
+- Leere oder Füllseiten aus einem gescannten Dokument entfernen
+- Deckblätter oder Anhänge entfernen, bevor Sie ein Dokument teilen
+- Entwurfsseiten bereinigen, die versehentlich in einer endgültigen PDF geblieben sind
+- Seiten mit sensiblen Informationen vor der Weitergabe entfernen
+
+## Tipps
+
+- Das Löschen von Seiten wirkt sich nicht auf Inhalt oder Formatierung der übrigen Seiten aus. Die Ausgabe ist eine getreue Kopie des Originals abzüglich der entfernten Seiten.
+- Wenn Sie nur bestimmte Seiten behalten statt bestimmte entfernen wollen, ist [Seiten extrahieren](./extract-pages) besser geeignet.
+- Die Vorschauansicht lädt träge nach, sodass große Dokumente reaktionsschnell bleiben.
+
+## Verwandte Werkzeuge
+
+- [Seiten extrahieren](./extract-pages)
+- [Organisieren & Duplizieren](./organize-pdf)
+- [PDF teilen](./split-pdf)
diff --git a/docs/de/tools/deskew-pdf.md b/docs/de/tools/deskew-pdf.md
new file mode 100644
index 00000000..f5a5a1ee
--- /dev/null
+++ b/docs/de/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDF entzerren
+description: Richten Sie schiefe Seiten in gescannten PDFs automatisch mit OpenCV-Schräglagenerkennung gerade. Einstellbarer Schwellenwert und DPI.
+---
+
+# PDF entzerren
+
+Gescannte Dokumente sind selten perfekt gerade. Schon eine leichte Neigung macht OCR ungenauer und Ausdrucke unsauber. Dieses Werkzeug nutzt die Bildverarbeitungsalgorithmen von OpenCV, um den Schiefwinkel jeder Seite zu erkennen und sie wieder geradezudrehen.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere gescannte PDFs hoch.
+2. Legen Sie den **Schräglagen-Schwellenwert** fest: Seiten mit einer erkannten Schräglage unterhalb dieses Wertes bleiben unverändert.
+3. Wählen Sie eine **Verarbeitungsqualität (DPI)**: Höhere DPI verbessert die Erkennungsgenauigkeit, dauert aber länger.
+4. Klicken Sie auf **PDF entzerren**.
+5. Nach der Verarbeitung zeigt ein Ergebnisbereich für jede Seite den erkannten Winkel und ob sie korrigiert wurde.
+
+## Optionen
+
+| Einstellung | Werte | Standard |
+| ----------------------------- | ----------------------- | -------- |
+| **Schräglagen-Schwellenwert** | 0,1, 0,5, 1,0, 2,0 Grad | 0,5 |
+| **Verarbeitungs-DPI** | 100, 150, 200, 300 | 150 |
+
+## Wie die Schräglagenerkennung funktioniert
+
+Das Werkzeug rendert jede Seite mit der gewählten DPI als Bild und erkennt dann mit OpenCV die dominanten Linienwinkel im Inhalt. Überschreitet die erkannte Schräglage den Schwellenwert, wird die Seite um den umgekehrten Winkel gedreht, um sie geradezurichten. Seiten unterhalb des Schwellenwerts werden unverändert durchgereicht.
+
+## Anwendungsfälle
+
+- Stapelweise gescannte Verträge oder Rechtsdokumente aufbereiten
+- Gescannte Belege oder Rechnungen für die OCR-Verarbeitung vorbereiten
+- Seiten von einem Flachbettscanner geradeziehen, bei dem das Papier uneinheitlich eingelegt wurde
+- Die visuelle Qualität digitalisierter Archivmaterialien verbessern
+
+## Tipps
+
+- Senken Sie den Schwellenwert auf 0,1 Grad, wenn Sie für OCR eine pixelgenaue Ausrichtung brauchen.
+- 150 DPI ist für die meisten Dokumente schnell und genau. Nutzen Sie 300 DPI für sehr kleinen Text oder Seiten mit feinen Details.
+- Das Entzerren funktioniert am besten bei Dokumenten mit klaren horizontalen Textzeilen. Bei Seiten, die überwiegend aus Bildern oder diagonalen Designelementen bestehen, kann es Schwierigkeiten geben.
+
+## Verwandte Werkzeuge
+
+- [PDF rastern](./rasterize-pdf): die entzerrte Ausgabe in eine flache, bildbasierte PDF umwandeln
+- [PDF komprimieren](./compress-pdf): die Dateigröße nach dem Entzerren verringern
+- [PDF reparieren](./repair-pdf): strukturelle Probleme in gescannten PDFs beheben
diff --git a/docs/de/tools/digital-sign-pdf.md b/docs/de/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..8e7cddc3
--- /dev/null
+++ b/docs/de/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Digitale Signatur
+description: Fügen Sie PDFs kryptografische digitale Signaturen mit X.509-Zertifikaten hinzu. Unterstützt PKCS#12- und PEM-Formate mit sichtbaren Signaturoptionen.
+---
+
+# Digitale Signatur
+
+Eine digitale Signatur ist ein kryptografischer Nachweis, dass eine bestimmte Person ein Dokument signiert hat und dass das Dokument seitdem nicht verändert wurde. Anders als eine gezeichnete Signatur (die nur ein Bild ist) nutzt eine digitale Signatur X.509-Zertifikate und PKCS#7-Standards, um überprüfbare Echtheit und Integrität zu gewährleisten.
+
+BentoPDF wendet digitale Signaturen vollständig in Ihrem Browser an. Ihr privater Schlüssel verlässt nie Ihr Gerät.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Laden Sie Ihre Zertifikatsdatei hoch (.pfx, .p12 oder .pem).
+3. Geben Sie das Zertifikatspasswort ein, um es zu entsperren. Das Werkzeug zeigt Zertifikatsinhaber, Aussteller und Gültigkeitszeitraum an.
+4. Konfigurieren Sie optional Signaturmetadaten (Grund, Ort, Kontaktinformationen).
+5. Aktivieren Sie optional eine **sichtbare Signatur** mit Anpassung von Position, Größe, Bild und Text.
+6. Klicken Sie auf **PDF signieren**.
+
+## Unterstützte Zertifikatsformate
+
+| Format | Erweiterungen | Beschreibung |
+| ----------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
+| **PKCS#12** | .pfx, .p12 | Branchenstandard-Paket mit privatem Schlüssel und Zertifikatskette. Das gängigste Format. |
+| **PEM** | .pem | Textbasiertes Format. Muss Zertifikat und privaten Schlüssel in einer Datei enthalten. Unterstützt verschlüsselte private Schlüssel. |
+
+## Optionen für die sichtbare Signatur
+
+Wenn aktiviert, wird ein sichtbarer Signaturblock auf der PDF-Seite dargestellt:
+
+- **Position**: X/Y-Koordinaten sowie Breite/Höhe in Punkt
+- **Seite**: Erste Seite, letzte Seite, alle Seiten oder eine bestimmte Seitenzahl
+- **Bild**: Laden Sie ein PNG-, JPG- oder WebP-Bild hoch (Ihre handschriftliche Unterschrift, ein Firmensiegel usw.)
+- **Text**: Eigener Text mit einstellbarer Farbe und Schriftgröße. Wenn weder Bild noch Text angegeben sind, erzeugt das Werkzeug automatisch Text aus dem Common Name des Zertifikats und dem aktuellen Datum.
+
+## Signaturmetadaten
+
+- **Grund**: Warum das Dokument signiert wurde (z. B. "Genehmigt", "Geprüft")
+- **Ort**: Wo die Signierung stattfand (z. B. "Berlin")
+- **Kontaktinformationen**: Wie der Unterzeichner erreichbar ist (z. B. E-Mail-Adresse)
+
+## Hinweis zur Internetverbindung
+
+Das Signieren kann eine Internetverbindung erfordern. Die Signaturbibliothek ruft die Zertifikatskette von URLs ab, die in der Authority-Information-Access-Erweiterung (AIA) Ihres Zertifikats eingebettet sind. Sind diese Server nicht erreichbar, schlägt das Signieren bei Zertifikaten fehl, die eine Kettenprüfung erfordern.
+
+## Anwendungsfälle
+
+- Verträge, Angebote und Vereinbarungen mit rechtsverbindlichen digitalen Signaturen signieren
+- Offizielle Dokumente in Abläufen beglaubigen, die PKI-basierte Authentifizierung erfordern
+- PDF-Rechnungen für die Einhaltung von Vorschriften signieren (viele EU-Länder verlangen digital signierte E-Rechnungen)
+- Technischen Zeichnungen oder Qualitätsdokumenten eine organisatorische Freigabe hinzufügen
+
+## Tipps
+
+- Selbstsignierte Zertifikate eignen sich zum Testen, zeigen aber in Adobe Reader Warnungen an. Verwenden Sie für Produktivdokumente ein Zertifikat einer vertrauenswürdigen Zertifizierungsstelle.
+- Die sichtbare Signatur ist rein visuell. Die kryptografische Signatur wird unabhängig davon eingebettet, ob der sichtbare Block aktiviert ist.
+- Prüfen Sie Ihre signierte PDF mit dem Werkzeug Signatur validieren, um sicherzustellen, dass die Signatur intakt ist.
+
+## Verwandte Werkzeuge
+
+- [Signatur validieren](./validate-signature-pdf): digitale Signaturen in signierten PDFs überprüfen
+- [PDF verflachen](./flatten-pdf): Formulare vor dem Signieren verflachen, um Änderungen zu verhindern
+- [PDF verschlüsseln](./protect-pdf): zusätzlich zur digitalen Signatur Passwortschutz hinzufügen
+- [Metadaten entfernen](./remove-metadata): Metadaten vor dem Signieren entfernen
diff --git a/docs/de/tools/divide-pages.md b/docs/de/tools/divide-pages.md
new file mode 100644
index 00000000..e2f16324
--- /dev/null
+++ b/docs/de/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Seiten teilen
+description: Teilen Sie PDF-Seiten horizontal oder vertikal in kleinere Teilseiten.
+---
+
+# Seiten teilen
+
+Schneiden Sie einzelne PDF-Seiten in Hälften, indem Sie sie horizontal oder vertikal teilen. Das ist nützlich, wenn eine Seite Inhalte enthält, die auf getrennte Seiten gehören, zum Beispiel ein zweispaltiges Layout, das als eine breite Seite gescannt wurde.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Wählen Sie die Teilungsrichtung: **Vertikal** (linke/rechte Hälfte) oder **Horizontal** (obere/untere Hälfte).
+3. Geben Sie optional einen Seitenbereich an, um einzugrenzen, welche Seiten geteilt werden. Lassen Sie das Feld leer, um alle Seiten zu teilen.
+4. Klicken Sie auf die Verarbeitungsschaltfläche, um die geteilte PDF zu erzeugen.
+
+## Funktionen
+
+- Vertikale Teilung: teilt jede Seite in eine linke und eine rechte Hälfte
+- Horizontale Teilung: teilt jede Seite in eine obere und eine untere Hälfte
+- Seitenbereichsfilter, um gezielt bestimmte Seiten zu teilen
+- Nicht ausgewählte Seiten bleiben unverändert
+- Erhält die Inhaltsqualität ohne erneutes Rendern
+
+## Anwendungsfälle
+
+- Zweiseitig gescannte Seiten trennen (z. B. ein Buchscan mit linker und rechter Seite auf einem Blatt)
+- Eine Querformat-PDF mit nebeneinanderliegenden Inhalten in einzelne Hochformatseiten teilen
+- Hohe Infografiken oder Poster in einen oberen und einen unteren Abschnitt teilen
+- Breitformatige Dokumente für den Druck auf Standardpapier vorbereiten
+
+## Tipps
+
+- Wenn der Inhalt Ihrer Seiten ungleich verteilt ist, erfolgt die Teilung trotzdem genau in der Mitte. Für asymmetrische Teilungen nutzen Sie stattdessen [PDF zuschneiden](./crop-pdf).
+- Kombinieren Sie dieses Werkzeug mit [PDF drehen](./rotate-pdf), falls Ihre Seiten vor oder nach dem Teilen gedreht werden müssen.
+
+## Verwandte Werkzeuge
+
+- [PDF teilen](./split-pdf)
+- [PDF zuschneiden](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [PDF-Poster erstellen](./posterize-pdf)
diff --git a/docs/de/tools/duplex-collate.md b/docs/de/tools/duplex-collate.md
new file mode 100644
index 00000000..b998556e
--- /dev/null
+++ b/docs/de/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Duplex-Zusammenführung
+description: Ordnen Sie Duplex-Scan-PDFs, bei denen Vorder- und Rückseiten in getrennten Blöcken liegen, in die richtige Vorder-/Rückseiten-Reihenfolge.
+---
+
+# Duplex-Zusammenführung
+
+Duplex zusammenführen ist für ADF-Scan-Abläufe gedacht, bei denen eine PDF zwei Seitenblöcke enthält:
+
+- zuerst alle Vorderseiten
+- danach alle Rückseiten
+
+Statt manuell zu teilen und neu zusammenzusetzen, verschränkt dieses Werkzeug die beiden Blöcke in natürlicher Lesereihenfolge: Vorderseite 1, Rückseite 1, Vorderseite 2, Rückseite 2 und so weiter.
+
+## So funktioniert es
+
+1. Laden Sie eine einzelne PDF hoch, die durch Stapelscannen im Duplexverfahren entstanden ist.
+2. Legen Sie den Teilungspunkt fest, an dem der Vorderseitenblock endet.
+3. Wählen Sie die Behandlung des Rückseitenblocks:
+ - **Rückseitenblock umkehren** (üblich, wenn der Stapel vor dem Scannen der Rückseiten gewendet wird)
+ - **Rückseitenblock unverändert lassen**
+4. Klicken Sie auf **PDF zusammenführen**, um das neu geordnete Ergebnis herunterzuladen.
+
+## Optionen
+
+- **Teilung automatisch erkennen (Hälfte)**: setzt den Teilungspunkt auf `ceil(totalPages / 2)`.
+- **Warnung bei ungerader Seitenzahl**: warnt, wenn die Gesamtseitenzahl ungerade ist (oft ein Scanfehler).
+- **Bestätigung bei ungleichen Blöcken**: fragt nach, wenn sich die Größen von Vorder- und Rückseitenblock unterscheiden.
+- **Gruppierter Export**: teilt die zusammengeführte Ausgabe anhand der ursprünglichen Seitenzahl der Dokumente in einzelne PDFs und lädt sie als ZIP herunter.
+
+## Ausgabeverhalten
+
+- **Standard**: eine Ausgabe-PDF (eine Eingabe-PDF ergibt eine Ausgabe-PDF).
+- **Gruppierter Modus**: Die Ausgabe wird nach Ihrem Wert für Seiten pro Dokument aufgeteilt. Entstehen mehrere Teile, werden sie als ein ZIP heruntergeladen, andernfalls als einzelne PDF.
+
+Sind die Blöcke ungleich groß, werden zuerst die gepaarten Seiten zusammengeführt, und die übrigen ungepaarten Seiten werden am Ende angehängt.
+
+## Häufige Anwendungsfälle
+
+- Die Reihenfolge wiederherstellen, nachdem ein Stapel doppelseitiger Formulare in zwei Durchgängen gescannt wurde.
+- Vorder-/Rückseiten-Pakete aus Bürogeräten rekonstruieren, die zuerst alle Vorderseiten und dann alle Rückseiten ausgeben.
+- Archivscans nachbearbeiten, bevor sie in Einzeldokumente geteilt werden.
+
+## Tipps
+
+- Die meisten Duplex-Stapel sollten eine gerade Gesamtseitenzahl haben.
+- Wenn die Rückseiten im Ergebnis verkehrt aussehen, wechseln Sie zwischen **Rückseitenblock umkehren** und **Rückseitenblock unverändert lassen**.
+- Bei 2-seitigen Originalen (Vorder- und Rückseite) nutzen Sie den gruppierten Export mit `2` Seiten pro Dokument.
+
+## Verwandte Werkzeuge
+
+- [Seiten abwechselnd mischen](./alternate-merge)
+- [PDF teilen](./split-pdf)
+- [PDF zusammenführen](./merge-pdf)
+- [Organisieren & Duplizieren](./organize-pdf)
diff --git a/docs/de/tools/edit-attachments.md b/docs/de/tools/edit-attachments.md
new file mode 100644
index 00000000..993e01c1
--- /dev/null
+++ b/docs/de/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Anhänge bearbeiten
+description: Zeigen Sie in einem PDF-Dokument eingebettete Dateianhänge an und entfernen Sie sie gezielt.
+---
+
+# Anhänge bearbeiten
+
+Prüfen und verwalten Sie die Dateianhänge in einer PDF. Das Werkzeug listet jede eingebettete Datei mit Namen und Anhangsebene auf und lässt Sie einzelne Anhänge zum Entfernen markieren oder alle auf einmal entfernen.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Das Werkzeug sucht automatisch nach Anhängen und zeigt sie in einer Liste an.
+3. Jeder Anhang zeigt seinen Dateinamen und ob es ein Anhang auf Dokument- oder Seitenebene ist.
+4. Klicken Sie auf das Papierkorb-Symbol neben einem Anhang, um ihn zum Entfernen zu markieren (erneut klicken hebt die Markierung auf).
+5. Mit der Schaltfläche **Alle Anhänge entfernen** wählen Sie alles auf einmal aus, mit **Auswahl aufheben** löschen Sie Ihre Auswahl.
+6. Klicken Sie auf die Verarbeitungsschaltfläche, um eine neue PDF ohne die ausgewählten Anhänge zu speichern.
+
+## Funktionen
+
+- Listet alle Anhänge auf Dokument- und Seitenebene auf
+- Einzelnes oder gesammeltes Entfernen von Anhängen
+- Auswahl vor dem Übernehmen der Änderungen ein- und ausschalten
+- Visuelle Durchstreichung und geringere Deckkraft bei zum Entfernen markierten Einträgen
+- Lädt die geänderte PDF ohne die ausgewählten Anhänge herunter
+
+## Anwendungsfälle
+
+- Veraltete oder falsche eingebettete Dateien aus einem Dokument entfernen, bevor es weitergegeben wird
+- Sensible Anhänge (Finanzdaten, persönliche Angaben) aus einer PDF entfernen, bevor Sie sie teilen
+- Die PDF-Dateigröße verringern, indem nicht mehr benötigte große eingebettete Dateien entfernt werden
+- Eingebettete Inhalte prüfen und ein Dokument vor der Archivierung bereinigen
+
+## Tipps
+
+- Zum Entfernen markierte Anhänge werden durchgestrichen dargestellt. Sie können die Markierung vor der Verarbeitung wieder aufheben, wenn Sie es sich anders überlegen.
+- Wenn keine Anhänge gefunden werden, zeigt das Werkzeug eine klare Meldung "Keine Anhänge gefunden". Die PDF enthält dann einfach keine eingebetteten Dateien.
+
+## Verwandte Werkzeuge
+
+- [Anhänge hinzufügen](./add-attachments)
+- [Anhänge extrahieren](./extract-attachments)
+- [Metadaten anzeigen](./view-metadata)
diff --git a/docs/de/tools/edit-metadata.md b/docs/de/tools/edit-metadata.md
new file mode 100644
index 00000000..84387685
--- /dev/null
+++ b/docs/de/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Metadaten bearbeiten
+description: Zeigen Sie PDF-Metadatenfelder wie Titel, Autor, Schlüsselwörter, Datumsangaben und benutzerdefinierte Eigenschaften an und ändern Sie sie.
+---
+
+# Metadaten bearbeiten
+
+Bearbeiten Sie die in einer PDF-Datei eingebetteten Metadaten. Das Werkzeug füllt ein Formular mit den vorhandenen Metadaten des Dokuments, lässt Sie jedes Feld ändern und speichert die Änderungen in einer neuen PDF.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Das Werkzeug liest ihre aktuellen Metadaten und füllt das Formular.
+2. Bearbeiten Sie eines der Standardfelder: Titel, Autor, Betreff, Schlüsselwörter, Ersteller, Producer.
+3. Passen Sie Erstellungsdatum und Änderungsdatum mit den Datums- und Zeitauswahlen an.
+4. Fügen Sie benutzerdefinierte Metadatenfelder hinzu, indem Sie auf die Hinzufügen-Schaltfläche klicken und ein Schlüssel-Wert-Paar eingeben.
+5. Klicken Sie auf die Verarbeitungsschaltfläche, um die geänderte PDF zu speichern.
+
+## Funktionen
+
+- Füllt alle vorhandenen Metadaten der hochgeladenen PDF vorab aus
+- Standardfelder: Titel, Autor, Betreff, Schlüsselwörter, Ersteller, Producer
+- Datums- und Zeitauswahlen für Erstellungs- und Änderungsdatum
+- Benutzerdefinierte Schlüssel-Wert-Metadatenfelder für beliebige Eigenschaften
+- Speichert Änderungen direkt im Dokumentinformationswörterbuch der PDF
+
+## Bearbeitbare Felder
+
+| Feld | Beschreibung |
+| ----------------------------- | -------------------------------------------------------------- |
+| **Titel** | Der in PDF-Readern angezeigte Dokumenttitel |
+| **Autor** | Die Person oder Organisation, die das Dokument erstellt hat |
+| **Betreff** | Eine kurze Beschreibung des Dokumentthemas |
+| **Schlüsselwörter** | Durch Kommas getrennte Begriffe für Suche und Kategorisierung |
+| **Ersteller** | Die Anwendung, die den Inhalt ursprünglich erstellt hat |
+| **Produzent** | Die Anwendung, die die PDF erzeugt hat |
+| **Erstellungsdatum** | Wann das Dokument ursprünglich erstellt wurde |
+| **Änderungsdatum** | Wann das Dokument zuletzt geändert wurde |
+| **Benutzerdefinierte Felder** | Beliebige zusätzliche Schlüssel-Wert-Paare, die Sie definieren |
+
+## Anwendungsfälle
+
+- Einen passenden Titel und Autor festlegen, bevor ein Dokument veröffentlicht wird
+- Schlüsselwörter hinzufügen, um die Auffindbarkeit in Dokumentenmanagementsystemen zu verbessern
+- Das Änderungsdatum aktualisieren, damit es der aktuellen Überarbeitung entspricht
+- Benutzerdefinierte Metadatenfelder wie Abteilung, Projekt-ID oder Klassifizierung hinzufügen
+- Metadaten bereinigen, die von der ursprünglichen Autorensoftware hinterlassen wurden
+
+## Tipps
+
+- Benutzerdefinierte Felder werden direkt in das Info-Wörterbuch der PDF geschrieben. Manche PDF-Reader zeigen benutzerdefinierte Felder nicht an, sie bleiben aber in der Datei erhalten.
+- Lassen Sie ein Feld leer, um es aus den Metadaten zu löschen. Die Verarbeitungsschaltfläche speichert, was im Formular steht.
+- Um Metadaten nur anzusehen, nutzen Sie [Metadaten anzeigen](./view-metadata). Um alle Metadaten vollständig zu entfernen, nutzen Sie Metadaten entfernen.
+
+## Verwandte Werkzeuge
+
+- [Metadaten anzeigen](./view-metadata)
+- [PDF-OCG-Ebenen](./pdf-layers)
+- [PDF komprimieren](./compress-pdf)
diff --git a/docs/de/tools/edit-pdf.md b/docs/de/tools/edit-pdf.md
new file mode 100644
index 00000000..697a2058
--- /dev/null
+++ b/docs/de/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF-Editor
+description: Kommentieren Sie, markieren Sie, schwärzen Sie, fügen Sie Formen und Bilder hinzu, durchsuchen Sie und betrachten Sie PDFs direkt in Ihrem Browser.
+---
+
+# PDF-Editor
+
+Mit dem PDF-Editor von BentoPDF können Sie Ihre PDFs kommentieren, markieren, schwärzen, mit Anmerkungen versehen, Formen und Bilder hinzufügen und durchsuchen. Er lädt einen voll ausgestatteten Editor direkt in Ihrem Browser, ganz ohne Server-Uploads.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Der eingebettete PDF-Editor öffnet sich automatisch mit Ihrem geladenen Dokument.
+3. Nutzen Sie die Symbolleiste, um zu kommentieren, zu markieren, zu schwärzen, Text hinzuzufügen, Formen zu zeichnen oder Bilder einzufügen.
+4. Klicken Sie auf **Bearbeitete PDF herunterladen**, um Ihre Änderungen zu speichern.
+
+## Funktionen
+
+- Vollständige Anmerkungs-Symbolleiste mit Markieren, Unterstreichen, Durchstreichen und Freihandzeichnen
+- Texteinfügung und Kommentare
+- Schwärzungswerkzeuge, die markierte Inhalte endgültig entfernen, sobald Sie die Schwärzung anwenden. Wurden beim Klick auf **Bearbeitete PDF herunterladen** noch nicht alle Markierungen angewendet, bietet der Editor an, sie zuerst anzuwenden.
+- Formwerkzeuge für Rechtecke, Kreise, Linien und Pfeile
+- Bilder auf PDF-Seiten einfügen
+- Integrierte Textsuche im gesamten Dokument
+- Unterstützung mehrerer Dokumente mit Tabs (bis zu 10 gleichzeitig geöffnete Dokumente)
+- Dateien per Drag-and-drop laden
+
+## Anwendungsfälle
+
+- Verträge prüfen und Änderungen mit Markierungen und Kommentaren versehen
+- Vertrauliche Informationen wie Sozialversicherungsnummern oder Finanzdaten vor der Weitergabe schwärzen
+- Anmerkungen zu Bauplänen oder technischen Zeichnungen hinzufügen
+- Firmenlogos oder Stempel auf Dokumentseiten einfügen
+- Umfangreiche Rechtsdokumente nach bestimmten Begriffen durchsuchen
+
+## Tipps
+
+- Sie können mehrere PDFs gleichzeitig öffnen und über die Tab-Leiste oben im Editor zwischen ihnen wechseln.
+- Der Editor erhält die ursprüngliche PDF-Struktur, sodass Schriften, Layouts und Formularfelder intakt bleiben.
+- Das Markieren von Text oder einem Bereich zum Schwärzen entfernt nichts, bis die Schwärzung angewendet wird. Wenn Sie ausgewählten Text schwärzen, werden Kopien davon in den Eigenschaften, Lesezeichen, Kommentaren und Anhängen der Datei ebenfalls aus dem Download entfernt, sofern die Datei nicht verschlüsselt ist.
+- Für Massen-Wasserzeichen oder Seitenzahlen nutzen Sie die speziellen Werkzeuge, die Ihnen mehr Kontrolle über die Formatierung geben.
+
+## Verwandte Werkzeuge
+
+- [Wasserzeichen hinzufügen](./add-watermark)
+- [PDF signieren](./sign-pdf)
+- [Stempel hinzufügen](./add-stamps)
+- [Anmerkungen entfernen](./remove-annotations)
diff --git a/docs/de/tools/email-to-pdf.md b/docs/de/tools/email-to-pdf.md
new file mode 100644
index 00000000..0b1513fb
--- /dev/null
+++ b/docs/de/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: E-Mail zu PDF
+description: Wandeln Sie EML- und MSG-E-Mail-Dateien in Ihrem Browser in PDF um. Behält Kopfzeilen, Nachrichtentext und Anhangsliste bei.
+---
+
+# E-Mail zu PDF
+
+Wandeln Sie gespeicherte E-Mail-Dateien in saubere, druckbare PDFs um. Das Werkzeug parst EML- und MSG-Dateien, liest die gesamte Nachricht aus (Kopfzeilen, Nachrichtentext und Anhang-Metadaten) und stellt alles in einer strukturierten PDF dar. Praktisch für rechtliche Beweissicherung, Aufbewahrung oder zum Drucken einer wichtigen E-Mail.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----- | :---------- | :------------------------------------------------------------------------- |
+| EML | `.eml` | Standard-MIME-E-Mail-Format (aus den meisten E-Mail-Programmen exportiert) |
+| MSG | `.msg` | Proprietäres Format von Microsoft Outlook |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre EML- oder MSG-Dateien hinein. Sie können beide Formate in einem Stapel mischen.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Einträge mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um mehr E-Mails aufzunehmen.
+3. Konfigurieren Sie die Umwandlungsoptionen (siehe unten).
+4. Klicken Sie auf **In PDF umwandeln**. Das Werkzeug parst jede E-Mail, stellt den Inhalt als formatiertes HTML dar und wandelt ihn über die PyMuPDF-Engine in PDF um.
+5. Eine einzelne E-Mail wird direkt als PDF heruntergeladen. Mehrere E-Mails werden in `emails-converted.zip` verpackt.
+
+## Optionen
+
+| Option | Standard | Beschreibung |
+| :---------------------------- | :------- | :------------------------------------------------------------------------------------------------------- |
+| **Seitengröße** | A4 | Wählen Sie zwischen den Seitenmaßen A4, Letter oder Legal. |
+| **CC und BCC einschließen** | An | Wenn aktiviert, erscheinen die CC- und BCC-Empfängerlisten im Kopfbereich der E-Mail in der PDF. |
+| **Anhangsliste einschließen** | An | Wenn aktiviert, erscheint in der PDF eine Liste der Dateianhänge der E-Mail (mit Dateinamen und Größen). |
+
+## Anwendungsfälle
+
+- Wichtige Geschäftskorrespondenz für Compliance oder Prüfungen als PDF archivieren
+- E-Mail-Verläufe für Gerichtsverfahren oder Auskunftsersuchen drucken
+- Einen dauerhaften Nachweis von Bestellbestätigungen, Belegen oder per E-Mail erhaltenen Verträgen anlegen
+- Outlook-MSG-Dateien in einem Format sichern, für dessen Lesen Outlook nicht nötig ist
+- Kundensupport-Vorgänge aus exportierten EML-Dateien dokumentieren
+
+## Tipps
+
+- Sowohl EML (von Thunderbird, Apple Mail und den meisten E-Mail-Programmen verwendet) als auch Outlook-MSG-Dateien werden unterstützt. Exportieren Sie E-Mails aus Ihrem E-Mail-Programm und ziehen Sie sie direkt in das Werkzeug.
+- HTML-formatierte E-Mails behalten ihre Formatierung in der PDF. Reine Text-E-Mails werden mit sauberer, gut lesbarer Formatierung dargestellt.
+- Die Anhangsliste zeigt Dateinamen und Größen, bettet die eigentlichen Anhangsdateien aber nicht in die PDF ein.
+
+## Verwandte Werkzeuge
+
+- [XML zu PDF](./xml-to-pdf)
+- [XPS zu PDF](./xps-to-pdf)
diff --git a/docs/de/tools/epub-to-pdf.md b/docs/de/tools/epub-to-pdf.md
new file mode 100644
index 00000000..43a3c841
--- /dev/null
+++ b/docs/de/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB zu PDF
+description: Wandeln Sie EPUB-E-Books in Ihrem Browser in PDF um. Kostenlos, kein Upload nötig, Umwandlung mit Fokus auf Privatsphäre.
+---
+
+# EPUB zu PDF
+
+Wandeln Sie EPUB-E-Books in PDF-Dateien um, ohne Ihren Browser zu verlassen. EPUB ist der offene Standard für digitale Bücher, aber manchmal brauchen Sie eine PDF mit festem Layout zum Drucken, Kommentieren oder Teilen mit Personen ohne E-Book-Reader.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----- | :---------- | :------------------------- |
+| EPUB | `.epub` | EPUB-2- und EPUB-3-Dateien |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre EPUB-Dateien hinein. Mehrfachauswahl wird unterstützt.
+2. Prüfen Sie die hochgeladenen Dateien. Entfernen Sie unerwünschte Einträge mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um den Stapel zu erweitern.
+3. Klicken Sie auf **In PDF umwandeln**. Die PyMuPDF-Engine rendert den EPUB-Inhalt (Text, Bilder und Formatierung) in eine paginierte PDF-Ausgabe.
+4. Ein einzelnes EPUB wird direkt als PDF heruntergeladen. Mehrere Dateien werden in einem ZIP-Archiv namens `epub-converted.zip` verpackt.
+
+## Optionen
+
+Die Umwandlung läuft mit sinnvollen Standardwerten und erfordert keine Konfiguration. Der Text wird auf Standardseitengrößen umbrochen, und eingebettete Schriften und Bilder werden in die PDF übernommen.
+
+## Anwendungsfälle
+
+- Ein E-Book ohne DRM zum Lesen abseits von Bildschirmen drucken
+- Ein EPUB-Manuskript als PDF mit festem Layout zur Begutachtung einreichen
+- Digitale Bücher in einem Format archivieren, das jedes Betriebssystem nativ öffnen kann
+- Ein Kapitel mit einem Kollegen teilen, der keinen EPUB-Reader hat
+- Als EPUB verteilte technische Dokumentation in kommentierbare PDFs umwandeln
+
+## Tipps
+
+- EPUB-3-Funktionen wie eingebettetes Audio und Video werden nicht in die PDF übernommen, aber sämtlicher Text, alle Bilder und Tabellen werden sauber umgewandelt.
+- Bei stark formatierten EPUBs prüfe die ersten Seiten der Ausgabe, um die Layouttreue zu bestätigen.
+
+## Verwandte Werkzeuge
+
+- [MOBI zu PDF](./mobi-to-pdf)
+- [FB2 zu PDF](./fb2-to-pdf)
+- [CBZ zu PDF](./cbz-to-pdf)
diff --git a/docs/de/tools/excel-to-pdf.md b/docs/de/tools/excel-to-pdf.md
new file mode 100644
index 00000000..604344ca
--- /dev/null
+++ b/docs/de/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel zu PDF
+description: Wandeln Sie Excel-Tabellen (XLS, XLSX), ODS- und CSV-Dateien unter Erhalt der Formatierung in PDF um.
+---
+
+# Excel zu PDF
+
+Wandeln Sie Tabellendateien in PDF um. Das Werkzeug verarbeitet moderne Excel-Dateien, das ältere XLS-Format, OpenDocument-Tabellen und sogar CSV. Alles wird über eine browserbasierte LibreOffice-Engine gerendert, die Zellformatierung, Formeln (als berechnete Werte), Diagramme und Layouts mit mehreren Blättern erhält.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :------------------- | :------------ |
+| Excel (modern) | `.xlsx` |
+| Excel (älter) | `.xls` |
+| OpenDocument-Tabelle | `.ods` |
+| CSV | `.csv` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre Tabellendateien hinein.
+2. Prüfen Sie die Dateiliste. Fügen Sie weitere Dateien hinzu oder entfernen Sie unerwünschte.
+3. Klicken Sie auf **In PDF umwandeln**. Die LibreOffice-Engine wird bei der ersten Nutzung initialisiert und verarbeitet dann jede Datei.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden als `excel-converted.zip` geliefert.
+
+## Optionen
+
+Dieses Werkzeug hat keine zusätzliche Konfiguration. Die LibreOffice-Engine bestimmt Seitenlayout, Skalierung und Druckbereich anhand der integrierten Einstellungen der Tabelle.
+
+## Ausgabe
+
+| Anzahl Eingaben | Ausgabe |
+| :-------------- | :------------------------------------------------------------------ |
+| 1 Datei | Einzelner PDF-Download (ursprünglicher Dateiname mit Endung `.pdf`) |
+| 2+ Dateien | ZIP-Archiv (`excel-converted.zip`) mit einer PDF pro Datei |
+
+## Anwendungsfälle
+
+- Finanzberichte oder Budgets aus Excel zur Weitergabe in PDF umwandeln
+- Druckfertige PDFs aus Bestands- oder Produktkatalog-Tabellen erstellen
+- Datenanalyse-Ergebnisse mit Beteiligten teilen, die kein Excel installiert haben
+- Quartalsberichte in einem nicht bearbeitbaren Format archivieren
+- ODS-Dateien aus LibreOffice Calc in PDF umwandeln
+
+## Tipps
+
+- In der Tabelle eingebettete Diagramme werden in der PDF dargestellt. Prüfen Sie vor der Umwandlung, dass sie in der Quelldatei korrekt aussehen.
+- Hat Ihre Tabelle mehrere Blätter, werden alle Blätter in die PDF-Ausgabe aufgenommen.
+- Für einfache CSV-Daten ohne Formatierung bietet das Werkzeug [CSV zu PDF](./csv-to-pdf) eine leichtere Umwandlung. Nutzen Sie Excel zu PDF, wenn Formatierung, Diagramme oder mehrere Blätter erhalten bleiben sollen.
+
+## Verwandte Werkzeuge
+
+- [CSV zu PDF](./csv-to-pdf)
+- [Word zu PDF](./word-to-pdf)
+- [PowerPoint zu PDF](./powerpoint-to-pdf)
diff --git a/docs/de/tools/extract-attachments.md b/docs/de/tools/extract-attachments.md
new file mode 100644
index 00000000..b32f058c
--- /dev/null
+++ b/docs/de/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Anhänge extrahieren
+description: Extrahieren Sie alle eingebetteten Dateianhänge aus einer oder mehreren PDFs und laden Sie sie als ZIP-Archiv herunter.
+---
+
+# Anhänge extrahieren
+
+Holen Sie jeden eingebetteten Anhang aus einer oder mehreren PDF-Dateien heraus. Alle extrahierten Dateien werden zum Download in einem einzigen ZIP-Archiv gebündelt.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch, die eingebettete Anhänge enthalten.
+2. Klicken Sie auf **Anhänge extrahieren**.
+3. Das Werkzeug durchsucht jede PDF nach Anhängen auf Dokument- und Seitenebene.
+4. Alle gefundenen Dateien werden in einem ZIP-Archiv verpackt und automatisch heruntergeladen.
+5. Eine Statusmeldung bestätigt, wie viele Anhänge gefunden wurden und wie groß sie insgesamt sind.
+
+## Funktionen
+
+- Stapelextraktion aus mehreren PDFs gleichzeitig
+- Extrahiert Anhänge auf Dokument- und auf Seitenebene
+- Gibt eine einzelne ZIP-Datei mit allen extrahierten Dateien aus
+- Zeigt die Gesamtzahl der Anhänge und die kombinierte Dateigröße an
+- Klare Statusmeldungen, wenn keine Anhänge gefunden werden
+
+## Anwendungsfälle
+
+- In einer Bericht-PDF eingebettete Datendateien wiederherstellen
+- Bilddateien aus einem Portfolio oder einer Spezifikation herausholen
+- Ergänzende Materialien aus Schulungs- oder Compliance-PDFs extrahieren
+- Prüfen, welche Dateien in einem Stapel von PDFs eingebettet sind
+
+## Tipps
+
+- Meldet das Werkzeug keine Anhänge, enthält die PDF möglicherweise stattdessen eingebettete Bilder oder Formulardaten, die keine Dateianhänge sind. Für eingebettete Bilder nutzen Sie [Bilder extrahieren](./extract-images).
+- Bei der Verarbeitung mehrerer PDFs landen alle Anhänge aller Dateien in einem ZIP. Die Dateinamen bleiben wie bei der ursprünglichen Einbettung erhalten.
+
+## Verwandte Werkzeuge
+
+- [Anhänge hinzufügen](./add-attachments)
+- [Anhänge bearbeiten](./edit-attachments)
+- [Bilder extrahieren](./extract-images)
diff --git a/docs/de/tools/extract-images.md b/docs/de/tools/extract-images.md
new file mode 100644
index 00000000..3856b125
--- /dev/null
+++ b/docs/de/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Bilder extrahieren
+description: Extrahieren Sie alle eingebetteten Bilder aus PDF-Dateien. Zeigen Sie sie in einem Raster an und laden Sie sie einzeln oder als ZIP-Archiv herunter.
+---
+
+# Bilder extrahieren
+
+Holt jedes eingebettete Bild aus einer oder mehreren PDF-Dateien heraus. Die extrahierten Bilder werden in einem Vorschauraster angezeigt, in dem Sie sie einzeln herunterladen oder alles auf einmal als ZIP erhalten können. Angetrieben von PyMuPDF.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien darauf ziehen. Fügen Sie nach Bedarf weitere Dateien hinzu oder entfernen Sie einzelne.
+2. Klicken Sie auf **Extrahieren**, um die Verarbeitung zu starten.
+3. Das Werkzeug durchsucht jede Seite jeder hochgeladenen PDF und findet und extrahiert eingebettete Bilder.
+4. Die extrahierten Bilder erscheinen als Vorschaubilder in einem Raster. Jedes Bild hat eine Download-Schaltfläche.
+5. Klicken Sie auf **Alle herunterladen**, um alles als ZIP-Archiv zu speichern.
+
+## Optionen
+
+Dieses Werkzeug hat keine konfigurierbaren Optionen. Alle eingebetteten Bilder werden in ihrem nativen Format extrahiert (typischerweise PNG, JPEG oder dem Format, das beim Einbetten des Bildes in die PDF verwendet wurde).
+
+## Ausgabeformat
+
+- Bilder erscheinen im Vorschauraster mit Namen wie `image_1.png`, `image_2.jpg` usw.
+- **Alle herunterladen** erzeugt `extracted-images.zip` mit allen Bildern.
+- Einzelne Bilder können nacheinander aus dem Raster heruntergeladen werden.
+
+## Anwendungsfälle
+
+- Fotos oder Grafiken aus einer PDF zur Wiederverwendung in einem anderen Projekt zurückgewinnen.
+- Produktbilder aus einer Katalog-PDF für ein E-Commerce-Angebot extrahieren.
+- Diagramme aus technischer Dokumentation für Präsentationen herausholen.
+- Prüfen, welche Bilder in einem Dokument eingebettet sind, bevor Sie es teilen.
+
+## Tipps
+
+- Das Werkzeug extrahiert Bilder genau so, wie sie in der PDF gespeichert sind. Es rendert keine Seiten als Bilder. Dafür nutzen Sie [PDF zu PNG](./pdf-to-png) oder [PDF zu JPG](./pdf-to-jpg).
+- Meldet das Werkzeug "Keine Bilder gefunden", verwendet die PDF möglicherweise Vektorgrafiken statt eingebetteter Rasterbilder, oder es ist ein gescanntes Dokument, bei dem die gesamte Seite ein einziges großes Bild ist.
+- Die Stapelverarbeitung funktioniert über mehrere PDFs hinweg. Alle Bilder aller Dateien werden in einem einzigen Raster und ZIP zusammengefasst.
+
+## Verwandte Werkzeuge
+
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu JPG](./pdf-to-jpg)
+- [PDF-Workflow-Builder](./pdf-workflow)
diff --git a/docs/de/tools/extract-pages.md b/docs/de/tools/extract-pages.md
new file mode 100644
index 00000000..d47fbf5b
--- /dev/null
+++ b/docs/de/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Seiten extrahieren
+description: Speichern Sie einen bestimmten Seitenbereich einer PDF als neues Dokument.
+---
+
+# Seiten extrahieren
+
+Holen Sie eine Reihe von Seiten aus einer PDF und speichern Sie sie als neue Datei. Geben Sie mit der Bereichssyntax genau an, welche Seiten Sie möchten, und das Werkzeug erstellt eine saubere PDF, die nur diese Seiten enthält.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Das Werkzeug zeigt Dateinamen, Größe und Gesamtseitenzahl an.
+2. Geben Sie die zu extrahierenden Seiten mit der Bereichssyntax ein (z. B. `1-5`, `3, 7, 10-12`).
+3. Wählen Sie optional, jeden Bereich als separate PDF in einem ZIP-Archiv herunterzuladen.
+4. Klicken Sie auf die Verarbeitungsschaltfläche. Die extrahierten Seiten werden als neue PDF (oder ZIP) heruntergeladen.
+
+## Funktionen
+
+- Flexible Seitenbereichssyntax: einzelne Seiten, Bereiche oder durch Kommas getrennte Kombinationen
+- Zeigt nach dem Hochladen die Gesamtseitenzahl zur einfachen Orientierung an
+- Option zur Ausgabe als eine kombinierte PDF oder als einzelne Dateien in einem ZIP
+- Erhält den ursprünglichen Seiteninhalt und die Formatierung
+
+## Anwendungsfälle
+
+- Die Zusammenfassung (die ersten Seiten) aus einem langen Bericht herausziehen
+- Ein einzelnes Kapitel aus einer Lehrbuch-PDF extrahieren
+- Bestimmte Seiten aus einem Formularpaket als eigenständige Dokumente speichern
+- Aus ausgewählten Seiten einer größeren Datei ein Beispieldokument erstellen
+
+## Tipps
+
+- Seitenzahlen beginnen bei 1. Verwenden Sie `1` für die erste Seite, nicht `0`.
+- Zum Entfernen statt Extrahieren von Seiten nutzen Sie [Seiten löschen](./delete-pages), die Umkehroperation.
+- Wenn Sie eine visuelle Seitenauswahl mit Vorschaubildern brauchen, nutzen Sie [PDF teilen](./split-pdf) im Modus Visuelle Auswahl.
+
+## Verwandte Werkzeuge
+
+- [PDF teilen](./split-pdf)
+- [Seiten löschen](./delete-pages)
+- [PDF zusammenführen](./merge-pdf)
diff --git a/docs/de/tools/extract-tables.md b/docs/de/tools/extract-tables.md
new file mode 100644
index 00000000..70f768d0
--- /dev/null
+++ b/docs/de/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Tabellen extrahieren
+description: Erkennen Sie und extrahieren Sie Tabellen aus PDF-Dokumenten. Export als CSV, JSON oder Markdown mit Einzeltabellen-Granularität.
+---
+
+# Tabellen extrahieren
+
+Erkennt alle Tabellen in einer PDF und lässt Sie sie im Format Ihrer Wahl exportieren: CSV, JSON oder Markdown. Jede Tabelle wird einzeln mit Seiten- und Positionsmetadaten extrahiert. Angetrieben von der Tabellenerkennung von PyMuPDF.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Wählen Sie Ihr bevorzugtes **Exportformat**: CSV, JSON oder Markdown.
+3. Klicken Sie auf **Extrahieren**, um die Verarbeitung zu starten.
+4. Wird eine Tabelle gefunden, wird sie als einzelne Datei heruntergeladen. Mehrere Tabellen ergeben ein ZIP-Archiv mit einer Datei pro Tabelle.
+
+## Optionen
+
+- **Exportformat**: Wählen Sie zwischen:
+ - **CSV**: durch Kommas getrennte Werte mit korrekter Maskierung für Felder, die Kommas, Anführungszeichen oder Zeilenumbrüche enthalten. Geeignet für Tabellenkalkulationen und Datenbanken.
+ - **JSON**: Array-von-Arrays-Struktur, formatiert mit 2 Leerzeichen Einrückung. Geeignet für die programmatische Weiterverarbeitung.
+ - **Markdown**: Tabellenformat mit senkrechten Strichen als Trennzeichen, von PyMuPDF erzeugt. Geeignet für Dokumentation und README-Dateien.
+
+## Ausgabeformat
+
+- **Einzelne Tabelle**: `filename_table.csv` (oder `.json` / `.md`)
+- **Mehrere Tabellen**: `filename_tables.zip` mit Dateien wie `table_1_page3.csv`, `table_2_page5.csv` usw.
+
+## Anwendungsfälle
+
+- Bestimmte Tabellen aus langen PDF-Berichten extrahieren, ohne die Daten des gesamten Dokuments zu ziehen.
+- Tabellen im Markdown-Format erhalten, um sie direkt in GitHub-Issues, Wikis oder Dokumentation einzufügen.
+- Strukturierte JSON-Daten aus PDF-Tabellen für API-Integrationen oder Skripte gewinnen.
+- Tabellen verschiedener PDF-Versionen vergleichen, indem beide als CSV exportiert und per Diff verglichen werden.
+
+## Tipps
+
+- Dieses Werkzeug gibt Ihnen Kontrolle pro Tabelle. Wenn Sie einfach alle Tabellen in einer einzigen CSV haben möchten, nutzen Sie [PDF zu CSV](./pdf-to-csv). Für eine vollständige Excel-Arbeitsmappe nutzen Sie [PDF zu Excel](./pdf-to-excel).
+- Tabellen, die sich über mehrere Seiten erstrecken, werden möglicherweise als separate Tabellen pro Seite erkannt. Sie müssen sie eventuell manuell zusammenfügen.
+- Werden keine Tabellen erkannt, ist die PDF möglicherweise ein gescanntes Bild. Führen Sie zuerst OCR aus, um eine Textebene hinzuzufügen.
+
+## Verwandte Werkzeuge
+
+- [PDF zu CSV](./pdf-to-csv)
+- [PDF zu Excel](./pdf-to-excel)
+- [PDF zu Text](./pdf-to-text)
diff --git a/docs/de/tools/fb2-to-pdf.md b/docs/de/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..454c5169
--- /dev/null
+++ b/docs/de/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 zu PDF
+description: Wandeln Sie FictionBook-E-Books (FB2) direkt im Browser in PDF um. Kostenlos, privat, ohne Server-Upload.
+---
+
+# FB2 zu PDF
+
+Wandeln Sie FictionBook-2-Dateien (FB2) in PDF-Dokumente um. FB2 ist ein XML-basiertes E-Book-Format, das in Russland und Osteuropa beliebt ist. Auf manchen Plattformen wird es gut unterstützt, auf anderen ist es praktisch unbekannt. Mit der Umwandlung in PDF lassen sich Ihre Bücher überall lesen.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :------------ | :---------- | :-------------------------- |
+| FictionBook 2 | `.fb2` | XML-basiertes E-Book-Format |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre FB2-Dateien per Drag & Drop hinein. Mehrere Dateien auf einmal sind möglich.
+2. Prüfen Sie die Dateiliste. Mit dem Papierkorb-Symbol entfernen Sie einzelne Einträge, mit **Weitere Dateien hinzufügen** ergänzen Sie weitere.
+3. Klicken Sie auf **In PDF umwandeln**. Die PyMuPDF-Engine liest die FB2-XML-Struktur ein und gibt sie als paginierten PDF-Inhalt aus.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Umwandlungen werden in `fb2-converted.zip` gebündelt.
+
+## Optionen
+
+Es ist keine Konfiguration nötig. Der Konverter verarbeitet die FB2-XML-Struktur automatisch und erhält Kapitelumbrüche, Formatierungen und eingebettete Bilder.
+
+## Anwendungsfälle
+
+- FB2-E-Books auf Geräten oder in Apps lesen, die nur PDF unterstützen
+- Russischsprachige Literatur drucken, die im FB2-Format verbreitet wird
+- Eine FB2-Bibliothek in ein universell unterstütztes Format archivieren
+- Ein Buch mit jemandem teilen, dessen Reader FictionBook nicht unterstützt
+
+## Tipps
+
+- FB2-Dateien sind reines XML, daher sind sie meist klein und lassen sich selbst im Browser schnell umwandeln.
+- Wenn Ihre FB2-Dateien als `.fb2.zip` komprimiert sind, entpacken Sie sie vor dem Hochladen.
+
+## Verwandte Werkzeuge
+
+- [EPUB zu PDF](./epub-to-pdf)
+- [MOBI zu PDF](./mobi-to-pdf)
+- [XML zu PDF](./xml-to-pdf)
diff --git a/docs/de/tools/fix-page-size.md b/docs/de/tools/fix-page-size.md
new file mode 100644
index 00000000..e71b7a3f
--- /dev/null
+++ b/docs/de/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Seitengröße reparieren
+description: Vereinheitlichen Sie alle Seiten einer PDF auf eine einheitliche Größe. Wählen Sie Standardformate oder geben Sie eigene Maße an.
+---
+
+# Seitengröße reparieren
+
+PDFs, die aus mehreren Quellen zusammengestellt wurden, haben oft unterschiedliche Seitengrößen: manche Letter, manche A4, manche völlig untypisch. Dieses Werkzeug zwingt jede Seite auf eine einzige Zielgröße und skaliert den Inhalt je nach Bedarf, damit er passt oder die Seite füllt.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Wählen Sie im Dropdown eine **Zielseitengröße** (A4, Letter, Legal, A3, A5, Tabloid oder Benutzerdefiniert).
+3. Wählen Sie eine **Ausrichtung**: Automatisch behält die ursprüngliche Ausrichtung jeder Seite bei, alternativ erzwingen Sie Hochformat oder Querformat.
+4. Wählen Sie einen **Inhaltsskalierungs**-Modus: Einpassen (erhält den gesamten Inhalt, kann Ränder hinzufügen) oder Füllen (füllt die Seite, kann Ränder abschneiden).
+5. Legen Sie optional eine **Hintergrundfarbe** für hinzugefügte Ränder fest.
+6. Klicken Sie auf **Seitengröße reparieren**.
+
+## Optionen
+
+- **Standardgrößen**: A4, Letter, Legal, A3, A5, Tabloid
+- **Benutzerdefinierte Maße**: Breite und Höhe in Zoll oder Millimetern eingeben
+- **Ausrichtung**: Automatisch, Hochformat, Querformat
+- **Skalierungsmodus**: Einpassen oder Füllen (Zuschneiden)
+- **Hintergrundfarbe**: Beliebige Farbe für die Randauffüllung
+
+## Anwendungsfälle
+
+- Eine zusammengeführte PDF vereinheitlichen, deren Seiten von verschiedenen Scannern stammen
+- Ein US-Letter-Dokument für den internationalen Versand in A4 umwandeln
+- Druckfertige PDFs mit einheitlichem Endformat vorbereiten
+- Seiten korrigieren, die leicht vom Standard abweichen (z. B. 8,49 x 11,02 Zoll statt 8,5 x 11)
+
+## Tipps
+
+- Nutzen Sie den Modus Einpassen, damit garantiert kein Inhalt verloren geht. Der Modus Füllen sieht sauberer aus, kann aber Ränder abschneiden.
+- Prüfen Sie das Ergebnis mit dem Werkzeug Seitenmaße, um sicherzugehen, dass jede Seite zur Zielgröße passt.
+- Standardmäßig ist die Hintergrundfarbe Weiß. Wechseln Sie zu einer dunklen Farbe, wenn Ihr Dokument dunkle Ränder hat.
+
+## Verwandte Werkzeuge
+
+- [Seitenmaße](./page-dimensions): Seitengrößen vor und nach der Korrektur prüfen
+- [PDF komprimieren](./compress-pdf): Dateigröße nach der Vereinheitlichung verringern
+- [PDF zuschneiden](./crop-pdf): Seiten manuell zuschneiden statt automatisch zu skalieren
diff --git a/docs/de/tools/flatten-pdf.md b/docs/de/tools/flatten-pdf.md
new file mode 100644
index 00000000..6b481ff6
--- /dev/null
+++ b/docs/de/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: PDF reduzieren
+description: Wandeln Sie interaktive Formulare und Annotationen in statische Inhalte um. Formularfelder werden nicht mehr bearbeitbar, Annotationen werden in die Seite eingebrannt.
+---
+
+# PDF reduzieren
+
+Beim Reduzieren (Flatten) werden interaktive Elemente wie Formularfelder, Dropdowns, Kontrollkästchen, Annotationen, Markierungen und Haftnotizen direkt in den Seiteninhalt eingebunden. Das Aussehen bleibt gleich, aber nichts ist mehr bearbeitbar oder extrahierbar. Es ist das PDF-Pendant dazu, ein ausgefülltes Formular auszudrucken und wieder einzuscannen, nur bleibt die Qualität perfekt.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch.
+2. Klicken Sie auf **PDF reduzieren**.
+3. Eine einzelne Datei wird direkt heruntergeladen. Mehrere Dateien ergeben ein ZIP-Archiv.
+
+Das Werkzeug nutzt pdf-lib, um Formularfelder zu reduzieren (über `form.flatten()`), und einen eigenen Annotations-Flattener, der Annotationen in den Seitenstream einbrennt. Beide Vorgänge laufen in einem Durchgang.
+
+## Was reduziert wird
+
+- **Formularfelder**: Texteingaben, Kontrollkästchen, Optionsfelder, Dropdowns, Signaturfelder
+- **Annotationen**: Kommentare, Markierungen, Durchstreichungen, Unterstreichungen, Haftnotizen, Stempel, Freihandannotationen
+- **Interaktive Elemente**: Schaltflächen, Aktionsauslöser
+
+## Was unverändert bleibt
+
+- Textinhalt (bleibt auswählbar und durchsuchbar)
+- Bilder und Grafiken
+- Seitenlayout und Abmessungen
+- Lesezeichen und Inhaltsverzeichnis
+- Hyperlinks (außer sie basieren auf Annotationen)
+
+## Anwendungsfälle
+
+- Ein ausgefülltes Formular sperren, damit Empfänger die abgegebenen Antworten nicht ändern können
+- Eine PDF für die Archivierung vorbereiten, wenn interaktive Elemente überflüssig sind
+- Darstellungsprobleme beheben, weil Annotationen in verschiedenen Viewern unterschiedlich angezeigt werden
+- Sicherstellen, dass ein unterschriebenes Dokument nach der Signatur nicht mehr verändert werden kann
+- Die Dateigröße verringern, indem Formularfelddefinitionen und Annotationsobjekte entfernt werden
+
+## Tipps
+
+- Reduzieren Sie erst, wenn alle Änderungen abgeschlossen sind. Das Reduzieren einer PDF lässt sich nicht rückgängig machen.
+- Wenn Sie zusätzlich Metadaten, JavaScript und Anhänge entfernen wollen, nutzen Sie stattdessen das Werkzeug PDF bereinigen. Es enthält das Reduzieren als eine der Optionen.
+- Manche PDFs melden "kein Formular gefunden". Das ist normal, wenn das Dokument nur Annotationen und keine Formularfelder enthält.
+
+## Verwandte Werkzeuge
+
+- [PDF bereinigen](./sanitize-pdf): Formulare reduzieren und zusätzlich Metadaten, Skripte und mehr entfernen
+- [PDF rastern](./rasterize-pdf): in eine bildbasierte PDF umwandeln für maximales Reduzieren
+- [Schriftart zu Umriss](./font-to-outline): Schriften in Vektorpfade umwandeln
+- [PDF verschlüsseln](./protect-pdf): die reduzierte PDF mit einem Passwort sperren
diff --git a/docs/de/tools/font-to-outline.md b/docs/de/tools/font-to-outline.md
new file mode 100644
index 00000000..38cc3785
--- /dev/null
+++ b/docs/de/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Schriftart zu Umriss
+description: Wandeln Sie alle PDF-Schriften in Vektorumrisse um, für eine einheitliche Darstellung auf allen Geräten. Beseitigt Probleme mit fehlenden Schriften.
+---
+
+# Schriftart zu Umriss
+
+Beim Umwandeln von Schriften in Umrisse wird jedes Textzeichen von einem schriftbasierten Glyphen in einen Vektorpfad verwandelt. Die PDF hängt dann von keiner installierten Schrift mehr ab und wird auf jedem Gerät, in jedem Betriebssystem und auf jedem Drucker identisch dargestellt. Das ist ein Standardschritt in Prepress-Workflows.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch.
+2. Klicken Sie auf **In Umrisse umwandeln**.
+3. Ghostscript wandelt den gesamten Text in Vektorpfade um.
+4. Laden Sie das Ergebnis herunter. Mehrere Dateien ergeben ein ZIP-Archiv.
+
+Es gibt keine Einstellungen. Das Werkzeug nutzt Ghostscript (WebAssembly), um alle Schriftverweise in einem Durchgang in Umrisspfade umzuwandeln.
+
+## Was sich ändert
+
+- Textzeichen werden zu Vektorkurven (Bézierpfade)
+- Das Einbetten von Schriften ist nicht mehr nötig, die PDF ist auf Glyphenebene in sich geschlossen
+- Die Dateigröße kann steigen, da Vektorpfade meist größer sind als Schriftverweise
+- Das Erscheinungsbild bleibt exakt erhalten
+
+## Was verloren geht
+
+- Textauswahl und Kopieren und Einfügen
+- Durchsuchbarkeit des Textes (Strg+F funktioniert nicht mehr)
+- Die Möglichkeit, den Textinhalt zu bearbeiten
+- Barrierefreiheit für Screenreader
+
+## Anwendungsfälle
+
+- PDFs an eine Druckerei schicken, die Schriften in Umrissen verlangt
+- Dokumente mit eigenen oder lizenzierten Schriften an Personen weitergeben, die diese Schriften nicht haben
+- Schriftersetzung verhindern, die das Aussehen Ihres Dokuments auf anderen Systemen verändert
+- PDFs für Lasergravur oder CNC-Fräsen vorbereiten, die Vektoreingaben erfordern
+- Sicherstellen, dass eine logolastige PDF auf allen Plattformen korrekt angezeigt wird
+
+## Tipps
+
+- Behalten Sie Ihre Original-PDF. Das Umwandeln in Umrisse ist unumkehrbar, Pfade lassen sich nicht in bearbeitbaren Text zurückverwandeln.
+- Wenn der Text durchsuchbar bleiben soll, nehmen Sie stattdessen das Werkzeug PDF rastern mit anschließender OCR.
+- PDFs mit Umrissen sind tendenziell größer. Führen Sie danach PDF komprimieren aus, wenn die Dateigröße wichtig ist.
+
+## Verwandte Werkzeuge
+
+- [PDF reduzieren](./flatten-pdf): Formulare und Annotationen reduzieren, ohne Schriften anzutasten
+- [PDF rastern](./rasterize-pdf): in eine bildbasierte PDF statt in Vektorumrisse umwandeln
+- [PDF komprimieren](./compress-pdf): Dateigröße nach dem Umwandeln verringern
+- [PDF zu PDF/A](./pdf-to-pdfa): für die Archivierung umwandeln, nachdem die Schriftunabhängigkeit sichergestellt ist
diff --git a/docs/de/tools/form-creator.md b/docs/de/tools/form-creator.md
new file mode 100644
index 00000000..e0cad9de
--- /dev/null
+++ b/docs/de/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: PDF-Formular erstellen
+description: Erstellen Sie ausfüllbare PDF-Formulare per Drag & Drop mit Textfeldern, Kontrollkästchen, Dropdowns, Optionsfeldern und mehr.
+---
+
+# PDF-Formular erstellen
+
+Gestalten Sie professionelle ausfüllbare PDF-Formulare von Grund auf oder fügen Sie Felder zu einer bestehenden PDF hinzu. Im visuellen Editor ziehen Sie Formularelemente wie Textfelder, Kontrollkästchen, Dropdowns, Optionsfelder und Signaturfelder direkt auf die Seitenvorschau. Konfigurieren Sie Feldeigenschaften, richten Sie Regeln für bedingte Sichtbarkeit ein und exportieren Sie ein vollständig interaktives PDF-Formular.
+
+## So funktioniert es
+
+1. Laden Sie eine bestehende PDF hoch **oder** klicken Sie auf **Leere PDF erstellen**, um von vorn zu beginnen.
+2. Wenn Sie eine leere PDF erstellen, wählen Sie eine Seitengröße (Letter, A4, A5, Legal, Tabloid, A3 oder eigene Maße).
+3. Der Formulareditor öffnet sich mit einer Symbolleiste für Feldtypen und einer Seitenvorschau.
+4. Wählen Sie in der Symbolleiste einen Feldtyp aus und klicken Sie dann auf die Seite, um es zu platzieren.
+5. Ziehen Sie Felder, um sie zu verschieben. Mit den Anfasserpunkten passen Sie die Größe an.
+6. Klicken Sie auf ein Feld, um das Eigenschaftenfenster zu öffnen. Dort legen Sie Feldname, Standardwert, Schriftgröße, Ausrichtung und mehr fest.
+7. Wechseln Sie mit den Seitensteuerungen zwischen den Seiten.
+8. Klicken Sie auf **Speichern**, um die fertige ausfüllbare PDF herunterzuladen.
+
+## Funktionen
+
+- Felder per Drag & Drop platzieren, mit sichtbaren Anfassern zur Größenänderung
+- Feldtypen: Texteingabe, mehrzeiliger Text, Kontrollkästchen, Dropdown, Optionsfeld, Signatur, Datum, Zahl und Barcode
+- Eigenschaftenfenster zum Konfigurieren von Name, Beschriftung, Standardwert, Schriftgröße, Farbe, Ausrichtung und Validierung jedes Felds
+- Feldaktionen und Regeln für bedingte Sichtbarkeit (Felder abhängig von anderen Feldwerten ein- oder ausblenden)
+- Seitennavigation für mehrseitige Formulare
+- Extraktion vorhandener Felder: Formularfelder aus hochgeladenen PDFs werden automatisch erkannt und importiert
+- Unterstützung sowohl für hochgeladene PDFs als auch für leere Seiten als Formularfläche
+- Mehrere Seitengrößen-Voreinstellungen sowie eigene Maße
+- Barcode-Erzeugung mit bwip-js
+- Verwaltung von Optionsfeldgruppen
+
+## Optionen
+
+**Seitengrößen-Voreinstellungen (für leere PDFs):**
+
+- 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)
+- Benutzerdefiniert (Breite und Höhe angeben)
+
+**Feldeigenschaften (abhängig vom Feldtyp):**
+
+- Name, Beschriftung und Platzhaltertext
+- Standardwert
+- Schriftart, Schriftgröße und Farbe
+- Textausrichtung (links, zentriert, rechts)
+- Schalter für Pflichtfeld
+- Schalter für Schreibschutz
+- Maximale Länge für Textfelder
+- Optionsliste für Dropdowns und Optionsfelder
+- Aktionen für bedingte Sichtbarkeit
+
+## Anwendungsfälle
+
+- Onboarding-Formulare für Mitarbeitende mit Textfeldern für persönliche Angaben und Kontrollkästchen für die Bestätigung von Richtlinien
+- Fragebögen zur Kundenaufnahme mit Dropdowns zur Leistungsauswahl
+- Bestellformulare mit berechneten Feldern und Barcode-Kennungen
+- Prüfchecklisten mit Optionsfeldern für Bestanden/Nicht bestanden
+- Umfrageformulare mit bedingten Folgefragen, die abhängig von den Antworten erscheinen
+
+## Tipps
+
+- Wenn Sie eine bestehende PDF hochladen, versucht das Werkzeug, vorhandene Formularfelder zu extrahieren, sodass Sie sie bearbeiten oder ergänzen können.
+- Nutzen Sie die Optionsfeldgruppen, um sich gegenseitig ausschließende Auswahlen zu erstellen. Felder in derselben Gruppe teilen sich einen Gruppennamen.
+- Testen Sie Ihr Formular, indem Sie es herunterladen und im [PDF-Formular ausfüllen](./form-filler) öffnen, um das Feldverhalten zu prüfen.
+
+## Verwandte Werkzeuge
+
+- [PDF-Formular ausfüllen](./form-filler)
+- [PDF unterschreiben](./sign-pdf)
+- [PDF-Editor](./edit-pdf)
diff --git a/docs/de/tools/form-filler.md b/docs/de/tools/form-filler.md
new file mode 100644
index 00000000..88d8975b
--- /dev/null
+++ b/docs/de/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: PDF-Formular ausfüllen
+description: Füllen Sie PDF-Formulare einschließlich XFA-Formularen direkt im Browser mit einem integrierten Viewer aus.
+---
+
+# PDF-Formular ausfüllen
+
+Öffnen Sie eine PDF mit Formularfeldern und füllen Sie sie direkt in einem integrierten Viewer aus. Das Werkzeug unterstützt sowohl Standard-AcroForm-Felder als auch ältere XFA-Formulare (XML Forms Architecture). Wenn Sie das Formular ausgefüllt haben, laden Sie die ausgefüllte Version mit einem Klick herunter.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF mit Formularfeldern hoch.
+2. Das Dokument öffnet sich in einem integrierten PDF-Viewer, der Formularfelder als interaktive Eingaben darstellt.
+3. Klicken Sie auf Textfelder, Kontrollkästchen, Dropdowns und Optionsfelder, um sie auszufüllen.
+4. Klicken Sie auf **Speichern & ausgefülltes Formular herunterladen**, um die fertige PDF zu erhalten.
+
+## Funktionen
+
+- Integrierter PDF.js-Viewer mit vollständiger Interaktion mit Formularfeldern
+- Unterstützung für Standard-AcroForm-Felder (Texteingaben, Kontrollkästchen, Dropdowns, Optionsfelder)
+- XFA-Unterstützung für ältere XML-basierte Formulare
+- Automatische Viewer-Größe anhand der Seitenmaße
+- Dateianzeige mit Name und Größe
+
+## Optionen
+
+Es gibt keine zusätzlichen Konfigurationsoptionen. Laden Sie das Formular hoch, füllen Sie es aus und laden Sie es herunter.
+
+## Anwendungsfälle
+
+- Steuerformulare, Versicherungsanträge oder Behördenunterlagen ausfüllen
+- Bewerbungsformulare ausfüllen, die als PDF-Anhang eingehen
+- Onboarding-Formulare für Lieferanten oder Lieferantenfragebögen ausfüllen
+- Compliance-Checklisten mit Kontrollkästchen abzeichnen
+- Anamnesebögen vor einem Termin ausfüllen
+
+## Tipps
+
+- XFA-Formulare sind ein älteres Format, das nur von manchen PDF-Viewern unterstützt wird. Wenn Sie eine XFA-PDF in Chrome oder den meisten anderen Programmen öffnen und leere Seiten sehen, fehlt diesen Viewern die XFA-Unterstützung. Das Ausfüllen von Formularen in BentoPDF und Firefox verarbeiten XFA korrekt.
+- Für PDFs ohne vorhandene Formularfelder nutzen Sie zuerst das Werkzeug [PDF-Formular erstellen](./form-creator), um Felder hinzuzufügen, und füllen sie dann hier aus.
+- Der Viewer passt seine Größe automatisch an die Seitenmaße der PDF an.
+
+## Verwandte Werkzeuge
+
+- [PDF-Formular erstellen](./form-creator)
+- [PDF unterschreiben](./sign-pdf)
+- [PDF-Editor](./edit-pdf)
diff --git a/docs/de/tools/header-footer.md b/docs/de/tools/header-footer.md
new file mode 100644
index 00000000..216ae5a3
--- /dev/null
+++ b/docs/de/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Kopf- & Fußzeile
+description: Fügen Sie den PDF-Seiten anpassbaren Kopf- und Fußzeilentext mit dynamischen Seitenzahl-Variablen hinzu.
+---
+
+# Kopf- & Fußzeile
+
+Fügen Sie Text an sechs Positionen Ihrer PDF-Seiten hinzu: Kopfzeile links, Kopfzeile Mitte, Kopfzeile rechts, Fußzeile links, Fußzeile Mitte und Fußzeile rechts. Das Werkzeug unterstützt dynamische Variablen für Seitenzahlen und Gesamtseitenzahl, sodass Sie Vorlagen wie "Seite 3 von 10" erstellen können, die sich pro Seite automatisch aktualisieren.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Das Optionsfenster erscheint mit Formatierungssteuerungen und sechs Texteingabefeldern.
+3. Geben Sie den gewünschten Text an einer beliebigen Position der Kopf- oder Fußzeile ein.
+4. Nutzen Sie die Platzhalter `{page}` und `{total}` für dynamische Seitenzahlen.
+5. Passen Sie Schriftgröße und Schriftfarbe an und beschränken Sie optional auf einen bestimmten Seitenbereich.
+6. Klicken Sie auf **Kopf- & Fußzeile hinzufügen**, um zu verarbeiten und herunterzuladen.
+
+## Optionen
+
+- **Seitenbereich**: Beschränken Sie optional, welche Seiten Kopf- und Fußzeilen erhalten. Leer lassen, um alle Seiten einzubeziehen. Format: "1-3, 5" (kommagetrennte Bereiche).
+- **Schriftgröße**: Zwischen 6 und 24 Punkt. Standard ist 10.
+- **Schriftfarbe**: Wählen Sie eine beliebige Farbe mit der Farbauswahl.
+- **Kopfzeile links / Mitte / rechts**: Textfelder für den oberen Seitenrand.
+- **Fußzeile links / Mitte / rechts**: Textfelder für den unteren Seitenrand.
+
+## Funktionen
+
+- Sechs unabhängige Textpositionen pro Seite
+- Dynamische Variable `{page}`, die die aktuelle Seitenzahl einfügt
+- Dynamische Variable `{total}`, die die Gesamtseitenzahl einfügt
+- Seitenbereichsfilter, um bestimmte Seiten gezielt zu bearbeiten
+- Anpassbare Schriftgröße und Farbe
+- Helvetica-Schrift für ein klares, professionelles Ergebnis
+
+## Anwendungsfälle
+
+- "Seite {page} von {total}" in der Fußzeile Mitte eines Berichts einfügen
+- Einen Firmennamen in die Kopfzeile links und ein Dokumentdatum in die Kopfzeile rechts setzen
+- Vertraulichkeitshinweise in die Fußzeile von Rechtsdokumenten einfügen
+- Revisionsnummern auf bestimmten Seitenbereichen aufstempeln
+
+## Tipps
+
+- Kombinieren Sie `{page}` und `{total}` in einem Feld für Formate wie "Seite {page} von {total}" oder "{page}/{total}".
+- Sie können die meisten Felder leer lassen und nur die Positionen ausfüllen, die Sie brauchen. Leere Felder werden einfach übersprungen.
+- Für komplexere Kopfzeilen mit Bildern oder Logos können Sie das Werkzeug [Wasserzeichen hinzufügen](./add-watermark) nutzen und oben auf der Seite positionieren.
+
+## Verwandte Werkzeuge
+
+- [Seitenzahlen](./page-numbers)
+- [Wasserzeichen hinzufügen](./add-watermark)
+- [Bates-Nummerierung](./bates-numbering)
diff --git a/docs/de/tools/heic-to-pdf.md b/docs/de/tools/heic-to-pdf.md
new file mode 100644
index 00000000..b4065df0
--- /dev/null
+++ b/docs/de/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC zu PDF
+description: Wandeln Sie HEIC- und HEIF-Bilder von iPhones und iPads direkt im Browser in PDF um.
+---
+
+# HEIC zu PDF
+
+Wandeln Sie HEIC/HEIF-Bilder in PDF um. HEIC ist seit iOS 11 das Standard-Fotoformat auf iPhones und iPads. Mit diesem Werkzeug machen Sie aus diesen Fotos PDFs, ohne Desktop-Software zu installieren oder Dateien auf einen Server hochzuladen.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :----- | :------------ |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre HEIC/HEIF-Dateien per Drag & Drop hinein.
+2. Prüfen Sie die Dateiliste und entfernen Sie unerwünschte Dateien.
+3. Klicken Sie auf **In PDF umwandeln**. Das Ergebnis wird als `from_heic.pdf` heruntergeladen.
+
+Jede HEIC-Datei wird mit der Bibliothek heic2any dekodiert, die sie mit 92 % Qualität in PNG umwandelt. Das PNG wird dann mit pdf-lib in die PDF eingebettet, jedes Bild auf einer eigenen Seite in voller Auflösung.
+
+## Optionen
+
+Dieses Werkzeug bietet keine zusätzlichen Einstellungen. HEIC-Bilder werden vor dem Einbetten in hoher Qualität (0,92) in PNG umgewandelt.
+
+## Anwendungsfälle
+
+- Aus iPhone-Fotos eine PDF für eine Versicherungsmeldung oder einen Bericht erstellen
+- HEIC-Fotos für ein Immobilienexposé in ein einziges druckbares Dokument umwandeln
+- iPad-Screenshots (HEIF-Format) in eine teilbare PDF verwandeln
+- Urlaubsfotos für ein Reisetagebuch im Stapel umwandeln
+
+## Tipps
+
+- Die HEIC-Dekodierung läuft vollständig im Browser mit WebAssembly. Die erste Umwandlung kann einen Moment dauern, während der Decoder geladen wird.
+- Wenn Sie HEIC mit anderen Bildformaten (JPG, PNG usw.) mischen wollen, nutzen Sie das Werkzeug [Bilder zu PDF](./image-to-pdf), das HEIC zusammen mit allen anderen Formaten verarbeitet.
+- HEIC-Dateien von iPhones enthalten oft EXIF-Daten einschließlich GPS-Koordinaten. Die PDF-Ausgabe übernimmt diese Metadaten nicht.
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [JPG zu PDF](./jpg-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
diff --git a/docs/de/tools/image-to-pdf.md b/docs/de/tools/image-to-pdf.md
new file mode 100644
index 00000000..5034c854
--- /dev/null
+++ b/docs/de/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Bilder zu PDF
+description: Wandeln Sie JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD und mehr als 10 weitere Bildformate in eine einzige PDF-Datei um.
+---
+
+# Bilder zu PDF
+
+Der universelle Bild-zu-PDF-Konverter. Laden Sie Bilder in praktisch jedem Format hoch und kombinieren Sie sie zu einem einzigen PDF-Dokument. Jedes Bild erhält eine eigene Seite in der Größe des Originals.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Das ist die breiteste Formatunterstützung aller Bildkonverter in BentoPDF. Wenn Sie nur ein bestimmtes Format brauchen, nutzen Sie stattdessen eines der spezialisierten Werkzeuge.
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre Bilddateien per Drag & Drop hinein. Sie können mehrere Dateien auf einmal auswählen.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Dateien mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um zusätzliche Bilder aufzunehmen.
+3. Wählen Sie im Dropdown eine **PDF-Qualität**.
+4. Klicken Sie auf **In PDF umwandeln**. Das Werkzeug verarbeitet die Bilder mit der PyMuPDF-Engine und lädt das Ergebnis als `images_to_pdf.pdf` herunter.
+
+## Optionen
+
+Die **PDF-Qualität** steuert die Bildkomprimierung beim Einbetten der Bilder in die PDF:
+
+- **Hohe Qualität**: minimale Komprimierung, größere Datei. Am besten für Druck oder Archivierung.
+- **Mittlere Qualität** (Standard): ausgewogene Komprimierung. Für die meisten Zwecke gut geeignet.
+- **Niedrige Qualität**: starke Komprimierung, kleinste Datei. Geeignet für E-Mail oder schnelles Teilen.
+
+HEIC- und WebP-Dateien werden vor dem Einbetten automatisch in PNG umgewandelt. Das geschieht unbemerkt und erfordert keine zusätzlichen Schritte.
+
+## Anwendungsfälle
+
+- Gescannte Belege oder Dokumente aus der Handykamera in einer PDF zusammenfassen
+- Aus Bildern in gemischten Formaten ein Foto-Portfolio oder Lookbook erstellen
+- iPhone-Fotos (HEIC) in eine teilbare PDF umwandeln, ohne Desktop-Software zu installieren
+- Design-Mockups aus PSD-Exporten und Screenshots zu einer Kundenlieferung zusammenstellen
+- Einen Ordner mit älteren Bildformaten (PNM, JXR, JP2) als eine einzige PDF archivieren
+
+## Tipps
+
+- Die Reihenfolge der Bilder in der PDF entspricht der Reihenfolge in der Dateiliste. Laden Sie sie in der gewünschten Reihenfolge hoch.
+- Für die kleinstmögliche Dateigröße wähle Niedrige Qualität. Bei textlastigen Scans ist der optische Unterschied oft vernachlässigbar.
+- Wenn Sie nur ein Bildformat haben, liefern die spezialisierten Konverter (JPG zu PDF, PNG zu PDF usw.) dasselbe Ergebnis mit einer einfacheren Oberfläche.
+
+## Verwandte Werkzeuge
+
+- [JPG zu PDF](./jpg-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
+- [HEIC zu PDF](./heic-to-pdf)
+- [WebP zu PDF](./webp-to-pdf)
diff --git a/docs/de/tools/index.md b/docs/de/tools/index.md
new file mode 100644
index 00000000..57c3b73c
--- /dev/null
+++ b/docs/de/tools/index.md
@@ -0,0 +1,183 @@
+# Werkzeugübersicht
+
+BentoPDF bietet **über 130 Werkzeuge** für die Arbeit mit PDFs. Alle Werkzeuge laufen vollständig in Ihrem Browser, Ihre Dateien verlassen nie Ihr Gerät.
+
+---
+
+## Bearbeiten & Annotieren
+
+Ändern, markieren und verbessern Sie Ihre PDF-Dokumente mit einem umfassenden Satz an Bearbeitungswerkzeugen.
+
+
+
+- [**PDF-Editor**](./edit-pdf): Annotieren Sie, markieren Sie, schwärzen Sie, kommentieren Sie, fügen Sie Formen und Bilder hinzu, suche und zeigen Sie PDFs an.
+- [**Lesezeichen bearbeiten**](./bookmark): PDF-Lesezeichen hinzufügen, bearbeiten, importieren, löschen und extrahieren.
+- [**Inhaltsverzeichnis**](./table-of-contents): Eine Inhaltsverzeichnisseite aus PDF-Lesezeichen erzeugen.
+- [**Seitenzahlen**](./page-numbers): Seitenzahlen in Ihr Dokument einfügen.
+- [**Seitenbeschriftungen hinzufügen**](./add-page-labels): PDF-Seitenbeschriftungen mit römischen Ziffern, Präfixen und eigenen Startwerten anwenden.
+- [**Bates-Nummerierung**](./bates-numbering): Fortlaufende Bates-Nummern über eine oder mehrere PDF-Dateien hinzufügen.
+- [**Wasserzeichen hinzufügen**](./add-watermark): Text oder ein Bild auf Ihre PDF-Seiten stempeln.
+- [**Kopf- & Fußzeile**](./header-footer): Text am oberen und unteren Seitenrand hinzufügen.
+- [**Farben invertieren**](./invert-colors): Eine Dark-Mode-Version Ihrer PDF erstellen.
+- [**Scanner-Effekt**](./scanner-effect): Ihre PDF wie ein gescanntes Dokument aussehen lassen.
+- [**Farben anpassen**](./adjust-colors): Helligkeit, Kontrast, Sättigung und mehr fein abstimmen.
+- [**Hintergrundfarbe**](./background-color): Die Hintergrundfarbe Ihrer PDF ändern.
+- [**Textfarbe ändern**](./text-color): Die Textfarbe in Ihrer PDF ändern.
+- [**PDF unterschreiben**](./sign-pdf): Ihre Unterschrift zeichnen, tippen oder hochladen.
+- [**Stempel hinzufügen**](./add-stamps): Bildstempel über die Annotationsleiste zu Ihrer PDF hinzufügen.
+- [**Annotationen entfernen**](./remove-annotations): Kommentare, Markierungen und Links entfernen.
+- [**PDF zuschneiden**](./crop-pdf): Die Ränder jeder Seite Ihrer PDF beschneiden.
+- [**PDF-Formular ausfüllen**](./form-filler): Formulare direkt im Browser ausfüllen. Unterstützt auch XFA-Formulare.
+- [**PDF-Formular erstellen**](./form-creator): Ausfüllbare PDF-Formulare mit Textfeldern per Drag & Drop erstellen.
+- [**Leere Seiten entfernen**](./remove-blank-pages): Leere Seiten automatisch erkennen und löschen.
+
+
+
+---
+
+## In PDF umwandeln
+
+Wandeln Sie Bilder, Dokumente, E-Books und andere Dateiformate in PDF um.
+
+
+
+- [**Bilder zu PDF**](./image-to-pdf): JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP und mehr in PDF umwandeln.
+- [**JPG zu PDF**](./jpg-to-pdf): Aus einem oder mehreren JPG-Bildern eine PDF erstellen.
+- [**PNG zu PDF**](./png-to-pdf): Aus einem oder mehreren PNG-Bildern eine PDF erstellen.
+- [**WebP zu PDF**](./webp-to-pdf): Aus einem oder mehreren WebP-Bildern eine PDF erstellen.
+- [**SVG zu PDF**](./svg-to-pdf): Aus einem oder mehreren SVG-Bildern eine PDF erstellen.
+- [**BMP zu PDF**](./bmp-to-pdf): Aus einem oder mehreren BMP-Bildern eine PDF erstellen.
+- [**HEIC zu PDF**](./heic-to-pdf): Aus einem oder mehreren HEIC-Bildern eine PDF erstellen.
+- [**TIFF zu PDF**](./tiff-to-pdf): Aus einem oder mehreren TIFF-Bildern eine PDF erstellen.
+- [**Text zu PDF**](./txt-to-pdf): Eine einfache Textdatei in eine PDF umwandeln.
+- [**Markdown zu PDF**](./markdown-to-pdf): Markdown mit Live-Vorschau und Syntaxhervorhebung in PDF umwandeln.
+- [**JSON zu PDF**](./json-to-pdf): JSON-Dateien in das PDF-Format umwandeln.
+- [**ODT zu PDF**](./odt-to-pdf): ODT-Dateien (OpenDocument Text) in PDF umwandeln.
+- [**CSV zu PDF**](./csv-to-pdf): CSV-Tabellen in PDF umwandeln.
+- [**RTF zu PDF**](./rtf-to-pdf): RTF-Dokumente (Rich Text Format) in PDF umwandeln.
+- [**Word zu PDF**](./word-to-pdf): Word-Dokumente (DOCX, DOC, ODT) in PDF umwandeln.
+- [**Excel zu PDF**](./excel-to-pdf): Excel-Tabellen (XLSX, XLS, ODS) in PDF umwandeln.
+- [**PowerPoint zu PDF**](./powerpoint-to-pdf): PowerPoint-Präsentationen (PPTX, PPT, ODP) in PDF umwandeln.
+- [**XPS zu PDF**](./xps-to-pdf): XPS/OXPS-Dokumente in PDF umwandeln.
+- [**MOBI zu PDF**](./mobi-to-pdf): MOBI-E-Books in PDF umwandeln.
+- [**EPUB zu PDF**](./epub-to-pdf): EPUB-E-Books in PDF umwandeln.
+- [**FB2 zu PDF**](./fb2-to-pdf): FictionBook-E-Books (FB2) in PDF umwandeln.
+- [**CBZ zu PDF**](./cbz-to-pdf): Comic-Archive (CBZ/CBR) in PDF umwandeln.
+- [**WPD zu PDF**](./wpd-to-pdf): WordPerfect-Dokumente (WPD) in PDF umwandeln.
+- [**WPS zu PDF**](./wps-to-pdf): WPS-Office-Dokumente in PDF umwandeln.
+- [**XML zu PDF**](./xml-to-pdf): XML-Dokumente in PDF umwandeln.
+- [**ODG zu PDF**](./odg-to-pdf): OpenDocument Graphics (ODG) in PDF umwandeln.
+- [**ODS zu PDF**](./ods-to-pdf): OpenDocument Spreadsheet (ODS) in PDF umwandeln.
+- [**ODP zu PDF**](./odp-to-pdf): OpenDocument Presentation (ODP) in PDF umwandeln.
+- [**PUB zu PDF**](./pub-to-pdf): Microsoft Publisher (PUB) in PDF umwandeln.
+- [**VSD zu PDF**](./vsd-to-pdf): Microsoft Visio (VSD, VSDX) in PDF umwandeln.
+- [**PSD zu PDF**](./psd-to-pdf): Adobe-Photoshop-Dateien (PSD) in PDF umwandeln.
+- [**Email zu PDF**](./email-to-pdf): E-Mail-Dateien (EML, MSG) in das PDF-Format umwandeln.
+
+
+
+---
+
+## Aus PDF umwandeln
+
+Extrahieren Sie Inhalte aus PDFs in Bilder, Dokumente und Datenformate.
+
+
+
+- [**PDF zu JPG**](./pdf-to-jpg): Jede PDF-Seite in ein JPG-Bild umwandeln.
+- [**PDF zu PNG**](./pdf-to-png): Jede PDF-Seite in ein PNG-Bild umwandeln.
+- [**PDF zu WebP**](./pdf-to-webp): Jede PDF-Seite in ein WebP-Bild umwandeln.
+- [**PDF zu BMP**](./pdf-to-bmp): Jede PDF-Seite in ein BMP-Bild umwandeln.
+- [**PDF zu TIFF**](./pdf-to-tiff): Jede PDF-Seite in ein TIFF-Bild umwandeln.
+- [**PDF zu CBZ**](./pdf-to-cbz): Eine PDF in ein CBZ (Comic-Archiv) für Comic-Reader und Calibre umwandeln.
+- [**PDF zu SVG**](./pdf-to-svg): Jede PDF-Seite in eine skalierbare Vektorgrafik umwandeln.
+- [**PDF zu CSV**](./pdf-to-csv): Tabellen aus PDF extrahieren und in das CSV-Format umwandeln.
+- [**PDF zu Excel**](./pdf-to-excel): Tabellen aus PDF extrahieren und in Excel (XLSX) umwandeln.
+- [**PDF zu Graustufen**](./pdf-to-greyscale): Alle Farben in Schwarz-Weiß umwandeln.
+- [**PDF zu JSON**](./pdf-to-json): PDF-Dateien in das JSON-Format umwandeln.
+- [**PDF zu Word**](./pdf-to-word): PDF-Dateien in bearbeitbare Word-Dokumente umwandeln.
+- [**Bilder extrahieren**](./extract-images): Alle eingebetteten Bilder aus Ihren PDF-Dateien extrahieren.
+- [**PDF zu Markdown**](./pdf-to-markdown): PDF-Text und Tabellen in das Markdown-Format umwandeln.
+- [**PDF für KI vorbereiten**](./prepare-pdf-for-ai): PDF-Inhalte als LlamaIndex-JSON für RAG/LLM-Pipelines extrahieren.
+- [**PDF zu Text**](./pdf-to-text): Text aus PDF-Dateien extrahieren und als einfachen Text speichern.
+- [**PDF-Tabellen extrahieren**](./extract-tables): Tabellen aus PDFs als CSV, JSON oder Markdown extrahieren.
+
+
+
+---
+
+## Organisieren & Verwalten
+
+Ordnen Sie Ihre PDF-Seiten und -Dateien neu an, kombinieren, teilen und verwalten Sie sie.
+
+
+
+- [**PDF-Workflow-Builder**](./pdf-workflow): Eigene PDF-Verarbeitungsabläufe mit einem visuellen Node-Editor erstellen.
+- [**PDF-Multitool**](./pdf-multi-tool): Voll ausgestatteter PDF-Editor mit Seitenverwaltung.
+- [**OCR PDF**](./ocr-pdf): Eine PDF durchsuchbar und kopierbar machen.
+- [**PDF zusammenführen**](./merge-pdf): Mehrere PDFs zu einer Datei kombinieren.
+- [**Seiten abwechselnd mischen**](./alternate-merge): PDFs zusammenführen, indem Seiten aus jeder PDF abwechselnd eingefügt werden.
+- [**Duplex-Zusammenführung**](./duplex-collate): Vorder- und Rückseiten-Scanblöcke in die richtige Seitenfolge bringen.
+- [**Duplizieren & Organisieren**](./organize-pdf): Seiten duplizieren, neu anordnen und löschen.
+- [**Anhänge hinzufügen**](./add-attachments): Eine oder mehrere Dateien in Ihre PDF einbetten.
+- [**Anhänge extrahieren**](./extract-attachments): Alle eingebetteten Dateien aus PDF(s) als ZIP extrahieren.
+- [**Anhänge bearbeiten**](./edit-attachments): Anhänge in Ihrer PDF anzeigen oder entfernen.
+- [**PDF-Ebenen (OCG)**](./pdf-layers): OCG-Ebenen in Ihrer PDF anzeigen, umschalten, hinzufügen und löschen.
+- [**PDF teilen**](./split-pdf): Einen Seitenbereich in eine neue PDF extrahieren.
+- [**Seiten teilen**](./divide-pages): Seiten horizontal oder vertikal teilen.
+- [**Seiten extrahieren**](./extract-pages): Eine Auswahl von Seiten als neue Dateien speichern.
+- [**Seiten löschen**](./delete-pages): Bestimmte Seiten aus Ihrem Dokument entfernen.
+- [**Leere Seite hinzufügen**](./add-blank-page): Eine leere Seite an beliebiger Stellen Sie in Ihre PDF einfügen.
+- [**Seiten umkehren**](./reverse-pages): Die Reihenfolge aller Seiten in Ihrem Dokument umkehren.
+- [**PDF drehen**](./rotate-pdf): Seiten in 90-Grad-Schritten drehen.
+- [**Um benutzerdefinierte Grad drehen**](./rotate-custom): Seiten um einen beliebigen Winkel drehen.
+- [**N-Up PDF**](./n-up-pdf): Mehrere Seiten auf einem Blatt anordnen.
+- [**PDF-Broschüre**](./pdf-booklet): Seiten für den doppelseitigen Broschürendruck neu anordnen.
+- [**Zu einer Seite kombinieren**](./combine-single-page): Alle Seiten zu einer durchgehenden Bahn zusammenfügen.
+- [**Metadaten anzeigen**](./view-metadata): Die verborgenen Eigenschaften Ihrer PDF untersuchen.
+- [**Metadaten bearbeiten**](./edit-metadata): Autor, Titel und andere Eigenschaften ändern.
+- [**PDFs zu ZIP**](./pdf-to-zip): Mehrere PDF-Dateien in ein ZIP-Archiv packen.
+- [**PDFs vergleichen**](./compare-pdfs): Zwei PDFs nebeneinander vergleichen.
+- [**PDF posterisieren**](./posterize-pdf): Eine große Seite in mehrere kleinere Seiten aufteilen.
+
+
+
+---
+
+## Optimieren & Reparieren
+
+Komprimieren, reparieren und optimieren Sie Ihre PDFs für bessere Leistung und Kompatibilität.
+
+
+
+- [**PDF komprimieren**](./compress-pdf): Die Dateigröße Ihrer PDF verringern.
+- [**PDF zu PDF/A**](./pdf-to-pdfa): PDF für die Langzeitarchivierung in PDF/A umwandeln.
+- [**Seitengröße reparieren**](./fix-page-size): Alle Seiten auf eine einheitliche Größe vereinheitlichen.
+- [**PDF linearisieren**](./linearize-pdf): PDF für schnelles Anzeigen im Web optimieren.
+- [**Seitenmaße**](./page-dimensions): Seitengröße, Ausrichtung und Einheiten analysieren.
+- [**Beschränkungen entfernen**](./remove-restrictions): Passwortschutz und Sicherheitsbeschränkungen entfernen.
+- [**PDF reparieren**](./repair-pdf): Daten aus beschädigten PDF-Dateien wiederherstellen.
+- [**PDF rastern**](./rasterize-pdf): PDF in eine bildbasierte PDF umwandeln. Ebenen reduzieren und auswählbaren Text entfernen.
+- [**PDF entzerren**](./deskew-pdf): Schiefe gescannte Seiten mit OpenCV automatisch geraderichten.
+- [**Schriftart zu Umriss**](./font-to-outline): Alle Schriften für eine einheitliche Darstellung in Vektorumrisse umwandeln.
+
+
+
+---
+
+## PDF absichern
+
+Schützen und verschlüsseln Sie Ihre PDF-Dokumente und steuern Sie den Zugriff darauf.
+
+
+
+- [**PDF verschlüsseln**](./protect-pdf): Ihre PDF mit einem Passwort sperren.
+- [**PDF bereinigen**](./sanitize-pdf): Metadaten, Annotationen, Skripte und mehr entfernen.
+- [**PDF entschlüsseln**](./unlock-pdf): PDF entsperren, indem der Passwortschutz entfernt wird.
+- [**PDF reduzieren**](./flatten-pdf): Formularfelder und Annotationen nicht mehr bearbeitbar machen.
+- [**Metadaten entfernen**](./remove-metadata): Verborgene Daten aus Ihrer PDF entfernen.
+- [**Berechtigungen ändern**](./change-permissions): Benutzerberechtigungen für eine PDF festlegen oder ändern.
+- [**Digitale PDF-Signatur**](./digital-sign-pdf): Eine kryptografische digitale Signatur mit X.509-Zertifikaten hinzufügen.
+- [**PDF-Signatur überprüfen**](./validate-signature-pdf): Digitale Signaturen überprüfen und Zertifikatsdetails anzeigen.
+
+
diff --git a/docs/de/tools/invert-colors.md b/docs/de/tools/invert-colors.md
new file mode 100644
index 00000000..263ba0d7
--- /dev/null
+++ b/docs/de/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Farben invertieren
+description: Invertieren Sie alle Farben Ihrer PDF und erstellen Sie eine Dark-Mode-Version jedes Dokuments.
+---
+
+# Farben invertieren
+
+Kehren Sie jede Farbe Ihrer PDF ins Gegenteil um. Weiße Hintergründe werden schwarz, schwarzer Text wird weiß und alle anderen Farben wechseln zu ihren Komplementärwerten. So erstellen Sie am schnellsten eine "Dark-Mode"-Version jeder PDF.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Klicken Sie zum Verarbeiten auf **Farben invertieren**.
+3. Die invertierte PDF wird automatisch heruntergeladen.
+
+Es gibt keine weiteren Einstellungen. Das Werkzeug rendert jede Seite als Bild, invertiert alle Pixelfarben und setzt das Ergebnis zu einer neuen PDF zusammen.
+
+## Funktionen
+
+- Farbinvertierung per Klick für alle Seiten
+- Verarbeitet jede Seite des Dokuments
+- Behält Seitenmaße und Layout des Originals bei
+- Funktioniert mit jeder PDF, unabhängig vom Inhalt (Text, Bilder, gemischt)
+
+## Anwendungsfälle
+
+- Dark-Mode-Versionen von Lehrbüchern oder Handbüchern für angenehmes Lesen bei Nacht erstellen
+- Kontrastreiche Versionen von Dokumenten für die Barrierefreiheit vorbereiten
+- Gescannte Dokumente invertieren, die mit falscher Belichtung erfasst wurden
+- Negativversionen bildlastiger PDFs für die visuelle Analyse erzeugen
+
+## Tipps
+
+- Da das Werkzeug die Seiten rastert, um den Effekt anzuwenden, ist die Ausgabe bildbasiert. Text ist danach nicht mehr auswählbar oder durchsuchbar. Wenn Sie nach dem Invertieren durchsuchbaren Text brauchen, schicken Sie das Ergebnis durch ein OCR-Werkzeug.
+- Für feinere Farbanpassungen (Helligkeit, Kontrast, Sättigung) nutzen Sie stattdessen das Werkzeug [Farben anpassen](./adjust-colors).
+- Große PDFs mit vielen Seiten können länger dauern, da jede Seite einzeln gerendert und invertiert wird.
+
+## Verwandte Werkzeuge
+
+- [Farben anpassen](./adjust-colors)
+- [Hintergrundfarbe](./background-color)
+- [Scanner-Effekt](./scanner-effect)
diff --git a/docs/de/tools/jpg-to-pdf.md b/docs/de/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..378f5cd2
--- /dev/null
+++ b/docs/de/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG zu PDF
+description: Wandeln Sie ein oder mehrere JPG-, JPEG- und JPEG-2000-Bilder direkt im Browser in eine einzige PDF-Datei um.
+---
+
+# JPG zu PDF
+
+Mach aus JPG-Bildern eine saubere PDF. Laden Sie eine Datei hoch oder bündle mehrere JPGs, jedes Bild wird zu einer Seite in voller Größe im Ausgabedokument.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre JPG-Dateien per Drag & Drop hinein. Mehrfachauswahl wird unterstützt.
+2. Prüfen Sie die hochgeladenen Dateien. Entfernen Sie einzelne Dateien mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um die Liste zu erweitern.
+3. Wählen Sie eine **PDF-Qualität**.
+4. Klicken Sie auf **In PDF umwandeln**. Das Werkzeug komprimiert die Bilder entsprechend Ihrer Qualitätseinstellung, wandelt sie mit der PyMuPDF-Engine um und lädt `from_jpgs.pdf` herunter.
+
+## Optionen
+
+Die **PDF-Qualität** steuert die Komprimierung, die auf jedes Bild angewendet wird, bevor es in die PDF eingebettet wird:
+
+- **Hohe Qualität**: erhält maximale Details. Für Fotografie oder Druck.
+- **Mittlere Qualität** (Standard): ein solider Mittelweg zwischen Klarheit und Dateigröße.
+- **Niedrige Qualität**: starke Komprimierung für die kleinste Ausgabe.
+
+## Anwendungsfälle
+
+- Als JPG gespeicherte Scans in einer einzigen PDF zur Einreichung zusammenfassen
+- Produktfotos zu einem Katalog für Kunden bündeln
+- Medizinische oder Satellitenbilder in JPEG 2000 in eine portable PDF umwandeln
+- Aus Kameraexporten ein druckbares Fotoalbum erstellen
+
+## Tipps
+
+- JPEG-2000-Dateien (`.jp2`, `.jpx`) werden vollständig unterstützt, nicht nur Standard-JPEG. Das ist nützlich für medizinische Bildgebung und Geodaten.
+- Wenn Ihre JPGs von einer Handykamera stammen, erzeugt die mittlere Qualität meist eine Datei, die 40-60 % kleiner ist als bei hoher Qualität, ohne sichtbaren Unterschied am Bildschirm.
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
+- [WebP zu PDF](./webp-to-pdf)
diff --git a/docs/de/tools/json-to-pdf.md b/docs/de/tools/json-to-pdf.md
new file mode 100644
index 00000000..06fa1cef
--- /dev/null
+++ b/docs/de/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON zu PDF
+description: Rekonstruieren Sie PDF-Dateien aus dem JSON-Format von BentoPDF. Wandeln Sie JSON-Exporte zurück in ihre ursprünglichen PDF-Dokumente um.
+---
+
+# JSON zu PDF
+
+Rekonstruieren Sie PDF-Dokumente aus JSON-Dateien, die zuvor mit dem Werkzeug **PDF zu JSON** von BentoPDF erstellt wurden. Es ist ein Werkzeug für die Rückumwandlung: Es nimmt die strukturierte JSON-Darstellung einer PDF und baut das ursprüngliche Dokument wieder auf.
+
+::: warning
+Dieses Werkzeug akzeptiert nur JSON-Dateien, die mit dem PDF-zu-JSON-Konverter von BentoPDF erstellt wurden. Standard-JSON-Dateien aus APIs, Datenbanken oder anderen Werkzeugen werden nicht unterstützt.
+:::
+
+## Unterstützte Formate
+
+| Eingabe | Beschreibung |
+| :------ | :---------------------------------------------------------------------------- |
+| `.json` | JSON-Dateien, die mit dem Werkzeug PDF zu JSON von BentoPDF exportiert wurden |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie eine oder mehrere JSON-Dateien per Drag & Drop hinein.
+2. Die Dateiliste zeigt jede ausgewählte Datei mit ihrer Größe.
+3. Klicken Sie auf **In PDF umwandeln**. Das Werkzeug verarbeitet alle Dateien mit einem Web Worker und der CPDF-Engine.
+4. Die Ausgabe wird als `jsons-to-pdf.zip` heruntergeladen und enthält pro JSON-Eingabedatei eine PDF.
+
+Die Umwandlung läuft in einem Web Worker im Hintergrund, sodass die Oberfläche auch bei großen Dateien reaktionsfähig bleibt.
+
+## Optionen
+
+Dieses Werkzeug hat keine konfigurierbaren Optionen. Die JSON-Struktur bestimmt die Ausgabe-PDF vollständig.
+
+## Ausgabe
+
+Bei der Umwandlung mehrerer JSON-Dateien werden die Ergebnisse als ZIP-Archiv geliefert. Jede PDF trägt den Namen ihrer JSON-Quelldatei (z. B. wird aus `report.json` die Datei `report.pdf`).
+
+## Anwendungsfälle
+
+- PDFs aus einem JSON-basierten Backup oder Archivierungsprozess wiederherstellen
+- Eine PDF zur Prüfung über JSON leiten und dann wieder in PDF zurückwandeln
+- Dokumente nach programmatischen Änderungen an der JSON-Struktur neu aufbauen
+- Prüfen, ob ein PDF-zu-JSON-Export den gesamten Dokumentinhalt erfasst hat, indem Sie ihn zurückwandeln
+
+## Tipps
+
+- Wenn Sie beliebige JSON-Daten (wie API-Antworten oder Konfigurationsdateien) in eine formatierte PDF umwandeln wollen, passt das Werkzeug [Text zu PDF](./txt-to-pdf) besser. Fügen Sie das JSON als Text ein, dann wird es sauber formatiert dargestellt.
+- Die CPDF-WebAssembly-Engine muss verfügbar sein, damit dieses Werkzeug funktioniert. Selbst gehostete Instanzen benötigen die konfigurierten CPDF-WASM-Dateien.
+
+## Verwandte Werkzeuge
+
+- [Text zu PDF](./txt-to-pdf)
+- [Markdown zu PDF](./markdown-to-pdf)
+- [CSV zu PDF](./csv-to-pdf)
diff --git a/docs/de/tools/linearize-pdf.md b/docs/de/tools/linearize-pdf.md
new file mode 100644
index 00000000..c513fbf7
--- /dev/null
+++ b/docs/de/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PDF linearisieren
+description: Optimieren Sie PDF-Dateien für schnelles Anzeigen im Web mit progressivem Laden. Auch bekannt als "Fast Web View".
+---
+
+# PDF linearisieren
+
+Die Linearisierung ordnet eine PDF so um, dass die erste Seite angezeigt werden kann, bevor die gesamte Datei heruntergeladen ist. Adobe nennt das "Fast Web View". Wenn Sie PDFs auf einer Website hosten oder über ein Dokumentenportal bereitstellen, wirken sie durch die Linearisierung deutlich schneller beim Öffnen.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch.
+2. Klicken Sie auf **PDF(s) linearisieren**.
+3. Laden Sie die Ergebnisse als ZIP-Archiv mit allen linearisierten Dateien herunter.
+
+Es gibt keine Einstellungen. Das Werkzeug nutzt das Flag `--linearize` von QPDF, das die interne Struktur der PDF umordnet, ohne den sichtbaren Inhalt zu verändern.
+
+## Was die Linearisierung bewirkt
+
+- Ordnet PDF-Objekte so um, dass die Daten der ersten Seite am Anfang der Datei stehen
+- Fügt ein Linearisierungswörterbuch und Hinweistabellen hinzu, damit Viewer wissen, wo sich jede Seite befindet
+- Ermöglicht Byte-Range-Anfragen: Ein Browser kann nur die erste Seite abrufen, ohne die ganze Datei herunterzuladen
+- Bereinigt die Querverweistabelle für effizienten wahlfreien Zugriff
+
+## Funktionen
+
+- Stapelverarbeitung mehrerer PDFs in einem Vorgang
+- Die Ausgabe erhält alle Inhalte, Schriften, Bilder und interaktiven Elemente
+- Nutzt QPDF (WebAssembly) für zuverlässige, standardkonforme Linearisierung
+- Die Ergebnisse werden für einen einfachen Download in ein ZIP gepackt
+
+## Anwendungsfälle
+
+- PDF-Berichte auf einer Website hosten, wo Nutzende eine sofortige Seitenanzeige erwarten
+- PDFs in Webanwendungen mit Viewern im Browser einbetten
+- PDF-Kataloge oder Handbücher veröffentlichen, die über langsame Mobilfunkverbindungen abgerufen werden
+- Dokumente für Content Delivery Networks (CDNs) vorbereiten, die Byte-Range-Auslieferung unterstützen
+
+## Tipps
+
+- Linearisieren Sie erst, wenn alle anderen Änderungen abgeschlossen sind. Jede spätere Änderung (Zusammenführen, Seiten hinzufügen) hebt die Linearisierung auf.
+- Kombinieren Sie das Werkzeug mit PDF komprimieren für die kleinsten und am schnellsten ladenden PDFs.
+- Die Linearisierung erhöht die Dateigröße geringfügig (typischerweise unter 1 %).
+
+## Verwandte Werkzeuge
+
+- [PDF komprimieren](./compress-pdf): Dateigröße vor dem Linearisieren verringern
+- [PDF reparieren](./repair-pdf): Strukturprobleme beheben, die die Linearisierung verhindern
+- [Metadaten entfernen](./remove-metadata): Metadaten vor der Veröffentlichung im Web entfernen
diff --git a/docs/de/tools/markdown-to-pdf.md b/docs/de/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..ac3eafa3
--- /dev/null
+++ b/docs/de/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown zu PDF
+description: Schreiben Sie oder fügen Sie Markdown ein und exportieren Sie es als professionell formatierte PDF mit Live-Vorschau und Syntaxhervorhebung.
+---
+
+# Markdown zu PDF
+
+Ein voll ausgestatteter Markdown-Editor mit Live-Vorschau und PDF-Export per Klick. Schreiben Sie von Grund auf, laden Sie eine vorhandene `.md`-Datei hoch oder fügen Sie Inhalte aus der Zwischenablage ein. Der Editor rendert Ihr Markdown in Echtzeit und exportiert mit der integrierten Druck-Engine des Browsers eine gestaltete PDF.
+
+## Unterstützte Formate
+
+| Eingabe | Beschreibung |
+| :------------ | :---------------------------------------- |
+| `.md`-Dateien | Hochladen über die Schaltfläche Hochladen |
+| Direkteingabe | In den Editor tippen oder einfügen |
+
+## So funktioniert es
+
+1. Öffnen Sie das Werkzeug Markdown zu PDF. Der Editor lädt mit geteilter Ansicht: Markdown-Quelltext links, gerenderte Vorschau rechts.
+2. Schreiben Sie Ihr Markdown, fügen Sie es ein oder klicken Sie auf **Hochladen**, um eine `.md`-Datei zu laden.
+3. Wechseln Sie mit dem Design-Schieberegler in der Symbolleiste zwischen hellem und dunklem Design.
+4. Klicken Sie auf **PDF exportieren** (oder drücke `Ctrl/Cmd + S`), um über den Druckdialog des Browsers eine PDF zu erzeugen.
+
+## Funktionen
+
+Der Editor unterstützt über die Grundlagen hinaus viele Markdown-Funktionen:
+
+- **Standard-Markdown**: Überschriften, fett, kursiv, Links, Bilder, Listen, Blockzitate, horizontale Linien
+- **Codeblöcke** mit Syntaxhervorhebung für mehr als 15 Sprachen (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash und mehr)
+- **Mermaid-Diagramme**: Flussdiagramme, Sequenzdiagramme, ER-Diagramme und andere Mermaid-Diagrammtypen werden direkt in der Vorschau gerendert
+- **Tabellen** mit der Standard-Markdown-Tabellensyntax
+- **Aufgabenlisten** mit Kontrollkästchen
+- **Fußnoten**, **tiefgestellter Text**, **hochgestellter Text**
+- **Definitionslisten**, **Abkürzungen**
+- **Emoji**-Unterstützung (`:smile:` wird als Emoji dargestellt)
+- **Hervorhebungen** (`==marked text==`) und **Einfügungen** (`++inserted text++`)
+- **Automatische Verlinkung von URLs**: einfache URLs werden in anklickbare Links umgewandelt
+- Erzeugung eines **Inhaltsverzeichnisses**
+- **Anker-Links** bei Überschriften
+
+## Anwendungsfälle
+
+- Projektdokumentation schreiben und eine ansprechende PDF für Stakeholder exportieren
+- Technische Berichte mit Codebeispielen und Mermaid-Architekturdiagrammen erstellen
+- Eine GitHub-README für die Offline-Nutzung oder zum Drucken in eine PDF umwandeln
+- Ein Angebot oder eine Spezifikation mit Aufgabenlisten und Tabellen entwerfen
+- Aus Vorlesungsnotizen in Markdown ein gestaltetes Handout erzeugen
+
+## Tipps
+
+- Die PDF-Ausgabe nutzt die Funktion "Als PDF drucken" des Browsers. In Chrome können Sie Ränder und Skalierung im Druckdialog vor dem Speichern anpassen.
+- Mermaid-Diagramme werden in der Vorschau gerendert, brauchen bei der ersten Nutzung aber eventuell einen Moment zur Initialisierung.
+- Nutzen Sie `Ctrl/Cmd + S` als Tastenkürzel zum Exportieren, ohne zur Schaltfläche greifen zu müssen.
+
+## Verwandte Werkzeuge
+
+- [Text zu PDF](./txt-to-pdf)
+- [Word zu PDF](./word-to-pdf)
+- [JSON zu PDF](./json-to-pdf)
diff --git a/docs/de/tools/merge-pdf.md b/docs/de/tools/merge-pdf.md
new file mode 100644
index 00000000..975fcb35
--- /dev/null
+++ b/docs/de/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF zusammenführen
+description: Kombinieren Sie mehrere PDF-Dateien zu einem Dokument, mit Neuanordnung per Drag & Drop und Kontrolle auf Seitenebene.
+---
+
+# PDF zusammenführen
+
+Kombinieren Sie mehrere PDF-Dateien zu einem einzigen Dokument. Sie können ganze Dateien in einer bestimmten Reihenfolge zusammenführen oder in den Seitenmodus wechseln, um einzelne Seiten aus allen hochgeladenen PDFs gezielt zu steuern.
+
+## So funktioniert es
+
+1. Laden Sie zwei oder mehr PDF-Dateien hoch, indem Sie auf die Ablagezone klicken oder sie hineinziehen.
+2. Wählen Sie mit dem Umschalter oben zwischen **Dateimodus** und **Seitenmodus**.
+3. Im Dateimodus ordnen Sie die Dateien per Drag & Drop neu an und geben optional pro Datei Seitenbereiche an (z. B. `1-3, 5`). Lassen Sie den Bereich leer, um alle Seiten einzubeziehen.
+4. Im Seitenmodus ziehen Sie einzelne Seitenminiaturen per Drag & Drop, um Ihre genaue Seitenfolge aufzubauen.
+5. Klicken Sie auf **PDFs zusammenführen**, um alles zu einer Datei zu kombinieren. Die zusammengeführte PDF wird automatisch heruntergeladen.
+
+## Funktionen
+
+- Zwei Zusammenführungsmodi: Dateimodus zum schnellen Kombinieren ganzer Dateien, Seitenmodus für Kontrolle pro Seite
+- Neuanordnung per Drag & Drop in beiden Modi mit flüssigen Animationen
+- Mit der Seitenbereichssyntax (z. B. `1-3, 5, 8-10`) wählen Sie Seiten gezielt aus, ohne in den Seitenmodus zu wechseln
+- Per Lazy Loading geladene Seitenminiaturen halten die Oberfläche auch bei großen Dokumenten reaktionsfähig
+- Keine Begrenzung für Anzahl der Dateien oder Gesamtseitenzahl
+- Erhält die ursprüngliche PDF-Qualität ohne erneute Kodierung
+
+## Optionen
+
+| Option | Beschreibung |
+| ------------------ | -------------------------------------------------------------------------------------------------------- |
+| **Dateimodus** | Ganze Dateien in beliebiger Reihenfolge zusammenführen, mit optionalen Seitenbereichsfiltern pro Datei |
+| **Seitenmodus** | Visuelles Raster aller Seiten aus allen Dateien: Miniaturen ziehen, um die genaue Reihenfolge aufzubauen |
+| **Seiten-Eingabe** | Textfeld pro Datei, das Bereiche wie `1-3, 5` akzeptiert, um nur bestimmte Seiten aufzunehmen |
+
+## Anwendungsfälle
+
+- Einzelne Kapitel-PDFs zu einem Buch oder Bericht kombinieren
+- Anschreiben und Lebenslauf zu einem Bewerbungsdokument zusammenführen
+- Bestimmte Seiten aus mehreren Quelldokumenten in einer gemeinsamen Datei bündeln
+- Gescannte Belege oder Rechnungen zu einer Archiv-PDF zusammenstellen
+- Aus Folien mehrerer Präsentationen ein Handout erstellen
+
+## Tipps
+
+- Nutzen Sie den Seitenmodus, wenn Sie Seiten aus verschiedenen Dateien abwechselnd einfügen wollen, statt eine Datei an die andere anzuhängen.
+- Sie können nach dem ersten Upload mit der Schaltfläche **Weitere Dateien hinzufügen** weitere Dateien ergänzen, ohne Ihre aktuelle Anordnung zu verlieren.
+- Seitenbereiche beginnen bei 1, `1` bezeichnet also die erste Seite der jeweiligen Datei.
+
+## Verwandte Werkzeuge
+
+- [PDF teilen](./split-pdf)
+- [Organisieren & Duplizieren](./organize-pdf)
+- [Seiten abwechselnd mischen](./alternate-merge)
+- [Seiten löschen](./delete-pages)
diff --git a/docs/de/tools/mobi-to-pdf.md b/docs/de/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..304cf043
--- /dev/null
+++ b/docs/de/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI zu PDF
+description: Wandeln Sie MOBI-E-Book-Dateien direkt im Browser in PDF um. Kostenlos, privat, ohne Datei-Upload.
+---
+
+# MOBI zu PDF
+
+Wandeln Sie MOBI-E-Books von Amazon Kindle in PDF-Dokumente um. MOBI-Dateien sind an Kindle-Geräte und -Apps gebunden und lassen sich anderswo schwer lesen. Mit der Umwandlung in PDF erhalten Sie eine portable Version, die Sie auf jedem Gerät öffnen oder drucken können.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----- | :---------- | :-------------------------------- |
+| MOBI | `.mobi` | Kindle-E-Book-Format (Mobipocket) |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie eine oder mehrere MOBI-Dateien per Drag & Drop hinein.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Dateien mit dem Papierkorb-Symbol oder nutzen Sie **Weitere Dateien hinzufügen**, um zusätzliche E-Books aufzunehmen.
+3. Klicken Sie auf **In PDF umwandeln**. Die PyMuPDF-Engine liest die MOBI-Struktur ein und gibt jede Seite als PDF-Inhalt aus.
+4. Eine einzelne Datei wird als PDF heruntergeladen. Bei mehreren Dateien erhalten Sie ein ZIP-Archiv namens `mobi-converted.zip`.
+
+## Optionen
+
+Es sind keine zusätzlichen Einstellungen nötig. Die Umwandlung erhält Textinhalt, Formatierung und eingebettete Bilder der ursprünglichen MOBI-Datei.
+
+## Anwendungsfälle
+
+- Bei Kindle gekaufte Inhalte auf einem Nicht-Kindle-E-Reader lesen, der nur PDF unterstützt
+- Kapitel eines E-Books für das Lernen oder Annotieren offline ausdrucken
+- Die persönliche E-Book-Bibliothek in einem universellen Format archivieren
+- Auszüge mit jemandem teilen, der die Kindle-App nicht installiert hat
+
+## Tipps
+
+- MOBI-Dateien mit DRM-Schutz können nicht umgewandelt werden. Das Werkzeug funktioniert nur mit DRM-freien MOBI-Dateien.
+- Große E-Books mit vielen eingebetteten Bildern brauchen etwas länger, da alles im Browser abläuft.
+
+## Verwandte Werkzeuge
+
+- [EPUB zu PDF](./epub-to-pdf)
+- [FB2 zu PDF](./fb2-to-pdf)
+- [CBZ zu PDF](./cbz-to-pdf)
diff --git a/docs/de/tools/n-up-pdf.md b/docs/de/tools/n-up-pdf.md
new file mode 100644
index 00000000..cd3b387b
--- /dev/null
+++ b/docs/de/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-Up PDF
+description: Ordnen Sie mehrere PDF-Seiten in einem Raster auf einem Blatt an, für kompaktes Drucken.
+---
+
+# N-Up PDF
+
+Platzieren Sie mehrere Seiten in einer Rasteranordnung auf einem Blatt. Das verringert die Zahl der gedruckten Seiten, indem 2, 4, 6, 8, 9 oder 16 Seiten auf ein Blatt passen. Das Werkzeug übernimmt Skalierung, Positionierung und optional die Konfiguration der Seitengröße.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Wählen Sie die Anzahl der Seiten pro Blatt (den Wert "N"): 2, 4, 6, 8, 9 oder 16.
+3. Wählen Sie die Ausgabeseitengröße (Standard ist A4) und die Ausrichtung.
+4. Konfigurieren Sie optional Abstand, Rahmenfarbe und Hintergrundfarbe.
+5. Klicken Sie auf die Schaltfläche zum Verarbeiten. Das Werkzeug skaliert jede Seite und ordnet sie auf neuen Blättern an.
+
+## Funktionen
+
+- Rasterlayouts: 2-up, 4-up, 6-up, 8-up, 9-up und 16-up
+- Konfigurierbare Ausgabeseitengröße und Ausrichtung
+- Optionaler Abstand zwischen den angeordneten Seiten
+- Einstellungen für Hintergrund- und Rahmenfarbe
+- Behält das Seitenverhältnis der Originalseiten beim Einpassen bei
+
+## Optionen
+
+| Option | Beschreibung |
+| -------------------- | -------------------------------------------------------------- |
+| **Seiten pro Blatt** | Anzahl der Originalseiten pro Ausgabeseite (2, 4, 6, 8, 9, 16) |
+| **Seitengröße** | Größe des Ausgabeblatts (A4, Letter, Legal usw.) |
+| **Ausrichtung** | Hochformat oder Querformat für das Ausgabeblatt |
+| **Abstand** | Lücke in Punkt zwischen den angeordneten Seiten |
+| **Hintergrundfarbe** | Füllfarbe für den Hintergrund des Ausgabeblatts |
+| **Rahmenfarbe** | Farbe für die Rahmen um jede angeordnete Seite |
+
+## Anwendungsfälle
+
+- Handouts mit 4 Folien pro Seite drucken, um Papier zu sparen
+- Lernzettel mit mehreren Referenzseiten auf einem Blatt erstellen
+- Kompakte Dokumentarchive zum Ablegen erzeugen
+- Miniatur-Übersichtsblätter eines langen Dokuments erstellen
+
+## Tipps
+
+- Das Querformat funktioniert bei 2-up-Layouts oft besser, während Hochformat meist für 4-up und mehr am besten ist.
+- Ein größerer Abstand verbessert die Lesbarkeit, verkleinert aber die verfügbare Fläche für jede angeordnete Seite.
+- Für die umgekehrte Operation (eine Seite in mehrere aufteilen) siehe [PDF posterisieren](./posterize-pdf).
+
+## Verwandte Werkzeuge
+
+- [PDF posterisieren](./posterize-pdf)
+- [PDF-Broschüre](./pdf-booklet)
+- [Zu einer Seite kombinieren](./combine-single-page)
diff --git a/docs/de/tools/ocr-pdf.md b/docs/de/tools/ocr-pdf.md
new file mode 100644
index 00000000..133dec0d
--- /dev/null
+++ b/docs/de/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Machen Sie gescannte PDFs durchsuchbar und kopierbar mit Tesseract OCR, mit Unterstützung mehrerer Sprachen und Zeichenfilterung.
+---
+
+# OCR PDF
+
+Verwandeln Sie gescannte Dokumente in durchsuchbare, kopierbare PDFs. Das Werkzeug nutzt Tesseract OCR, um Text in Bildern zu erkennen, und legt eine unsichtbare Textebene über die Originalseiten. Das Aussehen bleibt erhalten, der Inhalt wird vollständig durchsuchbar.
+
+## So funktioniert es
+
+1. Laden Sie eine gescannte oder bildbasierte PDF-Datei hoch.
+2. Wählen Sie aus der durchsuchbaren Sprachliste eine oder mehrere Sprachen, die im Dokument vorkommen.
+3. Passen Sie optional erweiterte Einstellungen an (Auflösung, Binarisierung, Whitelist).
+4. Klicken Sie auf **OCR starten** und verfolgen Sie den Fortschritt in der Echtzeit-Fortschrittsanzeige.
+5. Prüfen Sie nach Abschluss den extrahierten Text und laden Sie dann die durchsuchbare PDF oder eine einfache `.txt`-Datei herunter.
+
+## Funktionen
+
+- OCR in mehreren Sprachen mit durchsuchbarer Sprachauswahl
+- Die unsichtbare Textebene erhält das ursprüngliche Aussehen des Dokuments
+- Echtzeit-Fortschrittsanzeige und Protokollausgabe während der Verarbeitung
+- Ergebnisse als durchsuchbare PDF oder als einfache Textdatei herunterladen
+- Extrahierten Text direkt in die Zwischenablage kopieren
+- Drei Auflösungsstufen, um Geschwindigkeit und Genauigkeit auszubalancieren
+
+## Optionen
+
+| Einstellung | Werte | Standard | Zweck |
+| ------------------------------------ | ----------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------- |
+| **Auflösung** | Standard (192 DPI), Hoch (288 DPI), Ultra (384 DPI) | Hoch | Höhere Auflösung verbessert die Genauigkeit bei kleinem Text, dauert aber länger |
+| **Bild binarisieren** | Ein / Aus | Aus | Verstärkt den Kontrast bei sauberen Scans durch Umwandlung in Schwarz-Weiß |
+| **Zeichen-Whitelist-Voreinstellung** | Keine, Alphanumerisch, Zahlen + Währung, Nur Buchstaben, Nur Zahlen, Rechnung, Formulare, Benutzerdefiniert | Keine | Beschränkt die erkannten Zeichen, um die Genauigkeit für bestimmte Dokumenttypen zu verbessern |
+| **Zeichen-Whitelist** | Freitext | Leer | Manueller Zeichensatz, wenn die Voreinstellung auf Benutzerdefiniert steht |
+
+## Anwendungsfälle
+
+- Gescannte Verträge und Rechnungen durchsuchbar machen, damit Sie sie mit Strg+F durchsuchen können
+- Text aus fotografierten Dokumenten oder alten Papierunterlagen extrahieren
+- Belege mit der Voreinstellung Rechnung verarbeiten, um Beträge und Daten genau zu erfassen
+- Barrierefreie PDFs aus reinen Bild-Scans für Compliance-Anforderungen erstellen
+- Textinhalte aus gescannten Büchern oder Handbüchern im Stapel extrahieren
+
+## Tipps
+
+- Wählen Sie mehrere Sprachen, wenn Ihr Dokument gemischtsprachige Inhalte enthält (z. B. englische Überschriften mit japanischem Fließtext).
+- Nutzen Sie die Binarisierung bei Dokumenten mit verblasstem oder kontrastarmem Text. Sie kann die Erkennungsgenauigkeit deutlich verbessern.
+- Die Whitelist-Voreinstellungen Rechnung und Formulare verringern Fehlerkennungen bei strukturierten Dokumenten stark, indem sie irrelevante Zeichenformen ignorieren.
+
+## Verwandte Werkzeuge
+
+- [PDF-Tabellen extrahieren](./extract-tables)
+- [PDF zusammenführen](./merge-pdf)
+- [PDF komprimieren](./compress-pdf)
diff --git a/docs/de/tools/odg-to-pdf.md b/docs/de/tools/odg-to-pdf.md
new file mode 100644
index 00000000..0b243d4b
--- /dev/null
+++ b/docs/de/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG zu PDF
+description: Wandeln Sie LibreOffice-Draw-Dateien (ODG) im Browser in PDF um. Kostenlos, ohne Upload, vollständig privat.
+---
+
+# ODG zu PDF
+
+Wandeln Sie OpenDocument-Graphics-Dateien in PDF um. ODG ist das native Format von LibreOffice Draw und wird für Diagramme, Flussdiagramme und Vektorillustrationen verwendet. Als PDF lassen sich diese Zeichnungen leicht teilen, drucken und in andere Dokumente einbetten.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :-------------------- | :---------- | :------------------------------------------ |
+| OpenDocument Graphics | `.odg` | LibreOffice-Draw- / OpenOffice-Draw-Dateien |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre ODG-Dateien per Drag & Drop hinein. Mehrere Dateien können auf einmal hinzugefügt werden.
+2. Prüfen Sie die Dateiliste. Entfernen Sie einzelne Einträge mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um weitere Zeichnungen aufzunehmen.
+3. Klicken Sie auf **In PDF umwandeln**. Eine LibreOffice-basierte Engine wird im Browser geladen und wandelt jede ODG-Datei um, wobei Vektorgrafiken, Formen und Text erhalten bleiben.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien ergeben ein ZIP-Archiv namens `odg-to-pdf.zip`.
+
+## Optionen
+
+Es sind keine zusätzlichen Einstellungen erforderlich. Die Umwandlung erhält Seitenmaße, Formen, Verbinder und Textfelder der ODG-Quelle.
+
+## Anwendungsfälle
+
+- LibreOffice-Draw-Diagramme mit Kunden teilen, die LibreOffice nicht installiert haben
+- In Draw erstellte Flussdiagramme und Netzwerkdiagramme drucken
+- ODG-Illustrationen als eingebettete PDFs in einen Bericht oder eine Präsentation aufnehmen
+- Technische Zeichnungen in einem Format archivieren, das jahrzehntelang lesbar bleibt
+
+## Tipps
+
+- Vektorelemente bleiben in der PDF-Ausgabe Vektoren, das Ergebnis lässt sich daher für jede Druckgröße sauber skalieren.
+- Die LibreOffice-Engine braucht bei der ersten Nutzung einen Moment zur Initialisierung. Danach sind Umwandlungen in derselben Sitzung schneller.
+
+## Verwandte Werkzeuge
+
+- [ODS zu PDF](./ods-to-pdf)
+- [ODP zu PDF](./odp-to-pdf)
+- [VSD zu PDF](./vsd-to-pdf)
diff --git a/docs/de/tools/odp-to-pdf.md b/docs/de/tools/odp-to-pdf.md
new file mode 100644
index 00000000..063dbc3f
--- /dev/null
+++ b/docs/de/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP zu PDF
+description: Wandeln Sie LibreOffice-Impress-Präsentationen (ODP) im Browser in PDF um. Kostenlos, privat, ohne Upload.
+---
+
+# ODP zu PDF
+
+Wandeln Sie OpenDocument-Presentation-Dateien in PDF um. ODP ist das native Format von LibreOffice Impress und ein Standardexport aus Google Slides. Als PDF kann jeder Präsentationen ohne Präsentationssoftware ansehen, und die Folien lassen sich sauber drucken.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :------------------------ | :---------- | :----------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / Google-Slides-Export |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre ODP-Dateien per Drag & Drop hinein. Sie können mehrere Präsentationen auf einmal auswählen.
+2. Prüfen Sie die Dateiliste. Entfernen Sie Einträge mit dem Papierkorb-Symbol oder nutzen Sie **Weitere Dateien hinzufügen**, um weitere Präsentationen aufzunehmen.
+3. Klicken Sie auf **In PDF umwandeln**. Die LibreOffice-basierte Engine verarbeitet jede Präsentation und erzeugt eine PDF, in der jede Folie zu einer Seite wird.
+4. Eine einzelne Datei wird als PDF heruntergeladen. Mehrere Dateien werden in einem ZIP-Archiv namens `odp-to-pdf.zip` geliefert.
+
+## Optionen
+
+Es gibt nichts zu konfigurieren. Jede Folie wird in ihren ursprünglichen Maßen gerendert, mit Text, Bildern, Formen und Folienhintergründen.
+
+## Anwendungsfälle
+
+- Eine Präsentation als Handout-PDF an das Publikum verteilen
+- Google-Slides-Exporte mit Personen teilen, die PDF gegenüber ODP bevorzugen
+- Konferenzvorträge und Vorlesungen in einem schreibgeschützten Format archivieren
+- Foliensätze für Präsenz-Workshops drucken
+
+## Tipps
+
+- Folienübergänge und Animationen sind rein visuelle Funktionen, die nicht in die PDF übernommen werden, aber alle statischen Inhalte werden korrekt dargestellt.
+- Sprechernotizen sind nicht in der PDF-Ausgabe enthalten. Wenn Sie Notizen brauchen, exportieren Sie sie separat aus Ihrer Präsentationssoftware.
+- Wie die anderen LibreOffice-basierten Werkzeuge wird die Engine bei der ersten Nutzung geladen und für die Sitzung zwischengespeichert.
+
+## Verwandte Werkzeuge
+
+- [ODG zu PDF](./odg-to-pdf)
+- [ODS zu PDF](./ods-to-pdf)
+- [PUB zu PDF](./pub-to-pdf)
diff --git a/docs/de/tools/ods-to-pdf.md b/docs/de/tools/ods-to-pdf.md
new file mode 100644
index 00000000..ff860a98
--- /dev/null
+++ b/docs/de/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS zu PDF
+description: Wandeln Sie LibreOffice-Calc-Tabellen (ODS) direkt im Browser in PDF um. Kostenlos, privat, ohne Anmeldung.
+---
+
+# ODS zu PDF
+
+Wandeln Sie OpenDocument-Tabellen in PDF um. ODS ist das native Format von LibreOffice Calc und ein häufiger Export aus Google Sheets. Dieses Werkzeug rendert Ihre Tabellendaten, Formatierungen und Diagramme in ein seitenweise aufgeteiltes PDF, das Sie drucken oder teilen können.
+
+## Unterstützte Formate
+
+| Format | Endung | Hinweise |
+| :----------------------- | :----- | :------------------------------------------ |
+| OpenDocument Spreadsheet | `.ods` | Export aus LibreOffice Calc / Google Sheets |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre ODS-Dateien per Drag-and-drop hinein. Mehrere Dateien werden unterstützt.
+2. Prüfen Sie die Dateiliste. Mit dem Papierkorb-Symbol entfernen Sie Dateien, mit **Weitere Dateien hinzufügen** erweitern Sie den Stapel.
+3. Klicken Sie auf **In PDF umwandeln**. Die auf LibreOffice basierende Engine wird im Browser geladen und rendert jede Tabelle in PDF-Seiten.
+4. Eine einzelne Tabelle wird als PDF heruntergeladen. Mehrere Dateien werden in `ods-to-pdf.zip` gepackt.
+
+## Optionen
+
+Es ist keine Konfiguration nötig. Der Konverter übernimmt das vorhandene Drucklayout, die Zellformatierung und die Spaltenbreiten der Tabelle in die PDF-Ausgabe.
+
+## Anwendungsfälle
+
+- Ein Budget oder einen Bericht aus LibreOffice Calc mit jemandem teilen, der nur PDFs akzeptiert
+- Einen als ODS heruntergeladenen Google-Sheets-Export drucken
+- Finanzunterlagen in einem nicht bearbeitbaren Format archivieren
+- ODS-basierte Formulare oder Stundenzettel als Dokumente mit festem Layout einreichen
+
+## Tipps
+
+- Wenn Ihre Tabelle mehrere Blätter hat, werden alle Blätter in die PDF-Ausgabe übernommen.
+- Sehr breite Tabellen können horizontal über mehrere PDF-Seiten laufen. Passen Sie die Spaltenbreiten in der Quelldatei vor der Umwandlung an, wenn das Layout wichtig ist.
+- Die LibreOffice-Engine wird bei der ersten Nutzung initialisiert. Weitere Umwandlungen in derselben Sitzung sind schneller.
+
+## Verwandte Werkzeuge
+
+- [ODG zu PDF](./odg-to-pdf)
+- [ODP zu PDF](./odp-to-pdf)
+- [XML zu PDF](./xml-to-pdf)
diff --git a/docs/de/tools/odt-to-pdf.md b/docs/de/tools/odt-to-pdf.md
new file mode 100644
index 00000000..b3c1b851
--- /dev/null
+++ b/docs/de/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT zu PDF
+description: Wandeln Sie OpenDocument-Text-Dateien (ODT) im Browser mit einer auf LibreOffice basierenden Engine in PDF um.
+---
+
+# ODT zu PDF
+
+Wandeln Sie OpenDocument-Text-Dateien in PDF um. ODT ist das native Format von LibreOffice Writer, Apache OpenOffice und anderen Open-Source-Textverarbeitungen. Dieses Werkzeug nutzt eine browserbasierte LibreOffice-Engine für genaue Umwandlungen, die Formatierung, Tabellen, Bilder und Formatvorlagen erhalten.
+
+## Unterstützte Formate
+
+| Format | Endungen |
+| :---------------- | :------- |
+| OpenDocument Text | `.odt` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie eine oder mehrere ODT-Dateien per Drag-and-drop hinein.
+2. Prüfen Sie die Dateiliste. Fügen Sie weitere Dateien hinzu oder entfernen Sie unerwünschte.
+3. Klicken Sie auf **In PDF umwandeln**. Die LibreOffice-Engine wird initialisiert (eine Fortschrittsanzeige zeigt den Ladestatus), danach wird jede Datei umgewandelt.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in `odt-converted.zip` gepackt.
+
+## Optionen
+
+Dieses Werkzeug hat keine zusätzliche Konfiguration. Die Umwandlung erhält die Formatierung des Originaldokuments so genau wie möglich.
+
+## Ausgabe
+
+| Anzahl Eingaben | Ausgabe |
+| :-------------- | :------------------------------------------------------- |
+| 1 Datei | Einzelner PDF-Download (z. B. `document.pdf`) |
+| 2+ Dateien | ZIP-Archiv (`odt-converted.zip`) mit einem PDF pro Datei |
+
+## Anwendungsfälle
+
+- LibreOffice-Writer-Dokumente in PDF umwandeln, um sie mit Microsoft-Office-Nutzern zu teilen
+- Druckfertige PDFs aus wissenschaftlichen Arbeiten im OpenDocument-Format erzeugen
+- Einen Ordner mit ODT-Vorlagen als Stapel in PDFs für die Verteilung umwandeln
+- PDFs aus ODT-Dateien erzeugen, die von automatisierten Dokumentensystemen erstellt wurden
+
+## Tipps
+
+- Die LibreOffice-Engine wird bei der ersten Nutzung geladen und für weitere Umwandlungen zwischengespeichert. Das erste Laden dauert einige Sekunden, danach geht es schnell.
+- Komplexe Dokumente mit eingebetteten OLE-Objekten oder ungewöhnlichen Schriften werden möglicherweise etwas anders dargestellt als in LibreOffice auf dem Desktop. Testen Sie mit einer Probe, bevor Sie einen Stapel umwandeln.
+- Für Word-Dokumente (`.doc`, `.docx`) nutzen Sie stattdessen das Werkzeug [Word zu PDF](./word-to-pdf), das ebenfalls die LibreOffice-Engine verwendet, aber Microsoft-Formate direkt akzeptiert.
+
+## Verwandte Werkzeuge
+
+- [Word zu PDF](./word-to-pdf)
+- [RTF zu PDF](./rtf-to-pdf)
+- [Text zu PDF](./txt-to-pdf)
diff --git a/docs/de/tools/organize-pdf.md b/docs/de/tools/organize-pdf.md
new file mode 100644
index 00000000..788ae4ba
--- /dev/null
+++ b/docs/de/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplizieren & Organisieren
+description: Ordnen Sie PDF-Seiten neu an, duplizieren Sie und löschen Sie sie per Drag-and-drop mit Vorschaubildern oder einer eigenen Seitenreihenfolge.
+---
+
+# Duplizieren & Organisieren
+
+Ordnen Sie Seiten eines PDFs neu an, duplizieren Sie oder entfernen Sie sie mit einer visuellen Drag-and-drop-Oberfläche. Jede Seite erscheint als Vorschaubild, das Sie verschieben, klonen oder löschen können, bevor Sie das Ergebnis als neue Datei speichern.
+
+## So funktioniert es
+
+1. Laden Sie eine einzelne PDF-Datei hoch.
+2. Das Werkzeug zeigt ein Raster mit Vorschaubildern aller Seiten.
+3. Ziehen Sie Vorschaubilder, um Seiten neu anzuordnen, klicken Sie auf die grüne Duplizieren-Schaltfläche, um eine Seite zu klonen, oder auf die rote Löschen-Schaltfläche, um sie zu entfernen.
+4. Alternativ geben Sie im Textfeld eine eigene Seitenreihenfolge ein (z. B. `3, 1, 2, 4`) und klicken Sie auf **Anwenden**, um alle Seiten auf einmal neu anzuordnen.
+5. Klicken Sie auf die Schaltfläche zum Verarbeiten, um das neu organisierte PDF zu erstellen und herunterzuladen.
+
+## Funktionen
+
+- Neuanordnung der Seiten per Drag-and-drop mit animierten Übergängen
+- Duplizieren- und Löschen-Schaltflächen pro Seite
+- Eingabe einer eigenen Seitenreihenfolge für präzises Umordnen
+- Seitenzahlen, die sich nach jeder Änderung automatisch aktualisieren
+- Verhindert das Löschen der letzten verbleibenden Seite
+
+## Anwendungsfälle
+
+- Eine falsch eingeordnete Seite in einem Bericht an die richtige Stelle verschieben
+- Eine Formularseite duplizieren, um mehrere leere Kopien in einer Datei zu haben
+- Entwurfs- oder Platzhalterseiten entfernen, bevor ein Dokument verteilt wird
+- Die Seitenreihenfolge für die Druckvorbereitung umkehren oder mischen
+- Eine eigene Seitenfolge erstellen, ohne einzelne Dateien erneut zusammenzuführen
+
+## Tipps
+
+- Das Feld für die eigene Seitenreihenfolge erwartet durch Kommas getrennte ursprüngliche Seitenzahlen. Jede Seite muss genau einmal vorkommen, ohne Auslassungen oder Duplikate.
+- Nach dem Duplizieren einer Seite verweisen beide Kopien auf denselben ursprünglichen Seitenindex. Beide Kopien lassen sich unabhängig voneinander verschieben.
+- Für Massenoperationen über mehrere Dateien oder komplexere Abläufe nehmen Sie besser das [PDF-Multitool](./pdf-multi-tool).
+
+## Verwandte Werkzeuge
+
+- [PDF zusammenführen](./merge-pdf)
+- [Seiten löschen](./delete-pages)
+- [PDF-Multitool](./pdf-multi-tool)
+- [Seiten umkehren](./reverse-pages)
diff --git a/docs/de/tools/page-dimensions.md b/docs/de/tools/page-dimensions.md
new file mode 100644
index 00000000..c5208bab
--- /dev/null
+++ b/docs/de/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Seitenmaße
+description: Analysieren Sie PDF-Seitengrößen, Ausrichtungen, Seitenverhältnisse und Drehung. Erkennen Sie Dokumente mit gemischten Größen und exportieren Sie die Daten als CSV.
+---
+
+# Seitenmaße
+
+Ein Diagnosewerkzeug, das jede Seite Ihres PDFs liest und die genauen Maße, Ausrichtung, Standardformat, Seitenverhältnis, Fläche und Drehung angibt. Nützlich, um gemischte Seitengrößen vor dem Drucken zu entdecken oder die Eigenschaften eines erhaltenen PDFs zu dokumentieren.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Die Analyse startet automatisch, Sie müssen keine Schaltfläche drücken.
+2. Ein Übersichtsbereich zeigt die Gesamtzahl der Seiten, die Anzahl verschiedener Seitengrößen und ob das Dokument gemischte Größen enthält.
+3. Durchsuchen Sie die vollständige Ergebnistabelle mit Details pro Seite.
+4. Wechseln Sie die Anzeigeeinheit zwischen Punkt, Zoll, Millimeter oder Pixel.
+5. Klicken Sie auf **Als CSV exportieren**, um die Daten zu speichern.
+
+## Angegebene Felder
+
+| Spalte | Beschreibung |
+| ---------------- | --------------------------------------------------------- |
+| Seite Nr. | Fortlaufende Seitenzahl |
+| Maße | Breite x Höhe in der gewählten Einheit |
+| Standardformat | Erkannter Name (A4, Letter usw.) oder "Benutzerdefiniert" |
+| Ausrichtung | Hochformat oder Querformat |
+| Seitenverhältnis | Verhältnis von Breite zu Höhe als Dezimalzahl |
+| Fläche | Seitenfläche in der gewählten Einheit zum Quadrat |
+| Drehung | Seitendrehung in Grad |
+
+## Funktionen
+
+- Automatische Erkennung von Standardpapierformaten (A3, A4, A5, Letter, Legal, Tabloid und mehr)
+- Warnung bei Dokumenten mit gemischten Größen, mit einer Aufschlüsselung, welche Größen vorkommen und wie viele Seiten sie nutzen
+- Einheitenumrechnung zwischen Punkt, Zoll, Millimeter und Pixel (bei 96 PPI)
+- CSV-Export für Tabellenkalkulationen oder Dokumentationssysteme
+
+## Anwendungsfälle
+
+- Prüfen, ob alle Seiten A4 sind, bevor ein Dokument an eine Druckerei geht
+- Herausfinden, warum ein zusammengeführtes PDF auf bestimmten Seiten mit unerwarteten Rändern gedruckt wird
+- Das Seitenlayout eines großen PDF-Archivs für Metadaten dokumentieren
+- Gedrehte Seiten erkennen, die korrigiert werden müssen
+
+## Tipps
+
+- Wenn die Übersicht "Gemischte Größen" anzeigt, nutzen Sie das Werkzeug Seitengröße reparieren, um sie vor dem Drucken zu vereinheitlichen.
+- Das Drehungsfeld hilft, Seiten zu finden, die korrekt angezeigt werden, aber ein Drehungsattribut ungleich null haben, was in manchen Abläufen Probleme verursachen kann.
+
+## Verwandte Werkzeuge
+
+- [Seitengröße reparieren](./fix-page-size): Seiten vereinheitlichen, nachdem gemischte Größen erkannt wurden
+- [PDF komprimieren](./compress-pdf): das PDF optimieren, nachdem Seitenprobleme behoben wurden
+- [PDF drehen](./rotate-pdf): gedrehte Seiten korrigieren
diff --git a/docs/de/tools/page-numbers.md b/docs/de/tools/page-numbers.md
new file mode 100644
index 00000000..6fb30737
--- /dev/null
+++ b/docs/de/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Seitenzahlen
+description: Fügen Sie an beliebiger Position Ihrer PDF-Seiten anpassbare Seitenzahlen mit einstellbarer Schrift, Größe und Farbe hinzu.
+---
+
+# Seitenzahlen
+
+Fügen Sie jeder Seite Ihres PDFs sichtbare Seitenzahlen hinzu. Sie wählen Position, Format, Schriftgröße und Farbe, den Rest erledigt das Werkzeug.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Stellen Sie im erscheinenden Optionsbereich die Seitenzahlen ein.
+3. Klicken Sie zum Verarbeiten auf **Seitenzahlen hinzufügen**.
+4. Das nummerierte PDF wird automatisch heruntergeladen.
+
+## Optionen
+
+- **Position**: Wähle, wo die Seitenzahlen erscheinen: Unten mittig, Unten links, Unten rechts, Oben mittig, Oben links oder Oben rechts.
+- **Format**: Wählen Sie zwischen einfacher Nummerierung (1, 2, 3...) oder dem Format "Seite X von Y" (1 / 5, 2 / 5...).
+- **Schriftgröße**: Legen Sie die Größe des Seitenzahltexts fest. Standard ist 12.
+- **Farbe**: Wählen Sie mit dem Farbwähler eine beliebige Farbe für den Seitenzahltext.
+
+## Funktionen
+
+- Sechs Positionen, die alle Ecken und die mittleren Positionen abdecken
+- Zwei Nummerierungsformate: einfach fortlaufend oder "Seite X von Y"
+- Anpassbare Schriftgröße von 6 bis 72 Punkt
+- Vollständiger Farbwähler für die Textfarbe
+- Automatische Randbehandlung, die Zahlen unabhängig von der Seitengröße in sicheren Bereichen hält
+
+## Anwendungsfälle
+
+- Dokumente für den Druck vorbereiten, die sichtbare Seitenverweise brauchen
+- Seitenzahlen zu einem aus mehreren Quelldateien zusammengeführten PDF hinzufügen
+- Handouts von Präsentationen vor der Verteilung nummerieren
+- Rechtsdokumente oder Verträge fortlaufend nummerieren
+
+## Tipps
+
+- Das Format "Seite X von Y" ist hilfreich bei Dokumenten, bei denen Leser die Gesamtlänge kennen sollen, etwa Angebote oder Berichte.
+- Wenn Sie für verschiedene Abschnitte unterschiedliche Nummerierungsstile brauchen (etwa römische Ziffern für den Vorspann), nutzen Sie stattdessen das Werkzeug [Seitenbeschriftungen hinzufügen](./add-page-labels).
+
+## Verwandte Werkzeuge
+
+- [Seitenbeschriftungen hinzufügen](./add-page-labels)
+- [Bates-Nummerierung](./bates-numbering)
+- [Kopf- & Fußzeile](./header-footer)
diff --git a/docs/de/tools/pdf-booklet.md b/docs/de/tools/pdf-booklet.md
new file mode 100644
index 00000000..dec5c167
--- /dev/null
+++ b/docs/de/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: PDF-Broschüre
+description: Ordnen Sie PDF-Seiten in Broschürenreihenfolge (Rückenstichheftung) an, um sie zu einer gedruckten Broschüre zu falzen und zu heften.
+---
+
+# PDF-Broschüre
+
+Ordnen Sie die Seiten eines PDFs in der Reihenfolge einer Broschüren-Ausschießung an. Beidseitig gedruckt und in der Mitte gefalzt, ergeben die Seiten die richtige Lesereihenfolge. Dies ist das Layout für rückengeheftete Broschüren und Zines.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Stellen Sie die Broschüreneinstellungen ein: Ausgabeseitengröße und Ausrichtung.
+3. Klicken Sie auf **Vorschau erstellen**, um zu sehen, wie die Seiten auf jedem Bogen angeordnet werden.
+4. Prüfen Sie die Vorschau, die jeden physischen Bogen mit der Zuordnung von Vorder- und Rückseite zeigt.
+5. Klicken Sie auf **Herunterladen**, um das ausgeschossene Broschüren-PDF zu speichern.
+
+## Funktionen
+
+- Automatische Seitenumordnung für die Rückenstichheftung
+- Einstellbare Ausgabeseitengröße
+- Visuelle Vorschau des Broschürenlayouts vor dem Herunterladen
+- Verarbeitet ungerade Seitenzahlen, indem bei Bedarf Leerseiten eingefügt werden
+- Skaliert die Quellseiten passend zur Bogengröße der Broschüre
+
+## Anwendungsfälle
+
+- Druckbare Broschüren oder Zines aus einem normalen PDF erstellen
+- Konferenzprogramme oder Veranstaltungsführer für den Druck im eigenen Haus vorbereiten
+- Gefalzte Grußkarten oder kleine Kataloge herstellen
+- Heftchen oder Gedichtsammlungen zum Binden von Hand erstellen
+
+## Tipps
+
+- Die Seitenzahl Ihres Quell-PDFs sollte für eine saubere Broschüre idealerweise ein Vielfaches von 4 sein. Ist sie es nicht, werden automatisch Leerseiten ergänzt, um den letzten Bogen aufzufüllen.
+- Drucken Sie die Ausgabe beidseitig mit der Druckereinstellung "Wenden an der kurzen Kante", falzen Sie dann alle Bögen zusammen und heften Sie sie am Rücken.
+- Um nur mehrere Seiten auf einem Bogen ohne Broschürenreihenfolge zu platzieren, nutzen Sie stattdessen [N-Up PDF](./n-up-pdf).
+
+## Verwandte Werkzeuge
+
+- [N-Up PDF](./n-up-pdf)
+- [PDF drehen](./rotate-pdf)
+- [Leere Seite hinzufügen](./add-blank-page)
diff --git a/docs/de/tools/pdf-layers.md b/docs/de/tools/pdf-layers.md
new file mode 100644
index 00000000..aa406d5f
--- /dev/null
+++ b/docs/de/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: PDF-OCG-Ebenen
+description: Zeigen Sie Ebenen (Optional Content Groups, OCG) in einem PDF-Dokument an, schalten Sie sie um, fügen Sie sie hinzu und löschen Sie sie.
+---
+
+# PDF-OCG-Ebenen
+
+Verwalten Sie die Optional Content Groups (OCG), im Alltag meist "Ebenen" genannt, in einem PDF. Sie können die Sichtbarkeit von Ebenen umschalten, neue Ebenen hinzufügen (auch verschachtelte untergeordnete Ebenen), Ebenen löschen und das geänderte PDF speichern.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Klicken Sie auf die Schaltfläche zum Verarbeiten, um das Dokument mit der PyMuPDF-Engine zu laden.
+3. Das Werkzeug zeigt alle vorhandenen Ebenen mit Sichtbarkeitsstatus, Sperrstatus und Verschachtelungshierarchie.
+4. Schalten Sie mit den Kontrollkästchen Ebenen ein oder aus. Gesperrte Ebenen lassen sich nicht umschalten.
+5. Fügen Sie neue Ebenen oberster Ebene hinzu, indem Sie einen Namen eingeben und auf die Hinzufügen-Schaltfläche klicken, oder fügen Sie untergeordnete Ebenen unter einer bestehenden übergeordneten hinzu.
+6. Löschen Sie Ebenen, die Sie nicht mehr brauchen.
+7. Klicken Sie auf **Speichern**, um das geänderte PDF mit Ihren Ebenenänderungen herunterzuladen.
+
+## Funktionen
+
+- Zeigt die Ebenenhierarchie mit passender Einrückung für verschachtelte Ebenen
+- Sichtbarkeit von Ebenen ein- oder ausschalten
+- Anzeige gesperrter Ebenen verhindert versehentliche Änderungen
+- Ebenen oberster Ebene oder untergeordnete Ebenen mit eigenen Namen hinzufügen
+- Einzelne Ebenen löschen
+- Speichert alle Änderungen in einer neuen PDF-Datei
+
+## Anwendungsfälle
+
+- Die Sichtbarkeit von Markup-Ebenen in Architektur- oder Konstruktionszeichnungen umschalten
+- Neue Anmerkungsebenen zu einem Designdokument mit mehreren Ebenen hinzufügen
+- Veraltete Ebenen aus einer Vorlage entfernen, bevor sie verteilt wird
+- Prüfen, welche Ebenen in einem komplexen PDF von Dritten vorhanden sind
+
+## Tipps
+
+- Hat das PDF keine Ebenen, zeigt das Werkzeug einen leeren Zustand mit der Aufforderung, eine hinzuzufügen. Nicht alle PDFs verwenden OCG-Ebenen, sie sind am häufigsten bei CAD-Exporten und Designdateien.
+- Untergeordnete Ebenen werden unter ihrer übergeordneten Ebene eingerückt dargestellt. Sie können Ebenen beliebig tief verschachteln.
+- Gesperrte Ebenen werden mit einem Schloss-Symbol angezeigt, ihre Kontrollkästchen sind deaktiviert. Diese Sperren setzt der Ersteller des PDFs.
+
+## Verwandte Werkzeuge
+
+- [Metadaten anzeigen](./view-metadata)
+- [Metadaten bearbeiten](./edit-metadata)
+- [Duplizieren & Organisieren](./organize-pdf)
diff --git a/docs/de/tools/pdf-multi-tool.md b/docs/de/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..ae77d1e4
--- /dev/null
+++ b/docs/de/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: PDF-Multitool
+description: Ein Allround-Seitenorganizer zum Zusammenführen, Teilen, Drehen, Duplizieren, Löschen, Neuordnen und Anpassen der Größe von PDF-Seiten.
+---
+
+# PDF-Multitool
+
+Ein einheitlicher Arbeitsbereich für jede PDF-Operation auf Seitenebene. Laden Sie ein oder mehrere PDFs hoch und bearbeiten Sie alle Seiten in einem einzigen visuellen Raster. Drehen Sie Seiten, ordnen Sie sie neu an, duplizieren oder löschen Sie sie, fügen Sie PDFs, Bilder und leere Seiten ein, vergeben Sie neue Seitennummern, ändern Sie die Seitengröße und teilen Sie das Ergebnis, alles ohne das Werkzeug zu verlassen.
+
+## So funktioniert es
+
+1. Klicken Sie auf **Dateien auswählen** oder ziehen Sie Dateien auf den Upload-Bereich. Mehrere Dateien werden unterstützt und in der Reihenfolge des Hochladens zusammengeführt.
+2. Alle Seiten erscheinen mit Vorschaubildern in einem scrollbaren Raster.
+3. Klicken Sie auf eine Seite, um sie auszuwählen. Mit Shift-Klick wählen Sie einen Bereich aus, mit Cmd/Ctrl-Klick fügen Sie einzelne Seiten zur Auswahl hinzu oder entfernen sie daraus.
+4. Nutzen Sie die Werkzeugleiste des Organizers oder klicken Sie mit der rechten Maustaste auf eine Seite, um die Seitenaktionen aufzurufen.
+5. Klicken Sie auf **PDF exportieren**, um das Endergebnis herunterzuladen.
+
+## Funktionen
+
+- **Zusammenführen**: Laden Sie mehrere PDFs und Bilder hoch, sie werden automatisch zu einem Dokument vereint
+- **Neu anordnen**: Ordnen Sie Seiten per Drag-and-drop neu an oder kehren Sie die Reihenfolge des gesamten Dokuments um
+- **Drehen**: Drehen Sie ausgewählte Seiten in 90-Grad-Schritten nach links oder rechts
+- **Duplizieren**: Kopieren Sie ausgewählte Seiten und fügen Sie die Kopien direkt dahinter ein
+- **Löschen**: Entfernen Sie die ausgewählten Seiten
+- **Einfügen**: Fügen Sie Seiten aus einem anderen PDF oder Bild, eine leere Seite oder Seiten aus der Zwischenablage ein, oder mischen Sie die Seiten eines zweiten PDFs abwechselnd mit den vorhandenen
+- **Ersetzen**: Tauschen Sie eine Seite gegen die erste Seite eines anderen PDFs aus
+- **Ausschneiden, Kopieren und Einfügen**: Verschieben oder kopieren Sie Seiten innerhalb des Dokuments
+- **Extrahieren**: Laden Sie die ausgewählten Seiten als PDF oder als Bilder herunter
+- **Seitenzahlen**: Legen Sie für einen Seitenbereich Seitenbeschriftungen wie i, ii, iii oder A-1, A-2 fest
+- **Seitengröße**: Passen Sie Seiten an ein Standardpapierformat oder eine benutzerdefinierte Größe an
+- **Teilen**: Teilen Sie das Dokument nach Seitenbereichen, ungeraden und geraden Seiten, jeder einzelnen Seite, Lesezeichen, jeweils N Seiten oder Dateigröße
+- **Rückgängig / Wiederholen**: Jede Seitenoperation lässt sich rückgängig machen und wiederholen
+- Repariert beschädigte PDFs automatisch vor dem Laden
+
+## Tastenkürzel
+
+| Aktion | Tastenkürzel |
+| -------------------------------- | ----------------------------- |
+| Nach rechts / links drehen | R / Shift+R |
+| Alles auswählen | Cmd/Ctrl+A |
+| Ausschneiden, Kopieren, Einfügen | Cmd/Ctrl+X, C, V |
+| Duplizieren | Cmd/Ctrl+D |
+| Löschen | Entf oder Rücktaste |
+| Rückgängig / Wiederholen | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Auswahl verschieben | Pfeiltasten, Home, End |
+
+## Anwendungsfälle
+
+- Ein eigenes Dokument aus Seiten mehrerer Quell-PDFs zusammenstellen
+- Ein gescanntes Dokument bereinigen, indem Sie leere Seiten löschen, seitlich gescannte Seiten drehen und Abschnitte neu ordnen
+- Ein großes PDF anhand seiner Lesezeichen an Kapitelgrenzen teilen
+- Schnelle Bearbeitung auf Seitenebene ohne vollständigen PDF-Editor
+
+## Tipps
+
+- Der Verlauf für Rückgängig/Wiederholen erfasst jede Seitenoperation. Nutzen Sie ihn ruhig, Sie können Ihre Arbeit nicht versehentlich zerstören.
+- Mit **Insert > From File** können Sie jederzeit weitere PDFs oder Bilder zum Dokument hinzufügen, oder Sie ziehen sie einfach auf das Seitenraster.
+- Für einfaches Zusammenführen oder Teilen sind die eigenen Werkzeuge [PDF zusammenführen](./merge-pdf) oder [PDF teilen](./split-pdf) möglicherweise schneller. Das Multitool zeigt seine Stärke, wenn Sie in einer Sitzung mehrere Operationen brauchen.
+
+## Verwandte Werkzeuge
+
+- [PDF zusammenführen](./merge-pdf)
+- [PDF teilen](./split-pdf)
+- [Duplizieren & Organisieren](./organize-pdf)
+- [PDF drehen](./rotate-pdf)
diff --git a/docs/de/tools/pdf-to-bmp.md b/docs/de/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..f304106d
--- /dev/null
+++ b/docs/de/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF zu BMP
+description: Wandeln Sie PDF-Seiten in unkomprimierte BMP-Bilder um. Nützlich für Altsysteme und Druck-Workflows, die Bitmap-Eingaben erfordern.
+---
+
+# PDF zu BMP
+
+Wandelt jede Seite eines PDFs in ein BMP-Bild (Bitmap) um. BMP ist ein unkomprimiertes Format, daher ist die Ausgabe pixelgenau und ohne Qualitätsverlust, die Dateien sind aber groß.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Klicken Sie auf **Umwandeln**, um die Datei zu verarbeiten.
+3. Eine einzelne `.bmp`-Datei oder ein ZIP-Archiv wird automatisch heruntergeladen.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Seiten werden mit einem festen Maßstab von 2x gerendert, sodass die Bilder etwa die doppelten Maße der ursprünglichen PDF-Seite haben.
+
+## Ausgabeformat
+
+- **Einzelne Seite**: `filename.bmp`
+- **Mehrere Seiten**: `filename_bmps.zip` mit `page_1.bmp`, `page_2.bmp` usw.
+
+## Anwendungsfälle
+
+- PDF-Seiten in Altsysteme oder Hardware einspeisen, die nur BMP-Eingaben akzeptieren.
+- Unkomprimierte Bilder für bestimmte Druck-Workflows vorbereiten.
+- Bitmap-Ausgabe als Eingabe für Bildverarbeitungswerkzeuge nutzen, die Rohpixeldaten benötigen.
+
+## Tipps
+
+- BMP-Dateien sind sehr groß, weil sie Rohpixeldaten ohne Komprimierung speichern. Für die meisten Zwecke liefert [PDF zu PNG](./pdf-to-png) verlustfreie Qualität bei viel kleineren Dateien.
+- Wenn Ihr Zielsystem PNG oder TIFF akzeptiert, bevorzugen Sie diese Formate, um Speicherplatz zu sparen.
+
+## Verwandte Werkzeuge
+
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu TIFF](./pdf-to-tiff)
+- [PDF zu JPG](./pdf-to-jpg)
diff --git a/docs/de/tools/pdf-to-cbz.md b/docs/de/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..8445ae0c
--- /dev/null
+++ b/docs/de/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF zu CBZ
+description: Wandeln Sie ein PDF in eine CBZ-Datei (Comic Book Archive) für Comic-Reader wie Komga, Kavita, CDisplayEx und Calibre um.
+---
+
+# PDF zu CBZ
+
+Wandelt ein PDF in eine CBZ-Datei (Comic Book ZIP) um, das Standardformat für digitale Comics und Manga. Jede PDF-Seite wird zu einem Bild im Archiv. Das Werkzeug erzeugt Metadaten in drei Formaten für maximale Kompatibilität: ComicInfo.xml, metadata.opf und ComicBookInfo JSON.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Wählen Sie Bildformat, Qualität, Maßstab und optionale Metadaten.
+3. Klicken Sie auf **Umwandeln**, um die CBZ-Datei zu erzeugen.
+4. Die `.cbz`-Datei wird automatisch heruntergeladen.
+
+## Optionen
+
+| Option | Werte | Standard | Beschreibung |
+| ------------------- | --------------- | -------- | ------------------------------------------------------------------------------------------ |
+| Bildformat | JPEG, PNG, WebP | JPEG | JPEG für Farbcomics, PNG für verlustfreie Schwarzweiß-Manga, WebP für beste Komprimierung. |
+| Qualität | 50–100% | 85% | Steuert die JPEG/WebP-Komprimierung. Bei PNG ausgeblendet (immer verlustfrei). |
+| Maßstab | 1.0x–4.0x | 2.0x | Ein höherer Maßstab erzeugt schärfere Bilder für hochauflösende Bildschirme. |
+| Graustufen | An/Aus | Aus | Wandelt Seiten in Graustufen um. Verringert die Dateigröße bei Schwarzweiß-Inhalten. |
+| Manga-Modus | An/Aus | Aus | Setzt die Leserichtung von rechts nach links in den Metadaten. |
+| Metadaten einbinden | An/Aus | An | Bettet ComicInfo.xml, metadata.opf und ComicBookInfo JSON ein. |
+
+## Metadatenfelder
+
+Wenn Metadaten aktiviert sind, können Sie ausfüllen:
+
+- **Titel**: Wird automatisch aus dem PDF-Dateinamen erkannt.
+- **Serie**: Der Name der Serie (z. B. "Naruto").
+- **Nummer (#)**: Ausgabennummer innerhalb der Serie.
+- **Band (Bd.)**: Bandnummer.
+- **Autor(en)**: Name des Autors oder Urhebers.
+- **Verlag**: Veröffentlichendes Unternehmen.
+- **Tags / Genre**: Durch Kommas getrennte Tags (z. B. "Action, Abenteuer").
+- **Erscheinungsjahr**: Jahr der Veröffentlichung (1900–2100).
+- **Bewertung**: Community-Bewertung von 0 bis 5.
+
+## Metadaten-Kompatibilität
+
+Das Werkzeug schreibt Metadaten in drei Formaten, damit jeder Reader sie findet:
+
+| Format | Ort | Unterstützt von |
+| ------------------ | ----------------- | ------------------------------------------- |
+| ComicInfo.xml | Datei im ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Datei im ZIP | Calibre |
+| ComicBookInfo JSON | ZIP-Kommentarfeld | Calibre (Ersatzlösung) |
+
+## Ausgabeformat
+
+- `filename.cbz`: Ein ZIP-Archiv mit nummerierten Seitenbildern und Metadatendateien.
+
+Seitenbilder werden mit führenden Nullen nummeriert (`01.jpg`, `02.jpg` usw.), damit Reader sie in der richtigen Reihenfolge anzeigen.
+
+## Anwendungsfälle
+
+- Manga- oder Comic-PDFs für die Nutzung mit Comic-Readern umwandeln.
+- Eine digitale Comic-Bibliothek in Komga, Kavita oder Calibre aufbauen.
+- Gescannte Comics in ein Reader-freundliches Format umwandeln.
+- Comics in einem Format teilen, das Leserichtung und Metadaten erhält.
+
+## Tipps
+
+- Nutzen Sie **JPEG** für Farbcomics und **PNG** für Schwarzweiß-Manga, denn PNG komprimiert Schwarzweiß-Inhalte sehr effizient.
+- Aktivieren Sie **Graustufen** bei Manga, um die Dateigröße deutlich zu verringern.
+- Füllen Sie die Felder **Serie** und **Nummer** aus, damit Bibliotheksverwaltungen (Komga, Calibre) Ihre Sammlung automatisch organisieren können.
+- **WebP** bietet die beste Komprimierung, aber ältere Comic-Reader unterstützen es möglicherweise nicht.
+
+## Verwandte Werkzeuge
+
+- [PDF zu JPG](./pdf-to-jpg)
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu TIFF](./pdf-to-tiff)
+- [Bilder extrahieren](./extract-images)
diff --git a/docs/de/tools/pdf-to-csv.md b/docs/de/tools/pdf-to-csv.md
new file mode 100644
index 00000000..3a82debb
--- /dev/null
+++ b/docs/de/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF zu CSV
+description: Extrahieren Sie Tabellen aus PDF-Dokumenten und exportieren Sie sie als einzelne CSV-Datei. Verarbeitet mehrseitige PDFs mit automatischer Tabellenerkennung.
+---
+
+# PDF zu CSV
+
+Extrahiert Tabellen aus einem PDF und exportiert sie als CSV-Datei. Das Werkzeug durchsucht jede Seite mit der Tabellenerkennung von PyMuPDF nach tabellarischen Daten und schreibt alle gefundenen Zeilen in eine einzige durch Kommas getrennte Ausgabe.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Klicken Sie auf **Umwandeln**, um die Tabellenextraktion zu starten.
+3. Das Werkzeug durchsucht jede Seite und erkennt Tabellen automatisch.
+4. Eine `.csv`-Datei mit allen extrahierten Tabellendaten wird heruntergeladen.
+
+Tabellen verschiedener Seiten sind in der Ausgabe durch leere Zeilen getrennt. Zellen mit Kommas, Anführungszeichen oder Zeilenumbrüchen werden gemäß RFC 4180 korrekt maskiert.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Alle im Dokument gefundenen Tabellen werden extrahiert und in einer einzigen CSV zusammengefasst.
+
+## Ausgabeformat
+
+- Eine einzelne Datei `filename.csv` mit allen erkannten Tabellen.
+
+## Anwendungsfälle
+
+- Finanzdaten aus PDF-Kontoauszügen oder Rechnungen in eine Tabelle übernehmen.
+- Preistabellen aus Lieferantenangeboten zum Vergleich extrahieren.
+- Tabellarische Forschungsdaten aus PDF-Arbeiten in ein für Analysewerkzeuge geeignetes Format umwandeln.
+- Daten aus alten PDF-Berichten in Datenbanken migrieren.
+
+## Tipps
+
+- Werden keine Tabellen gefunden, zeigt das Werkzeug die Meldung "Keine Tabellen gefunden". Das bedeutet meist, dass das PDF ein Textlayout nutzt, das tabellarisch aussieht, aber nicht als echte Tabelle strukturiert ist.
+- Für mehr Kontrolle über einzelne Tabellen nutzen Sie [PDF-Tabellen extrahieren](./extract-tables), womit Sie zwischen CSV, JSON und Markdown als Ausgabeformat wählen können.
+- Wenn Sie die Daten im Excel-Format mit separaten Blättern pro Tabelle brauchen, nutzen Sie [PDF zu Excel](./pdf-to-excel).
+
+## Verwandte Werkzeuge
+
+- [PDF zu Excel](./pdf-to-excel)
+- [PDF-Tabellen extrahieren](./extract-tables)
+- [PDF zu Text](./pdf-to-text)
diff --git a/docs/de/tools/pdf-to-excel.md b/docs/de/tools/pdf-to-excel.md
new file mode 100644
index 00000000..29dbb029
--- /dev/null
+++ b/docs/de/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF zu Excel
+description: Extrahieren Sie Tabellen aus PDF-Dokumenten in eine Excel-Tabelle. Jede Tabelle erhält ein eigenes Arbeitsblatt mit Seitenverweis.
+---
+
+# PDF zu Excel
+
+Extrahiert Tabellen aus einem PDF und speichert sie als Excel-Tabelle (`.xlsx`). Jede erkannte Tabelle landet auf einem eigenen Arbeitsblatt, beschriftet mit Tabellennummer und Quellseite. Die Tabellenerkennung übernimmt PyMuPDF, die Excel-Erzeugung die Bibliothek SheetJS.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Klicken Sie auf **Umwandeln**, um die Tabellenextraktion zu starten.
+3. Das Werkzeug durchsucht jede Seite nach Tabellen und erstellt dann eine Excel-Arbeitsmappe.
+4. Eine `.xlsx`-Datei mit einem Blatt pro Tabelle wird heruntergeladen.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Alle erkannten Tabellen werden automatisch extrahiert.
+
+## Ausgabeformat
+
+- Eine einzelne Datei `filename.xlsx`.
+- **Eine Tabelle**: ein einzelnes Arbeitsblatt namens "Table".
+- **Mehrere Tabellen**: Arbeitsblätter namens "Table 1 (Page 3)", "Table 2 (Page 5)" usw. Blattnamen werden auf 31 Zeichen gekürzt (die Grenze von Excel).
+
+## Anwendungsfälle
+
+- PDF-Finanzberichte in bearbeitbare Tabellen für weitere Analysen umwandeln.
+- Bestands- oder Bestelltabellen aus PDFs von Lieferanten extrahieren.
+- Strukturierte Daten aus PDF-Formularen oder Katalogen zum Sortieren und Filtern in Excel übernehmen.
+- Tabellarische PDF-Daten in einem Format archivieren, mit dem auch nicht technische Kollegen arbeiten können.
+
+## Tipps
+
+- Meldet das Werkzeug "Keine Tabellen gefunden", nutzt das PDF wahrscheinlich ein frei fließendes Textlayout statt strukturierter Tabellen. Versuchen Sie stattdessen [PDF zu Text](./pdf-to-text), um den Rohinhalt zu erhalten.
+- Für ein einfacheres flaches Format nutzen Sie [PDF zu CSV](./pdf-to-csv). Für Downloads pro Tabelle in mehreren Formaten nutzen Sie [PDF-Tabellen extrahieren](./extract-tables).
+- Prüfen Sie die Blattnamen, um zu erkennen, von welcher Seite jede Tabelle stammt.
+
+## Verwandte Werkzeuge
+
+- [PDF zu CSV](./pdf-to-csv)
+- [PDF-Tabellen extrahieren](./extract-tables)
+- [PDF zu Text](./pdf-to-text)
diff --git a/docs/de/tools/pdf-to-greyscale.md b/docs/de/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..773e93ef
--- /dev/null
+++ b/docs/de/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF zu Graustufen
+description: Wandeln Sie ein farbiges PDF in eine Graustufen-Version (Schwarzweiß) um. Erzeugt ein neues PDF, in dem auf jeder Seite alle Farben entfernt sind.
+---
+
+# PDF zu Graustufen
+
+Wandelt ein farbiges PDF in eine Graustufen-Version um. Jede Seite wird gerendert, entsättigt und als JPEG-Bild in ein neues PDF eingebettet. Die Ausgabe behält die ursprünglichen Seitenmaße.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Klicken Sie auf **Umwandeln**, um die Datei zu verarbeiten.
+3. Eine neue `greyscale.pdf` wird heruntergeladen, bei der alle Seiten in Schwarzweiß umgewandelt sind.
+
+Im Hintergrund wird jede Seite im Maßstab 2x gerendert, die Pixeldaten laufen durch einen Graustufenfilter und werden dann als JPEG mit 90 % Qualität neu kodiert und in ein frisches PDF-Dokument gesetzt.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Die Graustufenumwandlung nutzt eine Standard-Luminanzformel, und die JPEG-Qualität ist fest auf 90 % eingestellt.
+
+## Ausgabeformat
+
+- Eine einzelne Datei `greyscale.pdf` mit allen Seiten als Graustufen-JPEG-Bilder.
+
+## Anwendungsfälle
+
+- Dokumente für den Schwarzweißdruck vorbereiten, um Farbtinte zu sparen.
+- Einreichungsanforderungen für rechtliche oder behördliche Unterlagen erfüllen, die Graustufen vorschreiben.
+- Die Dateigröße bei farbintensiven PDFs verringern (JPEG-Graustufenbilder sind kleiner als Farbbilder).
+- Einen einheitlichen Look für Dokumente mit gemischten Farb- und Schwarzweißseiten schaffen.
+
+## Tipps
+
+- Da jede Seite gerastert und als JPEG neu eingebettet wird, ist die Ausgabe bildbasiert. Text im ursprünglichen PDF ist danach nicht mehr auswählbar oder durchsuchbar. Wenn Sie danach durchsuchbaren Text brauchen, schicken Sie die Ausgabe durch das OCR-Werkzeug.
+- Für mehr Kontrolle über Farbanpassungen (Helligkeit, Kontrast, Sättigung) sehen Sie sich das Werkzeug Farben anpassen oder den Graustufen-Knoten im [PDF-Workflow-Builder](./pdf-workflow) an.
+
+## Verwandte Werkzeuge
+
+- [PDF zu JPG](./pdf-to-jpg)
+- [PDF zu PNG](./pdf-to-png)
+- [PDF-Workflow-Builder](./pdf-workflow)
diff --git a/docs/de/tools/pdf-to-jpg.md b/docs/de/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..30850c12
--- /dev/null
+++ b/docs/de/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF zu JPG
+description: Wandeln Sie PDF-Seiten in JPG-Bilder mit einstellbarer Qualität um. Einseitige PDFs werden direkt heruntergeladen, mehrseitige als ZIP exportiert.
+---
+
+# PDF zu JPG
+
+Wandelt jede Seite eines PDFs in ein JPG-Bild um. Einseitige Dokumente werden als eigenständige `.jpg`-Datei heruntergeladen. Mehrseitige PDFs ergeben ein ZIP-Archiv mit einem JPG pro Seite.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen. Das Werkzeug zeigt Dateiname, Dateigröße und Seitenzahl an.
+2. Stellen Sie den Regler **Qualität** ein, um die JPG-Komprimierung zu steuern.
+3. Klicken Sie auf **Umwandeln**, um die Verarbeitung zu starten.
+4. Das Ergebnis wird automatisch heruntergeladen: ein einzelnes JPG bei einseitigen PDFs oder eine ZIP-Datei bei mehrseitigen Dokumenten.
+
+## Optionen
+
+- **Qualität**: ein Regler von 0 % bis 100 % (Standard 90 %). Höhere Werte erzeugen schärfere Bilder mit größeren Dateien. Niedrigere Werte komprimieren stärker.
+
+Seiten werden intern im Maßstab 2x gerendert, die Ausgabeauflösung ist also doppelt so groß wie die PDF-Seitenmaße. Eine Seite im Letter-Format ergibt ein Bild mit etwa 1.224 x 1.584 Pixeln.
+
+## Ausgabeformat
+
+- **Einzelne Seite**: `filename.jpg`
+- **Mehrere Seiten**: `filename_jpgs.zip` mit `page_1.jpg`, `page_2.jpg` usw.
+
+## Anwendungsfälle
+
+- Vorschaubilder für ein Dokumentenmanagementsystem erzeugen.
+- Eine Seite aus einem Bericht in einem Chat oder einer E-Mail teilen, die kein PDF unterstützt.
+- Bildmaterial aus PDF-Diagrammen oder Illustrationen erstellen.
+- Gescannte Dokumente als einzelne Bilder archivieren.
+
+## Tipps
+
+- Für verlustfreie Ausgabe nutzen Sie stattdessen [PDF zu PNG](./pdf-to-png).
+- Eine Qualitätseinstellung von 80 bis 90 % bietet einen guten Kompromiss zwischen Dateigröße und Bildtreue.
+- Wenn Sie pro Seite ein bestimmtes Format brauchen, sehen Sie sich den [PDF-Workflow-Builder](./pdf-workflow) mit seinem Ausgabe-Knoten PDF zu Bildern an.
+
+## Verwandte Werkzeuge
+
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu WebP](./pdf-to-webp)
+- [PDF zu BMP](./pdf-to-bmp)
+- [PDF zu TIFF](./pdf-to-tiff)
diff --git a/docs/de/tools/pdf-to-json.md b/docs/de/tools/pdf-to-json.md
new file mode 100644
index 00000000..24d7c416
--- /dev/null
+++ b/docs/de/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF zu JSON
+description: Wandeln Sie PDF-Dateien mit CPDF in strukturiertes JSON um. Exportiert die interne PDF-Struktur als maschinenlesbare JSON-Daten.
+---
+
+# PDF zu JSON
+
+Wandelt eine oder mehrere PDF-Dateien in das JSON-Format um. Das Werkzeug nutzt CPDF (Coherent PDF), um die interne Struktur jedes PDFs in eine maschinenlesbare JSON-Darstellung zu serialisieren. Die Ausgabe wird immer als ZIP-Archiv geliefert.
+
+## So funktioniert es
+
+1. Wählen Sie eine oder mehrere PDF-Dateien mit der Dateiauswahl.
+2. Klicken Sie auf **Umwandeln**, um die Verarbeitung zu starten. Die Umwandlung läuft in einem Web Worker im Hintergrund.
+3. Ein ZIP-Archiv mit einer JSON-Datei für jedes Eingabe-PDF wird heruntergeladen.
+
+Die Statusleiste zeigt den Fortschritt der Umwandlung und der ZIP-Erstellung.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Jedes PDF wird in seine vollständige JSON-Darstellung umgewandelt.
+
+## Ausgabeformat
+
+- Eine Datei `pdfs-to-json.zip` mit `filename.json` für jedes Eingabe-PDF.
+
+Die JSON-Ausgabe stellt die interne Objektstruktur des PDFs dar, einschließlich Seitenbäumen, Schriftverweisen, Metadaten und Inhaltsströmen.
+
+## Anwendungsfälle
+
+- Die interne Struktur eines PDFs zur Fehlersuche oder Validierung untersuchen.
+- Strukturierte Metadaten und Seiteneigenschaften programmatisch extrahieren.
+- PDF-Strukturdaten in eigene Verarbeitungspipelines einspeisen.
+- PDF-Dokumente auf Konformität prüfen, indem man ihre Objektbäume analysiert.
+
+## Tipps
+
+- Dieses Werkzeug gibt die rohe PDF-Objektstruktur aus, nicht den extrahierten Textinhalt. Wenn Sie Seitentext im JSON-Format brauchen, nutzen Sie stattdessen [PDF für KI vorbereiten](./prepare-pdf-for-ai).
+- Für reine Textextraktion ist [PDF zu Text](./pdf-to-text) einfacher.
+- Große PDFs mit komplexen Strukturen erzeugen sehr große JSON-Dateien.
+
+## Verwandte Werkzeuge
+
+- [PDF zu Text](./pdf-to-text)
+- [PDF für KI vorbereiten](./prepare-pdf-for-ai)
+- [PDF-Tabellen extrahieren](./extract-tables)
diff --git a/docs/de/tools/pdf-to-markdown.md b/docs/de/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..144e021d
--- /dev/null
+++ b/docs/de/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF zu Markdown
+description: Wandeln Sie PDF-Dokumente in das Markdown-Format um, optional mit Bildextraktion. Unterstützt die Stapelumwandlung mehrerer Dateien.
+---
+
+# PDF zu Markdown
+
+Wandelt PDF-Dateien in das Markdown-Format (`.md`) um und erhält dabei Überschriften, Absätze, Listen und einfache Formatierung. Optional werden eingebettete Bilder extrahiert und eingebunden. Unterstützt die Umwandlung einzelner Dateien und im Stapel. Basiert auf PyMuPDF.
+
+## So funktioniert es
+
+1. Laden Sie ein oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien darauf ziehen.
+2. Aktivieren Sie optional **Bilder einbinden**, um extrahierte Bilder in die Markdown-Ausgabe einzubetten.
+3. Klicken Sie auf **Umwandeln**, um die Verarbeitung zu starten.
+4. Eine einzelne Datei wird als `filename.md` heruntergeladen. Mehrere Dateien ergeben eine `markdown-files.zip`.
+
+## Optionen
+
+- **Bilder einbinden**: Wenn aktiviert, werden eingebettete Bilder aus dem PDF extrahiert und in der Markdown-Ausgabe referenziert. Wenn deaktiviert, wird nur der Textinhalt umgewandelt.
+
+## Ausgabeformat
+
+- **Einzelne Datei**: `filename.md`
+- **Mehrere Dateien**: `markdown-files.zip` mit einer `.md` pro Eingabe-PDF.
+
+## Anwendungsfälle
+
+- PDF-Dokumentation in Markdown für einen Static-Site-Generator wie VitePress, Hugo oder Jekyll umwandeln.
+- PDF-Forschungsarbeiten in bearbeitbares Markdown für Notiz-Apps wie Obsidian überführen.
+- Alte PDF-Wissensdatenbanken in ein Git-freundliches Textformat migrieren.
+- Strukturierte Inhalte aus PDF-E-Books zur Neuformatierung extrahieren.
+
+## Tipps
+
+- Die Option Bilder einbinden ist nützlich, wenn das PDF Diagramme oder Abbildungen enthält, die für den Inhalt wichtig sind. Deaktivieren Sie sie bei textlastigen Dokumenten, damit die Ausgabe sauber bleibt.
+- Komplexe Layouts mit Seitenleisten, Fußnoten oder mehrspaltigem Text können unvollkommenes Markdown erzeugen. Prüfen Sie die Ausgabe und passen Sie sie bei Bedarf an.
+- Für reinen Text ohne Formatierung nutzen Sie stattdessen [PDF zu Text](./pdf-to-text).
+
+## Verwandte Werkzeuge
+
+- [PDF zu Text](./pdf-to-text)
+- [PDF zu Word](./pdf-to-word)
+- [PDF für KI vorbereiten](./prepare-pdf-for-ai)
diff --git a/docs/de/tools/pdf-to-pdfa.md b/docs/de/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..602dca12
--- /dev/null
+++ b/docs/de/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF zu PDF/A
+description: Wandeln Sie Standard-PDFs für die Langzeitarchivierung in das PDF/A-Format um. Unterstützt die Konformitätsstufen PDF/A-1b, PDF/A-2b und PDF/A-3b.
+---
+
+# PDF zu PDF/A
+
+PDF/A ist eine ISO-genormte Teilmenge von PDF, die für die digitale Langzeitarchivierung entwickelt wurde. Dieses Werkzeug wandelt Ihre Standard-PDFs mit Ghostscript, das direkt in Ihrem Browser läuft, in PDF/A-konforme Dokumente um.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch.
+2. Wählen Sie im Dropdown eine **PDF/A-Version**.
+3. Aktivieren Sie optional **PDF vorab verflachen** für komplexe Dateien, bei denen die normale Umwandlung scheitert.
+4. Klicken Sie auf **In PDF/A umwandeln**. Mehrere Dateien ergeben ein ZIP-Archiv.
+
+## PDF/A-Versionen
+
+| Version | Einschränkungen | Am besten für |
+| ------------ | ----------------------------------------------- | -------------------------------------------------- |
+| **PDF/A-1b** | Am strengsten. Keine Transparenz, keine Ebenen. | Maximale Kompatibilität mit älteren Archivsystemen |
+| **PDF/A-2b** | Erlaubt Transparenz und JPEG2000. | Allgemeine Archivierung (empfohlen) |
+| **PDF/A-3b** | Erlaubt eingebettete Anhänge in jedem Format. | Archivierung von Dokumenten mit Quelldatendateien |
+
+PDF/A-2b ist standardmäßig ausgewählt und genügt für die allermeisten Archivierungszwecke.
+
+## Option Vorab verflachen
+
+Manche PDFs enthalten Merkmale, die eine saubere PDF/A-Umwandlung verhindern: ungewöhnliche Schriftkodierungen, komplexe Transparenzstapel oder defekte interne Strukturen. Wenn Sie **Vorab verflachen** aktivieren, wird das PDF vor der Umwandlung mit 300 DPI gerastert. Das garantiert Konformität, macht den Text aber nicht mehr auswählbar. Nutzen Sie es als Ausweichlösung, wenn die normale Umwandlung Fehler erzeugt.
+
+Das Vorab-Verflachen erfordert die PyMuPDF-WASM-Engine.
+
+## Anwendungsfälle
+
+- Archivierungsvorgaben von Behörden oder Gerichten erfüllen (viele Rechtsordnungen verlangen PDF/A für Gerichtsunterlagen)
+- Dokumente bei institutionellen Repositorien oder digitalen Bibliotheken einreichen
+- Geschäftsunterlagen bewahren, wenn die ursprüngliche Software in zehn Jahren möglicherweise nicht mehr existiert
+- Rechnungen für E-Rechnungsstandards vorbereiten, die PDF/A-3b mit XML-Anhängen verlangen
+
+## Tipps
+
+- Versuchen Sie die Umwandlung zuerst ohne Vorab-Verflachen. Aktivieren Sie es nur, wenn ein Fehler auftritt.
+- PDF/A bettet alle Schriften ein, daher sind die Ausgabedateien oft größer als die Originale.
+- Prüfen Sie die Ausgabe in einem eigenen PDF/A-Validator, wenn für Ihren Workflow strikte Konformität erforderlich ist.
+
+## Verwandte Werkzeuge
+
+- [PDF komprimieren](./compress-pdf): die Dateigröße nach der Umwandlung verringern
+- [PDF reduzieren](./flatten-pdf): Formulare vor der Umwandlung in PDF/A verflachen
+- [Metadaten entfernen](./remove-metadata): Metadaten vor der Archivierung entfernen
diff --git a/docs/de/tools/pdf-to-png.md b/docs/de/tools/pdf-to-png.md
new file mode 100644
index 00000000..a987a7d7
--- /dev/null
+++ b/docs/de/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF zu PNG
+description: Wandeln Sie PDF-Seiten in verlustfreie PNG-Bilder mit einstellbarem Maßstab um. Ideal für hochwertige Screenshots und transparente Hintergründe.
+---
+
+# PDF zu PNG
+
+Wandelt jede Seite eines PDFs in ein PNG-Bild um. PNG nutzt verlustfreie Komprimierung, daher erhält die Ausgabe jedes Detail der Originalseite. Einseitige PDFs werden als `.png`-Datei heruntergeladen, mehrseitige PDFs ergeben ein ZIP.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Stellen Sie den Regler **Maßstab** ein, um die Ausgabeauflösung zu steuern.
+3. Klicken Sie auf **Umwandeln**, um die Verarbeitung zu starten.
+4. Ein einzelnes PNG oder ein ZIP-Archiv wird automatisch heruntergeladen.
+
+## Optionen
+
+- **Maßstab**: reicht von 1.0x bis 3.0x (Standard 2.0x). Bei 2.0x wird eine Seite im Letter-Format mit etwa 1.224 x 1.584 Pixeln gerendert. Höhere Maßstäbe erzeugen größere, schärfere Bilder auf Kosten von Dateigröße und Verarbeitungszeit.
+
+## Ausgabeformat
+
+- **Einzelne Seite**: `filename.png`
+- **Mehrere Seiten**: `filename_pngs.zip` mit `page_1.png`, `page_2.png` usw.
+
+## Anwendungsfälle
+
+- Hochwertige Screenshots von PDF-Seiten für Präsentationen erstellen.
+- Diagramme oder Grafiken extrahieren, die scharfe Kanten und keine Komprimierungsartefakte brauchen.
+- Assets für das Webdesign aus PDF-Entwürfen vorbereiten.
+- Verlustfreie Seitenbilder für die OCR-Vorverarbeitung erzeugen.
+
+## Tipps
+
+- PNG-Dateien sind deutlich größer als JPG. Wenn die Dateigröße wichtiger ist als perfekte Qualität, nutzen Sie [PDF zu JPG](./pdf-to-jpg) oder [PDF zu WebP](./pdf-to-webp).
+- Bei Maßstab 1.0x entspricht die Ausgabe der nativen Auflösung des PDFs. Erhöhen Sie auf 3.0x für Exporte in Druckqualität.
+
+## Verwandte Werkzeuge
+
+- [PDF zu JPG](./pdf-to-jpg)
+- [PDF zu WebP](./pdf-to-webp)
+- [PDF zu SVG](./pdf-to-svg)
diff --git a/docs/de/tools/pdf-to-svg.md b/docs/de/tools/pdf-to-svg.md
new file mode 100644
index 00000000..15163bcc
--- /dev/null
+++ b/docs/de/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF zu SVG
+description: Wandeln Sie PDF-Seiten in skalierbare SVG-Vektorgrafiken um. Erhält Text und Formen als Vektorpfade für unbegrenztes Skalieren.
+---
+
+# PDF zu SVG
+
+Wandelt jede Seite eines PDFs in eine SVG-Datei (Scalable Vector Graphics) um. Anders als Rasterformate erhält SVG Vektorpfade, Text und Formen, sodass die Ausgabe ohne Pixelbildung auf jede Größe skaliert. Basiert auf PyMuPDF.
+
+## So funktioniert es
+
+1. Laden Sie ein oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien darauf ziehen. Sie können mehrere Dateien hinzufügen und einzeln verwalten.
+2. Klicken Sie auf **Umwandeln**, um alle hochgeladenen Dateien zu verarbeiten.
+3. Umwandlungen einer einzelnen Datei mit nur einer Seite werden als eigenständige `.svg` heruntergeladen. Alles andere wird als ZIP-Archiv heruntergeladen.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Jede Seite wird mit dem nativen Vektorexport von PyMuPDF in SVG umgewandelt.
+
+## Ausgabeformat
+
+- **Eine Datei, eine Seite**: `filename.svg`
+- **Eine Datei, mehrere Seiten**: `filename_svg.zip` mit `page_1.svg`, `page_2.svg` usw.
+- **Mehrere Dateien**: `pdf_to_svg.zip` mit Dateien, geordnet nach dem Namen des Quelldokuments.
+
+## Anwendungsfälle
+
+- Vektordiagramme, Grafiken oder Illustrationen aus PDF-Berichten für Webseiten extrahieren.
+- PDF-Seiteninhalte in einem Vektoreditor wie Inkscape oder Illustrator bearbeiten.
+- Skalierbare Seitenvorschauen in responsive Webanwendungen einbetten.
+- Logos oder Grafiken aus PDF-Broschüren unter Erhalt scharfer Kanten extrahieren.
+
+## Tipps
+
+- SVG funktioniert am besten mit PDFs, die Vektorinhalte enthalten. Gescannte Dokumente oder bildlastige PDFs erzeugen große SVG-Dateien mit eingebetteten Rasterdaten.
+- Für Rasterausgabe bei bildlastigen PDFs nutzen Sie stattdessen [PDF zu PNG](./pdf-to-png) oder [PDF zu JPG](./pdf-to-jpg).
+- Dieses Werkzeug unterstützt die Stapelumwandlung: Laden Sie mehrere PDFs auf einmal hoch, um alle in einem Durchlauf umzuwandeln.
+
+## Verwandte Werkzeuge
+
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu JPG](./pdf-to-jpg)
+- [PDF zu Markdown](./pdf-to-markdown)
diff --git a/docs/de/tools/pdf-to-text.md b/docs/de/tools/pdf-to-text.md
new file mode 100644
index 00000000..c5851f91
--- /dev/null
+++ b/docs/de/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF zu Text
+description: Extrahieren Sie reinen Textinhalt aus PDF-Dateien. Unterstützt die Stapelextraktion mehrerer PDFs mit Ausgabe als TXT-Dateien.
+---
+
+# PDF zu Text
+
+Extrahiert den gesamten Textinhalt aus PDF-Dateien und speichert ihn als reine `.txt`-Dateien. Unterstützt die Stapelverarbeitung: Laden Sie mehrere PDFs hoch und lassen Sie den Text jedes einzelnen in einem Vorgang extrahieren. Basiert auf PyMuPDF.
+
+## So funktioniert es
+
+1. Laden Sie ein oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien darauf ziehen. Verwalten Sie Ihre Dateiliste mit den Schaltflächen Weitere hinzufügen und Leeren.
+2. Klicken Sie auf **Extrahieren**, um die Verarbeitung zu starten.
+3. Eine einzelne Datei wird als `filename.txt` heruntergeladen. Mehrere Dateien ergeben ein Archiv `pdf-to-text.zip`.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Der gesamte Textinhalt wird von jeder Seite in Lesereihenfolge extrahiert.
+
+## Ausgabeformat
+
+- **Einzelne Datei**: `filename.txt`
+- **Mehrere Dateien**: `pdf-to-text.zip` mit einer `.txt` pro Eingabe-PDF.
+
+## Anwendungsfälle
+
+- Fließtext aus PDF-Berichten für die Volltextsuche-Indizierung extrahieren.
+- PDF-E-Books oder Artikel zum Lesen auf E-Ink-Geräten in reinen Text umwandeln.
+- Text aus Verträgen oder Rechtsdokumenten für die Stichwortanalyse gewinnen.
+- Formatierung aus PDFs entfernen, um sauberen Text für Datenverarbeitungsskripte zu erhalten.
+- Einen Textkorpus aus PDF-Archiven für die Verarbeitung natürlicher Sprache vorbereiten.
+
+## Tipps
+
+- Gescannte PDFs (nur Bild) erzeugen leere Textdateien, da keine Textebene zum Extrahieren vorhanden ist. Schicken Sie gescannte Dokumente zuerst durch OCR.
+- Die Ausgabe erhält die Lesereihenfolge, wie PyMuPDF sie interpretiert, die im Allgemeinen von links nach rechts und von oben nach unten verläuft. Mehrspaltige Layouts können verschachtelten Text erzeugen.
+- Für strukturierte Ausgabe mit Überschriften und Formatierung probieren Sie [PDF zu Markdown](./pdf-to-markdown). Für KI-taugliches strukturiertes JSON nutzen Sie [PDF für KI vorbereiten](./prepare-pdf-for-ai).
+
+## Verwandte Werkzeuge
+
+- [PDF zu Markdown](./pdf-to-markdown)
+- [PDF für KI vorbereiten](./prepare-pdf-for-ai)
+- [PDF zu Word](./pdf-to-word)
diff --git a/docs/de/tools/pdf-to-tiff.md b/docs/de/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..011178e6
--- /dev/null
+++ b/docs/de/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF zu TIFF
+description: Wandeln Sie PDF-Seiten in TIFF-Bilder um, wie sie in Druck-, Fax- und Archiv-Workflows üblich sind. Weicht bei Kodierungsfehlern auf PNG aus.
+---
+
+# PDF zu TIFF
+
+Wandelt jede Seite eines PDFs in ein TIFF-Bild um. TIFF ist das Standardformat für Druckproduktion, Faxsysteme und Dokumentenarchivierung. Das Werkzeug nutzt PackBits-Komprimierung für die TIFF-Kodierung und weicht auf PNG aus, wenn eine Seite nicht kodiert werden kann.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Klicken Sie auf **Umwandeln**, um die Datei zu verarbeiten.
+3. Eine einzelne TIFF-Datei oder ein ZIP-Archiv wird automatisch heruntergeladen.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Seiten werden mit einem festen Maßstab von 2x gerendert.
+
+## Ausgabeformat
+
+- **Einzelne Seite**: `filename.tiff`
+- **Mehrere Seiten**: `filename_tiffs.zip` mit `page_1.tiff`, `page_2.tiff` usw.
+
+Schlägt die TIFF-Kodierung für eine bestimmte Seite fehl (wegen Komprimierungsproblemen), wird diese Seite stattdessen als `.png`-Datei gespeichert. Das ZIP enthält dann eine Mischung aus TIFF- und PNG-Dateien.
+
+## Anwendungsfälle
+
+- Dokumente bei Behörden oder Rechtssystemen einreichen, die das TIFF-Format verlangen.
+- Seiten für die Faxübertragung über digitale Faxdienste vorbereiten.
+- Gescannte Dokumente in einem weit unterstützten verlustfreien Format archivieren.
+- Seiten in Dokumentenmanagementsysteme von Unternehmen einspeisen.
+
+## Tipps
+
+- TIFF-Dateien sind groß. Wenn Sie verlustfreie Qualität nur für Web oder Bildschirm brauchen, ist [PDF zu PNG](./pdf-to-png) die bessere Wahl.
+- Prüfen Sie den ZIP-Inhalt, wenn einige Seiten auf PNG ausweichen mussten. Möglicherweise möchten Sie diese separat umwandeln.
+
+## Verwandte Werkzeuge
+
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu BMP](./pdf-to-bmp)
+- [PDF zu JPG](./pdf-to-jpg)
diff --git a/docs/de/tools/pdf-to-webp.md b/docs/de/tools/pdf-to-webp.md
new file mode 100644
index 00000000..98aa3bb5
--- /dev/null
+++ b/docs/de/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF zu WebP
+description: Wandeln Sie PDF-Seiten in WebP-Bilder mit einstellbarer Qualität um. Kleinere Dateien als JPG bei vergleichbarer Bildqualität.
+---
+
+# PDF zu WebP
+
+Wandelt jede Seite eines PDFs in ein WebP-Bild um. WebP erzeugt bei gleicher wahrgenommener Qualität in der Regel 25 bis 35 % kleinere Dateien als JPG und ist damit eine gute Wahl für die Webnutzung.
+
+## So funktioniert es
+
+1. Laden Sie ein PDF hoch, indem Sie auf die Ablagefläche klicken oder eine Datei darauf ziehen.
+2. Stellen Sie den Regler **Qualität** ein.
+3. Klicken Sie auf **Umwandeln**, um die Datei zu verarbeiten.
+4. Eine einzelne `.webp`-Datei oder ein ZIP-Archiv wird automatisch heruntergeladen.
+
+## Optionen
+
+- **Qualität**: ein Regler von 0 % bis 100 % (Standard 85 %). Steuert den Grad der verlustbehafteten Komprimierung. Höhere Werte behalten mehr Details.
+
+Seiten werden intern im Maßstab 2x gerendert, sodass die Bilder etwa die doppelten nativen Maße des PDFs haben.
+
+## Ausgabeformat
+
+- **Einzelne Seite**: `filename.webp`
+- **Mehrere Seiten**: `filename_webps.zip` mit `page_1.webp`, `page_2.webp` usw.
+
+## Anwendungsfälle
+
+- Seitenvorschauen für Websites vorbereiten, bei denen die Bandbreite zählt.
+- Leichte Bildversionen von Flyern oder Broschüren für soziale Medien erzeugen.
+- Mehrseitige Dokumente im Stapel in einen webtauglich optimierten Bildsatz umwandeln.
+
+## Tipps
+
+- WebP wird von allen modernen Browsern unterstützt. Für Kompatibilität mit älteren Systemen weiche auf [PDF zu JPG](./pdf-to-jpg) aus.
+- Eine Qualität von 80 bis 85 % ist auf dem Bildschirm meist nicht vom Original zu unterscheiden und hält die Dateien klein.
+
+## Verwandte Werkzeuge
+
+- [PDF zu JPG](./pdf-to-jpg)
+- [PDF zu PNG](./pdf-to-png)
+- [PDF zu BMP](./pdf-to-bmp)
diff --git a/docs/de/tools/pdf-to-word.md b/docs/de/tools/pdf-to-word.md
new file mode 100644
index 00000000..2109af24
--- /dev/null
+++ b/docs/de/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF zu Word
+description: Wandeln Sie PDF-Dateien in bearbeitbare Word-Dokumente (DOCX) um. Unterstützt die Stapelumwandlung mehrerer PDFs auf einmal.
+---
+
+# PDF zu Word
+
+Wandelt PDF-Dateien in bearbeitbare Word-Dokumente (`.docx`) um. Das Werkzeug nutzt PyMuPDF, um den Dokumentinhalt zu rekonstruieren, und erhält Text, einfache Formatierung und Layout. Unterstützt die Umwandlung einzelner Dateien und im Stapel.
+
+## So funktioniert es
+
+1. Laden Sie ein oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien darauf ziehen. Sie können weitere Dateien hinzufügen oder einzelne aus der Liste entfernen.
+2. Klicken Sie auf **Umwandeln**, um die Verarbeitung zu starten.
+3. Eine einzelne Datei wird als `filename.docx` heruntergeladen. Mehrere Dateien werden in `converted-documents.zip` gepackt.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Jedes PDF wird mit der integrierten Umwandlungs-Engine von PyMuPDF in DOCX umgewandelt.
+
+## Ausgabeformat
+
+- **Einzelne Datei**: `filename.docx`
+- **Mehrere Dateien**: `converted-documents.zip` mit einer `.docx` pro Eingabe-PDF.
+
+## Anwendungsfälle
+
+- Text in einem erhaltenen PDF bearbeiten, das Sie ändern müssen.
+- Archivierte PDF-Berichte in ein Format umwandeln, das Kollegen in Microsoft Word oder Google Docs bearbeiten können.
+- Inhalte aus PDF-Verträgen oder Angeboten zur Überarbeitung mit Änderungsverfolgung in Word übernehmen.
+- Alte PDF-Dokumentation in ein bearbeitbares Format migrieren.
+
+## Tipps
+
+- Komplexe Layouts mit mehrspaltigem Text, eingebetteten Formularen oder vielen Grafiken werden möglicherweise nicht perfekt umgewandelt. Prüfen Sie die Ausgabe und passen Sie die Formatierung in Ihrer Textverarbeitung an.
+- Gescannte PDFs (nur Bild) erzeugen leere oder minimale DOCX-Dateien. Schicken Sie sie zuerst durch OCR, um eine Textebene hinzuzufügen.
+- Der Stapelmodus ist effizient, um ganze Ordner voller PDFs umzuwandeln: Laden Sie sie alle auf einmal hoch.
+
+## Verwandte Werkzeuge
+
+- [PDF zu Text](./pdf-to-text)
+- [PDF zu Markdown](./pdf-to-markdown)
+- [PDF-Workflow-Builder](./pdf-workflow)
diff --git a/docs/de/tools/pdf-to-zip.md b/docs/de/tools/pdf-to-zip.md
new file mode 100644
index 00000000..4df94061
--- /dev/null
+++ b/docs/de/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDFs zu ZIP
+description: Packen Sie mehrere PDF-Dateien in ein einziges ZIP-Archiv, um sie leicht zu teilen und zu speichern.
+---
+
+# PDFs zu ZIP
+
+Bündeln Sie mehrere PDF-Dateien in einem einzigen ZIP-Archiv. Dies ist ein einfaches Verpackungswerkzeug: Die PDFs selbst werden weder umgewandelt noch komprimiert oder verändert.
+
+## So funktioniert es
+
+1. Laden Sie mehrere PDF-Dateien über die Ablagefläche hoch.
+2. Prüfen Sie die Dateiliste. Entfernen Sie alle Dateien, die nicht enthalten sein sollen.
+3. Klicken Sie auf die Schaltfläche zum Verarbeiten.
+4. Ein ZIP-Archiv mit allen hochgeladenen PDFs wird sofort heruntergeladen.
+
+## Funktionen
+
+- Akzeptiert beliebig viele PDF-Dateien
+- Einzelne Dateien lassen sich vor dem Erstellen des Archivs entfernen
+- Behält die ursprünglichen Dateinamen im ZIP bei
+- Keine Änderung am PDF-Inhalt, die Dateien werden unverändert gepackt
+- Zeigt Dateiname und Größe jedes hochgeladenen PDFs an
+
+## Anwendungsfälle
+
+- Eine Reihe von Rechnungen oder Belegen für den E-Mail-Anhang bündeln
+- Projektergebnisse (mehrere PDF-Berichte) für die Übergabe verpacken
+- Einen einzigen Download für eine Sammlung von Formularen oder Vorlagen erstellen
+- Einen Stapel Dokumente in einer komprimierten Datei archivieren
+
+## Tipps
+
+- Die ZIP-Datei verwendet die ursprünglichen PDF-Dateinamen. Wenn Sie Dateien mit gleichem Namen haben, benennen Sie sie vor dem Hochladen um, um Konflikte zu vermeiden.
+- Dieses Werkzeug komprimiert die PDFs selbst nicht. Um die Dateigröße zu verringern, schicken Sie sie zuerst durch PDF komprimieren und verpacken Sie sie dann mit diesem Werkzeug.
+
+## Verwandte Werkzeuge
+
+- [PDF zusammenführen](./merge-pdf)
+- [PDF teilen](./split-pdf)
+- [PDF komprimieren](./compress-pdf)
diff --git a/docs/de/tools/pdf-workflow.md b/docs/de/tools/pdf-workflow.md
new file mode 100644
index 00000000..dafc6409
--- /dev/null
+++ b/docs/de/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: PDF-Workflow-Builder
+description: Erstellen Sie eigene PDF-Verarbeitungspipelines visuell, indem Sie Knoten auf einer Arbeitsfläche verbinden. Verketten Sie Operationen wie Zusammenführen, Komprimieren, Wasserzeichen und Export.
+---
+
+# PDF-Workflow-Builder
+
+Mit dem Workflow-Builder verketten Sie mehrere PDF-Operationen zu einer einzigen automatisierten Pipeline. Statt Werkzeuge nacheinander einzeln auszuführen, verbinden Sie einen visuellen Graphen aus Knoten (Eingabe, Verarbeitung, Ausgabe) und führen alles mit einem Klick aus. Ihre Dateien verlassen nie den Browser.
+
+## So funktioniert es
+
+Die Oberfläche besteht aus drei Bereichen: einer **Knoten-Werkzeugkiste** links, der **Arbeitsfläche** in der Mitte und einem **Einstellungsbereich** rechts, der erscheint, wenn Sie einen Knoten auswählen.
+
+1. **Knoten hinzufügen**: Klicken Sie sie in der linken Seitenleiste an oder ziehen Sie sie direkt auf die Arbeitsfläche. Mit der Suchleiste oben in der Werkzeugkiste filtern Sie nach Namen.
+2. **Knoten verbinden**: Ziehen Sie von einem Ausgangsanschluss (unten an einem Knoten) zu einem Eingangsanschluss (oben an einem anderen Knoten). Verbindungen verlaufen von oben nach unten.
+3. **Einstellungen vornehmen**: Klicken Sie auf einen Knoten, um rechts seinen Einstellungsbereich zu öffnen. Jeder Knotentyp hat eigene Optionen (Seitenbereiche, Qualitätsregler, Passwörter usw.).
+4. **Workflow ausführen**: Klicken Sie in der Werkzeugleiste auf **Ausführen**. Die Engine führt die Knoten in topologischer Reihenfolge nacheinander aus. Eine Statusleiste unten zeigt den Fortschritt.
+5. **Ergebnisse herunterladen**: Der abschließende Download-Knoten speichert das fertige PDF (oder ein ZIP, wenn mehrere Dateien entstehen).
+
+## Knotenkategorien
+
+Die Knoten sind in sechs Kategorien gegliedert, die auf der Arbeitsfläche farblich gekennzeichnet sind:
+
+- **Eingabe** (blau): PDF-Eingabe, Bildeingabe, Word/Excel/PowerPoint zu PDF und über 15 weitere Formatkonverter, die Dateien in die Pipeline einspeisen.
+- **Bearbeiten & Kommentieren** (indigo): Zuschneiden, Graustufen, Farben invertieren, Wasserzeichen, Seitenzahlen, Kopf- & Fußzeile, Scanner-Effekt, Farben anpassen, Hintergrundfarbe, Leere Seiten entfernen, Anmerkungen entfernen.
+- **Organisieren & Verwalten** (violett): Zusammenführen, Teilen, Seiten extrahieren, Drehen, Seiten löschen, Umkehren, Leere Seite hinzufügen, Seiten aufteilen, N-Up, Seitengröße reparieren, Zu einer Seite kombinieren, Broschüre, Posterize, Metadaten bearbeiten, Inhaltsverzeichnis, OCR.
+- **Optimieren & Reparieren** (bernstein): Komprimieren, Rastern, Linearisieren, Begradigen, PDF zu PDF/A, Schrift in Pfade umwandeln, Reparieren.
+- **PDF schützen** (rosé): Verschlüsseln, Entschlüsseln, Bereinigen, Reduzieren, Digital signieren, Schwärzen.
+- **Ausgabe** (türkis): Download (erkennt automatisch einzelnes PDF oder ZIP), PDF zu Bildern, PDF zu Text, PDF zu DOCX, PDF zu XLSX, PDF zu CSV, PDF zu SVG, PDF zu Markdown, Bilder extrahieren.
+
+## Workflows speichern und laden
+
+Die Werkzeugleiste bietet vier Möglichkeiten zur Speicherung:
+
+- **Speichern**: legt den aktuellen Workflow als benannte Vorlage im lokalen Speicher Ihres Browsers ab. Sie können mehrere Vorlagen speichern.
+- **Laden**: öffnet ein Fenster mit allen gespeicherten Vorlagen. Klicken Sie auf Laden, um eine wiederherzustellen, oder löschen Sie Vorlagen, die Sie nicht mehr brauchen.
+- **Exportieren**: lädt den Workflow als `.json`-Datei herunter, damit Sie ihn teilen oder sichern können.
+- **Importieren**: lädt eine `.json`-Workflow-Datei von der Festplatte und stellt alle Knoten, Positionen und Verbindungen wieder her.
+
+Vorlagen bleiben im lokalen Speicher über Sitzungen hinweg erhalten. Exportierte JSON-Dateien sind zwischen Browsern und Geräten übertragbar.
+
+## Ausführungsmodell
+
+Die Engine erstellt aus Ihren Verbindungen einen Abhängigkeitsgraphen und führt die Knoten in topologischer Reihenfolge aus. Schlägt ein Knoten fehl, wird die Ausführung angehalten und der fehlerhafte Knoten rot markiert. Einige Regeln, die Sie beachten sollten:
+
+- Jeder Workflow braucht mindestens einen **Eingabe**-Knoten und einen **Ausgabe**-Knoten.
+- Die Engine erkennt zirkuläre Abhängigkeiten und blockiert die Ausführung mit einer Fehlermeldung.
+- Der Knoten **Verschlüsseln** muss der letzte Verarbeitungsschritt vor dem Ausgabeknoten sein. Platzieren Sie ihn früher, erscheint eine Validierungswarnung, weil nachfolgende Knoten nicht mit verschlüsselten Daten arbeiten können.
+- Passwortgeschützte PDFs fragen während der Ausführung nach einem Passwort.
+- Eingaben mit mehreren PDFs werden unterstützt: Der Zusammenführen-Knoten kann sie vereinen, oder Knoten für die Stapelverarbeitung verarbeiten jedes PDF einzeln.
+
+## Anschlusstypen
+
+Verbindungen nutzen typisierte Anschlüsse, um ungültige Verdrahtung zu verhindern:
+
+- **PDF** (indigo): ein einzelnes PDF-Dokument.
+- **MultiPDF** (bernstein): mehrere gebündelte PDF-Dokumente.
+- **Image** (grün): ein Bild-Blob.
+
+## Optionen
+
+Jeder Knoten hat eine eigene Konfiguration, erreichbar über den rechten Einstellungsbereich. Häufige Muster sind:
+
+- **Seitenbereiche** bei den Knoten Teilen, Seiten extrahieren, Seiten löschen
+- **Qualitätsregler** bei Ausgabeknoten für Bildumwandlung
+- **Passwortfelder** bei den Knoten Verschlüsseln und Entschlüsseln
+- **Texteingaben** für Wasserzeichen, Kopf- & Fußzeile, Metadaten bearbeiten
+- **Drehwinkel** beim Knoten Drehen
+- **Komprimierungsstufe** beim Knoten Komprimieren
+- **OCR-Sprachauswahl** beim OCR-Knoten
+
+## Anwendungsfälle
+
+- **Rechnungsverarbeitungs-Pipeline**: PDF-Eingabe -> OCR -> Tabellen extrahieren -> Download als CSV.
+- **Berichte vereinheitlichen**: Word zu PDF -> Seitengröße reparieren -> Seitenzahlen hinzufügen -> Wasserzeichen -> Komprimieren -> Download.
+- **Archivierung vorbereiten**: PDF-Eingabe -> Reparieren -> Reduzieren -> Bereinigen -> PDF zu PDF/A -> Download.
+- **Bilder im Stapel extrahieren**: PDF-Eingabe (mehrere Dateien) -> Bilder extrahieren -> ZIP herunterladen.
+- **Druckfertige Broschüren**: PDF-Eingabe -> Broschüre -> Zuschneiden -> Komprimieren -> Download.
+- **Sichere Weitergabe**: PDF-Eingabe -> Schwärzen -> Anmerkungen entfernen -> Verschlüsseln -> Download.
+
+## Tipps
+
+- Nutzen Sie **Entf** oder **Rücktaste**, um den ausgewählten Knoten von der Arbeitsfläche zu entfernen.
+- Klicken Sie auf die Schaltfläche **X** in der Statusleiste eines Knotens, um ihn direkt zu löschen.
+- Verschieben Sie die Arbeitsfläche, indem Sie auf leeren Bereich klicken und ziehen. Der Cursor wird dabei zu einem Greifsymbol.
+- Auf Mobilgeräten schalten Sie die Knoten-Werkzeugkiste mit der Schaltfläche **+** in der Werkzeugleiste um.
+- Erzeugt Ihr Workflow mehrere Ausgabedateien, bündelt der Download-Knoten sie automatisch in einem ZIP.
+- Fangen Sie einfach an: Bauen und testen Sie eine Pipeline mit zwei Knoten, bevor Sie sie komplexer machen.
+
+## Verwandte Werkzeuge
+
+- [PDF zu Text](./pdf-to-text)
+- [PDF zu Excel](./pdf-to-excel)
+- [Bilder extrahieren](./extract-images)
+- [PDF zu Markdown](./pdf-to-markdown)
diff --git a/docs/de/tools/png-to-pdf.md b/docs/de/tools/png-to-pdf.md
new file mode 100644
index 00000000..4f96d04f
--- /dev/null
+++ b/docs/de/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG zu PDF
+description: Wandeln Sie ein oder mehrere PNG-Bilder mit einstellbarer Qualität vollständig in Ihrem Browser in ein PDF-Dokument um.
+---
+
+# PNG zu PDF
+
+Wandeln Sie PNG-Bilder in PDF um und behalten Sie dabei die volle Auflösung. Jedes PNG wird zu einer eigenen Seite, deren Größe den ursprünglichen Bildmaßen entspricht. Transparenz wird automatisch behandelt.
+
+## Unterstützte Formate
+
+| Format | Endungen |
+| :----- | :------- |
+| PNG | `.png` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie PNG-Dateien per Drag-and-drop hinein. Sie können mehrere auf einmal auswählen.
+2. Verwalten Sie die Dateiliste: Entfernen Sie unerwünschte Dateien oder fügen Sie weitere hinzu.
+3. Wählen Sie im Dropdown eine **PDF-Qualität**.
+4. Klicken Sie auf **In PDF umwandeln**. Die Ausgabe wird als `from_jpgs.pdf` heruntergeladen.
+
+Das Werkzeug nutzt pdf-lib, um jedes Bild direkt einzubetten. Lässt sich ein PNG nicht nativ einbetten (z. B. wegen eines ungewöhnlichen Farbprofils), wird es stattdessen über ein Canvas als JPEG neu gerendert.
+
+## Optionen
+
+Die **PDF-Qualität** steuert die Komprimierung vor dem Einbetten:
+
+- **Hohe Qualität**: minimale Komprimierung, größte Dateigröße.
+- **Mittlere Qualität** (Standard): guter Kompromiss aus Größe und Klarheit.
+- **Niedrige Qualität**: maximale Komprimierung, kleinste Ausgabe.
+
+## Anwendungsfälle
+
+- Screenshots in ein mehrseitiges PDF für Fehlerberichte oder Dokumentation umwandeln
+- UI-Design-Exporte zur Prüfung in einer einzigen Datei bündeln
+- Diagramm-Exporte (draw.io, Excalidraw) in ein teilbares PDF umwandeln
+- Eine Reihe von Diagrammbildern zu einem Bericht zusammenstellen
+
+## Tipps
+
+- PNG-Dateien mit Transparenz erhalten im PDF einen weißen Hintergrund. Wenn Sie einen anderen Hintergrund brauchen, bearbeiten Sie die Bilder vorher.
+- Bei Screenshots und Diagrammen mit scharfen Kanten und Text vermeidet die hohe Qualität JPEG-Artefakte. Bei mittlerer oder niedriger Qualität wird möglicherweise intern in JPEG umgewandelt.
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [JPG zu PDF](./jpg-to-pdf)
+- [SVG zu PDF](./svg-to-pdf)
diff --git a/docs/de/tools/posterize-pdf.md b/docs/de/tools/posterize-pdf.md
new file mode 100644
index 00000000..d7b1b3e5
--- /dev/null
+++ b/docs/de/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF posterisieren
+description: Teilen Sie PDF-Seiten in ein Raster kleinerer Seiten auf, um sie im Großformat auf mehreren Blättern zu drucken.
+---
+
+# PDF posterisieren
+
+Teilen Sie jede Seite einer PDF in ein Raster kleinerer Teilseiten auf. Mit diesem Werkzeug drucken Sie eine einzelne Seite auf mehrere Blätter Papier, die Sie anschließend zu einem großen Poster oder Banner zusammensetzen.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Legen Sie die Anzahl der **Zeilen** und **Spalten** für das Raster fest (z. B. teilen 2 Zeilen x 2 Spalten jede Seite in 4 Teilseiten).
+3. Geben Sie optional einen Seitenbereich an, um einzuschränken, welche Seiten posterisiert werden.
+4. Die Vorschau zeigt ein Raster über der aktuellen Seite, damit Sie die Schnitte sehen können.
+5. Wechseln Sie zwischen den Seiten, um das Raster auf anderen Seiten zu prüfen.
+6. Klicken Sie auf die Schaltfläche zum Verarbeiten. Jede Rasterzelle wird in der Ausgabe-PDF zu einer eigenen Seite.
+
+## Funktionen
+
+- Einstellbare Zeilen- und Spaltenanzahl für flexible Rastergrößen
+- Live-Vorschau mit Rasterüberlagerung, die genau zeigt, wo die Seiten geteilt werden
+- Seitenbereichsfilter, um nur bestimmte Seiten zu posterisieren
+- Seitenweise Navigation in der Vorschau
+- Zwischengespeicherte Seitenvorschauen für schnelles Blättern
+- Gestrichelte rote Rasterlinien markieren die Schnittkanten deutlich
+
+## Optionen
+
+| Option | Beschreibung |
+| ----------------- | ------------------------------------------------------ |
+| **Zeilen** | Anzahl der horizontalen Teilungen (Standard: 1) |
+| **Spalten** | Anzahl der vertikalen Teilungen (Standard: 1) |
+| **Seitenbereich** | Welche Seiten posterisiert werden (leer = alle Seiten) |
+
+## Anwendungsfälle
+
+- Eine Poster-PDF auf normalen A4- oder Letter-Blättern drucken und an der Wand zusammensetzen
+- Große Banner aus dem Design einer einzelnen PDF-Seite erstellen
+- Übergroße technische Zeichnungen in druckbare Kacheln aufteilen
+- Großformatige Ausdrucke ohne Großformatdrucker anfertigen
+
+## Tipps
+
+- Ein 2x2-Raster macht aus einer Seite 4 Seiten. Ein 3x3-Raster macht aus einer Seite 9. Planen Sie das Raster danach, wie groß das zusammengesetzte Ergebnis werden soll.
+- Die Vorschau hilft sich zu prüfen, dass wichtige Inhalte nicht auf einer Schnittlinie liegen. Passen Sie bei Bedarf Zeilen und Spalten an.
+- Für die umgekehrte Operation (mehrere Seiten auf einem Blatt) nutzen Sie [N-Up PDF](./n-up-pdf).
+
+## Verwandte Werkzeuge
+
+- [N-Up PDF](./n-up-pdf)
+- [Seiten teilen](./divide-pages)
+- [PDF teilen](./split-pdf)
diff --git a/docs/de/tools/powerpoint-to-pdf.md b/docs/de/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..b1c5cdbb
--- /dev/null
+++ b/docs/de/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint zu PDF
+description: Wandeln Sie PowerPoint-Präsentationen (PPT, PPTX) und ODP-Dateien in PDF um, mit erhaltener Folienformatierung.
+---
+
+# PowerPoint zu PDF
+
+Wandeln Sie Präsentationsdateien in PDF um. Jede Folie wird zu einer Seite im Ausgabedokument, wobei Text, Bilder, Formen und Übergänge über eine browserbasierte LibreOffice-Engine dargestellt werden. Unterstützt werden moderne und ältere PowerPoint-Formate sowie das OpenDocument-Präsentationsformat.
+
+## Unterstützte Formate
+
+| Format | Endungen |
+| :------------------------ | :------- |
+| PowerPoint (modern) | `.pptx` |
+| PowerPoint (älter) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre Präsentationsdateien per Drag & Drop hinein.
+2. Prüfen Sie die Dateiliste. Fügen Sie weitere Dateien hinzu oder entfernen Sie welche.
+3. Klicken Sie auf **In PDF umwandeln**. Die LibreOffice-Engine wird bei der ersten Nutzung geladen und wandelt dann jede Datei um.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in `powerpoint-converted.zip` gepackt.
+
+## Optionen
+
+Dieses Werkzeug hat keine zusätzlichen Einstellungen. Folien werden in ihren Originalmaßen dargestellt.
+
+## Ausgabe
+
+| Anzahl der Eingaben | Ausgabe |
+| :------------------ | :---------------------------------------------------------------------- |
+| 1 Datei | Einzelner PDF-Download (ursprünglicher Dateiname mit der Endung `.pdf`) |
+| 2+ Dateien | ZIP-Archiv (`powerpoint-converted.zip`) mit einer PDF pro Datei |
+
+## Anwendungsfälle
+
+- Eine Präsentation vor dem Teilen in PDF umwandeln, wenn das Publikum eventuell kein PowerPoint hat
+- Eine druckbare Handout-Version einer Foliensammlung für eine Konferenz oder einen Workshop erstellen
+- Präsentationen in einem Format archivieren, das auf jedem Gerät identisch aussieht
+- Eine Sammlung von ODP-Präsentationen aus LibreOffice Impress stapelweise in PDF umwandeln
+- Eine PDF-Version eines Pitch Decks als E-Mail-Anhang erstellen
+
+## Tipps
+
+- Folienanimationen und Übergänge werden in der PDF nicht abgebildet. Jede Folie wird als statische Seite erfasst.
+- Eingebettete Videos erscheinen nicht in der Ausgabe. Ersetzen Sie sie bei Bedarf durch einen Screenshot oder ein Platzhalterbild.
+- Sprechernotizen sind im Standard-PDF-Export nicht enthalten. Wenn Sie Notizen brauchen, exportieren Sie zuerst über die native Ansicht "Notizen drucken" in PowerPoint.
+- Die LibreOffice-Engine wird nach dem ersten Laden zwischengespeichert, daher geht die Umwandlung einer zweiten Präsentation in derselben Sitzung deutlich schneller.
+
+## Verwandte Werkzeuge
+
+- [Word zu PDF](./word-to-pdf)
+- [Excel zu PDF](./excel-to-pdf)
+- [Bilder zu PDF](./image-to-pdf)
diff --git a/docs/de/tools/prepare-pdf-for-ai.md b/docs/de/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..2a0f1177
--- /dev/null
+++ b/docs/de/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: PDF für KI vorbereiten
+description: Extrahieren Sie PDF-Inhalte in strukturiertes JSON, optimiert für LLMs und KI-Pipelines wie LlamaIndex. Unterstützt Stapelverarbeitung.
+---
+
+# PDF für KI vorbereiten
+
+Extrahiert Inhalte aus PDF-Dateien und strukturiert sie als JSON, optimiert für die Verarbeitung durch große Sprachmodelle (LLMs) und KI-Frameworks wie LlamaIndex. Der Inhalt jeder Seite wird extrahiert und in ein strukturiertes Format gebracht, das für RAG-Pipelines, Chatbots oder semantische Suchsysteme bereit ist.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDFs hoch, indem Sie auf die Ablagefläche klicken oder Dateien darauf ziehen.
+2. Klicken Sie auf **Extrahieren**, um die Verarbeitung zu starten.
+3. Eine einzelne Datei wird als `filename_llm.json` heruntergeladen. Bei mehreren Dateien entsteht ein Archiv `pdf-for-ai.zip`.
+
+Das Werkzeug nutzt die LlamaIndex-Integration von PyMuPDF, um Inhalte seitenweise mit Metadaten zu extrahieren. Die Ausgabe lässt sich direkt in KI-Frameworks laden.
+
+## Optionen
+
+Dieses Werkzeug hat keine einstellbaren Optionen. Alle Seiten werden mit vollständigem Text und Metadaten extrahiert.
+
+## Ausgabeformat
+
+- **Einzelne Datei**: `filename_llm.json`
+- **Mehrere Dateien**: `pdf-for-ai.zip` mit einer `_llm.json` pro Eingabe-PDF.
+
+Die JSON-Ausgabe folgt dem LlamaIndex-Dokumentschema mit Textinhalt und Metadatenfeldern pro Seite.
+
+## Anwendungsfälle
+
+- PDF-Dokumente für Retrieval-Augmented-Generation-Pipelines (RAG) vorbereiten.
+- Aus PDF-Archiven eine durchsuchbare Wissensdatenbank für einen KI-Chatbot aufbauen.
+- PDF-Berichte in LLM-basierte Analyse-Workflows einspeisen.
+- Forschungsarbeiten für semantische Suche und Frage-Antwort-Systeme vorverarbeiten.
+- Aus PDF-Dokumentsammlungen strukturierte Trainingsdaten erzeugen.
+
+## Tipps
+
+- Für reine Textextraktion ohne KI-spezifische Formatierung nutzen Sie [PDF zu Text](./pdf-to-text).
+- Für Markdown-Ausgabe, die Überschriften und Struktur erhält, nutzen Sie [PDF zu Markdown](./pdf-to-markdown).
+- Gescannte PDFs liefern leere oder minimale Ausgaben. Führe sie vor der Extraktion durch OCR, um eine Textebene hinzuzufügen.
+
+## Verwandte Werkzeuge
+
+- [PDF zu Text](./pdf-to-text)
+- [PDF zu Markdown](./pdf-to-markdown)
+- [PDF zu JSON](./pdf-to-json)
diff --git a/docs/de/tools/protect-pdf.md b/docs/de/tools/protect-pdf.md
new file mode 100644
index 00000000..83bd5333
--- /dev/null
+++ b/docs/de/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: PDF schützen
+description: Schützen Sie PDF-Dateien mit 256-Bit-AES-Verschlüsselung per Passwort. Legen Sie Benutzer- und Besitzerpasswörter mit einstellbaren Nutzungsbeschränkungen fest.
+---
+
+# PDF schützen
+
+Sperre Ihre PDF mit einem Passwort, damit nur berechtigte Personen sie öffnen können. BentoPDF verwendet 256-Bit-AES-Verschlüsselung, denselben Standard wie Banken und Behörden, und wendet sie vollständig in Ihrem Browser über QPDF an.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Geben Sie ein **Benutzerpasswort** ein (erforderlich). Dieses Passwort brauchen Personen, um die Datei zu öffnen.
+3. Geben Sie optional ein **Besitzerpasswort** ein. Wenn es gesetzt ist, erhält die PDF Nutzungsbeschränkungen, die Drucken, Bearbeiten, Kopieren und Kommentieren verhindern.
+4. Klicken Sie auf **PDF verschlüsseln**.
+5. Laden Sie die verschlüsselte Datei herunter.
+
+## Passworttypen
+
+### Benutzerpasswort (erforderlich)
+
+Das Benutzerpasswort geben Empfänger ein, um die PDF zu öffnen. Ohne es ist das Dokument vollständig unzugänglich. Jede verschlüsselte PDF muss eines haben.
+
+### Besitzerpasswort (optional)
+
+Das Besitzerpasswort steuert, was ein berechtigter Benutzer nach dem Öffnen der Datei tun darf. Wenn Sie ein eigenes Besitzerpasswort festlegen, wendet BentoPDF automatisch die strengsten Beschränkungen an:
+
+- Ändern deaktiviert
+- Extrahieren/Kopieren deaktiviert
+- Drucken deaktiviert
+- Kommentieren deaktiviert
+- Formularausfüllen deaktiviert
+- Dokumentzusammenstellung deaktiviert
+
+Wenn Sie das Besitzerpasswort leer lassen, wird die PDF verschlüsselt (zum Öffnen ist weiterhin das Benutzerpasswort nötig), hat aber nach dem Öffnen keine Nutzungsbeschränkungen.
+
+## Details zur Verschlüsselung
+
+- **Algorithmus**: AES-256 (256-Bit Advanced Encryption Standard)
+- **Schlüssellänge**: 256 Bit
+- **Standard**: PDF-2.0-Verschlüsselung (QPDF-Implementierung)
+
+AES-256 lässt sich mit heutiger Technik rechnerisch nicht per Brute-Force knacken. Die Sicherheit Ihrer verschlüsselten PDF hängt allein von der Stärke Ihres Passworts ab.
+
+## Anwendungsfälle
+
+- Vertrauliche Finanzberichte vor dem E-Mail-Versand schützen
+- Rechtsdokumente sichern, die an die Gegenseite gehen
+- Medizinische Unterlagen oder personenbezogene Daten mit einem Passwort versehen
+- Kostenpflichtige Inhalte (E-Books, Berichte) mit Zugriffskontrolle verteilen
+- Datenschutzrichtlinien erfüllen, die Verschlüsselung gespeicherter Daten verlangen
+
+## Tipps
+
+- Verwenden Sie ein starkes, einzigartiges Passwort. Eine Passphrase mit mindestens 12 Zeichen aus Groß- und Kleinbuchstaben, Zahlen und Symbolen ist ideal.
+- Teilen Sie das Passwort über einen separaten Kanal (Telefon, Textnachricht) und nie in derselben E-Mail wie die PDF.
+- Wenn Sie nur Aktionen einschränken wollen (kein Drucken, kein Kopieren), ohne ein Passwort zum Öffnen zu verlangen, nutzen Sie stattdessen das Werkzeug Berechtigungen ändern.
+
+## Verwandte Werkzeuge
+
+- [PDF entschlüsseln](./unlock-pdf): Verschlüsselung entfernen, wenn Sie das Passwort kennen
+- [Berechtigungen ändern](./change-permissions): bestimmte Nutzungsbeschränkungen anpassen
+- [Beschränkungen entfernen](./remove-restrictions): alle Sicherheitseinstellungen aus einer PDF entfernen
+- [PDF bereinigen](./sanitize-pdf): versteckte Inhalte vor dem Verschlüsseln entfernen
diff --git a/docs/de/tools/psd-to-pdf.md b/docs/de/tools/psd-to-pdf.md
new file mode 100644
index 00000000..cc759e6a
--- /dev/null
+++ b/docs/de/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD zu PDF
+description: Wandeln Sie Photoshop-Dateien (PSD) in Ihrem Browser in PDF um. Kostenlos, privat, ohne Adobe-Software.
+---
+
+# PSD zu PDF
+
+Wandeln Sie Adobe-Photoshop-PSD-Dateien in PDF-Dokumente um. PSD ist das native Photoshop-Format, und zum Öffnen braucht man normalerweise teure Adobe-Software. Dieses Werkzeug rendert das reduzierte Gesamtbild Ihrer PSD-Datei als PDF-Seite in voller Auflösung.
+
+## Unterstützte Formate
+
+| Format | Endung | Hinweise |
+| :-------------- | :----- | :----------------------------------------- |
+| Adobe Photoshop | `.psd` | Rendert das auf eine Ebene reduzierte Bild |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre PSD-Dateien per Drag & Drop hinein. Mehrere Dateien werden unterstützt.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Dateien mit dem Papierkorb-Symbol oder fügen Sie über **Weitere Dateien hinzufügen** mehr hinzu.
+3. Klicken Sie auf **In PDF umwandeln**. Die PyMuPDF-Engine liest die PSD-Datei und bettet das Gesamtbild in der Originalauflösung in eine PDF-Seite ein.
+4. Eine einzelne PSD ergibt eine PDF. Wenn Sie mehrere PSD-Dateien hochladen, werden sie zu einer mehrseitigen PDF namens `psd_to_pdf.pdf` kombiniert, wobei jede PSD eine Seite wird.
+
+## Optionen
+
+Es sind keine Einstellungen nötig. Der Konverter verwendet die reduzierten Bilddaten der PSD-Datei.
+
+## Anwendungsfälle
+
+- Photoshop-Entwürfe ansehen, ohne Photoshop zu öffnen
+- Design-Korrekturabzüge an Kunden senden, die keine Adobe Creative Suite haben
+- Hochauflösende Grafiken aus PSD-Dateien drucken
+- Aus mehreren PSD-Designdateien ein PDF-Portfolio erstellen, wobei jede Datei eine Seite in einem einzigen Dokument wird
+
+## Tipps
+
+- Die Umwandlung rendert die Gesamtansicht (auf eine Ebene reduziert) der PSD. Einzelne Ebenen, Einstellungsebenen und Ebeneneffekte bleiben in der PDF nicht als eigene Elemente erhalten.
+- Mehrere PSD-Dateien werden zu einer mehrseitigen PDF zusammengeführt statt zu einzelnen PDFs. Das ist praktisch für Portfolios oder Lookbooks.
+- PSD-Dateien mit sehr hoher Auflösung (Druckdateien mit 300+ DPI) ergeben große PDFs. Das Werkzeug behält die volle Auflösung bei.
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
+- [VSD zu PDF](./vsd-to-pdf)
diff --git a/docs/de/tools/pub-to-pdf.md b/docs/de/tools/pub-to-pdf.md
new file mode 100644
index 00000000..91974c87
--- /dev/null
+++ b/docs/de/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB zu PDF
+description: Wandeln Sie Microsoft-Publisher-Dateien (PUB) in Ihrem Browser in PDF um. Kostenlos, privat, ohne Software.
+---
+
+# PUB zu PDF
+
+Wandeln Sie Microsoft-Publisher-Dateien in PDF um. Publisher ist ein Desktop-Publishing-Programm, das in manchen Microsoft-Office-Editionen enthalten ist, aber die meisten Leute haben es nicht installiert. Mit diesem Werkzeug kann jeder PUB-Dateien direkt im Browser in PDF umwandeln, ganz ohne Microsoft-Software.
+
+## Unterstützte Formate
+
+| Format | Endung | Hinweise |
+| :------------------ | :----- | :--------------------------- |
+| Microsoft Publisher | `.pub` | Desktop-Publishing-Dokumente |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre PUB-Dateien per Drag & Drop hinein. Mehrere Dateien können gleichzeitig hochgeladen werden.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Dateien mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**.
+3. Klicken Sie auf **In PDF umwandeln**. Eine LibreOffice-basierte Engine wird im Browser geladen und wandelt jede PUB-Datei um, wobei Layout, Bilder und Textfelder erhalten bleiben.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in einem ZIP-Archiv namens `pub-to-pdf.zip` geliefert.
+
+## Optionen
+
+Es ist keine zusätzliche Konfiguration nötig. Der Konverter übernimmt die PUB-Layout-Engine automatisch.
+
+## Anwendungsfälle
+
+- Einen PUB-Flyer oder Newsletter von einem Kunden öffnen, ohne Microsoft Publisher zu kaufen
+- Gemeindebriefe, Veranstaltungsprogramme oder Schulnewsletter umwandeln, die in Publisher erstellt wurden
+- Marketingmaterial aus Publisher in einem universell zugänglichen Format archivieren
+- PUB-Dateien auf einem System drucken, auf dem Publisher nicht installiert ist
+
+## Tipps
+
+- Komplexe Publisher-Layouts mit überlagerten Textfeldern und exakter Positionierung können sich bei der Umwandlung leicht verschieben. Prüfen Sie die Ausgabe, wenn es auf genaue Positionen ankommt.
+- Die LibreOffice-Engine wird einmal pro Sitzung initialisiert. Die erste Umwandlung dauert länger, weitere gehen schneller.
+- Für die originalgetreueste Umwandlung von Publisher-Dateien sollten die im Original verwendeten Schriftarten Standard-Systemschriften sein.
+
+## Verwandte Werkzeuge
+
+- [VSD zu PDF](./vsd-to-pdf)
+- [ODP zu PDF](./odp-to-pdf)
diff --git a/docs/de/tools/rasterize-pdf.md b/docs/de/tools/rasterize-pdf.md
new file mode 100644
index 00000000..2b265824
--- /dev/null
+++ b/docs/de/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF rastern
+description: Wandeln Sie PDF-Seiten in eine bildbasierte PDF um. Reduzieren Sie alle Ebenen, entfernen Sie auswählbaren Text und steuern Sie DPI und Bildformat.
+---
+
+# PDF rastern
+
+Beim Rastern wird jede Seite einer PDF in ein Bild umgewandelt, und diese Bilder werden wieder zu einer PDF zusammengesetzt. Das Ergebnis sieht identisch zum Original aus, enthält aber keinen auswählbaren Text, keine interaktiven Elemente und keine bearbeitbaren Ebenen. Es ist praktisch eine hochwertige Fotokopie.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch.
+2. Legen Sie die **DPI** (Auflösung) für die gerasterte Ausgabe fest.
+3. Wählen Sie ein **Bildformat**: PNG für verlustfreie Qualität oder JPEG für kleinere Dateien.
+4. Aktivieren Sie optional **In Graustufen umwandeln**.
+5. Klicken Sie auf **PDF rastern**. Mehrere Dateien werden als ZIP heruntergeladen.
+
+## Optionen
+
+| Einstellung | Werte | Standard |
+| -------------- | --------------------------------- | -------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Bildformat** | PNG (verlustfrei), JPEG (kleiner) | PNG |
+| **Graustufen** | An/Aus | Aus |
+
+## DPI-Richtwerte
+
+- **72**: nur für die Bildschirmansicht, kleinste Dateigröße
+- **150**: gute Balance für den allgemeinen Gebrauch
+- **200**: schärferer Text, mittlere Dateigröße
+- **300**: Ausgabe in Druckqualität
+- **600**: hochwertige Archivierung oder professioneller Druck
+
+## Anwendungsfälle
+
+- Textextraktion aus vertraulichen Dokumenten vor dem Teilen verhindern
+- Probleme mit fehlenden Schriftarten beseitigen, indem Text in Pixel umgewandelt wird
+- Eine "flache" Version einer PDF mit komplexen Ebenen oder Transparenzen erstellen, die in verschiedenen Viewern unterschiedlich dargestellt wird
+- Eine PDF für ein System vorbereiten, das nur bildbasierte Eingaben akzeptiert
+- Versteckte Inhalte (wie nachverfolgte Änderungen oder Formulardaten) entfernen, indem die PDF auf reine Bilder reduziert wird
+
+## Tipps
+
+- 150 DPI mit PNG ist ein solider Standard. Gehen Sie nur höher, wenn Sie Druckausgabe brauchen oder feine Details vergrößern wollen.
+- JPEG erzeugt deutlich kleinere Dateien, führt aber zu Kompressionsartefakten an scharfen Textkanten.
+- Rastern ist nicht umkehrbar. Behalten Sie Ihre Original-PDF, falls Sie später bearbeitbaren Text brauchen.
+
+## Verwandte Werkzeuge
+
+- [PDF komprimieren](./compress-pdf): die Dateigröße der gerasterten PDF verringern
+- [PDF entzerren](./deskew-pdf): Seiten gescannter Dokumente vor dem Rastern geraderichten
+- [Schriftart zu Umriss](./font-to-outline): Schriften in Vektorpfade umwandeln, wenn Sie die Skalierbarkeit behalten wollen
+- [PDF reduzieren](./flatten-pdf): Formulare reduzieren, ohne sie in Bilder umzuwandeln
diff --git a/docs/de/tools/remove-annotations.md b/docs/de/tools/remove-annotations.md
new file mode 100644
index 00000000..2a405cef
--- /dev/null
+++ b/docs/de/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Annotationen entfernen
+description: Entfernen Sie mit einem Klick alle Kommentare, Markierungen, Links und anderen Annotationen aus Ihrer PDF.
+---
+
+# Annotationen entfernen
+
+Bereinigen Sie Ihre PDF, indem Sie alle Annotationen entfernen: Kommentare, Markierungen, Haftnotizen, Textauszeichnungen, Links, Stempel und alle anderen im Dokument eingebetteten Annotationsobjekte. Der eigentliche Seiteninhalt (Text, Bilder, Grafiken) bleibt unverändert.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Das Werkzeug erkennt die Seitenanzahl des Dokuments und zeigt Dateiinformationen an.
+3. Klicken Sie auf **Annotationen entfernen**, um die Verarbeitung zu starten.
+4. Die bereinigte PDF ohne Annotationen wird automatisch heruntergeladen.
+
+## Funktionen
+
+- Entfernt alle Annotationstypen: Kommentare, Markierungen, Unterstreichungen, Durchstreichungen, Haftnotizen, Stempel, Links und Formularauszeichnungen
+- Arbeitet auf jeder Seite des Dokuments
+- Erhält alle Inhalte, die keine Annotationen sind (Text, Bilder, Vektorgrafiken, Formularfelder)
+- Zeigt vor der Verarbeitung Seitenanzahl und Dateigröße an
+
+## Anwendungsfälle
+
+- Ein Dokument nach einer Prüfungsrunde, in der mehrere Prüfer Kommentare hinterlassen haben, vor der endgültigen Verteilung bereinigen
+- Markierungen und Haftnotizen aus einem geteilten Lernleitfaden entfernen
+- Link-Annotationen vor dem Archivieren aus einem Dokument entfernen
+- Eine "saubere" Version eines Rechtsdokuments erstellen, das bei Verhandlungen stark annotiert wurde
+- Prüferkommentare aus einem Manuskript entfernen, bevor es in den Druck geht
+
+## Tipps
+
+- Dieses Werkzeug entfernt Annotationen auf Ebene der PDF-Struktur. Das Ergebnis behält daher auswählbaren Text und die ursprüngliche Qualität, es findet kein Rastern statt.
+- Wenn Sie nur bestimmte Annotationen statt aller entfernen wollen, löschen Sie sie einzeln im [PDF-Editor](./edit-pdf).
+- Annotationen in reduzierten PDFs (bei denen Annotationen in den Seiteninhalt eingebunden wurden) lassen sich nicht entfernen, da sie keine eigenen Objekte mehr sind.
+
+## Verwandte Werkzeuge
+
+- [PDF-Editor](./edit-pdf)
+- [Wasserzeichen hinzufügen](./add-watermark)
+- [PDF unterschreiben](./sign-pdf)
diff --git a/docs/de/tools/remove-blank-pages.md b/docs/de/tools/remove-blank-pages.md
new file mode 100644
index 00000000..29ee7bb4
--- /dev/null
+++ b/docs/de/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Leere Seiten entfernen
+description: Erkennen Sie leere oder fast leere Seiten in Ihrer PDF automatisch und entfernen Sie sie, mit einstellbarer Empfindlichkeit.
+---
+
+# Leere Seiten entfernen
+
+Durchsuchen Sie Ihre PDF nach leeren oder fast leeren Seiten und entfernen Sie sie automatisch. Das Werkzeug rendert jede Seite und analysiert ihren Pixelinhalt, um zu bestimmen, ob sie leer ist. Vor der Verarbeitung können Sie bestätigen, welche Seiten entfernt werden.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Stellen Sie den Regler **Empfindlichkeit** ein, um festzulegen, wie streng "leer" definiert ist.
+3. Klicken Sie auf **Leere Seiten erkennen**, um das Dokument zu durchsuchen.
+4. Das Werkzeug zeigt Vorschaubilder der erkannten leeren Seiten zur Kontrolle.
+5. Bestätigen Sie die Auswahl und laden Sie die bereinigte PDF ohne leere Seiten herunter.
+
+## Optionen
+
+- **Empfindlichkeit**: Ein Regler von 0 % bis 100 % (Standard 80 %). Höhere Werte sind strenger und markieren nur Seiten, die vollständig oder fast weiß sind. Niedrigere Werte sind toleranter und erfassen auch Seiten mit minimalem Inhalt wie einem einzelnen Punkt oder einem schwachen Wasserzeichen.
+
+## Funktionen
+
+- Pixelgenaue Analyse jeder Seite zur Erkennung leerer Inhalte
+- Einstellbarer Empfindlichkeitsregler zur Feinabstimmung der Erkennung
+- Seitenvorschau der erkannten leeren Seiten zur manuellen Kontrolle
+- Erhält alle nicht leeren Seiten unverändert
+- Verarbeitet Dokumente beliebiger Größe oder Seitenzahl
+- Fortschrittsanzeige während des Durchsuchens
+
+## Anwendungsfälle
+
+- Gescannte Dokumente bereinigen, bei denen der Scanner die leeren Rückseiten einseitiger Originale erfasst hat
+- Trennseiten aus stapelweise gescannten Dokumenten entfernen
+- Leerseiten entfernen, die von Dokumentenmanagementsystemen eingefügt wurden
+- PDFs bereinigen, die aus Textverarbeitungen exportiert wurden und manchmal leere Seiten am Ende enthalten
+- Die Dateigröße verringern, indem unnötige leere Seiten entfernt werden
+
+## Tipps
+
+- Beginnen Sie mit der Standardempfindlichkeit von 80 % und passen Sie sie von dort an. Wenn das Werkzeug Seiten übersieht, die für Sie leer aussehen, senken Sie die Empfindlichkeit. Wenn es Seiten mit schwachem Inhalt markiert, den Sie behalten wollen, erhöhen Sie sie.
+- Das Werkzeug rendert jede Seite, um den Inhalt zu analysieren. Die Verarbeitungszeit wächst daher mit der Seitenzahl. Bei sehr großen Dokumenten müssen Sie mit einer kurzen Wartezeit rechnen.
+- Prüfen Sie die erkannten leeren Seiten in der Vorschau, bevor Sie das Entfernen bestätigen. Seiten mit schwachen Kopfzeilen, Fußzeilen oder Wasserzeichen können je nach Empfindlichkeit markiert werden.
+
+## Verwandte Werkzeuge
+
+- [PDF zuschneiden](./crop-pdf)
+- [PDF-Editor](./edit-pdf)
+- [Seitenzahlen](./page-numbers)
diff --git a/docs/de/tools/remove-metadata.md b/docs/de/tools/remove-metadata.md
new file mode 100644
index 00000000..f2e6c393
--- /dev/null
+++ b/docs/de/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Metadaten entfernen
+description: Entfernen Sie alle versteckten Metadaten aus PDF-Dateien, darunter Autor, Titel, Erstellungsdatum, Producer, XMP-Daten und Dokument-IDs.
+---
+
+# Metadaten entfernen
+
+Jede PDF enthält Metadaten, die verraten können, wer sie erstellt hat, welche Software verwendet wurde, wann sie zuletzt geändert wurde und mehr. Dieses Werkzeug entfernt alles davon: das Info-Dictionary, XMP-Metadatenströme, Dokument-IDs und anwendungsspezifische Daten. Zurück bleibt ein sauberes Dokument ohne Spur seiner Herkunft.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Klicken Sie auf **Metadaten entfernen**.
+3. Laden Sie die bereinigte Datei herunter.
+
+Es gibt nichts zu konfigurieren. Das Werkzeug arbeitet bewusst gründlich: Es löscht alles.
+
+## Was entfernt wird
+
+- **Felder des Info-Dictionary**: Titel, Autor, Thema, Stichwörter, Ersteller, Producer, Erstellungsdatum, Änderungsdatum
+- **XMP-Metadatenstrom**: Der XML-basierte Metadatenblock im Dokumentkatalog
+- **Dokument-IDs**: Eindeutige Kennungen im PDF-Trailer, mit denen ein Dokument systemübergreifend verfolgt werden kann
+- **PieceInfo**: Anwendungsspezifische Metadaten, die von Programmen wie Illustrator oder InDesign hinzugefügt werden
+
+## Was erhalten bleibt
+
+- Alle sichtbaren Seiteninhalte (Text, Bilder, Grafiken)
+- Formularfelder und Annotationen
+- Lesezeichen und Links
+- Die Dokumentstruktur selbst
+
+## Anwendungsfälle
+
+- Ihren Namen und Ihre Organisation aus einem Dokument entfernen, bevor Sie es anonym veröffentlichen
+- Erstellungszeitstempel entfernen, die verraten, wann ein Dokument vorbereitet wurde
+- Producer-Angaben bereinigen, die Ihren PDF-Software-Stack verraten
+- Dokumente für behördliche Einreichungen vorbereiten, die metadatenfreie PDFs verlangen
+- Spuren des Bearbeitungsverlaufs entfernen, bevor Sie ein Dokument extern teilen
+
+## Tipps
+
+- Nutzen Sie zuerst das Werkzeug Metadaten anzeigen, um genau zu sehen, welche Metadaten Ihre PDF enthält, bevor Sie sie entfernen.
+- Wenn Sie Metadaten _und_ JavaScript, Annotationen und eingebettete Dateien entfernen wollen, nutzen Sie PDF bereinigen für eine gründlichere Reinigung.
+- Das Entfernen von Metadaten ist endgültig. Behalten Sie Ihr Original, falls Sie diese Daten später noch brauchen.
+
+## Verwandte Werkzeuge
+
+- [PDF bereinigen](./sanitize-pdf): Metadaten sowie Skripte, Anhänge und mehr entfernen
+- [PDF verschlüsseln](./protect-pdf): die bereinigte PDF mit einem Passwort schützen
+- [PDF komprimieren](./compress-pdf): Das Entfernen von Metadaten kann die Dateigröße leicht verringern, durch Komprimieren sparen Sie mehr
diff --git a/docs/de/tools/remove-restrictions.md b/docs/de/tools/remove-restrictions.md
new file mode 100644
index 00000000..d35f1e81
--- /dev/null
+++ b/docs/de/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Beschränkungen entfernen
+description: Entfernen Sie Passwortschutz, Druckbeschränkungen, Bearbeitungssperren und Kopierbeschränkungen aus PDF-Dateien.
+---
+
+# Beschränkungen entfernen
+
+PDFs können zwei Arten von Passwörtern enthalten: ein Benutzerpasswort (zum Öffnen der Datei nötig) und ein Besitzerpasswort (steuert, was Sie mit der Datei tun dürfen). Dieses Werkzeug entfernt beide samt aller zugehörigen Beschränkungen: Druck-, Bearbeitungs-, Kopier- und Annotationssperren.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Wenn die PDF ein Besitzerpasswort hat, geben Sie es im Feld **Besitzerpasswort** ein. Lassen Sie das Feld leer, wenn die PDF nur Nutzungsbeschränkungen ohne Passwort hat.
+3. Klicken Sie auf **Beschränkungen entfernen**.
+4. Laden Sie die unbeschränkte PDF herunter.
+
+Das Werkzeug nutzt die QPDF-Flags `--decrypt` und `--remove-restrictions`, um eine saubere, unbeschränkte Kopie zu erzeugen.
+
+## Was entfernt wird
+
+- Passwortschutz (Benutzer- und Besitzerpasswort)
+- Druckbeschränkungen
+- Bearbeitungsbeschränkungen
+- Beschränkungen beim Kopieren von Text und Bildern
+- Beschränkungen für Annotationen und Kommentare
+- Alle anderen in der PDF kodierten Sicherheitsbeschränkungen
+
+## Anwendungsfälle
+
+- Eine PDF entsperren, die Ihnen gehört, deren Passwort Sie aber vor Jahren festgelegt haben
+- Druckbeschränkungen aus einem Dokument entfernen, auf das Sie rechtmäßig Zugriff haben
+- Kopieren und Einfügen in Referenzmaterial für Notizen ermöglichen
+- PDFs für Barrierefreiheitswerkzeuge vorbereiten, die mit eingeschränkten Dokumenten nicht umgehen können
+
+## Tipps
+
+- Wenn ein Besitzerpasswort gesetzt ist, müssen Sie es kennen. Dieses Werkzeug knackt oder errät keine Passwörter.
+- Wenn die Datei verschlüsselt bleiben soll und Sie nur bestimmte Berechtigungen ändern wollen, nutzen Sie stattdessen das Werkzeug Berechtigungen ändern.
+- Die Ausgabedatei ist komplett unverschlüsselt: Jeder, der sie erhält, kann sie frei öffnen.
+
+## Verwandte Werkzeuge
+
+- [PDF entschlüsseln](./unlock-pdf): eine PDF entsperren, wenn Sie das Benutzerpasswort kennen
+- [PDF verschlüsseln](./protect-pdf): die Verschlüsselung mit neuen Einstellungen erneut anwenden
+- [Berechtigungen ändern](./change-permissions): gezielt ändern, welche Aktionen erlaubt sind
diff --git a/docs/de/tools/repair-pdf.md b/docs/de/tools/repair-pdf.md
new file mode 100644
index 00000000..5f2eac73
--- /dev/null
+++ b/docs/de/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: PDF reparieren
+description: Stellen Sie Daten aus beschädigten oder defekten PDF-Dateien mit der Reparatur-Engine von QPDF wieder her. Unterstützt Stapelverarbeitung.
+---
+
+# PDF reparieren
+
+Wenn sich eine PDF nicht öffnen lässt, verzerrte Inhalte zeigt oder in Ihrem Viewer Fehler auslöst, versucht dieses Werkzeug, ihre interne Struktur neu aufzubauen. Es nutzt die Reparatur-Engine von QPDF, die Daten aus vielen Arten von Beschädigungen wiederherstellen kann: defekte Querverweistabellen, abgeschnittene Streams, ungültige Objektverweise und mehr.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere beschädigte PDF-Dateien hoch.
+2. Klicken Sie auf **PDF reparieren**.
+3. Eine einzelne reparierte Datei wird direkt heruntergeladen. Bei mehreren Dateien entsteht ein ZIP-Archiv.
+
+Das Werkzeug schickt jede Datei mit dem Flag `--decrypt` durch QPDF. Dadurch muss QPDF die gesamte PDF-Struktur lesen und neu schreiben und behebt dabei behebbare Probleme.
+
+## Funktionen
+
+- Stapelreparatur mehrerer PDFs in einem Vorgang
+- Automatische Erkennung von behebbaren und nicht behebbaren Dateien
+- Erfolgs- und Fehlerbericht pro Datei bei der Verarbeitung mehrerer Dateien
+- Nutzt QPDF (WebAssembly), eine bewährte Bibliothek zur PDF-Transformation
+
+## Was repariert werden kann
+
+- Defekte oder fehlende Querverweistabellen
+- Abgeschnittene Dateienden durch unvollständige Downloads
+- Ungültige Objektnummerierung und Stream-Längen
+- Kleinere Strukturfehler fehlerhafter PDF-Generatoren
+- Verschlüsselungsartefakte nach fehlgeschlagenen Entschlüsselungsversuchen
+
+## Was nicht repariert werden kann
+
+- Stark abgeschnittene Dateien, in denen der Großteil der Inhaltsdaten fehlt
+- PDFs, die mit einem Passwort verschlüsselt sind, das Sie nicht haben
+- Dateien, die in Wirklichkeit keine PDFs sind (falsche Dateiendung)
+- Bildbeschädigungen innerhalb der PDF (die Struktur wird repariert, Pixeldaten werden aber nicht neu erzeugt)
+
+## Anwendungsfälle
+
+- Eine PDF nach einem fehlgeschlagenen E-Mail-Download wiederherstellen
+- Dateien öffnen, die von älteren oder nicht standardkonformen PDF-Generatoren erzeugt wurden
+- PDFs reparieren, die in einem Viewer funktionieren, in einem anderen aber nicht
+- Beschädigte Archivdokumente für die Langzeitspeicherung vorbereiten
+
+## Tipps
+
+- Wenn die Reparatur fehlschlägt, öffnen Sie die Datei zuerst in einem Browser. Browser haben eine eigene Wiederherstellungslogik und zeigen eventuell genug Inhalt an, um die Datei erneut zu speichern.
+- Bei verschlüsselten PDFs, deren Reparatur fehlschlägt, versuchen Sie zuerst PDF entschlüsseln und reparieren Sie dann die entschlüsselte Ausgabe.
+
+## Verwandte Werkzeuge
+
+- [PDF komprimieren](./compress-pdf): die Struktur der reparierten PDF weiter bereinigen
+- [PDF linearisieren](./linearize-pdf): die reparierte Datei für die Auslieferung im Web optimieren
+- [PDF reduzieren](./flatten-pdf): Formulare reduzieren, die möglicherweise beschädigt wurden
diff --git a/docs/de/tools/reverse-pages.md b/docs/de/tools/reverse-pages.md
new file mode 100644
index 00000000..eb6cb7e1
--- /dev/null
+++ b/docs/de/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Seiten umkehren
+description: Kehren Sie die Seitenreihenfolge einer oder mehrerer PDF-Dateien um, sodass die letzte Seite zur ersten wird.
+---
+
+# Seiten umkehren
+
+Kehren Sie die Seitenreihenfolge einer PDF um, sodass die letzte Seite zur ersten wird, die vorletzte zur zweiten und so weiter. Unterstützt die Stapelverarbeitung mehrerer Dateien gleichzeitig.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere PDF-Dateien hoch.
+2. Klicken Sie auf die Schaltfläche zum Verarbeiten.
+3. Jede Datei wird unabhängig umgekehrt. Wenn Sie mehrere Dateien hochgeladen haben, ist die Ausgabe ein ZIP-Archiv mit allen umgekehrten PDFs.
+4. Eine einzelne Datei wird direkt als umgekehrte PDF heruntergeladen.
+
+## Funktionen
+
+- Stapelverarbeitung: mehrere PDFs in einem Vorgang umkehren
+- Einzeldatei-Ausgabe bei einer PDF, ZIP-Ausgabe bei mehreren
+- Schaltflächen zum Entfernen einzelner Dateien vor der Verarbeitung
+- Erhält alle Seiteninhalte und die Formatierung
+
+## Anwendungsfälle
+
+- Ein Dokument korrigieren, das in umgekehrter Reihenfolge gescannt wurde
+- Eine Präsentations-PDF so vorbereiten, dass sie von hinten nach vorn gelesen wird
+- Die Seitenreihenfolge für bestimmte Druckabläufe umkehren, die Seiten rückwärts einziehen
+- Ein Dokument korrigieren, dessen Seiten versehentlich verkehrt herum zusammengestellt wurden
+
+## Tipps
+
+- Jede Datei in einem Stapel wird unabhängig umgekehrt. Die Dateien selbst werden untereinander nicht neu angeordnet.
+- Für eine feinere Neuordnung der Seiten (nicht nur eine vollständige Umkehrung) nutze [Duplizieren & Organisieren](./organize-pdf).
+
+## Verwandte Werkzeuge
+
+- [Duplizieren & Organisieren](./organize-pdf)
+- [PDF drehen](./rotate-pdf)
+- [PDF-Multitool](./pdf-multi-tool)
diff --git a/docs/de/tools/rotate-custom.md b/docs/de/tools/rotate-custom.md
new file mode 100644
index 00000000..9a765d2d
--- /dev/null
+++ b/docs/de/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Um benutzerdefinierte Grad drehen
+description: Drehen Sie PDF-Seiten um einen beliebigen Winkel, mit Gradeingabe pro Seite und Stapeldrehung.
+---
+
+# Um benutzerdefinierte Grad drehen
+
+Drehen Sie PDF-Seiten um einen beliebigen Winkel, nicht nur in 90-Grad-Schritten. Jede Seite hat ein eigenes Winkelfeld, und mit der Stapelsteuerung können Sie einen einzelnen Winkel auf alle Seiten gleichzeitig anwenden.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Für jede Seite werden Vorschaubilder erzeugt.
+2. Jede Seite hat ein numerisches Eingabefeld mit ihrem aktuellen Drehwinkel.
+3. Geben Sie einen beliebigen Gradwert (positiv oder negativ) ein, um eine bestimmte Seite zu drehen, oder nutzen Sie die Links-/Rechts-Schaltflächen pro Seite für schnelle 90-Grad-Anpassungen.
+4. Nutzen Sie das Feld **Stapelwinkel** oben, um eine einheitliche Drehung für alle Seiten festzulegen.
+5. Klicken Sie auf die Schaltfläche zum Verarbeiten, um die gedrehte PDF zu erzeugen.
+
+## Funktionen
+
+- Freie Gradeingabe pro Seite (beliebiger ganzzahliger Wert)
+- Stapelwinkel, um dieselbe Drehung auf jede Seite anzuwenden
+- Echtzeit-Vorschau der Drehung in den Vorschaubildern
+- Schnelldreh-Schaltflächen pro Seite für 90-Grad-Schritte
+- Vorschaubilder werden bei Bedarf geladen, für gute Leistung bei großen Dokumenten
+
+## Anwendungsfälle
+
+- Leicht schiefe Scans um wenige Grad korrigieren
+- Seiten drehen, um eine nicht standardmäßige Ausrichtung zu erfüllen
+- Einzelne Seiten in einem Dokument mit gemischten Inhalten präzise drehen
+- Seitenwinkel nach einer ersten Stapeldrehung feinjustieren
+
+## Tipps
+
+- Positive Werte drehen im Uhrzeigersinn, negative gegen den Uhrzeigersinn.
+- Das Feld Stapelwinkel überschreibt beim Anwenden alle Winkel der einzelnen Seiten. Nimm einzelne Anpassungen bei Bedarf nach dem Stapelvorgang vor.
+- Für Standarddrehungen um 90/180/270 Grad mit einfacherer Oberfläche nutze [PDF drehen](./rotate-pdf).
+
+## Verwandte Werkzeuge
+
+- [PDF drehen](./rotate-pdf)
+- [PDF-Multitool](./pdf-multi-tool)
+- [Duplizieren & Organisieren](./organize-pdf)
diff --git a/docs/de/tools/rotate-pdf.md b/docs/de/tools/rotate-pdf.md
new file mode 100644
index 00000000..53553742
--- /dev/null
+++ b/docs/de/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PDF drehen
+description: Drehen Sie einzelne oder alle Seiten einer PDF in 90-Grad-Schritten mit einer visuellen Vorschaubild-Oberfläche.
+---
+
+# PDF drehen
+
+Drehen Sie Seiten einer PDF um 90 Grad im oder gegen den Uhrzeigersinn. Das Werkzeug zeigt Vorschaubilder jeder Seite, sodass Sie sie einzeln drehen oder eine Stapeldrehung auf das gesamte Dokument anwenden können.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch. Die Vorschaubilder aller Seiten werden in einem Raster dargestellt.
+2. Nutzen Sie die Dreh-Schaltflächen links/rechts unter jedem Vorschaubild, um genau diese Seite zu drehen.
+3. Nutzen Sie die Stapeldrehung oben, um alle Seiten auf einmal zu drehen.
+4. Die Vorschaubilder werden in Echtzeit aktualisiert und zeigen die Drehung.
+5. Klicken Sie auf die Schaltfläche zum Verarbeiten, um die gedrehte PDF zu speichern.
+
+## Funktionen
+
+- Drehung pro Seite in 90-Grad-Schritten (links oder rechts)
+- Stapeldrehung für alle Seiten gleichzeitig
+- Echtzeit-Vorschau mit animierten Drehübergängen
+- Vorschaubilder werden bei Bedarf geladen, für flüssige Leistung bei großen Dokumenten
+- Erhält Seiteninhalt und Qualität des Originals
+
+## Anwendungsfälle
+
+- Seitlich oder auf dem Kopf gescannte Seiten korrigieren
+- Querformatseiten ins Hochformat drehen (oder umgekehrt)
+- Ein Dokument mit gemischter Ausrichtung korrigieren, in dem manche Seiten im falschen Winkel gescannt wurden
+- Ein Dokument für eine bestimmte Anzeigeausrichtung vorbereiten
+
+## Tipps
+
+- Drehungen summieren sich. Zweimal auf die Schaltfläche im Uhrzeigersinn zu klicken ergibt eine Drehung um 180 Grad.
+- Für Drehungen, die keine Vielfachen von 90 Grad sind (z. B. 45 Grad, um einen leicht schiefen Scan zu korrigieren), nutzen Sie stattdessen [Um benutzerdefinierte Grad drehen](./rotate-custom).
+- Die Stapeldrehung betrifft alle Seiten, nicht nur ausgewählte. In diesem Werkzeug gibt es keine Auswahl. Dafür nutze das [PDF-Multitool](./pdf-multi-tool).
+
+## Verwandte Werkzeuge
+
+- [Um benutzerdefinierte Grad drehen](./rotate-custom)
+- [PDF-Multitool](./pdf-multi-tool)
+- [Duplizieren & Organisieren](./organize-pdf)
diff --git a/docs/de/tools/rtf-to-pdf.md b/docs/de/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..cac43a48
--- /dev/null
+++ b/docs/de/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF zu PDF
+description: Wandeln Sie Rich-Text-Format-Dateien (RTF) in Ihrem Browser mit einer LibreOffice-basierten Engine in PDF um.
+---
+
+# RTF zu PDF
+
+Wandeln Sie Rich-Text-Format-Dokumente in PDF um. RTF ist ein plattformübergreifendes Dokumentformat, das von praktisch jeder Textverarbeitung unterstützt wird. Dieses Werkzeug nutzt eine browserbasierte LibreOffice-Engine, um RTF-Dateien mit erhaltener Formatierung darzustellen: Fett, Kursiv, Tabellen und eingebettete Bilder werden in die PDF übernommen.
+
+## Unterstützte Formate
+
+| Format | Endungen | MIME-Typen |
+| :----- | :------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie eine oder mehrere RTF-Dateien per Drag & Drop hinein.
+2. Prüfen Sie die Dateiliste. Fügen Sie weitere Dateien hinzu oder entfernen Sie welche.
+3. Klicken Sie auf **In PDF umwandeln**. Die LibreOffice-Engine wird bei der ersten Nutzung initialisiert und verarbeitet dann jede Datei.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden als `rtf-converted.zip` geliefert.
+
+## Optionen
+
+Dieses Werkzeug hat keine zusätzlichen Einstellungen. Die Umwandlung erhält die ursprüngliche RTF-Formatierung.
+
+## Ausgabe
+
+| Anzahl der Eingaben | Ausgabe |
+| :------------------ | :------------------------------------------------------- |
+| 1 Datei | Einzelner PDF-Download (z. B. `letter.pdf`) |
+| 2+ Dateien | ZIP-Archiv (`rtf-converted.zip`) mit einer PDF pro Datei |
+
+## Anwendungsfälle
+
+- Ältere RTF-Dokumente aus früheren Textverarbeitungen in moderne PDFs umwandeln
+- RTF-E-Mail-Vorlagen in PDF-Vorschauen verwandeln
+- RTF-Ausgaben aus juristischen oder medizinischen Softwaresystemen verarbeiten
+- RTF-Dateien aus einem Dokumentenmanagementsystem stapelweise zur Archivierung in PDF umwandeln
+
+## Tipps
+
+- Die LibreOffice-Engine wird einmal geladen und zwischengespeichert. Die erste Umwandlung in einer Sitzung dauert ein paar Sekunden länger, weitere gehen schneller.
+- RTF-Dateien mit eingebetteten OLE-Objekten werden möglicherweise nicht alle Objekte perfekt darstellen. Reiner Text, Bilder und Standardformatierung werden zuverlässig umgewandelt.
+- Wenn Ihre RTF-Dateien mit Microsoft Word erstellt wurden, können Sie sie auch direkt mit dem Werkzeug [Word zu PDF](./word-to-pdf) umwandeln, das neben DOC und DOCX auch RTF akzeptiert.
+
+## Verwandte Werkzeuge
+
+- [Word zu PDF](./word-to-pdf)
+- [ODT zu PDF](./odt-to-pdf)
+- [Text zu PDF](./txt-to-pdf)
diff --git a/docs/de/tools/sanitize-pdf.md b/docs/de/tools/sanitize-pdf.md
new file mode 100644
index 00000000..2bb29a6f
--- /dev/null
+++ b/docs/de/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF bereinigen
+description: Entfernen Sie versteckte und potenziell gefährliche Inhalte aus PDFs, darunter Metadaten, JavaScript, eingebettete Dateien, Annotationen und Ebenen.
+---
+
+# PDF bereinigen
+
+PDFs können weit mehr enthalten, als Sie auf dem Bildschirm sehen. Versteckte Metadaten, eingebettetes JavaScript, Dateianhänge, Formulardaten und Ebeneninformationen können sensible Daten preisgeben oder Sicherheitsrisiken darstellen. Beim Bereinigen wird all das entfernt, und Sie erhalten ein sauberes Dokument, das Sie bedenkenlos öffentlich teilen können.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Wählen Sie in der Checkliste aus, welche Elemente entfernt werden sollen.
+3. Klicken Sie auf **PDF bereinigen**.
+4. Laden Sie die bereinigte Datei herunter.
+
+## Bereinigungsoptionen
+
+Alle Optionen sind standardmäßig aktiviert. Deaktivieren Sie diejenigen, die Sie behalten wollen.
+
+| Option | Was entfernt wird |
+| ---------------------------------- | ----------------------------------------------------------------------------- |
+| **Formulare reduzieren** | Wandelt interaktive Formularfelder in statische Inhalte um |
+| **Metadaten entfernen** | Entfernt Autor, Titel, Erstellungsdatum, Softwareinfos und XMP-Daten |
+| **Annotationen entfernen** | Löscht Kommentare, Markierungen, Haftnotizen und Auszeichnungen |
+| **JavaScript entfernen** | Entfernt eingebettete Skripte, die beim Öffnen ausgeführt werden könnten |
+| **Eingebettete Dateien entfernen** | Entfernt in die PDF eingebettete Dateianhänge |
+| **Ebenen entfernen (OCG)** | Reduziert optionale Inhaltsgruppen auf eine einzige Ebene |
+| **Links entfernen** | Entfernt Hyperlinks und URL-Verweise |
+| **Strukturbaum entfernen** | Entfernt die Dokumentstruktur, die für Tags zur Barrierefreiheit genutzt wird |
+| **MarkInfo entfernen** | Entfernt Informationen zu markierten Inhalten |
+| **Schriftarten entfernen** | Entfernt eingebettete Schriftdaten (mit Vorsicht verwenden) |
+
+## Anwendungsfälle
+
+- Eine PDF für die Veröffentlichung vorbereiten, indem interne Metadaten (Autorennamen, Softwareversionen, Bearbeitungsverlauf) entfernt werden
+- JavaScript aus einer PDF aus unbekannter Quelle entfernen, bevor Sie sie öffnen
+- Eine PDF bereinigen, bevor Sie sie an einen Kunden senden, der eingebettete Kommentare oder Formularfeldnamen nicht sehen soll
+- Versteckte Ebenen aus einer Architekturzeichnung entfernen, bevor Sie die endgültige Version teilen
+- Anforderungen der Datenminimierung nach Datenschutzvorschriften erfüllen
+
+## Tipps
+
+- Lassen Sie "Schriftarten entfernen" deaktiviert, sofern Sie nicht sicher sind, dass die PDF danach noch korrekt dargestellt wird. Das Entfernen von Schriften kann Text in manchen Viewern unsichtbar machen.
+- Wenn Sie nur Metadaten entfernen wollen, ist das spezielle Werkzeug Metadaten entfernen schneller und gezielter.
+- Das Bereinigen ist nicht umkehrbar. Behalten Sie Ihre Originaldatei.
+
+## Verwandte Werkzeuge
+
+- [Metadaten entfernen](./remove-metadata): nur Metadaten entfernen, ohne andere Inhalte anzutasten
+- [PDF reduzieren](./flatten-pdf): gezielt Formulare und Annotationen reduzieren
+- [PDF verschlüsseln](./protect-pdf): nach dem Bereinigen einen Passwortschutz hinzufügen
+- [PDF rastern](./rasterize-pdf): die radikale Lösung, die PDF in Bilder umwandeln, um alle versteckten Inhalte zu beseitigen
diff --git a/docs/de/tools/scanner-effect.md b/docs/de/tools/scanner-effect.md
new file mode 100644
index 00000000..ba8da0f9
--- /dev/null
+++ b/docs/de/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Scanner-Effekt
+description: Lassen Sie Ihre PDF wie ein gescanntes Dokument aussehen, mit einstellbarem Rauschen, Drehung, Unschärfe und Papieralterung.
+---
+
+# Scanner-Effekt
+
+Verwandle eine saubere digitale PDF in etwas, das aussieht, als käme es aus einem Flachbettscanner. Das Werkzeug wendet einstellbares Rauschen, leichte Drehung, Unschärfe, Helligkeitsverschiebungen und optional eine Vergilbung an, um die Unvollkommenheiten eines physischen Scans zu simulieren.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Der Editor öffnet sich mit einer Live-Vorschau der ersten Seite neben einem Einstellungsbereich.
+3. Passen Sie die Parameter des Scan-Effekts mit den Reglern und Schaltern an.
+4. Die Vorschau wird in Echtzeit aktualisiert, während Sie die Einstellungen ändern.
+5. Klicken Sie auf **Anwenden**, um alle Seiten zu verarbeiten und das Ergebnis herunterzuladen.
+
+## Optionen
+
+- **Farbraum (Graustufen-Schalter)**: Wandelt die Ausgabe in Graustufen um, für den klassischen Schwarzweiß-Scan-Look.
+- **Rand**: Fügt einen dezenten dunklen Rand um die Seitenkanten hinzu, um Randartefakte von Scannern nachzuahmen.
+- **Drehen**: Wendet eine leichte Drehung (-5 bis +5 Grad) an, um schief eingezogenes Papier zu simulieren.
+- **Drehvarianz**: Fügt dem Drehwinkel zufällige Abweichungen hinzu, sodass jede Seite etwas anders gekippt ist.
+- **Helligkeit**: Verschiebt die Gesamthelligkeit nach oben oder unten.
+- **Kontrast**: Passt den Kontrast an, um Schwankungen der Tonerqualität zu simulieren.
+- **Unschärfe**: Wendet einen Gaußschen Weichzeichner an, um Textkanten wie bei einem Scan niedriger Qualität zu erweichen.
+- **Rauschen**: Fügt zufälliges Pixelrauschen hinzu, um das Korn des Scannersensors zu simulieren. Höhere Werte ergeben ein körnigeres Ergebnis.
+- **Gelbstich**: Fügt einen warmen Gelbton hinzu, um gealtertes oder recyceltes Papier zu simulieren.
+- **Auflösung**: Legt die Ausgabe-DPI fest. Niedrigere Werte erzeugen ein pixeligeres, scanartigeres Aussehen.
+- **Zurücksetzen**: Stellt alle Einstellungen auf die Standardwerte zurück.
+
+## Funktionen
+
+- Echtzeit-Vorschau, die sich bei jeder Parameteränderung aktualisiert
+- Zufällige Drehabweichung pro Seite für realistische Variation
+- Zehn unabhängig einstellbare Parameter
+- Graustufenmodus für authentische Schwarzweiß-Scans
+- Auflösungssteuerung von Fax-Qualität mit niedriger DPI bis zu Archivqualität mit hoher DPI
+
+## Anwendungsfälle
+
+- Digital erstellte Dokumente so aussehen lassen, als wären sie gedruckt und gescannt worden
+- Die Alterung physischer Dokumente für die Nachbildung historischer Dokumente simulieren
+- OCR-Software mit verschlechterter Scanqualität testen
+- Dokumente erzeugen, die dem visuellen Stil vorhandener gescannter Archive entsprechen
+
+## Tipps
+
+- Beginnen Sie mit dezenten Werten. Ein Rauschwert von 10-20, eine leichte Drehung von 0,5 Grad und minimale Unschärfe ergeben bereits einen überzeugenden Scan-Look.
+- Kombinieren Sie den Graustufenmodus mit leichter Vergilbung für einen Effekt wie eine "Kopie von einer Kopie".
+- Niedrigere Auflösungen (100-150 DPI) erzeugen das realistischste Faxgerät-Aussehen.
+
+## Verwandte Werkzeuge
+
+- [Farben invertieren](./invert-colors)
+- [Farben anpassen](./adjust-colors)
+- [Hintergrundfarbe](./background-color)
diff --git a/docs/de/tools/sign-pdf.md b/docs/de/tools/sign-pdf.md
new file mode 100644
index 00000000..1d8501f6
--- /dev/null
+++ b/docs/de/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF unterschreiben
+description: Zeichne, tippen Sie oder laden Sie eine Unterschrift hoch und platzieren Sie sie mit einem integrierten Viewer auf Ihren PDF-Seiten.
+---
+
+# PDF unterschreiben
+
+Fügen Sie Ihre Unterschrift zu einem beliebigen PDF-Dokument hinzu. Das Werkzeug bettet einen vollständigen PDF-Viewer mit integrierten Signaturwerkzeugen ein, mit denen Sie eine Unterschrift freihändig zeichnen, Ihren Namen in einer Schreibschrift tippen oder ein Unterschriftsbild hochladen können. Platzieren Sie und skalieren Sie Unterschriften auf jeder Seite und speichern Sie dann das unterschriebene Dokument.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Das Dokument öffnet sich in einem integrierten PDF-Viewer mit Annotationswerkzeugen.
+3. Erstellen Sie mit dem Signaturwerkzeug des Viewers Ihre Unterschrift durch Zeichnen, Tippen oder Hochladen eines Bildes.
+4. Klicken Sie auf die Stelle der Seite, an der die Unterschrift stehen soll, und passen Sie Größe und Position an.
+5. Aktivieren Sie optional **PDF reduzieren**, um die Unterschrift dauerhaft in das Dokument einzubetten.
+6. Klicken Sie auf **Speichern & unterschriebene PDF herunterladen**, um Ihre unterschriebene Datei zu erhalten.
+
+## Optionen
+
+- **PDF reduzieren**: Wenn aktiviert, wird die Unterschrift dauerhaft in den Seiteninhalt eingebettet. So kann sie von anderen nicht verschoben oder gelöscht werden. Wenn deaktiviert, bleibt die Unterschrift eine Annotation, die in kompatiblen Viewern bearbeitet werden kann.
+
+## Funktionen
+
+- Drei Methoden zur Unterschriftserstellung: freihändiges Zeichnen, getippter Text oder hochgeladenes Bild
+- Integrierter PDF-Viewer für genaues Platzieren
+- Unterschriften auf jeder Seite per Ziehen positionieren und skalieren
+- Optionales Reduzieren, um Unterschriften dauerhaft einzubetten
+- Unterstützung mehrerer Unterschriften im selben Dokument
+
+## Anwendungsfälle
+
+- Verträge, Vereinbarungen oder Genehmigungsformulare unterschreiben, bevor Sie sie zurücksenden
+- Ihre Unterschrift unter Steuerunterlagen, Versicherungsansprüche oder Behördenformulare setzen
+- Paraphen auf einzelne Seiten einer mehrseitigen Vereinbarung setzen
+- NDAs oder Personaldokumente unterschreiben, die als PDF-Anhang eintreffen
+
+## Tipps
+
+- Aktivieren Sie das Reduzieren, wenn Sie die unterschriebene PDF an jemanden senden, der Ihre Unterschrift nicht entfernen oder verschieben können soll.
+- Für rechtsverbindliche digitale Signaturen mit zertifikatsbasierter Überprüfung bietet BentoPDF außerdem ein separates Werkzeug für digitale Signaturen.
+- Laden Sie ein PNG-Unterschriftsbild mit transparentem Hintergrund hoch, um das sauberste Ergebnis zu erhalten.
+
+## Verwandte Werkzeuge
+
+- [PDF-Editor](./edit-pdf)
+- [Stempel hinzufügen](./add-stamps)
+- [PDF-Formular ausfüllen](./form-filler)
diff --git a/docs/de/tools/split-pdf.md b/docs/de/tools/split-pdf.md
new file mode 100644
index 00000000..3de7862c
--- /dev/null
+++ b/docs/de/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: PDF teilen
+description: Teilen Sie eine PDF in kleinere Dateien nach Seitenbereich, visueller Auswahl, Lesezeichen, geraden/ungeraden Seiten oder festen Intervallen.
+---
+
+# PDF teilen
+
+Zerlege eine PDF mit einem von sechs Teilungsmodi in kleinere Dokumente. Von einfachen Seitenbereichen bis zur Teilung nach Lesezeichen deckt dieses Werkzeug jedes Szenario zum Aufteilen eines Dokuments ab.
+
+## So funktioniert es
+
+1. Laden Sie eine einzelne PDF-Datei hoch.
+2. Wählen Sie im Dropdown einen Teilungsmodus.
+3. Konfigurieren Sie die modusspezifischen Optionen (Seitenbereiche, Auswahlen usw.).
+4. Klicken Sie auf die Schaltfläche zum Verarbeiten.
+5. Das Ergebnis wird je nach Modus und Einstellungen als einzelne PDF oder als ZIP-Archiv heruntergeladen.
+
+## Teilungsmodi
+
+| Modus | Beschreibung |
+| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Bereich** | Gib Seitenbereiche wie `1-3, 5, 8-10` ein. Mehrere Bereiche ergeben getrennte PDFs in einem ZIP. Ein einzelner Bereich ergibt eine PDF. |
+| **Visuelle Auswahl** | Blättern Sie durch Seitenvorschauen und klicken Sie, um die gewünschten Seiten auszuwählen. Ausgewählte Seiten werden in eine neue PDF extrahiert. |
+| **Gerade / Ungerade** | Extrahiere nur gerade oder nur ungerade Seiten. |
+| **Alle Seiten** | Teile jede Seite in eine eigene PDF-Datei auf, die als ZIP heruntergeladen wird. |
+| **Lesezeichen** | Teile an Lesezeichengrenzen. Wählen Sie die Lesezeichenebene, um zu steuern, wo geteilt wird. |
+| **Alle N Seiten** | Teile in Abschnitte von je N Seiten (z. B. alle 5 Seiten). Der letzte Abschnitt kann weniger Seiten haben. |
+
+## Funktionen
+
+- Sechs verschiedene Teilungsmodi, die praktisch jeden Anwendungsfall abdecken
+- Visuelle Seitenauswahl mit bei Bedarf geladenen Vorschaubildern
+- Teilung nach Lesezeichen mit Ebenenfilter
+- ZIP-Ausgabe als Option für die Modi Bereich und Visuell
+- Verarbeitet Seitenbereiche mit gemischter Syntax (`1-3, 5, 8-10`)
+- Warnung, wenn die Teilung nach N Seiten ungleich große Abschnitte ergibt
+
+## Anwendungsfälle
+
+- Ein bestimmtes Kapitel oder einen Abschnitt aus einem großen Dokument extrahieren
+- Ungerade und gerade Seiten für Abläufe beim doppelseitigen Drucken trennen
+- Ein Buch als PDF an den Lesezeichengrenzen in einzelne Kapiteldateien zerlegen
+- Bestimmte Seiten (wie die Unterschriftsseite) aus einem Vertrag herauslösen
+- Einen zusammengestellten Bericht für die Verteilung in Dateien pro Abschnitt teilen
+
+## Tipps
+
+- Mehrere durch Kommas getrennte Seitenbereiche (z. B. `1-5, 10-15, 20-25`) ergeben getrennte PDFs, eine pro Bereich, gebündelt in einem ZIP.
+- Der Modus Lesezeichen setzt voraus, dass die PDF tatsächlich Lesezeichen enthält. Werden keine gefunden, erhalten Sie eine Fehlermeldung.
+- Mit dem Kontrollkästchen "Als ZIP herunterladen" in den Modi Bereich und Visuell erhalten Sie einzelne PDFs pro Seite statt einer kombinierten Datei.
+
+## Verwandte Werkzeuge
+
+- [PDF zusammenführen](./merge-pdf)
+- [Seiten extrahieren](./extract-pages)
+- [Seiten löschen](./delete-pages)
+- [PDF-Multitool](./pdf-multi-tool)
diff --git a/docs/de/tools/svg-to-pdf.md b/docs/de/tools/svg-to-pdf.md
new file mode 100644
index 00000000..4f2f2d4f
--- /dev/null
+++ b/docs/de/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG zu PDF
+description: Wandeln Sie SVG-Vektorgrafiken mit Qualitätssteuerung vollständig in Ihrem Browser in PDF um.
+---
+
+# SVG zu PDF
+
+Wandeln Sie Scalable-Vector-Graphics-Dateien (SVG) in PDF um. Das Werkzeug rastert jede SVG über die Rendering-Engine des Browsers und bettet das Ergebnis in seiner Originalauflösung ein. Praktisch, um Vektorsymbole, Diagramme und Illustrationen in portable Dokumente zu verwandeln.
+
+## Unterstützte Formate
+
+| Format | Endungen |
+| :----- | :------- |
+| SVG | `.svg` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie eine oder mehrere SVG-Dateien per Drag & Drop hinein.
+2. Prüfen und verwalten Sie die Dateiliste.
+3. Wählen Sie eine **PDF-Qualität**.
+4. Klicken Sie auf **In PDF umwandeln**. Das Ergebnis wird als `from_svgs.pdf` heruntergeladen.
+
+Jede SVG wird als Text gelesen, mit ihrer eigenen Breite und Höhe auf eine Canvas gerendert (Standard 800x600, wenn keine Maße angegeben sind) und als PNG exportiert. Dieses PNG wird dann mit pdf-lib in die PDF eingebettet. Transparente Bereiche werden mit weißem Hintergrund gefüllt.
+
+## Optionen
+
+**PDF-Qualität** steuert die Komprimierung nach dem Rastern:
+
+- **Hohe Qualität**: am nächsten an der ursprünglichen Darstellung.
+- **Mittlere Qualität** (Standard): gute Balance.
+- **Niedrige Qualität**: kleinste Datei, etwas Detailverlust.
+
+## Anwendungsfälle
+
+- Architektur- oder Konstruktionsdiagramme von SVG in eine druckfertige PDF umwandeln
+- Symbolsammlungen für ein Design-System in einer Referenz-PDF bündeln
+- Datenvisualisierungen (D3.js, Exporte von Diagrammbibliotheken) in berichtsfertige PDFs verwandeln
+- Druckbare Versionen SVG-basierter Infografiken erstellen
+
+## Tipps
+
+- SVG-Dateien ohne explizite Attribute `width` und `height` werden mit 800x600 Pixeln gerendert. Legen Sie für beste Ergebnisse die Maße im SVG-Quelltext fest, bevor Sie umwandeln.
+- Komplexe SVGs mit externen Schriftverweisen oder verknüpften Bildern werden möglicherweise nicht perfekt dargestellt. Binden Sie für zuverlässige Ausgabe alle Ressourcen direkt in die SVG ein.
+- Da die SVG gerastert wird, enthält die PDF ein Bitmap-Bild statt Vektorpfaden. Für echte Vektor-PDF-Ausgabe ist ein spezielles Vektorwerkzeug nötig.
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
+- [BMP zu PDF](./bmp-to-pdf)
diff --git a/docs/de/tools/table-of-contents.md b/docs/de/tools/table-of-contents.md
new file mode 100644
index 00000000..6ca5bb92
--- /dev/null
+++ b/docs/de/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Inhaltsverzeichnis
+description: Erzeugen Sie aus den vorhandenen Lesezeichen Ihrer PDF eine formatierte Inhaltsverzeichnisseite.
+---
+
+# Inhaltsverzeichnis
+
+Dieses Werkzeug liest die Lesezeichen (Gliederungen) Ihrer PDF und erzeugt eine formatierte Inhaltsverzeichnisseite, die dem Dokument vorangestellt wird. Wenn Ihre PDF bereits Lesezeichen hat, aber keine sichtbare Inhaltsverzeichnisseite, erstellt dieses Werkzeug automatisch eine.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF mit Lesezeichen hoch.
+2. Passen Sie Titel, Schriftgröße und Schriftfamilie des Inhaltsverzeichnisses an.
+3. Aktivieren Sie optional **Lesezeichen für Inhaltsverzeichnisseite hinzufügen**, um das Inhaltsverzeichnis selbst in den Lesezeichenbaum aufzunehmen.
+4. Klicken Sie auf **Inhaltsverzeichnis erstellen**, um die Datei zu verarbeiten.
+5. Die aktualisierte PDF wird automatisch heruntergeladen, die Inhaltsverzeichnisseite steht am Anfang.
+
+## Optionen
+
+- **Titel des Inhaltsverzeichnisses**: Die Überschrift oben auf der erzeugten Seite. Standard ist "Inhaltsverzeichnis".
+- **Schriftgröße**: Wählen Sie von 10 pt bis 72 pt. Standard ist 12 pt.
+- **Schriftfamilie**: Wählen Sie aus den Varianten Times Roman, Helvetica oder Courier (normal, fett, kursiv, fett kursiv). Standard ist Helvetica.
+- **Lesezeichen für Inhaltsverzeichnisseite hinzufügen**: Wenn aktiviert, wird dem Gliederungsbaum der PDF ein Lesezeichen für die Inhaltsverzeichnisseite selbst hinzugefügt.
+
+## Funktionen
+
+- Liest die gesamte Lesezeichenhierarchie aus der PDF
+- Erzeugt eine sauber formatierte Inhaltsverzeichnisseite mit Seitenzahlverweisen
+- Unterstützt verschachtelte Lesezeichenebenen mit Einrückung
+- Auswahl aus 12 integrierten PDF-Schriften
+- Optionales selbstverweisendes Lesezeichen für die Inhaltsverzeichnisseite
+
+## Anwendungsfälle
+
+- Ein druckbares Inhaltsverzeichnis zu E-Books oder Berichten hinzufügen, die nur digitale Lesezeichen haben
+- Ein Inhaltsverzeichnis für ein Dokument erstellen, das aus mehreren PDFs zusammengeführt wurde
+- Eine Übersichtsseite für lange technische Handbücher erzeugen
+- Dokumente für den Druck vorbereiten, bei denen ein sichtbares Inhaltsverzeichnis erwartet wird
+
+## Tipps
+
+- Wenn Ihre PDF keine Lesezeichen hat, erstellen Sie sie zuerst mit dem Werkzeug [Lesezeichen bearbeiten](./bookmark) und kommen Sie dann hierher zurück, um das Inhaltsverzeichnis zu erzeugen.
+- Bei großen Dokumenten verbessert eine größere Schrift wie 14 pt oder 16 pt die Lesbarkeit.
+
+## Verwandte Werkzeuge
+
+- [Lesezeichen bearbeiten](./bookmark)
+- [Seitenzahlen](./page-numbers)
+- [Kopf- & Fußzeile](./header-footer)
diff --git a/docs/de/tools/text-color.md b/docs/de/tools/text-color.md
new file mode 100644
index 00000000..65e7cd58
--- /dev/null
+++ b/docs/de/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Textfarbe ändern
+description: Ändern Sie die Farbe des gesamten Textes in Ihrer PDF in eine beliebige Farbe Ihrer Wahl.
+---
+
+# Textfarbe ändern
+
+Ersetze die Farbe des Textes in Ihrer gesamten PDF. Das Werkzeug erkennt Textbereiche auf jeder Seite und färbt sie in Ihre gewählte Farbe um, während Layout und Inhalte, die kein Text sind, erhalten bleiben.
+
+## So funktioniert es
+
+1. Laden Sie Ihre PDF-Datei hoch.
+2. Wählen Sie mit der Farbauswahl eine neue Textfarbe. Standard ist Blau (#0000FF).
+3. Klicken Sie auf **Textfarbe ändern**, um die Verarbeitung zu starten.
+4. Die umgefärbte PDF wird automatisch heruntergeladen. Eine Fortschrittsanzeige zeigt, welche Seite gerade verarbeitet wird.
+
+## Optionen
+
+- **Neue Textfarbe**: Eine Farbauswahl für die Ersatzfarbe des gesamten Textes im Dokument.
+
+## Funktionen
+
+- Färbt den Text auf jeder Seite des Dokuments um
+- Verarbeitung seitenweise mit Fortschrittsanzeige
+- Farbauswahl mit voller Unterstützung von Hex-Farbwerten
+- Erhält Seitenlayout und Elemente, die kein Text sind
+
+## Anwendungsfälle
+
+- Schwarzen Text in dunkles Blau ändern, für ein weicheres, moderneres Dokumentbild
+- Text vor der Verteilung von Dokumenten an Markenrichtlinien anpassen
+- Text für die Barrierefreiheit in eine bestimmte Farbe umwandeln
+- Text vor einer neu angewendeten Hintergrundfarbe sichtbar machen
+
+## Tipps
+
+- Dieses Werkzeug rendert Seiten für die Qualität in doppelter Größe und baut die PDF dann neu auf. Die Ausgabe ist bildbasiert, der Text ist danach nicht mehr auswählbar oder durchsuchbar.
+- Wenn Sie auswählbaren Text behalten müssen, bearbeiten Sie die PDF stattdessen direkt mit dem [PDF-Editor](./edit-pdf).
+- Die Verarbeitungszeit steigt mit der Seitenzahl, da jede Seite einzeln gerendert wird.
+
+## Verwandte Werkzeuge
+
+- [Hintergrundfarbe](./background-color)
+- [Farben invertieren](./invert-colors)
+- [Farben anpassen](./adjust-colors)
diff --git a/docs/de/tools/tiff-to-pdf.md b/docs/de/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..7961657e
--- /dev/null
+++ b/docs/de/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF zu PDF
+description: Wandeln Sie einseitige und mehrseitige TIFF-Bilder in Ihrem Browser mit voller Seitenunterstützung in PDF um.
+---
+
+# TIFF zu PDF
+
+Wandeln Sie TIFF-Dateien in PDF um, auch mehrseitige TIFFs. Jede Seite (oder "IFD") einer TIFF-Datei wird zu einer eigenen Seite in der Ausgabe-PDF. Das ist besonders nützlich für gescannte Dokumente, Faxe und medizinische Bilder, die häufig als mehrseitige TIFFs gespeichert werden.
+
+## Unterstützte Formate
+
+| Format | Endungen |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre TIFF-Dateien per Drag & Drop hinein.
+2. Prüfen Sie die Dateiliste und verwalten Sie sie nach Bedarf.
+3. Klicken Sie auf **In PDF umwandeln**. Das Ergebnis wird als `from_tiff.pdf` heruntergeladen.
+
+Das Werkzeug dekodiert jede TIFF-Datei mit einem JavaScript-TIFF-Decoder und extrahiert die rohen RGBA-Pixeldaten jeder Seite. Jede Seite wird auf eine Canvas gerendert, als PNG exportiert und in die PDF eingebettet. Die Seitenmaße entsprechen denen der ursprünglichen TIFF-Seiten.
+
+## Optionen
+
+Dieses Werkzeug bietet keine zusätzlichen Qualitätseinstellungen. Bilder werden in ihrer Originalauflösung eingebettet.
+
+## Anwendungsfälle
+
+- Mehrseitige Faxdokumente (TIFF-F) in ein portableres PDF-Format umwandeln
+- Gescannte Dokumentarchive, die als TIFF vorliegen, in durchsuchbare PDFs verwandeln (anschließend mit dem OCR-Werkzeug kombinieren)
+- Medizinische Bilddateien (Pathologie-Präparate, Radiologie-Exporte) im TIFF-Format verarbeiten
+- GIS- oder Satellitenbild-TIFFs in teilbare Dokumente umwandeln
+
+## Tipps
+
+- Mehrseitige TIFFs werden vollständig unterstützt. Ein TIFF mit 10 Seiten ergibt eine PDF mit 10 Seiten. Sie müssen das TIFF nicht vorher teilen.
+- Sehr große TIFF-Dateien (mehrere hundert Megabyte) können länger dauern, da die gesamte Datei im Browserspeicher dekodiert werden muss.
+- Wenn Sie OCR auf der entstandenen PDF brauchen, führen Sie sie nach der Umwandlung durch das Werkzeug [OCR PDF](./ocr-pdf).
+
+## Verwandte Werkzeuge
+
+- [Bilder zu PDF](./image-to-pdf)
+- [BMP zu PDF](./bmp-to-pdf)
+- [JPG zu PDF](./jpg-to-pdf)
diff --git a/docs/de/tools/txt-to-pdf.md b/docs/de/tools/txt-to-pdf.md
new file mode 100644
index 00000000..175d69f6
--- /dev/null
+++ b/docs/de/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Text zu PDF
+description: Wandeln Sie reine Textdateien oder getippten Text mit eigenen Schriften, Farben und Seitengrößen in PDF um.
+---
+
+# Text zu PDF
+
+Wandeln Sie reinen Text in eine formatierte PDF um. Sie können `.txt`-Dateien hochladen oder direkt im integrierten Texteditor tippen. Das Werkzeug unterstützt mehrere Schriften, eigene Textfarben und viele Seitengrößen, von A0 bis A10 sowie US Letter, Legal und Tabloid.
+
+## Unterstützte Formate
+
+| Eingabe | Endungen |
+| :------------------ | :----------------------------- |
+| Reine Textdateien | `.txt` |
+| Direkte Texteingabe | Im Editor tippen oder einfügen |
+
+## So funktioniert es
+
+1. Wählen Sie Ihren Eingabemodus mit dem Schalter oben: **Dateien hochladen** oder **Text eingeben**.
+2. Ziehen Sie beim Hochladen eine oder mehrere `.txt`-Dateien per Drag & Drop hinein oder klicken Sie zur Auswahl. Geben Sie beim Tippen Ihren Text direkt in das Textfeld ein.
+3. Konfigurieren Sie die Formatierungsoptionen: Schriftfamilie, Schriftgröße, Textfarbe und Seitengröße.
+4. Klicken Sie auf **PDF erstellen**. Die Ausgabe wird als `text_to_pdf.pdf` heruntergeladen.
+
+Beim Hochladen mehrerer Dateien werden ihre Inhalte mit Leerzeilen dazwischen aneinandergehängt.
+
+## Optionen
+
+| Option | Werte | Standard |
+| :----------------- | :------------------------------------------------------------------------------- | :---------------- |
+| **Schriftfamilie** | Helvetica (serifenlos), Tiro (Serif), Courier (Festbreite), Times (Serif) | Helvetica |
+| **Schriftgröße** | 6 bis 72 pt | 12 |
+| **Textfarbe** | Beliebige Farbe über die Farbauswahl | Schwarz (#000000) |
+| **Seitengröße** | ISO A0 bis A10, B0 bis B10, C0 bis C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+RTL-Sprachen (Arabisch, Hebräisch, Persisch, Urdu) werden automatisch erkannt. Wird RTL-Text gefunden, wechseln Textrichtung und Ausrichtung entsprechend.
+
+## Anwendungsfälle
+
+- Code-Schnipsel oder Logdateien mit der Schrift Courier in eine druckbare PDF umwandeln
+- Aus spontan getippten Besprechungsnotizen schnell eine PDF erstellen
+- Ein Manuskript als reinen Text für die Einreichung mit bestimmter Schrift und Seitengröße formatieren
+- Eine PDF-Version einer README oder eines Changelogs für die Offline-Verteilung erstellen
+
+## Tipps
+
+- Nutzen Sie den Modus **Text eingeben**, wenn Sie Inhalte aus der Zwischenablage schnell umwandeln wollen, ohne sie zuerst als Datei zu speichern.
+- Courier (Festbreite) ist die beste Schriftwahl für Code, Logs oder alle Inhalte, bei denen die Spaltenausrichtung wichtig ist.
+- Die Seitenränder sind auf allen Seiten fest auf 72 Punkt (2,54 cm) eingestellt.
+
+## Verwandte Werkzeuge
+
+- [Markdown zu PDF](./markdown-to-pdf)
+- [CSV zu PDF](./csv-to-pdf)
+- [Word zu PDF](./word-to-pdf)
diff --git a/docs/de/tools/unlock-pdf.md b/docs/de/tools/unlock-pdf.md
new file mode 100644
index 00000000..91ad70c8
--- /dev/null
+++ b/docs/de/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDF entsperren
+description: Entfernen Sie den Passwortschutz von verschlüsselten PDFs. Unterstützt die Stapelentschlüsselung mehrerer Dateien mit einem einzigen Passwort.
+---
+
+# PDF entsperren
+
+Wenn Sie das Passwort einer verschlüsselten PDF kennen, entfernt dieses Tool die Verschlüsselung vollständig und erzeugt eine entsperrte Kopie, die jeder ohne Zugangsdaten öffnen kann. Es unterstützt die Stapelentschlüsselung, wenn mehrere PDFs dasselbe Passwort haben.
+
+## So funktioniert es
+
+1. Laden Sie eine oder mehrere verschlüsselte PDF-Dateien hoch.
+2. Geben Sie das **Passwort** ein, mit dem die Dateien geschützt wurden.
+3. Klicken Sie auf **PDF entschlüsseln**.
+4. Eine einzelne Datei wird direkt heruntergeladen. Bei mehreren Dateien entsteht ein ZIP-Archiv mit allen entsperrten PDFs.
+
+## Funktionen
+
+- Entschlüsselung einzelner Dateien und im Stapel
+- Unterstützt Benutzer- und Besitzerpasswörter
+- Erzeugt eine vollständig unverschlüsselte Ausgabe ohne verbleibende Einschränkungen
+- Klare Fehlermeldungen bei falschen Passwörtern oder beschädigten Dateien
+- Erfolg und Fehler werden im Stapelmodus pro Datei erfasst
+
+## Unterschied zu „Beschränkungen entfernen“
+
+**PDF entschlüsseln** erfordert das Passwort und entfernt die gesamte Verschlüsselung. **Beschränkungen entfernen** zielt auf Nutzungsbeschränkungen (Drucken, Kopieren, Bearbeiten) ab und benötigt möglicherweise kein Passwort, wenn nur ein Besitzerpasswort gesetzt wurde. Verwenden Sie „Entschlüsseln“, wenn sich die PDF ohne Passwort gar nicht öffnen lässt.
+
+## Anwendungsfälle
+
+- Von Ihnen früher verschlüsselte PDFs dauerhaft entsperren, wenn das Passwort nicht mehr gebraucht wird
+- Die Verschlüsselung eines Stapels archivierter Dokumente entfernen, um den Langzeitzugriff zu erleichtern
+- Passwortgeschützte PDFs für ein Dokumentenmanagementsystem vorbereiten, das keine verschlüsselten Dateien unterstützt
+- PDFs entsperren, bevor Sie sie mit anderen Dokumenten zusammenfügen (viele Tools zum Zusammenfügen können verschlüsselte Eingaben nicht verarbeiten)
+
+## Tipps
+
+- Das Passwortfeld gilt für alle hochgeladenen Dateien. Wenn Ihre PDFs unterschiedliche Passwörter haben, verarbeiten Sie sie in getrennten Stapeln.
+- Wenn die Fehlermeldung „Falsches Passwort“ erscheint, prüfen Sie auf Leerzeichen am Ende oder eine aktivierte Feststelltaste.
+- Nach der Entschlüsselung hat die Ausgabe keinerlei Schutz. Verschlüsseln Sie sie mit „PDF verschlüsseln“ erneut, wenn Sie ein neues Passwort vergeben möchten.
+
+## Verwandte Tools
+
+- [PDF verschlüsseln](./protect-pdf): Verschlüsselung mit einem neuen Passwort erneut anwenden
+- [Beschränkungen entfernen](./remove-restrictions): Nutzungsbeschränkungen ohne vollständige Entschlüsselung entfernen
+- [Berechtigungen ändern](./change-permissions): bestimmte Berechtigungen einer verschlüsselten PDF ändern
diff --git a/docs/de/tools/validate-signature-pdf.md b/docs/de/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..5c76219b
--- /dev/null
+++ b/docs/de/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Signatur prüfen
+description: Überprüfen Sie digitale Signaturen in PDF-Dateien. Prüfen Sie Zertifikatsgültigkeit, Identität des Unterzeichners, Dokumentintegrität und Status der Vertrauenskette.
+---
+
+# Signatur prüfen
+
+Laden Sie eine signierte PDF hoch, und dieses Tool liest jede digitale Signatur aus, identifiziert den Unterzeichner, prüft die Gültigkeit des Zertifikats und meldet, ob das Dokument seit der Signatur verändert wurde. Sie können auch ein vertrauenswürdiges Zertifikat angeben, um die Signaturkette zu verifizieren.
+
+## So funktioniert es
+
+1. Laden Sie eine signierte PDF-Datei hoch. Die Prüfung startet automatisch.
+2. Das Tool zeigt eine Zusammenfassung: Anzahl der gefundenen Signaturen und wie viele davon gültig sind.
+3. Jede Signatur erhält eine Detailkarte mit Name des Unterzeichners, Aussteller, Daten und Status.
+4. Laden Sie optional ein **vertrauenswürdiges Zertifikat** (.pem, .crt, .cer, .der) hoch, um die Signatur gegen einen bestimmten Vertrauensanker zu prüfen. Die erneute Prüfung läuft automatisch.
+
+## Was geprüft wird
+
+### Signatur-Parsing
+
+Das Tool liest PKCS#7-Signaturobjekte aus der PDF, dekodiert die ASN.1-Struktur und extrahiert das X.509-Zertifikat des Unterzeichners sowie eine in der Signatur eingebettete Zertifikatskette.
+
+### Zertifikatsgültigkeit
+
+- **Ablauf**: Liegt das Zertifikat derzeit innerhalb seines Gültigkeitszeitraums?
+- **Erkennung selbstsignierter Zertifikate**: Ist das Zertifikat sein eigener Aussteller?
+- **Vertrauenskette**: Führt das Zertifikat des Unterzeichners bei Angabe eines vertrauenswürdigen Zertifikats auf dieses zurück?
+
+### Kryptografische Verifizierung
+
+- Das Tool rekonstruiert die vom `/ByteRange` der Signatur abgedeckten Bytes, bildet mit dem vom Unterzeichner angegebenen Algorithmus einen Hash und vergleicht das Ergebnis mit dem Attribut `messageDigest` in der Signatur.
+- Anschließend serialisiert es die signierten Attribute erneut als DER SET und verifiziert die Signatur mit dem öffentlichen Schlüssel des Unterzeichnerzertifikats.
+- **Eine Signatur wird nur dann als gültig gemeldet, wenn alle diese Prüfungen bestehen.** Wurden die PDF-Bytes nach der Signatur geändert oder passt die eingebettete Signatur nicht zum Schlüssel des Unterzeichners, zeigt der Status „Ungültig: Kryptografische Verifizierung fehlgeschlagen“ mit dem genauen Grund.
+
+#### Unterstützte Signaturalgorithmen
+
+| Algorithmus | Verifizierungspfad |
+| ----------------------- | -------------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, mit Web-Crypto-Fallback |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` nach Umwandlung der Signatur von DER → IEEE P1363 |
+
+Verwendet eine Signatur einen Algorithmus außerhalb dieser Liste (zum Beispiel Ed25519, SM2 oder RSA mit einer ungewöhnlichen Digest-OID), zeigt die Karte in Gelb **„Ungeprüft: Nicht unterstützter Signaturalgorithmus“** zusammen mit der konkreten OID oder dem Grund. Dies ist eine bewusste Unterscheidung in drei Zustände:
+
+- **Gültig**: Die Signatur wurde kryptografisch gegen den öffentlichen Schlüssel des Unterzeichners verifiziert.
+- **Ungültig**: Die Verifizierung lief und ergab ein negatives Ergebnis (Bytes geändert, Schlüssel passt nicht).
+- **Ungeprüft**: Das Tool konnte die Verifizierung für diesen Algorithmus nicht durchführen. Die Zertifikatsmetadaten werden weiterhin angezeigt, die Signatur sollten Sie aber als „unbekannt“ behandeln und mit Adobe Acrobat oder `openssl cms -verify` prüfen.
+
+### Unsichere Digest-Algorithmen
+
+- Signaturen mit **MD5 oder SHA-1** werden als ungültig abgelehnt und mit dem Status „Unsicherer Digest“ markiert. Für beide Algorithmen gibt es veröffentlichte Kollisionsangriffe, sodass eine Signatur über einen SHA-1- oder MD5-Hash keine Integritätsgarantie bietet.
+- SHA-224, SHA-256, SHA-384 und SHA-512 werden alle akzeptiert.
+
+### Dokumentabdeckung
+
+- **Vollständige Abdeckung**: Die Signatur deckt die gesamte PDF-Datei ab, das heißt, nach der Signatur wurden keine Bytes hinzugefügt oder geändert.
+- **Teilweise Abdeckung**: Die Signatur deckt nur einen Teil der Datei ab. Das kann auf Änderungen nach der Signatur hindeuten (nicht zwingend böswillige, denn inkrementelle Speicherungen führen zu teilweiser Abdeckung).
+
+## Signaturdetails
+
+Jede Signaturkarte zeigt:
+
+- **Signiert von**: Common Name, Organisation und E-Mail-Adresse aus dem Zertifikat des Unterzeichners
+- **Aussteller**: Die Zertifizierungsstelle, die das Zertifikat des Unterzeichners ausgestellt hat
+- **Signiert am**: Der in der Signatur eingebettete Zeitstempel
+- **Gültig ab / Gültig bis**: Der Gültigkeitszeitraum des Zertifikats
+- **Grund**: Warum das Dokument signiert wurde (falls angegeben)
+- **Ort**: Wo es signiert wurde (falls angegeben)
+- **Abdeckungsstatus**: Vollständig oder teilweise
+- **Vertrauensabzeichen**: Vertrauenswürdig oder Nicht in der Vertrauenskette (nur bei einem eigenen Zertifikat)
+
+### Technische Details
+
+Öffnen Sie den Bereich mit den technischen Details für:
+
+- Seriennummer des Zertifikats des Unterzeichners
+- Digest-Algorithmus (SHA-256, SHA-512 usw.)
+- Signaturalgorithmus (RSA mit SHA-256, ECDSA mit SHA-256 usw.)
+- Fehlermeldungen für ungültige Signaturen
+
+## Anwendungsfälle
+
+- Einen digital signierten Vertrag prüfen, bevor Sie gegenzeichnen
+- Signierte Dokumente prüfen, um sicherzustellen, dass sie nicht manipuliert wurden
+- Kontrollieren, ob ein Zertifikat seit der Signierung des Dokuments abgelaufen ist
+- Signaturen gegen das Stammzertifikat Ihrer Organisation validieren
+- Die Signaturdetails von behördlichen oder rechtlichen Dokumenten untersuchen
+
+## Tipps
+
+- Ein selbstsigniertes Zertifikat bedeutet nicht, dass die Signatur ungültig ist. Es bedeutet, dass sich die Identität des Unterzeichners nicht über eine vertrauenswürdige dritte Stelle verifizieren lässt. Das ist bei internen Dokumenten üblich.
+- Teilweise Abdeckung weist nicht immer auf Manipulation hin. Viele PDF-Workflows fügen inkrementelle Updates hinzu (etwa eine zweite Signatur), die eine teilweise Abdeckung erzeugen.
+- Laden Sie das Stamm- oder Zwischenzertifikat Ihrer Organisation als vertrauenswürdiges Zertifikat hoch, um die Vertrauensketten-Verifizierung zu erhalten.
+
+## Verwandte Tools
+
+- [Digitale Signatur](./digital-sign-pdf): PDFs mit Ihrem eigenen Zertifikat signieren
+- [PDF reduzieren](./flatten-pdf): eine PDF vor dem Signieren reduzieren, um Änderungen nach der Signatur zu verhindern
+- [Metadaten entfernen](./remove-metadata): eine PDF vor dem Anbringen einer Signatur bereinigen
diff --git a/docs/de/tools/view-metadata.md b/docs/de/tools/view-metadata.md
new file mode 100644
index 00000000..a0bf73eb
--- /dev/null
+++ b/docs/de/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Metadaten anzeigen
+description: Untersuchen Sie alle Metadateneigenschaften einer PDF, einschließlich Dokumentinformationen, XMP-Daten und struktureller Details.
+---
+
+# Metadaten anzeigen
+
+Untersuchen Sie die versteckten Eigenschaften, die in einer PDF-Datei eingebettet sind. Das Tool zeigt Dokumentinformationen (Titel, Autor, Datumsangaben), XMP-Metadaten, Seitenabmessungen und weitere strukturelle Daten in lesbarer Form an.
+
+## So funktioniert es
+
+1. Laden Sie eine PDF-Datei hoch.
+2. Das Tool analysiert die Datei sofort und zeigt alle verfügbaren Metadaten in übersichtlichen Abschnitten an.
+3. Sehen Sie sich das Dokumentinformations-Dictionary, den XMP-Metadatenbaum und die strukturellen Eigenschaften an.
+4. Ein Verarbeitungsschritt ist nicht nötig: Die Metadaten erscheinen, sobald die Datei geladen ist.
+
+## Funktionen
+
+- Zeigt die Standardfelder der Dokumentinformationen: Titel, Autor, Betreff, Schlüsselwörter, Ersteller, Producer
+- Zeigt Erstellungs- und Änderungsdatum in lesbarem Format
+- Liest den vollständigen XMP-Metadatenbaum mit verschachtelten Namespaces und stellt ihn dar
+- Wandelt das PDF-Datumsformat (`D:20240101120000Z`) in lesbare Datumsangaben um
+- In einklappbare Abschnitte gegliedert für eine einfache Navigation
+
+## Metadatenabschnitte
+
+| Abschnitt | Inhalt |
+| ------------------------- | --------------------------------------------------------------------------------------------- |
+| **Dokumentinformationen** | Titel, Autor, Betreff, Schlüsselwörter, Ersteller, Producer, Erstellungsdatum, Änderungsdatum |
+| **XMP-Metadaten** | Vollständiger XML-basierter Metadatenbaum mit Dublin Core, XAP, PDF und eigenen Namespaces |
+| **Dokumenteigenschaften** | Seitenanzahl, PDF-Version, Dateigröße, Verschlüsselungsstatus |
+
+## Anwendungsfälle
+
+- Prüfen, wer eine PDF verfasst hat und wann sie zuletzt geändert wurde
+- Kontrollieren, dass die Metadaten vor der Veröffentlichung eines Dokuments korrekt gesetzt wurden
+- PDFs aus Datenschutzgründen prüfen, indem man nachsieht, welche persönlichen Informationen eingebettet sind
+- Die Software untersuchen, mit der eine PDF erstellt oder geändert wurde (über das Feld Producer)
+- XMP-Metadaten im Hinblick auf die Compliance im Digital Asset Management prüfen
+
+## Tipps
+
+- PDF-Datumsangaben, die mit `D:` beginnen, werden automatisch in das Format Ihrer lokalen Zeitzone umgewandelt.
+- Wenn Metadatenfelder leer erscheinen, hat der Ersteller der PDF sie schlicht nicht gesetzt. Nicht alle PDFs enthalten umfangreiche Metadaten.
+- Um Metadaten nach der Prüfung zu ändern, verwenden Sie [Metadaten bearbeiten](./edit-metadata). Um sie ganz zu entfernen, nutzen Sie „Metadaten entfernen“.
+
+## Verwandte Tools
+
+- [Metadaten bearbeiten](./edit-metadata)
+- [PDF-OCG-Ebenen](./pdf-layers)
+- [PDFs vergleichen](./compare-pdfs)
diff --git a/docs/de/tools/vsd-to-pdf.md b/docs/de/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..5c3e9d5f
--- /dev/null
+++ b/docs/de/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD zu PDF
+description: Konvertieren Sie Microsoft-Visio-Diagramme (VSD/VSDX) in Ihrem Browser in PDF. Kostenlos, privat, ohne Visio.
+---
+
+# VSD zu PDF
+
+Konvertieren Sie Microsoft-Visio-Diagramme in PDF, ohne Visio zu installieren. VSD- und VSDX-Dateien enthalten Flussdiagramme, Organigramme, Netzwerkdiagramme und Grundrisse, die die meisten Menschen nicht öffnen können. Dieses Tool wandelt sie in saubere PDFs um, die sich auf jedem Gerät ansehen lassen.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----------- | :---------- | :----------------------------------------- |
+| Visio Binary | `.vsd` | Altes Visio-Format (Visio 2003 und früher) |
+| Visio XML | `.vsdx` | Modernes Visio-Format (Visio 2013+) |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre VSD- oder VSDX-Dateien per Drag-and-drop hinein. Beide Formate können in einem Stapel gemischt werden.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Einträge mit dem Papierkorb-Symbol oder fügen Sie über **Weitere Dateien hinzufügen** weitere Diagramme hinzu.
+3. Klicken Sie auf **In PDF konvertieren**. Die LibreOffice-basierte Engine wird im Browser geladen und wandelt jedes Diagramm in eine PDF um, wobei Formen, Verbinder, Beschriftungen und Seitenlayout erhalten bleiben.
+4. Ein einzelnes Diagramm wird direkt als PDF heruntergeladen. Bei mehreren Dateien entsteht ein ZIP-Archiv mit dem Namen `vsd-to-pdf.zip`.
+
+## Optionen
+
+Es ist keine Konfiguration erforderlich. Der Konverter übernimmt Seitengröße und Ausrichtung aus dem Visio-Dokument.
+
+## Anwendungsfälle
+
+- Visio-Diagramme von Kollegen ansehen, wenn Sie keine Visio-Lizenz haben
+- Netzwerk- oder Architekturdiagramme als PDF in die Projektdokumentation aufnehmen
+- Organigramme oder Prozessabläufe als Handout für Besprechungen drucken
+- Alte VSD-Dateien aus früheren Visio-Versionen in einem zukunftssicheren Format archivieren
+
+## Tipps
+
+- Mehrseitige Visio-Dokumente ergeben mehrseitige PDFs, wobei jede Visio-Seite einer PDF-Seite entspricht.
+- VSDX-Dateien (das moderne XML-basierte Format) werden im Allgemeinen originalgetreuer konvertiert als ältere binäre VSD-Dateien.
+- Die LibreOffice-Engine wird einmal pro Sitzung geladen. Rechnen Sie bei der ersten Konvertierung mit einer kurzen Wartezeit, bei weiteren Dateien geht es schneller.
+
+## Verwandte Tools
+
+- [ODG zu PDF](./odg-to-pdf)
+- [PUB zu PDF](./pub-to-pdf)
+- [PSD zu PDF](./psd-to-pdf)
diff --git a/docs/de/tools/webp-to-pdf.md b/docs/de/tools/webp-to-pdf.md
new file mode 100644
index 00000000..3d87f012
--- /dev/null
+++ b/docs/de/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP zu PDF
+description: Konvertieren Sie WebP-Bilder direkt in Ihrem Browser in das PDF-Format, mit einstellbarer Kompressionsqualität.
+---
+
+# WebP zu PDF
+
+Konvertieren Sie das WebP-Bildformat von Google in PDF. Das ist besonders nützlich, wenn Sie Bilder aus dem Web im WebP-Format heruntergeladen haben und sie zum Drucken oder Teilen in einem allgemein akzeptierten Format benötigen.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :----- | :------------ |
+| WebP | `.webp` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre WebP-Dateien per Drag-and-drop hinein.
+2. Prüfen Sie die Dateiliste und entfernen Sie nicht benötigte Dateien.
+3. Wählen Sie eine **PDF-Qualität**.
+4. Klicken Sie auf **In PDF konvertieren**. Die Ausgabe wird als `from_webps.pdf` heruntergeladen.
+
+Intern wird jedes WebP-Bild über die Canvas-API des Browsers dekodiert und dann mit pdf-lib in die PDF eingebettet. Die Konvertierung funktioniert daher in jedem Browser, der WebP-Dekodierung unterstützt (alle modernen Browser tun das).
+
+## Optionen
+
+Die **PDF-Qualität** steuert die Kompression beim Einbetten der Bilder:
+
+- **Hohe Qualität**: bewahrt die meisten Details.
+- **Mittlere Qualität** (Standard): ausgewogene Ausgabe.
+- **Niedrige Qualität**: kleinste Dateigröße.
+
+## Anwendungsfälle
+
+- Aus dem Web heruntergeladene Bilder im WebP-Format in eine druckbare PDF umwandeln
+- WebP-Screenshots aus Chrome oder Edge für eine Dokumentation bündeln
+- Ein PDF-Portfolio aus Bildern erstellen, die Design-Tools standardmäßig als WebP exportieren
+- WebP-Bilder in einem allgemeiner lesbaren Format archivieren
+
+## Tipps
+
+- WebP wird vor dem Einbetten in die PDF intern in PNG dekodiert, sodass verlustfreie WebP-Bilder bei der Einstellung „Hoch“ ihre Qualität behalten.
+- Wenn Sie eine Mischung aus WebP und anderen Bildformaten haben, verwenden Sie stattdessen das Tool [Bilder zu PDF](./image-to-pdf), das alles in einem Durchgang akzeptiert.
+
+## Verwandte Tools
+
+- [Bilder zu PDF](./image-to-pdf)
+- [PNG zu PDF](./png-to-pdf)
+- [JPG zu PDF](./jpg-to-pdf)
diff --git a/docs/de/tools/word-to-pdf.md b/docs/de/tools/word-to-pdf.md
new file mode 100644
index 00000000..b4444280
--- /dev/null
+++ b/docs/de/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word zu PDF
+description: Konvertieren Sie Word-Dokumente (DOC, DOCX), ODT- und RTF-Dateien in Ihrem Browser mit vollständig erhaltener Formatierung in PDF.
+---
+
+# Word zu PDF
+
+Konvertieren Sie Microsoft-Word-Dokumente und kompatible Formate in PDF. Das Tool nutzt eine browserbasierte LibreOffice-Engine, die DOC-, DOCX-, ODT- und RTF-Dateien verarbeitet und dabei Formatierung, Tabellen, Bilder, Kopf- und Fußzeilen sowie Formatvorlagen in der Ausgabe beibehält.
+
+## Unterstützte Formate
+
+| Format | Erweiterungen |
+| :---------------- | :------------ |
+| Word (modern) | `.docx` |
+| Word (älter) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre Word-Dokumente per Drag-and-drop hinein. Es können mehrere Dateien gleichzeitig ausgewählt werden.
+2. Prüfen und verwalten Sie die Dateiliste.
+3. Klicken Sie auf **In PDF konvertieren**. Die LibreOffice-Engine wird bei der ersten Verwendung geladen (eine Fortschrittsanzeige zeigt den Initialisierungsstatus), danach wird jede Datei konvertiert.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in `word-converted.zip` gepackt.
+
+## Optionen
+
+Dieses Tool hat keine zusätzlichen Einstellungen. Die LibreOffice-Engine erzeugt die Ausgabe mit ihrem Standard-PDF-Exportprofil.
+
+## Ausgabe
+
+| Anzahl der Eingaben | Ausgabe |
+| :------------------ | :------------------------------------------------------------------ |
+| 1 Datei | Einzelner PDF-Download (ursprünglicher Dateiname mit Endung `.pdf`) |
+| 2+ Dateien | ZIP-Archiv (`word-converted.zip`) mit einer PDF pro Datei |
+
+## Anwendungsfälle
+
+- Einen Lebenslauf oder ein Anschreiben vor der Bewerbung von DOCX in PDF umwandeln
+- Eine Reihe von Verträgen oder Angeboten für die Übergabe an einen Kunden im Stapel in PDF konvertieren
+- Alte `.doc`-Dateien für die Langzeitarchivierung in moderne PDFs umwandeln
+- Gemeinsam bearbeitete Dokumente aus Google Docs (als DOCX exportiert) in PDF konvertieren
+- Druckfertige PDFs aus Word-Vorlagen erzeugen, die für die automatisierte Dokumenterstellung genutzt werden
+
+## Tipps
+
+- Die LibreOffice-Engine wird einmal pro Sitzung heruntergeladen und zwischengespeichert. Rechnen Sie bei der ersten Konvertierung mit einigen Sekunden Ladezeit, weitere Konvertierungen sind deutlich schneller.
+- Komplexe Formatierungen (Makros, ActiveX-Steuerelemente, fortgeschrittenes SmartArt) werden möglicherweise nicht perfekt konvertiert. Standardelemente wie Text, Tabellen, Bilder, Kopfzeilen und Fußnoten werden zuverlässig konvertiert.
+- Da dieses Tool auch ODT und RTF akzeptiert, können Sie es als zentralen Konverter für alle Textverarbeitungsformate nutzen.
+
+## Verwandte Tools
+
+- [ODT zu PDF](./odt-to-pdf)
+- [RTF zu PDF](./rtf-to-pdf)
+- [Excel zu PDF](./excel-to-pdf)
+- [PowerPoint zu PDF](./powerpoint-to-pdf)
diff --git a/docs/de/tools/wpd-to-pdf.md b/docs/de/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..f99ae6c7
--- /dev/null
+++ b/docs/de/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD zu PDF
+description: Konvertieren Sie WordPerfect-Dokumente (WPD) mit LibreOffice in Ihrem Browser in PDF. Kostenlos und privat.
+---
+
+# WPD zu PDF
+
+Konvertieren Sie Corel-WordPerfect-Dokumente in PDF-Dateien. WPD war einst das dominierende Textverarbeitungsformat in Anwaltskanzleien und Behörden. Wenn Sie alte WordPerfect-Dateien haben, die moderne Software nicht mehr öffnen will, erweckt dieses Tool sie als Standard-PDFs wieder zum Leben.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :---------- | :---------- | :----------------------------------- |
+| WordPerfect | `.wpd` | Alle wichtigen WordPerfect-Versionen |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre WPD-Dateien per Drag-and-drop hinein. Es können mehrere Dateien gleichzeitig ausgewählt werden.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Dateien mit dem Papierkorb-Symbol oder fügen Sie über **Weitere Dateien hinzufügen** weitere Dokumente hinzu.
+3. Klicken Sie auf **In PDF konvertieren**. Das Tool lädt in Ihrem Browser eine LibreOffice-basierte Konvertierungs-Engine, die das WPD-Format einliest und PDF ausgibt.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Stapelkonvertierungen ergeben ein ZIP-Archiv mit dem Namen `wpd-to-pdf.zip`.
+
+## Optionen
+
+Es ist keine Konfiguration erforderlich. Die LibreOffice-Engine übernimmt WPD-Formatierung, Schriften und Layout automatisch.
+
+## Anwendungsfälle
+
+- Jahrzehntealte Rechtsdokumente öffnen, die in WordPerfect geschrieben wurden
+- Archivierte behördliche Unterlagen von WPD in ein modernes Format umwandeln
+- Eine alte WordPerfect-Dokumentenbibliothek für die Langzeitspeicherung in PDF überführen
+- WPD-Dateien an Empfänger weitergeben, die Corel WordPerfect nicht installiert haben
+
+## Tipps
+
+- Die LibreOffice-Engine wird bei der ersten Verwendung geladen, was einen Moment dauert. Weitere Konvertierungen in derselben Sitzung sind schneller.
+- Komplexe WPD-Makros und Reveal Codes bleiben nicht erhalten, aber das visuelle Layout, der Textinhalt und die grundlegende Formatierung werden in die PDF übernommen.
+
+## Verwandte Tools
+
+- [WPS zu PDF](./wps-to-pdf)
+- [ODG zu PDF](./odg-to-pdf)
diff --git a/docs/de/tools/wps-to-pdf.md b/docs/de/tools/wps-to-pdf.md
new file mode 100644
index 00000000..1e706bf5
--- /dev/null
+++ b/docs/de/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS zu PDF
+description: Konvertieren Sie Microsoft-Works-Dokumente (WPS) in Ihrem Browser in PDF. Kostenlos, ohne Anmeldung, vollständig privat.
+---
+
+# WPS zu PDF
+
+Konvertieren Sie Textverarbeitungsdateien von Microsoft Works in PDF. Microsoft Works wurde in den späten 1990er und 2000er Jahren mit Verbraucher-PCs ausgeliefert, und viele WPS-Dateien liegen noch auf alten Festplatten und in E-Mail-Archiven. Dieses Tool öffnet sie im Browser und erzeugt saubere PDFs.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :-------------- | :---------- | :------------------------------------------- |
+| Microsoft Works | `.wps` | Textverarbeitungsdateien von Microsoft Works |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre WPS-Dateien per Drag-and-drop hinein. Mehrere Dateien werden akzeptiert.
+2. Prüfen Sie die Dateiliste. Entfernen Sie einzelne Dateien mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um Ihren Stapel zu erweitern.
+3. Klicken Sie auf **In PDF konvertieren**. Eine LibreOffice-basierte Engine wird im Browser geladen und konvertiert jedes WPS-Dokument in PDF.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in einem ZIP-Archiv mit dem Namen `wps-to-pdf.zip` gebündelt.
+
+## Optionen
+
+Es sind keine zusätzlichen Einstellungen nötig. Der Konverter verarbeitet Text, grundlegende Formatierung und eingebettete Bilder aus der WPS-Datei.
+
+## Anwendungsfälle
+
+- Alte Schul- oder Arbeitsdokumente retten, die im Microsoft-Works-Format gespeichert wurden
+- WPS-E-Mail-Anhänge öffnen, wenn Microsoft Works nicht installiert ist
+- Ein Archiv von WPS-Dateien für die Migration in ein modernes Dokumentensystem konvertieren
+- Alte Dokumente drucken, die aktuelle Textverarbeitungen nicht öffnen können
+
+## Tipps
+
+- Verwechseln Sie WPS-Dateien von Microsoft Works (`.wps`) nicht mit Dateien von WPS Office. Dieses Tool ist speziell für das ältere Microsoft-Works-Format gedacht.
+- Die LibreOffice-Engine braucht bei der ersten Verwendung einen Moment zum Laden. Ist sie geladen, laufen weitere Konvertierungen in derselben Sitzung schneller.
+
+## Verwandte Tools
+
+- [WPD zu PDF](./wpd-to-pdf)
+- [PUB zu PDF](./pub-to-pdf)
diff --git a/docs/de/tools/xml-to-pdf.md b/docs/de/tools/xml-to-pdf.md
new file mode 100644
index 00000000..19491f6e
--- /dev/null
+++ b/docs/de/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML zu PDF
+description: Konvertieren Sie XML-Dateien in Ihrem Browser in strukturierte PDF-Dokumente. Kostenlos, privat, keine Verarbeitung auf einem Server.
+---
+
+# XML zu PDF
+
+Konvertieren Sie XML-Datendateien in lesbare, strukturierte PDF-Dokumente. Rohes XML ist leistungsfähig, für Menschen aber schwer zu lesen. Dieses Tool analysiert den XML-Baum, erkennt sich wiederholende Datenstrukturen und stellt sie als formatierte Tabellen und Abschnitte in einer PDF im A4-Querformat dar.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----- | :---------- | :------------------------------ |
+| XML | `.xml` | Jedes wohlgeformte XML-Dokument |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre XML-Dateien per Drag-and-drop hinein. Mehrere Dateien können in einem Stapel verarbeitet werden.
+2. Prüfen Sie die Dateiliste. Entfernen Sie unerwünschte Dateien mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um weitere aufzunehmen.
+3. Klicken Sie auf **In PDF konvertieren**. Das Tool analysiert die XML-Struktur mit dem im Browser integrierten DOMParser, untersucht die Datenhierarchie und rendert sie mit jsPDF und Auto-Table-Formatierung in eine PDF.
+4. Eine einzelne Datei wird als PDF heruntergeladen. Mehrere Konvertierungen werden in `xml-to-pdf.zip` gepackt.
+
+## Optionen
+
+Es ist keine manuelle Konfiguration erforderlich. Der Konverter erkennt die XML-Struktur automatisch und wählt passende Tabellenlayouts. Die Ausgabe erfolgt im A4-Querformat, um breite Datensätze unterzubringen.
+
+## Anwendungsfälle
+
+- XML-Datenexporte aus Datenbanken oder APIs in druckbare Berichte umwandeln
+- Lesbare Zusammenfassungen aus XML-Konfigurationsdateien erstellen
+- XML-basierte Rechnungen oder Transaktionsprotokolle für die Aufbewahrung in PDFs konvertieren
+- XML-Sitemaps oder RSS-Feeds in Dokumentform lesbar machen
+
+## Tipps
+
+- Das XML muss wohlgeformt sein. Stößt der Parser auf Syntaxfehler, schlägt die Konvertierung mit einer aussagekräftigen Fehlermeldung fehl, die auf das Problem hinweist.
+- Tief verschachtelte XML-Strukturen werden zu Tabellen abgeflacht. Für beste Ergebnisse sollten die Daten sich wiederholende Geschwisterelemente mit einheitlichen Kindelementen haben.
+- Während der Konvertierung erscheinen Fortschrittsmeldungen zu den einzelnen Phasen: Lesen, Analysieren, Auswerten und Rendern.
+
+## Verwandte Tools
+
+- [FB2 zu PDF](./fb2-to-pdf)
+- [XPS zu PDF](./xps-to-pdf)
+- [E-Mail zu PDF](./email-to-pdf)
diff --git a/docs/de/tools/xps-to-pdf.md b/docs/de/tools/xps-to-pdf.md
new file mode 100644
index 00000000..c426ff32
--- /dev/null
+++ b/docs/de/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS zu PDF
+description: Konvertieren Sie XPS- und OXPS-Dokumente in Ihrem Browser in das PDF-Format. Kein Upload, keine Anmeldung, vollständig privat.
+---
+
+# XPS zu PDF
+
+Konvertieren Sie Microsoft-XPS- und OXPS-Dokumente in Standard-PDF-Dateien. XPS (XML Paper Specification) war Microsofts Antwort auf PDF, doch die Unterstützung dafür ist auf vielen Plattformen geschwunden. Dieses Tool macht solche Dokumente wieder universell lesbar.
+
+## Unterstützte Formate
+
+| Format | Erweiterung | Hinweise |
+| :----- | :---------- | :----------------------------------- |
+| XPS | `.xps` | Ursprüngliches Microsoft-XPS-Format |
+| OXPS | `.oxps` | Open XPS, die Variante nach ECMA-388 |
+
+## So funktioniert es
+
+1. Klicken Sie auf den Upload-Bereich oder ziehen Sie Ihre XPS-/OXPS-Dateien per Drag-and-drop hinein. Sie können mehrere Dateien gleichzeitig auswählen.
+2. Prüfen Sie die Dateiliste. Entfernen Sie einzelne Dateien mit dem Papierkorb-Symbol oder klicken Sie auf **Weitere Dateien hinzufügen**, um zusätzliche Dokumente anzuhängen.
+3. Klicken Sie auf **In PDF konvertieren**. Die PyMuPDF-Engine verarbeitet jedes Dokument lokal in Ihrem Browser.
+4. Eine einzelne Datei wird direkt als PDF heruntergeladen. Mehrere Dateien werden in einem ZIP-Archiv mit dem Namen `xps-converted.zip` gebündelt.
+
+## Optionen
+
+Dieses Tool führt eine direkte Formatkonvertierung ohne zusätzliche Konfiguration durch. Die Ausgabe behält Seitenabmessungen, Vektorgrafiken, Schriften und Bilder der XPS-Quelle bei.
+
+## Anwendungsfälle
+
+- XPS-Dateien öffnen, die Sie von älteren Windows-Systemen erhalten haben, auf denen der XPS-Druckertreiber voreingestellt war
+- OXPS-Dokumente aus Windows 10/11 für die Weitergabe an macOS- oder Linux-Nutzer konvertieren
+- Alte XPS-Dateien in einem weiter verbreiteten Format archivieren
+- XPS-basierte behördliche oder geschäftliche Dokumente für externe Empfänger zugänglich machen
+
+## Tipps
+
+- Die Endungen `.xps` und `.oxps` werden automatisch erkannt, sodass Sie beide im selben Stapel mischen können.
+- Wurde die ursprüngliche XPS-Datei mit einem hochauflösenden Druckertreiber erstellt, behält die resultierende PDF diese Qualität. Es findet keine Neuberechnung der Auflösung statt.
+
+## Verwandte Tools
+
+- [Word zu PDF](./word-to-pdf)
+- [XML zu PDF](./xml-to-pdf)
diff --git a/docs/es/contributing.md b/docs/es/contributing.md
new file mode 100644
index 00000000..1ea6ed29
--- /dev/null
+++ b/docs/es/contributing.md
@@ -0,0 +1,136 @@
+# Contribuir
+
+¡Gracias por tu interés en contribuir a BentoPDF! Esta guía te ayudará a empezar.
+
+## Primeros pasos
+
+### Requisitos previos
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Configuración
+
+```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
+```
+
+## Estructura del proyecto
+
+```
+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
+```
+
+## Añadir una herramienta nueva
+
+### Paso 1: Crear el archivo de lógica
+
+Crea `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
+});
+```
+
+### Paso 2: Crear la página HTML
+
+Crea `src/pages/your-tool.html` siguiendo las plantillas de herramientas existentes.
+
+### Paso 3: Registrar la herramienta
+
+Añade a `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.',
+}
+```
+
+### Paso 4: Añadir a la configuración de compilación
+
+Añade la página a `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Paso 5: Añadir traducciones
+
+Añade entradas a todos los archivos de idioma en `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Estilo de código
+
+- Usa TypeScript para todo el código nuevo
+- Sigue los patrones existentes para mantener la coherencia
+- Ejecuta `npm run format` antes de hacer commit
+- Sin comentarios en el código de producción (los comentarios se eliminan durante la compilación)
+
+## Proceso de pull request
+
+1. Crea una rama de funcionalidad: `git checkout -b feature/your-feature`
+2. Haz tus cambios
+3. Pruébalo a fondo: `npm run build`
+4. Envía un PR con una descripción clara
+
+## Traducción
+
+Consulta [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) para añadir nuevos idiomas.
+
+## Acuerdo de licencia de colaborador
+
+Antes de que se pueda fusionar tu PR, tendrás que firmar nuestro CLA:
+
+- [CLA individual (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [CLA corporativo (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Obtener ayuda
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Comunidad de Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Licencia
+
+BentoPDF tiene doble licencia:
+
+- **AGPL-3.0** para proyectos de código abierto en los que compartes públicamente todo tu código fuente
+- **Licencia comercial** para aplicaciones propietarias o de código cerrado: [Obtén la licencia de por vida por $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Al contribuir, aceptas que tus contribuciones se licencien bajo estos términos.
diff --git a/docs/es/getting-started.md b/docs/es/getting-started.md
new file mode 100644
index 00000000..9553a9a9
--- /dev/null
+++ b/docs/es/getting-started.md
@@ -0,0 +1,80 @@
+# Primeros pasos
+
+¡Bienvenido a BentoPDF! Esta guía te ayudará a ponerte en marcha rápidamente.
+
+## ¿Qué es BentoPDF?
+
+BentoPDF es un kit de herramientas PDF gratuito, de código abierto y centrado en la privacidad que funciona **por completo en tu navegador**. Tus archivos nunca salen de tu dispositivo: todo el procesamiento ocurre en local mediante tecnología WebAssembly (WASM).
+
+## Inicio rápido
+
+### Opción 1: Usar la versión alojada
+
+Visita [bentopdf.com](https://www.bentopdf.com) para usar BentoPDF al instante, sin instalar nada.
+
+### Opción 2: Autoalojar con Docker
+
+> [!IMPORTANT]
+> La conversión de archivos de Office requiere `SharedArrayBuffer`, que necesita las dos cosas siguientes:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - un contexto seguro
+>
+> `http://localhost` funciona para pruebas locales porque los navegadores consideran fiable la interfaz de loopback. `http://192.168.x.x` u otras IP de red local normalmente no, así que las conversiones de Word/Excel/PowerPoint requerirán HTTPS al acceder desde otros dispositivos de tu red.
+
+```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 se distribuye en dos versiones: la **versión autoalojada** (`bentopdf-simple`, la usada arriba) para despliegues internos, de equipo u organización, y la **versión comercial** (`bentopdf:latest`) que usa el propio bentopdf.com y los titulares de licencia comercial con despliegues públicos. Ambas incluyen las mismas herramientas PDF: la versión comercial añade el hero, las preguntas frecuentes, los testimonios y el pie de página de bentopdf.com. Si tienes dudas, usa la versión autoalojada.
+
+Después abre `http://localhost:3000` en tu navegador.
+
+> [!NOTE]
+> Si estás preparando un despliegue de OCR aislado de la red (air-gapped), además del worker de Tesseract, el runtime principal y los archivos traineddata, debes alojar internamente las fuentes de la capa de texto del OCR. La configuración completa está documentada en [Autoalojamiento](/es/self-hosting/), incluidos `VITE_OCR_FONT_BASE_URL` y el directorio incluido `ocr-fonts/`.
+
+### Opción 3: Compilar desde el código fuente
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Funciones de un vistazo
+
+| Categoría | Herramientas |
+| ----------------------- | --------------------------------------------------------------- |
+| **Convertir a PDF** | Word, Excel, PowerPoint, imágenes, Markdown, EPUB, MOBI y más |
+| **Convertir desde PDF** | JPG, PNG, texto, Excel, SVG y más |
+| **Editar y anotar** | Firmar, resaltar, censurar, rellenar formularios, añadir sellos |
+| **Organizar** | Unir, dividir, rotar, eliminar páginas, reordenar |
+| **Optimizar** | Comprimir, reparar, aplanar, OCR |
+| **Seguridad** | Cifrar, descifrar, quitar restricciones |
+
+## Compatibilidad con navegadores
+
+BentoPDF funciona mejor en navegadores modernos:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Siguientes pasos
+
+- [Explorar todas las herramientas](/es/tools/)
+- [Autoalojar BentoPDF](/es/self-hosting/)
+- [Contribuir al proyecto](/es/contributing)
diff --git a/docs/es/index.md b/docs/es/index.md
new file mode 100644
index 00000000..f8a54c38
--- /dev/null
+++ b/docs/es/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Herramientas PDF gratuitas y de código abierto'
+ tagline: Procesa PDF por completo en tu navegador. Sin cargas. Sin servidores. Privacidad total.
+ actions:
+ - theme: brand
+ text: Empezar
+ link: /es/getting-started
+ - theme: alt
+ text: Ver herramientas
+ link: /es/tools/
+ - theme: alt
+ text: Autoalojar
+ link: /es/self-hosting/
+ - theme: alt
+ text: Licencia comercial
+ link: /es/licensing
+
+features:
+ - icon: 🔒
+ title: 100% privado
+ details: Tus archivos nunca salen de tu dispositivo. Todo el procesamiento ocurre en local en tu navegador mediante WebAssembly.
+ - icon: ⚡
+ title: Rápido y gratuito
+ details: Sin registros, sin límites, sin marcas de agua. Procesa PDF ilimitados gratis, para siempre.
+ - icon: 🛠️
+ title: Más de 50 herramientas
+ details: Convierte, edita, une, divide, comprime, firma, aplica OCR y más. Todo lo que necesitas en un solo lugar.
+
+ - icon: 🌐
+ title: Autoalojable
+ details: Despliégalo en tu propia infraestructura. Docker, Vercel, Netlify, AWS o entornos totalmente aislados de la red con workers de OCR, datos de idioma y fuentes de capa de texto autoalojados.
+---
+
+## OCR sin conexión
+
+Si autoalojas BentoPDF en un entorno aislado de la red o sin conexión, el OCR necesita algo más que el worker de Tesseract y los archivos traineddata. La salida de PDF con texto buscable también necesita que las fuentes de la capa de texto del OCR se sirvan internamente.
+Consulta [Autoalojamiento](/es/self-hosting/) para ver la configuración completa, incluidos `VITE_OCR_FONT_BASE_URL`, el directorio incluido `ocr-fonts/` y el flujo de trabajo aislado actualizado.
diff --git a/docs/es/licensing.md b/docs/es/licensing.md
new file mode 100644
index 00000000..5cac1611
--- /dev/null
+++ b/docs/es/licensing.md
@@ -0,0 +1,110 @@
+# 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](/es/self-hosting/#configuracion-de-wasm-componentes-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/es/self-hosting/apache.md b/docs/es/self-hosting/apache.md
new file mode 100644
index 00000000..58f1c169
--- /dev/null
+++ b/docs/es/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Desplegar con Apache
+
+Aloja BentoPDF con Apache HTTP Server.
+
+## Requisitos previos
+
+- Apache 2.4+
+- mod_rewrite habilitado
+- Certificado SSL (recomendado)
+
+## Paso 1: Compilar el proyecto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Para personalizar la marca, define variables de entorno antes de compilar:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Paso 2: Copiar los archivos
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Paso 3: Configuración de Apache
+
+Crea `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Paso 4: .htaccess para el enrutamiento
+
+Crea `/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
+```
+
+## Paso 5: Habilitar los módulos necesarios
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Paso 6: Habilitar el sitio
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Despliegue en un subdirectorio
+
+Para alojarlo en `/pdf/`:
+
+1. Compila con la URL base:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Actualiza `.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
+```
+
+## Solución de problemas
+
+### Errores 404 de WASM
+
+Asegúrate de que el tipo MIME esté configurado:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Firmar PDF o el rellenador de formularios muestra un visor en blanco (error MIME de `.mjs`)
+
+Si la consola del navegador muestra:
+
+```
+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.
+```
+
+...y la solicitud que falla termina en `.mjs`, a tu configuración de Apache le falta la asignación `.mjs → application/javascript`. El visor de PDF incluido usa módulos ES con extensión `.mjs`, y el `mime.types` de serie de Apache no los incluye por defecto.
+
+Añade esto a tu VirtualHost o a `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Después recarga Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Para confirmarlo: en las DevTools del navegador, pestaña Network, busca la solicitud `.mjs` que falla y revisa la cabecera de respuesta `Content-Type`. Ahora debería ser `application/javascript`, no `application/octet-stream`.
+
+### La reescritura no funciona
+
+Comprueba que mod_rewrite esté habilitado:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Word/ODT/Excel a PDF no funciona
+
+LibreOffice WASM requiere `SharedArrayBuffer`, que necesita estas cabeceras:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+También necesita un contexto seguro. `http://localhost` funciona para pruebas locales, pero `http://192.168.x.x` u otras IP de red local normalmente requieren HTTPS. Si las cabeceras están presentes pero `window.crossOriginIsolated` sigue siendo `false`, comprueba si la página se abre por HTTP simple desde un origen que no es de loopback.
+
+Los archivos precomprimidos `.wasm.gz` y `.data.gz` también necesitan el `Content-Encoding` correcto:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Asegúrate de que `mod_headers` esté habilitado: `sudo a2enmod headers`
+
+### Permiso denegado
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/es/self-hosting/aws.md b/docs/es/self-hosting/aws.md
new file mode 100644
index 00000000..6974002d
--- /dev/null
+++ b/docs/es/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Desplegar en AWS S3 + CloudFront
+
+Aloja BentoPDF en AWS para obtener el máximo control y escalabilidad.
+
+## Arquitectura
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Paso 1: Crear el bucket de S3
+
+```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
+```
+
+## Paso 2: Compilar y subir
+
+```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
+```
+
+## Paso 3: Crear la distribución de CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+O usa la consola de AWS:
+
+1. Ve a CloudFront → Create distribution
+2. Origin domain: selecciona tu bucket de S3
+3. Activa "Origin Access Control"
+4. Default root object: `index.html`
+5. Crea la distribución
+
+## Paso 3b: Política de cabeceras de respuesta (necesaria para LibreOffice WASM)
+
+Las conversiones basadas en LibreOffice (Word, Excel, PowerPoint a PDF) requieren `SharedArrayBuffer`, que necesita cabeceras de respuesta específicas. Crea una Response Headers Policy de CloudFront:
+
+1. Ve a CloudFront → Policies → Response headers
+2. Crea una política personalizada con estas cabeceras:
+
+| Cabecera | Valor |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Asocia la política al comportamiento de caché predeterminado de tu distribución
+
+O mediante la 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}
+ ]
+ }
+ }'
+```
+
+## Paso 3c: Metadatos de S3 para los archivos WASM precomprimidos
+
+Los archivos WASM de LibreOffice están precomprimidos (`.wasm.gz`, `.data.gz`). Define el Content-Type y el Content-Encoding correctos para que los navegadores los descompriman:
+
+```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 Importante
+Sin la política de cabeceras de respuesta, `SharedArrayBuffer` no está disponible y las conversiones de LibreOffice WASM se quedarán colgadas en torno al 55 %. Sin el Content-Encoding correcto en los archivos `.gz`, el navegador recibe bytes gzip sin procesar y la compilación de WASM falla.
+:::
+
+## Paso 4: Política del bucket de S3
+
+Permite que CloudFront acceda al 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Paso 5: Páginas de error personalizadas
+
+Configura el 404 para que devuelva `index.html` y funcione el enrutamiento SPA:
+
+1. CloudFront → Error pages
+2. Crea una respuesta de error personalizada:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Estimación de costes
+
+| Recurso | Coste estimado |
+| ---------------------------------- | -------------- |
+| Almacenamiento S3 (~500MB) | ~$0.01/mes |
+| CloudFront (1TB de transferencia) | ~$85/mes |
+| CloudFront (10GB de transferencia) | ~$0.85/mes |
+
+::: tip
+Usa S3 Intelligent Tiering para optimizar costes en archivos a los que se accede con poca frecuencia.
+:::
+
+## Automatización con 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"
+ }
+}
+```
diff --git a/docs/es/self-hosting/cloudflare.md b/docs/es/self-hosting/cloudflare.md
new file mode 100644
index 00000000..8370f58a
--- /dev/null
+++ b/docs/es/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Desplegar en Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) ofrece alojamiento estático global y rápido con ancho de banda ilimitado.
+
+## Despliegue rápido
+
+1. Ve a [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Haz clic en "Create a project"
+3. Conecta tu repositorio de GitHub
+
+## Configuración de compilación
+
+| Ajuste | Valor |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Variables de entorno
+
+Añádelas en Settings → Environment variables:
+
+| Variable | Value |
+| ----------------------- | ------------------------------------------------------------ |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (opcional) |
+| `VITE_BRAND_NAME` | Nombre de marca personalizado (opcional) |
+| `VITE_BRAND_LOGO` | Ruta del logo relativa a `public/` (opcional) |
+| `VITE_FOOTER_TEXT` | Texto personalizado de pie/copyright (opcional) |
+| `VITE_DEFAULT_LANGUAGE` | Idioma predeterminado de la interfaz, p. ej. `fr` (opcional) |
+
+## Archivo de configuración
+
+Crea `_headers` en tu carpeta `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 Importante
+Las cabeceras `Cross-Origin-Embedder-Policy` y `Cross-Origin-Opener-Policy` son necesarias para las conversiones de Word/ODT/Excel/PowerPoint a PDF. Sin ellas, `SharedArrayBuffer` no está disponible y el motor LibreOffice WASM no se podrá inicializar.
+:::
+
+Crea `_redirects` para el enrutamiento SPA:
+
+```
+/* /index.html 200
+```
+
+## Dominio personalizado
+
+1. Ve a tu proyecto de Pages
+2. Haz clic en "Custom domains"
+3. Añade tu dominio
+4. Cloudflare configurará el DNS automáticamente si el dominio está en Cloudflare
+
+## Ventajas
+
+- **Ancho de banda ilimitado y gratuito**
+- **CDN global** con más de 300 ubicaciones edge
+- **HTTPS automático**
+- **Despliegues de vista previa** para pull requests
+- **Compilaciones rápidas**
+
+## Solución de problemas
+
+### Subida de archivos grandes
+
+Cloudflare Pages admite archivos de hasta 25 MB. Los módulos WASM deberían caber, pero si llegas a los límites, considera:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Límites de tamaño del Worker
+
+Si usas Cloudflare Workers para un enrutamiento avanzado, ten en cuenta el límite de 1 MB de los planes gratuitos.
+
+## Worker de proxy CORS (para firmas digitales)
+
+La herramienta de firma digital necesita un proxy CORS para obtener las cadenas de certificados. Despliega el worker incluido:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Funciones de seguridad
+
+| Función | Descripción |
+| --------------------------- | ------------------------------------ |
+| **Restricciones de URL** | Solo se permiten URL de certificados |
+| **Límite de tamaño** | Máx. 10MB por solicitud |
+| **Limitación de velocidad** | 60 solicitudes/IP/min (requiere KV) |
+| **Bloqueo de IP privadas** | Bloquea localhost e IP internas |
+
+### Activar la limitación de velocidad
+
+```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
+```
+
+### Compilar con la URL del proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+O con 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 .
+```
+
+> **Nota:** Consulta el [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) para configurar la firma HMAC.
diff --git a/docs/es/self-hosting/cors-proxy.md b/docs/es/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..bd61602f
--- /dev/null
+++ b/docs/es/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# Proxy CORS para obtener certificados
+
+La herramienta de firma digital usa un proxy CORS para obtener los certificados de los emisores desde Autoridades de Certificación (CA) externas. Es necesario porque muchos servidores de CA no incluyen cabeceras CORS en sus respuestas, lo que impide la descarga directa desde el navegador.
+
+Además, muchos servidores de CA sirven los certificados por HTTP simple. Cuando tu instancia de BentoPDF se aloja por HTTPS, los navegadores bloquean estas solicitudes HTTP (política de contenido mixto). El proxy CORS resuelve ambos problemas al enrutar las solicitudes a través de un endpoint HTTPS con las cabeceras adecuadas.
+
+## Cómo funciona
+
+Al firmar un PDF con un certificado:
+
+1. La biblioteca `zgapdfsigner` intenta construir una cadena de certificados completa
+2. Obtiene los certificados de los emisores desde las URL incluidas en la extensión AIA (Authority Information Access) de tu certificado
+3. Estas solicitudes pasan por un proxy CORS que añade las cabeceras `Access-Control-Allow-Origin` necesarias
+4. El proxy devuelve los datos del certificado al navegador
+
+## Autoalojar el proxy CORS
+
+Si autoalojas BentoPDF, tendrás que desplegar tu propio proxy CORS para que las firmas digitales funcionen con certificados que requieren obtener la cadena.
+
+### Opción 1: Cloudflare Workers (recomendada)
+
+1. **Instala la CLI de Wrangler**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Inicia sesión en Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clona BentoPDF y actualiza los orígenes permitidos**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Abre `cors-proxy-worker.js` y cambia el array `ALLOWED_ORIGINS` por tu dominio:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Importante
+ Sin este cambio, el proxy rechazará todas las solicitudes de tu sitio con un error **403 Forbidden**. Por defecto solo permite solicitudes de `bentopdf.com`.
+ :::
+
+4. **Despliega el proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Anota la URL de tu worker (p. ej., `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Vuelve a compilar BentoPDF con la URL del proxy**:
+
+ Si usas 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 .
+ ```
+
+ Si compilas desde el código fuente:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Opción 2: Proxy de backend personalizado
+
+También puedes crear tu propio endpoint de proxy. Los requisitos son:
+
+1. Aceptar solicitudes GET con un parámetro de consulta `url`
+2. Obtener la URL desde tu servidor (sin restricciones CORS en el lado del servidor)
+3. Devolver la respuesta con estas cabeceras:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Ejemplo de implementación con 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' });
+ }
+});
+```
+
+## Consideraciones de seguridad
+
+El Cloudflare Worker incluido tiene varias medidas de seguridad:
+
+| Función | Descripción |
+| ------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| **Validación de origen** | Solo permite solicitudes de los dominios incluidos en `ALLOWED_ORIGINS` |
+| **Restricciones de URL** | Solo permite URL de certificados (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Bloqueo de IP privadas** | Bloquea rangos privados IPv4/IPv6, link-local, loopback, IP decimales y metadatos de la nube |
+| **Seguridad del Content-Type** | Solo devuelve tipos MIME de certificado seguros y bloquea la inyección de content-type desde el origen |
+| **Límite de tamaño** | Transmite la respuesta con un límite de 10MB y aborta la descarga si se supera |
+| **Limitación de velocidad** | 60 solicitudes por minuto por IP o IPv6 /64 (requiere KV, permite el paso si KV falla) |
+| **Firmas HMAC** | Firma opcional en el cliente (disuade el abuso casual) |
+
+### Reenlace de DNS (DNS rebinding) al autoalojar fuera de Cloudflare
+
+El worker rechaza cualquier URL que se resuelva a una IP privada o interna. No puede usar una lista fija de hosts permitidos, ya que las URL de la cadena de certificados apuntan a la CA que emitió el certificado (FNMT, CA corporativas, etc.), por lo que los destinos no se conocen de antemano. Eso deja una pequeña ventana de rebinding: quien controle el DNS de su propio dominio podría devolver una IP pública a la comprobación de seguridad y una privada a la solicitud real un instante después.
+
+En Cloudflare esto no es explotable: los Workers no pueden alcanzar IP privadas ni el endpoint de metadatos `169.254.169.254`, así que el rebinding no llega a nada. Simplemente no le des al worker una vía de entrada: no le asocies un Tunnel, un Service ni un binding de red privada (solo necesita `RATE_LIMIT_KV`).
+
+Si lo ejecutas fuera de Cloudflare (workerd, Node y similares) dentro de una VPC, el runtime _sí_ puede alcanzar IP internas. Coloca un firewall de salida delante y bloquea los rangos privados: `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` y sus equivalentes IPv6. El código de la aplicación no puede imponerlo una vez que estás fuera de Cloudflare.
+
+## Desactivar el proxy
+
+Si no quieres usar un proxy CORS, define la variable de entorno como una cadena vacía:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Nota**: Sin el proxy, firmar con certificados que requieren obtener la cadena externamente (como FNMT o algunas CA corporativas) fallará con el error "Failed to fetch".
+
+## Solución de problemas
+
+### "Signing error: TypeError: Failed to fetch"
+
+Normalmente significa una de estas cosas:
+
+1. **No hay proxy CORS configurado**: define `VITE_CORS_PROXY_URL` y vuelve a compilar
+2. **Contenido mixto bloqueado**: tu sitio usa HTTPS pero la URL del emisor del certificado es HTTP. El proxy CORS lo resuelve.
+3. **El proxy CORS rechaza tu origen**: comprueba que tu dominio esté en el array `ALLOWED_ORIGINS` de `cors-proxy-worker.js`
+
+### "403 Forbidden" del proxy
+
+Tu dominio no está en la lista `ALLOWED_ORIGINS`. Edita `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Después vuelve a desplegar: `npx wrangler deploy`
+
+### Probar el proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certificados que funcionan sin proxy
+
+Algunos certificados incluyen la cadena completa en el archivo P12/PFX y no requieren obtención externa:
+
+- Certificados autofirmados
+- Algunas CA comerciales que incluyen los certificados intermedios
+- Certificados que has ensamblado manualmente con la cadena completa
diff --git a/docs/es/self-hosting/docker.md b/docs/es/self-hosting/docker.md
new file mode 100644
index 00000000..c517a505
--- /dev/null
+++ b/docs/es/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Desplegar con Docker / Podman
+
+La forma más sencilla de autoalojar BentoPDF en un entorno de producción.
+
+> [!IMPORTANT]
+> **Cabeceras necesarias para la conversión de archivos de Office**
+>
+> Las herramientas basadas en LibreOffice (conversión de Word, Excel y PowerPoint) requieren estas cabeceras HTTP para admitir `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> La página también debe servirse desde un contexto seguro. `http://localhost` funciona para pruebas locales, pero `http://192.168.x.x` u otras IP de red local normalmente no cumplen el requisito, así que la conversión de Office por HTTP simple fallará aunque las cabeceras estén presentes.
+>
+> Las imágenes de contenedor oficiales incluyen estas cabeceras. Si usas un proxy inverso (Traefik, Caddy, etc.), asegúrate de que estas cabeceras se conserven o se añadan, y usa HTTPS para el acceso que no sea loopback.
+
+> [!TIP]
+> **Usuarios de Podman:** todos los comandos `docker` funcionan con Podman sustituyendo `docker` por `podman` y `docker-compose` por `podman-compose`.
+
+## Inicio rápido
+
+> [!TIP]
+> BentoPDF se distribuye en dos versiones:
+>
+> - **Versión autoalojada**: `ghcr.io/alam00000/bentopdf-simple:latest`. Todas las herramientas PDF, **sin** el aparato de marketing (sin hero, preguntas frecuentes, testimonios ni pie de página). Úsala para despliegues internos, de equipo u organización. **No** es una versión "lite" con menos funciones.
+> - **Versión comercial**: `ghcr.io/alam00000/bentopdf:latest`. El sitio de marketing completo, usado por el propio bentopdf.com y por los titulares de licencia comercial con despliegues públicos.
+>
+> Si tienes dudas: descarga la versión autoalojada.
+
+```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
+
+Crea `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
+```
+
+Ejecuta:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Crear tu propia imagen
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Compila y ejecuta:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Variables de entorno
+
+| Variable | Descripción | Predeterminado |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Compila la variante autoalojada (oculta el aparato de marketing de bentopdf.com: hero, preguntas frecuentes, testimonios y pie de página). Se mantienen todas las herramientas PDF. | `false` |
+| `BASE_URL` | Desplegar en un subdirectorio | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL del módulo WASM de PyMuPDF | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL del módulo WASM de Ghostscript | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL del módulo WASM de CoherentPDF | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL del script del worker de OCR | _(vacío; usa la CDN predeterminada de Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Directorio del runtime principal de OCR | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_LANG_URL` | Directorio de traineddata de OCR | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Idiomas de OCR separados por comas que se muestran en la interfaz | _(vacío; muestra el catálogo completo)_ |
+| `VITE_OCR_FONT_BASE_URL` | Directorio de fuentes de la capa de texto del OCR | _(vacío; usa las URL remotas de las fuentes Noto)_ |
+| `VITE_DEFAULT_LANGUAGE` | Idioma predeterminado de la interfaz | `en` |
+| `VITE_BRAND_NAME` | Nombre de marca personalizado | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Ruta del logo relativa a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Texto personalizado de pie/copyright | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | IDs de herramientas separados por comas para ocultar | _(vacío; todas las herramientas activadas)_ |
+| `DISABLE_GITHUB_STARS` | Omite la obtención del contador de estrellas de GitHub al cargar la página y elimina `api.github.com` de la CSP. Las compilaciones en Simple Mode siempre la omiten. | `false` |
+| `SITE_URL` | URL pública escrita en los enlaces canonical, hreflang y de sitemap. Déjala por defecto salvo que quieras que los buscadores traten tu despliegue como un sitio propio. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Con un `SITE_URL` personalizado, todas las páginas se marcan como `noindex` para que tu copia no compita con bentopdf.com en los resultados de búsqueda. Ponlo en `true` para que los buscadores la indexen. | `false` |
+| `COMPRESSION_MODE` | Copias precomprimidas que se guardan junto a cada archivo: `o` ninguna, `g` `.gz` (las sirve el nginx de la imagen), `b` `.br`, `all` ambas. El nginx de la imagen no puede servir `.br`. | `o` |
+
+Las URL de los módulos WASM vienen preconfiguradas con valores predeterminados de CDN, así que todas las funciones avanzadas funcionan desde el primer momento. Sobrescríbelas para despliegues aislados de la red o autoalojados.
+
+### Buscadores
+
+Por defecto, todas las páginas indican a los buscadores que el original es bentopdf.com, de modo que tu despliegue no aparece como duplicado. No necesitas cambiar nada para una instancia privada o interna.
+
+- **Mantener tu instancia fuera de los resultados de búsqueda por completo:** ejecuta el contenedor con `-e ROBOTS_NOINDEX=true`. Solo requiere un reinicio, no una nueva compilación.
+- **Hacer que tu instancia sea un sitio propio en los resultados de búsqueda:** compila con `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Sin `ALLOW_INDEXING=true`, un `SITE_URL` personalizado marca todas las páginas como `noindex`.
+
+### Content-Security-Policy
+
+La imagen de nginx incluye una cabecera `Content-Security-Policy` en modo de aplicación. Las directivas `script-src`, `connect-src` y `font-src` de la CSP se **generan en tiempo de compilación** a partir de las variables de URL `VITE_*` anteriores: los hosts que pases mediante `--build-arg` se añaden automáticamente a la política.
+
+Como resultado:
+
+- Si sobrescribes `VITE_CORS_PROXY_URL` o `VITE_WASM_*_URL` al compilar, la CSP permite esos orígenes automáticamente, sin configuración adicional.
+- Para las URL en `cdn.jsdelivr.net`, `script-src` solo permite la carpeta exacta del paquete con su versión, por ejemplo `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, no toda la CDN. jsDelivr sirve cualquier paquete público de npm o repositorio de GitHub, así que permitir todo el host dejaría que cualquiera de ellos se ejecutara en tu instancia. Las URL de cualquier otro host se permiten por origen.
+- Si configuras URL de WASM personalizadas en _tiempo de ejecución_ desde la página de Ajustes avanzados de la aplicación, esos orígenes **no** están en la CSP y el navegador bloqueará las solicitudes a ellos. Esto también se aplica a una versión distinta del mismo paquete en `cdn.jsdelivr.net`, porque solo se permite la versión definida al compilar. La configuración en tiempo de ejecución está pensada para experimentar; para URL personalizadas permanentes, define el build arg `VITE_*` correspondiente.
+- Los despliegues aislados de la red que sobrescriben los tres valores `VITE_WASM_*_URL` también eliminan de la CSP esas carpetas de paquete de `cdn.jsdelivr.net` (cada valor predeterminado se sustituye, no se añade). Los valores predeterminados de Tesseract OCR en `cdn.jsdelivr.net` permanecen en la política hasta que también definas los tres valores `VITE_TESSERACT_*`. Del mismo modo, definir `VITE_CORS_PROXY_URL` sustituye el valor público predeterminado `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+La CSP incluye `'unsafe-eval'` en `script-src` porque el runtime WASM de LibreOffice (usado por las herramientas de conversión de Word/Excel/PowerPoint) y la biblioteca de imágenes wasm-vips (usada por PDF a TIFF) compilan código de despacho interno mediante `new Function()`. Quitarlo rompería esas herramientas. Si compilas en `SIMPLE_MODE` (sin LibreOffice) y no necesitas PDF a TIFF, puedes editar manualmente el `security-headers.conf` generado para eliminar `'unsafe-eval'` y obtener una política más estricta.
+
+Para el OCR, deja vacías las variables `VITE_TESSERACT_*` para usar los recursos en línea predeterminados, o define las tres juntas para un OCR autoalojado o sin conexión. Las sobrescrituras parciales de OCR se rechazan porque el worker, el runtime principal y el directorio de traineddata deben coincidir. Para una salida de PDF con texto buscable totalmente sin conexión, define también `VITE_OCR_FONT_BASE_URL` para que las fuentes de la capa de texto del OCR se carguen desde tu servidor interno en lugar de las URL públicas de las fuentes Noto.
+
+`VITE_DEFAULT_LANGUAGE` define el idioma de la interfaz para quienes visitan por primera vez. Valores admitidos: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Los usuarios pueden seguir cambiando de idioma: esto solo cambia el valor predeterminado.
+
+Ejemplo:
+
+```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
+```
+
+### Marca personalizada
+
+Sustituye el logo, el nombre y el texto de pie de BentoPDF por los tuyos. Coloca tu archivo de logo en la carpeta `public/` (o usa una imagen existente) y pasa las variables de marca al compilar:
+
+```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 .
+```
+
+La marca personalizada funciona tanto en el modo completo como en Simple Mode, y se puede combinar con todas las demás opciones de tiempo de compilación.
+
+### Desactivar herramientas concretas
+
+Oculta herramientas de la interfaz por requisitos de cumplimiento o seguridad. Las herramientas desactivadas desaparecen de la página de inicio, los resultados de búsqueda, los atajos de teclado y el constructor de flujos de trabajo. Si se accede directamente por URL, se muestra una página de "herramienta no disponible".
+
+Los ID de herramienta son la URL de la página sin `.html`. Por ejemplo, si la herramienta está en `bentopdf.com/edit-pdf.html`, el ID es `edit-pdf`.
+
+#### Encontrar los ID de herramienta
+
+La forma más fácil: abre cualquier herramienta en BentoPDF y mira la URL. La última parte de la ruta (sin `.html`) es el ID de la herramienta.
+
+
+Lista completa de ID de herramientas
+
+**Editar y anotar:** `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`
+
+**Convertir a 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`
+
+**Convertir desde 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`
+
+**Organizar y gestionar:** `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`
+
+**Optimizar y reparar:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Seguridad:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Opción 1: En tiempo de compilación (build arg de Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Esto incorpora la lista de herramientas desactivadas en el bundle de JavaScript. Para cambiarla hay que volver a compilar.
+
+#### Opción 2: En tiempo de ejecución (config.json)
+
+Monta un archivo `config.json` en el directorio servido, sin necesidad de recompilar:
+
+```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
+```
+
+O con 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
+```
+
+Ambos métodos se pueden combinar: las listas se fusionan. Si una herramienta aparece en cualquiera de ellas, se desactiva.
+
+#### Desactivar funciones del editor
+
+También puedes desactivar funciones concretas dentro del editor de PDF (p. ej., censura, anotaciones, formularios) sin desactivar toda la herramienta del editor. Añade `editorDisabledCategories` a tu `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Lista completa de categorías del editor
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Anotación:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Formas:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Medición:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formulario:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Censura:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Documento:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Página:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Herramientas:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Selección:** `selection`, `selection-copy`
+
+**Historial:** `history`, `history-undo`, `history-redo`
+
+
+
+Las categorías son jerárquicas: al desactivar una categoría padre (p. ej., `annotation`) se desactivan todas sus hijas.
+
+### Desactivar el contador de estrellas de GitHub
+
+La barra de navegación muestra un contador de estrellas de GitHub en vivo, obtenido de `api.github.com` al cargar la página. Es la única solicitud externa que no sirve a una función de PDF. Desactívalo al compilar para eliminar el código de obtención del bundle y quitar `api.github.com` de la Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Las compilaciones en Simple Mode (`bentopdf-simple`) siempre omiten el contador de estrellas: este indicador solo hace falta en la versión comercial o en compilaciones completas personalizadas.
+
+### URL de WASM personalizadas (aisladas de la red / autoalojadas)
+
+> [!IMPORTANT]
+> Las URL de WASM se incorporan al JavaScript en **tiempo de compilación**. Los archivos WASM los descarga el **navegador del usuario** en tiempo de ejecución: Docker no los descarga durante la compilación. Para redes aisladas, debes alojar los archivos WASM en un servidor interno al que lleguen los navegadores.
+
+**Flujo de trabajo completo para redes aisladas:**
+
+```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
+```
+
+Usa los códigos que muestra `bash scripts/prepare-airgap.sh --list-ocr-languages`, o busca por nombre con `bash scripts/prepare-airgap.sh --search-ocr-language `, para `--ocr-languages`. Si compilas con un subconjunto restringido de OCR, pasa los mismos códigos a `VITE_TESSERACT_AVAILABLE_LANGUAGES` para que la aplicación solo muestre los idiomas incluidos. Para una salida de OCR totalmente sin conexión, aloja también el directorio incluido `ocr-fonts/` y apunta `VITE_OCR_FONT_BASE_URL` hacia él.
+
+Define una variable como cadena vacía para desactivar ese módulo (los usuarios deberán configurarlo manualmente en Ajustes avanzados).
+
+## Puerto personalizado
+
+Por defecto, BentoPDF escucha en el puerto `8080` dentro del contenedor. Para cambiarlo, define la variable de entorno `PORT` en tiempo de ejecución:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variable | Descripción | Predeterminado |
+| -------- | ------------------------------------------- | -------------- |
+| `PORT` | Puerto de escucha de Nginx en el contenedor | `8080` |
+
+Funciona tanto con el Dockerfile estándar como con el nonroot.
+
+## ID de usuario personalizado (PUID/PGID)
+
+Para entornos que requieren ejecutarse como un usuario concreto que no sea root (dispositivos NAS, Kubernetes con contextos de seguridad, políticas de la organización), BentoPDF ofrece un Dockerfile aparte con compatibilidad PUID/PGID al estilo LSIO.
+
+### Compilar y ejecutar
+
+```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
+```
+
+### Variables de entorno
+
+| Variable | Descripción | Predeterminado |
+| -------------- | --------------------------------- | -------------- |
+| `PUID` | ID de usuario con el que ejecutar | `1000` |
+| `PGID` | ID de grupo con el que ejecutar | `1000` |
+| `PORT` | Puerto de escucha de Nginx | `8080` |
+| `DISABLE_IPV6` | Desactivar el listener 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
+```
+
+### Cómo funciona
+
+El contenedor se inicia como root, crea un usuario con el PUID/PGID indicado, ajusta la propiedad de todos los directorios con permiso de escritura y después reduce privilegios con `su-exec`. El proceso de nginx se ejecuta íntegramente como el usuario que indiques.
+
+> [!NOTE]
+> El `Dockerfile` estándar usa `nginx-unprivileged` (UID 101) y es el recomendado para la mayoría de los despliegues. Usa `Dockerfile.nonroot` solo cuando necesites un UID/GID concreto.
+
+> [!WARNING]
+> PUID/PGID no pueden ser `0` (root). El entrypoint valida los valores y terminará con un error si son inválidos.
+
+## Con Traefik (proxy inverso)
+
+```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
+```
+
+## Con Caddy (proxy inverso)
+
+```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"
+}
+```
+
+## Límites de recursos
+
+```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 (integración con systemd)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) te permite ejecutar contenedores de Podman como servicios de systemd. Es ideal para despliegues de producción en sistemas Linux.
+
+### Configuración básica de Quadlet
+
+Crea un archivo de unidad de contenedor en `~/.config/containers/systemd/bentopdf.container` (usuario) o `/etc/containers/systemd/bentopdf.container` (sistema):
+
+```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
+```
+
+### Habilitar e iniciar
+
+```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]
+> Para un despliegue a nivel de sistema, usa `systemctl` sin la opción `--user` y coloca el archivo en `/etc/containers/systemd/`.
+
+### Quadlet con comprobación de estado
+
+```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
+```
+
+### Actualización automática con Quadlet
+
+Podman puede actualizar los contenedores automáticamente cuando hay imágenes nuevas disponibles:
+
+```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
+```
+
+### Configuración de red de Quadlet
+
+Para una configuración de red personalizada, crea un archivo de red `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Después haz referencia a él en tu archivo de contenedor:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Actualización
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/es/self-hosting/hostinger.md b/docs/es/self-hosting/hostinger.md
new file mode 100644
index 00000000..c03f4465
--- /dev/null
+++ b/docs/es/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Desplegar en Hostinger
+
+[Hostinger](https://hostinger.com) es un proveedor de alojamiento compartido muy popular. Esta guía explica cómo desplegar BentoPDF en el alojamiento compartido de Hostinger.
+
+## Requisitos previos
+
+- Plan de alojamiento de Hostinger con acceso al administrador de archivos
+- Node.js instalado localmente para compilar
+
+## Paso 1: Compilar el proyecto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Los archivos compilados estarán en la carpeta `dist`.
+
+## Paso 2: Subir a Hostinger
+
+### Despliegue en el dominio raíz
+
+1. Inicia sesión en tu cuenta de Hostinger
+2. Ve a **File Manager** → **public_html**
+3. **Elimina** los archivos existentes (haz una copia de seguridad si hace falta)
+4. **Sube** todo el contenido de tu carpeta local `dist` a `public_html`
+
+### Despliegue en un subdirectorio
+
+Si despliegas en un subdirectorio (p. ej., `yourdomain.com/pdf-tools/`):
+
+1. Compila con la URL base correcta:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Crea la carpeta en Hostinger:
+ - Ve a **File Manager** → **public_html**
+ - Crea una carpeta nueva: `pdf-tools`
+3. Sube todo el contenido de `dist` a `public_html/pdf-tools/`
+
+## Paso 3: Crear el archivo .htaccess
+
+Crea un archivo `.htaccess` en la raíz de tu carpeta de despliegue (`public_html` o `public_html/pdf-tools/`):
+
+::: warning Importante
+Para el despliegue en un subdirectorio, cambia `RewriteBase /` por `RewriteBase /pdf-tools/` (o el nombre de tu carpeta).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Ejemplo de .htaccess para un subdirectorio
+
+Para `yourdomain.com/pdf-tools/`, actualiza estas líneas:
+
+```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
+```
+
+## Solución de problemas
+
+### Los archivos WASM no se cargan
+
+Asegúrate de que los tipos MIME estén bien definidos en `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Las herramientas de LibreOffice no funcionan
+
+Las cabeceras de seguridad son críticas para SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Si las cabeceras no se aplican, contacta con el soporte de Hostinger para que habiliten `mod_headers`.
+
+### Errores 404 al recargar la página
+
+Asegúrate de que la regla de la extensión `.html` y las rutas de idioma estén bien configuradas. BentoPDF usa archivos HTML estáticos, no enrutamiento 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]
+```
+
+### Límites de subida de archivos
+
+Hostinger puede tener límites de tamaño de archivo. Sube los archivos WASM por separado si falla la subida en bloque.
diff --git a/docs/es/self-hosting/index.md b/docs/es/self-hosting/index.md
new file mode 100644
index 00000000..128df549
--- /dev/null
+++ b/docs/es/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Guía de autoalojamiento
+
+BentoPDF se puede autoalojar en tu propia infraestructura. Esta guía cubre las distintas opciones de despliegue.
+
+## Inicio rápido con Docker / Podman
+
+La forma más rápida de autoalojar BentoPDF:
+
+> [!TIP]
+> BentoPDF se distribuye en dos compilaciones:
+>
+> - **Compilación autoalojada**: `ghcr.io/alam00000/bentopdf-simple:latest`. Todas las herramientas de PDF, **sin** el aparato de marketing (sin hero, preguntas frecuentes, testimonios ni pie de página). Úsala para despliegues internos, de equipo o de organización. **No** es una versión "lite" con menos funciones.
+> - **Compilación comercial**: `ghcr.io/alam00000/bentopdf:latest`. El sitio de marketing completo, que usa el propio bentopdf.com y los titulares de licencias comerciales que ejecutan despliegues de cara al público.
+>
+> Si dudas: descarga la compilación autoalojada.
+
+> [!IMPORTANT]
+> La conversión de archivos de Office requiere `SharedArrayBuffer`, lo que significa que la aplicación debe estar aislada entre orígenes (cross-origin isolated) y servirse desde un contexto seguro. La imagen oficial ya envía las cabeceras COOP/COEP necesarias, pero los navegadores siguen desactivando `SharedArrayBuffer` en orígenes HTTP simples de red local, como `http://192.168.x.x`.
+>
+> Usa `http://localhost` solo para pruebas en el mismo dispositivo. Si los usuarios acceden a BentoPDF mediante una IP o un nombre de host de la red local, termina la conexión con 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
+```
+
+O con 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)
+
+Ejecuta BentoPDF como un servicio de systemd. Crea `~/.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
+```
+
+Consulta la [guía de despliegue con Docker](/es/self-hosting/docker) para ver la documentación completa de Quadlet.
+
+## Compilar desde el código fuente
+
+```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
+```
+
+## Opciones de configuración
+
+### Compilación autoalojada (Modo Simple)
+
+La compilación autoalojada (la imagen `bentopdf-simple`, también llamada Modo Simple) es **funcionalmente idéntica** a la compilación comercial: todas las herramientas de PDF están presentes y se comportan igual. Simplemente oculta el aparato de marketing que solo tiene sentido en el propio bentopdf.com o en un despliegue comercial de cara al público. **No es una versión "lite" ni con menos funciones.**
+
+**Qué oculta la compilación autoalojada** (solo cosmético, no se elimina ninguna función de PDF):
+
+- Barra de navegación, sección hero, sección de características, preguntas frecuentes, testimonios, pie de página
+- Cambia el título de la página a "Herramientas PDF"
+
+**Qué conserva la compilación autoalojada** (todo lo que realmente trabaja con PDF):
+
+- Todas las herramientas de PDF (fusionar, dividir, editar, firmar, OCR, conversión de Office, etc.)
+- Compatibilidad con marca personalizada y toda la configuración de compilación y de tiempo de ejecución
+
+La compilación comercial (`ghcr.io/alam00000/bentopdf:latest`) es la que impulsa el propio bentopdf.com y la usan los titulares de licencias comerciales que ejecutan despliegues de cara al público. Añade el hero, las preguntas frecuentes, los testimonios y el pie de página, que no tendrían sentido en una herramienta interna.
+
+Si autoalojas BentoPDF para tu equipo, tu organización o como herramienta interna, descarga la compilación autoalojada:
+
+```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
+```
+
+Consulta [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) para ver todos los detalles.
+
+### Compilación comercial (despliegues de cara al público con tu propia marca)
+
+La compilación comercial (la imagen `bentopdf`, sin el sufijo `-simple`) es la que impulsa el propio bentopdf.com. Incluye el sitio de marketing completo (hero, características, preguntas frecuentes, testimonios, pie de página) además de todas las herramientas de PDF. Usa esta compilación cuando quieras **desplegar BentoPDF como un servicio de PDF de cara al público bajo tu propia marca**, por ejemplo:
+
+- Ejecutas BentoPDF como un SaaS alojado para usuarios finales en tu propio dominio
+- Quieres la experiencia de la página de inicio (secciones de marketing y herramientas), no solo la superficie básica de herramientas
+- Eres titular de una licencia comercial e integras BentoPDF en un producto comercial
+
+**Ejecútala tal cual** (con la marca BentoPDF, útil para previsualizar la compilación):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Compila con tu propia marca** (el flujo comercial típico):
+
+```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
+```
+
+Todas las demás opciones de compilación (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, sustitución de URL de WASM, etc.) funcionan igual que en la compilación autoalojada.
+
+::: warning Licencias
+Ejecutar la compilación comercial está permitido bajo cualquiera de las dos opciones de licencia de BentoPDF:
+
+- **AGPL-3.0** (gratuita): permitida si tu despliegue publica todo su código fuente bajo AGPL, incluidas las modificaciones de marca y la lógica de negocio asociada.
+- **Licencia comercial** (79 $ de por vida): necesaria para despliegues de código cerrado o propietarios en los que no publicas tu fork con la marca ni tu código de negocio.
+
+Consulta la [página de licencias](https://www.bentopdf.com/licensing) para ver la comparación completa. Los módulos WASM con licencia AGPL (PyMuPDF, Ghostscript, CoherentPDF) se cargan desde una CDN en tiempo de ejecución, por lo que no entran en tu imagen y no cambian tu situación de licencias.
+:::
+
+### URL base
+
+Despliega en un subdirectorio:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Marca personalizada
+
+Sustituye el logotipo, el nombre y el texto del pie de página de BentoPDF por los tuyos en tiempo de compilación:
+
+| Variable | Descripción | Valor por defecto |
+| ------------------ | ------------------------------------------------------------ | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nombre de marca que se muestra en el encabezado y el pie | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Ruta del logotipo relativa a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Texto personalizado del pie de página y de derechos de autor | `© 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
+```
+
+O mediante 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 .
+```
+
+La marca personalizada funciona tanto en el modo completo como en el Modo Simple, y se puede combinar con todas las demás opciones de compilación (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Desactivar herramientas específicas
+
+Oculta herramientas concretas por motivos de cumplimiento o seguridad. Las herramientas desactivadas se eliminan de la página de inicio, la búsqueda, los atajos, el generador de flujos de trabajo y el acceso directo por URL.
+
+Los ID de las herramientas son la URL de la página sin `.html`: abre cualquier herramienta y mira la URL (p. ej., `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**En tiempo de compilación** (incluido en el bundle):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**En tiempo de ejecución** (sin recompilar: monta un `config.json`):
+
+```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
+```
+
+Se pueden combinar ambos métodos: las listas se fusionan.
+
+También puedes desactivar funciones específicas dentro del Editor de PDF (p. ej., la redacción) sin desactivar la herramienta completa, añadiendo `editorDisabledCategories` a `config.json`. Consulta la [guía de Docker](/es/self-hosting/docker#desactivar-funciones-del-editor) para ver la lista completa de categorías.
+
+## Guías de despliegue
+
+Elige tu plataforma:
+
+- [Vercel](/es/self-hosting/vercel)
+- [Netlify](/es/self-hosting/netlify)
+- [Cloudflare Pages](/es/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/es/self-hosting/aws)
+- [Hostinger](/es/self-hosting/hostinger)
+- [Nginx](/es/self-hosting/nginx)
+- [Apache](/es/self-hosting/apache)
+- [Docker](/es/self-hosting/docker)
+- [Kubernetes](/es/self-hosting/kubernetes)
+- [Proxy CORS](/es/self-hosting/cors-proxy): necesario para las firmas digitales
+
+## Problemas comunes
+
+### La conversión de Word / ODT / Excel / PowerPoint a PDF se cuelga (SharedArrayBuffer no disponible)
+
+**Síntoma**: las conversiones de documentos basadas en LibreOffice (Word, ODT, Excel, PowerPoint a PDF) se quedan colgadas en torno al 55% o no llegan a iniciarse. La consola del navegador puede mostrar:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+...o `window.crossOriginIsolated` devuelve `false`, o la compilación de WASM informa `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Causa**: LibreOffice WASM requiere `SharedArrayBuffer`, que el navegador solo activa cuando la página está **aislada entre orígenes (cross-origin isolated)** Y se sirve desde un **contexto seguro**. Eso significa que deben cumplirse dos cosas:
+
+1. Todas las respuestas incluyen ambas cabeceras:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. La página se sirve desde `https://...` o `http://localhost`. HTTP simple sobre una IP de red local (p. ej. `http://192.168.x.x`) NO cuenta como seguro: los navegadores desactivan `SharedArrayBuffer` allí.
+
+La discrepancia `00 61 73 6d / 1f 8b 08 08` es un subsíntoma distinto: a los archivos precomprimidos `.wasm.gz` / `.data.gz` les falta la cabecera de respuesta `Content-Encoding: gzip`, por lo que el navegador recibe bytes gzip sin procesar en lugar de WASM descomprimido.
+
+**Solución**: consulta la guía de despliegue de tu plataforma para ver la configuración exacta:
+
+- [Nginx →](/es/self-hosting/nginx#la-conversion-de-word-odt-excel-a-pdf-no-funciona)
+- [Apache →](/es/self-hosting/apache#word-odt-excel-a-pdf-no-funciona)
+- [AWS S3 + CloudFront →](/es/self-hosting/aws#paso-3b-politica-de-cabeceras-de-respuesta-necesaria-para-libreoffice-wasm)
+- [Cloudflare Pages →](/es/self-hosting/cloudflare#archivo-de-configuracion) (archivo `_headers`)
+- [Netlify →](/es/self-hosting/netlify#la-conversion-de-word-odt-excel-a-pdf-se-queda-atascada-en-el-55) (`netlify.toml`)
+- [Vercel →](/es/self-hosting/vercel#la-conversion-de-word-odt-excel-a-pdf-no-funciona) (`vercel.json`)
+- [Hostinger →](/es/self-hosting/hostinger#las-herramientas-de-libreoffice-no-funcionan) (`.htaccess`)
+- [Kubernetes →](/es/self-hosting/kubernetes#como-comprobar-que-las-cabeceras-de-sharedarraybuffer-siguen-funcionando-ingress-gateway)
+- **Docker**: lo gestiona automáticamente la configuración de nginx incluida, no hace falta hacer nada.
+
+**Verificación**: abre la consola de DevTools en cualquier página de BentoPDF y ejecuta:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Si la página usa HTTPS o `http://localhost` Y ambas cabeceras COEP/COOP están presentes en todas las respuestas, ambas comprobaciones se superan. Si estás en `http://192.168.x.x` u otro origen HTTP que no sea de loopback, termina la conexión con HTTPS: no hay una solución que dependa solo de cabeceras.
+
+### Archivos `.mjs` servidos como `application/octet-stream`
+
+**Síntoma**: Firmar PDF / Rellenar formularios / otras herramientas muestran un visor en blanco o no se cargan. La consola del navegador informa:
+
+> `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.`
+
+**Causa**: tu servidor web o proxy inverso no tiene una asignación de tipo MIME para los archivos `.mjs` (el visor de PDF incluido incorpora módulos ES con esa extensión). Muchas configuraciones de servidor por defecto usan `application/octet-stream` para las extensiones desconocidas, y los navegadores se niegan a ejecutarlas como módulos ES.
+
+**Solución**: consulta la guía de despliegue de tu plataforma para ver el fragmento exacto:
+
+- [Nginx →](/es/self-hosting/nginx#firmar-pdf-o-rellenar-formularios-muestra-un-visor-en-blanco-error-mime-de-mjs)
+- [Apache →](/es/self-hosting/apache#firmar-pdf-o-el-rellenador-de-formularios-muestra-un-visor-en-blanco-error-mime-de-mjs)
+- [AWS S3 + CloudFront →](/es/self-hosting/aws#paso-2-compilar-y-subir) (consulta `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/es/self-hosting/kubernetes#errores-de-tipo-mime-de-mjs-iframe-en-blanco-en-firmar-pdf-rellenar-formularios)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: se gestiona automáticamente, no hace falta hacer nada.
+
+**Verificación**: abre DevTools → pestaña Network, busca la petición `.mjs` que falla y revisa la cabecera de respuesta `Content-Type`. Debería ser `application/javascript`. Si sigue siendo `application/octet-stream`, puede que un proxy inverso o una CDN externos estén volviendo a detectar el tipo: revisa cada capa de tu cadena de servicio.
+
+## Configuración de WASM (componentes AGPL)
+
+BentoPDF **no incluye** en su código fuente las bibliotecas de procesamiento con licencia AGPL, pero **preconfigura las URL de CDN** para que todas las funciones funcionen de inmediato, sin configuración manual.
+
+::: tip Cero configuración por defecto
+Desde la v2.0.0, los módulos WASM están preconfigurados para cargarse desde la CDN de jsDelivr mediante variables de entorno. Todas las funciones avanzadas funcionan de inmediato sin ninguna configuración del usuario.
+:::
+
+| Componente | Licencia | Funciones |
+| --------------- | -------- | ----------------------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Conversión de EPUB/MOBI/FB2/XPS, extracción de imágenes, extracción de tablas |
+| **Ghostscript** | AGPL-3.0 | Conversión a PDF/A, compresión, corrección de inclinación, rasterización |
+| **CoherentPDF** | AGPL-3.0 | Tabla de contenido, adjuntos, fusión de PDF con marcadores |
+
+### Variables de entorno por defecto
+
+Se definen en `.env.production` y se incluyen en la compilación:
+
+```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=
+```
+
+### Sustituir las URL de WASM
+
+Puedes sustituir los valores por defecto en tiempo de compilación para despliegues personalizados:
+
+```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
+```
+
+Para desactivar un módulo por completo (requiere configuración manual del usuario en Ajustes avanzados), asigna una cadena vacía a su variable.
+
+Para OCR, deja vacías todas las variables `VITE_TESSERACT_*` y mantén los recursos en línea por defecto, o define juntas las URL de worker, core e idiomas para un OCR autoalojado o sin conexión. Si incluyes solo idiomas de OCR concretos, define también `VITE_TESSERACT_AVAILABLE_LANGUAGES` con los mismos códigos separados por comas para que la interfaz solo ofrezca los idiomas instalados y las selecciones no admitidas fallen con un error descriptivo. Para obtener PDF con capa de texto totalmente sin conexión, define también `VITE_OCR_FONT_BASE_URL` con el directorio interno que sirve las fuentes de OCR incluidas.
+
+Los usuarios también pueden sustituir estos valores por defecto en cualquier momento mediante **Ajustes avanzados** en la interfaz: las sustituciones del usuario guardadas en el navegador tienen prioridad sobre los valores por defecto del entorno.
+
+### Despliegue aislado de la red / sin conexión
+
+Para redes sin acceso a internet (gobierno, sanidad, finanzas, etc.). Las URL de WASM se incluyen en el JavaScript en **tiempo de compilación**: los archivos WASM reales los descarga el **navegador del usuario** en tiempo de ejecución. Por eso debes preparar todo en una máquina con internet y luego transferirlo a la red aislada.
+
+#### Script automatizado (recomendado)
+
+El script incluido `prepare-airgap.sh` automatiza todo el proceso: descarga los paquetes WASM, compila la imagen de Docker y genera un paquete autocontenido con un script de configuración.
+
+```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
+```
+
+Esto genera un directorio con el paquete:
+
+```
+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
+```
+
+Transfiere el paquete a la red aislada mediante USB, un repositorio interno de artefactos o un método aprobado. Después ejecuta el script de configuración incluido:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+El script de configuración carga la imagen de Docker, extrae los archivos WASM y, opcionalmente, inicia el contenedor.
+
+**Opciones del script:**
+
+| Opción | Descripción | Valor por defecto |
+| ------------------------------ | ----------------------------------------------------------- | ------------------------------------- |
+| `--wasm-base-url ` | Dónde se alojarán los WASM internamente | _(obligatorio, se pregunta si falta)_ |
+| `--image-name ` | Etiqueta de la imagen de Docker | `bentopdf` |
+| `--output-dir ` | Directorio de salida del paquete | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Activa el Modo Simple | desactivado |
+| `--base-url ` | URL base de subdirectorio (p. ej. `/pdf/`) | `/` |
+| `--language ` | Idioma predeterminado de la interfaz (p. ej. `fr`, `de`) | _(ninguno)_ |
+| `--brand-name ` | Nombre de marca personalizado | _(ninguno)_ |
+| `--brand-logo ` | Ruta del logotipo relativa a `public/` | _(ninguno)_ |
+| `--footer-text ` | Texto personalizado del pie de página | _(ninguno)_ |
+| `--ocr-languages ` | Idiomas de OCR separados por comas que se incluirán | `eng` |
+| `--list-ocr-languages` | Muestra los códigos y nombres de OCR admitidos y sale | desactivado |
+| `--search-ocr-language ` | Busca códigos de OCR por nombre o abreviatura | desactivado |
+| `--dockerfile ` | Dockerfile que se usará | `Dockerfile` |
+| `--skip-docker` | Omite la compilación y exportación de Docker | desactivado |
+| `--skip-wasm` | Omite la descarga de WASM (reutiliza los `.tgz` existentes) | desactivado |
+
+El prompt interactivo también acepta `list` para mostrar la lista completa de códigos de Tesseract admitidos y `search ` para encontrar coincidencias como `search german` o `search chi`.
+
+::: warning Requisito de mismo origen
+Los archivos WASM deben servirse desde el **mismo origen** que la aplicación BentoPDF. Los Web Workers usan `importScripts()`, que no puede cargar scripts de otro origen. Por ejemplo, si BentoPDF se ejecuta en `https://internal.example.com`, la URL base de WASM también debe ser `https://internal.example.com/wasm`.
+:::
+
+#### Pasos manuales
+
+
+Si prefieres hacerlo manualmente sin el script
+
+**Paso 1: Descargar los paquetes de WASM y OCR** (en una máquina con internet)
+
+```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
+```
+
+**Paso 2: Compilar la imagen de Docker con URL internas**
+
+```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 .
+```
+
+**Paso 3: Exportar la imagen de Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Paso 4: Transferir a la red aislada**
+
+Copia mediante USB, un repositorio interno de artefactos o un método de transferencia aprobado:
+
+- `bentopdf.tar`: la imagen de Docker
+- Los cinco paquetes `.tgz` de WASM/OCR del Paso 1
+- El directorio `tesseract-langdata/` del Paso 1
+- El directorio `ocr-fonts/` del Paso 1
+
+**Paso 5: Configurar dentro de la red aislada**
+
+```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
+```
+
+Asegúrate de que los archivos sean accesibles en las URL que configuraste en el Paso 2, incluidas `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` y `.../ocr/fonts`.
+
+
+
+::: info ¿Compilas desde el código fuente en lugar de usar Docker?
+Define las variables en `.env.production` antes de ejecutar `npm run build`:
+
+```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
+```
+
+:::
+
+### Alojar tu propio proxy de WASM
+
+Si necesitas servir archivos WASM con licencia AGPL con las cabeceras CORS adecuadas, puedes desplegar un proxy sencillo. Consulta la [guía del proxy de WASM en Cloudflare](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) para ver una implementación de ejemplo.
+
+::: tip ¿Por qué por separado?
+Esta separación garantiza:
+
+- Un cumplimiento legal claro para los usuarios comerciales
+- Que el núcleo de BentoPDF siga bajo su doble licencia (AGPL-3.0 / Comercial)
+- Que los archivos WASM se carguen en tiempo de ejecución, no incluidos en el código fuente
+ :::
+
+## Requisitos del sistema
+
+| Requisito | Mínimo |
+| -------------- | --------------------------------- |
+| Almacenamiento | ~100 MB (núcleo sin módulos AGPL) |
+| RAM | 512 MB |
+| CPU | Cualquier procesador moderno |
+
+::: tip
+BentoPDF es un sitio estático: no se necesita base de datos ni servidor backend.
+:::
diff --git a/docs/es/self-hosting/kubernetes.md b/docs/es/self-hosting/kubernetes.md
new file mode 100644
index 00000000..7a08df8f
--- /dev/null
+++ b/docs/es/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Despliegue con Kubernetes
+
+Kubernetes puede ser excesivo para un sitio estático, pero puede encajar muy bien si ya estandarizas con Helm + GitOps.
+
+> [!IMPORTANT]
+> **Cabeceras necesarias para la conversión de archivos de Office**
+>
+> Las herramientas basadas en LibreOffice (conversión de Word, Excel y PowerPoint) requieren estas cabeceras HTTP para la compatibilidad con `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Las imágenes oficiales de BentoPDF con nginx incluyen estas cabeceras. En Kubernetes, **los controladores de Ingress/Gateway también son proxies inversos**, así que asegúrate de que estas cabeceras se conserven (o añádelas en el borde).
+
+## Requisitos previos
+
+- Clúster de Kubernetes
+- Helm v3
+- Una imagen de BentoPDF con nginx (p. ej. `ghcr.io/alam00000/bentopdf:`) que sirva en el **puerto 8080**
+
+## Despliegue con Helm
+
+### Instalar desde este repositorio (chart local)
+
+```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
+```
+
+### Instalar desde GHCR (chart OCI)
+
+Si el chart está publicado en GHCR como artefacto OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Exponerlo
+
+### Port-forward (prueba rápida)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (opcional)
+
+Activa Ingress (ejemplo para nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (opcional)
+
+Este chart es compatible con `Gateway` + `HTTPRoute` de Gateway API.
+
+Ejemplo (operador de Gateway API de Cloudflare):
+
+```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
+```
+
+## Cómo comprobar que las cabeceras de SharedArrayBuffer siguen funcionando (Ingress/Gateway)
+
+### Lo que "debería" pasar
+
+La configuración de nginx de BentoPDF establece las cabeceras de respuesta necesarias. La mayoría de los controladores de Ingress/Gateway **pasan las cabeceras de respuesta del upstream sin modificarlas**.
+
+### Qué puede romperlo
+
+- Una política del controlador o del borde que **sobrescriba** o **elimine** cabeceras de respuesta
+- Un middleware de "cabeceras de seguridad" que establezca valores de COOP/COEP distintos
+
+### Cómo verificarlo
+
+Ejecuta esto contra tu endpoint público:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Deberías ver:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Si tu controlador de Ingress no las conserva
+
+Añade las cabeceras en el borde (depende del controlador). Ejemplo para **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;
+```
+
+## Errores de tipo MIME de `.mjs` (iframe en blanco en Firmar PDF / Rellenar formularios)
+
+Si la consola del navegador muestra `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` en una petición `.mjs`, un controlador de Ingress/Gateway situado delante del nginx de BentoPDF está reemplazando la cabecera `Content-Type` del upstream por `application/octet-stream`.
+
+El nginx de la imagen de BentoPDF ya sirve `.mjs` como `application/javascript`. La solución es evitar que el controlador la elimine o la reemplace. Para nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+O bien usa un filtro `ResponseHeaderModifier` en Gateway API para establecer `Content-Type: application/javascript` en las rutas `.mjs`. Verifica con DevTools → pestaña Network: la petición `.mjs` que fallaba ahora debería mostrar `content-type: application/javascript`.
+
+### Si usas Gateway API y quieres forzar la adición de cabeceras
+
+Gateway API admite un filtro `ResponseHeaderModifier`. Puedes asociarlo en `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
+```
+
+La compatibilidad con filtros concretos depende de tu controlador de Gateway; si se ignora un filtro, añade las cabeceras en la capa del borde o del controlador.
+
+## Desactivar herramientas específicas
+
+Usa un ConfigMap para desactivar herramientas en tiempo de ejecución sin reconstruir la imagen:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Móntalo en el directorio servido:
+
+```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
+```
+
+Los ID de las herramientas son la URL de la página sin `.html`: abre cualquier herramienta y mira la URL (p. ej., `edit-pdf`, `merge-pdf`, `compress-pdf`). Las herramientas desactivadas se ocultan en la página de inicio, la búsqueda, los atajos, el generador de flujos de trabajo y el acceso directo por URL. Consulta la [guía de Docker](/es/self-hosting/docker#desactivar-herramientas-concretas) para ver la lista completa de opciones.
diff --git a/docs/es/self-hosting/netlify.md b/docs/es/self-hosting/netlify.md
new file mode 100644
index 00000000..37ff1f9e
--- /dev/null
+++ b/docs/es/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Despliegue en Netlify
+
+[Netlify](https://netlify.com) ofrece un excelente alojamiento de sitios estáticos con un generoso plan gratuito.
+
+## Despliegue con un clic
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Despliegue manual
+
+### Paso 1: Conectar el repositorio
+
+1. Inicia sesión en [Netlify](https://app.netlify.com)
+2. Haz clic en "Add new site" → "Import an existing project"
+3. Conecta tu cuenta de GitHub
+4. Selecciona tu fork de BentoPDF
+
+### Paso 2: Configurar los ajustes de compilación
+
+| Ajuste | Valor |
+| ------------------------- | --------------- |
+| Comando de compilación | `npm run build` |
+| Directorio de publicación | `dist` |
+| Versión de Node | 18+ |
+
+### Paso 3: Desplegar
+
+Haz clic en "Deploy site" y espera a que termine la compilación.
+
+## Archivo de configuración
+
+Crea `netlify.toml` en la raíz de tu proyecto:
+
+```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 Importante
+Las cabeceras `Cross-Origin-Embedder-Policy` y `Cross-Origin-Opener-Policy` son necesarias para las conversiones de Word/ODT/Excel/PowerPoint a PDF. Sin ellas, `SharedArrayBuffer` no está disponible y el motor LibreOffice WASM no podrá inicializarse.
+
+Las cabeceras `Content-Encoding: gzip` en los archivos `.wasm.gz` y `.data.gz` indican al navegador que los descomprima automáticamente. Sin ellas, el navegador recibe bytes gzip sin procesar y la compilación de WASM falla.
+:::
+
+## Variables de entorno
+
+Configúralas en Site settings → Environment variables:
+
+| Variable | Descripción |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Ponla en `true` para una compilación mínima |
+| `VITE_BRAND_NAME` | Nombre de marca personalizado (reemplaza "BentoPDF") |
+| `VITE_BRAND_LOGO` | Ruta del logotipo relativa a `public/` (p. ej. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Texto personalizado del pie de página y de derechos de autor |
+| `VITE_DEFAULT_LANGUAGE` | Idioma predeterminado de la interfaz (p. ej. `fr`, `de`, `es`) |
+
+## Dominio personalizado
+
+1. Ve a Site settings → Domain management
+2. Haz clic en "Add custom domain"
+3. Sigue las instrucciones de configuración de DNS
+
+## Archivos multimedia grandes
+
+Para archivos WASM grandes, considera activar [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Solución de problemas
+
+### La conversión de Word/ODT/Excel a PDF se queda atascada en el 55%
+
+Si las conversiones de documentos se quedan colgadas en el 55%, abre la consola de DevTools y comprueba:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Si `crossOriginIsolated` es `false`, las cabeceras COEP/COOP de tu `netlify.toml` no se están aplicando. Asegúrate de que el archivo esté en la raíz de tu proyecto y vuelve a desplegar.
+
+Si ves `expected magic word 00 61 73 6d, found 1f 8b 08 08` en la consola, a los archivos `.wasm.gz` les faltan las cabeceras `Content-Encoding: gzip`. Asegúrate de que los bloques `[[headers]]` de `soffice.wasm.gz` y `soffice.data.gz` estén en tu `netlify.toml`.
+
+### Falla la compilación
+
+Comprueba la compatibilidad de la versión de Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Carga inicial lenta
+
+Activa la optimización de recursos en Site settings → Build & deploy → Asset optimization.
diff --git a/docs/es/self-hosting/nginx.md b/docs/es/self-hosting/nginx.md
new file mode 100644
index 00000000..7b8d37f5
--- /dev/null
+++ b/docs/es/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Despliegue con Nginx
+
+Aloja BentoPDF en tu propio servidor con Nginx.
+
+## Requisitos previos
+
+- Servidor Ubuntu/Debian
+- Nginx instalado
+- Certificado SSL (recomendado: Let's Encrypt)
+
+## Paso 1: Compilar el proyecto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Para personalizar la marca, define variables de entorno antes de compilar:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Paso 2: Copiar los archivos
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Paso 3: Configuración de Nginx
+
+Crea `/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;
+ }
+}
+```
+
+## Paso 4: Activar el sitio
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Paso 5: SSL con Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Despliegue en un subdirectorio
+
+Para alojarlo en `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Compila con:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Ajuste del rendimiento
+
+Añade a `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;
+}
+```
+
+## Solución de problemas
+
+### WASM no se carga
+
+Asegúrate de que el tipo MIME esté definido:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Firmar PDF o Rellenar formularios muestra un visor en blanco (error MIME de `.mjs`)
+
+Si la consola del navegador muestra:
+
+```
+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.
+```
+
+...y la petición que falla termina en `.mjs`, a tu nginx le falta la asignación `.mjs → application/javascript`. El visor de PDF incluido (usado por Firmar PDF, Rellenar formularios y algunas otras herramientas) incorpora archivos de módulos ES con extensión `.mjs`, y el `mime.types` por defecto de nginx no los incluye.
+
+Para solucionarlo, añade `mjs` a la línea `application/javascript` existente en `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> NO añadas una _segunda_ línea `application/javascript`: nginx analiza `mime.types` línea por línea y solo prevalece una asignación de tipo a extensión, así que en algunas versiones la segunda línea se ignora sin avisar. Edita la línea existente para añadir `mjs` junto a `js`.
+
+O bien sobrescríbelo localmente dentro de tu bloque server (sin editar el archivo global):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Recarga nginx después del cambio:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Para confirmarlo: en DevTools del navegador → pestaña Network, busca la petición `.mjs` que fallaba y revisa la cabecera de respuesta `Content-Type`. Ahora debería ser `application/javascript`, no `application/octet-stream`.
+
+### La conversión de Word/ODT/Excel a PDF no funciona
+
+LibreOffice WASM requiere `SharedArrayBuffer`, que necesita las cabeceras `Cross-Origin-Embedder-Policy` y `Cross-Origin-Opener-Policy`. También necesita un contexto seguro, así que `http://localhost` sirve para pruebas locales, pero `http://192.168.x.x` u otras IP de la red local normalmente requieren HTTPS. Ten en cuenta que las directivas `add_header` de nginx dentro de un bloque `location` **sobrescriben** las directivas `add_header` del nivel de servidor: no se combinan. Todo bloque `location` con sus propios `add_header` debe incluir las cabeceras COEP/COOP.
+
+Verifica con:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Si usas un proxy inverso delante de nginx, asegúrate de que conserve estas cabeceras.
+
+### 502 Bad Gateway
+
+Revisa los registros de errores de Nginx:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/es/self-hosting/vercel.md b/docs/es/self-hosting/vercel.md
new file mode 100644
index 00000000..47c7c46b
--- /dev/null
+++ b/docs/es/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Despliegue en Vercel
+
+[Vercel](https://vercel.com) ofrece la experiencia de despliegue más sencilla para sitios estáticos.
+
+## Despliegue con un clic
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Despliegue manual
+
+### Paso 1: Hacer un fork del repositorio
+
+Haz un fork de [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) en tu cuenta de GitHub.
+
+### Paso 2: Importar en Vercel
+
+1. Ve a [vercel.com/new](https://vercel.com/new)
+2. Selecciona tu repositorio con el fork
+3. Configura el proyecto:
+
+| Ajuste | Valor |
+| ---------------------- | --------------- |
+| Framework Preset | Vite |
+| Comando de compilación | `npm run build` |
+| Directorio de salida | `dist` |
+| Comando de instalación | `npm install` |
+
+### Paso 3: Variables de entorno (opcional)
+
+Añádelas si las necesitas:
+
+| Variable | Descripción |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Ponla en `true` para una interfaz mínima |
+| `VITE_BRAND_NAME` | Nombre de marca personalizado (reemplaza "BentoPDF") |
+| `VITE_BRAND_LOGO` | Ruta del logotipo relativa a `public/` (p. ej. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Texto personalizado del pie de página y de derechos de autor |
+| `VITE_DEFAULT_LANGUAGE` | Idioma predeterminado de la interfaz (p. ej. `fr`, `de`, `es`) |
+
+### Paso 4: Desplegar
+
+Haz clic en "Deploy" y espera a que termine la compilación.
+
+## Dominio personalizado
+
+1. Ve a los ajustes de tu proyecto
+2. Ve a "Domains"
+3. Añade tu dominio personalizado
+4. Configura el DNS según las instrucciones
+
+## Limitaciones
+
+::: warning Archivos grandes
+Las funciones serverless de Vercel tienen un límite de 50 MB. Como BentoPDF es un sitio estático, esto no debería afectarte, pero los módulos WASM son grandes (~100 MB en total). Asegúrate de que se sirvan desde la carpeta `/public`.
+:::
+
+## Solución de problemas
+
+### Tiempo de espera agotado en la compilación
+
+Si las compilaciones agotan el tiempo de espera, prueba lo siguiente:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### Error 404 al recargar
+
+Añade un `vercel.json` para el enrutamiento SPA:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### La conversión de Word/ODT/Excel a PDF no funciona
+
+Las conversiones de LibreOffice WASM requieren `SharedArrayBuffer`, que necesita estas cabeceras de respuesta en todas las páginas:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Los archivos precomprimidos `.wasm.gz` y `.data.gz` también necesitan `Content-Encoding: gzip` para que el navegador los descomprima.
+
+Añade esto a tu `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" }
+ ]
+ }
+ ]
+}
+```
+
+Para verificarlo, abre la consola de DevTools y ejecuta `console.log(window.crossOriginIsolated)`: debería devolver `true`.
diff --git a/docs/es/tools/add-attachments.md b/docs/es/tools/add-attachments.md
new file mode 100644
index 00000000..8cbdf50d
--- /dev/null
+++ b/docs/es/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Agregar adjuntos
+description: Incrusta archivos de cualquier tipo en un PDF a nivel de documento o asociados a páginas concretas.
+---
+
+# Agregar adjuntos
+
+Incrusta uno o varios archivos directamente dentro de un documento PDF. Los adjuntos pueden añadirse a nivel de documento (visibles en el panel de adjuntos de cualquier lector de PDF) o vincularse a páginas concretas.
+
+## Cómo funciona
+
+1. Sube el PDF al que quieres adjuntar archivos.
+2. Usa la zona de carga de adjuntos para seleccionar los archivos que quieres incrustar (de cualquier tipo).
+3. Elige el nivel del adjunto: **Documento** (predeterminado) o **Página**.
+4. Si eliges el nivel de página, introduce un rango de páginas (por ejemplo, `1-3` o `5`).
+5. Haz clic en el botón de procesar. El PDF modificado se descarga con tus archivos incrustados.
+
+## Características
+
+- Adjunta cualquier tipo de archivo: imágenes, hojas de cálculo, archivos comprimidos, ejecutables, lo que sea
+- Colocación de adjuntos a nivel de documento o de página
+- Se pueden adjuntar varios archivos en una sola operación
+- Muestra los nombres y tamaños de todos los adjuntos seleccionados
+- El resultado conserva el contenido original del PDF con los archivos incrustados añadidos
+
+## Opciones
+
+| Opción | Descripción |
+| ---------------------- | -------------------------------------------------------------------------------- |
+| **Nivel de documento** | Adjunta los archivos al PDF completo, accesibles desde el panel de adjuntos |
+| **Nivel de página** | Adjunta los archivos a páginas concretas, indicadas mediante un rango de páginas |
+
+## Casos de uso
+
+- Incluir datos de origen (archivos de Excel, CSV) junto con un informe en PDF
+- Adjuntar los archivos de imagen originales a un PDF de portafolio fotográfico
+- Incrustar documentos de respaldo dentro de un contrato o una propuesta
+- Añadir material complementario a páginas específicas de un manual de formación
+
+## Consejos
+
+- Los adjuntos a nivel de documento son los más compatibles entre lectores de PDF. Es posible que los adjuntos a nivel de página no se vean en todos los visores.
+- No hay límite de tamaño para los adjuntos, pero los archivos incrustados muy grandes aumentarán el tamaño del PDF de forma proporcional.
+
+## Herramientas relacionadas
+
+- [Extraer Adjuntos](./extract-attachments)
+- [Editar Adjuntos](./edit-attachments)
+- [Fusionar PDF](./merge-pdf)
diff --git a/docs/es/tools/add-blank-page.md b/docs/es/tools/add-blank-page.md
new file mode 100644
index 00000000..8bcdf790
--- /dev/null
+++ b/docs/es/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Agregar página en blanco
+description: Inserta una o varias páginas en blanco en cualquier posición de un documento PDF.
+---
+
+# Agregar página en blanco
+
+Inserta páginas vacías en un PDF en la posición que indiques. Tú controlas dónde van las páginas en blanco y cuántas añadir.
+
+## Cómo funciona
+
+1. Sube un archivo PDF. La herramienta muestra el número de páginas.
+2. Introduce la **posición** donde se insertarán las páginas en blanco. Usa `0` para insertar al principio del todo, o el número total de páginas para añadirlas al final.
+3. Introduce el **número** de páginas en blanco que quieres añadir (por defecto es 1).
+4. Haz clic en el botón de procesar. El PDF modificado se descarga con las páginas en blanco insertadas.
+
+## Características
+
+- Inserta en cualquier posición: al principio, en medio o al final del documento
+- Añade varias páginas en blanco en una sola operación
+- La sugerencia de posición se actualiza dinámicamente según el número de páginas del PDF subido
+- Páginas en blanco de tamaño A4 estándar
+
+## Casos de uso
+
+- Añadir una página separadora en blanco entre las secciones de un documento recopilado
+- Insertar páginas en blanco para alinear la impresión a doble cara
+- Dejar espacio para notas a mano en una guía de estudio impresa
+- Rellenar un documento para cumplir con un requisito de número mínimo de páginas
+
+## Consejos
+
+- La posición `0` inserta antes de la primera página. Una posición igual al número total de páginas añade después de la última página.
+- Si necesitas insertar contenido (no solo páginas en blanco) en una posición concreta, usa [Multiherramienta PDF](./pdf-multi-tool) para insertar otro PDF después de una página determinada.
+
+## Herramientas relacionadas
+
+- [Duplicar y Organizar](./organize-pdf)
+- [Multiherramienta PDF](./pdf-multi-tool)
+- [Fusionar PDF](./merge-pdf)
diff --git a/docs/es/tools/add-page-labels.md b/docs/es/tools/add-page-labels.md
new file mode 100644
index 00000000..f05e256f
--- /dev/null
+++ b/docs/es/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Agregar etiquetas de página
+description: Agrega etiquetas de página PDF con números romanos, prefijos de letras, numeración personalizada y varias reglas por documento.
+---
+
+# Agregar etiquetas de página
+
+Las etiquetas de página controlan cómo se muestran los números de página en los visores de PDF (el número que aparece en la barra de herramientas, no impreso en la página). Esta herramienta te permite asignar distintos esquemas de etiquetado a distintos rangos de páginas: números romanos para las páginas preliminares, números decimales para el cuerpo, apéndices con letras y más.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Aparece el panel de opciones con una regla de etiquetas por defecto.
+3. Configura cada regla con un rango de páginas, un estilo, un prefijo opcional y un valor inicial.
+4. Haz clic en **Agregar regla** para crear reglas adicionales para otras secciones.
+5. Haz clic en **Agregar etiquetas de página** para aplicar todas las reglas y descargar el resultado.
+
+## Opciones
+
+Cada regla de etiquetas tiene estos ajustes:
+
+- **Rango de páginas**: las páginas a las que se aplica la regla. Déjalo vacío para todas las páginas. Admite rangos como `1-4`, `7`, `odd` o `1-9,30-40`.
+- **Estilo de etiqueta**: Arábigo decimal, Romanos en minúsculas (i, ii, iii), Romanos en mayúsculas (I, II, III), Letras en minúsculas (a, b, c), Letras en mayúsculas (A, B, C) o Sin etiqueta (solo prefijo).
+- **Prefijo de etiqueta**: texto opcional que se antepone a cada etiqueta, como "A-" para crear etiquetas como A-1, A-2, A-3.
+- **Valor inicial**: el número desde el que empezar a contar. Por defecto es 1. Ponlo en 0 para una numeración que empiece en cero.
+- **Continuar la numeración entre rangos no contiguos**: actívalo cuando una regla se dirija a páginas no contiguas (como `1-9,30-40` u `odd`) y quieras que la numeración continúe de forma secuencial.
+- **Eliminar las etiquetas de página existentes**: marcado por defecto. Borra las etiquetas anteriores antes de aplicar tus nuevas reglas.
+
+## Características
+
+- Varias reglas de etiquetas por documento para esquemas de numeración complejos
+- Seis estilos de etiqueta que cubren todos los sistemas de numeración estándar
+- Compatibilidad con prefijos personalizados para etiquetar por secciones
+- Compatibilidad con rangos no contiguos con numeración progresiva
+- Opción para conservar o eliminar las etiquetas existentes
+
+## Casos de uso
+
+- Establecer etiquetas con números romanos (i, ii, iii) para el prefacio de un libro y etiquetas decimales para el texto principal
+- Etiquetar las páginas de apéndices con prefijos de letras como "A-1", "A-2", "B-1", "B-2"
+- Corregir las etiquetas de página en un documento escaneado donde los números de página físicos no coinciden con el orden de páginas del PDF
+- Agregar numeración desde cero para documentos técnicos
+
+## Consejos
+
+- Las etiquetas de página son metadatos que los visores de PDF muestran en su barra de navegación. No se imprimen en la página. Para números visibles, usa [Números de Página](./page-numbers).
+- Esta herramienta requiere que CoherentPDF (CPDF) esté configurado en tus Ajustes de WASM. Si no está configurado, se te pedirá que lo hagas.
+
+## Herramientas relacionadas
+
+- [Números de Página](./page-numbers)
+- [Numeración Bates](./bates-numbering)
+- [Editar Marcadores](./bookmark)
diff --git a/docs/es/tools/add-stamps.md b/docs/es/tools/add-stamps.md
new file mode 100644
index 00000000..5790c23c
--- /dev/null
+++ b/docs/es/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Agregar sellos
+description: Agrega sellos de imagen a las páginas de tu PDF con una barra de herramientas de anotaciones integrada y atribución por nombre de usuario.
+---
+
+# Agregar sellos
+
+Coloca sellos de imagen en las páginas de tu PDF usando un visor integrado con una barra de herramientas de anotaciones de sellos. Los sellos pueden incluir tu nombre como atribución, lo que resulta útil para flujos de aprobación, procesos de revisión y marcado de documentos.
+
+## Cómo funciona
+
+1. Escribe tu nombre en el campo **Nombre de usuario del sello**. Este nombre aparecerá en los sellos que crees.
+2. Sube tu archivo PDF haciendo clic o arrastrándolo a la zona de carga.
+3. El editor de sellos se abre con tu documento cargado en un visor.
+4. Usa la herramienta de sello de imagen de la barra de herramientas para seleccionar y colocar sellos en cualquier página.
+5. Coloca y cambia el tamaño de los sellos según necesites.
+6. Haz clic en **Guardar PDF sellado** para descargar el resultado.
+
+## Características
+
+- Visor de PDF integrado con una barra de herramientas de anotaciones específica para sellos
+- Atribución por nombre de usuario en los sellos creados
+- Colocación de sellos de imagen en cualquier página
+- Posicionamiento y cambio de tamaño con arrastrar y soltar
+- Ajuste automático del tamaño del visor según la proporción de la página
+- Visualización del archivo con su nombre y tamaño
+
+## Casos de uso
+
+- Añadir sellos de imagen de "APROBADO" o "REVISADO" a documentos en un flujo de revisión
+- Colocar imágenes del sello de la empresa o de un notario en documentos oficiales
+- Marcar páginas con sellos de "RECIBIDO" que incluyan el nombre del revisor
+- Añadir sellos de control de calidad a informes de inspección
+
+## Consejos
+
+- Define tu nombre de usuario del sello antes de subir el PDF. El nombre de usuario se incrusta en los metadatos del sello.
+- El visor ajusta su altura según la proporción de la primera página del PDF para una visualización óptima.
+- Si quieres marcas de agua de texto en lugar de sellos de imagen, usa la herramienta [Agregar Marca de Agua](./add-watermark).
+
+## Herramientas relacionadas
+
+- [Firmar PDF](./sign-pdf)
+- [Agregar Marca de Agua](./add-watermark)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/es/tools/add-watermark.md b/docs/es/tools/add-watermark.md
new file mode 100644
index 00000000..d01872e8
--- /dev/null
+++ b/docs/es/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Agregar marca de agua
+description: Estampa marcas de agua de texto o imagen en las páginas del PDF con un editor visual de arrastrar y soltar y vista previa en vivo.
+---
+
+# Agregar marca de agua
+
+Agrega marcas de agua de texto o imagen a las páginas de tu PDF con un editor visual. Puedes colocar la marca de agua arrastrándola directamente en la vista previa, cambiar su tamaño con los tiradores de las esquinas y configurar la opacidad, la rotación, la fuente y el color. Cada página puede tener su propia posición de marca de agua, o puedes aplicar la misma marca de agua a todas las páginas a la vez.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. El editor se abre con una vista previa en vivo de la primera página y una marca de agua superpuesta que se puede arrastrar.
+3. Elige entre el modo de marca de agua de **Texto** o de **Imagen** con los botones de alternancia.
+4. Configura los ajustes de la marca de agua en el panel lateral.
+5. Arrastra la marca de agua en la vista previa para colocarla exactamente donde quieras. Usa los tiradores de las esquinas para cambiar su tamaño.
+6. Navega entre las páginas para definir marcas de agua por página, o deja marcada la opción **Aplicar a todas las páginas**.
+7. Haz clic en **Agregar Marca de Agua** para procesar y descargar.
+
+## Opciones
+
+**Ajustes de marca de agua de texto:**
+
+- **Texto**: el texto de la marca de agua (por ejemplo, "CONFIDENCIAL", "BORRADOR").
+- **Tamaño de fuente**: de 10 a 200 puntos. Por defecto es 72.
+- **Color**: cualquier color mediante el selector de color.
+- **Opacidad**: controla la transparencia, desde totalmente transparente hasta totalmente opaco.
+- **Rotación**: gira el texto de la marca de agua de -180 a 180 grados.
+
+**Ajustes de marca de agua de imagen:**
+
+- **Subir imagen**: sube un archivo PNG, JPG u otro formato de imagen para usarlo como marca de agua.
+- **Opacidad**: controla la transparencia de la imagen.
+- **Escala**: cambia el tamaño de la imagen de la marca de agua.
+
+**Ajustes de diseño:**
+
+- **Única**: una marca de agua por página, colocada arrastrándola o con las posiciones predefinidas.
+- **En mosaico**: repite la marca de agua por toda la página en una cuadrícula diagonal que sigue el ángulo de rotación, de modo que la marca cubre el documento de un borde a otro.
+- **Espacio horizontal**: separación entre los mosaicos a lo largo de la dirección del texto, como porcentaje del ancho de la marca de agua (solo en modo mosaico).
+- **Espacio vertical**: separación entre las filas de mosaicos, como porcentaje de la altura de la marca de agua (solo en modo mosaico).
+
+**Ajustes generales:**
+
+- **Aplicar a todas las páginas**: cuando está marcada, la misma marca de agua se aplica a todas las páginas. Desmárcala para definir marcas de agua individuales por página.
+- **Rango de páginas**: indica qué páginas llevan la marca de agua (por ejemplo, "1-3, 5, 7-9" o "all").
+
+## Características
+
+- Posicionamiento visual de arrastrar y soltar sobre una vista previa del PDF en vivo
+- Marca de agua redimensionable con tiradores en las esquinas
+- Modos de marca de agua de texto e imagen
+- Diseño único o en mosaico (repetido) a página completa con espaciado ajustable
+- Aplicación de la marca de agua por página o global
+- Navegación página por página en la vista previa
+- Controles de opacidad y rotación
+- Filtrado por rango de páginas
+
+## Casos de uso
+
+- Marcar documentos en borrador con "BORRADOR" antes de circularlos para su revisión
+- Agregar marcas de agua de "CONFIDENCIAL" a informes financieros sensibles
+- Dar identidad de marca a los documentos con una marca de agua de imagen con el logotipo de la empresa
+- Estampar "MUESTRA" en documentación de producto compartida con clientes potenciales
+- Agregar avisos de derechos de autor a materiales en PDF distribuidos
+
+## Consejos
+
+- Para marcas de agua diagonales en la página, establece una rotación de alrededor de 45 grados y aumenta el tamaño de fuente.
+- El modo en mosaico hace que sea mucho más difícil reutilizar un documento recortándolo, ya que quitar una marca deja docenas más. Baja la opacidad al usar mosaico para que el texto de fondo siga siendo legible.
+- Las marcas de agua de imagen con fondo transparente (formato PNG) se integran de forma más natural con el contenido del documento.
+- Si necesitas un texto de marca de agua distinto en páginas diferentes, desmarca "Aplicar a todas las páginas" y navega página por página.
+
+## Herramientas relacionadas
+
+- [Encabezado y Pie de Página](./header-footer)
+- [Agregar Sellos](./add-stamps)
+- [Numeración Bates](./bates-numbering)
+- [Firmar PDF](./sign-pdf)
diff --git a/docs/es/tools/adjust-colors.md b/docs/es/tools/adjust-colors.md
new file mode 100644
index 00000000..96e730ba
--- /dev/null
+++ b/docs/es/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Ajustar colores
+description: Ajusta con precisión el brillo, el contraste, la saturación, el tono, la temperatura, el matiz, el gamma y el sepia de tu PDF.
+---
+
+# Ajustar colores
+
+Un conjunto completo de herramientas de corrección de color para PDF. Ajusta ocho parámetros independientes (brillo, contraste, saturación, cambio de tono, temperatura, matiz, gamma y sepia) con una vista previa en vivo que se actualiza a medida que mueves cada control deslizante.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Se abre el editor con una vista previa de la primera página y un panel de ajustes de color.
+3. Mueve los controles deslizantes para ajustar cada parámetro de color. La vista previa se actualiza en tiempo real.
+4. Haz clic en **Restablecer** para devolver todos los controles a sus posiciones por defecto.
+5. Haz clic en **Aplicar** para procesar todas las páginas y descargar el PDF ajustado.
+
+## Opciones
+
+- **Brillo**: aclara u oscurece toda la página (de -100 a +100).
+- **Contraste**: aumenta o reduce la diferencia entre las zonas claras y oscuras (de -100 a +100).
+- **Saturación**: aumenta o reduce la intensidad del color (de -100 a +100). Si lo pones en -100, el resultado es en escala de grises.
+- **Cambio de tono**: gira la rueda de color para desplazar todos los colores de manera uniforme.
+- **Temperatura**: desplaza los colores hacia tonos más cálidos (amarillo/naranja) o más fríos (azul).
+- **Matiz**: añade una dominante verde o magenta.
+- **Gamma**: ajusta el brillo de los medios tonos mediante una curva gamma. Los valores inferiores a 1.0 oscurecen los medios tonos; los valores superiores a 1.0 los aclaran.
+- **Sepia**: aplica un efecto de tono sepia clásico. Los valores más altos producen un tinte marrón más fuerte.
+
+## Características
+
+- Ocho parámetros de color ajustables de forma independiente
+- Vista previa en vivo que responde de inmediato a los cambios en los controles deslizantes
+- Botón de restablecer para volver rápidamente a los valores por defecto
+- Procesa todas las páginas del documento
+- Funciona con cualquier contenido del PDF (texto, imágenes, gráficos)
+
+## Casos de uso
+
+- Aclarar un escaneo oscuro o corregir páginas sobreexpuestas
+- Reducir la saturación de un documento colorido para gastar menos tinta antes de imprimir
+- Aplicar un tono sepia para dar un aspecto antiguo a certificados o diplomas
+- Corregir la temperatura de color de fotos incrustadas en un PDF
+- Aumentar el contraste en documentos escaneados desvaídos o de baja calidad
+
+## Consejos
+
+- Para una conversión rápida a escala de grises, arrastra el control de saturación hasta -100.
+- El control de gamma es especialmente útil para mejorar la legibilidad de documentos escaneados cuyos medios tonos son demasiado oscuros o demasiado claros.
+- Como las demás herramientas de efectos de imagen, esta rasteriza cada página. El resultado estará basado en imágenes, por lo que el texto no se podrá seleccionar.
+
+## Herramientas relacionadas
+
+- [Invertir Colores](./invert-colors)
+- [Efecto escáner](./scanner-effect)
+- [Color de Fondo](./background-color)
diff --git a/docs/es/tools/alternate-merge.md b/docs/es/tools/alternate-merge.md
new file mode 100644
index 00000000..85f734e9
--- /dev/null
+++ b/docs/es/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Alternar y mezclar páginas
+description: Fusiona PDF intercalando las páginas de cada archivo en orden alterno, conservando los marcadores.
+---
+
+# Alternar y mezclar páginas
+
+Intercala las páginas de varios archivos PDF para que las páginas se alternen entre documentos. Es la herramienta a la que recurres cuando una fusión normal solo añadiría los archivos uno detrás de otro, pero necesitas la página 1 del Archivo A, luego la página 1 del Archivo B, luego la página 2 del Archivo A, y así sucesivamente.
+
+## Cómo funciona
+
+1. Sube al menos dos archivos PDF usando la zona de carga.
+2. La herramienta muestra cada archivo con su número de páginas y tamaño.
+3. Arrastra los tiradores para reordenar las páginas de qué archivo van primero en la secuencia de intercalado.
+4. Haz clic en **Mezclar páginas** para generar el resultado intercalado.
+5. El resultado se descarga como `alternated-mixed.pdf`.
+
+## Características
+
+- Intercala páginas de cualquier cantidad de PDF (mínimo dos)
+- Reordenación de archivos con arrastrar y soltar para controlar la prioridad del intercalado
+- Conserva los marcadores de los documentos de origen
+- Muestra el número de páginas y el tamaño de cada archivo subido
+- Se procesa mediante un web worker dedicado para mantener la interfaz fluida
+
+## Casos de uso
+
+- Reconstruir escaneos a doble cara en los que las páginas impares y pares se escanearon por separado
+- Combinar hojas de preguntas con sus claves de respuestas para que cada pregunta vaya seguida de su respuesta
+- Fusionar documentos en dos idiomas página por página (por ejemplo, inglés en una cara y la traducción en la siguiente)
+- Intercalar los escaneos del anverso y del reverso de un escáner de una sola cara
+
+## Consejos
+
+- Si tus PDF de origen tienen distinto número de páginas, las páginas del documento más corto se acabarán primero y las páginas restantes del documento más largo aparecerán al final.
+- El orden de los archivos importa: el primer archivo de la lista aporta la primera página del resultado. Arrastra para reorganizar si es necesario.
+
+## Herramientas relacionadas
+
+- [Fusionar PDF](./merge-pdf)
+- [Duplicar y Organizar](./organize-pdf)
+- [Dividir PDF](./split-pdf)
diff --git a/docs/es/tools/background-color.md b/docs/es/tools/background-color.md
new file mode 100644
index 00000000..1b065837
--- /dev/null
+++ b/docs/es/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Color de fondo
+description: Cambia el color de fondo de todas las páginas de tu PDF conservando todo el contenido por encima.
+---
+
+# Color de fondo
+
+Establece un color de fondo sólido detrás de todo el contenido existente de tu PDF. La herramienta crea un rectángulo de color en cada página y coloca el contenido original encima, de modo que el texto, las imágenes y los gráficos siguen siendo totalmente visibles sobre el nuevo fondo.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Elige un color de fondo con el selector de color. El valor por defecto es un amarillo claro (#FFFFCC).
+3. Haz clic en **Cambiar Color de Fondo** para procesar.
+4. El PDF actualizado se descarga automáticamente.
+
+## Opciones
+
+- **Color de Fondo**: un selector de color estándar para elegir cualquier color sólido. Por defecto es amarillo claro.
+
+## Características
+
+- Aplica un color de fondo uniforme a todas las páginas
+- Conserva todo el contenido original (texto, imágenes, gráficos vectoriales) sobre la capa de color
+- Mantiene las dimensiones originales de la página
+- Funciona con documentos de cualquier número de páginas
+
+## Casos de uso
+
+- Añadir un fondo crema o marfil claro para dar a los documentos un aspecto más suave, parecido al papel
+- Clasificar por colores conjuntos de documentos aplicando distintos colores de fondo a distintas categorías
+- Crear versiones visualmente distintas del mismo documento para diferentes públicos
+- Añadir un tinte de fondo claro para mejorar la legibilidad al proyectar documentos en pantalla
+
+## Consejos
+
+- Los colores claros y suaves funcionan mejor. Un fondo muy oscuro puede dificultar la lectura del texto, a menos que este ya sea de color claro.
+- Si quieres cambiar tanto el color de fondo como el del texto, aplica primero el color de fondo y luego usa [Cambiar Color de Texto](./text-color) sobre el resultado.
+- Esta herramienta trabaja a nivel estructural del PDF (sin rasterizar), por lo que el texto sigue siendo seleccionable y se puede buscar en el resultado.
+
+## Herramientas relacionadas
+
+- [Cambiar Color de Texto](./text-color)
+- [Invertir Colores](./invert-colors)
+- [Ajustar colores](./adjust-colors)
diff --git a/docs/es/tools/bates-numbering.md b/docs/es/tools/bates-numbering.md
new file mode 100644
index 00000000..c5aac409
--- /dev/null
+++ b/docs/es/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Numeración Bates
+description: Aplica números Bates a uno o varios PDF con plantillas, relleno, fuentes y posicionamiento personalizables.
+---
+
+# Numeración Bates
+
+La numeración Bates estampa identificadores secuenciales en cada página de tus PDF. Es el método estándar para etiquetar documentos en procedimientos legales, auditorías y flujos de cumplimiento normativo. Esta herramienta admite varios archivos y plantillas personalizables, y genera PDF numerados individualmente o un único archivo ZIP.
+
+## Cómo funciona
+
+1. Sube uno o varios archivos PDF. Puedes arrastrar varios archivos a la vez.
+2. Elige un estilo predefinido o crea una plantilla personalizada.
+3. Configura la posición, la fuente, el tamaño, el color y los números iniciales.
+4. Haz clic en **Aplicar números Bates** para procesar.
+5. Un solo archivo se descarga directamente. Varios archivos se descargan como un archivo ZIP.
+
+## Opciones
+
+- **Estilo predefinido**: elige entre los formatos integrados:
+ - Exhibit + Case + Bates + Page (p. ej., "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (sin número de página)
+ - Case + Bates
+ - Solo número Bates (p. ej., "000001")
+ - Personalizado (escribe tu propia plantilla)
+- **Personalizar estilo**: una cadena de plantilla con marcadores: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Relleno Bates**: número de dígitos (de 3 a 6) para los números Bates rellenados con ceros. Solo visible en modo personalizado.
+- **Posición**: encabezado o pie de página, a la izquierda, al centro o a la derecha.
+- **Los Bates empiezan en**: el primer número Bates. Por defecto es 1. La numeración continúa entre archivos.
+- **El contador de archivos empieza en**: el número inicial para el marcador `[FILE]`.
+- **Fuente**: Helvetica, Times New Roman o Courier.
+- **Tamaño de fuente**: tamaño del texto estampado.
+- **Color**: selector de color para el texto del número Bates.
+
+## Características
+
+- Vista previa en vivo que muestra cómo aparecerán los números Bates en todos los archivos subidos
+- Compatibilidad con varios archivos con numeración continua entre documentos
+- Reordenación de archivos con arrastrar y soltar para controlar la secuencia de numeración
+- Seis opciones de posición (encabezado/pie, izquierda/centro/derecha)
+- Cálculo adaptativo de márgenes que respeta los distintos tamaños de página
+- Salida en ZIP para lotes de varios archivos
+- Marcadores de plantilla para la máxima flexibilidad
+
+## Casos de uso
+
+- Estampar documentos de descubrimiento probatorio en litigios con números de exhibit secuenciales
+- Numerar paquetes de evidencia de auditoría que abarcan docenas de archivos
+- Aplicar números de referencia regulatorios a la documentación de cumplimiento
+- Etiquetar los anexos de una solicitud de patente con identificadores específicos del caso
+
+## Consejos
+
+- Arrastra los archivos en la lista para reordenarlos antes de procesar. La secuencia de numeración Bates sigue este orden.
+- Usa el marcador `[FILENAME]` para incluir el nombre del archivo original en el sello, lo que ayuda a rastrear las páginas hasta los documentos de origen.
+- El cuadro de vista previa se actualiza en tiempo real al cambiar los ajustes, así que puedes verificar el formato antes de procesar.
+
+## Herramientas relacionadas
+
+- [Números de Página](./page-numbers)
+- [Agregar etiquetas de página](./add-page-labels)
+- [Encabezado y Pie de Página](./header-footer)
diff --git a/docs/es/tools/bmp-to-pdf.md b/docs/es/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..0d1bf4b2
--- /dev/null
+++ b/docs/es/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP a PDF
+description: Convierte imágenes de mapa de bits BMP a formato PDF directamente en tu navegador, sin subir nada a ningún servidor.
+---
+
+# BMP a PDF
+
+Convierte archivos Windows Bitmap (BMP) a PDF. BMP es un formato de imagen sin comprimir que aún se encuentra en sistemas heredados, imagen médica y escáneres industriales. Esta herramienta los convierte a PDF sin necesidad de instalar nada.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :------ | :---------- |
+| BMP | `.bmp` |
+
+## Cómo funciona
+
+1. Haz clic en la zona de carga o arrastra y suelta tus archivos BMP.
+2. Revisa la lista de archivos. Añade más archivos o quita los que no quieras.
+3. Haz clic en **Convertir a PDF**. El resultado se descarga como `from_bmps.pdf`.
+
+Cada BMP se dibuja en un canvas, se exporta como PNG y luego se incrusta en el PDF con pdf-lib. El tamaño de la página coincide con las dimensiones originales de la imagen.
+
+## Opciones
+
+Esta herramienta no ofrece ajustes de calidad adicionales. Las imágenes se incrustan en su resolución original como PNG sin pérdida dentro del PDF.
+
+## Casos de uso
+
+- Convertir documentos escaneados antiguos guardados como BMP en PDF de archivo
+- Convertir capturas de pantalla BMP de aplicaciones antiguas de Windows en documentos fáciles de compartir
+- Procesar la salida de escáneres médicos o industriales que usan BMP por defecto
+- Migrar archivos de imágenes antiguos a un formato más portátil
+
+## Consejos
+
+- Los archivos BMP no están comprimidos, por lo que suelen ser grandes. El PDF resultante será bastante más pequeño porque las imágenes se recodifican internamente como PNG.
+- Si tienes archivos BMP junto con otros formatos de imagen, usa la herramienta [Imágenes a PDF](./image-to-pdf) para convertir todo en un solo lote.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [TIFF a PDF](./tiff-to-pdf)
diff --git a/docs/es/tools/bookmark.md b/docs/es/tools/bookmark.md
new file mode 100644
index 00000000..d431ec49
--- /dev/null
+++ b/docs/es/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Editar marcadores
+description: Agrega, edita, importa, exporta y elimina marcadores de PDF con un editor visual y compatibilidad con CSV/JSON.
+---
+
+# Editar marcadores
+
+El editor de marcadores te da control total sobre los marcadores de navegación del PDF (también llamados esquemas). Puedes agregar marcadores nuevos, editar los existentes, reorganizar la jerarquía e importar o exportar los datos de los marcadores en formatos CSV y JSON.
+
+## Cómo Funciona
+
+1. Sube tu PDF haciendo clic o arrastrando un archivo a la zona de carga.
+2. Opcionalmente, marca **Extraer automáticamente marcadores existentes** para traer el árbol de marcadores actual del documento.
+3. El editor se abre con una vista dividida: visor de PDF a la izquierda y panel de marcadores a la derecha.
+4. Escribe el título de un marcador y haz clic en **Añadir a la página** para crear un marcador que apunte a la página actual.
+5. Usa los botones de la barra de herramientas para reorganizar, dar estilo o eliminar marcadores.
+6. Haz clic en **Guardar PDF con marcadores** para descargar el archivo actualizado.
+
+## Características
+
+- Visor de PDF visual con navegación de páginas, controles de zoom y campo para ir a una página
+- Agrega marcadores a cualquier página con un solo clic
+- Haz clic directamente en el PDF para fijar un destino de marcador preciso (modo de selección)
+- Jerarquía de marcadores anidados con reordenación mediante arrastrar y soltar
+- Operaciones por lotes: selecciona varios marcadores para cambiar el color, el estilo o eliminarlos a la vez
+- Búsqueda de marcadores para encontrar entradas rápidamente en árboles grandes
+- Deshacer y rehacer para todos los cambios
+- Importa marcadores desde archivos CSV (título, página, nivel) o JSON
+- Exporta marcadores a CSV o JSON para editarlos externamente
+- Estilo de marcadores: color (rojo, azul, verde, amarillo, morado) y estilo de fuente (negrita, cursiva, negrita cursiva)
+- Navegación rápida: recorre las páginas con las teclas Re Pág y Av Pág
+
+## Opciones
+
+- **Extraer automáticamente marcadores existentes**: al activarla, la herramienta lee y muestra los marcadores actuales del PDF al cargarlo.
+- **Modo por lotes**: actívalo para seleccionar varios marcadores y aplicar cambios masivos de color, estilo o eliminación.
+- **Expandir todo / Contraer todo**: muestra u oculta rápidamente los marcadores secundarios anidados.
+
+## Casos de Uso
+
+- Agregar una tabla de contenidos a un libro de texto o manual que no tiene marcadores
+- Reestructurar los marcadores de un documento escaneado después del procesamiento OCR
+- Exportar marcadores a CSV, editarlos en una hoja de cálculo y volver a importarlos
+- Limpiar marcadores generados automáticamente que tienen referencias de página incorrectas
+- Agregar marcadores de colores para señalar secciones importantes en un escrito jurídico
+
+## Consejos
+
+- Usa la importación CSV para crear marcadores en masa. El formato es simple: `title,page,level`, donde el nivel 1 es el nivel superior.
+- El modo de selección te permite hacer clic en un punto exacto de la página del PDF para fijar el destino del marcador, lo cual es más preciso que apuntar solo a un número de página.
+- Exporta tus marcadores antes de hacer cambios importantes para tener una copia de seguridad.
+
+## Herramientas Relacionadas
+
+- [Tabla de Contenidos](./table-of-contents)
+- [Editor PDF](./edit-pdf)
+- [Agregar etiquetas de página](./add-page-labels)
diff --git a/docs/es/tools/cbz-to-pdf.md b/docs/es/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..84eed0ce
--- /dev/null
+++ b/docs/es/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ a PDF
+description: Convierte archivos de cómics CBZ y CBR a PDF en tu navegador. Gratis, privado, sin subir archivos.
+---
+
+# CBZ a PDF
+
+Convierte archivos de cómics en PDF. CBZ y CBR son los formatos estándar de los cómics digitales: son simplemente archivos ZIP o RAR llenos de imágenes. Esta herramienta extrae cada página, conserva el orden de lectura y produce un PDF limpio donde cada imagen se convierte en una página a tamaño completo.
+
+## Formatos Compatibles
+
+| Formato | Extensión | Notas |
+| :------ | :-------- | :------------------------------------------------------------------- |
+| CBZ | `.cbz` | Archivo de cómic basado en ZIP (procesado localmente con pdf-lib) |
+| CBR | `.cbr` | Archivo de cómic basado en RAR (procesado mediante el motor PyMuPDF) |
+
+El conversor de CBZ reconoce imágenes JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC y JXL dentro del archivo. Los formatos no estándar se convierten automáticamente a PNG antes de incrustarse.
+
+## Cómo Funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos CBZ o CBR. Puedes mezclar ambos formatos en un mismo lote.
+2. Revisa los archivos listados. Quita los que no necesites o haz clic en **Agregar Más Archivos** para agregar más.
+3. Haz clic en **Convertir a PDF**. Con los archivos CBZ, la herramienta descomprime el archivo, ordena las imágenes por nombre en orden natural, detecta el formato real de cada imagen y las incrusta en un PDF con pdf-lib. Los archivos CBR se procesan con el motor PyMuPDF.
+4. Un solo archivo se descarga como PDF. Varios archivos producen un ZIP llamado `comic-converted.zip`.
+
+## Opciones
+
+No se requiere configuración. Cada imagen se convierte en una página del mismo tamaño que sus dimensiones originales, así que las páginas dobles siguen siendo anchas y las páginas sencillas siguen siendo estrechas.
+
+## Casos de Uso
+
+- Leer cómics en una tableta o una app de teléfono que admite PDF pero no CBZ/CBR
+- Imprimir páginas específicas de un cómic digital
+- Archivar una colección de cómics en un formato que cualquier visor de archivos pueda abrir
+- Compartir un cómic con alguien que no tiene un lector de cómics dedicado
+
+## Consejos
+
+- Las imágenes dentro del archivo se ordenan con orden natural (así `page2.jpg` va antes que `page10.jpg`). Nombra tus archivos con una numeración consistente para obtener la secuencia de páginas correcta.
+- El conversor detecta los formatos de imagen por sus firmas binarias, no por las extensiones. Un PNG nombrado por error `.jpg` se incrustará correctamente.
+- Los archivos CBZ se procesan por completo en el navegador sin cargar el motor PyMuPDF, por lo que se convierten más rápido que los CBR.
+
+## Herramientas Relacionadas
+
+- [EPUB a PDF](./epub-to-pdf)
+- [MOBI a PDF](./mobi-to-pdf)
+- [Imágenes a PDF](./image-to-pdf)
diff --git a/docs/es/tools/change-permissions.md b/docs/es/tools/change-permissions.md
new file mode 100644
index 00000000..990df8bb
--- /dev/null
+++ b/docs/es/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Cambiar permisos
+description: Establece o modifica los permisos de uso de un PDF para imprimir, copiar, editar y anotar. Usa cifrado AES de 256 bits.
+---
+
+# Cambiar permisos
+
+Ajusta con precisión lo que los destinatarios pueden hacer con tu PDF. A diferencia del cifrado básico, que solo bloquea el archivo con una contraseña, esta herramienta te permite permitir o denegar de forma selectiva la impresión, la copia, la edición, las anotaciones, el llenado de formularios, el ensamblaje de documentos y la extracción de páginas, todo aplicado mediante cifrado AES de 256 bits.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF.
+2. Si el PDF ya está cifrado, ingresa la **Contraseña actual**.
+3. Establece una **Nueva contraseña de usuario** (necesaria para abrir) y/o una **Nueva contraseña de propietario** (controla los permisos).
+4. Activa o desactiva cada permiso con las casillas.
+5. Haz clic en **Cambiar permisos**.
+6. Descarga el PDF actualizado.
+
+Si dejas vacíos ambos campos de contraseña nueva, la herramienta descifra el PDF por completo y elimina todo el cifrado y las restricciones.
+
+## Controles de Permisos
+
+| Permiso | Qué Controla |
+| ----------------------------------- | ------------------------------------------------------------ |
+| **Permitir imprimir** | Si el documento se puede imprimir |
+| **Permitir copiar texto** | Si se puede seleccionar y copiar texto e imágenes |
+| **Permitir modificar** | Si se puede editar el contenido del documento |
+| **Permitir anotar** | Si se pueden agregar comentarios, resaltados y sellos |
+| **Permitir rellenar formularios** | Si se pueden completar los campos de formulario interactivos |
+| **Permitir ensamblar el documento** | Si se pueden insertar, eliminar o rotar páginas |
+| **Permitir extraer páginas** | Si se pueden extraer páginas individuales |
+
+Todos los permisos requieren una contraseña de propietario para aplicarse. Sin contraseña de propietario, la mayoría de los lectores de PDF ignoran las marcas de permisos.
+
+## Cómo Funcionan los Permisos en PDF
+
+Los permisos del PDF forman parte de la especificación de cifrado. Se almacenan como indicadores de bits en el diccionario de cifrado y los aplican los lectores de PDF compatibles. La diferencia clave:
+
+- **Contraseña de usuario**: necesaria para abrir el archivo.
+- **Contraseña de propietario**: necesaria para cambiar los permisos o quitar las restricciones. Sin ella, las marcas de permisos controlan qué operaciones puede realizar el usuario.
+
+Si estableces solo una contraseña de propietario (sin contraseña de usuario), cualquiera puede abrir el archivo, pero queda limitado a las operaciones permitidas. Si estableces ambas, el archivo requiere una contraseña para abrirse y queda restringido después de la autenticación.
+
+## Casos de Uso
+
+- Distribuir un informe que se pueda ver e imprimir, pero no editar ni copiar
+- Compartir una plantilla de contrato que los destinatarios puedan llenar pero no modificar
+- Publicar un catálogo en PDF con la copia de imágenes deshabilitada
+- Permitir anotaciones en un borrador de revisión e impedir cambios estructurales
+
+## Consejos
+
+- Para que sea efectivo, establece siempre una contraseña de propietario. Los permisos sin contraseña de propietario no se pueden hacer cumplir.
+- Algunas herramientas de PDF de terceros ignoran las marcas de permisos. Para una protección más sólida, considera rasterizar el PDF o usar DRM.
+- Usa esta herramienta para actualizar PDFs antiguos cifrados con RC4 a AES-256.
+
+## Herramientas Relacionadas
+
+- [Cifrar PDF](./protect-pdf): protección simple con contraseña, sin permisos granulares
+- [Descifrar PDF](./unlock-pdf): elimina el cifrado por completo
+- [Eliminar Restricciones](./remove-restrictions): quita todas las restricciones cuando tienes la contraseña de propietario
diff --git a/docs/es/tools/combine-single-page.md b/docs/es/tools/combine-single-page.md
new file mode 100644
index 00000000..c6c9734c
--- /dev/null
+++ b/docs/es/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Combinar en una sola página
+description: Une todas las páginas de un PDF en un solo desplazamiento continuo, vertical u horizontal.
+---
+
+# Combinar en una sola página
+
+Fusiona todas las páginas de un PDF en una única página larga. Las páginas se unen verticalmente (como un pergamino) u horizontalmente (una al lado de otra), y el resultado es una página continua.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF.
+2. Selecciona la dirección del diseño: **Vertical** (páginas apiladas de arriba abajo) u **Horizontal** (páginas colocadas una al lado de otra).
+3. Define el espacio entre páginas en puntos.
+4. Elige un color de fondo para los espacios entre páginas.
+5. Opcionalmente, activa los separadores (líneas finas entre páginas) y configura su grosor y color.
+6. Haz clic en el botón de procesar. El resultado es un PDF de una sola página.
+
+## Características
+
+- Unión de páginas vertical u horizontal
+- Espaciado configurable entre páginas
+- Selector de color de fondo para las áreas de separación
+- Líneas separadoras opcionales con grosor y color ajustables
+- Renderiza cada página original a resolución completa sobre el lienzo combinado
+
+## Opciones
+
+| Opción | Descripción |
+| ----------------------------- | ------------------------------------------------------ |
+| **Dirección del diseño** | Vertical (apiladas) u Horizontal (una al lado de otra) |
+| **Espaciado** | Espacio entre páginas en puntos |
+| **Color de fondo** | Color del área entre páginas |
+| **Añadir líneas separadoras** | Activa líneas finas entre páginas |
+| **Grosor del separador** | Grosor de la línea en puntos |
+| **Color del separador** | Color de las líneas separadoras |
+
+## Casos de Uso
+
+- Crear una sola imagen larga a partir de un wireframe o maqueta de diseño de varias páginas
+- Generar una vista continua con desplazamiento de un documento para incrustarlo en la web
+- Unir un cómic o storyboard de varias páginas en una sola tira
+- Producir una vista panorámica de páginas secuenciales para su revisión
+
+## Consejos
+
+- La orientación vertical funciona mejor con documentos de páginas verticales. La horizontal es mejor para contenido apaisado.
+- Los documentos grandes con muchas páginas producirán un resultado muy alto o muy ancho. Algunos visores de PDF pueden tener dificultades con páginas únicas extremadamente grandes.
+- Agregar separadores con un color contrastante facilita ver dónde termina una página original y empieza la siguiente.
+
+## Herramientas Relacionadas
+
+- [N-Up PDF](./n-up-pdf)
+- [Fusionar PDF](./merge-pdf)
+- [Dividir Páginas](./divide-pages)
diff --git a/docs/es/tools/compare-pdfs.md b/docs/es/tools/compare-pdfs.md
new file mode 100644
index 00000000..b3c77dc5
--- /dev/null
+++ b/docs/es/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Comparar PDFs
+description: Compara dos documentos PDF lado a lado o en modo superposición, con detección y categorización detallada de cambios.
+---
+
+# Comparar PDFs
+
+Sube dos PDFs y ve exactamente qué cambió entre ellos. La herramienta empareja las páginas de forma inteligente, detecta diferencias en texto, imágenes, anotaciones, encabezados y formato, y las presenta en una vista lado a lado o superpuesta.
+
+## Cómo Funciona
+
+1. Sube dos archivos PDF: el original (izquierda) y la versión revisada (derecha).
+2. La herramienta empareja las páginas de ambos documentos usando firmas de contenido.
+3. Selecciona un modo de vista: **Lado a lado** u **Superponer**.
+4. Navega entre los pares de páginas con los controles de paginación.
+5. Las diferencias se resaltan y se categorizan. Usa el panel de filtros para centrarte en tipos de cambio específicos.
+6. Opcionalmente, exporta la comparación como informe en PDF.
+
+## Características
+
+- Emparejamiento automático de páginas según la similitud del contenido
+- Vistas de comparación lado a lado y superpuesta
+- Categorización de cambios: texto, imagen, encabezado/pie de página, anotación, formato, fondo
+- Filtros por categoría para mostrar u ocultar tipos de cambio específicos
+- Búsqueda de cambios de texto con filtrado por consulta
+- Compatibilidad con OCR para comparar documentos escaneados
+- Controles de zoom para una inspección detallada
+- Desplazamiento sincronizado entre paneles en la vista lado a lado
+- Exporta los resultados de la comparación como PDF
+
+## Opciones
+
+| Opción | Descripción |
+| -------------------------- | ------------------------------------------------------------------------------------------------------------ |
+| **Modo de vista** | Lado a lado o Superponer |
+| **OCR** | Activa o desactiva el OCR para comparar documentos escaneados |
+| **Idioma del OCR** | Idioma para la extracción de texto con OCR |
+| **Filtros de categoría** | Alterna la visibilidad de los cambios de texto, imagen, encabezado/pie de página, anotación, formato y fondo |
+| **Alcance de los cambios** | En el modo superposición, filtra entre todos los cambios o solo el contenido |
+| **Zoom** | Ajusta el nivel de aumento para una inspección detallada |
+
+## Casos de Uso
+
+- Revisar las revisiones de un contrato para encontrar exactamente qué cambió entre versiones
+- Comparar maquetas de diseño para verificar que las exportaciones a PDF coincidan con lo esperado
+- Auditar cambios en documentos en industrias reguladas donde cada edición debe registrarse
+- Verificar que un proceso de conversión de PDF conservó con exactitud el contenido original
+- Revisar documentos traducidos frente al original para detectar cambios de diseño
+
+## Consejos
+
+- La vista superpuesta apila ambos documentos uno sobre otro, haciendo visibles al instante las diferencias espaciales (elementos desplazados, imágenes redimensionadas).
+- Activa el OCR al comparar documentos escaneados que no tienen capa de texto. El motor de comparación extraerá el texto de las imágenes de las páginas.
+- Usa los filtros por categoría para centrarte en lo importante. Por ejemplo, oculta los cambios de formato cuando solo te interesan las diferencias de contenido de texto.
+
+## Herramientas Relacionadas
+
+- [Ver Metadatos](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [Fusionar PDF](./merge-pdf)
diff --git a/docs/es/tools/compress-pdf.md b/docs/es/tools/compress-pdf.md
new file mode 100644
index 00000000..8ff22ff6
--- /dev/null
+++ b/docs/es/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Comprimir PDF
+description: Reduce el tamaño de un PDF hasta un 90% con el motor Hyper Compress. Admite tamaños de archivo objetivo, procesamiento por lotes y ajustes de calidad personalizados.
+---
+
+# Comprimir PDF
+
+Reduce el tamaño de tus archivos PDF sin destruirlos. Comprimir PDF funciona con [Hyper Compress](https://www.bentopdf.com/hyper-compress), el motor de compresión propio de BentoPDF. Recomprime imágenes, crea subconjuntos de fuentes y las fusiona, y elimina el peso muerto, como las miniaturas incrustadas y los datos privados de aplicaciones. El PDF sigue siendo totalmente funcional: el texto se puede seleccionar y los enlaces y campos de formulario siguen funcionando.
+
+Hyper Compress está compilado a WebAssembly y se incluye con BentoPDF, así que la compresión funciona sin conexión y en despliegues aislados de la red, sin configuración adicional.
+
+## Cómo Funciona
+
+1. Sube uno o más PDFs haciendo clic en la zona de carga o arrastrando los archivos.
+2. Elige un **Nivel de compresión**: Bajo, Medio, Alto o Sin pérdidas.
+3. Opcionalmente, ingresa un **Tamaño de archivo objetivo**, o expande **Ajustes personalizados** para un control más fino, incluido **Convertir a escala de grises**.
+4. Haz clic en **Comprimir PDF**. Con varios archivos, obtienes una sola descarga en ZIP.
+
+## Documentos Especiales
+
+- **Los PDFs firmados digitalmente** se devuelven sin cambios, porque cualquier modificación invalidaría la firma. Activa **Anular la protección del contenido** en Ajustes personalizados para quitar las firmas y comprimirlos; la firma visible permanece en la página, pero el archivo deja de estar firmado.
+- **Los archivos PDF/A** pierden su etiqueta PDF/A tras la compresión, para que el archivo nunca declare una conformidad que ya no cumple. Activa **Conservar PDF/A** en Ajustes personalizados para mantener la conformidad del archivo.
+- **Los PDFs protegidos con contraseña** muestran un campo de contraseña en su tarjeta de archivo. Ingresa la contraseña allí y Hyper Compress abre el archivo por sí mismo, sin un paso de desbloqueo aparte. Con dos o más archivos bloqueados, un campo compartido desbloquea todos los archivos que usan la misma contraseña. La copia comprimida no tiene contraseña; usa [Proteger PDF](./protect-pdf) para agregarla de nuevo.
+- **Los escaneos sin capa de texto** pueden reducirse aún más con **Rasteriza las páginas a imágenes** en Ajustes personalizados, que reemplaza cada página por una imagen optimizada. Se omite en cualquier documento con texto seleccionable, incluidos los escaneos con OCR, a menos que **Anular la protección del contenido** esté activado. En ese caso, las páginas de texto también se convierten en imágenes, por lo que el texto deja de ser seleccionable y los enlaces dejan de funcionar.
+
+## Niveles de Compresión
+
+| Nivel | Calidad de Imagen | Resolución Máxima | Ideal Para |
+| ---------------- | ----------------- | ----------------- | ------------------------------ |
+| **Bajo** | 80 | 200 DPI | Conservar la calidad visual |
+| **Medio** | 50 | 150 DPI | Documentos de uso diario |
+| **Alto** | 20 | 72 DPI | Adjuntos de correo, cargas web |
+| **Sin pérdidas** | Imágenes intactas | Sin cambios | Copias de archivo |
+
+Alto también quita la incrustación de las 14 fuentes estándar de PDF, además de fuentes similares como Arial cuando es seguro hacerlo.
+
+## Tamaño de Archivo Objetivo
+
+Ingresa un tamaño en KB o MB y Hyper Compress busca la mejor calidad de imagen que aún quepa, partiendo del nivel que elegiste. Si el documento no puede llegar a ese tamaño, obtienes la versión más pequeña posible y un mensaje que lo indica. Las páginas dedicadas, como [Comprimir PDF a 1MB](https://www.bentopdf.com/compress-pdf-to-1mb), se abren con el objetivo ya rellenado.
+
+## Ajustes Personalizados
+
+Expande el panel Ajustes personalizados para ajustar Hyper Compress directamente. Al elegir un nivel de compresión, estos valores se restablecen a los de ese nivel, y al editar cualquiera de ellos el nivel cambia a Personalizado.
+
+- **Anular la protección del contenido**: por defecto, Hyper Compress deja intactos los PDFs firmados y no rasteriza páginas que tienen texto. Al activarlo se omiten ambas protecciones. Se mantiene activado cuando cambias el nivel.
+
+- **Imágenes**: calidad de imagen, resolución máxima, remuestreo forzado, reducción de color, recorte de áreas de imagen invisibles, eliminación de imágenes alternativas, simplificación de perfiles de color, JPEG 2000 y modo sin pérdida
+- **Fuentes**: creación de subconjuntos, fusión de duplicados y eliminación de la incrustación de fuentes estándar y sus similares
+- **Contenido**: aplanado de anotaciones, campos de formulario o enlaces
+- **Limpieza**: eliminación de miniaturas, datos de aplicaciones, hilos de artículos, información de captura web, el árbol de estructura o los perfiles de salida
+- **Rasterizar**: reemplazo de páginas por imágenes, para escaneos solo de imagen; se omite cuando el documento tiene texto seleccionable
+- **Salida**: Conservar PDF/A y compresión Brotli para lectores de PDF 2.0 que la admitan
+
+## Casos de Uso
+
+- Reducir un informe de 50 MB para que quepa en el límite de adjuntos de un correo
+- Lograr que un escaneo quede por debajo del estricto límite de carga de un portal usando un tamaño de archivo objetivo
+- Optimizar PDFs de marketing para descargas más rápidas desde un sitio web
+- Archivar grandes conjuntos de documentos cuando el costo de almacenamiento importa
+- Reducir el uso de datos móviles al compartir PDFs por aplicaciones de mensajería
+
+## Consejos
+
+- Empieza con Medio. Si el resultado sigue siendo demasiado grande, define un tamaño de archivo objetivo o sube a Alto.
+- Para un escaneo sin capa de texto, activa Rasteriza las páginas a imágenes en Ajustes personalizados.
+- Convertir a escala de grises, en Ajustes personalizados, puede reducir el tamaño de documentos con mucho color.
+
+## Herramientas Relacionadas
+
+- [Linealizar PDF](./linearize-pdf): optimiza el PDF comprimido para verlo rápido en la web
+- [Rasterizar PDF](./rasterize-pdf): convierte páginas en imágenes con un DPI específico, incluidas las páginas con texto
+- [Reparar PDF](./repair-pdf): arregla un PDF que se dañó durante una compresión en otro lugar
+- [Eliminar Metadatos](./remove-metadata): quita datos ocultos por privacidad
diff --git a/docs/es/tools/crop-pdf.md b/docs/es/tools/crop-pdf.md
new file mode 100644
index 00000000..840779e0
--- /dev/null
+++ b/docs/es/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Recortar PDF
+description: Recorta visualmente las páginas de un PDF dibujando una región de recorte en cada página con un editor basado en Cropper.js.
+---
+
+# Recortar PDF
+
+Recorta los márgenes de las páginas de tu PDF con una interfaz visual. Dibuja un rectángulo de recorte directamente sobre cada página, previsualiza el resultado y aplica el recorte. Puedes definir regiones de recorte distintas para diferentes páginas o aplicar el mismo recorte a todo el documento.
+
+## Cómo Funciona
+
+1. Sube tu archivo PDF.
+2. Se abre el editor de recorte, que muestra la primera página con una superposición de recorte que se puede arrastrar.
+3. Ajusta el rectángulo de recorte arrastrando sus bordes o esquinas.
+4. Usa los botones de navegación de páginas para moverte entre ellas y definir la región de recorte de cada una.
+5. Haz clic en **Recortar y descargar** para aplicar el recorte y descargar el resultado.
+
+## Características
+
+- Editor de recorte visual basado en Cropper.js, con controladores para un ajuste preciso
+- Navegación página por página para definir regiones de recorte individuales
+- Guarda los ajustes de recorte por página, para que puedas definir recortes distintos en páginas distintas
+- Vista previa en vivo del área de recorte seleccionada
+- Admite PDFs de cualquier tamaño u orientación de página
+
+## Casos de Uso
+
+- Quitar márgenes amplios de documentos escaneados para centrarse en el área de contenido
+- Eliminar marcas de corte o de registro de impresora de PDFs de preimpresión
+- Recortar diapositivas de clase para quitar el área de notas del presentador
+- Quitar encabezados o pies de página de todas las páginas antes de compartir un extracto de un documento
+- Redimensionar páginas para adaptarlas a una pantalla o un diseño de impresión específico
+
+## Consejos
+
+- La superposición de recorte se puede redimensionar y reposicionar libremente. Arrastra las esquinas para un cambio de tamaño proporcional o los bordes para un ajuste en un solo eje.
+- Si todas las páginas necesitan el mismo recorte, defínelo en la primera página: la herramienta recuerda tu región de recorte mientras navegas por las páginas.
+- Si necesitas estandarizar los tamaños de página en lugar de recortar visualmente, la herramienta Fijar Tamaño de Página puede ser más adecuada.
+
+## Herramientas Relacionadas
+
+- [Editor PDF](./edit-pdf)
+- [Números de Página](./page-numbers)
+- [Eliminar Páginas en Blanco](./remove-blank-pages)
diff --git a/docs/es/tools/csv-to-pdf.md b/docs/es/tools/csv-to-pdf.md
new file mode 100644
index 00000000..ffaef159
--- /dev/null
+++ b/docs/es/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV a PDF
+description: Convierte hojas de cálculo CSV en tablas PDF con formato directamente en tu navegador.
+---
+
+# CSV a PDF
+
+Convierte archivos CSV en documentos PDF limpios y con formato. Cada CSV se analiza y se muestra como una tabla en el PDF resultante. Es útil cuando necesitas imprimir o compartir datos tabulares sin que el destinatario tenga un programa de hojas de cálculo.
+
+## Formatos Compatibles
+
+| Formato | Extensiones |
+| :------ | :---------- |
+| CSV | `.csv` |
+
+## Cómo Funciona
+
+1. Haz clic en el área de carga o arrastra y suelta uno o más archivos CSV.
+2. Revisa la lista de archivos. Agrega más archivos o quita los que no quieras.
+3. Haz clic en **Convertir a PDF**. Un indicador de progreso muestra el estado de la conversión.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se empaquetan en `csv-converted.zip`.
+
+## Opciones
+
+Esta herramienta no tiene configuración adicional. El CSV se analiza y se formatea automáticamente como una tabla.
+
+## Resultado
+
+| Cantidad de Entradas | Resultado |
+| :------------------- | :------------------------------------------------------------ |
+| 1 archivo | Descarga de un solo PDF (p. ej., `data.pdf`) |
+| 2+ archivos | Archivo ZIP (`csv-converted.zip`) con un PDF por cada archivo |
+
+## Casos de Uso
+
+- Convertir informes exportados de bases de datos en tablas PDF imprimibles
+- Compartir datos financieros o listas de inventario con personas que no tienen Excel
+- Crear versiones en PDF de archivos de registro CSV para documentación de cumplimiento
+- Imprimir listas de direcciones, hojas de calificaciones o cualquier dato tabular guardado como CSV
+
+## Consejos
+
+- Para obtener los mejores resultados, asegúrate de que tu CSV use delimitadores de coma estándar. La herramienta sigue las convenciones comunes de análisis de CSV.
+- Si tu CSV tiene muchas columnas, la tabla puede comprimirse para ajustarse al ancho de la página. Considera dividir los conjuntos de datos anchos en varios archivos.
+- Para archivos de Excel (`.xls`, `.xlsx`), usa la herramienta [Excel a PDF](./excel-to-pdf), que conserva el formato de la hoja de cálculo y las múltiples hojas.
+
+## Herramientas Relacionadas
+
+- [Excel a PDF](./excel-to-pdf)
+- [Texto a PDF](./txt-to-pdf)
+- [JSON a PDF](./json-to-pdf)
diff --git a/docs/es/tools/delete-pages.md b/docs/es/tools/delete-pages.md
new file mode 100644
index 00000000..20337db5
--- /dev/null
+++ b/docs/es/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Eliminar páginas
+description: Quita páginas específicas de un PDF por número de página, rango o selección visual de miniaturas.
+---
+
+# Eliminar páginas
+
+Quita las páginas que no quieres de un documento PDF. Indica las páginas a eliminar escribiendo números de página o rangos, o haz clic directamente en las miniaturas para marcarlas.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF. La herramienta genera vistas previas en miniatura de cada página.
+2. Ingresa las páginas a eliminar en el campo de texto con la sintaxis de rangos (p. ej., `2, 5-8`), o haz clic en las miniaturas para alternarlas.
+3. Las páginas marcadas se resaltan visualmente para que confirmes tu selección.
+4. Haz clic en el botón de procesar. Se crea un nuevo PDF sin las páginas seleccionadas.
+
+## Características
+
+- Selección de páginas por texto con sintaxis de rangos (`2, 5-8, 12`)
+- Cuadrícula visual de miniaturas para eliminar con un clic
+- Resaltado en tiempo real de las páginas marcadas para eliminar
+- Validación de la entrada según el número real de páginas
+- Conserva todas las páginas no eliminadas en su orden original
+
+## Casos de Uso
+
+- Eliminar páginas en blanco o de relleno de un documento escaneado
+- Eliminar portadas o apéndices antes de compartir un documento
+- Limpiar páginas de borrador que quedaron por accidente en un PDF final
+- Quitar páginas con información sensible antes de distribuir
+
+## Consejos
+
+- Eliminar páginas no afecta el contenido ni el formato de las páginas restantes. El resultado es una copia fiel del original sin las páginas eliminadas.
+- Si quieres conservar solo ciertas páginas en lugar de quitar otras específicas, [Extraer Páginas](./extract-pages) es la mejor opción.
+- La vista de miniaturas se carga de forma diferida, por lo que los documentos grandes siguen respondiendo con fluidez.
+
+## Herramientas Relacionadas
+
+- [Extraer Páginas](./extract-pages)
+- [Organizar y Duplicar](./organize-pdf)
+- [Dividir PDF](./split-pdf)
diff --git a/docs/es/tools/deskew-pdf.md b/docs/es/tools/deskew-pdf.md
new file mode 100644
index 00000000..68d2bbd3
--- /dev/null
+++ b/docs/es/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Enderezar PDF
+description: Endereza automáticamente las páginas inclinadas de PDFs escaneados con detección de inclinación de OpenCV. Umbral y DPI ajustables.
+---
+
+# Enderezar PDF
+
+Los documentos escaneados rara vez quedan perfectamente rectos. Incluso una ligera inclinación reduce la precisión del OCR y hace que la impresión se vea descuidada. Esta herramienta usa los algoritmos de procesamiento de imágenes de OpenCV para detectar el ángulo de inclinación de cada página y girarla de nuevo hasta dejarla nivelada.
+
+## Cómo Funciona
+
+1. Sube uno o más PDFs escaneados.
+2. Define el **Umbral de inclinación**: las páginas con una inclinación detectada por debajo de este valor se dejan intactas.
+3. Elige una **Calidad de procesamiento (DPI)**: un DPI mayor mejora la precisión de la detección, pero tarda más.
+4. Haz clic en **Enderezar PDF**.
+5. Tras el procesamiento, un panel de resultados muestra el ángulo detectado de cada página y si se corrigió.
+
+## Opciones
+
+| Ajuste | Valores | Predeterminado |
+| ---------------------------------- | ------------------------- | -------------- |
+| **Umbral de inclinación** | 0.1, 0.5, 1.0, 2.0 grados | 0.5 |
+| **Calidad de procesamiento (DPI)** | 100, 150, 200, 300 | 150 |
+
+## Cómo Funciona la Detección de Inclinación
+
+La herramienta renderiza cada página como imagen con el DPI seleccionado y luego usa OpenCV para detectar los ángulos dominantes de las líneas del contenido. Si la inclinación detectada supera el umbral, la página se gira en el ángulo inverso para enderezarla. Las páginas por debajo del umbral pasan sin cambios.
+
+## Casos de Uso
+
+- Limpiar contratos o documentos legales escaneados por lotes
+- Preparar recibos o facturas escaneados para el procesamiento OCR
+- Enderezar páginas de un escáner de cama plana con una colocación del papel irregular
+- Mejorar la calidad visual de materiales de archivo digitalizados
+
+## Consejos
+
+- Reduce el umbral a 0.1 grados si necesitas una alineación perfecta para el OCR.
+- 150 DPI es rápido y preciso para la mayoría de los documentos. Usa 300 DPI para texto muy pequeño o páginas con detalles finos.
+- Enderezar funciona mejor con documentos que tienen líneas de texto horizontales claras. Puede tener dificultades con páginas compuestas sobre todo por imágenes o elementos de diseño diagonales.
+
+## Herramientas Relacionadas
+
+- [Rasterizar PDF](./rasterize-pdf): convierte el resultado enderezado en un PDF plano basado en imágenes
+- [Comprimir PDF](./compress-pdf): reduce el tamaño del archivo después de enderezar
+- [Reparar PDF](./repair-pdf): arregla problemas estructurales en PDFs escaneados
diff --git a/docs/es/tools/digital-sign-pdf.md b/docs/es/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..1302de35
--- /dev/null
+++ b/docs/es/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Firma Digital
+description: Agrega firmas digitales criptográficas a PDFs con certificados X.509. Admite los formatos PKCS#12 y PEM con opciones de firma visible.
+---
+
+# Firma Digital
+
+Una firma digital es una prueba criptográfica de que una persona específica firmó un documento y de que este no se ha alterado desde entonces. A diferencia de una firma dibujada (que es solo una imagen), una firma digital usa certificados X.509 y estándares PKCS#7 para ofrecer autenticidad e integridad verificables.
+
+BentoPDF aplica las firmas digitales por completo en tu navegador. Tu clave privada nunca sale de tu dispositivo.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF.
+2. Sube tu archivo de certificado (.pfx, .p12 o .pem).
+3. Ingresa la contraseña del certificado para desbloquearlo. La herramienta muestra el sujeto, el emisor y el período de validez del certificado.
+4. Opcionalmente, configura los metadatos de la firma (motivo, ubicación, información de contacto).
+5. Opcionalmente, activa una **firma visible** con personalización de posición, tamaño, imagen y texto.
+6. Haz clic en **Firmar PDF**.
+
+## Formatos de Certificado Compatibles
+
+| Formato | Extensiones | Descripción |
+| ----------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Paquete estándar de la industria que contiene la clave privada y la cadena de certificados. El formato más común. |
+| **PEM** | .pem | Formato basado en texto. Debe contener el certificado y la clave privada en un solo archivo. Admite claves privadas cifradas. |
+
+## Opciones de Firma Visible
+
+Al activarla, se renderiza un bloque de firma visible en la página del PDF:
+
+- **Posición**: coordenadas X/Y y ancho/alto en puntos
+- **Página**: primera página, última página, todas las páginas o un número de página específico
+- **Imagen**: sube una imagen PNG, JPG o WebP (tu firma manuscrita, el sello de tu empresa, etc.)
+- **Texto**: texto personalizado con color y tamaño de fuente configurables. Si no se proporciona imagen ni texto, la herramienta genera automáticamente un texto a partir del nombre común del certificado y la fecha actual.
+
+## Metadatos de la Firma
+
+- **Motivo**: por qué se firmó el documento (p. ej., "Aprobado", "Revisado")
+- **Ubicación**: dónde se realizó la firma (p. ej., "Nueva York, NY")
+- **Información de contacto**: cómo comunicarse con el firmante (p. ej., una dirección de correo electrónico)
+
+## Nota sobre la Conexión a Internet
+
+Es posible que firmar requiera una conexión a internet. La biblioteca de firma obtiene la cadena de certificados desde las URL incluidas en la extensión Authority Information Access (AIA) de tu certificado. Si esos servidores no están disponibles, la firma fallará con los certificados que requieren validación de la cadena.
+
+## Casos de Uso
+
+- Firmar contratos, propuestas y acuerdos con firmas digitales jurídicamente vinculantes
+- Certificar documentos oficiales en flujos de trabajo que requieren autenticación basada en PKI
+- Firmar facturas en PDF para cumplir con la normativa (muchos países de la UE exigen facturas electrónicas firmadas digitalmente)
+- Agregar la aprobación de una organización a planos de ingeniería o documentos de calidad
+
+## Consejos
+
+- Los certificados autofirmados sirven para pruebas, pero mostrarán advertencias en Adobe Reader. Usa un certificado de una Autoridad de Certificación de confianza para documentos en producción.
+- La firma visible es solo visual. La firma criptográfica se incrusta independientemente de que el bloque visible esté activado.
+- Verifica tu PDF firmado con la herramienta Validar Firma para confirmar que la firma está intacta.
+
+## Herramientas Relacionadas
+
+- [Validar Firma](./validate-signature-pdf): verifica las firmas digitales de PDFs firmados
+- [Aplanar PDF](./flatten-pdf): aplana los formularios antes de firmar para evitar modificaciones
+- [Cifrar PDF](./protect-pdf): agrega protección con contraseña sobre la firma digital
+- [Eliminar Metadatos](./remove-metadata): quita los metadatos antes de firmar
diff --git a/docs/es/tools/divide-pages.md b/docs/es/tools/divide-pages.md
new file mode 100644
index 00000000..81775c26
--- /dev/null
+++ b/docs/es/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Dividir páginas
+description: Divide las páginas de un PDF horizontal o verticalmente en subpáginas más pequeñas.
+---
+
+# Dividir páginas
+
+Corta páginas individuales de un PDF por la mitad, de forma horizontal o vertical. Es útil cuando una sola página contiene contenido que debería separarse en páginas distintas, por ejemplo, un diseño de dos columnas escaneado como una sola página ancha.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF.
+2. Selecciona la dirección de la división: **Vertical** (mitades izquierda/derecha) u **Horizontal** (mitades superior/inferior).
+3. Opcionalmente, especifica un rango de páginas para limitar cuáles se dividen. Déjalo en blanco para dividir todas las páginas.
+4. Haz clic en el botón de procesar para generar el PDF dividido.
+
+## Características
+
+- División vertical: divide cada página en mitades izquierda y derecha
+- División horizontal: divide cada página en mitades superior e inferior
+- Filtro de rango de páginas para dividir solo páginas específicas
+- Las páginas no seleccionadas pasan sin cambios
+- Conserva la calidad del contenido sin volver a renderizar
+
+## Casos de Uso
+
+- Separar páginas escaneadas de dos en dos (p. ej., el escaneo de un libro con las páginas izquierda y derecha en una sola hoja)
+- Dividir un PDF apaisado con contenido en paralelo en páginas verticales individuales
+- Dividir infografías o pósteres altos en secciones superior e inferior separadas
+- Preparar documentos de formato ancho para imprimirlos en papel estándar
+
+## Consejos
+
+- Si el contenido de tus páginas no está distribuido de forma uniforme, la división se hace igualmente en el punto medio exacto. Para divisiones asimétricas, considera usar [Recortar PDF](./crop-pdf).
+- Combina esta herramienta con [Rotar PDF](./rotate-pdf) si tus páginas necesitan girarse antes o después de dividirlas.
+
+## Herramientas Relacionadas
+
+- [Dividir PDF](./split-pdf)
+- [Recortar PDF](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [Posterizar PDF](./posterize-pdf)
diff --git a/docs/es/tools/duplex-collate.md b/docs/es/tools/duplex-collate.md
new file mode 100644
index 00000000..44714eae
--- /dev/null
+++ b/docs/es/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Intercalar escaneo a doble cara
+description: Reordena PDFs de escaneo a doble cara que contienen las páginas frontales y traseras en bloques separados, para dejarlas en el orden correcto de anverso y reverso.
+---
+
+# Intercalar escaneo a doble cara
+
+Intercalar escaneo a doble cara está pensado para flujos de escaneo con alimentador automático (ADF) donde un PDF contiene dos bloques de páginas:
+
+- primero todos los anversos
+- después todos los reversos
+
+En lugar de dividir y reensamblar manualmente, esta herramienta intercala los dos bloques en el orden natural de lectura: anverso1, reverso1, anverso2, reverso2, y así sucesivamente.
+
+## Cómo Funciona
+
+1. Sube un único PDF creado al escanear una pila a doble cara.
+2. Define el punto de división donde termina el bloque de anversos.
+3. Elige cómo tratar el bloque de reversos:
+ - **Invertir el bloque de reversos** (habitual cuando se voltea la pila antes de escanear los reversos)
+ - **Mantener el bloque de reversos tal cual**
+4. Haz clic en **Intercalar PDF** para descargar el resultado reordenado.
+
+## Opciones
+
+- **Detectar división automáticamente (mitad)**: fija el punto de división en `ceil(totalPages / 2)`.
+- **Aviso de páginas impares**: avisa cuando el total de páginas es impar (a menudo indica un desajuste en el escaneo).
+- **Confirmación de bloques desiguales**: pide confirmación cuando los bloques de anversos y reversos tienen tamaños distintos.
+- **Exportación agrupada**: divide el resultado intercalado en PDFs separados según el número de páginas del documento original y los descarga como ZIP.
+
+## Comportamiento de la Salida
+
+- **Predeterminado**: un PDF de salida (un solo PDF de entrada, un solo PDF de salida).
+- **Modo agrupado**: la salida se divide en fragmentos según tu valor de páginas por documento; si se producen varios fragmentos, se descargan en un único ZIP; de lo contrario, se descarga un solo PDF.
+
+Si los bloques tienen tamaños distintos, primero se intercalan las páginas emparejadas y las páginas restantes sin pareja se agregan al final.
+
+## Casos de Uso Comunes
+
+- Restaurar el orden después de escanear una pila de formularios a doble cara en dos pasadas.
+- Reconstruir paquetes de anverso y reverso a partir de escáneres de oficina que entregan todos los anversos y luego todos los reversos.
+- Posprocesar escaneos de archivo antes de dividirlos en archivos por documento.
+
+## Consejos
+
+- La mayoría de los lotes a doble cara deberían tener un total de páginas par.
+- Si los reversos se ven invertidos en el resultado, alterna entre **Invertir el bloque de reversos** y **Mantener el bloque de reversos tal cual**.
+- Para originales de 2 páginas (anverso y reverso), usa la exportación agrupada con `2` páginas por documento.
+
+## Herramientas Relacionadas
+
+- [Alternar y Mezclar Páginas](./alternate-merge)
+- [Dividir PDF](./split-pdf)
+- [Fusionar PDF](./merge-pdf)
+- [Organizar y Duplicar](./organize-pdf)
diff --git a/docs/es/tools/edit-attachments.md b/docs/es/tools/edit-attachments.md
new file mode 100644
index 00000000..49218748
--- /dev/null
+++ b/docs/es/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Editar adjuntos
+description: Consulta y elimina de forma selectiva los archivos adjuntos incrustados en un documento PDF.
+---
+
+# Editar adjuntos
+
+Inspecciona y administra los archivos adjuntos dentro de un PDF. La herramienta lista cada archivo incrustado con su nombre y su nivel de adjunto, y te permite marcar adjuntos individuales para eliminarlos o quitarlos todos a la vez.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF.
+2. La herramienta busca automáticamente los adjuntos y los muestra en una lista.
+3. Cada adjunto muestra su nombre de archivo y si es un adjunto a nivel de documento o de página.
+4. Haz clic en el icono de la papelera junto a un adjunto para marcarlo para eliminarlo (haz clic de nuevo para desmarcarlo).
+5. Usa el botón **Quitar todos los adjuntos** para seleccionar todo a la vez, o **Deseleccionar todo** para borrar tus selecciones.
+6. Haz clic en el botón de procesar para guardar un nuevo PDF sin los adjuntos seleccionados.
+
+## Características
+
+- Lista todos los adjuntos a nivel de documento y de página
+- Eliminación individual o masiva de adjuntos
+- Activa y desactiva la selección antes de confirmar los cambios
+- Texto tachado y cambio de opacidad en los elementos marcados para eliminar
+- Descarga el PDF modificado sin los adjuntos seleccionados
+
+## Casos de Uso
+
+- Quitar archivos obsoletos o incorrectos incrustados en un documento antes de redistribuirlo
+- Eliminar adjuntos sensibles (datos financieros, información personal) de un PDF antes de compartirlo
+- Reducir el tamaño de un PDF quitando archivos incrustados grandes que ya no se necesitan
+- Auditar el contenido incrustado y limpiar un documento antes de archivarlo
+
+## Consejos
+
+- Los adjuntos marcados para eliminar se muestran tachados. Puedes volver a activarlos antes de procesar si cambias de opinión.
+- Si no se encuentran adjuntos, la herramienta muestra un mensaje claro de "No se encontraron adjuntos": el PDF simplemente no contiene archivos incrustados.
+
+## Herramientas Relacionadas
+
+- [Agregar Adjuntos](./add-attachments)
+- [Extraer Adjuntos](./extract-attachments)
+- [Ver Metadatos](./view-metadata)
diff --git a/docs/es/tools/edit-metadata.md b/docs/es/tools/edit-metadata.md
new file mode 100644
index 00000000..a338dd6b
--- /dev/null
+++ b/docs/es/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Editar metadatos
+description: Consulta y modifica los campos de metadatos de un PDF, como título, autor, palabras clave, fechas y propiedades personalizadas.
+---
+
+# Editar metadatos
+
+Edita los metadatos incrustados en un archivo PDF. La herramienta rellena un formulario con los metadatos existentes del documento, te permite modificar cualquier campo y guarda los cambios en un nuevo PDF.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF. La herramienta lee sus metadatos actuales y rellena el formulario.
+2. Edita cualquiera de los campos estándar: Título, Autor, Asunto, Palabras clave, Creador, Productor.
+3. Ajusta Fecha de creación y Fecha de modificación con los selectores de fecha y hora.
+4. Agrega campos de metadatos personalizados haciendo clic en el botón de agregar e ingresando un par clave-valor.
+5. Haz clic en el botón de procesar para guardar el PDF modificado.
+
+## Características
+
+- Rellena todos los metadatos existentes del PDF subido
+- Campos estándar: Título, Autor, Asunto, Palabras clave, Creador, Productor
+- Selectores de fecha y hora para Fecha de creación y Fecha de modificación
+- Campos de metadatos personalizados de clave-valor para propiedades arbitrarias
+- Guarda los cambios directamente en el diccionario de información del documento PDF
+
+## Campos Editables
+
+| Campo | Descripción |
+| ------------------------- | ------------------------------------------------------------- |
+| **Título** | El título del documento que se muestra en los lectores de PDF |
+| **Autor** | La persona u organización que creó el documento |
+| **Asunto** | Una breve descripción del tema del documento |
+| **Palabras clave** | Términos separados por comas para búsqueda y categorización |
+| **Creador** | La aplicación que creó originalmente el contenido |
+| **Productor** | La aplicación que generó el PDF |
+| **Fecha de creación** | Cuándo se creó el documento originalmente |
+| **Fecha de modificación** | Cuándo se modificó el documento por última vez |
+| **Campos personalizados** | Cualquier par clave-valor adicional que definas |
+
+## Casos de Uso
+
+- Establecer un título y un autor adecuados antes de publicar un documento
+- Agregar palabras clave para mejorar la capacidad de búsqueda en sistemas de gestión documental
+- Actualizar la fecha de modificación para reflejar la revisión actual
+- Agregar campos de metadatos personalizados como Departamento, ID de proyecto o Clasificación
+- Limpiar los metadatos dejados por el software de creación original
+
+## Consejos
+
+- Los campos personalizados se escriben directamente en el diccionario de información del PDF. Algunos lectores de PDF pueden no mostrar los campos personalizados, pero se conservan en el archivo.
+- Deja un campo en blanco para borrarlo de los metadatos. El botón de procesar guarda lo que haya en el formulario.
+- Para ver los metadatos sin editarlos, usa [Ver Metadatos](./view-metadata). Para eliminar todos los metadatos por completo, usa Eliminar Metadatos.
+
+## Herramientas Relacionadas
+
+- [Ver Metadatos](./view-metadata)
+- [Capas PDF (OCG)](./pdf-layers)
+- [Comprimir PDF](./compress-pdf)
diff --git a/docs/es/tools/edit-pdf.md b/docs/es/tools/edit-pdf.md
new file mode 100644
index 00000000..39d94a2f
--- /dev/null
+++ b/docs/es/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Editor PDF
+description: Anota, resalta, tacha, agrega formas e imágenes, busca y visualiza PDFs directamente en tu navegador.
+---
+
+# Editor PDF
+
+El Editor PDF de BentoPDF te permite anotar, resaltar, tachar contenido (redactar), comentar, agregar formas e imágenes y buscar dentro de tus PDFs. Carga un editor completo directamente en tu navegador, sin subir nada a ningún servidor.
+
+## Cómo Funciona
+
+1. Sube tu PDF haciendo clic en la zona de carga o arrastrando un archivo sobre ella.
+2. El editor de PDF integrado se abre automáticamente con tu documento cargado.
+3. Usa la barra de herramientas para anotar, resaltar, redactar, agregar texto, dibujar formas o insertar imágenes.
+4. Haz clic en **Descargar PDF editado** para guardar tus cambios.
+
+## Características
+
+- Barra de herramientas de anotación completa con resaltado, subrayado, tachado y dibujo a mano alzada
+- Inserción de texto y comentarios
+- Herramientas de redacción que eliminan de forma permanente el contenido marcado una vez que aplicas la redacción. Si alguna marca no se ha aplicado cuando haces clic en **Descargar PDF editado**, el editor te ofrece aplicarlas primero.
+- Herramientas de formas para rectángulos, círculos, líneas y flechas
+- Inserción de imágenes en las páginas del PDF
+- Búsqueda de texto integrada en todo el documento
+- Compatibilidad con varios documentos mediante pestañas (hasta 10 documentos abiertos simultáneamente)
+- Carga de archivos con arrastrar y soltar
+
+## Casos de Uso
+
+- Revisar contratos y marcar cambios con resaltados y comentarios
+- Redactar información confidencial, como números de seguro social o datos financieros, antes de compartir
+- Agregar anotaciones a planos arquitectónicos o dibujos de ingeniería
+- Insertar logotipos o sellos de empresa en las páginas de un documento
+- Buscar términos específicos en documentos legales extensos
+
+## Consejos
+
+- Puedes abrir varios PDFs a la vez y cambiar entre ellos con la barra de pestañas en la parte superior del editor.
+- El editor conserva la estructura original del PDF, por lo que las fuentes, los diseños y los campos de formulario permanecen intactos.
+- Marcar texto o un área para redactar no elimina nada hasta que se aplica la redacción. Cuando redactas texto seleccionado, también se eliminan de la descarga las copias de ese texto en las propiedades del archivo, los marcadores, los comentarios y los adjuntos, a menos que el archivo esté cifrado.
+- Para marcas de agua o numeración de páginas en lote, usa las herramientas dedicadas, que ofrecen más control sobre el formato.
+
+## Herramientas Relacionadas
+
+- [Agregar Marca de Agua](./add-watermark)
+- [Firmar PDF](./sign-pdf)
+- [Agregar Sellos](./add-stamps)
+- [Eliminar Anotaciones](./remove-annotations)
diff --git a/docs/es/tools/email-to-pdf.md b/docs/es/tools/email-to-pdf.md
new file mode 100644
index 00000000..dcb06f7f
--- /dev/null
+++ b/docs/es/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Email a PDF
+description: Convierte archivos de correo EML y MSG a PDF en tu navegador. Conserva los encabezados, el cuerpo y la lista de adjuntos.
+---
+
+# Email a PDF
+
+Convierte correos electrónicos guardados en PDFs limpios e imprimibles. La herramienta analiza archivos EML y MSG, extrae el mensaje completo (encabezados, contenido del cuerpo y metadatos de los adjuntos) y lo renderiza todo en un PDF estructurado. Es útil para peritajes legales, archivo de registros o simplemente para imprimir un correo importante.
+
+## Formatos Compatibles
+
+| Formato | Extensión | Notas |
+| :------ | :-------- | :------------------------------------------------------------------------------------- |
+| EML | `.eml` | Formato estándar de correo MIME (exportado desde la mayoría de los clientes de correo) |
+| MSG | `.msg` | Formato propietario de Microsoft Outlook |
+
+## Cómo Funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos EML o MSG. Puedes mezclar ambos formatos en un mismo lote.
+2. Revisa la lista de archivos. Quita las entradas que no quieras con el icono de la papelera, o haz clic en **Agregar Más Archivos** para incluir más correos.
+3. Configura las opciones de conversión (ver abajo).
+4. Haz clic en **Convertir a PDF**. La herramienta analiza cada correo, renderiza el contenido como HTML con estilo y lo convierte a PDF con el motor PyMuPDF.
+5. Un solo correo se descarga directamente como PDF. Varios correos se empaquetan en `emails-converted.zip`.
+
+## Opciones
+
+| Opción | Predeterminado | Descripción |
+| :-------------------------------------------------- | :------------- | :---------------------------------------------------------------------------------------------------------------- |
+| **Tamaño de página** | A4 | Elige entre las dimensiones de página A4, Letter o Legal. |
+| **Incluir destinatarios CC y CCO en el encabezado** | Activado | Si está activada, las listas de destinatarios CC y CCO aparecen en la sección de encabezado del correo en el PDF. |
+| **Incluir lista de archivos adjuntos del correo** | Activado | Si está activada, en el PDF aparece una lista de los archivos adjuntos del correo (con nombres y tamaños). |
+
+## Casos de Uso
+
+- Archivar correspondencia comercial importante como PDF para cumplimiento normativo o auditorías
+- Imprimir cadenas de correos para procedimientos legales o solicitudes de pruebas
+- Crear un registro permanente de confirmaciones de pedidos, recibos o contratos recibidos por correo
+- Respaldar archivos MSG de Outlook en un formato que no requiere Outlook para leerse
+- Documentar interacciones de atención al cliente a partir de archivos EML exportados
+
+## Consejos
+
+- Se admiten tanto EML (usado por Thunderbird, Apple Mail y la mayoría de los clientes de correo) como archivos MSG de Outlook. Exporta los correos desde tu cliente de correo y suéltalos directamente en la herramienta.
+- Los correos con formato HTML conservan su estilo en el PDF. Los correos de texto plano se renderizan con un formato limpio y legible.
+- La lista de adjuntos muestra nombres de archivo y tamaños, pero no incrusta los archivos adjuntos reales en el PDF.
+
+## Herramientas Relacionadas
+
+- [XML a PDF](./xml-to-pdf)
+- [XPS a PDF](./xps-to-pdf)
diff --git a/docs/es/tools/epub-to-pdf.md b/docs/es/tools/epub-to-pdf.md
new file mode 100644
index 00000000..8e06facf
--- /dev/null
+++ b/docs/es/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB a PDF
+description: Convierte libros electrónicos EPUB a PDF en tu navegador. Gratis, sin subir archivos, con conversión que prioriza la privacidad.
+---
+
+# EPUB a PDF
+
+Convierte libros electrónicos EPUB en archivos PDF sin salir de tu navegador. EPUB es el estándar abierto para libros digitales, pero a veces necesitas un PDF de diseño fijo para imprimir, anotar o compartir con personas que no tienen un lector de libros electrónicos.
+
+## Formatos Compatibles
+
+| Formato | Extensión | Notas |
+| :------ | :-------- | :----------------------- |
+| EPUB | `.epub` | Archivos EPUB 2 y EPUB 3 |
+
+## Cómo Funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos EPUB. Se admite la selección múltiple.
+2. Revisa los archivos subidos. Quita las entradas que no quieras con el icono de la papelera, o haz clic en **Agregar Más Archivos** para ampliar el lote.
+3. Haz clic en **Convertir a PDF**. El motor PyMuPDF renderiza el contenido del EPUB (texto, imágenes y formato) en un PDF paginado.
+4. Un solo EPUB se descarga directamente como PDF. Varios archivos se empaquetan en un ZIP llamado `epub-converted.zip`.
+
+## Opciones
+
+La conversión se ejecuta con valores predeterminados razonables y no requiere configuración. El texto se reajusta a las dimensiones de página estándar, y las fuentes e imágenes incrustadas pasan al PDF.
+
+## Casos de Uso
+
+- Imprimir un libro electrónico sin DRM para leerlo lejos de las pantallas
+- Enviar un manuscrito EPUB como PDF de diseño fijo para su revisión
+- Archivar libros digitales en un formato que cualquier sistema operativo pueda abrir de forma nativa
+- Compartir un capítulo con un colega que no tiene un lector de EPUB
+- Convertir documentación técnica distribuida en EPUB en PDFs que se pueden anotar
+
+## Consejos
+
+- Las funciones de EPUB 3, como el audio y el video incrustados, no pasan al PDF, pero todo el texto, las imágenes y las tablas se convierten sin problemas.
+- Para obtener los mejores resultados con EPUBs de estilo muy elaborado, revisa las primeras páginas del resultado para confirmar la fidelidad del diseño.
+
+## Herramientas Relacionadas
+
+- [MOBI a PDF](./mobi-to-pdf)
+- [FB2 a PDF](./fb2-to-pdf)
+- [CBZ a PDF](./cbz-to-pdf)
diff --git a/docs/es/tools/excel-to-pdf.md b/docs/es/tools/excel-to-pdf.md
new file mode 100644
index 00000000..41a2df9c
--- /dev/null
+++ b/docs/es/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel a PDF
+description: Convierte hojas de cálculo de Excel (XLS, XLSX), ODS y archivos CSV a PDF conservando el formato.
+---
+
+# Excel a PDF
+
+Convierte hojas de cálculo a PDF. La herramienta admite archivos modernos de Excel, el formato XLS heredado, hojas de cálculo OpenDocument e incluso CSV, todo renderizado con un motor LibreOffice que se ejecuta en el navegador y conserva el formato de las celdas, las fórmulas (como valores calculados), los gráficos y los diseños de varias hojas.
+
+## Formatos Compatibles
+
+| Formato | Extensiones |
+| :--------------------------- | :---------- |
+| Excel (moderno) | `.xlsx` |
+| Excel (heredado) | `.xls` |
+| Hoja de cálculo OpenDocument | `.ods` |
+| CSV | `.csv` |
+
+## Cómo Funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus hojas de cálculo.
+2. Revisa la lista de archivos. Agrega más archivos o quita los que no quieras.
+3. Haz clic en **Convertir a PDF**. El motor LibreOffice se inicializa en el primer uso y luego procesa cada archivo.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se entregan como `excel-converted.zip`.
+
+## Opciones
+
+Esta herramienta no tiene configuración adicional. El motor LibreOffice determina el diseño de página, la escala y el área de impresión según los ajustes integrados de la hoja de cálculo.
+
+## Resultado
+
+| Cantidad de Entradas | Resultado |
+| :------------------- | :------------------------------------------------------------------------ |
+| 1 archivo | Descarga de un solo PDF (nombre de archivo original con extensión `.pdf`) |
+| 2+ archivos | Archivo ZIP (`excel-converted.zip`) con un PDF por cada archivo |
+
+## Casos de Uso
+
+- Convertir informes financieros o presupuestos de Excel a PDF para distribuirlos
+- Crear PDFs listos para imprimir a partir de hojas de cálculo de inventario o catálogos de productos
+- Compartir resultados de análisis de datos con personas que no tienen Excel instalado
+- Archivar informes trimestrales en un formato no editable
+- Convertir archivos ODS de LibreOffice Calc a PDF
+
+## Consejos
+
+- Los gráficos incrustados en la hoja de cálculo se renderizan en el PDF. Asegúrate de que se vean correctos en el archivo de origen antes de convertir.
+- Si tu hoja de cálculo tiene varias hojas, todas se incluyen en el PDF resultante.
+- Para datos CSV simples sin formato, la herramienta [CSV a PDF](./csv-to-pdf) ofrece una conversión más ligera. Usa Excel a PDF cuando necesites conservar formato, gráficos o varias hojas.
+
+## Herramientas Relacionadas
+
+- [CSV a PDF](./csv-to-pdf)
+- [Word a PDF](./word-to-pdf)
+- [PowerPoint a PDF](./powerpoint-to-pdf)
diff --git a/docs/es/tools/extract-attachments.md b/docs/es/tools/extract-attachments.md
new file mode 100644
index 00000000..63f2865e
--- /dev/null
+++ b/docs/es/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Extraer adjuntos
+description: Extrae todos los archivos adjuntos incrustados de uno o más PDFs y descárgalos como un archivo ZIP.
+---
+
+# Extraer adjuntos
+
+Saca todos los adjuntos incrustados de uno o más archivos PDF. Todos los archivos extraídos se agrupan en un único ZIP para su descarga.
+
+## Cómo Funciona
+
+1. Sube uno o más archivos PDF que contengan adjuntos incrustados.
+2. Haz clic en **Extraer adjuntos**.
+3. La herramienta busca en cada PDF los adjuntos a nivel de documento y de página.
+4. Todos los archivos encontrados se empaquetan en un ZIP y se descargan automáticamente.
+5. Un mensaje de estado confirma cuántos adjuntos se encontraron y su tamaño total.
+
+## Características
+
+- Extracción por lotes de varios PDFs a la vez
+- Extrae tanto los adjuntos a nivel de documento como de página
+- Genera un único archivo ZIP con todos los archivos extraídos
+- Muestra la cantidad total de adjuntos y el tamaño combinado de los archivos
+- Mensajes de estado claros si no se encuentran adjuntos
+
+## Casos de Uso
+
+- Recuperar archivos de datos incrustados en el PDF de un informe
+- Sacar recursos de imagen de un portafolio o de un documento de especificaciones
+- Extraer materiales complementarios de PDFs de capacitación o de cumplimiento
+- Auditar qué archivos están incrustados en un lote de PDFs
+
+## Consejos
+
+- Si la herramienta indica que no hay adjuntos, el PDF puede contener imágenes incrustadas o datos de formulario, que no son archivos adjuntos. Usa [Extraer imágenes](./extract-images) para las imágenes incrustadas.
+- Al procesar varios PDFs, todos los adjuntos de cada archivo terminan en un solo ZIP. Los nombres de archivo se conservan tal como estaban en las incrustaciones originales.
+
+## Herramientas Relacionadas
+
+- [Agregar Adjuntos](./add-attachments)
+- [Editar Adjuntos](./edit-attachments)
+- [Extraer imágenes](./extract-images)
diff --git a/docs/es/tools/extract-images.md b/docs/es/tools/extract-images.md
new file mode 100644
index 00000000..25ceb8ce
--- /dev/null
+++ b/docs/es/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Extraer imágenes
+description: Extrae todas las imágenes incrustadas de archivos PDF. Previsualízalas en una cuadrícula y descárgalas individualmente o como un archivo ZIP.
+---
+
+# Extraer imágenes
+
+Saca todas las imágenes incrustadas de uno o más archivos PDF. Las imágenes extraídas se muestran en una cuadrícula de vista previa donde puedes descargarlas individualmente o todas a la vez como un ZIP. Funciona con PyMuPDF.
+
+## Cómo Funciona
+
+1. Sube uno o más PDFs haciendo clic en la zona de carga o arrastrando archivos sobre ella. Agrega más archivos o quita archivos individuales según necesites.
+2. Haz clic en **Extraer imágenes** para iniciar el procesamiento.
+3. La herramienta recorre cada página de cada PDF subido, buscando y extrayendo las imágenes incrustadas.
+4. Las imágenes extraídas aparecen en una cuadrícula con miniaturas. Cada imagen tiene un botón de descarga.
+5. Haz clic en **Descargar todo** para guardar todo como un archivo ZIP.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Todas las imágenes incrustadas se extraen en su formato original (normalmente PNG, JPEG o el formato que se usó cuando la imagen se incrustó en el PDF).
+
+## Formato de Salida
+
+- Las imágenes se muestran en una cuadrícula de vista previa con nombres como `image_1.png`, `image_2.jpg`, etc.
+- **Descargar todo** genera `extracted-images.zip` con todas las imágenes.
+- Las imágenes individuales se pueden descargar una por una desde la cuadrícula.
+
+## Casos de Uso
+
+- Recuperar fotos o gráficos de un PDF para reutilizarlos en otro proyecto.
+- Extraer imágenes de productos del PDF de un catálogo para un listado de comercio electrónico.
+- Sacar diagramas de documentación técnica para usarlos en presentaciones.
+- Auditar qué imágenes están incrustadas en un documento antes de compartirlo.
+
+## Consejos
+
+- La herramienta extrae las imágenes exactamente como están almacenadas en el PDF. No vuelve a renderizar las páginas como imágenes; para eso, usa [PDF a PNG](./pdf-to-png) o [PDF a JPG](./pdf-to-jpg).
+- Si la herramienta muestra "No se encontraron imágenes", es posible que el PDF use gráficos vectoriales en lugar de imágenes raster incrustadas, o que sea un documento escaneado donde toda la página es una sola imagen grande.
+- El procesamiento por lotes funciona con varios PDFs. Todas las imágenes de todos los archivos se combinan en una sola cuadrícula y un solo ZIP.
+
+## Herramientas Relacionadas
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a JPG](./pdf-to-jpg)
+- [Constructor de flujos de trabajo PDF](./pdf-workflow)
diff --git a/docs/es/tools/extract-pages.md b/docs/es/tools/extract-pages.md
new file mode 100644
index 00000000..3fa6376e
--- /dev/null
+++ b/docs/es/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Extraer páginas
+description: Guarda un rango específico de páginas de un PDF como un documento nuevo.
+---
+
+# Extraer páginas
+
+Saca un conjunto de páginas de un PDF y guárdalas como un archivo nuevo. Indica exactamente qué páginas quieres con la sintaxis de rangos, y la herramienta crea un PDF limpio que contiene solo esas páginas.
+
+## Cómo Funciona
+
+1. Sube un archivo PDF. La herramienta muestra el nombre del archivo, su tamaño y el total de páginas.
+2. Ingresa las páginas que quieres extraer con la sintaxis de rangos (p. ej., `1-5`, `3, 7, 10-12`).
+3. Opcionalmente, elige descargar cada rango como un PDF separado dentro de un archivo ZIP.
+4. Haz clic en el botón de procesar. Las páginas extraídas se descargan como un nuevo PDF (o ZIP).
+
+## Características
+
+- Sintaxis flexible de rangos de páginas: páginas individuales, rangos o combinaciones separadas por comas
+- Muestra el total de páginas después de la carga para consultarlo fácilmente
+- Opción de generar un único PDF combinado o archivos separados en un ZIP
+- Conserva el contenido y el formato originales de las páginas
+
+## Casos de Uso
+
+- Sacar el resumen ejecutivo (las primeras páginas) de un informe extenso
+- Extraer un solo capítulo del PDF de un libro de texto
+- Guardar páginas específicas de un paquete de formularios como documentos independientes
+- Crear un documento de muestra con páginas seleccionadas de un archivo más grande
+
+## Consejos
+
+- Los números de página empiezan en 1. Usa `1` para la primera página, no `0`.
+- Para quitar páginas en lugar de extraerlas, usa [Eliminar Páginas](./delete-pages), que es la operación inversa.
+- Si necesitas selección visual de páginas con miniaturas, usa [Dividir PDF](./split-pdf) en el modo Visual Select.
+
+## Herramientas Relacionadas
+
+- [Dividir PDF](./split-pdf)
+- [Eliminar Páginas](./delete-pages)
+- [Fusionar PDF](./merge-pdf)
diff --git a/docs/es/tools/extract-tables.md b/docs/es/tools/extract-tables.md
new file mode 100644
index 00000000..97ac8a9e
--- /dev/null
+++ b/docs/es/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Extraer Tablas de PDF
+description: Detecta y extrae tablas de documentos PDF. Exporta como CSV, JSON o Markdown con granularidad por tabla.
+---
+
+# Extraer Tablas de PDF
+
+Detecta todas las tablas de un PDF y te permite exportarlas en el formato que prefieras: CSV, JSON o Markdown. Cada tabla se extrae de forma individual con metadatos de página y posición. Funciona con el motor de detección de tablas de PyMuPDF.
+
+## Cómo Funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo sobre ella.
+2. Selecciona tu **formato de exportación** preferido: CSV, JSON o Markdown.
+3. Haz clic en **Extraer tablas** para iniciar el procesamiento.
+4. Si se encuentra una tabla, se descarga como un solo archivo. Si hay varias tablas, se genera un archivo ZIP con un archivo por tabla.
+
+## Opciones
+
+- **Formato de exportación**: elige entre:
+ - **CSV**: valores separados por comas con las comillas adecuadas para campos que contienen comas, comillas o saltos de línea. Adecuado para hojas de cálculo y bases de datos.
+ - **JSON**: estructura de arreglos de arreglos, con formato legible y sangría de 2 espacios. Adecuado para su consumo por programas.
+ - **Markdown**: formato de tabla delimitado por barras verticales, generado por PyMuPDF. Adecuado para documentación y archivos README.
+
+## Formato de Salida
+
+- **Una sola tabla**: `filename_table.csv` (o `.json` / `.md`)
+- **Varias tablas**: `filename_tables.zip` con archivos llamados `table_1_page3.csv`, `table_2_page5.csv`, etc.
+
+## Casos de Uso
+
+- Extraer tablas específicas de informes PDF extensos sin sacar los datos de todo el documento.
+- Obtener tablas en formato Markdown para pegarlas directamente en issues de GitHub, wikis o documentación.
+- Sacar datos JSON estructurados de tablas de PDF para integraciones de API o scripts.
+- Comparar tablas entre distintas versiones de un PDF exportando ambas a CSV y comparando las diferencias.
+
+## Consejos
+
+- Esta herramienta te da control por tabla. Si solo quieres volcar todas las tablas en un único CSV, usa [PDF a CSV](./pdf-to-csv). Para un libro completo de Excel, usa [PDF a Excel](./pdf-to-excel).
+- Las tablas que abarcan varias páginas pueden detectarse como tablas separadas por página. Es posible que debas concatenarlas manualmente.
+- Si no se detecta ninguna tabla, el PDF podría ser una imagen escaneada. Pásalo primero por OCR para agregar una capa de texto.
+
+## Herramientas Relacionadas
+
+- [PDF a CSV](./pdf-to-csv)
+- [PDF a Excel](./pdf-to-excel)
+- [PDF a Texto](./pdf-to-text)
diff --git a/docs/es/tools/fb2-to-pdf.md b/docs/es/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..99cd2aea
--- /dev/null
+++ b/docs/es/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 a PDF
+description: Convierte libros electrónicos FictionBook (FB2) a PDF en tu navegador. Gratis, privado, sin subir nada a ningún servidor.
+---
+
+# FB2 a PDF
+
+Convierte archivos FictionBook 2 (FB2) en documentos PDF. FB2 es un formato de libro electrónico basado en XML, popular en Rusia y Europa del Este. Aunque tiene buen soporte en ciertas plataformas, en otras es prácticamente desconocido: convertirlo a PDF hace que tus libros se puedan leer en cualquier parte.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :------------ | :-------- | :----------------------------- |
+| FictionBook 2 | `.fb2` | Formato de libro basado en XML |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos FB2. Puedes seleccionar varios a la vez.
+2. Revisa la lista de archivos. Usa el icono de papelera para quitar entradas individuales, o **Agregar Más Archivos** para incluir más.
+3. Haz clic en **Convertir a PDF**. El motor PyMuPDF analiza la estructura XML del FB2 y la renderiza como contenido PDF paginado.
+4. Un solo archivo se descarga directamente como PDF. Varias conversiones se agrupan en `fb2-converted.zip`.
+
+## Opciones
+
+No hace falta configurar nada. El conversor gestiona automáticamente la estructura XML del FB2 y conserva los saltos de capítulo, el formato y las imágenes incrustadas.
+
+## Casos de uso
+
+- Leer libros FB2 en dispositivos o aplicaciones que solo admiten PDF
+- Imprimir literatura en ruso distribuida en formato FB2
+- Archivar una biblioteca FB2 en un formato compatible con todo
+- Compartir un libro con alguien cuyo lector no admite FictionBook
+
+## Consejos
+
+- Los archivos FB2 son XML plano, así que suelen ser pequeños y se convierten rápido incluso en el navegador.
+- Si tus archivos FB2 están comprimidos como `.fb2.zip`, extráelos antes de subirlos.
+
+## Herramientas relacionadas
+
+- [EPUB a PDF](./epub-to-pdf)
+- [MOBI a PDF](./mobi-to-pdf)
+- [XML a PDF](./xml-to-pdf)
diff --git a/docs/es/tools/fix-page-size.md b/docs/es/tools/fix-page-size.md
new file mode 100644
index 00000000..5b9a9c70
--- /dev/null
+++ b/docs/es/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Ajustar tamaño de página
+description: Unifica todas las páginas de un PDF en un mismo tamaño. Elige entre tamaños de papel estándar o define dimensiones personalizadas.
+---
+
+# Ajustar tamaño de página
+
+Los PDF creados a partir de varias fuentes suelen tener páginas de tamaños distintos: algunas Letter, otras A4, otras totalmente fuera de norma. Esta herramienta fuerza todas las páginas a un único tamaño, escalando el contenido para ajustarlo o llenarlo según haga falta.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Selecciona un **Tamaño de página de destino** en el menú desplegable (A4, Letter, Legal, A3, A5, Tabloid o Custom).
+3. Elige una **Orientación**: Auto mantiene la orientación original de cada página, o puedes forzar Portrait o Landscape.
+4. Elige un modo de **Escalado del contenido**: Fit (conserva todo el contenido, puede añadir márgenes) o Fill (llena la página, puede recortar los bordes).
+5. Opcionalmente, define un **Color de fondo** para los márgenes añadidos.
+6. Haz clic en **Ajustar tamaño de página**.
+
+## Opciones
+
+- **Tamaños estándar**: A4, Letter, Legal, A3, A5, Tabloid
+- **Dimensiones personalizadas**: introduce ancho y alto en pulgadas o milímetros
+- **Orientación**: Automática, Vertical, Horizontal
+- **Modo de escalado**: Fit o Fill (Crop)
+- **Color de fondo**: cualquier color para el relleno de los márgenes
+
+## Casos de uso
+
+- Normalizar un PDF combinado cuyas páginas vienen de escáneres distintos
+- Convertir un documento US Letter a A4 para distribución internacional
+- Preparar PDF listos para imprimir que exigen un tamaño de corte uniforme
+- Corregir páginas ligeramente fuera de estándar (por ejemplo, 8,49 x 11,02 pulgadas en lugar de 8,5 x 11)
+
+## Consejos
+
+- Usa el modo Fit para garantizar que no se pierda contenido. El modo Fill se ve más limpio, pero puede recortar los bordes.
+- Revisa el resultado con la herramienta Dimensiones de página para confirmar que todas las páginas coinciden con el tamaño objetivo.
+- El color de fondo predeterminado es el blanco; cambia a un color oscuro si tu documento tiene márgenes oscuros.
+
+## Herramientas relacionadas
+
+- [Dimensiones de página](./page-dimensions): inspecciona los tamaños de página antes y después de corregirlos
+- [Comprimir PDF](./compress-pdf): reduce el tamaño del archivo tras la estandarización
+- [Recortar PDF](./crop-pdf): recorta las páginas manualmente en lugar de escalarlas automáticamente
diff --git a/docs/es/tools/flatten-pdf.md b/docs/es/tools/flatten-pdf.md
new file mode 100644
index 00000000..293389af
--- /dev/null
+++ b/docs/es/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Aplanar PDF
+description: Aplana formularios interactivos y anotaciones en contenido estático. Hace que los campos no sean editables e integra las anotaciones en la página.
+---
+
+# Aplanar PDF
+
+Aplanar fusiona los elementos interactivos (campos de formulario, menús desplegables, casillas, anotaciones, resaltados, notas adhesivas) directamente en el contenido de la página. La apariencia visual sigue igual, pero ya nada se puede editar ni extraer. Es el equivalente en PDF a imprimir un formulario rellenado y volver a escanearlo, solo que la calidad se mantiene perfecta.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF.
+2. Haz clic en **Aplanar PDF**.
+3. Un solo archivo se descarga directamente. Varios archivos generan un archivo ZIP.
+
+La herramienta usa pdf-lib para aplanar los campos de formulario (mediante `form.flatten()`) y un aplanador de anotaciones dedicado para integrar las anotaciones en el flujo de la página. Ambas operaciones se realizan en una sola pasada.
+
+## Qué se aplana
+
+- **Campos de formulario**: entradas de texto, casillas, botones de opción, menús desplegables, campos de firma
+- **Anotaciones**: comentarios, resaltados, tachado, subrayado, notas adhesivas, sellos, anotaciones de tinta
+- **Elementos interactivos**: botones, disparadores de acciones
+
+## Qué no cambia
+
+- El contenido de texto (sigue siendo seleccionable y se puede buscar)
+- Imágenes y gráficos
+- Diseño y dimensiones de la página
+- Marcadores y tabla de contenido
+- Hipervínculos (salvo los basados en anotaciones)
+
+## Casos de uso
+
+- Bloquear un formulario completado para que los destinatarios no puedan cambiar las respuestas enviadas
+- Preparar un PDF para archivo donde los elementos interactivos no son necesarios
+- Corregir problemas de visualización causados por anotaciones que se muestran distinto en cada visor
+- Asegurar que un documento firmado no se pueda modificar tras aplicar la firma
+- Reducir el tamaño del archivo eliminando las definiciones de campos y los objetos de anotación
+
+## Consejos
+
+- Aplana cuando hayas terminado todas las ediciones. No hay forma de desaplanar un PDF.
+- Si necesitas aplanar y además eliminar metadatos, JavaScript y archivos adjuntos, usa la herramienta Sanear PDF: incluye el aplanado como una de sus opciones.
+- Algunos PDF indican "no se encontró ningún formulario". Es normal si el documento solo tiene anotaciones y ningún campo de formulario.
+
+## Herramientas relacionadas
+
+- [Sanear PDF](./sanitize-pdf): aplana formularios y además elimina metadatos, scripts y más
+- [Rasterizar PDF](./rasterize-pdf): convierte a PDF basado en imágenes para un aplanado máximo
+- [Fuente a contorno](./font-to-outline): convierte las fuentes en trazados vectoriales
+- [Cifrar PDF](./protect-pdf): bloquea el PDF aplanado con una contraseña
diff --git a/docs/es/tools/font-to-outline.md b/docs/es/tools/font-to-outline.md
new file mode 100644
index 00000000..71413dd9
--- /dev/null
+++ b/docs/es/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Fuente a contorno
+description: Convierte todas las fuentes de un PDF en contornos vectoriales para un renderizado uniforme en cualquier dispositivo. Elimina los problemas de dependencia de fuentes.
+---
+
+# Fuente a contorno
+
+Convertir las fuentes en contornos transforma cada carácter de texto de un glifo basado en fuente en un trazado vectorial. El PDF deja de depender de las fuentes instaladas: se ve igual en cualquier dispositivo, sistema operativo e impresora. Es un paso habitual en los flujos de preimpresión.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF.
+2. Haz clic en **Convertir en contornos**.
+3. Ghostscript convierte todo el texto en trazados vectoriales.
+4. Descarga el resultado. Varios archivos generan un archivo ZIP.
+
+No hay ajustes que configurar. La herramienta usa Ghostscript (WebAssembly) para convertir todas las referencias de fuentes en trazados de contorno en una sola pasada.
+
+## Qué cambia
+
+- Los caracteres de texto pasan a ser curvas vectoriales (trazados bezier)
+- Ya no es necesario incrustar las fuentes: el PDF es autocontenido a nivel de glifo
+- El tamaño del archivo puede aumentar porque los trazados vectoriales suelen ocupar más que las referencias a fuentes
+- La apariencia visual se conserva exactamente
+
+## Qué pierdes
+
+- La selección y el copiado de texto
+- La capacidad de búsqueda del texto (Ctrl+F deja de funcionar)
+- La posibilidad de editar el contenido del texto
+- La accesibilidad para lectores de pantalla
+
+## Casos de uso
+
+- Enviar PDF a una imprenta que exige fuentes convertidas a contornos
+- Compartir documentos con fuentes personalizadas o con licencia con personas que no las tienen
+- Evitar la sustitución de fuentes que cambia el aspecto de tu documento en otros sistemas
+- Preparar PDF para flujos de grabado láser o corte CNC que requieren entrada vectorial
+- Asegurar que un PDF con muchos logotipos se muestre correctamente en todas las plataformas
+
+## Consejos
+
+- Conserva tu PDF original. Convertir a contornos es irreversible: no puedes volver a convertir los trazados en texto editable.
+- Si necesitas que el texto siga siendo buscable, considera usar la herramienta Rasterizar PDF con OCR como paso posterior.
+- Los PDF con contornos tienden a ser más grandes. Ejecuta Comprimir PDF después si el tamaño importa.
+
+## Herramientas relacionadas
+
+- [Aplanar PDF](./flatten-pdf): aplana formularios y anotaciones sin tocar las fuentes
+- [Rasterizar PDF](./rasterize-pdf): convierte a PDF basado en imágenes en lugar de contornos vectoriales
+- [Comprimir PDF](./compress-pdf): reduce el tamaño del archivo tras convertir a contornos
+- [PDF a PDF/A](./pdf-to-pdfa): convierte para archivo tras asegurar la independencia de fuentes
diff --git a/docs/es/tools/form-creator.md b/docs/es/tools/form-creator.md
new file mode 100644
index 00000000..49104b01
--- /dev/null
+++ b/docs/es/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Crear formulario PDF
+description: Crea formularios PDF rellenables con campos de texto, casillas, menús desplegables, botones de opción y más, arrastrando y soltando.
+---
+
+# Crear formulario PDF
+
+Diseña formularios PDF rellenables profesionales desde cero o añadiendo campos a un PDF existente. El editor visual te permite arrastrar y soltar elementos de formulario (campos de texto, casillas, menús desplegables, botones de opción, campos de firma y más) directamente sobre las vistas previas de página. Configura las propiedades de los campos, define reglas de visibilidad condicional y exporta un formulario PDF totalmente interactivo.
+
+## Cómo funciona
+
+1. Sube un PDF existente **o** haz clic en **Crear PDF en blanco** para empezar desde cero.
+2. Si creas un PDF en blanco, selecciona un tamaño de página (Letter, A4, A5, Legal, Tabloid, A3 o dimensiones personalizadas).
+3. Se abre el editor de formularios con una barra de herramientas de tipos de campo y un área de vista previa de la página.
+4. Selecciona un tipo de campo en la barra de herramientas y luego haz clic en la página para colocarlo.
+5. Arrastra los campos para reposicionarlos. Usa los tiradores para ajustar las dimensiones.
+6. Haz clic en un campo para abrir el panel de propiedades, donde puedes definir el nombre del campo, el valor predeterminado, el tamaño de fuente, la alineación y más.
+7. Navega entre páginas con los controles de página.
+8. Haz clic en **Descargar formulario PDF** para descargar el PDF rellenable terminado.
+
+## Características
+
+- Colocación de campos arrastrando y soltando, con tiradores visuales para redimensionar
+- Tipos de campo: entrada de texto, texto multilínea, casilla, menú desplegable, botón de opción, firma, fecha, número y código de barras
+- Panel de propiedades para configurar el nombre, la etiqueta, el valor predeterminado, el tamaño de fuente, el color, la alineación y la validación de cada campo
+- Acciones de campo y reglas de visibilidad condicional (mostrar u ocultar campos según los valores de otros campos)
+- Navegación por páginas para formularios de varias páginas
+- Extracción de campos existentes: detecta e importa automáticamente los campos de formulario de los PDF subidos
+- Compatible tanto con PDF subidos como con páginas en blanco como lienzo del formulario
+- Varios tamaños de página predefinidos, además de dimensiones personalizadas
+- Generación de códigos de barras con bwip-js
+- Gestión de grupos de botones de opción
+
+## Opciones
+
+**Tamaños de página predefinidos (para PDF en blanco):**
+
+- 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)
+- Custom (indica ancho y alto)
+
+**Propiedades de los campos (varían según el tipo de campo):**
+
+- Nombre, etiqueta y texto de marcador
+- Valor predeterminado
+- Familia, tamaño y color de la fuente
+- Alineación del texto (izquierda, centro, derecha)
+- Interruptor de campo obligatorio
+- Interruptor de solo lectura
+- Longitud máxima de los campos de texto
+- Lista de opciones para menús desplegables y botones de opción
+- Acciones de visibilidad condicional
+
+## Casos de uso
+
+- Crear formularios de incorporación de empleados con campos de texto para datos personales y casillas para aceptar políticas
+- Crear cuestionarios de admisión de clientes con menús desplegables para elegir el servicio
+- Diseñar formularios de pedido con campos calculados e identificadores de código de barras
+- Crear listas de inspección con botones de opción para valoraciones de aprobado o suspenso
+- Crear encuestas con preguntas de seguimiento condicionales que aparecen según las respuestas
+
+## Consejos
+
+- Si subes un PDF existente, la herramienta intentará extraer los campos de formulario que ya contenga, para que puedas editarlos o añadir otros.
+- Usa la función de grupo de botones de opción para crear selecciones mutuamente excluyentes. Los campos del mismo grupo comparten un nombre de grupo.
+- Prueba tu formulario descargándolo y abriéndolo en [Form Filler](./form-filler) para verificar el comportamiento de los campos.
+
+## Herramientas relacionadas
+
+- [Form Filler](./form-filler)
+- [Firmar PDF](./sign-pdf)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/es/tools/form-filler.md b/docs/es/tools/form-filler.md
new file mode 100644
index 00000000..50a8e652
--- /dev/null
+++ b/docs/es/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Rellenar formularios PDF
+description: Rellena formularios PDF, incluidos los formularios XFA, directamente en tu navegador con un visor integrado.
+---
+
+# Rellenar formularios PDF
+
+Abre un PDF con campos de formulario y rellénalo directamente en un visor integrado. La herramienta admite tanto los campos AcroForm estándar como los formularios XFA (XML Forms Architecture) heredados. Cuando termines, descarga la versión rellenada con un solo clic.
+
+## Cómo funciona
+
+1. Sube un PDF que contenga campos de formulario.
+2. El documento se abre en un visor de PDF integrado que muestra los campos de formulario como entradas interactivas.
+3. Haz clic en los campos de texto, casillas, menús desplegables y botones de opción para rellenarlos.
+4. Haz clic en **Guardar y descargar formulario rellenado** para obtener el PDF completado.
+
+## Características
+
+- Visor PDF.js integrado con interacción completa con los campos de formulario
+- Compatibilidad con los campos AcroForm estándar (entradas de texto, casillas, menús desplegables, botones de opción)
+- Compatibilidad con formularios XFA, el formato heredado basado en XML
+- Ajuste automático del tamaño del visor según las dimensiones de la página
+- Visualización del archivo con su nombre y tamaño
+
+## Opciones
+
+No hay opciones de configuración adicionales. Sube el formulario, rellénalo y descárgalo.
+
+## Casos de uso
+
+- Completar formularios de impuestos, solicitudes de seguros o trámites con la administración
+- Rellenar solicitudes de empleo recibidas como archivos PDF adjuntos
+- Completar formularios de alta de proveedores o cuestionarios para proveedores
+- Dar el visto bueno a listas de cumplimiento normativo con casillas
+- Rellenar formularios de admisión médica antes de una cita
+
+## Consejos
+
+- Los formularios XFA son un formato heredado que solo admiten algunos visores de PDF. Si abres un PDF XFA en Chrome o en la mayoría de otras herramientas y ves páginas en blanco, es porque esos visores no admiten XFA. El Form Filler de BentoPDF y Firefox sí gestionan XFA correctamente.
+- Para PDF sin campos de formulario, usa primero la herramienta [Crear formulario PDF](./form-creator) para añadir campos y luego rellénalos aquí.
+- El visor ajusta su tamaño automáticamente a las dimensiones de página del PDF.
+
+## Herramientas relacionadas
+
+- [Crear formulario PDF](./form-creator)
+- [Firmar PDF](./sign-pdf)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/es/tools/header-footer.md b/docs/es/tools/header-footer.md
new file mode 100644
index 00000000..3d1e3fd7
--- /dev/null
+++ b/docs/es/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Encabezado y pie de página
+description: Añade texto personalizable de encabezado y pie de página a las páginas del PDF, con variables dinámicas de número de página.
+---
+
+# Encabezado y pie de página
+
+Añade texto en seis posiciones de las páginas de tu PDF: encabezado izquierdo, central y derecho, y pie de página izquierdo, central y derecho. La herramienta admite variables dinámicas para el número de página y el total de páginas, de modo que puedes crear plantillas como "Página 3 de 10" que se actualizan automáticamente en cada página.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Aparece el panel de opciones con los controles de formato y seis campos de texto.
+3. Escribe el texto que quieras en cualquiera de las posiciones de encabezado o pie de página.
+4. Usa los marcadores `{page}` y `{total}` para la numeración dinámica de páginas.
+5. Ajusta el tamaño y el color de la fuente y, si quieres, limita el rango de páginas.
+6. Haz clic en **Agregar encabezado y pie de página** para procesar y descargar.
+
+## Opciones
+
+- **Rango de páginas**: limita opcionalmente qué páginas llevan encabezado y pie de página. Déjalo vacío para aplicarlo a todas. Formato: "1-3, 5" (rangos separados por comas).
+- **Tamaño de fuente**: entre 6 y 24 puntos. El valor predeterminado es 10.
+- **Color de fuente**: elige cualquier color con el selector de color.
+- **Encabezado izquierda / centro / derecha**: campos de texto para la parte superior de cada página.
+- **Pie de página izquierda / centro / derecha**: campos de texto para la parte inferior de cada página.
+
+## Características
+
+- Seis posiciones de texto independientes por página
+- Variable dinámica `{page}` que inserta el número de la página actual
+- Variable dinámica `{total}` que inserta el total de páginas
+- Filtro por rango de páginas para elegir páginas concretas
+- Tamaño y color de fuente personalizables
+- Fuente Helvetica para un resultado limpio y profesional
+
+## Casos de uso
+
+- Añadir "Página {page} de {total}" en el centro del pie de página de un informe
+- Poner el nombre de la empresa en el encabezado izquierdo y la fecha del documento en el derecho
+- Añadir avisos de confidencialidad al pie de página de documentos legales
+- Estampar números de revisión del documento en rangos de páginas concretos
+
+## Consejos
+
+- Combina `{page}` y `{total}` en un solo campo para formatos como "Página {page} de {total}" o "{page}/{total}".
+- Puedes dejar vacíos la mayoría de los campos y rellenar solo las posiciones que necesites. Los campos vacíos simplemente se omiten.
+- Para encabezados más complejos con imágenes o logotipos, considera usar la herramienta [Añadir marca de agua](./add-watermark) colocada en la parte superior de la página.
+
+## Herramientas relacionadas
+
+- [Números de página](./page-numbers)
+- [Añadir marca de agua](./add-watermark)
+- [Numeración Bates](./bates-numbering)
diff --git a/docs/es/tools/heic-to-pdf.md b/docs/es/tools/heic-to-pdf.md
new file mode 100644
index 00000000..a8bcb2ee
--- /dev/null
+++ b/docs/es/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC a PDF
+description: Convierte imágenes HEIC y HEIF de iPhone y iPad a PDF directamente en tu navegador.
+---
+
+# HEIC a PDF
+
+Convierte imágenes HEIC/HEIF a PDF. HEIC es el formato de foto predeterminado en iPhone y iPad desde iOS 11. Esta herramienta te permite convertir esas fotos en PDF sin instalar software de escritorio ni subir archivos a un servidor.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :------ | :---------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos HEIC/HEIF.
+2. Revisa la lista de archivos y quita los que no quieras.
+3. Haz clic en **Convertir a PDF**. El resultado se descarga como `from_heic.pdf`.
+
+Cada archivo HEIC se decodifica con la biblioteca heic2any, que lo convierte a PNG con una calidad del 92 %. Después, el PNG se incrusta en el PDF con pdf-lib, con cada imagen en su propia página y a resolución completa.
+
+## Opciones
+
+Esta herramienta no ofrece ajustes adicionales. Las imágenes HEIC se convierten a PNG en alta calidad (0.92) antes de incrustarse.
+
+## Casos de uso
+
+- Crear un PDF a partir de fotos de iPhone para adjuntarlo a un parte de seguro o a un informe
+- Convertir fotos HEIC de un anuncio inmobiliario en un único documento imprimible
+- Convertir capturas de pantalla de iPad (formato HEIF) en un PDF para compartir
+- Convertir por lotes las fotos de un viaje para un diario de viaje
+
+## Consejos
+
+- La decodificación de HEIC se realiza por completo en el navegador con WebAssembly. La primera conversión puede tardar un momento mientras se carga el decodificador.
+- Si necesitas combinar HEIC con otros formatos de imagen (JPG, PNG, etc.), usa la herramienta [Imágenes a PDF](./image-to-pdf), que admite HEIC junto con todos los demás formatos.
+- Los archivos HEIC de iPhone suelen contener datos EXIF, incluidas coordenadas GPS. El PDF resultante no conserva estos metadatos.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
+- [PNG a PDF](./png-to-pdf)
diff --git a/docs/es/tools/image-to-pdf.md b/docs/es/tools/image-to-pdf.md
new file mode 100644
index 00000000..5b780ed3
--- /dev/null
+++ b/docs/es/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Imágenes a PDF
+description: Convierte JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD y más de 10 formatos de imagen en un único archivo PDF.
+---
+
+# Imágenes a PDF
+
+El conversor universal de imágenes a PDF. Sube imágenes en prácticamente cualquier formato y combínalas en un único documento PDF. Cada imagen ocupa su propia página, con el tamaño de las dimensiones originales.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Es la compatibilidad de formatos más amplia de todos los conversores de imágenes de BentoPDF. Si solo necesitas un formato concreto, usa en su lugar una de las herramientas dedicadas.
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos de imagen. Puedes seleccionar varios a la vez.
+2. Revisa la lista de archivos. Quita los que no quieras con el icono de papelera, o haz clic en **Agregar Más Archivos** para incluir más imágenes.
+3. Elige un nivel de **Calidad del PDF** en el menú desplegable.
+4. Haz clic en **Convertir a PDF**. La herramienta procesa las imágenes con el motor PyMuPDF y descarga el resultado como `images_to_pdf.pdf`.
+
+## Opciones
+
+**Calidad del PDF** controla la compresión que se aplica al incrustar las imágenes en el PDF:
+
+- **Calidad alta**: compresión mínima, mayor tamaño de archivo. Ideal para impresión o archivo.
+- **Calidad media** (predeterminado): compresión equilibrada. Buena para la mayoría de los usos.
+- **Calidad baja**: compresión agresiva, el menor tamaño de archivo. Adecuada para correo electrónico o para compartir rápido.
+
+Los archivos HEIC y WebP se convierten automáticamente a PNG antes de incrustarse. Esto ocurre de forma transparente y no requiere pasos adicionales.
+
+## Casos de uso
+
+- Combinar en un solo PDF recibos o documentos escaneados con la cámara del móvil
+- Crear un portafolio de fotos o un lookbook a partir de imágenes en distintos formatos
+- Convertir fotos de iPhone (HEIC) en un PDF para compartir, sin instalar software de escritorio
+- Reunir maquetas de diseño a partir de exportaciones PSD y capturas de pantalla en un entregable para el cliente
+- Archivar una carpeta de formatos de imagen antiguos (PNM, JXR, JP2) como un único PDF
+
+## Consejos
+
+- El orden de las imágenes en el PDF coincide con el orden de la lista de archivos. Súbelas en la secuencia que quieras.
+- Para obtener el menor tamaño de archivo posible, elige Calidad baja. La diferencia visual suele ser insignificante en escaneos con mucho texto.
+- Si solo tienes un formato de imagen, los conversores dedicados (JPG a PDF, PNG a PDF, etc.) ofrecen el mismo resultado con una interfaz más sencilla.
+
+## Herramientas relacionadas
+
+- [JPG a PDF](./jpg-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [HEIC a PDF](./heic-to-pdf)
+- [WebP a PDF](./webp-to-pdf)
diff --git a/docs/es/tools/index.md b/docs/es/tools/index.md
new file mode 100644
index 00000000..da72c1b4
--- /dev/null
+++ b/docs/es/tools/index.md
@@ -0,0 +1,183 @@
+# Referencia de herramientas
+
+BentoPDF ofrece **más de 130 herramientas** para trabajar con PDF. Todas las herramientas se ejecutan por completo en tu navegador: tus archivos nunca salen de tu dispositivo.
+
+---
+
+## Editar y anotar
+
+Modifica, marca y mejora tus documentos PDF con un completo conjunto de herramientas de edición.
+
+
+
+- [**Editor de PDF**](./edit-pdf): anota, resalta, censura, comenta, añade formas e imágenes, busca y visualiza PDF.
+- [**Editar marcadores**](./bookmark): añade, edita, importa, elimina y extrae marcadores de PDF.
+- [**Tabla de contenido**](./table-of-contents): genera una página de tabla de contenido a partir de los marcadores del PDF.
+- [**Números de página**](./page-numbers): inserta números de página en tu documento.
+- [**Añadir etiquetas de página**](./add-page-labels): aplica etiquetas de página de PDF con números romanos, prefijos e inicios personalizados.
+- [**Numeración Bates**](./bates-numbering): añade números Bates secuenciales en uno o varios archivos PDF.
+- [**Añadir marca de agua**](./add-watermark): estampa texto o una imagen sobre las páginas de tu PDF.
+- [**Encabezado y pie de página**](./header-footer): añade texto en la parte superior e inferior de las páginas.
+- [**Invertir colores**](./invert-colors): crea una versión en modo oscuro de tu PDF.
+- [**Efecto escáner**](./scanner-effect): haz que tu PDF parezca un documento escaneado.
+- [**Ajustar colores**](./adjust-colors): afina el brillo, el contraste, la saturación y más.
+- [**Color de fondo**](./background-color): cambia el color de fondo de tu PDF.
+- [**Cambiar color del texto**](./text-color): cambia el color del texto de tu PDF.
+- [**Firmar PDF**](./sign-pdf): dibuja, escribe o sube tu firma.
+- [**Añadir sellos**](./add-stamps): añade sellos de imagen a tu PDF con la barra de herramientas de anotaciones.
+- [**Eliminar anotaciones**](./remove-annotations): quita comentarios, resaltados y enlaces.
+- [**Recortar PDF**](./crop-pdf): recorta los márgenes de todas las páginas de tu PDF.
+- [**Rellenador de formularios PDF**](./form-filler): rellena formularios directamente en el navegador. También admite formularios XFA.
+- [**Crear formulario PDF**](./form-creator): crea formularios PDF rellenables con campos de texto arrastrando y soltando.
+- [**Eliminar páginas en blanco**](./remove-blank-pages): detecta y elimina automáticamente las páginas en blanco.
+
+
+
+---
+
+## Convertir a PDF
+
+Convierte imágenes, documentos, libros electrónicos y otros formatos de archivo en PDF.
+
+
+
+- [**Imágenes a PDF**](./image-to-pdf): convierte JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP y más a PDF.
+- [**JPG a PDF**](./jpg-to-pdf): crea un PDF a partir de una o más imágenes JPG.
+- [**PNG a PDF**](./png-to-pdf): crea un PDF a partir de una o más imágenes PNG.
+- [**WebP a PDF**](./webp-to-pdf): crea un PDF a partir de una o más imágenes WebP.
+- [**SVG a PDF**](./svg-to-pdf): crea un PDF a partir de una o más imágenes SVG.
+- [**BMP a PDF**](./bmp-to-pdf): crea un PDF a partir de una o más imágenes BMP.
+- [**HEIC a PDF**](./heic-to-pdf): crea un PDF a partir de una o más imágenes HEIC.
+- [**TIFF a PDF**](./tiff-to-pdf): crea un PDF a partir de una o más imágenes TIFF.
+- [**Texto a PDF**](./txt-to-pdf): convierte un archivo de texto plano en un PDF.
+- [**Markdown a PDF**](./markdown-to-pdf): convierte Markdown a PDF con vista previa en vivo y resaltado de sintaxis.
+- [**JSON a PDF**](./json-to-pdf): convierte archivos JSON a formato PDF.
+- [**ODT a PDF**](./odt-to-pdf): convierte archivos ODT (OpenDocument Text) a PDF.
+- [**CSV a PDF**](./csv-to-pdf): convierte hojas de cálculo CSV a PDF.
+- [**RTF a PDF**](./rtf-to-pdf): convierte documentos RTF (Rich Text Format) a PDF.
+- [**Word a PDF**](./word-to-pdf): convierte documentos de Word (DOCX, DOC, ODT) a PDF.
+- [**Excel a PDF**](./excel-to-pdf): convierte hojas de cálculo de Excel (XLSX, XLS, ODS) a PDF.
+- [**PowerPoint a PDF**](./powerpoint-to-pdf): convierte presentaciones de PowerPoint (PPTX, PPT, ODP) a PDF.
+- [**XPS a PDF**](./xps-to-pdf): convierte documentos XPS/OXPS a PDF.
+- [**MOBI a PDF**](./mobi-to-pdf): convierte libros electrónicos MOBI a PDF.
+- [**EPUB a PDF**](./epub-to-pdf): convierte libros electrónicos EPUB a PDF.
+- [**FB2 a PDF**](./fb2-to-pdf): convierte libros electrónicos FictionBook (FB2) a PDF.
+- [**CBZ a PDF**](./cbz-to-pdf): convierte archivos de cómics (CBZ/CBR) a PDF.
+- [**WPD a PDF**](./wpd-to-pdf): convierte documentos de WordPerfect (WPD) a PDF.
+- [**WPS a PDF**](./wps-to-pdf): convierte documentos de WPS Office a PDF.
+- [**XML a PDF**](./xml-to-pdf): convierte documentos XML a PDF.
+- [**ODG a PDF**](./odg-to-pdf): convierte OpenDocument Graphics (ODG) a PDF.
+- [**ODS a PDF**](./ods-to-pdf): convierte OpenDocument Spreadsheet (ODS) a PDF.
+- [**ODP a PDF**](./odp-to-pdf): convierte OpenDocument Presentation (ODP) a PDF.
+- [**PUB a PDF**](./pub-to-pdf): convierte Microsoft Publisher (PUB) a PDF.
+- [**VSD a PDF**](./vsd-to-pdf): convierte Microsoft Visio (VSD, VSDX) a PDF.
+- [**PSD a PDF**](./psd-to-pdf): convierte archivos de Adobe Photoshop (PSD) a PDF.
+- [**Correo electrónico a PDF**](./email-to-pdf): convierte archivos de correo (EML, MSG) a formato PDF.
+
+
+
+---
+
+## Convertir desde PDF
+
+Extrae el contenido de los PDF a imágenes, documentos y formatos de datos.
+
+
+
+- [**PDF a JPG**](./pdf-to-jpg): convierte cada página del PDF en una imagen JPG.
+- [**PDF a PNG**](./pdf-to-png): convierte cada página del PDF en una imagen PNG.
+- [**PDF a WebP**](./pdf-to-webp): convierte cada página del PDF en una imagen WebP.
+- [**PDF a BMP**](./pdf-to-bmp): convierte cada página del PDF en una imagen BMP.
+- [**PDF a TIFF**](./pdf-to-tiff): convierte cada página del PDF en una imagen TIFF.
+- [**PDF a CBZ**](./pdf-to-cbz): convierte un PDF en un CBZ (archivo de cómic) para lectores de cómics y Calibre.
+- [**PDF a SVG**](./pdf-to-svg): convierte cada página del PDF en un gráfico vectorial escalable.
+- [**PDF a CSV**](./pdf-to-csv): extrae tablas de un PDF y las convierte a formato CSV.
+- [**PDF a Excel**](./pdf-to-excel): extrae tablas de un PDF y las convierte a Excel (XLSX).
+- [**PDF a escala de grises**](./pdf-to-greyscale): convierte todos los colores a blanco y negro.
+- [**PDF a JSON**](./pdf-to-json): convierte archivos PDF a formato JSON.
+- [**PDF a Word**](./pdf-to-word): convierte archivos PDF en documentos de Word editables.
+- [**Extraer imágenes**](./extract-images): extrae todas las imágenes incrustadas de tus archivos PDF.
+- [**PDF a Markdown**](./pdf-to-markdown): convierte el texto y las tablas de un PDF a formato Markdown.
+- [**Preparar PDF para IA**](./prepare-pdf-for-ai): extrae el contenido del PDF como JSON de LlamaIndex para flujos RAG/LLM.
+- [**PDF a texto**](./pdf-to-text): extrae el texto de archivos PDF y guárdalo como texto plano.
+- [**Extraer tablas**](./extract-tables): extrae tablas de PDF como CSV, JSON o Markdown.
+
+
+
+---
+
+## Organizar y gestionar
+
+Reorganiza, combina, divide y gestiona las páginas y los archivos de tus PDF.
+
+
+
+- [**Creador de flujos de trabajo PDF**](./pdf-workflow): crea flujos de procesamiento de PDF personalizados con un editor visual de nodos.
+- [**Multiherramienta PDF**](./pdf-multi-tool): editor de PDF completo con gestión de páginas.
+- [**OCR PDF**](./ocr-pdf): haz que un PDF se pueda buscar y copiar.
+- [**Combinar PDF**](./merge-pdf): une varios PDF en un solo archivo.
+- [**Alternar y mezclar páginas**](./alternate-merge): combina PDF alternando las páginas de cada uno.
+- [**Intercalar escaneo a doble cara**](./duplex-collate): reordena los bloques de escaneo de anverso y reverso en la secuencia de páginas correcta.
+- [**Organizar y duplicar**](./organize-pdf): duplica, reordena y elimina páginas.
+- [**Añadir archivos adjuntos**](./add-attachments): incrusta uno o más archivos en tu PDF.
+- [**Extraer archivos adjuntos**](./extract-attachments): extrae todos los archivos incrustados de uno o varios PDF como un ZIP.
+- [**Editar archivos adjuntos**](./edit-attachments): consulta o elimina los archivos adjuntos de tu PDF.
+- [**Capas PDF (OCG)**](./pdf-layers): consulta, activa, añade y elimina capas OCG de tu PDF.
+- [**Dividir PDF**](./split-pdf): extrae un rango de páginas a un nuevo PDF.
+- [**Dividir páginas**](./divide-pages): divide las páginas horizontal o verticalmente.
+- [**Extraer páginas**](./extract-pages): guarda una selección de páginas como archivos nuevos.
+- [**Eliminar páginas**](./delete-pages): quita páginas concretas de tu documento.
+- [**Añadir página en blanco**](./add-blank-page): inserta una página vacía en cualquier lugar de tu PDF.
+- [**Invertir páginas**](./reverse-pages): invierte el orden de todas las páginas de tu documento.
+- [**Rotar PDF**](./rotate-pdf): gira las páginas en incrementos de 90 grados.
+- [**Rotar con grados personalizados**](./rotate-custom): rota las páginas con cualquier ángulo personalizado.
+- [**PDF N-Up**](./n-up-pdf): organiza varias páginas en una sola hoja.
+- [**Folleto PDF**](./pdf-booklet): reorganiza las páginas para imprimir folletos a doble cara.
+- [**Combinar en una sola página**](./combine-single-page): une todas las páginas en un único desplazamiento continuo.
+- [**Ver metadatos**](./view-metadata): inspecciona las propiedades ocultas de tu PDF.
+- [**Editar metadatos**](./edit-metadata): cambia el autor, el título y otras propiedades.
+- [**PDF a ZIP**](./pdf-to-zip): empaqueta varios archivos PDF en un archivo ZIP.
+- [**Comparar PDF**](./compare-pdfs): compara dos PDF lado a lado.
+- [**Posterizar PDF**](./posterize-pdf): divide una página grande en varias páginas más pequeñas.
+
+
+
+---
+
+## Optimizar y reparar
+
+Comprime, corrige y optimiza tus PDF para mejorar el rendimiento y la compatibilidad.
+
+
+
+- [**Comprimir PDF**](./compress-pdf): reduce el tamaño del archivo de tu PDF.
+- [**PDF a PDF/A**](./pdf-to-pdfa): convierte un PDF a PDF/A para archivo a largo plazo.
+- [**Corregir tamaño de página**](./fix-page-size): unifica todas las páginas en un mismo tamaño.
+- [**Linealizar PDF**](./linearize-pdf): optimiza el PDF para verlo rápido en la web.
+- [**Dimensiones de página**](./page-dimensions): analiza el tamaño, la orientación y las unidades de las páginas.
+- [**Eliminar restricciones**](./remove-restrictions): quita la protección con contraseña y las restricciones de seguridad.
+- [**Reparar PDF**](./repair-pdf): recupera datos de archivos PDF corruptos o dañados.
+- [**Rasterizar PDF**](./rasterize-pdf): convierte el PDF en un PDF basado en imágenes. Aplana capas y elimina el texto seleccionable.
+- [**Enderezar PDF**](./deskew-pdf): endereza automáticamente las páginas escaneadas inclinadas con OpenCV.
+- [**Fuente a contorno**](./font-to-outline): convierte todas las fuentes en contornos vectoriales para un renderizado uniforme.
+
+
+
+---
+
+## Proteger PDF
+
+Protege, cifra y controla el acceso a tus documentos PDF.
+
+
+
+- [**Cifrar PDF**](./protect-pdf): bloquea tu PDF añadiendo una contraseña.
+- [**Sanear PDF**](./sanitize-pdf): elimina metadatos, anotaciones, scripts y más.
+- [**Descifrar PDF**](./unlock-pdf): desbloquea el PDF quitando la protección con contraseña.
+- [**Aplanar PDF**](./flatten-pdf): hace que los campos de formulario y las anotaciones no se puedan editar.
+- [**Eliminar metadatos**](./remove-metadata): quita los datos ocultos de tu PDF.
+- [**Cambiar permisos**](./change-permissions): establece o cambia los permisos de usuario de un PDF.
+- [**Firma digital**](./digital-sign-pdf): añade una firma digital criptográfica con certificados X.509.
+- [**Validar firma**](./validate-signature-pdf): verifica las firmas digitales y consulta los detalles del certificado.
+
+
diff --git a/docs/es/tools/invert-colors.md b/docs/es/tools/invert-colors.md
new file mode 100644
index 00000000..5817adfb
--- /dev/null
+++ b/docs/es/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Invertir colores
+description: Invierte todos los colores de tu PDF para crear una versión en modo oscuro de cualquier documento.
+---
+
+# Invertir colores
+
+Convierte cada color de tu PDF en su inverso. Los fondos blancos pasan a negro, el texto negro pasa a blanco y el resto de los colores cambian a sus valores complementarios. Es la forma más rápida de crear una versión en "modo oscuro" de cualquier PDF.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Haz clic en **Invertir colores** para procesarlo.
+3. El PDF invertido se descarga automáticamente.
+
+No hay ajustes adicionales. La herramienta renderiza cada página como imagen, invierte el color de todos los píxeles y reensambla el resultado en un nuevo PDF.
+
+## Características
+
+- Inversión de color con un solo clic en todas las páginas
+- Procesa todas las páginas del documento
+- Mantiene las dimensiones y el diseño originales de las páginas
+- Funciona con cualquier PDF, sea cual sea su contenido (texto, imágenes o mixto)
+
+## Casos de uso
+
+- Crear versiones en modo oscuro de libros de texto o manuales para leer cómodamente de noche
+- Preparar versiones de alto contraste de documentos por motivos de accesibilidad
+- Invertir documentos escaneados que se capturaron con una exposición incorrecta
+- Generar versiones en negativo de PDF con muchas imágenes para análisis visual
+
+## Consejos
+
+- Como la herramienta rasteriza las páginas para aplicar el efecto, el resultado está basado en imágenes. El texto ya no se podrá seleccionar ni buscar. Si necesitas texto buscable tras la inversión, pasa el resultado por una herramienta de OCR.
+- Para ajustes de color más precisos (brillo, contraste, saturación), usa en su lugar la herramienta [Ajustar colores](./adjust-colors).
+- Los PDF grandes con muchas páginas pueden tardar más en procesarse, ya que cada página se renderiza e invierte individualmente.
+
+## Herramientas relacionadas
+
+- [Ajustar colores](./adjust-colors)
+- [Color de fondo](./background-color)
+- [Efecto escáner](./scanner-effect)
diff --git a/docs/es/tools/jpg-to-pdf.md b/docs/es/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..143a4560
--- /dev/null
+++ b/docs/es/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG a PDF
+description: Convierte una o más imágenes JPG, JPEG y JPEG 2000 en un único archivo PDF directamente en tu navegador.
+---
+
+# JPG a PDF
+
+Convierte imágenes JPG en un PDF limpio. Sube un archivo o varios JPG a la vez: cada imagen se convierte en una página a tamaño completo del documento resultante.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos JPG. Se admite la selección múltiple.
+2. Revisa los archivos subidos. Usa el icono de papelera para quitar archivos individuales, o haz clic en **Agregar Más Archivos** para añadir más a la lista.
+3. Selecciona un nivel de **Calidad del PDF**.
+4. Haz clic en **Convertir a PDF**. La herramienta comprime las imágenes según el ajuste de calidad, las convierte con el motor PyMuPDF y descarga `from_jpgs.pdf`.
+
+## Opciones
+
+**Calidad del PDF** ajusta la compresión que se aplica a cada imagen antes de incrustarla en el PDF:
+
+- **Calidad alta**: conserva el máximo detalle. Úsala para fotografía o impresión.
+- **Calidad media** (predeterminado): un buen equilibrio entre nitidez y tamaño de archivo.
+- **Calidad baja**: compresión agresiva para obtener el resultado más pequeño.
+
+## Casos de uso
+
+- Convertir documentos escaneados guardados como JPG en un único PDF para entregar
+- Empaquetar fotos de productos en un catálogo para clientes
+- Convertir imágenes médicas o de satélite en JPEG 2000 en un PDF portátil
+- Crear un álbum de fotos imprimible a partir de exportaciones de la cámara
+
+## Consejos
+
+- Los archivos JPEG 2000 (`.jp2`, `.jpx`) son totalmente compatibles, no solo el JPEG estándar. Es útil para imágenes médicas y datos geoespaciales.
+- Si tus JPG provienen de la cámara de un móvil, la Calidad media suele producir un archivo entre un 40 y un 60 % más pequeño que la Calidad alta, sin diferencia visible en pantalla.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [WebP a PDF](./webp-to-pdf)
diff --git a/docs/es/tools/json-to-pdf.md b/docs/es/tools/json-to-pdf.md
new file mode 100644
index 00000000..4ff3fa7a
--- /dev/null
+++ b/docs/es/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON a PDF
+description: Reconstruye archivos PDF a partir del formato JSON de BentoPDF. Convierte las exportaciones JSON de vuelta en sus documentos PDF originales.
+---
+
+# JSON a PDF
+
+Reconstruye documentos PDF a partir de archivos JSON creados previamente con la herramienta **PDF a JSON** de BentoPDF. Es una herramienta de conversión de ida y vuelta: toma la representación JSON estructurada de un PDF y reconstruye el documento original.
+
+::: warning
+Esta herramienta solo acepta archivos JSON generados por el conversor PDF a JSON de BentoPDF. No admite archivos JSON estándar de APIs, bases de datos u otras herramientas.
+:::
+
+## Formatos compatibles
+
+| Entrada | Descripción |
+| :------ | :----------------------------------------------------------------- |
+| `.json` | Archivos JSON exportados con la herramienta PDF a JSON de BentoPDF |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta uno o más archivos JSON.
+2. La lista de archivos muestra cada archivo seleccionado con su tamaño.
+3. Haz clic en **Convertir a PDF**. La herramienta procesa todos los archivos con un Web Worker y el motor CPDF.
+4. El resultado se descarga como `jsons-to-pdf.zip`, con un PDF por cada archivo JSON de entrada.
+
+La conversión se ejecuta en un Web Worker en segundo plano, así que la interfaz sigue respondiendo incluso con archivos grandes.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. La estructura del JSON determina por completo el PDF resultante.
+
+## Resultado
+
+Al convertir varios archivos JSON, los resultados se entregan en un archivo ZIP. Cada PDF lleva el nombre de su JSON de origen (por ejemplo, `report.json` pasa a ser `report.pdf`).
+
+## Casos de uso
+
+- Restaurar PDF desde una copia de seguridad o un flujo de archivo basados en JSON
+- Pasar un PDF a JSON para inspeccionarlo y volver a convertirlo a PDF
+- Reconstruir documentos tras modificar programáticamente la estructura del JSON
+- Verificar que una exportación de PDF a JSON capturó todo el contenido del documento, convirtiéndolo de nuevo
+
+## Consejos
+
+- Si necesitas convertir datos JSON arbitrarios (como respuestas de API o archivos de configuración) en un PDF con formato, la herramienta [Texto a PDF](./txt-to-pdf) es más adecuada. Pega el JSON como texto y se mostrará con el formato correcto.
+- El motor CPDF WebAssembly debe estar disponible para que esta herramienta funcione. Las instancias autoalojadas necesitan tener configurados los archivos WASM de CPDF.
+
+## Herramientas relacionadas
+
+- [Texto a PDF](./txt-to-pdf)
+- [Markdown a PDF](./markdown-to-pdf)
+- [CSV a PDF](./csv-to-pdf)
diff --git a/docs/es/tools/linearize-pdf.md b/docs/es/tools/linearize-pdf.md
new file mode 100644
index 00000000..369b6a3c
--- /dev/null
+++ b/docs/es/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Linealizar PDF
+description: Optimiza archivos PDF para verlos rápido en la web con carga progresiva. También conocido como optimización "Fast Web View".
+---
+
+# Linealizar PDF
+
+La linealización reestructura un PDF para que la primera página pueda mostrarse antes de que se haya descargado todo el archivo. Adobe lo llama "Fast Web View". Si alojas PDF en un sitio web o los sirves desde un portal de documentos, la linealización hace que se abran de forma notablemente más rápida.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF.
+2. Haz clic en **Linealizar PDF**.
+3. Descarga los resultados como un archivo ZIP con todos los archivos linealizados.
+
+No hay ajustes que configurar. La herramienta usa la opción `--linearize` de QPDF, que reorganiza la estructura interna del PDF sin alterar su contenido visual.
+
+## Qué hace la linealización
+
+- Reordena los objetos del PDF para que los datos de la primera página aparezcan al principio del archivo
+- Añade un diccionario de linealización y tablas de pistas para que los visores sepan dónde encontrar cada página
+- Habilita las solicitudes por rangos de bytes: un navegador puede obtener solo la primera página sin descargar todo el archivo
+- Limpia la tabla de referencias cruzadas para un acceso aleatorio eficiente
+
+## Características
+
+- Procesamiento por lotes de varios PDF en una sola operación
+- El resultado conserva todo el contenido, las fuentes, las imágenes y los elementos interactivos
+- Usa QPDF (WebAssembly) para una linealización fiable y conforme a los estándares
+- Los resultados se empaquetan en un ZIP para descargarlos fácilmente
+
+## Casos de uso
+
+- Alojar informes PDF en un sitio web donde los usuarios esperan ver la página al instante
+- Incrustar PDF en aplicaciones web con visores en el navegador
+- Publicar catálogos o manuales en PDF a los que se accede con conexiones móviles lentas
+- Preparar documentos para redes de distribución de contenido (CDN) que admiten el servicio por rangos de bytes
+
+## Consejos
+
+- Linealiza cuando hayas terminado el resto de las ediciones. Cualquier modificación posterior (combinar, añadir páginas) romperá la linealización.
+- Combínalo con Comprimir PDF para obtener los PDF más pequeños y de carga más rápida posible.
+- La linealización añade un pequeño aumento al tamaño del archivo (normalmente menos del 1 %).
+
+## Herramientas relacionadas
+
+- [Comprimir PDF](./compress-pdf): reduce el tamaño del archivo antes de linealizar
+- [Reparar PDF](./repair-pdf): corrige problemas estructurales que impiden la linealización
+- [Eliminar metadatos](./remove-metadata): quita los metadatos antes de publicar en línea
diff --git a/docs/es/tools/markdown-to-pdf.md b/docs/es/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..464e789f
--- /dev/null
+++ b/docs/es/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown a PDF
+description: Escribe o pega Markdown y expórtalo como un PDF con formato profesional, con vista previa en vivo y resaltado de sintaxis.
+---
+
+# Markdown a PDF
+
+Un editor de Markdown completo con vista previa en vivo y exportación a PDF con un clic. Escribe desde cero, sube un archivo `.md` existente o pega contenido del portapapeles. El editor renderiza tu Markdown en tiempo real y exporta un PDF con estilo usando el motor de impresión integrado del navegador.
+
+## Formatos compatibles
+
+| Entrada | Descripción |
+| :-------------- | :-------------------------- |
+| Archivos `.md` | Súbelos con el botón Upload |
+| Entrada directa | Escribe o pega en el editor |
+
+## Cómo funciona
+
+1. Abre la herramienta Markdown a PDF. El editor se carga con vista dividida: el código Markdown a la izquierda y la vista previa renderizada a la derecha.
+2. Escribe tu Markdown, pégalo o haz clic en **Cargar** para cargar un archivo `.md`.
+3. Alterna entre los temas claro y oscuro con el control deslizante de tema de la barra de herramientas.
+4. Haz clic en **Exportar PDF** (o pulsa `Ctrl/Cmd + S`) para generar un PDF mediante el cuadro de impresión del navegador.
+
+## Características
+
+El editor admite un amplio conjunto de funciones de Markdown más allá de lo básico:
+
+- **Markdown estándar**: encabezados, negrita, cursiva, enlaces, imágenes, listas, citas, líneas horizontales
+- **Bloques de código** con resaltado de sintaxis para más de 15 lenguajes (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash y más)
+- **Diagramas Mermaid**: los diagramas de flujo, de secuencia, ER y otros tipos de gráficos Mermaid se renderizan directamente en la vista previa
+- **Tablas** con la sintaxis de tablas estándar de Markdown
+- **Listas de tareas** con casillas
+- **Notas al pie**, **subíndices**, **superíndices**
+- **Listas de definiciones**, **abreviaturas**
+- Compatibilidad con **emoji** (`:smile:` se muestra como el emoji)
+- **Resaltados** (`==marked text==`) e **inserciones** (`++inserted text++`)
+- **URL con enlace automático**: las URL sin formato se convierten en enlaces en los que se puede hacer clic
+- Generación de **tabla de contenido**
+- **Enlaces ancla** en los encabezados
+
+## Casos de uso
+
+- Escribir documentación de proyectos y exportar un PDF cuidado para las partes interesadas
+- Crear informes técnicos con ejemplos de código y diagramas de arquitectura Mermaid
+- Convertir un README de GitHub en un PDF para usarlo sin conexión o imprimirlo
+- Redactar una propuesta o una especificación con listas de tareas y tablas
+- Generar un material de apoyo con estilo a partir de apuntes de clase escritos en Markdown
+
+## Consejos
+
+- El PDF resultante usa la función de imprimir a PDF del navegador. En Chrome, puedes personalizar los márgenes y la escala en el cuadro de impresión antes de guardar.
+- Los diagramas Mermaid se renderizan en la vista previa, pero pueden tardar un momento en inicializarse la primera vez.
+- Usa `Ctrl/Cmd + S` como atajo de teclado para exportar sin tener que buscar el botón.
+
+## Herramientas relacionadas
+
+- [Texto a PDF](./txt-to-pdf)
+- [Word a PDF](./word-to-pdf)
+- [JSON a PDF](./json-to-pdf)
diff --git a/docs/es/tools/merge-pdf.md b/docs/es/tools/merge-pdf.md
new file mode 100644
index 00000000..3cd56516
--- /dev/null
+++ b/docs/es/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Fusionar PDF
+description: Combina varios archivos PDF en un solo documento, con reordenación por arrastrar y soltar y control a nivel de página.
+---
+
+# Fusionar PDF
+
+Combina varios archivos PDF en un solo documento. Puedes unir archivos completos en un orden concreto, o cambiar al Modo página para controlar con precisión cada página de todos los PDF subidos.
+
+## Cómo funciona
+
+1. Sube dos o más archivos PDF haciendo clic en la zona de carga o arrastrándolos.
+2. Elige entre **Modo archivo** y **Modo página** con el interruptor de la parte superior.
+3. En Modo archivo, arrastra los archivos para reordenarlos y, si quieres, indica rangos de páginas (por ejemplo, `1-3, 5`) para cada archivo. Deja el rango en blanco para incluir todas las páginas.
+4. En Modo página, arrastra y suelta las miniaturas de cada página para construir tu secuencia exacta.
+5. Haz clic en **Fusionar PDF** para combinarlo todo en un solo archivo. El PDF combinado se descarga automáticamente.
+
+## Características
+
+- Dos modos de combinación: Modo archivo para unir archivos completos rápidamente y Modo página para controlar cada página
+- Reordenación por arrastrar y soltar en ambos modos, con animaciones fluidas
+- La sintaxis de rangos de páginas (por ejemplo, `1-3, 5, 8-10`) permite elegir páginas sin cambiar a Modo página
+- Las miniaturas de página se cargan bajo demanda para que la interfaz siga respondiendo incluso con documentos grandes
+- Sin límite en el número de archivos ni en el total de páginas
+- Conserva la calidad original del PDF, sin recodificar
+
+## Opciones
+
+| Opción | Descripción |
+| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
+| **Modo archivo** | Combina archivos completos en un orden personalizado, con filtros opcionales de rango de páginas por archivo |
+| **Modo página** | Cuadrícula visual con todas las páginas de todos los archivos: arrastra las miniaturas para construir tu secuencia exacta |
+| **Campo Páginas** | Campo de texto por archivo que acepta rangos como `1-3, 5` para incluir solo páginas concretas |
+
+## Casos de uso
+
+- Combinar PDF de capítulos sueltos en un único libro o informe
+- Unir una carta de presentación y un currículum en un solo documento de candidatura
+- Reunir páginas concretas de varios documentos de origen en un archivo consolidado
+- Reunir recibos o facturas escaneados en un único PDF de archivo
+- Crear un material de apoyo para una presentación a partir de diapositivas de varias presentaciones
+
+## Consejos
+
+- Usa Modo página cuando necesites intercalar páginas de distintos archivos en lugar de añadir un archivo detrás de otro.
+- Puedes añadir más archivos después de la carga inicial con el botón **Agregar Más Archivos** sin perder tu organización actual.
+- Los rangos de páginas empiezan a contar en 1, así que `1` se refiere a la primera página de ese archivo.
+
+## Herramientas relacionadas
+
+- [Dividir PDF](./split-pdf)
+- [Organizar y duplicar](./organize-pdf)
+- [Alternar y mezclar páginas](./alternate-merge)
+- [Eliminar páginas](./delete-pages)
diff --git a/docs/es/tools/mobi-to-pdf.md b/docs/es/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..9acbbe03
--- /dev/null
+++ b/docs/es/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI a PDF
+description: Convierte libros electrónicos MOBI a PDF directamente en tu navegador. Gratis, privado, sin subir archivos.
+---
+
+# MOBI a PDF
+
+Convierte libros electrónicos MOBI de Amazon Kindle en documentos PDF. Los archivos MOBI están ligados a dispositivos y aplicaciones Kindle, lo que dificulta leerlos en otro sitio. Convertirlos a PDF te da una versión portátil que puedes abrir en cualquier dispositivo o imprimir.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :------ | :-------- | :----------------------------------- |
+| MOBI | `.mobi` | Formato de libro Kindle (Mobipocket) |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta uno o más archivos MOBI.
+2. Revisa la lista de archivos. Quita los que no quieras con el icono de papelera, o usa **Agregar Más Archivos** para incluir más libros.
+3. Haz clic en **Convertir a PDF**. El motor PyMuPDF analiza la estructura del MOBI y renderiza cada página como contenido PDF.
+4. Un solo archivo se descarga como PDF. Al convertir varios archivos, obtienes un archivo ZIP llamado `mobi-converted.zip`.
+
+## Opciones
+
+No hacen falta ajustes adicionales. La conversión conserva el contenido de texto, el formato y las imágenes incrustadas del archivo MOBI original.
+
+## Casos de uso
+
+- Leer contenido comprado en Kindle en un lector que no es Kindle y solo admite PDF
+- Imprimir capítulos de un libro electrónico para estudiar o anotar sin conexión
+- Archivar tu biblioteca personal de libros electrónicos en un formato universal
+- Compartir fragmentos con alguien que no tiene la aplicación Kindle instalada
+
+## Consejos
+
+- Los archivos MOBI protegidos con DRM no se pueden convertir. La herramienta solo funciona con archivos MOBI sin DRM.
+- Los libros grandes con muchas imágenes incrustadas pueden tardar unos segundos más en procesarse, ya que todo ocurre en el navegador.
+
+## Herramientas relacionadas
+
+- [EPUB a PDF](./epub-to-pdf)
+- [FB2 a PDF](./fb2-to-pdf)
+- [CBZ a PDF](./cbz-to-pdf)
diff --git a/docs/es/tools/n-up-pdf.md b/docs/es/tools/n-up-pdf.md
new file mode 100644
index 00000000..4634bfec
--- /dev/null
+++ b/docs/es/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-Up PDF
+description: Organiza varias páginas de un PDF en una sola hoja con una cuadrícula, para imprimir de forma compacta.
+---
+
+# N-Up PDF
+
+Coloca varias páginas en una sola hoja con una disposición en cuadrícula. Así se reduce el número de páginas impresas al ajustar 2, 4, 6, 8, 9 o 16 páginas por hoja. La herramienta se encarga del escalado, el posicionamiento y la configuración opcional del tamaño de página.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Selecciona el número de páginas por hoja (el valor "N"): 2, 4, 6, 8, 9 o 16.
+3. Elige el tamaño de página de salida (A4 por defecto) y la orientación.
+4. Opcionalmente, configura el espaciado, el color del borde y el color de fondo.
+5. Haz clic en el botón de procesar. La herramienta escala cada página y las distribuye en hojas nuevas.
+
+## Características
+
+- Disposiciones en cuadrícula: 2, 4, 6, 8, 9 y 16 páginas por hoja
+- Tamaño de página de salida y orientación configurables
+- Espaciado opcional entre las páginas
+- Ajustes de color de fondo y de borde
+- Mantiene la proporción de las páginas originales al escalarlas para que quepan
+
+## Opciones
+
+| Opción | Descripción |
+| ------------------------------ | ----------------------------------------------------------------------------------- |
+| **Páginas por hoja** | Número de páginas originales que caben en cada página de salida (2, 4, 6, 8, 9, 16) |
+| **Tamaño de página de salida** | Tamaño de la hoja de salida (A4, Letter, Legal, etc.) |
+| **Orientación** | Portrait o Landscape para la hoja de salida |
+| **Espaciado** | Separación en puntos entre las páginas |
+| **Color de fondo** | Color de relleno del fondo de la hoja de salida |
+| **Color del borde** | Color de los bordes alrededor de cada página |
+
+## Casos de uso
+
+- Imprimir material de apoyo con 4 diapositivas por página para ahorrar papel
+- Crear hojas de estudio con varias páginas de referencia en una sola hoja
+- Producir archivos de documentos compactos para su archivo
+- Generar hojas de miniaturas con una vista general de un documento largo
+
+## Consejos
+
+- La orientación horizontal suele funcionar mejor para las disposiciones de 2 páginas, mientras que la vertical suele ser la mejor para 4 o más.
+- Aumentar el espaciado mejora la legibilidad, pero reduce el área disponible para cada página.
+- Para la operación inversa (dividir una página en varias), consulta [Posterizar PDF](./posterize-pdf).
+
+## Herramientas relacionadas
+
+- [Posterizar PDF](./posterize-pdf)
+- [Folleto PDF](./pdf-booklet)
+- [Combinar en una sola página](./combine-single-page)
diff --git a/docs/es/tools/ocr-pdf.md b/docs/es/tools/ocr-pdf.md
new file mode 100644
index 00000000..58d76fde
--- /dev/null
+++ b/docs/es/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Haz que los PDF escaneados se puedan buscar y copiar con Tesseract OCR, con compatibilidad con varios idiomas y filtrado de caracteres.
+---
+
+# OCR PDF
+
+Convierte documentos escaneados en PDF en los que se puede buscar y copiar. La herramienta usa Tesseract OCR para reconocer el texto de las imágenes y superpone una capa de texto invisible sobre las páginas originales, conservando su apariencia visual y haciendo que el contenido sea totalmente buscable.
+
+## Cómo funciona
+
+1. Sube un PDF escaneado o basado en imágenes.
+2. Selecciona uno o más idiomas presentes en el documento en la lista de idiomas con búsqueda.
+3. Opcionalmente, ajusta la configuración avanzada (resolución, binarización, lista blanca).
+4. Haz clic en **Iniciar OCR** y sigue el progreso en la barra de progreso en tiempo real.
+5. Al terminar, revisa el texto extraído y descarga el PDF con búsqueda o un archivo `.txt` de texto plano.
+
+## Características
+
+- OCR en varios idiomas con un selector de idiomas con búsqueda
+- La capa de texto invisible conserva la apariencia original del documento
+- Barra de progreso y registro en tiempo real durante el procesamiento
+- Descarga los resultados como PDF con búsqueda o como archivo de texto plano
+- Copia el texto extraído directamente al portapapeles
+- Tres niveles de resolución para equilibrar velocidad y precisión
+
+## Opciones
+
+| Ajuste | Valores | Predeterminado | Finalidad |
+| ------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------- |
+| **Resolución** | Estándar (192 DPI), Alta (288 DPI), Ultra (384 DPI) | Alta | Una mayor resolución mejora la precisión con texto pequeño, pero tarda más |
+| **Binarizar imagen** | Activado / Desactivado | Desactivado | Mejora el contraste de escaneos limpios al convertirlos a blanco y negro |
+| **Preajuste de lista blanca de caracteres** | Ninguno, Alfanumérico, Números + Moneda, Solo letras, Solo números, Factura, Formularios, Personalizado | Ninguno | Restringe los caracteres reconocidos para mejorar la precisión en tipos de documento concretos |
+| **Lista blanca de caracteres** | Texto libre | Vacío | Conjunto de caracteres manual cuando el preajuste es Personalizado |
+
+## Casos de uso
+
+- Hacer que los contratos y facturas escaneados sean buscables para poder usar Ctrl+F en ellos
+- Extraer texto de documentos fotografiados o de registros en papel antiguos
+- Procesar recibos con el preajuste Invoice para capturar con precisión importes y fechas
+- Crear PDF accesibles a partir de escaneos que solo contienen imágenes, para cumplir requisitos normativos
+- Extraer por lotes el contenido de texto de libros o manuales escaneados
+
+## Consejos
+
+- Selecciona varios idiomas si tu documento tiene contenido en idiomas mezclados (por ejemplo, encabezados en inglés con texto principal en japonés).
+- Usa la opción de binarizar en documentos con texto desvaído o de bajo contraste: puede mejorar mucho la precisión del reconocimiento.
+- Los preajustes de lista blanca Invoice y Forms reducen drásticamente los falsos positivos en documentos estructurados al ignorar formas de caracteres irrelevantes.
+
+## Herramientas relacionadas
+
+- [Extraer tablas](./extract-tables)
+- [Combinar PDF](./merge-pdf)
+- [Comprimir PDF](./compress-pdf)
diff --git a/docs/es/tools/odg-to-pdf.md b/docs/es/tools/odg-to-pdf.md
new file mode 100644
index 00000000..19816499
--- /dev/null
+++ b/docs/es/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG a PDF
+description: Convierte archivos de LibreOffice Draw (ODG) a PDF en tu navegador. Gratis, sin subir nada, totalmente privado.
+---
+
+# ODG a PDF
+
+Convierte archivos OpenDocument Graphics en PDF. ODG es el formato nativo de LibreOffice Draw y se usa para diagramas, diagramas de flujo e ilustraciones vectoriales. Convertirlos a PDF facilita compartir, imprimir e incrustar estos dibujos en otros documentos.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :-------------------- | :-------- | :--------------------------------------------- |
+| OpenDocument Graphics | `.odg` | Archivos de LibreOffice Draw / OpenOffice Draw |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos ODG. Puedes añadir varios a la vez.
+2. Revisa la lista de archivos. Quita entradas individuales con el icono de papelera, o haz clic en **Agregar Más Archivos** para añadir más dibujos.
+3. Haz clic en **Convertir a PDF**. Un motor basado en LibreOffice se carga en el navegador y convierte cada archivo ODG, conservando los gráficos vectoriales, las formas y el texto.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos generan un archivo ZIP llamado `odg-to-pdf.zip`.
+
+## Opciones
+
+No hacen falta ajustes adicionales. La conversión conserva las dimensiones de página originales, las formas, los conectores y los cuadros de texto del ODG de origen.
+
+## Casos de uso
+
+- Compartir diagramas de LibreOffice Draw con clientes que no tienen LibreOffice instalado
+- Imprimir diagramas de flujo y diagramas de red creados en Draw
+- Incluir ilustraciones ODG en un informe o presentación como PDF incrustados
+- Archivar dibujos técnicos en un formato que seguirá siendo legible durante décadas
+
+## Consejos
+
+- Los elementos vectoriales siguen siendo vectores en el PDF resultante, así que el resultado se escala sin pérdida a cualquier tamaño de impresión.
+- El motor de LibreOffice tarda un momento en inicializarse la primera vez. Las conversiones posteriores dentro de la misma sesión son más rápidas.
+
+## Herramientas relacionadas
+
+- [ODS a PDF](./ods-to-pdf)
+- [ODP a PDF](./odp-to-pdf)
+- [VSD a PDF](./vsd-to-pdf)
diff --git a/docs/es/tools/odp-to-pdf.md b/docs/es/tools/odp-to-pdf.md
new file mode 100644
index 00000000..ad591bfb
--- /dev/null
+++ b/docs/es/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP a PDF
+description: Convierte presentaciones de LibreOffice Impress (ODP) a PDF en tu navegador. Gratis, privado, sin subir nada.
+---
+
+# ODP a PDF
+
+Convierte archivos OpenDocument Presentation en PDF. ODP es el formato nativo de LibreOffice Impress y una exportación estándar de Google Slides. Convertir las presentaciones a PDF permite que cualquiera las vea sin software de presentaciones, y las diapositivas se imprimen con limpieza.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :------------------------ | :-------- | :------------------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / exportación de Google Slides |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos ODP. Puedes seleccionar varias presentaciones a la vez.
+2. Revisa la lista de archivos. Quita entradas con el icono de papelera, o usa **Agregar Más Archivos** para incluir más presentaciones.
+3. Haz clic en **Convertir a PDF**. El motor basado en LibreOffice procesa cada presentación y genera un PDF en el que cada diapositiva es una página.
+4. Un solo archivo se descarga como PDF. Varios archivos se entregan en un archivo ZIP llamado `odp-to-pdf.zip`.
+
+## Opciones
+
+No hay ajustes que configurar. Cada diapositiva se renderiza con sus dimensiones originales, conservando el texto, las imágenes, las formas y los fondos.
+
+## Casos de uso
+
+- Distribuir una presentación al público como PDF de material de apoyo
+- Compartir exportaciones de Google Slides con personas que prefieren PDF a ODP
+- Archivar charlas de congresos y clases en un formato de solo lectura
+- Imprimir presentaciones para talleres presenciales
+
+## Consejos
+
+- Las transiciones y animaciones de las diapositivas son funciones puramente visuales que no pasan al PDF, pero todo el contenido estático se renderiza correctamente.
+- Las notas del orador no se incluyen en el PDF. Si necesitas las notas, expórtalas por separado desde tu software de presentaciones.
+- Como las demás herramientas basadas en LibreOffice, el motor se carga la primera vez que se usa y queda en caché durante la sesión.
+
+## Herramientas relacionadas
+
+- [ODG a PDF](./odg-to-pdf)
+- [ODS a PDF](./ods-to-pdf)
+- [PUB a PDF](./pub-to-pdf)
diff --git a/docs/es/tools/ods-to-pdf.md b/docs/es/tools/ods-to-pdf.md
new file mode 100644
index 00000000..b58c1c28
--- /dev/null
+++ b/docs/es/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS a PDF
+description: Convierte hojas de cálculo de LibreOffice Calc (ODS) a PDF en tu navegador. Gratis, privado, sin registro.
+---
+
+# ODS a PDF
+
+Convierte archivos OpenDocument Spreadsheet a PDF. ODS es el formato nativo de LibreOffice Calc y una exportación habitual de Google Sheets. Esta herramienta convierte los datos, el formato y los gráficos de tu hoja de cálculo en un PDF paginado que puedes imprimir o compartir.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :----------------------- | :-------- | :---------------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | Exportación de LibreOffice Calc / Google Sheets |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos ODS. Se admiten varios archivos.
+2. Revisa la lista de archivos. Usa el icono de la papelera para quitar archivos, o haz clic en **Agregar más archivos** para ampliar el lote.
+3. Haz clic en **Convertir a PDF**. El motor basado en LibreOffice se carga en el navegador y convierte cada hoja de cálculo en páginas PDF.
+4. Una sola hoja de cálculo se descarga como PDF. Varios archivos se empaquetan en `ods-to-pdf.zip`.
+
+## Opciones
+
+No se requiere ninguna configuración. El convertidor aplica al PDF el diseño de impresión, el formato de celdas y los anchos de columna existentes de la hoja de cálculo.
+
+## Casos de uso
+
+- Compartir un presupuesto o informe de LibreOffice Calc con alguien que solo acepta PDF
+- Imprimir una exportación de Google Sheets que se descargó como ODS
+- Archivar registros financieros en un formato no editable
+- Enviar formularios u hojas de horas en ODS como documentos de diseño fijo
+
+## Consejos
+
+- Si tu hoja de cálculo tiene varias hojas, todas se incluyen en el PDF.
+- Las hojas de cálculo muy anchas pueden extenderse horizontalmente en varias páginas PDF. Si el diseño importa, ajusta los anchos de columna en el archivo original antes de convertir.
+- El motor de LibreOffice se inicializa en el primer uso. Las conversiones siguientes en la misma sesión son más rápidas.
+
+## Herramientas relacionadas
+
+- [ODG a PDF](./odg-to-pdf)
+- [ODP a PDF](./odp-to-pdf)
+- [XML a PDF](./xml-to-pdf)
diff --git a/docs/es/tools/odt-to-pdf.md b/docs/es/tools/odt-to-pdf.md
new file mode 100644
index 00000000..99768bdf
--- /dev/null
+++ b/docs/es/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT a PDF
+description: Convierte archivos OpenDocument Text (ODT) a PDF en tu navegador con un motor basado en LibreOffice.
+---
+
+# ODT a PDF
+
+Convierte archivos OpenDocument Text a PDF. ODT es el formato nativo de LibreOffice Writer, Apache OpenOffice y otros procesadores de texto de código abierto. Esta herramienta usa un motor de LibreOffice en el navegador para lograr conversiones precisas que conservan el formato, las tablas, las imágenes y los estilos.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :---------------- | :---------- |
+| OpenDocument Text | `.odt` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta uno o más archivos ODT.
+2. Revisa la lista de archivos. Agrega más archivos o quita los que no quieras.
+3. Haz clic en **Convertir a PDF**. El motor de LibreOffice se inicializa (un indicador de progreso muestra el estado de carga) y luego se convierte cada archivo.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se empaquetan en `odt-converted.zip`.
+
+## Opciones
+
+Esta herramienta no tiene configuración adicional. La conversión conserva el formato del documento original lo más fielmente posible.
+
+## Salida
+
+| Cantidad de entrada | Salida |
+| :------------------ | :------------------------------------------------------------ |
+| 1 archivo | Descarga de un solo PDF (p. ej., `document.pdf`) |
+| 2 o más archivos | Archivo ZIP (`odt-converted.zip`) con un PDF por cada archivo |
+
+## Casos de uso
+
+- Convertir documentos de LibreOffice Writer a PDF para compartirlos con usuarios de Microsoft Office
+- Generar PDF listos para imprimir a partir de trabajos académicos escritos en formato OpenDocument
+- Convertir por lotes una carpeta de plantillas ODT en PDF para distribuirlos
+- Generar PDF a partir de archivos ODT creados por sistemas automáticos de generación de documentos
+
+## Consejos
+
+- El motor de LibreOffice se carga en el primer uso y queda en caché para las siguientes conversiones. La primera carga tarda unos segundos; después, las conversiones son rápidas.
+- Los documentos complejos con objetos OLE incrustados o fuentes poco comunes pueden verse un poco distintos que en LibreOffice de escritorio. Prueba con una muestra antes de convertir por lotes.
+- Para documentos de Word (`.doc`, `.docx`), usa en su lugar la herramienta [Word a PDF](./word-to-pdf), que también usa el motor de LibreOffice pero acepta directamente los formatos de Microsoft.
+
+## Herramientas relacionadas
+
+- [Word a PDF](./word-to-pdf)
+- [RTF a PDF](./rtf-to-pdf)
+- [Texto a PDF](./txt-to-pdf)
diff --git a/docs/es/tools/organize-pdf.md b/docs/es/tools/organize-pdf.md
new file mode 100644
index 00000000..ef0acb78
--- /dev/null
+++ b/docs/es/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplicar y Organizar
+description: Reordena, duplica y elimina páginas de un PDF con miniaturas de arrastrar y soltar y un orden de páginas personalizado.
+---
+
+# Duplicar y Organizar
+
+Reorganiza, duplica y elimina páginas de un PDF con una interfaz visual de arrastrar y soltar. Cada página aparece como una miniatura que puedes mover, clonar o eliminar antes de guardar el resultado como un archivo nuevo.
+
+## Cómo funciona
+
+1. Sube un único archivo PDF.
+2. La herramienta muestra una cuadrícula de miniaturas con todas las páginas.
+3. Arrastra las miniaturas para reordenar las páginas, haz clic en el botón verde de duplicar para clonar una página o en el botón rojo de eliminar para quitarla.
+4. También puedes escribir un orden de páginas personalizado en el campo de texto (p. ej., `3, 1, 2, 4`) y hacer clic en **Aplicar** para reorganizar todas las páginas de una vez.
+5. Haz clic en el botón de procesar para crear y descargar el PDF reorganizado.
+
+## Características
+
+- Reordenación de páginas con arrastrar y soltar y transiciones animadas
+- Botones de duplicar y eliminar en cada página
+- Campo de orden de páginas personalizado para una reorganización precisa
+- Etiquetas con el número de página que se actualizan automáticamente tras cada cambio
+- Impide eliminar la última página restante
+
+## Casos de uso
+
+- Mover una página mal colocada a su posición correcta en un informe
+- Duplicar una página de formulario para tener varias copias en blanco en un solo archivo
+- Quitar páginas de borrador o de relleno antes de distribuir un documento
+- Invertir o mezclar el orden de las páginas para preparar la impresión
+- Crear una secuencia de páginas personalizada sin volver a fusionar archivos separados
+
+## Consejos
+
+- El campo de orden de páginas personalizado espera números de página originales separados por comas. Debe incluir cada página exactamente una vez, sin omisiones ni duplicados.
+- Después de duplicar una página, ambas copias hacen referencia al mismo índice de página original. Reordenar cualquiera de las copias funciona de forma independiente.
+- Para operaciones masivas con varios archivos o flujos de trabajo más avanzados, considera usar en su lugar la [Multiherramienta PDF](./pdf-multi-tool).
+
+## Herramientas relacionadas
+
+- [Fusionar PDF](./merge-pdf)
+- [Eliminar Páginas](./delete-pages)
+- [Multiherramienta PDF](./pdf-multi-tool)
+- [Invertir Páginas](./reverse-pages)
diff --git a/docs/es/tools/page-dimensions.md b/docs/es/tools/page-dimensions.md
new file mode 100644
index 00000000..b716dbf4
--- /dev/null
+++ b/docs/es/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Dimensiones de página
+description: Analiza tamaños, orientaciones, proporciones y rotación de las páginas de un PDF. Detecta documentos con tamaños mixtos y exporta los datos a CSV.
+---
+
+# Dimensiones de página
+
+Una herramienta de diagnóstico que lee cada página de tu PDF y muestra sus dimensiones exactas, orientación, nombre de tamaño estándar, proporción, área y rotación. Es útil para detectar páginas de distintos tamaños antes de imprimir o para documentar las propiedades de un PDF que recibiste.
+
+## Cómo funciona
+
+1. Sube un archivo PDF. El análisis empieza automáticamente, sin botón que pulsar.
+2. Un panel de resumen muestra el total de páginas, la cantidad de tamaños de página distintos y si el documento tiene tamaños mixtos.
+3. Explora la tabla completa de resultados con los detalles de cada página.
+4. Cambia las unidades de visualización entre puntos, pulgadas, milímetros o píxeles.
+5. Haz clic en **Exportar a CSV** para guardar los datos.
+
+## Campos mostrados
+
+| Columna | Descripción |
+| --------------- | ------------------------------------------------------- |
+| N.º de página | Número de página secuencial |
+| Dimensiones | Ancho x Alto en la unidad seleccionada |
+| Tamaño estándar | Nombre coincidente (A4, Letter, etc.) o "Personalizado" |
+| Orientación | Vertical u horizontal |
+| Proporción | Relación ancho/alto como número decimal |
+| Área | Área de la página en la unidad seleccionada al cuadrado |
+| Rotación | Rotación de la página en grados |
+
+## Características
+
+- Detección automática de tamaños de papel estándar (A3, A4, A5, Letter, Legal, Tabloid y más)
+- Aviso de documento con tamaños mixtos, con el desglose de qué tamaños aparecen y cuántas páginas usa cada uno
+- Conversión de unidades entre puntos, pulgadas, milímetros y píxeles (a 96 PPI)
+- Exportación a CSV para usar en hojas de cálculo o sistemas de documentación
+
+## Casos de uso
+
+- Verificar que todas las páginas son A4 antes de enviar un documento a una imprenta
+- Diagnosticar por qué un PDF fusionado se imprime con márgenes inesperados en ciertas páginas
+- Documentar el diseño de páginas de un archivo PDF grande para registros de metadatos
+- Identificar páginas rotadas que necesitan corrección
+
+## Consejos
+
+- Si el resumen muestra "Tamaños mixtos", usa la herramienta Fijar Tamaño de Página para estandarizar antes de imprimir.
+- El campo de rotación ayuda a identificar páginas que se ven correctamente pero tienen un atributo de rotación distinto de cero, lo que puede causar problemas en algunos flujos de trabajo.
+
+## Herramientas relacionadas
+
+- [Fijar Tamaño de Página](./fix-page-size): estandariza las páginas tras identificar tamaños mixtos
+- [Comprimir PDF](./compress-pdf): optimiza el PDF después de corregir los problemas de página
+- [Rotar PDF](./rotate-pdf): corrige las páginas rotadas
diff --git a/docs/es/tools/page-numbers.md b/docs/es/tools/page-numbers.md
new file mode 100644
index 00000000..1fae6d0d
--- /dev/null
+++ b/docs/es/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Números de página
+description: Agrega números de página personalizables en cualquier posición de las páginas de tu PDF, con fuente, tamaño y color configurables.
+---
+
+# Números de página
+
+Agrega números de página visibles a todas las páginas de tu PDF. Tú eliges la posición, el formato, el tamaño de fuente y el color, y la herramienta se encarga del resto.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Configura los ajustes de numeración en el panel de opciones que aparece.
+3. Haz clic en **Agregar números de página** para procesar.
+4. El PDF numerado se descarga automáticamente.
+
+## Opciones
+
+- **Posición**: elige dónde aparecen los números de página: abajo al centro, abajo a la izquierda, abajo a la derecha, arriba al centro, arriba a la izquierda o arriba a la derecha.
+- **Formato**: elige entre numeración simple (1, 2, 3...) o el formato "página X de Y" (1 / 5, 2 / 5...).
+- **Tamaño de fuente**: define el tamaño del texto del número de página. Por defecto es 12.
+- **Color**: elige cualquier color para el texto del número de página con el selector de color.
+
+## Características
+
+- Seis opciones de posición que cubren todas las esquinas y las posiciones centrales
+- Dos formatos de numeración: secuencial simple o "página X de Y"
+- Tamaño de fuente personalizable de 6 a 72 puntos
+- Selector de color completo para el color del texto
+- Manejo automático de márgenes que mantiene los números dentro de zonas seguras sin importar el tamaño de la página
+
+## Casos de uso
+
+- Preparar documentos para imprimir que necesitan referencias de página visibles
+- Agregar números de página a un PDF fusionado creado a partir de varios archivos de origen
+- Numerar los folletos de una presentación antes de distribuirlos
+- Agregar numeración secuencial a documentos legales o contratos
+
+## Consejos
+
+- El formato "página X de Y" es útil para documentos en los que los lectores necesitan saber la extensión total, como propuestas o informes.
+- Si necesitas distintos estilos de numeración para diferentes secciones (como números romanos para las páginas preliminares), usa en su lugar la herramienta [Agregar etiquetas de página](./add-page-labels).
+
+## Herramientas relacionadas
+
+- [Agregar etiquetas de página](./add-page-labels)
+- [Numeración Bates](./bates-numbering)
+- [Encabezado y Pie de Página](./header-footer)
diff --git a/docs/es/tools/pdf-booklet.md b/docs/es/tools/pdf-booklet.md
new file mode 100644
index 00000000..e917bc36
--- /dev/null
+++ b/docs/es/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Folleto PDF
+description: Reorganiza las páginas de un PDF en orden de folleto (grapado al caballete) para doblarlo y engraparlo como folleto físico.
+---
+
+# Folleto PDF
+
+Reorganiza las páginas de un PDF en el orden de imposición de folleto. Al imprimirlo a doble cara y doblarlo por la mitad, las páginas quedan en la secuencia de lectura correcta. Es el diseño que se usa en folletos grapados al caballete y zines.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Configura los ajustes del folleto: tamaño y orientación de la página de salida.
+3. Haz clic en **Generar vista previa** para ver cómo se organizarán las páginas en cada hoja.
+4. Revisa la vista previa, que muestra cada hoja física con las páginas asignadas al anverso y al reverso.
+5. Haz clic en **Descargar** para guardar el PDF con la imposición de folleto.
+
+## Características
+
+- Reordenación automática de páginas para encuadernación grapada al caballete
+- Tamaño de página de salida configurable
+- Vista previa visual del diseño del folleto antes de descargar
+- Maneja cantidades impares de páginas insertando páginas en blanco donde hace falta
+- Escala las páginas de origen para ajustarlas al tamaño de hoja del folleto
+
+## Casos de uso
+
+- Crear folletos o zines imprimibles a partir de un PDF normal
+- Preparar programas de conferencias o guías de eventos para imprimirlos en casa o en la oficina
+- Hacer tarjetas de felicitación plegadas o catálogos pequeños
+- Producir cuadernillos o colecciones de poesía para encuadernar a mano
+
+## Consejos
+
+- Lo ideal es que la cantidad de páginas de tu PDF de origen sea múltiplo de 4 para un folleto limpio. Si no lo es, se agregan páginas en blanco automáticamente para completar la última hoja.
+- Imprime el resultado a doble cara con la opción "voltear por el borde corto" de tu impresora, luego dobla todas las hojas juntas y engrápalas en el lomo.
+- Si solo quieres colocar varias páginas en una hoja sin el orden de folleto, usa en su lugar [N-Up PDF](./n-up-pdf).
+
+## Herramientas relacionadas
+
+- [N-Up PDF](./n-up-pdf)
+- [Rotar PDF](./rotate-pdf)
+- [Agregar Página en Blanco](./add-blank-page)
diff --git a/docs/es/tools/pdf-layers.md b/docs/es/tools/pdf-layers.md
new file mode 100644
index 00000000..c68eff04
--- /dev/null
+++ b/docs/es/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Capas PDF (OCG)
+description: Visualiza, activa o desactiva, agrega y elimina capas de Optional Content Group (OCG) en un documento PDF.
+---
+
+# Capas PDF (OCG)
+
+Gestiona los Optional Content Groups (OCG), conocidos habitualmente como "capas", dentro de un PDF. Puedes activar o desactivar la visibilidad de las capas, agregar capas nuevas (incluidas capas hijas anidadas), eliminar capas y guardar el PDF modificado.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Haz clic en el botón de procesar para cargar el documento con el motor PyMuPDF.
+3. La herramienta muestra todas las capas existentes con su estado de visibilidad, su estado de bloqueo y su jerarquía de anidación.
+4. Marca o desmarca las casillas para mostrar u ocultar capas. Las capas bloqueadas no se pueden cambiar.
+5. Agrega capas nuevas de nivel superior escribiendo un nombre y haciendo clic en el botón de agregar, o agrega capas hijas bajo una capa padre existente.
+6. Elimina las capas que ya no necesites.
+7. Haz clic en **Guardar** para descargar el PDF modificado con los cambios de capas aplicados.
+
+## Características
+
+- Muestra la jerarquía de capas con la sangría adecuada para las capas anidadas
+- Activa o desactiva la visibilidad de las capas
+- El indicador de capa bloqueada evita cambios accidentales
+- Agrega capas de nivel superior o capas hijas con nombres personalizados
+- Elimina capas individuales
+- Guarda todos los cambios en un archivo PDF nuevo
+
+## Casos de uso
+
+- Activar o desactivar la visibilidad de las capas de anotaciones en planos de arquitectura o ingeniería
+- Agregar nuevas capas de anotación a un documento de diseño con varias capas
+- Eliminar capas obsoletas de una plantilla antes de distribuirla
+- Inspeccionar qué capas existen en un PDF complejo recibido de terceros
+
+## Consejos
+
+- Si el PDF no tiene capas, la herramienta muestra un estado vacío con una invitación a agregar una. No todos los PDF usan capas OCG: son más comunes en exportaciones de CAD y archivos de diseño.
+- Las capas hijas aparecen con sangría bajo su capa padre. Puedes anidar capas a cualquier profundidad.
+- Las capas bloqueadas se muestran con un icono de candado y sus casillas están desactivadas. Estos bloqueos los establece el creador del PDF.
+
+## Herramientas relacionadas
+
+- [Ver Metadatos](./view-metadata)
+- [Editar Metadatos](./edit-metadata)
+- [Duplicar y Organizar](./organize-pdf)
diff --git a/docs/es/tools/pdf-multi-tool.md b/docs/es/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..e05de21c
--- /dev/null
+++ b/docs/es/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Multiherramienta PDF
+description: Un organizador de páginas todo en uno para fusionar, dividir, rotar, duplicar, eliminar, reordenar y cambiar el tamaño de páginas de PDF.
+---
+
+# Multiherramienta PDF
+
+Un espacio de trabajo unificado para cualquier operación a nivel de página en PDF. Sube uno o más PDF y trabaja con todas sus páginas en una única cuadrícula visual. Rota, reordena, duplica, elimina, inserta PDF, imágenes y páginas en blanco, renumera, cambia el tamaño y divide el resultado, todo sin salir de la herramienta.
+
+## Cómo funciona
+
+1. Haz clic en **Seleccionar Archivos** o arrastra archivos al área de carga. Se admiten varios archivos, que se combinan en el orden en que se suben.
+2. Todas las páginas aparecen en una cuadrícula desplazable con miniaturas.
+3. Haz clic en una página para seleccionarla. Usa Shift-clic para seleccionar un rango y Cmd/Ctrl-clic para añadir o quitar páginas sueltas de la selección.
+4. Usa la barra de herramientas del organizador o haz clic derecho en una página para ver las acciones de página.
+5. Haz clic en **Exportar PDF** para descargar el resultado final.
+
+## Características
+
+- **Fusionar**: sube varios PDF e imágenes y se combinan automáticamente en un solo documento
+- **Reordenar**: arrastra y suelta páginas para cambiar la secuencia o invierte el orden de todo el documento
+- **Rotar**: rota las páginas seleccionadas a la izquierda o a la derecha en pasos de 90 grados
+- **Duplicar**: copia las páginas seleccionadas y coloca las copias justo después de ellas
+- **Eliminar**: quita las páginas seleccionadas
+- **Insertar**: añade páginas de otro PDF o de una imagen, una página en blanco, páginas del portapapeles, o intercala las páginas de un segundo PDF con las actuales
+- **Reemplazar**: sustituye una página por la primera página de otro PDF
+- **Cortar, copiar y pegar**: mueve o copia páginas dentro del documento
+- **Extraer**: descarga las páginas seleccionadas como PDF o como imágenes
+- **Números de página**: define etiquetas de página como i, ii, iii o A-1, A-2 para un rango de páginas
+- **Tamaño de página**: ajusta las páginas a un tamaño de papel estándar o a un tamaño personalizado
+- **Dividir**: divide el documento por rangos de páginas, páginas impares y pares, cada página, marcadores, cada N páginas o tamaño de archivo
+- **Deshacer / Rehacer**: todas las operaciones de página se pueden deshacer y rehacer
+- Repara automáticamente los PDF dañados antes de cargarlos
+
+## Atajos de teclado
+
+| Acción | Atajo |
+| ------------------------------ | ----------------------------- |
+| Rotar a la derecha / izquierda | R / Shift+R |
+| Seleccionar todo | Cmd/Ctrl+A |
+| Cortar, copiar, pegar | Cmd/Ctrl+X, C, V |
+| Duplicar | Cmd/Ctrl+D |
+| Eliminar | Supr o Retroceso |
+| Deshacer / Rehacer | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Mover la selección | Teclas de flecha, Home, End |
+
+## Casos de uso
+
+- Crear un documento personalizado con páginas de varios PDF de origen
+- Limpiar un documento escaneado eliminando páginas en blanco, rotando escaneos de lado y reordenando secciones
+- Dividir un PDF grande por capítulos usando sus marcadores
+- Edición rápida a nivel de página sin necesidad de un editor de PDF completo
+
+## Consejos
+
+- El historial de deshacer y rehacer registra cada operación de página. Úsalo con libertad: no puedes perder tu trabajo por accidente.
+- Usa **Insert > From File** o suelta más PDF o imágenes sobre la cuadrícula de páginas en cualquier momento para añadirlos al documento.
+- Para tareas sencillas de fusión o división, las herramientas dedicadas [Fusionar PDF](./merge-pdf) o [Dividir PDF](./split-pdf) pueden ser más rápidas. La Multiherramienta destaca cuando necesitas varias operaciones en una sola sesión.
+
+## Herramientas relacionadas
+
+- [Fusionar PDF](./merge-pdf)
+- [Dividir PDF](./split-pdf)
+- [Duplicar y Organizar](./organize-pdf)
+- [Rotar PDF](./rotate-pdf)
diff --git a/docs/es/tools/pdf-to-bmp.md b/docs/es/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..e398b8c5
--- /dev/null
+++ b/docs/es/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF a BMP
+description: Convierte páginas de PDF a imágenes BMP sin comprimir. Útil para sistemas heredados y flujos de impresión que requieren mapas de bits.
+---
+
+# PDF a BMP
+
+Convierte cada página de un PDF en una imagen BMP (mapa de bits). BMP es un formato sin comprimir, por lo que el resultado es exacto píxel a píxel y sin pérdida de calidad, pero los archivos son grandes.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Haz clic en **Convertir** para procesar el archivo.
+3. Un único archivo `.bmp` o un archivo ZIP se descarga automáticamente.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Las páginas se renderizan a una escala fija de 2x, lo que produce imágenes con aproximadamente el doble de las dimensiones nativas de la página del PDF.
+
+## Formato de salida
+
+- **Una página**: `filename.bmp`
+- **Varias páginas**: `filename_bmps.zip` con `page_1.bmp`, `page_2.bmp`, etc.
+
+## Casos de uso
+
+- Enviar páginas de PDF a sistemas o equipos heredados que solo aceptan BMP.
+- Preparar imágenes sin comprimir para flujos de impresión específicos.
+- Usar la salida en mapa de bits como entrada de herramientas de procesamiento de imágenes que requieren datos de píxeles sin procesar.
+
+## Consejos
+
+- Los archivos BMP son muy grandes porque almacenan los píxeles sin comprimir. Para la mayoría de los usos, [PDF a PNG](./pdf-to-png) ofrece calidad sin pérdida con archivos mucho más pequeños.
+- Si tu sistema de destino acepta PNG o TIFF, prefiere esos formatos para ahorrar espacio en disco.
+
+## Herramientas relacionadas
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a TIFF](./pdf-to-tiff)
+- [PDF a JPG](./pdf-to-jpg)
diff --git a/docs/es/tools/pdf-to-cbz.md b/docs/es/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..37d18b47
--- /dev/null
+++ b/docs/es/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF a CBZ
+description: Convierte un PDF en un archivo CBZ (Comic Book Archive) para lectores de cómics como Komga, Kavita, CDisplayEx y Calibre.
+---
+
+# PDF a CBZ
+
+Convierte un PDF en un archivo CBZ (Comic Book ZIP), el formato estándar de cómics y manga digitales. Cada página del PDF se convierte en una imagen dentro del archivo. La herramienta genera metadatos en tres formatos para lograr la máxima compatibilidad: ComicInfo.xml, metadata.opf y ComicBookInfo JSON.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Elige el formato de imagen, la calidad, la escala y los metadatos opcionales.
+3. Haz clic en **Convertir** para generar el archivo CBZ.
+4. El archivo `.cbz` se descarga automáticamente.
+
+## Opciones
+
+| Opción | Valores | Predeterminado | Descripción |
+| ----------------- | --------------- | -------------- | ------------------------------------------------------------------------------------------------------- |
+| Formato de imagen | JPEG, PNG, WebP | JPEG | JPEG para cómics a color, PNG para manga en blanco y negro sin pérdida, WebP para la mejor compresión. |
+| Calidad | 50–100% | 85% | Controla la compresión de JPEG/WebP. Se oculta con PNG (siempre sin pérdida). |
+| Escala | 1.0x–4.0x | 2.0x | Una escala mayor produce imágenes más nítidas para pantallas de alta resolución. |
+| Escala de grises | Sí/No | No | Convierte las páginas a escala de grises. Reduce el tamaño del archivo con contenido en blanco y negro. |
+| Modo manga | Sí/No | No | Establece en los metadatos la dirección de lectura de derecha a izquierda. |
+| Incluir metadatos | Sí/No | Sí | Incrusta ComicInfo.xml, metadata.opf y ComicBookInfo JSON. |
+
+## Campos de metadatos
+
+Cuando los metadatos están activados, puedes rellenar:
+
+- **Título**: se detecta automáticamente a partir del nombre del archivo PDF.
+- **Serie**: el nombre de la serie (p. ej., "Naruto").
+- **Número (#)**: número del ejemplar dentro de la serie.
+- **Volumen (Vol.)**: número de volumen.
+- **Autor(es)**: nombre del guionista o creador.
+- **Editorial**: empresa editora.
+- **Etiquetas / Género**: etiquetas separadas por comas (p. ej., "Acción, Aventura").
+- **Año de publicación**: año de publicación (1900–2100).
+- **Valoración**: valoración de la comunidad de 0 a 5.
+
+## Compatibilidad de metadatos
+
+La herramienta escribe los metadatos en tres formatos para que cualquier lector pueda encontrarlos:
+
+| Formato | Ubicación | Compatible con |
+| ------------------ | --------------------------- | ------------------------------------------- |
+| ComicInfo.xml | Archivo dentro del ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Archivo dentro del ZIP | Calibre |
+| ComicBookInfo JSON | Campo de comentario del ZIP | Calibre (alternativa) |
+
+## Formato de salida
+
+- `filename.cbz`: un archivo ZIP con las imágenes de página numeradas y los archivos de metadatos.
+
+Las imágenes de página se nombran con números rellenados con ceros (`01.jpg`, `02.jpg`, etc.) para que los lectores las muestren en el orden correcto.
+
+## Casos de uso
+
+- Convertir PDF de manga o cómics para usarlos con lectores de cómics.
+- Crear una biblioteca de cómics digital en Komga, Kavita o Calibre.
+- Convertir cómics escaneados a un formato apto para lectores.
+- Compartir cómics en un formato que conserva la dirección de lectura y los metadatos.
+
+## Consejos
+
+- Usa **JPEG** para cómics a color y **PNG** para manga en blanco y negro: PNG comprime muy bien el contenido en blanco y negro.
+- Activa **Escala de grises** en el manga para reducir de forma notable el tamaño del archivo.
+- Rellena los campos **Serie** y **Número** para que los gestores de biblioteca (Komga, Calibre) organicen tu colección automáticamente.
+- **WebP** ofrece la mejor compresión, pero algunos lectores de cómics antiguos pueden no admitirlo.
+
+## Herramientas relacionadas
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a PNG](./pdf-to-png)
+- [PDF a TIFF](./pdf-to-tiff)
+- [Extraer imágenes](./extract-images)
diff --git a/docs/es/tools/pdf-to-csv.md b/docs/es/tools/pdf-to-csv.md
new file mode 100644
index 00000000..b27a1068
--- /dev/null
+++ b/docs/es/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF a CSV
+description: Extrae tablas de documentos PDF y expórtalas como un único archivo CSV. Admite PDF de varias páginas con detección automática de tablas.
+---
+
+# PDF a CSV
+
+Extrae tablas de un PDF y las exporta como un archivo CSV. La herramienta analiza cada página en busca de datos tabulares con el motor de detección de tablas de PyMuPDF y escribe todas las filas encontradas en una única salida separada por comas.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Haz clic en **Convertir** para iniciar la extracción de tablas.
+3. La herramienta analiza cada página e identifica las tablas automáticamente.
+4. Se descarga un archivo `.csv` con todos los datos de las tablas extraídas.
+
+Las tablas de páginas distintas se separan con filas en blanco en la salida. Las celdas que contienen comas, comillas o saltos de línea se escapan correctamente según RFC 4180.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Todas las tablas encontradas en el documento se extraen y se combinan en un único CSV.
+
+## Formato de salida
+
+- Un único archivo `filename.csv` con todas las tablas detectadas.
+
+## Casos de uso
+
+- Pasar datos financieros de extractos bancarios o facturas en PDF a una hoja de cálculo.
+- Extraer tablas de precios de presupuestos de proveedores para compararlas.
+- Convertir datos tabulares de investigaciones en PDF a un formato adecuado para herramientas de análisis.
+- Migrar datos de informes PDF antiguos a bases de datos.
+
+## Consejos
+
+- Si no se encuentran tablas, la herramienta muestra el mensaje "No se encontraron tablas". Normalmente significa que el PDF usa un diseño de texto que parece tabular pero no está estructurado como una tabla real.
+- Para tener más control sobre cada tabla, usa [Extraer Tablas de PDF](./extract-tables), que permite elegir entre salida en CSV, JSON y Markdown.
+- Si necesitas los datos en formato Excel con hojas separadas por tabla, usa [PDF a Excel](./pdf-to-excel).
+
+## Herramientas relacionadas
+
+- [PDF a Excel](./pdf-to-excel)
+- [Extraer Tablas de PDF](./extract-tables)
+- [PDF a Texto](./pdf-to-text)
diff --git a/docs/es/tools/pdf-to-excel.md b/docs/es/tools/pdf-to-excel.md
new file mode 100644
index 00000000..74a8c595
--- /dev/null
+++ b/docs/es/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF a Excel
+description: Extrae tablas de documentos PDF a una hoja de cálculo de Excel. Cada tabla se guarda en su propia hoja con referencia a la página.
+---
+
+# PDF a Excel
+
+Extrae tablas de un PDF y las guarda como una hoja de cálculo de Excel (`.xlsx`). Cada tabla detectada se coloca en su propia hoja, etiquetada con su número de tabla y la página de origen. Funciona con PyMuPDF para la detección de tablas y la biblioteca SheetJS para generar el archivo de Excel.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Haz clic en **Convertir** para iniciar la extracción de tablas.
+3. La herramienta analiza cada página en busca de tablas y luego crea un libro de Excel.
+4. Se descarga un archivo `.xlsx` con una hoja por tabla.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Todas las tablas detectadas se extraen automáticamente.
+
+## Formato de salida
+
+- Un único archivo `filename.xlsx`.
+- **Una tabla**: una sola hoja llamada "Table".
+- **Varias tablas**: hojas llamadas "Table 1 (Page 3)", "Table 2 (Page 5)", etc. Los nombres de hoja se truncan a 31 caracteres (el límite de Excel).
+
+## Casos de uso
+
+- Convertir informes financieros en PDF a hojas de cálculo editables para seguir analizándolos.
+- Extraer tablas de inventario o pedidos de PDF de proveedores.
+- Pasar datos estructurados de formularios o catálogos en PDF a Excel para ordenarlos y filtrarlos.
+- Archivar datos tabulares de PDF en un formato con el que puedan trabajar compañeros sin perfil técnico.
+
+## Consejos
+
+- Si la herramienta indica "No se encontraron tablas", es probable que el PDF use un texto de flujo libre en lugar de tablas estructuradas. Prueba [PDF a Texto](./pdf-to-text) para obtener el contenido sin procesar.
+- Para un formato plano más simple, usa [PDF a CSV](./pdf-to-csv). Para descargas por tabla en varios formatos, usa [Extraer Tablas de PDF](./extract-tables).
+- Revisa los nombres de las hojas para saber de qué página procede cada tabla.
+
+## Herramientas relacionadas
+
+- [PDF a CSV](./pdf-to-csv)
+- [Extraer Tablas de PDF](./extract-tables)
+- [PDF a Texto](./pdf-to-text)
diff --git a/docs/es/tools/pdf-to-greyscale.md b/docs/es/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..0f1d0161
--- /dev/null
+++ b/docs/es/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF a escala de grises
+description: Convierte un PDF a color en una versión en escala de grises (blanco y negro). Genera un PDF nuevo sin color en ninguna página.
+---
+
+# PDF a escala de grises
+
+Convierte un PDF a color en una versión en escala de grises. Cada página se renderiza, se desatura y se vuelve a incrustar como imagen JPEG en un PDF nuevo. El resultado conserva las dimensiones originales de la página.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Haz clic en **Convertir** para procesar el archivo.
+3. Se descarga un nuevo `greyscale.pdf` con todas las páginas convertidas a blanco y negro.
+
+Internamente, cada página se renderiza a escala 2x, los datos de píxeles pasan por un filtro de escala de grises y luego se recodifican como JPEG con calidad del 90% y se colocan en un documento PDF nuevo.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. La conversión a escala de grises usa una fórmula de luminancia estándar y la calidad JPEG está fijada en el 90%.
+
+## Formato de salida
+
+- Un único archivo `greyscale.pdf` con todas las páginas como imágenes JPEG en escala de grises.
+
+## Casos de uso
+
+- Preparar documentos para imprimir en blanco y negro y ahorrar en tinta de color.
+- Cumplir requisitos de presentación de trámites legales o gubernamentales que exigen escala de grises.
+- Reducir el tamaño de PDF con mucho color (las imágenes JPEG en escala de grises pesan menos que las de color).
+- Crear un estilo visual coherente en documentos con páginas a color y en blanco y negro.
+
+## Consejos
+
+- Como cada página se rasteriza y se vuelve a incrustar como JPEG, el resultado está basado en imágenes. El texto del PDF original ya no se podrá seleccionar ni buscar. Si después necesitas texto con búsqueda, pasa el resultado por la herramienta OCR.
+- Para tener más control sobre los ajustes de color (brillo, contraste, saturación), mira la herramienta Ajustar colores o el nodo de escala de grises del [Constructor de flujos de trabajo PDF](./pdf-workflow).
+
+## Herramientas relacionadas
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a PNG](./pdf-to-png)
+- [Constructor de flujos de trabajo PDF](./pdf-workflow)
diff --git a/docs/es/tools/pdf-to-jpg.md b/docs/es/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..667055cc
--- /dev/null
+++ b/docs/es/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF a JPG
+description: Convierte páginas de PDF a imágenes JPG con calidad ajustable. Los PDF de una página se descargan directamente; los de varias páginas se exportan como ZIP.
+---
+
+# PDF a JPG
+
+Convierte cada página de un PDF en una imagen JPG. Los documentos de una sola página se descargan como un archivo `.jpg` independiente. Los PDF de varias páginas generan un archivo ZIP con un JPG por página.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella. La herramienta muestra el nombre del archivo, su tamaño y el número de páginas.
+2. Ajusta el control deslizante de **Calidad** para controlar la compresión del JPG.
+3. Haz clic en **Convertir** para iniciar el procesamiento.
+4. El resultado se descarga automáticamente: un único JPG para PDF de una página o un archivo ZIP para documentos de varias páginas.
+
+## Opciones
+
+- **Calidad**: un control deslizante de 0% a 100% (por defecto 90%). Los valores altos producen imágenes más nítidas y archivos más grandes. Los valores bajos comprimen de forma más agresiva.
+
+Las páginas se renderizan internamente a escala 2x, así que la resolución de salida es el doble de las dimensiones de la página del PDF. Una página estándar tamaño carta produce una imagen de aproximadamente 1.224 x 1.584 píxeles.
+
+## Formato de salida
+
+- **Una página**: `filename.jpg`
+- **Varias páginas**: `filename_jpgs.zip` con `page_1.jpg`, `page_2.jpg`, etc.
+
+## Casos de uso
+
+- Generar miniaturas de vista previa para un sistema de gestión documental.
+- Compartir una página de un informe en un chat o correo que no admite PDF.
+- Crear recursos de imagen a partir de diagramas o ilustraciones en PDF.
+- Archivar documentos escaneados como imágenes individuales.
+
+## Consejos
+
+- Para una salida sin pérdida, usa [PDF a PNG](./pdf-to-png).
+- Un ajuste de calidad de 80-90% logra un buen equilibrio entre tamaño de archivo y fidelidad visual.
+- Si necesitas un formato específico por página, considera el [Constructor de flujos de trabajo PDF](./pdf-workflow), que tiene un nodo de salida de PDF a imágenes.
+
+## Herramientas relacionadas
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a WebP](./pdf-to-webp)
+- [PDF a BMP](./pdf-to-bmp)
+- [PDF a TIFF](./pdf-to-tiff)
diff --git a/docs/es/tools/pdf-to-json.md b/docs/es/tools/pdf-to-json.md
new file mode 100644
index 00000000..bb64d576
--- /dev/null
+++ b/docs/es/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF a JSON
+description: Convierte archivos PDF a formato JSON estructurado con CPDF. Exporta la estructura interna del PDF como datos JSON legibles por máquina.
+---
+
+# PDF a JSON
+
+Convierte uno o más archivos PDF a formato JSON. La herramienta usa CPDF (Coherent PDF) para serializar la estructura interna de cada PDF en una representación JSON legible por máquina. El resultado siempre se entrega como un archivo ZIP.
+
+## Cómo funciona
+
+1. Selecciona uno o más archivos PDF con el selector de archivos.
+2. Haz clic en **Convertir** para iniciar el procesamiento. La conversión se ejecuta en un web worker en segundo plano.
+3. Se descarga un archivo ZIP con un archivo JSON por cada PDF de entrada.
+
+La barra de estado muestra el progreso de las etapas de conversión y de creación del ZIP.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Cada PDF se convierte a su representación JSON completa.
+
+## Formato de salida
+
+- Un archivo `pdfs-to-json.zip` con `filename.json` por cada PDF de entrada.
+
+La salida JSON representa la estructura interna de objetos del PDF, incluidos árboles de páginas, referencias de fuentes, metadatos y flujos de contenido.
+
+## Casos de uso
+
+- Inspeccionar la estructura interna de un PDF para depuración o validación.
+- Extraer metadatos estructurados y propiedades de página mediante programación.
+- Alimentar flujos de procesamiento personalizados con datos de la estructura del PDF.
+- Auditar documentos PDF para verificar su cumplimiento analizando sus árboles de objetos.
+
+## Consejos
+
+- Esta herramienta devuelve la estructura de objetos del PDF sin procesar, no el texto extraído. Si necesitas el texto de las páginas en formato JSON, usa en su lugar [Preparar PDF para IA](./prepare-pdf-for-ai).
+- Para extraer texto sin formato, [PDF a Texto](./pdf-to-text) es más directo.
+- Los PDF grandes con estructuras complejas producen archivos JSON muy grandes.
+
+## Herramientas relacionadas
+
+- [PDF a Texto](./pdf-to-text)
+- [Preparar PDF para IA](./prepare-pdf-for-ai)
+- [Extraer Tablas de PDF](./extract-tables)
diff --git a/docs/es/tools/pdf-to-markdown.md b/docs/es/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..eb5da39c
--- /dev/null
+++ b/docs/es/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF a Markdown
+description: Convierte documentos PDF a formato Markdown con extracción opcional de imágenes. Admite la conversión por lotes de varios archivos.
+---
+
+# PDF a Markdown
+
+Convierte archivos PDF a formato Markdown (`.md`) conservando encabezados, párrafos, listas y el formato básico. Opcionalmente extrae e incluye las imágenes incrustadas. Admite conversión individual y por lotes. Funciona con PyMuPDF.
+
+## Cómo funciona
+
+1. Sube uno o más PDF haciendo clic en la zona de carga o arrastrando archivos hasta ella.
+2. Opcionalmente, activa **Incluir imágenes** para incrustar las imágenes extraídas en la salida Markdown.
+3. Haz clic en **Convertir** para iniciar el procesamiento.
+4. Un solo archivo se descarga como `filename.md`. Varios archivos generan un `markdown-files.zip`.
+
+## Opciones
+
+- **Incluir imágenes**: si está marcada, las imágenes incrustadas del PDF se extraen y se referencian en la salida Markdown. Si no está marcada, solo se convierte el contenido de texto.
+
+## Formato de salida
+
+- **Un archivo**: `filename.md`
+- **Varios archivos**: `markdown-files.zip` con un `.md` por cada PDF de entrada.
+
+## Casos de uso
+
+- Convertir documentación en PDF a Markdown para un generador de sitios estáticos como VitePress, Hugo o Jekyll.
+- Convertir artículos de investigación en PDF a Markdown editable para aplicaciones de notas como Obsidian.
+- Migrar bases de conocimiento antiguas en PDF a un formato de texto compatible con Git.
+- Extraer contenido estructurado de ebooks en PDF para darles otro formato.
+
+## Consejos
+
+- La opción Incluir imágenes es útil cuando el PDF contiene diagramas o figuras esenciales para el contenido. Desactívala en documentos con mucho texto para mantener limpia la salida.
+- Los diseños complejos con barras laterales, notas al pie o texto en varias columnas pueden producir un Markdown imperfecto. Revisa y ajusta el resultado según haga falta.
+- Para texto sin procesar y sin ningún formato, usa en su lugar [PDF a Texto](./pdf-to-text).
+
+## Herramientas relacionadas
+
+- [PDF a Texto](./pdf-to-text)
+- [PDF a Word](./pdf-to-word)
+- [Preparar PDF para IA](./prepare-pdf-for-ai)
diff --git a/docs/es/tools/pdf-to-pdfa.md b/docs/es/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..25f20958
--- /dev/null
+++ b/docs/es/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF a PDF/A
+description: Convierte PDF estándar al formato PDF/A para archivado a largo plazo. Admite los niveles de conformidad PDF/A-1b, PDF/A-2b y PDF/A-3b.
+---
+
+# PDF a PDF/A
+
+PDF/A es un subconjunto de PDF normalizado por ISO y pensado para la conservación digital a largo plazo. Esta herramienta convierte tus PDF estándar en documentos conformes con PDF/A usando Ghostscript, que se ejecuta directamente en tu navegador.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF.
+2. Selecciona una **versión de PDF/A** en el menú desplegable.
+3. Opcionalmente, activa **Aplanar PDF antes** para archivos complejos que fallan en la conversión normal.
+4. Haz clic en **Convertir a PDF/A**. Varios archivos generan un archivo ZIP.
+
+## Versiones de PDF/A
+
+| Versión | Restricciones | Ideal para |
+| ------------ | -------------------------------------------------- | ------------------------------------------------------ |
+| **PDF/A-1b** | La más estricta. Sin transparencias ni capas. | Máxima compatibilidad con sistemas de archivo antiguos |
+| **PDF/A-2b** | Permite transparencias y JPEG2000. | Archivado de uso general (recomendada) |
+| **PDF/A-3b** | Permite adjuntos incrustados de cualquier formato. | Archivar documentos con archivos de datos de origen |
+
+PDF/A-2b está seleccionada por defecto y sirve para la gran mayoría de las necesidades de archivado.
+
+## Opción de aplanado previo
+
+Algunos PDF contienen características que impiden una conversión limpia a PDF/A: codificaciones de fuente poco comunes, pilas de transparencia complejas o estructuras internas dañadas. Activar **Aplanar PDF antes** rasteriza el PDF a 300 DPI antes de la conversión, lo que garantiza el cumplimiento a costa de que el texto deje de ser seleccionable. Úsala como alternativa cuando la conversión estándar produzca errores.
+
+El aplanado previo requiere el motor PyMuPDF WASM.
+
+## Casos de uso
+
+- Cumplir requisitos de archivo gubernamentales o legales (muchas jurisdicciones exigen PDF/A en los escritos judiciales)
+- Enviar documentos a repositorios institucionales o bibliotecas digitales
+- Conservar registros empresariales cuando el software original puede no existir dentro de diez años
+- Preparar facturas para estándares de facturación electrónica que exigen PDF/A-3b con adjuntos XML
+
+## Consejos
+
+- Prueba primero la conversión sin aplanado previo. Actívalo solo si obtienes un error.
+- PDF/A incrusta todas las fuentes, por lo que los archivos de salida suelen ser más grandes que los originales.
+- Valida el resultado con un validador de PDF/A específico si tu flujo de trabajo exige un cumplimiento estricto.
+
+## Herramientas relacionadas
+
+- [Comprimir PDF](./compress-pdf): reduce el tamaño del archivo tras la conversión
+- [Aplanar PDF](./flatten-pdf): aplana los formularios antes de convertir a PDF/A
+- [Eliminar Metadatos](./remove-metadata): quita los metadatos antes de archivar
diff --git a/docs/es/tools/pdf-to-png.md b/docs/es/tools/pdf-to-png.md
new file mode 100644
index 00000000..9df93ac1
--- /dev/null
+++ b/docs/es/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF a PNG
+description: Convierte páginas de PDF a imágenes PNG sin pérdida con escala ajustable. Ideal para capturas de alta calidad y fondos transparentes.
+---
+
+# PDF a PNG
+
+Convierte cada página de un PDF en una imagen PNG. PNG usa compresión sin pérdida, por lo que el resultado conserva todos los detalles de la página original. Los PDF de una página se descargan como un archivo `.png`; los de varias páginas generan un ZIP.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Ajusta el control deslizante de **Escala** para controlar la resolución de salida.
+3. Haz clic en **Convertir** para iniciar el procesamiento.
+4. Un único PNG o un archivo ZIP se descarga automáticamente.
+
+## Opciones
+
+- **Escala**: va de 1.0x a 3.0x (por defecto 2.0x). A 2.0x, una página estándar tamaño carta se renderiza a unos 1.224 x 1.584 píxeles. Los valores de escala más altos producen imágenes más grandes y nítidas a costa del tamaño del archivo y del tiempo de procesamiento.
+
+## Formato de salida
+
+- **Una página**: `filename.png`
+- **Varias páginas**: `filename_pngs.zip` con `page_1.png`, `page_2.png`, etc.
+
+## Casos de uso
+
+- Capturar páginas de PDF con alta fidelidad para presentaciones.
+- Extraer gráficos o diagramas que necesitan bordes nítidos y sin artefactos de compresión.
+- Preparar recursos para diseño web a partir de maquetas en PDF.
+- Crear imágenes de página sin pérdida para el preprocesamiento de OCR.
+
+## Consejos
+
+- Los archivos PNG son bastante más grandes que los JPG. Si el tamaño del archivo importa más que la calidad perfecta, usa [PDF a JPG](./pdf-to-jpg) o [PDF a WebP](./pdf-to-webp).
+- A escala 1.0x, la salida coincide con la resolución nativa del PDF. Sube a 3.0x para exportaciones con calidad de impresión.
+
+## Herramientas relacionadas
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a WebP](./pdf-to-webp)
+- [PDF a SVG](./pdf-to-svg)
diff --git a/docs/es/tools/pdf-to-svg.md b/docs/es/tools/pdf-to-svg.md
new file mode 100644
index 00000000..800b0e22
--- /dev/null
+++ b/docs/es/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF a SVG
+description: Convierte páginas de PDF a gráficos vectoriales SVG escalables. Conserva texto y formas como trazados vectoriales para un escalado infinito.
+---
+
+# PDF a SVG
+
+Convierte cada página de un PDF en un archivo SVG (Scalable Vector Graphics). A diferencia de los formatos rasterizados, SVG conserva los trazados vectoriales, el texto y las formas, por lo que el resultado se escala a cualquier tamaño sin pixelarse. Funciona con PyMuPDF.
+
+## Cómo funciona
+
+1. Sube uno o más PDF haciendo clic en la zona de carga o arrastrando archivos hasta ella. Puedes agregar varios archivos y gestionarlos individualmente.
+2. Haz clic en **Convertir** para procesar todos los archivos subidos.
+3. Las conversiones de un solo archivo con una sola página se descargan como un `.svg` independiente. El resto se descarga como archivo ZIP.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Cada página se convierte a SVG con la exportación vectorial nativa de PyMuPDF.
+
+## Formato de salida
+
+- **Un archivo, una página**: `filename.svg`
+- **Un archivo, varias páginas**: `filename_svg.zip` con `page_1.svg`, `page_2.svg`, etc.
+- **Varios archivos**: `pdf_to_svg.zip` con los archivos organizados por el nombre del documento de origen.
+
+## Casos de uso
+
+- Extraer diagramas vectoriales, gráficos o ilustraciones de informes en PDF para usarlos en páginas web.
+- Editar el contenido de las páginas de un PDF en un editor vectorial como Inkscape o Illustrator.
+- Incrustar vistas previas de página escalables en aplicaciones web adaptables.
+- Extraer logotipos o gráficos de folletos en PDF conservando los bordes nítidos.
+
+## Consejos
+
+- SVG funciona mejor con PDF que contienen contenido vectorial. Los documentos escaneados o los PDF con muchas imágenes producirán archivos SVG grandes con datos rasterizados incrustados.
+- Para una salida rasterizada de PDF con muchas imágenes, usa en su lugar [PDF a PNG](./pdf-to-png) o [PDF a JPG](./pdf-to-jpg).
+- Esta herramienta admite la conversión por lotes: sube varios PDF a la vez para convertirlos todos en una sola ejecución.
+
+## Herramientas relacionadas
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a Markdown](./pdf-to-markdown)
diff --git a/docs/es/tools/pdf-to-text.md b/docs/es/tools/pdf-to-text.md
new file mode 100644
index 00000000..0c46eb98
--- /dev/null
+++ b/docs/es/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF a texto
+description: Extrae el texto sin formato de archivos PDF. Admite la extracción por lotes de varios PDF con salida en archivos TXT.
+---
+
+# PDF a texto
+
+Extrae todo el contenido de texto de archivos PDF y lo guarda como archivos `.txt` de texto sin formato. Admite el procesamiento por lotes: sube varios PDF y extrae el texto de cada uno en una sola operación. Funciona con PyMuPDF.
+
+## Cómo funciona
+
+1. Sube uno o más PDF haciendo clic en la zona de carga o arrastrando archivos hasta ella. Gestiona tu lista de archivos con los botones Agregar más y Borrar.
+2. Haz clic en **Extraer** para iniciar el procesamiento.
+3. Un solo archivo se descarga como `filename.txt`. Varios archivos generan un archivo `pdf-to-text.zip`.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Todo el texto se extrae de cada página en orden de lectura.
+
+## Formato de salida
+
+- **Un archivo**: `filename.txt`
+- **Varios archivos**: `pdf-to-text.zip` con un `.txt` por cada PDF de entrada.
+
+## Casos de uso
+
+- Extraer el texto principal de informes en PDF para indexarlo en búsquedas de texto completo.
+- Convertir ebooks o artículos en PDF a texto sin formato para leerlos en dispositivos de tinta electrónica.
+- Sacar texto de contratos o documentos legales para analizar palabras clave.
+- Quitar el formato de los PDF para obtener texto limpio para scripts de procesamiento de datos.
+- Preparar un corpus de texto a partir de archivos PDF para procesamiento de lenguaje natural.
+
+## Consejos
+
+- Los PDF escaneados (solo imagen) producirán archivos de texto vacíos porque no hay una capa de texto que extraer. Pasa primero los documentos escaneados por OCR.
+- La salida conserva el orden de lectura según lo interpreta PyMuPDF, que por lo general sigue de izquierda a derecha y de arriba abajo. Los diseños de varias columnas pueden producir texto entremezclado.
+- Para una salida estructurada con encabezados y formato, prueba [PDF a Markdown](./pdf-to-markdown). Para JSON estructurado listo para IA, usa [Preparar PDF para IA](./prepare-pdf-for-ai).
+
+## Herramientas relacionadas
+
+- [PDF a Markdown](./pdf-to-markdown)
+- [Preparar PDF para IA](./prepare-pdf-for-ai)
+- [PDF a Word](./pdf-to-word)
diff --git a/docs/es/tools/pdf-to-tiff.md b/docs/es/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..81bf4d5d
--- /dev/null
+++ b/docs/es/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF a TIFF
+description: Convierte páginas de PDF a imágenes TIFF, muy usadas en impresión, fax y archivado. Recurre a PNG si falla la codificación.
+---
+
+# PDF a TIFF
+
+Convierte cada página de un PDF en una imagen TIFF. TIFF es el formato estándar para producción de impresión, sistemas de fax y archivado de documentos. La herramienta usa compresión PackBits para codificar el TIFF y recurre a PNG si una página no se puede codificar.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Haz clic en **Convertir** para procesar el archivo.
+3. Un único archivo TIFF o un archivo ZIP se descarga automáticamente.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Las páginas se renderizan a una escala fija de 2x.
+
+## Formato de salida
+
+- **Una página**: `filename.tiff`
+- **Varias páginas**: `filename_tiffs.zip` con `page_1.tiff`, `page_2.tiff`, etc.
+
+Si la codificación TIFF falla en una página concreta (por problemas de compresión), esa página se guarda como archivo `.png`. En ese caso, el ZIP contendrá una mezcla de archivos TIFF y PNG.
+
+## Casos de uso
+
+- Enviar documentos a organismos públicos o sistemas legales que exigen el formato TIFF.
+- Preparar páginas para transmitirlas por fax mediante servicios de fax digital.
+- Archivar documentos escaneados en un formato sin pérdida ampliamente compatible.
+- Alimentar sistemas empresariales de gestión documental con las páginas.
+
+## Consejos
+
+- Los archivos TIFF son grandes. Si solo necesitas calidad sin pérdida para web o pantalla, [PDF a PNG](./pdf-to-png) es una mejor opción.
+- Revisa el contenido del ZIP si algunas páginas necesitaron la alternativa PNG: quizá quieras convertirlas por separado.
+
+## Herramientas relacionadas
+
+- [PDF a PNG](./pdf-to-png)
+- [PDF a BMP](./pdf-to-bmp)
+- [PDF a JPG](./pdf-to-jpg)
diff --git a/docs/es/tools/pdf-to-webp.md b/docs/es/tools/pdf-to-webp.md
new file mode 100644
index 00000000..4d54855e
--- /dev/null
+++ b/docs/es/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF a WebP
+description: Convierte páginas de PDF a imágenes WebP con calidad ajustable. Archivos más pequeños que JPG con una calidad visual comparable.
+---
+
+# PDF a WebP
+
+Convierte cada página de un PDF en una imagen WebP. WebP suele producir archivos entre un 25 y un 35% más pequeños que JPG con la misma calidad percibida, lo que lo convierte en una gran opción para la web.
+
+## Cómo funciona
+
+1. Sube un PDF haciendo clic en la zona de carga o arrastrando un archivo hasta ella.
+2. Ajusta el control deslizante de **Calidad**.
+3. Haz clic en **Convertir** para procesar el archivo.
+4. Un único archivo `.webp` o un archivo ZIP se descarga automáticamente.
+
+## Opciones
+
+- **Calidad**: un control deslizante de 0% a 100% (por defecto 85%). Controla el nivel de compresión con pérdida. Los valores más altos conservan más detalle.
+
+Las páginas se renderizan internamente a escala 2x, lo que produce imágenes con aproximadamente el doble de las dimensiones nativas del PDF.
+
+## Formato de salida
+
+- **Una página**: `filename.webp`
+- **Varias páginas**: `filename_webps.zip` con `page_1.webp`, `page_2.webp`, etc.
+
+## Casos de uso
+
+- Preparar vistas previas de páginas para sitios web donde el ancho de banda importa.
+- Generar versiones de imagen ligeras de volantes o folletos para redes sociales.
+- Convertir por lotes documentos de varias páginas en un conjunto de imágenes optimizado para la web.
+
+## Consejos
+
+- WebP es compatible con todos los navegadores modernos. Para compatibilidad con sistemas antiguos, recurre a [PDF a JPG](./pdf-to-jpg).
+- Una calidad de 80-85% suele ser indistinguible del original en pantalla y mantiene los archivos pequeños.
+
+## Herramientas relacionadas
+
+- [PDF a JPG](./pdf-to-jpg)
+- [PDF a PNG](./pdf-to-png)
+- [PDF a BMP](./pdf-to-bmp)
diff --git a/docs/es/tools/pdf-to-word.md b/docs/es/tools/pdf-to-word.md
new file mode 100644
index 00000000..4cca53b0
--- /dev/null
+++ b/docs/es/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF a Word
+description: Convierte archivos PDF a documentos de Word (DOCX) editables. Admite la conversión por lotes de varios PDF a la vez.
+---
+
+# PDF a Word
+
+Convierte archivos PDF a documentos de Word (`.docx`) editables. La herramienta usa PyMuPDF para reconstruir el contenido del documento, conservando el texto, el formato básico y el diseño. Admite conversión individual y por lotes.
+
+## Cómo funciona
+
+1. Sube uno o más PDF haciendo clic en la zona de carga o arrastrando archivos hasta ella. Puedes agregar más archivos o quitar archivos concretos de la lista.
+2. Haz clic en **Convertir** para iniciar el procesamiento.
+3. Un solo archivo se descarga como `filename.docx`. Varios archivos se empaquetan en `converted-documents.zip`.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Cada PDF se convierte a DOCX con el motor de conversión integrado de PyMuPDF.
+
+## Formato de salida
+
+- **Un archivo**: `filename.docx`
+- **Varios archivos**: `converted-documents.zip` con un `.docx` por cada PDF de entrada.
+
+## Casos de uso
+
+- Editar el texto de un PDF que recibiste y necesitas modificar.
+- Convertir informes PDF archivados a un formato que los compañeros puedan editar en Microsoft Word o Google Docs.
+- Pasar contenido de contratos o propuestas en PDF a Word para revisarlos con control de cambios.
+- Migrar documentación antigua en PDF a un formato editable.
+
+## Consejos
+
+- Los diseños complejos con texto en varias columnas, formularios incrustados o muchos gráficos pueden no convertirse a la perfección. Revisa el resultado y ajusta el formato en tu procesador de texto.
+- Los PDF escaneados (solo imagen) producirán archivos DOCX vacíos o casi vacíos. Pásalos primero por OCR para agregar una capa de texto.
+- El modo por lotes es eficiente para convertir carpetas enteras de PDF: súbelos todos a la vez.
+
+## Herramientas relacionadas
+
+- [PDF a Texto](./pdf-to-text)
+- [PDF a Markdown](./pdf-to-markdown)
+- [Constructor de flujos de trabajo PDF](./pdf-workflow)
diff --git a/docs/es/tools/pdf-to-zip.md b/docs/es/tools/pdf-to-zip.md
new file mode 100644
index 00000000..ddd9f333
--- /dev/null
+++ b/docs/es/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDFs a ZIP
+description: Empaqueta varios archivos PDF en un único archivo ZIP para compartirlos y guardarlos fácilmente.
+---
+
+# PDFs a ZIP
+
+Agrupa varios archivos PDF en un único archivo ZIP. Es una herramienta de empaquetado sencilla: no convierte, comprime ni modifica los PDF.
+
+## Cómo funciona
+
+1. Sube varios archivos PDF con la zona de carga.
+2. Revisa la lista de archivos. Quita los que no quieras incluir.
+3. Haz clic en el botón de procesar.
+4. Un archivo ZIP con todos los PDF subidos se descarga de inmediato.
+
+## Características
+
+- Acepta cualquier cantidad de archivos PDF
+- Permite quitar archivos individuales antes de crear el archivo comprimido
+- Conserva los nombres de archivo originales dentro del ZIP
+- No modifica el contenido de los PDF: los archivos se empaquetan tal cual
+- Muestra el nombre y el tamaño de cada PDF subido
+
+## Casos de uso
+
+- Agrupar un conjunto de facturas o recibos para adjuntarlos a un correo
+- Empaquetar entregables de un proyecto (varios informes en PDF) para su entrega
+- Crear una única descarga para una colección de formularios o plantillas
+- Archivar un lote de documentos en un solo archivo comprimido
+
+## Consejos
+
+- El archivo ZIP usa los nombres de archivo originales de los PDF. Si tienes archivos con el mismo nombre, renómbralos antes de subirlos para evitar conflictos.
+- Esta herramienta no comprime los PDF en sí. Para reducir el tamaño, pásalos primero por Comprimir PDF y luego empaquétalos con esta herramienta.
+
+## Herramientas relacionadas
+
+- [Fusionar PDF](./merge-pdf)
+- [Dividir PDF](./split-pdf)
+- [Comprimir PDF](./compress-pdf)
diff --git a/docs/es/tools/pdf-workflow.md b/docs/es/tools/pdf-workflow.md
new file mode 100644
index 00000000..9bab6760
--- /dev/null
+++ b/docs/es/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Constructor de flujos de trabajo PDF
+description: Crea flujos de procesamiento de PDF personalizados de forma visual conectando nodos en un lienzo. Encadena operaciones como fusionar, comprimir, agregar marca de agua y exportar.
+---
+
+# Constructor de flujos de trabajo PDF
+
+El Constructor de flujos de trabajo te permite encadenar varias operaciones de PDF en un único flujo automatizado. En lugar de ejecutar las herramientas una por una, conectas un grafo visual de nodos (entrada, procesamiento, salida) y ejecutas todo con un clic. Tus archivos nunca salen del navegador.
+
+## Cómo funciona
+
+La interfaz se divide en tres paneles: una **caja de herramientas de nodos** a la izquierda, el **lienzo** en el centro y un **panel de ajustes** a la derecha que aparece al seleccionar un nodo.
+
+1. **Agrega nodos** haciendo clic en ellos en la barra lateral izquierda, o arrástralos directamente al lienzo. Usa la barra de búsqueda de la parte superior de la caja de herramientas para filtrar por nombre.
+2. **Conecta nodos** arrastrando desde un conector de salida (parte inferior de un nodo) hasta un conector de entrada (parte superior de otro). Las conexiones fluyen de arriba hacia abajo.
+3. **Configura los ajustes** haciendo clic en un nodo para abrir su panel de ajustes a la derecha. Cada tipo de nodo tiene sus propias opciones (rangos de páginas, controles de calidad, contraseñas, etc.).
+4. **Ejecuta el flujo de trabajo** haciendo clic en el botón **Ejecutar** de la barra de herramientas. El motor ejecuta los nodos en orden topológico, procesando cada uno en secuencia. Una barra de estado en la parte inferior muestra el progreso.
+5. **Descarga los resultados**: el nodo final de Descarga guarda el PDF resultante (o un ZIP si se generan varios archivos).
+
+## Categorías de nodos
+
+Los nodos se organizan en seis categorías, cada una con un color distinto en el lienzo:
+
+- **Entrada** (azul): Entrada PDF, Entrada de imagen, Word/Excel/PowerPoint a PDF y más de 15 convertidores de otros formatos que alimentan el flujo con archivos.
+- **Editar y anotar** (índigo): Recortar, Escala de grises, Invertir colores, Marca de agua, Números de página, Encabezado y pie de página, Efecto escáner, Ajustar colores, Color de fondo, Eliminar páginas en blanco, Eliminar anotaciones.
+- **Organizar y gestionar** (violeta): Fusionar, Dividir, Extraer páginas, Rotar, Eliminar páginas, Invertir, Agregar página en blanco, Dividir páginas, N-Up, Fijar tamaño de página, Combinar en una sola página, Folleto, Posterizar, Editar metadatos, Tabla de contenidos, OCR.
+- **Optimizar y reparar** (ámbar): Comprimir, Rasterizar, Linealizar, Enderezar, PDF a PDF/A, Fuente a contorno, Reparar.
+- **Proteger PDF** (rosa): Cifrar, Descifrar, Sanear, Aplanar, Firma digital, Censurar.
+- **Salida** (verde azulado): Descargar (detecta automáticamente si es un único PDF o un ZIP), PDF a imágenes, PDF a texto, PDF a DOCX, PDF a XLSX, PDF a CSV, PDF a SVG, PDF a Markdown, Extraer imágenes.
+
+## Guardar y cargar flujos de trabajo
+
+La barra de herramientas ofrece cuatro opciones de persistencia:
+
+- **Guardar**: almacena el flujo actual como una plantilla con nombre en el almacenamiento local de tu navegador. Puedes guardar varias plantillas.
+- **Cargar**: abre una ventana con todas las plantillas guardadas. Haz clic en Cargar para restaurar una o elimina las plantillas que ya no necesites.
+- **Exportar**: descarga el flujo de trabajo como un archivo `.json` para compartirlo o hacer una copia de seguridad.
+- **Importar**: carga un archivo de flujo de trabajo `.json` desde el disco y restaura todos los nodos, posiciones y conexiones.
+
+Las plantillas persisten entre sesiones en el almacenamiento local. Los archivos JSON exportados son portables entre navegadores y equipos.
+
+## Modelo de ejecución
+
+El motor construye un grafo de dependencias a partir de tus conexiones y ejecuta los nodos en orden topológico. Si algún nodo falla, la ejecución se detiene y el nodo con el error se marca en rojo. Algunas reglas que conviene recordar:
+
+- Todo flujo de trabajo necesita al menos un nodo de **Entrada** y uno de **Salida**.
+- El motor detecta dependencias circulares y bloquea la ejecución con un error.
+- El nodo **Cifrar** debe ser el último paso de procesamiento antes del nodo de salida. Colocarlo antes activará una advertencia de validación, porque los nodos posteriores no pueden operar con datos cifrados.
+- Los PDF protegidos con contraseña piden la contraseña durante la ejecución.
+- Se admiten entradas de varios PDF: el nodo Fusionar puede combinarlos, o los nodos de procesamiento por lotes procesarán cada PDF de forma individual.
+
+## Tipos de conectores
+
+Las conexiones usan conectores tipados para evitar cableados no válidos:
+
+- **PDF** (índigo): un único documento PDF.
+- **MultiPDF** (ámbar): varios documentos PDF agrupados.
+- **Image** (verde): un blob de imagen.
+
+## Opciones
+
+Cada nodo tiene su propia configuración accesible desde el panel de ajustes de la derecha. Algunos patrones comunes:
+
+- **Rangos de páginas** en los nodos Dividir, Extraer páginas y Eliminar páginas
+- **Controles de calidad** en los nodos de salida de conversión a imagen
+- **Campos de contraseña** en los nodos Cifrar y Descifrar
+- **Entradas de texto** para Marca de agua, Encabezado y pie de página y Editar metadatos
+- **Ángulos de rotación** en el nodo Rotar
+- **Nivel de compresión** en el nodo Comprimir
+- **Selección de idioma de OCR** en el nodo OCR
+
+## Casos de uso
+
+- **Flujo de procesamiento de facturas**: Entrada PDF -> OCR -> Extraer tablas -> Descargar como CSV.
+- **Estandarización de informes**: Word a PDF -> Fijar tamaño de página -> Agregar números de página -> Marca de agua -> Comprimir -> Descargar.
+- **Preparación para archivado**: Entrada PDF -> Reparar -> Aplanar -> Sanear -> PDF a PDF/A -> Descargar.
+- **Extracción de imágenes por lotes**: Entrada PDF (varios archivos) -> Extraer imágenes -> Descargar ZIP.
+- **Folletos listos para imprimir**: Entrada PDF -> Folleto -> Recortar -> Comprimir -> Descargar.
+- **Distribución segura**: Entrada PDF -> Censurar -> Eliminar anotaciones -> Cifrar -> Descargar.
+
+## Consejos
+
+- Usa **Supr** o **Retroceso** para eliminar del lienzo el nodo seleccionado.
+- Haz clic en el botón **X** de la barra de estado de un nodo para eliminarlo directamente.
+- Desplaza el lienzo haciendo clic y arrastrando en un espacio vacío. El cursor cambia a un icono de mano mientras te desplazas.
+- En el móvil, usa el botón **+** de la barra de herramientas para mostrar u ocultar la caja de herramientas de nodos.
+- Si tu flujo de trabajo produce varios archivos de salida, el nodo Descargar los agrupa automáticamente en un ZIP.
+- Empieza con algo sencillo: crea y prueba un flujo de dos nodos antes de añadir complejidad.
+
+## Herramientas relacionadas
+
+- [PDF a Texto](./pdf-to-text)
+- [PDF a Excel](./pdf-to-excel)
+- [Extraer imágenes](./extract-images)
+- [PDF a Markdown](./pdf-to-markdown)
diff --git a/docs/es/tools/png-to-pdf.md b/docs/es/tools/png-to-pdf.md
new file mode 100644
index 00000000..cd57ff1f
--- /dev/null
+++ b/docs/es/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG a PDF
+description: Convierte una o más imágenes PNG en un documento PDF con calidad ajustable, todo en tu navegador.
+---
+
+# PNG a PDF
+
+Convierte imágenes PNG a PDF conservando su resolución completa. Cada PNG se convierte en su propia página, con el tamaño de las dimensiones de la imagen original. La transparencia se gestiona automáticamente.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :------ | :---------- |
+| PNG | `.png` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta archivos PNG. Puedes seleccionar varios a la vez.
+2. Gestiona la lista de archivos: quita los que no quieras o agrega más.
+3. Elige un nivel de **Calidad del PDF** en el menú desplegable.
+4. Haz clic en **Convertir a PDF**. El resultado se descarga como `from_jpgs.pdf`.
+
+La herramienta usa pdf-lib para incrustar cada imagen directamente. Si un PNG no se puede incrustar de forma nativa (p. ej., por un perfil de color poco común), recurre a volver a renderizarlo en un canvas como JPEG.
+
+## Opciones
+
+**Calidad del PDF** controla la compresión que se aplica antes de incrustar:
+
+- **Alta calidad**: compresión mínima, el tamaño de archivo más grande.
+- **Calidad media** (por defecto): buen equilibrio entre tamaño y nitidez.
+- **Baja calidad**: compresión máxima, la salida más pequeña.
+
+## Casos de uso
+
+- Convertir capturas de pantalla en un PDF de varias páginas para informes de errores o documentación
+- Empaquetar exportaciones de diseños de interfaz en un solo archivo para su revisión
+- Convertir exportaciones de diagramas (draw.io, Excalidraw) en un PDF para compartir
+- Reunir un conjunto de imágenes de gráficos en un informe
+
+## Consejos
+
+- Los archivos PNG con transparencia reciben un fondo blanco en el PDF. Si necesitas otro fondo, edita las imágenes de antemano.
+- Para capturas de pantalla y diagramas con bordes nítidos y texto, la calidad Alta evita los artefactos de compresión JPEG. Media o Baja pueden convertir internamente a JPEG.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
+- [SVG a PDF](./svg-to-pdf)
diff --git a/docs/es/tools/posterize-pdf.md b/docs/es/tools/posterize-pdf.md
new file mode 100644
index 00000000..e4b2cf6e
--- /dev/null
+++ b/docs/es/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Posterizar PDF
+description: Divide las páginas de un PDF en una cuadrícula de páginas más pequeñas para imprimir en gran formato repartido en varias hojas.
+---
+
+# Posterizar PDF
+
+Divide cada página de un PDF en una cuadrícula de subpáginas más pequeñas. Es la herramienta para imprimir una sola página repartida en varias hojas de papel, que luego unes para crear un póster o una pancarta grande.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Define el número de **filas** y **columnas** de la cuadrícula (por ejemplo, 2 filas x 2 columnas divide cada página en 4 subpáginas).
+3. Opcionalmente, indica un rango de páginas para limitar cuáles se posterizan.
+4. El lienzo de vista previa muestra una cuadrícula superpuesta sobre la página actual para que visualices los cortes.
+5. Navega entre páginas para comprobar la cuadrícula en distintas páginas.
+6. Haz clic en el botón de procesar. Cada celda de la cuadrícula se convierte en su propia página del PDF resultante.
+
+## Características
+
+- Número de filas y columnas configurable para cuadrículas flexibles
+- Vista previa en vivo con la cuadrícula superpuesta que muestra exactamente dónde se dividirán las páginas
+- Filtro de rango de páginas para posterizar solo páginas concretas
+- Navegación página por página en la vista previa
+- Instantáneas de páginas en caché para navegar rápido por la vista previa
+- Las líneas rojas discontinuas de la cuadrícula marcan claramente los límites de corte
+
+## Opciones
+
+| Opción | Descripción |
+| -------------------- | -------------------------------------------------- |
+| **Filas** | Número de divisiones horizontales (por defecto: 1) |
+| **Columnas** | Número de divisiones verticales (por defecto: 1) |
+| **Rango de páginas** | Qué páginas posterizar (vacío = todas las páginas) |
+
+## Casos de uso
+
+- Imprimir un PDF del tamaño de un póster en hojas A4 o Carta estándar para montarlo en una pared
+- Crear pancartas grandes a partir de un diseño PDF de una sola página
+- Dividir planos técnicos de gran tamaño en teselas imprimibles
+- Hacer impresiones de gran formato sin acceso a una impresora de formato ancho
+
+## Consejos
+
+- Una cuadrícula de 2x2 convierte una página en 4 páginas. Una de 3x3 convierte una página en 9. Planifica la cuadrícula según el tamaño que quieras para el resultado montado.
+- La cuadrícula de la vista previa te ayuda a comprobar que el contenido importante no caiga sobre una línea de corte. Ajusta filas/columnas si hace falta.
+- Para la operación inversa (colocar varias páginas en una sola hoja), usa [N-Up PDF](./n-up-pdf).
+
+## Herramientas relacionadas
+
+- [N-Up PDF](./n-up-pdf)
+- [Dividir páginas](./divide-pages)
+- [Dividir PDF](./split-pdf)
diff --git a/docs/es/tools/powerpoint-to-pdf.md b/docs/es/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..b206056d
--- /dev/null
+++ b/docs/es/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint a PDF
+description: Convierte presentaciones de PowerPoint (PPT, PPTX) y archivos ODP a PDF conservando el formato de las diapositivas.
+---
+
+# PowerPoint a PDF
+
+Convierte archivos de presentación a PDF. Cada diapositiva se convierte en una página del documento resultante, con texto, imágenes, formas y transiciones renderizados mediante un motor LibreOffice que funciona en el navegador. Admite formatos de PowerPoint modernos y antiguos, además del formato OpenDocument Presentation.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :------------------------ | :---------- |
+| PowerPoint (moderno) | `.pptx` |
+| PowerPoint (antiguo) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos de presentación.
+2. Revisa la lista de archivos. Añade más o quita los que no necesites.
+3. Haz clic en **Convertir a PDF**. El motor LibreOffice se carga la primera vez que lo usas y luego convierte cada archivo.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se empaquetan en `powerpoint-converted.zip`.
+
+## Opciones
+
+Esta herramienta no tiene ajustes adicionales. Las diapositivas se renderizan con sus dimensiones originales.
+
+## Resultado
+
+| Número de archivos | Resultado |
+| :----------------- | :------------------------------------------------------------------- |
+| 1 archivo | Descarga de un único PDF (nombre original con extensión `.pdf`) |
+| 2 o más | Archivo ZIP (`powerpoint-converted.zip`) con un PDF por cada archivo |
+
+## Casos de uso
+
+- Convertir una presentación a PDF antes de compartirla con un público que quizá no tenga PowerPoint
+- Crear una versión imprimible de un conjunto de diapositivas para una conferencia o un taller
+- Archivar presentaciones en un formato que se ve igual en todos los dispositivos
+- Convertir por lotes una biblioteca de presentaciones ODP de LibreOffice Impress a PDF
+- Generar una versión PDF de una presentación comercial para enviar por correo
+
+## Consejos
+
+- Las animaciones y transiciones de las diapositivas no se representan en el PDF. Cada diapositiva se captura como una página estática.
+- Los vídeos incrustados no aparecerán en el resultado. Sustitúyelos por una captura de pantalla o una imagen de marcador si lo necesitas.
+- Las notas del orador no se incluyen en la exportación a PDF predeterminada. Si necesitas las notas, exporta primero desde la vista nativa "Imprimir notas" de PowerPoint.
+- El motor LibreOffice se guarda en caché tras la primera carga, así que convertir una segunda presentación en la misma sesión es mucho más rápido.
+
+## Herramientas relacionadas
+
+- [Word a PDF](./word-to-pdf)
+- [Excel a PDF](./excel-to-pdf)
+- [Imágenes a PDF](./image-to-pdf)
diff --git a/docs/es/tools/prepare-pdf-for-ai.md b/docs/es/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..f9c64223
--- /dev/null
+++ b/docs/es/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Preparar PDF para IA
+description: Extrae el contenido de un PDF en JSON estructurado y optimizado para LLM y flujos de IA como LlamaIndex. Admite procesamiento por lotes.
+---
+
+# Preparar PDF para IA
+
+Extrae el contenido de archivos PDF y lo estructura como JSON optimizado para que lo ingieran modelos de lenguaje de gran tamaño (LLM) y frameworks de IA como LlamaIndex. El contenido de cada página se extrae y se organiza en un formato estructurado listo para flujos RAG, chatbots o sistemas de búsqueda semántica.
+
+## Cómo funciona
+
+1. Sube uno o más PDF haciendo clic en la zona de carga o arrastrando archivos hasta ella.
+2. Haz clic en **Extraer** para iniciar el procesamiento.
+3. Un solo archivo se descarga como `filename_llm.json`. Varios archivos generan un archivo `pdf-for-ai.zip`.
+
+La herramienta usa la integración de PyMuPDF con LlamaIndex para extraer el contenido por página con metadatos, y produce un resultado que se puede cargar directamente en frameworks de IA.
+
+## Opciones
+
+Esta herramienta no tiene opciones configurables. Todas las páginas se extraen con el texto completo y los metadatos.
+
+## Formato de salida
+
+- **Un solo archivo**: `filename_llm.json`
+- **Varios archivos**: `pdf-for-ai.zip` con un `_llm.json` por cada PDF de entrada.
+
+El JSON resultante sigue el esquema de documentos de LlamaIndex, con el texto de cada página y campos de metadatos.
+
+## Casos de uso
+
+- Preparar documentos PDF para flujos de generación aumentada por recuperación (RAG).
+- Crear una base de conocimiento consultable a partir de archivos PDF para un chatbot de IA.
+- Alimentar informes en PDF a flujos de análisis basados en LLM.
+- Preprocesar artículos científicos para sistemas de búsqueda semántica y de preguntas y respuestas.
+- Crear datos de entrenamiento estructurados a partir de colecciones de documentos PDF.
+
+## Consejos
+
+- Para extraer texto sin formato específico para IA, usa [PDF a texto](./pdf-to-text).
+- Para obtener Markdown que conserve los encabezados y la estructura, usa [PDF a Markdown](./pdf-to-markdown).
+- Los PDF escaneados producirán un resultado vacío o mínimo. Pásalos antes por OCR para añadir una capa de texto antes de extraer.
+
+## Herramientas relacionadas
+
+- [PDF a texto](./pdf-to-text)
+- [PDF a Markdown](./pdf-to-markdown)
+- [PDF a JSON](./pdf-to-json)
diff --git a/docs/es/tools/protect-pdf.md b/docs/es/tools/protect-pdf.md
new file mode 100644
index 00000000..0703b710
--- /dev/null
+++ b/docs/es/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Proteger PDF
+description: Protege archivos PDF con contraseña mediante cifrado AES de 256 bits. Define contraseñas de usuario y de propietario con restricciones de uso configurables.
+---
+
+# Proteger PDF
+
+Bloquea tu PDF con una contraseña para que solo las personas autorizadas puedan abrirlo. BentoPDF usa cifrado AES de 256 bits, el mismo estándar que utilizan bancos y agencias gubernamentales, aplicado por completo en tu navegador mediante QPDF.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Introduce una **contraseña de usuario** (obligatoria). Es la contraseña que se necesitará para abrir el archivo.
+3. Opcionalmente, introduce una **contraseña de propietario**. Si la defines, el PDF obtiene restricciones de uso que impiden imprimir, editar, copiar y anotar.
+4. Haz clic en **Cifrar PDF**.
+5. Descarga el archivo cifrado.
+
+## Tipos de contraseña
+
+### Contraseña de usuario (obligatoria)
+
+La contraseña de usuario es la que escriben los destinatarios para abrir el PDF. Sin ella, el documento es completamente inaccesible. Todo PDF cifrado debe tener una.
+
+### Contraseña de propietario (opcional)
+
+La contraseña de propietario controla lo que un usuario autorizado puede hacer después de abrir el archivo. Cuando defines una contraseña de propietario distinta, BentoPDF aplica automáticamente el conjunto de restricciones más estricto:
+
+- Modificación desactivada
+- Extracción/copia desactivada
+- Impresión desactivada
+- Anotación desactivada
+- Rellenado de formularios desactivado
+- Ensamblaje del documento desactivado
+
+Si dejas en blanco la contraseña de propietario, el PDF se cifra (sigue necesitando la contraseña de usuario para abrirse), pero no tiene restricciones de uso una vez abierto.
+
+## Detalles del cifrado
+
+- **Algoritmo**: AES-256 (Advanced Encryption Standard de 256 bits)
+- **Longitud de clave**: 256 bits
+- **Estándar**: cifrado PDF 2.0 (implementación de QPDF)
+
+Con la tecnología actual, romper AES-256 por fuerza bruta es computacionalmente inviable. La seguridad de tu PDF cifrado depende por completo de la fortaleza de tu contraseña.
+
+## Casos de uso
+
+- Proteger informes financieros confidenciales antes de enviarlos por correo
+- Asegurar documentos legales compartidos con la parte contraria
+- Añadir una contraseña a historiales médicos o información de identificación personal
+- Distribuir contenido de pago (libros electrónicos, informes) con control de acceso
+- Cumplir políticas de protección de datos que exigen cifrado en reposo
+
+## Consejos
+
+- Usa una contraseña fuerte y única. Lo ideal es una frase de 12 o más caracteres con mayúsculas, minúsculas, números y símbolos.
+- Comparte la contraseña por un canal distinto (teléfono, mensaje de texto), nunca en el mismo correo que el PDF.
+- Si solo necesitas restringir acciones (sin imprimir, sin copiar) sin exigir contraseña para abrirlo, usa en su lugar la herramienta Cambiar permisos.
+
+## Herramientas relacionadas
+
+- [Descifrar PDF](./unlock-pdf): quita el cifrado cuando conoces la contraseña
+- [Cambiar permisos](./change-permissions): modifica restricciones de uso concretas
+- [Eliminar restricciones](./remove-restrictions): elimina toda la seguridad de un PDF
+- [Sanear PDF](./sanitize-pdf): elimina contenido oculto antes de cifrar
diff --git a/docs/es/tools/psd-to-pdf.md b/docs/es/tools/psd-to-pdf.md
new file mode 100644
index 00000000..c2dd1f86
--- /dev/null
+++ b/docs/es/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD a PDF
+description: Convierte archivos de Photoshop (PSD) a PDF en tu navegador. Gratis, privado y sin necesidad de software de Adobe.
+---
+
+# PSD a PDF
+
+Convierte archivos PSD de Adobe Photoshop en documentos PDF. PSD es el formato nativo de Photoshop y abrirlo normalmente exige un software caro de Adobe. Esta herramienta renderiza la composición aplanada de tu archivo PSD como una página PDF a resolución completa.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :-------------- | :-------- | :------------------------------------- |
+| Adobe Photoshop | `.psd` | Renderiza la imagen compuesta aplanada |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos PSD. Se admiten varios archivos.
+2. Revisa la lista de archivos. Quita los que no quieras con el icono de la papelera, o usa **Añadir más archivos** para incluir otros.
+3. Haz clic en **Convertir a PDF**. El motor PyMuPDF lee el archivo PSD e incrusta la imagen compuesta en una página PDF a la resolución original.
+4. Un solo PSD genera un PDF. Si subes varios archivos PSD, se combinan en un único PDF de varias páginas llamado `psd_to_pdf.pdf`, y cada PSD pasa a ser una página.
+
+## Opciones
+
+No se necesita ningún ajuste. El conversor usa los datos de imagen aplanada del archivo PSD.
+
+## Casos de uso
+
+- Previsualizar diseños de Photoshop sin abrir Photoshop
+- Enviar pruebas de diseño a clientes que no tienen Adobe Creative Suite
+- Imprimir obras de alta resolución a partir de archivos PSD
+- Crear un portafolio en PDF a partir de varios archivos de diseño PSD: cada uno pasa a ser una página de un único documento
+
+## Consejos
+
+- La conversión renderiza la vista compuesta (aplanada) del PSD. Las capas individuales, las capas de ajuste y los efectos de capa no se conservan como elementos separados en el PDF.
+- Varios archivos PSD se combinan en un único PDF de varias páginas en lugar de PDF individuales. Es útil para crear portafolios o lookbooks.
+- Los archivos PSD de muy alta resolución (archivos de impresión a 300+ DPI) producirán PDF grandes. La herramienta conserva la resolución completa.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [VSD a PDF](./vsd-to-pdf)
diff --git a/docs/es/tools/pub-to-pdf.md b/docs/es/tools/pub-to-pdf.md
new file mode 100644
index 00000000..ff220061
--- /dev/null
+++ b/docs/es/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB a PDF
+description: Convierte archivos de Microsoft Publisher (PUB) a PDF en tu navegador. Gratis, privado y sin necesidad de instalar software.
+---
+
+# PUB a PDF
+
+Convierte archivos de Microsoft Publisher a PDF. Publisher es una herramienta de autoedición incluida en algunas ediciones de Microsoft Office, pero la mayoría de la gente no la tiene instalada. Esta herramienta permite a cualquiera convertir archivos PUB a PDF directamente en el navegador, sin software de Microsoft.
+
+## Formatos compatibles
+
+| Formato | Extensión | Notas |
+| :------------------ | :-------- | :------------------------ |
+| Microsoft Publisher | `.pub` | Documentos de autoedición |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos PUB. Puedes subir varios archivos a la vez.
+2. Revisa la lista de archivos. Quita los que no quieras con el icono de la papelera, o haz clic en **Añadir más archivos** para agregar otros.
+3. Haz clic en **Convertir a PDF**. Un motor basado en LibreOffice se carga en el navegador y convierte cada archivo PUB, conservando el diseño, las imágenes y los cuadros de texto.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se entregan en un archivo ZIP llamado `pub-to-pdf.zip`.
+
+## Opciones
+
+No se necesita ninguna configuración adicional. El conversor gestiona automáticamente el motor de maquetación de PUB.
+
+## Casos de uso
+
+- Abrir un folleto o boletín en PUB de un cliente sin comprar Microsoft Publisher
+- Convertir boletines parroquiales, programas de eventos o boletines escolares creados en Publisher
+- Archivar material de marketing de Publisher en un formato accesible para todos
+- Imprimir archivos PUB en un equipo que no tiene Publisher instalado
+
+## Consejos
+
+- Los diseños complejos de Publisher con cuadros de texto en capas y posicionamiento preciso pueden desplazarse ligeramente durante la conversión. Revisa el resultado si la posición exacta es crítica.
+- El motor LibreOffice se inicializa una vez por sesión. La primera conversión tarda más; las siguientes son más rápidas.
+- Para una conversión lo más fiel posible de los archivos de Publisher, asegúrate de que las fuentes personalizadas del original sean fuentes estándar del sistema.
+
+## Herramientas relacionadas
+
+- [VSD a PDF](./vsd-to-pdf)
+- [ODP a PDF](./odp-to-pdf)
diff --git a/docs/es/tools/rasterize-pdf.md b/docs/es/tools/rasterize-pdf.md
new file mode 100644
index 00000000..9f67cd9f
--- /dev/null
+++ b/docs/es/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasterizar PDF
+description: Convierte las páginas de un PDF en un PDF basado en imágenes. Aplana todas las capas, elimina el texto seleccionable y controla los DPI y el formato de imagen.
+---
+
+# Rasterizar PDF
+
+La rasterización convierte cada página de un PDF en una imagen y vuelve a ensamblar esas imágenes en un PDF. El resultado se ve idéntico al original, pero no contiene texto seleccionable, elementos interactivos ni capas editables. Es, en la práctica, una fotocopia de alta calidad.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF.
+2. Define los **DPI** (resolución) del resultado rasterizado.
+3. Elige un **formato de imagen**: PNG para calidad sin pérdida o JPEG para archivos más pequeños.
+4. Opcionalmente, marca **Convertir a escala de grises**.
+5. Haz clic en **Rasterizar PDF**. Si son varios archivos, se descargan como ZIP.
+
+## Opciones
+
+| Ajuste | Valores | Por defecto |
+| --------------------- | ------------------------------------ | ----------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Formato de imagen** | PNG (sin pérdida), JPEG (más ligero) | PNG |
+| **Escala de grises** | Sí/No | No |
+
+## Guía de DPI
+
+- **72**: solo para ver en pantalla, el menor tamaño de archivo
+- **150**: buen equilibrio para uso general
+- **200**: texto más nítido, tamaño de archivo moderado
+- **300**: resultado con calidad de impresión
+- **600**: archivo de alta calidad o impresión profesional
+
+## Casos de uso
+
+- Impedir la extracción de texto de documentos confidenciales antes de compartirlos
+- Eliminar problemas de dependencia de fuentes convirtiendo el texto en píxeles
+- Crear una versión "plana" de un PDF con capas complejas o transparencias que se renderizan distinto según el visor
+- Preparar un PDF para un sistema que solo acepta entradas basadas en imágenes
+- Eliminar contenido oculto (como cambios registrados o datos de formularios) reduciendo el PDF a imágenes puras
+
+## Consejos
+
+- 150 DPI en PNG es un buen valor por defecto. Sube solo si necesitas imprimir o ampliar detalles finos.
+- JPEG produce archivos notablemente más pequeños, pero introduce artefactos de compresión en los bordes nítidos del texto.
+- La rasterización es irreversible: conserva tu PDF original por si más adelante necesitas texto editable.
+
+## Herramientas relacionadas
+
+- [Comprimir PDF](./compress-pdf): reduce el tamaño del PDF rasterizado
+- [Enderezar PDF](./deskew-pdf): endereza las páginas antes de rasterizar documentos escaneados
+- [Fuente a contorno](./font-to-outline): convierte las fuentes en trazados vectoriales si quieres conservar la escalabilidad
+- [Aplanar PDF](./flatten-pdf): aplana formularios sin convertirlos en imágenes
diff --git a/docs/es/tools/remove-annotations.md b/docs/es/tools/remove-annotations.md
new file mode 100644
index 00000000..6101aa77
--- /dev/null
+++ b/docs/es/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Eliminar anotaciones
+description: Elimina con un clic todos los comentarios, resaltados, enlaces y otras anotaciones de tu PDF.
+---
+
+# Eliminar anotaciones
+
+Limpia tu PDF eliminando todas las anotaciones: comentarios, resaltados, notas adhesivas, marcado de texto, enlaces, sellos y cualquier otro objeto de anotación incrustado en el documento. El contenido subyacente de la página (texto, imágenes, gráficos) no se toca.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. La herramienta detecta el número de páginas del documento y muestra la información del archivo.
+3. Haz clic en **Eliminar anotaciones** para procesar.
+4. El PDF limpio se descarga automáticamente sin ninguna anotación.
+
+## Características
+
+- Elimina todos los tipos de anotación: comentarios, resaltados, subrayados, tachados, notas adhesivas, sellos, enlaces y marcado de formularios
+- Actúa sobre todas las páginas del documento
+- Conserva todo el contenido que no son anotaciones (texto, imágenes, gráficos vectoriales, campos de formulario)
+- Muestra el número de páginas y el tamaño del archivo antes de procesar
+
+## Casos de uso
+
+- Limpiar un documento antes de la distribución final tras una ronda de revisión en la que varios revisores añadieron comentarios
+- Quitar resaltados y notas adhesivas de una guía de estudio compartida
+- Eliminar las anotaciones de enlace de un documento antes de archivarlo
+- Preparar una versión "limpia" de un documento legal que se anotó mucho durante la negociación
+- Quitar los comentarios de los revisores de un manuscrito antes de enviarlo a imprenta
+
+## Consejos
+
+- Esta herramienta elimina las anotaciones a nivel de estructura del PDF, así que el resultado conserva el texto seleccionable y la calidad original, sin rasterización.
+- Si solo quieres quitar algunas anotaciones en lugar de todas, usa el [Editor de PDF](./edit-pdf) para borrar anotaciones concretas.
+- Las anotaciones de los PDF aplanados (donde las anotaciones se han fusionado con el contenido de la página) no se pueden quitar, porque ya no son objetos independientes.
+
+## Herramientas relacionadas
+
+- [Editor de PDF](./edit-pdf)
+- [Añadir marca de agua](./add-watermark)
+- [Firmar PDF](./sign-pdf)
diff --git a/docs/es/tools/remove-blank-pages.md b/docs/es/tools/remove-blank-pages.md
new file mode 100644
index 00000000..05678826
--- /dev/null
+++ b/docs/es/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Eliminar páginas en blanco
+description: Detecta y elimina automáticamente las páginas en blanco o casi en blanco de tu PDF con sensibilidad ajustable.
+---
+
+# Eliminar páginas en blanco
+
+Analiza tu PDF en busca de páginas en blanco o casi en blanco y las elimina automáticamente. La herramienta renderiza cada página y analiza el contenido de sus píxeles para determinar si está en blanco, y luego te permite confirmar qué páginas quitar antes de procesar.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Ajusta el control deslizante de **Sensibilidad** para definir lo estricta que es la definición de "en blanco".
+3. Haz clic en **Detectar páginas en blanco** para analizar el documento.
+4. La herramienta muestra miniaturas de las páginas en blanco detectadas para que las revises.
+5. Confirma la selección y descarga el PDF limpio sin las páginas en blanco.
+
+## Opciones
+
+- **Sensibilidad**: un control deslizante de 0% a 100% (80% por defecto). Los valores altos son más estrictos y solo marcan páginas completamente o casi blancas. Los valores bajos son más permisivos y detectan páginas con contenido mínimo, como un solo punto o una marca de agua tenue.
+
+## Características
+
+- Análisis a nivel de píxel de cada página para detectar contenido en blanco
+- Control deslizante de sensibilidad ajustable para afinar la detección
+- Vista previa en miniatura de las páginas en blanco detectadas para verificarlas manualmente
+- Conserva todas las páginas que no están en blanco exactamente como están
+- Gestiona documentos de cualquier tamaño o número de páginas
+- Indicador de progreso durante el análisis
+
+## Casos de uso
+
+- Limpiar documentos escaneados en los que el escáner capturó los reversos vacíos de originales a una sola cara
+- Quitar páginas separadoras de lotes de documentos escaneados en masa
+- Eliminar páginas en blanco insertadas por sistemas de gestión documental
+- Limpiar PDF exportados desde procesadores de texto que a veces incluyen páginas en blanco al final
+- Reducir el tamaño del archivo eliminando páginas vacías innecesarias
+
+## Consejos
+
+- Empieza con la sensibilidad por defecto del 80% y ajústala desde ahí. Si la herramienta no detecta páginas que a ti te parecen en blanco, baja la sensibilidad. Si marca páginas con contenido ligero que quieres conservar, súbela.
+- La herramienta renderiza cada página para analizar su contenido, así que el tiempo de procesamiento crece con el número de páginas. En documentos muy grandes, espera una breve pausa.
+- Revisa las páginas en blanco detectadas en la vista previa de miniaturas antes de confirmar la eliminación. Las páginas con encabezados, pies de página o marcas de agua tenues pueden marcarse según los ajustes de sensibilidad.
+
+## Herramientas relacionadas
+
+- [Recortar PDF](./crop-pdf)
+- [Editor de PDF](./edit-pdf)
+- [Números de página](./page-numbers)
diff --git a/docs/es/tools/remove-metadata.md b/docs/es/tools/remove-metadata.md
new file mode 100644
index 00000000..c36fc13c
--- /dev/null
+++ b/docs/es/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Eliminar metadatos
+description: Elimina todos los metadatos ocultos de los archivos PDF, incluidos autor, título, fecha de creación, productor, datos XMP e ID de documento.
+---
+
+# Eliminar metadatos
+
+Todo PDF lleva metadatos que pueden revelar quién lo creó, qué software se usó, cuándo se modificó por última vez y más. Esta herramienta elimina todo: el diccionario de información, los flujos de metadatos XMP, los ID de documento y los datos específicos de aplicaciones, y deja un documento limpio sin rastro de su origen.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Haz clic en **Eliminar metadatos**.
+3. Descarga el archivo limpio.
+
+No hay opciones que configurar. La herramienta es exhaustiva por diseño: lo borra todo.
+
+## Qué se elimina
+
+- **Campos del diccionario de información**: título, autor, asunto, palabras clave, creador, productor, fecha de creación, fecha de modificación
+- **Flujo de metadatos XMP**: el bloque de metadatos basado en XML almacenado en el catálogo del documento
+- **ID de documento**: identificadores únicos en el trailer del PDF que sirven para rastrear un documento entre sistemas
+- **PieceInfo**: metadatos específicos de aplicaciones añadidos por programas como Illustrator o InDesign
+
+## Qué se conserva
+
+- Todo el contenido visible de las páginas (texto, imágenes, gráficos)
+- Campos de formulario y anotaciones
+- Marcadores y enlaces
+- La estructura del documento en sí
+
+## Casos de uso
+
+- Quitar tu nombre y organización de un documento antes de publicarlo de forma anónima
+- Eliminar marcas de tiempo de creación que revelan cuándo se preparó un documento
+- Limpiar las cadenas de productor que identifican tu software PDF
+- Preparar documentos para envíos regulatorios que exigen PDF sin metadatos
+- Eliminar rastros del historial de edición antes de compartir un documento externamente
+
+## Consejos
+
+- Usa primero la herramienta Ver metadatos para comprobar exactamente qué metadatos contiene tu PDF antes de eliminarlos.
+- Si necesitas eliminar metadatos _y_ JavaScript, anotaciones y archivos incrustados, usa Sanear PDF para una limpieza más a fondo.
+- La eliminación de metadatos es permanente. Conserva el original por si más adelante necesitas esos datos.
+
+## Herramientas relacionadas
+
+- [Sanear PDF](./sanitize-pdf): elimina metadatos, además de scripts, adjuntos y más
+- [Cifrar PDF](./protect-pdf): protege con contraseña el PDF limpio
+- [Comprimir PDF](./compress-pdf): eliminar metadatos puede reducir ligeramente el tamaño del archivo; comprime para ahorrar más
diff --git a/docs/es/tools/remove-restrictions.md b/docs/es/tools/remove-restrictions.md
new file mode 100644
index 00000000..a55ade95
--- /dev/null
+++ b/docs/es/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Eliminar restricciones
+description: Elimina la protección con contraseña, las restricciones de impresión, los bloqueos de edición y los límites de copia de los archivos PDF.
+---
+
+# Eliminar restricciones
+
+Los PDF pueden llevar dos tipos de contraseña: una contraseña de usuario (necesaria para abrir el archivo) y una contraseña de propietario (controla lo que puedes hacer con él). Esta herramienta elimina ambas, junto con todas las restricciones asociadas: bloqueos de impresión, edición, copia y anotación.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Si el PDF tiene una contraseña de propietario, introdúcela en el campo **Contraseña de propietario**. Déjalo en blanco si el PDF solo tiene restricciones de uso sin contraseña.
+3. Haz clic en **Eliminar restricciones**.
+4. Descarga el PDF sin restricciones.
+
+La herramienta usa las opciones `--decrypt` y `--remove-restrictions` de QPDF para producir una copia limpia y sin restricciones.
+
+## Qué se elimina
+
+- La protección con contraseña (tanto la de usuario como la de propietario)
+- Las restricciones de impresión
+- Las restricciones de edición
+- Las restricciones de copia de texto e imágenes
+- Las restricciones de anotación y comentarios
+- Cualquier otra limitación de seguridad codificada en el PDF
+
+## Casos de uso
+
+- Desbloquear un PDF que es tuyo pero cuya contraseña definiste hace años
+- Quitar las restricciones de impresión de un documento al que tienes acceso legítimo
+- Habilitar copiar y pegar en material de referencia para tomar notas
+- Preparar PDF para herramientas de accesibilidad que no pueden manejar documentos restringidos
+
+## Consejos
+
+- Debes conocer la contraseña de propietario si hay una. Esta herramienta no descifra ni fuerza contraseñas.
+- Si necesitas mantener el archivo cifrado pero cambiar permisos concretos, usa en su lugar la herramienta Cambiar permisos.
+- El archivo resultante no tiene ningún cifrado: cualquiera que lo reciba podrá abrirlo libremente.
+
+## Herramientas relacionadas
+
+- [Descifrar PDF](./unlock-pdf): desbloquea un PDF cuando conoces la contraseña de usuario
+- [Cifrar PDF](./protect-pdf): vuelve a aplicar el cifrado con nuevos ajustes
+- [Cambiar permisos](./change-permissions): modifica de forma selectiva qué acciones se permiten
diff --git a/docs/es/tools/repair-pdf.md b/docs/es/tools/repair-pdf.md
new file mode 100644
index 00000000..36ae75aa
--- /dev/null
+++ b/docs/es/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Reparar PDF
+description: Recupera datos de archivos PDF corruptos o dañados con el motor de reparación de QPDF. Admite procesamiento por lotes.
+---
+
+# Reparar PDF
+
+Cuando un PDF no se abre, muestra contenido ilegible o provoca errores en tu visor, esta herramienta intenta reconstruir su estructura interna. Usa el motor de reparación de QPDF, que puede recuperar datos de muchos tipos de corrupción: tablas de referencias cruzadas rotas, flujos truncados, referencias de objetos no válidas y más.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF dañados.
+2. Haz clic en **Reparar PDF**.
+3. Un solo archivo reparado se descarga directamente. Varios archivos generan un archivo ZIP.
+
+La herramienta pasa cada archivo por QPDF con la opción `--decrypt`, que obliga a QPDF a leer y reescribir toda la estructura del PDF, corrigiendo por el camino los problemas recuperables.
+
+## Características
+
+- Reparación por lotes de varios PDF en una sola operación
+- Detección automática de archivos recuperables y no recuperables
+- Informe de éxito o fallo por archivo al procesar varios archivos
+- Usa QPDF (WebAssembly), una biblioteca de transformación de PDF probada a fondo
+
+## Qué puede arreglar
+
+- Tablas de referencias cruzadas rotas o ausentes
+- Finales de archivo truncados por descargas incompletas
+- Numeración de objetos y longitudes de flujo no válidas
+- Inconsistencias estructurales menores de generadores de PDF defectuosos
+- Restos de cifrado de intentos de descifrado fallidos
+
+## Qué no puede arreglar
+
+- Archivos muy truncados en los que falta la mayor parte de los datos de contenido
+- PDF cifrados con una contraseña que no tienes
+- Archivos que en realidad no son PDF (extensión de archivo incorrecta)
+- Corrupción de imágenes dentro del PDF (se arregla la estructura, pero los datos de píxeles no se regeneran)
+
+## Casos de uso
+
+- Recuperar un PDF de una descarga fallida por correo
+- Abrir archivos producidos por generadores de PDF antiguos o no estándar
+- Arreglar PDF que funcionan en un visor pero no en otro
+- Preparar documentos de archivo dañados para su almacenamiento a largo plazo
+
+## Consejos
+
+- Si la reparación falla, prueba a abrir el archivo primero en un navegador: los navegadores tienen su propia lógica de recuperación y pueden renderizar suficiente contenido para volver a guardarlo.
+- Para PDF cifrados que fallan al repararse, prueba primero Descifrar PDF y después repara el resultado descifrado.
+
+## Herramientas relacionadas
+
+- [Comprimir PDF](./compress-pdf): limpia aún más la estructura del PDF reparado
+- [Linealizar PDF](./linearize-pdf): optimiza el archivo reparado para su entrega web
+- [Aplanar PDF](./flatten-pdf): aplana formularios que puedan haberse dañado
diff --git a/docs/es/tools/reverse-pages.md b/docs/es/tools/reverse-pages.md
new file mode 100644
index 00000000..7f20ade7
--- /dev/null
+++ b/docs/es/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Invertir páginas
+description: Invierte el orden de las páginas de uno o más archivos PDF para que la última página pase a ser la primera.
+---
+
+# Invertir páginas
+
+Invierte el orden de las páginas de un PDF para que la última página pase a ser la primera, la penúltima la segunda, y así sucesivamente. Admite el procesamiento por lotes de varios archivos a la vez.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF.
+2. Haz clic en el botón de procesar.
+3. Cada archivo se invierte de forma independiente. Si subiste varios archivos, el resultado es un archivo ZIP con todos los PDF invertidos.
+4. Un solo archivo se descarga directamente como PDF invertido.
+
+## Características
+
+- Procesamiento por lotes: invierte varios PDF en una sola operación
+- Salida de un solo archivo para un PDF, ZIP para varios
+- Botones para quitar cada archivo antes de procesar
+- Conserva todo el contenido y el formato de las páginas
+
+## Casos de uso
+
+- Arreglar un documento que se escaneó en orden inverso
+- Preparar un PDF de presentación para leerlo de atrás hacia delante
+- Invertir el orden de las páginas para flujos de impresión que alimentan las páginas al revés
+- Corregir un documento cuyas páginas se ensamblaron por error al revés
+
+## Consejos
+
+- Cada archivo de un lote se invierte de forma independiente: los archivos en sí no se reordenan entre ellos.
+- Para reordenar páginas con más control (no solo una inversión completa), usa [Duplicar y organizar](./organize-pdf).
+
+## Herramientas relacionadas
+
+- [Duplicar y organizar](./organize-pdf)
+- [Rotar PDF](./rotate-pdf)
+- [Multiherramienta PDF](./pdf-multi-tool)
diff --git a/docs/es/tools/rotate-custom.md b/docs/es/tools/rotate-custom.md
new file mode 100644
index 00000000..5c4f4302
--- /dev/null
+++ b/docs/es/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Rotar por grados personalizados
+description: Rota las páginas de un PDF en cualquier ángulo con campos de grados por página y controles de rotación por lotes.
+---
+
+# Rotar por grados personalizados
+
+Rota las páginas de un PDF en cualquier ángulo, no solo en incrementos de 90 grados. Cada página tiene su propio campo de ángulo y puedes aplicar un único ángulo a todas las páginas a la vez con el control por lotes.
+
+## Cómo funciona
+
+1. Sube un archivo PDF. Se generan miniaturas de todas las páginas.
+2. Cada página tiene un campo numérico que muestra su ángulo de rotación actual.
+3. Escribe cualquier valor en grados (positivo o negativo) para rotar una página concreta, o usa los botones izquierda/derecha de cada página para ajustes rápidos de 90 grados.
+4. Usa el campo de **ángulo por lotes** de la parte superior para definir una rotación uniforme en todas las páginas.
+5. Haz clic en el botón de procesar para generar el PDF rotado.
+
+## Características
+
+- Campo de grados libre por página (cualquier valor entero)
+- Control de ángulo por lotes para aplicar la misma rotación a todas las páginas
+- Vista previa en tiempo real de la rotación en las miniaturas
+- Botones de rotación rápida por página en incrementos de 90 grados
+- Miniaturas de carga diferida para mantener el rendimiento en documentos grandes
+
+## Casos de uso
+
+- Corregir escaneos ligeramente inclinados unos pocos grados
+- Rotar páginas para cumplir un requisito de orientación no estándar
+- Aplicar rotaciones precisas a páginas individuales en un documento de contenido mixto
+- Afinar los ángulos de las páginas tras una rotación masiva inicial
+
+## Consejos
+
+- Los valores positivos rotan en sentido horario y los negativos en sentido antihorario.
+- El campo de ángulo por lotes sobrescribe todos los ángulos por página al aplicarse. Haz los ajustes individuales después de la operación por lotes si hace falta.
+- Para rotaciones estándar de 90/180/270 grados con una interfaz más sencilla, usa [Rotar PDF](./rotate-pdf).
+
+## Herramientas relacionadas
+
+- [Rotar PDF](./rotate-pdf)
+- [Multiherramienta PDF](./pdf-multi-tool)
+- [Duplicar y organizar](./organize-pdf)
diff --git a/docs/es/tools/rotate-pdf.md b/docs/es/tools/rotate-pdf.md
new file mode 100644
index 00000000..6c74e937
--- /dev/null
+++ b/docs/es/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Rotar PDF
+description: Rota páginas individuales o todas las páginas de un PDF en incrementos de 90 grados con una interfaz visual de miniaturas.
+---
+
+# Rotar PDF
+
+Rota las páginas de un PDF 90 grados en sentido horario o antihorario. La herramienta muestra miniaturas de todas las páginas y te permite rotarlas individualmente o aplicar una rotación masiva a todo el documento.
+
+## Cómo funciona
+
+1. Sube un archivo PDF. Las miniaturas de todas las páginas se muestran en una cuadrícula.
+2. Usa los botones de rotación izquierda/derecha bajo la miniatura de cada página para rotar esa página concreta.
+3. Usa los controles de rotación masiva de la parte superior para rotar todas las páginas a la vez.
+4. La vista previa de miniaturas se actualiza en tiempo real para mostrar la rotación.
+5. Haz clic en el botón de procesar para guardar el PDF rotado.
+
+## Características
+
+- Rotación por página en incrementos de 90 grados (izquierda o derecha)
+- Rotación masiva de todas las páginas a la vez
+- Vista previa de miniaturas en tiempo real con transiciones de rotación animadas
+- Miniaturas de carga diferida para un rendimiento fluido en documentos grandes
+- Conserva el contenido y la calidad originales de las páginas
+
+## Casos de uso
+
+- Arreglar páginas escaneadas de lado o boca abajo
+- Rotar páginas apaisadas a orientación vertical (o viceversa)
+- Corregir un documento de orientación mixta en el que algunas páginas se escanearon con el ángulo equivocado
+- Preparar un documento para una orientación de pantalla concreta
+
+## Consejos
+
+- Las rotaciones son acumulativas. Hacer clic dos veces en el botón de sentido horario aplica una rotación de 180 grados.
+- Para rotaciones que no sean de 90 grados (por ejemplo, 45 grados para corregir un escaneo ligeramente inclinado), usa en su lugar [Rotar por grados personalizados](./rotate-custom).
+- Los controles de rotación masiva afectan a todas las páginas, no solo a las seleccionadas. Esta herramienta no tiene mecanismo de selección: para eso, usa [Multiherramienta PDF](./pdf-multi-tool).
+
+## Herramientas relacionadas
+
+- [Rotar por grados personalizados](./rotate-custom)
+- [Multiherramienta PDF](./pdf-multi-tool)
+- [Duplicar y organizar](./organize-pdf)
diff --git a/docs/es/tools/rtf-to-pdf.md b/docs/es/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..5d773903
--- /dev/null
+++ b/docs/es/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF a PDF
+description: Convierte archivos Rich Text Format (RTF) a PDF en tu navegador con un motor basado en LibreOffice.
+---
+
+# RTF a PDF
+
+Convierte documentos Rich Text Format a PDF. RTF es un formato de documento multiplataforma compatible con prácticamente todos los procesadores de texto. Esta herramienta usa un motor LibreOffice en el navegador para renderizar los archivos RTF con su formato intacto: negrita, cursiva, tablas e imágenes incrustadas pasan al PDF.
+
+## Formatos compatibles
+
+| Formato | Extensiones | Tipos MIME |
+| :------ | :---------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta uno o más archivos RTF.
+2. Revisa la lista de archivos. Añade más o quita los que no necesites.
+3. Haz clic en **Convertir a PDF**. El motor LibreOffice se inicializa la primera vez que lo usas y luego procesa cada archivo.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se entregan como `rtf-converted.zip`.
+
+## Opciones
+
+Esta herramienta no tiene ajustes adicionales. La conversión conserva el formato RTF original.
+
+## Resultado
+
+| Número de archivos | Resultado |
+| :----------------- | :------------------------------------------------------------ |
+| 1 archivo | Descarga de un único PDF (por ejemplo, `letter.pdf`) |
+| 2 o más | Archivo ZIP (`rtf-converted.zip`) con un PDF por cada archivo |
+
+## Casos de uso
+
+- Convertir documentos RTF antiguos de procesadores de texto veteranos a PDF modernos
+- Convertir plantillas de correo en RTF en vistas previas en PDF
+- Procesar la salida RTF de sistemas de software jurídico o médico
+- Convertir por lotes archivos RTF de un sistema de gestión documental a PDF para archivarlos
+
+## Consejos
+
+- El motor LibreOffice se carga una vez y se guarda en caché. La primera conversión de una sesión tarda unos segundos más; las siguientes son más rápidas.
+- Los archivos RTF con objetos OLE incrustados pueden no renderizar todos los objetos a la perfección. El texto sin formato, las imágenes y el formato estándar se convierten de forma fiable.
+- Si tus archivos RTF se crearon con Microsoft Word, también puedes convertirlos directamente con la herramienta [Word a PDF](./word-to-pdf), que acepta RTF además de DOC y DOCX.
+
+## Herramientas relacionadas
+
+- [Word a PDF](./word-to-pdf)
+- [ODT a PDF](./odt-to-pdf)
+- [Texto a PDF](./txt-to-pdf)
diff --git a/docs/es/tools/sanitize-pdf.md b/docs/es/tools/sanitize-pdf.md
new file mode 100644
index 00000000..d7538114
--- /dev/null
+++ b/docs/es/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Sanear PDF
+description: Elimina el contenido oculto y potencialmente peligroso de los PDF, incluidos metadatos, JavaScript, archivos incrustados, anotaciones y capas.
+---
+
+# Sanear PDF
+
+Los PDF pueden llevar mucho más de lo que ves en pantalla. Metadatos ocultos, JavaScript incrustado, archivos adjuntos, datos de formularios e información de capas pueden filtrar datos sensibles o suponer riesgos de seguridad. Sanear elimina todo eso y te deja un documento limpio, seguro para compartir públicamente.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. Selecciona en la lista qué elementos quieres eliminar.
+3. Haz clic en **Sanear PDF**.
+4. Descarga el archivo limpio.
+
+## Opciones de saneamiento
+
+Todas las opciones están activadas por defecto. Desmarca las que quieras conservar.
+
+| Opción | Qué elimina |
+| --------------------------------- | ----------------------------------------------------------------------------- |
+| **Aplanar formularios** | Convierte los campos de formulario interactivos en contenido estático |
+| **Eliminar metadatos** | Quita autor, título, fecha de creación, información de software y datos XMP |
+| **Eliminar anotaciones** | Borra comentarios, resaltados, notas adhesivas y marcado |
+| **Eliminar JavaScript** | Elimina scripts incrustados que podrían ejecutarse al abrir |
+| **Eliminar archivos incrustados** | Quita los archivos adjuntos incrustados en el PDF |
+| **Eliminar capas (OCG)** | Aplana los grupos de contenido opcional en una sola capa |
+| **Eliminar enlaces** | Quita hipervínculos y referencias a URL |
+| **Eliminar árbol de estructura** | Elimina la estructura del documento usada para el etiquetado de accesibilidad |
+| **Eliminar MarkInfo** | Quita la información de contenido marcado |
+| **Eliminar fuentes** | Elimina los datos de fuentes incrustadas (úsalo con precaución) |
+
+## Casos de uso
+
+- Preparar un PDF para su publicación quitando metadatos internos (nombres de autores, versiones de software, historial de edición)
+- Eliminar JavaScript de un PDF recibido de una fuente no confiable antes de abrirlo
+- Limpiar un PDF antes de enviarlo a un cliente que no debe ver comentarios incrustados ni nombres de campos de formulario
+- Quitar capas ocultas de un plano de arquitectura antes de compartir la versión final
+- Cumplir los requisitos de minimización de datos de las normativas de privacidad
+
+## Consejos
+
+- Deja "Eliminar fuentes" sin marcar a menos que estés seguro de que el PDF se seguirá mostrando correctamente. Quitar las fuentes puede hacer invisible el texto en algunos visores.
+- Si solo necesitas quitar los metadatos, la herramienta específica Eliminar metadatos es más rápida y más concreta.
+- El saneamiento es irreversible. Conserva tu archivo original.
+
+## Herramientas relacionadas
+
+- [Eliminar metadatos](./remove-metadata): quita solo los metadatos sin tocar el resto del contenido
+- [Aplanar PDF](./flatten-pdf): aplana específicamente formularios y anotaciones
+- [Cifrar PDF](./protect-pdf): añade protección con contraseña después de sanear
+- [Rasterizar PDF](./rasterize-pdf): la opción drástica: convierte a imágenes para eliminar todo el contenido oculto
diff --git a/docs/es/tools/scanner-effect.md b/docs/es/tools/scanner-effect.md
new file mode 100644
index 00000000..e31d9f59
--- /dev/null
+++ b/docs/es/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Efecto escáner
+description: Haz que tu PDF parezca un documento escaneado con ruido, rotación, desenfoque y envejecimiento del papel ajustables.
+---
+
+# Efecto escáner
+
+Transforma un PDF digital limpio en algo que parezca salido de un escáner de cama plana. La herramienta aplica ruido configurable, una ligera rotación, desenfoque, cambios de brillo y un amarilleado opcional para simular las imperfecciones de un escaneo físico.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. El editor se abre con una vista previa en vivo de la primera página junto a un panel de ajustes.
+3. Ajusta los parámetros del efecto de escaneo con los controles deslizantes y los interruptores.
+4. La vista previa se actualiza en tiempo real al cambiar los ajustes.
+5. Haz clic en **Aplicar** para procesar todas las páginas y descargar el resultado.
+
+## Opciones
+
+- **Espacio de color (interruptor de escala de grises)**: convierte el resultado a escala de grises para un aspecto clásico de escaneo en blanco y negro.
+- **Borde**: añade un borde oscuro sutil alrededor de los bordes de la página para imitar los artefactos de borde del escáner.
+- **Rotación**: aplica una ligera rotación (de -5 a +5 grados) para simular una alimentación desalineada del papel.
+- **Variación de rotación**: añade una variación aleatoria al ángulo de rotación para que cada página se incline de forma ligeramente distinta.
+- **Brillo**: sube o baja el brillo general.
+- **Contraste**: ajusta el contraste para simular variaciones en la calidad del tóner.
+- **Desenfoque**: aplica un desenfoque gaussiano para suavizar los bordes del texto como en un escaneo de baja calidad.
+- **Ruido**: añade ruido aleatorio de píxeles para simular el grano del sensor del escáner. Los valores altos producen resultados más granulados.
+- **Amarilleado**: añade un tinte amarillo cálido para simular papel envejecido o reciclado.
+- **Resolución**: define los DPI del resultado. Los valores bajos crean una apariencia más pixelada, propia de un escaneo.
+- **Restablecer**: devuelve todos los ajustes a sus valores por defecto.
+
+## Características
+
+- Vista previa en tiempo real que se actualiza al modificar cada parámetro
+- Variación aleatoria de rotación por página para una variación realista
+- Diez parámetros ajustables de forma independiente
+- Modo de escala de grises para un resultado auténtico de escaneo en blanco y negro
+- Control de resolución, desde calidad de fax de pocos DPI hasta calidad de archivo de muchos DPI
+
+## Casos de uso
+
+- Hacer que documentos creados digitalmente parezcan escaneados e impresos
+- Simular el envejecimiento físico de documentos para recrear documentos históricos
+- Probar software de OCR con escaneos de calidad degradada
+- Producir documentos que coincidan con el estilo visual de archivos escaneados existentes
+
+## Consejos
+
+- Empieza con valores sutiles. Un nivel de ruido de 10-20, una ligera rotación de 0,5 grados y un desenfoque mínimo ya producen un aspecto de escaneo convincente.
+- Combina el modo de escala de grises con un ligero amarilleado para lograr un efecto de "fotocopia de una fotocopia".
+- Los ajustes de resolución más bajos (100-150 DPI) crean la apariencia más realista de máquina de fax.
+
+## Herramientas relacionadas
+
+- [Invertir colores](./invert-colors)
+- [Ajustar colores](./adjust-colors)
+- [Color de fondo](./background-color)
diff --git a/docs/es/tools/sign-pdf.md b/docs/es/tools/sign-pdf.md
new file mode 100644
index 00000000..e6d34799
--- /dev/null
+++ b/docs/es/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Firmar PDF
+description: Dibuja, escribe o sube una firma y colócala en las páginas de tu PDF con un visor integrado.
+---
+
+# Firmar PDF
+
+Añade tu firma a cualquier documento PDF. La herramienta incorpora un visor de PDF completo con herramientas de firma integradas, donde puedes dibujar una firma a mano alzada, escribir tu nombre con una fuente de firma o subir una imagen de firma. Coloca y redimensiona las firmas en cualquier página y luego guarda el documento firmado.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. El documento se abre en un visor de PDF integrado con herramientas de anotación.
+3. Usa la herramienta de firma del visor para crear tu firma dibujando, escribiendo o subiendo una imagen.
+4. Haz clic en la página donde quieras colocar la firma y ajusta su tamaño y posición.
+5. Opcionalmente, marca **Aplanar PDF** para incrustar la firma de forma permanente en el documento.
+6. Haz clic en **Guardar y descargar PDF firmado** para obtener tu archivo firmado.
+
+## Opciones
+
+- **Aplanar PDF**: si está marcado, la firma se incrusta de forma permanente en el contenido de la página. Esto impide que otras personas la muevan o la borren. Si no está marcado, la firma sigue siendo una anotación que se puede editar en visores compatibles.
+
+## Características
+
+- Tres métodos para crear la firma: dibujo a mano alzada, texto escrito o imagen subida
+- Visor de PDF integrado para colocarla con precisión
+- Arrastra para colocar y redimensionar firmas en cualquier página
+- Aplanado opcional para incrustar las firmas de forma permanente
+- Compatible con varias firmas en el mismo documento
+
+## Casos de uso
+
+- Firmar contratos, acuerdos o formularios de aprobación antes de devolverlos
+- Añadir tu firma a documentos fiscales, reclamaciones de seguros o formularios oficiales
+- Colocar tus iniciales en páginas individuales de un acuerdo de varias páginas
+- Firmar acuerdos de confidencialidad o documentos de recursos humanos que llegan como adjuntos PDF
+
+## Consejos
+
+- Activa el aplanado si vas a enviar el PDF firmado a alguien que no deba poder quitar ni reposicionar tu firma.
+- Para firmas digitales con validez legal y verificación basada en certificados, BentoPDF también ofrece una herramienta independiente de Firma digital.
+- Sube una imagen de firma en PNG con fondo transparente para obtener el resultado más limpio.
+
+## Herramientas relacionadas
+
+- [Editor de PDF](./edit-pdf)
+- [Añadir sellos](./add-stamps)
+- [Rellenar formularios](./form-filler)
diff --git a/docs/es/tools/split-pdf.md b/docs/es/tools/split-pdf.md
new file mode 100644
index 00000000..ac57ed48
--- /dev/null
+++ b/docs/es/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Dividir PDF
+description: Divide un PDF en archivos más pequeños por rango de páginas, selección visual, marcadores, páginas pares/impares o intervalos fijos.
+---
+
+# Dividir PDF
+
+Divide un PDF en documentos más pequeños con uno de seis modos de división. Desde simples rangos de páginas hasta la división por marcadores, esta herramienta cubre todos los escenarios para dividir un documento.
+
+## Cómo funciona
+
+1. Sube un único archivo PDF.
+2. Elige un modo de división en el menú desplegable.
+3. Configura las opciones propias del modo (rangos de páginas, selecciones, etc.).
+4. Haz clic en el botón de procesar.
+5. El resultado se descarga como un único PDF o como un archivo ZIP, según el modo y los ajustes.
+
+## Modos de división
+
+| Modo | Descripción |
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| **Rango** | Introduce rangos de páginas como `1-3, 5, 8-10`. Varios rangos producen PDF separados en un ZIP. Un solo rango produce un PDF. |
+| **Selección visual** | Navega por las miniaturas de las páginas y haz clic para seleccionar las que quieras. Las páginas seleccionadas se extraen a un nuevo PDF. |
+| **Pares / impares** | Extrae solo las páginas de numeración par o impar. |
+| **Todas las páginas** | Divide cada página en su propio archivo PDF individual, descargado como ZIP. |
+| **Marcadores** | Divide en los límites de los marcadores. Elige el nivel de marcador para controlar dónde se hacen las divisiones. |
+| **Cada N páginas** | Divide en bloques de N páginas cada uno (por ejemplo, cada 5 páginas). El último bloque puede tener menos páginas. |
+
+## Características
+
+- Seis modos de división distintos que cubren prácticamente todos los casos de uso
+- Selector visual de páginas con miniaturas de carga diferida
+- División por marcadores con filtrado por nivel
+- Opción de salida en ZIP para los modos de rango y selección visual
+- Admite rangos de páginas con sintaxis mixta (`1-3, 5, 8-10`)
+- Aviso cuando las divisiones de N páginas producen bloques desiguales
+
+## Casos de uso
+
+- Extraer un capítulo o una sección concreta de un documento grande
+- Separar páginas pares e impares para flujos de impresión a doble cara
+- Dividir el PDF de un libro en archivos de capítulos individuales en los límites de los marcadores
+- Aislar páginas concretas (como la página de firma) de un contrato
+- Dividir un informe compilado en archivos por sección para distribuirlos
+
+## Consejos
+
+- Varios rangos de páginas separados por comas (por ejemplo, `1-5, 10-15, 20-25`) producen PDF separados, uno por rango, agrupados en un ZIP.
+- El modo de división por marcadores requiere que el PDF contenga marcadores. Si no se encuentra ninguno, verás un mensaje de error.
+- La casilla "Descargar como ZIP" de los modos Rango y Selección visual te permite obtener PDF individuales por página en lugar de un archivo combinado.
+
+## Herramientas relacionadas
+
+- [Fusionar PDF](./merge-pdf)
+- [Extraer páginas](./extract-pages)
+- [Eliminar páginas](./delete-pages)
+- [Multiherramienta PDF](./pdf-multi-tool)
diff --git a/docs/es/tools/svg-to-pdf.md b/docs/es/tools/svg-to-pdf.md
new file mode 100644
index 00000000..c0af973f
--- /dev/null
+++ b/docs/es/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG a PDF
+description: Convierte gráficos vectoriales SVG a PDF con control de calidad, íntegramente en tu navegador.
+---
+
+# SVG a PDF
+
+Convierte archivos Scalable Vector Graphics (SVG) a PDF. La herramienta rasteriza cada SVG con el motor de renderizado del navegador y luego incrusta el resultado a su resolución original. Es útil para convertir iconos vectoriales, diagramas e ilustraciones en documentos portátiles.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :------ | :---------- |
+| SVG | `.svg` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta uno o más archivos SVG.
+2. Revisa y gestiona la lista de archivos.
+3. Elige un nivel de **calidad del PDF**.
+4. Haz clic en **Convertir a PDF**. El resultado se descarga como `from_svgs.pdf`.
+
+Cada SVG se lee como texto, se renderiza en un lienzo con su ancho y alto intrínsecos (800x600 por defecto si no se especifican dimensiones) y se exporta como PNG. Ese PNG se incrusta después en el PDF con pdf-lib. Las áreas transparentes se rellenan con fondo blanco.
+
+## Opciones
+
+La **calidad del PDF** controla la compresión tras la rasterización:
+
+- **Calidad alta**: lo más cercano al renderizado original.
+- **Calidad media** (por defecto): buen equilibrio.
+- **Calidad baja**: el archivo más pequeño, con cierta pérdida de detalle.
+
+## Casos de uso
+
+- Convertir diagramas de arquitectura o ingeniería de SVG a un PDF listo para imprimir
+- Empaquetar conjuntos de iconos en un PDF de referencia para un sistema de diseño
+- Convertir visualizaciones de datos (D3.js, exportaciones de bibliotecas de gráficos) en PDF listos para informes
+- Crear versiones imprimibles de infografías basadas en SVG
+
+## Consejos
+
+- Los archivos SVG sin atributos `width` y `height` explícitos se renderizan a 800x600 píxeles. Para obtener mejores resultados, define las dimensiones en el código del SVG antes de convertir.
+- Los SVG complejos con referencias a fuentes externas o imágenes enlazadas pueden no renderizarse a la perfección. Incrusta todos los recursos en el SVG para un resultado fiable.
+- Como el SVG se rasteriza, el PDF contendrá una imagen de mapa de bits en lugar de trazados vectoriales. Para obtener un PDF vectorial real, se necesita una herramienta vectorial específica.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [BMP a PDF](./bmp-to-pdf)
diff --git a/docs/es/tools/table-of-contents.md b/docs/es/tools/table-of-contents.md
new file mode 100644
index 00000000..facaada4
--- /dev/null
+++ b/docs/es/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Índice
+description: Genera una página de tabla de contenidos con formato a partir de los marcadores existentes de tu PDF.
+---
+
+# Índice
+
+Esta herramienta lee los marcadores (esquemas) de tu PDF y genera una página de tabla de contenidos con formato que se antepone al documento. Si tu PDF ya tiene marcadores pero carece de una página de índice visible, esta herramienta la crea automáticamente.
+
+## Cómo funciona
+
+1. Sube un PDF que contenga marcadores.
+2. Personaliza el título del índice, el tamaño de fuente y la familia tipográfica.
+3. Opcionalmente, marca **Añadir marcador para la página del índice** para incluir el propio índice en el árbol de marcadores.
+4. Haz clic en **Generar tabla de contenidos** para procesar el archivo.
+5. El PDF actualizado se descarga automáticamente con la página del índice insertada al principio.
+
+## Opciones
+
+- **Título del índice**: el encabezado que se muestra en la parte superior de la página generada. Por defecto es "Índice".
+- **Tamaño de fuente**: elige entre 10 pt y 72 pt. El valor por defecto es 12 pt.
+- **Familia tipográfica**: elige entre las variantes de Times Roman, Helvetica o Courier (normal, negrita, cursiva, negrita cursiva). Por defecto es Helvetica.
+- **Añadir marcador para la página del índice**: si está marcado, se añade al árbol de esquema del PDF una entrada de marcador para la propia página del índice.
+
+## Características
+
+- Lee toda la jerarquía de marcadores del PDF
+- Genera una página de índice con formato limpio y referencias a números de página
+- Admite niveles de marcadores anidados con sangría
+- Elección entre 12 fuentes PDF integradas
+- Marcador autorreferenciado opcional para la página del índice
+
+## Casos de uso
+
+- Añadir una tabla de contenidos imprimible a libros electrónicos o informes que solo tienen marcadores digitales
+- Crear un índice para un documento combinado tras unir varios PDF
+- Generar una página de referencia para manuales técnicos extensos
+- Preparar documentos para impresión en los que se espera un índice visible
+
+## Consejos
+
+- Si tu PDF no tiene marcadores, usa primero la herramienta [Editar marcadores](./bookmark) para crearlos y luego vuelve aquí para generar el índice.
+- En documentos grandes, un tamaño de fuente mayor, como 14 pt o 16 pt, mejora la legibilidad.
+
+## Herramientas relacionadas
+
+- [Editar marcadores](./bookmark)
+- [Números de página](./page-numbers)
+- [Encabezado y pie de página](./header-footer)
diff --git a/docs/es/tools/text-color.md b/docs/es/tools/text-color.md
new file mode 100644
index 00000000..4b02cdc2
--- /dev/null
+++ b/docs/es/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Cambiar color de texto
+description: Cambia el color de todo el texto de tu PDF por el color que elijas.
+---
+
+# Cambiar color de texto
+
+Sustituye el color del texto en todo tu PDF. La herramienta identifica las regiones de texto de cada página y las vuelve a colorear con el color elegido, conservando el diseño del documento y el contenido que no es texto.
+
+## Cómo funciona
+
+1. Sube tu archivo PDF.
+2. Elige un nuevo color de texto con el selector de color. El valor por defecto es azul (#0000FF).
+3. Haz clic en **Cambiar color de texto** para procesar.
+4. El PDF recoloreado se descarga automáticamente. Un indicador de progreso muestra qué página se está procesando.
+
+## Opciones
+
+- **Nuevo color de texto**: un selector de color para elegir el color de reemplazo de todo el texto del documento.
+
+## Características
+
+- Recolorea el texto de todas las páginas del documento
+- Procesamiento por página con indicador de progreso
+- Selector de color con compatibilidad completa con colores hexadecimales
+- Conserva el diseño de página y los elementos que no son texto
+
+## Casos de uso
+
+- Cambiar el texto negro por azul oscuro para lograr un documento más suave y moderno
+- Recolorear el texto para ajustarlo a las guías de marca antes de distribuir documentos
+- Convertir el texto a un color específico para cumplir con la accesibilidad
+- Hacer visible el texto sobre un color de fondo recién aplicado
+
+## Consejos
+
+- Esta herramienta renderiza las páginas al doble de escala para mantener la calidad y después reconstruye el PDF. El resultado se basa en imágenes, por lo que el texto ya no se podrá seleccionar ni buscar.
+- Si necesitas conservar el texto seleccionable, considera editar el PDF directamente con el [Editor de PDF](./edit-pdf).
+- El tiempo de procesamiento aumenta con el número de páginas, ya que cada página se renderiza por separado.
+
+## Herramientas relacionadas
+
+- [Color de fondo](./background-color)
+- [Invertir colores](./invert-colors)
+- [Ajustar colores](./adjust-colors)
diff --git a/docs/es/tools/tiff-to-pdf.md b/docs/es/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..8babe740
--- /dev/null
+++ b/docs/es/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF a PDF
+description: Convierte imágenes TIFF de una o varias páginas a formato PDF en tu navegador con compatibilidad completa de páginas.
+---
+
+# TIFF a PDF
+
+Convierte archivos TIFF a PDF, incluidos los TIFF de varias páginas. Cada página (o "IFD") de un archivo TIFF se convierte en una página independiente del PDF resultante. Es especialmente útil para documentos escaneados, faxes e imágenes médicas que suelen almacenarse como TIFF de varias páginas.
+
+## Formatos compatibles
+
+| Formato | Extensiones |
+| :------ | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos TIFF.
+2. Revisa la lista de archivos y gestiónala según necesites.
+3. Haz clic en **Convertir a PDF**. El resultado se descarga como `from_tiff.pdf`.
+
+La herramienta decodifica cada archivo TIFF con un decodificador TIFF en JavaScript y extrae los datos de píxeles RGBA sin procesar de cada página. Cada página se renderiza en un lienzo, se exporta como PNG y se incrusta en el PDF. Las dimensiones de las páginas coinciden con las de las páginas TIFF originales.
+
+## Opciones
+
+Esta herramienta no expone ajustes de calidad adicionales. Las imágenes se incrustan a su resolución original.
+
+## Casos de uso
+
+- Convertir documentos de fax de varias páginas (TIFF-F) a un formato PDF más portátil
+- Convertir archivos de documentos escaneados almacenados como TIFF en PDF con búsqueda (combínalo después con la herramienta de OCR)
+- Procesar archivos de imagen médica (láminas de patología, exportaciones de radiología) que usan TIFF
+- Convertir archivos TIFF de GIS o imágenes de satélite en documentos para compartir
+
+## Consejos
+
+- Los TIFF de varias páginas son totalmente compatibles. Un TIFF de 10 páginas producirá un PDF de 10 páginas. No necesitas dividir el TIFF antes.
+- Los archivos TIFF muy grandes (cientos de megabytes) pueden tardar más en procesarse, ya que todo el archivo debe decodificarse en la memoria del navegador.
+- Si necesitas OCR en el PDF resultante, pásalo por la herramienta [OCR PDF](./ocr-pdf) después de la conversión.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [BMP a PDF](./bmp-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
diff --git a/docs/es/tools/txt-to-pdf.md b/docs/es/tools/txt-to-pdf.md
new file mode 100644
index 00000000..02e58575
--- /dev/null
+++ b/docs/es/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Texto a PDF
+description: Convierte archivos de texto sin formato o texto escrito a PDF con fuentes, colores y tamaños de página personalizados.
+---
+
+# Texto a PDF
+
+Convierte texto sin formato en un PDF con formato. Puedes subir archivos `.txt` o escribir directamente en el editor de texto integrado. La herramienta admite varias fuentes, colores de texto personalizados y una amplia gama de tamaños de página, de A0 a A10, además de US Letter, Legal y Tabloid.
+
+## Formatos compatibles
+
+| Entrada | Extensiones |
+| :---------------- | :-------------------------- |
+| Archivos de texto | `.txt` |
+| Entrada directa | Escribe o pega en el editor |
+
+## Cómo funciona
+
+1. Elige el modo de entrada con el interruptor de la parte superior: **Subir archivos** o **Escribir texto**.
+2. Si subes archivos, arrastra y suelta o haz clic para seleccionar uno o más archivos `.txt`. Si escribes, introduce el texto directamente en el área de texto.
+3. Configura las opciones de formato: familia tipográfica, tamaño de fuente, color del texto y tamaño de página.
+4. Haz clic en **Crear PDF**. El resultado se descarga como `text_to_pdf.pdf`.
+
+Al subir varios archivos, sus contenidos se concatenan con líneas en blanco entre ellos.
+
+## Opciones
+
+| Opción | Valores | Por defecto |
+| :---------------------- | :--------------------------------------------------------------------------- | :-------------- |
+| **Familia tipográfica** | Helvetica (sans-serif), Tiro (serif), Courier (monoespaciada), Times (serif) | Helvetica |
+| **Tamaño de fuente** | 6 a 72 pt | 12 |
+| **Color del texto** | Cualquier color mediante el selector de color | Negro (#000000) |
+| **Tamaño de página** | ISO A0-A10, B0-B10, C0-C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Los idiomas de derecha a izquierda (árabe, hebreo, persa, urdu) se detectan automáticamente. Cuando se encuentra texto RTL, la dirección y la alineación del texto cambian en consecuencia.
+
+## Casos de uso
+
+- Convertir fragmentos de código o archivos de registro en un PDF imprimible con la fuente Courier
+- Crear un PDF rápido a partir de notas de reunión escritas al momento
+- Dar formato a un manuscrito de texto sin formato con una fuente y un tamaño de página concretos para su envío
+- Producir una versión PDF de un README o un registro de cambios para distribuirla sin conexión
+
+## Consejos
+
+- Usa el modo **Escribir texto** cuando quieras convertir rápidamente el contenido del portapapeles sin guardarlo antes como archivo.
+- Courier (monoespaciada) es la mejor fuente para código, registros o cualquier contenido en el que importe la alineación de columnas.
+- Los márgenes de página son fijos, de 72 puntos (1 pulgada) por todos los lados.
+
+## Herramientas relacionadas
+
+- [Markdown a PDF](./markdown-to-pdf)
+- [CSV a PDF](./csv-to-pdf)
+- [Word a PDF](./word-to-pdf)
diff --git a/docs/es/tools/unlock-pdf.md b/docs/es/tools/unlock-pdf.md
new file mode 100644
index 00000000..0d3a6e0a
--- /dev/null
+++ b/docs/es/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Desbloquear PDF
+description: Quita la protección con contraseña de PDF cifrados. Admite el descifrado por lotes con una sola contraseña para varios archivos.
+---
+
+# Desbloquear PDF
+
+Si tienes la contraseña de un PDF cifrado, esta herramienta elimina por completo el cifrado y genera una copia desbloqueada que cualquiera puede abrir sin credenciales. Admite el descifrado por lotes cuando varios PDF comparten la misma contraseña.
+
+## Cómo funciona
+
+1. Sube uno o más archivos PDF cifrados.
+2. Introduce la **contraseña** con la que se protegieron los archivos.
+3. Haz clic en **Descifrar PDF**.
+4. Un solo archivo se descarga directamente. Varios archivos generan un archivo ZIP con todos los PDF desbloqueados.
+
+## Características
+
+- Descifrado de un solo archivo y por lotes
+- Funciona con contraseñas de usuario y de propietario
+- Genera una salida completamente sin cifrar y sin restricciones residuales
+- Informes de error claros para contraseñas incorrectas o archivos dañados
+- Seguimiento de éxito o fallo por archivo en el modo por lotes
+
+## Diferencias con Eliminar Restricciones
+
+**Descifrar PDF** requiere la contraseña y elimina todo el cifrado. **Eliminar Restricciones** actúa sobre las restricciones de uso (impresión, copia, edición) y puede no requerir contraseña si solo se estableció una contraseña de propietario. Usa Descifrar cuando el PDF no se abra en absoluto sin contraseña.
+
+## Casos de uso
+
+- Desbloquear de forma permanente PDF que cifraste antes cuando ya no necesitas la contraseña
+- Quitar el cifrado de un lote de documentos archivados para facilitar el acceso a largo plazo
+- Preparar PDF protegidos con contraseña para un sistema de gestión documental que no admite archivos cifrados
+- Desbloquear PDF antes de combinarlos con otros documentos (muchas herramientas de combinación no pueden procesar archivos cifrados)
+
+## Consejos
+
+- El campo de contraseña se aplica a todos los archivos subidos. Si tus PDF tienen contraseñas distintas, procésalos en lotes separados.
+- Si aparece el error "Contraseña incorrecta", revisa que no haya espacios al final ni mayúsculas activadas.
+- Tras el descifrado, la salida no tiene ninguna seguridad. Vuelve a cifrar con Cifrar PDF si necesitas aplicar una contraseña nueva.
+
+## Herramientas relacionadas
+
+- [Cifrar PDF](./protect-pdf): vuelve a aplicar el cifrado con una contraseña nueva
+- [Eliminar Restricciones](./remove-restrictions): quita las restricciones de uso sin descifrar por completo
+- [Cambiar Permisos](./change-permissions): modifica permisos concretos de un PDF cifrado
diff --git a/docs/es/tools/validate-signature-pdf.md b/docs/es/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..e7cc34c4
--- /dev/null
+++ b/docs/es/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Validar Firma PDF
+description: Verifica las firmas digitales de archivos PDF. Comprueba la validez del certificado, la identidad del firmante, la integridad del documento y el estado de la cadena de confianza.
+---
+
+# Validar Firma PDF
+
+Sube un PDF firmado y esta herramienta extrae cada firma digital, identifica al firmante, comprueba la validez del certificado e informa de si el documento se ha modificado desde que se firmó. También puedes aportar un certificado de confianza para verificar la cadena de la firma.
+
+## Cómo funciona
+
+1. Sube un archivo PDF firmado. La validación comienza automáticamente.
+2. La herramienta muestra un resumen: número de firmas encontradas y cuántas son válidas.
+3. Cada firma tiene una tarjeta detallada con el nombre del firmante, el emisor, las fechas y el estado.
+4. Opcionalmente, sube un **certificado de confianza** (.pem, .crt, .cer, .der) para verificar la firma frente a un ancla de confianza concreta. La revalidación se ejecuta automáticamente.
+
+## Qué se comprueba
+
+### Análisis de la firma
+
+La herramienta extrae los objetos de firma PKCS#7 del PDF, decodifica la estructura ASN.1 y obtiene el certificado X.509 del firmante junto con cualquier cadena de certificados incrustada en la firma.
+
+### Validez del certificado
+
+- **Caducidad**: ¿Está el certificado dentro de su periodo de validez actual?
+- **Detección de autofirmado**: ¿Es el certificado su propio emisor?
+- **Cadena de confianza**: Cuando se aporta un certificado de confianza, ¿enlaza con él el certificado del firmante?
+
+### Verificación criptográfica
+
+- La herramienta reconstruye los bytes cubiertos por el `/ByteRange` de la firma, calcula su hash con el algoritmo que declaró el firmante y compara el resultado con el atributo `messageDigest` incluido en la firma.
+- Después vuelve a serializar los atributos firmados como un SET DER y verifica la firma con la clave pública del certificado del firmante.
+- **Una firma se considera válida solo cuando se superan todas estas comprobaciones.** Si los bytes del PDF se modificaron después de la firma, o la firma incrustada no coincide con la clave del firmante, el estado muestra "Inválida: falló la verificación criptográfica" con el motivo concreto.
+
+#### Algoritmos de firma admitidos
+
+| Algoritmo | Ruta de verificación |
+| ----------------------- | --------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, con Web Crypto como alternativa |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` tras la conversión de firma DER → IEEE P1363 |
+
+Si una firma usa un algoritmo que no está en esta lista (por ejemplo Ed25519, SM2 o RSA con un OID de resumen poco habitual), la tarjeta muestra **"Sin verificar: algoritmo de firma no admitido"** en amarillo, junto con el OID o el motivo concretos. Se trata de una distinción deliberada de tres estados:
+
+- **Válida**: la firma se verificó criptográficamente con la clave pública del firmante.
+- **Inválida**: la verificación se ejecutó y dio un resultado negativo (bytes modificados, clave que no coincide).
+- **Sin verificar**: la herramienta no pudo ejecutar la verificación para este algoritmo. Los metadatos del certificado se siguen mostrando, pero debes tratar la firma como "desconocida" y verificarla con Adobe Acrobat o `openssl cms -verify`.
+
+### Algoritmos de resumen inseguros
+
+- Las firmas que usan **MD5 o SHA-1** se rechazan como inválidas y se marcan con el estado "Resumen inseguro". Ambos algoritmos tienen ataques de colisión publicados, por lo que una firma sobre un hash SHA-1 o MD5 no ofrece ninguna garantía de integridad.
+- SHA-224, SHA-256, SHA-384 y SHA-512 se aceptan todos.
+
+### Cobertura del documento
+
+- **Cobertura completa**: la firma cubre todo el archivo PDF, es decir, no se añadió ni se cambió ningún byte después de la firma.
+- **Cobertura parcial**: la firma cubre solo una parte del archivo. Esto puede indicar que se hicieron modificaciones después de la firma (no necesariamente maliciosas: los guardados incrementales producen cobertura parcial).
+
+## Detalles de la firma
+
+Cada tarjeta de firma muestra:
+
+- **Firmado por**: nombre común, organización y correo electrónico del certificado del firmante
+- **Emisor**: la autoridad de certificación que emitió el certificado del firmante
+- **Firmado el**: la marca de tiempo incrustada en la firma
+- **Válido desde / Válido hasta**: el periodo de validez del certificado
+- **Motivo**: por qué se firmó el documento (si se indica)
+- **Ubicación**: dónde se firmó (si se indica)
+- **Estado de cobertura**: completa o parcial
+- **Insignia de confianza**: De confianza o No está en la cadena de confianza (solo cuando se aporta un certificado propio)
+
+### Detalles técnicos
+
+Despliega la sección de detalles técnicos para ver:
+
+- Número de serie del certificado del firmante
+- Algoritmo de resumen (SHA-256, SHA-512, etc.)
+- Algoritmo de firma (RSA con SHA-256, ECDSA con SHA-256, etc.)
+- Mensajes de error de las firmas inválidas
+
+## Casos de uso
+
+- Verificar un contrato firmado digitalmente antes de contrafirmarlo
+- Auditar documentos firmados para confirmar que no han sido manipulados
+- Comprobar si un certificado ha caducado desde que se firmó el documento
+- Validar firmas con el certificado raíz de tu organización
+- Inspeccionar los detalles de firma de documentos oficiales o legales
+
+## Consejos
+
+- Un certificado autofirmado no significa que la firma sea inválida: significa que la identidad del firmante no se puede verificar mediante un tercero de confianza. Es habitual en documentos internos.
+- La cobertura parcial no siempre indica manipulación. Muchos flujos de trabajo con PDF añaden actualizaciones incrementales (como una segunda firma) que crean cobertura parcial.
+- Sube el certificado raíz o intermedio de tu organización como certificado de confianza para obtener la verificación de la cadena de confianza.
+
+## Herramientas relacionadas
+
+- [Firma Digital PDF](./digital-sign-pdf): firma PDF con tu propio certificado
+- [Aplanar PDF](./flatten-pdf): aplana un PDF antes de firmarlo para evitar modificaciones posteriores a la firma
+- [Eliminar Metadatos](./remove-metadata): limpia un PDF antes de aplicar una firma
diff --git a/docs/es/tools/view-metadata.md b/docs/es/tools/view-metadata.md
new file mode 100644
index 00000000..ca68f3a1
--- /dev/null
+++ b/docs/es/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Ver metadatos
+description: Inspecciona todas las propiedades de metadatos de un PDF, incluidos la información del documento, los datos XMP y los detalles estructurales.
+---
+
+# Ver metadatos
+
+Examina las propiedades ocultas incluidas en un archivo PDF. La herramienta muestra la información del documento (título, autor, fechas), los metadatos XMP, las dimensiones de página y otros datos estructurales en un formato legible.
+
+## Cómo funciona
+
+1. Sube un archivo PDF.
+2. La herramienta analiza el archivo de inmediato y muestra todos los metadatos disponibles en secciones organizadas.
+3. Revisa el diccionario de información del documento, el árbol de metadatos XMP y las propiedades estructurales.
+4. No hace falta ningún paso de procesamiento: los metadatos se muestran en cuanto se carga el archivo.
+
+## Características
+
+- Muestra los campos estándar de información del documento: Título, Autor, Asunto, Palabras clave, Creador, Productor
+- Muestra las fechas de creación y modificación en un formato legible
+- Analiza y muestra el árbol completo de metadatos XMP con espacios de nombres anidados
+- Convierte el formato de fecha de PDF (`D:20240101120000Z`) en fechas legibles
+- Organizado en secciones plegables para navegar con facilidad
+
+## Secciones de metadatos
+
+| Sección | Contenido |
+| ----------------------------- | -------------------------------------------------------------------------------------------------------- |
+| **Información del documento** | Título, Autor, Asunto, Palabras clave, Creador, Productor, Fecha de creación, Fecha de modificación |
+| **Metadatos XMP** | Árbol completo de metadatos basado en XML con Dublin Core, XAP, PDF y espacios de nombres personalizados |
+| **Propiedades del documento** | Número de páginas, versión de PDF, tamaño del archivo, estado de cifrado |
+
+## Casos de uso
+
+- Comprobar quién es el autor de un PDF y cuándo se modificó por última vez
+- Verificar que los metadatos se definieron correctamente antes de publicar un documento
+- Auditar PDF en busca de problemas de privacidad revisando qué información personal contienen
+- Investigar el software usado para crear o modificar un PDF (mediante el campo Productor)
+- Revisar los metadatos XMP para el cumplimiento de la gestión de activos digitales
+
+## Consejos
+
+- Las cadenas de fecha de PDF que empiezan por `D:` se convierten automáticamente al formato de tu zona horaria local.
+- Si los campos de metadatos aparecen vacíos, es que el creador del PDF simplemente no los definió. No todos los PDF contienen metadatos completos.
+- Para modificar los metadatos después de inspeccionarlos, usa [Editar Metadatos](./edit-metadata). Para eliminarlos por completo, usa Eliminar Metadatos.
+
+## Herramientas relacionadas
+
+- [Editar Metadatos](./edit-metadata)
+- [Capas OCG de PDF](./pdf-layers)
+- [Comparar PDFs](./compare-pdfs)
diff --git a/docs/es/tools/vsd-to-pdf.md b/docs/es/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..d397ec88
--- /dev/null
+++ b/docs/es/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD a PDF
+description: Convierte diagramas de Microsoft Visio (VSD/VSDX) a PDF en tu navegador. Gratis, privado y sin necesidad de Visio.
+---
+
+# VSD a PDF
+
+Convierte diagramas de Microsoft Visio en PDF sin instalar Visio. Los archivos VSD y VSDX contienen diagramas de flujo, organigramas, diagramas de red y planos que la mayoría de las personas no puede abrir. Esta herramienta los convierte en PDF limpios que se pueden ver en cualquier dispositivo.
+
+## Formatos admitidos
+
+| Formato | Extensión | Notas |
+| :------------ | :-------- | :-------------------------------------------------- |
+| Visio binario | `.vsd` | Formato antiguo de Visio (Visio 2003 y anteriores) |
+| Visio XML | `.vsdx` | Formato moderno de Visio (Visio 2013 y posteriores) |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos VSD o VSDX. Se pueden mezclar ambos formatos en un mismo lote.
+2. Revisa la lista de archivos. Quita las entradas que no quieras con el icono de la papelera o usa **Añadir más archivos** para agregar más diagramas.
+3. Haz clic en **Convertir a PDF**. El motor basado en LibreOffice se carga en el navegador y convierte cada diagrama en un PDF, conservando formas, conectores, etiquetas y la disposición de página.
+4. Un solo diagrama se descarga directamente como PDF. Varios archivos generan un archivo ZIP llamado `vsd-to-pdf.zip`.
+
+## Opciones
+
+No se requiere ninguna configuración. El conversor respeta el tamaño y la orientación de página originales del documento de Visio.
+
+## Casos de uso
+
+- Revisar diagramas de Visio de un compañero cuando no tienes licencia de Visio
+- Incluir diagramas de red o de arquitectura en la documentación de un proyecto como PDF
+- Imprimir organigramas o flujos de procesos como material para reuniones
+- Archivar archivos VSD antiguos de versiones anteriores de Visio en un formato con futuro
+
+## Consejos
+
+- Los documentos de Visio de varias páginas generan PDF de varias páginas, y cada página de Visio se convierte en una página del PDF.
+- Los archivos VSDX (el formato moderno basado en XML) suelen convertirse con mayor fidelidad que los archivos binarios VSD más antiguos.
+- El motor de LibreOffice se carga una sola vez por sesión. Espera un momento en la primera conversión; los siguientes archivos serán más rápidos.
+
+## Herramientas relacionadas
+
+- [ODG a PDF](./odg-to-pdf)
+- [PUB a PDF](./pub-to-pdf)
+- [PSD a PDF](./psd-to-pdf)
diff --git a/docs/es/tools/webp-to-pdf.md b/docs/es/tools/webp-to-pdf.md
new file mode 100644
index 00000000..eefebe55
--- /dev/null
+++ b/docs/es/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP a PDF
+description: Convierte imágenes WebP a PDF directamente en tu navegador con calidad de compresión ajustable.
+---
+
+# WebP a PDF
+
+Convierte el formato de imagen WebP de Google a PDF. Resulta especialmente útil cuando has descargado imágenes de la web en formato WebP y las necesitas en un formato más aceptado universalmente para imprimir o compartir.
+
+## Formatos admitidos
+
+| Formato | Extensiones |
+| :------ | :---------- |
+| WebP | `.webp` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos WebP.
+2. Revisa la lista de archivos y quita los que no necesites.
+3. Selecciona un nivel de **Calidad del PDF**.
+4. Haz clic en **Convertir a PDF**. El resultado se descarga como `from_webps.pdf`.
+
+Internamente, cada imagen WebP se decodifica mediante la API canvas del navegador y después se incrusta en el PDF con pdf-lib. Por eso la conversión funciona en cualquier navegador que admita la decodificación de WebP (todos los navegadores modernos lo hacen).
+
+## Opciones
+
+**Calidad del PDF** controla la compresión al incrustar las imágenes:
+
+- **Alta calidad**: conserva el máximo detalle.
+- **Calidad media** (predeterminada): resultado equilibrado.
+- **Baja calidad**: menor tamaño de archivo.
+
+## Casos de uso
+
+- Convertir en un PDF imprimible las imágenes descargadas de la web guardadas como WebP
+- Reunir capturas de pantalla WebP de Chrome o Edge en documentación
+- Crear un portafolio en PDF a partir de imágenes exportadas por herramientas de diseño que usan WebP por defecto
+- Archivar imágenes WebP en un formato más universalmente legible
+
+## Consejos
+
+- WebP se decodifica internamente a PNG antes de incrustarse en el PDF, por lo que las imágenes WebP sin pérdida conservan su calidad con el ajuste Alta.
+- Si tienes una mezcla de WebP y otros formatos de imagen, usa la herramienta [Imágenes a PDF](./image-to-pdf): acepta todo de una vez.
+
+## Herramientas relacionadas
+
+- [Imágenes a PDF](./image-to-pdf)
+- [PNG a PDF](./png-to-pdf)
+- [JPG a PDF](./jpg-to-pdf)
diff --git a/docs/es/tools/word-to-pdf.md b/docs/es/tools/word-to-pdf.md
new file mode 100644
index 00000000..ec3fc6d9
--- /dev/null
+++ b/docs/es/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word a PDF
+description: Convierte documentos de Word (DOC, DOCX), ODT y RTF a PDF en tu navegador conservando todo el formato.
+---
+
+# Word a PDF
+
+Convierte documentos de Microsoft Word y formatos compatibles a PDF. La herramienta usa un motor de LibreOffice que se ejecuta en el navegador y admite archivos DOC, DOCX, ODT y RTF, conservando en el resultado el formato, las tablas, las imágenes, los encabezados, los pies de página y los estilos.
+
+## Formatos admitidos
+
+| Formato | Extensiones |
+| :--------------------------- | :---------- |
+| Word (moderno) | `.docx` |
+| Word (antiguo) | `.doc` |
+| Texto de OpenDocument | `.odt` |
+| Formato de texto enriquecido | `.rtf` |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus documentos de Word. Puedes seleccionar varios archivos a la vez.
+2. Revisa y gestiona la lista de archivos.
+3. Haz clic en **Convertir a PDF**. El motor de LibreOffice se carga la primera vez que se usa (un indicador de progreso muestra el estado de inicialización) y después se convierte cada archivo.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se empaquetan en `word-converted.zip`.
+
+## Opciones
+
+Esta herramienta no tiene ajustes adicionales. El motor de LibreOffice genera el resultado con su perfil de exportación a PDF predeterminado.
+
+## Resultado
+
+| Cantidad de entrada | Resultado |
+| :------------------ | :------------------------------------------------------------------------ |
+| 1 archivo | Descarga de un solo PDF (nombre de archivo original con extensión `.pdf`) |
+| 2 o más archivos | Archivo ZIP (`word-converted.zip`) con un PDF por archivo |
+
+## Casos de uso
+
+- Convertir un currículum o una carta de presentación de DOCX a PDF antes de enviar una solicitud de empleo
+- Convertir por lotes un conjunto de contratos o propuestas a PDF para entregarlos a un cliente
+- Convertir archivos `.doc` antiguos en PDF modernos para archivarlos a largo plazo
+- Convertir a PDF documentos colaborativos de Google Docs (exportados como DOCX)
+- Generar PDF listos para imprimir a partir de plantillas de Word usadas en la generación automática de documentos
+
+## Consejos
+
+- El motor de LibreOffice se descarga una vez por sesión y se guarda en caché. Espera unos segundos de carga en la primera conversión; las siguientes serán mucho más rápidas.
+- El formato complejo (macros, controles ActiveX, SmartArt avanzado) puede no convertirse a la perfección. Los elementos estándar de un documento (texto, tablas, imágenes, encabezados, notas al pie) se convierten de forma fiable.
+- Como esta herramienta también acepta ODT y RTF, puedes usarla como conversor único para todos los formatos de procesamiento de texto.
+
+## Herramientas relacionadas
+
+- [ODT a PDF](./odt-to-pdf)
+- [RTF a PDF](./rtf-to-pdf)
+- [Excel a PDF](./excel-to-pdf)
+- [PowerPoint a PDF](./powerpoint-to-pdf)
diff --git a/docs/es/tools/wpd-to-pdf.md b/docs/es/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..b778daca
--- /dev/null
+++ b/docs/es/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD a PDF
+description: Convierte documentos de WordPerfect (WPD) a PDF en tu navegador con LibreOffice. Gratis y privado.
+---
+
+# WPD a PDF
+
+Convierte documentos de Corel WordPerfect en archivos PDF. WPD fue en su día el formato de procesamiento de texto dominante en despachos jurídicos y organismos públicos. Si tienes archivos antiguos de WordPerfect que el software actual se niega a abrir, esta herramienta los devuelve a la vida como PDF estándar.
+
+## Formatos admitidos
+
+| Formato | Extensión | Notas |
+| :---------- | :-------- | :--------------------------------------------- |
+| WordPerfect | `.wpd` | Todas las versiones principales de WordPerfect |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos WPD. Puedes seleccionar varios archivos a la vez.
+2. Revisa la lista de archivos. Quita los que no quieras con el icono de la papelera o usa **Añadir más archivos** para agregar más documentos.
+3. Haz clic en **Convertir a PDF**. La herramienta carga en tu navegador un motor de conversión basado en LibreOffice, que analiza el formato WPD y genera el PDF.
+4. Un solo archivo se descarga directamente como PDF. Las conversiones por lotes generan un archivo ZIP llamado `wpd-to-pdf.zip`.
+
+## Opciones
+
+No se requiere ninguna configuración. El motor de LibreOffice gestiona automáticamente el formato, las fuentes y la maquetación de WPD.
+
+## Casos de uso
+
+- Abrir documentos jurídicos de hace décadas escritos en WordPerfect
+- Convertir expedientes archivados de organismos públicos de WPD a un formato moderno
+- Migrar una biblioteca antigua de documentos de WordPerfect a PDF para almacenarla a largo plazo
+- Compartir archivos WPD con destinatarios que no tienen Corel WordPerfect instalado
+
+## Consejos
+
+- El motor de LibreOffice se carga la primera vez que se usa, lo cual lleva un momento. Las conversiones posteriores en la misma sesión son más rápidas.
+- Las macros complejas de WPD y los códigos revelados no se conservan, pero la maquetación visual, el contenido de texto y el formato básico pasan al PDF.
+
+## Herramientas relacionadas
+
+- [WPS a PDF](./wps-to-pdf)
+- [ODG a PDF](./odg-to-pdf)
diff --git a/docs/es/tools/wps-to-pdf.md b/docs/es/tools/wps-to-pdf.md
new file mode 100644
index 00000000..b262b049
--- /dev/null
+++ b/docs/es/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS a PDF
+description: Convierte documentos de Microsoft Works (WPS) a PDF en tu navegador. Gratis, sin registro y totalmente privado.
+---
+
+# WPS a PDF
+
+Convierte archivos del procesador de textos de Microsoft Works en PDF. Microsoft Works venía incluido en los PC domésticos a finales de los noventa y durante los años 2000, y muchos archivos WPS siguen en discos duros antiguos y archivos de correo. Esta herramienta los abre en el navegador y genera PDF limpios.
+
+## Formatos admitidos
+
+| Formato | Extensión | Notas |
+| :-------------- | :-------- | :--------------------------------------------------- |
+| Microsoft Works | `.wps` | Archivos del procesador de textos de Microsoft Works |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos WPS. Se aceptan varios archivos.
+2. Revisa la lista de archivos. Usa el icono de la papelera para quitar archivos individuales o haz clic en **Añadir más archivos** para ampliar tu lote.
+3. Haz clic en **Convertir a PDF**. Un motor basado en LibreOffice se carga en el navegador y convierte cada documento WPS a PDF.
+4. Un archivo se descarga directamente como PDF. Varios archivos se agrupan en un archivo ZIP llamado `wps-to-pdf.zip`.
+
+## Opciones
+
+No hacen falta ajustes adicionales. El conversor gestiona el texto, el formato básico y las imágenes incrustadas del archivo WPS.
+
+## Casos de uso
+
+- Recuperar documentos antiguos del colegio o del trabajo guardados en formato Microsoft Works
+- Abrir archivos adjuntos WPS recibidos por correo cuando no tienes Microsoft Works instalado
+- Convertir un archivo de documentos WPS para migrarlo a un sistema documental moderno
+- Imprimir documentos antiguos que los procesadores de texto actuales no pueden abrir
+
+## Consejos
+
+- No confundas los archivos `.wps` de Microsoft Works con los de WPS Office. Esta herramienta es solo para el formato antiguo de Microsoft Works.
+- El motor de LibreOffice tarda un momento en cargarse la primera vez. Una vez cargado, las conversiones adicionales de la misma sesión se ejecutan más rápido.
+
+## Herramientas relacionadas
+
+- [WPD a PDF](./wpd-to-pdf)
+- [PUB a PDF](./pub-to-pdf)
diff --git a/docs/es/tools/xml-to-pdf.md b/docs/es/tools/xml-to-pdf.md
new file mode 100644
index 00000000..38e42264
--- /dev/null
+++ b/docs/es/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML a PDF
+description: Convierte archivos XML en documentos PDF estructurados en tu navegador. Gratis, privado y sin procesamiento en servidor.
+---
+
+# XML a PDF
+
+Convierte archivos de datos XML en documentos PDF legibles y estructurados. El XML en bruto es potente pero difícil de leer para las personas. Esta herramienta analiza el árbol XML, identifica las estructuras de datos repetidas y las muestra como tablas y secciones con formato en un PDF A4 horizontal.
+
+## Formatos admitidos
+
+| Formato | Extensión | Notas |
+| :------ | :-------- | :----------------------------------- |
+| XML | `.xml` | Cualquier documento XML bien formado |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos XML. Se pueden procesar varios archivos en un mismo lote.
+2. Revisa la lista de archivos. Quita los que no quieras con el icono de la papelera o haz clic en **Añadir más archivos** para incluir más.
+3. Haz clic en **Convertir a PDF**. La herramienta analiza la estructura XML con el DOMParser integrado del navegador, estudia la jerarquía de los datos y la convierte en un PDF con jsPDF y formato de tabla automático.
+4. Un solo archivo se descarga como PDF. Varias conversiones se empaquetan en `xml-to-pdf.zip`.
+
+## Opciones
+
+No se requiere configuración manual. El conversor detecta automáticamente la estructura del XML y elige las disposiciones de tabla adecuadas. El resultado usa orientación A4 horizontal para acomodar conjuntos de datos anchos.
+
+## Casos de uso
+
+- Convertir exportaciones de datos XML de bases de datos o API en informes imprimibles
+- Crear resúmenes legibles a partir de archivos de configuración XML
+- Convertir facturas o registros de transacciones basados en XML en PDF para su archivo
+- Hacer legibles en forma de documento los mapas del sitio XML o los feeds RSS
+
+## Consejos
+
+- El XML debe estar bien formado. Si el analizador encuentra errores de sintaxis, la conversión fallará con un mensaje de error descriptivo que señala el problema.
+- Las estructuras XML muy anidadas se aplanan en tablas. Para obtener los mejores resultados, los datos deben tener elementos hermanos repetidos con elementos hijos coherentes.
+- Durante la conversión aparecen actualizaciones de progreso que muestran cada fase: lectura, análisis, estudio y renderizado.
+
+## Herramientas relacionadas
+
+- [FB2 a PDF](./fb2-to-pdf)
+- [XPS a PDF](./xps-to-pdf)
+- [Email a PDF](./email-to-pdf)
diff --git a/docs/es/tools/xps-to-pdf.md b/docs/es/tools/xps-to-pdf.md
new file mode 100644
index 00000000..160fd18b
--- /dev/null
+++ b/docs/es/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS a PDF
+description: Convierte documentos XPS y OXPS a formato PDF en tu navegador. Sin subir archivos, sin registro y totalmente privado.
+---
+
+# XPS a PDF
+
+Convierte documentos XPS y OXPS de Microsoft en archivos PDF estándar. XPS (XML Paper Specification) fue la respuesta de Microsoft al PDF, pero su compatibilidad ha ido disminuyendo en todas las plataformas. Esta herramienta vuelve a hacer legibles esos documentos para todo el mundo.
+
+## Formatos admitidos
+
+| Formato | Extensión | Notas |
+| :------ | :-------- | :------------------------------------------ |
+| XPS | `.xps` | Formato XPS original de Microsoft |
+| OXPS | `.oxps` | Open XPS, la variante del estándar ECMA-388 |
+
+## Cómo funciona
+
+1. Haz clic en el área de carga o arrastra y suelta tus archivos XPS/OXPS. Puedes seleccionar varios archivos a la vez.
+2. Revisa la lista de archivos. Quita archivos individuales con el icono de la papelera o haz clic en **Añadir más archivos** para agregar más documentos.
+3. Haz clic en **Convertir a PDF**. El motor PyMuPDF procesa cada documento de forma local en tu navegador.
+4. Un solo archivo se descarga directamente como PDF. Varios archivos se agrupan en un archivo ZIP llamado `xps-converted.zip`.
+
+## Opciones
+
+Esta herramienta realiza una conversión directa de formato sin configuración adicional. El resultado conserva las dimensiones de página, los gráficos vectoriales, las fuentes y las imágenes originales del archivo XPS.
+
+## Casos de uso
+
+- Abrir archivos XPS recibidos de sistemas Windows antiguos que usaban por defecto el controlador de impresión XPS
+- Convertir documentos OXPS de Windows 10/11 para compartirlos con usuarios de macOS o Linux
+- Archivar archivos XPS antiguos en un formato con mayor compatibilidad
+- Hacer accesibles a destinatarios externos documentos oficiales o corporativos basados en XPS
+
+## Consejos
+
+- Las extensiones `.xps` y `.oxps` se gestionan automáticamente: puedes mezclarlas en el mismo lote.
+- Si el archivo XPS original se creó con un controlador de impresión de alta resolución, el PDF resultante conserva esa calidad. No se vuelve a muestrear.
+
+## Herramientas relacionadas
+
+- [Word a PDF](./word-to-pdf)
+- [XML a PDF](./xml-to-pdf)
diff --git a/docs/fa/contributing.md b/docs/fa/contributing.md
new file mode 100644
index 00000000..7dcd7115
--- /dev/null
+++ b/docs/fa/contributing.md
@@ -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)
+
+با مشارکت، میپذیرید که مشارکتهای شما تحت این شرایط مجوزدهی شوند.
diff --git a/docs/fa/getting-started.md b/docs/fa/getting-started.md
new file mode 100644
index 00000000..71b278c2
--- /dev/null
+++ b/docs/fa/getting-started.md
@@ -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)
diff --git a/docs/fa/index.md b/docs/fa/index.md
new file mode 100644
index 00000000..4a529868
--- /dev/null
+++ b/docs/fa/index.md
@@ -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/) را ببینید.
diff --git a/docs/fa/licensing.md b/docs/fa/licensing.md
new file mode 100644
index 00000000..c07e8e62
--- /dev/null
+++ b/docs/fa/licensing.md
@@ -0,0 +1,110 @@
+# 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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/fa/self-hosting/apache.md b/docs/fa/self-hosting/apache.md
new file mode 100644
index 00000000..b3616c00
--- /dev/null
+++ b/docs/fa/self-hosting/apache.md
@@ -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
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## گام ۴: فایل .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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+مطمئن شوید `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
+```
diff --git a/docs/fa/self-hosting/aws.md b/docs/fa/self-hosting/aws.md
new file mode 100644
index 00000000..0aad6fdf
--- /dev/null
+++ b/docs/fa/self-hosting/aws.md
@@ -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"
+ }
+}
+```
diff --git a/docs/fa/self-hosting/cloudflare.md b/docs/fa/self-hosting/cloudflare.md
new file mode 100644
index 00000000..d469d997
--- /dev/null
+++ b/docs/fa/self-hosting/cloudflare.md
@@ -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) را ببینید.
diff --git a/docs/fa/self-hosting/cors-proxy.md b/docs/fa/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..82b83c07
--- /dev/null
+++ b/docs/fa/self-hosting/cors-proxy.md
@@ -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های تجاری که گواهیهای میانی را همراه میکنند
+- گواهیهایی که خودتان دستی با زنجیرهٔ کامل سرهم کردهاید
diff --git a/docs/fa/self-hosting/docker.md b/docs/fa/self-hosting/docker.md
new file mode 100644
index 00000000..9841b17e
--- /dev/null
+++ b/docs/fa/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# استقرار با 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
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+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` |
+| `COMPRESSION_MODE` | نسخههای ازپیشفشردهای که کنار هر فایل ذخیره میشوند: `o` هیچ، `g` `.gz` (توسط nginx ایمیج ارائه میشود)، `b` `.br`، `all` هر دو. nginx ایمیج نمیتواند `.br` را ارائه کند. | `o` |
+
+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`) شناسهٔ ابزار است.
+
+
+فهرست کامل شناسههای ابزارها
+
+**ویرایش و حاشیهنویسی:** `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`
+
+
+
+#### گزینهٔ ۱: زمان ساخت (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"]
+}
+```
+
+
+فهرست کامل دستههای ویرایشگر
+
+**بزرگنمایی:** `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`
+
+**اندازهگیری:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**فرم:** `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`, `organize`
+
+**انتخاب:** `selection`, `selection-copy`
+
+**تاریخچه:** `history`, `history-undo`, `history-redo`
+
+
+
+دستهها سلسلهمراتبی هستند؛ غیرفعال کردن یک والد (مثلاً `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 ` بر اساس نام جستجو کنید. وقتی با زیرمجموعهٔ محدودی از زبانهای 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
+```
diff --git a/docs/fa/self-hosting/hostinger.md b/docs/fa/self-hosting/hostinger.md
new file mode 100644
index 00000000..648bac1f
--- /dev/null
+++ b/docs/fa/self-hosting/hostinger.md
@@ -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)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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 را جداگانه بارگذاری کنید.
diff --git a/docs/fa/self-hosting/index.md b/docs/fa/self-hosting/index.md
new file mode 100644
index 00000000..41a0cdcd
--- /dev/null
+++ b/docs/fa/self-hosting/index.md
@@ -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 ` | محل میزبانی داخلی WASMها | _(الزامی، در صورت نبود پرسیده میشود)_ |
+| `--image-name ` | برچسب ایمیج Docker | `bentopdf` |
+| `--output-dir ` | پوشهٔ خروجی بسته | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | فعال کردن Simple Mode | خاموش |
+| `--base-url ` | URL پایهٔ زیرپوشه (مثلاً `/pdf/`) | `/` |
+| `--language ` | زبان پیشفرض رابط کاربری (مثلاً `fr`، `de`) | _(هیچ)_ |
+| `--brand-name ` | نام برند سفارشی | _(هیچ)_ |
+| `--brand-logo ` | مسیر لوگو نسبت به `public/` | _(هیچ)_ |
+| `--footer-text ` | متن سفارشی پاورقی | _(هیچ)_ |
+| `--ocr-languages ` | زبانهای OCR برای همراه کردن، جداشده با ویرگول | `eng` |
+| `--list-ocr-languages` | چاپ کدها و نامهای OCR پشتیبانیشده و سپس خروج | خاموش |
+| `--search-ocr-language ` | جستجوی کدهای OCR بر اساس نام یا اختصار | خاموش |
+| `--dockerfile ` | Dockerfile مورد استفاده | `Dockerfile` |
+| `--skip-docker` | رد شدن از ساخت و خروجی گرفتن Docker | خاموش |
+| `--skip-wasm` | رد شدن از دانلود WASM (استفادهٔ دوباره از فایلهای `.tgz` موجود) | خاموش |
+
+ورودی تعاملی همچنین `list` را برای چاپ فهرست کامل کدهای پشتیبانیشدهٔ Tesseract و `search ` را برای یافتن موارد منطبق مانند `search german` یا `search chi` میپذیرد.
+
+::: warning الزام هممبدأ بودن
+فایلهای WASM باید از **همان مبدأ** برنامهٔ BentoPDF ارائه شوند. Web Workerها از `importScripts()` استفاده میکنند که نمیتواند اسکریپتها را از مبدأ دیگری بارگذاری کند. برای مثال، اگر BentoPDF روی `https://internal.example.com` اجرا میشود، URL پایه برای WASM نیز باید `https://internal.example.com/wasm` باشد.
+:::
+
+#### گامهای دستی
+
+
+اگر ترجیح میدهید بدون اسکریپت و بهصورت دستی انجام دهید
+
+**گام ۱: دانلود بستههای 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`.
+
+
+
+::: 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 یک سایت ایستاست؛ به هیچ پایگاه داده یا سرور بکاندی نیاز نیست!
+:::
diff --git a/docs/fa/self-hosting/kubernetes.md b/docs/fa/self-hosting/kubernetes.md
new file mode 100644
index 00000000..a125d835
--- /dev/null
+++ b/docs/fa/self-hosting/kubernetes.md
@@ -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:`) که روی **پورت 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=""
+
+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#غیرفعال-کردن-ابزارهای-مشخص) را ببینید.
diff --git a/docs/fa/self-hosting/netlify.md b/docs/fa/self-hosting/netlify.md
new file mode 100644
index 00000000..932fc17c
--- /dev/null
+++ b/docs/fa/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# استقرار روی Netlify
+
+[Netlify](https://netlify.com) میزبانی عالی برای سایتهای ایستا با یک طرح رایگان سخاوتمندانه ارائه میدهد.
+
+## استقرار با یک کلیک
+
+[](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 فعال کنید.
diff --git a/docs/fa/self-hosting/nginx.md b/docs/fa/self-hosting/nginx.md
new file mode 100644
index 00000000..357634d9
--- /dev/null
+++ b/docs/fa/self-hosting/nginx.md
@@ -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
+```
diff --git a/docs/fa/self-hosting/vercel.md b/docs/fa/self-hosting/vercel.md
new file mode 100644
index 00000000..5c7dbbb7
--- /dev/null
+++ b/docs/fa/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# استقرار روی Vercel
+
+[Vercel](https://vercel.com) سادهترین تجربهٔ استقرار را برای سایتهای ایستا ارائه میدهد.
+
+## استقرار با یک کلیک
+
+[](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` برگرداند.
diff --git a/docs/fa/tools/add-attachments.md b/docs/fa/tools/add-attachments.md
new file mode 100644
index 00000000..b3897cf4
--- /dev/null
+++ b/docs/fa/tools/add-attachments.md
@@ -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)
diff --git a/docs/fa/tools/add-blank-page.md b/docs/fa/tools/add-blank-page.md
new file mode 100644
index 00000000..0949aede
--- /dev/null
+++ b/docs/fa/tools/add-blank-page.md
@@ -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)
diff --git a/docs/fa/tools/add-page-labels.md b/docs/fa/tools/add-page-labels.md
new file mode 100644
index 00000000..08059ce6
--- /dev/null
+++ b/docs/fa/tools/add-page-labels.md
@@ -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)
diff --git a/docs/fa/tools/add-stamps.md b/docs/fa/tools/add-stamps.md
new file mode 100644
index 00000000..7e3c8a1d
--- /dev/null
+++ b/docs/fa/tools/add-stamps.md
@@ -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)
diff --git a/docs/fa/tools/add-watermark.md b/docs/fa/tools/add-watermark.md
new file mode 100644
index 00000000..3da78d30
--- /dev/null
+++ b/docs/fa/tools/add-watermark.md
@@ -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)
diff --git a/docs/fa/tools/adjust-colors.md b/docs/fa/tools/adjust-colors.md
new file mode 100644
index 00000000..864e543e
--- /dev/null
+++ b/docs/fa/tools/adjust-colors.md
@@ -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)
diff --git a/docs/fa/tools/alternate-merge.md b/docs/fa/tools/alternate-merge.md
new file mode 100644
index 00000000..8ef3be54
--- /dev/null
+++ b/docs/fa/tools/alternate-merge.md
@@ -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)
diff --git a/docs/fa/tools/background-color.md b/docs/fa/tools/background-color.md
new file mode 100644
index 00000000..f94d822f
--- /dev/null
+++ b/docs/fa/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: رنگ پسزمینه
+description: رنگ پسزمینهٔ همهٔ صفحات PDF را تغییر دهید و همهٔ محتوای رویی را حفظ کنید.
+---
+
+# رنگ پسزمینه
+
+یک رنگ پسزمینهٔ یکدست پشت همهٔ محتوای موجود PDF قرار دهید. ابزار روی هر صفحه یک مستطیل رنگی میسازد و محتوای اصلی را روی آن قرار میدهد، بنابراین متن، تصاویر و گرافیکها روی پسزمینهٔ جدید کاملاً قابل مشاهده میمانند.
+
+## نحوهٔ کار
+
+1. فایل PDF خود را بارگذاری کنید.
+2. با انتخابگر رنگ یک رنگ پسزمینه انتخاب کنید. پیشفرض زرد روشن (#FFFFCC) است.
+3. روی **تغییر رنگ پسزمینه** کلیک کنید تا پردازش شود.
+4. PDF بهروزشده بهطور خودکار دانلود میشود.
+
+## گزینهها
+
+- **رنگ پسزمینه**: یک انتخابگر رنگ استاندارد برای انتخاب هر رنگ یکدست. پیشفرض زرد روشن است.
+
+## ویژگیها
+
+- اعمال رنگ پسزمینهٔ یکسان روی همهٔ صفحات
+- حفظ همهٔ محتوای اصلی (متن، تصاویر، گرافیک برداری) روی لایهٔ رنگی
+- حفظ ابعاد اصلی صفحه
+- کار با اسنادی با هر تعداد صفحه
+
+## موارد استفاده
+
+- افزودن پسزمینهٔ کرم یا عاجی روشن برای ظاهری نرمتر و کاغذمانند
+- رنگبندی مجموعه اسناد با اعمال رنگهای پسزمینهٔ متفاوت برای دستههای مختلف
+- ساخت نسخههای متمایز بصری از یک سند برای مخاطبان مختلف
+- افزودن تهرنگ روشن به پسزمینه برای خوانایی بهتر هنگام نمایش اسناد روی پرده
+
+## نکتهها
+
+- رنگهای روشن و ملایم بهترین نتیجه را دارند. پسزمینهٔ خیلی تیره میتواند خواندن متن را دشوار کند، مگر اینکه متن از قبل روشن باشد.
+- اگر میخواهید هم پسزمینه و هم رنگ متن را تغییر دهید، ابتدا رنگ پسزمینه را اعمال کنید، سپس روی نتیجه از [تغییر رنگ متن](./text-color) استفاده کنید.
+- این ابزار در سطح ساختار PDF کار میکند (نه تبدیل به تصویر)، بنابراین متن در خروجی قابل انتخاب و جستجو باقی میماند.
+
+## ابزارهای مرتبط
+
+- [تغییر رنگ متن](./text-color)
+- [وارونهسازی رنگها](./invert-colors)
+- [تنظیم رنگها](./adjust-colors)
diff --git a/docs/fa/tools/bates-numbering.md b/docs/fa/tools/bates-numbering.md
new file mode 100644
index 00000000..97f4535a
--- /dev/null
+++ b/docs/fa/tools/bates-numbering.md
@@ -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)
diff --git a/docs/fa/tools/bmp-to-pdf.md b/docs/fa/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..55dbad9a
--- /dev/null
+++ b/docs/fa/tools/bmp-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/bookmark.md b/docs/fa/tools/bookmark.md
new file mode 100644
index 00000000..7414b78f
--- /dev/null
+++ b/docs/fa/tools/bookmark.md
@@ -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)
diff --git a/docs/fa/tools/cbz-to-pdf.md b/docs/fa/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..7d02434c
--- /dev/null
+++ b/docs/fa/tools/cbz-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/change-permissions.md b/docs/fa/tools/change-permissions.md
new file mode 100644
index 00000000..aa140e52
--- /dev/null
+++ b/docs/fa/tools/change-permissions.md
@@ -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): برداشتن همهٔ محدودیتها وقتی گذرواژهٔ مالک را دارید
diff --git a/docs/fa/tools/combine-single-page.md b/docs/fa/tools/combine-single-page.md
new file mode 100644
index 00000000..08c4b520
--- /dev/null
+++ b/docs/fa/tools/combine-single-page.md
@@ -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)
diff --git a/docs/fa/tools/compare-pdfs.md b/docs/fa/tools/compare-pdfs.md
new file mode 100644
index 00000000..194db772
--- /dev/null
+++ b/docs/fa/tools/compare-pdfs.md
@@ -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)
diff --git a/docs/fa/tools/compress-pdf.md b/docs/fa/tools/compress-pdf.md
new file mode 100644
index 00000000..8e0ec62a
--- /dev/null
+++ b/docs/fa/tools/compress-pdf.md
@@ -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): حذف دادههای پنهان برای حفظ حریم خصوصی
diff --git a/docs/fa/tools/crop-pdf.md b/docs/fa/tools/crop-pdf.md
new file mode 100644
index 00000000..3ceb1c6e
--- /dev/null
+++ b/docs/fa/tools/crop-pdf.md
@@ -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)
diff --git a/docs/fa/tools/csv-to-pdf.md b/docs/fa/tools/csv-to-pdf.md
new file mode 100644
index 00000000..f342a83b
--- /dev/null
+++ b/docs/fa/tools/csv-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/delete-pages.md b/docs/fa/tools/delete-pages.md
new file mode 100644
index 00000000..d32d84c1
--- /dev/null
+++ b/docs/fa/tools/delete-pages.md
@@ -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)
diff --git a/docs/fa/tools/deskew-pdf.md b/docs/fa/tools/deskew-pdf.md
new file mode 100644
index 00000000..18041cba
--- /dev/null
+++ b/docs/fa/tools/deskew-pdf.md
@@ -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های اسکنشده
diff --git a/docs/fa/tools/digital-sign-pdf.md b/docs/fa/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..b44b8e75
--- /dev/null
+++ b/docs/fa/tools/digital-sign-pdf.md
@@ -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): حذف فراداده پیش از امضا
diff --git a/docs/fa/tools/divide-pages.md b/docs/fa/tools/divide-pages.md
new file mode 100644
index 00000000..53e6b0a4
--- /dev/null
+++ b/docs/fa/tools/divide-pages.md
@@ -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)
diff --git a/docs/fa/tools/duplex-collate.md b/docs/fa/tools/duplex-collate.md
new file mode 100644
index 00000000..404b3d60
--- /dev/null
+++ b/docs/fa/tools/duplex-collate.md
@@ -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)
diff --git a/docs/fa/tools/edit-attachments.md b/docs/fa/tools/edit-attachments.md
new file mode 100644
index 00000000..523412c4
--- /dev/null
+++ b/docs/fa/tools/edit-attachments.md
@@ -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)
diff --git a/docs/fa/tools/edit-metadata.md b/docs/fa/tools/edit-metadata.md
new file mode 100644
index 00000000..c9b677bd
--- /dev/null
+++ b/docs/fa/tools/edit-metadata.md
@@ -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)
diff --git a/docs/fa/tools/edit-pdf.md b/docs/fa/tools/edit-pdf.md
new file mode 100644
index 00000000..969e8924
--- /dev/null
+++ b/docs/fa/tools/edit-pdf.md
@@ -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)
diff --git a/docs/fa/tools/email-to-pdf.md b/docs/fa/tools/email-to-pdf.md
new file mode 100644
index 00000000..768ad621
--- /dev/null
+++ b/docs/fa/tools/email-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/epub-to-pdf.md b/docs/fa/tools/epub-to-pdf.md
new file mode 100644
index 00000000..6156e13b
--- /dev/null
+++ b/docs/fa/tools/epub-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/excel-to-pdf.md b/docs/fa/tools/excel-to-pdf.md
new file mode 100644
index 00000000..4e62e996
--- /dev/null
+++ b/docs/fa/tools/excel-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/extract-attachments.md b/docs/fa/tools/extract-attachments.md
new file mode 100644
index 00000000..36433f2d
--- /dev/null
+++ b/docs/fa/tools/extract-attachments.md
@@ -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)
diff --git a/docs/fa/tools/extract-images.md b/docs/fa/tools/extract-images.md
new file mode 100644
index 00000000..7c4fe4a9
--- /dev/null
+++ b/docs/fa/tools/extract-images.md
@@ -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)
diff --git a/docs/fa/tools/extract-pages.md b/docs/fa/tools/extract-pages.md
new file mode 100644
index 00000000..df10a705
--- /dev/null
+++ b/docs/fa/tools/extract-pages.md
@@ -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)
diff --git a/docs/fa/tools/extract-tables.md b/docs/fa/tools/extract-tables.md
new file mode 100644
index 00000000..18b0eb16
--- /dev/null
+++ b/docs/fa/tools/extract-tables.md
@@ -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)
diff --git a/docs/fa/tools/fb2-to-pdf.md b/docs/fa/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..ea6522c0
--- /dev/null
+++ b/docs/fa/tools/fb2-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/fix-page-size.md b/docs/fa/tools/fix-page-size.md
new file mode 100644
index 00000000..85279bb6
--- /dev/null
+++ b/docs/fa/tools/fix-page-size.md
@@ -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): برش دستی صفحات بهجای مقیاسدهی خودکار
diff --git a/docs/fa/tools/flatten-pdf.md b/docs/fa/tools/flatten-pdf.md
new file mode 100644
index 00000000..c7d33b2f
--- /dev/null
+++ b/docs/fa/tools/flatten-pdf.md
@@ -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 مسطحشده با گذرواژه
diff --git a/docs/fa/tools/font-to-outline.md b/docs/fa/tools/font-to-outline.md
new file mode 100644
index 00000000..f17adc58
--- /dev/null
+++ b/docs/fa/tools/font-to-outline.md
@@ -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): تبدیل برای بایگانی پس از اطمینان از استقلال از قلم
diff --git a/docs/fa/tools/form-creator.md b/docs/fa/tools/form-creator.md
new file mode 100644
index 00000000..adcfc7d4
--- /dev/null
+++ b/docs/fa/tools/form-creator.md
@@ -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)
diff --git a/docs/fa/tools/form-filler.md b/docs/fa/tools/form-filler.md
new file mode 100644
index 00000000..ffc6377a
--- /dev/null
+++ b/docs/fa/tools/form-filler.md
@@ -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)
diff --git a/docs/fa/tools/header-footer.md b/docs/fa/tools/header-footer.md
new file mode 100644
index 00000000..2665e51b
--- /dev/null
+++ b/docs/fa/tools/header-footer.md
@@ -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)
diff --git a/docs/fa/tools/heic-to-pdf.md b/docs/fa/tools/heic-to-pdf.md
new file mode 100644
index 00000000..9a6a4c37
--- /dev/null
+++ b/docs/fa/tools/heic-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/image-to-pdf.md b/docs/fa/tools/image-to-pdf.md
new file mode 100644
index 00000000..795f1423
--- /dev/null
+++ b/docs/fa/tools/image-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/index.md b/docs/fa/tools/index.md
new file mode 100644
index 00000000..8e2716b6
--- /dev/null
+++ b/docs/fa/tools/index.md
@@ -0,0 +1,183 @@
+# مرجع ابزارها
+
+BentoPDF بیش از **130 ابزار** برای کار با PDF ارائه میدهد. همهٔ ابزارها کاملاً در مرورگر شما اجرا میشوند؛ فایلهای شما هرگز از دستگاهتان خارج نمیشوند.
+
+---
+
+## ویرایش و حاشیهنویسی
+
+اسناد PDF خود را با مجموعهای کامل از ابزارهای ویرایش تغییر دهید، نشانهگذاری و بهبود دهید.
+
+
+
+- [**ویرایشگر 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): شناسایی و حذف خودکار صفحات خالی.
+
+
+
+---
+
+## تبدیل به PDF
+
+تصاویر، اسناد، کتابهای الکترونیکی و دیگر قالبهای فایل را به PDF تبدیل کنید.
+
+
+
+- [**تصاویر به 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.
+
+
+
+---
+
+## تبدیل از PDF
+
+محتوای PDF را به تصاویر، اسناد و قالبهای داده استخراج کنید.
+
+
+
+- [**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.
+
+
+
+---
+
+## سازماندهی و مدیریت
+
+صفحات و فایلهای PDF خود را بازچینی، ترکیب، تقسیم و مدیریت کنید.
+
+
+
+- [**سازندهٔ گردش کار 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): تقسیم یک صفحهٔ بزرگ به چند صفحهٔ کوچکتر.
+
+
+
+---
+
+## بهینهسازی و ترمیم
+
+PDFهای خود را برای عملکرد و سازگاری بهتر فشرده، اصلاح و بهینه کنید.
+
+
+
+- [**فشردهسازی 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): تبدیل همهٔ قلمها به خطوط برداری برای نمایش یکسان.
+
+
+
+---
+
+## امنیت PDF
+
+از اسناد PDF خود محافظت کنید، آنها را رمزگذاری کنید و دسترسی به آنها را کنترل کنید.
+
+
+
+- [**رمزگذاری 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): بررسی امضاهای دیجیتال و مشاهدهٔ جزئیات گواهی.
+
+
diff --git a/docs/fa/tools/invert-colors.md b/docs/fa/tools/invert-colors.md
new file mode 100644
index 00000000..ed08cfc1
--- /dev/null
+++ b/docs/fa/tools/invert-colors.md
@@ -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)
diff --git a/docs/fa/tools/jpg-to-pdf.md b/docs/fa/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..78649bab
--- /dev/null
+++ b/docs/fa/tools/jpg-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/json-to-pdf.md b/docs/fa/tools/json-to-pdf.md
new file mode 100644
index 00000000..d58f6a88
--- /dev/null
+++ b/docs/fa/tools/json-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/linearize-pdf.md b/docs/fa/tools/linearize-pdf.md
new file mode 100644
index 00000000..4f3ab67e
--- /dev/null
+++ b/docs/fa/tools/linearize-pdf.md
@@ -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): حذف فراداده پیش از انتشار آنلاین
diff --git a/docs/fa/tools/markdown-to-pdf.md b/docs/fa/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..b8c1a7fd
--- /dev/null
+++ b/docs/fa/tools/markdown-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/merge-pdf.md b/docs/fa/tools/merge-pdf.md
new file mode 100644
index 00000000..20a73260
--- /dev/null
+++ b/docs/fa/tools/merge-pdf.md
@@ -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)
diff --git a/docs/fa/tools/mobi-to-pdf.md b/docs/fa/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..115374e8
--- /dev/null
+++ b/docs/fa/tools/mobi-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/n-up-pdf.md b/docs/fa/tools/n-up-pdf.md
new file mode 100644
index 00000000..9f822140
--- /dev/null
+++ b/docs/fa/tools/n-up-pdf.md
@@ -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)
diff --git a/docs/fa/tools/ocr-pdf.md b/docs/fa/tools/ocr-pdf.md
new file mode 100644
index 00000000..59ca6290
--- /dev/null
+++ b/docs/fa/tools/ocr-pdf.md
@@ -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)
diff --git a/docs/fa/tools/odg-to-pdf.md b/docs/fa/tools/odg-to-pdf.md
new file mode 100644
index 00000000..ef0178ff
--- /dev/null
+++ b/docs/fa/tools/odg-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/odp-to-pdf.md b/docs/fa/tools/odp-to-pdf.md
new file mode 100644
index 00000000..7eb3b5c4
--- /dev/null
+++ b/docs/fa/tools/odp-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/ods-to-pdf.md b/docs/fa/tools/ods-to-pdf.md
new file mode 100644
index 00000000..c0dd59ea
--- /dev/null
+++ b/docs/fa/tools/ods-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/odt-to-pdf.md b/docs/fa/tools/odt-to-pdf.md
new file mode 100644
index 00000000..4c4c2929
--- /dev/null
+++ b/docs/fa/tools/odt-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/organize-pdf.md b/docs/fa/tools/organize-pdf.md
new file mode 100644
index 00000000..38bd25f2
--- /dev/null
+++ b/docs/fa/tools/organize-pdf.md
@@ -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)
diff --git a/docs/fa/tools/page-dimensions.md b/docs/fa/tools/page-dimensions.md
new file mode 100644
index 00000000..25736061
--- /dev/null
+++ b/docs/fa/tools/page-dimensions.md
@@ -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): اصلاح صفحات چرخیده
diff --git a/docs/fa/tools/page-numbers.md b/docs/fa/tools/page-numbers.md
new file mode 100644
index 00000000..3b03a484
--- /dev/null
+++ b/docs/fa/tools/page-numbers.md
@@ -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)
diff --git a/docs/fa/tools/pdf-booklet.md b/docs/fa/tools/pdf-booklet.md
new file mode 100644
index 00000000..7ce3de31
--- /dev/null
+++ b/docs/fa/tools/pdf-booklet.md
@@ -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)
diff --git a/docs/fa/tools/pdf-layers.md b/docs/fa/tools/pdf-layers.md
new file mode 100644
index 00000000..5817425e
--- /dev/null
+++ b/docs/fa/tools/pdf-layers.md
@@ -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)
diff --git a/docs/fa/tools/pdf-multi-tool.md b/docs/fa/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..89475784
--- /dev/null
+++ b/docs/fa/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: ابزار چندکارهٔ PDF
+description: مدیر همهکارهٔ صفحات برای ادغام، تقسیم، چرخاندن، تکثیر، حذف، تغییر ترتیب و تغییر اندازهٔ صفحات PDF.
+---
+
+# ابزار چندکارهٔ PDF
+
+فضای کاری یکپارچه برای همهٔ عملیات سطح صفحه در PDF. یک یا چند PDF بارگذاری کنید و با همهٔ صفحات آنها در یک شبکهٔ بصری کار کنید. صفحات را بچرخانید، جابهجا، تکثیر و حذف کنید، PDF، تصویر و صفحهٔ خالی درج کنید، شمارهگذاری صفحات را تغییر دهید، اندازهٔ آنها را عوض کنید و نتیجه را تقسیم کنید، همه بدون خروج از ابزار.
+
+## نحوهٔ کار
+
+1. روی **انتخاب فایلها** کلیک کنید یا فایلها را روی ناحیهٔ بارگذاری بکشید. چند فایل پشتیبانی میشود و فایلها به ترتیب بارگذاری ادغام میشوند.
+2. همهٔ صفحات در یک شبکهٔ پیمایشپذیر با تصاویر بندانگشتی نمایش داده میشوند.
+3. برای انتخاب یک صفحه روی آن کلیک کنید. برای انتخاب یک بازه از Shift+کلیک و برای افزودن یا برداشتن تکصفحهها از انتخاب از Cmd/Ctrl+کلیک استفاده کنید.
+4. برای عملیات صفحه از نوار ابزار سازماندهنده استفاده کنید یا روی صفحه راستکلیک کنید.
+5. برای دانلود نتیجهٔ نهایی روی **برونریزی PDF** کلیک کنید.
+
+## ویژگیها
+
+- **ادغام**: چند PDF و تصویر بارگذاری کنید تا خودکار در یک سند ترکیب شوند
+- **تغییر ترتیب**: صفحات را بکشید و رها کنید تا ترتیب تغییر کند، یا ترتیب کل سند را وارونه کنید
+- **چرخش**: صفحات انتخابشده را با گامهای 90 درجه به چپ یا راست بچرخانید
+- **تکثیر**: صفحات انتخابشده را کپی کنید و نسخهها را درست بعد از آنها قرار دهید
+- **حذف**: صفحات انتخابشده را حذف کنید
+- **درج**: صفحاتی از یک PDF یا تصویر دیگر، یک صفحهٔ خالی یا صفحاتی از کلیپبورد اضافه کنید، یا صفحات یک PDF دوم را یکدرمیان با صفحات فعلی بچینید
+- **جایگزینی**: یک صفحه را با صفحهٔ اول یک PDF دیگر عوض کنید
+- **برش، کپی و چسباندن**: صفحات را درون سند جابهجا یا کپی کنید
+- **استخراج**: صفحات انتخابشده را بهصورت PDF یا تصویر دانلود کنید
+- **شمارهٔ صفحات**: برای یک بازه از صفحات برچسبهایی مانند i, ii, iii یا A-1, A-2 تعیین کنید
+- **اندازهٔ صفحه**: صفحات را با یک اندازهٔ کاغذ استاندارد یا اندازهٔ دلخواه منطبق کنید
+- **تقسیم**: سند را بر اساس بازههای صفحات، صفحات فرد و زوج، تکتک صفحهها، نشانکها، هر N صفحه یا اندازهٔ فایل تقسیم کنید
+- **واگرد / ازنو**: هر عملیات صفحه را میتوان واگرد و ازنو کرد
+- تعمیر خودکار PDFهای آسیبدیده پیش از بارگذاری
+
+## میانبرهای صفحهکلید
+
+| عملیات | میانبر |
+| ----------------- | ----------------------------- |
+| چرخش به راست / چپ | R / Shift+R |
+| انتخاب همه | Cmd/Ctrl+A |
+| برش، کپی، چسباندن | Cmd/Ctrl+X, C, V |
+| تکثیر | Cmd/Ctrl+D |
+| حذف | Delete یا Backspace |
+| واگرد / ازنو | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| جابهجایی انتخاب | کلیدهای جهتنما، Home، End |
+
+## موارد استفاده
+
+- ساخت یک سند دلخواه از صفحات چند PDF مبدأ
+- مرتبسازی یک سند اسکنشده با حذف صفحات خالی، چرخاندن اسکنهای کج و تغییر ترتیب بخشها
+- تقسیم یک PDF بزرگ در مرز فصلها با استفاده از نشانکهای آن
+- ویرایش سریع در سطح صفحه بدون نیاز به ویرایشگر کامل PDF
+
+## نکتهها
+
+- تاریخچهٔ واگرد و ازنو همهٔ عملیات صفحه را ثبت میکند. آزادانه از آن استفاده کنید؛ کارتان بهاشتباه از بین نمیرود.
+- هر زمان خواستید از **Insert > From File** استفاده کنید یا PDFها یا تصاویر بیشتری را روی شبکهٔ صفحات رها کنید تا به سند اضافه شوند.
+- برای کارهای سادهٔ ادغام یا تقسیم، ابزارهای اختصاصی [ادغام PDF](./merge-pdf) یا [تقسیم PDF](./split-pdf) ممکن است سریعتر باشند. ابزار چندکاره زمانی میدرخشد که در یک نشست به چند عملیات نیاز دارید.
+
+## ابزارهای مرتبط
+
+- [ادغام PDF](./merge-pdf)
+- [تقسیم PDF](./split-pdf)
+- [تکثیر و سازماندهی](./organize-pdf)
+- [چرخاندن PDF](./rotate-pdf)
diff --git a/docs/fa/tools/pdf-to-bmp.md b/docs/fa/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..187deb7f
--- /dev/null
+++ b/docs/fa/tools/pdf-to-bmp.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-cbz.md b/docs/fa/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..3852c28a
--- /dev/null
+++ b/docs/fa/tools/pdf-to-cbz.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-csv.md b/docs/fa/tools/pdf-to-csv.md
new file mode 100644
index 00000000..6c3367c5
--- /dev/null
+++ b/docs/fa/tools/pdf-to-csv.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-excel.md b/docs/fa/tools/pdf-to-excel.md
new file mode 100644
index 00000000..28cad659
--- /dev/null
+++ b/docs/fa/tools/pdf-to-excel.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-greyscale.md b/docs/fa/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..2248c109
--- /dev/null
+++ b/docs/fa/tools/pdf-to-greyscale.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-jpg.md b/docs/fa/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..f6f6eb15
--- /dev/null
+++ b/docs/fa/tools/pdf-to-jpg.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-json.md b/docs/fa/tools/pdf-to-json.md
new file mode 100644
index 00000000..c5385ec8
--- /dev/null
+++ b/docs/fa/tools/pdf-to-json.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-markdown.md b/docs/fa/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..385f77c5
--- /dev/null
+++ b/docs/fa/tools/pdf-to-markdown.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-pdfa.md b/docs/fa/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..30ece954
--- /dev/null
+++ b/docs/fa/tools/pdf-to-pdfa.md
@@ -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): پاک کردن فراداده پیش از بایگانی
diff --git a/docs/fa/tools/pdf-to-png.md b/docs/fa/tools/pdf-to-png.md
new file mode 100644
index 00000000..1354679f
--- /dev/null
+++ b/docs/fa/tools/pdf-to-png.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-svg.md b/docs/fa/tools/pdf-to-svg.md
new file mode 100644
index 00000000..a5c757c6
--- /dev/null
+++ b/docs/fa/tools/pdf-to-svg.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-text.md b/docs/fa/tools/pdf-to-text.md
new file mode 100644
index 00000000..799a49d5
--- /dev/null
+++ b/docs/fa/tools/pdf-to-text.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-tiff.md b/docs/fa/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..47d2242c
--- /dev/null
+++ b/docs/fa/tools/pdf-to-tiff.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-webp.md b/docs/fa/tools/pdf-to-webp.md
new file mode 100644
index 00000000..d119c9f1
--- /dev/null
+++ b/docs/fa/tools/pdf-to-webp.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-word.md b/docs/fa/tools/pdf-to-word.md
new file mode 100644
index 00000000..512d7805
--- /dev/null
+++ b/docs/fa/tools/pdf-to-word.md
@@ -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)
diff --git a/docs/fa/tools/pdf-to-zip.md b/docs/fa/tools/pdf-to-zip.md
new file mode 100644
index 00000000..f3de5e70
--- /dev/null
+++ b/docs/fa/tools/pdf-to-zip.md
@@ -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)
diff --git a/docs/fa/tools/pdf-workflow.md b/docs/fa/tools/pdf-workflow.md
new file mode 100644
index 00000000..70d82342
--- /dev/null
+++ b/docs/fa/tools/pdf-workflow.md
@@ -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)
diff --git a/docs/fa/tools/png-to-pdf.md b/docs/fa/tools/png-to-pdf.md
new file mode 100644
index 00000000..01e17ce5
--- /dev/null
+++ b/docs/fa/tools/png-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/posterize-pdf.md b/docs/fa/tools/posterize-pdf.md
new file mode 100644
index 00000000..a5ea3b7d
--- /dev/null
+++ b/docs/fa/tools/posterize-pdf.md
@@ -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)
diff --git a/docs/fa/tools/powerpoint-to-pdf.md b/docs/fa/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..c9e83aaf
--- /dev/null
+++ b/docs/fa/tools/powerpoint-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/prepare-pdf-for-ai.md b/docs/fa/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..e2e51de1
--- /dev/null
+++ b/docs/fa/tools/prepare-pdf-for-ai.md
@@ -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)
diff --git a/docs/fa/tools/protect-pdf.md b/docs/fa/tools/protect-pdf.md
new file mode 100644
index 00000000..9db9959f
--- /dev/null
+++ b/docs/fa/tools/protect-pdf.md
@@ -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): حذف محتوای پنهان پیش از رمزگذاری
diff --git a/docs/fa/tools/psd-to-pdf.md b/docs/fa/tools/psd-to-pdf.md
new file mode 100644
index 00000000..68320031
--- /dev/null
+++ b/docs/fa/tools/psd-to-pdf.md
@@ -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)
diff --git a/docs/fa/tools/pub-to-pdf.md b/docs/fa/tools/pub-to-pdf.md
new file mode 100644
index 00000000..b453d40e
--- /dev/null
+++ b/docs/fa/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB به PDF
+description: فایلهای Microsoft Publisher (PUB) را در مرورگر به PDF تبدیل کنید. رایگان، خصوصی و بدون نیاز به نرمافزار.
+---
+
+# PUB به PDF
+
+فایلهای Microsoft Publisher را به PDF تبدیل کنید. Publisher یک ابزار صفحهآرایی رومیزی است که همراه برخی نسخههای Microsoft Office عرضه میشود، اما بیشتر افراد آن را نصب ندارند. این ابزار به هر کسی اجازه میدهد فایلهای PUB را مستقیماً در مرورگر به PDF تبدیل کند، بدون نیاز به نرمافزار Microsoft.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوند | توضیحات |
+| :------------------ | :----- | :---------------------- |
+| Microsoft Publisher | `.pub` | اسناد صفحهآرایی رومیزی |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای PUB را بکشید و رها کنید. میتوانید چند فایل را همزمان بارگذاری کنید.
+2. فهرست فایلها را بررسی کنید. فایلهای ناخواسته را با نماد سطل زباله حذف کنید یا برای افزودن روی **افزودن فایلهای بیشتر** کلیک کنید.
+3. روی **تبدیل به PDF** کلیک کنید. موتوری مبتنی بر LibreOffice در مرورگر بارگذاری میشود و هر فایل PUB را با حفظ چیدمان، تصاویر و کادرهای متنی تبدیل میکند.
+4. یک فایل مستقیماً بهصورت PDF دانلود میشود. چند فایل در یک بایگانی ZIP به نام `pub-to-pdf.zip` تحویل داده میشوند.
+
+## گزینهها
+
+نیازی به پیکربندی اضافی نیست. مبدل موتور چیدمان PUB را بهطور خودکار مدیریت میکند.
+
+## موارد استفاده
+
+- باز کردن بروشور یا خبرنامهٔ PUB از یک مشتری بدون خرید Microsoft Publisher
+- تبدیل بولتنهای کلیسا، برنامههای رویداد یا خبرنامههای مدرسه که در Publisher ساخته شدهاند
+- بایگانی مواد بازاریابی Publisher در قالبی که همه جا قابل دسترس است
+- چاپ فایلهای PUB روی سیستمی که Publisher نصب ندارد
+
+## نکتهها
+
+- چیدمانهای پیچیدهٔ Publisher با کادرهای متنی لایهای و موقعیتیابی دقیق ممکن است هنگام تبدیل کمی جابهجا شوند. اگر موقعیت دقیق مهم است، خروجی را بررسی کنید.
+- موتور LibreOffice در هر نشست یک بار راهاندازی میشود. اولین تبدیل بیشتر طول میکشد و تبدیلهای بعدی سریعترند.
+- برای وفادارترین تبدیل فایلهای Publisher، مطمئن شوید قلمهای سفارشی بهکاررفته در فایل اصلی، قلمهای استاندارد سیستم هستند.
+
+## ابزارهای مرتبط
+
+- [VSD به PDF](./vsd-to-pdf)
+- [ODP به PDF](./odp-to-pdf)
diff --git a/docs/fa/tools/rasterize-pdf.md b/docs/fa/tools/rasterize-pdf.md
new file mode 100644
index 00000000..2a79643b
--- /dev/null
+++ b/docs/fa/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: رستر کردن PDF
+description: صفحات PDF را به PDF مبتنی بر تصویر تبدیل کنید. همهٔ لایهها را یکپارچه کنید، متن قابل انتخاب را حذف کنید و DPI و قالب تصویر را کنترل کنید.
+---
+
+# رستر کردن PDF
+
+رستر کردن هر صفحهٔ PDF را به تصویر تبدیل میکند و آن تصاویر را دوباره در یک PDF کنار هم میگذارد. نتیجه دقیقاً شبیه نسخهٔ اصلی است اما هیچ متن قابل انتخاب، عنصر تعاملی یا لایهٔ قابل ویرایشی ندارد. در واقع یک فتوکپی باکیفیت است.
+
+## نحوهٔ کار
+
+1. یک یا چند فایل PDF بارگذاری کنید.
+2. **DPI** (وضوح) خروجی رسترشده را تنظیم کنید.
+3. یک **قالب تصویر** انتخاب کنید: PNG برای کیفیت بدون افت یا JPEG برای فایلهای کوچکتر.
+4. در صورت تمایل **تبدیل به خاکستری** را علامت بزنید.
+5. روی **رستر کردن PDF** کلیک کنید. چند فایل بهصورت ZIP دانلود میشوند.
+
+## گزینهها
+
+| تنظیم | مقادیر | پیشفرض |
+| -------------- | ------------------------------ | ------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **قالب تصویر** | PNG (بدون افت)، JPEG (کوچکتر) | PNG |
+| **خاکستری** | روشن/خاموش | خاموش |
+
+## راهنمای DPI
+
+- **72**: فقط مشاهده روی صفحهنمایش، کمترین حجم فایل
+- **150**: تعادل خوب برای استفادهٔ عمومی
+- **200**: متن واضحتر، حجم فایل متوسط
+- **300**: خروجی با کیفیت چاپ
+- **600**: بایگانی باکیفیت یا چاپ حرفهای
+
+## موارد استفاده
+
+- جلوگیری از استخراج متن از اسناد محرمانه پیش از اشتراکگذاری
+- رفع مشکلات وابستگی به قلم با تبدیل متن به پیکسل
+- ساخت نسخهٔ «تخت» از PDF با لایهها یا شفافیت پیچیده که در نمایشگرهای مختلف متفاوت نمایش داده میشود
+- آمادهسازی PDF برای سیستمی که فقط ورودی مبتنی بر تصویر میپذیرد
+- حذف محتوای پنهان (مانند تغییرات ردیابیشده یا دادهٔ فرم) با تبدیل PDF به تصاویر خالص
+
+## نکتهها
+
+- 150 DPI با PNG یک پیشفرض مطمئن است. فقط وقتی به خروجی چاپی یا بزرگنمایی جزئیات ریز نیاز دارید، مقدار بالاتری انتخاب کنید.
+- JPEG فایلهای بهمراتب کوچکتری تولید میکند اما روی لبههای تیز متن آثار فشردهسازی ایجاد میکند.
+- رستر کردن برگشتناپذیر است. اگر ممکن است بعداً به متن قابل ویرایش نیاز داشته باشید، PDF اصلی را نگه دارید.
+
+## ابزارهای مرتبط
+
+- [فشردهسازی PDF](./compress-pdf): کاهش حجم فایل PDF رسترشده
+- [صاف کردن کجی PDF](./deskew-pdf): صاف کردن صفحات پیش از رستر کردن اسناد اسکنشده
+- [تبدیل قلم به طرح کلی](./font-to-outline): تبدیل قلمها به مسیرهای برداری اگر میخواهید مقیاسپذیری حفظ شود
+- [یکپارچهسازی PDF](./flatten-pdf): یکپارچهسازی فرمها بدون تبدیل به تصویر
diff --git a/docs/fa/tools/remove-annotations.md b/docs/fa/tools/remove-annotations.md
new file mode 100644
index 00000000..89cd18c1
--- /dev/null
+++ b/docs/fa/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: حذف حاشیهنویسیها
+description: همهٔ نظرها، هایلایتها، پیوندها و سایر حاشیهنویسیهای PDF را با یک کلیک حذف کنید.
+---
+
+# حذف حاشیهنویسیها
+
+PDF خود را با حذف همهٔ حاشیهنویسیها پاکیزه کنید: نظرها، هایلایتها، یادداشتهای چسبان، نشانهگذاری متن، پیوندها، مهرها و هر شیء حاشیهنویسی دیگری که در سند جاسازی شده است. محتوای اصلی صفحه (متن، تصاویر، گرافیک) دستنخورده باقی میماند.
+
+## نحوهٔ کار
+
+1. فایل PDF خود را بارگذاری کنید.
+2. ابزار تعداد صفحات سند را تشخیص داده و اطلاعات فایل را نمایش میدهد.
+3. برای پردازش روی **حذف حاشیهنویسیها** کلیک کنید.
+4. PDF پاکشده بدون هیچ حاشیهنویسی بهطور خودکار دانلود میشود.
+
+## ویژگیها
+
+- حذف همهٔ انواع حاشیهنویسی: نظرها، هایلایتها، زیرخطها، خطخوردگیها، یادداشتهای چسبان، مهرها، پیوندها و نشانهگذاری فرم
+- اعمال روی همهٔ صفحات سند
+- حفظ همهٔ محتوای غیرحاشیهنویسی (متن، تصاویر، گرافیک برداری، فیلدهای فرم)
+- نمایش تعداد صفحات و حجم فایل پیش از پردازش
+
+## موارد استفاده
+
+- پاکسازی سند پیش از توزیع نهایی پس از چرخهٔ بازبینیای که چند بازبین در آن نظر گذاشتهاند
+- حذف هایلایتها و یادداشتهای چسبان از یک راهنمای مطالعهٔ مشترک
+- حذف حاشیهنویسیهای پیوند از سند پیش از بایگانی
+- تهیهٔ نسخهٔ «تمیز» از یک سند حقوقی که در طول مذاکره بهشدت حاشیهنویسی شده است
+- حذف نظرهای بازبین از یک دستنوشته پیش از ارسال برای چاپ
+
+## نکتهها
+
+- این ابزار حاشیهنویسیها را در سطح ساختار PDF حذف میکند، بنابراین نتیجه متن قابل انتخاب و کیفیت اصلی را حفظ میکند و رستر کردنی در کار نیست.
+- اگر فقط میخواهید حاشیهنویسیهای خاصی را حذف کنید، از [ویرایشگر PDF](./edit-pdf) برای حذف تکتک آنها استفاده کنید.
+- حاشیهنویسیها در PDFهای یکپارچهشده (که حاشیهنویسیها با محتوای صفحه ادغام شدهاند) قابل حذف نیستند، زیرا دیگر اشیای جداگانهای نیستند.
+
+## ابزارهای مرتبط
+
+- [ویرایشگر PDF](./edit-pdf)
+- [افزودن واترمارک](./add-watermark)
+- [امضای PDF](./sign-pdf)
diff --git a/docs/fa/tools/remove-blank-pages.md b/docs/fa/tools/remove-blank-pages.md
new file mode 100644
index 00000000..092e87de
--- /dev/null
+++ b/docs/fa/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: حذف صفحات خالی
+description: صفحات خالی یا تقریباً خالی PDF را با حساسیت قابل تنظیم بهطور خودکار شناسایی و حذف کنید.
+---
+
+# حذف صفحات خالی
+
+PDF خود را برای یافتن صفحات خالی یا تقریباً خالی بررسی کنید و آنها را بهطور خودکار حذف کنید. ابزار هر صفحه را رندر کرده و محتوای پیکسلی آن را تحلیل میکند تا خالی بودن آن را تشخیص دهد، سپس پیش از پردازش به شما اجازه میدهد صفحات حذفی را تأیید کنید.
+
+## نحوهٔ کار
+
+1. فایل PDF خود را بارگذاری کنید.
+2. لغزندهٔ **حساسیت** را تنظیم کنید تا میزان سختگیری در تعریف «خالی» مشخص شود.
+3. برای بررسی سند روی **شناسایی صفحات خالی** کلیک کنید.
+4. ابزار تصاویر کوچک صفحات خالی شناساییشده را نشان میدهد تا آنها را بررسی کنید.
+5. انتخاب را تأیید کنید و PDF پاکشده بدون صفحات خالی را دانلود کنید.
+
+## گزینهها
+
+- **حساسیت**: لغزندهای از ۰٪ تا ۱۰۰٪ (پیشفرض ۸۰٪). مقادیر بالاتر سختگیرانهترند و فقط صفحاتی را علامت میزنند که کاملاً یا تقریباً سفیدند. مقادیر پایینتر سهلگیرترند و صفحاتی با محتوای ناچیز مانند یک نقطه یا واترمارک کمرنگ را هم شناسایی میکنند.
+
+## ویژگیها
+
+- تحلیل سطح پیکسل هر صفحه برای شناسایی محتوای خالی
+- لغزندهٔ حساسیت قابل تنظیم برای تنظیم دقیق شناسایی
+- پیشنمایش تصاویر کوچک صفحات خالی شناساییشده برای تأیید دستی
+- حفظ دقیق همهٔ صفحات غیرخالی
+- پشتیبانی از اسناد با هر اندازه یا تعداد صفحه
+- نمایش پیشرفت هنگام بررسی
+
+## موارد استفاده
+
+- پاکسازی اسناد اسکنشده که اسکنر پشت خالی برگههای یکرو را هم ثبت کرده است
+- حذف صفحات جداکننده از دستههای اسناد اسکنشدهٔ انبوه
+- حذف صفحات خالی که سامانههای مدیریت اسناد درج کردهاند
+- پاکسازی PDFهای خروجی از واژهپردازها که گاهی صفحات خالی انتهایی دارند
+- کاهش حجم فایل با حذف صفحات خالی غیرضروری
+
+## نکتهها
+
+- با حساسیت پیشفرض ۸۰٪ شروع کنید و از آنجا تنظیم کنید. اگر ابزار صفحاتی را که به نظرتان خالیاند نادیده میگیرد، حساسیت را کاهش دهید. اگر صفحاتی با محتوای کمرنگ را که میخواهید نگه دارید علامت میزند، آن را افزایش دهید.
+- ابزار هر صفحه را برای تحلیل محتوا رندر میکند، بنابراین زمان پردازش با تعداد صفحات افزایش مییابد. برای اسناد بسیار بزرگ کمی منتظر بمانید.
+- پیش از تأیید حذف، صفحات خالی شناساییشده را در پیشنمایش بررسی کنید. صفحاتی با سرصفحه، پاصفحه یا واترمارک کمرنگ بسته به تنظیم حساسیت ممکن است علامت بخورند.
+
+## ابزارهای مرتبط
+
+- [برش PDF](./crop-pdf)
+- [ویرایشگر PDF](./edit-pdf)
+- [شمارهگذاری صفحات](./page-numbers)
diff --git a/docs/fa/tools/remove-metadata.md b/docs/fa/tools/remove-metadata.md
new file mode 100644
index 00000000..fe67f3e2
--- /dev/null
+++ b/docs/fa/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: حذف فراداده
+description: همهٔ فرادادههای پنهان فایلهای PDF از جمله نویسنده، عنوان، تاریخ ایجاد، تولیدکننده، دادهٔ XMP و شناسههای سند را حذف کنید.
+---
+
+# حذف فراداده
+
+هر PDF فرادادهای دارد که میتواند نشان دهد چه کسی آن را ساخته، از چه نرمافزاری استفاده شده، آخرین بار کی تغییر کرده و موارد دیگر. این ابزار همهٔ آن را حذف میکند (دیکشنری اطلاعات، جریانهای فرادادهٔ XMP، شناسههای سند و دادههای ویژهٔ برنامهها) و سندی تمیز بدون هیچ ردی از منشأ آن باقی میگذارد.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید.
+2. روی **حذف فراداده** کلیک کنید.
+3. فایل پاکشده را دانلود کنید.
+
+گزینهای برای تنظیم وجود ندارد. ابزار عمداً جامع طراحی شده است: همه چیز را پاک میکند.
+
+## چه چیزهایی حذف میشوند
+
+- **فیلدهای دیکشنری اطلاعات**: عنوان، نویسنده، موضوع، کلیدواژهها، سازنده، تولیدکننده، تاریخ ایجاد، تاریخ تغییر
+- **جریان فرادادهٔ XMP**: بلوک فرادادهٔ مبتنی بر XML که در کاتالوگ سند ذخیره شده است
+- **شناسههای سند**: شناسههای یکتا در بخش پایانی PDF که میتوانند برای ردیابی سند در سامانههای مختلف استفاده شوند
+- **PieceInfo**: فرادادهٔ ویژهٔ برنامه که برنامههایی مانند Illustrator یا InDesign اضافه میکنند
+
+## چه چیزهایی باقی میمانند
+
+- همهٔ محتوای قابل مشاهدهٔ صفحه (متن، تصاویر، گرافیک)
+- فیلدهای فرم و حاشیهنویسیها
+- نشانکها و پیوندها
+- خود ساختار سند
+
+## موارد استفاده
+
+- حذف نام خود و سازمانتان از سند پیش از انتشار ناشناس
+- حذف زمانهای ایجاد که نشان میدهند سند کی تهیه شده است
+- پاک کردن رشتههای تولیدکننده که نرمافزارهای PDF شما را مشخص میکنند
+- آمادهسازی اسناد برای ارسالهای نظارتی که PDF بدون فراداده میخواهند
+- حذف ردپای تاریخچهٔ ویرایش پیش از اشتراک سند با بیرون
+
+## نکتهها
+
+- ابتدا از ابزار مشاهدهٔ فراداده استفاده کنید تا دقیقاً ببینید PDF شما پیش از حذف چه فرادادهای دارد.
+- اگر لازم است فراداده _و_ JavaScript، حاشیهنویسیها و فایلهای جاسازیشده را حذف کنید، برای پاکسازی کاملتر از پاکسازی PDF استفاده کنید.
+- حذف فراداده دائمی است. اگر ممکن است بعداً به آن دادهها نیاز داشته باشید، فایل اصلی را نگه دارید.
+
+## ابزارهای مرتبط
+
+- [پاکسازی PDF](./sanitize-pdf): حذف فراداده بههمراه اسکریپتها، پیوستها و موارد دیگر
+- [رمزگذاری PDF](./protect-pdf): محافظت از PDF پاکشده با رمز عبور
+- [فشردهسازی PDF](./compress-pdf): حذف فراداده حجم فایل را کمی کاهش میدهد؛ برای صرفهجویی بیشتر فشرده کنید
diff --git a/docs/fa/tools/remove-restrictions.md b/docs/fa/tools/remove-restrictions.md
new file mode 100644
index 00000000..233924fb
--- /dev/null
+++ b/docs/fa/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: حذف محدودیتها
+description: محافظت با رمز عبور، محدودیتهای چاپ، قفلهای ویرایش و محدودیتهای کپی را از فایلهای PDF حذف کنید.
+---
+
+# حذف محدودیتها
+
+PDFها میتوانند دو نوع رمز عبور داشته باشند: رمز کاربر (برای باز کردن فایل لازم است) و رمز مالک (تعیین میکند با فایل چه کاری میتوانید انجام دهید). این ابزار هر دو را بههمراه همهٔ محدودیتهای مرتبط (قفلهای چاپ، ویرایش، کپی و حاشیهنویسی) حذف میکند.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید.
+2. اگر PDF رمز مالک دارد، آن را در فیلد **رمز مالک** وارد کنید. اگر PDF فقط محدودیت استفاده بدون رمز عبور دارد، آن را خالی بگذارید.
+3. روی **حذف محدودیتها** کلیک کنید.
+4. PDF بدون محدودیت را دانلود کنید.
+
+این ابزار از گزینههای `--decrypt` و `--remove-restrictions` در QPDF برای تولید نسخهای تمیز و بدون محدودیت استفاده میکند.
+
+## چه چیزهایی حذف میشوند
+
+- محافظت با رمز عبور (هم رمز کاربر و هم رمز مالک)
+- محدودیتهای چاپ
+- محدودیتهای ویرایش
+- محدودیتهای کپی متن و تصویر
+- محدودیتهای حاشیهنویسی و نظر دادن
+- همهٔ محدودیتهای امنیتی دیگر که در PDF رمزگذاری شدهاند
+
+## موارد استفاده
+
+- باز کردن قفل PDFی که مال شماست اما رمزش را سالها پیش تعیین کردهاید
+- حذف محدودیت چاپ از سندی که دسترسی مشروع به آن دارید
+- فعال کردن کپی و چسباندن در منابع مرجع برای یادداشتبرداری
+- آمادهسازی PDFها برای ابزارهای دسترسپذیری که نمیتوانند با اسناد محدودشده کار کنند
+
+## نکتهها
+
+- اگر رمز مالک تعیین شده باشد، باید آن را بدانید. این ابزار رمزها را نمیشکند و حدس نمیزند.
+- اگر میخواهید فایل رمزگذاریشده بماند اما مجوزهای خاصی تغییر کنند، بهجای آن از ابزار تغییر مجوزها استفاده کنید.
+- فایل خروجی هیچ رمزگذاریای ندارد و هر کسی که آن را دریافت کند میتواند آزادانه بازش کند.
+
+## ابزارهای مرتبط
+
+- [رمزگشایی PDF](./unlock-pdf): باز کردن قفل PDF وقتی رمز کاربر را میدانید
+- [رمزگذاری PDF](./protect-pdf): اعمال دوبارهٔ رمزگذاری با تنظیمات جدید
+- [تغییر مجوزها](./change-permissions): تغییر انتخابی کارهای مجاز
diff --git a/docs/fa/tools/repair-pdf.md b/docs/fa/tools/repair-pdf.md
new file mode 100644
index 00000000..0e4366b7
--- /dev/null
+++ b/docs/fa/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: ترمیم PDF
+description: دادهها را از فایلهای PDF خراب یا آسیبدیده با موتور تعمیر QPDF بازیابی کنید. از پردازش دستهای پشتیبانی میکند.
+---
+
+# ترمیم PDF
+
+وقتی یک PDF باز نمیشود، محتوای بههمریخته نشان میدهد یا در نمایشگر خطا ایجاد میکند، این ابزار تلاش میکند ساختار درونی آن را بازسازی کند. از موتور تعمیر QPDF استفاده میکند که میتواند دادهها را از انواع زیادی از خرابی بازیابی کند: جدولهای ارجاع متقابل شکسته، جریانهای ناقص، ارجاعهای نامعتبر به اشیا و موارد دیگر.
+
+## نحوهٔ کار
+
+1. یک یا چند فایل PDF آسیبدیده بارگذاری کنید.
+2. روی **تعمیر PDF** کلیک کنید.
+3. یک فایل تعمیرشده مستقیماً دانلود میشود. چند فایل یک بایگانی ZIP تولید میکنند.
+
+ابزار هر فایل را با گزینهٔ `--decrypt` از QPDF عبور میدهد که QPDF را وادار میکند کل ساختار PDF را بخواند و از نو بنویسد و در این مسیر مشکلات قابل بازیابی را رفع کند.
+
+## ویژگیها
+
+- تعمیر دستهای چند PDF در یک عملیات
+- تشخیص خودکار فایلهای قابل بازیابی از غیرقابل بازیابی
+- گزارش موفقیت یا شکست برای هر فایل هنگام پردازش چند فایل
+- استفاده از QPDF (WebAssembly)، یک کتابخانهٔ آزموده برای تبدیل PDF
+
+## چه چیزهایی را میتواند رفع کند
+
+- جدولهای ارجاع متقابل شکسته یا گمشده
+- انتهای ناقص فایل ناشی از دانلودهای ناتمام
+- شمارهگذاری نامعتبر اشیا و طول جریانها
+- ناسازگاریهای ساختاری جزئی ناشی از تولیدکنندههای PDF معیوب
+- آثار رمزگذاری ناشی از تلاشهای ناموفق رمزگشایی
+
+## چه چیزهایی را نمیتواند رفع کند
+
+- فایلهای بهشدت ناقص که بیشتر دادهٔ محتوای آنها از دست رفته است
+- PDFهایی که با رمزی که ندارید رمزگذاری شدهاند
+- فایلهایی که در واقع PDF نیستند (پسوند اشتباه)
+- خرابی تصویر درون PDF (ساختار درست میشود، اما دادهٔ پیکسلی بازسازی نمیشود)
+
+## موارد استفاده
+
+- بازیابی PDF از دانلود ناموفق ایمیل
+- باز کردن فایلهای تولیدشده با تولیدکنندههای PDF قدیمی یا غیراستاندارد
+- رفع PDFهایی که در یک نمایشگر کار میکنند اما در دیگری نه
+- آمادهسازی اسناد بایگانی آسیبدیده برای نگهداری بلندمدت
+
+## نکتهها
+
+- اگر تعمیر ناموفق بود، ابتدا فایل را در مرورگر باز کنید. مرورگرها منطق بازیابی خود را دارند و ممکن است محتوای کافی برای ذخیرهٔ دوباره نمایش دهند.
+- برای PDFهای رمزگذاریشدهای که تعمیرشان ناموفق است، ابتدا رمزگشایی PDF را امتحان کنید و سپس خروجی رمزگشاییشده را تعمیر کنید.
+
+## ابزارهای مرتبط
+
+- [فشردهسازی PDF](./compress-pdf): پاکسازی بیشتر ساختار PDF تعمیرشده
+- [خطیسازی PDF](./linearize-pdf): بهینهسازی فایل تعمیرشده برای ارائه در وب
+- [یکپارچهسازی PDF](./flatten-pdf): یکپارچهسازی فرمهایی که ممکن است آسیب دیده باشند
diff --git a/docs/fa/tools/reverse-pages.md b/docs/fa/tools/reverse-pages.md
new file mode 100644
index 00000000..9803be93
--- /dev/null
+++ b/docs/fa/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: وارونهسازی ترتیب صفحات
+description: ترتیب صفحات یک یا چند فایل PDF را برعکس کنید تا صفحهٔ آخر به صفحهٔ اول تبدیل شود.
+---
+
+# وارونهسازی ترتیب صفحات
+
+ترتیب صفحات PDF را برعکس کنید تا صفحهٔ آخر اول شود، صفحهٔ یکی مانده به آخر دوم شود و به همین ترتیب. از پردازش دستهای چند فایل بهطور همزمان پشتیبانی میکند.
+
+## نحوهٔ کار
+
+1. یک یا چند فایل PDF بارگذاری کنید.
+2. روی دکمهٔ پردازش کلیک کنید.
+3. هر فایل بهطور مستقل وارونه میشود. اگر چند فایل بارگذاری کرده باشید، خروجی یک بایگانی ZIP شامل همهٔ PDFهای وارونه است.
+4. یک فایل مستقیماً بهصورت PDF وارونه دانلود میشود.
+
+## ویژگیها
+
+- پردازش دستهای: وارونهسازی چند PDF در یک عملیات
+- خروجی تکفایل برای یک PDF و خروجی ZIP برای چند فایل
+- دکمهٔ حذف برای هر فایل پیش از پردازش
+- حفظ همهٔ محتوا و قالببندی صفحات
+
+## موارد استفاده
+
+- اصلاح سندی که به ترتیب معکوس اسکن شده است
+- آمادهسازی PDF ارائه برای خواندن از آخر به اول
+- وارونه کردن ترتیب صفحات برای فرایندهای چاپی خاص که صفحات را به ترتیب معکوس تغذیه میکنند
+- اصلاح سندی که صفحاتش به اشتباه برعکس کنار هم گذاشته شدهاند
+
+## نکتهها
+
+- هر فایل در یک دسته بهطور مستقل وارونه میشود و ترتیب خود فایلها نسبت به هم تغییر نمیکند.
+- برای جابهجایی دقیقتر صفحات (نه فقط وارونهسازی کامل)، از [تکثیر و سازماندهی](./organize-pdf) استفاده کنید.
+
+## ابزارهای مرتبط
+
+- [تکثیر و سازماندهی](./organize-pdf)
+- [چرخاندن PDF](./rotate-pdf)
+- [ابزار چندکارهٔ PDF](./pdf-multi-tool)
diff --git a/docs/fa/tools/rotate-custom.md b/docs/fa/tools/rotate-custom.md
new file mode 100644
index 00000000..97d48f02
--- /dev/null
+++ b/docs/fa/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: چرخاندن با زاویهٔ دلخواه
+description: صفحات PDF را با هر زاویهای بچرخانید، با ورودی درجه برای هر صفحه و کنترل چرخش دستهای.
+---
+
+# چرخاندن با زاویهٔ دلخواه
+
+صفحات PDF را با هر زاویهٔ دلخواهی بچرخانید، نه فقط گامهای ۹۰ درجهای. هر صفحه ورودی زاویهٔ خود را دارد و میتوانید با کنترل دستهای یک زاویه را یکجا روی همهٔ صفحات اعمال کنید.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید. تصاویر کوچک همهٔ صفحات نمایش داده میشوند.
+2. هر صفحه یک فیلد عددی دارد که زاویهٔ چرخش فعلی آن را نشان میدهد.
+3. هر مقدار درجه (مثبت یا منفی) را برای چرخاندن یک صفحهٔ خاص وارد کنید، یا از دکمههای چپ/راست هر صفحه برای تنظیم سریع ۹۰ درجهای استفاده کنید.
+4. از ورودی **زاویهٔ دستهای** در بالا برای تعیین چرخش یکسان همهٔ صفحات استفاده کنید.
+5. روی دکمهٔ پردازش کلیک کنید تا PDF چرخاندهشده ساخته شود.
+
+## ویژگیها
+
+- ورودی آزاد درجه برای هر صفحه (هر عدد صحیح)
+- کنترل زاویهٔ دستهای برای تعیین چرخش یکسان روی همهٔ صفحات
+- پیشنمایش همزمان چرخش در تصاویر کوچک
+- دکمههای چرخش سریع ۹۰ درجهای برای هر صفحه
+- بارگذاری تنبل تصاویر کوچک برای کارایی در اسناد بزرگ
+
+## موارد استفاده
+
+- اصلاح اسکنهایی که چند درجه کج شدهاند
+- چرخاندن صفحات برای تطابق با جهت غیراستاندارد مورد نیاز
+- اعمال چرخش دقیق روی صفحات جداگانه در سندی با محتوای مختلط
+- تنظیم دقیق زاویهٔ صفحات پس از یک چرخش دستهای اولیه
+
+## نکتهها
+
+- مقادیر مثبت در جهت عقربههای ساعت و مقادیر منفی خلاف جهت عقربههای ساعت میچرخانند.
+- فیلد زاویهٔ دستهای هنگام اعمال، همهٔ زاویههای هر صفحه را بازنویسی میکند. در صورت نیاز، تنظیمات جداگانه را پس از عملیات دستهای انجام دهید.
+- برای چرخشهای استاندارد ۹۰/۱۸۰/۲۷۰ درجه با رابط سادهتر، از [چرخاندن PDF](./rotate-pdf) استفاده کنید.
+
+## ابزارهای مرتبط
+
+- [چرخاندن PDF](./rotate-pdf)
+- [ابزار چندکارهٔ PDF](./pdf-multi-tool)
+- [تکثیر و سازماندهی](./organize-pdf)
diff --git a/docs/fa/tools/rotate-pdf.md b/docs/fa/tools/rotate-pdf.md
new file mode 100644
index 00000000..9558187e
--- /dev/null
+++ b/docs/fa/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: چرخاندن PDF
+description: صفحات جداگانه یا همهٔ صفحات PDF را با گامهای ۹۰ درجهای و رابط تصویری تصاویر کوچک بچرخانید.
+---
+
+# چرخاندن PDF
+
+صفحات PDF را ۹۰ درجه در جهت یا خلاف جهت عقربههای ساعت بچرخانید. ابزار پیشنمایش کوچک همهٔ صفحات را نشان میدهد و میتوانید آنها را جداگانه بچرخانید یا یک چرخش دستهای روی کل سند اعمال کنید.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید. تصاویر کوچک همهٔ صفحات در یک شبکه نمایش داده میشوند.
+2. از دکمههای چرخش چپ/راست زیر تصویر کوچک هر صفحه برای چرخاندن همان صفحه استفاده کنید.
+3. از کنترلهای چرخش دستهای در بالا برای چرخاندن همهٔ صفحات بهطور یکجا استفاده کنید.
+4. پیشنمایش تصاویر کوچک بهصورت همزمان چرخش را نشان میدهد.
+5. روی دکمهٔ پردازش کلیک کنید تا PDF چرخاندهشده ذخیره شود.
+
+## ویژگیها
+
+- چرخش هر صفحه با گامهای ۹۰ درجهای (چپ یا راست)
+- چرخش دستهای همهٔ صفحات بهطور همزمان
+- پیشنمایش همزمان تصاویر کوچک با انیمیشن چرخش
+- بارگذاری تنبل تصاویر کوچک برای عملکرد روان در اسناد بزرگ
+- حفظ محتوا و کیفیت اصلی صفحات
+
+## موارد استفاده
+
+- اصلاح صفحات اسکنشدهٔ کج یا وارونه
+- چرخاندن صفحات افقی به عمودی (یا برعکس)
+- اصلاح سندی با جهتهای مختلط که برخی صفحاتش با زاویهٔ اشتباه اسکن شدهاند
+- آمادهسازی سند برای جهت نمایش خاص
+
+## نکتهها
+
+- چرخشها تجمعیاند. دو بار کلیک روی دکمهٔ چرخش ساعتگرد، چرخش ۱۸۰ درجه اعمال میکند.
+- برای چرخشهای غیر ۹۰ درجهای (مثلاً ۴۵ درجه برای اصلاح اسکن کمی کج)، بهجای آن از [چرخاندن با زاویهٔ دلخواه](./rotate-custom) استفاده کنید.
+- کنترلهای چرخش دستهای روی همهٔ صفحات اثر میگذارند، نه فقط صفحات انتخابشده. این ابزار سازوکار انتخاب ندارد؛ برای آن از [ابزار چندکارهٔ PDF](./pdf-multi-tool) استفاده کنید.
+
+## ابزارهای مرتبط
+
+- [چرخاندن با زاویهٔ دلخواه](./rotate-custom)
+- [ابزار چندکارهٔ PDF](./pdf-multi-tool)
+- [تکثیر و سازماندهی](./organize-pdf)
diff --git a/docs/fa/tools/rtf-to-pdf.md b/docs/fa/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..460d17b6
--- /dev/null
+++ b/docs/fa/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF به PDF
+description: فایلهای Rich Text Format (RTF) را با موتوری مبتنی بر LibreOffice در مرورگر به PDF تبدیل کنید.
+---
+
+# RTF به PDF
+
+اسناد Rich Text Format را به PDF تبدیل کنید. RTF یک قالب سند چندسکویی است که تقریباً همهٔ واژهپردازها از آن پشتیبانی میکنند. این ابزار از موتور LibreOffice در مرورگر برای رندر فایلهای RTF با حفظ قالببندی استفاده میکند: متن پررنگ، کج، جدولها و تصاویر جاسازیشده همه به PDF منتقل میشوند.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوندها | انواع MIME |
+| :--- | :------ | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا یک یا چند فایل RTF را بکشید و رها کنید.
+2. فهرست فایلها را بررسی کنید. در صورت نیاز فایل اضافه یا حذف کنید.
+3. روی **تبدیل به PDF** کلیک کنید. موتور LibreOffice در اولین استفاده راهاندازی میشود و سپس هر فایل را پردازش میکند.
+4. یک فایل مستقیماً بهصورت PDF دانلود میشود. چند فایل بهصورت `rtf-converted.zip` تحویل داده میشوند.
+
+## گزینهها
+
+این ابزار تنظیمات اضافی ندارد. تبدیل، قالببندی اصلی RTF را حفظ میکند.
+
+## خروجی
+
+| تعداد ورودی | خروجی |
+| :-------------- | :--------------------------------------------------------- |
+| ۱ فایل | دانلود یک PDF (مثلاً `letter.pdf`) |
+| ۲ فایل یا بیشتر | بایگانی ZIP (`rtf-converted.zip`) شامل یک PDF برای هر فایل |
+
+## موارد استفاده
+
+- تبدیل اسناد RTF قدیمی از واژهپردازهای قدیمی به PDFهای امروزی
+- تبدیل قالبهای ایمیل RTF به پیشنمایش PDF
+- پردازش خروجی RTF از نرمافزارهای حقوقی یا پزشکی
+- تبدیل دستهای فایلهای RTF از سامانهٔ مدیریت اسناد به PDF برای بایگانی
+
+## نکتهها
+
+- موتور LibreOffice یک بار بارگذاری و ذخیره میشود. اولین تبدیل در هر نشست چند ثانیه بیشتر طول میکشد و تبدیلهای بعدی سریعترند.
+- فایلهای RTF با اشیای OLE جاسازیشده ممکن است همهٔ اشیا را کاملاً درست نمایش ندهند. متن ساده، تصاویر و قالببندی استاندارد بهطور قابل اعتمادی تبدیل میشوند.
+- اگر فایلهای RTF شما با Microsoft Word ساخته شدهاند، میتوانید آنها را مستقیماً با ابزار [Word به PDF](./word-to-pdf) هم تبدیل کنید که RTF را در کنار DOC و DOCX میپذیرد.
+
+## ابزارهای مرتبط
+
+- [Word به PDF](./word-to-pdf)
+- [ODT به PDF](./odt-to-pdf)
+- [متن به PDF](./txt-to-pdf)
diff --git a/docs/fa/tools/sanitize-pdf.md b/docs/fa/tools/sanitize-pdf.md
new file mode 100644
index 00000000..935b92be
--- /dev/null
+++ b/docs/fa/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: پاکسازی PDF
+description: محتوای پنهان و بالقوه خطرناک PDF از جمله فراداده، JavaScript، فایلهای جاسازیشده، حاشیهنویسیها و لایهها را حذف کنید.
+---
+
+# پاکسازی PDF
+
+PDFها میتوانند بسیار بیشتر از آنچه روی صفحه میبینید در خود داشته باشند. فرادادهٔ پنهان، JavaScript جاسازیشده، فایلهای پیوست، دادهٔ فرم و اطلاعات لایهها میتوانند دادههای حساس را فاش کنند یا خطر امنیتی ایجاد کنند. پاکسازی همهٔ آنها را حذف میکند و سندی تمیز و امن برای اشتراک عمومی باقی میگذارد.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید.
+2. عناصری را که باید حذف شوند از فهرست انتخاب کنید.
+3. روی **پاکسازی PDF** کلیک کنید.
+4. فایل پاکشده را دانلود کنید.
+
+## گزینههای پاکسازی
+
+همهٔ گزینهها بهطور پیشفرض فعالاند. هر کدام را که میخواهید حفظ شود از حالت انتخاب خارج کنید.
+
+| گزینه | چه چیزی را حذف میکند |
+| --------------------------- | --------------------------------------------------------------------------- |
+| **یکپارچهسازی فرمها** | فیلدهای فرم تعاملی را به محتوای ثابت تبدیل میکند |
+| **حذف فراداده** | نویسنده، عنوان، تاریخ ایجاد، اطلاعات نرمافزار و دادهٔ XMP را حذف میکند |
+| **حذف حاشیهنویسیها** | نظرها، هایلایتها، یادداشتهای چسبان و نشانهگذاریها را پاک میکند |
+| **حذف JavaScript** | اسکریپتهای جاسازیشدهای را که ممکن است هنگام باز شدن اجرا شوند حذف میکند |
+| **حذف فایلهای جاسازیشده** | پیوستهای جاسازیشده در PDF را حذف میکند |
+| **حذف لایهها (OCG)** | گروههای محتوای اختیاری را در یک لایه یکپارچه میکند |
+| **حذف پیوندها** | ابرپیوندها و ارجاعهای URL را حذف میکند |
+| **حذف درخت ساختار** | ساختار سند مورد استفاده برای برچسبگذاری دسترسپذیری را حذف میکند |
+| **حذف MarkInfo** | اطلاعات محتوای نشانهگذاریشده را حذف میکند |
+| **حذف قلمها** | دادهٔ قلمهای جاسازیشده را حذف میکند (با احتیاط استفاده کنید) |
+
+## موارد استفاده
+
+- آمادهسازی PDF برای انتشار عمومی با حذف فرادادهٔ داخلی (نام نویسندگان، نسخهٔ نرمافزار، تاریخچهٔ ویرایش)
+- حذف JavaScript از PDF دریافتی از منبع نامطمئن پیش از باز کردن آن
+- پاکسازی PDF پیش از ارسال برای مشتریای که نباید نظرهای جاسازیشده یا نام فیلدهای فرم را ببیند
+- حذف لایههای پنهان از نقشهٔ معماری پیش از اشتراک نسخهٔ نهایی
+- رعایت الزامات کمینهسازی داده طبق مقررات حریم خصوصی
+
+## نکتهها
+
+- «حذف قلمها» را علامت نزنید مگر اینکه مطمئن باشید PDF همچنان درست نمایش داده میشود. حذف قلمها ممکن است متن را در برخی نمایشگرها نامرئی کند.
+- اگر فقط لازم است فراداده را حذف کنید، ابزار اختصاصی حذف فراداده سریعتر و متمرکزتر است.
+- پاکسازی برگشتناپذیر است. فایل اصلی خود را نگه دارید.
+
+## ابزارهای مرتبط
+
+- [حذف فراداده](./remove-metadata): حذف فقط فراداده بدون دست زدن به محتوای دیگر
+- [یکپارچهسازی PDF](./flatten-pdf): یکپارچهسازی ویژهٔ فرمها و حاشیهنویسیها
+- [رمزگذاری PDF](./protect-pdf): افزودن محافظت با رمز عبور پس از پاکسازی
+- [رستر کردن PDF](./rasterize-pdf): گزینهٔ نهایی: تبدیل به تصویر برای حذف همهٔ محتوای پنهان
diff --git a/docs/fa/tools/scanner-effect.md b/docs/fa/tools/scanner-effect.md
new file mode 100644
index 00000000..a4642f23
--- /dev/null
+++ b/docs/fa/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: جلوهٔ اسکنر
+description: PDF خود را با نویز، چرخش، تاری و جلوهٔ کهنگی کاغذ قابل تنظیم شبیه سند اسکنشده کنید.
+---
+
+# جلوهٔ اسکنر
+
+یک PDF دیجیتال تمیز را به چیزی تبدیل کنید که انگار از یک اسکنر تخت بیرون آمده است. ابزار نویز، چرخش جزئی، تاری، تغییر روشنایی و زردی اختیاری را بهصورت قابل تنظیم اعمال میکند تا نقصهای یک اسکن واقعی را شبیهسازی کند.
+
+## نحوهٔ کار
+
+1. فایل PDF خود را بارگذاری کنید.
+2. ویرایشگر با پیشنمایش زندهٔ صفحهٔ اول در کنار پنل تنظیمات باز میشود.
+3. پارامترهای جلوهٔ اسکن را با لغزندهها و کلیدها تنظیم کنید.
+4. با تغییر تنظیمات، پیشنمایش بهصورت همزمان بهروز میشود.
+5. روی **اعمال** کلیک کنید تا همهٔ صفحات پردازش و نتیجه دانلود شود.
+
+## گزینهها
+
+- **فضای رنگی (کلید خاکستری)**: خروجی را برای ظاهر کلاسیک اسکن سیاه و سفید به خاکستری تبدیل میکند.
+- **حاشیه**: یک حاشیهٔ تیرهٔ ملایم دور لبههای صفحه اضافه میکند تا آثار لبهٔ اسکنر را تقلید کند.
+- **چرخش**: چرخش جزئی (۵- تا ۵+ درجه) برای شبیهسازی تغذیهٔ نامرتب کاغذ اعمال میکند.
+- **تغییرات چرخش**: تغییر تصادفی به زاویهٔ چرخش اضافه میکند تا هر صفحه کمی متفاوت کج شود.
+- **روشنایی**: روشنایی کلی را بالا یا پایین میبرد.
+- **کنتراست**: کنتراست را برای شبیهسازی تفاوت کیفیت تونر تنظیم میکند.
+- **تاری**: تاری گاوسی اعمال میکند تا لبههای متن مانند یک اسکن کمکیفیت نرم شوند.
+- **نویز**: نویز تصادفی پیکسلی برای شبیهسازی دانهدانگی حسگر اسکنر اضافه میکند. مقادیر بالاتر نتیجهٔ دانهدارتری میدهند.
+- **زردی**: تهرنگ زرد گرمی برای شبیهسازی کاغذ کهنه یا بازیافتی اضافه میکند.
+- **وضوح**: DPI خروجی را تعیین میکند. مقادیر پایینتر ظاهری پیکسلیتر و شبیهتر به اسکن ایجاد میکنند.
+- **بازنشانی**: همهٔ تنظیمات را به حالت پیشفرض برمیگرداند.
+
+## ویژگیها
+
+- پیشنمایش همزمان که با تغییر هر پارامتر بهروز میشود
+- تغییر تصادفی چرخش برای هر صفحه جهت تنوع واقعگرایانه
+- ده پارامتر قابل تنظیم مستقل
+- حالت خاکستری برای خروجی اسکن سیاه و سفید واقعی
+- کنترل وضوح از کیفیت فکس با DPI پایین تا کیفیت بایگانی با DPI بالا
+
+## موارد استفاده
+
+- اسکنشده و چاپشده نشان دادن اسنادی که بهصورت دیجیتال ساخته شدهاند
+- شبیهسازی کهنگی سند فیزیکی برای بازسازی اسناد تاریخی
+- آزمایش نرمافزار OCR در برابر کیفیت اسکن پایین
+- تولید اسنادی همسبک با بایگانیهای اسکنشدهٔ موجود
+
+## نکتهها
+
+- با مقادیر ملایم شروع کنید. نویز ۱۰ تا ۲۰، چرخش جزئی ۰٫۵ درجه و تاری کم همین حالا ظاهر اسکن متقاعدکنندهای ایجاد میکنند.
+- حالت خاکستری را با کمی زردی ترکیب کنید تا جلوهٔ «فتوکپیِ فتوکپی» به دست آید.
+- تنظیمات وضوح پایینتر (۱۰۰ تا ۱۵۰ DPI) واقعیترین ظاهر دستگاه فکس را ایجاد میکنند.
+
+## ابزارهای مرتبط
+
+- [وارونهسازی رنگها](./invert-colors)
+- [تنظیم رنگها](./adjust-colors)
+- [رنگ پسزمینه](./background-color)
diff --git a/docs/fa/tools/sign-pdf.md b/docs/fa/tools/sign-pdf.md
new file mode 100644
index 00000000..483e7360
--- /dev/null
+++ b/docs/fa/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: امضای PDF
+description: امضا را بکشید، تایپ کنید یا بارگذاری کنید و آن را با نمایشگر یکپارچه روی صفحات PDF قرار دهید.
+---
+
+# امضای PDF
+
+امضای خود را به هر سند PDF اضافه کنید. این ابزار یک نمایشگر کامل PDF با ابزارهای امضای داخلی دارد که در آن میتوانید امضا را با دست بکشید، نام خود را با قلم امضا تایپ کنید یا تصویر امضا بارگذاری کنید. امضاها را روی هر صفحه قرار دهید و اندازهشان را تغییر دهید، سپس سند امضاشده را ذخیره کنید.
+
+## نحوهٔ کار
+
+1. فایل PDF خود را بارگذاری کنید.
+2. سند در یک نمایشگر PDF یکپارچه با ابزارهای حاشیهنویسی باز میشود.
+3. با ابزار امضای نمایشگر، امضای خود را با کشیدن، تایپ کردن یا بارگذاری تصویر بسازید.
+4. روی جایی از صفحه که میخواهید امضا قرار گیرد کلیک کنید و اندازه و موقعیت آن را تنظیم کنید.
+5. در صورت تمایل **یکپارچهسازی PDF** را علامت بزنید تا امضا برای همیشه در سند جاسازی شود.
+6. روی **ذخیره و دانلود PDF امضاشده** کلیک کنید تا فایل امضاشده را دریافت کنید.
+
+## گزینهها
+
+- **یکپارچهسازی PDF**: وقتی علامت بخورد، امضا برای همیشه در محتوای صفحه جاسازی میشود. این کار از جابهجایی یا حذف امضا توسط دیگران جلوگیری میکند. وقتی علامت نخورد، امضا بهصورت حاشیهنویسی باقی میماند که در نمایشگرهای سازگار قابل ویرایش است.
+
+## ویژگیها
+
+- سه روش ساخت امضا: کشیدن با دست، متن تایپی یا تصویر بارگذاریشده
+- نمایشگر PDF یکپارچه برای قرار دادن دقیق
+- کشیدن برای جابهجایی و تغییر اندازهٔ امضا روی هر صفحه
+- یکپارچهسازی اختیاری برای جاسازی دائمی امضاها
+- پشتیبانی از چند امضا در یک سند
+
+## موارد استفاده
+
+- امضای قراردادها، توافقنامهها یا فرمهای تأیید پیش از بازگرداندن آنها
+- افزودن امضا به اسناد مالیاتی، درخواستهای بیمه یا فرمهای دولتی
+- گذاشتن حروف اول نام روی صفحات جداگانهٔ یک توافقنامهٔ چندصفحهای
+- امضای توافقنامههای عدم افشا یا اسناد منابع انسانی که بهصورت پیوست PDF میرسند
+
+## نکتهها
+
+- اگر PDF امضاشده را برای کسی میفرستید که نباید بتواند امضای شما را حذف یا جابهجا کند، یکپارچهسازی را فعال کنید.
+- برای امضاهای دیجیتال با اعتبار قانونی و تأیید مبتنی بر گواهی، BentoPDF ابزار جداگانهٔ امضای دیجیتال را هم ارائه میدهد.
+- برای تمیزترین نتیجه، تصویر امضای PNG با پسزمینهٔ شفاف بارگذاری کنید.
+
+## ابزارهای مرتبط
+
+- [ویرایشگر PDF](./edit-pdf)
+- [افزودن مهر](./add-stamps)
+- [پرکنندهٔ فرم](./form-filler)
diff --git a/docs/fa/tools/split-pdf.md b/docs/fa/tools/split-pdf.md
new file mode 100644
index 00000000..7d4693de
--- /dev/null
+++ b/docs/fa/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: تقسیم PDF
+description: PDF را بر اساس بازهٔ صفحات، انتخاب تصویری، نشانکها، صفحات زوج/فرد یا فواصل ثابت به فایلهای کوچکتر تقسیم کنید.
+---
+
+# تقسیم PDF
+
+یک PDF را با یکی از شش حالت تقسیم به اسناد کوچکتر بشکنید. از بازههای سادهٔ صفحات تا تقسیم بر اساس نشانکها، این ابزار همهٔ سناریوهای تقسیم سند را پوشش میدهد.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید.
+2. یک حالت تقسیم از فهرست کشویی انتخاب کنید.
+3. گزینههای ویژهٔ آن حالت را تنظیم کنید (بازههای صفحات، انتخابها و غیره).
+4. روی دکمهٔ پردازش کلیک کنید.
+5. نتیجه بسته به حالت و تنظیمات بهصورت یک PDF یا یک بایگانی ZIP دانلود میشود.
+
+## حالتهای تقسیم
+
+| حالت | توضیح |
+| ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| **بازه** | بازههایی مانند `1-3, 5, 8-10` وارد کنید. چند بازه PDFهای جداگانه در یک ZIP تولید میکنند. یک بازه یک PDF تولید میکند. |
+| **انتخاب تصویری** | تصاویر کوچک صفحات را مرور کنید و صفحات دلخواه را با کلیک انتخاب کنید. صفحات انتخابشده در یک PDF جدید استخراج میشوند. |
+| **زوج / فرد** | فقط صفحات زوج یا فرد را استخراج کنید. |
+| **همهٔ صفحات** | هر صفحه را به یک فایل PDF جداگانه تقسیم کنید که بهصورت ZIP دانلود میشود. |
+| **نشانکها** | در مرز نشانکها تقسیم کنید. سطح نشانک را انتخاب کنید تا محل تقسیمها مشخص شود. |
+| **هر N صفحه** | به بخشهای N صفحهای تقسیم کنید (مثلاً هر ۵ صفحه). بخش آخر ممکن است صفحات کمتری داشته باشد. |
+
+## ویژگیها
+
+- شش حالت تقسیم متمایز که تقریباً همهٔ موارد استفاده را پوشش میدهند
+- انتخابگر تصویری صفحات با بارگذاری تنبل تصاویر کوچک
+- تقسیم مبتنی بر نشانک با فیلتر سطح
+- گزینهٔ خروجی ZIP برای حالتهای بازه و تصویری
+- پشتیبانی از بازههای صفحات با نحو ترکیبی (`1-3, 5, 8-10`)
+- هشدار وقتی تقسیم N صفحهای بخشهای نابرابر ایجاد میکند
+
+## موارد استفاده
+
+- استخراج یک فصل یا بخش خاص از یک سند بزرگ
+- جدا کردن صفحات فرد و زوج برای فرایندهای چاپ دورو
+- شکستن PDF یک کتاب به فایلهای جداگانهٔ فصلها در مرز نشانکها
+- جدا کردن صفحات خاص (مانند صفحهٔ امضا) از یک قرارداد
+- تقسیم یک گزارش گردآوریشده به فایلهای جداگانهٔ هر بخش برای توزیع
+
+## نکتهها
+
+- چند بازهٔ صفحات که با کاما جدا شدهاند (مثلاً `1-5, 10-15, 20-25`) PDFهای جداگانه تولید میکنند، یکی برای هر بازه، که در یک ZIP بستهبندی میشوند.
+- حالت تقسیم با نشانک نیاز دارد PDF واقعاً نشانک داشته باشد. اگر هیچ نشانکی یافت نشود، پیام خطا دریافت میکنید.
+- کادر «دانلود بهصورت ZIP» در حالتهای بازه و تصویری به شما امکان میدهد بهجای یک فایل ترکیبی، برای هر صفحه یک PDF جداگانه بگیرید.
+
+## ابزارهای مرتبط
+
+- [ادغام PDF](./merge-pdf)
+- [استخراج صفحات](./extract-pages)
+- [حذف صفحات](./delete-pages)
+- [ابزار چندکارهٔ PDF](./pdf-multi-tool)
diff --git a/docs/fa/tools/svg-to-pdf.md b/docs/fa/tools/svg-to-pdf.md
new file mode 100644
index 00000000..17e1e9a7
--- /dev/null
+++ b/docs/fa/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG به PDF
+description: گرافیکهای برداری SVG را با کنترل کیفیت، کاملاً در مرورگر به PDF تبدیل کنید.
+---
+
+# SVG به PDF
+
+فایلهای Scalable Vector Graphics (SVG) را به PDF تبدیل کنید. ابزار هر SVG را با موتور رندر مرورگر رستر میکند و سپس نتیجه را با وضوح اصلی آن جاسازی میکند. برای تبدیل آیکونهای برداری، نمودارها و تصویرسازیها به اسناد قابل حمل مفید است.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوندها |
+| :--- | :------ |
+| SVG | `.svg` |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا یک یا چند فایل SVG را بکشید و رها کنید.
+2. فهرست فایلها را بررسی و مدیریت کنید.
+3. یک سطح **کیفیت PDF** انتخاب کنید.
+4. روی **تبدیل به PDF** کلیک کنید. نتیجه بهصورت `from_svgs.pdf` دانلود میشود.
+
+هر SVG بهصورت متن خوانده میشود، روی یک بوم با عرض و ارتفاع ذاتی خود رندر میشود (اگر ابعادی مشخص نشده باشد، پیشفرض 800x600 است) و بهصورت PNG خروجی گرفته میشود. سپس آن PNG با pdf-lib در PDF جاسازی میشود. نواحی شفاف با پسزمینهٔ سفید پر میشوند.
+
+## گزینهها
+
+**کیفیت PDF** فشردهسازی پس از رستر کردن را کنترل میکند:
+
+- **کیفیت بالا**: نزدیکترین حالت به رندر اصلی.
+- **کیفیت متوسط** (پیشفرض): تعادل خوب.
+- **کیفیت پایین**: کوچکترین فایل، با کمی افت جزئیات.
+
+## موارد استفاده
+
+- تبدیل نقشههای معماری یا مهندسی از SVG به PDF آمادهٔ چاپ
+- بستهبندی مجموعه آیکونها در یک PDF مرجع برای سیستم طراحی
+- تبدیل مصورسازیهای داده (خروجی D3.js و کتابخانههای نمودار) به PDF آماده برای گزارش
+- ساخت نسخههای قابل چاپ از اینفوگرافیکهای مبتنی بر SVG
+
+## نکتهها
+
+- فایلهای SVG بدون ویژگیهای صریح `width` و `height` با اندازهٔ 800x600 پیکسل رندر میشوند. برای بهترین نتیجه، پیش از تبدیل ابعاد را در کد SVG تعیین کنید.
+- SVGهای پیچیده با ارجاع به قلمهای خارجی یا تصاویر پیوندی ممکن است کاملاً درست رندر نشوند. برای خروجی قابل اعتماد، همهٔ منابع را درون SVG قرار دهید.
+- چون SVG رستر میشود، PDF بهجای مسیرهای برداری یک تصویر بیتمپ خواهد داشت. برای خروجی PDF برداری واقعی به ابزار برداری اختصاصی نیاز است.
+
+## ابزارهای مرتبط
+
+- [تصاویر به PDF](./image-to-pdf)
+- [PNG به PDF](./png-to-pdf)
+- [BMP به PDF](./bmp-to-pdf)
diff --git a/docs/fa/tools/table-of-contents.md b/docs/fa/tools/table-of-contents.md
new file mode 100644
index 00000000..1a8444ab
--- /dev/null
+++ b/docs/fa/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: فهرست مطالب
+description: از نشانکهای موجود PDF یک صفحهٔ فهرست مطالب قالببندیشده بسازید.
+---
+
+# فهرست مطالب
+
+این ابزار نشانکهای (طرح کلی) PDF شما را میخواند و یک صفحهٔ فهرست مطالب قالببندیشده میسازد که به ابتدای سند افزوده میشود. اگر PDF شما نشانک دارد اما صفحهٔ فهرست مطالب قابل مشاهده ندارد، این ابزار بهطور خودکار آن را میسازد.
+
+## نحوهٔ کار
+
+1. یک PDF دارای نشانک بارگذاری کنید.
+2. عنوان، اندازهٔ قلم و خانوادهٔ قلم فهرست مطالب را سفارشی کنید.
+3. در صورت تمایل **افزودن نشانک برای صفحهٔ فهرست مطالب** را علامت بزنید تا خود فهرست مطالب هم در درخت نشانکها قرار گیرد.
+4. برای پردازش فایل روی **ایجاد فهرست مطالب** کلیک کنید.
+5. PDF بهروزشده با صفحهٔ فهرست مطالب درجشده در ابتدا بهطور خودکار دانلود میشود.
+
+## گزینهها
+
+- **عنوان فهرست مطالب**: سرفصلی که بالای صفحهٔ ساختهشده نمایش داده میشود. پیشفرض «فهرست مطالب» است.
+- **اندازهٔ قلم**: از 10pt تا 72pt انتخاب کنید. پیشفرض 12pt است.
+- **خانوادهٔ قلم**: از گونههای Times Roman، Helvetica یا Courier (معمولی، پررنگ، کج، پررنگ کج) انتخاب کنید. پیشفرض Helvetica است.
+- **افزودن نشانک برای صفحهٔ فهرست مطالب**: وقتی علامت بخورد، یک مدخل نشانک برای خود صفحهٔ فهرست مطالب به درخت طرح کلی PDF اضافه میشود.
+
+## ویژگیها
+
+- خواندن کامل سلسلهمراتب نشانکهای PDF
+- ساخت صفحهٔ فهرست مطالب با قالببندی تمیز و ارجاع به شمارهٔ صفحات
+- پشتیبانی از سطوح تودرتوی نشانک با تورفتگی
+- انتخاب از میان ۱۲ قلم داخلی PDF
+- نشانک اختیاری خودارجاع برای صفحهٔ فهرست مطالب
+
+## موارد استفاده
+
+- افزودن فهرست مطالب قابل چاپ به کتابهای الکترونیکی یا گزارشهایی که فقط نشانک دیجیتال دارند
+- ساخت فهرست مطالب برای سند ادغامشده پس از ترکیب چند PDF
+- ساخت صفحهٔ مرجع برای راهنماهای فنی طولانی
+- آمادهسازی اسناد برای چاپ جایی که فهرست مطالب قابل مشاهده انتظار میرود
+
+## نکتهها
+
+- اگر PDF شما نشانک ندارد، ابتدا با ابزار [ویرایش نشانکها](./bookmark) آنها را بسازید و سپس برای ساخت فهرست مطالب به اینجا برگردید.
+- برای اسناد بزرگ، اندازهٔ قلم بزرگتر مانند 14pt یا 16pt خوانایی را بهتر میکند.
+
+## ابزارهای مرتبط
+
+- [ویرایش نشانکها](./bookmark)
+- [شمارهگذاری صفحات](./page-numbers)
+- [سرصفحه و پاصفحه](./header-footer)
diff --git a/docs/fa/tools/text-color.md b/docs/fa/tools/text-color.md
new file mode 100644
index 00000000..da9c7f22
--- /dev/null
+++ b/docs/fa/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: تغییر رنگ متن
+description: رنگ همهٔ متنهای PDF را به هر رنگی که میخواهید تغییر دهید.
+---
+
+# تغییر رنگ متن
+
+رنگ متن را در سراسر PDF جایگزین کنید. ابزار نواحی متنی هر صفحه را شناسایی کرده و آنها را با رنگ انتخابی شما رنگآمیزی میکند و چیدمان سند و محتوای غیرمتنی را حفظ میکند.
+
+## نحوهٔ کار
+
+1. فایل PDF خود را بارگذاری کنید.
+2. با انتخابگر رنگ یک رنگ جدید برای متن انتخاب کنید. پیشفرض آبی (#0000FF) است.
+3. برای پردازش روی **تغییر رنگ متن** کلیک کنید.
+4. PDF رنگآمیزیشده بهطور خودکار دانلود میشود. یک نشانگر پیشرفت صفحهٔ در حال پردازش را نشان میدهد.
+
+## گزینهها
+
+- **رنگ جدید متن**: انتخابگر رنگ برای انتخاب رنگ جایگزین همهٔ متنهای سند.
+
+## ویژگیها
+
+- رنگآمیزی متن در همهٔ صفحات سند
+- پردازش صفحه به صفحه با نمایش پیشرفت
+- انتخابگر رنگ با پشتیبانی کامل از رنگهای hex
+- حفظ چیدمان صفحه و عناصر غیرمتنی
+
+## موارد استفاده
+
+- تغییر متن سیاه به آبی تیره برای ظاهری نرمتر و امروزیتر
+- رنگآمیزی متن مطابق راهنمای برند پیش از توزیع اسناد
+- تبدیل متن به رنگی خاص برای رعایت الزامات دسترسپذیری
+- قابل مشاهده کردن متن روی رنگ پسزمینهای که تازه اعمال شده است
+
+## نکتهها
+
+- این ابزار صفحات را برای کیفیت با مقیاس 2x رندر میکند و سپس PDF را بازسازی میکند. خروجی مبتنی بر تصویر است، بنابراین متن دیگر قابل انتخاب یا جستوجو نخواهد بود.
+- برای اسنادی که باید متن قابل انتخاب داشته باشند، بهجای آن ویرایش مستقیم PDF با [ویرایشگر PDF](./edit-pdf) را در نظر بگیرید.
+- زمان پردازش با تعداد صفحات افزایش مییابد، زیرا هر صفحه جداگانه رندر میشود.
+
+## ابزارهای مرتبط
+
+- [رنگ پسزمینه](./background-color)
+- [وارونهسازی رنگها](./invert-colors)
+- [تنظیم رنگها](./adjust-colors)
diff --git a/docs/fa/tools/tiff-to-pdf.md b/docs/fa/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..5a079cfe
--- /dev/null
+++ b/docs/fa/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF به PDF
+description: تصاویر TIFF تکصفحهای و چندصفحهای را با پشتیبانی کامل از صفحات در مرورگر به PDF تبدیل کنید.
+---
+
+# TIFF به PDF
+
+فایلهای TIFF، از جمله TIFFهای چندصفحهای، را به PDF تبدیل کنید. هر صفحه (یا «IFD») در فایل TIFF به یک صفحهٔ جداگانه در PDF خروجی تبدیل میشود. این قابلیت بهویژه برای اسناد اسکنشده، فکسها و تصاویر پزشکی که معمولاً بهصورت TIFF چندصفحهای ذخیره میشوند مفید است.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوندها |
+| :--- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای TIFF را بکشید و رها کنید.
+2. فهرست فایلها را بررسی و در صورت نیاز مدیریت کنید.
+3. روی **تبدیل به PDF** کلیک کنید. نتیجه بهصورت `from_tiff.pdf` دانلود میشود.
+
+ابزار هر فایل TIFF را با یک رمزگشای TIFF در JavaScript رمزگشایی میکند و دادهٔ خام پیکسلی RGBA هر صفحه را استخراج میکند. هر صفحه روی یک بوم رندر، بهصورت PNG خروجی گرفته و در PDF جاسازی میشود. ابعاد صفحات با صفحات اصلی TIFF مطابقت دارد.
+
+## گزینهها
+
+این ابزار تنظیمات کیفیت اضافی ندارد. تصاویر با وضوح اصلی خود جاسازی میشوند.
+
+## موارد استفاده
+
+- تبدیل اسناد فکس چندصفحهای (TIFF-F) به قالب قابل حملتر PDF
+- تبدیل بایگانیهای اسناد اسکنشدهٔ ذخیرهشده بهصورت TIFF به PDFهای قابل جستوجو (پس از آن با ابزار OCR ترکیب کنید)
+- پردازش فایلهای تصویربرداری پزشکی (اسلایدهای آسیبشناسی، خروجیهای رادیولوژی) که از TIFF استفاده میکنند
+- تبدیل فایلهای TIFF مربوط به GIS یا تصاویر ماهوارهای به اسناد قابل اشتراک
+
+## نکتهها
+
+- TIFFهای چندصفحهای کاملاً پشتیبانی میشوند. یک TIFF دهصفحهای یک PDF دهصفحهای تولید میکند. نیازی نیست ابتدا TIFF را تقسیم کنید.
+- پردازش فایلهای TIFF بسیار بزرگ (صدها مگابایت) ممکن است بیشتر طول بکشد، زیرا کل فایل باید در حافظهٔ مرورگر رمزگشایی شود.
+- اگر روی PDF حاصل به OCR نیاز دارید، پس از تبدیل آن را با ابزار [OCR روی PDF](./ocr-pdf) پردازش کنید.
+
+## ابزارهای مرتبط
+
+- [تصاویر به PDF](./image-to-pdf)
+- [BMP به PDF](./bmp-to-pdf)
+- [JPG به PDF](./jpg-to-pdf)
diff --git a/docs/fa/tools/txt-to-pdf.md b/docs/fa/tools/txt-to-pdf.md
new file mode 100644
index 00000000..1b0453da
--- /dev/null
+++ b/docs/fa/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: متن به PDF
+description: فایلهای متنی ساده یا متن تایپشده را با قلم، رنگ و اندازهٔ صفحهٔ دلخواه به PDF تبدیل کنید.
+---
+
+# متن به PDF
+
+متن ساده را به یک PDF قالببندیشده تبدیل کنید. میتوانید فایلهای `.txt` بارگذاری کنید یا مستقیماً در ویرایشگر متن داخلی تایپ کنید. ابزار از چند قلم، رنگ متن سفارشی و طیف گستردهای از اندازههای صفحه پشتیبانی میکند: از A0 تا A10، بهعلاوهٔ US Letter، Legal و Tabloid.
+
+## قالبهای پشتیبانیشده
+
+| ورودی | پسوندها |
+| :----------------- | :-------------------------- |
+| فایلهای متنی ساده | `.txt` |
+| ورود مستقیم متن | تایپ یا چسباندن در ویرایشگر |
+
+## نحوهٔ کار
+
+1. حالت ورودی را با کلید بالای صفحه انتخاب کنید: **بارگذاری فایلها** یا **تایپ متن**.
+2. اگر بارگذاری میکنید، یک یا چند فایل `.txt` را بکشید و رها کنید یا با کلیک انتخاب کنید. اگر تایپ میکنید، متن را مستقیماً در کادر متن وارد کنید.
+3. گزینههای قالببندی را تنظیم کنید: خانوادهٔ قلم، اندازهٔ قلم، رنگ متن و اندازهٔ صفحه.
+4. روی **ایجاد PDF** کلیک کنید. خروجی بهصورت `text_to_pdf.pdf` دانلود میشود.
+
+هنگام بارگذاری چند فایل، محتوای آنها با خطوط خالی بینشان به هم پیوسته میشود.
+
+## گزینهها
+
+| گزینه | مقادیر | پیشفرض |
+| :--------------- | :------------------------------------------------------------------------- | :------------- |
+| **خانوادهٔ قلم** | Helvetica (بدون گیره)، Tiro (گیرهدار)، Courier (همعرض)، Times (گیرهدار) | Helvetica |
+| **اندازهٔ قلم** | 6 تا 72 pt | 12 |
+| **رنگ متن** | هر رنگی با انتخابگر رنگ | سیاه (#000000) |
+| **اندازهٔ صفحه** | ISO A0–A10، B0–B10، C0–C10، US Letter، Legal، Tabloid، Ledger، 11x17 | A4 |
+
+زبانهای راستبهچپ (عربی، عبری، فارسی، اردو) بهطور خودکار شناسایی میشوند. وقتی متن راستبهچپ یافت شود، جهت و تراز متن متناسب با آن تغییر میکند.
+
+## موارد استفاده
+
+- تبدیل قطعهکدها یا فایلهای لاگ به PDF قابل چاپ با قلم Courier
+- ساخت سریع PDF از یادداشتهای جلسه که همان لحظه تایپ شدهاند
+- قالببندی یک دستنوشتهٔ متنی ساده با قلم و اندازهٔ صفحهٔ مشخص برای ارسال
+- تهیهٔ نسخهٔ PDF از README یا changelog برای توزیع آفلاین
+
+## نکتهها
+
+- وقتی میخواهید محتوای کلیپبورد را بدون ذخیره در فایل سریع تبدیل کنید، از حالت **تایپ متن** استفاده کنید.
+- Courier (همعرض) بهترین انتخاب قلم برای کد، لاگ یا هر محتوایی است که تراز ستونی در آن اهمیت دارد.
+- حاشیههای صفحه در همهٔ طرفها روی 72 پوینت (۱ اینچ) ثابت است.
+
+## ابزارهای مرتبط
+
+- [Markdown به PDF](./markdown-to-pdf)
+- [CSV به PDF](./csv-to-pdf)
+- [Word به PDF](./word-to-pdf)
diff --git a/docs/fa/tools/unlock-pdf.md b/docs/fa/tools/unlock-pdf.md
new file mode 100644
index 00000000..71fb5b12
--- /dev/null
+++ b/docs/fa/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: باز کردن قفل PDF
+description: محافظت رمز عبور را از PDFهای رمزگذاریشده حذف کنید. از رمزگشایی دستهای چند فایل با یک رمز عبور پشتیبانی میکند.
+---
+
+# باز کردن قفل PDF
+
+اگر رمز عبور یک PDF رمزگذاریشده را دارید، این ابزار رمزگذاری را بهطور کامل حذف میکند و نسخهای باز تولید میکند که هر کسی بدون اعتبارنامه میتواند آن را باز کند. وقتی چند PDF رمز عبور یکسانی دارند، رمزگشایی دستهای پشتیبانی میشود.
+
+## نحوهٔ کار
+
+1. یک یا چند فایل PDF رمزگذاریشده بارگذاری کنید.
+2. **رمز عبوری** را که برای محافظت از فایلها استفاده شده وارد کنید.
+3. روی **رمزگشایی PDF** کلیک کنید.
+4. یک فایل تکی مستقیماً دانلود میشود. چند فایل یک بایگانی ZIP شامل همهٔ PDFهای بازشده تولید میکنند.
+
+## ویژگیها
+
+- رمزگشایی تکفایلی و دستهای
+- پشتیبانی از رمز عبور کاربر و رمز عبور مالک
+- تولید خروجی کاملاً رمزگذارینشده بدون هیچ محدودیت باقیمانده
+- گزارش خطای واضح برای رمز عبور نادرست یا فایلهای خراب
+- پیگیری موفقیت یا شکست هر فایل در حالت دستهای
+
+## تفاوت با حذف محدودیتها
+
+**رمزگشایی PDF** به رمز عبور نیاز دارد و همهٔ رمزگذاری را حذف میکند. **حذف محدودیتها** محدودیتهای استفاده (چاپ، کپی، ویرایش) را هدف میگیرد و اگر فقط رمز عبور مالک تنظیم شده باشد ممکن است به رمز عبور نیازی نداشته باشد. وقتی PDF بدون رمز عبور اصلاً باز نمیشود، از رمزگشایی استفاده کنید.
+
+## موارد استفاده
+
+- باز کردن دائمی PDFهایی که قبلاً رمزگذاری کردهاید، وقتی دیگر به رمز عبور نیازی نیست
+- حذف رمزگذاری از دستهای از اسناد بایگانیشده برای دسترسی آسانتر در بلندمدت
+- آمادهسازی PDFهای محافظتشده برای سیستم مدیریت اسنادی که از فایلهای رمزگذاریشده پشتیبانی نمیکند
+- باز کردن PDFها پیش از ادغام با اسناد دیگر (بسیاری از ابزارهای ادغام نمیتوانند ورودی رمزگذاریشده را پردازش کنند)
+
+## نکتهها
+
+- فیلد رمز عبور برای همهٔ فایلهای بارگذاریشده اعمال میشود. اگر PDFهای شما رمزهای متفاوتی دارند، آنها را در دستههای جداگانه پردازش کنید.
+- اگر خطای «رمز عبور نادرست» دریافت کردید، فاصلههای انتهایی یا روشن بودن Caps Lock را بررسی کنید.
+- پس از رمزگشایی، خروجی هیچ امنیتی ندارد. اگر به رمز عبور جدید نیاز دارید، با رمزگذاری PDF دوباره آن را رمزگذاری کنید.
+
+## ابزارهای مرتبط
+
+- [رمزگذاری PDF](./protect-pdf): اعمال دوبارهٔ رمزگذاری با رمز عبور جدید
+- [حذف محدودیتها](./remove-restrictions): حذف محدودیتهای استفاده بدون رمزگشایی کامل
+- [تغییر مجوزها](./change-permissions): تغییر مجوزهای مشخص روی یک PDF رمزگذاریشده
diff --git a/docs/fa/tools/validate-signature-pdf.md b/docs/fa/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..c449e55f
--- /dev/null
+++ b/docs/fa/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: اعتبارسنجی امضا
+description: امضاهای دیجیتال در فایلهای PDF را تأیید کنید. اعتبار گواهی، هویت امضاکننده، یکپارچگی سند و وضعیت زنجیرهٔ اعتماد را بررسی کنید.
+---
+
+# اعتبارسنجی امضا
+
+یک PDF امضاشده بارگذاری کنید تا این ابزار همهٔ امضاهای دیجیتال را استخراج کند، امضاکننده را شناسایی کند، اعتبار گواهی را بررسی کند و گزارش دهد که آیا سند پس از امضا تغییر کرده است یا نه. همچنین میتوانید یک گواهی مورد اعتماد ارائه دهید تا زنجیرهٔ امضا تأیید شود.
+
+## نحوهٔ کار
+
+1. یک فایل PDF امضاشده بارگذاری کنید. اعتبارسنجی بهطور خودکار آغاز میشود.
+2. ابزار خلاصهای نمایش میدهد: تعداد امضاهای یافتشده و تعداد امضاهای معتبر.
+3. برای هر امضا یک کارت جزئیات با نام امضاکننده، صادرکننده، تاریخها و وضعیت نمایش داده میشود.
+4. در صورت تمایل، یک **گواهی مورد اعتماد** (.pem، .crt، .cer، .der) بارگذاری کنید تا امضا در برابر یک لنگر اعتماد مشخص تأیید شود. اعتبارسنجی دوباره بهطور خودکار اجرا میشود.
+
+## چه چیزهایی بررسی میشود
+
+### تجزیهٔ امضا
+
+ابزار اشیای امضای PKCS#7 را از PDF استخراج میکند، ساختار ASN.1 را رمزگشایی میکند و گواهی X.509 امضاکننده را همراه با هر زنجیرهٔ گواهی جاسازیشده در امضا بیرون میکشد.
+
+### اعتبار گواهی
+
+- **انقضا**: آیا گواهی در حال حاضر در بازهٔ تاریخ معتبر خود قرار دارد؟
+- **تشخیص خودامضا**: آیا گواهی صادرکنندهٔ خودش است؟
+- **زنجیرهٔ اعتماد**: وقتی گواهی مورد اعتماد ارائه شده باشد، آیا زنجیرهٔ گواهی امضاکننده به آن میرسد؟
+
+### تأیید رمزنگاری
+
+- ابزار بایتهای تحت پوشش `/ByteRange` امضا را بازسازی میکند، آنها را با الگوریتمی که امضاکننده اعلام کرده هش میکند و نتیجه را با ویژگی `messageDigest` داخل امضا مقایسه میکند.
+- سپس ویژگیهای امضاشده را دوباره بهصورت یک DER SET سریالسازی میکند و امضا را با کلید عمومی گواهی امضاکننده تأیید میکند.
+- **یک امضا فقط وقتی معتبر گزارش میشود که همهٔ این مراحل موفق باشند.** اگر بایتهای PDF پس از امضا تغییر کرده باشند یا امضای جاسازیشده با کلید امضاکننده مطابقت نداشته باشد، وضعیت «نامعتبر: تأیید رمزنگاری ناموفق بود» همراه با دلیل مشخص نمایش داده میشود.
+
+#### الگوریتمهای امضای پشتیبانیشده
+
+| الگوریتم | مسیر تأیید |
+| ----------------------- | ------------------------------------------------------------------------------ |
+| RSA (PKCS#1 v1.5) | `publicKey.verify` در node-forge، با جایگزین Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` پس از تبدیل امضای DER به IEEE P1363 |
+
+اگر امضایی از الگوریتمی خارج از این فهرست استفاده کند (برای مثال Ed25519، SM2 یا RSA با OID چکیدهٔ غیرمعمول)، کارت وضعیت **«تأییدنشده: الگوریتم امضای پشتیبانینشده»** را به رنگ زرد همراه با OID یا دلیل مشخص نشان میدهد. این یک تمایز سهحالته و عمدی است:
+
+- **معتبر**: امضا بهصورت رمزنگاری با کلید عمومی امضاکننده تأیید شده است.
+- **نامعتبر**: تأیید اجرا شد و نتیجهٔ منفی داد (بایتها تغییر کردهاند یا کلید مطابقت ندارد).
+- **تأییدنشده**: ابزار نتوانست تأیید را برای این الگوریتم اجرا کند. فرادادهٔ گواهی همچنان نمایش داده میشود، اما باید امضا را «نامشخص» در نظر بگیرید و آن را با Adobe Acrobat یا `openssl cms -verify` تأیید کنید.
+
+### الگوریتمهای چکیدهٔ ناامن
+
+- امضاهایی که از **MD5 یا SHA-1** استفاده میکنند نامعتبر شمرده شده و با وضعیت «چکیدهٔ ناامن» علامتگذاری میشوند. برای هر دو الگوریتم حملات تصادم منتشر شده است، بنابراین امضا روی هش SHA-1 یا MD5 هیچ تضمینی برای یکپارچگی ندارد.
+- SHA-224، SHA-256، SHA-384 و SHA-512 همگی پذیرفته میشوند.
+
+### پوشش سند
+
+- **پوشش کامل**: امضا کل فایل PDF را پوشش میدهد، یعنی پس از امضا هیچ بایتی اضافه یا تغییر داده نشده است.
+- **پوشش جزئی**: امضا فقط بخشی از فایل را پوشش میدهد. این میتواند نشان دهد که پس از امضا تغییراتی انجام شده است (نه لزوماً مخرب، چون ذخیرهسازیهای افزایشی پوشش جزئی ایجاد میکنند).
+
+## جزئیات امضا
+
+هر کارت امضا موارد زیر را نشان میدهد:
+
+- **امضاشده توسط**: نام عمومی، سازمان و ایمیل از گواهی امضاکننده
+- **صادرکننده**: مرجع صدور گواهی که گواهی امضاکننده را صادر کرده است
+- **تاریخ امضا**: مهر زمانی جاسازیشده در امضا
+- **معتبر از / معتبر تا**: دورهٔ اعتبار گواهی
+- **دلیل**: دلیل امضای سند (در صورت ارائه)
+- **مکان**: محل امضا (در صورت ارائه)
+- **وضعیت پوشش**: کامل یا جزئی
+- **نشان اعتماد**: مورد اعتماد یا خارج از زنجیرهٔ اعتماد (فقط وقتی گواهی سفارشی ارائه شده باشد)
+
+### جزئیات فنی
+
+بخش جزئیات فنی را برای موارد زیر باز کنید:
+
+- شمارهٔ سریال گواهی امضاکننده
+- الگوریتم چکیده (SHA-256، SHA-512 و غیره)
+- الگوریتم امضا (RSA با SHA-256، ECDSA با SHA-256 و غیره)
+- پیامهای خطا برای امضاهای نامعتبر
+
+## موارد استفاده
+
+- تأیید یک قرارداد امضاشدهٔ دیجیتال پیش از امضای متقابل
+- ممیزی اسناد امضاشده برای اطمینان از اینکه دستکاری نشدهاند
+- بررسی اینکه آیا گواهی از زمان امضای سند منقضی شده است
+- اعتبارسنجی امضاها در برابر گواهی ریشهٔ سازمان شما
+- بررسی جزئیات امضای اسناد دولتی یا حقوقی
+
+## نکتهها
+
+- گواهی خودامضا به معنای نامعتبر بودن امضا نیست، بلکه یعنی هویت امضاکننده از طریق یک شخص ثالث مورد اعتماد قابل تأیید نیست. این برای اسناد داخلی رایج است.
+- پوشش جزئی همیشه نشانهٔ دستکاری نیست. بسیاری از گردشکارهای PDF بهروزرسانیهای افزایشی (مانند امضای دوم) اضافه میکنند که پوشش جزئی ایجاد میکند.
+- گواهی ریشه یا میانی سازمان خود را بهعنوان گواهی مورد اعتماد بارگذاری کنید تا زنجیرهٔ اعتماد تأیید شود.
+
+## ابزارهای مرتبط
+
+- [امضای دیجیتال](./digital-sign-pdf): امضای PDFها با گواهی خودتان
+- [مسطحسازی PDF](./flatten-pdf): مسطحسازی PDF پیش از امضا برای جلوگیری از تغییرات پس از امضا
+- [حذف فراداده](./remove-metadata): پاکسازی PDF پیش از اعمال امضا
diff --git a/docs/fa/tools/view-metadata.md b/docs/fa/tools/view-metadata.md
new file mode 100644
index 00000000..69203897
--- /dev/null
+++ b/docs/fa/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: مشاهدهٔ فراداده
+description: همهٔ ویژگیهای فرادادهٔ یک PDF از جمله اطلاعات سند، دادههای XMP و جزئیات ساختاری را بررسی کنید.
+---
+
+# مشاهدهٔ فراداده
+
+ویژگیهای پنهان جاسازیشده در یک فایل PDF را بررسی کنید. این ابزار اطلاعات سند (عنوان، نویسنده، تاریخها)، فرادادهٔ XMP، ابعاد صفحه و سایر دادههای ساختاری را در قالبی خوانا نمایش میدهد.
+
+## نحوهٔ کار
+
+1. یک فایل PDF بارگذاری کنید.
+2. ابزار بلافاصله فایل را تجزیه میکند و همهٔ فرادادهٔ موجود را در بخشهای منظم نمایش میدهد.
+3. دیکشنری اطلاعات سند، درخت فرادادهٔ XMP و ویژگیهای ساختاری را مرور کنید.
+4. به هیچ مرحلهٔ پردازشی نیاز نیست: فراداده بهمحض بارگذاری فایل نمایش داده میشود.
+
+## ویژگیها
+
+- نمایش فیلدهای استاندارد اطلاعات سند: عنوان، نویسنده، موضوع، کلیدواژهها، سازنده، تولیدکننده
+- نمایش تاریخهای ایجاد و تغییر در قالبی خوانا برای انسان
+- تجزیه و نمایش کامل درخت فرادادهٔ XMP با فضاهای نام تودرتو
+- تبدیل قالب تاریخ PDF (`D:20240101120000Z`) به تاریخهای خوانا
+- سازماندهی در بخشهای تاشو برای پیمایش آسان
+
+## بخشهای فراداده
+
+| بخش | محتوا |
+| ----------------- | -------------------------------------------------------------------------------- |
+| **اطلاعات سند** | عنوان، نویسنده، موضوع، کلیدواژهها، سازنده، تولیدکننده، تاریخ ایجاد، تاریخ تغییر |
+| **فرادادهٔ XMP** | درخت کامل فرادادهٔ مبتنی بر XML با فضاهای نام Dublin Core، XAP، PDF و سفارشی |
+| **ویژگیهای سند** | تعداد صفحات، نسخهٔ PDF، اندازهٔ فایل، وضعیت رمزگذاری |
+
+## موارد استفاده
+
+- بررسی اینکه چه کسی PDF را نوشته و آخرین بار کی تغییر کرده است
+- اطمینان از تنظیم درست فراداده پیش از انتشار سند
+- ممیزی PDFها از نظر حریم خصوصی با بررسی اطلاعات شخصی جاسازیشده
+- بررسی نرمافزاری که برای ایجاد یا تغییر PDF استفاده شده (از طریق فیلد Producer)
+- مرور فرادادهٔ XMP برای انطباق با مدیریت داراییهای دیجیتال
+
+## نکتهها
+
+- رشتههای تاریخ PDF که با `D:` شروع میشوند بهطور خودکار به قالب منطقهٔ زمانی محلی شما تبدیل میشوند.
+- اگر فیلدهای فراداده خالی به نظر میرسند، سازندهٔ PDF آنها را تنظیم نکرده است. همهٔ PDFها فرادادهٔ غنی ندارند.
+- برای تغییر فراداده پس از بررسی، از [ویرایش فراداده](./edit-metadata) استفاده کنید. برای حذف کامل آن، از حذف فراداده استفاده کنید.
+
+## ابزارهای مرتبط
+
+- [ویرایش فراداده](./edit-metadata)
+- [لایههای OCG در PDF](./pdf-layers)
+- [مقایسهٔ PDFها](./compare-pdfs)
diff --git a/docs/fa/tools/vsd-to-pdf.md b/docs/fa/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..8badd702
--- /dev/null
+++ b/docs/fa/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD به PDF
+description: نمودارهای Microsoft Visio (VSD/VSDX) را در مرورگر به PDF تبدیل کنید. رایگان، خصوصی، بدون نیاز به Visio.
+---
+
+# VSD به PDF
+
+نمودارهای Microsoft Visio را بدون نصب Visio به PDF تبدیل کنید. فایلهای VSD و VSDX شامل فلوچارتها، نمودارهای سازمانی، نمودارهای شبکه و نقشههای طبقات هستند که بیشتر افراد نمیتوانند آنها را باز کنند. این ابزار آنها را به PDFهای تمیزی تبدیل میکند که روی هر دستگاهی قابل مشاهدهاند.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوند | توضیحات |
+| :----------- | :------ | :--------------------------------------- |
+| Visio Binary | `.vsd` | قالب قدیمی Visio (Visio 2003 و قدیمیتر) |
+| Visio XML | `.vsdx` | قالب مدرن Visio (Visio 2013 به بعد) |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای VSD یا VSDX خود را بکشید و رها کنید. هر دو قالب را میتوان در یک دسته ترکیب کرد.
+2. فهرست فایلها را بررسی کنید. موارد ناخواسته را با نماد سطل زباله حذف کنید یا با **افزودن فایلهای بیشتر** نمودارهای بیشتری اضافه کنید.
+3. روی **تبدیل به PDF** کلیک کنید. موتور مبتنی بر LibreOffice در مرورگر بارگذاری میشود و هر نمودار را با حفظ شکلها، اتصالدهندهها، برچسبها و چیدمان صفحه به PDF تبدیل میکند.
+4. یک نمودار تکی مستقیماً بهصورت PDF دانلود میشود. چند فایل یک بایگانی ZIP با نام `vsd-to-pdf.zip` تولید میکنند.
+
+## گزینهها
+
+به هیچ پیکربندی نیازی نیست. مبدل اندازه و جهت صفحهٔ اصلی سند Visio را حفظ میکند.
+
+## موارد استفاده
+
+- مرور نمودارهای Visio یک همکار وقتی مجوز Visio ندارید
+- قرار دادن نمودارهای شبکه یا معماری در مستندات پروژه بهصورت PDF
+- چاپ نمودارهای سازمانی یا جریانهای فرایند برای جزوههای جلسه
+- بایگانی فایلهای VSD قدیمی از نسخههای قدیمیتر Visio در قالبی ماندگار
+
+## نکتهها
+
+- اسناد چندصفحهای Visio به PDFهای چندصفحهای تبدیل میشوند و هر صفحهٔ Visio به یک صفحهٔ PDF نگاشت میشود.
+- فایلهای VSDX (قالب مدرن مبتنی بر XML) معمولاً با دقت بالاتری نسبت به فایلهای باینری قدیمی VSD تبدیل میشوند.
+- موتور LibreOffice در هر نشست یک بار بارگذاری میشود. در اولین تبدیل انتظار کوتاهی خواهید داشت و فایلهای بعدی سریعتر پردازش میشوند.
+
+## ابزارهای مرتبط
+
+- [ODG به PDF](./odg-to-pdf)
+- [PUB به PDF](./pub-to-pdf)
+- [PSD به PDF](./psd-to-pdf)
diff --git a/docs/fa/tools/webp-to-pdf.md b/docs/fa/tools/webp-to-pdf.md
new file mode 100644
index 00000000..bf161345
--- /dev/null
+++ b/docs/fa/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP به PDF
+description: تصاویر WebP را مستقیماً در مرورگر با کیفیت فشردهسازی قابل تنظیم به قالب PDF تبدیل کنید.
+---
+
+# WebP به PDF
+
+قالب تصویر WebP گوگل را به PDF تبدیل کنید. این ابزار بهویژه وقتی مفید است که تصاویری را از وب با قالب WebP دانلود کردهاید و برای چاپ یا اشتراکگذاری به قالبی پذیرفتهشدهتر نیاز دارید.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوندها |
+| :--- | :------ |
+| WebP | `.webp` |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای WebP خود را بکشید و رها کنید.
+2. فهرست فایلها را بررسی کنید و فایلهایی را که لازم ندارید حذف کنید.
+3. یک سطح **کیفیت PDF** انتخاب کنید.
+4. روی **تبدیل به PDF** کلیک کنید. خروجی با نام `from_webps.pdf` دانلود میشود.
+
+در داخل، هر تصویر WebP از طریق API canvas مرورگر رمزگشایی میشود و سپس با pdf-lib در PDF جاسازی میشود. یعنی تبدیل در هر مرورگری که از رمزگشایی WebP پشتیبانی کند کار میکند (همهٔ مرورگرهای مدرن پشتیبانی میکنند).
+
+## گزینهها
+
+**کیفیت PDF** فشردهسازی هنگام جاسازی تصاویر را کنترل میکند:
+
+- **کیفیت بالا**: بیشترین جزئیات را حفظ میکند.
+- **کیفیت متوسط** (پیشفرض): خروجی متعادل.
+- **کیفیت پایین**: کمترین حجم فایل.
+
+## موارد استفاده
+
+- تبدیل تصاویر دانلودشده از وب که بهصورت WebP ذخیره شدهاند به PDF قابل چاپ
+- بستهبندی اسکرینشاتهای WebP از Chrome یا Edge در مستندات
+- ساخت نمونهکار PDF از تصاویری که ابزارهای طراحی بهطور پیشفرض با WebP صادر میکنند
+- بایگانی تصاویر WebP در قالبی با خوانایی گستردهتر
+
+## نکتهها
+
+- WebP پیش از جاسازی در PDF در داخل به PNG رمزگشایی میشود، بنابراین تصاویر WebP بدون اتلاف در تنظیم کیفیت بالا کیفیت خود را حفظ میکنند.
+- اگر ترکیبی از WebP و قالبهای تصویری دیگر دارید، بهجای آن از ابزار [تصاویر به PDF](./image-to-pdf) استفاده کنید، چون همه را یکجا میپذیرد.
+
+## ابزارهای مرتبط
+
+- [تصاویر به PDF](./image-to-pdf)
+- [PNG به PDF](./png-to-pdf)
+- [JPG به PDF](./jpg-to-pdf)
diff --git a/docs/fa/tools/word-to-pdf.md b/docs/fa/tools/word-to-pdf.md
new file mode 100644
index 00000000..14a8631f
--- /dev/null
+++ b/docs/fa/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word به PDF
+description: اسناد Word (DOC، DOCX)، ODT و RTF را در مرورگر با حفظ کامل قالببندی به PDF تبدیل کنید.
+---
+
+# Word به PDF
+
+اسناد Microsoft Word و قالبهای سازگار را به PDF تبدیل کنید. این ابزار از موتور LibreOffice مبتنی بر مرورگر استفاده میکند که فایلهای DOC، DOCX، ODT و RTF را پردازش میکند و قالببندی، جدولها، تصاویر، سرصفحهها، پاصفحهها و سبکها را در خروجی حفظ میکند.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوندها |
+| :---------------- | :------ |
+| Word (مدرن) | `.docx` |
+| Word (قدیمی) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا اسناد Word خود را بکشید و رها کنید. میتوانید چند فایل را همزمان انتخاب کنید.
+2. فهرست فایلها را بررسی و مدیریت کنید.
+3. روی **تبدیل به PDF** کلیک کنید. موتور LibreOffice در اولین استفاده بارگذاری میشود (یک نشانگر پیشرفت وضعیت راهاندازی را نشان میدهد) و سپس هر فایل تبدیل میشود.
+4. یک فایل تکی مستقیماً بهصورت PDF دانلود میشود. چند فایل در `word-converted.zip` بستهبندی میشوند.
+
+## گزینهها
+
+این ابزار تنظیمات اضافی ندارد. موتور LibreOffice خروجی را با نمایهٔ پیشفرض صدور PDF خود تولید میکند.
+
+## خروجی
+
+| تعداد ورودی | خروجی |
+| :-------------- | :---------------------------------------------------------- |
+| ۱ فایل | دانلود یک PDF (نام فایل اصلی با پسوند `.pdf`) |
+| ۲ فایل یا بیشتر | بایگانی ZIP (`word-converted.zip`) شامل یک PDF برای هر فایل |
+
+## موارد استفاده
+
+- تبدیل رزومه یا نامهٔ همراه از DOCX به PDF پیش از ارسال درخواست شغلی
+- تبدیل دستهای مجموعهای از قراردادها یا پیشنهادها به PDF برای تحویل به مشتری
+- تبدیل فایلهای قدیمی `.doc` به PDFهای مدرن برای بایگانی بلندمدت
+- تبدیل اسناد مشارکتی Google Docs (صادرشده بهصورت DOCX) به PDF
+- تولید PDFهای آمادهٔ چاپ از قالبهای Word که در تولید خودکار اسناد استفاده میشوند
+
+## نکتهها
+
+- موتور LibreOffice در هر نشست یک بار دانلود و در حافظهٔ پنهان ذخیره میشود. در اولین تبدیل چند ثانیه زمان بارگذاری لازم است و تبدیلهای بعدی بسیار سریعترند.
+- قالببندیهای پیچیده (ماکروها، کنترلهای ActiveX، SmartArt پیشرفته) ممکن است کاملاً درست تبدیل نشوند. عناصر استاندارد سند (متن، جدولها، تصاویر، سرصفحهها، پانویسها) بهطور قابل اعتمادی تبدیل میشوند.
+- چون این ابزار ODT و RTF را هم میپذیرد، میتوانید از آن بهعنوان مبدل یکپارچه برای همهٔ قالبهای واژهپرداز استفاده کنید.
+
+## ابزارهای مرتبط
+
+- [ODT به PDF](./odt-to-pdf)
+- [RTF به PDF](./rtf-to-pdf)
+- [Excel به PDF](./excel-to-pdf)
+- [PowerPoint به PDF](./powerpoint-to-pdf)
diff --git a/docs/fa/tools/wpd-to-pdf.md b/docs/fa/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..a04be06f
--- /dev/null
+++ b/docs/fa/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD به PDF
+description: اسناد WordPerfect (WPD) را با LibreOffice در مرورگر به PDF تبدیل کنید. رایگان و خصوصی.
+---
+
+# WPD به PDF
+
+اسناد Corel WordPerfect را به فایلهای PDF تبدیل کنید. WPD زمانی قالب غالب واژهپردازی در دفاتر حقوقی و نهادهای دولتی بود. اگر فایلهای قدیمی WordPerfect دارید که نرمافزارهای مدرن آنها را باز نمیکنند، این ابزار آنها را بهصورت PDF استاندارد دوباره زنده میکند.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوند | توضیحات |
+| :---------- | :----- | :----------------------------- |
+| WordPerfect | `.wpd` | همهٔ نسخههای اصلی WordPerfect |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای WPD خود را بکشید و رها کنید. میتوانید چند فایل را همزمان انتخاب کنید.
+2. فهرست فایلها را بررسی کنید. فایلهای ناخواسته را با نماد سطل زباله حذف کنید یا با **افزودن فایلهای بیشتر** اسناد بیشتری اضافه کنید.
+3. روی **تبدیل به PDF** کلیک کنید. ابزار یک موتور تبدیل مبتنی بر LibreOffice را در مرورگر شما بارگذاری میکند که قالب WPD را تجزیه کرده و PDF تولید میکند.
+4. یک فایل تکی مستقیماً بهصورت PDF دانلود میشود. تبدیلهای دستهای یک بایگانی ZIP با نام `wpd-to-pdf.zip` تولید میکنند.
+
+## گزینهها
+
+به هیچ پیکربندی نیازی نیست. موتور LibreOffice قالببندی، فونتها و چیدمان WPD را بهطور خودکار مدیریت میکند.
+
+## موارد استفاده
+
+- باز کردن اسناد حقوقی چنددههای که با WordPerfect نوشته شدهاند
+- تبدیل پروندههای دولتی بایگانیشده از WPD به قالبی مدرن
+- انتقال کتابخانهٔ اسناد قدیمی WordPerfect به PDF برای نگهداری بلندمدت
+- اشتراکگذاری فایلهای WPD با گیرندگانی که Corel WordPerfect نصب ندارند
+
+## نکتهها
+
+- موتور LibreOffice در اولین استفاده بارگذاری میشود که کمی زمان میبرد. تبدیلهای بعدی در همان نشست سریعترند.
+- ماکروهای پیچیدهٔ WPD و reveal codes حفظ نمیشوند، اما چیدمان بصری، محتوای متنی و قالببندی پایه به PDF منتقل میشوند.
+
+## ابزارهای مرتبط
+
+- [WPS به PDF](./wps-to-pdf)
+- [ODG به PDF](./odg-to-pdf)
diff --git a/docs/fa/tools/wps-to-pdf.md b/docs/fa/tools/wps-to-pdf.md
new file mode 100644
index 00000000..17e5c93c
--- /dev/null
+++ b/docs/fa/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS به PDF
+description: اسناد Microsoft Works (WPS) را در مرورگر به PDF تبدیل کنید. رایگان، بدون ثبتنام، کاملاً خصوصی.
+---
+
+# WPS به PDF
+
+فایلهای واژهپرداز Microsoft Works را به PDF تبدیل کنید. Microsoft Works در اواخر دههٔ ۱۹۹۰ و دههٔ ۲۰۰۰ همراه رایانههای شخصی عرضه میشد و هنوز فایلهای WPS زیادی روی هارددیسکهای قدیمی و بایگانیهای ایمیل وجود دارند. این ابزار آنها را در مرورگر باز میکند و PDFهای تمیز تولید میکند.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوند | توضیحات |
+| :-------------- | :----- | :---------------------------------- |
+| Microsoft Works | `.wps` | فایلهای واژهپرداز Microsoft Works |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای WPS خود را بکشید و رها کنید. چند فایل پذیرفته میشود.
+2. فهرست فایلها را بررسی کنید. با نماد سطل زباله فایلها را جداگانه حذف کنید یا روی **افزودن فایلهای بیشتر** کلیک کنید تا دسته را گسترش دهید.
+3. روی **تبدیل به PDF** کلیک کنید. یک موتور مبتنی بر LibreOffice در مرورگر بارگذاری میشود و هر سند WPS را به PDF تبدیل میکند.
+4. یک فایل مستقیماً بهصورت PDF دانلود میشود. چند فایل در یک بایگانی ZIP با نام `wps-to-pdf.zip` بستهبندی میشوند.
+
+## گزینهها
+
+به تنظیمات اضافی نیازی نیست. مبدل متن، قالببندی پایه و تصاویر جاسازیشده در فایل WPS را پردازش میکند.
+
+## موارد استفاده
+
+- بازیابی اسناد قدیمی مدرسه یا کار که با قالب Microsoft Works ذخیره شدهاند
+- باز کردن پیوستهای ایمیل WPS وقتی Microsoft Works نصب ندارید
+- تبدیل بایگانی فایلهای WPS برای انتقال به یک سیستم اسناد مدرن
+- چاپ اسناد قدیمی که واژهپردازهای فعلی نمیتوانند آنها را باز کنند
+
+## نکتهها
+
+- فایلهای `.wps` مربوط به Microsoft Works را با فایلهای WPS Office اشتباه نگیرید. این ابزار مخصوص قالب قدیمیتر Microsoft Works است.
+- بارگذاری موتور LibreOffice در اولین استفاده کمی زمان میبرد. پس از بارگذاری، تبدیلهای بعدی در همان نشست سریعتر اجرا میشوند.
+
+## ابزارهای مرتبط
+
+- [WPD به PDF](./wpd-to-pdf)
+- [PUB به PDF](./pub-to-pdf)
diff --git a/docs/fa/tools/xml-to-pdf.md b/docs/fa/tools/xml-to-pdf.md
new file mode 100644
index 00000000..4574da44
--- /dev/null
+++ b/docs/fa/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML به PDF
+description: فایلهای XML را در مرورگر به اسناد PDF ساختاریافته تبدیل کنید. رایگان، خصوصی، بدون پردازش روی سرور.
+---
+
+# XML به PDF
+
+فایلهای دادهٔ XML را به اسناد PDF خوانا و ساختاریافته تبدیل کنید. XML خام قدرتمند است اما خواندن آن برای انسان دشوار است. این ابزار درخت XML را تجزیه میکند، ساختارهای دادهٔ تکرارشونده را شناسایی میکند و آنها را بهصورت جدولها و بخشهای قالببندیشده در یک PDF افقی A4 نمایش میدهد.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوند | توضیحات |
+| :--- | :----- | :------------------ |
+| XML | `.xml` | هر سند XML خوشساخت |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای XML خود را بکشید و رها کنید. چند فایل را میتوان در یک دسته پردازش کرد.
+2. فهرست فایلها را بررسی کنید. فایلهای ناخواسته را با نماد سطل زباله حذف کنید یا روی **افزودن فایلهای بیشتر** کلیک کنید.
+3. روی **تبدیل به PDF** کلیک کنید. ابزار ساختار XML را با DOMParser داخلی مرورگر تجزیه میکند، سلسلهمراتب داده را تحلیل میکند و آن را با jsPDF و قالببندی auto-table به PDF تبدیل میکند.
+4. یک فایل تکی بهصورت PDF دانلود میشود. چند تبدیل در `xml-to-pdf.zip` بستهبندی میشوند.
+
+## گزینهها
+
+به پیکربندی دستی نیازی نیست. مبدل ساختار XML را بهطور خودکار تشخیص میدهد و چیدمانهای جدول مناسب را انتخاب میکند. خروجی از جهت افقی A4 استفاده میکند تا مجموعهدادههای عریض جا شوند.
+
+## موارد استفاده
+
+- تبدیل خروجیهای دادهٔ XML از پایگاهدادهها یا APIها به گزارشهای قابل چاپ
+- ساخت خلاصههای خوانا از فایلهای پیکربندی XML
+- تبدیل فاکتورها یا لاگهای تراکنش مبتنی بر XML به PDF برای نگهداری سوابق
+- خوانا کردن نقشههای سایت XML یا خوراکهای RSS در قالب سند
+
+## نکتهها
+
+- XML باید خوشساخت باشد. اگر تجزیهگر با خطای نحوی روبهرو شود، تبدیل با یک پیام خطای توصیفی که به مشکل اشاره میکند ناموفق میشود.
+- ساختارهای XML با تودرتویی عمیق به جدولها تخت میشوند. برای بهترین نتیجه، داده باید عناصر همسطح تکرارشونده با عناصر فرزند یکسان داشته باشد.
+- در طول تبدیل، بهروزرسانیهای پیشرفت نمایش داده میشوند و هر مرحله را نشان میدهند: خواندن، تجزیه، تحلیل و رندر.
+
+## ابزارهای مرتبط
+
+- [FB2 به PDF](./fb2-to-pdf)
+- [XPS به PDF](./xps-to-pdf)
+- [ایمیل به PDF](./email-to-pdf)
diff --git a/docs/fa/tools/xps-to-pdf.md b/docs/fa/tools/xps-to-pdf.md
new file mode 100644
index 00000000..7e606357
--- /dev/null
+++ b/docs/fa/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS به PDF
+description: اسناد XPS و OXPS را در مرورگر به قالب PDF تبدیل کنید. بدون بارگذاری، بدون ثبتنام، کاملاً خصوصی.
+---
+
+# XPS به PDF
+
+اسناد Microsoft XPS و OXPS را به فایلهای PDF استاندارد تبدیل کنید. XPS (XML Paper Specification) پاسخ Microsoft به PDF بود، اما پشتیبانی از آن در پلتفرمهای مختلف کاهش یافته است. این ابزار این اسناد را دوباره برای همه خوانا میکند.
+
+## قالبهای پشتیبانیشده
+
+| قالب | پسوند | توضیحات |
+| :--- | :------ | :--------------------------------- |
+| XPS | `.xps` | قالب اصلی Microsoft XPS |
+| OXPS | `.oxps` | Open XPS، نسخهٔ استاندارد ECMA-388 |
+
+## نحوهٔ کار
+
+1. روی ناحیهٔ بارگذاری کلیک کنید یا فایلهای XPS/OXPS خود را بکشید و رها کنید. میتوانید چند فایل را همزمان انتخاب کنید.
+2. فهرست فایلها را بررسی کنید. فایلها را جداگانه با نماد سطل زباله حذف کنید یا روی **افزودن فایلهای بیشتر** کلیک کنید تا اسناد دیگری اضافه کنید.
+3. روی **تبدیل به PDF** کلیک کنید. موتور PyMuPDF هر سند را بهصورت محلی در مرورگر شما پردازش میکند.
+4. یک فایل تکی مستقیماً بهصورت PDF دانلود میشود. چند فایل در یک بایگانی ZIP با نام `xps-converted.zip` بستهبندی میشوند.
+
+## گزینهها
+
+این ابزار یک تبدیل مستقیم قالب را بدون پیکربندی اضافی انجام میدهد. خروجی ابعاد صفحه، گرافیکهای برداری، فونتها و تصاویر منبع XPS را حفظ میکند.
+
+## موارد استفاده
+
+- باز کردن فایلهای XPS دریافتی از سیستمهای قدیمی Windows که بهطور پیشفرض از درایور چاپ XPS استفاده میکردند
+- تبدیل اسناد OXPS از Windows 10/11 برای اشتراکگذاری با کاربران macOS یا Linux
+- بایگانی فایلهای قدیمی XPS در قالبی با پشتیبانی گستردهتر
+- دسترسپذیر کردن اسناد دولتی یا سازمانی مبتنی بر XPS برای گیرندگان خارجی
+
+## نکتهها
+
+- هر دو پسوند `.xps` و `.oxps` بهطور خودکار پردازش میشوند، بنابراین میتوانید آنها را در یک دسته ترکیب کنید.
+- اگر فایل XPS اصلی با یک درایور چاپ با وضوح بالا ایجاد شده باشد، PDF حاصل همان کیفیت را حفظ میکند. هیچ نمونهبرداری مجددی انجام نمیشود.
+
+## ابزارهای مرتبط
+
+- [Word به PDF](./word-to-pdf)
+- [XML به PDF](./xml-to-pdf)
diff --git a/docs/fr/contributing.md b/docs/fr/contributing.md
new file mode 100644
index 00000000..047c7a46
--- /dev/null
+++ b/docs/fr/contributing.md
@@ -0,0 +1,136 @@
+# Contribuer
+
+Merci de votre intérêt pour la contribution à BentoPDF ! Ce guide vous aidera à démarrer.
+
+## Premiers pas
+
+### Prérequis
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Installation
+
+```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
+```
+
+## Structure du projet
+
+```
+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
+```
+
+## Ajouter un nouvel outil
+
+### Étape 1 : créer le fichier de logique
+
+Créez `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
+});
+```
+
+### Étape 2 : créer la page HTML
+
+Créez `src/pages/your-tool.html` en suivant les modèles d'outils existants.
+
+### Étape 3 : enregistrer l'outil
+
+Ajoutez dans `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.',
+}
+```
+
+### Étape 4 : ajouter à la configuration de build
+
+Ajoutez la page dans `vite.config.ts` :
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Étape 5 : ajouter les traductions
+
+Ajoutez des entrées dans tous les fichiers de langue de `public/locales/` :
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Style de code
+
+- Utilisez TypeScript pour tout nouveau code
+- Suivez les conventions existantes pour rester cohérent
+- Exécutez `npm run format` avant de commiter
+- Pas de commentaires dans le code de production (les commentaires sont supprimés lors du build)
+
+## Processus de pull request
+
+1. Créez une branche de fonctionnalité : `git checkout -b feature/your-feature`
+2. Effectuez vos modifications
+3. Testez soigneusement : `npm run build`
+4. Soumettez une PR avec une description claire
+
+## Traduction
+
+Consultez [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) pour ajouter de nouvelles langues.
+
+## Contrat de licence de contributeur
+
+Avant que votre PR puisse être fusionnée, vous devrez signer notre CLA :
+
+- [CLA individuel (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [CLA d'entreprise (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Obtenir de l'aide
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Communauté Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Licence
+
+BentoPDF est sous double licence :
+
+- **AGPL-3.0** pour les projets open source où vous partagez publiquement l'intégralité de votre code source
+- **Licence commerciale** pour les applications propriétaires ou à code source fermé - [Obtenir la licence à vie pour 79 $](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+En contribuant, vous acceptez que vos contributions soient placées sous ces conditions de licence.
diff --git a/docs/fr/getting-started.md b/docs/fr/getting-started.md
new file mode 100644
index 00000000..a7dfcd9d
--- /dev/null
+++ b/docs/fr/getting-started.md
@@ -0,0 +1,80 @@
+# Premiers pas
+
+Bienvenue sur BentoPDF ! Ce guide vous aidera à démarrer rapidement.
+
+## Qu'est-ce que BentoPDF ?
+
+BentoPDF est une boîte à outils PDF gratuite, open source et axée sur la confidentialité, qui fonctionne **entièrement dans votre navigateur**. Vos fichiers ne quittent jamais votre appareil : tout le traitement se fait en local grâce à la technologie WebAssembly (WASM).
+
+## Démarrage rapide
+
+### Option 1 : utiliser la version hébergée
+
+Rendez-vous sur [bentopdf.com](https://www.bentopdf.com) pour utiliser BentoPDF immédiatement, sans aucune installation.
+
+### Option 2 : auto-hébergement avec Docker
+
+> [!IMPORTANT]
+> La conversion de fichiers Office nécessite `SharedArrayBuffer`, qui requiert à la fois :
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - un contexte sécurisé
+>
+> `http://localhost` fonctionne pour les tests locaux, car les navigateurs considèrent le bouclage local comme fiable. `http://192.168.x.x` ou d'autres adresses IP du réseau local ne le sont généralement pas, donc les conversions Word/Excel/PowerPoint nécessiteront HTTPS lorsqu'on y accède depuis d'autres appareils de votre réseau.
+
+```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 est proposé en deux versions : la **version auto-hébergée** (`bentopdf-simple`, utilisée ci-dessus) pour les déploiements internes, d'équipe ou d'organisation, et la **version commerciale** (`bentopdf:latest`) utilisée par bentopdf.com lui-même et par les détenteurs d'une licence commerciale qui exploitent des déploiements publics. Les deux proposent les mêmes outils PDF : la version commerciale ajoute la section d'en-tête, la FAQ, les témoignages et le pied de page de bentopdf.com. En cas de doute, utilisez la version auto-hébergée.
+
+Ouvrez ensuite `http://localhost:3000` dans votre navigateur.
+
+> [!NOTE]
+> Si vous préparez un déploiement OCR isolé du réseau (air-gapped), vous devez héberger en interne les polices de la couche de texte OCR, en plus du worker Tesseract, du runtime principal et des fichiers traineddata. La configuration complète est documentée dans [Auto-hébergement](/fr/self-hosting/), y compris `VITE_OCR_FONT_BASE_URL` et le dossier `ocr-fonts/` fourni.
+
+### Option 3 : compiler depuis les sources
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Aperçu des fonctionnalités
+
+| Catégorie | Outils |
+| ------------------------ | -------------------------------------------------------------------------- |
+| **Convertir en PDF** | Word, Excel, PowerPoint, images, Markdown, EPUB, MOBI et plus encore |
+| **Convertir depuis PDF** | JPG, PNG, texte, Excel, SVG et plus encore |
+| **Modifier et annoter** | Signer, surligner, caviarder, remplir des formulaires, ajouter des tampons |
+| **Organiser** | Fusionner, diviser, pivoter, supprimer des pages, réorganiser |
+| **Optimiser** | Compresser, réparer, aplatir, OCR |
+| **Sécurité** | Chiffrer, déchiffrer, supprimer les restrictions |
+
+## Prise en charge des navigateurs
+
+BentoPDF fonctionne mieux sur les navigateurs modernes :
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Étapes suivantes
+
+- [Explorer tous les outils](/fr/tools/)
+- [Auto-héberger BentoPDF](/fr/self-hosting/)
+- [Contribuer au projet](/fr/contributing)
diff --git a/docs/fr/index.md b/docs/fr/index.md
new file mode 100644
index 00000000..2b2c896a
--- /dev/null
+++ b/docs/fr/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Outils PDF gratuits et open source'
+ tagline: Traitez vos PDF entièrement dans votre navigateur. Aucun envoi. Aucun serveur. Confidentialité totale.
+ actions:
+ - theme: brand
+ text: Commencer
+ link: /fr/getting-started
+ - theme: alt
+ text: Voir les outils
+ link: /fr/tools/
+ - theme: alt
+ text: Auto-héberger
+ link: /fr/self-hosting/
+ - theme: alt
+ text: Licence commerciale
+ link: /fr/licensing
+
+features:
+ - icon: 🔒
+ title: 100 % privé
+ details: Vos fichiers ne quittent jamais votre appareil. Tout le traitement se fait en local dans votre navigateur grâce à WebAssembly.
+ - icon: ⚡
+ title: Rapide et gratuit
+ details: Sans inscription, sans limites, sans filigranes. Traitez autant de PDF que vous voulez, gratuitement, pour toujours.
+ - icon: 🛠️
+ title: Plus de 50 outils
+ details: Convertissez, modifiez, fusionnez, divisez, compressez, signez, appliquez l'OCR et bien plus. Tout ce dont vous avez besoin au même endroit.
+
+ - icon: 🌐
+ title: Auto-hébergeable
+ details: Déployez sur votre propre infrastructure. Docker, Vercel, Netlify, AWS, ou environnements totalement isolés du réseau avec workers OCR, données de langue et polices de couche de texte auto-hébergés.
+---
+
+## OCR hors ligne
+
+Si vous auto-hébergez BentoPDF dans un environnement isolé du réseau ou hors ligne, l'OCR nécessite plus que le worker Tesseract et les fichiers traineddata. La production de PDF avec texte recherchable exige aussi que les polices de la couche de texte OCR soient servies en interne.
+Consultez [Auto-hébergement](/fr/self-hosting/) pour la configuration complète, y compris `VITE_OCR_FONT_BASE_URL`, le dossier `ocr-fonts/` fourni et le workflow isolé mis à jour.
diff --git a/docs/fr/licensing.md b/docs/fr/licensing.md
new file mode 100644
index 00000000..3c332bb6
--- /dev/null
+++ b/docs/fr/licensing.md
@@ -0,0 +1,110 @@
+# 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](/fr/self-hosting/#configuration-wasm-composants-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/fr/self-hosting/apache.md b/docs/fr/self-hosting/apache.md
new file mode 100644
index 00000000..5db56a34
--- /dev/null
+++ b/docs/fr/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Déployer avec Apache
+
+Hébergez BentoPDF avec Apache HTTP Server.
+
+## Prérequis
+
+- Apache 2.4+
+- mod_rewrite activé
+- Certificat SSL (recommandé)
+
+## Étape 1 : compiler le projet
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Pour personnaliser l'image de marque, définissez des variables d'environnement avant la compilation :
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Étape 2 : copier les fichiers
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Étape 3 : configuration d'Apache
+
+Créez `/etc/apache2/sites-available/bentopdf.conf` :
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Étape 4 : .htaccess pour le routage
+
+Créez `/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
+```
+
+## Étape 5 : activer les modules requis
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Étape 6 : activer le site
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Déploiement dans un sous-répertoire
+
+Pour héberger sous `/pdf/` :
+
+1. Compilez avec l'URL de base :
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Mettez à jour `.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
+```
+
+## Dépannage
+
+### Erreurs 404 sur les fichiers WASM
+
+Vérifiez que le type MIME est configuré :
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Signer un PDF ou le remplissage de formulaires affiche un visualiseur vide (erreur MIME `.mjs`)
+
+Si la console du navigateur affiche :
+
+```
+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.
+```
+
+…et que la requête en échec se termine par `.mjs`, il manque à votre configuration Apache l'association `.mjs → application/javascript`. Le visualiseur PDF fourni livre des modules ES avec l'extension `.mjs`, et le fichier `mime.types` standard d'Apache ne les inclut pas par défaut.
+
+Ajoutez à votre VirtualHost ou à `.htaccess` :
+
+```apache
+AddType application/javascript .mjs
+```
+
+Rechargez ensuite Apache :
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Pour vérifier : dans les DevTools du navigateur → onglet Réseau, trouvez la requête `.mjs` en échec et consultez l'en-tête de réponse `Content-Type`. Il doit maintenant valoir `application/javascript`, et non `application/octet-stream`.
+
+### La réécriture ne fonctionne pas
+
+Vérifiez que mod_rewrite est activé :
+
+```bash
+sudo a2enmod rewrite
+```
+
+### La conversion Word/ODT/Excel vers PDF ne fonctionne pas
+
+LibreOffice WASM nécessite `SharedArrayBuffer`, qui exige ces en-têtes :
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Un contexte sécurisé est également nécessaire. `http://localhost` fonctionne pour les tests locaux, mais `http://192.168.x.x` ou d'autres adresses IP du réseau local nécessitent généralement HTTPS. Si les en-têtes sont présents mais que `window.crossOriginIsolated` vaut toujours `false`, vérifiez si la page est ouverte en HTTP simple sur une origine autre que le bouclage local.
+
+Les fichiers précompressés `.wasm.gz` et `.data.gz` ont aussi besoin du bon `Content-Encoding` :
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Vérifiez que `mod_headers` est activé : `sudo a2enmod headers`
+
+### Permission refusée
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/fr/self-hosting/aws.md b/docs/fr/self-hosting/aws.md
new file mode 100644
index 00000000..a7004065
--- /dev/null
+++ b/docs/fr/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Déployer sur AWS S3 + CloudFront
+
+Hébergez BentoPDF sur AWS pour un contrôle et une évolutivité maximaux.
+
+## Architecture
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Étape 1 : créer le bucket S3
+
+```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
+```
+
+## Étape 2 : compiler et téléverser
+
+```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
+```
+
+## Étape 3 : créer la distribution CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Ou utilisez la console AWS :
+
+1. Allez dans CloudFront → Create distribution
+2. Origin domain : sélectionnez votre bucket S3
+3. Activez « Origin Access Control »
+4. Default root object : `index.html`
+5. Créez la distribution
+
+## Étape 3b : politique d'en-têtes de réponse (requise pour LibreOffice WASM)
+
+Les conversions basées sur LibreOffice (Word, Excel, PowerPoint vers PDF) nécessitent `SharedArrayBuffer`, qui exige des en-têtes de réponse spécifiques. Créez une politique d'en-têtes de réponse CloudFront :
+
+1. Allez dans CloudFront → Policies → Response headers
+2. Créez une politique personnalisée avec ces en-têtes :
+
+| Header | Value |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Associez la politique au comportement de cache par défaut de votre distribution
+
+Ou via la 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}
+ ]
+ }
+ }'
+```
+
+## Étape 3c : métadonnées S3 pour les fichiers WASM précompressés
+
+Les fichiers WASM de LibreOffice sont précompressés (`.wasm.gz`, `.data.gz`). Définissez le bon Content-Type et le bon Content-Encoding pour que les navigateurs les décompressent :
+
+```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 Important
+Sans la politique d'en-têtes de réponse, `SharedArrayBuffer` n'est pas disponible et les conversions LibreOffice WASM resteront bloquées à environ 55 %. Sans le bon Content-Encoding sur les fichiers `.gz`, le navigateur reçoit des octets gzip bruts et la compilation WASM échoue.
+:::
+
+## Étape 4 : politique du bucket S3
+
+Autorisez CloudFront à accéder au 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Étape 5 : pages d'erreur personnalisées
+
+Configurez la 404 pour renvoyer `index.html` afin de gérer le routage SPA :
+
+1. CloudFront → Error pages
+2. Créez une réponse d'erreur personnalisée :
+ - HTTP error code : 404
+ - Response page path : `/index.html`
+ - HTTP response code : 200
+
+## Estimation des coûts
+
+| Ressource | Coût estimé |
+| ----------------------------- | ------------ |
+| Stockage S3 (~500 Mo) | ~0,01 $/mois |
+| CloudFront (1 To transféré) | ~85 $/mois |
+| CloudFront (10 Go transférés) | ~0,85 $/mois |
+
+::: tip
+Utilisez S3 Intelligent Tiering pour optimiser les coûts des fichiers rarement consultés.
+:::
+
+## Automatisation avec 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"
+ }
+}
+```
diff --git a/docs/fr/self-hosting/cloudflare.md b/docs/fr/self-hosting/cloudflare.md
new file mode 100644
index 00000000..47bfca85
--- /dev/null
+++ b/docs/fr/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Déployer sur Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) propose un hébergement de sites statiques rapide et mondial, avec une bande passante illimitée.
+
+## Déploiement rapide
+
+1. Allez sur [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Cliquez sur « Create a project »
+3. Connectez votre dépôt GitHub
+
+## Configuration du build
+
+| Paramètre | Valeur |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Variables d'environnement
+
+Ajoutez-les dans Settings → Environment variables :
+
+| Variable | Valeur |
+| ----------------------- | ---------------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (facultatif) |
+| `VITE_BRAND_NAME` | Nom de marque personnalisé (facultatif) |
+| `VITE_BRAND_LOGO` | Chemin du logo relatif à `public/` (facultatif) |
+| `VITE_FOOTER_TEXT` | Texte de pied de page/copyright personnalisé (facultatif) |
+| `VITE_DEFAULT_LANGUAGE` | Langue par défaut de l'interface, p. ex. `fr` (facultatif) |
+
+## Fichier de configuration
+
+Créez `_headers` dans votre dossier `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 Important
+Les en-têtes `Cross-Origin-Embedder-Policy` et `Cross-Origin-Opener-Policy` sont requis pour les conversions Word/ODT/Excel/PowerPoint vers PDF. Sans eux, `SharedArrayBuffer` n'est pas disponible et le moteur LibreOffice WASM ne parviendra pas à s'initialiser.
+:::
+
+Créez `_redirects` pour le routage SPA :
+
+```
+/* /index.html 200
+```
+
+## Domaine personnalisé
+
+1. Ouvrez votre projet Pages
+2. Cliquez sur « Custom domains »
+3. Ajoutez votre domaine
+4. Cloudflare configurera automatiquement le DNS si le domaine est chez Cloudflare
+
+## Avantages
+
+- **Bande passante illimitée et gratuite**
+- **CDN mondial** avec plus de 300 points de présence
+- **HTTPS automatique**
+- **Déploiements de prévisualisation** pour les pull requests
+- **Builds rapides**
+
+## Dépannage
+
+### Téléversement de gros fichiers
+
+Cloudflare Pages prend en charge les fichiers jusqu'à 25 Mo. Les modules WASM ne devraient pas poser de problème, mais si vous atteignez les limites, envisagez :
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Limites de taille des Workers
+
+Si vous utilisez Cloudflare Workers pour un routage avancé, notez la limite de 1 Mo des offres gratuites.
+
+## Worker proxy CORS (pour les signatures numériques)
+
+L'outil de signature numérique nécessite un proxy CORS pour récupérer les chaînes de certificats. Déployez le worker fourni :
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Fonctionnalités de sécurité
+
+| Fonctionnalité | Description |
+| -------------------------- | --------------------------------------------- |
+| **Restrictions d'URL** | Seules les URL de certificats sont autorisées |
+| **Limite de taille** | 10 Mo max par requête |
+| **Limitation de débit** | 60 req/IP/min (nécessite KV) |
+| **Blocage des IP privées** | Bloque localhost et les IP internes |
+
+### Activer la limitation de débit
+
+```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
+```
+
+### Compiler avec l'URL du proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Ou avec 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 .
+```
+
+> **Remarque :** Consultez le [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) pour la configuration de la signature HMAC.
diff --git a/docs/fr/self-hosting/cors-proxy.md b/docs/fr/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..efc8d7ca
--- /dev/null
+++ b/docs/fr/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# Proxy CORS pour la récupération des certificats
+
+L'outil de signature numérique utilise un proxy CORS pour récupérer les certificats des émetteurs auprès d'autorités de certification (AC) externes. C'est nécessaire, car de nombreux serveurs d'AC n'incluent pas d'en-têtes CORS dans leurs réponses, ce qui empêche la récupération directe depuis le navigateur.
+
+De plus, de nombreux serveurs d'AC diffusent leurs certificats en HTTP simple. Lorsque votre instance BentoPDF est servie en HTTPS, les navigateurs bloquent ces requêtes HTTP (politique de contenu mixte). Le proxy CORS résout ces deux problèmes en faisant transiter les requêtes par un point de terminaison HTTPS avec les bons en-têtes.
+
+## Fonctionnement
+
+Lors de la signature d'un PDF avec un certificat :
+
+1. La bibliothèque `zgapdfsigner` tente de construire une chaîne de certificats complète
+2. Elle récupère les certificats des émetteurs à partir des URL intégrées à l'extension AIA (Authority Information Access) de votre certificat
+3. Ces requêtes passent par un proxy CORS qui ajoute les en-têtes `Access-Control-Allow-Origin` nécessaires
+4. Le proxy renvoie les données du certificat au navigateur
+
+## Auto-héberger le proxy CORS
+
+Si vous auto-hébergez BentoPDF, vous devrez déployer votre propre proxy CORS pour que les signatures numériques fonctionnent avec les certificats qui nécessitent la récupération de la chaîne.
+
+### Option 1 : Cloudflare Workers (recommandé)
+
+1. **Installez la CLI Wrangler** :
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Connectez-vous à Cloudflare** :
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clonez BentoPDF et mettez à jour les origines autorisées** :
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Ouvrez `cors-proxy-worker.js` et remplacez le tableau `ALLOWED_ORIGINS` par votre domaine :
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Important
+ Sans cette modification, le proxy rejettera toutes les requêtes de votre site avec une erreur **403 Forbidden**. Par défaut, seules les requêtes provenant de `bentopdf.com` sont autorisées.
+ :::
+
+4. **Déployez le proxy** :
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Notez l'URL de votre worker (p. ex. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Recompilez BentoPDF avec l'URL du proxy** :
+
+ Avec 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 .
+ ```
+
+ Avec une compilation depuis les sources :
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Option 2 : proxy backend personnalisé
+
+Vous pouvez aussi créer votre propre point de terminaison proxy. Les exigences sont les suivantes :
+
+1. Accepter les requêtes GET avec un paramètre de requête `url`
+2. Récupérer l'URL depuis votre serveur (aucune restriction CORS côté serveur)
+3. Renvoyer la réponse avec ces en-têtes :
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Exemple d'implémentation avec 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' });
+ }
+});
+```
+
+## Considérations de sécurité
+
+Le Cloudflare Worker fourni intègre plusieurs mesures de sécurité :
+
+| Fonctionnalité | Description |
+| --------------------------- | ----------------------------------------------------------------------------------------------- |
+| **Validation de l'origine** | Autorise uniquement les requêtes des domaines listés dans `ALLOWED_ORIGINS` |
+| **Restrictions d'URL** | Autorise uniquement les URL de certificats (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blocage des IP privées** | Bloque les plages privées IPv4/IPv6, link-local, bouclage, IP décimales et métadonnées cloud |
+| **Sûreté du Content-Type** | Ne renvoie que des types MIME de certificat sûrs, bloque l'injection de content-type en amont |
+| **Limite de taille** | Réponse en flux limitée à 10 Mo, interrompue en cours de téléchargement en cas de dépassement |
+| **Limitation de débit** | 60 requêtes par minute par IP ou IPv6 /64 (nécessite KV, laisse passer en cas d'erreur KV) |
+| **Signatures HMAC** | Signature côté client facultative (dissuade les abus occasionnels) |
+
+### DNS rebinding (auto-hébergement hors Cloudflare)
+
+Le worker rejette toute URL qui se résout vers une IP privée ou interne. Il ne peut pas utiliser une liste fixe d'hôtes autorisés, car les URL des chaînes de certificats pointent vers l'AC qui a émis le certificat (FNMT, AC d'entreprise, etc.), donc les destinations ne sont pas connues à l'avance. Il reste une petite fenêtre de rebinding : une personne qui gère le DNS de son propre domaine pourrait renvoyer une IP publique lors du contrôle de sécurité, puis une IP privée pour la vraie requête un instant plus tard.
+
+Sur Cloudflare, ce n'est pas exploitable : les Workers ne peuvent pas atteindre les IP privées ni le point de terminaison de métadonnées `169.254.169.254`, donc un rebinding n'aboutit à rien. Ne donnez simplement pas au worker de voie d'accès : n'associez ni Tunnel, ni Service, ni binding de réseau privé (il n'a besoin que de `RATE_LIMIT_KV`).
+
+Si vous l'exécutez hors de Cloudflare (workerd, Node, etc.) dans un VPC, le runtime _peut_ atteindre les IP internes. Placez un pare-feu de sortie devant lui et bloquez les plages privées : `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` et leurs équivalents IPv6. Le code de l'application ne peut pas l'imposer une fois hors de Cloudflare.
+
+## Désactiver le proxy
+
+Si vous ne souhaitez pas utiliser de proxy CORS, définissez la variable d'environnement sur une chaîne vide :
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Remarque** : sans le proxy, la signature avec des certificats qui nécessitent la récupération externe de la chaîne (comme FNMT ou certaines AC d'entreprise) échouera avec une erreur « Failed to fetch ».
+
+## Dépannage
+
+### « Signing error: TypeError: Failed to fetch »
+
+Cela signifie généralement :
+
+1. **Aucun proxy CORS configuré** : définissez `VITE_CORS_PROXY_URL` et recompilez
+2. **Contenu mixte bloqué** : votre site est en HTTPS mais l'URL de l'émetteur du certificat est en HTTP. Le proxy CORS résout ce problème.
+3. **Le proxy CORS rejette votre origine** : vérifiez que votre domaine figure dans le tableau `ALLOWED_ORIGINS` de `cors-proxy-worker.js`
+
+### « 403 Forbidden » renvoyé par le proxy
+
+Votre domaine ne figure pas dans la liste `ALLOWED_ORIGINS`. Modifiez `cors-proxy-worker.js` :
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Redéployez ensuite : `npx wrangler deploy`
+
+### Tester le proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certificats qui fonctionnent sans proxy
+
+Certains certificats incluent la chaîne complète dans le fichier P12/PFX et ne nécessitent pas de récupération externe :
+
+- Certificats auto-signés
+- Certaines AC commerciales qui regroupent les certificats intermédiaires
+- Certificats que vous avez assemblés manuellement avec la chaîne complète
diff --git a/docs/fr/self-hosting/docker.md b/docs/fr/self-hosting/docker.md
new file mode 100644
index 00000000..10c70e0a
--- /dev/null
+++ b/docs/fr/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Déployer avec Docker / Podman
+
+Le moyen le plus simple d'auto-héberger BentoPDF en production.
+
+> [!IMPORTANT]
+> **En-têtes requis pour la conversion de fichiers Office**
+>
+> Les outils basés sur LibreOffice (conversion Word, Excel, PowerPoint) nécessitent ces en-têtes HTTP pour la prise en charge de `SharedArrayBuffer` :
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> La page doit aussi être servie depuis un contexte sécurisé. `http://localhost` fonctionne pour les tests locaux, mais `http://192.168.x.x` ou d'autres adresses IP du réseau local n'en font généralement pas partie : la conversion Office en HTTP simple échouera donc, même si les en-têtes sont présents.
+>
+> Les images de conteneur officielles incluent ces en-têtes. Si vous utilisez un reverse proxy (Traefik, Caddy, etc.), assurez-vous que ces en-têtes sont conservés ou ajoutés, et utilisez HTTPS pour tout accès hors bouclage local.
+
+> [!TIP]
+> **Utilisateurs de Podman :** toutes les commandes `docker` fonctionnent avec Podman en remplaçant `docker` par `podman` et `docker-compose` par `podman-compose`.
+
+## Démarrage rapide
+
+> [!TIP]
+> BentoPDF est proposé en deux versions :
+>
+> - **Version auto-hébergée** : `ghcr.io/alam00000/bentopdf-simple:latest`. Tous les outils PDF, **sans** l'habillage marketing (ni section d'en-tête, ni FAQ, ni témoignages, ni pied de page). À utiliser pour les déploiements internes, d'équipe ou d'organisation. Ce n'est **pas** une version « allégée » aux fonctionnalités réduites.
+> - **Version commerciale** : `ghcr.io/alam00000/bentopdf:latest`. Le site marketing complet, utilisé par bentopdf.com lui-même et par les détenteurs d'une licence commerciale qui exploitent des déploiements publics.
+>
+> En cas de doute : récupérez la version auto-hébergée.
+
+```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
+
+Créez `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
+```
+
+Exécutez :
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Construire votre propre image
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Construisez et exécutez :
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Variables d'environnement
+
+| Variable | Description | Par défaut |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Compile la variante auto-hébergée (masque l'habillage marketing de bentopdf.com : section d'en-tête, FAQ, témoignages, pied de page). Tous les outils PDF restent disponibles. | `false` |
+| `BASE_URL` | Déployer dans un sous-répertoire | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL du module WASM PyMuPDF | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL du module WASM Ghostscript | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL du module WASM CoherentPDF | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL du script worker OCR | _(vide ; CDN par défaut de Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Dossier du runtime principal OCR | _(vide ; CDN par défaut de Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Dossier des fichiers traineddata OCR | _(vide ; CDN par défaut de Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Langues OCR séparées par des virgules affichées dans l'interface | _(vide ; catalogue complet affiché)_ |
+| `VITE_OCR_FONT_BASE_URL` | Dossier des polices de la couche de texte OCR | _(vide ; URL de polices Noto distantes)_ |
+| `VITE_DEFAULT_LANGUAGE` | Langue par défaut de l'interface | `en` |
+| `VITE_BRAND_NAME` | Nom de marque personnalisé | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Chemin du logo relatif à `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Texte de pied de page/copyright personnalisé | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | ID d'outils séparés par des virgules à masquer | _(vide ; tous les outils activés)_ |
+| `DISABLE_GITHUB_STARS` | Ignore la récupération du nombre d'étoiles GitHub au chargement de la page et retire `api.github.com` de la CSP. Les builds en Simple Mode l'ignorent toujours. | `false` |
+| `SITE_URL` | URL publique écrite dans les liens canonical, hreflang et sitemap. Laissez la valeur par défaut, sauf si vous voulez que les moteurs de recherche traitent votre déploiement comme un site à part entière. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Avec un `SITE_URL` personnalisé, chaque page est marquée `noindex` pour que votre copie ne concurrence pas bentopdf.com dans les résultats de recherche. Définissez `true` pour autoriser l'indexation par les moteurs de recherche. | `false` |
+| `COMPRESSION_MODE` | Copies précompressées enregistrées à côté de chaque fichier : `o` aucune, `g` `.gz` (servies par le nginx de l'image), `b` `.br`, `all` les deux. Le nginx de l'image ne peut pas servir `.br`. | `o` |
+
+Les URL des modules WASM sont préconfigurées avec des valeurs CDN par défaut : toutes les fonctionnalités avancées fonctionnent sans configuration. Remplacez-les pour les déploiements isolés du réseau ou auto-hébergés.
+
+### Moteurs de recherche
+
+Par défaut, chaque page indique aux moteurs de recherche que bentopdf.com est l'original, afin que votre déploiement n'apparaisse pas comme un doublon. Vous n'avez rien à changer pour une instance privée ou interne.
+
+- **Exclure totalement votre instance des résultats de recherche :** lancez le conteneur avec `-e ROBOTS_NOINDEX=true`. Un simple redémarrage suffit, sans recompilation.
+- **Faire de votre instance un site à part entière dans les résultats de recherche :** compilez avec `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Sans `ALLOW_INDEXING=true`, un `SITE_URL` personnalisé marque chaque page `noindex`.
+
+### Content-Security-Policy
+
+L'image nginx est livrée avec un en-tête `Content-Security-Policy` appliqué. Les directives `script-src`, `connect-src` et `font-src` de la CSP sont **générées à la compilation** à partir des variables d'URL `VITE_*` ci-dessus : tous les hôtes que vous passez via `--build-arg` sont automatiquement ajoutés à la politique.
+
+En conséquence :
+
+- Si vous remplacez `VITE_CORS_PROXY_URL` ou `VITE_WASM_*_URL` à la compilation, la CSP autorise automatiquement ces origines, sans configuration supplémentaire.
+- Pour les URL sur `cdn.jsdelivr.net`, `script-src` n'autorise que le dossier exact du paquet versionné, par exemple `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, et non tout le CDN. jsDelivr sert n'importe quel paquet npm public ou dépôt GitHub : autoriser tout l'hôte permettrait à chacun de s'exécuter sur votre instance. Les URL sur tout autre hôte sont autorisées par origine.
+- Si vous configurez des URL WASM personnalisées _à l'exécution_ via la page Paramètres avancés de l'application, ces origines ne figurent **pas** dans la CSP et le navigateur bloquera les requêtes vers elles. Cela s'applique aussi à une autre version du même paquet sur `cdn.jsdelivr.net`, car seule la version définie à la compilation est autorisée. La configuration à l'exécution est prévue pour l'expérimentation ; pour des URL personnalisées permanentes, définissez l'argument de build `VITE_*` correspondant.
+- Dans les déploiements isolés du réseau qui remplacent les trois valeurs `VITE_WASM_*_URL`, ces dossiers de paquets `cdn.jsdelivr.net` sont aussi retirés de la CSP (chaque valeur par défaut est remplacée, pas complétée). Les valeurs par défaut de Tesseract OCR sur `cdn.jsdelivr.net` restent dans la politique tant que vous ne définissez pas aussi les trois valeurs `VITE_TESSERACT_*`. De même, définir `VITE_CORS_PROXY_URL` remplace la valeur publique par défaut `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+La CSP inclut `'unsafe-eval'` dans `script-src`, car le runtime LibreOffice WASM (utilisé par les outils de conversion Word/Excel/PowerPoint) et la bibliothèque d'images wasm-vips (utilisée par PDF vers TIFF) compilent du code de dispatch interne via `new Function()`. Le supprimer casserait ces outils. Si vous compilez en `SIMPLE_MODE` (sans LibreOffice) et n'avez pas besoin de PDF vers TIFF, vous pouvez modifier manuellement le fichier `security-headers.conf` généré pour retirer `'unsafe-eval'` et obtenir une politique plus stricte.
+
+Pour l'OCR, laissez les variables `VITE_TESSERACT_*` vides afin d'utiliser les ressources en ligne par défaut, ou définissez les trois ensemble pour un OCR auto-hébergé/hors ligne. Les remplacements OCR partiels sont refusés, car le worker, le runtime principal et le dossier traineddata doivent correspondre. Pour une production de PDF avec texte recherchable entièrement hors ligne, définissez aussi `VITE_OCR_FONT_BASE_URL` afin que les polices de la couche de texte OCR soient chargées depuis votre serveur interne plutôt que depuis les URL publiques des polices Noto.
+
+`VITE_DEFAULT_LANGUAGE` définit la langue de l'interface pour les nouveaux visiteurs. Valeurs prises en charge : `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Les utilisateurs peuvent toujours changer de langue : cela ne modifie que la valeur par défaut.
+
+Exemple :
+
+```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
+```
+
+### Image de marque personnalisée
+
+Remplacez le logo, le nom et le texte de pied de page par défaut de BentoPDF par les vôtres. Placez votre fichier de logo dans le dossier `public/` (ou utilisez une image existante), puis passez les variables de marque à la compilation :
+
+```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 .
+```
+
+La personnalisation fonctionne en mode complet comme en Simple Mode, et peut se combiner avec toutes les autres options de compilation.
+
+### Désactiver des outils spécifiques
+
+Masquez des outils de l'interface pour des exigences de conformité ou de sécurité. Les outils désactivés sont retirés de la page d'accueil, des résultats de recherche, des raccourcis clavier et du créateur de workflows. L'accès direct par URL affiche une page « outil indisponible ».
+
+Les ID d'outils correspondent à l'URL de la page sans `.html`. Par exemple, si l'outil se trouve à `bentopdf.com/edit-pdf.html`, l'ID est `edit-pdf`.
+
+#### Trouver les ID d'outils
+
+Le plus simple : ouvrez n'importe quel outil dans BentoPDF et regardez l'URL. La dernière partie du chemin (sans `.html`) est l'ID de l'outil.
+
+
+Liste complète des ID d'outils
+
+**Éditer et annoter :** `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`
+
+**Convertir en 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`
+
+**Convertir depuis 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`
+
+**Organiser et gérer :** `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`
+
+**Optimiser et réparer :** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Sécurité :** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Option 1 : à la compilation (argument de build Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Cela intègre la liste des outils désactivés dans le bundle JavaScript. Une recompilation est nécessaire pour la modifier.
+
+#### Option 2 : à l'exécution (config.json)
+
+Montez un fichier `config.json` dans le répertoire servi, sans recompilation :
+
+```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
+```
+
+Ou avec 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
+```
+
+Les deux méthodes peuvent être combinées : les listes sont fusionnées. Si un outil figure dans l'une ou l'autre, il est désactivé.
+
+#### Désactiver des fonctionnalités de l'éditeur
+
+Vous pouvez aussi désactiver des fonctionnalités précises de l'éditeur PDF (p. ex. caviardage, annotations, formulaires) sans désactiver l'outil d'édition entier. Ajoutez `editorDisabledCategories` à votre `config.json` :
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Liste complète des catégories de l'éditeur
+
+**Zoom :** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Annotation :** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Formes :** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Mesure :** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formulaire :** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Caviardage :** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Document :** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Page :** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panneau :** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Outils :** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Sélection :** `selection`, `selection-copy`
+
+**Historique :** `history`, `history-undo`, `history-redo`
+
+
+
+Les catégories sont hiérarchiques : désactiver un parent (p. ex. `annotation`) désactive tous ses enfants.
+
+### Désactiver le compteur d'étoiles GitHub
+
+La barre de navigation affiche le nombre d'étoiles GitHub en direct, récupéré depuis `api.github.com` au chargement de la page. C'est la seule requête externe qui ne sert pas une fonctionnalité PDF. Désactivez-la à la compilation pour retirer le code de récupération du bundle et supprimer `api.github.com` de la Content-Security-Policy :
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Les builds en Simple Mode (`bentopdf-simple`) ignorent toujours le compteur d'étoiles : cette option n'est utile que pour la version commerciale ou les builds complets personnalisés.
+
+### URL WASM personnalisées (isolé du réseau / auto-hébergé)
+
+> [!IMPORTANT]
+> Les URL WASM sont intégrées au JavaScript **à la compilation**. Les fichiers WASM sont téléchargés par le **navigateur de l'utilisateur** à l'exécution : Docker ne les télécharge pas pendant le build. Pour les réseaux isolés, vous devez héberger les fichiers WASM sur un serveur interne accessible aux navigateurs.
+
+**Workflow complet pour un réseau isolé :**
+
+```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
+```
+
+Utilisez pour `--ocr-languages` les codes affichés par `bash scripts/prepare-airgap.sh --list-ocr-languages`, ou cherchez par nom avec `bash scripts/prepare-airgap.sh --search-ocr-language `. Lorsque vous compilez avec un sous-ensemble OCR restreint, passez les mêmes codes à `VITE_TESSERACT_AVAILABLE_LANGUAGES` afin que l'application n'affiche que les langues incluses. Pour une sortie OCR entièrement hors ligne, hébergez aussi le dossier `ocr-fonts/` fourni et pointez `VITE_OCR_FONT_BASE_URL` vers lui.
+
+Définissez une variable sur une chaîne vide pour désactiver ce module (les utilisateurs devront le configurer manuellement via les Paramètres avancés).
+
+## Port personnalisé
+
+Par défaut, BentoPDF écoute sur le port `8080` à l'intérieur du conteneur. Pour le modifier, définissez la variable d'environnement `PORT` à l'exécution :
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variable | Description | Par défaut |
+| -------- | ------------------------------------- | ---------- |
+| `PORT` | Port d'écoute Nginx dans le conteneur | `8080` |
+
+Cela fonctionne avec le Dockerfile standard comme avec le Dockerfile nonroot.
+
+## ID utilisateur personnalisé (PUID/PGID)
+
+Pour les environnements qui exigent une exécution sous un utilisateur non root précis (NAS, Kubernetes avec contextes de sécurité, politiques d'organisation), BentoPDF fournit un Dockerfile distinct avec prise en charge PUID/PGID de style LSIO.
+
+### Construire et exécuter
+
+```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
+```
+
+### Variables d'environnement
+
+| Variable | Description | Par défaut |
+| -------------- | -------------------------- | ---------- |
+| `PUID` | ID utilisateur d'exécution | `1000` |
+| `PGID` | ID de groupe d'exécution | `1000` |
+| `PORT` | Port d'écoute Nginx | `8080` |
+| `DISABLE_IPV6` | Désactiver l'écoute 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
+```
+
+### Fonctionnement
+
+Le conteneur démarre en root, crée un utilisateur avec le PUID/PGID indiqué, ajuste la propriété de tous les répertoires inscriptibles, puis abandonne ses privilèges avec `su-exec`. Le processus nginx s'exécute entièrement sous l'utilisateur que vous avez indiqué.
+
+> [!NOTE]
+> Le `Dockerfile` standard utilise `nginx-unprivileged` (UID 101) et est recommandé pour la plupart des déploiements. N'utilisez `Dockerfile.nonroot` que si vous avez besoin d'un UID/GID précis.
+
+> [!WARNING]
+> PUID/PGID ne peuvent pas valoir `0` (root). Le point d'entrée valide les valeurs et s'arrête avec une erreur si elles sont invalides.
+
+## Avec Traefik (reverse proxy)
+
+```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
+```
+
+## Avec Caddy (reverse proxy)
+
+```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"
+}
+```
+
+## Limites de ressources
+
+```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 (intégration systemd)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) permet d'exécuter des conteneurs Podman comme services systemd. C'est idéal pour les déploiements en production sur Linux.
+
+### Configuration Quadlet de base
+
+Créez un fichier d'unité de conteneur à `~/.config/containers/systemd/bentopdf.container` (utilisateur) ou `/etc/containers/systemd/bentopdf.container` (système) :
+
+```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
+```
+
+### Activer et démarrer
+
+```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]
+> Pour un déploiement à l'échelle du système, utilisez `systemctl` sans l'option `--user` et placez le fichier dans `/etc/containers/systemd/`.
+
+### Quadlet avec contrôle de santé
+
+```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
+```
+
+### Mise à jour automatique avec Quadlet
+
+Podman peut mettre à jour automatiquement les conteneurs lorsque de nouvelles images sont disponibles :
+
+```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
+```
+
+### Configuration réseau Quadlet
+
+Pour une configuration réseau personnalisée, créez un fichier réseau `bentopdf.network` :
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Référencez-le ensuite dans votre fichier de conteneur :
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Mise à jour
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/fr/self-hosting/hostinger.md b/docs/fr/self-hosting/hostinger.md
new file mode 100644
index 00000000..6090686f
--- /dev/null
+++ b/docs/fr/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Déployer sur Hostinger
+
+[Hostinger](https://hostinger.com) est un hébergeur mutualisé très répandu. Ce guide explique comment déployer BentoPDF sur l'hébergement mutualisé de Hostinger.
+
+## Prérequis
+
+- Offre d'hébergement Hostinger avec accès au gestionnaire de fichiers
+- Node.js installé en local pour la compilation
+
+## Étape 1 : compiler le projet
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Les fichiers compilés se trouvent dans le dossier `dist`.
+
+## Étape 2 : téléverser sur Hostinger
+
+### Déploiement à la racine du domaine
+
+1. Connectez-vous à votre compte Hostinger
+2. Allez dans **File Manager** → **public_html**
+3. **Supprimez** tous les fichiers existants (faites une sauvegarde si nécessaire)
+4. **Téléversez** tout le contenu de votre dossier local `dist` dans `public_html`
+
+### Déploiement dans un sous-répertoire
+
+Si vous déployez dans un sous-répertoire (p. ex. `yourdomain.com/pdf-tools/`) :
+
+1. Compilez avec la bonne URL de base :
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Créez le dossier dans Hostinger :
+ - Allez dans **File Manager** → **public_html**
+ - Créez un nouveau dossier : `pdf-tools`
+3. Téléversez tout le contenu de `dist` dans `public_html/pdf-tools/`
+
+## Étape 3 : créer le fichier .htaccess
+
+Créez un fichier `.htaccess` à la racine de votre dossier de déploiement (`public_html` ou `public_html/pdf-tools/`) :
+
+::: warning Important
+Pour un déploiement dans un sous-répertoire, remplacez `RewriteBase /` par `RewriteBase /pdf-tools/` (ou le nom de votre dossier).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Exemple de .htaccess pour un sous-répertoire
+
+Pour `yourdomain.com/pdf-tools/`, modifiez ces lignes :
+
+```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
+```
+
+## Dépannage
+
+### Les fichiers WASM ne se chargent pas
+
+Vérifiez que les types MIME sont correctement définis dans `.htaccess` :
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Les outils LibreOffice ne fonctionnent pas
+
+Les en-têtes de sécurité sont essentiels pour SharedArrayBuffer :
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Si les en-têtes ne sont pas appliqués, contactez le support Hostinger pour activer `mod_headers`.
+
+### Erreurs 404 lors de l'actualisation de la page
+
+Assurez-vous que la règle d'extension `.html` et les routes de langue sont correctement configurées. BentoPDF utilise des fichiers HTML statiques, pas un routage 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]
+```
+
+### Limites de téléversement
+
+Hostinger peut imposer des limites de taille de fichier. Téléversez les fichiers WASM séparément si le téléversement groupé échoue.
diff --git a/docs/fr/self-hosting/index.md b/docs/fr/self-hosting/index.md
new file mode 100644
index 00000000..1b019e46
--- /dev/null
+++ b/docs/fr/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Guide d'auto-hébergement
+
+BentoPDF peut être auto-hébergé sur votre propre infrastructure. Ce guide présente différentes options de déploiement.
+
+## Démarrage rapide avec Docker / Podman
+
+Le moyen le plus rapide d'auto-héberger BentoPDF :
+
+> [!TIP]
+> BentoPDF est disponible en deux versions :
+>
+> - **Version auto-hébergée** : `ghcr.io/alam00000/bentopdf-simple:latest`. Tous les outils PDF, **sans** l'habillage marketing (pas de section d'accueil, de FAQ, de témoignages ni de pied de page). À utiliser pour les déploiements internes, d'équipe ou d'organisation. Ce **n'est pas** une version « allégée » avec moins de fonctionnalités.
+> - **Version commerciale** : `ghcr.io/alam00000/bentopdf:latest`. Le site marketing complet, utilisé par bentopdf.com lui-même et par les titulaires d'une licence commerciale qui exploitent des déploiements publics.
+>
+> Dans le doute : utilisez la version auto-hébergée.
+
+> [!IMPORTANT]
+> La conversion de fichiers Office nécessite `SharedArrayBuffer`, ce qui impose que l'application soit à la fois isolée cross-origin et servie depuis un contexte sécurisé. L'image officielle envoie déjà les en-têtes COOP/COEP requis, mais les navigateurs désactivent quand même `SharedArrayBuffer` sur les origines HTTP simples du réseau local comme `http://192.168.x.x`.
+>
+> N'utilisez `http://localhost` que pour des tests sur le même appareil. Si les utilisateurs accèdent à BentoPDF via une IP ou un nom d'hôte du réseau local, terminez la connexion en 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
+```
+
+Ou avec 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 (systemd sous Linux)
+
+Exécutez BentoPDF comme service systemd. Créez `~/.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
+```
+
+Consultez le [guide de déploiement Docker](/fr/self-hosting/docker) pour la documentation complète de Quadlet.
+
+## Compiler depuis les sources
+
+```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
+```
+
+## Options de configuration
+
+### Version auto-hébergée (mode simple)
+
+La version auto-hébergée (l'image `bentopdf-simple`, aussi appelée mode simple) est **fonctionnellement identique** à la version commerciale : tous les outils PDF sont présents et se comportent de la même façon. Elle masque simplement l'habillage marketing qui n'a de sens que sur bentopdf.com ou sur un déploiement commercial public. **Ce n'est pas une version allégée avec moins de fonctionnalités.**
+
+**Ce que la version auto-hébergée masque** (purement cosmétique, aucune fonctionnalité PDF n'est retirée) :
+
+- Barre de navigation, section d'accueil, section des fonctionnalités, FAQ, témoignages, pied de page
+- Remplace le titre de la page par « Outils PDF »
+
+**Ce que la version auto-hébergée conserve** (tout ce qui traite réellement les PDF) :
+
+- Tous les outils PDF (fusion, scission, édition, signature, OCR, conversion Office, etc.)
+- La personnalisation de la marque et toute la configuration au build et à l'exécution
+
+La version commerciale (`ghcr.io/alam00000/bentopdf:latest`) est celle qui alimente bentopdf.com et qu'utilisent les titulaires d'une licence commerciale pour des déploiements publics : elle ajoute la section d'accueil, la FAQ, les témoignages et le pied de page qui n'auraient pas de sens sur un outil interne.
+
+Si vous auto-hébergez BentoPDF pour votre équipe, votre organisation ou comme outil interne, utilisez la version auto-hébergée :
+
+```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
+```
+
+Consultez [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) pour tous les détails.
+
+### Version commerciale (déploiements publics sous votre propre marque)
+
+La version commerciale (l'image `bentopdf`, sans suffixe `-simple`) est celle qui alimente bentopdf.com. Elle inclut le site marketing complet (section d'accueil, fonctionnalités, FAQ, témoignages, pied de page) en plus de tous les outils PDF. Utilisez cette version si vous souhaitez **déployer BentoPDF comme service PDF public sous votre propre marque**, par exemple :
+
+- Vous exploitez BentoPDF comme service SaaS hébergé pour des utilisateurs finaux sur votre propre domaine
+- Vous voulez l'expérience de la page d'accueil (sections marketing + outils), et pas seulement la surface brute des outils
+- Vous êtes titulaire d'une licence commerciale et intégrez BentoPDF dans un produit commercial
+
+**Exécutez-la telle quelle** (marque BentoPDF, utile pour prévisualiser la version) :
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Compilez-la avec votre propre marque** (le flux commercial typique) :
+
+```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
+```
+
+Toutes les autres options de build (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, remplacements d'URL WASM, etc.) fonctionnent comme sur la version auto-hébergée.
+
+::: warning Licence
+L'exécution de la version commerciale est autorisée selon l'une des deux options de licence de BentoPDF :
+
+- **AGPL-3.0** (gratuite) : autorisée si votre déploiement publie l'intégralité de son code source sous AGPL, y compris les modifications de marque et la logique métier associée.
+- **Licence commerciale** (79 $, à vie) : requise pour les déploiements propriétaires ou à code fermé où vous ne publiez pas votre fork de marque ni votre code métier.
+
+Consultez la [page Licence](https://www.bentopdf.com/licensing) pour la comparaison complète. Les modules WASM sous licence AGPL (PyMuPDF, Ghostscript, CoherentPDF) sont chargés depuis un CDN à l'exécution : ils n'entrent donc pas dans votre image et ne changent pas votre situation en matière de licence.
+:::
+
+### URL de base
+
+Déployer dans un sous-répertoire :
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Marque personnalisée
+
+Remplacez le logo, le nom et le texte de pied de page par défaut de BentoPDF par les vôtres au moment du build :
+
+| Variable | Description | Valeur par défaut |
+| ------------------ | ------------------------------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nom de marque affiché dans l'en-tête et le pied de page | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Chemin du logo relatif à `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Texte personnalisé du pied de page/copyright | `© 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
+```
+
+Ou via 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 .
+```
+
+La personnalisation de la marque fonctionne en mode complet comme en mode simple, et peut être combinée avec toutes les autres options de build (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Désactiver des outils précis
+
+Masquez des outils individuels pour des raisons de conformité ou de sécurité. Les outils désactivés sont retirés de la page d'accueil, de la recherche, des raccourcis, du constructeur de workflow et de l'accès direct par URL.
+
+Les identifiants d'outils correspondent à l'URL de la page sans `.html` : ouvrez un outil et regardez l'URL (par ex. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Au build** (intégré au bundle) :
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**À l'exécution** (sans reconstruire : montez un `config.json`) :
+
+```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
+```
+
+Les deux méthodes peuvent être combinées : les listes sont fusionnées.
+
+Vous pouvez aussi désactiver des fonctionnalités précises de l'éditeur PDF (par ex. la rédaction) sans désactiver tout l'outil, en ajoutant `editorDisabledCategories` à `config.json`. Consultez le [guide Docker](/fr/self-hosting/docker#desactiver-des-fonctionnalites-de-l-editeur) pour la liste complète des catégories.
+
+## Guides de déploiement
+
+Choisissez votre plateforme :
+
+- [Vercel](/fr/self-hosting/vercel)
+- [Netlify](/fr/self-hosting/netlify)
+- [Cloudflare Pages](/fr/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/fr/self-hosting/aws)
+- [Hostinger](/fr/self-hosting/hostinger)
+- [Nginx](/fr/self-hosting/nginx)
+- [Apache](/fr/self-hosting/apache)
+- [Docker](/fr/self-hosting/docker)
+- [Kubernetes](/fr/self-hosting/kubernetes)
+- [Proxy CORS](/fr/self-hosting/cors-proxy) : requis pour les signatures numériques
+
+## Problèmes courants
+
+### La conversion Word / ODT / Excel / PowerPoint vers PDF se bloque (SharedArrayBuffer indisponible)
+
+**Symptôme** : les conversions de documents basées sur LibreOffice (Word, ODT, Excel, PowerPoint vers PDF) se bloquent à environ 55 % ou ne démarrent pas. La console du navigateur peut afficher :
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…ou `window.crossOriginIsolated` renvoie `false`, ou la compilation WASM signale `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Cause** : LibreOffice WASM nécessite `SharedArrayBuffer`, que le navigateur n'active que si la page est **isolée cross-origin** ET servie depuis un **contexte sécurisé**. Deux conditions doivent donc être remplies :
+
+1. Chaque réponse inclut les deux en-têtes :
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. La page est servie depuis `https://...` ou `http://localhost`. Le HTTP simple sur une IP du réseau local (par ex. `http://192.168.x.x`) n'est PAS considéré comme sécurisé : les navigateurs y désactivent `SharedArrayBuffer`.
+
+L'écart `00 61 73 6d / 1f 8b 08 08` est un sous-symptôme distinct : il manque l'en-tête de réponse `Content-Encoding: gzip` sur les fichiers précompressés `.wasm.gz` / `.data.gz`, si bien que le navigateur reçoit des octets gzip bruts au lieu du WASM décompressé.
+
+**Solution** : consultez le guide de déploiement de votre plateforme pour la configuration exacte :
+
+- [Nginx →](/fr/self-hosting/nginx#la-conversion-word-odt-excel-vers-pdf-ne-fonctionne-pas)
+- [Apache →](/fr/self-hosting/apache#la-conversion-word-odt-excel-vers-pdf-ne-fonctionne-pas)
+- [AWS S3 + CloudFront →](/fr/self-hosting/aws#etape-3b-politique-d-en-tetes-de-reponse-requise-pour-libreoffice-wasm)
+- [Cloudflare Pages →](/fr/self-hosting/cloudflare#fichier-de-configuration) (`_headers` file)
+- [Netlify →](/fr/self-hosting/netlify#la-conversion-word-odt-excel-vers-pdf-reste-bloquee-a-55) (`netlify.toml`)
+- [Vercel →](/fr/self-hosting/vercel#la-conversion-word-odt-excel-vers-pdf-ne-fonctionne-pas) (`vercel.json`)
+- [Hostinger →](/fr/self-hosting/hostinger#les-outils-libreoffice-ne-fonctionnent-pas) (`.htaccess`)
+- [Kubernetes →](/fr/self-hosting/kubernetes#verifier-que-les-en-tetes-sharedarraybuffer-fonctionnent-toujours-ingress-gateway)
+- **Docker** : géré automatiquement par la configuration nginx fournie, aucune action nécessaire.
+
+**Vérification** : ouvrez la console des DevTools sur n'importe quelle page BentoPDF et exécutez :
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Si la page est en HTTPS ou en `http://localhost` ET que les deux en-têtes COEP/COOP sont présents sur chaque réponse, les deux vérifications passent. Si vous êtes sur `http://192.168.x.x` ou une autre origine HTTP hors boucle locale, terminez la connexion en HTTPS : aucune correction par simples en-têtes n'existe.
+
+### Fichiers `.mjs` servis en `application/octet-stream`
+
+**Symptôme** : Signer un PDF, le remplissage de formulaire et certains autres outils affichent un lecteur vide ou ne se chargent pas. La console du navigateur signale :
+
+> `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.`
+
+**Cause** : votre serveur web ou reverse proxy n'a pas de correspondance de type MIME pour les fichiers `.mjs` (le lecteur PDF intégré fournit des modules ES avec cette extension). De nombreuses configurations de serveur par défaut utilisent `application/octet-stream` pour les extensions inconnues, ce que les navigateurs refusent d'exécuter comme modules ES.
+
+**Solution** : consultez le guide de déploiement de votre plateforme pour l'extrait exact :
+
+- [Nginx →](/fr/self-hosting/nginx#signer-un-pdf-ou-le-remplissage-de-formulaire-affiche-un-lecteur-vide-erreur-mime-mjs)
+- [Apache →](/fr/self-hosting/apache#signer-un-pdf-ou-le-remplissage-de-formulaires-affiche-un-visualiseur-vide-erreur-mime-mjs)
+- [AWS S3 + CloudFront →](/fr/self-hosting/aws#etape-2-compiler-et-televerser) (voir `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/fr/self-hosting/kubernetes#erreurs-de-type-mime-mjs-iframe-vide-dans-signer-un-pdf-remplissage-de-formulaire)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger** : géré automatiquement, aucune action nécessaire.
+
+**Vérification** : ouvrez les DevTools, onglet Network, repérez la requête `.mjs` en échec et vérifiez l'en-tête de réponse `Content-Type`. Il doit valoir `application/javascript`. S'il vaut toujours `application/octet-stream`, un reverse proxy ou un CDN en amont détecte peut-être à nouveau le type : vérifiez chaque couche de votre chaîne de diffusion.
+
+## Configuration WASM (composants AGPL)
+
+BentoPDF **n'intègre pas** de bibliothèques de traitement sous licence AGPL dans son code source, mais **préconfigure des URL de CDN** pour que toutes les fonctionnalités marchent immédiatement, sans configuration manuelle.
+
+::: tip Zéro configuration par défaut
+Depuis la v2.0.0, les modules WASM sont préconfigurés pour se charger depuis le CDN jsDelivr via des variables d'environnement. Toutes les fonctionnalités avancées fonctionnent immédiatement, sans aucune configuration de l'utilisateur.
+:::
+
+| Composant | Licence | Fonctionnalités |
+| --------------- | -------- | ------------------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Conversion EPUB/MOBI/FB2/XPS, extraction d'images, extraction de tableaux |
+| **Ghostscript** | AGPL-3.0 | Conversion PDF/A, compression, redressement, rastérisation |
+| **CoherentPDF** | AGPL-3.0 | Table des matières, pièces jointes, fusion de PDF avec signets |
+
+### Variables d'environnement par défaut
+
+Elles sont définies dans `.env.production` et intégrées au build :
+
+```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=
+```
+
+### Remplacer les URL WASM
+
+Vous pouvez remplacer les valeurs par défaut au moment du build pour des déploiements personnalisés :
+
+```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
+```
+
+Pour désactiver complètement un module (la configuration manuelle par l'utilisateur via les paramètres avancés devient alors nécessaire), définissez sa variable sur une chaîne vide.
+
+Pour l'OCR, laissez toutes les variables `VITE_TESSERACT_*` vides et conservez les ressources en ligne par défaut, ou définissez ensemble les URL worker/core/lang pour un OCR auto-hébergé ou hors ligne. Si vous n'intégrez que certaines langues d'OCR, définissez aussi `VITE_TESSERACT_AVAILABLE_LANGUAGES` avec les mêmes codes séparés par des virgules afin que l'interface ne propose que les langues installées et que les sélections non prises en charge échouent avec une erreur explicite. Pour une sortie PDF consultable entièrement hors ligne, définissez aussi `VITE_OCR_FONT_BASE_URL` sur le répertoire interne qui sert les polices OCR fournies.
+
+Les utilisateurs peuvent aussi remplacer ces valeurs à tout moment via les **paramètres avancés** de l'interface : les remplacements enregistrés dans le navigateur ont priorité sur les valeurs d'environnement par défaut.
+
+### Déploiement isolé du réseau / hors ligne
+
+Pour les réseaux sans accès à Internet (administrations, santé, finance, etc.). Les URL WASM sont intégrées au JavaScript **au moment du build** : les fichiers WASM eux-mêmes sont téléchargés par le **navigateur de l'utilisateur** à l'exécution. Vous devez donc tout préparer sur une machine connectée à Internet, puis transférer le résultat dans le réseau isolé.
+
+#### Script automatisé (recommandé)
+
+Le script `prepare-airgap.sh` fourni automatise tout le processus : téléchargement des paquets WASM, construction de l'image Docker et production d'un bundle autonome avec un script d'installation.
+
+```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
+```
+
+Cela produit un répertoire de bundle :
+
+```
+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
+```
+
+Transférez le bundle dans le réseau isolé par clé USB, dépôt d'artefacts interne ou toute méthode approuvée. Exécutez ensuite le script d'installation fourni :
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Le script d'installation charge l'image Docker, extrait les fichiers WASM et démarre éventuellement le conteneur.
+
+**Options du script :**
+
+| Option | Description | Valeur par défaut |
+| ------------------------------ | ------------------------------------------------------------- | ------------------------------------ |
+| `--wasm-base-url ` | Emplacement où les WASM seront hébergés en interne | _(obligatoire, demandée si absente)_ |
+| `--image-name ` | Tag de l'image Docker | `bentopdf` |
+| `--output-dir ` | Répertoire de sortie du bundle | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Active le mode simple | désactivé |
+| `--base-url ` | URL de base du sous-répertoire (par ex. `/pdf/`) | `/` |
+| `--language ` | Langue par défaut de l'interface (par ex. `fr`, `de`) | _(aucune)_ |
+| `--brand-name ` | Nom de marque personnalisé | _(aucun)_ |
+| `--brand-logo ` | Chemin du logo relatif à `public/` | _(aucun)_ |
+| `--footer-text ` | Texte de pied de page personnalisé | _(aucun)_ |
+| `--ocr-languages ` | Langues d'OCR à intégrer, séparées par des virgules | `eng` |
+| `--list-ocr-languages` | Affiche les codes et noms d'OCR pris en charge, puis quitte | désactivé |
+| `--search-ocr-language ` | Recherche des codes d'OCR par nom ou abréviation | désactivé |
+| `--dockerfile ` | Dockerfile à utiliser | `Dockerfile` |
+| `--skip-docker` | Ignore la construction et l'export Docker | désactivé |
+| `--skip-wasm` | Ignore le téléchargement WASM (réutilise les fichiers `.tgz`) | désactivé |
+
+L'invite interactive accepte aussi `list` pour afficher la liste complète des codes Tesseract pris en charge et `search ` pour trouver des correspondances, par exemple `search german` ou `search chi`.
+
+::: warning Exigence de même origine
+Les fichiers WASM doivent être servis depuis la **même origine** que l'application BentoPDF. Les Web Workers utilisent `importScripts()`, qui ne peut pas charger de scripts cross-origin. Par exemple, si BentoPDF tourne sur `https://internal.example.com`, l'URL de base WASM doit aussi être `https://internal.example.com/wasm`.
+:::
+
+#### Étapes manuelles
+
+
+Si vous préférez procéder manuellement, sans le script
+
+**Étape 1 : télécharger les paquets WASM et OCR** (sur une machine connectée à Internet)
+
+```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
+```
+
+**Étape 2 : construire l'image Docker avec les URL internes**
+
+```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 .
+```
+
+**Étape 3 : exporter l'image Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Étape 4 : transférer dans le réseau isolé**
+
+Copiez par clé USB, dépôt d'artefacts interne ou méthode de transfert approuvée :
+
+- `bentopdf.tar` : l'image Docker
+- Les cinq paquets `.tgz` WASM/OCR de l'étape 1
+- Le répertoire `tesseract-langdata/` de l'étape 1
+- Le répertoire `ocr-fonts/` de l'étape 1
+
+**Étape 5 : installer dans le réseau isolé**
+
+```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
+```
+
+Vérifiez que les fichiers sont accessibles aux URL configurées à l'étape 2, notamment `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` et `.../ocr/fonts`.
+
+
+
+::: info Compilation depuis les sources plutôt que Docker ?
+Définissez les variables dans `.env.production` avant d'exécuter `npm run build` :
+
+```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
+```
+
+:::
+
+### Héberger votre propre proxy WASM
+
+Si vous devez servir des fichiers WASM AGPL avec les en-têtes CORS appropriés, vous pouvez déployer un proxy simple. Consultez le [guide du proxy WASM Cloudflare](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) pour un exemple d'implémentation.
+
+::: tip Pourquoi cette séparation ?
+Cette séparation garantit :
+
+- Une conformité juridique claire pour les utilisateurs commerciaux
+- Le cœur de BentoPDF reste sous sa double licence (AGPL-3.0 / commerciale)
+- Les fichiers WASM sont chargés à l'exécution et non intégrés au code source
+ :::
+
+## Configuration requise
+
+| Exigence | Minimum |
+| -------- | ------------------------------------ |
+| Stockage | ~100 Mo (cœur sans les modules AGPL) |
+| RAM | 512 Mo |
+| CPU | Tout processeur moderne |
+
+::: tip
+BentoPDF est un site statique : aucune base de données ni serveur backend n'est nécessaire !
+:::
diff --git a/docs/fr/self-hosting/kubernetes.md b/docs/fr/self-hosting/kubernetes.md
new file mode 100644
index 00000000..c8d5d6fb
--- /dev/null
+++ b/docs/fr/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Déployer avec Kubernetes
+
+Kubernetes est peut-être excessif pour un site statique, mais il peut très bien convenir si vous standardisez déjà sur Helm + GitOps.
+
+> [!IMPORTANT]
+> **En-têtes requis pour la conversion de fichiers Office**
+>
+> Les outils basés sur LibreOffice (conversion Word, Excel, PowerPoint) nécessitent ces en-têtes HTTP pour la prise en charge de `SharedArrayBuffer` :
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Les images nginx officielles de BentoPDF incluent ces en-têtes. Dans Kubernetes, **les contrôleurs Ingress/Gateway sont aussi des reverse proxies** : assurez-vous donc que ces en-têtes sont conservés (ou ajoutez-les en périphérie).
+
+## Prérequis
+
+- Un cluster Kubernetes
+- Helm v3
+- Une image nginx BentoPDF (par ex. `ghcr.io/alam00000/bentopdf:`) qui sert sur le **port 8080**
+
+## Déployer avec Helm
+
+### Installer depuis ce dépôt (chart local)
+
+```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
+```
+
+### Installer depuis GHCR (chart OCI)
+
+Si le chart est publié sur GHCR en tant qu'artefact OCI :
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## L'exposer
+
+### Port-forward (test rapide)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (facultatif)
+
+Activez Ingress (exemple pour nginx-ingress) :
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (facultatif)
+
+Ce chart prend en charge `Gateway` + `HTTPRoute` de Gateway API.
+
+Exemple (opérateur Gateway API de Cloudflare) :
+
+```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
+```
+
+## Vérifier que les en-têtes SharedArrayBuffer fonctionnent toujours (Ingress/Gateway)
+
+### Ce qui « devrait » se passer
+
+La configuration nginx de BentoPDF définit les en-têtes de réponse requis. La plupart des contrôleurs Ingress/Gateway **transmettent les en-têtes de réponse en amont sans les modifier**.
+
+### Ce qui peut tout casser
+
+- Une politique de contrôleur ou de périphérie qui **remplace** ou **supprime** les en-têtes de réponse
+- Un middleware d'« en-têtes de sécurité » qui définit des valeurs COOP/COEP différentes
+
+### Comment vérifier
+
+Exécutez ceci sur votre point d'accès public :
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Vous devriez voir :
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Si votre contrôleur Ingress ne les conserve pas
+
+Ajoutez les en-têtes en périphérie (selon le contrôleur). Exemple pour **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;
+```
+
+## Erreurs de type MIME `.mjs` (iframe vide dans Signer un PDF / remplissage de formulaire)
+
+Si la console du navigateur affiche `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` sur une requête `.mjs`, un contrôleur Ingress/Gateway placé devant le nginx de BentoPDF remplace l'en-tête `Content-Type` en amont par `application/octet-stream`.
+
+Le nginx de l'image BentoPDF sert déjà `.mjs` en `application/javascript`. La solution consiste à empêcher le contrôleur de le supprimer ou de le remplacer. Pour nginx-ingress :
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Ou utilisez un filtre `ResponseHeaderModifier` dans Gateway API pour définir `Content-Type: application/javascript` sur les chemins `.mjs`. Vérifiez avec les DevTools, onglet Network : la requête `.mjs` en échec doit maintenant afficher `content-type: application/javascript`.
+
+### Si vous utilisez Gateway API et voulez forcer l'ajout d'en-têtes
+
+Gateway API prend en charge un filtre `ResponseHeaderModifier`. Vous pouvez l'attacher dans `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
+```
+
+La prise en charge de filtres précis dépend de votre contrôleur Gateway ; si un filtre est ignoré, ajoutez plutôt les en-têtes au niveau de la périphérie ou du contrôleur.
+
+## Désactiver des outils précis
+
+Utilisez un ConfigMap pour désactiver des outils à l'exécution sans reconstruire l'image :
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Montez-le dans le répertoire servi :
+
+```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
+```
+
+Les identifiants d'outils correspondent à l'URL de la page sans `.html` : ouvrez un outil et regardez l'URL (par ex. `edit-pdf`, `merge-pdf`, `compress-pdf`). Les outils désactivés sont masqués de la page d'accueil, de la recherche, des raccourcis, du constructeur de workflow et de l'accès direct par URL. Consultez le [guide Docker](/fr/self-hosting/docker#desactiver-des-outils-specifiques) pour la liste complète des options.
diff --git a/docs/fr/self-hosting/netlify.md b/docs/fr/self-hosting/netlify.md
new file mode 100644
index 00000000..50da1c0f
--- /dev/null
+++ b/docs/fr/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Déployer sur Netlify
+
+[Netlify](https://netlify.com) propose un excellent hébergement de sites statiques avec une offre gratuite généreuse.
+
+## Déploiement en un clic
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Déploiement manuel
+
+### Étape 1 : connecter le dépôt
+
+1. Connectez-vous à [Netlify](https://app.netlify.com)
+2. Cliquez sur « Add new site » → « Import an existing project »
+3. Connectez votre compte GitHub
+4. Sélectionnez votre fork de BentoPDF
+
+### Étape 2 : configurer les paramètres de build
+
+| Paramètre | Valeur |
+| ------------------------- | --------------- |
+| Commande de build | `npm run build` |
+| Répertoire de publication | `dist` |
+| Version de Node | 18+ |
+
+### Étape 3 : déployer
+
+Cliquez sur « Deploy site » et attendez la fin du build.
+
+## Fichier de configuration
+
+Créez `netlify.toml` à la racine de votre projet :
+
+```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 Important
+Les en-têtes `Cross-Origin-Embedder-Policy` et `Cross-Origin-Opener-Policy` sont nécessaires pour les conversions Word/ODT/Excel/PowerPoint vers PDF. Sans eux, `SharedArrayBuffer` n'est pas disponible et le moteur LibreOffice WASM ne parviendra pas à s'initialiser.
+
+Les en-têtes `Content-Encoding: gzip` sur les fichiers `.wasm.gz` et `.data.gz` indiquent au navigateur de les décompresser automatiquement. Sans eux, le navigateur reçoit des octets gzip bruts et la compilation WASM échoue.
+:::
+
+## Variables d'environnement
+
+Définissez-les dans Site settings → Environment variables :
+
+| Variable | Description |
+| ----------------------- | ----------------------------------------------------------------- |
+| `SIMPLE_MODE` | Mettre à `true` pour un build minimal |
+| `VITE_BRAND_NAME` | Nom de marque personnalisé (remplace « BentoPDF ») |
+| `VITE_BRAND_LOGO` | Chemin du logo relatif à `public/` (par ex. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Texte personnalisé du pied de page/copyright |
+| `VITE_DEFAULT_LANGUAGE` | Langue par défaut de l'interface (par ex. `fr`, `de`, `es`) |
+
+## Domaine personnalisé
+
+1. Allez dans Site settings → Domain management
+2. Cliquez sur « Add custom domain »
+3. Suivez les instructions de configuration DNS
+
+## Large Media
+
+Pour les gros fichiers WASM, envisagez d'activer [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Dépannage
+
+### La conversion Word/ODT/Excel vers PDF reste bloquée à 55 %
+
+Si les conversions de documents restent bloquées à 55 %, ouvrez la console des DevTools et vérifiez :
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Si `crossOriginIsolated` vaut `false`, les en-têtes COEP/COOP de votre `netlify.toml` ne sont pas appliqués. Vérifiez que le fichier se trouve à la racine de votre projet et redéployez.
+
+Si vous voyez `expected magic word 00 61 73 6d, found 1f 8b 08 08` dans la console, il manque les en-têtes `Content-Encoding: gzip` sur les fichiers `.wasm.gz`. Assurez-vous que les blocs `[[headers]]` pour `soffice.wasm.gz` et `soffice.data.gz` figurent dans votre `netlify.toml`.
+
+### Échec du build
+
+Vérifiez la compatibilité de la version de Node :
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Chargement initial lent
+
+Activez l'optimisation des ressources dans Site settings → Build & deploy → Asset optimization.
diff --git a/docs/fr/self-hosting/nginx.md b/docs/fr/self-hosting/nginx.md
new file mode 100644
index 00000000..a0adb25e
--- /dev/null
+++ b/docs/fr/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Déployer avec Nginx
+
+Hébergez BentoPDF sur votre propre serveur avec Nginx.
+
+## Prérequis
+
+- Serveur Ubuntu/Debian
+- Nginx installé
+- Certificat SSL (recommandé : Let's Encrypt)
+
+## Étape 1 : construire le projet
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Pour personnaliser l'image de marque, définissez des variables d'environnement avant le build :
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Étape 2 : copier les fichiers
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Étape 3 : configuration de Nginx
+
+Créez `/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;
+ }
+}
+```
+
+## Étape 4 : activer le site
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Étape 5 : SSL avec Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Déploiement dans un sous-répertoire
+
+Pour héberger sous `/pdf/` :
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Construisez avec :
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Optimisation des performances
+
+Ajoutez à `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;
+}
+```
+
+## Dépannage
+
+### Le WASM ne se charge pas
+
+Vérifiez que le type MIME est défini :
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Signer un PDF ou le remplissage de formulaire affiche un lecteur vide (erreur MIME `.mjs`)
+
+Si la console du navigateur affiche :
+
+```
+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.
+```
+
+…et que la requête en échec se termine par `.mjs`, il manque à votre nginx la correspondance `.mjs → application/javascript`. Le lecteur PDF intégré (utilisé par Signer un PDF, le remplissage de formulaire et quelques autres outils) fournit des modules ES avec l'extension `.mjs`, et le fichier `mime.types` par défaut de nginx ne les inclut pas.
+
+Corrigez-le en ajoutant `mjs` à la ligne `application/javascript` existante dans `/etc/nginx/mime.types` :
+
+```nginx
+application/javascript js mjs;
+```
+
+> N'ajoutez PAS une _seconde_ ligne `application/javascript` : nginx analyse `mime.types` ligne par ligne et une seule correspondance type-extension l'emporte, donc une seconde ligne est ignorée silencieusement sur certaines versions. Modifiez la ligne existante pour ajouter `mjs` à côté de `js`.
+
+Ou redéfinissez-le localement dans votre bloc server (sans modifier le fichier global) :
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Rechargez nginx après la modification :
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Pour confirmer : dans les DevTools du navigateur, onglet Network, repérez la requête `.mjs` en échec et vérifiez l'en-tête de réponse `Content-Type`. Il doit maintenant valoir `application/javascript` et non `application/octet-stream`.
+
+### La conversion Word/ODT/Excel vers PDF ne fonctionne pas
+
+LibreOffice WASM nécessite `SharedArrayBuffer`, qui exige les en-têtes `Cross-Origin-Embedder-Policy` et `Cross-Origin-Opener-Policy`. Il faut aussi un contexte sécurisé : `http://localhost` fonctionne pour les tests locaux, mais `http://192.168.x.x` ou d'autres IP du réseau local nécessitent généralement HTTPS. Notez que les directives `add_header` d'un bloc `location` **remplacent** celles du niveau server, elles ne fusionnent pas. Chaque bloc `location` ayant son propre `add_header` doit inclure les en-têtes COEP/COOP.
+
+Vérifiez avec :
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Si vous utilisez un reverse proxy devant nginx, assurez-vous qu'il conserve ces en-têtes.
+
+### 502 Bad Gateway
+
+Consultez les journaux d'erreurs de Nginx :
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/fr/self-hosting/vercel.md b/docs/fr/self-hosting/vercel.md
new file mode 100644
index 00000000..4ce84734
--- /dev/null
+++ b/docs/fr/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Déployer sur Vercel
+
+[Vercel](https://vercel.com) offre l'expérience de déploiement la plus simple pour les sites statiques.
+
+## Déploiement en un clic
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Déploiement manuel
+
+### Étape 1 : forker le dépôt
+
+Forkez [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) vers votre compte GitHub.
+
+### Étape 2 : importer dans Vercel
+
+1. Rendez-vous sur [vercel.com/new](https://vercel.com/new)
+2. Sélectionnez votre dépôt forké
+3. Configurez le projet :
+
+| Paramètre | Valeur |
+| ----------------------- | --------------- |
+| Préréglage du framework | Vite |
+| Commande de build | `npm run build` |
+| Répertoire de sortie | `dist` |
+| Commande d'installation | `npm install` |
+
+### Étape 3 : variables d'environnement (facultatif)
+
+Ajoutez-les si nécessaire :
+
+| Variable | Description |
+| ----------------------- | ----------------------------------------------------------------- |
+| `SIMPLE_MODE` | Mettre à `true` pour une interface minimale |
+| `VITE_BRAND_NAME` | Nom de marque personnalisé (remplace « BentoPDF ») |
+| `VITE_BRAND_LOGO` | Chemin du logo relatif à `public/` (par ex. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Texte personnalisé du pied de page/copyright |
+| `VITE_DEFAULT_LANGUAGE` | Langue par défaut de l'interface (par ex. `fr`, `de`, `es`) |
+
+### Étape 4 : déployer
+
+Cliquez sur « Deploy » et attendez la fin du build.
+
+## Domaine personnalisé
+
+1. Ouvrez les paramètres de votre projet
+2. Allez dans « Domains »
+3. Ajoutez votre domaine personnalisé
+4. Configurez le DNS comme indiqué
+
+## Limitations
+
+::: warning Fichiers volumineux
+Les fonctions serverless de Vercel ont une limite de 50 Mo. BentoPDF étant un site statique, cela ne devrait pas vous concerner, mais les modules WASM sont volumineux (~100 Mo au total). Assurez-vous qu'ils sont servis depuis le dossier `/public`.
+:::
+
+## Dépannage
+
+### Délai d'attente du build dépassé
+
+Si les builds dépassent le délai, essayez :
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### Erreur 404 à l'actualisation
+
+Ajoutez un fichier `vercel.json` pour le routage SPA :
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### La conversion Word/ODT/Excel vers PDF ne fonctionne pas
+
+Les conversions LibreOffice WASM nécessitent `SharedArrayBuffer`, qui exige ces en-têtes de réponse sur toutes les pages :
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Les fichiers précompressés `.wasm.gz` et `.data.gz` ont aussi besoin de `Content-Encoding: gzip` pour que le navigateur les décompresse.
+
+Ajoutez-les à votre `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" }
+ ]
+ }
+ ]
+}
+```
+
+Pour vérifier, ouvrez la console des DevTools et exécutez `console.log(window.crossOriginIsolated)` : le résultat doit être `true`.
diff --git a/docs/fr/tools/add-attachments.md b/docs/fr/tools/add-attachments.md
new file mode 100644
index 00000000..7cc8991f
--- /dev/null
+++ b/docs/fr/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Ajouter des pièces jointes
+description: Intégrez des fichiers de tout type dans un PDF, au niveau du document ou rattachés à des pages précises.
+---
+
+# Ajouter des pièces jointes
+
+Intégrez un ou plusieurs fichiers directement dans un document PDF. Les pièces jointes peuvent être ajoutées au niveau du document (visibles dans le panneau des pièces jointes de n'importe quel lecteur PDF) ou liées à des pages précises.
+
+## Fonctionnement
+
+1. Importez le PDF auquel vous souhaitez joindre des fichiers.
+2. Utilisez la zone de dépôt des pièces jointes pour sélectionner les fichiers à intégrer (tout type de fichier).
+3. Choisissez le niveau de la pièce jointe : **Document** (par défaut) ou **Page**.
+4. Si vous choisissez le niveau Page, saisissez une plage de pages (par exemple `1-3` ou `5`).
+5. Cliquez sur le bouton de traitement. Le PDF modifié est téléchargé avec vos fichiers intégrés.
+
+## Fonctionnalités
+
+- Joignez n'importe quel type de fichier : images, feuilles de calcul, archives, exécutables, tout est possible
+- Placement des pièces jointes au niveau du document ou de la page
+- Possibilité de joindre plusieurs fichiers en une seule opération
+- Affichage du nom et de la taille de toutes les pièces jointes sélectionnées
+- Le PDF de sortie conserve le contenu d'origine, avec les fichiers intégrés en plus
+
+## Options
+
+| Option | Description |
+| ------------------- | --------------------------------------------------------------------------------------------- |
+| **Niveau document** | Joint les fichiers au PDF dans son ensemble, accessibles depuis le panneau des pièces jointes |
+| **Niveau page** | Joint les fichiers à des pages précises, indiquées par une plage de pages |
+
+## Cas d'usage
+
+- Regrouper des données sources (fichiers Excel, CSV) avec un rapport PDF
+- Joindre les images originales à un portfolio photo au format PDF
+- Intégrer des documents justificatifs dans un contrat ou une proposition
+- Ajouter des documents complémentaires à des pages précises d'un manuel de formation
+
+## Astuces
+
+- Les pièces jointes au niveau du document sont les mieux prises en charge par les lecteurs PDF. Celles au niveau de la page peuvent ne pas être visibles dans tous les lecteurs.
+- Il n'y a pas de limite de taille pour les pièces jointes, mais les fichiers intégrés très volumineux augmentent la taille du PDF d'autant.
+
+## Outils associés
+
+- [Extraire les pièces jointes](./extract-attachments)
+- [Gérer les pièces jointes](./edit-attachments)
+- [Fusionner des PDF](./merge-pdf)
diff --git a/docs/fr/tools/add-blank-page.md b/docs/fr/tools/add-blank-page.md
new file mode 100644
index 00000000..5b813bfe
--- /dev/null
+++ b/docs/fr/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Ajouter une page vierge
+description: Insérez une ou plusieurs pages vierges à n'importe quelle position d'un document PDF.
+---
+
+# Ajouter une page vierge
+
+Insérez des pages vides dans un PDF à la position de votre choix. Vous contrôlez l'emplacement des pages vierges et leur nombre.
+
+## Fonctionnement
+
+1. Importez un fichier PDF. L'outil affiche le nombre de pages.
+2. Saisissez la **position** où insérer les pages vierges. Utilisez `0` pour insérer au tout début, ou le nombre total de pages pour ajouter à la fin.
+3. Saisissez le **nombre** de pages vierges à ajouter (1 par défaut).
+4. Cliquez sur le bouton de traitement. Le PDF modifié est téléchargé avec les pages vierges insérées.
+
+## Fonctionnalités
+
+- Insertion à n'importe quelle position : début, milieu ou fin du document
+- Ajout de plusieurs pages vierges en une seule opération
+- L'indication de position se met à jour dynamiquement selon le nombre de pages du PDF importé
+- Pages vierges au format A4 standard
+
+## Cas d'usage
+
+- Ajouter une page de séparation vierge entre les sections d'un document compilé
+- Insérer des pages vierges pour l'alignement de l'impression recto verso
+- Prévoir de l'espace pour des notes manuscrites dans un support d'étude imprimé
+- Compléter un document pour atteindre un nombre minimal de pages
+
+## Astuces
+
+- La position `0` insère avant la première page. Une position égale au nombre total de pages ajoute après la dernière page.
+- Si vous devez insérer du contenu (et pas seulement des pages vierges) à une position précise, utilisez [Outil PDF tout-en-un](./pdf-multi-tool) pour insérer un autre PDF après une page donnée.
+
+## Outils associés
+
+- [Dupliquer et organiser](./organize-pdf)
+- [Outil PDF tout-en-un](./pdf-multi-tool)
+- [Fusionner des PDF](./merge-pdf)
diff --git a/docs/fr/tools/add-page-labels.md b/docs/fr/tools/add-page-labels.md
new file mode 100644
index 00000000..c60535e8
--- /dev/null
+++ b/docs/fr/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Ajouter des étiquettes de page
+description: Ajoutez des étiquettes de page PDF avec chiffres romains, préfixes alphabétiques, numérotation personnalisée et plusieurs règles par document.
+---
+
+# Ajouter des étiquettes de page
+
+Les étiquettes de page déterminent l'affichage des numéros de page dans les lecteurs PDF (le numéro indiqué dans la barre d'outils, et non imprimé sur la page). Cet outil vous permet d'attribuer différents schémas d'étiquetage à différentes plages de pages : chiffres romains pour les pages liminaires, chiffres décimaux pour le corps du texte, annexes en lettres, et plus encore.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. Le panneau d'options apparaît avec une règle d'étiquetage par défaut.
+3. Configurez chaque règle avec une plage de pages, un style, un préfixe facultatif et une valeur de départ.
+4. Cliquez sur **Ajouter une règle** pour créer des règles supplémentaires pour d'autres sections.
+5. Cliquez sur **Ajouter des étiquettes de page** pour appliquer toutes les règles et télécharger le résultat.
+
+## Options
+
+Chaque règle d'étiquetage dispose des paramètres suivants :
+
+- **Plage de pages** : les pages auxquelles la règle s'applique. Laissez vide pour toutes les pages. Accepte des plages comme `1-4`, `7`, `odd` ou `1-9,30-40`.
+- **Style d'étiquette** : chiffres arabes décimaux, chiffres romains minuscules (i, ii, iii), chiffres romains majuscules (I, II, III), lettres minuscules (a, b, c), lettres majuscules (A, B, C), ou aucune étiquette (préfixe uniquement).
+- **Préfixe d'étiquette** : texte facultatif ajouté devant chaque étiquette, par exemple « A- » pour obtenir des étiquettes comme A-1, A-2, A-3.
+- **Valeur de départ** : le nombre à partir duquel commencer le décompte. 1 par défaut. Mettez 0 pour une numérotation commençant à zéro.
+- **Poursuivre la numérotation sur des plages disjointes** : activez cette option lorsqu'une règle cible des pages non contiguës (comme `1-9,30-40` ou `odd`) et que vous souhaitez que la numérotation continue de façon séquentielle.
+- **Supprimer les étiquettes de page existantes** : cochée par défaut. Efface les étiquettes précédentes avant d'appliquer vos nouvelles règles.
+
+## Fonctionnalités
+
+- Plusieurs règles d'étiquetage par document pour les schémas de numérotation complexes
+- Six styles d'étiquettes couvrant tous les systèmes de numérotation courants
+- Préfixe personnalisé pour un étiquetage par section
+- Prise en charge des plages disjointes avec numérotation progressive
+- Option pour conserver ou supprimer les étiquettes existantes
+
+## Cas d'usage
+
+- Définir des étiquettes en chiffres romains (i, ii, iii) pour la préface d'un livre et des étiquettes décimales pour le texte principal
+- Étiqueter les pages d'annexe avec des préfixes alphabétiques comme « A-1 », « A-2 », « B-1 », « B-2 »
+- Corriger les étiquettes de page d'un document numérisé dont les numéros de page physiques ne correspondent pas à l'ordre des pages du PDF
+- Ajouter une numérotation commençant à zéro pour des documents techniques
+
+## Astuces
+
+- Les étiquettes de page sont des métadonnées que les lecteurs PDF affichent dans leur barre de navigation. Elles ne s'impriment pas sur la page. Pour des numéros visibles, utilisez [Numéros de page](./page-numbers).
+- Cet outil nécessite que CoherentPDF (CPDF) soit configuré dans vos paramètres WASM. S'il ne l'est pas, il vous sera proposé de le configurer.
+
+## Outils associés
+
+- [Numéros de page](./page-numbers)
+- [Numérotation Bates](./bates-numbering)
+- [Modifier les signets](./bookmark)
diff --git a/docs/fr/tools/add-stamps.md b/docs/fr/tools/add-stamps.md
new file mode 100644
index 00000000..99be22ac
--- /dev/null
+++ b/docs/fr/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Ajouter des tampons
+description: Ajoutez des tampons image à vos pages PDF grâce à une barre d'outils d'annotation intégrée avec attribution par nom d'utilisateur.
+---
+
+# Ajouter des tampons
+
+Placez des tampons image sur vos pages PDF à l'aide d'un lecteur intégré doté d'une barre d'outils d'annotation de tampons. Les tampons peuvent inclure votre nom pour l'attribution, ce qui est utile pour les circuits d'approbation, les processus de relecture et le marquage de documents.
+
+## Fonctionnement
+
+1. Saisissez votre nom dans le champ **Nom d'utilisateur du tampon**. Ce nom apparaîtra sur les tampons que vous créez.
+2. Importez votre fichier PDF en cliquant ou en le glissant dans la zone de dépôt.
+3. L'éditeur de tampons s'ouvre avec votre document chargé dans un lecteur.
+4. Utilisez l'outil de tampon image de la barre d'outils pour sélectionner et placer des tampons sur n'importe quelle page.
+5. Positionnez et redimensionnez les tampons selon vos besoins.
+6. Cliquez sur **Enregistrer le PDF tamponné** pour télécharger le résultat.
+
+## Fonctionnalités
+
+- Lecteur PDF intégré avec une barre d'outils d'annotation dédiée aux tampons
+- Attribution par nom d'utilisateur sur les tampons créés
+- Placement de tampons image sur n'importe quelle page
+- Positionnement et redimensionnement par glisser-déposer
+- Dimensionnement automatique du lecteur selon le format de la page
+- Affichage du fichier avec son nom et sa taille
+
+## Cas d'usage
+
+- Ajouter des tampons image « APPROUVÉ » ou « RELU » aux documents d'un circuit de relecture
+- Placer le sceau d'une entreprise ou le cachet d'un notaire sur des documents officiels
+- Marquer des pages avec des tampons « REÇU » incluant le nom du relecteur
+- Ajouter des tampons de contrôle qualité à des rapports d'inspection
+
+## Astuces
+
+- Définissez le nom d'utilisateur du tampon avant d'importer le PDF. Le nom d'utilisateur est intégré aux métadonnées du tampon.
+- Le lecteur ajuste sa hauteur selon le format de la première page du PDF pour un affichage optimal.
+- Pour des filigranes textuels plutôt que des tampons image, utilisez l'outil [Ajouter un filigrane](./add-watermark).
+
+## Outils associés
+
+- [Signer un PDF](./sign-pdf)
+- [Ajouter un filigrane](./add-watermark)
+- [Éditeur PDF](./edit-pdf)
diff --git a/docs/fr/tools/add-watermark.md b/docs/fr/tools/add-watermark.md
new file mode 100644
index 00000000..8276824b
--- /dev/null
+++ b/docs/fr/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Ajouter un filigrane
+description: Apposez des filigranes texte ou image sur les pages PDF avec un éditeur visuel par glisser-déposer et un aperçu en direct.
+---
+
+# Ajouter un filigrane
+
+Ajoutez des filigranes texte ou image à vos pages PDF grâce à un éditeur visuel. Vous pouvez positionner le filigrane en le faisant glisser directement sur l'aperçu, le redimensionner avec les poignées d'angle, et configurer l'opacité, la rotation, la police et la couleur. Chaque page peut avoir sa propre position de filigrane, ou vous pouvez appliquer le même filigrane à toutes les pages à la fois.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. L'éditeur s'ouvre avec un aperçu en direct de la première page et une superposition de filigrane déplaçable.
+3. Choisissez entre le mode filigrane **Texte** ou **Image** avec les boutons de bascule.
+4. Configurez les paramètres du filigrane dans le panneau latéral.
+5. Faites glisser le filigrane sur l'aperçu pour le positionner exactement où vous le souhaitez. Utilisez les poignées d'angle pour le redimensionner.
+6. Naviguez entre les pages pour définir des filigranes par page, ou laissez **Appliquer à toutes les pages** coché.
+7. Cliquez sur **Ajouter un filigrane** pour traiter et télécharger.
+
+## Options
+
+**Paramètres du filigrane texte :**
+
+- **Texte** : le texte du filigrane (par exemple « CONFIDENTIEL », « BROUILLON »).
+- **Taille de police** : de 10 à 200 points. 72 par défaut.
+- **Couleur** : n'importe quelle couleur via le sélecteur de couleur.
+- **Opacité** : contrôle la transparence, de totalement transparent à totalement opaque.
+- **Rotation** : fait pivoter le texte du filigrane de -180 à 180 degrés.
+
+**Paramètres du filigrane image :**
+
+- **Import d'image** : importez un fichier PNG, JPG ou un autre format d'image à utiliser comme filigrane.
+- **Opacité** : contrôle la transparence de l'image.
+- **Échelle** : redimensionne le filigrane image.
+
+**Paramètres de disposition :**
+
+- **Unique** : un filigrane par page, positionné par glisser-déposer ou avec les positions prédéfinies.
+- **En mosaïque** : répète le filigrane sur toute la page selon une grille diagonale qui suit l'angle de rotation, de sorte que la marque couvre le document d'un bord à l'autre.
+- **Espacement horizontal** : espace entre les motifs le long de la direction du texte, en pourcentage de la largeur du filigrane (mode mosaïque uniquement).
+- **Espacement vertical** : espace entre les rangées de motifs, en pourcentage de la hauteur du filigrane (mode mosaïque uniquement).
+
+**Paramètres généraux :**
+
+- **Appliquer à toutes les pages** : lorsque cette option est cochée, le même filigrane s'applique à chaque page. Décochez-la pour définir des filigranes individuels par page.
+- **Plage de pages** : indiquez les pages qui reçoivent le filigrane (par exemple « 1-3, 5, 7-9 » ou « all »).
+
+## Fonctionnalités
+
+- Positionnement visuel par glisser-déposer sur un aperçu PDF en direct
+- Filigrane redimensionnable avec des poignées d'angle
+- Modes filigrane texte et image
+- Disposition unique ou en mosaïque sur toute la page (répétée) avec espacement réglable
+- Application par page ou globale du filigrane
+- Navigation page par page dans l'aperçu
+- Contrôles d'opacité et de rotation
+- Filtrage par plage de pages
+
+## Cas d'usage
+
+- Marquer des brouillons avec « BROUILLON » avant de les diffuser pour relecture
+- Ajouter des filigranes « CONFIDENTIEL » à des rapports financiers sensibles
+- Personnaliser des documents avec un filigrane image représentant le logo d'une entreprise
+- Apposer « EXEMPLE » sur la documentation produit partagée avec des prospects
+- Ajouter des mentions de droit d'auteur aux documents PDF diffusés
+
+## Astuces
+
+- Pour des filigranes en diagonale sur la page, définissez une rotation d'environ 45 degrés et augmentez la taille de police.
+- Le mode mosaïque rend un document beaucoup plus difficile à réutiliser après un rognage, car supprimer une marque en laisse des dizaines d'autres. Réduisez l'opacité en mosaïque pour que le texte sous-jacent reste lisible.
+- Les filigranes image à fond transparent (format PNG) se fondent plus naturellement dans le contenu du document.
+- Si vous avez besoin d'un texte de filigrane différent selon les pages, décochez « Appliquer à toutes les pages » et naviguez page par page.
+
+## Outils associés
+
+- [En-tête et pied de page](./header-footer)
+- [Ajouter des tampons](./add-stamps)
+- [Numérotation Bates](./bates-numbering)
+- [Signer un PDF](./sign-pdf)
diff --git a/docs/fr/tools/adjust-colors.md b/docs/fr/tools/adjust-colors.md
new file mode 100644
index 00000000..e185b0be
--- /dev/null
+++ b/docs/fr/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Ajuster les couleurs
+description: Affinez la luminosité, le contraste, la saturation, la teinte, la température, la nuance, le gamma et le sépia de votre PDF.
+---
+
+# Ajuster les couleurs
+
+Une boîte à outils complète d'étalonnage des couleurs pour les PDF. Réglez huit paramètres indépendants (luminosité, contraste, saturation, décalage de teinte, température, nuance, gamma et sépia) avec un aperçu en direct qui se met à jour à chaque mouvement de curseur.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. L'éditeur s'ouvre avec un aperçu de la première page et un panneau de réglages des couleurs.
+3. Déplacez les curseurs pour ajuster chaque paramètre de couleur. L'aperçu se met à jour en temps réel.
+4. Cliquez sur **Réinitialiser** pour remettre tous les curseurs à leur position par défaut.
+5. Cliquez sur **Appliquer** pour traiter toutes les pages et télécharger le PDF ajusté.
+
+## Options
+
+- **Luminosité** : éclaircit ou assombrit toute la page (-100 à +100).
+- **Contraste** : augmente ou diminue la différence entre les zones claires et sombres (-100 à +100).
+- **Saturation** : renforce ou réduit l'intensité des couleurs (-100 à +100). Une valeur de -100 produit un résultat en niveaux de gris.
+- **Décalage de teinte** : fait tourner la roue chromatique pour décaler toutes les couleurs de façon uniforme.
+- **Température** : rend les couleurs plus chaudes (jaune/orange) ou plus froides (bleu).
+- **Nuance** : ajoute une dominante verte ou magenta.
+- **Gamma** : ajuste la luminosité des tons moyens à l'aide d'une courbe gamma. Les valeurs inférieures à 1,0 assombrissent les tons moyens, celles supérieures à 1,0 les éclaircissent.
+- **Sépia** : applique un effet sépia classique. Plus la valeur est élevée, plus la teinte brune est marquée.
+
+## Fonctionnalités
+
+- Huit paramètres de couleur réglables indépendamment
+- Aperçu en direct qui réagit immédiatement aux mouvements des curseurs
+- Bouton de réinitialisation pour revenir rapidement aux valeurs par défaut
+- Traitement de toutes les pages du document
+- Fonctionne avec tout contenu PDF (texte, images, graphiques)
+
+## Cas d'usage
+
+- Éclaircir une numérisation sombre ou corriger des pages surexposées
+- Désaturer un document très coloré pour réduire la consommation d'encre avant l'impression
+- Appliquer un ton sépia pour donner un aspect ancien à des certificats ou des diplômes
+- Corriger la température de couleur de photos intégrées à un PDF
+- Renforcer le contraste de documents numérisés ternes ou de mauvaise qualité
+
+## Astuces
+
+- Pour une conversion rapide en niveaux de gris, faites glisser le curseur de saturation jusqu'à -100.
+- Le curseur gamma est particulièrement utile pour améliorer la lisibilité des documents numérisés dont les tons moyens sont trop sombres ou trop clairs.
+- Comme les autres outils d'effets d'image, celui-ci rastérise chaque page. Le résultat sera basé sur des images, le texte ne sera donc pas sélectionnable.
+
+## Outils associés
+
+- [Inverser les couleurs](./invert-colors)
+- [Effet scanner](./scanner-effect)
+- [Couleur de fond](./background-color)
diff --git a/docs/fr/tools/alternate-merge.md b/docs/fr/tools/alternate-merge.md
new file mode 100644
index 00000000..e1aaf462
--- /dev/null
+++ b/docs/fr/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Alterner et mélanger les pages
+description: Fusionnez des PDF en entrelaçant les pages de chaque fichier en alternance, avec conservation des signets.
+---
+
+# Alterner et mélanger les pages
+
+Entrelacez les pages de plusieurs fichiers PDF pour que les pages alternent entre les documents. C'est l'outil à utiliser quand une fusion classique ne ferait que mettre les fichiers bout à bout, alors que vous voulez la page 1 du fichier A, puis la page 1 du fichier B, puis la page 2 du fichier A, et ainsi de suite.
+
+## Fonctionnement
+
+1. Importez au moins deux fichiers PDF à l'aide de la zone de dépôt.
+2. L'outil affiche chaque fichier avec son nombre de pages et sa taille.
+3. Faites glisser les poignées pour réordonner les fichiers dont les pages passent en premier dans la séquence d'entrelacement.
+4. Cliquez sur **Mélanger les pages** pour produire le résultat entrelacé.
+5. Le résultat est téléchargé sous le nom `alternated-mixed.pdf`.
+
+## Fonctionnalités
+
+- Entrelace les pages d'un nombre quelconque de PDF (deux minimum)
+- Réorganisation des fichiers par glisser-déposer pour contrôler la priorité d'entrelacement
+- Conserve les signets des documents sources
+- Affiche le nombre de pages et la taille de chaque fichier importé
+- Traitement dans un web worker dédié pour une interface réactive
+
+## Cas d'usage
+
+- Reconstituer des numérisations recto verso dont les pages impaires et paires ont été numérisées séparément
+- Combiner des feuilles de questions avec leur corrigé pour que chaque question soit suivie de sa réponse
+- Fusionner des documents bilingues page par page (par exemple, l'anglais d'un côté, la traduction sur la page suivante)
+- Entrelacer les numérisations de recto et de verso issues d'un scanner à passage simple face
+
+## Astuces
+
+- Si vos PDF sources n'ont pas le même nombre de pages, les pages du document le plus court seront épuisées en premier et les pages restantes du document le plus long apparaîtront à la fin.
+- L'ordre des fichiers compte : le premier fichier de la liste fournit la première page du résultat. Faites glisser pour réorganiser si nécessaire.
+
+## Outils associés
+
+- [Fusionner des PDF](./merge-pdf)
+- [Dupliquer et organiser](./organize-pdf)
+- [Scinder un PDF](./split-pdf)
diff --git a/docs/fr/tools/background-color.md b/docs/fr/tools/background-color.md
new file mode 100644
index 00000000..5f49c5f0
--- /dev/null
+++ b/docs/fr/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Couleur de fond
+description: Changez la couleur de fond de chaque page de votre PDF tout en conservant l'ensemble du contenu au-dessus.
+---
+
+# Couleur de fond
+
+Définissez une couleur de fond unie derrière tout le contenu existant de votre PDF. L'outil crée un rectangle coloré sur chaque page et superpose le contenu d'origine, de sorte que le texte, les images et les graphiques restent parfaitement visibles sur le nouveau fond.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. Choisissez une couleur de fond avec le sélecteur de couleur. La valeur par défaut est un jaune clair (#FFFFCC).
+3. Cliquez sur **Changer la couleur de fond** pour lancer le traitement.
+4. Le PDF mis à jour est téléchargé automatiquement.
+
+## Options
+
+- **Couleur de fond** : un sélecteur de couleur standard pour choisir n'importe quelle couleur unie. Jaune clair par défaut.
+
+## Fonctionnalités
+
+- Applique une couleur de fond uniforme à chaque page
+- Conserve tout le contenu d'origine (texte, images, graphiques vectoriels) au-dessus de la couche colorée
+- Conserve les dimensions d'origine des pages
+- Fonctionne avec des documents de n'importe quel nombre de pages
+
+## Cas d'usage
+
+- Ajouter un fond crème ou ivoire clair pour donner aux documents un aspect plus doux, proche du papier
+- Coder par couleur des ensembles de documents en appliquant des couleurs de fond différentes selon les catégories
+- Créer des versions visuellement distinctes d'un même document pour différents publics
+- Ajouter une légère teinte de fond pour améliorer la lisibilité lors de la projection de documents à l'écran
+
+## Astuces
+
+- Les couleurs claires et douces donnent les meilleurs résultats. Un fond très sombre peut rendre le texte difficile à lire, sauf si le texte est déjà de couleur claire.
+- Si vous voulez changer à la fois la couleur de fond et celle du texte, appliquez d'abord la couleur de fond, puis utilisez [Changer la couleur du texte](./text-color) sur le résultat.
+- Cet outil travaille au niveau de la structure du PDF (sans rastérisation), le texte reste donc sélectionnable et consultable par recherche dans le résultat.
+
+## Outils associés
+
+- [Changer la couleur du texte](./text-color)
+- [Inverser les couleurs](./invert-colors)
+- [Ajuster les couleurs](./adjust-colors)
diff --git a/docs/fr/tools/bates-numbering.md b/docs/fr/tools/bates-numbering.md
new file mode 100644
index 00000000..bb0e7082
--- /dev/null
+++ b/docs/fr/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Numérotation Bates
+description: Appliquez des numéros Bates à un ou plusieurs PDF avec des modèles personnalisables, du remplissage, des polices et un positionnement au choix.
+---
+
+# Numérotation Bates
+
+La numérotation Bates appose des identifiants séquentiels sur chaque page de vos PDF. C'est la méthode standard pour étiqueter les documents dans les procédures judiciaires, les audits et les processus de conformité. Cet outil prend en charge plusieurs fichiers et des modèles personnalisables, et produit des PDF numérotés individuellement ou une seule archive ZIP.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs fichiers PDF. Vous pouvez glisser plusieurs fichiers à la fois.
+2. Choisissez un style prédéfini ou créez un modèle personnalisé.
+3. Configurez la position, la police, la taille, la couleur et les numéros de départ.
+4. Cliquez sur **Appliquer les numéros Bates** pour lancer le traitement.
+5. Un fichier unique est téléchargé directement. Plusieurs fichiers sont téléchargés sous forme d'archive ZIP.
+
+## Options
+
+- **Style prédéfini** : choisissez parmi les formats intégrés :
+ - Pièce + Dossier + Bates + Page (par exemple «Exhibit 1 Case XYZ 000001 Page 1»)
+ - Pièce + Dossier + Bates (sans numéro de page)
+ - Dossier + Bates
+ - Numéro Bates uniquement (par exemple « 000001 »)
+ - Personnalisé (écrivez votre propre modèle)
+- **Personnaliser le style** : une chaîne de modèle utilisant des variables : `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Remplissage Bates** : nombre de chiffres (3 à 6) des numéros Bates complétés par des zéros. Visible uniquement en mode personnalisé.
+- **Position** : en-tête ou pied de page, à gauche, au centre ou à droite.
+- **Les numéros Bates commencent à** : le premier numéro Bates. 1 par défaut. La numérotation se poursuit d'un fichier à l'autre.
+- **Le compteur de fichiers commence à** : le numéro de départ de la variable `[FILE]`.
+- **Police** : Helvetica, Times New Roman ou Courier.
+- **Taille de police** : taille du texte apposé.
+- **Couleur** : sélecteur de couleur pour le texte du numéro Bates.
+
+## Fonctionnalités
+
+- Aperçu en direct montrant l'apparence des numéros Bates sur tous les fichiers importés
+- Prise en charge de plusieurs fichiers avec numérotation continue entre les documents
+- Réorganisation des fichiers par glisser-déposer pour contrôler la séquence de numérotation
+- Six positions possibles (en-tête/pied de page, gauche/centre/droite)
+- Calcul adaptatif des marges qui respecte les différents formats de page
+- Sortie ZIP pour les lots de plusieurs fichiers
+- Variables de modèle pour une flexibilité maximale
+
+## Cas d'usage
+
+- Numéroter des documents de communication de pièces dans un litige avec des numéros de pièces séquentiels
+- Numéroter des dossiers de preuves d'audit répartis sur des dizaines de fichiers
+- Appliquer des numéros de référence réglementaires à la documentation de conformité
+- Étiqueter les pièces d'une demande de brevet avec des identifiants propres au dossier
+
+## Astuces
+
+- Faites glisser les fichiers dans la liste pour les réordonner avant le traitement. La séquence de numérotation Bates suit cet ordre.
+- Utilisez la variable `[FILENAME]` pour inclure le nom du fichier d'origine dans le tampon, ce qui aide à retrouver la source des pages.
+- La zone d'aperçu se met à jour en temps réel lorsque vous modifiez les réglages, ce qui vous permet de vérifier le format avant le traitement.
+
+## Outils associés
+
+- [Numéros de page](./page-numbers)
+- [Ajouter des étiquettes de page](./add-page-labels)
+- [En-tête et pied de page](./header-footer)
diff --git a/docs/fr/tools/bmp-to-pdf.md b/docs/fr/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..1289ac06
--- /dev/null
+++ b/docs/fr/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP vers PDF
+description: Convertissez des images bitmap BMP au format PDF directement dans votre navigateur, sans aucun envoi vers un serveur.
+---
+
+# BMP vers PDF
+
+Convertissez des fichiers Windows Bitmap (BMP) en PDF. Le BMP est un format d'image non compressé que l'on trouve encore dans les systèmes anciens, l'imagerie médicale et les scanners industriels. Cet outil les convertit en PDF sans rien installer.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :--------- |
+| BMP | `.bmp` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers BMP.
+2. Vérifiez la liste des fichiers. Ajoutez-en d'autres ou retirez ceux dont vous n'avez pas besoin.
+3. Cliquez sur **Convertir en PDF**. Le résultat est téléchargé sous le nom `from_bmps.pdf`.
+
+Chaque BMP est dessiné sur un canvas, exporté en PNG, puis intégré au PDF avec pdf-lib. La taille de la page correspond aux dimensions de l'image d'origine.
+
+## Options
+
+Cet outil n'expose pas de réglages de qualité supplémentaires. Les images sont intégrées à leur résolution d'origine, en PNG sans perte, dans le PDF.
+
+## Cas d'usage
+
+- Convertir en PDF d'archivage des documents numérisés anciens stockés en BMP
+- Transformer des captures d'écran BMP d'anciennes applications Windows en documents partageables
+- Traiter les sorties de scanners médicaux ou industriels qui produisent du BMP par défaut
+- Migrer d'anciennes archives d'images vers un format plus portable
+
+## Astuces
+
+- Les fichiers BMP ne sont pas compressés et sont donc souvent volumineux. Le PDF obtenu sera nettement plus léger, car les images sont réencodées en PNG en interne.
+- Si vous avez des fichiers BMP à côté d'autres formats d'image, utilisez l'outil [Images vers PDF](./image-to-pdf) pour tout convertir en un seul lot.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
+- [TIFF vers PDF](./tiff-to-pdf)
diff --git a/docs/fr/tools/bookmark.md b/docs/fr/tools/bookmark.md
new file mode 100644
index 00000000..009f0ce2
--- /dev/null
+++ b/docs/fr/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Modifier les signets
+description: Ajoutez, modifiez, importez, exportez et supprimez les signets d'un PDF avec un éditeur visuel et la prise en charge de CSV/JSON.
+---
+
+# Modifier les signets
+
+L'éditeur de signets vous donne un contrôle total sur les signets de navigation d'un PDF (aussi appelés plan du document). Vous pouvez ajouter de nouveaux signets, modifier les existants, réorganiser la hiérarchie et importer ou exporter les données des signets aux formats CSV et JSON.
+
+## Fonctionnement
+
+1. Importez votre PDF en cliquant ou en glissant un fichier dans la zone de dépôt.
+2. Cochez éventuellement **Extraire automatiquement les signets existants** pour récupérer l'arborescence de signets actuelle du document.
+3. L'éditeur s'ouvre en vue partagée : visionneuse PDF à gauche, panneau des signets à droite.
+4. Saisissez un titre de signet et cliquez sur **Ajouter à la page** pour créer un signet pointant vers la page actuelle.
+5. Utilisez les boutons de la barre d'outils pour réorganiser, mettre en forme ou supprimer des signets.
+6. Cliquez sur **Enregistrer le PDF avec les signets** pour télécharger le fichier mis à jour.
+
+## Fonctionnalités
+
+- Visionneuse PDF visuelle avec navigation entre les pages, commandes de zoom et saisie d'un numéro de page
+- Ajout de signets sur n'importe quelle page en un clic
+- Clic direct sur le PDF pour définir une destination précise du signet (mode sélection)
+- Hiérarchie de signets imbriqués avec réorganisation par glisser-déposer
+- Opérations par lots : sélectionnez plusieurs signets pour changer la couleur, le style ou les supprimer d'un coup
+- Recherche de signets pour retrouver rapidement des entrées dans de grandes arborescences
+- Annulation et rétablissement pour toutes les modifications
+- Import de signets depuis des fichiers CSV (titre, page, niveau) ou JSON
+- Export des signets en CSV ou JSON pour une modification externe
+- Mise en forme des signets : couleur (rouge, bleu, vert, jaune, violet) et style de police (gras, italique, gras italique)
+- Navigation rapide : parcourez les pages avec les touches Page précédente/suivante
+
+## Options
+
+- **Extraire automatiquement les signets existants** : lorsque cette option est cochée, l'outil lit et affiche les signets actuels du PDF au chargement.
+- **Mode par lots** : activez-le pour sélectionner plusieurs signets et appliquer des changements de couleur, de style ou des suppressions en masse.
+- **Tout développer/réduire** : affichez ou masquez rapidement les signets enfants imbriqués.
+
+## Cas d'usage
+
+- Ajouter une table des matières à un manuel ou un ouvrage qui n'a pas de signets
+- Restructurer les signets d'un document numérisé après un traitement OCR
+- Exporter les signets en CSV, les modifier dans un tableur, puis les réimporter
+- Nettoyer des signets générés automatiquement dont les références de page sont incorrectes
+- Ajouter des signets colorés pour repérer les sections importantes d'un mémoire juridique
+
+## Conseils
+
+- Utilisez l'import CSV pour créer des signets en masse. Le format est simple : `title,page,level`, où le niveau 1 correspond au premier niveau.
+- Le mode sélection vous permet de cliquer sur un endroit précis de la page PDF pour définir la destination du signet, ce qui est plus précis que de cibler simplement un numéro de page.
+- Exportez vos signets avant de faire des modifications importantes pour avoir une sauvegarde.
+
+## Outils associés
+
+- [Table des matières](./table-of-contents)
+- [Éditeur PDF](./edit-pdf)
+- [Ajouter des étiquettes de page](./add-page-labels)
diff --git a/docs/fr/tools/cbz-to-pdf.md b/docs/fr/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..7e41ffe7
--- /dev/null
+++ b/docs/fr/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ vers PDF
+description: Convertissez des archives de bandes dessinées CBZ et CBR en PDF dans votre navigateur. Gratuit, privé, sans envoi de fichiers.
+---
+
+# CBZ vers PDF
+
+Transformez des archives de bandes dessinées en PDF. CBZ et CBR sont les formats standards des BD numériques : ce sont simplement des archives ZIP ou RAR remplies d'images. Cet outil extrait chaque page, conserve l'ordre de lecture et produit un PDF propre où chaque image devient une page en taille réelle.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----- | :-------- | :------------------------------------------------------------ |
+| CBZ | `.cbz` | Archive de BD basée sur ZIP (traitée localement avec pdf-lib) |
+| CBR | `.cbr` | Archive de BD basée sur RAR (traitée via le moteur PyMuPDF) |
+
+Le convertisseur CBZ reconnaît les images JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC et JXL contenues dans l'archive. Les formats non standard sont automatiquement convertis en PNG avant d'être intégrés.
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers CBZ ou CBR. Vous pouvez mélanger les deux formats dans un même lot.
+2. Vérifiez la liste des fichiers. Retirez ceux dont vous n'avez pas besoin, ou cliquez sur **Ajouter d'autres fichiers** pour en ajouter.
+3. Cliquez sur **Convertir en PDF**. Pour les fichiers CBZ, l'outil décompresse l'archive, trie les images par nom dans l'ordre naturel, détecte le format réel de chaque image et les intègre dans un PDF avec pdf-lib. Les fichiers CBR passent plutôt par le moteur PyMuPDF.
+4. Un seul fichier est téléchargé sous forme de PDF. Plusieurs fichiers produisent une archive ZIP nommée `comic-converted.zip`.
+
+## Options
+
+Aucune configuration n'est nécessaire. Chaque image devient une page dont la taille correspond à ses dimensions d'origine : les doubles pages restent larges et les pages simples restent étroites.
+
+## Cas d'usage
+
+- Lire des BD sur une tablette ou une application mobile qui prend en charge le PDF mais pas CBZ/CBR
+- Imprimer certaines pages d'une BD numérique
+- Archiver une collection de BD dans un format que n'importe quel lecteur de fichiers peut ouvrir
+- Partager une BD avec quelqu'un qui n'a pas de lecteur de BD dédié
+
+## Conseils
+
+- Les images de l'archive sont triées dans l'ordre naturel (ainsi `page2.jpg` vient avant `page10.jpg`). Nommez vos fichiers avec une numérotation cohérente pour obtenir le bon ordre des pages.
+- Le convertisseur détecte les formats d'image grâce à leurs signatures binaires, pas à leurs extensions. Un PNG nommé par erreur `.jpg` sera quand même intégré correctement.
+- Les fichiers CBZ sont traités entièrement dans le navigateur sans charger le moteur PyMuPDF, ils se convertissent donc plus vite que les fichiers CBR.
+
+## Outils associés
+
+- [EPUB vers PDF](./epub-to-pdf)
+- [MOBI vers PDF](./mobi-to-pdf)
+- [Images vers PDF](./image-to-pdf)
diff --git a/docs/fr/tools/change-permissions.md b/docs/fr/tools/change-permissions.md
new file mode 100644
index 00000000..525c5300
--- /dev/null
+++ b/docs/fr/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Modifier les autorisations
+description: Définissez ou modifiez les autorisations d'utilisation d'un PDF pour l'impression, la copie, la modification et l'annotation. Utilise le chiffrement AES 256 bits.
+---
+
+# Modifier les autorisations
+
+Réglez précisément ce que les destinataires peuvent faire avec votre PDF. Contrairement au chiffrement basique qui verrouille simplement le fichier derrière un mot de passe, cet outil vous permet d'autoriser ou d'interdire sélectivement l'impression, la copie, la modification, l'annotation, le remplissage de formulaires, l'assemblage de documents et l'extraction de pages, le tout appliqué par un chiffrement AES 256 bits.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Si le PDF est déjà chiffré, saisissez le **Mot de passe actuel**.
+3. Définissez un **Nouveau mot de passe utilisateur** (requis pour ouvrir) et/ou un **Nouveau mot de passe propriétaire** (contrôle les autorisations).
+4. Activez ou désactivez chaque autorisation avec les cases à cocher.
+5. Cliquez sur **Modifier les autorisations**.
+6. Téléchargez le PDF mis à jour.
+
+Si vous laissez vides les deux champs de nouveau mot de passe, l'outil déchiffre entièrement le PDF et supprime tout chiffrement et toute restriction.
+
+## Contrôles des autorisations
+
+| Autorisation | Ce qu'elle contrôle |
+| ------------------------------------------- | ---------------------------------------------------------------- |
+| **Autoriser l'impression** | Si le document peut être imprimé |
+| **Autoriser la copie** | Si le texte et les images peuvent être sélectionnés et copiés |
+| **Autoriser la modification** | Si le contenu du document peut être modifié |
+| **Autoriser l'annotation** | Si des commentaires, surlignages et tampons peuvent être ajoutés |
+| **Autoriser le remplissage de formulaires** | Si les champs de formulaire interactifs peuvent être remplis |
+| **Autoriser l'assemblage du document** | Si des pages peuvent être insérées, supprimées ou pivotées |
+| **Autoriser l'extraction de pages** | Si des pages individuelles peuvent être extraites |
+
+Toutes les autorisations nécessitent un mot de passe propriétaire pour être appliquées. Sans mot de passe propriétaire, les indicateurs d'autorisation sont ignorés par la plupart des lecteurs PDF.
+
+## Comment fonctionnent les autorisations dans un PDF
+
+Les autorisations PDF font partie de la spécification de chiffrement. Elles sont stockées sous forme d'indicateurs binaires dans le dictionnaire de chiffrement et appliquées par les lecteurs PDF conformes. La distinction essentielle :
+
+- **Mot de passe utilisateur** : requis pour ouvrir le fichier.
+- **Mot de passe propriétaire** : requis pour modifier les autorisations ou lever les restrictions. Sans lui, les indicateurs d'autorisation déterminent les opérations que l'utilisateur peut effectuer.
+
+Si vous ne définissez qu'un mot de passe propriétaire (sans mot de passe utilisateur), tout le monde peut ouvrir le fichier, mais sera limité aux opérations autorisées. Si vous définissez les deux, le fichier exige un mot de passe pour être ouvert et reste restreint après l'authentification.
+
+## Cas d'usage
+
+- Distribuer un rapport qui peut être consulté et imprimé, mais pas modifié ni copié
+- Partager un modèle de contrat que les destinataires peuvent remplir sans le modifier
+- Publier un catalogue PDF dont la copie des images est désactivée
+- Autoriser l'annotation d'un brouillon en relecture tout en empêchant les changements de structure
+
+## Conseils
+
+- Pour être efficace, définissez toujours un mot de passe propriétaire. Les autorisations sans mot de passe propriétaire ne peuvent pas être appliquées.
+- Certains outils PDF tiers ignorent les indicateurs d'autorisation. Pour une protection plus solide, envisagez de rastériser le PDF ou d'utiliser un DRM.
+- Utilisez cet outil pour faire passer d'anciens PDF chiffrés en RC4 à l'AES 256.
+
+## Outils associés
+
+- [Protéger un PDF](./protect-pdf) : protection simple par mot de passe, sans autorisations détaillées
+- [Déverrouiller un PDF](./unlock-pdf) : supprime entièrement le chiffrement
+- [Supprimer les restrictions](./remove-restrictions) : retire toutes les restrictions lorsque vous avez le mot de passe propriétaire
diff --git a/docs/fr/tools/combine-single-page.md b/docs/fr/tools/combine-single-page.md
new file mode 100644
index 00000000..1e4f72a0
--- /dev/null
+++ b/docs/fr/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Combiner en une seule page
+description: Assemblez toutes les pages d'un PDF en un seul défilement continu, vertical ou horizontal.
+---
+
+# Combiner en une seule page
+
+Fusionnez toutes les pages d'un PDF en une seule longue page. Les pages sont assemblées verticalement (comme un rouleau) ou horizontalement (côte à côte), pour produire une page continue en sortie.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Choisissez la direction de la mise en page : **Vertical** (pages empilées de haut en bas) ou **Horizontal** (pages placées côte à côte).
+3. Définissez l'espacement entre les pages en points.
+4. Choisissez une couleur de fond pour les espaces entre les pages.
+5. Activez éventuellement les séparateurs (fines lignes entre les pages) et réglez leur épaisseur et leur couleur.
+6. Cliquez sur le bouton de traitement. Le résultat est un PDF d'une seule page.
+
+## Fonctionnalités
+
+- Assemblage des pages à la verticale ou à l'horizontale
+- Espacement configurable entre les pages
+- Sélecteur de couleur de fond pour les zones d'espacement
+- Lignes de séparation facultatives avec épaisseur et couleur réglables
+- Rendu de chaque page d'origine en pleine résolution sur le canevas combiné
+
+## Options
+
+| Option | Description |
+| --------------------------- | ------------------------------------------------- |
+| **Sens de la mise en page** | Verticale (empilées) ou horizontale (côte à côte) |
+| **Espacement des pages** | Écart entre les pages en points |
+| **Couleur de fond** | Couleur de la zone entre les pages |
+| **Ajouter un séparateur** | Active de fines lignes entre les pages |
+| **Épaisseur du séparateur** | Épaisseur de la ligne en points |
+| **Couleur du séparateur** | Couleur des lignes de séparation |
+
+## Cas d'usage
+
+- Créer une longue image unique à partir d'une maquette ou d'un wireframe de plusieurs pages
+- Générer une vue défilante continue d'un document pour l'intégrer à un site web
+- Assembler une BD ou un storyboard de plusieurs pages en une seule bande
+- Produire une vue panoramique de pages successives pour une relecture
+
+## Conseils
+
+- L'orientation verticale convient mieux aux documents à pages en portrait. L'horizontale est préférable pour le contenu en paysage.
+- Les documents volumineux comportant beaucoup de pages produiront un résultat très haut ou très large. Certaines visionneuses PDF peuvent avoir du mal avec des pages uniques extrêmement grandes.
+- Ajouter des séparateurs d'une couleur contrastée permet de voir facilement où une page d'origine se termine et où la suivante commence.
+
+## Outils associés
+
+- [PDF N-up](./n-up-pdf)
+- [Fusionner des PDF](./merge-pdf)
+- [Diviser les pages](./divide-pages)
diff --git a/docs/fr/tools/compare-pdfs.md b/docs/fr/tools/compare-pdfs.md
new file mode 100644
index 00000000..a4210d1e
--- /dev/null
+++ b/docs/fr/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Comparer des PDF
+description: Comparez deux documents PDF côte à côte ou en mode superposition, avec détection et classement détaillés des modifications.
+---
+
+# Comparer des PDF
+
+Importez deux PDF et voyez exactement ce qui a changé entre eux. L'outil associe intelligemment les pages, détecte les différences de texte, d'images, d'annotations, d'en-têtes et de mise en forme, puis les présente en vue côte à côte ou en superposition.
+
+## Fonctionnement
+
+1. Importez deux fichiers PDF : l'original (à gauche) et la version révisée (à droite).
+2. L'outil associe les pages des deux documents à l'aide de signatures de contenu.
+3. Choisissez un mode d'affichage : **Côte à côte** ou **Superposition**.
+4. Naviguez entre les paires de pages avec les commandes de pagination.
+5. Les différences sont surlignées et classées. Utilisez le panneau de filtres pour vous concentrer sur certains types de modifications.
+6. Exportez éventuellement la comparaison sous forme de rapport PDF.
+
+## Fonctionnalités
+
+- Association automatique des pages selon la similarité du contenu
+- Vues de comparaison côte à côte et en superposition
+- Classement des modifications : texte, image, en-tête/pied de page, annotation, mise en forme, arrière-plan
+- Filtres par catégorie pour afficher ou masquer certains types de modifications
+- Recherche dans les modifications de texte avec filtrage par requête
+- Prise en charge de l'OCR pour comparer des documents numérisés
+- Commandes de zoom pour une inspection détaillée
+- Défilement synchronisé entre les panneaux en mode côte à côte
+- Export des résultats de la comparaison en PDF
+
+## Options
+
+| Option | Description |
+| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| **Mode d'affichage** | Côte à côte ou superposition |
+| **OCR** | Active/désactive l'OCR pour la comparaison de documents numérisés |
+| **Langue de l'OCR** | Langue utilisée pour l'extraction du texte par OCR |
+| **Filtres par catégorie** | Active ou masque l'affichage des modifications de texte, d'image, d'en-tête/pied de page, d'annotation, de mise en forme et d'arrière-plan |
+| **Portée des modifications** | En mode superposition, filtre entre toutes les modifications ou le contenu uniquement |
+| **Zoom** | Ajuste le niveau d'agrandissement pour une inspection détaillée |
+
+## Cas d'usage
+
+- Relire les révisions d'un contrat pour trouver exactement ce qui a changé entre deux versions
+- Comparer des maquettes de design pour vérifier que les exports PDF correspondent aux attentes
+- Auditer les modifications de documents dans des secteurs réglementés où chaque changement doit être tracé
+- Vérifier qu'un processus de conversion PDF a fidèlement préservé le contenu d'origine
+- Comparer des documents traduits à la source pour repérer les changements de mise en page
+
+## Conseils
+
+- La vue en superposition empile les deux documents l'un sur l'autre, ce qui rend immédiatement visibles les différences spatiales (éléments déplacés, images redimensionnées).
+- Activez l'OCR pour comparer des documents numérisés sans couche de texte. Le moteur de comparaison extraira le texte des images de page.
+- Utilisez les filtres par catégorie pour vous concentrer sur l'essentiel. Par exemple, masquez les changements de mise en forme si seules les différences de contenu textuel vous intéressent.
+
+## Outils associés
+
+- [Afficher les métadonnées](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [Fusionner des PDF](./merge-pdf)
diff --git a/docs/fr/tools/compress-pdf.md b/docs/fr/tools/compress-pdf.md
new file mode 100644
index 00000000..3a172dd0
--- /dev/null
+++ b/docs/fr/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Compresser un PDF
+description: Réduisez la taille d'un PDF jusqu'à 90 % avec le moteur Hyper Compress. Prend en charge les tailles cibles, le traitement par lots et des réglages de qualité personnalisés.
+---
+
+# Compresser un PDF
+
+Réduisez le poids de vos fichiers PDF sans les abîmer. Compresser un PDF s'appuie sur [Hyper Compress](https://www.bentopdf.com/hyper-compress), le moteur de compression propre à BentoPDF. Il recompresse les images, crée des sous-ensembles de polices et les fusionne, et supprime le superflu comme les miniatures intégrées et les données privées d'applications. Le PDF reste pleinement fonctionnel : le texte reste sélectionnable, les liens et les champs de formulaire continuent de fonctionner.
+
+Hyper Compress est compilé en WebAssembly et livré avec BentoPDF, la compression fonctionne donc hors ligne et dans les déploiements isolés du réseau, sans configuration supplémentaire.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers.
+2. Choisissez un **Niveau de compression** : Faible, Moyen, Élevé ou Sans perte.
+3. Saisissez éventuellement une **Taille de fichier cible**, ou développez **Paramètres personnalisés** pour un contrôle précis, y compris **Convertir en niveaux de gris**.
+4. Cliquez sur **Compresser un PDF**. Pour plusieurs fichiers, vous obtenez un seul téléchargement ZIP.
+
+## Documents particuliers
+
+- **Les PDF signés numériquement** sont renvoyés tels quels, car toute modification invaliderait la signature. Activez **Ignorer la protection du contenu** dans les paramètres personnalisés pour supprimer les signatures et les compresser ; la signature visible reste sur la page, mais le fichier n'est plus signé.
+- **Les fichiers PDF/A** perdent leur étiquette PDF/A après la compression, afin que le fichier ne prétende jamais à une conformité qu'il ne respecte plus. Activez **Préserver le PDF/A** dans les paramètres personnalisés pour garder le fichier conforme.
+- **Les PDF protégés par mot de passe** affichent un champ de mot de passe sur la carte de leur fichier. Saisissez-y le mot de passe et Hyper Compress ouvre lui-même le fichier, sans étape de déverrouillage séparée. Avec au moins deux fichiers verrouillés, un champ partagé déverrouille tous les fichiers qui utilisent le même mot de passe. La copie compressée n'a pas de mot de passe ; utilisez [Protéger un PDF](./protect-pdf) pour en ajouter un à nouveau.
+- **Les scans sans couche de texte** peuvent être réduits davantage avec **Rastériser les pages** dans les paramètres personnalisés, qui remplace chaque page par une image optimisée. Cette option est ignorée pour tout document contenant du texte sélectionnable, y compris les scans traités par OCR, sauf si **Ignorer la protection du contenu** est activé. Les pages de texte deviennent alors aussi des images : le texte n'est plus sélectionnable et les liens ne fonctionnent plus.
+
+## Niveaux de compression
+
+| Niveau | Qualité d'image | Résolution max. | Idéal pour |
+| -------------- | --------------- | --------------- | ------------------------------------------ |
+| **Faible** | 80 | 200 DPI | Préserver la qualité visuelle |
+| **Moyen** | 50 | 150 DPI | Documents courants |
+| **Élevé** | 20 | 72 DPI | Pièces jointes d'e-mail, envois sur le web |
+| **Sans perte** | Images intactes | Inchangée | Copies d'archivage |
+
+Le niveau Élevé retire aussi l'incorporation des 14 polices PDF standard, ainsi que des polices similaires comme Arial lorsque c'est sans risque.
+
+## Taille de fichier cible
+
+Saisissez une taille en Ko ou en Mo et Hyper Compress recherche la meilleure qualité d'image qui tienne encore dans cette taille, en partant du niveau choisi. Si le document ne peut pas devenir aussi petit, vous obtenez la plus petite version possible et un message vous l'indique. Les pages dédiées, comme [Compresser un PDF à 1 Mo](https://www.bentopdf.com/compress-pdf-to-1mb), s'ouvrent avec la cible déjà renseignée.
+
+## Paramètres personnalisés
+
+Développez le panneau Paramètres personnalisés pour régler directement Hyper Compress. Choisir un niveau de compression réinitialise ces paramètres aux valeurs de ce niveau, et en modifier un fait passer le niveau sur Personnalisé.
+
+- **Ignorer la protection du contenu** : par défaut, Hyper Compress laisse intacts les PDF signés et ne rastérise pas les pages contenant du texte. Activer cette option contourne les deux. Elle reste activée lorsque vous changez de niveau.
+
+- **Images** : qualité d'image, résolution maximale, rééchantillonnage forcé, réduction des couleurs, découpe des zones d'image invisibles, suppression des images alternatives, simplification des profils de couleur, JPEG 2000 et mode sans perte
+- **Polices** : création de sous-ensembles, fusion des doublons et retrait de l'incorporation des polices standard et de leurs équivalents
+- **Contenu** : aplatissement des annotations, des champs de formulaire ou des liens
+- **Nettoyage** : suppression des miniatures, des données d'application, des fils d'articles, des informations de capture web, de l'arbre de structure ou des intentions de sortie
+- **Rastérisation** : remplacement des pages par des images, pour les scans composés uniquement d'images ; ignorée lorsque le document contient du texte sélectionnable
+- **Sortie** : Préserver le PDF/A, et compression Brotli pour les lecteurs PDF 2.0 qui la prennent en charge
+
+## Cas d'usage
+
+- Ramener un rapport de 50 Mo sous la limite de taille d'une pièce jointe d'e-mail
+- Faire passer un scan sous la limite d'envoi stricte d'un portail grâce à une taille de fichier cible
+- Optimiser des PDF marketing pour des téléchargements plus rapides sur un site web
+- Archiver de gros ensembles de documents lorsque le coût de stockage compte
+- Réduire la consommation de données mobiles lors du partage de PDF via des applications de messagerie
+
+## Conseils
+
+- Commencez par Moyen. Si le résultat est encore trop gros, définissez une taille de fichier cible ou passez à Élevé.
+- Pour un scan sans couche de texte, activez Rastériser les pages dans les paramètres personnalisés.
+- Convertir en niveaux de gris, dans les paramètres personnalisés, peut réduire la taille des documents très colorés.
+
+## Outils associés
+
+- [Optimiser pour le web](./linearize-pdf) : optimisez le PDF compressé pour un affichage web rapide
+- [Rastériser le PDF](./rasterize-pdf) : convertissez les pages en images à un DPI précis, y compris les pages contenant du texte
+- [Réparer un PDF](./repair-pdf) : réparez un PDF endommagé par une compression effectuée ailleurs
+- [Supprimer les métadonnées](./remove-metadata) : supprimez les données cachées pour préserver la confidentialité
diff --git a/docs/fr/tools/crop-pdf.md b/docs/fr/tools/crop-pdf.md
new file mode 100644
index 00000000..a9eaf334
--- /dev/null
+++ b/docs/fr/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Rogner un PDF
+description: Rognez visuellement les pages d'un PDF en dessinant une zone de rognage sur chaque page avec un éditeur basé sur Cropper.js.
+---
+
+# Rogner un PDF
+
+Réduisez les marges de vos pages PDF grâce à une interface de rognage visuelle. Dessinez un rectangle de rognage directement sur chaque page, prévisualisez le résultat et appliquez le rognage. Vous pouvez définir des zones de rognage différentes selon les pages ou appliquer le même rognage à tout le document.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. L'éditeur de rognage s'ouvre et affiche la première page avec une superposition de rognage déplaçable.
+3. Ajustez le rectangle de rognage en faisant glisser ses bords ou ses coins.
+4. Utilisez les boutons de navigation pour passer d'une page à l'autre et définir la zone de rognage de chacune.
+5. Cliquez sur **Rogner** pour appliquer le rognage et télécharger le résultat.
+
+## Fonctionnalités
+
+- Éditeur de rognage visuel basé sur Cropper.js, avec des poignées pour un réglage précis
+- Navigation page par page pour définir des zones de rognage individuelles
+- Mémorisation des réglages de rognage par page, pour définir des rognages différents selon les pages
+- Aperçu en direct de la zone de rognage sélectionnée
+- Prise en charge des PDF de toute taille de page ou orientation
+
+## Cas d'usage
+
+- Supprimer les larges marges de documents numérisés pour se concentrer sur la zone de contenu
+- Retirer les traits de coupe ou les repères de calage des PDF de prépresse
+- Rogner des diapositives de cours pour supprimer la zone des notes du présentateur
+- Supprimer les en-têtes ou pieds de page de chaque page avant de partager un extrait de document
+- Redimensionner des pages pour les adapter à un affichage ou une mise en page d'impression précis
+
+## Conseils
+
+- La superposition de rognage peut être librement redimensionnée et repositionnée. Faites glisser les coins pour un redimensionnement proportionnel ou les bords pour un ajustement sur un seul axe.
+- Pour les documents dont chaque page nécessite le même rognage, définissez-le sur la première page : l'outil mémorise votre zone de rognage au fil de la navigation entre les pages.
+- Si vous devez uniformiser la taille des pages plutôt que rogner visuellement, l'outil Uniformiser la taille des pages peut mieux convenir.
+
+## Outils associés
+
+- [Éditeur PDF](./edit-pdf)
+- [Numéros de page](./page-numbers)
+- [Supprimer les pages blanches](./remove-blank-pages)
diff --git a/docs/fr/tools/csv-to-pdf.md b/docs/fr/tools/csv-to-pdf.md
new file mode 100644
index 00000000..ff0f0d0c
--- /dev/null
+++ b/docs/fr/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV vers PDF
+description: Convertissez des fichiers tableur CSV en tableaux PDF mis en forme, directement dans votre navigateur.
+---
+
+# CSV vers PDF
+
+Transformez des fichiers CSV en documents PDF propres et mis en forme. Chaque CSV est analysé et rendu sous forme de tableau dans le PDF obtenu. C'est utile lorsque vous devez imprimer ou partager des données tabulaires sans que le destinataire ait besoin d'un tableur.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :--------- |
+| CSV | `.csv` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez un ou plusieurs fichiers CSV.
+2. Vérifiez la liste des fichiers. Ajoutez-en d'autres ou retirez ceux dont vous ne voulez pas.
+3. Cliquez sur **Convertir en PDF**. Un indicateur de progression affiche l'état de la conversion.
+4. Un seul fichier est téléchargé directement sous forme de PDF. Plusieurs fichiers sont regroupés dans `csv-converted.zip`.
+
+## Options
+
+Cet outil n'a pas de configuration supplémentaire. Le CSV est automatiquement analysé et mis en forme sous forme de tableau.
+
+## Résultat
+
+| Nombre de fichiers | Résultat |
+| :----------------- | :------------------------------------------------------------- |
+| 1 fichier | Téléchargement d'un seul PDF (par ex. `data.pdf`) |
+| 2 fichiers ou plus | Archive ZIP (`csv-converted.zip`) contenant un PDF par fichier |
+
+## Cas d'usage
+
+- Convertir des rapports de base de données exportés en tableaux PDF imprimables
+- Partager des données financières ou des listes d'inventaire avec des personnes qui n'ont pas Excel
+- Créer des versions PDF de fichiers journaux CSV pour la documentation de conformité
+- Imprimer des listes d'adresses, des feuilles de notes ou toute donnée tabulaire stockée au format CSV
+
+## Conseils
+
+- Pour de meilleurs résultats, assurez-vous que votre CSV utilise des séparateurs virgule standard. L'outil suit les conventions courantes d'analyse des CSV.
+- Si votre CSV comporte beaucoup de colonnes, le tableau peut être compressé pour tenir dans la largeur de la page. Pensez à diviser les jeux de données larges en plusieurs fichiers.
+- Pour les fichiers Excel (`.xls`, `.xlsx`), utilisez l'outil [Excel vers PDF](./excel-to-pdf), qui préserve la mise en forme du tableur et les feuilles multiples.
+
+## Outils associés
+
+- [Excel vers PDF](./excel-to-pdf)
+- [Texte vers PDF](./txt-to-pdf)
+- [JSON vers PDF](./json-to-pdf)
diff --git a/docs/fr/tools/delete-pages.md b/docs/fr/tools/delete-pages.md
new file mode 100644
index 00000000..4648ec44
--- /dev/null
+++ b/docs/fr/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Supprimer des pages
+description: Supprimez des pages précises d'un PDF par numéro de page, plage ou sélection visuelle de miniatures.
+---
+
+# Supprimer des pages
+
+Retirez les pages indésirables d'un document PDF. Indiquez les pages à supprimer en saisissant des numéros ou des plages de pages, ou cliquez directement sur les miniatures pour les marquer en vue de la suppression.
+
+## Fonctionnement
+
+1. Importez un fichier PDF. L'outil affiche des miniatures de toutes les pages.
+2. Saisissez les pages à supprimer dans le champ de texte avec la syntaxe de plages (par ex. `2, 5-8`), ou cliquez sur les miniatures pour les activer ou désactiver.
+3. Les pages marquées sont mises en évidence pour que vous puissiez confirmer votre sélection.
+4. Cliquez sur le bouton de traitement. Un nouveau PDF est créé sans les pages sélectionnées.
+
+## Fonctionnalités
+
+- Sélection des pages par texte avec la syntaxe de plages (`2, 5-8, 12`)
+- Grille de miniatures pour une suppression par simple clic
+- Surbrillance en temps réel des pages marquées pour la suppression
+- Validation de la saisie par rapport au nombre réel de pages
+- Conserve toutes les pages non supprimées dans leur ordre d'origine
+
+## Cas d'usage
+
+- Supprimer les pages blanches ou de remplissage d'un document numérisé
+- Retirer les pages de couverture ou les annexes avant de partager un document
+- Nettoyer les pages de brouillon laissées par erreur dans un PDF final
+- Supprimer les pages contenant des informations sensibles avant diffusion
+
+## Conseils
+
+- Supprimer des pages n'affecte ni le contenu ni la mise en forme des pages restantes. Le résultat est une copie fidèle de l'original, moins les pages retirées.
+- Si vous voulez conserver uniquement certaines pages plutôt que d'en retirer, [Extraire des pages](./extract-pages) convient mieux.
+- L'affichage des miniatures se charge progressivement, ce qui garde les gros documents réactifs.
+
+## Outils associés
+
+- [Extraire des pages](./extract-pages)
+- [Dupliquer et organiser](./organize-pdf)
+- [Scinder un PDF](./split-pdf)
diff --git a/docs/fr/tools/deskew-pdf.md b/docs/fr/tools/deskew-pdf.md
new file mode 100644
index 00000000..e1a4f588
--- /dev/null
+++ b/docs/fr/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Redresser un PDF
+description: Redressez automatiquement les pages inclinées des PDF numérisés grâce à la détection d'inclinaison d'OpenCV. Seuil et DPI réglables.
+---
+
+# Redresser un PDF
+
+Les documents numérisés sont rarement parfaitement droits. Même une légère inclinaison réduit la précision de l'OCR et donne un aspect négligé à l'impression. Cet outil utilise les algorithmes de traitement d'image d'OpenCV pour détecter l'angle d'inclinaison de chaque page et la remettre d'aplomb.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs PDF numérisés.
+2. Définissez le **Seuil d'inclinaison** : les pages dont l'inclinaison détectée est inférieure à cette valeur ne sont pas modifiées.
+3. Choisissez une **Qualité de traitement (DPI)** : un DPI plus élevé améliore la précision de la détection mais prend plus de temps.
+4. Cliquez sur **Redresser un PDF**.
+5. Après le traitement, un panneau de résultats affiche l'angle détecté pour chaque page et indique si elle a été corrigée.
+
+## Options
+
+| Paramètre | Valeurs | Par défaut |
+| ----------------------- | ------------------------- | ---------- |
+| **Seuil d'inclinaison** | 0,1, 0,5, 1,0, 2,0 degrés | 0,5 |
+| **DPI de traitement** | 100, 150, 200, 300 | 150 |
+
+## Comment fonctionne la détection d'inclinaison
+
+L'outil rend chaque page sous forme d'image au DPI sélectionné, puis utilise OpenCV pour détecter les angles dominants des lignes du contenu. Si l'inclinaison détectée dépasse le seuil, la page est pivotée de l'angle inverse pour la redresser. Les pages en dessous du seuil sont transmises sans modification.
+
+## Cas d'usage
+
+- Nettoyer des contrats ou des documents juridiques numérisés par lots
+- Préparer des reçus ou des factures numérisés pour un traitement OCR
+- Redresser des pages issues d'un scanner à plat dont le placement du papier est irrégulier
+- Améliorer la qualité visuelle de documents d'archives numérisés
+
+## Conseils
+
+- Abaissez le seuil à 0,1 degré si vous avez besoin d'un alignement parfait au pixel près pour l'OCR.
+- 150 DPI est rapide et précis pour la plupart des documents. Utilisez 300 DPI pour du texte très petit ou des pages très détaillées.
+- Le redressement fonctionne mieux sur les documents avec des lignes de texte horizontales nettes. Il peut avoir du mal avec les pages composées surtout d'images ou d'éléments de design en diagonale.
+
+## Outils associés
+
+- [Rastériser le PDF](./rasterize-pdf) : convertissez le résultat redressé en PDF à plat basé sur des images
+- [Compresser un PDF](./compress-pdf) : réduisez la taille du fichier après le redressement
+- [Réparer un PDF](./repair-pdf) : corrigez les problèmes de structure dans les PDF numérisés
diff --git a/docs/fr/tools/digital-sign-pdf.md b/docs/fr/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..59cd6d78
--- /dev/null
+++ b/docs/fr/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Signature numérique PDF
+description: Ajoutez des signatures numériques cryptographiques aux PDF avec des certificats X.509. Prend en charge les formats PKCS#12 et PEM, avec options de signature visible.
+---
+
+# Signature numérique PDF
+
+Une signature numérique est la preuve cryptographique qu'une personne précise a signé un document et que ce dernier n'a pas été altéré depuis. Contrairement à une signature dessinée (qui n'est qu'une image), une signature numérique utilise des certificats X.509 et les standards PKCS#7 pour garantir une authenticité et une intégrité vérifiables.
+
+BentoPDF applique les signatures numériques entièrement dans votre navigateur. Votre clé privée ne quitte jamais votre appareil.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Importez votre fichier de certificat (.pfx, .p12 ou .pem).
+3. Saisissez le mot de passe du certificat pour le déverrouiller. L'outil affiche le sujet du certificat, l'émetteur et la période de validité.
+4. Configurez éventuellement les métadonnées de la signature (motif, lieu, coordonnées).
+5. Activez éventuellement une **signature visible** avec personnalisation de la position, de la taille, de l'image et du texte.
+6. Cliquez sur **Signer le PDF**.
+
+## Formats de certificat pris en charge
+
+| Format | Extensions | Description |
+| ----------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Bundle standard du secteur contenant la clé privée et la chaîne de certificats. Format le plus courant. |
+| **PEM** | .pem | Format texte. Doit contenir à la fois le certificat et la clé privée dans un seul fichier. Prend en charge les clés privées chiffrées. |
+
+## Options de signature visible
+
+Lorsqu'elle est activée, un bloc de signature visible est rendu sur la page du PDF :
+
+- **Position** : coordonnées X/Y et largeur/hauteur en points
+- **Page** : première page, dernière page, toutes les pages ou un numéro de page précis
+- **Image** : importez une image PNG, JPG ou WebP (votre signature manuscrite, le sceau de votre entreprise, etc.)
+- **Texte** : texte personnalisé avec couleur et taille de police configurables. Si aucune image ni aucun texte n'est fourni, l'outil génère automatiquement un texte à partir du nom commun du certificat et de la date du jour.
+
+## Métadonnées de la signature
+
+- **Motif** : pourquoi le document a été signé (par ex. « Approuvé », « Relu »)
+- **Lieu** : où la signature a eu lieu (par ex. « Paris »)
+- **Coordonnées** : comment joindre le signataire (par ex. une adresse e-mail)
+
+## Remarque sur la connexion Internet
+
+La signature peut nécessiter une connexion Internet. La bibliothèque de signature récupère la chaîne de certificats à partir des URL intégrées dans l'extension Authority Information Access (AIA) de votre certificat. Si ces serveurs sont inaccessibles, la signature échouera pour les certificats qui exigent une validation de la chaîne.
+
+## Cas d'usage
+
+- Signer des contrats, des propositions et des accords avec des signatures numériques juridiquement contraignantes
+- Certifier des documents officiels dans des flux de travail qui exigent une authentification basée sur une PKI
+- Signer des factures PDF pour la conformité réglementaire (de nombreux pays de l'UE exigent des factures électroniques signées numériquement)
+- Ajouter une approbation organisationnelle à des plans d'ingénierie ou à des documents qualité
+
+## Conseils
+
+- Les certificats auto-signés conviennent pour des tests, mais afficheront des avertissements dans Adobe Reader. Utilisez un certificat d'une autorité de certification de confiance pour les documents en production.
+- La signature visible est purement visuelle. La signature cryptographique est intégrée que le bloc visible soit activé ou non.
+- Vérifiez votre PDF signé avec l'outil Valider la signature PDF pour confirmer que la signature est intacte.
+
+## Outils associés
+
+- [Valider la signature PDF](./validate-signature-pdf) : vérifiez les signatures numériques des PDF signés
+- [Aplatir le PDF](./flatten-pdf) : aplatissez les formulaires avant de signer pour empêcher les modifications
+- [Protéger un PDF](./protect-pdf) : ajoutez une protection par mot de passe en plus de la signature numérique
+- [Supprimer les métadonnées](./remove-metadata) : supprimez les métadonnées avant de signer
diff --git a/docs/fr/tools/divide-pages.md b/docs/fr/tools/divide-pages.md
new file mode 100644
index 00000000..ebac7b93
--- /dev/null
+++ b/docs/fr/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Diviser les pages
+description: Divisez les pages d'un PDF horizontalement ou verticalement en pages plus petites.
+---
+
+# Diviser les pages
+
+Coupez chaque page d'un PDF en deux moitiés, horizontalement ou verticalement. C'est utile lorsqu'une même page contient du contenu qui devrait être réparti sur des pages distinctes, par exemple une mise en page à deux colonnes numérisée comme une seule page large.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Choisissez la direction de la division : **Verticale** (moitiés gauche/droite) ou **Horizontale** (moitiés haut/bas).
+3. Indiquez éventuellement une plage de pages pour limiter les pages à diviser. Laissez vide pour diviser toutes les pages.
+4. Cliquez sur le bouton de traitement pour générer le PDF divisé.
+
+## Fonctionnalités
+
+- Division verticale : coupe chaque page en moitiés gauche et droite
+- Division horizontale : coupe chaque page en moitiés haut et bas
+- Filtre par plage de pages pour diviser uniquement certaines pages
+- Les pages non ciblées passent sans modification
+- Préserve la qualité du contenu sans nouveau rendu
+
+## Cas d'usage
+
+- Séparer des pages numérisées en deux par feuille (par ex. un scan de livre avec la page gauche et la page droite sur une même feuille)
+- Diviser un PDF en paysage au contenu côte à côte en pages portrait individuelles
+- Découper de grandes infographies ou affiches en sections haute et basse distinctes
+- Préparer des documents grand format pour une impression sur papier standard
+
+## Conseils
+
+- Si le contenu de vos pages est réparti de façon inégale, la division se fait quand même exactement au milieu. Pour des divisions asymétriques, utilisez plutôt [Rogner un PDF](./crop-pdf).
+- Combinez cet outil avec [Faire pivoter un PDF](./rotate-pdf) si vos pages doivent être pivotées avant ou après la division.
+
+## Outils associés
+
+- [Scinder un PDF](./split-pdf)
+- [Rogner un PDF](./crop-pdf)
+- [PDF N-up](./n-up-pdf)
+- [Posteriser un PDF](./posterize-pdf)
diff --git a/docs/fr/tools/duplex-collate.md b/docs/fr/tools/duplex-collate.md
new file mode 100644
index 00000000..ef07693e
--- /dev/null
+++ b/docs/fr/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Assembler un scan recto/verso
+description: Réordonnez les PDF de scans recto/verso dont les pages de recto et de verso sont dans des blocs séparés pour obtenir le bon ordre recto/verso.
+---
+
+# Assembler un scan recto/verso
+
+Assembler un scan recto/verso est conçu pour les flux de numérisation avec chargeur automatique de documents (ADF) où un PDF contient deux blocs de pages :
+
+- tous les rectos d'abord
+- tous les versos ensuite
+
+Au lieu de scinder et de réassembler manuellement, cet outil entrelace les deux blocs dans l'ordre de lecture naturel : recto1, verso1, recto2, verso2, et ainsi de suite.
+
+## Fonctionnement
+
+1. Importez un seul PDF créé par une numérisation recto/verso d'une pile.
+2. Définissez le point de séparation où le bloc des rectos se termine.
+3. Choisissez le traitement du bloc des versos :
+ - **Inverser le bloc des versos** (fréquent lorsque la pile est retournée avant de numériser les versos)
+ - **Conserver le bloc des versos tel quel**
+4. Cliquez sur **Assembler le PDF** pour télécharger le résultat réordonné.
+
+## Options
+
+- **Détection automatique de la séparation (moitié)** : place le point de séparation à `ceil(totalPages / 2)`.
+- **Avertissement de page impaire** : avertit lorsque le nombre total de pages est impair (souvent un décalage de numérisation).
+- **Confirmation de blocs inégaux** : demande une confirmation lorsque les blocs de rectos et de versos n'ont pas la même taille.
+- **Export groupé** : scinde le résultat assemblé en PDF distincts selon le nombre de pages du document d'origine et le télécharge au format ZIP.
+
+## Comportement de sortie
+
+- **Par défaut** : un seul PDF en sortie (un PDF en entrée, un PDF en sortie).
+- **Mode groupé** : la sortie est découpée selon votre valeur de pages par document ; si plusieurs morceaux sont produits, ils sont téléchargés dans un seul ZIP, sinon un seul PDF est téléchargé.
+
+Si les blocs sont de taille inégale, les pages appariées sont assemblées en premier, puis les pages restantes sans paire sont ajoutées à la fin.
+
+## Cas d'usage courants
+
+- Rétablir l'ordre après avoir numérisé une pile de formulaires recto verso en deux passes.
+- Reconstituer des liasses recto/verso à partir de scanners de bureau qui produisent tous les rectos puis tous les versos.
+- Post-traiter des numérisations d'archives avant de les scinder en fichiers par document.
+
+## Conseils
+
+- La plupart des lots recto/verso devraient avoir un nombre total de pages pair.
+- Si les versos semblent inversés dans le résultat, basculez entre **Inverser le bloc des versos** et **Conserver le bloc des versos tel quel**.
+- Pour des originaux de 2 pages (recto + verso), utilisez l'export groupé avec `2` pages par document.
+
+## Outils associés
+
+- [Alterner et mélanger les pages](./alternate-merge)
+- [Scinder un PDF](./split-pdf)
+- [Fusionner des PDF](./merge-pdf)
+- [Dupliquer et organiser](./organize-pdf)
diff --git a/docs/fr/tools/edit-attachments.md b/docs/fr/tools/edit-attachments.md
new file mode 100644
index 00000000..58e0365d
--- /dev/null
+++ b/docs/fr/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Gérer les pièces jointes
+description: Affichez et supprimez sélectivement les fichiers joints intégrés dans un document PDF.
+---
+
+# Gérer les pièces jointes
+
+Inspectez et gérez les fichiers joints d'un PDF. L'outil liste chaque fichier intégré avec son nom et son niveau de rattachement, puis vous permet de marquer des pièces jointes individuelles pour les supprimer ou de toutes les retirer d'un coup.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. L'outil recherche automatiquement les pièces jointes et les affiche dans une liste.
+3. Chaque pièce jointe affiche son nom de fichier et indique s'il s'agit d'une pièce jointe au niveau du document ou de la page.
+4. Cliquez sur l'icône de corbeille à côté d'une pièce jointe pour la marquer en vue de sa suppression (cliquez à nouveau pour annuler).
+5. Utilisez le bouton **Supprimer toutes les pièces jointes** pour tout sélectionner d'un coup, ou **Tout désélectionner** pour effacer votre sélection.
+6. Cliquez sur le bouton de traitement pour enregistrer un nouveau PDF sans les pièces jointes sélectionnées.
+
+## Fonctionnalités
+
+- Liste toutes les pièces jointes au niveau du document et de la page
+- Suppression individuelle ou groupée des pièces jointes
+- Sélection activable et désactivable avant de valider les modifications
+- Texte barré et opacité réduite pour les éléments marqués en vue de leur suppression
+- Télécharge le PDF modifié sans les pièces jointes sélectionnées
+
+## Cas d'usage
+
+- Supprimer des fichiers obsolètes ou incorrects intégrés dans un document avant sa redistribution
+- Retirer des pièces jointes sensibles (données financières, informations personnelles) d'un PDF avant de le partager
+- Réduire la taille d'un PDF en supprimant de gros fichiers intégrés devenus inutiles
+- Auditer le contenu intégré et nettoyer un document avant de l'archiver
+
+## Conseils
+
+- Les pièces jointes marquées en vue de leur suppression sont affichées barrées. Vous pouvez annuler le marquage avant le traitement si vous changez d'avis.
+- Si aucune pièce jointe n'est trouvée, l'outil affiche un message clair « Aucune pièce jointe trouvée » : le PDF ne contient simplement pas de fichiers intégrés.
+
+## Outils associés
+
+- [Ajouter des pièces jointes](./add-attachments)
+- [Extraire les pièces jointes](./extract-attachments)
+- [Afficher les métadonnées](./view-metadata)
diff --git a/docs/fr/tools/edit-metadata.md b/docs/fr/tools/edit-metadata.md
new file mode 100644
index 00000000..4c65c3ae
--- /dev/null
+++ b/docs/fr/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Modifier les métadonnées
+description: Affichez et modifiez les champs de métadonnées d'un PDF, notamment le titre, l'auteur, les mots-clés, les dates et les propriétés personnalisées.
+---
+
+# Modifier les métadonnées
+
+Modifiez les métadonnées intégrées à un fichier PDF. L'outil pré-remplit un formulaire avec les métadonnées existantes du document, vous laisse modifier n'importe quel champ et enregistre les changements dans un nouveau PDF.
+
+## Fonctionnement
+
+1. Importez un fichier PDF. L'outil lit ses métadonnées actuelles et remplit le formulaire.
+2. Modifiez n'importe quel champ standard : Titre, Auteur, Sujet, Mots-clés, Créateur, Producteur.
+3. Ajustez la date de création et la date de modification avec les sélecteurs de date et d'heure.
+4. Ajoutez des champs de métadonnées personnalisés en cliquant sur le bouton d'ajout et en saisissant une paire clé-valeur.
+5. Cliquez sur le bouton de traitement pour enregistrer le PDF modifié.
+
+## Fonctionnalités
+
+- Pré-remplit toutes les métadonnées existantes du PDF importé
+- Champs standard : Titre, Auteur, Sujet, Mots-clés, Créateur, Producteur
+- Sélecteurs de date et d'heure pour la date de création et la date de modification
+- Champs de métadonnées personnalisés clé-valeur pour des propriétés arbitraires
+- Enregistre les changements directement dans le dictionnaire d'informations du document PDF
+
+## Champs modifiables
+
+| Champ | Description |
+| ------------------------ | ------------------------------------------------------------------ |
+| **Titre** | Le titre du document affiché dans les lecteurs PDF |
+| **Auteur** | La personne ou l'organisation qui a créé le document |
+| **Sujet** | Une brève description du thème du document |
+| **Mots-clés** | Termes séparés par des virgules pour la recherche et le classement |
+| **Créateur** | L'application qui a créé le contenu à l'origine |
+| **Producteur** | L'application qui a généré le PDF |
+| **Date de création** | Quand le document a été créé à l'origine |
+| **Date de modification** | Quand le document a été modifié pour la dernière fois |
+| **Champs personnalisés** | Toutes les paires clé-valeur supplémentaires que vous définissez |
+
+## Cas d'usage
+
+- Définir un titre et un auteur appropriés avant de publier un document
+- Ajouter des mots-clés pour améliorer la recherche dans les systèmes de gestion documentaire
+- Mettre à jour la date de modification pour refléter la révision en cours
+- Ajouter des champs de métadonnées personnalisés comme Service, ID de projet ou Classification
+- Nettoyer les métadonnées laissées par le logiciel de création d'origine
+
+## Conseils
+
+- Les champs personnalisés sont écrits directement dans le dictionnaire d'informations du PDF. Certains lecteurs PDF peuvent ne pas les afficher, mais ils sont conservés dans le fichier.
+- Laissez un champ vide pour l'effacer des métadonnées. Le bouton de traitement enregistre tout ce qui se trouve dans le formulaire.
+- Pour consulter les métadonnées sans les modifier, utilisez [Afficher les métadonnées](./view-metadata). Pour supprimer entièrement toutes les métadonnées, utilisez Supprimer les métadonnées.
+
+## Outils associés
+
+- [Afficher les métadonnées](./view-metadata)
+- [Calques PDF (OCG)](./pdf-layers)
+- [Compresser un PDF](./compress-pdf)
diff --git a/docs/fr/tools/edit-pdf.md b/docs/fr/tools/edit-pdf.md
new file mode 100644
index 00000000..a15ad005
--- /dev/null
+++ b/docs/fr/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Éditeur PDF
+description: Annotez, surlignez, caviardez, ajoutez des formes et des images, recherchez et affichez des PDF directement dans votre navigateur.
+---
+
+# Éditeur PDF
+
+L'éditeur PDF de BentoPDF vous permet d'annoter, surligner, caviarder, commenter, ajouter des formes et des images, et de faire des recherches dans vos PDF. Il charge un éditeur complet directement dans votre navigateur, sans aucun envoi vers un serveur.
+
+## Fonctionnement
+
+1. Importez votre PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. L'éditeur PDF intégré s'ouvre automatiquement avec votre document chargé.
+3. Utilisez la barre d'outils pour annoter, surligner, caviarder, ajouter du texte, dessiner des formes ou insérer des images.
+4. Cliquez sur **Télécharger le PDF modifié** pour enregistrer vos modifications.
+
+## Fonctionnalités
+
+- Barre d'outils d'annotation complète avec surlignage, soulignement, texte barré et dessin à main levée
+- Insertion de texte et commentaires
+- Outils de caviardage qui suppriment définitivement le contenu marqué une fois le caviardage appliqué. Si des marques n'ont pas été appliquées lorsque vous cliquez sur **Télécharger le PDF modifié**, l'éditeur propose de les appliquer d'abord.
+- Outils de formes pour rectangles, cercles, lignes et flèches
+- Insertion d'images sur les pages du PDF
+- Recherche de texte intégrée dans tout le document
+- Prise en charge de plusieurs documents avec des onglets (jusqu'à 10 documents ouverts simultanément)
+- Chargement de fichiers par glisser-déposer
+
+## Cas d'usage
+
+- Relire des contrats et marquer les modifications avec des surlignages et des commentaires
+- Caviarder des informations confidentielles comme des numéros de sécurité sociale ou des données financières avant de partager un document
+- Ajouter des annotations à des plans d'architecture ou à des dessins techniques
+- Insérer des logos ou des tampons d'entreprise sur les pages d'un document
+- Rechercher des termes précis dans de longs documents juridiques
+
+## Conseils
+
+- Vous pouvez ouvrir plusieurs PDF à la fois et passer de l'un à l'autre avec la barre d'onglets en haut de l'éditeur.
+- L'éditeur préserve la structure d'origine du PDF : les polices, les mises en page et les champs de formulaire restent intacts.
+- Marquer du texte ou une zone pour le caviardage ne supprime rien tant que le caviardage n'est pas appliqué. Lorsque vous caviardez du texte sélectionné, ses copies dans les propriétés du fichier, les signets, les commentaires et les pièces jointes sont également supprimées du téléchargement, sauf si le fichier est chiffré.
+- Pour ajouter un filigrane ou numéroter les pages en masse, utilisez plutôt les outils dédiés, qui offrent plus de contrôle sur la mise en forme.
+
+## Outils associés
+
+- [Ajouter un filigrane](./add-watermark)
+- [Signer un PDF](./sign-pdf)
+- [Ajouter des tampons](./add-stamps)
+- [Supprimer les annotations](./remove-annotations)
diff --git a/docs/fr/tools/email-to-pdf.md b/docs/fr/tools/email-to-pdf.md
new file mode 100644
index 00000000..05f2c889
--- /dev/null
+++ b/docs/fr/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Email vers PDF
+description: Convertissez des fichiers e-mail EML et MSG en PDF dans votre navigateur. Conserve les en-têtes, le corps et la liste des pièces jointes.
+---
+
+# Email vers PDF
+
+Convertissez des e-mails enregistrés en PDF propres et imprimables. L'outil analyse les fichiers EML et MSG, extrait le message complet (en-têtes, contenu du corps et métadonnées des pièces jointes) et restitue le tout dans un PDF structuré. Utile pour la découverte juridique, la conservation de documents, ou simplement pour imprimer un e-mail important.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----- | :-------- | :------------------------------------------------------------------------------- |
+| EML | `.eml` | Format d'e-mail MIME standard (exporté par la plupart des clients de messagerie) |
+| MSG | `.msg` | Format propriétaire de Microsoft Outlook |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers EML ou MSG. Vous pouvez mélanger les deux formats dans un même lot.
+2. Vérifiez la liste des fichiers. Retirez les entrées indésirables avec l'icône de corbeille, ou cliquez sur **Ajouter d'autres fichiers** pour inclure d'autres e-mails.
+3. Configurez les options de conversion (voir ci-dessous).
+4. Cliquez sur **Convertir en PDF**. L'outil analyse chaque e-mail, restitue le contenu en HTML mis en forme et le convertit en PDF avec le moteur PyMuPDF.
+5. Un seul e-mail est téléchargé directement en PDF. Plusieurs e-mails sont regroupés dans `emails-converted.zip`.
+
+## Options
+
+| Option | Par défaut | Description |
+| :-------------------------------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------ |
+| **Taille de page** | A4 | Choisissez entre les dimensions A4, Letter ou Legal. |
+| **Inclure Cc et Cci** | Activé | Lorsque cette option est activée, les listes de destinataires en Cc et Cci apparaissent dans la section d'en-tête de l'e-mail du PDF. |
+| **Inclure la liste des pièces jointes** | Activé | Lorsque cette option est activée, une liste des pièces jointes de l'e-mail (avec noms de fichiers et tailles) apparaît dans le PDF. |
+
+## Cas d'usage
+
+- Archiver des échanges professionnels importants en PDF pour la conformité ou l'audit
+- Imprimer des fils de discussion par e-mail pour des procédures judiciaires ou des demandes de communication de pièces
+- Créer une trace permanente de confirmations de commande, de reçus ou de contrats reçus par e-mail
+- Sauvegarder des fichiers Outlook MSG dans un format qui ne nécessite pas Outlook pour être lu
+- Documenter des échanges avec le support client à partir de fichiers EML exportés
+
+## Conseils
+
+- Les fichiers EML (utilisés par Thunderbird, Apple Mail et la plupart des clients de messagerie) et les fichiers Outlook MSG sont tous deux pris en charge. Exportez les e-mails depuis votre client de messagerie et déposez-les directement dans l'outil.
+- Les e-mails au format HTML conservent leur mise en forme dans le PDF. Les e-mails en texte brut sont restitués avec une mise en forme propre et lisible.
+- La liste des pièces jointes affiche les noms de fichiers et les tailles, mais n'intègre pas les fichiers joints eux-mêmes dans le PDF.
+
+## Outils associés
+
+- [XML vers PDF](./xml-to-pdf)
+- [XPS vers PDF](./xps-to-pdf)
diff --git a/docs/fr/tools/epub-to-pdf.md b/docs/fr/tools/epub-to-pdf.md
new file mode 100644
index 00000000..fc9b82e7
--- /dev/null
+++ b/docs/fr/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB vers PDF
+description: Convertissez des livres numériques EPUB en PDF dans votre navigateur. Gratuit, sans envoi de fichiers, conversion axée sur la confidentialité.
+---
+
+# EPUB vers PDF
+
+Convertissez des livres numériques EPUB en fichiers PDF sans quitter votre navigateur. EPUB est le standard ouvert des livres numériques, mais il arrive qu'il vous faille un PDF à mise en page fixe pour l'impression, l'annotation ou le partage avec des personnes qui n'ont pas de liseuse.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----- | :-------- | :------------------------ |
+| EPUB | `.epub` | Fichiers EPUB 2 et EPUB 3 |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers EPUB. La sélection multiple est prise en charge.
+2. Vérifiez les fichiers importés. Retirez les entrées indésirables avec l'icône de corbeille, ou cliquez sur **Ajouter d'autres fichiers** pour agrandir le lot.
+3. Cliquez sur **Convertir en PDF**. Le moteur PyMuPDF restitue le contenu de l'EPUB (texte, images et mise en forme) dans un PDF paginé.
+4. Un seul EPUB est téléchargé directement en PDF. Plusieurs fichiers sont regroupés dans une archive ZIP nommée `epub-converted.zip`.
+
+## Options
+
+La conversion s'exécute avec des valeurs par défaut adaptées et sans configuration obligatoire. Le texte se réorganise dans des dimensions de page standard, et les polices et images intégrées sont conservées dans le PDF.
+
+## Cas d'usage
+
+- Imprimer un livre numérique sans DRM pour le lire loin des écrans
+- Soumettre un manuscrit EPUB sous forme de PDF à mise en page fixe pour relecture
+- Archiver des livres numériques dans un format que tous les systèmes d'exploitation peuvent ouvrir nativement
+- Partager un chapitre avec un collègue qui n'a pas de lecteur EPUB
+- Convertir une documentation technique distribuée en EPUB en PDF annotables
+
+## Conseils
+
+- Les fonctionnalités d'EPUB 3 comme l'audio et la vidéo intégrés ne sont pas conservées dans le PDF, mais tout le texte, les images et les tableaux se convertissent correctement.
+- Pour de meilleurs résultats avec des EPUB très stylisés, vérifiez les premières pages du résultat pour confirmer la fidélité de la mise en page.
+
+## Outils associés
+
+- [MOBI vers PDF](./mobi-to-pdf)
+- [FB2 vers PDF](./fb2-to-pdf)
+- [CBZ vers PDF](./cbz-to-pdf)
diff --git a/docs/fr/tools/excel-to-pdf.md b/docs/fr/tools/excel-to-pdf.md
new file mode 100644
index 00000000..bc9721bb
--- /dev/null
+++ b/docs/fr/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel vers PDF
+description: Convertissez des feuilles de calcul Excel (XLS, XLSX), ODS et CSV en PDF en conservant la mise en forme.
+---
+
+# Excel vers PDF
+
+Convertissez des fichiers de tableur en PDF. L'outil prend en charge les fichiers Excel modernes, l'ancien format XLS, les feuilles de calcul OpenDocument et même le CSV, le tout rendu par un moteur LibreOffice exécuté dans le navigateur, qui préserve la mise en forme des cellules, les formules (sous forme de valeurs calculées), les graphiques et les mises en page multi-feuilles.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----------------------- | :--------- |
+| Excel (moderne) | `.xlsx` |
+| Excel (ancien) | `.xls` |
+| OpenDocument Spreadsheet | `.ods` |
+| CSV | `.csv` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers de tableur.
+2. Vérifiez la liste des fichiers. Ajoutez-en d'autres ou retirez ceux dont vous ne voulez pas.
+3. Cliquez sur **Convertir en PDF**. Le moteur LibreOffice s'initialise à la première utilisation, puis traite chaque fichier.
+4. Un seul fichier est téléchargé directement en PDF. Plusieurs fichiers sont livrés sous la forme `excel-converted.zip`.
+
+## Options
+
+Cet outil n'a pas de configuration supplémentaire. Le moteur LibreOffice détermine la mise en page, la mise à l'échelle et la zone d'impression d'après les paramètres intégrés du tableur.
+
+## Résultat
+
+| Nombre de fichiers | Résultat |
+| :----------------- | :------------------------------------------------------------------------------ |
+| 1 fichier | Téléchargement d'un seul PDF (nom de fichier d'origine avec l'extension `.pdf`) |
+| 2 fichiers ou plus | Archive ZIP (`excel-converted.zip`) contenant un PDF par fichier |
+
+## Cas d'usage
+
+- Convertir des rapports financiers ou des budgets Excel en PDF pour la diffusion
+- Créer des PDF prêts à imprimer à partir de tableurs d'inventaire ou de catalogues de produits
+- Partager des résultats d'analyse de données avec des parties prenantes qui n'ont pas Excel installé
+- Archiver des rapports trimestriels dans un format non modifiable
+- Convertir en PDF des fichiers ODS de LibreOffice Calc
+
+## Conseils
+
+- Les graphiques intégrés au tableur sont rendus dans le PDF. Vérifiez qu'ils s'affichent correctement dans le fichier source avant de convertir.
+- Si votre tableur comporte plusieurs feuilles, toutes les feuilles sont incluses dans le PDF obtenu.
+- Pour des données CSV simples sans mise en forme, l'outil [CSV vers PDF](./csv-to-pdf) offre une conversion plus légère. Utilisez Excel vers PDF lorsque vous devez conserver la mise en forme, les graphiques ou plusieurs feuilles.
+
+## Outils associés
+
+- [CSV vers PDF](./csv-to-pdf)
+- [Word vers PDF](./word-to-pdf)
+- [PowerPoint vers PDF](./powerpoint-to-pdf)
diff --git a/docs/fr/tools/extract-attachments.md b/docs/fr/tools/extract-attachments.md
new file mode 100644
index 00000000..9eb66ef1
--- /dev/null
+++ b/docs/fr/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Extraire les pièces jointes
+description: Extrayez tous les fichiers joints intégrés d'un ou plusieurs PDF et téléchargez-les dans une archive ZIP.
+---
+
+# Extraire les pièces jointes
+
+Récupérez chaque pièce jointe intégrée d'un ou plusieurs fichiers PDF. Tous les fichiers extraits sont regroupés dans une seule archive ZIP à télécharger.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs fichiers PDF contenant des pièces jointes intégrées.
+2. Cliquez sur **Extraire les pièces jointes**.
+3. L'outil analyse chaque PDF à la recherche de pièces jointes au niveau du document et de la page.
+4. Tous les fichiers trouvés sont regroupés dans une archive ZIP et téléchargés automatiquement.
+5. Un message d'état confirme le nombre de pièces jointes trouvées et leur taille totale.
+
+## Fonctionnalités
+
+- Extraction par lots depuis plusieurs PDF à la fois
+- Extrait les pièces jointes au niveau du document comme de la page
+- Produit un seul fichier ZIP contenant tous les fichiers extraits
+- Affiche le nombre total de pièces jointes et la taille cumulée des fichiers
+- Messages d'état clairs si aucune pièce jointe n'est trouvée
+
+## Cas d'usage
+
+- Récupérer des fichiers de données intégrés dans un PDF de rapport
+- Extraire des ressources d'images d'un portfolio ou d'un document de spécifications
+- Extraire des documents complémentaires de PDF de formation ou de conformité
+- Auditer les fichiers intégrés dans un lot de PDF
+
+## Conseils
+
+- Si l'outil ne signale aucune pièce jointe, le PDF peut contenir des images intégrées ou des données de formulaire à la place : ce ne sont pas des fichiers joints. Utilisez [Extraire les images](./extract-images) pour les images intégrées.
+- Lors du traitement de plusieurs PDF, toutes les pièces jointes de chaque fichier se retrouvent dans un seul ZIP. Les noms de fichiers d'origine sont conservés.
+
+## Outils associés
+
+- [Ajouter des pièces jointes](./add-attachments)
+- [Gérer les pièces jointes](./edit-attachments)
+- [Extraire les images](./extract-images)
diff --git a/docs/fr/tools/extract-images.md b/docs/fr/tools/extract-images.md
new file mode 100644
index 00000000..1f25afbc
--- /dev/null
+++ b/docs/fr/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Extraire les images
+description: Extrayez toutes les images intégrées de fichiers PDF. Prévisualisez-les dans une grille et téléchargez-les individuellement ou dans une archive ZIP.
+---
+
+# Extraire les images
+
+Récupère chaque image intégrée d'un ou plusieurs fichiers PDF. Les images extraites s'affichent dans une grille d'aperçu où vous pouvez les télécharger individuellement, ou toutes d'un coup dans un ZIP. Propulsé par PyMuPDF.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers. Ajoutez d'autres fichiers ou retirez-en au besoin.
+2. Cliquez sur **Extraire** pour lancer le traitement.
+3. L'outil analyse chaque page de chaque PDF importé, puis trouve et extrait les images intégrées.
+4. Les images extraites apparaissent dans une grille de miniatures. Chaque image dispose d'un bouton de téléchargement.
+5. Cliquez sur **Tout télécharger** pour tout enregistrer dans une archive ZIP.
+
+## Options
+
+Cet outil n'a aucune option configurable. Toutes les images intégrées sont extraites dans leur format d'origine (généralement PNG, JPEG, ou le format utilisé lors de l'intégration de l'image dans le PDF).
+
+## Format de sortie
+
+- Les images s'affichent dans une grille d'aperçu sous les noms `image_1.png`, `image_2.jpg`, etc.
+- **Tout télécharger** produit `extracted-images.zip` contenant toutes les images.
+- Les images peuvent être téléchargées une par une depuis la grille.
+
+## Cas d'usage
+
+- Récupérer des photos ou des graphiques d'un PDF pour les réutiliser dans un autre projet.
+- Extraire des images de produits d'un PDF de catalogue pour une fiche e-commerce.
+- Récupérer des schémas de documentation technique pour des présentations.
+- Auditer les images intégrées à un document avant de le partager.
+
+## Conseils
+
+- L'outil extrait les images exactement telles qu'elles sont stockées dans le PDF. Il ne rend pas les pages sous forme d'images : pour cela, utilisez [PDF vers PNG](./pdf-to-png) ou [PDF vers JPG](./pdf-to-jpg).
+- Si l'outil indique « Aucune image trouvée », le PDF utilise peut-être des graphiques vectoriels plutôt que des images matricielles intégrées, ou il s'agit d'un document numérisé dont chaque page est une seule grande image.
+- Le traitement par lots fonctionne sur plusieurs PDF. Toutes les images de tous les fichiers sont réunies dans une seule grille et un seul ZIP.
+
+## Outils associés
+
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers JPG](./pdf-to-jpg)
+- [Constructeur de workflow PDF](./pdf-workflow)
diff --git a/docs/fr/tools/extract-pages.md b/docs/fr/tools/extract-pages.md
new file mode 100644
index 00000000..f04c567f
--- /dev/null
+++ b/docs/fr/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Extraire des pages
+description: Enregistrez une plage précise de pages d'un PDF dans un nouveau document.
+---
+
+# Extraire des pages
+
+Récupérez un ensemble de pages d'un PDF et enregistrez-les dans un nouveau fichier. Indiquez exactement les pages souhaitées avec la syntaxe de plages, et l'outil crée un PDF propre contenant uniquement ces pages.
+
+## Fonctionnement
+
+1. Importez un fichier PDF. L'outil affiche le nom du fichier, sa taille et son nombre total de pages.
+2. Saisissez les pages à extraire avec la syntaxe de plages (par ex. `1-5`, `3, 7, 10-12`).
+3. Choisissez éventuellement de télécharger chaque plage sous forme de PDF distinct dans une archive ZIP.
+4. Cliquez sur le bouton de traitement. Les pages extraites sont téléchargées sous forme d'un nouveau PDF (ou d'un ZIP).
+
+## Fonctionnalités
+
+- Syntaxe de plages flexible : pages individuelles, plages ou combinaisons séparées par des virgules
+- Affiche le nombre total de pages après l'import pour s'y référer facilement
+- Option de sortie en un seul PDF combiné ou en fichiers distincts dans un ZIP
+- Préserve le contenu et la mise en forme d'origine des pages
+
+## Cas d'usage
+
+- Extraire le résumé exécutif (les premières pages) d'un long rapport
+- Extraire un seul chapitre d'un manuel au format PDF
+- Enregistrer des pages précises d'un dossier de formulaires sous forme de documents autonomes
+- Créer un document d'exemple à partir de pages sélectionnées d'un fichier plus volumineux
+
+## Conseils
+
+- Les numéros de page commencent à 1. Utilisez `1` pour la première page, pas `0`.
+- Pour supprimer des pages plutôt que les extraire, utilisez [Supprimer des pages](./delete-pages) : c'est l'opération inverse.
+- Si vous avez besoin d'une sélection visuelle des pages avec des miniatures, utilisez [Scinder un PDF](./split-pdf) en mode Sélection visuelle.
+
+## Outils associés
+
+- [Scinder un PDF](./split-pdf)
+- [Supprimer des pages](./delete-pages)
+- [Fusionner des PDF](./merge-pdf)
diff --git a/docs/fr/tools/extract-tables.md b/docs/fr/tools/extract-tables.md
new file mode 100644
index 00000000..8e504a65
--- /dev/null
+++ b/docs/fr/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Extraire les tableaux PDF
+description: Détectez et extrayez les tableaux de documents PDF. Exportez en CSV, JSON ou Markdown, tableau par tableau.
+---
+
+# Extraire les tableaux PDF
+
+Détecte tous les tableaux d'un PDF et vous permet de les exporter au format de votre choix : CSV, JSON ou Markdown. Chaque tableau est extrait individuellement avec ses métadonnées de page et de position. Propulsé par le moteur de détection de tableaux de PyMuPDF.
+
+## Fonctionnement
+
+1. Importez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Sélectionnez votre **format d'export** préféré : CSV, JSON ou Markdown.
+3. Cliquez sur **Extraire** pour lancer le traitement.
+4. Si un seul tableau est trouvé, il est téléchargé sous forme d'un seul fichier. Plusieurs tableaux produisent une archive ZIP avec un fichier par tableau.
+
+## Options
+
+- **Format d'export** : choisissez entre :
+ - **CSV** : valeurs séparées par des virgules, avec des guillemets appropriés pour les champs contenant des virgules, des guillemets ou des sauts de ligne. Convient aux tableurs et aux bases de données.
+ - **JSON** : structure de tableaux de tableaux, mise en forme avec une indentation de 2 espaces. Convient à une exploitation par programme.
+ - **Markdown** : format de tableau délimité par des barres verticales, produit par PyMuPDF. Convient à la documentation et aux fichiers README.
+
+## Format de sortie
+
+- **Un seul tableau** : `filename_table.csv` (ou `.json` / `.md`)
+- **Plusieurs tableaux** : `filename_tables.zip` contenant des fichiers nommés `table_1_page3.csv`, `table_2_page5.csv`, etc.
+
+## Cas d'usage
+
+- Extraire des tableaux précis de longs rapports PDF sans récupérer les données de tout le document.
+- Obtenir des tableaux au format Markdown à coller directement dans des tickets GitHub, des wikis ou de la documentation.
+- Récupérer des données JSON structurées à partir de tableaux PDF pour des intégrations d'API ou des scripts.
+- Comparer des tableaux entre différentes versions de PDF en exportant les deux en CSV et en comparant les différences.
+
+## Conseils
+
+- Cet outil vous donne un contrôle tableau par tableau. Si vous voulez simplement tous les tableaux dans un seul CSV, utilisez [PDF vers CSV](./pdf-to-csv). Pour un classeur Excel complet, utilisez [PDF vers Excel](./pdf-to-excel).
+- Les tableaux qui s'étendent sur plusieurs pages peuvent être détectés comme des tableaux distincts par page. Vous devrez peut-être les concaténer manuellement.
+- Si aucun tableau n'est détecté, le PDF est peut-être une image numérisée. Passez-le d'abord par l'OCR pour ajouter une couche de texte.
+
+## Outils associés
+
+- [PDF vers CSV](./pdf-to-csv)
+- [PDF vers Excel](./pdf-to-excel)
+- [PDF vers texte](./pdf-to-text)
diff --git a/docs/fr/tools/fb2-to-pdf.md b/docs/fr/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..fa82fbcb
--- /dev/null
+++ b/docs/fr/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 vers PDF
+description: Convertissez des livres numériques FictionBook (FB2) en PDF dans votre navigateur. Gratuit, privé, sans envoi vers un serveur.
+---
+
+# FB2 vers PDF
+
+Convertissez des fichiers FictionBook 2 (FB2) en documents PDF. Le FB2 est un format de livre numérique basé sur XML, populaire en Russie et en Europe de l'Est. Bien pris en charge sur certaines plateformes, il est pratiquement inconnu sur d'autres : la conversion en PDF rend vos livres lisibles partout.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :------------ | :-------- | :------------------------------------- |
+| FictionBook 2 | `.fb2` | Format de livre numérique basé sur XML |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers FB2. La sélection multiple est possible.
+2. Vérifiez la liste des fichiers. Utilisez l'icône de corbeille pour retirer un fichier, ou **Ajouter d'autres fichiers** pour en inclure davantage.
+3. Cliquez sur **Convertir en PDF**. Le moteur PyMuPDF analyse la structure XML du FB2 et la restitue en contenu PDF paginé.
+4. Un seul fichier est téléchargé directement en PDF. Plusieurs conversions sont regroupées dans `fb2-converted.zip`.
+
+## Options
+
+Aucune configuration n'est nécessaire. Le convertisseur gère automatiquement la structure XML du FB2 et conserve les sauts de chapitre, la mise en forme et les images intégrées.
+
+## Cas d'usage
+
+- Lire des livres FB2 sur des appareils ou des applications qui ne prennent en charge que le PDF
+- Imprimer de la littérature russe distribuée au format FB2
+- Archiver une bibliothèque FB2 dans un format universellement pris en charge
+- Partager un livre avec quelqu'un dont la liseuse ne gère pas FictionBook
+
+## Astuces
+
+- Les fichiers FB2 sont du XML en texte brut : ils sont généralement légers et se convertissent rapidement, même dans le navigateur.
+- Si vos fichiers FB2 sont compressés en `.fb2.zip`, extrayez-les avant de les envoyer.
+
+## Outils associés
+
+- [EPUB vers PDF](./epub-to-pdf)
+- [MOBI vers PDF](./mobi-to-pdf)
+- [XML vers PDF](./xml-to-pdf)
diff --git a/docs/fr/tools/fix-page-size.md b/docs/fr/tools/fix-page-size.md
new file mode 100644
index 00000000..2c273138
--- /dev/null
+++ b/docs/fr/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Uniformiser la taille des pages
+description: Uniformisez toutes les pages d'un PDF à une même taille. Choisissez un format de papier standard ou définissez des dimensions personnalisées.
+---
+
+# Uniformiser la taille des pages
+
+Les PDF assemblés à partir de plusieurs sources se retrouvent souvent avec des tailles de page différentes : certaines en Letter, d'autres en A4, d'autres totalement non standard. Cet outil impose une taille cible unique à chaque page, en ajustant ou en remplissant le contenu selon le besoin.
+
+## Fonctionnement
+
+1. Envoyez un fichier PDF.
+2. Sélectionnez une **Taille de page cible** dans la liste déroulante (A4, Letter, Legal, A3, A5, Tabloid ou Personnalisée).
+3. Choisissez une **Orientation** : Auto conserve l'orientation d'origine de chaque page, ou vous pouvez forcer Portrait ou Paysage.
+4. Choisissez un mode de **Mise à l'échelle du contenu** : Ajuster (conserve tout le contenu, peut ajouter des marges) ou Remplir (remplit la page, peut rogner les bords).
+5. Si besoin, définissez une **Couleur de fond** pour les marges ajoutées.
+6. Cliquez sur **Uniformiser la taille des pages**.
+
+## Options
+
+- **Tailles standard** : A4, Letter, Legal, A3, A5, Tabloid
+- **Dimensions personnalisées** : saisissez la largeur et la hauteur en pouces ou en millimètres
+- **Orientation** : Auto, Portrait, Paysage
+- **Mode de mise à l'échelle** : Ajuster ou Remplir (rogner)
+- **Couleur de fond** : n'importe quelle couleur pour le remplissage des marges
+
+## Cas d'usage
+
+- Normaliser un PDF fusionné dont les pages proviennent de scanners différents
+- Convertir un document US Letter en A4 pour une diffusion internationale
+- Préparer des PDF prêts à imprimer qui exigent un format de coupe constant
+- Corriger des pages légèrement hors norme (par ex. 8,49 x 11,02 pouces au lieu de 8,5 x 11)
+
+## Astuces
+
+- Utilisez le mode Ajuster pour garantir qu'aucun contenu n'est perdu. Le mode Remplir est plus propre visuellement mais peut couper les bords.
+- Vérifiez le résultat avec l'outil Dimensions des pages pour confirmer que chaque page correspond à la cible.
+- Le blanc est la couleur de fond par défaut ; choisissez une couleur sombre si votre document a des marges sombres.
+
+## Outils associés
+
+- [Dimensions des pages](./page-dimensions) : inspectez les tailles de page avant et après la correction
+- [Compresser un PDF](./compress-pdf) : réduisez la taille du fichier après l'uniformisation
+- [Rogner un PDF](./crop-pdf) : rognez les pages manuellement au lieu de les mettre à l'échelle automatiquement
diff --git a/docs/fr/tools/flatten-pdf.md b/docs/fr/tools/flatten-pdf.md
new file mode 100644
index 00000000..cd84d911
--- /dev/null
+++ b/docs/fr/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Aplatir le PDF
+description: Aplatissez les formulaires interactifs et les annotations en contenu statique. Rend les champs non modifiables et intègre les annotations à la page.
+---
+
+# Aplatir le PDF
+
+L'aplatissement fusionne les éléments interactifs (champs de formulaire, listes déroulantes, cases à cocher, annotations, surlignages, notes) directement dans le contenu de la page. L'apparence visuelle reste identique, mais plus rien n'est modifiable ni extractible. C'est l'équivalent PDF d'imprimer un formulaire rempli puis de le numériser, sauf que la qualité reste parfaite.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs fichiers PDF.
+2. Cliquez sur **Aplatir le PDF**.
+3. Un seul fichier est téléchargé directement. Plusieurs fichiers produisent une archive ZIP.
+
+L'outil utilise pdf-lib pour aplatir les champs de formulaire (via `form.flatten()`) et un aplatisseur d'annotations dédié pour intégrer les annotations au flux de la page. Les deux opérations s'effectuent en une seule passe.
+
+## Ce qui est aplati
+
+- **Champs de formulaire** : saisies de texte, cases à cocher, boutons radio, listes déroulantes, champs de signature
+- **Annotations** : commentaires, surlignages, texte barré, soulignements, notes, tampons, annotations manuscrites
+- **Éléments interactifs** : boutons, déclencheurs d'actions
+
+## Ce qui reste inchangé
+
+- Le contenu textuel (reste sélectionnable et consultable)
+- Les images et les graphiques
+- La mise en page et les dimensions
+- Les signets et la table des matières
+- Les liens hypertextes (sauf ceux basés sur des annotations)
+
+## Cas d'usage
+
+- Verrouiller un formulaire rempli pour que les destinataires ne puissent pas modifier les réponses soumises
+- Préparer un PDF pour l'archivage lorsque les éléments interactifs sont inutiles
+- Corriger des problèmes d'affichage causés par des annotations rendues différemment selon les lecteurs
+- S'assurer qu'un document signé ne peut plus être modifié après l'application de la signature
+- Réduire la taille du fichier en éliminant les définitions de champs et les objets d'annotation
+
+## Astuces
+
+- Aplatissez une fois toutes les modifications terminées. Il n'est pas possible d'annuler l'aplatissement d'un PDF.
+- Si vous devez aplatir et aussi supprimer les métadonnées, le JavaScript et les pièces jointes, utilisez plutôt l'outil Nettoyer un PDF, qui inclut l'aplatissement parmi ses options.
+- Certains PDF affichent « aucun formulaire trouvé » : c'est normal si le document ne contient que des annotations et aucun champ de formulaire.
+
+## Outils associés
+
+- [Nettoyer un PDF](./sanitize-pdf) : aplatit les formulaires et supprime les métadonnées, les scripts, etc.
+- [Rastériser le PDF](./rasterize-pdf) : convertit en PDF basé sur des images pour un aplatissement maximal
+- [Polices en contours](./font-to-outline) : convertit les polices en tracés vectoriels
+- [Protéger un PDF](./protect-pdf) : protégez le PDF aplati par un mot de passe
diff --git a/docs/fr/tools/font-to-outline.md b/docs/fr/tools/font-to-outline.md
new file mode 100644
index 00000000..f8937650
--- /dev/null
+++ b/docs/fr/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Polices en contours
+description: Convertissez toutes les polices d'un PDF en contours vectoriels pour un rendu identique sur tous les appareils. Élimine les problèmes de dépendance aux polices.
+---
+
+# Polices en contours
+
+Convertir les polices en contours transforme chaque caractère, d'un glyphe de police en un tracé vectoriel. Le PDF ne dépend plus d'aucune police installée : il s'affiche à l'identique sur chaque appareil, chaque système d'exploitation et chaque imprimante. C'est une étape standard des flux de prépresse.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs fichiers PDF.
+2. Cliquez sur **Convertir en contours**.
+3. Ghostscript convertit tout le texte en tracés vectoriels.
+4. Téléchargez le résultat. Plusieurs fichiers produisent une archive ZIP.
+
+Aucun réglage n'est à configurer. L'outil utilise Ghostscript (WebAssembly) pour convertir toutes les références de police en tracés dessinés, en une seule passe.
+
+## Ce qui change
+
+- Les caractères deviennent des courbes vectorielles (tracés de Bézier)
+- L'incorporation des polices n'est plus nécessaire : le PDF est autonome au niveau des glyphes
+- La taille du fichier peut augmenter, car les tracés vectoriels sont généralement plus lourds que les références de police
+- L'apparence visuelle est conservée à l'identique
+
+## Ce que vous perdez
+
+- La sélection et le copier-coller du texte
+- La recherche dans le texte (Ctrl+F ne fonctionne plus)
+- La possibilité de modifier le contenu textuel
+- L'accessibilité pour les lecteurs d'écran
+
+## Cas d'usage
+
+- Envoyer des PDF à un imprimeur qui exige des polices vectorisées
+- Partager des documents qui utilisent des polices personnalisées ou sous licence avec des personnes qui ne les ont pas
+- Éviter la substitution de polices qui change l'aspect de votre document sur d'autres systèmes
+- Préparer des PDF pour la gravure laser ou la découpe CNC, qui exigent une source vectorielle
+- S'assurer qu'un PDF riche en logos s'affiche correctement sur toutes les plateformes
+
+## Astuces
+
+- Conservez votre PDF d'origine. La conversion en contours est irréversible : il est impossible de retransformer les tracés en texte modifiable.
+- Si le texte doit rester consultable, envisagez plutôt l'outil Rastériser le PDF suivi d'une OCR.
+- Les PDF en contours sont généralement plus volumineux. Lancez ensuite Compresser un PDF si la taille compte.
+
+## Outils associés
+
+- [Aplatir le PDF](./flatten-pdf) : aplatit les formulaires et les annotations sans toucher aux polices
+- [Rastériser le PDF](./rasterize-pdf) : convertit en PDF basé sur des images plutôt qu'en contours vectoriels
+- [Compresser un PDF](./compress-pdf) : réduit la taille du fichier après la conversion en contours
+- [PDF vers PDF/A](./pdf-to-pdfa) : convertissez pour l'archivage après avoir éliminé la dépendance aux polices
diff --git a/docs/fr/tools/form-creator.md b/docs/fr/tools/form-creator.md
new file mode 100644
index 00000000..3e2117ea
--- /dev/null
+++ b/docs/fr/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Créer un formulaire PDF
+description: Créez des formulaires PDF remplissables avec des champs de texte, cases à cocher, listes déroulantes, boutons radio et plus encore, par glisser-déposer.
+---
+
+# Créer un formulaire PDF
+
+Concevez des formulaires PDF remplissables professionnels à partir de zéro ou en ajoutant des champs à un PDF existant. L'éditeur visuel vous permet de glisser-déposer des éléments de formulaire (champs de texte, cases à cocher, listes déroulantes, boutons radio, champs de signature, etc.) directement sur les aperçus de pages. Configurez les propriétés des champs, définissez des règles de visibilité conditionnelle et exportez un formulaire PDF entièrement interactif.
+
+## Fonctionnement
+
+1. Envoyez un PDF existant **ou** cliquez sur **Créer un PDF vierge** pour partir de zéro.
+2. Pour un PDF vierge, sélectionnez une taille de page (Letter, A4, A5, Legal, Tabloid, A3 ou dimensions personnalisées).
+3. L'éditeur de formulaire s'ouvre avec une barre d'outils des types de champs et une zone d'aperçu de la page.
+4. Sélectionnez un type de champ dans la barre d'outils, puis cliquez sur la page pour le placer.
+5. Faites glisser les champs pour les repositionner. Utilisez les poignées pour ajuster les dimensions.
+6. Cliquez sur un champ pour ouvrir le panneau de propriétés, où vous pouvez définir le nom du champ, la valeur par défaut, la taille de police, l'alignement, etc.
+7. Naviguez entre les pages avec les commandes de page.
+8. Cliquez sur **Enregistrer** pour télécharger le PDF remplissable terminé.
+
+## Fonctionnalités
+
+- Placement des champs par glisser-déposer avec poignées visuelles de redimensionnement
+- Types de champs : saisie de texte, texte multiligne, case à cocher, liste déroulante, bouton radio, signature, date, nombre et code-barres
+- Panneau de propriétés pour configurer le nom, le libellé, la valeur par défaut, la taille de police, la couleur, l'alignement et la validation de chaque champ
+- Actions sur les champs et règles de visibilité conditionnelle (afficher/masquer des champs selon la valeur d'autres champs)
+- Navigation entre les pages pour les formulaires de plusieurs pages
+- Extraction des champs existants : détecte et importe automatiquement les champs de formulaire des PDF envoyés
+- Prise en charge des PDF envoyés comme des pages vierges en tant que support du formulaire
+- Plusieurs tailles de page prédéfinies, ainsi que des dimensions personnalisées
+- Génération de codes-barres grâce à bwip-js
+- Gestion des groupes de boutons radio
+
+## Options
+
+**Tailles de page prédéfinies (pour les PDF vierges) :**
+
+- Letter (8,5" x 11")
+- A4 (210 mm x 297 mm)
+- A5 (148 mm x 210 mm)
+- Legal (8,5" x 14")
+- Tabloid (11" x 17")
+- A3 (297 mm x 420 mm)
+- Personnalisée (précisez la largeur et la hauteur)
+
+**Propriétés des champs (variables selon le type de champ) :**
+
+- Nom, libellé et texte d'indication
+- Valeur par défaut
+- Famille, taille et couleur de la police
+- Alignement du texte (gauche, centre, droite)
+- Option champ obligatoire
+- Option lecture seule
+- Longueur maximale des champs de texte
+- Liste d'options pour les listes déroulantes et les boutons radio
+- Actions de visibilité conditionnelle
+
+## Cas d'usage
+
+- Créer des formulaires d'accueil d'employés avec des champs de texte pour les informations personnelles et des cases à cocher pour l'acceptation des règles
+- Créer des questionnaires d'admission client avec des listes déroulantes pour le choix du service
+- Concevoir des bons de commande avec des champs calculés et des identifiants en code-barres
+- Créer des listes de contrôle d'inspection avec des boutons radio pour les notes réussi/échec
+- Créer des formulaires d'enquête avec des questions de suivi conditionnelles qui apparaissent selon les réponses
+
+## Astuces
+
+- Si vous envoyez un PDF existant, l'outil tente d'extraire les champs de formulaire déjà présents, ce qui vous permet de les modifier ou d'en ajouter.
+- Utilisez la fonction de groupe de boutons radio pour créer des choix mutuellement exclusifs. Les champs d'un même groupe partagent un nom de groupe.
+- Testez votre formulaire en le téléchargeant puis en l'ouvrant dans le [Remplir un formulaire PDF](./form-filler) pour vérifier le comportement des champs.
+
+## Outils associés
+
+- [Remplir un formulaire PDF](./form-filler)
+- [Signer un PDF](./sign-pdf)
+- [Éditeur PDF](./edit-pdf)
diff --git a/docs/fr/tools/form-filler.md b/docs/fr/tools/form-filler.md
new file mode 100644
index 00000000..82cbea08
--- /dev/null
+++ b/docs/fr/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Remplir un formulaire PDF
+description: Remplissez des formulaires PDF, y compris les formulaires XFA, directement dans votre navigateur grâce à un lecteur intégré.
+---
+
+# Remplir un formulaire PDF
+
+Ouvrez un PDF contenant des champs de formulaire et remplissez-le directement dans un lecteur intégré. L'outil prend en charge les champs AcroForm standard ainsi que les formulaires XFA (XML Forms Architecture) hérités. Une fois le formulaire complété, téléchargez la version remplie en un clic.
+
+## Fonctionnement
+
+1. Envoyez un PDF contenant des champs de formulaire.
+2. Le document s'ouvre dans un lecteur PDF intégré qui affiche les champs sous forme de saisies interactives.
+3. Cliquez sur les champs de texte, cases à cocher, listes déroulantes et boutons radio pour les remplir.
+4. Cliquez sur **Enregistrer et télécharger le formulaire rempli** pour obtenir le PDF complété.
+
+## Fonctionnalités
+
+- Lecteur PDF.js intégré avec interaction complète avec les champs de formulaire
+- Prise en charge des champs AcroForm standard (saisies de texte, cases à cocher, listes déroulantes, boutons radio)
+- Prise en charge des formulaires XFA, l'ancien format basé sur XML
+- Dimensionnement automatique du lecteur selon les dimensions des pages
+- Affichage du fichier avec son nom et sa taille
+
+## Options
+
+Il n'y a aucune option de configuration supplémentaire. Envoyez le formulaire, remplissez-le et téléchargez-le.
+
+## Cas d'usage
+
+- Remplir des formulaires fiscaux, des demandes d'assurance ou des documents administratifs
+- Remplir des formulaires de candidature reçus en pièce jointe PDF
+- Compléter des formulaires d'accueil de fournisseurs ou des questionnaires fournisseurs
+- Valider des listes de conformité avec des cases à cocher
+- Remplir des formulaires d'admission médicale avant un rendez-vous
+
+## Astuces
+
+- Les formulaires XFA sont un format hérité, pris en charge seulement par certains lecteurs PDF. Si vous ouvrez un PDF XFA dans Chrome ou la plupart des autres outils et voyez des pages blanches, c'est que ces lecteurs ne prennent pas en charge XFA. Le remplissage de formulaires de BentoPDF et Firefox gèrent tous deux correctement XFA.
+- Pour les PDF sans champs de formulaire, utilisez d'abord l'outil [Créer un formulaire PDF](./form-creator) pour ajouter des champs, puis remplissez-les ici.
+- Le lecteur ajuste automatiquement sa taille aux dimensions des pages du PDF.
+
+## Outils associés
+
+- [Créer un formulaire PDF](./form-creator)
+- [Signer un PDF](./sign-pdf)
+- [Éditeur PDF](./edit-pdf)
diff --git a/docs/fr/tools/header-footer.md b/docs/fr/tools/header-footer.md
new file mode 100644
index 00000000..e28cbce5
--- /dev/null
+++ b/docs/fr/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: En-tête et pied de page
+description: Ajoutez un texte d'en-tête et de pied de page personnalisable aux pages d'un PDF, avec des variables dynamiques de numéro de page.
+---
+
+# En-tête et pied de page
+
+Ajoutez du texte à six emplacements sur les pages de votre PDF : en-tête à gauche, au centre et à droite, pied de page à gauche, au centre et à droite. L'outil prend en charge des variables dynamiques pour le numéro de page et le nombre total de pages, ce qui permet de créer des modèles comme « Page 3 sur 10 » mis à jour automatiquement pour chaque page.
+
+## Fonctionnement
+
+1. Envoyez votre fichier PDF.
+2. Le panneau d'options apparaît avec les commandes de mise en forme et six champs de texte.
+3. Saisissez le texte souhaité dans n'importe quel emplacement d'en-tête ou de pied de page.
+4. Utilisez les marqueurs `{page}` et `{total}` pour une numérotation dynamique.
+5. Ajustez la taille et la couleur de la police, et limitez éventuellement à une plage de pages.
+6. Cliquez sur **Ajouter en-tête et pied de page** pour traiter et télécharger.
+
+## Options
+
+- **Plage de pages** : limitez éventuellement les pages qui reçoivent un en-tête et un pied de page. Laissez vide pour toutes les pages. Format : « 1-3, 5 » (plages séparées par des virgules).
+- **Taille de police** : entre 6 et 24 points. 10 par défaut.
+- **Couleur de police** : choisissez n'importe quelle couleur avec le sélecteur de couleur.
+- **En-tête gauche / centre / droite** : champs de texte pour le haut de chaque page.
+- **Pied de page gauche / centre / droite** : champs de texte pour le bas de chaque page.
+
+## Fonctionnalités
+
+- Six emplacements de texte indépendants par page
+- Variable dynamique `{page}` qui insère le numéro de la page courante
+- Variable dynamique `{total}` qui insère le nombre total de pages
+- Filtrage par plage de pages pour cibler des pages précises
+- Taille et couleur de police personnalisables
+- Police Helvetica pour un rendu net et professionnel
+
+## Cas d'usage
+
+- Ajouter « Page {page} sur {total} » au centre du pied de page d'un rapport
+- Placer le nom d'une entreprise en en-tête à gauche et la date du document en en-tête à droite
+- Ajouter des mentions de confidentialité au pied de page de documents juridiques
+- Apposer des numéros de révision sur des plages de pages précises
+
+## Astuces
+
+- Combinez `{page}` et `{total}` dans un même champ pour des formats comme « Page {page} sur {total} » ou « {page}/{total} ».
+- Vous pouvez laisser la plupart des champs vides et ne remplir que les emplacements dont vous avez besoin. Les champs vides sont simplement ignorés.
+- Pour des en-têtes plus complexes avec des images ou des logos, envisagez l'outil [Ajouter un filigrane](./add-watermark) positionné en haut de la page.
+
+## Outils associés
+
+- [Numéros de page](./page-numbers)
+- [Ajouter un filigrane](./add-watermark)
+- [Numérotation Bates](./bates-numbering)
diff --git a/docs/fr/tools/heic-to-pdf.md b/docs/fr/tools/heic-to-pdf.md
new file mode 100644
index 00000000..967e27c8
--- /dev/null
+++ b/docs/fr/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC vers PDF
+description: Convertissez des images HEIC et HEIF d'iPhone et d'iPad en PDF directement dans votre navigateur.
+---
+
+# HEIC vers PDF
+
+Convertissez des images HEIC/HEIF en PDF. Le HEIC est le format de photo par défaut des iPhone et iPad depuis iOS 11. Cet outil vous permet de transformer ces photos en PDF sans installer de logiciel ni envoyer de fichiers vers un serveur.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :--------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers HEIC/HEIF.
+2. Vérifiez la liste des fichiers et retirez ceux dont vous ne voulez pas.
+3. Cliquez sur **Convertir en PDF**. Le résultat est téléchargé sous le nom `from_heic.pdf`.
+
+Chaque fichier HEIC est décodé avec la bibliothèque heic2any, qui le convertit en PNG avec une qualité de 92 %. Le PNG est ensuite intégré au PDF avec pdf-lib, chaque image occupant sa propre page en pleine résolution.
+
+## Options
+
+Cet outil n'expose aucun réglage supplémentaire. Les images HEIC sont converties en PNG en haute qualité (0,92) avant l'intégration.
+
+## Cas d'usage
+
+- Créer un PDF à partir de photos d'iPhone à joindre à une déclaration de sinistre ou à un rapport
+- Convertir des photos HEIC pour une annonce immobilière en un seul document imprimable
+- Transformer des captures d'écran d'iPad (format HEIF) en PDF partageable
+- Convertir par lots des photos de vacances pour un carnet de voyage
+
+## Astuces
+
+- Le décodage HEIC s'effectue entièrement dans le navigateur avec WebAssembly. La première conversion peut prendre un moment, le temps de charger le décodeur.
+- Si vous devez mélanger du HEIC avec d'autres formats d'image (JPG, PNG, etc.), utilisez l'outil [Images vers PDF](./image-to-pdf), qui gère le HEIC avec tous les autres formats.
+- Les fichiers HEIC des iPhone contiennent souvent des données EXIF, notamment des coordonnées GPS. Le PDF produit ne conserve pas ces métadonnées.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [JPG vers PDF](./jpg-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
diff --git a/docs/fr/tools/image-to-pdf.md b/docs/fr/tools/image-to-pdf.md
new file mode 100644
index 00000000..4d766684
--- /dev/null
+++ b/docs/fr/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Images vers PDF
+description: Convertissez des images JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD et plus de 10 autres formats en un seul fichier PDF.
+---
+
+# Images vers PDF
+
+Le convertisseur d'images en PDF universel. Envoyez des images dans pratiquement n'importe quel format et combinez-les en un seul document PDF. Chaque image occupe sa propre page, à la taille de l'original.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+C'est la prise en charge de formats la plus large de tous les convertisseurs d'images de BentoPDF. Si vous n'avez besoin que d'un format précis, utilisez plutôt l'un des outils dédiés.
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers image. Vous pouvez en sélectionner plusieurs à la fois.
+2. Vérifiez la liste des fichiers. Retirez les fichiers indésirables avec l'icône de corbeille, ou cliquez sur **Ajouter d'autres fichiers** pour inclure d'autres images.
+3. Choisissez un niveau de **Qualité du PDF** dans la liste déroulante.
+4. Cliquez sur **Convertir en PDF**. L'outil traite les images avec le moteur PyMuPDF et télécharge le résultat sous le nom `images_to_pdf.pdf`.
+
+## Options
+
+**Qualité du PDF** contrôle la compression appliquée aux images lors de leur intégration au PDF :
+
+- **Haute qualité** : compression minimale, fichier plus volumineux. Idéal pour l'impression ou l'archivage.
+- **Qualité moyenne** (par défaut) : compression équilibrée. Convient à la plupart des usages.
+- **Basse qualité** : compression agressive, fichier le plus léger. Adaptée à l'envoi par email ou au partage rapide.
+
+Les fichiers HEIC et WebP sont automatiquement convertis en PNG avant l'intégration. Cela se fait de façon transparente, sans étape supplémentaire.
+
+## Cas d'usage
+
+- Combiner en un seul PDF des reçus ou documents numérisés avec l'appareil photo d'un téléphone
+- Créer un portfolio ou un lookbook à partir d'images de formats variés
+- Convertir des photos d'iPhone (HEIC) en PDF partageable sans installer de logiciel
+- Assembler des maquettes issues d'exports PSD et de captures d'écran en un livrable client
+- Archiver un dossier d'anciens formats d'image (PNM, JXR, JP2) en un seul PDF
+
+## Astuces
+
+- L'ordre des images dans le PDF suit celui de la liste des fichiers. Envoyez-les dans la séquence souhaitée.
+- Pour la taille de fichier la plus petite possible, choisissez Basse qualité. La différence visuelle est souvent négligeable pour les numérisations riches en texte.
+- Si vous n'avez qu'un seul format d'image, les convertisseurs dédiés (JPG vers PDF, PNG vers PDF, etc.) donnent le même résultat avec une interface plus simple.
+
+## Outils associés
+
+- [JPG vers PDF](./jpg-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
+- [HEIC vers PDF](./heic-to-pdf)
+- [WebP vers PDF](./webp-to-pdf)
diff --git a/docs/fr/tools/index.md b/docs/fr/tools/index.md
new file mode 100644
index 00000000..7d7a6de1
--- /dev/null
+++ b/docs/fr/tools/index.md
@@ -0,0 +1,183 @@
+# Référence des outils
+
+BentoPDF propose **plus de 130 outils** pour travailler avec les PDF. Tous les outils s'exécutent entièrement dans votre navigateur : vos fichiers ne quittent jamais votre appareil.
+
+---
+
+## Modifier et annoter
+
+Modifiez, annotez et enrichissez vos documents PDF avec une suite complète d'outils d'édition.
+
+
+
+- [**Éditeur PDF**](./edit-pdf) : annotez, surlignez, caviardez, commentez, ajoutez des formes ou des images, recherchez et consultez des PDF.
+- [**Modifier les signets**](./bookmark) : ajoutez, modifiez, importez, supprimez et extrayez les signets d'un PDF.
+- [**Table des matières**](./table-of-contents) : générez une page de table des matières à partir des signets du PDF.
+- [**Numéros de page**](./page-numbers) : insérez des numéros de page dans votre document.
+- [**Ajouter des étiquettes de page**](./add-page-labels) : appliquez des étiquettes de page PDF avec chiffres romains, préfixes et numéros de départ personnalisés.
+- [**Numérotation Bates**](./bates-numbering) : ajoutez des numéros Bates séquentiels sur un ou plusieurs fichiers PDF.
+- [**Ajouter un filigrane**](./add-watermark) : apposez du texte ou une image sur les pages de votre PDF.
+- [**En-tête et pied de page**](./header-footer) : ajoutez du texte en haut et en bas des pages.
+- [**Inverser les couleurs**](./invert-colors) : créez une version en mode sombre de votre PDF.
+- [**Effet scanner**](./scanner-effect) : donnez à votre PDF l'apparence d'un document numérisé.
+- [**Ajuster les couleurs**](./adjust-colors) : affinez la luminosité, le contraste, la saturation et plus encore.
+- [**Couleur de fond**](./background-color) : changez la couleur de fond de votre PDF.
+- [**Changer la couleur du texte**](./text-color) : changez la couleur du texte de votre PDF.
+- [**Signer un PDF**](./sign-pdf) : dessinez, saisissez ou importez votre signature.
+- [**Ajouter des tampons**](./add-stamps) : ajoutez des tampons image à votre PDF avec la barre d'outils d'annotation.
+- [**Supprimer les annotations**](./remove-annotations) : supprimez les commentaires, surlignages et liens.
+- [**Rogner un PDF**](./crop-pdf) : rognez les marges de chaque page de votre PDF.
+- [**Remplir un formulaire PDF**](./form-filler) : remplissez des formulaires directement dans le navigateur. Prend aussi en charge les formulaires XFA.
+- [**Créer un formulaire PDF**](./form-creator) : créez des formulaires PDF remplissables avec des champs de texte par glisser-déposer.
+- [**Supprimer les pages blanches**](./remove-blank-pages) : détectez et supprimez automatiquement les pages blanches.
+
+
+
+---
+
+## Convertir en PDF
+
+Transformez des images, documents, livres numériques et autres formats de fichiers en PDF.
+
+
+
+- [**Images vers PDF**](./image-to-pdf) : convertissez du JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP et plus en PDF.
+- [**JPG vers PDF**](./jpg-to-pdf) : créez un PDF à partir d'une ou plusieurs images JPG.
+- [**PNG vers PDF**](./png-to-pdf) : créez un PDF à partir d'une ou plusieurs images PNG.
+- [**WebP vers PDF**](./webp-to-pdf) : créez un PDF à partir d'une ou plusieurs images WebP.
+- [**SVG vers PDF**](./svg-to-pdf) : créez un PDF à partir d'une ou plusieurs images SVG.
+- [**BMP vers PDF**](./bmp-to-pdf) : créez un PDF à partir d'une ou plusieurs images BMP.
+- [**HEIC vers PDF**](./heic-to-pdf) : créez un PDF à partir d'une ou plusieurs images HEIC.
+- [**TIFF vers PDF**](./tiff-to-pdf) : créez un PDF à partir d'une ou plusieurs images TIFF.
+- [**Texte vers PDF**](./txt-to-pdf) : convertissez un fichier texte brut en PDF.
+- [**Markdown vers PDF**](./markdown-to-pdf) : convertissez du Markdown en PDF avec aperçu en direct et coloration syntaxique.
+- [**JSON vers PDF**](./json-to-pdf) : convertissez des fichiers JSON au format PDF.
+- [**ODT vers PDF**](./odt-to-pdf) : convertissez des fichiers ODT (OpenDocument Text) en PDF.
+- [**CSV vers PDF**](./csv-to-pdf) : convertissez des feuilles de calcul CSV en PDF.
+- [**RTF vers PDF**](./rtf-to-pdf) : convertissez des documents RTF (Rich Text Format) en PDF.
+- [**Word vers PDF**](./word-to-pdf) : convertissez des documents Word (DOCX, DOC, ODT) en PDF.
+- [**Excel vers PDF**](./excel-to-pdf) : convertissez des feuilles de calcul Excel (XLSX, XLS, ODS) en PDF.
+- [**PowerPoint vers PDF**](./powerpoint-to-pdf) : convertissez des présentations PowerPoint (PPTX, PPT, ODP) en PDF.
+- [**XPS vers PDF**](./xps-to-pdf) : convertissez des documents XPS/OXPS en PDF.
+- [**MOBI vers PDF**](./mobi-to-pdf) : convertissez des livres numériques MOBI en PDF.
+- [**EPUB vers PDF**](./epub-to-pdf) : convertissez des livres numériques EPUB en PDF.
+- [**FB2 vers PDF**](./fb2-to-pdf) : convertissez des livres numériques FictionBook (FB2) en PDF.
+- [**CBZ vers PDF**](./cbz-to-pdf) : convertissez des archives de bandes dessinées (CBZ/CBR) en PDF.
+- [**WPD vers PDF**](./wpd-to-pdf) : convertissez des documents WordPerfect (WPD) en PDF.
+- [**WPS vers PDF**](./wps-to-pdf) : convertissez des documents WPS Office en PDF.
+- [**XML vers PDF**](./xml-to-pdf) : convertissez des documents XML en PDF.
+- [**ODG vers PDF**](./odg-to-pdf) : convertissez des fichiers OpenDocument Graphics (ODG) en PDF.
+- [**ODS vers PDF**](./ods-to-pdf) : convertissez des feuilles de calcul OpenDocument (ODS) en PDF.
+- [**ODP vers PDF**](./odp-to-pdf) : convertissez des présentations OpenDocument (ODP) en PDF.
+- [**PUB vers PDF**](./pub-to-pdf) : convertissez des fichiers Microsoft Publisher (PUB) en PDF.
+- [**VSD vers PDF**](./vsd-to-pdf) : convertissez des fichiers Microsoft Visio (VSD, VSDX) en PDF.
+- [**PSD vers PDF**](./psd-to-pdf) : convertissez des fichiers Adobe Photoshop (PSD) en PDF.
+- [**Email vers PDF**](./email-to-pdf) : convertissez des fichiers d'email (EML, MSG) au format PDF.
+
+
+
+---
+
+## Convertir depuis un PDF
+
+Extrayez le contenu des PDF vers des images, des documents et des formats de données.
+
+
+
+- [**PDF vers JPG**](./pdf-to-jpg) : convertissez chaque page du PDF en image JPG.
+- [**PDF vers PNG**](./pdf-to-png) : convertissez chaque page du PDF en image PNG.
+- [**PDF vers WebP**](./pdf-to-webp) : convertissez chaque page du PDF en image WebP.
+- [**PDF vers BMP**](./pdf-to-bmp) : convertissez chaque page du PDF en image BMP.
+- [**PDF vers TIFF**](./pdf-to-tiff) : convertissez chaque page du PDF en image TIFF.
+- [**PDF en CBZ**](./pdf-to-cbz) : convertissez un PDF en CBZ (archive de bande dessinée) pour les lecteurs de BD et Calibre.
+- [**PDF vers SVG**](./pdf-to-svg) : convertissez chaque page du PDF en graphique vectoriel.
+- [**PDF vers CSV**](./pdf-to-csv) : extrayez les tableaux d'un PDF et convertissez-les au format CSV.
+- [**PDF vers Excel**](./pdf-to-excel) : extrayez les tableaux d'un PDF et convertissez-les en Excel (XLSX).
+- [**PDF en niveaux de gris**](./pdf-to-greyscale) : convertissez toutes les couleurs en noir et blanc.
+- [**PDF vers JSON**](./pdf-to-json) : convertissez des fichiers PDF au format JSON.
+- [**PDF vers Word**](./pdf-to-word) : convertissez des fichiers PDF en documents Word modifiables.
+- [**Extraire les images**](./extract-images) : extrayez toutes les images intégrées de vos fichiers PDF.
+- [**PDF vers Markdown**](./pdf-to-markdown) : convertissez le texte et les tableaux d'un PDF au format Markdown.
+- [**Préparer le PDF pour l'IA**](./prepare-pdf-for-ai) : extrayez le contenu d'un PDF en JSON LlamaIndex pour les pipelines RAG/LLM.
+- [**PDF vers texte**](./pdf-to-text) : extrayez le texte de fichiers PDF et enregistrez-le en texte brut.
+- [**Extraire les tableaux PDF**](./extract-tables) : extrayez les tableaux de PDF en CSV, JSON ou Markdown.
+
+
+
+---
+
+## Organiser et gérer
+
+Réorganisez, combinez, scindez et gérez les pages et fichiers de vos PDF.
+
+
+
+- [**Constructeur de workflow PDF**](./pdf-workflow) : créez des pipelines de traitement PDF personnalisés avec un éditeur de nœuds visuel.
+- [**Outil PDF tout-en-un**](./pdf-multi-tool) : éditeur PDF complet avec gestion des pages.
+- [**OCR PDF**](./ocr-pdf) : rendez un PDF consultable et copiable.
+- [**Fusionner des PDF**](./merge-pdf) : combinez plusieurs PDF en un seul fichier.
+- [**Alterner et mélanger les pages**](./alternate-merge) : fusionnez des PDF en alternant les pages de chacun.
+- [**Assembler un scan recto/verso**](./duplex-collate) : remettez dans l'ordre correct les blocs de numérisation recto et verso.
+- [**Dupliquer et organiser**](./organize-pdf) : dupliquez, réordonnez et supprimez des pages.
+- [**Ajouter des pièces jointes**](./add-attachments) : intégrez un ou plusieurs fichiers dans votre PDF.
+- [**Extraire les pièces jointes**](./extract-attachments) : extrayez tous les fichiers intégrés d'un ou plusieurs PDF dans un ZIP.
+- [**Gérer les pièces jointes**](./edit-attachments) : consultez ou supprimez les pièces jointes de votre PDF.
+- [**Calques PDF (OCG)**](./pdf-layers) : affichez, activez, ajoutez et supprimez les calques OCG de votre PDF.
+- [**Scinder un PDF**](./split-pdf) : extrayez une plage de pages dans un nouveau PDF.
+- [**Diviser les pages**](./divide-pages) : divisez les pages horizontalement ou verticalement.
+- [**Extraire des pages**](./extract-pages) : enregistrez une sélection de pages comme nouveaux fichiers.
+- [**Supprimer des pages**](./delete-pages) : retirez des pages précises de votre document.
+- [**Ajouter une page vierge**](./add-blank-page) : insérez une page vide n'importe où dans votre PDF.
+- [**Inverser l'ordre des pages**](./reverse-pages) : inversez l'ordre de toutes les pages de votre document.
+- [**Faire pivoter un PDF**](./rotate-pdf) : faites pivoter les pages par incréments de 90 degrés.
+- [**Rotation par angle personnalisé**](./rotate-custom) : faites pivoter les pages selon n'importe quel angle.
+- [**PDF N-up**](./n-up-pdf) : disposez plusieurs pages sur une même feuille.
+- [**Livret PDF**](./pdf-booklet) : réorganisez les pages pour l'impression d'un livret recto verso.
+- [**Combiner en une seule page**](./combine-single-page) : assemblez toutes les pages en un seul défilement continu.
+- [**Afficher les métadonnées**](./view-metadata) : inspectez les propriétés cachées de votre PDF.
+- [**Modifier les métadonnées**](./edit-metadata) : changez l'auteur, le titre et d'autres propriétés.
+- [**PDF vers ZIP**](./pdf-to-zip) : regroupez plusieurs fichiers PDF dans une archive ZIP.
+- [**Comparer des PDF**](./compare-pdfs) : comparez deux PDF côte à côte.
+- [**Posteriser un PDF**](./posterize-pdf) : scindez une grande page en plusieurs pages plus petites.
+
+
+
+---
+
+## Optimiser et réparer
+
+Compressez, corrigez et optimisez vos PDF pour de meilleures performances et une meilleure compatibilité.
+
+
+
+- [**Compresser un PDF**](./compress-pdf) : réduisez la taille de votre PDF.
+- [**PDF vers PDF/A**](./pdf-to-pdfa) : convertissez un PDF en PDF/A pour l'archivage à long terme.
+- [**Uniformiser la taille des pages**](./fix-page-size) : uniformisez toutes les pages à une même taille.
+- [**Optimiser pour le web**](./linearize-pdf) : optimisez le PDF pour un affichage web rapide.
+- [**Dimensions des pages**](./page-dimensions) : analysez la taille, l'orientation et les unités des pages.
+- [**Supprimer les restrictions**](./remove-restrictions) : supprimez la protection par mot de passe et les restrictions de sécurité.
+- [**Réparer un PDF**](./repair-pdf) : récupérez les données de fichiers PDF corrompus ou endommagés.
+- [**Rastériser le PDF**](./rasterize-pdf) : convertissez un PDF en PDF basé sur des images. Aplatit les calques et supprime le texte sélectionnable.
+- [**Redresser un PDF**](./deskew-pdf) : redressez automatiquement les pages numérisées inclinées avec OpenCV.
+- [**Polices en contours**](./font-to-outline) : convertissez toutes les polices en contours vectoriels pour un rendu cohérent.
+
+
+
+---
+
+## Sécuriser un PDF
+
+Protégez, chiffrez et contrôlez l'accès à vos documents PDF.
+
+
+
+- [**Protéger un PDF**](./protect-pdf) : verrouillez votre PDF en ajoutant un mot de passe.
+- [**Nettoyer un PDF**](./sanitize-pdf) : supprimez les métadonnées, annotations, scripts et plus encore.
+- [**Déverrouiller un PDF**](./unlock-pdf) : déverrouillez un PDF en supprimant la protection par mot de passe.
+- [**Aplatir le PDF**](./flatten-pdf) : rendez les champs de formulaire et les annotations non modifiables.
+- [**Supprimer les métadonnées**](./remove-metadata) : supprimez les données cachées de votre PDF.
+- [**Modifier les autorisations**](./change-permissions) : définissez ou modifiez les autorisations utilisateur d'un PDF.
+- [**Signature numérique PDF**](./digital-sign-pdf) : ajoutez une signature numérique cryptographique avec des certificats X.509.
+- [**Valider la signature PDF**](./validate-signature-pdf) : vérifiez les signatures numériques et consultez les détails des certificats.
+
+
diff --git a/docs/fr/tools/invert-colors.md b/docs/fr/tools/invert-colors.md
new file mode 100644
index 00000000..6fa43e46
--- /dev/null
+++ b/docs/fr/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Inverser les couleurs
+description: Inversez toutes les couleurs de votre PDF pour créer une version en mode sombre de n'importe quel document.
+---
+
+# Inverser les couleurs
+
+Remplacez chaque couleur de votre PDF par son inverse. Les fonds blancs deviennent noirs, le texte noir devient blanc, et toutes les autres couleurs passent à leur valeur complémentaire. C'est le moyen le plus rapide de créer une version « mode sombre » de n'importe quel PDF.
+
+## Fonctionnement
+
+1. Envoyez votre fichier PDF.
+2. Cliquez sur **Inverser les couleurs** pour lancer le traitement.
+3. Le PDF inversé se télécharge automatiquement.
+
+Il n'y a aucun réglage supplémentaire. L'outil rend chaque page sous forme d'image, inverse la couleur de tous les pixels et réassemble le résultat dans un nouveau PDF.
+
+## Fonctionnalités
+
+- Inversion des couleurs en un clic pour toutes les pages
+- Traitement de chaque page du document
+- Conservation des dimensions et de la mise en page d'origine
+- Fonctionne avec n'importe quel PDF, quel que soit le type de contenu (texte, images, mixte)
+
+## Cas d'usage
+
+- Créer des versions en mode sombre de manuels ou de livres de cours pour lire confortablement la nuit
+- Préparer des versions à fort contraste de documents pour l'accessibilité
+- Inverser des documents numérisés avec une mauvaise exposition
+- Générer des versions négatives de PDF riches en images pour une analyse visuelle
+
+## Astuces
+
+- L'outil rastérise les pages pour appliquer l'effet : le résultat est donc basé sur des images. Le texte ne sera plus sélectionnable ni consultable. Si vous voulez du texte consultable après l'inversion, passez le résultat dans un outil d'OCR.
+- Pour des réglages de couleur plus fins (luminosité, contraste, saturation), utilisez plutôt l'outil [Ajuster les couleurs](./adjust-colors).
+- Les PDF volumineux comptant beaucoup de pages peuvent prendre plus de temps, car chaque page est rendue et inversée individuellement.
+
+## Outils associés
+
+- [Ajuster les couleurs](./adjust-colors)
+- [Couleur de fond](./background-color)
+- [Effet scanner](./scanner-effect)
diff --git a/docs/fr/tools/jpg-to-pdf.md b/docs/fr/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..37637bf9
--- /dev/null
+++ b/docs/fr/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG vers PDF
+description: Convertissez une ou plusieurs images JPG, JPEG et JPEG 2000 en un seul fichier PDF directement dans votre navigateur.
+---
+
+# JPG vers PDF
+
+Transformez des images JPG en un PDF propre. Envoyez un fichier ou plusieurs JPG à la fois : chaque image devient une page pleine taille du document final.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers JPG. La sélection multiple est prise en charge.
+2. Vérifiez les fichiers envoyés. Utilisez l'icône de corbeille pour retirer un fichier, ou cliquez sur **Ajouter d'autres fichiers** pour en ajouter à la liste.
+3. Sélectionnez un niveau de **Qualité du PDF**.
+4. Cliquez sur **Convertir en PDF**. L'outil compresse les images selon votre réglage de qualité, les convertit avec le moteur PyMuPDF et télécharge `from_jpgs.pdf`.
+
+## Options
+
+**Qualité du PDF** ajuste la compression appliquée à chaque image avant son intégration au PDF :
+
+- **Haute qualité** : conserve un maximum de détails. À utiliser pour la photographie ou l'impression.
+- **Qualité moyenne** (par défaut) : un bon équilibre entre netteté et taille de fichier.
+- **Basse qualité** : compression agressive pour le fichier le plus léger.
+
+## Cas d'usage
+
+- Convertir des documents numérisés enregistrés en JPG en un seul PDF à soumettre
+- Regrouper des photos de produits dans un catalogue pour des clients
+- Transformer des images médicales ou satellites en JPEG 2000 en PDF portable
+- Créer un album photo imprimable à partir d'exports d'appareil photo
+
+## Astuces
+
+- Les fichiers JPEG 2000 (`.jp2`, `.jpx`) sont entièrement pris en charge, pas seulement le JPEG standard. C'est utile pour l'imagerie médicale et les données géospatiales.
+- Si vos JPG proviennent d'un appareil photo de téléphone, la qualité Moyenne produit généralement un fichier 40 à 60 % plus petit que la qualité Haute, sans différence visible à l'écran.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
+- [WebP vers PDF](./webp-to-pdf)
diff --git a/docs/fr/tools/json-to-pdf.md b/docs/fr/tools/json-to-pdf.md
new file mode 100644
index 00000000..cd148821
--- /dev/null
+++ b/docs/fr/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON vers PDF
+description: Reconstituez des fichiers PDF à partir du format JSON de BentoPDF. Reconvertissez des exports JSON en documents PDF d'origine.
+---
+
+# JSON vers PDF
+
+Reconstituez des documents PDF à partir de fichiers JSON créés au préalable par l'outil **PDF vers JSON** de BentoPDF. C'est un outil de conversion aller-retour : il prend la représentation JSON structurée d'un PDF et reconstruit le document d'origine.
+
+::: warning
+Cet outil n'accepte que les fichiers JSON produits par le convertisseur PDF vers JSON de BentoPDF. Les fichiers JSON standard issus d'API, de bases de données ou d'autres outils ne sont pas pris en charge.
+:::
+
+## Formats pris en charge
+
+| Entrée | Description |
+| :------ | :----------------------------------------------------------- |
+| `.json` | Fichiers JSON exportés par l'outil PDF vers JSON de BentoPDF |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez un ou plusieurs fichiers JSON.
+2. La liste affiche chaque fichier sélectionné avec sa taille.
+3. Cliquez sur **Convertir en PDF**. L'outil traite tous les fichiers avec un Web Worker et le moteur CPDF.
+4. Le résultat est téléchargé sous le nom `jsons-to-pdf.zip`, contenant un PDF par fichier JSON d'entrée.
+
+La conversion s'exécute dans un Web Worker en arrière-plan, de sorte que l'interface reste réactive même avec de gros fichiers.
+
+## Options
+
+Cet outil n'a aucune option configurable. La structure du JSON détermine entièrement le PDF produit.
+
+## Résultat
+
+Lors de la conversion de plusieurs fichiers JSON, les résultats sont livrés dans une archive ZIP. Chaque PDF porte le nom de son fichier JSON source (par ex. `report.json` devient `report.pdf`).
+
+## Cas d'usage
+
+- Restaurer des PDF à partir d'une sauvegarde ou d'une chaîne d'archivage basée sur JSON
+- Faire un aller-retour d'un PDF via JSON pour l'inspecter, puis le reconvertir en PDF
+- Reconstruire des documents après des modifications programmatiques de la structure JSON
+- Vérifier qu'un export PDF vers JSON a capturé tout le contenu du document en le reconvertissant
+
+## Astuces
+
+- Pour convertir des données JSON arbitraires (réponses d'API ou fichiers de configuration) en PDF mis en forme, l'outil [Texte vers PDF](./txt-to-pdf) est mieux adapté. Collez le JSON comme texte et il sera rendu avec une mise en forme correcte.
+- Le moteur WebAssembly CPDF doit être disponible pour que cet outil fonctionne. Les instances auto-hébergées doivent avoir les fichiers WASM de CPDF configurés.
+
+## Outils associés
+
+- [Texte vers PDF](./txt-to-pdf)
+- [Markdown vers PDF](./markdown-to-pdf)
+- [CSV vers PDF](./csv-to-pdf)
diff --git a/docs/fr/tools/linearize-pdf.md b/docs/fr/tools/linearize-pdf.md
new file mode 100644
index 00000000..c2958558
--- /dev/null
+++ b/docs/fr/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Optimiser pour le web
+description: Optimisez les fichiers PDF pour un affichage web rapide avec chargement progressif. Aussi appelé optimisation « Fast Web View ».
+---
+
+# Optimiser pour le web
+
+La linéarisation restructure un PDF afin que la première page puisse s'afficher avant la fin du téléchargement du fichier complet. Adobe appelle cela « Fast Web View ». Si vous hébergez des PDF sur un site web ou les diffusez via un portail de documents, la linéarisation les rend nettement plus rapides à ouvrir.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs fichiers PDF.
+2. Cliquez sur **Linéariser le(s) PDF**.
+3. Téléchargez les résultats sous forme d'archive ZIP contenant tous les fichiers linéarisés.
+
+Il n'y a aucun réglage à configurer. L'outil utilise l'option `--linearize` de QPDF, qui réorganise la structure interne du PDF sans modifier son contenu visuel.
+
+## Ce que fait la linéarisation
+
+- Réordonne les objets du PDF pour que les données de la première page se trouvent au début du fichier
+- Ajoute un dictionnaire de linéarisation et des tables d'indices pour que les lecteurs sachent où trouver chaque page
+- Permet les requêtes par plage d'octets : un navigateur peut récupérer uniquement la première page sans télécharger tout le fichier
+- Nettoie la table de références croisées pour un accès aléatoire efficace
+
+## Fonctionnalités
+
+- Traitement par lots de plusieurs PDF en une seule opération
+- Le résultat conserve tout le contenu, les polices, les images et les éléments interactifs
+- Utilise QPDF (WebAssembly) pour une linéarisation fiable et conforme aux normes
+- Les résultats sont regroupés dans un ZIP pour un téléchargement facile
+
+## Cas d'usage
+
+- Héberger des rapports PDF sur un site web où les utilisateurs attendent un affichage instantané
+- Intégrer des PDF dans des applications web avec des lecteurs dans le navigateur
+- Publier des catalogues ou des manuels PDF consultés sur des connexions mobiles lentes
+- Préparer des documents pour des réseaux de diffusion de contenu (CDN) qui prennent en charge les plages d'octets
+
+## Astuces
+
+- Linéarisez une fois toutes les autres modifications terminées. Toute modification ultérieure (fusion, ajout de pages) casse la linéarisation.
+- Combinez avec Compresser un PDF pour obtenir les PDF les plus légers et les plus rapides à charger.
+- La linéarisation ajoute un léger surcoût à la taille du fichier (généralement moins de 1 %).
+
+## Outils associés
+
+- [Compresser un PDF](./compress-pdf) : réduisez la taille du fichier avant de le linéariser
+- [Réparer un PDF](./repair-pdf) : corrigez les problèmes de structure qui empêchent la linéarisation
+- [Supprimer les métadonnées](./remove-metadata) : retirez les métadonnées avant la publication en ligne
diff --git a/docs/fr/tools/markdown-to-pdf.md b/docs/fr/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..b630acc2
--- /dev/null
+++ b/docs/fr/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown vers PDF
+description: Écrivez ou collez du Markdown et exportez-le en PDF professionnel avec aperçu en direct et coloration syntaxique.
+---
+
+# Markdown vers PDF
+
+Un éditeur Markdown complet avec aperçu en direct et export PDF en un clic. Écrivez de zéro, envoyez un fichier `.md` existant ou collez du contenu depuis le presse-papiers. L'éditeur affiche votre Markdown en temps réel et exporte un PDF mis en forme grâce au moteur d'impression intégré du navigateur.
+
+## Formats pris en charge
+
+| Entrée | Description |
+| :------------- | :----------------------------- |
+| Fichiers `.md` | Envoyés avec le bouton Envoyer |
+| Saisie directe | Tapez ou collez dans l'éditeur |
+
+## Fonctionnement
+
+1. Ouvrez l'outil Markdown vers PDF. L'éditeur se charge en vue partagée : source Markdown à gauche, aperçu rendu à droite.
+2. Écrivez votre Markdown, collez-le ou cliquez sur **Envoyer** pour charger un fichier `.md`.
+3. Basculez entre les thèmes clair et sombre avec le curseur de thème de la barre d'outils.
+4. Cliquez sur **Exporter en PDF** (ou appuyez sur `Ctrl/Cmd + S`) pour générer un PDF via la boîte de dialogue d'impression du navigateur.
+
+## Fonctionnalités
+
+L'éditeur prend en charge un large éventail de fonctionnalités Markdown au-delà des bases :
+
+- **Markdown standard** : titres, gras, italique, liens, images, listes, citations, filets horizontaux
+- **Blocs de code** avec coloration syntaxique pour plus de 15 langages (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash, et plus)
+- **Diagrammes Mermaid** : organigrammes, diagrammes de séquence, diagrammes ER et autres types de graphiques Mermaid s'affichent directement dans l'aperçu
+- **Tableaux** avec la syntaxe de tableau Markdown standard
+- **Listes de tâches** avec cases à cocher
+- **Notes de bas de page**, **indices**, **exposants**
+- **Listes de définitions**, **abréviations**
+- Prise en charge des **emoji** (`:smile:` s'affiche comme l'emoji)
+- **Surlignages** (`==marked text==`) et **insertions** (`++inserted text++`)
+- **URL liées automatiquement** : les URL brutes sont converties en liens cliquables
+- Génération de **table des matières**
+- **Liens d'ancrage** sur les titres
+
+## Cas d'usage
+
+- Rédiger de la documentation de projet et exporter un PDF soigné pour les parties prenantes
+- Créer des rapports techniques avec des exemples de code et des diagrammes d'architecture Mermaid
+- Convertir un README GitHub en PDF pour une lecture hors ligne ou l'impression
+- Rédiger une proposition ou une spécification avec des listes de tâches et des tableaux
+- Générer un support mis en forme à partir de notes de cours écrites en Markdown
+
+## Astuces
+
+- Le PDF produit utilise la fonction d'impression en PDF du navigateur. Dans Chrome, vous pouvez personnaliser les marges et l'échelle dans la boîte de dialogue d'impression avant d'enregistrer.
+- Les diagrammes Mermaid s'affichent dans l'aperçu mais peuvent nécessiter un instant d'initialisation à la première utilisation.
+- Utilisez le raccourci `Ctrl/Cmd + S` pour exporter sans chercher le bouton.
+
+## Outils associés
+
+- [Texte vers PDF](./txt-to-pdf)
+- [Word vers PDF](./word-to-pdf)
+- [JSON vers PDF](./json-to-pdf)
diff --git a/docs/fr/tools/merge-pdf.md b/docs/fr/tools/merge-pdf.md
new file mode 100644
index 00000000..b8ea1982
--- /dev/null
+++ b/docs/fr/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Fusionner des PDF
+description: Combinez plusieurs fichiers PDF en un seul document, avec réorganisation par glisser-déposer et contrôle au niveau des pages.
+---
+
+# Fusionner des PDF
+
+Combinez plusieurs fichiers PDF en un seul document. Vous pouvez fusionner des fichiers entiers dans un ordre précis, ou passer en Mode Pages pour contrôler finement chaque page de tous les PDF envoyés.
+
+## Fonctionnement
+
+1. Envoyez au moins deux fichiers PDF en cliquant sur la zone de dépôt ou en les y glissant.
+2. Choisissez entre le **Mode Fichiers** et le **Mode Pages** avec le commutateur en haut.
+3. En Mode Fichiers, faites glisser les fichiers pour les réordonner et, si besoin, indiquez des plages de pages (par ex. `1-3, 5`) pour chaque fichier. Laissez la plage vide pour inclure toutes les pages.
+4. En Mode Pages, glissez-déposez les miniatures de pages pour construire précisément votre séquence.
+5. Cliquez sur **Fusionner les PDF** pour tout combiner en un seul fichier. Le PDF fusionné se télécharge automatiquement.
+
+## Fonctionnalités
+
+- Deux modes de fusion : le Mode Fichiers pour combiner rapidement des fichiers entiers, le Mode Pages pour un contrôle page par page
+- Réorganisation par glisser-déposer dans les deux modes, avec des animations fluides
+- La syntaxe de plages de pages (par ex. `1-3, 5, 8-10`) permet de choisir des pages sans passer en Mode Pages
+- Les miniatures de pages chargées à la demande gardent l'interface réactive, même avec de gros documents
+- Aucune limite sur le nombre de fichiers ou de pages au total
+- Conserve la qualité d'origine du PDF, sans réencodage
+
+## Options
+
+| Option | Description |
+| ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| **Mode Fichiers** | Fusionne des fichiers entiers dans un ordre personnalisé, avec des filtres de plages de pages optionnels par fichier |
+| **Mode Pages** | Grille visuelle de toutes les pages de tous les fichiers : faites glisser les miniatures pour construire votre séquence |
+| **Champ Pages** | Champ de texte par fichier acceptant des plages comme `1-3, 5` pour n'inclure que certaines pages |
+
+## Cas d'usage
+
+- Combiner des PDF de chapitres séparés en un seul livre ou rapport
+- Fusionner une lettre de motivation et un CV en un seul dossier de candidature
+- Extraire des pages précises de plusieurs documents sources dans un fichier consolidé
+- Assembler des reçus ou factures numérisés en un seul PDF d'archive
+- Créer un support de présentation à partir de diapositives de plusieurs présentations
+
+## Astuces
+
+- Utilisez le Mode Pages lorsque vous devez intercaler des pages de fichiers différents plutôt que d'ajouter un fichier après l'autre.
+- Vous pouvez ajouter d'autres fichiers après l'envoi initial avec le bouton **Ajouter d'autres fichiers**, sans perdre votre organisation actuelle.
+- Les plages de pages commencent à 1 : `1` désigne donc la première page du fichier.
+
+## Outils associés
+
+- [Scinder un PDF](./split-pdf)
+- [Dupliquer et organiser](./organize-pdf)
+- [Alterner et mélanger les pages](./alternate-merge)
+- [Supprimer des pages](./delete-pages)
diff --git a/docs/fr/tools/mobi-to-pdf.md b/docs/fr/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..204338ab
--- /dev/null
+++ b/docs/fr/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI vers PDF
+description: Convertissez des livres numériques MOBI en PDF directement dans votre navigateur. Gratuit, privé, sans envoi de fichiers.
+---
+
+# MOBI vers PDF
+
+Convertissez des livres numériques MOBI d'Amazon Kindle en documents PDF. Les fichiers MOBI sont liés aux appareils et applications Kindle, ce qui les rend difficiles à lire ailleurs. La conversion en PDF vous donne une version portable que vous pouvez ouvrir sur n'importe quel appareil ou imprimer.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----- | :-------- | :-------------------------------------------- |
+| MOBI | `.mobi` | Format de livre numérique Kindle (Mobipocket) |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez un ou plusieurs fichiers MOBI.
+2. Vérifiez la liste des fichiers. Retirez les fichiers indésirables avec l'icône de corbeille, ou utilisez **Ajouter d'autres fichiers** pour inclure d'autres livres.
+3. Cliquez sur **Convertir en PDF**. Le moteur PyMuPDF analyse la structure du MOBI et restitue chaque page en contenu PDF.
+4. Un seul fichier est téléchargé en PDF. Pour plusieurs fichiers, vous obtenez une archive ZIP nommée `mobi-converted.zip`.
+
+## Options
+
+Aucun réglage supplémentaire n'est nécessaire. La conversion conserve le contenu textuel, la mise en forme et les images intégrées du fichier MOBI d'origine.
+
+## Cas d'usage
+
+- Lire du contenu acheté sur Kindle sur une liseuse non Kindle qui ne gère que le PDF
+- Imprimer des chapitres d'un livre numérique pour étudier ou annoter hors ligne
+- Archiver votre bibliothèque personnelle de livres numériques dans un format universel
+- Partager des extraits avec quelqu'un qui n'a pas l'application Kindle
+
+## Astuces
+
+- Les fichiers MOBI protégés par DRM ne peuvent pas être convertis. L'outil ne fonctionne qu'avec des fichiers MOBI sans DRM.
+- Les gros livres contenant beaucoup d'images intégrées peuvent prendre quelques secondes de plus, car tout se passe dans le navigateur.
+
+## Outils associés
+
+- [EPUB vers PDF](./epub-to-pdf)
+- [FB2 vers PDF](./fb2-to-pdf)
+- [CBZ vers PDF](./cbz-to-pdf)
diff --git a/docs/fr/tools/n-up-pdf.md b/docs/fr/tools/n-up-pdf.md
new file mode 100644
index 00000000..48960ce5
--- /dev/null
+++ b/docs/fr/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF N-up
+description: Disposez plusieurs pages PDF sur une même feuille en grille pour une impression compacte.
+---
+
+# PDF N-up
+
+Placez plusieurs pages sur une même feuille, en grille. Cela réduit le nombre de pages imprimées en faisant tenir 2, 4, 6, 8, 9 ou 16 pages par feuille. L'outil gère la mise à l'échelle, le positionnement et la configuration facultative de la taille de page.
+
+## Fonctionnement
+
+1. Envoyez un fichier PDF.
+2. Sélectionnez le nombre de pages par feuille (la valeur « N ») : 2, 4, 6, 8, 9 ou 16.
+3. Choisissez la taille de page de sortie (A4 par défaut) et l'orientation.
+4. Configurez si besoin l'espacement, la couleur de bordure et la couleur de fond.
+5. Cliquez sur le bouton de traitement. L'outil met chaque page à l'échelle et les juxtapose sur de nouvelles feuilles.
+
+## Fonctionnalités
+
+- Dispositions en grille : 2, 4, 6, 8, 9 et 16 pages par feuille
+- Taille de page et orientation de sortie configurables
+- Espacement facultatif entre les pages juxtaposées
+- Réglages de couleur de fond et de bordure
+- Conserve le rapport hauteur/largeur des pages d'origine lors de la mise à l'échelle
+
+## Options
+
+| Option | Description |
+| ---------------------- | -------------------------------------------------------------------------------- |
+| **Pages par feuille** | Nombre de pages d'origine à placer sur chaque page de sortie (2, 4, 6, 8, 9, 16) |
+| **Taille de page** | Taille de la feuille de sortie (A4, Letter, Legal, etc.) |
+| **Orientation** | Portrait ou Paysage pour la feuille de sortie |
+| **Espacement** | Écart en points entre les pages juxtaposées |
+| **Couleur de fond** | Couleur de remplissage du fond de la feuille de sortie |
+| **Couleur de bordure** | Couleur des bordures autour de chaque page juxtaposée |
+
+## Cas d'usage
+
+- Imprimer des supports avec 4 diapositives par page pour économiser du papier
+- Créer des fiches de révision avec plusieurs pages de référence sur une feuille
+- Produire des archives de documents compactes pour le classement
+- Générer des planches de vignettes donnant un aperçu d'un long document
+
+## Astuces
+
+- L'orientation paysage fonctionne souvent mieux pour les dispositions à 2 pages, tandis que le portrait convient généralement mieux à partir de 4 pages.
+- Augmenter l'espacement améliore la lisibilité mais réduit la zone disponible pour chaque page juxtaposée.
+- Pour l'opération inverse (scinder une page en plusieurs), consultez [Posteriser un PDF](./posterize-pdf).
+
+## Outils associés
+
+- [Posteriser un PDF](./posterize-pdf)
+- [Livret PDF](./pdf-booklet)
+- [Combiner en une seule page](./combine-single-page)
diff --git a/docs/fr/tools/ocr-pdf.md b/docs/fr/tools/ocr-pdf.md
new file mode 100644
index 00000000..e36e0bb8
--- /dev/null
+++ b/docs/fr/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Rendez des PDF numérisés consultables et copiables avec l'OCR Tesseract, avec prise en charge multilingue et filtrage des caractères.
+---
+
+# OCR PDF
+
+Transformez des documents numérisés en PDF consultables et copiables. L'outil utilise l'OCR Tesseract pour reconnaître le texte dans les images et superpose une couche de texte invisible aux pages d'origine, ce qui préserve leur apparence tout en rendant le contenu entièrement consultable.
+
+## Fonctionnement
+
+1. Envoyez un PDF numérisé ou basé sur des images.
+2. Sélectionnez une ou plusieurs langues présentes dans le document grâce à la liste de langues avec recherche.
+3. Ajustez si besoin les réglages avancés (résolution, binarisation, liste blanche).
+4. Cliquez sur **Lancer l'OCR** et suivez la progression sur la barre en temps réel.
+5. Une fois terminé, vérifiez le texte extrait, puis téléchargez le PDF consultable ou un fichier `.txt` brut.
+
+## Fonctionnalités
+
+- OCR multilingue avec sélecteur de langue consultable
+- La couche de texte invisible préserve l'apparence d'origine du document
+- Barre de progression et journal en temps réel pendant le traitement
+- Téléchargement des résultats en PDF consultable ou en fichier texte brut
+- Copie du texte extrait directement dans le presse-papiers
+- Trois niveaux de résolution pour équilibrer vitesse et précision
+
+## Options
+
+| Réglage | Valeurs | Par défaut | Objectif |
+| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------- |
+| **Résolution** | Standard (192 DPI), Élevée (288 DPI), Ultra (384 DPI) | Élevée | Une résolution plus élevée améliore la précision sur les petits textes mais prend plus de temps |
+| **Binariser l'image** | Activé / Désactivé | Désactivé | Améliore le contraste des numérisations propres en les convertissant en noir et blanc |
+| **Préréglage de liste blanche de caractères** | Aucun, Alphanumérique, Nombres + devises, Lettres uniquement, Nombres uniquement, Facture, Formulaires, Personnalisé | Aucun | Restreint les caractères reconnus pour améliorer la précision sur certains types de documents |
+| **Liste blanche de caractères** | Texte libre | Vide | Jeu de caractères manuel lorsque le préréglage est sur Personnalisé |
+
+## Cas d'usage
+
+- Rendre des contrats et factures numérisés consultables pour pouvoir y chercher avec Ctrl+F
+- Extraire le texte de documents photographiés ou d'anciens dossiers papier
+- Traiter des reçus avec le préréglage Facture pour capturer précisément les montants et les dates
+- Créer des PDF accessibles à partir de numérisations en image seule pour des exigences de conformité
+- Extraire en lot le contenu textuel de livres ou de manuels numérisés
+
+## Astuces
+
+- Sélectionnez plusieurs langues si votre document mélange les langues (par ex. des titres en anglais avec un corps de texte en japonais).
+- Utilisez l'option de binarisation pour les documents au texte pâle ou peu contrasté : elle peut nettement améliorer la précision de la reconnaissance.
+- Les préréglages de liste blanche Facture et Formulaires réduisent fortement les faux positifs sur les documents structurés en ignorant les formes de caractères non pertinentes.
+
+## Outils associés
+
+- [Extraire les tableaux PDF](./extract-tables)
+- [Fusionner des PDF](./merge-pdf)
+- [Compresser un PDF](./compress-pdf)
diff --git a/docs/fr/tools/odg-to-pdf.md b/docs/fr/tools/odg-to-pdf.md
new file mode 100644
index 00000000..dd3eb96d
--- /dev/null
+++ b/docs/fr/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG vers PDF
+description: Convertissez des fichiers LibreOffice Draw (ODG) en PDF dans votre navigateur. Gratuit, sans envoi, entièrement privé.
+---
+
+# ODG vers PDF
+
+Convertissez des fichiers OpenDocument Graphics en PDF. L'ODG est le format natif de LibreOffice Draw, utilisé pour les diagrammes, les organigrammes et les illustrations vectorielles. La conversion en PDF facilite le partage, l'impression et l'intégration de ces dessins dans d'autres documents.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :-------------------- | :-------- | :------------------------------------------ |
+| OpenDocument Graphics | `.odg` | Fichiers LibreOffice Draw / OpenOffice Draw |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers ODG. Vous pouvez ajouter plusieurs fichiers à la fois.
+2. Vérifiez la liste des fichiers. Retirez un fichier avec l'icône de corbeille, ou cliquez sur **Ajouter d'autres fichiers** pour ajouter d'autres dessins.
+3. Cliquez sur **Convertir en PDF**. Un moteur basé sur LibreOffice se charge dans le navigateur et convertit chaque fichier ODG en conservant les graphiques vectoriels, les formes et le texte.
+4. Un seul fichier est téléchargé directement en PDF. Plusieurs fichiers produisent une archive ZIP nommée `odg-to-pdf.zip`.
+
+## Options
+
+Aucun réglage supplémentaire n'est nécessaire. La conversion conserve les dimensions de page, les formes, les connecteurs et les zones de texte d'origine du fichier ODG.
+
+## Cas d'usage
+
+- Partager des diagrammes LibreOffice Draw avec des clients qui n'ont pas LibreOffice installé
+- Imprimer des organigrammes et des schémas réseau créés dans Draw
+- Inclure des illustrations ODG dans un rapport ou une présentation sous forme de PDF intégrés
+- Archiver des dessins techniques dans un format qui restera lisible pendant des décennies
+
+## Astuces
+
+- Les éléments vectoriels restent vectoriels dans le PDF produit, le résultat s'adapte donc proprement à toute taille d'impression.
+- Le moteur LibreOffice met un moment à s'initialiser à la première utilisation. Les conversions suivantes dans la même session sont plus rapides.
+
+## Outils associés
+
+- [ODS vers PDF](./ods-to-pdf)
+- [ODP vers PDF](./odp-to-pdf)
+- [VSD vers PDF](./vsd-to-pdf)
diff --git a/docs/fr/tools/odp-to-pdf.md b/docs/fr/tools/odp-to-pdf.md
new file mode 100644
index 00000000..a4df94ab
--- /dev/null
+++ b/docs/fr/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP vers PDF
+description: Convertissez des présentations LibreOffice Impress (ODP) en PDF dans votre navigateur. Gratuit, privé, sans envoi.
+---
+
+# ODP vers PDF
+
+Convertissez des fichiers OpenDocument Presentation en PDF. L'ODP est le format natif de LibreOffice Impress et un export standard de Google Slides. Transformer des présentations en PDF permet à chacun de les consulter sans logiciel de présentation, et les diapositives s'impriment proprement.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :------------------------ | :-------- | :----------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / export Google Slides |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers ODP. Vous pouvez sélectionner plusieurs présentations à la fois.
+2. Vérifiez la liste des fichiers. Retirez un fichier avec l'icône de corbeille, ou utilisez **Ajouter d'autres fichiers** pour inclure d'autres présentations.
+3. Cliquez sur **Convertir en PDF**. Le moteur basé sur LibreOffice traite chaque présentation et produit un PDF où chaque diapositive devient une page.
+4. Un seul fichier est téléchargé en PDF. Plusieurs fichiers sont livrés dans une archive ZIP nommée `odp-to-pdf.zip`.
+
+## Options
+
+Aucun réglage à configurer. Chaque diapositive est rendue à ses dimensions d'origine, en conservant le texte, les images, les formes et les arrière-plans.
+
+## Cas d'usage
+
+- Distribuer une présentation au public sous forme de support PDF
+- Partager des exports Google Slides avec des personnes qui préfèrent le PDF à l'ODP
+- Archiver des conférences et des cours dans un format en lecture seule
+- Imprimer des présentations pour des ateliers en présentiel
+
+## Astuces
+
+- Les transitions et animations de diapositives sont des fonctions purement visuelles qui ne sont pas reprises dans le PDF, mais tout le contenu statique s'affiche correctement.
+- Les notes de l'orateur ne sont pas incluses dans le PDF. Si vous en avez besoin, exportez-les séparément depuis votre logiciel de présentation.
+- Comme les autres outils basés sur LibreOffice, le moteur se charge à la première utilisation et reste en cache pendant la session.
+
+## Outils associés
+
+- [ODG vers PDF](./odg-to-pdf)
+- [ODS vers PDF](./ods-to-pdf)
+- [PUB vers PDF](./pub-to-pdf)
diff --git a/docs/fr/tools/ods-to-pdf.md b/docs/fr/tools/ods-to-pdf.md
new file mode 100644
index 00000000..0a40d4d2
--- /dev/null
+++ b/docs/fr/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS vers PDF
+description: Convertissez des feuilles de calcul LibreOffice Calc (ODS) en PDF dans votre navigateur. Gratuit, privé, sans inscription.
+---
+
+# ODS vers PDF
+
+Convertissez des fichiers OpenDocument Spreadsheet en PDF. ODS est le format natif de LibreOffice Calc et un export courant de Google Sheets. Cet outil restitue les données, la mise en forme et les graphiques de votre feuille de calcul dans un PDF paginé, prêt à être imprimé ou partagé.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----------------------- | :-------- | :-------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | Export LibreOffice Calc / Google Sheets |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez vos fichiers ODS. Plusieurs fichiers sont pris en charge.
+2. Vérifiez la liste des fichiers. Utilisez l'icône de corbeille pour retirer des fichiers, ou cliquez sur **Ajouter des fichiers** pour agrandir le lot.
+3. Cliquez sur **Convertir en PDF**. Le moteur basé sur LibreOffice se charge dans le navigateur et convertit chaque feuille de calcul en pages PDF.
+4. Une seule feuille de calcul est téléchargée sous forme de PDF. Plusieurs fichiers sont regroupés dans `ods-to-pdf.zip`.
+
+## Options
+
+Aucune configuration n'est nécessaire. Le convertisseur applique au PDF la mise en page d'impression, la mise en forme des cellules et la largeur des colonnes de la feuille de calcul.
+
+## Cas d'usage
+
+- Partager un budget ou un rapport LibreOffice Calc avec quelqu'un qui n'accepte que des PDF
+- Imprimer un export Google Sheets téléchargé au format ODS
+- Archiver des documents financiers dans un format non modifiable
+- Soumettre des formulaires ou feuilles de temps ODS sous forme de documents à mise en page fixe
+
+## Astuces
+
+- Si votre feuille de calcul contient plusieurs feuilles, toutes sont incluses dans le PDF.
+- Les feuilles très larges peuvent s'étendre sur plusieurs pages PDF en largeur. Si la mise en page compte, ajustez la largeur des colonnes dans le fichier source avant la conversion.
+- Le moteur LibreOffice s'initialise à la première utilisation. Les conversions suivantes de la même session sont plus rapides.
+
+## Outils associés
+
+- [ODG vers PDF](./odg-to-pdf)
+- [ODP vers PDF](./odp-to-pdf)
+- [XML vers PDF](./xml-to-pdf)
diff --git a/docs/fr/tools/odt-to-pdf.md b/docs/fr/tools/odt-to-pdf.md
new file mode 100644
index 00000000..f65f5ae0
--- /dev/null
+++ b/docs/fr/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT vers PDF
+description: Convertissez des fichiers OpenDocument Text (ODT) en PDF dans votre navigateur avec un moteur basé sur LibreOffice.
+---
+
+# ODT vers PDF
+
+Convertissez des fichiers OpenDocument Text en PDF. ODT est le format natif de LibreOffice Writer, d'Apache OpenOffice et d'autres traitements de texte open source. Cet outil utilise un moteur LibreOffice dans le navigateur pour produire des conversions fidèles qui préservent la mise en forme, les tableaux, les images et les styles.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :---------------- | :--------- |
+| OpenDocument Text | `.odt` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez un ou plusieurs fichiers ODT.
+2. Vérifiez la liste des fichiers. Ajoutez-en d'autres ou retirez ceux dont vous n'avez pas besoin.
+3. Cliquez sur **Convertir en PDF**. Le moteur LibreOffice s'initialise (un indicateur de progression affiche l'état du chargement), puis chaque fichier est converti.
+4. Un seul fichier est téléchargé directement sous forme de PDF. Plusieurs fichiers sont regroupés dans `odt-converted.zip`.
+
+## Options
+
+Cet outil n'a aucune configuration supplémentaire. La conversion préserve au plus près la mise en forme du document d'origine.
+
+## Résultat
+
+| Nombre de fichiers | Résultat |
+| :----------------- | :------------------------------------------------------------- |
+| 1 fichier | Téléchargement d'un seul PDF (par ex. `document.pdf`) |
+| 2 fichiers ou plus | Archive ZIP (`odt-converted.zip`) contenant un PDF par fichier |
+
+## Cas d'usage
+
+- Convertir des documents LibreOffice Writer en PDF pour les partager avec des utilisateurs de Microsoft Office
+- Produire des PDF prêts à imprimer à partir d'articles universitaires rédigés au format OpenDocument
+- Convertir par lots un dossier de modèles ODT en PDF pour les distribuer
+- Générer des PDF à partir de fichiers ODT créés par des systèmes automatisés de génération de documents
+
+## Astuces
+
+- Le moteur LibreOffice se charge à la première utilisation et reste en cache pour les conversions suivantes. Le premier chargement prend quelques secondes, ensuite les conversions sont rapides.
+- Les documents complexes contenant des objets OLE intégrés ou des polices inhabituelles peuvent s'afficher légèrement différemment de LibreOffice sur ordinateur. Faites un essai avec un échantillon avant de convertir par lots.
+- Pour les documents Word (`.doc`, `.docx`), utilisez plutôt l'outil [Word vers PDF](./word-to-pdf), qui utilise aussi le moteur LibreOffice mais accepte directement les formats Microsoft.
+
+## Outils associés
+
+- [Word vers PDF](./word-to-pdf)
+- [RTF vers PDF](./rtf-to-pdf)
+- [Texte vers PDF](./txt-to-pdf)
diff --git a/docs/fr/tools/organize-pdf.md b/docs/fr/tools/organize-pdf.md
new file mode 100644
index 00000000..c82e3333
--- /dev/null
+++ b/docs/fr/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Dupliquer et organiser
+description: Réorganisez, dupliquez et supprimez des pages PDF avec des miniatures en glisser-déposer et une saisie d'ordre de pages personnalisé.
+---
+
+# Dupliquer et organiser
+
+Réorganisez, dupliquez et supprimez des pages d'un PDF grâce à une interface visuelle en glisser-déposer. Chaque page apparaît sous forme de miniature que vous pouvez déplacer, cloner ou supprimer avant d'enregistrer le résultat dans un nouveau fichier.
+
+## Fonctionnement
+
+1. Envoyez un seul fichier PDF.
+2. L'outil affiche une grille de miniatures présentant chaque page.
+3. Faites glisser les miniatures pour réorganiser les pages, cliquez sur le bouton vert de duplication pour cloner une page, ou sur le bouton rouge de suppression pour en retirer une.
+4. Vous pouvez aussi saisir un ordre de pages personnalisé dans le champ de texte (par ex. `3, 1, 2, 4`) et cliquer sur **Appliquer** pour réorganiser toutes les pages d'un coup.
+5. Cliquez sur le bouton de traitement pour générer et télécharger le PDF réorganisé.
+
+## Fonctionnalités
+
+- Réorganisation des pages par glisser-déposer avec transitions animées
+- Boutons de duplication et de suppression sur chaque page
+- Saisie d'un ordre de pages personnalisé pour une réorganisation précise
+- Numéros de page mis à jour automatiquement après chaque modification
+- Impossible de supprimer la dernière page restante
+
+## Cas d'usage
+
+- Déplacer une page mal placée à la bonne position dans un rapport
+- Dupliquer une page de formulaire pour obtenir plusieurs copies vierges dans un même fichier
+- Retirer les pages de brouillon ou d'espace réservé avant de diffuser un document
+- Inverser ou mélanger l'ordre des pages pour préparer l'impression
+- Construire une séquence de pages personnalisée sans refusionner des fichiers séparés
+
+## Astuces
+
+- Le champ d'ordre de pages personnalisé attend des numéros de pages d'origine séparés par des virgules. Il doit inclure chaque page exactement une fois, sans omission ni doublon.
+- Après la duplication d'une page, les deux copies font référence au même index de page d'origine. Réorganiser l'une ou l'autre fonctionne indépendamment.
+- Pour des opérations en masse sur plusieurs fichiers ou des flux plus avancés, essayez plutôt l'[Outil PDF tout-en-un](./pdf-multi-tool).
+
+## Outils associés
+
+- [Fusionner des PDF](./merge-pdf)
+- [Supprimer des pages](./delete-pages)
+- [Outil PDF tout-en-un](./pdf-multi-tool)
+- [Inverser l'ordre des pages](./reverse-pages)
diff --git a/docs/fr/tools/page-dimensions.md b/docs/fr/tools/page-dimensions.md
new file mode 100644
index 00000000..5f0624f5
--- /dev/null
+++ b/docs/fr/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Dimensions des pages
+description: Analysez les formats, orientations, proportions et rotations des pages PDF. Détectez les documents à formats mixtes et exportez les données en CSV.
+---
+
+# Dimensions des pages
+
+Un outil de diagnostic qui lit chaque page de votre PDF et indique ses dimensions exactes, son orientation, le nom de son format standard, ses proportions, sa surface et sa rotation. Utile pour repérer les pages de formats différents avant l'impression ou pour documenter les propriétés d'un PDF reçu.
+
+## Fonctionnement
+
+1. Envoyez un fichier PDF. L'analyse démarre automatiquement, sans bouton à cliquer.
+2. Un panneau récapitulatif affiche le nombre total de pages, le nombre de formats uniques et indique si le document contient des formats mixtes.
+3. Parcourez le tableau complet des résultats avec le détail de chaque page.
+4. Changez l'unité d'affichage : points, pouces, millimètres ou pixels.
+5. Cliquez sur **Exporter en CSV** pour enregistrer les données.
+
+## Champs indiqués
+
+| Colonne | Description |
+| --------------- | -------------------------------------------------------- |
+| N° de page | Numéro de page séquentiel |
+| Dimensions | Largeur x Hauteur dans l'unité choisie |
+| Format standard | Nom correspondant (A4, Letter, etc.) ou « Personnalisé » |
+| Orientation | Portrait ou Paysage |
+| Proportions | Rapport largeur/hauteur sous forme décimale |
+| Surface | Surface de la page dans l'unité choisie, au carré |
+| Rotation | Rotation de la page en degrés |
+
+## Fonctionnalités
+
+- Détection automatique des formats de papier standard (A3, A4, A5, Letter, Legal, Tabloid, etc.)
+- Avertissement de formats mixtes avec le détail des formats présents et du nombre de pages pour chacun
+- Conversion d'unités entre points, pouces, millimètres et pixels (à 96 PPI)
+- Exportation au format CSV pour une utilisation dans des tableurs ou des systèmes de documentation
+
+## Cas d'usage
+
+- Vérifier que toutes les pages sont en A4 avant d'envoyer un document à un imprimeur
+- Comprendre pourquoi un PDF fusionné s'imprime avec des marges inattendues sur certaines pages
+- Documenter la mise en page d'une grande archive PDF pour des fiches de métadonnées
+- Repérer les pages pivotées qui nécessitent une correction
+
+## Astuces
+
+- Si le récapitulatif indique « Formats mixtes », utilisez l'outil Uniformiser la taille des pages pour standardiser avant l'impression.
+- Le champ de rotation aide à repérer les pages qui s'affichent correctement mais ont un attribut de rotation non nul, ce qui peut poser problème dans certains flux de travail.
+
+## Outils associés
+
+- [Uniformiser la taille des pages](./fix-page-size) : standardiser les pages après avoir repéré des formats mixtes
+- [Compresser un PDF](./compress-pdf) : optimiser le PDF après avoir corrigé les pages
+- [Faire pivoter un PDF](./rotate-pdf) : corriger les pages pivotées
diff --git a/docs/fr/tools/page-numbers.md b/docs/fr/tools/page-numbers.md
new file mode 100644
index 00000000..bfa973c8
--- /dev/null
+++ b/docs/fr/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Numéros de page
+description: Ajoutez des numéros de page personnalisables à n'importe quelle position sur vos pages PDF, avec police, taille et couleur configurables.
+---
+
+# Numéros de page
+
+Ajoutez des numéros de page visibles sur chaque page de votre PDF. Vous choisissez la position, le format, la taille de police et la couleur, l'outil s'occupe du reste.
+
+## Fonctionnement
+
+1. Envoyez votre fichier PDF.
+2. Configurez les réglages de numérotation dans le panneau d'options qui apparaît.
+3. Cliquez sur **Ajouter les numéros de page** pour lancer le traitement.
+4. Le PDF numéroté est téléchargé automatiquement.
+
+## Options
+
+- **Position** : choisissez l'emplacement des numéros : Bas centre, Bas gauche, Bas droite, Haut centre, Haut gauche ou Haut droite.
+- **Format** : choisissez entre une numérotation simple (1, 2, 3...) ou le format « page X sur Y » (1 / 5, 2 / 5...).
+- **Taille de police** : définissez la taille du texte des numéros de page. 12 par défaut.
+- **Couleur** : choisissez la couleur du texte des numéros de page avec le sélecteur de couleur.
+
+## Fonctionnalités
+
+- Six positions couvrant tous les coins et les centres
+- Deux formats de numérotation : séquentielle simple ou « page X sur Y »
+- Taille de police personnalisable de 6 à 72 points
+- Sélecteur de couleur complet pour le texte
+- Gestion automatique des marges qui garde les numéros dans les zones sûres quelle que soit la taille de la page
+
+## Cas d'usage
+
+- Préparer des documents à imprimer qui nécessitent des repères de page visibles
+- Ajouter des numéros de page à un PDF fusionné créé à partir de plusieurs fichiers sources
+- Numéroter des supports de présentation avant leur distribution
+- Ajouter une numérotation séquentielle à des documents juridiques ou des contrats
+
+## Astuces
+
+- Le format « page X sur Y » est utile pour les documents où les lecteurs doivent connaître la longueur totale, comme les propositions commerciales ou les rapports.
+- Si vous avez besoin de styles de numérotation différents selon les sections (par exemple des chiffres romains pour les pages liminaires), utilisez plutôt l'outil [Ajouter des étiquettes de page](./add-page-labels).
+
+## Outils associés
+
+- [Ajouter des étiquettes de page](./add-page-labels)
+- [Numérotation Bates](./bates-numbering)
+- [En-tête et pied de page](./header-footer)
diff --git a/docs/fr/tools/pdf-booklet.md b/docs/fr/tools/pdf-booklet.md
new file mode 100644
index 00000000..5d01e2f8
--- /dev/null
+++ b/docs/fr/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Livret PDF
+description: Réorganisez les pages d'un PDF dans l'ordre d'un livret (piqûre à cheval) pour le plier et l'agrafer en livret physique.
+---
+
+# Livret PDF
+
+Réorganisez les pages d'un PDF dans l'ordre d'imposition d'un livret. Imprimées en recto verso puis pliées en deux, les pages se retrouvent dans le bon ordre de lecture. C'est la mise en page utilisée pour les livrets brochés à cheval et les fanzines.
+
+## Fonctionnement
+
+1. Envoyez un fichier PDF.
+2. Configurez les réglages du livret : format et orientation de la page de sortie.
+3. Cliquez sur **Générer l'aperçu** pour voir comment les pages seront disposées sur chaque feuille.
+4. Examinez l'aperçu, qui montre chaque feuille physique avec les pages affectées au recto et au verso.
+5. Cliquez sur **Télécharger** pour enregistrer le PDF imposé en livret.
+
+## Fonctionnalités
+
+- Réorganisation automatique des pages pour une reliure à cheval
+- Format de page de sortie configurable
+- Aperçu visuel de la mise en page du livret avant le téléchargement
+- Gestion des nombres de pages impairs par l'ajout de pages blanches si nécessaire
+- Mise à l'échelle des pages sources pour s'adapter au format de la feuille du livret
+
+## Cas d'usage
+
+- Créer des livrets ou fanzines imprimables à partir d'un PDF ordinaire
+- Préparer des programmes de conférence ou des guides d'événement pour une impression en interne
+- Fabriquer des cartes de vœux pliées ou de petits catalogues
+- Produire des recueils ou des plaquettes de poésie pour une reliure manuelle
+
+## Astuces
+
+- Idéalement, le nombre de pages de votre PDF source devrait être un multiple de 4 pour obtenir un livret propre. Sinon, des pages blanches sont ajoutées automatiquement pour compléter la dernière feuille.
+- Imprimez le résultat en recto verso avec le réglage « retourner sur le petit côté » de votre imprimante, puis pliez toutes les feuilles ensemble et agrafez sur le dos.
+- Pour simplement placer plusieurs pages sur une feuille sans l'ordre de livret, utilisez plutôt [PDF N-up](./n-up-pdf).
+
+## Outils associés
+
+- [PDF N-up](./n-up-pdf)
+- [Faire pivoter un PDF](./rotate-pdf)
+- [Ajouter une page vierge](./add-blank-page)
diff --git a/docs/fr/tools/pdf-layers.md b/docs/fr/tools/pdf-layers.md
new file mode 100644
index 00000000..32443bc5
--- /dev/null
+++ b/docs/fr/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Calques OCG PDF
+description: Affichez, activez, ajoutez et supprimez les calques OCG (Optional Content Group) d'un document PDF.
+---
+
+# Calques OCG PDF
+
+Gérez les groupes de contenu facultatif (OCG), communément appelés « calques », d'un PDF. Vous pouvez activer ou masquer des calques, en ajouter de nouveaux (y compris des calques enfants imbriqués), en supprimer et enregistrer le PDF modifié.
+
+## Fonctionnement
+
+1. Envoyez un fichier PDF.
+2. Cliquez sur le bouton de traitement pour charger le document avec le moteur PyMuPDF.
+3. L'outil affiche tous les calques existants avec leur état de visibilité, leur statut de verrouillage et leur hiérarchie d'imbrication.
+4. Cochez ou décochez les cases pour afficher ou masquer les calques. Les calques verrouillés ne peuvent pas être modifiés.
+5. Ajoutez de nouveaux calques de premier niveau en saisissant un nom puis en cliquant sur le bouton d'ajout, ou ajoutez des calques enfants sous un parent existant.
+6. Supprimez les calques dont vous n'avez plus besoin.
+7. Cliquez sur **Enregistrer** pour télécharger le PDF modifié avec vos changements de calques.
+
+## Fonctionnalités
+
+- Affiche la hiérarchie des calques avec une indentation adaptée aux calques imbriqués
+- Activation ou désactivation de la visibilité des calques
+- Indicateur de verrouillage qui évite les modifications accidentelles
+- Ajout de calques de premier niveau ou enfants avec des noms personnalisés
+- Suppression de calques individuels
+- Enregistrement de toutes les modifications dans un nouveau fichier PDF
+
+## Cas d'usage
+
+- Activer ou masquer des calques d'annotation dans des plans d'architecture ou d'ingénierie
+- Ajouter de nouveaux calques d'annotation à un document de conception multicalque
+- Retirer les calques obsolètes d'un modèle avant de le distribuer
+- Inspecter les calques présents dans un PDF complexe reçu d'un tiers
+
+## Astuces
+
+- Si le PDF n'a aucun calque, l'outil affiche un état vide invitant à en ajouter un. Tous les PDF n'utilisent pas de calques OCG : ils sont surtout courants dans les exports CAO et les fichiers de conception.
+- Les calques enfants sont indentés sous leur parent. Vous pouvez imbriquer les calques à n'importe quelle profondeur.
+- Les calques verrouillés sont affichés avec une icône de cadenas et leurs cases sont désactivées. Ces verrous sont définis par le créateur du PDF.
+
+## Outils associés
+
+- [Afficher les métadonnées](./view-metadata)
+- [Modifier les métadonnées](./edit-metadata)
+- [Dupliquer et organiser](./organize-pdf)
diff --git a/docs/fr/tools/pdf-multi-tool.md b/docs/fr/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..21df1e7a
--- /dev/null
+++ b/docs/fr/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Outil PDF tout-en-un
+description: Un gestionnaire de pages tout-en-un pour fusionner, scinder, faire pivoter, dupliquer, supprimer, réorganiser et redimensionner les pages PDF.
+---
+
+# Outil PDF tout-en-un
+
+Un espace de travail unifié pour toutes les opérations au niveau des pages PDF. Envoyez un ou plusieurs PDF et travaillez sur toutes leurs pages dans une seule grille visuelle. Faites pivoter, réorganisez, dupliquez, supprimez, insérez des PDF, des images et des pages vierges, renumérotez, redimensionnez et scindez le résultat, sans quitter l'outil.
+
+## Fonctionnement
+
+1. Cliquez sur **Sélectionner des fichiers** ou glissez des fichiers sur la zone d'envoi. Plusieurs fichiers sont pris en charge et sont fusionnés dans l'ordre d'envoi.
+2. Toutes les pages apparaissent dans une grille défilante avec des miniatures.
+3. Cliquez sur une page pour la sélectionner. Utilisez Shift+clic pour sélectionner une plage et Cmd/Ctrl+clic pour ajouter ou retirer des pages une à une.
+4. Utilisez la barre d'outils de l'organiseur ou faites un clic droit sur une page pour accéder aux actions sur les pages.
+5. Cliquez sur **Exporter en PDF** pour télécharger le résultat final.
+
+## Fonctionnalités
+
+- **Fusion** : envoyez plusieurs PDF et images, ils sont combinés automatiquement en un seul document
+- **Réorganisation** : faites glisser les pages pour modifier leur ordre, ou inversez tout le document
+- **Rotation** : faites pivoter les pages sélectionnées vers la gauche ou la droite par pas de 90 degrés
+- **Duplication** : copiez les pages sélectionnées et placez les copies juste après elles
+- **Suppression** : retirez les pages sélectionnées
+- **Insertion** : ajoutez des pages d'un autre PDF ou d'une image, une page vierge, des pages du presse-papiers, ou alternez les pages d'un second PDF avec les pages actuelles
+- **Remplacement** : remplacez une page par la première page d'un autre PDF
+- **Couper, copier et coller** : déplacez ou copiez des pages au sein du document
+- **Extraction** : téléchargez les pages sélectionnées en PDF ou en images
+- **Numéros de page** : définissez des étiquettes de page comme i, ii, iii ou A-1, A-2 pour une plage de pages
+- **Taille des pages** : adaptez les pages à un format de papier standard ou à une taille personnalisée
+- **Scission** : divisez le document par plages de pages, pages impaires et paires, page par page, signets, toutes les N pages ou taille de fichier
+- **Annuler / Rétablir** : chaque opération sur les pages peut être annulée et rétablie
+- Réparation automatique des PDF corrompus avant le chargement
+
+## Raccourcis clavier
+
+| Action | Raccourci |
+| --------------------------- | ----------------------------- |
+| Pivoter à droite / à gauche | R / Shift+R |
+| Tout sélectionner | Cmd/Ctrl+A |
+| Couper, copier, coller | Cmd/Ctrl+X, C, V |
+| Dupliquer | Cmd/Ctrl+D |
+| Supprimer | Suppr ou Retour arrière |
+| Annuler / Rétablir | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Déplacer la sélection | Touches fléchées, Home, End |
+
+## Cas d'usage
+
+- Construire un document personnalisé à partir de pages de plusieurs PDF sources
+- Nettoyer un document numérisé en supprimant les pages blanches, en redressant les scans couchés et en réordonnant les sections
+- Scinder un gros PDF aux limites des chapitres grâce à ses signets
+- Modifier rapidement des pages sans avoir besoin d'un éditeur PDF complet
+
+## Astuces
+
+- L'historique d'annulation et de rétablissement suit chaque opération sur les pages. Utilisez-le sans crainte : vous ne pouvez pas détruire votre travail par accident.
+- Utilisez **Insert > From File** ou déposez d'autres PDF ou images sur la grille de pages à tout moment pour les ajouter au document.
+- Pour de simples tâches de fusion ou de scission, les outils dédiés [Fusionner des PDF](./merge-pdf) ou [Scinder un PDF](./split-pdf) peuvent être plus rapides. L'outil tout-en-un est idéal quand vous avez besoin de plusieurs opérations dans une même session.
+
+## Outils associés
+
+- [Fusionner des PDF](./merge-pdf)
+- [Scinder un PDF](./split-pdf)
+- [Dupliquer et organiser](./organize-pdf)
+- [Faire pivoter un PDF](./rotate-pdf)
diff --git a/docs/fr/tools/pdf-to-bmp.md b/docs/fr/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..ae286ca7
--- /dev/null
+++ b/docs/fr/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF vers BMP
+description: Convertissez des pages PDF en images BMP non compressées. Utile pour les systèmes anciens et les flux d'impression qui exigent une entrée bitmap.
+---
+
+# PDF vers BMP
+
+Convertit chaque page d'un PDF en image BMP (Bitmap). BMP est un format non compressé : le résultat est fidèle au pixel près, sans perte de qualité, mais les fichiers sont volumineux.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Cliquez sur **Convertir** pour lancer le traitement.
+3. Un fichier `.bmp` unique ou une archive ZIP est téléchargé automatiquement.
+
+## Options
+
+Cet outil n'a aucune option configurable. Les pages sont rendues à une échelle fixe de 2x, ce qui produit des images d'environ le double des dimensions natives de la page PDF.
+
+## Format de sortie
+
+- **Une seule page** : `filename.bmp`
+- **Plusieurs pages** : `filename_bmps.zip` contenant `page_1.bmp`, `page_2.bmp`, etc.
+
+## Cas d'usage
+
+- Alimenter des systèmes ou du matériel anciens qui n'acceptent que le BMP en entrée.
+- Préparer des images non compressées pour certains flux d'impression.
+- Utiliser une sortie bitmap comme entrée d'outils de traitement d'image qui exigent des données de pixels brutes.
+
+## Astuces
+
+- Les fichiers BMP sont très volumineux car ils stockent les pixels bruts sans compression. Dans la plupart des cas, [PDF vers PNG](./pdf-to-png) offre une qualité sans perte avec des fichiers bien plus petits.
+- Si votre système cible accepte le PNG ou le TIFF, préférez ces formats pour économiser de l'espace disque.
+
+## Outils associés
+
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers TIFF](./pdf-to-tiff)
+- [PDF vers JPG](./pdf-to-jpg)
diff --git a/docs/fr/tools/pdf-to-cbz.md b/docs/fr/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..70b2484f
--- /dev/null
+++ b/docs/fr/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF vers CBZ
+description: Convertissez un PDF en fichier CBZ (Comic Book Archive) pour les lecteurs de bandes dessinées comme Komga, Kavita, CDisplayEx et Calibre.
+---
+
+# PDF vers CBZ
+
+Convertit un PDF en fichier CBZ (Comic Book ZIP), le format standard des bandes dessinées et mangas numériques. Chaque page du PDF devient une image dans l'archive. L'outil génère des métadonnées dans trois formats pour une compatibilité maximale : ComicInfo.xml, metadata.opf et ComicBookInfo JSON.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Choisissez le format d'image, la qualité, l'échelle et les métadonnées facultatives.
+3. Cliquez sur **Convertir** pour générer le fichier CBZ.
+4. Le fichier `.cbz` est téléchargé automatiquement.
+
+## Options
+
+| Option | Valeurs | Par défaut | Description |
+| ----------------------- | ---------------- | ---------- | -------------------------------------------------------------------------------------------------------------- |
+| Format d'image | JPEG, PNG, WebP | JPEG | JPEG pour les BD en couleur, PNG pour les mangas noir et blanc sans perte, WebP pour la meilleure compression. |
+| Qualité | 50–100 % | 85 % | Contrôle la compression JPEG/WebP. Masquée pour le PNG (toujours sans perte). |
+| Échelle | 1,0x–4,0x | 2,0x | Une échelle plus élevée produit des images plus nettes pour les écrans haute résolution. |
+| Niveaux de gris | Activé/Désactivé | Désactivé | Convertit les pages en niveaux de gris. Réduit la taille des fichiers pour le contenu noir et blanc. |
+| Mode manga | Activé/Désactivé | Désactivé | Définit le sens de lecture de droite à gauche dans les métadonnées. |
+| Inclure les métadonnées | Activé/Désactivé | Activé | Intègre ComicInfo.xml, metadata.opf et ComicBookInfo JSON. |
+
+## Champs de métadonnées
+
+Quand les métadonnées sont activées, vous pouvez renseigner :
+
+- **Titre** : détecté automatiquement à partir du nom du fichier PDF.
+- **Série** : le nom de la série (par ex. « Naruto »).
+- **Numéro (n°)** : numéro du tome ou du numéro dans la série.
+- **Volume (Vol.)** : numéro du volume.
+- **Auteur(s)** : nom du scénariste ou du créateur.
+- **Éditeur** : maison d'édition.
+- **Tags / Genre** : tags séparés par des virgules (par ex. « Action, Aventure »).
+- **Année de publication** : année de publication (1900–2100).
+- **Note** : note de la communauté de 0 à 5.
+
+## Compatibilité des métadonnées
+
+L'outil écrit les métadonnées dans trois formats pour que chaque lecteur puisse les trouver :
+
+| Format | Emplacement | Pris en charge par |
+| ------------------ | --------------------------- | ------------------------------------------- |
+| ComicInfo.xml | Fichier dans le ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Fichier dans le ZIP | Calibre |
+| ComicBookInfo JSON | Champ de commentaire du ZIP | Calibre (solution de repli) |
+
+## Format de sortie
+
+- `filename.cbz` : une archive ZIP contenant les images des pages numérotées et les fichiers de métadonnées.
+
+Les images des pages sont nommées avec des numéros complétés par des zéros (`01.jpg`, `02.jpg`, etc.) pour que les lecteurs les affichent dans le bon ordre.
+
+## Cas d'usage
+
+- Convertir des mangas ou des BD en PDF pour les utiliser avec des lecteurs de bandes dessinées.
+- Constituer une bibliothèque de BD numériques dans Komga, Kavita ou Calibre.
+- Convertir des bandes dessinées numérisées dans un format adapté aux lecteurs.
+- Partager des BD dans un format qui préserve le sens de lecture et les métadonnées.
+
+## Astuces
+
+- Utilisez **JPEG** pour les BD en couleur et **PNG** pour les mangas en noir et blanc : le PNG compresse très efficacement le contenu noir et blanc.
+- Activez **Niveaux de gris** pour les mangas afin de réduire nettement la taille des fichiers.
+- Renseignez les champs **Série** et **Numéro** pour que les gestionnaires de bibliothèque (Komga, Calibre) organisent automatiquement votre collection.
+- **WebP** offre la meilleure compression, mais les lecteurs de BD plus anciens peuvent ne pas le prendre en charge.
+
+## Outils associés
+
+- [PDF vers JPG](./pdf-to-jpg)
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers TIFF](./pdf-to-tiff)
+- [Extraire les images](./extract-images)
diff --git a/docs/fr/tools/pdf-to-csv.md b/docs/fr/tools/pdf-to-csv.md
new file mode 100644
index 00000000..c216dbe0
--- /dev/null
+++ b/docs/fr/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF vers CSV
+description: Extrayez les tableaux de documents PDF et exportez-les dans un seul fichier CSV. Gère les PDF de plusieurs pages avec détection automatique des tableaux.
+---
+
+# PDF vers CSV
+
+Extrait les tableaux d'un PDF et les exporte dans un fichier CSV. L'outil analyse chaque page à la recherche de données tabulaires avec le moteur de détection de tableaux de PyMuPDF, puis écrit toutes les lignes trouvées dans une seule sortie séparée par des virgules.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Cliquez sur **Convertir** pour lancer l'extraction des tableaux.
+3. L'outil analyse chaque page et identifie automatiquement les tableaux.
+4. Un fichier `.csv` contenant toutes les données extraites est téléchargé.
+
+Les tableaux de pages différentes sont séparés par des lignes vides dans la sortie. Les cellules contenant des virgules, des guillemets ou des retours à la ligne sont correctement échappées selon la RFC 4180.
+
+## Options
+
+Cet outil n'a aucune option configurable. Tous les tableaux trouvés dans le document sont extraits et combinés dans un seul CSV.
+
+## Format de sortie
+
+- Un seul fichier `filename.csv` contenant tous les tableaux détectés.
+
+## Cas d'usage
+
+- Récupérer des données financières de relevés bancaires ou de factures PDF dans un tableur.
+- Extraire des tableaux de prix de devis fournisseurs pour les comparer.
+- Convertir des données de recherche tabulaires issues d'articles PDF dans un format adapté aux outils d'analyse.
+- Migrer les données de rapports PDF anciens vers des bases de données.
+
+## Astuces
+
+- Si aucun tableau n'est trouvé, l'outil affiche un message « Aucun tableau trouvé ». Cela signifie généralement que le PDF utilise une mise en page de texte qui ressemble à un tableau sans en être un réellement structuré.
+- Pour un meilleur contrôle sur chaque tableau, utilisez [Extraire les tableaux](./extract-tables), qui permet de choisir entre les formats de sortie CSV, JSON et Markdown.
+- Si vous avez besoin des données au format Excel avec une feuille distincte par tableau, utilisez [PDF vers Excel](./pdf-to-excel).
+
+## Outils associés
+
+- [PDF vers Excel](./pdf-to-excel)
+- [Extraire les tableaux](./extract-tables)
+- [PDF vers texte](./pdf-to-text)
diff --git a/docs/fr/tools/pdf-to-excel.md b/docs/fr/tools/pdf-to-excel.md
new file mode 100644
index 00000000..5ab0c35a
--- /dev/null
+++ b/docs/fr/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF vers Excel
+description: Extrayez les tableaux de documents PDF dans une feuille de calcul Excel. Chaque tableau a sa propre feuille avec une référence de page.
+---
+
+# PDF vers Excel
+
+Extrait les tableaux d'un PDF et les enregistre dans une feuille de calcul Excel (`.xlsx`). Chaque tableau détecté est placé dans sa propre feuille, nommée d'après son numéro de tableau et sa page source. Propulsé par PyMuPDF pour la détection des tableaux et par la bibliothèque SheetJS pour la génération Excel.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Cliquez sur **Convertir** pour lancer l'extraction des tableaux.
+3. L'outil analyse chaque page à la recherche de tableaux, puis construit un classeur Excel.
+4. Un fichier `.xlsx` est téléchargé avec une feuille par tableau.
+
+## Options
+
+Cet outil n'a aucune option configurable. Tous les tableaux détectés sont extraits automatiquement.
+
+## Format de sortie
+
+- Un seul fichier `filename.xlsx`.
+- **Un tableau** : une seule feuille nommée « Table ».
+- **Plusieurs tableaux** : des feuilles nommées « Table 1 (Page 3) », « Table 2 (Page 5) », etc. Les noms de feuille sont tronqués à 31 caractères (la limite d'Excel).
+
+## Cas d'usage
+
+- Convertir des rapports financiers PDF en feuilles de calcul modifiables pour une analyse approfondie.
+- Extraire des tableaux d'inventaire ou de commandes de PDF de fournisseurs.
+- Récupérer des données structurées de formulaires ou de catalogues PDF dans Excel pour les trier et les filtrer.
+- Archiver des données tabulaires PDF dans un format avec lequel des collègues non techniques peuvent travailler.
+
+## Astuces
+
+- Si l'outil indique « Aucun tableau trouvé », le PDF utilise probablement une mise en page de texte libre plutôt que des tableaux structurés. Essayez [PDF vers texte](./pdf-to-text) pour récupérer le contenu brut.
+- Pour un format plat plus simple, utilisez [PDF vers CSV](./pdf-to-csv). Pour télécharger chaque tableau dans plusieurs formats, utilisez [Extraire les tableaux](./extract-tables).
+- Consultez les noms des feuilles pour identifier la page d'origine de chaque tableau.
+
+## Outils associés
+
+- [PDF vers CSV](./pdf-to-csv)
+- [Extraire les tableaux](./extract-tables)
+- [PDF vers texte](./pdf-to-text)
diff --git a/docs/fr/tools/pdf-to-greyscale.md b/docs/fr/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..f013cca3
--- /dev/null
+++ b/docs/fr/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF en niveaux de gris
+description: Convertissez un PDF en couleur en version en niveaux de gris (noir et blanc). Produit un nouveau PDF sans aucune couleur sur chaque page.
+---
+
+# PDF en niveaux de gris
+
+Convertit un PDF en couleur en version en niveaux de gris. Chaque page est rendue, désaturée puis réintégrée sous forme d'image JPEG dans un nouveau PDF. Le résultat conserve les dimensions d'origine des pages.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Cliquez sur **Convertir** pour traiter le fichier.
+3. Un nouveau fichier `greyscale.pdf` est téléchargé avec toutes les pages converties en noir et blanc.
+
+En coulisses, chaque page est rendue à l'échelle 2x, les données de pixels passent par un filtre de niveaux de gris, puis sont réencodées en JPEG à 90 % de qualité et placées dans un nouveau document PDF.
+
+## Options
+
+Cet outil n'a aucune option configurable. La conversion en niveaux de gris utilise une formule de luminance standard et la qualité JPEG est fixée à 90 %.
+
+## Format de sortie
+
+- Un seul fichier `greyscale.pdf` contenant toutes les pages sous forme d'images JPEG en niveaux de gris.
+
+## Cas d'usage
+
+- Préparer des documents pour une impression en noir et blanc afin d'économiser l'encre couleur.
+- Respecter les exigences de dépôt de dossiers juridiques ou administratifs qui imposent les niveaux de gris.
+- Réduire la taille de PDF très colorés (les images JPEG en niveaux de gris sont plus légères que celles en couleur).
+- Créer un style visuel cohérent pour des documents mêlant pages en couleur et en noir et blanc.
+
+## Astuces
+
+- Comme chaque page est rastérisée puis réintégrée en JPEG, le résultat est basé sur des images. Le texte du PDF d'origine ne sera plus sélectionnable ni consultable. Si vous avez besoin d'un texte recherchable ensuite, passez le résultat dans l'outil OCR.
+- Pour un meilleur contrôle des réglages de couleur (luminosité, contraste, saturation), consultez l'outil Ajuster les couleurs ou le nœud Niveaux de gris du [Créateur de flux PDF](./pdf-workflow).
+
+## Outils associés
+
+- [PDF vers JPG](./pdf-to-jpg)
+- [PDF vers PNG](./pdf-to-png)
+- [Créateur de flux PDF](./pdf-workflow)
diff --git a/docs/fr/tools/pdf-to-jpg.md b/docs/fr/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..7f20bcf7
--- /dev/null
+++ b/docs/fr/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF vers JPG
+description: Convertissez des pages PDF en images JPG avec une qualité réglable. Les PDF d'une page se téléchargent directement, ceux de plusieurs pages sont exportés en ZIP.
+---
+
+# PDF vers JPG
+
+Convertit chaque page d'un PDF en image JPG. Les documents d'une seule page sont téléchargés sous forme d'un fichier `.jpg` autonome. Les PDF de plusieurs pages produisent une archive ZIP contenant un JPG par page.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier. L'outil affiche le nom du fichier, sa taille et son nombre de pages.
+2. Réglez le curseur **Qualité** pour contrôler la compression JPG.
+3. Cliquez sur **Convertir** pour lancer le traitement.
+4. Le résultat est téléchargé automatiquement : un seul JPG pour les PDF d'une page, ou un fichier ZIP pour les documents de plusieurs pages.
+
+## Options
+
+- **Qualité** : un curseur de 0 % à 100 % (90 % par défaut). Des valeurs plus élevées produisent des images plus nettes avec des fichiers plus volumineux. Des valeurs plus basses compressent plus fortement.
+
+Les pages sont rendues en interne à l'échelle 2x, la résolution de sortie est donc le double des dimensions de la page PDF. Une page au format Letter produit une image d'environ 1 224 x 1 584 pixels.
+
+## Format de sortie
+
+- **Une seule page** : `filename.jpg`
+- **Plusieurs pages** : `filename_jpgs.zip` contenant `page_1.jpg`, `page_2.jpg`, etc.
+
+## Cas d'usage
+
+- Générer des miniatures d'aperçu pour un système de gestion documentaire.
+- Partager une page d'un rapport dans un chat ou un e-mail qui ne prend pas en charge le PDF.
+- Créer des ressources d'image à partir de schémas ou d'illustrations PDF.
+- Archiver des documents numérisés sous forme d'images individuelles.
+
+## Astuces
+
+- Pour une sortie sans perte, utilisez plutôt [PDF vers PNG](./pdf-to-png).
+- Un réglage de qualité de 80 à 90 % offre un bon équilibre entre taille de fichier et fidélité visuelle.
+- Si vous avez besoin d'un format précis par page, essayez le [Créateur de flux PDF](./pdf-workflow), qui dispose d'un nœud de sortie PDF vers images.
+
+## Outils associés
+
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers WebP](./pdf-to-webp)
+- [PDF vers BMP](./pdf-to-bmp)
+- [PDF vers TIFF](./pdf-to-tiff)
diff --git a/docs/fr/tools/pdf-to-json.md b/docs/fr/tools/pdf-to-json.md
new file mode 100644
index 00000000..2780f51c
--- /dev/null
+++ b/docs/fr/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF vers JSON
+description: Convertissez des fichiers PDF en JSON structuré avec CPDF. Exporte la structure interne du PDF sous forme de données JSON lisibles par machine.
+---
+
+# PDF vers JSON
+
+Convertit un ou plusieurs fichiers PDF au format JSON. L'outil utilise CPDF (Coherent PDF) pour sérialiser la structure interne de chaque PDF en une représentation JSON lisible par machine. Le résultat est toujours livré sous forme d'archive ZIP.
+
+## Fonctionnement
+
+1. Sélectionnez un ou plusieurs fichiers PDF avec le sélecteur de fichiers.
+2. Cliquez sur **Convertir** pour lancer le traitement. La conversion s'exécute dans un web worker en arrière-plan.
+3. Une archive ZIP est téléchargée, contenant un fichier JSON pour chaque PDF d'entrée.
+
+La barre d'état indique la progression des étapes de conversion et de création du ZIP.
+
+## Options
+
+Cet outil n'a aucune option configurable. Chaque PDF est converti en sa représentation JSON complète.
+
+## Format de sortie
+
+- Un fichier `pdfs-to-json.zip` contenant `filename.json` pour chaque PDF d'entrée.
+
+La sortie JSON représente la structure interne des objets du PDF, y compris les arbres de pages, les références de polices, les métadonnées et les flux de contenu.
+
+## Cas d'usage
+
+- Inspecter la structure interne d'un PDF pour le débogage ou la validation.
+- Extraire par programmation les métadonnées structurées et les propriétés des pages.
+- Alimenter des chaînes de traitement personnalisées avec des données de structure PDF.
+- Auditer la conformité de documents PDF en analysant leurs arbres d'objets.
+
+## Astuces
+
+- Cet outil produit la structure brute des objets du PDF, pas le texte extrait. Si vous avez besoin du texte des pages au format JSON, utilisez plutôt [Préparer un PDF pour l'IA](./prepare-pdf-for-ai).
+- Pour une extraction de texte simple, [PDF vers texte](./pdf-to-text) est plus direct.
+- Les gros PDF à la structure complexe produisent des fichiers JSON très volumineux.
+
+## Outils associés
+
+- [PDF vers texte](./pdf-to-text)
+- [Préparer un PDF pour l'IA](./prepare-pdf-for-ai)
+- [Extraire les tableaux](./extract-tables)
diff --git a/docs/fr/tools/pdf-to-markdown.md b/docs/fr/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..a4dd78d0
--- /dev/null
+++ b/docs/fr/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF vers Markdown
+description: Convertissez des documents PDF au format Markdown avec extraction d'images facultative. Prend en charge la conversion par lots de plusieurs fichiers.
+---
+
+# PDF vers Markdown
+
+Convertit des fichiers PDF au format Markdown (`.md`) en préservant les titres, paragraphes, listes et la mise en forme de base. Peut aussi extraire et inclure les images intégrées. Prend en charge la conversion d'un seul fichier ou par lots. Propulsé par PyMuPDF.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers.
+2. Activez éventuellement **Inclure les images** pour intégrer les images extraites dans la sortie Markdown.
+3. Cliquez sur **Convertir** pour lancer le traitement.
+4. Un seul fichier est téléchargé sous la forme `filename.md`. Plusieurs fichiers produisent un `markdown-files.zip`.
+
+## Options
+
+- **Inclure les images** : une fois cochée, les images intégrées au PDF sont extraites et référencées dans la sortie Markdown. Une fois décochée, seul le contenu textuel est converti.
+
+## Format de sortie
+
+- **Un seul fichier** : `filename.md`
+- **Plusieurs fichiers** : `markdown-files.zip` contenant un `.md` par PDF d'entrée.
+
+## Cas d'usage
+
+- Convertir de la documentation PDF en Markdown pour un générateur de site statique comme VitePress, Hugo ou Jekyll.
+- Transformer des articles de recherche PDF en Markdown modifiable pour des applications de prise de notes comme Obsidian.
+- Migrer d'anciennes bases de connaissances PDF vers un format texte adapté à Git.
+- Extraire le contenu structuré d'ebooks PDF pour le remettre en forme.
+
+## Astuces
+
+- L'option Inclure les images est utile quand le PDF contient des schémas ou des figures essentiels au contenu. Désactivez-la pour les documents riches en texte afin de garder une sortie propre.
+- Les mises en page complexes avec barres latérales, notes de bas de page ou texte en plusieurs colonnes peuvent produire un Markdown imparfait. Relisez et ajustez la sortie si nécessaire.
+- Pour du texte brut sans aucune mise en forme, utilisez plutôt [PDF vers texte](./pdf-to-text).
+
+## Outils associés
+
+- [PDF vers texte](./pdf-to-text)
+- [PDF vers Word](./pdf-to-word)
+- [Préparer un PDF pour l'IA](./prepare-pdf-for-ai)
diff --git a/docs/fr/tools/pdf-to-pdfa.md b/docs/fr/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..d449a1e8
--- /dev/null
+++ b/docs/fr/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF vers PDF/A
+description: Convertissez des PDF standard au format PDF/A pour l'archivage à long terme. Prend en charge les niveaux de conformité PDF/A-1b, PDF/A-2b et PDF/A-3b.
+---
+
+# PDF vers PDF/A
+
+PDF/A est un sous-ensemble du PDF normalisé par l'ISO, conçu pour la conservation numérique à long terme. Cet outil convertit vos PDF standard en documents conformes PDF/A avec Ghostscript, qui s'exécute directement dans votre navigateur.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs fichiers PDF.
+2. Sélectionnez une **version PDF/A** dans la liste déroulante.
+3. Activez éventuellement **Aplatir le PDF au préalable** pour les fichiers complexes qui échouent à la conversion normale.
+4. Cliquez sur **Convertir en PDF/A**. Plusieurs fichiers produisent une archive ZIP.
+
+## Versions PDF/A
+
+| Version | Restrictions | Idéal pour |
+| ------------ | ----------------------------------------------------- | ------------------------------------------------------------- |
+| **PDF/A-1b** | La plus stricte. Ni transparence ni calques. | Compatibilité maximale avec les anciens systèmes d'archivage |
+| **PDF/A-2b** | Autorise la transparence et JPEG2000. | Archivage généraliste (recommandé) |
+| **PDF/A-3b** | Autorise les pièces jointes intégrées de tout format. | Archivage de documents avec leurs fichiers de données sources |
+
+PDF/A-2b est sélectionné par défaut et convient à la grande majorité des besoins d'archivage.
+
+## Option d'aplatissement préalable
+
+Certains PDF contiennent des éléments qui empêchent une conversion PDF/A propre : encodages de polices inhabituels, piles de transparence complexes ou structures internes endommagées. Activer **Aplatir au préalable** rastérise le PDF à 300 DPI avant la conversion, ce qui garantit la conformité au prix d'un texte non sélectionnable. Utilisez-la en solution de repli quand la conversion standard produit des erreurs.
+
+L'aplatissement préalable nécessite le moteur WASM PyMuPDF.
+
+## Cas d'usage
+
+- Répondre aux exigences d'archivage administratives ou juridiques (de nombreuses juridictions imposent le PDF/A pour les dépôts judiciaires)
+- Soumettre des documents à des dépôts institutionnels ou à des bibliothèques numériques
+- Conserver des documents d'entreprise alors que le logiciel d'origine pourrait ne plus exister dans dix ans
+- Préparer des factures pour les normes de facturation électronique qui exigent du PDF/A-3b avec des pièces jointes XML
+
+## Astuces
+
+- Essayez d'abord la conversion sans aplatissement préalable. Ne l'activez qu'en cas d'erreur.
+- Le PDF/A intègre toutes les polices, les fichiers de sortie sont donc souvent plus volumineux que les originaux.
+- Validez le résultat dans un validateur PDF/A dédié si une conformité stricte est nécessaire pour votre flux de travail.
+
+## Outils associés
+
+- [Compresser un PDF](./compress-pdf) : réduire la taille du fichier après la conversion
+- [Aplatir le PDF](./flatten-pdf) : aplatir les formulaires avant la conversion en PDF/A
+- [Supprimer les métadonnées](./remove-metadata) : retirer les métadonnées avant l'archivage
diff --git a/docs/fr/tools/pdf-to-png.md b/docs/fr/tools/pdf-to-png.md
new file mode 100644
index 00000000..9e697cd0
--- /dev/null
+++ b/docs/fr/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF vers PNG
+description: Convertissez des pages PDF en images PNG sans perte avec une échelle réglable. Idéal pour des captures de haute qualité et des fonds transparents.
+---
+
+# PDF vers PNG
+
+Convertit chaque page d'un PDF en image PNG. Le PNG utilise une compression sans perte, le résultat conserve donc tous les détails de la page d'origine. Les PDF d'une page sont téléchargés sous forme de fichier `.png`, ceux de plusieurs pages produisent un ZIP.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Réglez le curseur **Échelle** pour contrôler la résolution de sortie.
+3. Cliquez sur **Convertir** pour lancer le traitement.
+4. Un PNG unique ou une archive ZIP est téléchargé automatiquement.
+
+## Options
+
+- **Échelle** : de 1,0x à 3,0x (2,0x par défaut). À 2,0x, une page au format Letter est rendue à environ 1 224 x 1 584 pixels. Des valeurs d'échelle plus élevées produisent des images plus grandes et plus nettes, au prix d'une taille de fichier et d'un temps de traitement accrus.
+
+## Format de sortie
+
+- **Une seule page** : `filename.png`
+- **Plusieurs pages** : `filename_pngs.zip` contenant `page_1.png`, `page_2.png`, etc.
+
+## Cas d'usage
+
+- Capturer des images fidèles de pages PDF pour des présentations.
+- Extraire des graphiques ou des schémas qui exigent des contours nets et aucun artefact de compression.
+- Préparer des ressources pour le design web à partir de maquettes PDF.
+- Créer des images de pages sans perte pour le prétraitement OCR.
+
+## Astuces
+
+- Les fichiers PNG sont nettement plus volumineux que les JPG. Si la taille compte plus que la qualité parfaite, utilisez [PDF vers JPG](./pdf-to-jpg) ou [PDF vers WebP](./pdf-to-webp).
+- À l'échelle 1,0x, la sortie correspond à la résolution native du PDF. Passez à 3,0x pour des exports de qualité d'impression.
+
+## Outils associés
+
+- [PDF vers JPG](./pdf-to-jpg)
+- [PDF vers WebP](./pdf-to-webp)
+- [PDF vers SVG](./pdf-to-svg)
diff --git a/docs/fr/tools/pdf-to-svg.md b/docs/fr/tools/pdf-to-svg.md
new file mode 100644
index 00000000..8dbcb8c0
--- /dev/null
+++ b/docs/fr/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF vers SVG
+description: Convertissez des pages PDF en graphiques vectoriels SVG redimensionnables. Conserve le texte et les formes sous forme de tracés vectoriels pour un redimensionnement infini.
+---
+
+# PDF vers SVG
+
+Convertit chaque page d'un PDF en fichier SVG (Scalable Vector Graphics). Contrairement aux formats matriciels, le SVG conserve les tracés vectoriels, le texte et les formes, de sorte que le résultat s'adapte à n'importe quelle taille sans pixellisation. Propulsé par PyMuPDF.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers. Vous pouvez ajouter plusieurs fichiers et les gérer individuellement.
+2. Cliquez sur **Convertir** pour traiter tous les fichiers envoyés.
+3. Les conversions d'un seul fichier d'une seule page sont téléchargées sous forme d'un `.svg` autonome. Tous les autres cas sont téléchargés sous forme d'archive ZIP.
+
+## Options
+
+Cet outil n'a aucune option configurable. Chaque page est convertie en SVG avec l'export vectoriel natif de PyMuPDF.
+
+## Format de sortie
+
+- **Un fichier, une page** : `filename.svg`
+- **Un fichier, plusieurs pages** : `filename_svg.zip` contenant `page_1.svg`, `page_2.svg`, etc.
+- **Plusieurs fichiers** : `pdf_to_svg.zip` avec des fichiers organisés par nom de document source.
+
+## Cas d'usage
+
+- Extraire des schémas vectoriels, des graphiques ou des illustrations de rapports PDF pour les utiliser dans des pages web.
+- Modifier le contenu de pages PDF dans un éditeur vectoriel comme Inkscape ou Illustrator.
+- Intégrer des aperçus de pages redimensionnables dans des applications web adaptatives.
+- Extraire des logos ou des graphismes de brochures PDF en conservant des contours nets.
+
+## Astuces
+
+- Le SVG fonctionne mieux avec les PDF qui contiennent du contenu vectoriel. Les documents numérisés ou riches en images produiront de gros fichiers SVG contenant des données matricielles intégrées.
+- Pour une sortie matricielle de PDF riches en images, utilisez plutôt [PDF vers PNG](./pdf-to-png) ou [PDF vers JPG](./pdf-to-jpg).
+- Cet outil prend en charge la conversion par lots : envoyez plusieurs PDF à la fois pour tous les convertir en une seule exécution.
+
+## Outils associés
+
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers JPG](./pdf-to-jpg)
+- [PDF vers Markdown](./pdf-to-markdown)
diff --git a/docs/fr/tools/pdf-to-text.md b/docs/fr/tools/pdf-to-text.md
new file mode 100644
index 00000000..7ad7a0f9
--- /dev/null
+++ b/docs/fr/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF vers texte
+description: Extrayez le texte brut de fichiers PDF. Prend en charge l'extraction par lots de plusieurs PDF avec des fichiers TXT en sortie.
+---
+
+# PDF vers texte
+
+Extrait tout le contenu textuel de fichiers PDF et l'enregistre dans des fichiers `.txt` bruts. Prend en charge le traitement par lots : envoyez plusieurs PDF et obtenez le texte de chacun en une seule opération. Propulsé par PyMuPDF.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers. Gérez votre liste de fichiers avec les boutons Ajouter et Effacer.
+2. Cliquez sur **Extraire** pour lancer le traitement.
+3. Un seul fichier est téléchargé sous la forme `filename.txt`. Plusieurs fichiers produisent une archive `pdf-to-text.zip`.
+
+## Options
+
+Cet outil n'a aucune option configurable. Tout le contenu textuel de chaque page est extrait dans l'ordre de lecture.
+
+## Format de sortie
+
+- **Un seul fichier** : `filename.txt`
+- **Plusieurs fichiers** : `pdf-to-text.zip` contenant un `.txt` par PDF d'entrée.
+
+## Cas d'usage
+
+- Extraire le texte principal de rapports PDF pour l'indexation en texte intégral.
+- Convertir des ebooks ou des articles PDF en texte brut pour les lire sur des liseuses à encre électronique.
+- Récupérer le texte de contrats ou de documents juridiques pour une analyse par mots-clés.
+- Retirer la mise en forme des PDF pour obtenir un texte propre destiné à des scripts de traitement de données.
+- Préparer un corpus de texte à partir d'archives PDF pour le traitement automatique du langage.
+
+## Astuces
+
+- Les PDF numérisés (uniquement des images) produiront des fichiers texte vides, car il n'y a aucune couche de texte à extraire. Passez d'abord les documents numérisés dans l'OCR.
+- La sortie conserve l'ordre de lecture tel qu'interprété par PyMuPDF, qui suit généralement de gauche à droite et de haut en bas. Les mises en page à plusieurs colonnes peuvent produire un texte entrelacé.
+- Pour une sortie structurée avec titres et mise en forme, essayez [PDF vers Markdown](./pdf-to-markdown). Pour du JSON structuré prêt pour l'IA, utilisez [Préparer un PDF pour l'IA](./prepare-pdf-for-ai).
+
+## Outils associés
+
+- [PDF vers Markdown](./pdf-to-markdown)
+- [Préparer un PDF pour l'IA](./prepare-pdf-for-ai)
+- [PDF vers Word](./pdf-to-word)
diff --git a/docs/fr/tools/pdf-to-tiff.md b/docs/fr/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..4879f04b
--- /dev/null
+++ b/docs/fr/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF vers TIFF
+description: Convertissez des pages PDF en images TIFF, couramment utilisées dans l'impression, le fax et l'archivage. Bascule sur PNG si l'encodage échoue.
+---
+
+# PDF vers TIFF
+
+Convertit chaque page d'un PDF en image TIFF. Le TIFF est le format standard de la production d'impression, des systèmes de fax et de l'archivage de documents. L'outil utilise la compression PackBits pour l'encodage TIFF et bascule sur PNG si l'encodage d'une page échoue.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Cliquez sur **Convertir** pour traiter le fichier.
+3. Un fichier TIFF unique ou une archive ZIP est téléchargé automatiquement.
+
+## Options
+
+Cet outil n'a aucune option configurable. Les pages sont rendues à une échelle fixe de 2x.
+
+## Format de sortie
+
+- **Une seule page** : `filename.tiff`
+- **Plusieurs pages** : `filename_tiffs.zip` contenant `page_1.tiff`, `page_2.tiff`, etc.
+
+Si l'encodage TIFF échoue pour une page précise (à cause de problèmes de compression), cette page est enregistrée en fichier `.png` à la place. Le ZIP contiendra alors un mélange de fichiers TIFF et PNG.
+
+## Cas d'usage
+
+- Soumettre des documents à des administrations ou des systèmes juridiques qui exigent le format TIFF.
+- Préparer des pages pour une transmission par fax via des services de fax numériques.
+- Archiver des documents numérisés dans un format sans perte largement pris en charge.
+- Alimenter des systèmes de gestion documentaire d'entreprise avec des pages.
+
+## Astuces
+
+- Les fichiers TIFF sont volumineux. Si vous n'avez besoin d'une qualité sans perte que pour le web ou l'écran, [PDF vers PNG](./pdf-to-png) est un meilleur choix.
+- Vérifiez le contenu du ZIP si certaines pages ont nécessité le repli sur PNG : vous voudrez peut-être les convertir séparément.
+
+## Outils associés
+
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers BMP](./pdf-to-bmp)
+- [PDF vers JPG](./pdf-to-jpg)
diff --git a/docs/fr/tools/pdf-to-webp.md b/docs/fr/tools/pdf-to-webp.md
new file mode 100644
index 00000000..3dd0d93a
--- /dev/null
+++ b/docs/fr/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF vers WebP
+description: Convertissez des pages PDF en images WebP avec une qualité réglable. Des fichiers plus petits que le JPG pour une qualité visuelle comparable.
+---
+
+# PDF vers WebP
+
+Convertit chaque page d'un PDF en image WebP. Le WebP produit généralement des fichiers 25 à 35 % plus petits que le JPG pour une qualité perçue identique, ce qui en fait un excellent choix pour le web.
+
+## Fonctionnement
+
+1. Envoyez un PDF en cliquant sur la zone de dépôt ou en y glissant un fichier.
+2. Réglez le curseur **Qualité**.
+3. Cliquez sur **Convertir** pour traiter le fichier.
+4. Un fichier `.webp` unique ou une archive ZIP est téléchargé automatiquement.
+
+## Options
+
+- **Qualité** : un curseur de 0 % à 100 % (85 % par défaut). Contrôle le niveau de compression avec perte. Des valeurs plus élevées conservent plus de détails.
+
+Les pages sont rendues en interne à l'échelle 2x, ce qui produit des images d'environ le double des dimensions natives du PDF.
+
+## Format de sortie
+
+- **Une seule page** : `filename.webp`
+- **Plusieurs pages** : `filename_webps.zip` contenant `page_1.webp`, `page_2.webp`, etc.
+
+## Cas d'usage
+
+- Préparer des aperçus de pages pour des sites web où la bande passante compte.
+- Générer des versions d'image légères de flyers ou de brochures pour les réseaux sociaux.
+- Convertir par lots des documents de plusieurs pages en un ensemble d'images optimisé pour le web.
+
+## Astuces
+
+- Le WebP est pris en charge par tous les navigateurs modernes. Pour la compatibilité avec les anciens, repliez-vous sur [PDF vers JPG](./pdf-to-jpg).
+- Une qualité de 80 à 85 % est généralement indiscernable de l'original à l'écran tout en gardant des fichiers légers.
+
+## Outils associés
+
+- [PDF vers JPG](./pdf-to-jpg)
+- [PDF vers PNG](./pdf-to-png)
+- [PDF vers BMP](./pdf-to-bmp)
diff --git a/docs/fr/tools/pdf-to-word.md b/docs/fr/tools/pdf-to-word.md
new file mode 100644
index 00000000..8918b59f
--- /dev/null
+++ b/docs/fr/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF vers Word
+description: Convertissez des fichiers PDF en documents Word (DOCX) modifiables. Prend en charge la conversion par lots de plusieurs PDF à la fois.
+---
+
+# PDF vers Word
+
+Convertit des fichiers PDF en documents Word (`.docx`) modifiables. L'outil utilise PyMuPDF pour reconstruire le contenu du document en préservant le texte, la mise en forme de base et la mise en page. Prend en charge la conversion d'un seul fichier ou par lots.
+
+## Fonctionnement
+
+1. Envoyez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers. Vous pouvez ajouter d'autres fichiers ou retirer des fichiers de la liste.
+2. Cliquez sur **Convertir** pour lancer le traitement.
+3. Un seul fichier est téléchargé sous la forme `filename.docx`. Plusieurs fichiers sont regroupés dans `converted-documents.zip`.
+
+## Options
+
+Cet outil n'a aucune option configurable. Chaque PDF est converti en DOCX avec le moteur de conversion intégré de PyMuPDF.
+
+## Format de sortie
+
+- **Un seul fichier** : `filename.docx`
+- **Plusieurs fichiers** : `converted-documents.zip` contenant un `.docx` par PDF d'entrée.
+
+## Cas d'usage
+
+- Modifier le texte d'un PDF reçu que vous devez retoucher.
+- Convertir des rapports PDF archivés dans un format que des collègues peuvent modifier dans Microsoft Word ou Google Docs.
+- Reprendre le contenu de contrats ou de propositions PDF dans Word pour le révisionner.
+- Migrer d'anciennes documentations PDF vers un format modifiable.
+
+## Astuces
+
+- Les mises en page complexes avec texte en plusieurs colonnes, formulaires intégrés ou beaucoup de graphismes peuvent ne pas se convertir parfaitement. Relisez le résultat et ajustez la mise en forme dans votre traitement de texte.
+- Les PDF numérisés (uniquement des images) produiront des fichiers DOCX vides ou presque. Passez-les d'abord dans l'OCR pour ajouter une couche de texte.
+- Le mode par lots est efficace pour convertir des dossiers entiers de PDF : envoyez-les tous en une fois.
+
+## Outils associés
+
+- [PDF vers texte](./pdf-to-text)
+- [PDF vers Markdown](./pdf-to-markdown)
+- [Créateur de flux PDF](./pdf-workflow)
diff --git a/docs/fr/tools/pdf-to-zip.md b/docs/fr/tools/pdf-to-zip.md
new file mode 100644
index 00000000..0962704c
--- /dev/null
+++ b/docs/fr/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF vers ZIP
+description: Regroupez plusieurs fichiers PDF dans une seule archive ZIP pour les partager et les stocker facilement.
+---
+
+# PDF vers ZIP
+
+Regroupez plusieurs fichiers PDF dans une seule archive ZIP. C'est un simple outil d'archivage : aucune conversion, compression ni modification des PDF eux-mêmes.
+
+## Fonctionnement
+
+1. Envoyez plusieurs fichiers PDF avec la zone de dépôt.
+2. Vérifiez la liste des fichiers. Retirez ceux que vous ne souhaitez pas inclure.
+3. Cliquez sur le bouton de traitement.
+4. Une archive ZIP contenant tous les PDF envoyés est téléchargée immédiatement.
+
+## Fonctionnalités
+
+- Accepte un nombre quelconque de fichiers PDF
+- Retrait de fichiers un par un avant la création de l'archive
+- Conserve les noms de fichiers d'origine dans le ZIP
+- Aucune modification du contenu des PDF : les fichiers sont archivés tels quels
+- Affiche le nom et la taille de chaque PDF envoyé
+
+## Cas d'usage
+
+- Regrouper un ensemble de factures ou de reçus pour une pièce jointe d'e-mail
+- Archiver les livrables d'un projet (plusieurs rapports PDF) pour une passation
+- Créer un téléchargement unique pour une collection de formulaires ou de modèles
+- Archiver un lot de documents dans un seul fichier compressé
+
+## Astuces
+
+- Le fichier ZIP utilise les noms de fichiers PDF d'origine. Si certains fichiers portent le même nom, renommez-les avant l'envoi pour éviter les conflits.
+- Cet outil ne compresse pas les PDF eux-mêmes. Pour réduire leur taille, passez-les d'abord dans Compresser un PDF, puis regroupez-les avec cet outil.
+
+## Outils associés
+
+- [Fusionner des PDF](./merge-pdf)
+- [Scinder un PDF](./split-pdf)
+- [Compresser un PDF](./compress-pdf)
diff --git a/docs/fr/tools/pdf-workflow.md b/docs/fr/tools/pdf-workflow.md
new file mode 100644
index 00000000..758e238f
--- /dev/null
+++ b/docs/fr/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Constructeur de workflow PDF
+description: Construisez visuellement des chaînes de traitement PDF personnalisées en reliant des nœuds sur un canevas. Enchaînez des opérations comme la fusion, la compression, le filigrane et l'export.
+---
+
+# Constructeur de workflow PDF
+
+Le Créateur de flux vous permet d'enchaîner plusieurs opérations PDF dans une seule chaîne automatisée. Au lieu d'exécuter les outils un par un, vous reliez un graphe visuel de nœuds (entrée, traitement, sortie) et exécutez le tout en un clic. Vos fichiers ne quittent jamais le navigateur.
+
+## Fonctionnement
+
+L'interface est divisée en trois panneaux : une **boîte à outils de nœuds** à gauche, le **canevas** au centre et un **panneau de réglages** à droite qui apparaît quand vous sélectionnez un nœud.
+
+1. **Ajoutez des nœuds** en cliquant dessus dans la barre latérale gauche, ou en les glissant directement sur le canevas. Utilisez la barre de recherche en haut de la boîte à outils pour filtrer par nom.
+2. **Reliez les nœuds** en glissant d'une prise de sortie (en bas d'un nœud) vers une prise d'entrée (en haut d'un autre nœud). Les connexions vont de haut en bas.
+3. **Configurez les réglages** en cliquant sur un nœud pour ouvrir son panneau de réglages à droite. Chaque type de nœud a ses propres options (plages de pages, curseurs de qualité, mots de passe, etc.).
+4. **Exécutez le flux** en cliquant sur le bouton **Exécuter** de la barre d'outils. Le moteur exécute les nœuds dans l'ordre topologique, un par un. Une barre d'état en bas suit la progression.
+5. **Téléchargez les résultats** : le nœud Télécharger final enregistre le PDF obtenu (ou un ZIP si plusieurs fichiers sont produits).
+
+## Catégories de nœuds
+
+Les nœuds sont organisés en six catégories, chacune d'une couleur différente sur le canevas :
+
+- **Entrée** (bleu) : Entrée PDF, Entrée image, Word/Excel/PowerPoint vers PDF et plus de 15 autres convertisseurs de formats qui alimentent la chaîne en fichiers.
+- **Modifier et annoter** (indigo) : Rogner, Niveaux de gris, Inverser les couleurs, Filigrane, Numéros de page, En-tête et pied de page, Effet scanner, Ajuster les couleurs, Couleur de fond, Supprimer les pages blanches, Supprimer les annotations.
+- **Organiser et gérer** (violet) : Fusionner, Scinder, Extraire des pages, Faire pivoter, Supprimer des pages, Inverser, Ajouter une page vierge, Diviser les pages, N-up, Uniformiser la taille des pages, Combiner en une seule page, Livret, Posteriser, Modifier les métadonnées, Table des matières, OCR.
+- **Optimiser et réparer** (ambre) : Compresser, Rastériser, Linéariser, Redresser, PDF vers PDF/A, Police en contours, Réparer.
+- **Sécuriser le PDF** (rose) : Chiffrer, Déchiffrer, Nettoyer, Aplatir, Signature numérique, Masquer.
+- **Sortie** (turquoise) : Télécharger (détecte automatiquement PDF seul ou ZIP), PDF vers images, PDF vers texte, PDF vers DOCX, PDF vers XLSX, PDF vers CSV, PDF vers SVG, PDF vers Markdown, Extraire les images.
+
+## Enregistrer et charger des flux
+
+La barre d'outils propose quatre options de persistance :
+
+- **Enregistrer** : stocke le flux actuel comme modèle nommé dans le stockage local de votre navigateur. Vous pouvez enregistrer plusieurs modèles.
+- **Charger** : ouvre une fenêtre listant tous les modèles enregistrés. Cliquez sur Charger pour en restaurer un, ou supprimez les modèles dont vous n'avez plus besoin.
+- **Exporter** : télécharge le flux sous forme de fichier `.json` pour le partager ou le sauvegarder.
+- **Importer** : charge un fichier de flux `.json` depuis le disque, en restaurant tous les nœuds, positions et connexions.
+
+Les modèles persistent d'une session à l'autre dans le stockage local. Les fichiers JSON exportés sont portables entre navigateurs et machines.
+
+## Modèle d'exécution
+
+Le moteur construit un graphe de dépendances à partir de vos connexions et exécute les nœuds dans l'ordre topologique. Si un nœud échoue, l'exécution s'arrête et le nœud en cause est marqué en rouge. Quelques règles à garder en tête :
+
+- Chaque flux nécessite au moins un nœud **Entrée** et un nœud **Sortie**.
+- Le moteur détecte les dépendances circulaires et bloque l'exécution avec une erreur.
+- Le nœud **Chiffrer** doit être la dernière étape de traitement avant le nœud de sortie. Le placer plus tôt déclenche un avertissement de validation, car les nœuds suivants ne peuvent pas traiter des données chiffrées.
+- Les PDF protégés par mot de passe demandent un mot de passe pendant l'exécution.
+- Les entrées multi-PDF sont prises en charge : le nœud Fusionner peut les combiner, ou les nœuds de traitement par lots traiteront chaque PDF individuellement.
+
+## Types de prises
+
+Les connexions utilisent des prises typées pour éviter les branchements invalides :
+
+- **PDF** (indigo) : un seul document PDF.
+- **MultiPDF** (ambre) : plusieurs documents PDF regroupés.
+- **Image** (vert) : un blob d'image.
+
+## Options
+
+Chaque nœud a sa propre configuration accessible via le panneau de réglages de droite. Parmi les cas courants :
+
+- **Plages de pages** sur les nœuds Scinder, Extraire des pages et Supprimer des pages
+- **Curseurs de qualité** sur les nœuds de sortie de conversion d'images
+- **Champs de mot de passe** sur les nœuds Chiffrer et Déchiffrer
+- **Champs de texte** pour Filigrane, En-tête et pied de page, Modifier les métadonnées
+- **Angles de rotation** sur le nœud Faire pivoter
+- **Niveau de compression** sur le nœud Compresser
+- **Choix de la langue OCR** sur le nœud OCR
+
+## Cas d'usage
+
+- **Chaîne de traitement de factures** : Entrée PDF -> OCR -> Extraire les tableaux -> Télécharger en CSV.
+- **Standardisation de rapports** : Word vers PDF -> Uniformiser la taille des pages -> Ajouter les numéros de page -> Filigrane -> Compresser -> Télécharger.
+- **Préparation à l'archivage** : Entrée PDF -> Réparer -> Aplatir -> Nettoyer -> PDF vers PDF/A -> Télécharger.
+- **Extraction d'images par lots** : Entrée PDF (plusieurs fichiers) -> Extraire les images -> Télécharger le ZIP.
+- **Livrets prêts à imprimer** : Entrée PDF -> Livret -> Rogner -> Compresser -> Télécharger.
+- **Diffusion sécurisée** : Entrée PDF -> Masquer -> Supprimer les annotations -> Chiffrer -> Télécharger.
+
+## Astuces
+
+- Utilisez **Suppr** ou **Retour arrière** pour retirer le nœud sélectionné du canevas.
+- Cliquez sur le bouton **X** de la barre d'état d'un nœud pour le supprimer directement.
+- Déplacez le canevas en cliquant et en faisant glisser sur un espace vide. Le curseur devient une main pendant le déplacement.
+- Sur mobile, utilisez le bouton **+** de la barre d'outils pour afficher ou masquer la boîte à outils de nœuds.
+- Si votre flux produit plusieurs fichiers de sortie, le nœud Télécharger les regroupe automatiquement dans un ZIP.
+- Commencez simplement : construisez et testez une chaîne de deux nœuds avant d'ajouter de la complexité.
+
+## Outils associés
+
+- [PDF vers texte](./pdf-to-text)
+- [PDF vers Excel](./pdf-to-excel)
+- [Extraire les images](./extract-images)
+- [PDF vers Markdown](./pdf-to-markdown)
diff --git a/docs/fr/tools/png-to-pdf.md b/docs/fr/tools/png-to-pdf.md
new file mode 100644
index 00000000..65f9232f
--- /dev/null
+++ b/docs/fr/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG vers PDF
+description: Convertissez une ou plusieurs images PNG en document PDF avec une qualité réglable, entièrement dans votre navigateur.
+---
+
+# PNG vers PDF
+
+Convertissez des images PNG en PDF en préservant leur pleine résolution. Chaque PNG devient sa propre page, à la taille de l'image d'origine. La transparence est gérée automatiquement.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :--------- |
+| PNG | `.png` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'envoi ou glissez-déposez des fichiers PNG. Vous pouvez en sélectionner plusieurs à la fois.
+2. Gérez la liste des fichiers : retirez ceux dont vous n'avez pas besoin ou ajoutez-en d'autres.
+3. Choisissez un niveau de **Qualité du PDF** dans la liste déroulante.
+4. Cliquez sur **Convertir en PDF**. Le résultat est téléchargé sous le nom `from_jpgs.pdf`.
+
+L'outil utilise pdf-lib pour intégrer chaque image directement. Si un PNG ne peut pas être intégré nativement (par exemple à cause d'un profil colorimétrique inhabituel), il est rendu à nouveau via un canevas au format JPEG.
+
+## Options
+
+**Qualité du PDF** contrôle la compression appliquée avant l'intégration :
+
+- **Haute qualité** : compression minimale, taille de fichier maximale.
+- **Qualité moyenne** (par défaut) : bon équilibre entre taille et netteté.
+- **Basse qualité** : compression maximale, sortie la plus petite.
+
+## Cas d'usage
+
+- Convertir des captures d'écran en PDF de plusieurs pages pour des rapports de bug ou de la documentation
+- Regrouper des exports de maquettes d'interface dans un seul fichier pour relecture
+- Transformer des exports de diagrammes (draw.io, Excalidraw) en PDF partageable
+- Assembler un ensemble d'images de graphiques en rapport
+
+## Astuces
+
+- Les fichiers PNG avec transparence reçoivent un fond blanc dans le PDF. Si vous avez besoin d'un autre fond, modifiez les images au préalable.
+- Pour les captures d'écran et les schémas aux contours nets et au texte, la haute qualité évite les artefacts de compression JPEG. La qualité moyenne ou basse peut convertir en JPEG en interne.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [JPG vers PDF](./jpg-to-pdf)
+- [SVG vers PDF](./svg-to-pdf)
diff --git a/docs/fr/tools/posterize-pdf.md b/docs/fr/tools/posterize-pdf.md
new file mode 100644
index 00000000..467f88ef
--- /dev/null
+++ b/docs/fr/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Posteriser un PDF
+description: Découpez les pages d'un PDF en une grille de pages plus petites pour imprimer en grand format sur plusieurs feuilles.
+---
+
+# Posteriser un PDF
+
+Divisez chaque page d'un PDF en une grille de sous-pages plus petites. C'est l'outil idéal pour imprimer une seule page sur plusieurs feuilles de papier, que vous assemblez ensuite pour créer une grande affiche ou une bannière.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Définissez le nombre de **lignes** et de **colonnes** de la grille (par ex. 2 lignes x 2 colonnes divise chaque page en 4 sous-pages).
+3. Indiquez éventuellement une plage de pages pour limiter les pages à posteriser.
+4. Le canevas d'aperçu affiche une grille superposée à la page courante pour visualiser les découpes.
+5. Naviguez entre les pages pour vérifier la grille sur d'autres pages.
+6. Cliquez sur le bouton de traitement. Chaque cellule de la grille devient une page du PDF de sortie.
+
+## Fonctionnalités
+
+- Nombre de lignes et de colonnes configurable pour des grilles flexibles
+- Aperçu en direct avec une grille indiquant exactement où les pages seront divisées
+- Filtre de plage de pages pour ne posteriser que certaines pages
+- Navigation page par page dans l'aperçu
+- Instantanés de pages mis en cache pour une navigation rapide dans l'aperçu
+- Des lignes de grille rouges en pointillés marquent clairement les limites de découpe
+
+## Options
+
+| Option | Description |
+| ------------------ | ------------------------------------------------- |
+| **Lignes** | Nombre de divisions horizontales (par défaut : 1) |
+| **Colonnes** | Nombre de divisions verticales (par défaut : 1) |
+| **Plage de pages** | Pages à posteriser (vide = toutes les pages) |
+
+## Cas d'usage
+
+- Imprimer un PDF au format affiche sur des feuilles A4 ou Letter standard à assembler sur un mur
+- Créer de grandes bannières à partir d'un design PDF d'une seule page
+- Découper des plans techniques surdimensionnés en tuiles imprimables
+- Réaliser des impressions grand format sans accès à une imprimante grand format
+
+## Conseils
+
+- Une grille 2x2 transforme une page en 4 pages. Une grille 3x3 la transforme en 9. Planifiez votre grille selon la taille souhaitée de l'ensemble assemblé.
+- L'aperçu avec grille vous aide à vérifier qu'aucun contenu important ne tombe sur une ligne de coupe. Ajustez les lignes et colonnes si nécessaire.
+- Pour l'opération inverse (placer plusieurs pages sur une seule feuille), utilisez [PDF N-up](./n-up-pdf).
+
+## Outils associés
+
+- [PDF N-up](./n-up-pdf)
+- [Diviser les pages](./divide-pages)
+- [Scinder un PDF](./split-pdf)
diff --git a/docs/fr/tools/powerpoint-to-pdf.md b/docs/fr/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..b2a97a57
--- /dev/null
+++ b/docs/fr/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint vers PDF
+description: Convertissez des présentations PowerPoint (PPT, PPTX) et des fichiers ODP en PDF en préservant la mise en forme des diapositives.
+---
+
+# PowerPoint vers PDF
+
+Convertissez des fichiers de présentation en PDF. Chaque diapositive devient une page du document de sortie, avec texte, images, formes et transitions rendus par un moteur LibreOffice exécuté dans le navigateur. Les formats PowerPoint modernes et anciens sont pris en charge, ainsi que le format OpenDocument Presentation.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :------------------------ | :--------- |
+| PowerPoint (moderne) | `.pptx` |
+| PowerPoint (ancien) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers de présentation.
+2. Vérifiez la liste des fichiers. Ajoutez-en ou retirez-en selon vos besoins.
+3. Cliquez sur **Convertir en PDF**. Le moteur LibreOffice se charge à la première utilisation, puis convertit chaque fichier.
+4. Un fichier unique est téléchargé directement en PDF. Plusieurs fichiers sont regroupés dans `powerpoint-converted.zip`.
+
+## Options
+
+Cet outil n'a aucun réglage supplémentaire. Les diapositives sont rendues à leurs dimensions d'origine.
+
+## Résultat
+
+| Nombre de fichiers | Résultat |
+| :----------------- | :-------------------------------------------------------------------- |
+| 1 fichier | Téléchargement d'un seul PDF (nom d'origine avec l'extension `.pdf`) |
+| 2 fichiers ou plus | Archive ZIP (`powerpoint-converted.zip`) contenant un PDF par fichier |
+
+## Cas d'usage
+
+- Convertir une présentation en PDF avant de la partager avec un public qui n'a pas forcément PowerPoint
+- Créer une version imprimable d'un diaporama pour une conférence ou un atelier
+- Archiver des présentations dans un format qui s'affiche de façon identique sur tous les appareils
+- Convertir par lots une bibliothèque de présentations ODP de LibreOffice Impress en PDF
+- Produire une version PDF d'un pitch deck pour l'envoyer en pièce jointe
+
+## Conseils
+
+- Les animations et transitions des diapositives ne sont pas représentées dans le PDF. Chaque diapositive est capturée comme une page statique.
+- Les vidéos intégrées n'apparaissent pas dans le résultat. Remplacez-les par une capture d'écran ou une image de substitution si nécessaire.
+- Les notes du présentateur ne sont pas incluses dans l'export PDF par défaut. Si vous avez besoin des notes, exportez d'abord depuis la vue « Imprimer les notes » de PowerPoint.
+- Le moteur LibreOffice reste en cache après le premier chargement, la conversion d'une deuxième présentation dans la même session est donc bien plus rapide.
+
+## Outils associés
+
+- [Word vers PDF](./word-to-pdf)
+- [Excel vers PDF](./excel-to-pdf)
+- [Images vers PDF](./image-to-pdf)
diff --git a/docs/fr/tools/prepare-pdf-for-ai.md b/docs/fr/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..4bc8114c
--- /dev/null
+++ b/docs/fr/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Préparer le PDF pour l'IA
+description: Extrayez le contenu d'un PDF en JSON structuré, optimisé pour les LLM et les pipelines d'IA comme LlamaIndex. Traitement par lots pris en charge.
+---
+
+# Préparer le PDF pour l'IA
+
+Extrait le contenu de fichiers PDF et le structure en JSON optimisé pour l'ingestion par les grands modèles de langage (LLM) et les frameworks d'IA comme LlamaIndex. Le contenu de chaque page est extrait et organisé dans un format structuré, prêt pour des pipelines RAG, des chatbots ou des systèmes de recherche sémantique.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs PDF en cliquant sur la zone de dépôt ou en y glissant des fichiers.
+2. Cliquez sur **Extraire** pour lancer le traitement.
+3. Un fichier unique est téléchargé sous le nom `filename_llm.json`. Plusieurs fichiers produisent une archive `pdf-for-ai.zip`.
+
+L'outil utilise l'intégration LlamaIndex de PyMuPDF pour extraire le contenu page par page avec ses métadonnées, ce qui donne un résultat directement chargeable dans les frameworks d'IA.
+
+## Options
+
+Cet outil n'a aucune option configurable. Toutes les pages sont extraites avec le texte complet et les métadonnées.
+
+## Format de sortie
+
+- **Fichier unique** : `filename_llm.json`
+- **Plusieurs fichiers** : `pdf-for-ai.zip` contenant un fichier `_llm.json` par PDF d'entrée.
+
+Le JSON respecte le schéma de document LlamaIndex, avec le texte de chaque page et des champs de métadonnées.
+
+## Cas d'usage
+
+- Préparer des documents PDF pour des pipelines de génération augmentée par récupération (RAG).
+- Construire une base de connaissances interrogeable à partir d'archives PDF pour un chatbot IA.
+- Alimenter des workflows d'analyse basés sur des LLM avec des rapports PDF.
+- Prétraiter des articles de recherche pour des systèmes de recherche sémantique et de questions-réponses.
+- Créer des données d'entraînement structurées à partir de collections de documents PDF.
+
+## Conseils
+
+- Pour une extraction de texte brut sans formatage propre à l'IA, utilisez [PDF vers texte](./pdf-to-text).
+- Pour une sortie Markdown qui conserve les titres et la structure, utilisez [PDF vers Markdown](./pdf-to-markdown).
+- Les PDF numérisés produiront un résultat vide ou minimal. Passez-les d'abord par l'OCR pour ajouter une couche de texte avant l'extraction.
+
+## Outils associés
+
+- [PDF vers texte](./pdf-to-text)
+- [PDF vers Markdown](./pdf-to-markdown)
+- [PDF vers JSON](./pdf-to-json)
diff --git a/docs/fr/tools/protect-pdf.md b/docs/fr/tools/protect-pdf.md
new file mode 100644
index 00000000..65ecc27a
--- /dev/null
+++ b/docs/fr/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Protéger un PDF
+description: Protégez vos fichiers PDF par mot de passe avec un chiffrement AES 256 bits. Définissez des mots de passe utilisateur et propriétaire avec des restrictions d'usage configurables.
+---
+
+# Protéger un PDF
+
+Verrouillez votre PDF par un mot de passe pour que seules les personnes autorisées puissent l'ouvrir. BentoPDF utilise le chiffrement AES 256 bits, le même standard que celui des banques et des administrations, appliqué entièrement dans votre navigateur via QPDF.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Saisissez un **mot de passe utilisateur** (obligatoire). C'est le mot de passe nécessaire pour ouvrir le fichier.
+3. Saisissez éventuellement un **mot de passe propriétaire**. Une fois défini, le PDF reçoit des restrictions d'usage qui empêchent l'impression, la modification, la copie et l'annotation.
+4. Cliquez sur **Chiffrer le PDF**.
+5. Téléchargez le fichier chiffré.
+
+## Types de mots de passe
+
+### Mot de passe utilisateur (obligatoire)
+
+Le mot de passe utilisateur est celui que les destinataires saisissent pour ouvrir le PDF. Sans lui, le document est totalement inaccessible. Tout PDF chiffré doit en avoir un.
+
+### Mot de passe propriétaire (facultatif)
+
+Le mot de passe propriétaire contrôle ce qu'un utilisateur autorisé peut faire après l'ouverture du fichier. Lorsque vous définissez un mot de passe propriétaire distinct, BentoPDF applique automatiquement le jeu de restrictions le plus strict :
+
+- Modification désactivée
+- Extraction et copie désactivées
+- Impression désactivée
+- Annotation désactivée
+- Remplissage de formulaires désactivé
+- Assemblage du document désactivé
+
+Si vous laissez le mot de passe propriétaire vide, le PDF est chiffré (le mot de passe utilisateur reste requis pour l'ouvrir) mais n'a aucune restriction d'usage une fois ouvert.
+
+## Détails du chiffrement
+
+- **Algorithme** : AES-256 (Advanced Encryption Standard 256 bits)
+- **Longueur de clé** : 256 bits
+- **Standard** : chiffrement PDF 2.0 (implémentation QPDF)
+
+Avec la technologie actuelle, l'AES-256 est impossible à casser par force brute. La sécurité de votre PDF chiffré dépend entièrement de la robustesse de votre mot de passe.
+
+## Cas d'usage
+
+- Protéger des rapports financiers confidentiels avant de les envoyer par email
+- Sécuriser des documents juridiques partagés avec la partie adverse
+- Ajouter un mot de passe à des dossiers médicaux ou à des données personnelles identifiables
+- Distribuer du contenu payant (e-books, rapports) avec contrôle d'accès
+- Respecter des politiques de protection des données qui exigent le chiffrement au repos
+
+## Conseils
+
+- Utilisez un mot de passe fort et unique. Une phrase de passe d'au moins 12 caractères mêlant majuscules, minuscules, chiffres et symboles est idéale.
+- Partagez le mot de passe par un canal distinct (téléphone, SMS), jamais dans le même email que le PDF.
+- Si vous voulez seulement restreindre des actions (pas d'impression, pas de copie) sans exiger de mot de passe pour ouvrir le fichier, utilisez plutôt l'outil Modifier les autorisations.
+
+## Outils associés
+
+- [Déchiffrer un PDF](./unlock-pdf) : retirer le chiffrement quand vous connaissez le mot de passe
+- [Modifier les autorisations](./change-permissions) : modifier des restrictions d'usage précises
+- [Supprimer les restrictions](./remove-restrictions) : retirer toute la sécurité d'un PDF
+- [Nettoyer un PDF](./sanitize-pdf) : supprimer le contenu masqué avant de chiffrer
diff --git a/docs/fr/tools/psd-to-pdf.md b/docs/fr/tools/psd-to-pdf.md
new file mode 100644
index 00000000..c11aac8d
--- /dev/null
+++ b/docs/fr/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD vers PDF
+description: Convertissez des fichiers Photoshop (PSD) en PDF dans votre navigateur. Gratuit, privé, sans logiciel Adobe.
+---
+
+# PSD vers PDF
+
+Convertissez des fichiers Adobe Photoshop PSD en documents PDF. Le PSD est le format natif de Photoshop, et l'ouvrir nécessite normalement un logiciel Adobe coûteux. Cet outil restitue l'image composite aplatie de votre fichier PSD sous la forme d'une page PDF en pleine résolution.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :-------------- | :-------- | :--------------------------------- |
+| Adobe Photoshop | `.psd` | Restitue l'image composite aplatie |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers PSD. Plusieurs fichiers sont pris en charge.
+2. Vérifiez la liste des fichiers. Retirez les fichiers indésirables avec l'icône de corbeille, ou utilisez **Ajouter des fichiers** pour en inclure d'autres.
+3. Cliquez sur **Convertir en PDF**. Le moteur PyMuPDF lit le fichier PSD et intègre l'image composite dans une page PDF à la résolution d'origine.
+4. Un PSD unique produit un PDF. Si vous importez plusieurs fichiers PSD, ils sont combinés en un seul PDF de plusieurs pages nommé `psd_to_pdf.pdf`, chaque PSD devenant une page.
+
+## Options
+
+Aucun réglage n'est nécessaire. Le convertisseur utilise les données d'image aplaties du fichier PSD.
+
+## Cas d'usage
+
+- Prévisualiser des créations Photoshop sans ouvrir Photoshop
+- Envoyer des épreuves de design à des clients qui n'ont pas Adobe Creative Suite
+- Imprimer des visuels haute résolution à partir de fichiers PSD
+- Créer un portfolio PDF à partir de plusieurs fichiers de design PSD : chacun devient une page d'un même document
+
+## Conseils
+
+- La conversion restitue la vue composite (aplatie) du PSD. Les calques individuels, les calques de réglage et les effets de calque ne sont pas conservés comme éléments séparés dans le PDF.
+- Plusieurs fichiers PSD sont fusionnés en un seul PDF de plusieurs pages plutôt qu'en PDF individuels. C'est pratique pour constituer des portfolios ou des lookbooks.
+- Les fichiers PSD de très haute résolution (fichiers d'impression à plus de 300 DPI) produisent de gros PDF. L'outil conserve la pleine résolution.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
+- [VSD vers PDF](./vsd-to-pdf)
diff --git a/docs/fr/tools/pub-to-pdf.md b/docs/fr/tools/pub-to-pdf.md
new file mode 100644
index 00000000..79eef363
--- /dev/null
+++ b/docs/fr/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB vers PDF
+description: Convertissez des fichiers Microsoft Publisher (PUB) en PDF dans votre navigateur. Gratuit, privé, sans logiciel à installer.
+---
+
+# PUB vers PDF
+
+Convertissez des fichiers Microsoft Publisher en PDF. Publisher est un outil de PAO fourni avec certaines éditions de Microsoft Office, mais la plupart des gens ne l'ont pas installé. Cet outil permet à tout le monde de convertir des fichiers PUB en PDF directement dans le navigateur, sans logiciel Microsoft.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :------------------ | :-------- | :----------------------------------------------- |
+| Microsoft Publisher | `.pub` | Documents de publication assistée par ordinateur |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers PUB. Vous pouvez en importer plusieurs à la fois.
+2. Vérifiez la liste des fichiers. Retirez les fichiers indésirables avec l'icône de corbeille, ou cliquez sur **Ajouter des fichiers** pour en ajouter.
+3. Cliquez sur **Convertir en PDF**. Un moteur basé sur LibreOffice se charge dans le navigateur et convertit chaque fichier PUB en préservant la mise en page, les images et les zones de texte.
+4. Un fichier unique est téléchargé directement en PDF. Plusieurs fichiers sont livrés dans une archive ZIP nommée `pub-to-pdf.zip`.
+
+## Options
+
+Aucune configuration supplémentaire n'est nécessaire. Le convertisseur gère automatiquement le moteur de mise en page PUB.
+
+## Cas d'usage
+
+- Ouvrir un flyer ou une newsletter PUB envoyé par un client sans acheter Microsoft Publisher
+- Convertir des bulletins paroissiaux, des programmes d'événements ou des bulletins scolaires créés dans Publisher
+- Archiver des supports marketing créés dans Publisher dans un format universellement accessible
+- Imprimer des fichiers PUB sur un système où Publisher n'est pas installé
+
+## Conseils
+
+- Les mises en page Publisher complexes avec des zones de texte superposées et un positionnement précis peuvent se décaler légèrement pendant la conversion. Vérifiez le résultat si le positionnement exact est critique.
+- Le moteur LibreOffice s'initialise une fois par session. La première conversion prend plus de temps, les suivantes sont plus rapides.
+- Pour une conversion la plus fidèle possible des fichiers Publisher, assurez-vous que les polices personnalisées de l'original sont des polices système standard.
+
+## Outils associés
+
+- [VSD vers PDF](./vsd-to-pdf)
+- [ODP vers PDF](./odp-to-pdf)
diff --git a/docs/fr/tools/rasterize-pdf.md b/docs/fr/tools/rasterize-pdf.md
new file mode 100644
index 00000000..155648c9
--- /dev/null
+++ b/docs/fr/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rastériser le PDF
+description: Convertissez les pages d'un PDF en PDF composé d'images. Aplatissez tous les calques, supprimez le texte sélectionnable et contrôlez le DPI et le format d'image.
+---
+
+# Rastériser le PDF
+
+La rastérisation convertit chaque page d'un PDF en image, puis réassemble ces images en PDF. Le résultat est identique à l'original à l'œil, mais ne contient ni texte sélectionnable, ni éléments interactifs, ni calques modifiables. C'est en quelque sorte une photocopie de haute qualité.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs fichiers PDF.
+2. Définissez le **DPI** (résolution) de la sortie rastérisée.
+3. Choisissez un **format d'image** : PNG pour une qualité sans perte ou JPEG pour des fichiers plus légers.
+4. Cochez éventuellement **Convertir en niveaux de gris**.
+5. Cliquez sur **Rastériser le PDF**. Plusieurs fichiers sont téléchargés dans un ZIP.
+
+## Options
+
+| Réglage | Valeurs | Par défaut |
+| ------------------- | ----------------------------------- | ---------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Format d'image** | PNG (sans perte), JPEG (plus léger) | PNG |
+| **Niveaux de gris** | Oui/Non | Non |
+
+## Repères pour le DPI
+
+- **72** : affichage à l'écran uniquement, taille de fichier minimale
+- **150** : bon compromis pour un usage général
+- **200** : texte plus net, taille de fichier modérée
+- **300** : qualité d'impression
+- **600** : archivage de haute qualité ou impression professionnelle
+
+## Cas d'usage
+
+- Empêcher l'extraction du texte de documents confidentiels avant de les partager
+- Éliminer les problèmes de dépendance aux polices en convertissant le texte en pixels
+- Créer une version « à plat » d'un PDF aux calques ou transparences complexes qui s'affiche différemment selon les lecteurs
+- Préparer un PDF pour un système qui n'accepte que des entrées sous forme d'images
+- Supprimer le contenu masqué (comme les modifications suivies ou les données de formulaire) en réduisant le PDF à de simples images
+
+## Conseils
+
+- 150 DPI en PNG est un bon réglage par défaut. N'augmentez que si vous avez besoin d'une sortie imprimée ou de zoomer sur de fins détails.
+- Le JPEG produit des fichiers nettement plus légers, mais introduit des artefacts de compression sur les bords nets du texte.
+- La rastérisation est irréversible : conservez votre PDF d'origine si vous pourriez avoir besoin de texte modifiable plus tard.
+
+## Outils associés
+
+- [Compresser un PDF](./compress-pdf) : réduire la taille du PDF rastérisé
+- [Redresser un PDF](./deskew-pdf) : redresser les pages avant de rastériser des documents numérisés
+- [Polices en contours](./font-to-outline) : convertir les polices en tracés vectoriels pour conserver l'échelle
+- [Aplatir le PDF](./flatten-pdf) : aplatir les formulaires sans convertir en images
diff --git a/docs/fr/tools/remove-annotations.md b/docs/fr/tools/remove-annotations.md
new file mode 100644
index 00000000..091bbf92
--- /dev/null
+++ b/docs/fr/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Supprimer les annotations
+description: Retirez en un clic tous les commentaires, surlignages, liens et autres annotations de votre PDF.
+---
+
+# Supprimer les annotations
+
+Nettoyez votre PDF en supprimant toutes les annotations : commentaires, surlignages, notes autocollantes, marquages de texte, liens, tampons et tout autre objet d'annotation intégré au document. Le contenu sous-jacent des pages (texte, images, graphiques) reste intact.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. L'outil détecte le nombre de pages du document et affiche les informations du fichier.
+3. Cliquez sur **Supprimer les annotations** pour lancer le traitement.
+4. Le PDF nettoyé est téléchargé automatiquement, sans aucune annotation.
+
+## Fonctionnalités
+
+- Supprime tous les types d'annotations : commentaires, surlignages, soulignements, textes barrés, notes autocollantes, tampons, liens et marquages de formulaire
+- Traite chaque page du document
+- Préserve tout le contenu qui n'est pas une annotation (texte, images, graphiques vectoriels, champs de formulaire)
+- Affiche le nombre de pages et la taille du fichier avant le traitement
+
+## Cas d'usage
+
+- Nettoyer un document avant sa diffusion finale, après un cycle de relecture où plusieurs relecteurs ont ajouté des commentaires
+- Retirer les surlignages et les notes autocollantes d'un guide d'étude partagé
+- Supprimer les annotations de lien d'un document avant de l'archiver
+- Préparer une version « propre » d'un document juridique très annoté pendant la négociation
+- Retirer les commentaires des relecteurs d'un manuscrit avant l'envoi à l'impression
+
+## Conseils
+
+- Cet outil supprime les annotations au niveau de la structure du PDF : le résultat conserve le texte sélectionnable et la qualité d'origine, sans rastérisation.
+- Si vous voulez ne supprimer que certaines annotations plutôt que toutes, utilisez l'[Éditeur PDF](./edit-pdf) pour supprimer des annotations une à une.
+- Les annotations des PDF aplatis (où elles ont été fusionnées dans le contenu de la page) ne peuvent pas être supprimées, car ce ne sont plus des objets distincts.
+
+## Outils associés
+
+- [Éditeur PDF](./edit-pdf)
+- [Ajouter un filigrane](./add-watermark)
+- [Signer un PDF](./sign-pdf)
diff --git a/docs/fr/tools/remove-blank-pages.md b/docs/fr/tools/remove-blank-pages.md
new file mode 100644
index 00000000..8f127b3a
--- /dev/null
+++ b/docs/fr/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Supprimer les pages blanches
+description: Détectez et supprimez automatiquement les pages blanches ou presque blanches de votre PDF grâce à une sensibilité réglable.
+---
+
+# Supprimer les pages blanches
+
+Analysez votre PDF pour repérer les pages blanches ou presque blanches et les supprimer automatiquement. L'outil restitue chaque page et analyse ses pixels pour déterminer si elle est blanche, puis vous laisse confirmer les pages à supprimer avant le traitement.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. Ajustez le curseur **Sensibilité** pour définir la rigueur avec laquelle une page est considérée comme « blanche ».
+3. Cliquez sur **Détecter les pages blanches** pour analyser le document.
+4. L'outil affiche des miniatures des pages blanches détectées pour que vous puissiez les vérifier.
+5. Confirmez la sélection et téléchargez le PDF nettoyé, sans les pages blanches.
+
+## Options
+
+- **Sensibilité** : un curseur de 0 % à 100 % (80 % par défaut). Des valeurs élevées sont plus strictes et ne signalent que les pages totalement ou presque blanches. Des valeurs basses sont plus permissives et détectent aussi les pages au contenu minimal, comme un simple point ou un filigrane discret.
+
+## Fonctionnalités
+
+- Analyse au niveau du pixel de chaque page pour détecter le contenu vide
+- Curseur de sensibilité réglable pour affiner la détection
+- Aperçu en miniatures des pages blanches détectées pour une vérification manuelle
+- Préserve exactement toutes les pages non blanches
+- Gère les documents de toute taille ou de tout nombre de pages
+- Indication de progression pendant l'analyse
+
+## Cas d'usage
+
+- Nettoyer des documents numérisés dont le scanner a capturé les versos vides d'originaux recto seul
+- Retirer les pages de séparation de lots de documents numérisés en masse
+- Supprimer les pages blanches insérées par des systèmes de gestion de documents
+- Nettoyer des PDF exportés depuis des traitements de texte qui ajoutent parfois des pages blanches à la fin
+- Réduire la taille du fichier en supprimant les pages vides inutiles
+
+## Conseils
+
+- Commencez avec la sensibilité par défaut de 80 % et ajustez ensuite. Si l'outil rate des pages qui vous semblent blanches, baissez la sensibilité. S'il signale des pages au contenu léger que vous voulez garder, augmentez-la.
+- L'outil restitue chaque page pour analyser son contenu : le temps de traitement augmente donc avec le nombre de pages. Pour de très gros documents, prévoyez une courte attente.
+- Vérifiez les pages blanches détectées dans l'aperçu en miniatures avant de confirmer la suppression. Les pages avec des en-têtes, pieds de page ou filigranes discrets peuvent être signalées selon la sensibilité.
+
+## Outils associés
+
+- [Rogner un PDF](./crop-pdf)
+- [Éditeur PDF](./edit-pdf)
+- [Numéros de page](./page-numbers)
diff --git a/docs/fr/tools/remove-metadata.md b/docs/fr/tools/remove-metadata.md
new file mode 100644
index 00000000..0ce379ca
--- /dev/null
+++ b/docs/fr/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Supprimer les métadonnées
+description: 'Supprimez toutes les métadonnées cachées des fichiers PDF : auteur, titre, date de création, producteur, données XMP et identifiants de document.'
+---
+
+# Supprimer les métadonnées
+
+Chaque PDF porte des métadonnées qui peuvent révéler qui l'a créé, quel logiciel a été utilisé, quand il a été modifié pour la dernière fois, et plus encore. Cet outil supprime tout : le dictionnaire d'informations, les flux de métadonnées XMP, les identifiants de document et les données propres aux applications, pour obtenir un document propre qui ne garde aucune trace de son origine.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Cliquez sur **Supprimer les métadonnées**.
+3. Téléchargez le fichier nettoyé.
+
+Aucune option à configurer. L'outil est volontairement exhaustif : il efface tout.
+
+## Ce qui est supprimé
+
+- **Champs du dictionnaire d'informations** : titre, auteur, sujet, mots-clés, créateur, producteur, date de création, date de modification
+- **Flux de métadonnées XMP** : le bloc de métadonnées XML stocké dans le catalogue du document
+- **Identifiants de document** : identifiants uniques dans le trailer du PDF, qui peuvent servir à suivre un document d'un système à l'autre
+- **PieceInfo** : métadonnées propres aux applications, ajoutées par des programmes comme Illustrator ou InDesign
+
+## Ce qui est conservé
+
+- Tout le contenu visible des pages (texte, images, graphiques)
+- Les champs de formulaire et les annotations
+- Les signets et les liens
+- La structure du document elle-même
+
+## Cas d'usage
+
+- Retirer votre nom et votre organisation d'un document avant de le publier anonymement
+- Supprimer les horodatages de création qui révèlent quand un document a été préparé
+- Nettoyer les chaînes de producteur qui identifient votre pile logicielle PDF
+- Préparer des documents pour des dépôts réglementaires qui exigent des PDF sans métadonnées
+- Effacer les traces d'historique de modification avant de partager un document à l'extérieur
+
+## Conseils
+
+- Utilisez d'abord l'outil Afficher les métadonnées pour voir exactement ce que contient votre PDF avant de les supprimer.
+- Si vous devez supprimer les métadonnées _et_ le JavaScript, les annotations et les fichiers intégrés, utilisez Nettoyer un PDF pour un nettoyage plus complet.
+- La suppression des métadonnées est définitive. Conservez votre original si vous pourriez avoir besoin de ces données plus tard.
+
+## Outils associés
+
+- [Nettoyer un PDF](./sanitize-pdf) : supprimer les métadonnées, mais aussi les scripts, les pièces jointes et plus encore
+- [Protéger un PDF](./protect-pdf) : protéger le PDF nettoyé par un mot de passe
+- [Compresser un PDF](./compress-pdf) : la suppression des métadonnées peut réduire légèrement la taille du fichier, la compression permet d'économiser davantage
diff --git a/docs/fr/tools/remove-restrictions.md b/docs/fr/tools/remove-restrictions.md
new file mode 100644
index 00000000..6b170812
--- /dev/null
+++ b/docs/fr/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Supprimer les restrictions
+description: Retirez la protection par mot de passe, les restrictions d'impression, les verrous de modification et les limites de copie des fichiers PDF.
+---
+
+# Supprimer les restrictions
+
+Un PDF peut porter deux types de mots de passe : un mot de passe utilisateur (nécessaire pour ouvrir le fichier) et un mot de passe propriétaire (qui contrôle ce que vous pouvez en faire). Cet outil supprime les deux, ainsi que toutes les restrictions associées : verrous d'impression, de modification, de copie et d'annotation.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Si le PDF a un mot de passe propriétaire, saisissez-le dans le champ **Mot de passe propriétaire**. Laissez-le vide si le PDF n'a que des restrictions d'usage sans mot de passe.
+3. Cliquez sur **Supprimer les restrictions**.
+4. Téléchargez le PDF sans restrictions.
+
+L'outil utilise les options `--decrypt` et `--remove-restrictions` de QPDF pour produire une copie propre et sans restrictions.
+
+## Ce qui est supprimé
+
+- La protection par mot de passe (utilisateur et propriétaire)
+- Les restrictions d'impression
+- Les restrictions de modification
+- Les restrictions de copie du texte et des images
+- Les restrictions d'annotation et de commentaire
+- Toutes les autres limitations de sécurité encodées dans le PDF
+
+## Cas d'usage
+
+- Déverrouiller un PDF qui vous appartient mais dont vous avez défini le mot de passe il y a des années
+- Retirer les restrictions d'impression d'un document auquel vous avez légitimement accès
+- Activer le copier-coller sur des documents de référence pour la prise de notes
+- Préparer des PDF pour des outils d'accessibilité qui ne gèrent pas les documents restreints
+
+## Conseils
+
+- Vous devez connaître le mot de passe propriétaire s'il y en a un. Cet outil ne casse pas et ne devine pas les mots de passe par force brute.
+- Si vous voulez garder le fichier chiffré tout en modifiant certaines autorisations, utilisez plutôt l'outil Modifier les autorisations.
+- Le fichier de sortie n'a aucun chiffrement : toute personne qui le reçoit peut l'ouvrir librement.
+
+## Outils associés
+
+- [Déchiffrer un PDF](./unlock-pdf) : déverrouiller un PDF quand vous connaissez le mot de passe utilisateur
+- [Protéger un PDF](./protect-pdf) : réappliquer un chiffrement avec de nouveaux réglages
+- [Modifier les autorisations](./change-permissions) : modifier de façon sélective les actions autorisées
diff --git a/docs/fr/tools/repair-pdf.md b/docs/fr/tools/repair-pdf.md
new file mode 100644
index 00000000..9deb625d
--- /dev/null
+++ b/docs/fr/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Réparer un PDF
+description: Récupérez les données de fichiers PDF corrompus ou endommagés grâce au moteur de réparation de QPDF. Traitement par lots pris en charge.
+---
+
+# Réparer un PDF
+
+Quand un PDF refuse de s'ouvrir, affiche un contenu illisible ou provoque des erreurs dans votre lecteur, cet outil tente de reconstruire sa structure interne. Il utilise le moteur de réparation de QPDF, capable de récupérer des données après de nombreux types de corruption : tables de références croisées cassées, flux tronqués, références d'objets invalides, et plus encore.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs fichiers PDF endommagés.
+2. Cliquez sur **Réparer le PDF**.
+3. Un fichier réparé unique est téléchargé directement. Plusieurs fichiers produisent une archive ZIP.
+
+L'outil fait passer chaque fichier dans QPDF avec l'option `--decrypt`, qui force QPDF à lire et réécrire toute la structure du PDF, en corrigeant au passage les problèmes récupérables.
+
+## Fonctionnalités
+
+- Réparation par lots de plusieurs PDF en une seule opération
+- Détection automatique des fichiers récupérables et irrécupérables
+- Rapport de réussite ou d'échec par fichier lors du traitement de plusieurs fichiers
+- Utilise QPDF (WebAssembly), une bibliothèque de transformation de PDF éprouvée
+
+## Ce qu'il peut corriger
+
+- Tables de références croisées cassées ou manquantes
+- Fins de fichier tronquées après un téléchargement incomplet
+- Numérotation d'objets et longueurs de flux invalides
+- Incohérences structurelles mineures causées par des générateurs de PDF défectueux
+- Artefacts de chiffrement issus de tentatives de déchiffrement ayant échoué
+
+## Ce qu'il ne peut pas corriger
+
+- Fichiers fortement tronqués dont la majeure partie du contenu est manquante
+- PDF chiffrés avec un mot de passe que vous n'avez pas
+- Fichiers qui ne sont pas réellement des PDF (mauvaise extension)
+- Corruption d'images dans le PDF (la structure est corrigée, mais les données de pixels ne sont pas régénérées)
+
+## Cas d'usage
+
+- Récupérer un PDF issu d'un téléchargement d'email raté
+- Ouvrir des fichiers produits par des générateurs de PDF anciens ou non standard
+- Corriger des PDF qui fonctionnent dans un lecteur mais pas dans un autre
+- Préparer des documents d'archives endommagés pour un stockage à long terme
+
+## Conseils
+
+- Si la réparation échoue, essayez d'abord d'ouvrir le fichier dans un navigateur : les navigateurs ont leur propre logique de récupération et peuvent afficher assez de contenu pour permettre un nouvel enregistrement.
+- Pour les PDF chiffrés dont la réparation échoue, essayez d'abord Déverrouiller un PDF, puis réparez le résultat déchiffré.
+
+## Outils associés
+
+- [Compresser un PDF](./compress-pdf) : nettoyer davantage la structure du PDF réparé
+- [Linéariser un PDF](./linearize-pdf) : optimiser le fichier réparé pour une diffusion sur le web
+- [Aplatir le PDF](./flatten-pdf) : aplatir les formulaires qui ont pu être endommagés
diff --git a/docs/fr/tools/reverse-pages.md b/docs/fr/tools/reverse-pages.md
new file mode 100644
index 00000000..ef1baf03
--- /dev/null
+++ b/docs/fr/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Inverser l’ordre des pages
+description: Inversez l'ordre des pages d'un ou plusieurs fichiers PDF pour que la dernière page devienne la première.
+---
+
+# Inverser l’ordre des pages
+
+Inversez l'ordre des pages d'un PDF pour que la dernière page devienne la première, l'avant-dernière la deuxième, et ainsi de suite. Le traitement par lots de plusieurs fichiers à la fois est pris en charge.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs fichiers PDF.
+2. Cliquez sur le bouton de traitement.
+3. Chaque fichier est inversé indépendamment. Si vous avez importé plusieurs fichiers, le résultat est une archive ZIP contenant tous les PDF inversés.
+4. Un fichier unique est téléchargé directement sous forme de PDF inversé.
+
+## Fonctionnalités
+
+- Traitement par lots : inversez plusieurs PDF en une seule opération
+- Sortie en fichier unique pour un PDF, en ZIP pour plusieurs
+- Boutons de suppression par fichier avant le traitement
+- Préserve tout le contenu et la mise en forme des pages
+
+## Cas d'usage
+
+- Corriger un document numérisé dans l'ordre inverse
+- Préparer un PDF de présentation à lire de la fin vers le début
+- Inverser l'ordre des pages pour des flux d'impression qui alimentent les pages à l'envers
+- Corriger un document dont les pages ont été assemblées à l'envers par erreur
+
+## Conseils
+
+- Chaque fichier d'un lot est inversé indépendamment : les fichiers eux-mêmes ne sont pas réordonnés les uns par rapport aux autres.
+- Pour un réordonnancement plus fin des pages (pas seulement une inversion complète), utilisez [Dupliquer et organiser](./organize-pdf).
+
+## Outils associés
+
+- [Dupliquer et organiser](./organize-pdf)
+- [Faire pivoter un PDF](./rotate-pdf)
+- [Outil PDF tout-en-un](./pdf-multi-tool)
diff --git a/docs/fr/tools/rotate-custom.md b/docs/fr/tools/rotate-custom.md
new file mode 100644
index 00000000..81899ee5
--- /dev/null
+++ b/docs/fr/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Rotation par angle personnalisé
+description: Faites pivoter les pages d'un PDF selon n'importe quel angle, avec une saisie en degrés par page et des commandes de rotation par lots.
+---
+
+# Rotation par angle personnalisé
+
+Faites pivoter les pages d'un PDF selon un angle quelconque, pas seulement par incréments de 90 degrés. Chaque page dispose de son propre champ d'angle, et vous pouvez appliquer un même angle à toutes les pages à la fois grâce à la commande par lots.
+
+## Fonctionnement
+
+1. Importez un fichier PDF. Les miniatures de chaque page s'affichent.
+2. Chaque page a un champ numérique indiquant son angle de rotation actuel.
+3. Saisissez une valeur en degrés (positive ou négative) pour faire pivoter une page précise, ou utilisez les boutons gauche/droite de chaque page pour des ajustements rapides de 90 degrés.
+4. Utilisez le champ d'**angle global** en haut pour définir une rotation uniforme pour toutes les pages.
+5. Cliquez sur le bouton de traitement pour générer le PDF pivoté.
+
+## Fonctionnalités
+
+- Saisie libre des degrés par page (toute valeur entière)
+- Commande d'angle global pour appliquer la même rotation à chaque page
+- Aperçu de la rotation en temps réel dans les miniatures
+- Boutons de rotation rapide par page par incréments de 90 degrés
+- Miniatures chargées à la demande pour de bonnes performances sur les gros documents
+
+## Cas d'usage
+
+- Corriger de quelques degrés des numérisations légèrement inclinées
+- Faire pivoter des pages pour respecter une exigence d'orientation non standard
+- Appliquer des rotations précises à des pages individuelles dans un document au contenu mixte
+- Affiner les angles des pages après une première rotation globale
+
+## Conseils
+
+- Les valeurs positives font pivoter dans le sens horaire, les valeurs négatives dans le sens antihoraire.
+- Le champ d'angle global écrase tous les angles par page lorsqu'il est appliqué. Définissez les ajustements individuels après l'opération globale si nécessaire.
+- Pour des rotations standard de 90/180/270 degrés avec une interface plus simple, utilisez [Faire pivoter un PDF](./rotate-pdf).
+
+## Outils associés
+
+- [Faire pivoter un PDF](./rotate-pdf)
+- [Outil PDF tout-en-un](./pdf-multi-tool)
+- [Dupliquer et organiser](./organize-pdf)
diff --git a/docs/fr/tools/rotate-pdf.md b/docs/fr/tools/rotate-pdf.md
new file mode 100644
index 00000000..235111ab
--- /dev/null
+++ b/docs/fr/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Faire pivoter un PDF
+description: Faites pivoter des pages individuelles ou toutes les pages d'un PDF par incréments de 90 degrés grâce à une interface visuelle de miniatures.
+---
+
+# Faire pivoter un PDF
+
+Faites pivoter les pages d'un PDF de 90 degrés dans le sens horaire ou antihoraire. L'outil affiche un aperçu en miniature de chaque page, ce qui permet de les faire pivoter individuellement ou d'appliquer une rotation globale à tout le document.
+
+## Fonctionnement
+
+1. Importez un fichier PDF. Les miniatures de chaque page s'affichent en grille.
+2. Utilisez les boutons de rotation gauche/droite sous chaque miniature pour faire pivoter cette page précise.
+3. Utilisez les commandes de rotation globale en haut pour faire pivoter toutes les pages à la fois.
+4. L'aperçu en miniature se met à jour en temps réel pour montrer la rotation.
+5. Cliquez sur le bouton de traitement pour enregistrer le PDF pivoté.
+
+## Fonctionnalités
+
+- Rotation par page par incréments de 90 degrés (gauche ou droite)
+- Rotation globale de toutes les pages simultanément
+- Aperçu en miniature en temps réel avec transitions de rotation animées
+- Miniatures chargées à la demande pour de bonnes performances sur les gros documents
+- Préserve le contenu et la qualité d'origine des pages
+
+## Cas d'usage
+
+- Corriger des pages numérisées de travers ou à l'envers
+- Faire passer des pages du mode paysage au mode portrait (ou l'inverse)
+- Corriger un document d'orientation mixte dont certaines pages ont été numérisées sous le mauvais angle
+- Préparer un document pour une orientation d'affichage précise
+
+## Conseils
+
+- Les rotations sont cumulatives. Cliquer deux fois sur le bouton horaire applique une rotation de 180 degrés.
+- Pour des rotations qui ne sont pas des multiples de 90 degrés (par ex. 45 degrés pour corriger une numérisation légèrement inclinée), utilisez plutôt [Rotation par angle personnalisé](./rotate-custom).
+- Les commandes de rotation globale affectent toutes les pages, pas seulement celles qui sont sélectionnées. Cet outil n'a pas de mécanisme de sélection : pour cela, utilisez l'[Outil PDF tout-en-un](./pdf-multi-tool).
+
+## Outils associés
+
+- [Rotation par angle personnalisé](./rotate-custom)
+- [Outil PDF tout-en-un](./pdf-multi-tool)
+- [Dupliquer et organiser](./organize-pdf)
diff --git a/docs/fr/tools/rtf-to-pdf.md b/docs/fr/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..ff2c9d65
--- /dev/null
+++ b/docs/fr/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF vers PDF
+description: Convertissez des fichiers Rich Text Format (RTF) en PDF dans votre navigateur grâce à un moteur propulsé par LibreOffice.
+---
+
+# RTF vers PDF
+
+Convertissez des documents Rich Text Format en PDF. Le RTF est un format de document multiplateforme pris en charge par pratiquement tous les traitements de texte. Cet outil utilise un moteur LibreOffice exécuté dans le navigateur pour restituer les fichiers RTF en conservant leur mise en forme : gras, italique, tableaux et images intégrées sont tous repris dans le PDF.
+
+## Formats pris en charge
+
+| Format | Extensions | Types MIME |
+| :----- | :--------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez un ou plusieurs fichiers RTF.
+2. Vérifiez la liste des fichiers. Ajoutez-en ou retirez-en selon vos besoins.
+3. Cliquez sur **Convertir en PDF**. Le moteur LibreOffice s'initialise à la première utilisation, puis traite chaque fichier.
+4. Un fichier unique est téléchargé directement en PDF. Plusieurs fichiers sont livrés sous la forme `rtf-converted.zip`.
+
+## Options
+
+Cet outil n'a aucun réglage supplémentaire. La conversion préserve la mise en forme RTF d'origine.
+
+## Résultat
+
+| Nombre de fichiers | Résultat |
+| :----------------- | :------------------------------------------------------------- |
+| 1 fichier | Téléchargement d'un seul PDF (par ex. `letter.pdf`) |
+| 2 fichiers ou plus | Archive ZIP (`rtf-converted.zip`) contenant un PDF par fichier |
+
+## Cas d'usage
+
+- Convertir en PDF modernes des documents RTF hérités d'anciens traitements de texte
+- Transformer des modèles d'email RTF en aperçus PDF
+- Traiter les sorties RTF de logiciels juridiques ou médicaux
+- Convertir par lots des fichiers RTF d'un système de gestion documentaire en PDF pour l'archivage
+
+## Conseils
+
+- Le moteur LibreOffice est chargé une fois puis mis en cache. La première conversion d'une session prend quelques secondes de plus, les suivantes sont plus rapides.
+- Les fichiers RTF contenant des objets OLE intégrés peuvent ne pas restituer parfaitement tous les objets. Le texte brut, les images et la mise en forme standard se convertissent de façon fiable.
+- Si vos fichiers RTF ont été créés avec Microsoft Word, vous pouvez aussi les convertir directement avec l'outil [Word vers PDF](./word-to-pdf), qui accepte le RTF en plus du DOC et du DOCX.
+
+## Outils associés
+
+- [Word vers PDF](./word-to-pdf)
+- [ODT vers PDF](./odt-to-pdf)
+- [Texte vers PDF](./txt-to-pdf)
diff --git a/docs/fr/tools/sanitize-pdf.md b/docs/fr/tools/sanitize-pdf.md
new file mode 100644
index 00000000..81c28aa4
--- /dev/null
+++ b/docs/fr/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Nettoyer un PDF
+description: 'Supprimez le contenu masqué et potentiellement dangereux des PDF : métadonnées, JavaScript, fichiers intégrés, annotations et calques.'
+---
+
+# Nettoyer un PDF
+
+Un PDF peut contenir bien plus que ce que vous voyez à l'écran. Des métadonnées cachées, du JavaScript intégré, des pièces jointes, des données de formulaire et des informations de calques peuvent divulguer des données sensibles ou présenter des risques de sécurité. Le nettoyage supprime tout cela et vous laisse un document propre, sûr à partager publiquement.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. Sélectionnez dans la liste les éléments à supprimer.
+3. Cliquez sur **Nettoyer le PDF**.
+4. Téléchargez le fichier nettoyé.
+
+## Options de nettoyage
+
+Toutes les options sont activées par défaut. Décochez celles que vous voulez conserver.
+
+| Option | Ce qu'elle supprime |
+| ----------------------------------- | -------------------------------------------------------------------------------- |
+| **Aplatir les formulaires** | Convertit les champs de formulaire interactifs en contenu statique |
+| **Supprimer les métadonnées** | Supprime l'auteur, le titre, la date de création, le logiciel et les données XMP |
+| **Supprimer les annotations** | Supprime les commentaires, surlignages, notes autocollantes et marquages |
+| **Supprimer le JavaScript** | Élimine les scripts intégrés qui pourraient s'exécuter à l'ouverture |
+| **Supprimer les fichiers intégrés** | Supprime les pièces jointes intégrées au PDF |
+| **Supprimer les calques (OCG)** | Aplatit les groupes de contenu optionnel en un seul calque |
+| **Supprimer les liens** | Supprime les hyperliens et les références d'URL |
+| **Supprimer l'arbre de structure** | Retire la structure du document utilisée pour le balisage d'accessibilité |
+| **Supprimer MarkInfo** | Supprime les informations de contenu balisé |
+| **Supprimer les polices** | Retire les données de polices intégrées (à utiliser avec prudence) |
+
+## Cas d'usage
+
+- Préparer un PDF pour une diffusion publique en supprimant les métadonnées internes (noms d'auteurs, versions de logiciels, historique de modification)
+- Retirer le JavaScript d'un PDF reçu d'une source non fiable avant de l'ouvrir
+- Nettoyer un PDF avant de l'envoyer à un client qui ne doit pas voir les commentaires intégrés ou les noms de champs de formulaire
+- Supprimer les calques masqués d'un plan d'architecte avant de partager la version finale
+- Respecter les exigences de minimisation des données des réglementations sur la vie privée
+
+## Conseils
+
+- Laissez « Supprimer les polices » décoché sauf si vous êtes certain que le PDF s'affichera correctement. Supprimer les polices peut rendre le texte invisible dans certains lecteurs.
+- Si vous avez seulement besoin de supprimer les métadonnées, l'outil dédié Supprimer les métadonnées est plus rapide et plus ciblé.
+- Le nettoyage est irréversible. Conservez votre fichier d'origine.
+
+## Outils associés
+
+- [Supprimer les métadonnées](./remove-metadata) : supprimer uniquement les métadonnées sans toucher au reste du contenu
+- [Aplatir le PDF](./flatten-pdf) : aplatir spécifiquement les formulaires et les annotations
+- [Protéger un PDF](./protect-pdf) : ajouter une protection par mot de passe après le nettoyage
+- [Rastériser le PDF](./rasterize-pdf) : l'option radicale, convertir en images pour éliminer tout contenu masqué
diff --git a/docs/fr/tools/scanner-effect.md b/docs/fr/tools/scanner-effect.md
new file mode 100644
index 00000000..1676b5d4
--- /dev/null
+++ b/docs/fr/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Effet scanner
+description: Donnez à votre PDF l'aspect d'un document numérisé avec du bruit, une rotation, un flou et un vieillissement du papier réglables.
+---
+
+# Effet scanner
+
+Transformez un PDF numérique propre en document qui semble sorti d'un scanner à plat. L'outil applique du bruit configurable, une légère rotation, du flou, des variations de luminosité et un jaunissement facultatif pour simuler les imperfections d'une vraie numérisation.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. L'éditeur s'ouvre avec un aperçu en direct de la première page à côté d'un panneau de réglages.
+3. Ajustez les paramètres de l'effet scanner avec les curseurs et les interrupteurs.
+4. L'aperçu se met à jour en temps réel à chaque modification.
+5. Cliquez sur **Appliquer** pour traiter toutes les pages et télécharger le résultat.
+
+## Options
+
+- **Espace colorimétrique (interrupteur Niveaux de gris)** : convertit la sortie en niveaux de gris pour un rendu de numérisation classique en noir et blanc.
+- **Bordure** : ajoute une fine bordure sombre sur les bords de la page pour imiter les artefacts de bordure d'un scanner.
+- **Rotation** : applique une légère rotation (de -5 à +5 degrés) pour simuler une alimentation du papier mal alignée.
+- **Variance de rotation** : ajoute une variation aléatoire à l'angle de rotation pour que chaque page soit inclinée légèrement différemment.
+- **Luminosité** : augmente ou diminue la luminosité globale.
+- **Contraste** : ajuste le contraste pour simuler les variations de qualité du toner.
+- **Flou** : applique un flou gaussien pour adoucir les bords du texte comme sur une numérisation de mauvaise qualité.
+- **Bruit** : ajoute du bruit de pixels aléatoire pour simuler le grain du capteur du scanner. Des valeurs élevées donnent un résultat plus granuleux.
+- **Jaunâtre** : ajoute une teinte jaune chaude pour simuler un papier vieilli ou recyclé.
+- **Résolution** : définit le DPI de sortie. Des valeurs plus basses créent un aspect plus pixellisé, typique d'une numérisation.
+- **Réinitialiser** : rétablit tous les réglages par défaut.
+
+## Fonctionnalités
+
+- Aperçu en temps réel qui se met à jour à chaque ajustement
+- Variance de rotation aléatoire par page pour une variation réaliste
+- Dix paramètres réglables indépendamment
+- Mode niveaux de gris pour une sortie de numérisation en noir et blanc authentique
+- Contrôle de la résolution, de la qualité d'un fax en faible DPI à celle d'une archive en haut DPI
+
+## Cas d'usage
+
+- Donner à des documents créés numériquement l'apparence d'avoir été imprimés puis numérisés
+- Simuler le vieillissement physique d'un document pour recréer un document historique
+- Tester un logiciel d'OCR face à une qualité de numérisation dégradée
+- Produire des documents qui correspondent au style visuel d'archives numérisées existantes
+
+## Conseils
+
+- Commencez avec des valeurs subtiles. Un niveau de bruit de 10 à 20, une légère rotation de 0,5 degré et un flou minimal suffisent déjà à produire un rendu de numérisation convaincant.
+- Combinez le mode niveaux de gris avec un léger jaunissement pour un effet « photocopie de photocopie ».
+- Les réglages de résolution plus bas (100 à 150 DPI) donnent l'apparence de télécopieur la plus réaliste.
+
+## Outils associés
+
+- [Inverser les couleurs](./invert-colors)
+- [Ajuster les couleurs](./adjust-colors)
+- [Couleur de fond](./background-color)
diff --git a/docs/fr/tools/sign-pdf.md b/docs/fr/tools/sign-pdf.md
new file mode 100644
index 00000000..057eea69
--- /dev/null
+++ b/docs/fr/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Signer un PDF
+description: Dessinez, saisissez ou importez une signature et placez-la sur les pages de votre PDF grâce à une visionneuse intégrée.
+---
+
+# Signer un PDF
+
+Ajoutez votre signature à n'importe quel document PDF. L'outil intègre une visionneuse PDF complète avec des outils de signature : vous pouvez dessiner une signature à main levée, saisir votre nom dans une police de signature ou importer une image de signature. Placez et redimensionnez les signatures sur n'importe quelle page, puis enregistrez le document signé.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. Le document s'ouvre dans une visionneuse PDF intégrée dotée d'outils d'annotation.
+3. Utilisez l'outil de signature de la visionneuse pour créer votre signature en la dessinant, en la saisissant ou en important une image.
+4. Cliquez sur la page à l'endroit où placer la signature, puis ajustez sa taille et sa position.
+5. Cochez éventuellement **Aplatir le PDF** pour intégrer définitivement la signature au document.
+6. Cliquez sur **Enregistrer et télécharger le PDF signé** pour obtenir votre fichier signé.
+
+## Options
+
+- **Aplatir le PDF** : lorsque cette option est cochée, la signature est intégrée définitivement au contenu de la page. Elle ne peut alors plus être déplacée ou supprimée par d'autres personnes. Lorsqu'elle est décochée, la signature reste une annotation modifiable dans les visionneuses compatibles.
+
+## Fonctionnalités
+
+- Trois méthodes de création de signature : dessin à main levée, texte saisi ou image importée
+- Visionneuse PDF intégrée pour un placement précis
+- Glissez pour positionner et redimensionner les signatures sur n'importe quelle page
+- Aplatissement facultatif pour intégrer définitivement les signatures
+- Prise en charge de plusieurs signatures dans un même document
+
+## Cas d'usage
+
+- Signer des contrats, des accords ou des formulaires d'approbation avant de les renvoyer
+- Ajouter votre signature à des documents fiscaux, des déclarations de sinistre ou des formulaires administratifs
+- Apposer vos initiales sur chaque page d'un accord de plusieurs pages
+- Signer des accords de confidentialité ou des documents RH reçus en pièces jointes PDF
+
+## Conseils
+
+- Activez l'aplatissement si vous envoyez le PDF signé à quelqu'un qui ne doit pas pouvoir retirer ou repositionner votre signature.
+- Pour des signatures numériques juridiquement contraignantes avec vérification par certificat, BentoPDF propose aussi un outil distinct de signature numérique.
+- Importez une image de signature PNG à fond transparent pour obtenir le résultat le plus propre.
+
+## Outils associés
+
+- [Éditeur PDF](./edit-pdf)
+- [Ajouter des tampons](./add-stamps)
+- [Remplir un formulaire PDF](./form-filler)
diff --git a/docs/fr/tools/split-pdf.md b/docs/fr/tools/split-pdf.md
new file mode 100644
index 00000000..963f5f7e
--- /dev/null
+++ b/docs/fr/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Scinder un PDF
+description: Scindez un PDF en fichiers plus petits par plage de pages, sélection visuelle, signets, pages paires/impaires ou intervalles fixes.
+---
+
+# Scinder un PDF
+
+Découpez un PDF en documents plus petits grâce à l'un des six modes de scission. Des simples plages de pages à la scission par signets, cet outil couvre tous les cas de division d'un document.
+
+## Fonctionnement
+
+1. Importez un seul fichier PDF.
+2. Choisissez un mode de scission dans la liste déroulante.
+3. Configurez les options propres au mode (plages de pages, sélections, etc.).
+4. Cliquez sur le bouton de traitement.
+5. Le résultat est téléchargé sous forme d'un PDF unique ou d'une archive ZIP selon le mode et les réglages.
+
+## Modes de scission
+
+| Mode | Description |
+| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Plage** | Saisissez des plages de pages comme `1-3, 5, 8-10`. Plusieurs plages produisent des PDF séparés dans un ZIP. Une seule plage produit un PDF. |
+| **Sélection visuelle** | Parcourez les miniatures et cliquez pour sélectionner les pages voulues. Les pages sélectionnées sont extraites dans un nouveau PDF. |
+| **Paires / impaires** | Extrait uniquement les pages paires ou les pages impaires. |
+| **Toutes les pages** | Scinde chaque page en un fichier PDF individuel, téléchargé sous forme de ZIP. |
+| **Signets** | Scinde aux limites des signets. Choisissez le niveau de signet pour contrôler où les coupures ont lieu. |
+| **Toutes les N pages** | Scinde en blocs de N pages chacun (par ex. toutes les 5 pages). Le dernier bloc peut contenir moins de pages. |
+
+## Fonctionnalités
+
+- Six modes de scission distincts couvrant pratiquement tous les cas d'usage
+- Sélecteur de pages visuel avec miniatures chargées à la demande
+- Scission par signets avec filtrage par niveau
+- Option de sortie ZIP pour les modes plage et sélection visuelle
+- Gère les plages de pages à la syntaxe mixte (`1-3, 5, 8-10`)
+- Avertissement lorsque les scissions par N pages donnent des blocs inégaux
+
+## Cas d'usage
+
+- Extraire un chapitre ou une section précise d'un gros document
+- Séparer les pages paires et impaires pour des flux d'impression recto verso
+- Découper un PDF de livre en fichiers de chapitres individuels aux limites des signets
+- Isoler des pages précises (comme la page de signature) d'un contrat
+- Scinder un rapport compilé en fichiers par section pour la distribution
+
+## Conseils
+
+- Plusieurs plages de pages séparées par des virgules (par ex. `1-5, 10-15, 20-25`) produisent des PDF séparés, un par plage, regroupés dans un ZIP.
+- Le mode de scission par signets exige que le PDF contienne réellement des signets. Si aucun n'est trouvé, un message d'erreur s'affiche.
+- La case « Télécharger en ZIP » des modes Plage et Sélection visuelle vous permet d'obtenir un PDF par page au lieu d'un fichier combiné.
+
+## Outils associés
+
+- [Fusionner des PDF](./merge-pdf)
+- [Extraire des pages](./extract-pages)
+- [Supprimer des pages](./delete-pages)
+- [Outil PDF tout-en-un](./pdf-multi-tool)
diff --git a/docs/fr/tools/svg-to-pdf.md b/docs/fr/tools/svg-to-pdf.md
new file mode 100644
index 00000000..80cdaebc
--- /dev/null
+++ b/docs/fr/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG vers PDF
+description: Convertissez des graphiques vectoriels SVG en PDF avec contrôle de la qualité, entièrement dans votre navigateur.
+---
+
+# SVG vers PDF
+
+Convertissez des fichiers Scalable Vector Graphics (SVG) en PDF. L'outil rastérise chaque SVG via le moteur de rendu du navigateur, puis intègre le résultat à sa résolution native. Pratique pour transformer des icônes vectorielles, des diagrammes et des illustrations en documents portables.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :--------- |
+| SVG | `.svg` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez un ou plusieurs fichiers SVG.
+2. Vérifiez et gérez la liste des fichiers.
+3. Choisissez un niveau de **qualité PDF**.
+4. Cliquez sur **Convertir en PDF**. Le résultat est téléchargé sous le nom `from_svgs.pdf`.
+
+Chaque SVG est lu comme du texte, restitué sur un canevas à sa largeur et sa hauteur intrinsèques (800x600 par défaut si aucune dimension n'est indiquée), puis exporté en PNG. Ce PNG est ensuite intégré au PDF avec pdf-lib. Les zones transparentes sont remplies d'un fond blanc.
+
+## Options
+
+La **qualité PDF** contrôle la compression après la rastérisation :
+
+- **Haute qualité** : au plus près du rendu d'origine.
+- **Qualité moyenne** (par défaut) : bon compromis.
+- **Basse qualité** : fichier le plus léger, avec une certaine perte de détails.
+
+## Cas d'usage
+
+- Convertir des diagrammes d'architecture ou d'ingénierie de SVG en PDF prêt à imprimer
+- Regrouper des jeux d'icônes dans un PDF de référence pour un design system
+- Transformer des visualisations de données (D3.js, exports de bibliothèques de graphiques) en PDF prêts pour un rapport
+- Créer des versions imprimables d'infographies basées sur du SVG
+
+## Conseils
+
+- Les fichiers SVG sans attributs `width` et `height` explicites sont restitués en 800x600 pixels. Pour de meilleurs résultats, définissez les dimensions dans la source SVG avant de convertir.
+- Les SVG complexes avec des références de polices externes ou des images liées peuvent ne pas s'afficher parfaitement. Intégrez toutes les ressources dans le SVG pour un résultat fiable.
+- Comme le SVG est rastérisé, le PDF contiendra une image bitmap plutôt que des tracés vectoriels. Pour obtenir un vrai PDF vectoriel, il faut un outil vectoriel dédié.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
+- [BMP vers PDF](./bmp-to-pdf)
diff --git a/docs/fr/tools/table-of-contents.md b/docs/fr/tools/table-of-contents.md
new file mode 100644
index 00000000..3bffabc9
--- /dev/null
+++ b/docs/fr/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Table des matières
+description: Générez une page de table des matières mise en forme à partir des signets existants de votre PDF.
+---
+
+# Table des matières
+
+Cet outil lit les signets (plan) de votre PDF et génère une page de table des matières mise en forme, ajoutée au début du document. Si votre PDF contient déjà des signets mais pas de page de table des matières visible, cet outil en crée une automatiquement.
+
+## Fonctionnement
+
+1. Importez un PDF qui contient des signets.
+2. Personnalisez le titre, la taille de police et la famille de police de la table des matières.
+3. Cochez éventuellement **Ajouter un signet pour la page de table des matières** pour inclure la table des matières elle-même dans l'arborescence des signets.
+4. Cliquez sur **Générer la table des matières** pour traiter le fichier.
+5. Le PDF mis à jour est téléchargé automatiquement, avec la page de table des matières insérée au début.
+
+## Options
+
+- **Titre de la table des matières** : le titre affiché en haut de la page générée. Par défaut « Table des matières ».
+- **Taille de police** : de 10 pt à 72 pt. La valeur par défaut est 12 pt.
+- **Famille de police** : choisissez parmi les variantes Times Roman, Helvetica ou Courier (normal, gras, italique, gras italique). Helvetica par défaut.
+- **Ajouter un signet pour la page de table des matières** : lorsque cette option est cochée, une entrée de signet pour la page de table des matières elle-même est ajoutée au plan du PDF.
+
+## Fonctionnalités
+
+- Lit toute la hiérarchie des signets du PDF
+- Génère une page de table des matières proprement mise en forme avec les numéros de page
+- Prend en charge les niveaux de signets imbriqués avec indentation
+- Choix parmi 12 polices PDF intégrées
+- Signet autoréférencé facultatif pour la page de table des matières
+
+## Cas d'usage
+
+- Ajouter une table des matières imprimable à des e-books ou des rapports qui n'ont que des signets numériques
+- Créer une table des matières pour un document fusionné après l'assemblage de plusieurs PDF
+- Générer une page de référence pour de longs manuels techniques
+- Préparer des documents pour l'impression lorsqu'une table des matières visible est attendue
+
+## Conseils
+
+- Si votre PDF n'a pas de signets, utilisez d'abord l'outil [Modifier les signets](./bookmark) pour en créer, puis revenez ici pour générer la table des matières.
+- Pour les gros documents, une taille de police plus grande, comme 14 pt ou 16 pt, améliore la lisibilité.
+
+## Outils associés
+
+- [Modifier les signets](./bookmark)
+- [Numéros de page](./page-numbers)
+- [En-tête et pied de page](./header-footer)
diff --git a/docs/fr/tools/text-color.md b/docs/fr/tools/text-color.md
new file mode 100644
index 00000000..710bf52d
--- /dev/null
+++ b/docs/fr/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Changer la couleur du texte
+description: Changez la couleur de tout le texte de votre PDF pour la couleur de votre choix.
+---
+
+# Changer la couleur du texte
+
+Remplacez la couleur du texte dans tout votre PDF. L'outil repère les zones de texte de chaque page et les recolore avec la couleur choisie, en préservant la mise en page du document et le contenu non textuel.
+
+## Fonctionnement
+
+1. Importez votre fichier PDF.
+2. Choisissez une nouvelle couleur de texte avec le sélecteur de couleur. La valeur par défaut est le bleu (#0000FF).
+3. Cliquez sur **Changer la couleur du texte** pour lancer le traitement.
+4. Le PDF recoloré est téléchargé automatiquement. Un indicateur de progression montre quelle page est en cours de traitement.
+
+## Options
+
+- **Nouvelle couleur du texte** : un sélecteur de couleur pour choisir la couleur de remplacement de tout le texte du document.
+
+## Fonctionnalités
+
+- Recolore le texte de chaque page du document
+- Traitement page par page avec indication de progression
+- Sélecteur de couleur avec prise en charge complète des couleurs hexadécimales
+- Préserve la mise en page et les éléments non textuels
+
+## Cas d'usage
+
+- Passer du texte noir au bleu foncé pour un aspect de document plus doux et plus moderne
+- Recolorer le texte pour respecter une charte graphique avant de diffuser des documents
+- Convertir le texte en une couleur précise pour se conformer à des exigences d'accessibilité
+- Rendre le texte visible sur une couleur de fond nouvellement appliquée
+
+## Conseils
+
+- Cet outil restitue les pages à l'échelle 2x pour la qualité, puis reconstruit le PDF. Le résultat est composé d'images : le texte ne sera donc plus sélectionnable ni consultable par recherche.
+- Pour les documents dont vous devez conserver le texte sélectionnable, envisagez plutôt de modifier directement le PDF avec l'[Éditeur PDF](./edit-pdf).
+- Le temps de traitement augmente avec le nombre de pages, car chaque page est restituée individuellement.
+
+## Outils associés
+
+- [Couleur de fond](./background-color)
+- [Inverser les couleurs](./invert-colors)
+- [Ajuster les couleurs](./adjust-colors)
diff --git a/docs/fr/tools/tiff-to-pdf.md b/docs/fr/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..096adf9a
--- /dev/null
+++ b/docs/fr/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF vers PDF
+description: Convertissez des images TIFF d'une ou plusieurs pages au format PDF dans votre navigateur, avec prise en charge complète des pages.
+---
+
+# TIFF vers PDF
+
+Convertissez des fichiers TIFF en PDF, y compris les TIFF de plusieurs pages. Chaque page (ou « IFD ») d'un fichier TIFF devient une page distincte du PDF de sortie. C'est particulièrement utile pour les documents numérisés, les fax et les images médicales, couramment stockés sous forme de TIFF de plusieurs pages.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'import ou glissez-déposez vos fichiers TIFF.
+2. Vérifiez la liste des fichiers et gérez-la selon vos besoins.
+3. Cliquez sur **Convertir en PDF**. Le résultat est téléchargé sous le nom `from_tiff.pdf`.
+
+L'outil décode chaque fichier TIFF avec un décodeur TIFF JavaScript et extrait les données de pixels RGBA brutes de chaque page. Chaque page est restituée sur un canevas, exportée en PNG et intégrée au PDF. Les dimensions des pages correspondent à celles des pages TIFF d'origine.
+
+## Options
+
+Cet outil n'expose aucun réglage de qualité supplémentaire. Les images sont intégrées à leur résolution native.
+
+## Cas d'usage
+
+- Convertir des documents fax de plusieurs pages (TIFF-F) en un format PDF plus portable
+- Transformer des archives de documents numérisés stockées en TIFF en PDF interrogeables (à combiner ensuite avec l'outil OCR)
+- Traiter des fichiers d'imagerie médicale (lames d'anatomopathologie, exports de radiologie) qui utilisent le TIFF
+- Convertir des fichiers TIFF d'imagerie SIG ou satellite en documents partageables
+
+## Conseils
+
+- Les TIFF de plusieurs pages sont entièrement pris en charge. Un TIFF de 10 pages produira un PDF de 10 pages. Vous n'avez pas besoin de scinder le TIFF au préalable.
+- Les très gros fichiers TIFF (plusieurs centaines de mégaoctets) peuvent prendre plus de temps à traiter, car le fichier entier doit être décodé dans la mémoire du navigateur.
+- Si vous avez besoin d'OCR sur le PDF obtenu, passez-le dans l'outil [OCR PDF](./ocr-pdf) après la conversion.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [BMP vers PDF](./bmp-to-pdf)
+- [JPG vers PDF](./jpg-to-pdf)
diff --git a/docs/fr/tools/txt-to-pdf.md b/docs/fr/tools/txt-to-pdf.md
new file mode 100644
index 00000000..bd773f9f
--- /dev/null
+++ b/docs/fr/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Texte vers PDF
+description: Convertissez des fichiers texte brut ou du texte saisi en PDF avec des polices, des couleurs et des formats de page personnalisés.
+---
+
+# Texte vers PDF
+
+Convertissez du texte brut en PDF mis en forme. Vous pouvez importer des fichiers `.txt` ou saisir directement du texte dans l'éditeur intégré. L'outil prend en charge plusieurs polices, des couleurs de texte personnalisées et un large choix de formats de page, de A0 à A10, ainsi que US Letter, Legal et Tabloid.
+
+## Formats pris en charge
+
+| Entrée | Extensions |
+| :---------------------- | :--------------------------------- |
+| Fichiers texte brut | `.txt` |
+| Saisie directe de texte | Saisissez ou collez dans l'éditeur |
+
+## Fonctionnement
+
+1. Choisissez votre mode de saisie avec l'interrupteur en haut : **Importer des fichiers** ou **Saisir du texte**.
+2. Pour l'import, glissez-déposez ou cliquez pour sélectionner un ou plusieurs fichiers `.txt`. Pour la saisie, tapez votre texte directement dans la zone de texte.
+3. Configurez les options de mise en forme : famille de police, taille de police, couleur du texte et format de page.
+4. Cliquez sur **Créer le PDF**. Le résultat est téléchargé sous le nom `text_to_pdf.pdf`.
+
+Lorsque vous importez plusieurs fichiers, leurs contenus sont concaténés avec des lignes vides entre eux.
+
+## Options
+
+| Option | Valeurs | Par défaut |
+| :-------------------- | :----------------------------------------------------------------------------- | :------------- |
+| **Famille de police** | Helvetica (sans empattement), Tiro (serif), Courier (monospace), Times (serif) | Helvetica |
+| **Taille de police** | 6 à 72 pt | 12 |
+| **Couleur du texte** | N'importe quelle couleur via le sélecteur | Noir (#000000) |
+| **Format de page** | ISO A0 à A10, B0 à B10, C0 à C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Les langues écrites de droite à gauche (arabe, hébreu, persan, ourdou) sont détectées automatiquement. Lorsqu'un texte RTL est trouvé, la direction et l'alignement du texte s'adaptent en conséquence.
+
+## Cas d'usage
+
+- Convertir des extraits de code ou des fichiers de logs en PDF imprimable avec la police Courier
+- Créer rapidement un PDF à partir de notes de réunion saisies sur le moment
+- Mettre en forme un manuscrit en texte brut avec une police et un format de page précis pour une soumission
+- Produire une version PDF d'un README ou d'un journal des modifications pour une distribution hors ligne
+
+## Conseils
+
+- Utilisez le mode **Saisir du texte** pour convertir rapidement le contenu du presse-papiers sans l'enregistrer d'abord dans un fichier.
+- Courier (monospace) est le meilleur choix pour du code, des logs ou tout contenu où l'alignement des colonnes compte.
+- Les marges de page sont fixées à 72 points (1 pouce) de chaque côté.
+
+## Outils associés
+
+- [Markdown vers PDF](./markdown-to-pdf)
+- [CSV vers PDF](./csv-to-pdf)
+- [Word vers PDF](./word-to-pdf)
diff --git a/docs/fr/tools/unlock-pdf.md b/docs/fr/tools/unlock-pdf.md
new file mode 100644
index 00000000..0e7ddc0b
--- /dev/null
+++ b/docs/fr/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Déverrouiller un PDF
+description: Supprimez la protection par mot de passe des PDF chiffrés. Prend en charge le déchiffrement par lots avec un seul mot de passe pour plusieurs fichiers.
+---
+
+# Déverrouiller un PDF
+
+Si vous avez le mot de passe d'un PDF chiffré, cet outil supprime entièrement le chiffrement et produit une copie déverrouillée que tout le monde peut ouvrir sans identifiants. Il prend en charge le déchiffrement par lots lorsque plusieurs PDF partagent le même mot de passe.
+
+## Fonctionnement
+
+1. Importez un ou plusieurs fichiers PDF chiffrés.
+2. Saisissez le **mot de passe** utilisé pour protéger les fichiers.
+3. Cliquez sur **Déverrouiller un PDF**.
+4. Un fichier unique est téléchargé directement. Plusieurs fichiers produisent une archive ZIP contenant tous les PDF déverrouillés.
+
+## Fonctionnalités
+
+- Déchiffrement d'un seul fichier ou par lots
+- Gère les mots de passe utilisateur et les mots de passe propriétaire
+- Produit un fichier de sortie totalement non chiffré, sans restriction résiduelle
+- Messages d'erreur clairs en cas de mot de passe incorrect ou de fichier corrompu
+- Suivi du succès ou de l'échec fichier par fichier en mode lot
+
+## Différence avec Supprimer les restrictions
+
+**Déverrouiller un PDF** exige le mot de passe et supprime tout le chiffrement. **Supprimer les restrictions** cible les restrictions d'usage (impression, copie, modification) et peut ne pas demander de mot de passe si seul un mot de passe propriétaire a été défini. Utilisez Déverrouiller lorsque le PDF ne s'ouvre pas du tout sans mot de passe.
+
+## Cas d'usage
+
+- Déverrouiller définitivement des PDF que vous avez chiffrés auparavant lorsque le mot de passe n'est plus nécessaire
+- Supprimer le chiffrement d'un lot de documents archivés pour faciliter l'accès à long terme
+- Préparer des PDF protégés par mot de passe pour un système de gestion documentaire qui ne prend pas en charge les fichiers chiffrés
+- Déverrouiller des PDF avant de les fusionner avec d'autres documents (de nombreux outils de fusion ne savent pas traiter des fichiers chiffrés)
+
+## Conseils
+
+- Le champ du mot de passe s'applique à tous les fichiers importés. Si vos PDF ont des mots de passe différents, traitez-les par lots séparés.
+- Si vous obtenez l'erreur « Mot de passe incorrect », vérifiez qu'il n'y a pas d'espaces à la fin et que le verrouillage des majuscules est désactivé.
+- Après le déchiffrement, le fichier n'a plus aucune protection. Rechiffrez-le avec Protéger un PDF si vous devez appliquer un nouveau mot de passe.
+
+## Outils associés
+
+- [Protéger un PDF](./protect-pdf) : appliquer à nouveau un chiffrement avec un nouveau mot de passe
+- [Supprimer les restrictions](./remove-restrictions) : supprimer les restrictions d'usage sans déchiffrement complet
+- [Modifier les autorisations](./change-permissions) : modifier des autorisations précises sur un PDF chiffré
diff --git a/docs/fr/tools/validate-signature-pdf.md b/docs/fr/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..0c1b32ec
--- /dev/null
+++ b/docs/fr/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Valider la signature
+description: Vérifiez les signatures numériques des fichiers PDF. Contrôlez la validité du certificat, l'identité du signataire, l'intégrité du document et l'état de la chaîne de confiance.
+---
+
+# Valider la signature
+
+Importez un PDF signé : cet outil extrait chaque signature numérique, identifie le signataire, vérifie la validité du certificat et indique si le document a été modifié depuis la signature. Vous pouvez aussi fournir un certificat de confiance pour vérifier la chaîne de signature.
+
+## Fonctionnement
+
+1. Importez un fichier PDF signé. La validation démarre automatiquement.
+2. L'outil affiche un résumé : nombre de signatures trouvées et nombre de signatures valides.
+3. Chaque signature dispose d'une fiche détaillée indiquant le nom du signataire, l'émetteur, les dates et l'état.
+4. Vous pouvez éventuellement importer un **certificat de confiance** (.pem, .crt, .cer, .der) pour vérifier la signature par rapport à une ancre de confiance précise. La revalidation s'exécute automatiquement.
+
+## Ce qui est vérifié
+
+### Analyse de la signature
+
+L'outil extrait les objets de signature PKCS#7 du PDF, décode la structure ASN.1 et récupère le certificat X.509 du signataire ainsi que toute chaîne de certificats intégrée à la signature.
+
+### Validité du certificat
+
+- **Expiration** : le certificat se trouve-t-il actuellement dans sa période de validité ?
+- **Détection de l'auto-signature** : le certificat est-il son propre émetteur ?
+- **Chaîne de confiance** : lorsqu'un certificat de confiance est fourni, le certificat du signataire remonte-t-il jusqu'à lui ?
+
+### Vérification cryptographique
+
+- L'outil reconstruit les octets couverts par le `/ByteRange` de la signature, les hache avec l'algorithme déclaré par le signataire et compare le résultat à l'attribut `messageDigest` contenu dans la signature.
+- Il resérialise ensuite les attributs signés sous forme d'ensemble DER SET et vérifie la signature à l'aide de la clé publique du certificat du signataire.
+- **Une signature n'est déclarée valide que si toutes ces vérifications réussissent.** Si les octets du PDF ont été modifiés après la signature, ou si la signature intégrée ne correspond pas à la clé du signataire, l'état affiche « Invalide : échec de la vérification cryptographique » avec la raison précise.
+
+#### Algorithmes de signature pris en charge
+
+| Algorithme | Chemin de vérification |
+| ----------------------- | ----------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, avec repli sur Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` après conversion de signature DER → IEEE P1363 |
+
+Si une signature utilise un algorithme absent de cette liste (par exemple Ed25519, SM2 ou RSA avec un OID de condensat inhabituel), la fiche affiche **« Non vérifiée : algorithme de signature non pris en charge »** en jaune, avec l'OID ou la raison précise. Il s'agit d'une distinction volontaire à trois états :
+
+- **Valide** : la signature a été vérifiée cryptographiquement avec la clé publique du signataire.
+- **Invalide** : la vérification a été exécutée et a donné un résultat négatif (octets modifiés, clé non correspondante).
+- **Non vérifiée** : l'outil n'a pas pu exécuter la vérification pour cet algorithme. Les métadonnées du certificat sont toujours affichées, mais vous devez considérer la signature comme « inconnue » et la vérifier avec Adobe Acrobat ou `openssl cms -verify`.
+
+### Algorithmes de condensat non sûrs
+
+- Les signatures utilisant **MD5 ou SHA-1** sont rejetées comme invalides et signalées par l'état « Condensat non sûr ». Ces deux algorithmes ont fait l'objet d'attaques par collision publiées, donc une signature sur un condensat SHA-1 ou MD5 n'offre aucune garantie d'intégrité.
+- SHA-224, SHA-256, SHA-384 et SHA-512 sont tous acceptés.
+
+### Couverture du document
+
+- **Couverture complète** : la signature couvre l'intégralité du fichier PDF, ce qui signifie qu'aucun octet n'a été ajouté ou modifié après la signature.
+- **Couverture partielle** : la signature ne couvre qu'une partie du fichier. Cela peut indiquer des modifications effectuées après la signature (pas nécessairement malveillantes : les enregistrements incrémentiels produisent une couverture partielle).
+
+## Détails de la signature
+
+Chaque fiche de signature affiche :
+
+- **Signé par** : nom courant, organisation et e-mail provenant du certificat du signataire
+- **Émetteur** : l'autorité de certification qui a émis le certificat du signataire
+- **Signé le** : l'horodatage intégré à la signature
+- **Valide du / Valide jusqu'au** : la période de validité du certificat
+- **Motif** : la raison de la signature du document (si elle est fournie)
+- **Lieu** : l'endroit où le document a été signé (s'il est fourni)
+- **État de la couverture** : complète ou partielle
+- **Badge de confiance** : approuvé ou hors de la chaîne de confiance (uniquement lorsqu'un certificat personnalisé est fourni)
+
+### Détails techniques
+
+Développez la section des détails techniques pour afficher :
+
+- Le numéro de série du certificat du signataire
+- L'algorithme de condensat (SHA-256, SHA-512, etc.)
+- L'algorithme de signature (RSA avec SHA-256, ECDSA avec SHA-256, etc.)
+- Les messages d'erreur pour les signatures invalides
+
+## Cas d'usage
+
+- Vérifier un contrat signé numériquement avant de le contresigner
+- Auditer des documents signés pour confirmer qu'ils n'ont pas été altérés
+- Vérifier si un certificat a expiré depuis la signature du document
+- Valider des signatures par rapport au certificat racine de votre organisation
+- Examiner les détails de signature de documents administratifs ou juridiques
+
+## Conseils
+
+- Un certificat auto-signé ne signifie pas que la signature est invalide : cela signifie que l'identité du signataire ne peut pas être vérifiée par un tiers de confiance. C'est courant pour les documents internes.
+- Une couverture partielle n'indique pas toujours une falsification. De nombreux flux de travail PDF ajoutent des mises à jour incrémentielles (comme une deuxième signature) qui créent une couverture partielle.
+- Importez le certificat racine ou intermédiaire de votre organisation comme certificat de confiance pour obtenir la vérification de la chaîne de confiance.
+
+## Outils associés
+
+- [Signature numérique](./digital-sign-pdf) : signer des PDF avec votre propre certificat
+- [Aplatir un PDF](./flatten-pdf) : aplatir un PDF avant la signature pour empêcher les modifications postérieures
+- [Supprimer les métadonnées](./remove-metadata) : nettoyer un PDF avant d'appliquer une signature
diff --git a/docs/fr/tools/view-metadata.md b/docs/fr/tools/view-metadata.md
new file mode 100644
index 00000000..d87d4793
--- /dev/null
+++ b/docs/fr/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Afficher les métadonnées
+description: Inspectez toutes les propriétés de métadonnées d'un PDF, y compris les informations du document, les données XMP et les détails structurels.
+---
+
+# Afficher les métadonnées
+
+Examinez les propriétés cachées intégrées à un fichier PDF. L'outil affiche sous une forme lisible les informations du document (titre, auteur, dates), les métadonnées XMP, les dimensions des pages et d'autres données structurelles.
+
+## Fonctionnement
+
+1. Importez un fichier PDF.
+2. L'outil analyse immédiatement le fichier et affiche toutes les métadonnées disponibles dans des sections organisées.
+3. Consultez le dictionnaire d'informations du document, l'arborescence des métadonnées XMP et les propriétés structurelles.
+4. Aucune étape de traitement n'est nécessaire : les métadonnées s'affichent dès le chargement du fichier.
+
+## Fonctionnalités
+
+- Affiche les champs d'information standard du document : Titre, Auteur, Sujet, Mots-clés, Créateur, Producteur
+- Présente les dates de création et de modification dans un format lisible
+- Analyse et affiche l'arborescence XMP complète avec ses espaces de noms imbriqués
+- Convertit le format de date PDF (`D:20240101120000Z`) en dates lisibles
+- Organisé en sections repliables pour faciliter la navigation
+
+## Sections de métadonnées
+
+| Section | Contenu |
+| ---------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| **Informations du document** | Titre, Auteur, Sujet, Mots-clés, Créateur, Producteur, Date de création, Date de modification |
+| **Métadonnées XMP** | Arborescence complète de métadonnées au format XML, avec Dublin Core, XAP, PDF et espaces de noms personnalisés |
+| **Propriétés du document** | Nombre de pages, version PDF, taille du fichier, état du chiffrement |
+
+## Cas d'usage
+
+- Vérifier qui est l'auteur d'un PDF et quand il a été modifié pour la dernière fois
+- Vérifier que les métadonnées ont été correctement définies avant de publier un document
+- Auditer des PDF du point de vue de la confidentialité en contrôlant les informations personnelles intégrées
+- Identifier le logiciel utilisé pour créer ou modifier un PDF (via le champ Producteur)
+- Examiner les métadonnées XMP pour la conformité de la gestion des actifs numériques
+
+## Conseils
+
+- Les chaînes de date PDF qui commencent par `D:` sont automatiquement converties au format de votre fuseau horaire local.
+- Si des champs de métadonnées semblent vides, c'est que le créateur du PDF ne les a tout simplement pas renseignés. Tous les PDF ne contiennent pas de métadonnées riches.
+- Pour modifier les métadonnées après les avoir inspectées, utilisez [Modifier les métadonnées](./edit-metadata). Pour les supprimer entièrement, utilisez Supprimer les métadonnées.
+
+## Outils associés
+
+- [Modifier les métadonnées](./edit-metadata)
+- [Calques OCG du PDF](./pdf-layers)
+- [Comparer des PDF](./compare-pdfs)
diff --git a/docs/fr/tools/vsd-to-pdf.md b/docs/fr/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..356f31e4
--- /dev/null
+++ b/docs/fr/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD vers PDF
+description: Convertissez des diagrammes Microsoft Visio (VSD/VSDX) en PDF dans votre navigateur. Gratuit, privé, sans Visio.
+---
+
+# VSD vers PDF
+
+Convertissez des diagrammes Microsoft Visio en PDF sans installer Visio. Les fichiers VSD et VSDX contiennent des organigrammes, des diagrammes réseau et des plans d'étage que la plupart des gens ne peuvent pas ouvrir. Cet outil les restitue sous forme de PDF propres, lisibles sur n'importe quel appareil.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :------------ | :-------- | :-------------------------------------------- |
+| Visio binaire | `.vsd` | Ancien format Visio (Visio 2003 et antérieur) |
+| Visio XML | `.vsdx` | Format Visio moderne (Visio 2013 et suivants) |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos fichiers VSD ou VSDX. Les deux formats peuvent être mélangés dans un même lot.
+2. Vérifiez la liste des fichiers. Supprimez les entrées indésirables avec l'icône de corbeille, ou utilisez **Ajouter des fichiers** pour ajouter d'autres diagrammes.
+3. Cliquez sur **Convertir en PDF**. Le moteur basé sur LibreOffice se charge dans le navigateur et restitue chaque diagramme en PDF, en conservant les formes, les connecteurs, les étiquettes et la mise en page.
+4. Un diagramme unique est téléchargé directement en PDF. Plusieurs fichiers produisent une archive ZIP nommée `vsd-to-pdf.zip`.
+
+## Options
+
+Aucune configuration n'est nécessaire. Le convertisseur respecte la taille et l'orientation de page d'origine du document Visio.
+
+## Cas d'usage
+
+- Consulter les diagrammes Visio d'un collègue lorsque vous n'avez pas de licence Visio
+- Intégrer des diagrammes réseau ou d'architecture à la documentation d'un projet sous forme de PDF
+- Imprimer des organigrammes ou des flux de processus comme supports de réunion
+- Archiver d'anciens fichiers VSD issus de versions antérieures de Visio dans un format pérenne
+
+## Conseils
+
+- Les documents Visio de plusieurs pages produisent des PDF de plusieurs pages, chaque page Visio correspondant à une page PDF.
+- Les fichiers VSDX (le format moderne basé sur XML) se convertissent généralement avec plus de fidélité que les anciens fichiers binaires VSD.
+- Le moteur LibreOffice se charge une seule fois par session. Prévoyez une brève attente lors de la première conversion, puis des résultats plus rapides pour les fichiers suivants.
+
+## Outils associés
+
+- [ODG vers PDF](./odg-to-pdf)
+- [PUB vers PDF](./pub-to-pdf)
+- [PSD vers PDF](./psd-to-pdf)
diff --git a/docs/fr/tools/webp-to-pdf.md b/docs/fr/tools/webp-to-pdf.md
new file mode 100644
index 00000000..f4d314dc
--- /dev/null
+++ b/docs/fr/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP vers PDF
+description: Convertissez des images WebP au format PDF directement dans votre navigateur, avec une qualité de compression réglable.
+---
+
+# WebP vers PDF
+
+Convertissez le format d'image WebP de Google en PDF. C'est particulièrement utile lorsque vous avez téléchargé depuis le web des images au format WebP et que vous en avez besoin dans un format plus universellement accepté pour l'impression ou le partage.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :----- | :--------- |
+| WebP | `.webp` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos fichiers WebP.
+2. Vérifiez la liste des fichiers et supprimez ceux dont vous n'avez pas besoin.
+3. Sélectionnez un niveau de **qualité PDF**.
+4. Cliquez sur **Convertir en PDF**. Le résultat est téléchargé sous le nom `from_webps.pdf`.
+
+En interne, chaque image WebP est décodée via l'API canvas du navigateur, puis intégrée au PDF avec pdf-lib. La conversion fonctionne donc sur tout navigateur qui prend en charge le décodage WebP (tous les navigateurs modernes).
+
+## Options
+
+**Qualité PDF** contrôle la compression lors de l'intégration des images :
+
+- **Haute qualité** : conserve le plus de détails.
+- **Qualité moyenne** (par défaut) : résultat équilibré.
+- **Basse qualité** : taille de fichier la plus petite.
+
+## Cas d'usage
+
+- Convertir en PDF imprimable des images téléchargées sur le web et enregistrées en WebP
+- Regrouper dans une documentation des captures d'écran WebP issues de Chrome ou Edge
+- Créer un portfolio PDF à partir d'images exportées par des outils de design qui utilisent WebP par défaut
+- Archiver des images WebP dans un format lisible plus universellement
+
+## Conseils
+
+- Le WebP est décodé en PNG en interne avant l'intégration au PDF : les images WebP sans perte conservent donc leur qualité avec le réglage Haute qualité.
+- Si vous avez un mélange de WebP et d'autres formats d'image, utilisez plutôt l'outil [Images vers PDF](./image-to-pdf), qui accepte tout en une seule fois.
+
+## Outils associés
+
+- [Images vers PDF](./image-to-pdf)
+- [PNG vers PDF](./png-to-pdf)
+- [JPG vers PDF](./jpg-to-pdf)
diff --git a/docs/fr/tools/word-to-pdf.md b/docs/fr/tools/word-to-pdf.md
new file mode 100644
index 00000000..e4acf6f5
--- /dev/null
+++ b/docs/fr/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word vers PDF
+description: Convertissez des documents Word (DOC, DOCX), ODT et RTF en PDF dans votre navigateur, avec conservation complète de la mise en forme.
+---
+
+# Word vers PDF
+
+Convertissez des documents Microsoft Word et des formats compatibles en PDF. L'outil utilise un moteur LibreOffice exécuté dans le navigateur, qui gère les fichiers DOC, DOCX, ODT et RTF et conserve la mise en forme, les tableaux, les images, les en-têtes, les pieds de page et les styles dans le fichier de sortie.
+
+## Formats pris en charge
+
+| Format | Extensions |
+| :---------------- | :--------- |
+| Word (moderne) | `.docx` |
+| Word (ancien) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos documents Word. Vous pouvez sélectionner plusieurs fichiers à la fois.
+2. Vérifiez et gérez la liste des fichiers.
+3. Cliquez sur **Convertir en PDF**. Le moteur LibreOffice se charge à la première utilisation (un indicateur de progression montre l'état de l'initialisation), puis chaque fichier est converti.
+4. Un fichier unique est téléchargé directement en PDF. Plusieurs fichiers sont regroupés dans `word-converted.zip`.
+
+## Options
+
+Cet outil n'a aucun réglage supplémentaire. Le moteur LibreOffice produit le résultat avec son profil d'export PDF par défaut.
+
+## Résultat
+
+| Nombre de fichiers | Résultat |
+| :----------------- | :------------------------------------------------------------------- |
+| 1 fichier | Téléchargement d'un seul PDF (nom d'origine avec l'extension `.pdf`) |
+| 2 fichiers ou plus | Archive ZIP (`word-converted.zip`) contenant un PDF par fichier |
+
+## Cas d'usage
+
+- Convertir un CV ou une lettre de motivation de DOCX en PDF avant de postuler à un emploi
+- Convertir par lots une série de contrats ou de propositions en PDF pour une livraison client
+- Transformer d'anciens fichiers `.doc` en PDF modernes pour un archivage à long terme
+- Convertir en PDF des documents collaboratifs issus de Google Docs (exportés en DOCX)
+- Produire des PDF prêts à imprimer à partir de modèles Word utilisés pour la génération automatique de documents
+
+## Conseils
+
+- Le moteur LibreOffice est téléchargé une fois par session, puis mis en cache. Prévoyez quelques secondes de chargement lors de la première conversion, les suivantes étant beaucoup plus rapides.
+- Les mises en forme complexes (macros, contrôles ActiveX, SmartArt avancés) peuvent ne pas être converties parfaitement. Les éléments standards d'un document (texte, tableaux, images, en-têtes, notes de bas de page) sont convertis de façon fiable.
+- Comme cet outil accepte aussi l'ODT et le RTF, vous pouvez l'utiliser comme convertisseur unique pour tous les formats de traitement de texte.
+
+## Outils associés
+
+- [ODT vers PDF](./odt-to-pdf)
+- [RTF vers PDF](./rtf-to-pdf)
+- [Excel vers PDF](./excel-to-pdf)
+- [PowerPoint vers PDF](./powerpoint-to-pdf)
diff --git a/docs/fr/tools/wpd-to-pdf.md b/docs/fr/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..5be2e511
--- /dev/null
+++ b/docs/fr/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD vers PDF
+description: Convertissez des documents WordPerfect (WPD) en PDF dans votre navigateur avec LibreOffice. Gratuit et privé.
+---
+
+# WPD vers PDF
+
+Convertissez des documents Corel WordPerfect en fichiers PDF. Le WPD a longtemps été le format de traitement de texte dominant dans les cabinets juridiques et les administrations. Si vous avez d'anciens fichiers WordPerfect que les logiciels modernes refusent d'ouvrir, cet outil les ramène à la vie sous forme de PDF standards.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :---------- | :-------- | :--------------------------------------------- |
+| WordPerfect | `.wpd` | Toutes les principales versions de WordPerfect |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos fichiers WPD. Vous pouvez sélectionner plusieurs fichiers à la fois.
+2. Vérifiez la liste des fichiers. Supprimez les fichiers indésirables avec l'icône de corbeille, ou utilisez **Ajouter des fichiers** pour ajouter d'autres documents.
+3. Cliquez sur **Convertir en PDF**. L'outil charge dans votre navigateur un moteur de conversion basé sur LibreOffice, qui analyse le format WPD et produit un PDF.
+4. Un fichier unique est téléchargé directement en PDF. Les conversions par lots produisent une archive ZIP nommée `wpd-to-pdf.zip`.
+
+## Options
+
+Aucune configuration n'est nécessaire. Le moteur LibreOffice gère automatiquement la mise en forme, les polices et la mise en page WPD.
+
+## Cas d'usage
+
+- Ouvrir des documents juridiques vieux de plusieurs décennies rédigés dans WordPerfect
+- Convertir des dossiers administratifs archivés du format WPD vers un format moderne
+- Migrer une ancienne bibliothèque de documents WordPerfect vers le PDF pour un stockage à long terme
+- Partager des fichiers WPD avec des destinataires qui n'ont pas Corel WordPerfect installé
+
+## Conseils
+
+- Le moteur LibreOffice se charge à la première utilisation, ce qui prend un moment. Les conversions suivantes de la même session sont plus rapides.
+- Les macros WPD complexes et les codes révélés ne sont pas conservés, mais la mise en page visuelle, le contenu textuel et la mise en forme de base sont repris dans le PDF.
+
+## Outils associés
+
+- [WPS vers PDF](./wps-to-pdf)
+- [ODG vers PDF](./odg-to-pdf)
diff --git a/docs/fr/tools/wps-to-pdf.md b/docs/fr/tools/wps-to-pdf.md
new file mode 100644
index 00000000..71c49b6b
--- /dev/null
+++ b/docs/fr/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS vers PDF
+description: Convertissez des documents Microsoft Works (WPS) en PDF dans votre navigateur. Gratuit, sans inscription, entièrement privé.
+---
+
+# WPS vers PDF
+
+Convertissez des fichiers de traitement de texte Microsoft Works en PDF. Microsoft Works était fourni avec les PC grand public à la fin des années 1990 et dans les années 2000, et de nombreux fichiers WPS dorment encore sur d'anciens disques durs et dans des archives d'e-mails. Cet outil les ouvre dans le navigateur et produit des PDF propres.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :-------------- | :-------- | :------------------------------------------------- |
+| Microsoft Works | `.wps` | Fichiers de traitement de texte de Microsoft Works |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos fichiers WPS. Plusieurs fichiers sont acceptés.
+2. Vérifiez la liste des fichiers. Utilisez l'icône de corbeille pour supprimer des fichiers individuels, ou cliquez sur **Ajouter des fichiers** pour agrandir votre lot.
+3. Cliquez sur **Convertir en PDF**. Un moteur basé sur LibreOffice se charge dans le navigateur et convertit chaque document WPS en PDF.
+4. Un fichier unique est téléchargé directement en PDF. Plusieurs fichiers sont regroupés dans une archive ZIP nommée `wps-to-pdf.zip`.
+
+## Options
+
+Aucun réglage supplémentaire n'est nécessaire. Le convertisseur gère le texte, la mise en forme de base et les images intégrées du fichier WPS.
+
+## Cas d'usage
+
+- Récupérer d'anciens documents scolaires ou professionnels enregistrés au format Microsoft Works
+- Ouvrir des pièces jointes WPS lorsque Microsoft Works n'est pas installé
+- Convertir une archive de fichiers WPS pour la migrer vers un système documentaire moderne
+- Imprimer d'anciens documents que les traitements de texte actuels ne savent pas ouvrir
+
+## Conseils
+
+- Ne confondez pas les fichiers `.wps` de Microsoft Works avec les fichiers WPS Office. Cet outil est destiné uniquement à l'ancien format Microsoft Works.
+- Le moteur LibreOffice met un moment à se charger à la première utilisation. Une fois chargé, les conversions suivantes de la même session sont plus rapides.
+
+## Outils associés
+
+- [WPD vers PDF](./wpd-to-pdf)
+- [PUB vers PDF](./pub-to-pdf)
diff --git a/docs/fr/tools/xml-to-pdf.md b/docs/fr/tools/xml-to-pdf.md
new file mode 100644
index 00000000..4dc74ac7
--- /dev/null
+++ b/docs/fr/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML vers PDF
+description: Convertissez des fichiers XML en documents PDF structurés dans votre navigateur. Gratuit, privé, sans traitement côté serveur.
+---
+
+# XML vers PDF
+
+Convertissez des fichiers de données XML en documents PDF lisibles et structurés. Le XML brut est puissant mais difficile à lire pour un humain. Cet outil analyse l'arborescence XML, repère les structures de données répétitives et les restitue sous forme de tableaux et de sections mis en forme dans un PDF A4 en paysage.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----- | :-------- | :--------------------------- |
+| XML | `.xml` | Tout document XML bien formé |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos fichiers XML. Plusieurs fichiers peuvent être traités dans un même lot.
+2. Vérifiez la liste des fichiers. Supprimez les fichiers indésirables avec l'icône de corbeille, ou cliquez sur **Ajouter des fichiers** pour en ajouter d'autres.
+3. Cliquez sur **Convertir en PDF**. L'outil analyse la structure XML avec le DOMParser intégré au navigateur, étudie la hiérarchie des données et la restitue en PDF avec jsPDF et une mise en forme de tableaux automatique.
+4. Un fichier unique est téléchargé en PDF. Plusieurs conversions sont regroupées dans `xml-to-pdf.zip`.
+
+## Options
+
+Aucune configuration manuelle n'est nécessaire. Le convertisseur détecte automatiquement la structure XML et choisit des mises en page de tableaux adaptées. Le résultat utilise l'orientation A4 paysage pour accueillir les jeux de données larges.
+
+## Cas d'usage
+
+- Transformer des exports de données XML issus de bases de données ou d'API en rapports imprimables
+- Créer des résumés lisibles à partir de fichiers de configuration XML
+- Convertir des factures ou des journaux de transactions XML en PDF pour la conservation
+- Rendre lisibles sous forme de document des sitemaps XML ou des flux RSS
+
+## Conseils
+
+- Le XML doit être bien formé. Si l'analyseur rencontre des erreurs de syntaxe, la conversion échoue avec un message d'erreur descriptif indiquant le problème.
+- Les structures XML profondément imbriquées sont aplaties en tableaux. Pour de meilleurs résultats, les données doivent comporter des éléments frères répétitifs avec des éléments enfants cohérents.
+- Des mises à jour de progression s'affichent pendant la conversion et indiquent chaque phase : lecture, analyse, étude et rendu.
+
+## Outils associés
+
+- [FB2 vers PDF](./fb2-to-pdf)
+- [XPS vers PDF](./xps-to-pdf)
+- [E-mail vers PDF](./email-to-pdf)
diff --git a/docs/fr/tools/xps-to-pdf.md b/docs/fr/tools/xps-to-pdf.md
new file mode 100644
index 00000000..8911d433
--- /dev/null
+++ b/docs/fr/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS vers PDF
+description: Convertissez des documents XPS et OXPS au format PDF dans votre navigateur. Sans envoi de fichier, sans inscription, entièrement privé.
+---
+
+# XPS vers PDF
+
+Convertissez des documents Microsoft XPS et OXPS en fichiers PDF standards. XPS (XML Paper Specification) était la réponse de Microsoft au PDF, mais sa prise en charge a diminué sur les différentes plateformes. Cet outil rend à nouveau ces documents lisibles par tous.
+
+## Formats pris en charge
+
+| Format | Extension | Remarques |
+| :----- | :-------- | :----------------------------------------- |
+| XPS | `.xps` | Format XPS d'origine de Microsoft |
+| OXPS | `.oxps` | Open XPS, la variante de la norme ECMA-388 |
+
+## Fonctionnement
+
+1. Cliquez sur la zone d'importation ou glissez-déposez vos fichiers XPS/OXPS. Vous pouvez sélectionner plusieurs fichiers à la fois.
+2. Vérifiez la liste des fichiers. Supprimez des fichiers individuels avec l'icône de corbeille, ou cliquez sur **Ajouter des fichiers** pour ajouter d'autres documents.
+3. Cliquez sur **Convertir en PDF**. Le moteur PyMuPDF traite chaque document localement dans votre navigateur.
+4. Un fichier unique est téléchargé directement en PDF. Plusieurs fichiers sont regroupés dans une archive ZIP nommée `xps-converted.zip`.
+
+## Options
+
+Cet outil effectue une conversion de format directe, sans configuration supplémentaire. Le résultat conserve les dimensions de page d'origine, les graphiques vectoriels, les polices et les images de la source XPS.
+
+## Cas d'usage
+
+- Ouvrir des fichiers XPS reçus de systèmes Windows plus anciens qui utilisaient le pilote d'impression XPS par défaut
+- Convertir des documents OXPS de Windows 10/11 pour les partager avec des utilisateurs de macOS ou de Linux
+- Archiver d'anciens fichiers XPS dans un format plus largement pris en charge
+- Rendre accessibles à des destinataires externes des documents administratifs ou d'entreprise au format XPS
+
+## Conseils
+
+- Les extensions `.xps` et `.oxps` sont gérées automatiquement : vous pouvez les mélanger dans un même lot.
+- Si le fichier XPS d'origine a été créé avec un pilote d'impression haute résolution, le PDF obtenu conserve cette qualité. Aucun rééchantillonnage n'a lieu.
+
+## Outils associés
+
+- [Word vers PDF](./word-to-pdf)
+- [XML vers PDF](./xml-to-pdf)
diff --git a/docs/id/contributing.md b/docs/id/contributing.md
new file mode 100644
index 00000000..19b118ba
--- /dev/null
+++ b/docs/id/contributing.md
@@ -0,0 +1,136 @@
+# Berkontribusi
+
+Terima kasih atas minat Anda untuk berkontribusi pada BentoPDF! Panduan ini akan membantu Anda memulai.
+
+## Memulai
+
+### Prasyarat
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Penyiapan
+
+```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
+```
+
+## Struktur Proyek
+
+```
+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
+```
+
+## Menambahkan Alat Baru
+
+### Langkah 1: Buat File Logika
+
+Buat `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
+});
+```
+
+### Langkah 2: Buat Halaman HTML
+
+Buat `src/pages/your-tool.html` dengan mengikuti templat alat yang sudah ada.
+
+### Langkah 3: Daftarkan Alat
+
+Tambahkan ke `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.',
+}
+```
+
+### Langkah 4: Tambahkan ke Konfigurasi Build
+
+Tambahkan halaman ke `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Langkah 5: Tambahkan Terjemahan
+
+Tambahkan entri ke semua file locale di `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Gaya Kode
+
+- Gunakan TypeScript untuk semua kode baru
+- Ikuti pola yang sudah ada agar tetap konsisten
+- Jalankan `npm run format` sebelum commit
+- Tanpa komentar di kode produksi (komentar dihapus saat build)
+
+## Proses Pull Request
+
+1. Buat branch fitur: `git checkout -b feature/your-feature`
+2. Lakukan perubahan Anda
+3. Uji secara menyeluruh: `npm run build`
+4. Kirim PR dengan deskripsi yang jelas
+
+## Terjemahan
+
+Lihat [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) untuk menambahkan bahasa baru.
+
+## Perjanjian Lisensi Kontributor
+
+Sebelum PR Anda dapat digabungkan, Anda perlu menandatangani CLA kami:
+
+- [Individual CLA (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [Corporate CLA (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Mendapatkan Bantuan
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Komunitas Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Lisensi
+
+BentoPDF berlisensi ganda:
+
+- **AGPL-3.0** untuk proyek sumber terbuka yang membagikan seluruh kode sumbernya secara publik
+- **Lisensi Komersial** untuk aplikasi proprietari/sumber tertutup - [Dapatkan Lisensi Seumur Hidup seharga $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Dengan berkontribusi, Anda menyetujui bahwa kontribusi Anda dilisensikan berdasarkan ketentuan ini.
diff --git a/docs/id/getting-started.md b/docs/id/getting-started.md
new file mode 100644
index 00000000..90c1fe13
--- /dev/null
+++ b/docs/id/getting-started.md
@@ -0,0 +1,80 @@
+# Memulai
+
+Selamat datang di BentoPDF! Panduan ini akan membantu Anda mulai dengan cepat.
+
+## Apa itu BentoPDF?
+
+BentoPDF adalah toolkit PDF gratis, sumber terbuka, dan mengutamakan privasi yang berjalan **sepenuhnya di browser Anda**. File Anda tidak pernah meninggalkan perangkat Anda, semua pemrosesan terjadi secara lokal menggunakan teknologi WebAssembly (WASM).
+
+## Mulai Cepat
+
+### Opsi 1: Gunakan Versi Hosting
+
+Kunjungi [bentopdf.com](https://www.bentopdf.com) untuk langsung menggunakan BentoPDF, tanpa perlu instalasi.
+
+### Opsi 2: Hosting Mandiri dengan Docker
+
+> [!IMPORTANT]
+> Konversi file Office memerlukan `SharedArrayBuffer`, yang membutuhkan keduanya:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - konteks aman (secure context)
+>
+> `http://localhost` berfungsi untuk pengujian lokal karena browser menganggap loopback tepercaya. `http://192.168.x.x` atau IP LAN lainnya biasanya tidak, sehingga konversi Word/Excel/PowerPoint memerlukan HTTPS saat diakses dari perangkat lain di jaringan Anda.
+
+```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 tersedia dalam dua build: **Self-Hosted build** (`bentopdf-simple`, digunakan di atas) untuk penerapan internal/tim/organisasi, dan **Commercial build** (`bentopdf:latest`) yang digunakan oleh bentopdf.com sendiri dan oleh pemegang lisensi komersial yang menjalankan penerapan publik. Keduanya menyertakan alat PDF yang sama, Commercial build menambahkan hero, FAQ, testimoni, dan footer bentopdf.com. Jika ragu, gunakan Self-Hosted build.
+
+Lalu buka `http://localhost:3000` di browser Anda.
+
+> [!NOTE]
+> Jika Anda menyiapkan penerapan OCR air-gapped, Anda harus menghosting font lapisan teks OCR secara internal, selain worker Tesseract, runtime inti, dan file traineddata. Penyiapan lengkapnya didokumentasikan di [Hosting Mandiri](/id/self-hosting/), termasuk `VITE_OCR_FONT_BASE_URL` dan direktori `ocr-fonts/` bawaan.
+
+### Opsi 3: Build dari Sumber
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Sekilas Fitur
+
+| Kategori | Alat |
+| --------------------- | ------------------------------------------------------------------ |
+| **Konversi ke PDF** | Word, Excel, PowerPoint, Gambar, Markdown, EPUB, MOBI, dan lainnya |
+| **Konversi dari PDF** | JPG, PNG, Teks, Excel, SVG, dan lainnya |
+| **Edit & Anotasi** | Tanda Tangan, Sorot, Redaksi, Isi Formulir, Tambah Stempel |
+| **Atur** | Gabung, Pisah, Putar, Hapus Halaman, Urutkan Ulang |
+| **Optimalkan** | Kompres, Perbaiki, Ratakan, OCR |
+| **Keamanan** | Enkripsi, Dekripsi, Hapus Pembatasan |
+
+## Dukungan Browser
+
+BentoPDF bekerja paling baik di browser modern:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Langkah Selanjutnya
+
+- [Jelajahi semua alat](/id/tools/)
+- [Hosting mandiri BentoPDF](/id/self-hosting/)
+- [Berkontribusi pada proyek](/id/contributing)
diff --git a/docs/id/index.md b/docs/id/index.md
new file mode 100644
index 00000000..65d0bc72
--- /dev/null
+++ b/docs/id/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Alat PDF Gratis dan Sumber Terbuka'
+ tagline: Proses PDF sepenuhnya di browser Anda. Tanpa unggahan. Tanpa server. Privasi penuh.
+ actions:
+ - theme: brand
+ text: Mulai
+ link: /id/getting-started
+ - theme: alt
+ text: Lihat Alat
+ link: /id/tools/
+ - theme: alt
+ text: Hosting Mandiri
+ link: /id/self-hosting/
+ - theme: alt
+ text: Lisensi Komersial
+ link: /id/licensing
+
+features:
+ - icon: 🔒
+ title: 100% Privat
+ details: File Anda tidak pernah meninggalkan perangkat Anda. Semua pemrosesan terjadi secara lokal di browser Anda menggunakan WebAssembly.
+ - icon: ⚡
+ title: Cepat & Gratis
+ details: Tanpa pendaftaran, tanpa batas, tanpa watermark. Proses PDF tanpa batas secara gratis, selamanya.
+ - icon: 🛠️
+ title: 50+ Alat
+ details: Konversi, edit, gabung, pisah, kompres, tanda tangan, OCR, dan lainnya. Semua yang Anda butuhkan di satu tempat.
+
+ - icon: 🌐
+ title: Dapat Dihosting Sendiri
+ details: Terapkan di infrastruktur Anda sendiri. Docker, Vercel, Netlify, AWS, atau lingkungan air-gapped sepenuhnya dengan worker OCR, data bahasa, dan font lapisan teks yang dihosting sendiri.
+---
+
+## OCR Offline
+
+Jika Anda menghosting BentoPDF sendiri di lingkungan air-gapped atau offline, OCR membutuhkan lebih dari sekadar worker Tesseract dan file traineddata. Hasil PDF yang dapat dicari juga mengharuskan font lapisan teks OCR disajikan secara internal.
+Lihat [Hosting Mandiri](/id/self-hosting/) untuk penyiapan lengkap, termasuk `VITE_OCR_FONT_BASE_URL`, direktori `ocr-fonts/` bawaan, dan alur kerja air-gap terbaru.
diff --git a/docs/id/licensing.md b/docs/id/licensing.md
new file mode 100644
index 00000000..9f9d22be
--- /dev/null
+++ b/docs/id/licensing.md
@@ -0,0 +1,110 @@
+# 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](/id/self-hosting/#konfigurasi-wasm-komponen-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/id/self-hosting/apache.md b/docs/id/self-hosting/apache.md
new file mode 100644
index 00000000..773f607d
--- /dev/null
+++ b/docs/id/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Deploy dengan Apache
+
+Hosting BentoPDF menggunakan Apache HTTP Server.
+
+## Prasyarat
+
+- Apache 2.4+
+- mod_rewrite diaktifkan
+- Sertifikat SSL (disarankan)
+
+## Langkah 1: Build Proyek
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Untuk menyesuaikan branding, atur environment variable sebelum build:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Langkah 2: Salin File
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Langkah 3: Konfigurasi Apache
+
+Buat `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Langkah 4: .htaccess untuk Routing
+
+Buat `/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
+```
+
+## Langkah 5: Aktifkan Modul yang Diperlukan
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Langkah 6: Aktifkan Situs
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Deploy di Subdirektori
+
+Untuk hosting di `/pdf/`:
+
+1. Build dengan base URL:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Perbarui `.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
+```
+
+## Pemecahan Masalah
+
+### Error WASM 404
+
+Pastikan MIME type sudah dikonfigurasi:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Tanda Tangani PDF atau Form Filler Menampilkan Penampil Kosong (error MIME `.mjs`)
+
+Jika konsol browser menampilkan:
+
+```
+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.
+```
+
+dan permintaan yang gagal berakhir dengan `.mjs`, konfigurasi Apache Anda tidak memiliki pemetaan `.mjs → application/javascript`. Viewer PDF bawaan menyertakan file ES module dengan ekstensi `.mjs`, dan `mime.types` bawaan Apache tidak memuatnya secara default.
+
+Tambahkan ke VirtualHost atau `.htaccess` Anda:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Lalu muat ulang Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Untuk memastikan: di DevTools browser → tab Network, temukan permintaan `.mjs` yang gagal dan periksa header respons `Content-Type`. Nilainya sekarang harus `application/javascript`, bukan `application/octet-stream`.
+
+### Rewrite Tidak Berfungsi
+
+Periksa bahwa mod_rewrite sudah diaktifkan:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Word/ODT/Excel ke PDF Tidak Berfungsi
+
+LibreOffice WASM memerlukan `SharedArrayBuffer`, yang membutuhkan header berikut:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Ini juga memerlukan konteks aman (secure context). `http://localhost` berfungsi untuk pengujian lokal, tetapi `http://192.168.x.x` atau IP LAN lainnya biasanya memerlukan HTTPS. Jika header sudah ada tetapi `window.crossOriginIsolated` masih `false`, periksa apakah halaman dibuka melalui HTTP biasa pada origin non-loopback.
+
+File `.wasm.gz` dan `.data.gz` yang sudah terkompresi juga memerlukan `Content-Encoding` yang benar:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Pastikan `mod_headers` sudah diaktifkan: `sudo a2enmod headers`
+
+### Izin Ditolak
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/id/self-hosting/aws.md b/docs/id/self-hosting/aws.md
new file mode 100644
index 00000000..1e89647c
--- /dev/null
+++ b/docs/id/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Deploy ke AWS S3 + CloudFront
+
+Hosting BentoPDF di AWS untuk kontrol dan skalabilitas maksimum.
+
+## Arsitektur
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Langkah 1: Buat Bucket S3
+
+```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
+```
+
+## Langkah 2: Build dan Unggah
+
+```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
+```
+
+## Langkah 3: Buat Distribusi CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Atau gunakan AWS Console:
+
+1. Buka CloudFront → Create distribution
+2. Origin domain: pilih bucket S3 Anda
+3. Aktifkan "Origin Access Control"
+4. Default root object: `index.html`
+5. Buat distribusi
+
+## Langkah 3b: Response Headers Policy (Diperlukan untuk LibreOffice WASM)
+
+Konversi berbasis LibreOffice (Word, Excel, PowerPoint ke PDF) memerlukan `SharedArrayBuffer`, yang membutuhkan header respons tertentu. Buat CloudFront Response Headers Policy:
+
+1. Buka CloudFront → Policies → Response headers
+2. Buat kebijakan kustom dengan header berikut:
+
+| Header | Nilai |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Lampirkan kebijakan ke default cache behavior distribusi Anda
+
+Atau melalui 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}
+ ]
+ }
+ }'
+```
+
+## Langkah 3c: Metadata S3 untuk File WASM yang Sudah Terkompresi
+
+File LibreOffice WASM sudah terkompresi (`.wasm.gz`, `.data.gz`). Atur Content-Type dan Content-Encoding yang benar agar browser dapat mendekompresinya:
+
+```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 Penting
+Tanpa response headers policy, `SharedArrayBuffer` tidak tersedia dan konversi LibreOffice WASM akan macet di sekitar 55%. Tanpa Content-Encoding yang benar pada file `.gz`, browser menerima byte gzip mentah dan kompilasi WASM gagal.
+:::
+
+## Langkah 4: Bucket Policy S3
+
+Izinkan CloudFront mengakses 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Langkah 5: Halaman Error Kustom
+
+Konfigurasikan 404 agar mengembalikan `index.html` untuk routing SPA:
+
+1. CloudFront → Error pages
+2. Buat custom error response:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Perkiraan Biaya
+
+| Sumber Daya | Perkiraan Biaya |
+| -------------------------- | --------------- |
+| S3 Storage (~500MB) | ~$0.01/bulan |
+| CloudFront (1TB transfer) | ~$85/bulan |
+| CloudFront (10GB transfer) | ~$0.85/bulan |
+
+::: tip
+Gunakan S3 Intelligent Tiering untuk mengoptimalkan biaya pada file yang jarang diakses.
+:::
+
+## Otomatisasi dengan 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"
+ }
+}
+```
diff --git a/docs/id/self-hosting/cloudflare.md b/docs/id/self-hosting/cloudflare.md
new file mode 100644
index 00000000..9ea0ab6e
--- /dev/null
+++ b/docs/id/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Deploy ke Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) menawarkan hosting situs statis global yang cepat dengan bandwidth tak terbatas.
+
+## Deploy Cepat
+
+1. Buka [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Klik "Create a project"
+3. Hubungkan repositori GitHub Anda
+
+## Konfigurasi Build
+
+| Pengaturan | Nilai |
+| ---------------------- | --------------- |
+| Framework preset | Tidak ada |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Environment Variable
+
+Tambahkan ini di Settings → Environment variables:
+
+| Variabel | Nilai |
+| ----------------------- | ----------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (opsional) |
+| `VITE_BRAND_NAME` | Nama merek kustom (opsional) |
+| `VITE_BRAND_LOGO` | Path logo relatif terhadap `public/` (opsional) |
+| `VITE_FOOTER_TEXT` | Teks footer/hak cipta kustom (opsional) |
+| `VITE_DEFAULT_LANGUAGE` | Bahasa UI default, mis. `fr` (opsional) |
+
+## File Konfigurasi
+
+Buat `_headers` di folder `public` Anda:
+
+```
+# 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 Penting
+Header `Cross-Origin-Embedder-Policy` dan `Cross-Origin-Opener-Policy` diperlukan untuk konversi Word/ODT/Excel/PowerPoint ke PDF. Tanpa keduanya, `SharedArrayBuffer` tidak tersedia dan mesin LibreOffice WASM gagal diinisialisasi.
+:::
+
+Buat `_redirects` untuk routing SPA:
+
+```
+/* /index.html 200
+```
+
+## Domain Kustom
+
+1. Buka proyek Pages Anda
+2. Klik "Custom domains"
+3. Tambahkan domain Anda
+4. Cloudflare akan mengonfigurasi DNS secara otomatis jika domain berada di Cloudflare
+
+## Keunggulan
+
+- **Bandwidth tak terbatas gratis**
+- **CDN global** dengan 300+ lokasi edge
+- **HTTPS otomatis**
+- **Deployment pratinjau** untuk pull request
+- **Build cepat**
+
+## Pemecahan Masalah
+
+### Unggahan File Besar
+
+Cloudflare Pages mendukung file hingga 25 MB. Modul WASM seharusnya aman, tetapi jika Anda mencapai batas, pertimbangkan:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Batas Ukuran Worker
+
+Jika menggunakan Cloudflare Workers untuk routing lanjutan, perhatikan batas 1 MB untuk paket gratis.
+
+## Worker CORS Proxy (Untuk Tanda Tangan Digital)
+
+Alat Tanda Tangan Digital memerlukan CORS proxy untuk mengambil rantai sertifikat. Deploy worker yang disertakan:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Fitur Keamanan
+
+| Fitur | Deskripsi |
+| ------------------------- | ----------------------------------- |
+| **Pembatasan URL** | Hanya URL sertifikat yang diizinkan |
+| **Batas Ukuran File** | Maks 10MB per permintaan |
+| **Pembatasan Laju** | 60 req/IP/menit (memerlukan KV) |
+| **Pemblokiran IP Privat** | Memblokir localhost, IP internal |
+
+### Aktifkan Pembatasan Laju
+
+```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
+```
+
+### Build dengan URL Proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Atau dengan 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 .
+```
+
+> **Catatan:** Lihat [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) untuk penyiapan tanda tangan HMAC.
diff --git a/docs/id/self-hosting/cors-proxy.md b/docs/id/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..df1072bc
--- /dev/null
+++ b/docs/id/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS Proxy untuk Pengambilan Sertifikat
+
+Alat tanda tangan digital menggunakan CORS proxy untuk mengambil sertifikat penerbit dari Certificate Authority (CA) eksternal. Ini diperlukan karena banyak server CA tidak menyertakan header CORS dalam responsnya, sehingga pengambilan langsung dari browser tidak dapat dilakukan.
+
+Selain itu, banyak server CA menyajikan sertifikat melalui HTTP biasa. Saat instans BentoPDF Anda dihosting melalui HTTPS, browser memblokir permintaan HTTP ini (kebijakan mixed content). CORS proxy mengatasi kedua masalah tersebut dengan mengarahkan permintaan melalui endpoint HTTPS dengan header yang tepat.
+
+## Cara Kerjanya
+
+Saat menandatangani PDF dengan sertifikat:
+
+1. Pustaka `zgapdfsigner` mencoba membangun rantai sertifikat yang lengkap
+2. Pustaka ini mengambil sertifikat penerbit dari URL yang tertanam di ekstensi AIA (Authority Information Access) sertifikat Anda
+3. Permintaan ini diarahkan melalui CORS proxy yang menambahkan header `Access-Control-Allow-Origin` yang diperlukan
+4. Proxy mengembalikan data sertifikat ke browser
+
+## Hosting Mandiri CORS Proxy
+
+Jika Anda menghosting BentoPDF sendiri, Anda perlu men-deploy CORS proxy sendiri agar tanda tangan digital dapat bekerja dengan sertifikat yang memerlukan pengambilan rantai.
+
+### Opsi 1: Cloudflare Workers (Disarankan)
+
+1. **Instal Wrangler CLI**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Login ke Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clone BentoPDF dan perbarui origin yang diizinkan**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Buka `cors-proxy-worker.js` dan ubah array `ALLOWED_ORIGINS` ke domain Anda:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Penting
+ Tanpa perubahan ini, proxy akan menolak semua permintaan dari situs Anda dengan error **403 Forbidden**. Secara default hanya permintaan dari `bentopdf.com` yang diizinkan.
+ :::
+
+4. **Deploy proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Catat URL worker Anda (mis., `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Build ulang BentoPDF dengan URL proxy**:
+
+ Jika menggunakan 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 .
+ ```
+
+ Jika build dari sumber:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Opsi 2: Proxy Backend Kustom
+
+Anda juga dapat membuat endpoint proxy sendiri. Persyaratannya:
+
+1. Menerima permintaan GET dengan parameter query `url`
+2. Mengambil URL tersebut dari server Anda (tanpa pembatasan CORS di sisi server)
+3. Mengembalikan respons dengan header berikut:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Contoh implementasi 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' });
+ }
+});
+```
+
+## Pertimbangan Keamanan
+
+Cloudflare Worker yang disertakan memiliki beberapa langkah keamanan:
+
+| Fitur | Deskripsi |
+| ------------------------- | ------------------------------------------------------------------------------------------------ |
+| **Validasi Origin** | Hanya mengizinkan permintaan dari domain yang tercantum di `ALLOWED_ORIGINS` |
+| **Pembatasan URL** | Hanya mengizinkan URL sertifikat (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Pemblokiran IP Privat** | Memblokir rentang privat IPv4/IPv6, link-local, loopback, IP desimal, dan metadata cloud |
+| **Keamanan Content-Type** | Hanya mengembalikan MIME type sertifikat yang aman, memblokir injeksi content-type dari upstream |
+| **Batas Ukuran File** | Men-stream respons dengan batas 10MB, menghentikan unduhan jika terlampaui |
+| **Pembatasan Laju** | 60 permintaan per menit per IP atau IPv6 /64 (memerlukan KV, tetap lolos saat KV error) |
+| **Tanda Tangan HMAC** | Penandatanganan sisi klien opsional (mencegah penyalahgunaan biasa) |
+
+### DNS rebinding (hosting mandiri di luar Cloudflare)
+
+Worker menolak setiap URL yang me-resolve ke IP privat atau internal. Worker tidak dapat memakai allowlist host tetap, karena URL rantai sertifikat menunjuk ke CA mana pun yang menerbitkan sertifikat (FNMT, CA korporat, dan seterusnya), sehingga tujuannya tidak diketahui sebelumnya. Hal ini menyisakan celah rebinding kecil: seseorang yang menjalankan DNS untuk domainnya sendiri dapat memberikan IP publik pada pemeriksaan keamanan dan IP privat pada permintaan sebenarnya beberapa saat kemudian.
+
+Di Cloudflare hal ini tidak dapat dieksploitasi: Workers tidak dapat menjangkau IP privat atau endpoint metadata `169.254.169.254`, sehingga rebind tidak mengenai apa pun. Hanya saja, jangan beri worker jalan masuk: jangan pasang Tunnel, Service, atau binding jaringan privat (worker hanya memerlukan `RATE_LIMIT_KV`).
+
+Jika Anda menjalankannya di luar Cloudflare (workerd, Node, dan sejenisnya) di dalam VPC, runtime _dapat_ menjangkau IP internal. Pasang firewall egress di depannya dan blokir rentang privat: `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`, beserta padanan IPv6-nya. Kode aplikasi tidak dapat menegakkannya setelah Anda berada di luar Cloudflare.
+
+## Menonaktifkan Proxy
+
+Jika Anda tidak ingin menggunakan CORS proxy, atur environment variable ke string kosong:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Catatan**: Tanpa proxy, penandatanganan dengan sertifikat yang memerlukan pengambilan rantai eksternal (seperti FNMT atau beberapa CA korporat) akan gagal dengan error "Failed to fetch".
+
+## Pemecahan Masalah
+
+### "Signing error: TypeError: Failed to fetch"
+
+Ini biasanya berarti salah satu dari:
+
+1. **CORS proxy belum dikonfigurasi**: Atur `VITE_CORS_PROXY_URL` dan build ulang
+2. **Mixed content diblokir**: Situs Anda HTTPS tetapi URL penerbit sertifikat adalah HTTP. CORS proxy mengatasi hal ini.
+3. **CORS proxy menolak origin Anda**: Periksa apakah domain Anda ada di array `ALLOWED_ORIGINS` pada `cors-proxy-worker.js`
+
+### "403 Forbidden" dari proxy
+
+Domain Anda tidak ada di daftar `ALLOWED_ORIGINS`. Edit `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Lalu deploy ulang: `npx wrangler deploy`
+
+### Menguji proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Sertifikat yang Berfungsi Tanpa Proxy
+
+Beberapa sertifikat menyertakan rantai lengkap di file P12/PFX dan tidak memerlukan pengambilan eksternal:
+
+- Sertifikat self-signed
+- Beberapa CA komersial yang menyertakan sertifikat perantara
+- Sertifikat yang Anda rakit sendiri dengan rantai lengkap
diff --git a/docs/id/self-hosting/docker.md b/docs/id/self-hosting/docker.md
new file mode 100644
index 00000000..b3930ef0
--- /dev/null
+++ b/docs/id/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Deploy dengan Docker / Podman
+
+Cara termudah untuk menghosting BentoPDF sendiri di lingkungan produksi.
+
+> [!IMPORTANT]
+> **Header yang Diperlukan untuk Konversi File Office**
+>
+> Alat berbasis LibreOffice (konversi Word, Excel, PowerPoint) memerlukan header HTTP berikut untuk dukungan `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Halaman juga harus disajikan dari konteks aman (secure context). `http://localhost` berfungsi untuk pengujian lokal, tetapi `http://192.168.x.x` atau IP LAN lainnya biasanya tidak memenuhi syarat, sehingga konversi Office melalui HTTP biasa akan gagal meskipun header sudah ada.
+>
+> Image container resmi sudah menyertakan header ini. Jika menggunakan reverse proxy (Traefik, Caddy, dll.), pastikan header ini dipertahankan atau ditambahkan, dan gunakan HTTPS untuk akses non-loopback.
+
+> [!TIP]
+> **Pengguna Podman:** Semua perintah `docker` dapat dipakai dengan Podman dengan mengganti `docker` menjadi `podman` dan `docker-compose` menjadi `podman-compose`.
+
+## Mulai Cepat
+
+> [!TIP]
+> BentoPDF tersedia dalam dua build:
+>
+> - **Self-Hosted build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Semua alat PDF, **tanpa** elemen pemasaran (tanpa hero, FAQ, testimoni, footer). Gunakan ini untuk penerapan internal/tim/organisasi. Ini **bukan** versi "lite" dengan fitur yang dikurangi.
+> - **Commercial build**: `ghcr.io/alam00000/bentopdf:latest`. Situs pemasaran lengkap, digunakan oleh bentopdf.com sendiri dan oleh pemegang lisensi komersial yang menjalankan penerapan publik.
+>
+> Jika ragu: gunakan Self-Hosted build.
+
+```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
+
+Buat `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
+```
+
+Jalankan:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Build Image Anda Sendiri
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Build dan jalankan:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Environment Variable
+
+| Variabel | Deskripsi | Default |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Build varian Self-Hosted (menyembunyikan elemen pemasaran bentopdf.com: hero, FAQ, testimoni, footer). Semua alat PDF tetap ada. | `false` |
+| `BASE_URL` | Deploy ke subdirektori | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL modul WASM PyMuPDF | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL modul WASM Ghostscript | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL modul WASM CoherentPDF | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL skrip worker OCR | _(kosong; gunakan CDN default Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Direktori runtime inti OCR | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_LANG_URL` | Direktori traineddata OCR | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Bahasa OCR yang ditampilkan di UI, dipisahkan koma | _(kosong; tampilkan katalog lengkap)_ |
+| `VITE_OCR_FONT_BASE_URL` | Direktori font lapisan teks OCR | _(kosong; gunakan URL font Noto jarak jauh)_ |
+| `VITE_DEFAULT_LANGUAGE` | Bahasa UI default | `en` |
+| `VITE_BRAND_NAME` | Nama merek kustom | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Path logo relatif terhadap `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Teks footer/hak cipta kustom | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | ID alat yang disembunyikan, dipisahkan koma | _(kosong; semua alat aktif)_ |
+| `DISABLE_GITHUB_STARS` | Lewati pengambilan jumlah bintang GitHub saat halaman dimuat dan hapus `api.github.com` dari CSP. Build Simple Mode selalu melewatinya. | `false` |
+| `SITE_URL` | URL publik yang ditulis ke tautan canonical, hreflang, dan sitemap. Biarkan default kecuali Anda ingin mesin pencari memperlakukan deployment Anda sebagai situs tersendiri. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Dengan `SITE_URL` kustom, setiap halaman ditandai `noindex` agar salinan Anda tidak bersaing dengan bentopdf.com di hasil pencarian. Atur ke `true` agar mesin pencari mengindeksnya. | `false` |
+| `COMPRESSION_MODE` | Salinan terkompresi: `o` tidak ada, `g` `.gz` (disajikan oleh nginx di image), `b` `.br`, `all` keduanya. Nginx di image tidak bisa menyajikan `.br`. | `o` |
+
+URL modul WASM sudah dikonfigurasi dengan default CDN, sehingga semua fitur lanjutan langsung berfungsi. Timpa nilai ini untuk deployment air-gapped atau hosting mandiri.
+
+### Mesin pencari
+
+Secara default, setiap halaman mengarahkan mesin pencari ke bentopdf.com sebagai sumber aslinya, sehingga deployment Anda tidak muncul sebagai duplikat. Anda tidak perlu mengubah apa pun untuk instans privat atau internal.
+
+- **Sembunyikan instans Anda sepenuhnya dari hasil pencarian:** jalankan container dengan `-e ROBOTS_NOINDEX=true`. Ini hanya perlu restart, tidak perlu build ulang.
+- **Jadikan instans Anda situs tersendiri di hasil pencarian:** build dengan `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Tanpa `ALLOW_INDEXING=true`, `SITE_URL` kustom menandai setiap halaman `noindex`.
+
+### Content-Security-Policy
+
+Image nginx dilengkapi header `Content-Security-Policy` yang ditegakkan. Direktif `script-src`, `connect-src`, dan `font-src` pada CSP **dibuat saat build** dari variabel URL `VITE_*` di atas, sehingga host apa pun yang Anda berikan melalui `--build-arg` otomatis ditambahkan ke kebijakan.
+
+Dengan demikian:
+
+- Jika Anda menimpa `VITE_CORS_PROXY_URL` atau `VITE_WASM_*_URL` saat build, CSP otomatis mengizinkan origin tersebut, tanpa konfigurasi tambahan.
+- Untuk URL di `cdn.jsdelivr.net`, `script-src` hanya mengizinkan folder paket dengan versi yang tepat, misalnya `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, bukan seluruh CDN. jsDelivr menyajikan paket npm publik atau repositori GitHub mana pun, sehingga mengizinkan seluruh host berarti semuanya dapat berjalan di instans Anda. URL di host lain diizinkan berdasarkan origin.
+- Jika Anda mengonfigurasi URL WASM kustom saat _runtime_ melalui halaman Pengaturan Lanjutan di aplikasi, origin tersebut **tidak** ada di CSP dan browser akan memblokir pengambilannya. Hal ini juga berlaku untuk versi lain dari paket yang sama di `cdn.jsdelivr.net`, karena hanya versi yang diatur saat build yang diizinkan. Konfigurasi runtime ditujukan untuk eksperimen; untuk URL kustom permanen, atur build arg `VITE_*` yang sesuai.
+- Deployment air-gapped yang menimpa ketiga nilai `VITE_WASM_*_URL` juga menghapus folder paket `cdn.jsdelivr.net` tersebut dari CSP (setiap default diganti, bukan ditambahkan). Default Tesseract OCR di `cdn.jsdelivr.net` tetap ada di kebijakan sampai Anda juga mengatur ketiga nilai `VITE_TESSERACT_*`. Demikian pula, mengatur `VITE_CORS_PROXY_URL` menggantikan default publik `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+CSP menyertakan `'unsafe-eval'` di `script-src` karena runtime LibreOffice WASM (digunakan alat konversi Word/Excel/PowerPoint) dan pustaka gambar wasm-vips (digunakan PDF ke TIFF) mengompilasi kode dispatch internal melalui `new Function()`. Menghapusnya akan merusak alat-alat tersebut. Jika Anda build dengan `SIMPLE_MODE` (tanpa LibreOffice) dan tidak memerlukan PDF ke TIFF, Anda dapat mengedit `security-headers.conf` yang dihasilkan secara manual untuk membuang `'unsafe-eval'` demi kebijakan yang lebih ketat.
+
+Untuk OCR, biarkan variabel `VITE_TESSERACT_*` kosong untuk memakai aset online default, atau atur ketiganya sekaligus untuk OCR hosting mandiri/offline. Penimpaan OCR sebagian ditolak karena worker, runtime inti, dan direktori traineddata harus cocok. Untuk keluaran PDF yang dapat dicari secara offline penuh, atur juga `VITE_OCR_FONT_BASE_URL` agar font lapisan teks OCR dimuat dari server internal Anda, bukan dari URL font Noto publik.
+
+`VITE_DEFAULT_LANGUAGE` menentukan bahasa UI untuk pengunjung pertama kali. Nilai yang didukung: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Pengguna tetap dapat berganti bahasa, ini hanya mengubah default.
+
+Contoh:
+
+```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
+```
+
+### Branding Kustom
+
+Ganti logo, nama, dan teks footer BentoPDF default dengan milik Anda. Letakkan file logo di folder `public/` (atau gunakan gambar yang sudah ada), lalu berikan variabel branding saat build:
+
+```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 .
+```
+
+Branding berfungsi di mode penuh maupun Simple Mode, dan dapat dikombinasikan dengan semua opsi build lainnya.
+
+### Menonaktifkan Alat Tertentu
+
+Sembunyikan alat dari UI untuk kebutuhan kepatuhan atau keamanan. Alat yang dinonaktifkan dihapus dari beranda, hasil pencarian, pintasan keyboard, dan workflow builder. Akses URL langsung menampilkan halaman "alat tidak tersedia".
+
+ID alat adalah URL halaman tanpa `.html`. Misalnya, jika alat berada di `bentopdf.com/edit-pdf.html`, ID-nya adalah `edit-pdf`.
+
+#### Menemukan ID Alat
+
+Cara termudah: buka alat apa pun di BentoPDF dan lihat URL-nya. Bagian terakhir dari path (tanpa `.html`) adalah ID alat.
+
+
+Daftar lengkap ID alat
+
+**Edit & Anotasi:** `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`
+
+**Konversi ke 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`
+
+**Konversi dari 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`
+
+**Atur & Kelola:** `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`
+
+**Optimalkan & Perbaiki:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Keamanan:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Opsi 1: Saat build (Docker build arg)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Ini menanamkan daftar yang dinonaktifkan ke dalam bundel JavaScript. Perlu build ulang untuk mengubahnya.
+
+#### Opsi 2: Saat runtime (config.json)
+
+Mount file `config.json` ke direktori yang disajikan, tanpa perlu build ulang:
+
+```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
+```
+
+Atau dengan 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
+```
+
+Kedua metode dapat digabungkan: daftarnya digabung. Jika sebuah alat muncul di salah satunya, alat itu dinonaktifkan.
+
+#### Menonaktifkan Fitur Editor
+
+Anda juga dapat menonaktifkan fitur tertentu di dalam Editor PDF (mis., redaksi, anotasi, formulir) tanpa menonaktifkan seluruh alat editor. Tambahkan `editorDisabledCategories` ke `config.json` Anda:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Daftar lengkap kategori editor
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Anotasi:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Bentuk:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Pengukuran:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formulir:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Redaksi:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Dokumen:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Halaman:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Alat:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Pilihan:** `selection`, `selection-copy`
+
+**Riwayat:** `history`, `history-undo`, `history-redo`
+
+
+
+Kategori bersifat hierarkis: menonaktifkan induk (mis., `annotation`) menonaktifkan semua turunannya.
+
+### Menonaktifkan Penghitung Bintang GitHub
+
+Navbar menampilkan jumlah bintang GitHub secara langsung, diambil dari `api.github.com` saat halaman dimuat. Ini satu-satunya permintaan eksternal yang tidak melayani fitur PDF. Nonaktifkan saat build untuk menghapus kode pengambilan dari bundel dan membuang `api.github.com` dari Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Build Simple Mode (`bentopdf-simple`) selalu melewati penghitung bintang, flag ini hanya diperlukan pada Commercial build atau build penuh kustom.
+
+### URL WASM Kustom (Air-Gapped / Hosting Mandiri)
+
+> [!IMPORTANT]
+> URL WASM ditanamkan ke JavaScript saat **build**. File WASM diunduh oleh **browser pengguna** saat runtime, Docker tidak mengunduhnya selama build. Untuk jaringan air-gapped, Anda harus menghosting file WASM di server internal yang dapat dijangkau browser.
+
+**Alur kerja air-gapped lengkap:**
+
+```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
+```
+
+Gunakan kode yang dicetak oleh `bash scripts/prepare-airgap.sh --list-ocr-languages`, atau cari berdasarkan nama dengan `bash scripts/prepare-airgap.sh --search-ocr-language `, untuk `--ocr-languages`. Saat build dengan subset OCR terbatas, berikan kode yang sama ke `VITE_TESSERACT_AVAILABLE_LANGUAGES` agar aplikasi hanya menampilkan bahasa yang disertakan. Untuk keluaran OCR offline penuh, hosting juga direktori `ocr-fonts/` bawaan dan arahkan `VITE_OCR_FONT_BASE_URL` ke sana.
+
+Atur variabel ke string kosong untuk menonaktifkan modul tersebut (pengguna harus mengonfigurasinya secara manual melalui Pengaturan Lanjutan).
+
+## Port Kustom
+
+Secara default, BentoPDF mendengarkan di port `8080` di dalam container. Untuk mengubahnya, atur environment variable `PORT` saat runtime:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variabel | Deskripsi | Default |
+| -------- | ------------------------------ | ------- |
+| `PORT` | Port listen Nginx di container | `8080` |
+
+Ini berfungsi dengan Dockerfile standar maupun nonroot.
+
+## User ID Kustom (PUID/PGID)
+
+Untuk lingkungan yang mengharuskan berjalan sebagai user non-root tertentu (perangkat NAS, Kubernetes dengan security context, kebijakan organisasi), BentoPDF menyediakan Dockerfile terpisah dengan dukungan PUID/PGID ala LSIO.
+
+### Build dan Jalankan
+
+```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
+```
+
+### Environment Variable
+
+| Variabel | Deskripsi | Default |
+| -------------- | -------------------------- | ------- |
+| `PUID` | User ID untuk menjalankan | `1000` |
+| `PGID` | Group ID untuk menjalankan | `1000` |
+| `PORT` | Port listen Nginx | `8080` |
+| `DISABLE_IPV6` | Nonaktifkan listener 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
+```
+
+### Cara Kerjanya
+
+Container dimulai sebagai root, membuat user dengan PUID/PGID yang ditentukan, menyesuaikan kepemilikan pada semua direktori yang dapat ditulis, lalu menurunkan hak akses menggunakan `su-exec`. Proses nginx berjalan sepenuhnya sebagai user yang Anda tentukan.
+
+> [!NOTE]
+> `Dockerfile` standar menggunakan `nginx-unprivileged` (UID 101) dan direkomendasikan untuk sebagian besar deployment. Gunakan `Dockerfile.nonroot` hanya jika Anda memerlukan UID/GID tertentu.
+
+> [!WARNING]
+> PUID/PGID tidak boleh `0` (root). Entrypoint memvalidasi input dan akan keluar dengan error untuk nilai yang tidak valid.
+
+## Dengan Traefik (Reverse Proxy)
+
+```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
+```
+
+## Dengan Caddy (Reverse Proxy)
+
+```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"
+}
+```
+
+## Batas Sumber Daya
+
+```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 Integration)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) memungkinkan Anda menjalankan container Podman sebagai layanan systemd. Ini ideal untuk deployment produksi di sistem Linux.
+
+### Penyiapan Quadlet Dasar
+
+Buat file unit container di `~/.config/containers/systemd/bentopdf.container` (user) atau `/etc/containers/systemd/bentopdf.container` (sistem):
+
+```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
+```
+
+### Aktifkan dan Mulai
+
+```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]
+> Untuk deployment tingkat sistem, gunakan `systemctl` tanpa flag `--user` dan letakkan file di `/etc/containers/systemd/`.
+
+### Quadlet dengan Health Check
+
+```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
+```
+
+### Auto-Update dengan Quadlet
+
+Podman dapat memperbarui container secara otomatis saat image baru tersedia:
+
+```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
+```
+
+### Konfigurasi Jaringan Quadlet
+
+Untuk konfigurasi jaringan kustom, buat file jaringan `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Lalu referensikan di file container Anda:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Memperbarui
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/id/self-hosting/hostinger.md b/docs/id/self-hosting/hostinger.md
new file mode 100644
index 00000000..c267f408
--- /dev/null
+++ b/docs/id/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Deploy ke Hostinger
+
+[Hostinger](https://hostinger.com) adalah penyedia shared hosting yang populer. Panduan ini membahas cara men-deploy BentoPDF ke shared hosting Hostinger.
+
+## Prasyarat
+
+- Paket hosting Hostinger dengan akses file manager
+- Node.js terinstal secara lokal untuk build
+
+## Langkah 1: Build Proyek
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+File hasil build akan berada di folder `dist`.
+
+## Langkah 2: Unggah ke Hostinger
+
+### Deploy di Domain Root
+
+1. Masuk ke akun Hostinger Anda
+2. Buka **File Manager** → **public_html**
+3. **Hapus** semua file yang ada (buat cadangan jika perlu)
+4. **Unggah** seluruh isi folder `dist` lokal Anda ke `public_html`
+
+### Deploy di Subdirektori
+
+Jika men-deploy ke subdirektori (mis., `yourdomain.com/pdf-tools/`):
+
+1. Build dengan base URL yang benar:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Buat folder di Hostinger:
+ - Buka **File Manager** → **public_html**
+ - Buat folder baru: `pdf-tools`
+3. Unggah seluruh isi `dist` ke `public_html/pdf-tools/`
+
+## Langkah 3: Buat File .htaccess
+
+Buat file `.htaccess` di root folder deployment Anda (`public_html` atau `public_html/pdf-tools/`):
+
+::: warning Penting
+Untuk deploy di subdirektori, ubah `RewriteBase /` menjadi `RewriteBase /pdf-tools/` (atau nama folder Anda).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Contoh .htaccess untuk Subdirektori
+
+Untuk `yourdomain.com/pdf-tools/`, perbarui baris berikut:
+
+```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
+```
+
+## Pemecahan Masalah
+
+### File WASM Tidak Dimuat
+
+Pastikan MIME type sudah diatur dengan benar di `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Alat LibreOffice Tidak Berfungsi
+
+Header keamanan sangat penting untuk SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Jika header tidak diterapkan, hubungi dukungan Hostinger untuk mengaktifkan `mod_headers`.
+
+### Error 404 Saat Halaman Dimuat Ulang
+
+Pastikan aturan ekstensi `.html` dan rute bahasa dikonfigurasi dengan benar. BentoPDF menggunakan file HTML statis, bukan routing 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]
+```
+
+### Batas Unggahan File
+
+Hostinger mungkin memiliki batas ukuran file. Unggah file WASM secara terpisah jika unggahan massal gagal.
diff --git a/docs/id/self-hosting/index.md b/docs/id/self-hosting/index.md
new file mode 100644
index 00000000..a4844ec8
--- /dev/null
+++ b/docs/id/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Panduan Self-Hosting
+
+BentoPDF dapat di-host sendiri pada infrastruktur Anda. Panduan ini mencakup berbagai opsi deployment.
+
+## Mulai Cepat dengan Docker / Podman
+
+Cara tercepat untuk self-host BentoPDF:
+
+> [!TIP]
+> BentoPDF tersedia dalam dua build:
+>
+> - **Build Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Semua alat PDF, **tanpa** elemen pemasaran (tanpa hero, FAQ, testimoni, footer). Gunakan ini untuk deployment internal/tim/organisasi. Ini **bukan** versi "lite" dengan fitur yang dikurangi.
+> - **Build Commercial**: `ghcr.io/alam00000/bentopdf:latest`. Situs pemasaran lengkap, dipakai oleh bentopdf.com sendiri dan oleh pemegang lisensi komersial yang menjalankan deployment publik.
+>
+> Jika ragu: gunakan build Self-Hosted.
+
+> [!IMPORTANT]
+> Konversi file Office memerlukan `SharedArrayBuffer`, yang berarti aplikasi harus terisolasi lintas origin sekaligus dilayani dari konteks aman (secure context). Image resmi sudah mengirim header COOP/COEP yang diperlukan, tetapi browser tetap menonaktifkan `SharedArrayBuffer` pada origin jaringan lokal HTTP biasa seperti `http://192.168.x.x`.
+>
+> Gunakan `http://localhost` hanya untuk pengujian di perangkat yang sama. Jika pengguna mengakses BentoPDF melalui IP LAN atau hostname, akhiri koneksi dengan 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
+```
+
+Atau dengan 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)
+
+Jalankan BentoPDF sebagai layanan systemd. Buat `~/.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
+```
+
+Lihat [panduan deployment Docker](/id/self-hosting/docker) untuk dokumentasi Quadlet lengkap.
+
+## Build dari Source
+
+```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
+```
+
+## Opsi Konfigurasi
+
+### Build Self-Hosted (Simple Mode)
+
+Build Self-Hosted (image `bentopdf-simple`, juga disebut Simple Mode) **secara fungsional identik** dengan build Commercial: semua alat PDF tersedia dan berperilaku sama. Build ini hanya menyembunyikan elemen pemasaran yang hanya masuk akal di bentopdf.com sendiri atau pada deployment komersial yang terbuka untuk publik. **Ini bukan versi dengan fitur yang dikurangi atau "lite".**
+
+**Yang disembunyikan build Self-Hosted** (hanya kosmetik, tidak ada fitur PDF yang dihapus):
+
+- Bilah navigasi, bagian hero, bagian fitur, FAQ, testimoni, footer
+- Mengubah judul halaman menjadi "Alat PDF"
+
+**Yang dipertahankan build Self-Hosted** (semua yang benar-benar mengerjakan PDF):
+
+- Semua alat PDF (gabung, pisah, edit, tanda tangan, OCR, konversi Office, dll.)
+- Dukungan branding kustom, semua konfigurasi build-time dan runtime
+
+Build Commercial (`ghcr.io/alam00000/bentopdf:latest`) adalah yang menjalankan bentopdf.com sendiri dan dipakai oleh pemegang lisensi komersial yang menjalankan deployment publik. Build ini menambahkan hero, FAQ, testimoni, dan footer yang tidak masuk akal pada alat internal.
+
+Jika Anda self-host BentoPDF untuk tim, organisasi, atau sebagai alat internal, gunakan build Self-Hosted:
+
+```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
+```
+
+Lihat [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) untuk detail lengkap.
+
+### Build Commercial (deployment publik dengan merek Anda sendiri)
+
+Build Commercial (image `bentopdf`, tanpa akhiran `-simple`) adalah yang menjalankan bentopdf.com sendiri. Build ini menyertakan situs pemasaran lengkap (hero, fitur, FAQ, testimoni, footer) di atas semua alat PDF. Gunakan build ini saat Anda ingin **men-deploy BentoPDF sebagai layanan PDF publik dengan merek Anda sendiri**, misalnya:
+
+- Anda menjalankan BentoPDF sebagai SaaS terkelola untuk pengguna akhir di domain Anda sendiri
+- Anda menginginkan pengalaman halaman landing (bagian pemasaran + alat), bukan hanya tampilan alat saja
+- Anda pemegang lisensi komersial yang menyematkan BentoPDF ke dalam produk komersial
+
+**Jalankan apa adanya** (branding BentoPDF, berguna untuk melihat pratinjau build):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Build dengan merek Anda sendiri** (alur kerja komersial yang umum):
+
+```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
+```
+
+Setiap opsi build-time lainnya (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, override URL WASM, dll.) bekerja dengan cara yang sama seperti pada build Self-Hosted.
+
+::: warning Lisensi
+Menjalankan build Commercial diizinkan di bawah salah satu dari dua opsi lisensi BentoPDF:
+
+- **AGPL-3.0** (gratis): diizinkan jika deployment Anda mempublikasikan seluruh source code di bawah AGPL, termasuk modifikasi branding dan logika bisnis di sekitarnya.
+- **Lisensi komersial** ($79 seumur hidup): diperlukan untuk deployment sumber tertutup/berpemilik (closed-source/proprietary) di mana Anda tidak membuka source code fork branding atau kode bisnis Anda.
+
+Lihat [halaman Lisensi](https://www.bentopdf.com/licensing) untuk perbandingan lengkap. Modul WASM berlisensi AGPL (PyMuPDF, Ghostscript, CoherentPDF) dimuat dari CDN saat runtime, sehingga tidak masuk ke image Anda dan tidak mengubah posisi lisensi Anda.
+:::
+
+### Base URL
+
+Deploy ke subdirektori:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Branding Kustom
+
+Ganti logo, nama, dan teks footer BentoPDF default dengan milik Anda saat build:
+
+| Variabel | Deskripsi | Default |
+| ------------------ | ------------------------------------ | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nama merek di header dan footer | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Path logo relatif terhadap `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Teks footer/hak cipta kustom | `© 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
+```
+
+Atau melalui 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 .
+```
+
+Branding berfungsi pada mode penuh maupun Simple Mode, dan dapat dikombinasikan dengan semua opsi build-time lainnya (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Menonaktifkan Alat Tertentu
+
+Sembunyikan alat tertentu demi kepatuhan atau keamanan. Alat yang dinonaktifkan dihapus dari beranda, pencarian, pintasan, pembuat alur kerja, dan akses URL langsung.
+
+ID alat adalah URL halaman tanpa `.html`: buka alat apa pun dan lihat URL-nya (misalnya `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Build-time** (tertanam dalam bundle):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Runtime** (tanpa build ulang, mount `config.json`):
+
+```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
+```
+
+Kedua metode dapat dikombinasikan, daftarnya digabungkan.
+
+Anda juga dapat menonaktifkan fitur tertentu di dalam Editor PDF (misalnya redaksi) tanpa menonaktifkan seluruh alat dengan menambahkan `editorDisabledCategories` ke `config.json`. Lihat [panduan Docker](/id/self-hosting/docker#menonaktifkan-fitur-editor) untuk daftar lengkap kategori.
+
+## Panduan Deployment
+
+Pilih platform Anda:
+
+- [Vercel](/id/self-hosting/vercel)
+- [Netlify](/id/self-hosting/netlify)
+- [Cloudflare Pages](/id/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/id/self-hosting/aws)
+- [Hostinger](/id/self-hosting/hostinger)
+- [Nginx](/id/self-hosting/nginx)
+- [Apache](/id/self-hosting/apache)
+- [Docker](/id/self-hosting/docker)
+- [Kubernetes](/id/self-hosting/kubernetes)
+- [CORS Proxy](/id/self-hosting/cors-proxy) - Diperlukan untuk tanda tangan digital
+
+## Masalah Umum
+
+### Word / ODT / Excel / PowerPoint ke PDF Macet (SharedArrayBuffer Tidak Tersedia)
+
+**Gejala**: Konversi dokumen berbasis LibreOffice (Word, ODT, Excel, PowerPoint ke PDF) macet di ~55% atau gagal dimulai. Konsol browser mungkin menampilkan:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+...atau `window.crossOriginIsolated` melaporkan `false`, atau kompilasi WASM melaporkan `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Penyebab**: LibreOffice WASM memerlukan `SharedArrayBuffer`, yang hanya diaktifkan browser ketika halaman **terisolasi lintas origin** DAN dilayani dari **konteks aman (secure context)**. Artinya dua hal harus terpenuhi:
+
+1. Setiap respons menyertakan kedua header berikut:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. Halaman dilayani dari `https://...` atau `http://localhost`. HTTP biasa pada IP LAN (mis. `http://192.168.x.x`) TIDAK dianggap aman: browser menonaktifkan `SharedArrayBuffer` di sana.
+
+Ketidakcocokan `00 61 73 6d / 1f 8b 08 08` adalah sub-gejala tersendiri: file `.wasm.gz` / `.data.gz` yang sudah dikompresi tidak memiliki header respons `Content-Encoding: gzip`, sehingga browser menerima byte gzip mentah, bukan WASM yang sudah didekompresi.
+
+**Solusi**: lihat panduan deployment khusus platform Anda untuk konfigurasi yang tepat:
+
+- [Nginx →](/id/self-hosting/nginx#word-odt-excel-ke-pdf-tidak-berfungsi)
+- [Apache →](/id/self-hosting/apache#word-odt-excel-ke-pdf-tidak-berfungsi)
+- [AWS S3 + CloudFront →](/id/self-hosting/aws#langkah-3b-response-headers-policy-diperlukan-untuk-libreoffice-wasm)
+- [Cloudflare Pages →](/id/self-hosting/cloudflare#file-konfigurasi) (`_headers` file)
+- [Netlify →](/id/self-hosting/netlify#word-odt-excel-ke-pdf-macet-di-55) (`netlify.toml`)
+- [Vercel →](/id/self-hosting/vercel#word-odt-excel-ke-pdf-tidak-berfungsi) (`vercel.json`)
+- [Hostinger →](/id/self-hosting/hostinger#alat-libreoffice-tidak-berfungsi) (`.htaccess`)
+- [Kubernetes →](/id/self-hosting/kubernetes#memastikan-header-sharedarraybuffer-tetap-berfungsi-ingress-gateway)
+- **Docker**: ditangani otomatis oleh konfigurasi nginx bawaan, tidak perlu tindakan.
+
+**Verifikasi**: buka Konsol DevTools di halaman BentoPDF mana pun dan jalankan:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Jika halaman menggunakan HTTPS atau `http://localhost` DAN kedua header COEP/COOP ada pada setiap respons, kedua pemeriksaan lulus. Jika Anda berada di `http://192.168.x.x` atau origin HTTP non-loopback lainnya, akhiri koneksi dengan HTTPS: tidak ada solusi yang hanya berupa header.
+
+### File `.mjs` Dilayani sebagai `application/octet-stream`
+
+**Gejala**: Tanda Tangani PDF / Form Filler / beberapa alat lain menampilkan penampil kosong atau gagal dimuat. Konsol browser melaporkan:
+
+> `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.`
+
+**Penyebab**: Web server atau reverse proxy Anda tidak memiliki pemetaan MIME-type untuk file `.mjs` (penampil PDF bawaan menyertakan modul ES dengan ekstensi itu). Banyak konfigurasi server bawaan menggunakan `application/octet-stream` untuk ekstensi yang tidak dikenali, yang menolak dieksekusi browser sebagai modul ES.
+
+**Solusi**: lihat panduan deployment khusus platform Anda untuk potongan konfigurasi yang tepat:
+
+- [Nginx →](/id/self-hosting/nginx#tanda-tangani-pdf-atau-form-filler-menampilkan-penampil-kosong-error-mime-mjs)
+- [Apache →](/id/self-hosting/apache#tanda-tangani-pdf-atau-form-filler-menampilkan-penampil-kosong-error-mime-mjs)
+- [AWS S3 + CloudFront →](/id/self-hosting/aws#langkah-2-build-dan-unggah) (lihat `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/id/self-hosting/kubernetes#error-mime-type-mjs-iframe-tanda-tangani-pdf-form-filler-kosong)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: ditangani otomatis, tidak perlu tindakan.
+
+**Verifikasi**: buka DevTools → tab Network, cari permintaan `.mjs` yang gagal, periksa header respons `Content-Type`. Seharusnya `application/javascript`. Jika masih `application/octet-stream`, reverse proxy atau CDN di luar mungkin mendeteksi ulang tipenya: periksa setiap lapisan dalam rantai layanan Anda.
+
+## Konfigurasi WASM (Komponen AGPL)
+
+BentoPDF **tidak menyertakan** pustaka pemrosesan berlisensi AGPL dalam source code-nya, tetapi **sudah mengonfigurasi URL CDN** sehingga semua fitur langsung berfungsi tanpa pengaturan manual.
+
+::: tip Tanpa Konfigurasi secara Default
+Sejak v2.0.0, modul WASM sudah dikonfigurasi untuk dimuat dari CDN jsDelivr melalui variabel lingkungan. Semua fitur lanjutan langsung berfungsi tanpa konfigurasi pengguna.
+:::
+
+| Komponen | Lisensi | Fitur |
+| --------------- | -------- | ------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Konversi EPUB/MOBI/FB2/XPS, ekstraksi gambar, ekstraksi tabel |
+| **Ghostscript** | AGPL-3.0 | Konversi PDF/A, kompresi, deskewing, rasterisasi |
+| **CoherentPDF** | AGPL-3.0 | Daftar isi, lampiran, penggabungan PDF dengan bookmark |
+
+### Variabel Lingkungan Default
+
+Variabel ini diatur di `.env.production` dan tertanam dalam build:
+
+```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=
+```
+
+### Menimpa URL WASM
+
+Anda dapat menimpa nilai default saat build untuk deployment kustom:
+
+```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
+```
+
+Untuk menonaktifkan sebuah modul sepenuhnya (memerlukan konfigurasi manual pengguna melalui Pengaturan Lanjutan), atur variabelnya ke string kosong.
+
+Untuk OCR, biarkan semua variabel `VITE_TESSERACT_*` kosong dan gunakan aset online default, atau atur URL worker/core/lang bersamaan untuk OCR self-hosted/offline. Jika Anda hanya menyertakan bahasa OCR tertentu, atur juga `VITE_TESSERACT_AVAILABLE_LANGUAGES` dengan kode yang sama (dipisahkan koma) agar UI hanya menawarkan bahasa yang terpasang dan pilihan yang tidak didukung gagal dengan pesan error yang jelas. Untuk keluaran PDF yang dapat dicari sepenuhnya offline, atur juga `VITE_OCR_FONT_BASE_URL` ke direktori internal yang melayani font OCR bawaan.
+
+Pengguna juga dapat menimpa nilai default ini kapan saja melalui **Pengaturan Lanjutan** di UI. Penimpaan pengguna yang tersimpan di browser lebih diprioritaskan daripada default lingkungan.
+
+### Deployment Air-Gapped / Offline
+
+Untuk jaringan tanpa akses internet (pemerintah, kesehatan, keuangan, dll.). URL WASM tertanam ke dalam JavaScript pada **waktu build**, sedangkan file WASM sebenarnya diunduh oleh **browser pengguna** saat runtime. Jadi Anda perlu menyiapkan semuanya di mesin yang terhubung internet, lalu memindahkannya ke jaringan terisolasi.
+
+#### Skrip Otomatis (Disarankan)
+
+Skrip `prepare-airgap.sh` yang disertakan mengotomatiskan seluruh proses: mengunduh paket WASM, membangun image Docker, dan menghasilkan bundel mandiri beserta skrip setup.
+
+```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
+```
+
+Ini menghasilkan direktori bundel:
+
+```
+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
+```
+
+Pindahkan bundel ke jaringan air-gapped melalui USB, repositori artefak internal, atau metode yang disetujui. Lalu jalankan skrip setup yang disertakan:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Skrip setup memuat image Docker, mengekstrak file WASM, dan secara opsional memulai kontainer.
+
+**Opsi skrip:**
+
+| Flag | Deskripsi | Default |
+| ------------------------------ | -------------------------------------------------- | --------------------------------- |
+| `--wasm-base-url ` | Tempat WASM akan di-host secara internal | _(wajib, ditanyakan jika kosong)_ |
+| `--image-name ` | Tag image Docker | `bentopdf` |
+| `--output-dir ` | Direktori bundel keluaran | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Aktifkan Simple Mode | mati |
+| `--base-url ` | Base URL subdirektori (mis. `/pdf/`) | `/` |
+| `--language ` | Bahasa UI default (mis. `fr`, `de`) | _(tidak ada)_ |
+| `--brand-name ` | Nama merek kustom | _(tidak ada)_ |
+| `--brand-logo ` | Path logo relatif terhadap `public/` | _(tidak ada)_ |
+| `--footer-text ` | Teks footer kustom | _(tidak ada)_ |
+| `--ocr-languages ` | Bahasa OCR yang disertakan, dipisahkan koma | `eng` |
+| `--list-ocr-languages` | Cetak kode dan nama OCR yang didukung, lalu keluar | mati |
+| `--search-ocr-language ` | Cari kode OCR berdasarkan nama atau singkatan | mati |
+| `--dockerfile ` | Dockerfile yang digunakan | `Dockerfile` |
+| `--skip-docker` | Lewati build dan ekspor Docker | mati |
+| `--skip-wasm` | Lewati unduhan WASM (pakai ulang file `.tgz`) | mati |
+
+Prompt interaktif juga menerima `list` untuk mencetak daftar lengkap kode Tesseract yang didukung dan `search ` untuk mencari kecocokan seperti `search german` atau `search chi`.
+
+::: warning Persyaratan Same-Origin
+File WASM harus dilayani dari **origin yang sama** dengan aplikasi BentoPDF. Web Worker menggunakan `importScripts()` yang tidak dapat memuat skrip lintas origin. Misalnya, jika BentoPDF berjalan di `https://internal.example.com`, base URL WASM juga harus `https://internal.example.com/wasm`.
+:::
+
+#### Langkah Manual
+
+
+Jika Anda lebih suka melakukannya secara manual tanpa skrip
+
+**Langkah 1: Unduh paket WASM dan OCR** (di mesin yang terhubung internet)
+
+```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
+```
+
+**Langkah 2: Build image Docker dengan URL internal**
+
+```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 .
+```
+
+**Langkah 3: Ekspor image Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Langkah 4: Pindahkan ke jaringan air-gapped**
+
+Salin melalui USB, repositori artefak internal, atau metode transfer yang disetujui:
+
+- `bentopdf.tar`: image Docker
+- Kelima paket WASM/OCR `.tgz` dari Langkah 1
+- Direktori `tesseract-langdata/` dari Langkah 1
+- Direktori `ocr-fonts/` dari Langkah 1
+
+**Langkah 5: Siapkan di dalam jaringan air-gapped**
+
+```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
+```
+
+Pastikan file dapat diakses pada URL yang Anda konfigurasikan di Langkah 2, termasuk `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data`, dan `.../ocr/fonts`.
+
+
+
+::: info Build dari source, bukan Docker?
+Atur variabel di `.env.production` sebelum menjalankan `npm run build`:
+
+```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
+```
+
+:::
+
+### Menjalankan Proxy WASM Sendiri
+
+Jika Anda perlu melayani file WASM AGPL dengan header CORS yang tepat, Anda dapat men-deploy proxy sederhana. Lihat [panduan Cloudflare WASM Proxy](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) untuk contoh implementasi.
+
+::: tip Mengapa Dipisah?
+Pemisahan ini memastikan:
+
+- Kepatuhan hukum yang jelas bagi pengguna komersial
+- Inti BentoPDF tetap berada di bawah lisensi ganda (AGPL-3.0 / Commercial)
+- File WASM dimuat saat runtime, tidak disertakan dalam source
+ :::
+
+## Persyaratan Sistem
+
+| Persyaratan | Minimum |
+| ----------- | ------------------------------- |
+| Penyimpanan | ~100 MB (inti tanpa modul AGPL) |
+| RAM | 512 MB |
+| CPU | Prosesor modern apa pun |
+
+::: tip
+BentoPDF adalah situs statis, tidak diperlukan database atau server backend!
+:::
diff --git a/docs/id/self-hosting/kubernetes.md b/docs/id/self-hosting/kubernetes.md
new file mode 100644
index 00000000..8adbcf03
--- /dev/null
+++ b/docs/id/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Deploy dengan Kubernetes
+
+Kubernetes mungkin berlebihan untuk situs statis, tetapi bisa sangat cocok jika Anda sudah menstandarkan Helm + GitOps.
+
+> [!IMPORTANT]
+> **Header yang Diperlukan untuk Konversi File Office**
+>
+> Alat berbasis LibreOffice (konversi Word, Excel, PowerPoint) memerlukan header HTTP berikut untuk dukungan `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Image nginx resmi BentoPDF sudah menyertakan header ini. Di Kubernetes, **controller Ingress/Gateway juga merupakan reverse proxy**, jadi pastikan header ini tetap dipertahankan (atau tambahkan di edge).
+
+## Prasyarat
+
+- Klaster Kubernetes
+- Helm v3
+- Image nginx BentoPDF (misalnya `ghcr.io/alam00000/bentopdf:`) yang melayani di **port 8080**
+
+## Deploy dengan Helm
+
+### Instal dari repo ini (chart lokal)
+
+```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
+```
+
+### Instal dari GHCR (chart OCI)
+
+Jika chart dipublikasikan ke GHCR sebagai artefak OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Mengeksposnya
+
+### Port-forward (uji cepat)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (opsional)
+
+Aktifkan Ingress (contoh untuk nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (opsional)
+
+Chart ini mendukung Gateway API `Gateway` + `HTTPRoute`.
+
+Contoh (operator 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
+```
+
+## Memastikan header SharedArrayBuffer tetap berfungsi (Ingress/Gateway)
+
+### Apa yang "seharusnya" terjadi
+
+Konfigurasi nginx BentoPDF menetapkan header respons yang diperlukan. Sebagian besar controller Ingress/Gateway **meneruskan header respons upstream tanpa perubahan**.
+
+### Apa yang bisa merusaknya
+
+- Kebijakan controller/edge yang **menimpa** atau **menghapus** header respons
+- Middleware "security headers" yang menetapkan nilai COOP/COEP yang berbeda
+
+### Cara memverifikasi
+
+Jalankan perintah ini pada endpoint publik Anda:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Anda seharusnya melihat:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Jika controller Ingress Anda tidak mempertahankannya
+
+Tambahkan header di edge (bergantung pada controller). Contoh untuk **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;
+```
+
+## Error MIME-type `.mjs` (iframe Tanda Tangani PDF / Form Filler kosong)
+
+Jika konsol browser menampilkan `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` pada permintaan `.mjs`, berarti controller Ingress/Gateway di depan nginx BentoPDF mengganti header `Content-Type` upstream dengan `application/octet-stream`.
+
+Nginx pada image BentoPDF sudah melayani `.mjs` sebagai `application/javascript`. Solusinya adalah menghentikan controller dari menghapus/menggantinya. Untuk nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Atau gunakan filter `ResponseHeaderModifier` di Gateway API untuk menetapkan `Content-Type: application/javascript` pada path `.mjs`. Verifikasi dengan DevTools → tab Network: permintaan `.mjs` yang gagal seharusnya kini menampilkan `content-type: application/javascript`.
+
+### Jika Anda memakai Gateway API dan ingin menambahkan header secara paksa
+
+Gateway API mendukung filter `ResponseHeaderModifier`. Anda dapat memasangnya di `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
+```
+
+Dukungan untuk filter tertentu bergantung pada controller Gateway Anda; jika sebuah filter diabaikan, tambahkan header di lapisan edge/controller.
+
+## Menonaktifkan Alat Tertentu
+
+Gunakan ConfigMap untuk menonaktifkan alat saat runtime tanpa membangun ulang image:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Mount ke direktori yang dilayani:
+
+```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
+```
+
+ID alat adalah URL halaman tanpa `.html`: buka alat apa pun dan lihat URL-nya (misalnya `edit-pdf`, `merge-pdf`, `compress-pdf`). Alat yang dinonaktifkan disembunyikan dari beranda, pencarian, pintasan, pembuat alur kerja, dan akses URL langsung. Lihat [panduan Docker](/id/self-hosting/docker#menonaktifkan-alat-tertentu) untuk daftar lengkap opsi.
diff --git a/docs/id/self-hosting/netlify.md b/docs/id/self-hosting/netlify.md
new file mode 100644
index 00000000..018fe276
--- /dev/null
+++ b/docs/id/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Deploy ke Netlify
+
+[Netlify](https://netlify.com) menyediakan hosting situs statis yang sangat baik dengan paket gratis yang lapang.
+
+## Deploy Sekali Klik
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Deploy Manual
+
+### Langkah 1: Hubungkan Repositori
+
+1. Masuk ke [Netlify](https://app.netlify.com)
+2. Klik "Add new site" → "Import an existing project"
+3. Hubungkan akun GitHub Anda
+4. Pilih fork BentoPDF Anda
+
+### Langkah 2: Atur Pengaturan Build
+
+| Pengaturan | Nilai |
+| ----------------- | --------------- |
+| Perintah build | `npm run build` |
+| Direktori publish | `dist` |
+| Versi Node | 18+ |
+
+### Langkah 3: Deploy
+
+Klik "Deploy site" dan tunggu build selesai.
+
+## File Konfigurasi
+
+Buat `netlify.toml` di root proyek Anda:
+
+```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 Penting
+Header `Cross-Origin-Embedder-Policy` dan `Cross-Origin-Opener-Policy` diperlukan untuk konversi Word/ODT/Excel/PowerPoint ke PDF. Tanpa keduanya, `SharedArrayBuffer` tidak tersedia dan mesin LibreOffice WASM gagal diinisialisasi.
+
+Header `Content-Encoding: gzip` pada file `.wasm.gz` dan `.data.gz` memberi tahu browser untuk mendekompresinya secara otomatis. Tanpa header ini, browser menerima byte gzip mentah dan kompilasi WASM gagal.
+:::
+
+## Variabel Lingkungan
+
+Atur variabel ini di Site settings → Environment variables:
+
+| Variabel | Deskripsi |
+| ----------------------- | ---------------------------------------------------------------- |
+| `SIMPLE_MODE` | Atur ke `true` untuk build minimal |
+| `VITE_BRAND_NAME` | Nama merek kustom (menggantikan "BentoPDF") |
+| `VITE_BRAND_LOGO` | Path logo relatif terhadap `public/` (mis. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Teks footer/hak cipta kustom |
+| `VITE_DEFAULT_LANGUAGE` | Bahasa UI default (mis. `fr`, `de`, `es`) |
+
+## Domain Kustom
+
+1. Buka Site settings → Domain management
+2. Klik "Add custom domain"
+3. Ikuti petunjuk konfigurasi DNS
+
+## Large Media
+
+Untuk file WASM berukuran besar, pertimbangkan mengaktifkan [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Pemecahan Masalah
+
+### Word/ODT/Excel ke PDF Macet di 55%
+
+Jika konversi dokumen macet di 55%, buka Konsol DevTools dan periksa:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Jika `crossOriginIsolated` bernilai `false`, header COEP/COOP dari `netlify.toml` Anda tidak diterapkan. Pastikan file berada di root proyek Anda lalu deploy ulang.
+
+Jika Anda melihat `expected magic word 00 61 73 6d, found 1f 8b 08 08` di konsol, berarti file `.wasm.gz` tidak memiliki header `Content-Encoding: gzip`. Pastikan blok `[[headers]]` untuk `soffice.wasm.gz` dan `soffice.data.gz` ada di `netlify.toml` Anda.
+
+### Build Gagal
+
+Periksa kompatibilitas versi Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Pemuatan Awal Lambat
+
+Aktifkan optimasi aset di Site settings → Build & deploy → Asset optimization.
diff --git a/docs/id/self-hosting/nginx.md b/docs/id/self-hosting/nginx.md
new file mode 100644
index 00000000..616135bb
--- /dev/null
+++ b/docs/id/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Deploy dengan Nginx
+
+Host BentoPDF di server Anda sendiri menggunakan Nginx.
+
+## Prasyarat
+
+- Server Ubuntu/Debian
+- Nginx terinstal
+- Sertifikat SSL (disarankan: Let's Encrypt)
+
+## Langkah 1: Build Proyek
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Untuk menyesuaikan branding, atur variabel lingkungan sebelum build:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Langkah 2: Salin File
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Langkah 3: Konfigurasi Nginx
+
+Buat `/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;
+ }
+}
+```
+
+## Langkah 4: Aktifkan Situs
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Langkah 5: SSL dengan Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Deploy di Subdirektori
+
+Untuk hosting di `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Build dengan:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Penyetelan Performa
+
+Tambahkan ke `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;
+}
+```
+
+## Pemecahan Masalah
+
+### WASM Tidak Dimuat
+
+Pastikan MIME type sudah diatur:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Tanda Tangani PDF atau Form Filler Menampilkan Penampil Kosong (error MIME `.mjs`)
+
+Jika konsol browser menampilkan:
+
+```
+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.
+```
+
+...dan permintaan yang gagal berakhir dengan `.mjs`, berarti nginx Anda tidak memiliki pemetaan `.mjs → application/javascript`. Penampil PDF bawaan (dipakai oleh Tanda Tangani PDF, Form Filler, dan beberapa alat lain) menyertakan file modul ES berekstensi `.mjs`, dan `mime.types` bawaan nginx tidak memuatnya secara default.
+
+Perbaiki dengan menambahkan `mjs` ke baris `application/javascript` yang sudah ada di `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> JANGAN menambahkan baris `application/javascript` _kedua_: nginx mem-parse `mime.types` baris demi baris dan hanya satu pemetaan tipe ke ekstensi yang berlaku, sehingga baris kedua diabaikan begitu saja pada beberapa versi. Edit baris yang sudah ada untuk menambahkan `mjs` di samping `js`.
+
+Atau timpa secara lokal di dalam blok server Anda (tanpa mengedit file global):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Muat ulang nginx setelah perubahan:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Untuk memastikan: di DevTools browser → tab Network, cari permintaan `.mjs` yang gagal dan periksa header respons `Content-Type`. Seharusnya kini `application/javascript`, bukan `application/octet-stream`.
+
+### Word/ODT/Excel ke PDF Tidak Berfungsi
+
+LibreOffice WASM memerlukan `SharedArrayBuffer`, yang membutuhkan header `Cross-Origin-Embedder-Policy` dan `Cross-Origin-Opener-Policy`. Ini juga membutuhkan secure context, sehingga `http://localhost` berfungsi untuk pengujian lokal, tetapi `http://192.168.x.x` atau IP LAN lain biasanya memerlukan HTTPS. Perhatikan bahwa direktif `add_header` nginx dalam blok `location` **menimpa** direktif `add_header` tingkat server, bukan menggabungkannya. Setiap blok `location` yang memiliki `add_header` sendiri harus menyertakan header COEP/COOP.
+
+Verifikasi dengan:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Jika memakai reverse proxy di depan nginx, pastikan header ini tetap dipertahankan.
+
+### 502 Bad Gateway
+
+Periksa log error Nginx:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/id/self-hosting/vercel.md b/docs/id/self-hosting/vercel.md
new file mode 100644
index 00000000..edb62f53
--- /dev/null
+++ b/docs/id/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Deploy ke Vercel
+
+[Vercel](https://vercel.com) menawarkan pengalaman deploy paling mudah untuk situs statis.
+
+## Deploy Sekali Klik
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Deploy Manual
+
+### Langkah 1: Fork Repositori
+
+Fork [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) ke akun GitHub Anda.
+
+### Langkah 2: Impor ke Vercel
+
+1. Buka [vercel.com/new](https://vercel.com/new)
+2. Pilih repositori hasil fork Anda
+3. Konfigurasikan proyek:
+
+| Pengaturan | Nilai |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Langkah 3: Variabel Lingkungan (Opsional)
+
+Tambahkan jika diperlukan:
+
+| Variabel | Deskripsi |
+| ----------------------- | ---------------------------------------------------------------- |
+| `SIMPLE_MODE` | Atur ke `true` untuk UI minimal |
+| `VITE_BRAND_NAME` | Nama merek kustom (menggantikan "BentoPDF") |
+| `VITE_BRAND_LOGO` | Path logo relatif terhadap `public/` (mis. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Teks footer/hak cipta kustom |
+| `VITE_DEFAULT_LANGUAGE` | Bahasa UI default (mis. `fr`, `de`, `es`) |
+
+### Langkah 4: Deploy
+
+Klik "Deploy" dan tunggu build selesai.
+
+## Domain Kustom
+
+1. Buka pengaturan proyek Anda
+2. Buka "Domains"
+3. Tambahkan domain kustom Anda
+4. Konfigurasikan DNS sesuai petunjuk
+
+## Batasan
+
+::: warning File Besar
+Fungsi serverless Vercel memiliki batas 50MB. Karena BentoPDF adalah situs statis, ini seharusnya tidak memengaruhi Anda, tetapi modul WASM berukuran besar (total ~100MB). Pastikan modul tersebut dilayani dari folder `/public`.
+:::
+
+## Pemecahan Masalah
+
+### Batas Waktu Build
+
+Jika build mengalami timeout, coba:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 Saat Refresh
+
+Tambahkan `vercel.json` untuk routing SPA:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Word/ODT/Excel ke PDF Tidak Berfungsi
+
+Konversi LibreOffice WASM memerlukan `SharedArrayBuffer`, yang membutuhkan header respons berikut pada semua halaman:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+File `.wasm.gz` dan `.data.gz` yang sudah dikompresi juga memerlukan `Content-Encoding: gzip` agar browser mendekompresinya.
+
+Tambahkan ini ke `vercel.json` Anda:
+
+```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" }
+ ]
+ }
+ ]
+}
+```
+
+Untuk memverifikasi, buka Konsol DevTools dan jalankan `console.log(window.crossOriginIsolated)`, hasilnya seharusnya `true`.
diff --git a/docs/id/tools/add-attachments.md b/docs/id/tools/add-attachments.md
new file mode 100644
index 00000000..7c4283b1
--- /dev/null
+++ b/docs/id/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Tambah Lampiran
+description: Sematkan file dalam format apa pun ke dalam PDF pada tingkat dokumen atau pada halaman tertentu.
+---
+
+# Tambah Lampiran
+
+Sematkan satu atau beberapa file langsung ke dalam dokumen PDF. Lampiran dapat ditambahkan pada tingkat dokumen (terlihat di panel lampiran pembaca PDF mana pun) atau diikat ke halaman tertentu.
+
+## Cara Kerja
+
+1. Unggah PDF yang ingin Anda beri lampiran.
+2. Gunakan area penyimpanan lampiran untuk memilih file yang ingin disematkan (format apa pun).
+3. Pilih tingkat lampiran: **Dokumen** (default) atau **Halaman**.
+4. Jika memilih tingkat Halaman, masukkan rentang halaman (misalnya `1-3` atau `5`).
+5. Klik tombol proses. PDF yang telah diubah akan diunduh beserta file yang tersemat.
+
+## Fitur
+
+- Lampirkan file dalam format apa pun: gambar, spreadsheet, arsip, file eksekusi, apa saja
+- Penempatan lampiran pada tingkat dokumen atau tingkat halaman
+- Beberapa file dapat dilampirkan dalam satu operasi
+- Menampilkan nama dan ukuran semua lampiran yang dipilih
+- Hasil tetap mempertahankan isi PDF asli dengan file tersemat ditambahkan
+
+## Opsi
+
+| Opsi | Deskripsi |
+| ------------------- | ------------------------------------------------------------------------------ |
+| **Tingkat dokumen** | Melampirkan file ke PDF secara keseluruhan, dapat diakses dari panel lampiran |
+| **Tingkat halaman** | Melampirkan file ke halaman tertentu, ditentukan melalui input rentang halaman |
+
+## Kasus Penggunaan
+
+- Menggabungkan data sumber (file Excel, CSV) dengan laporan PDF
+- Melampirkan file gambar asli ke PDF portofolio fotografi
+- Menyematkan dokumen pendukung di dalam kontrak atau proposal
+- Menambahkan materi tambahan ke halaman tertentu pada buku panduan pelatihan
+
+## Tips
+
+- Lampiran tingkat dokumen paling didukung di berbagai pembaca PDF. Lampiran tingkat halaman mungkin tidak terlihat di semua penampil.
+- Tidak ada batas ukuran file untuk lampiran, tetapi file tersemat yang sangat besar akan menambah ukuran PDF secara proporsional.
+
+## Alat Terkait
+
+- [Ekstrak Lampiran](./extract-attachments)
+- [Edit Lampiran](./edit-attachments)
+- [Gabung PDF](./merge-pdf)
diff --git a/docs/id/tools/add-blank-page.md b/docs/id/tools/add-blank-page.md
new file mode 100644
index 00000000..dfe0326d
--- /dev/null
+++ b/docs/id/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Tambah Halaman Kosong
+description: Sisipkan satu atau beberapa halaman kosong di posisi mana pun dalam dokumen PDF.
+---
+
+# Tambah Halaman Kosong
+
+Sisipkan halaman kosong ke dalam PDF pada posisi yang Anda tentukan. Anda mengatur di mana halaman kosong ditempatkan dan berapa banyak yang ditambahkan.
+
+## Cara Kerja
+
+1. Unggah file PDF. Alat ini menampilkan jumlah halaman.
+2. Masukkan **posisi** tempat halaman kosong akan disisipkan. Gunakan `0` untuk menyisipkan di bagian paling awal, atau jumlah total halaman untuk menambahkan di akhir.
+3. Masukkan **jumlah** halaman kosong yang akan ditambahkan (default 1).
+4. Klik tombol proses. PDF yang telah diubah akan diunduh dengan halaman kosong yang sudah disisipkan.
+
+## Fitur
+
+- Sisipkan di posisi mana pun: awal, tengah, atau akhir dokumen
+- Tambahkan beberapa halaman kosong dalam satu operasi
+- Petunjuk posisi diperbarui secara dinamis sesuai jumlah halaman PDF yang diunggah
+- Halaman kosong berukuran A4 standar
+
+## Kasus Penggunaan
+
+- Menambahkan halaman pemisah kosong di antara bagian-bagian dokumen gabungan
+- Menyisipkan halaman kosong agar sejajar untuk pencetakan bolak-balik
+- Menambahkan ruang untuk catatan tulisan tangan di panduan belajar yang dicetak
+- Menambah halaman agar dokumen memenuhi syarat jumlah halaman minimum
+
+## Tips
+
+- Posisi `0` menyisipkan sebelum halaman pertama. Posisi yang sama dengan jumlah total halaman menambahkan setelah halaman terakhir.
+- Jika Anda perlu menyisipkan konten (bukan hanya halaman kosong) di posisi tertentu, gunakan [Alat Multi PDF](./pdf-multi-tool) untuk menyisipkan PDF lain setelah halaman tertentu.
+
+## Alat Terkait
+
+- [Atur & Duplikat](./organize-pdf)
+- [Alat Multi PDF](./pdf-multi-tool)
+- [Gabung PDF](./merge-pdf)
diff --git a/docs/id/tools/add-page-labels.md b/docs/id/tools/add-page-labels.md
new file mode 100644
index 00000000..f4025f6a
--- /dev/null
+++ b/docs/id/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Tambahkan label halaman
+description: Tambahkan label halaman PDF dengan angka Romawi, awalan huruf, penomoran kustom, dan beberapa aturan per dokumen.
+---
+
+# Tambahkan label halaman
+
+Label halaman mengatur bagaimana nomor halaman ditampilkan di penampil PDF (nomor yang tampil di toolbar, bukan yang dicetak pada halaman). Alat ini memungkinkan Anda menetapkan skema pelabelan berbeda untuk rentang halaman yang berbeda: angka Romawi untuk bagian awal, angka desimal untuk isi, lampiran berhuruf, dan lainnya.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Panel opsi muncul dengan satu aturan label secara default.
+3. Atur setiap aturan dengan rentang halaman, gaya, awalan opsional, dan nilai awal.
+4. Klik **Tambah Aturan** untuk membuat aturan tambahan bagi bagian yang berbeda.
+5. Klik **Tambahkan Label Halaman** untuk menerapkan semua aturan dan mengunduh hasilnya.
+
+## Opsi
+
+Setiap aturan label memiliki pengaturan berikut:
+
+- **Rentang Halaman** -- Halaman mana yang dikenai aturan. Biarkan kosong untuk semua halaman. Mendukung rentang seperti `1-4`, `7`, `odd`, atau `1-9,30-40`.
+- **Gaya Label** -- Angka Arab desimal, Romawi huruf kecil (i, ii, iii), Romawi huruf besar (I, II, III), Huruf kecil (a, b, c), Huruf besar (A, B, C), atau Tanpa Label (hanya awalan).
+- **Awalan Label** -- Teks opsional yang ditambahkan di depan setiap label, misalnya "A-" untuk membuat label seperti A-1, A-2, A-3.
+- **Nilai Awal** -- Angka tempat mulai menghitung. Default 1. Atur ke 0 untuk penomoran berbasis nol.
+- **Lanjutkan penomoran di rentang yang terpisah** -- Aktifkan ini saat aturan menargetkan halaman yang tidak berurutan (seperti `1-9,30-40` atau `odd`) dan Anda ingin penomoran tetap berlanjut secara berurutan.
+- **Hapus label halaman yang ada** -- Dicentang secara default. Menghapus label sebelumnya sebelum menerapkan aturan baru Anda.
+
+## Fitur
+
+- Beberapa aturan label per dokumen untuk skema penomoran yang kompleks
+- Enam gaya label yang mencakup semua sistem penomoran standar
+- Dukungan awalan kustom untuk pelabelan per bagian
+- Dukungan rentang terpisah dengan penomoran bertahap
+- Opsi untuk mempertahankan atau menghapus label yang ada
+
+## Kasus Penggunaan
+
+- Mengatur label angka Romawi (i, ii, iii) untuk kata pengantar buku dan label desimal untuk isi utama
+- Memberi label halaman lampiran dengan awalan huruf seperti "A-1", "A-2", "B-1", "B-2"
+- Memperbaiki label halaman pada dokumen hasil pindai yang nomor halaman fisiknya tidak sesuai dengan urutan halaman PDF
+- Menambahkan penomoran berbasis nol untuk dokumen teknis
+
+## Tips
+
+- Label halaman adalah metadata yang ditampilkan penampil PDF di toolbar navigasinya. Label tidak dicetak pada halaman. Untuk nomor yang terlihat, gunakan [Nomor Halaman](./page-numbers).
+- Alat ini memerlukan CoherentPDF (CPDF) yang dikonfigurasi di Pengaturan WASM Anda. Jika belum diatur, Anda akan diminta untuk mengonfigurasinya.
+
+## Alat Terkait
+
+- [Nomor Halaman](./page-numbers)
+- [Penomoran Bates](./bates-numbering)
+- [Edit Bookmark](./bookmark)
diff --git a/docs/id/tools/add-stamps.md b/docs/id/tools/add-stamps.md
new file mode 100644
index 00000000..b3b14a83
--- /dev/null
+++ b/docs/id/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Tambah Stempel
+description: Tambahkan stempel gambar ke halaman PDF Anda menggunakan toolbar anotasi terpadu dengan atribusi nama pengguna.
+---
+
+# Tambah Stempel
+
+Tempatkan stempel gambar pada halaman PDF Anda menggunakan penampil tertanam dengan toolbar anotasi stempel. Stempel dapat menyertakan nama Anda sebagai atribusi, sehingga berguna untuk alur persetujuan, proses peninjauan, dan penandaan dokumen.
+
+## Cara Kerja
+
+1. Masukkan nama Anda di kolom **Nama Pengguna Stempel**. Nama ini akan muncul pada stempel yang Anda buat.
+2. Unggah file PDF Anda dengan mengklik atau menyeretnya ke area unggah.
+3. Editor stempel terbuka dengan dokumen Anda dimuat di penampil.
+4. Gunakan alat stempel gambar di toolbar untuk memilih dan menempatkan stempel di halaman mana pun.
+5. Atur posisi dan ubah ukuran stempel sesuai kebutuhan.
+6. Klik **Simpan PDF Berstempel** untuk mengunduh hasilnya.
+
+## Fitur
+
+- Penampil PDF terpadu dengan toolbar anotasi khusus stempel
+- Atribusi nama pengguna pada stempel yang dibuat
+- Penempatan stempel gambar di halaman mana pun
+- Pengaturan posisi dan ukuran dengan seret dan lepas
+- Ukuran penampil otomatis berdasarkan rasio aspek halaman
+- Tampilan file dengan informasi nama dan ukuran
+
+## Kasus Penggunaan
+
+- Menambahkan stempel gambar "APPROVED" atau "REVIEWED" pada dokumen dalam alur peninjauan
+- Menempatkan gambar stempel perusahaan atau notaris pada dokumen resmi
+- Menandai halaman dengan stempel "RECEIVED" yang menyertakan nama peninjau
+- Menambahkan stempel kendali mutu pada laporan inspeksi
+
+## Tips
+
+- Atur nama pengguna stempel sebelum mengunggah PDF. Nama pengguna disematkan dalam metadata stempel.
+- Penampil menyesuaikan tingginya berdasarkan rasio aspek halaman pertama PDF agar tampilan optimal.
+- Untuk watermark berbasis teks alih-alih stempel gambar, gunakan alat [Tambah Watermark](./add-watermark).
+
+## Alat Terkait
+
+- [Tanda Tangani PDF](./sign-pdf)
+- [Tambah Watermark](./add-watermark)
+- [Editor PDF](./edit-pdf)
diff --git a/docs/id/tools/add-watermark.md b/docs/id/tools/add-watermark.md
new file mode 100644
index 00000000..6903f1f0
--- /dev/null
+++ b/docs/id/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Tambah Watermark
+description: Bubuhkan watermark teks atau gambar pada halaman PDF dengan editor visual seret dan lepas serta pratinjau langsung.
+---
+
+# Tambah Watermark
+
+Tambahkan watermark teks atau gambar ke halaman PDF Anda menggunakan editor visual. Anda dapat memosisikan watermark dengan menyeretnya langsung di pratinjau, mengubah ukurannya dengan pegangan sudut, dan mengatur opasitas, rotasi, font, dan warna. Setiap halaman dapat memiliki posisi watermark sendiri, atau Anda dapat menerapkan watermark yang sama ke semua halaman sekaligus.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Editor terbuka dengan pratinjau langsung halaman pertama dan overlay watermark yang dapat diseret.
+3. Pilih mode watermark **Teks** atau **Gambar** menggunakan tombol pengalih.
+4. Atur pengaturan watermark di panel samping.
+5. Seret watermark di pratinjau untuk memosisikannya tepat di tempat yang Anda inginkan. Gunakan pegangan sudut untuk mengubah ukuran.
+6. Berpindah antarhalaman untuk mengatur watermark per halaman, atau biarkan **Terapkan ke semua halaman** tetap dicentang.
+7. Klik **Tambah Watermark** untuk memproses dan mengunduh.
+
+## Opsi
+
+**Pengaturan watermark teks:**
+
+- **Teks** -- Teks watermark (misalnya "RAHASIA", "DRAF").
+- **Ukuran Font** -- Dari 10 hingga 200 poin. Default 72.
+- **Warna** -- Warna apa pun melalui pemilih warna.
+- **Opasitas** -- Atur transparansi dari sepenuhnya transparan hingga sepenuhnya buram.
+- **Rotasi** -- Putar teks watermark dari -180 hingga 180 derajat.
+
+**Pengaturan watermark gambar:**
+
+- **Unggah Gambar** -- Unggah file PNG, JPG, atau gambar lain untuk digunakan sebagai watermark.
+- **Opasitas** -- Atur transparansi gambar.
+- **Skala** -- Ubah ukuran watermark gambar.
+
+**Pengaturan tata letak:**
+
+- **Tunggal** -- Satu watermark per halaman, diposisikan dengan menyeret atau dengan preset posisi.
+- **Ubin** -- Mengulang watermark di seluruh halaman dalam kisi diagonal yang mengikuti sudut rotasi, sehingga tanda menutupi dokumen dari tepi ke tepi.
+- **Jarak horizontal** -- Jarak antarubin sepanjang arah teks, sebagai persentase lebar watermark (hanya mode ubin).
+- **Jarak vertikal** -- Jarak antarbaris ubin, sebagai persentase tinggi watermark (hanya mode ubin).
+
+**Pengaturan umum:**
+
+- **Terapkan ke semua halaman** -- Jika dicentang, watermark yang sama berlaku untuk setiap halaman. Hapus centang untuk mengatur watermark individual per halaman.
+- **Rentang Halaman** -- Tentukan halaman mana yang diberi watermark (misalnya "1-3, 5, 7-9" atau "all").
+
+## Fitur
+
+- Pemosisian seret dan lepas visual pada pratinjau PDF langsung
+- Watermark yang dapat diubah ukurannya dengan pegangan sudut
+- Mode watermark teks dan gambar
+- Tata letak tunggal atau ubin (berulang) seluruh halaman dengan jarak yang dapat diatur
+- Penerapan watermark per halaman atau global
+- Navigasi halaman demi halaman di pratinjau
+- Kontrol opasitas dan rotasi
+- Penyaringan rentang halaman
+
+## Kasus Penggunaan
+
+- Menandai dokumen draf dengan "DRAFT" sebelum diedarkan untuk ditinjau
+- Menambahkan watermark "RAHASIA" pada laporan keuangan yang sensitif
+- Memberi merek pada dokumen dengan watermark gambar logo perusahaan
+- Membubuhkan "SAMPLE" pada dokumentasi produk yang dibagikan kepada calon pelanggan
+- Menambahkan pemberitahuan hak cipta pada materi PDF yang didistribusikan
+
+## Tips
+
+- Untuk watermark diagonal di seluruh halaman, atur rotasi sekitar 45 derajat dan perbesar ukuran font.
+- Mode ubin membuat dokumen jauh lebih sulit dipakai ulang setelah dipotong, karena menghapus satu tanda masih menyisakan puluhan lainnya. Turunkan opasitas saat memakai ubin agar teks di bawahnya tetap terbaca.
+- Watermark gambar dengan latar belakang transparan (format PNG) menyatu lebih alami dengan isi dokumen.
+- Jika Anda memerlukan teks watermark yang berbeda di halaman berbeda, hapus centang "Terapkan ke semua halaman" dan berpindah halaman satu per satu.
+
+## Alat Terkait
+
+- [Kepala & Kaki Halaman](./header-footer)
+- [Tambah Stempel](./add-stamps)
+- [Penomoran Bates](./bates-numbering)
+- [Tanda Tangani PDF](./sign-pdf)
diff --git a/docs/id/tools/adjust-colors.md b/docs/id/tools/adjust-colors.md
new file mode 100644
index 00000000..9153f7b2
--- /dev/null
+++ b/docs/id/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Sesuaikan Warna
+description: Atur kecerahan, kontras, saturasi, rona, suhu, tint, gamma, dan sepia pada PDF Anda.
+---
+
+# Sesuaikan Warna
+
+Perangkat color grading lengkap untuk PDF. Atur delapan parameter independen (kecerahan, kontras, saturasi, pergeseran rona, suhu, tint, gamma, dan sepia) dengan pratinjau langsung yang diperbarui saat Anda menggeser setiap slider.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Editor terbuka menampilkan pratinjau halaman pertama dan panel pengaturan warna.
+3. Geser slider untuk menyesuaikan setiap parameter warna. Pratinjau diperbarui secara real time.
+4. Klik **Atur Ulang** untuk mengembalikan semua slider ke posisi default.
+5. Klik **Terapkan** untuk memproses semua halaman dan mengunduh PDF yang telah disesuaikan.
+
+## Opsi
+
+- **Kecerahan** -- Terangkan atau gelapkan seluruh halaman (-100 hingga +100).
+- **Kontras** -- Tingkatkan atau kurangi perbedaan antara area terang dan gelap (-100 hingga +100).
+- **Saturasi** -- Tingkatkan atau kurangi intensitas warna (-100 hingga +100). Mengaturnya ke -100 menghasilkan skala abu-abu.
+- **Pergeseran Rona** -- Putar roda warna untuk menggeser semua warna secara seragam.
+- **Suhu** -- Geser warna menjadi lebih hangat (kuning/oranye) atau lebih dingin (biru).
+- **Pewarnaan** -- Tambahkan nuansa hijau atau magenta.
+- **Gamma** -- Atur kecerahan nada tengah menggunakan kurva gamma. Nilai di bawah 1,0 menggelapkan nada tengah; nilai di atas 1,0 menerangkannya.
+- **Sepia** -- Terapkan efek nada sepia klasik. Nilai lebih tinggi menghasilkan rona cokelat yang lebih kuat.
+
+## Fitur
+
+- Delapan parameter warna yang dapat diatur secara independen
+- Pratinjau langsung yang langsung merespons perubahan slider
+- Tombol reset untuk kembali ke default dengan cepat
+- Memproses semua halaman dalam dokumen
+- Bekerja dengan konten PDF apa pun (teks, gambar, grafis)
+
+## Kasus Penggunaan
+
+- Mencerahkan hasil pindai yang gelap atau memperbaiki halaman yang terlalu terang
+- Mengurangi saturasi dokumen berwarna untuk menghemat tinta sebelum dicetak
+- Menerapkan nada sepia untuk tampilan antik pada sertifikat atau penghargaan
+- Memperbaiki suhu warna pada foto yang tersemat di PDF
+- Meningkatkan kontras pada dokumen pindaian yang pudar atau berkualitas rendah
+
+## Tips
+
+- Untuk konversi skala abu-abu yang cepat, seret slider saturasi sampai -100.
+- Slider gamma sangat berguna untuk meningkatkan keterbacaan dokumen pindaian yang nada tengahnya terlalu gelap atau terlalu terang.
+- Seperti alat efek gambar lainnya, alat ini merasterisasi setiap halaman. Hasilnya berbasis gambar, sehingga teks tidak dapat dipilih.
+
+## Alat Terkait
+
+- [Balikkan Warna](./invert-colors)
+- [Efek Pemindai](./scanner-effect)
+- [Warna Latar Belakang](./background-color)
diff --git a/docs/id/tools/alternate-merge.md b/docs/id/tools/alternate-merge.md
new file mode 100644
index 00000000..913f920b
--- /dev/null
+++ b/docs/id/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Selang-seling & Campur Halaman
+description: Gabungkan PDF dengan menyisipkan halaman dari setiap file secara bergantian, dengan bookmark tetap dipertahankan.
+---
+
+# Selang-seling & Campur Halaman
+
+Selingi halaman dari beberapa file PDF sehingga halaman muncul bergantian antardokumen. Gunakan alat ini ketika penggabungan biasa hanya menyambung file ujung ke ujung, padahal Anda membutuhkan halaman 1 File A, lalu halaman 1 File B, lalu halaman 2 File A, dan seterusnya.
+
+## Cara Kerja
+
+1. Unggah setidaknya dua file PDF menggunakan area unggah.
+2. Alat ini menampilkan setiap file beserta jumlah halaman dan ukuran filenya.
+3. Seret pegangan untuk mengatur ulang halaman file mana yang tampil lebih dulu dalam urutan penyelingan.
+4. Klik **Campur Halaman** untuk menghasilkan keluaran yang diselingi.
+5. Hasilnya diunduh sebagai `alternated-mixed.pdf`.
+
+## Fitur
+
+- Menyelingi halaman dari sejumlah PDF (minimal dua)
+- Pengaturan ulang urutan file dengan seret dan lepas untuk mengatur prioritas penyelingan
+- Mempertahankan bookmark dari dokumen sumber
+- Menampilkan jumlah halaman dan ukuran file untuk setiap file yang diunggah
+- Diproses melalui web worker khusus agar UI tetap responsif
+
+## Kasus Penggunaan
+
+- Menyusun ulang hasil pindai bolak-balik ketika halaman ganjil dan genap dipindai secara terpisah
+- Menggabungkan lembar soal dengan kunci jawaban sehingga setiap soal diikuti jawabannya
+- Menggabungkan dokumen dua bahasa halaman demi halaman (misalnya bahasa Inggris di satu sisi, terjemahan di sisi berikutnya)
+- Menyelingi pindaian depan dan belakang dari pemindai satu sisi
+
+## Tips
+
+- Jika PDF sumber Anda memiliki jumlah halaman berbeda, halaman dokumen yang lebih pendek akan habis lebih dulu dan sisa halaman dari dokumen yang lebih panjang akan muncul di bagian akhir.
+- Urutan file penting: file pertama dalam daftar menyumbang halaman pertama pada hasil. Seret untuk mengatur ulang jika perlu.
+
+## Alat Terkait
+
+- [Gabung PDF](./merge-pdf)
+- [Atur & Duplikat](./organize-pdf)
+- [Pisah PDF](./split-pdf)
diff --git a/docs/id/tools/background-color.md b/docs/id/tools/background-color.md
new file mode 100644
index 00000000..ca621b20
--- /dev/null
+++ b/docs/id/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Warna Latar Belakang
+description: Ubah warna latar belakang setiap halaman PDF Anda sambil mempertahankan semua konten di atasnya.
+---
+
+# Warna Latar Belakang
+
+Atur warna latar belakang polos di belakang semua konten yang ada di PDF Anda. Alat ini membuat persegi panjang berwarna pada setiap halaman dan menempatkan konten asli di atasnya, sehingga teks, gambar, dan grafis tetap terlihat jelas pada latar belakang baru.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Pilih warna latar belakang menggunakan pemilih warna. Defaultnya kuning muda (#FFFFCC).
+3. Klik **Ubah Warna Latar Belakang** untuk memproses.
+4. PDF yang telah diperbarui diunduh secara otomatis.
+
+## Opsi
+
+- **Warna Latar Belakang** -- Pemilih warna standar untuk memilih warna polos apa pun. Defaultnya kuning muda.
+
+## Fitur
+
+- Menerapkan warna latar belakang seragam pada setiap halaman
+- Mempertahankan semua konten asli (teks, gambar, grafis vektor) di atas lapisan berwarna
+- Mempertahankan dimensi halaman asli
+- Bekerja pada dokumen dengan jumlah halaman berapa pun
+
+## Kasus Penggunaan
+
+- Menambahkan latar krem atau gading muda agar dokumen tampak lebih lembut seperti kertas
+- Memberi kode warna pada kumpulan dokumen dengan menerapkan warna latar berbeda untuk setiap kategori
+- Membuat versi dokumen yang sama dengan tampilan berbeda untuk audiens yang berbeda
+- Menambahkan rona latar yang terang untuk meningkatkan keterbacaan saat dokumen diproyeksikan ke layar
+
+## Tips
+
+- Warna terang dan lembut paling cocok. Latar belakang yang sangat gelap dapat membuat teks sulit dibaca kecuali teksnya sudah berwarna terang.
+- Jika Anda ingin mengubah warna latar belakang sekaligus warna teks, terapkan warna latar belakang lebih dulu, lalu gunakan [Ubah Warna Teks](./text-color) pada hasilnya.
+- Alat ini bekerja pada tingkat struktur PDF (bukan rasterisasi), sehingga teks tetap dapat dipilih dan dicari pada hasilnya.
+
+## Alat Terkait
+
+- [Ubah Warna Teks](./text-color)
+- [Balikkan Warna](./invert-colors)
+- [Sesuaikan Warna](./adjust-colors)
diff --git a/docs/id/tools/bates-numbering.md b/docs/id/tools/bates-numbering.md
new file mode 100644
index 00000000..2b87f861
--- /dev/null
+++ b/docs/id/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Penomoran Bates
+description: Terapkan nomor Bates ke satu atau beberapa PDF dengan templat, padding, font, dan posisi yang dapat disesuaikan.
+---
+
+# Penomoran Bates
+
+Penomoran Bates membubuhkan pengenal berurutan pada setiap halaman PDF Anda. Ini adalah metode standar untuk memberi label dokumen dalam proses hukum, audit, dan alur kerja kepatuhan. Alat ini mendukung banyak file, templat yang dapat disesuaikan, dan menghasilkan PDF bernomor terpisah atau satu arsip ZIP.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF. Anda dapat menyeret banyak file sekaligus.
+2. Pilih preset gaya atau buat templat kustom.
+3. Atur posisi, font, ukuran, warna, dan nomor awal.
+4. Klik **Terapkan Nomor Bates** untuk memproses.
+5. Satu file diunduh langsung. Beberapa file diunduh sebagai arsip ZIP.
+
+## Opsi
+
+- **Preset Gaya** -- Pilih dari format bawaan:
+ - Exhibit + Case + Bates + Page (misalnya "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (tanpa nomor halaman)
+ - Case + Bates
+ - Hanya Nomor Bates (misalnya "000001")
+ - Kustom (tulis templat Anda sendiri)
+- **Sesuaikan Gaya** -- String templat yang menggunakan placeholder: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Padding Bates** -- Jumlah digit (3 hingga 6) untuk nomor Bates yang diberi nol di depan. Hanya terlihat pada mode kustom.
+- **Posisi** -- Header atau Footer, Kiri, Tengah, atau Kanan.
+- **Bates Dimulai Dari** -- Nomor Bates pertama. Default 1. Penomoran berlanjut di seluruh file.
+- **Penghitung File Dimulai Dari** -- Nomor awal untuk placeholder `[FILE]`.
+- **Font** -- Helvetica, Times New Roman, atau Courier.
+- **Ukuran Font** -- Ukuran teks yang dibubuhkan.
+- **Warna** -- Pemilih warna untuk teks nomor Bates.
+
+## Fitur
+
+- Pratinjau langsung yang menunjukkan tampilan nomor Bates di semua file yang diunggah
+- Dukungan banyak file dengan penomoran berkelanjutan di seluruh dokumen
+- Pengaturan ulang urutan file dengan seret dan lepas untuk mengatur urutan penomoran
+- Enam opsi posisi (header/footer, kiri/tengah/kanan)
+- Perhitungan margin adaptif yang menyesuaikan ukuran halaman berbeda
+- Keluaran ZIP untuk batch multi-file
+- Placeholder templat untuk fleksibilitas maksimal
+
+## Kasus Penggunaan
+
+- Membubuhkan nomor exhibit berurutan pada dokumen discovery untuk litigasi
+- Menomori paket bukti audit yang terdiri dari puluhan file
+- Menerapkan nomor referensi regulasi pada dokumentasi kepatuhan
+- Memberi label exhibit permohonan paten dengan pengenal khusus perkara
+
+## Tips
+
+- Seret file dalam daftar file untuk mengatur ulang urutannya sebelum diproses. Urutan penomoran Bates mengikuti urutan ini.
+- Gunakan placeholder `[FILENAME]` untuk menyertakan nama file asli dalam stempel, yang membantu melacak halaman kembali ke dokumen sumber.
+- Kotak pratinjau diperbarui secara real time saat Anda mengubah pengaturan, sehingga Anda dapat memeriksa format sebelum memproses.
+
+## Alat Terkait
+
+- [Nomor Halaman](./page-numbers)
+- [Tambahkan Label Halaman](./add-page-labels)
+- [Kepala & Kaki Halaman](./header-footer)
diff --git a/docs/id/tools/bmp-to-pdf.md b/docs/id/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..b3959b64
--- /dev/null
+++ b/docs/id/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP ke PDF
+description: Ubah gambar bitmap BMP menjadi PDF langsung di browser Anda, tanpa unggahan ke server mana pun.
+---
+
+# BMP ke PDF
+
+Ubah file Windows Bitmap (BMP) menjadi PDF. BMP adalah format gambar tanpa kompresi yang masih ditemukan pada sistem lama, pencitraan medis, dan pemindai industri. Alat ini mengubahnya menjadi PDF tanpa perlu menginstal apa pun.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :------- |
+| BMP | `.bmp` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file BMP Anda.
+2. Tinjau daftar file. Tambahkan file lain atau hapus yang tidak diinginkan.
+3. Klik **Konversi ke PDF**. Hasilnya diunduh sebagai `from_bmps.pdf`.
+
+Setiap BMP digambar pada canvas, diekspor sebagai PNG, lalu disematkan ke PDF menggunakan pdf-lib. Ukuran halaman sesuai dengan dimensi gambar asli.
+
+## Opsi
+
+Alat ini tidak menyediakan pengaturan kualitas tambahan. Gambar disematkan dalam resolusi aslinya sebagai PNG lossless di dalam PDF.
+
+## Kasus Penggunaan
+
+- Mengubah dokumen pindaian lama yang tersimpan sebagai BMP menjadi PDF arsip
+- Mengubah tangkapan layar BMP dari aplikasi Windows lama menjadi dokumen yang mudah dibagikan
+- Memproses keluaran pemindai medis atau industri yang secara default berformat BMP
+- Memigrasikan arsip gambar lama ke format yang lebih portabel
+
+## Tips
+
+- File BMP tidak terkompresi, sehingga cenderung besar. PDF yang dihasilkan akan jauh lebih kecil karena gambar dienkode ulang sebagai PNG secara internal.
+- Jika Anda memiliki file BMP bersama format gambar lain, gunakan alat [Gambar ke PDF](./image-to-pdf) untuk mengonversi semuanya dalam satu batch.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
+- [TIFF ke PDF](./tiff-to-pdf)
diff --git a/docs/id/tools/bookmark.md b/docs/id/tools/bookmark.md
new file mode 100644
index 00000000..b78f4e72
--- /dev/null
+++ b/docs/id/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Edit Bookmark
+description: Tambah, edit, impor, ekspor, dan hapus bookmark PDF dengan editor visual serta dukungan CSV/JSON.
+---
+
+# Edit Bookmark
+
+Editor bookmark memberi Anda kendali penuh atas bookmark navigasi PDF (disebut juga outline). Anda dapat menambah bookmark baru, mengedit yang sudah ada, menata ulang hierarki, serta mengimpor atau mengekspor data bookmark dalam format CSV dan JSON.
+
+## Cara Kerja
+
+1. Unggah PDF Anda dengan mengklik atau menyeret file ke area unggah.
+2. Secara opsional, centang **Ekstrak otomatis bookmark yang ada** untuk memuat struktur bookmark yang sudah ada di dokumen.
+3. Editor terbuka dengan tampilan terbagi: penampil PDF di kiri, panel bookmark di kanan.
+4. Ketik judul bookmark lalu klik **Tambahkan ke Halaman** untuk membuat bookmark yang mengarah ke halaman saat ini.
+5. Gunakan tombol di toolbar untuk menata ulang, memberi gaya, atau menghapus bookmark.
+6. Klik **Simpan PDF dengan Bookmark** untuk mengunduh file yang sudah diperbarui.
+
+## Fitur
+
+- Penampil PDF visual dengan navigasi halaman, kontrol zoom, dan input pindah ke halaman
+- Tambah bookmark ke halaman mana pun dengan satu klik
+- Klik langsung pada PDF untuk menentukan tujuan bookmark secara presisi (mode pemilihan)
+- Hierarki bookmark bertingkat dengan penataan ulang melalui seret dan lepas
+- Operasi massal: pilih beberapa bookmark untuk mengubah warna, gaya, atau menghapusnya sekaligus
+- Pencarian bookmark untuk menemukan entri dengan cepat di struktur yang besar
+- Dukungan undo dan redo untuk semua perubahan
+- Impor bookmark dari file CSV (judul, halaman, level) atau JSON
+- Ekspor bookmark ke CSV atau JSON untuk diedit di luar
+- Gaya bookmark: warna (merah, biru, hijau, kuning, ungu) dan gaya font (tebal, miring, tebal miring)
+- Navigasi cepat: telusuri halaman dengan tombol page up/down
+
+## Opsi
+
+- **Ekstrak otomatis bookmark yang ada**: Jika dicentang, alat membaca dan menampilkan bookmark PDF yang ada saat dimuat.
+- **Mode Massal**: Aktifkan untuk memilih beberapa bookmark dan menerapkan perubahan warna, gaya, atau penghapusan secara massal.
+- **Luaskan Semua / Ciutkan Semua**: Tampilkan atau sembunyikan anak bookmark bertingkat dengan cepat.
+
+## Kasus Penggunaan
+
+- Menambahkan daftar isi ke buku teks atau manual yang belum memiliki bookmark
+- Menyusun ulang bookmark pada dokumen hasil pindai setelah proses OCR
+- Mengekspor bookmark ke CSV, mengeditnya di spreadsheet, lalu mengimpornya kembali
+- Merapikan bookmark buatan otomatis yang memiliki referensi halaman keliru
+- Menambahkan bookmark berwarna untuk menandai bagian penting dalam berkas hukum
+
+## Tips
+
+- Gunakan impor CSV untuk membuat banyak bookmark sekaligus. Formatnya sederhana: `title,page,level` dengan level 1 sebagai tingkat teratas.
+- Mode pemilihan memungkinkan Anda mengklik titik tertentu di halaman PDF untuk menentukan tujuan bookmark, yang lebih presisi daripada hanya menargetkan nomor halaman.
+- Ekspor bookmark Anda sebelum melakukan perubahan besar agar Anda memiliki cadangan.
+
+## Alat Terkait
+
+- [Daftar Isi](./table-of-contents)
+- [Editor PDF](./edit-pdf)
+- [Tambahkan label halaman](./add-page-labels)
diff --git a/docs/id/tools/cbz-to-pdf.md b/docs/id/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..b00b3ea3
--- /dev/null
+++ b/docs/id/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ ke PDF
+description: Konversi arsip komik CBZ dan CBR ke PDF di browser Anda. Gratis, privat, tanpa unggahan.
+---
+
+# CBZ ke PDF
+
+Ubah file arsip komik menjadi PDF. CBZ dan CBR adalah format standar untuk komik digital, yaitu arsip ZIP atau RAR berisi gambar. Alat ini mengekstrak setiap halaman, mempertahankan urutan baca, dan menghasilkan PDF rapi di mana setiap gambar menjadi halaman berukuran penuh.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----- | :------- | :-------------------------------------------------------------- |
+| CBZ | `.cbz` | Arsip komik berbasis ZIP (diproses secara lokal dengan pdf-lib) |
+| CBR | `.cbr` | Arsip komik berbasis RAR (diproses melalui mesin PyMuPDF) |
+
+Konverter CBZ mengenali gambar JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC, dan JXL di dalam arsip. Format non-standar dikonversi otomatis ke PNG sebelum disematkan.
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file CBZ atau CBR Anda. Anda dapat mencampur kedua format dalam satu batch.
+2. Tinjau file yang terdaftar. Hapus yang tidak Anda perlukan, atau klik **Tambah Lebih Banyak File** untuk menambah file.
+3. Klik **Konversi ke PDF**. Untuk file CBZ, alat membuka arsip ZIP, mengurutkan file gambar menurut nama secara natural, mendeteksi format asli setiap gambar, lalu menyematkannya ke PDF menggunakan pdf-lib. File CBR diproses melalui mesin PyMuPDF.
+4. Satu file diunduh sebagai PDF. Beberapa file menghasilkan arsip ZIP bernama `comic-converted.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi. Setiap gambar menjadi halaman yang ukurannya sama dengan dimensi aslinya, sehingga halaman ganda tetap lebar dan halaman tunggal tetap sempit.
+
+## Kasus Penggunaan
+
+- Membaca komik di tablet atau aplikasi ponsel yang mendukung PDF tetapi tidak CBZ/CBR
+- Mencetak halaman tertentu dari komik digital
+- Mengarsipkan koleksi komik ke format yang dapat dibuka penampil file apa pun
+- Membagikan komik kepada orang yang tidak memiliki pembaca komik khusus
+
+## Tips
+
+- Gambar di dalam arsip diurutkan secara natural (jadi `page2.jpg` muncul sebelum `page10.jpg`). Beri nama file dengan penomoran yang konsisten agar urutan halaman benar.
+- Konverter mendeteksi format gambar dari signature biner, bukan ekstensi file. PNG yang tidak sengaja diberi nama `.jpg` tetap akan tersemat dengan benar.
+- File CBZ diproses sepenuhnya di browser tanpa memuat mesin PyMuPDF, sehingga konversinya lebih cepat daripada file CBR.
+
+## Alat Terkait
+
+- [EPUB ke PDF](./epub-to-pdf)
+- [MOBI ke PDF](./mobi-to-pdf)
+- [Gambar ke PDF](./image-to-pdf)
diff --git a/docs/id/tools/change-permissions.md b/docs/id/tools/change-permissions.md
new file mode 100644
index 00000000..c95900a5
--- /dev/null
+++ b/docs/id/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Ubah Izin
+description: Atur atau ubah izin penggunaan PDF untuk mencetak, menyalin, mengedit, dan memberi anotasi. Menggunakan enkripsi AES 256-bit.
+---
+
+# Ubah Izin
+
+Atur secara rinci apa yang dapat dilakukan penerima terhadap PDF Anda. Berbeda dengan enkripsi dasar yang hanya mengunci file dengan kata sandi, alat ini memungkinkan Anda mengizinkan atau melarang pencetakan, penyalinan, pengeditan, anotasi, pengisian formulir, perakitan dokumen, dan ekstraksi halaman secara selektif, semuanya diberlakukan melalui enkripsi AES 256-bit.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Jika PDF sudah terenkripsi, masukkan **Kata Sandi Saat Ini**.
+3. Tetapkan **Kata Sandi Pengguna Baru** (diperlukan untuk membuka) dan/atau **Kata Sandi Pemilik Baru** (mengatur izin).
+4. Aktifkan atau nonaktifkan setiap izin menggunakan kotak centang.
+5. Klik **Ubah Izin**.
+6. Unduh PDF yang telah diperbarui.
+
+Jika Anda mengosongkan kedua kolom kata sandi baru, alat akan mendekripsi PDF sepenuhnya, menghapus semua enkripsi dan pembatasan.
+
+## Kontrol Izin
+
+| Izin | Yang Dikontrol |
+| ------------------------------ | ------------------------------------------------------- |
+| **Izinkan Pencetakan** | Apakah dokumen boleh dicetak |
+| **Izinkan Menyalin Teks** | Apakah teks dan gambar boleh dipilih dan disalin |
+| **Izinkan Pengubahan** | Apakah konten dokumen boleh diedit |
+| **Izinkan Anotasi** | Apakah komentar, sorotan, dan stempel boleh ditambahkan |
+| **Izinkan Pengisian Formulir** | Apakah kolom formulir interaktif boleh diisi |
+| **Izinkan Penyusunan Dokumen** | Apakah halaman boleh disisipkan, dihapus, atau diputar |
+| **Izinkan Ekstraksi Halaman** | Apakah halaman tertentu boleh diekstrak |
+
+Semua izin memerlukan kata sandi pemilik agar dapat diberlakukan. Tanpa kata sandi pemilik, flag izin diabaikan oleh sebagian besar pembaca PDF.
+
+## Cara Kerja Izin di PDF
+
+Izin PDF merupakan bagian dari spesifikasi enkripsi. Izin disimpan sebagai bit flag di dalam encryption dictionary dan diberlakukan oleh pembaca PDF yang patuh. Perbedaan utamanya:
+
+- **Kata sandi pengguna**: Diperlukan untuk membuka file sama sekali.
+- **Kata sandi pemilik**: Diperlukan untuk mengubah izin atau menghapus pembatasan. Tanpanya, flag izin menentukan operasi apa yang boleh dilakukan pengguna.
+
+Jika Anda hanya menetapkan kata sandi pemilik (tanpa kata sandi pengguna), siapa pun dapat membuka file tetapi dibatasi pada operasi yang diizinkan. Jika Anda menetapkan keduanya, file memerlukan kata sandi untuk dibuka dan dibatasi setelah autentikasi.
+
+## Kasus Penggunaan
+
+- Mendistribusikan laporan yang dapat dilihat dan dicetak tetapi tidak dapat diedit atau disalin
+- Membagikan templat kontrak yang dapat diisi penerima tetapi tidak dapat diubah
+- Menerbitkan katalog PDF dengan penyalinan gambar dinonaktifkan
+- Mengizinkan anotasi pada draf tinjauan sambil mencegah perubahan struktur
+
+## Tips
+
+- Agar efektif, selalu tetapkan kata sandi pemilik. Izin tanpa kata sandi pemilik tidak dapat ditegakkan.
+- Beberapa alat PDF pihak ketiga mengabaikan flag izin. Untuk perlindungan lebih kuat, pertimbangkan merasterisasi PDF atau menggunakan DRM.
+- Gunakan alat ini untuk meningkatkan PDF lama berenkripsi RC4 ke AES-256.
+
+## Alat Terkait
+
+- [Lindungi PDF](./protect-pdf): perlindungan kata sandi sederhana tanpa izin yang terperinci
+- [Buka Kunci PDF](./unlock-pdf): hapus enkripsi sepenuhnya
+- [Hapus Pembatasan](./remove-restrictions): hapus semua pembatasan jika Anda memiliki kata sandi pemilik
diff --git a/docs/id/tools/combine-single-page.md b/docs/id/tools/combine-single-page.md
new file mode 100644
index 00000000..095cd6a3
--- /dev/null
+++ b/docs/id/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Gabung ke Halaman Tunggal
+description: Rangkai semua halaman PDF menjadi satu gulungan vertikal atau horizontal yang berkesinambungan.
+---
+
+# Gabung ke Halaman Tunggal
+
+Gabungkan setiap halaman PDF menjadi satu halaman panjang. Halaman dirangkai secara vertikal (seperti gulungan) atau horizontal (berdampingan), menghasilkan satu halaman kontinu pada output.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Pilih arah tata letak: **Vertikal** (halaman ditumpuk dari atas ke bawah) atau **Horizontal** (halaman diletakkan berdampingan).
+3. Atur jarak antar halaman dalam satuan point.
+4. Pilih warna latar untuk celah di antara halaman.
+5. Secara opsional, aktifkan pemisah (garis tipis di antara halaman) dan atur ketebalan serta warnanya.
+6. Klik tombol proses. Hasilnya adalah PDF satu halaman.
+
+## Fitur
+
+- Perangkaian halaman vertikal atau horizontal
+- Jarak antar halaman yang dapat diatur
+- Pemilih warna latar untuk area celah
+- Garis pemisah opsional dengan ketebalan dan warna yang dapat disesuaikan
+- Merender setiap halaman asli dengan resolusi penuh ke kanvas gabungan
+
+## Opsi
+
+| Opsi | Deskripsi |
+| --------------------------- | --------------------------------------------------- |
+| **Arah Tata Letak** | Vertical (bertumpuk) atau Horizontal (berdampingan) |
+| **Jarak** | Celah antar halaman dalam point |
+| **Warna Latar Belakang** | Warna area di antara halaman |
+| **Tambahkan Garis Pemisah** | Aktifkan garis tipis di antara halaman |
+| **Ketebalan Pemisah** | Ketebalan garis dalam point |
+| **Warna Pemisah** | Warna garis pemisah |
+
+## Kasus Penggunaan
+
+- Membuat satu gambar panjang dari wireframe atau mockup desain multi-halaman
+- Menghasilkan tampilan dokumen yang dapat digulir terus-menerus untuk disematkan di web
+- Merangkai komik atau storyboard multi-halaman menjadi satu strip
+- Membuat tampilan panorama halaman berurutan untuk ditinjau
+
+## Tips
+
+- Orientasi vertikal paling cocok untuk dokumen dengan halaman potret. Horizontal lebih baik untuk konten berorientasi lanskap.
+- Dokumen besar dengan banyak halaman akan menghasilkan output yang sangat tinggi atau lebar. Beberapa penampil PDF mungkin kesulitan dengan halaman tunggal yang sangat besar.
+- Menambahkan pemisah dengan warna kontras memudahkan Anda melihat di mana satu halaman asli berakhir dan halaman berikutnya dimulai.
+
+## Alat Terkait
+
+- [N-Up PDF](./n-up-pdf)
+- [Gabung PDF](./merge-pdf)
+- [Bagi Halaman](./divide-pages)
diff --git a/docs/id/tools/compare-pdfs.md b/docs/id/tools/compare-pdfs.md
new file mode 100644
index 00000000..7c55b1a2
--- /dev/null
+++ b/docs/id/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Bandingkan PDF
+description: Bandingkan dua dokumen PDF secara berdampingan atau dalam mode overlay dengan deteksi dan pengelompokan perubahan yang terperinci.
+---
+
+# Bandingkan PDF
+
+Unggah dua PDF dan lihat dengan tepat apa yang berubah di antara keduanya. Alat ini memasangkan halaman secara cerdas, mendeteksi perbedaan pada teks, gambar, anotasi, header, dan format, lalu menampilkannya dalam tampilan berdampingan atau overlay.
+
+## Cara Kerja
+
+1. Unggah dua file PDF: versi asli (kiri) dan versi revisi (kanan).
+2. Alat memasangkan halaman antar dokumen menggunakan signature konten.
+3. Pilih mode tampilan: **Berdampingan** atau **Tumpang Tindih**.
+4. Berpindah antar pasangan halaman menggunakan kontrol paginasi.
+5. Perbedaan disorot dan dikelompokkan. Gunakan panel filter untuk berfokus pada jenis perubahan tertentu.
+6. Secara opsional, ekspor hasil perbandingan sebagai laporan PDF.
+
+## Fitur
+
+- Pemasangan halaman otomatis berdasarkan kemiripan konten
+- Tampilan perbandingan berdampingan dan overlay
+- Pengelompokan perubahan: teks, gambar, header/footer, anotasi, format, latar belakang
+- Tombol filter per kategori untuk menampilkan atau menyembunyikan jenis perubahan tertentu
+- Pencarian perubahan teks dengan filter kueri
+- Dukungan OCR untuk membandingkan dokumen hasil pindai
+- Kontrol zoom untuk pemeriksaan terperinci
+- Pengguliran tersinkron antar panel pada mode berdampingan
+- Ekspor hasil perbandingan sebagai PDF
+
+## Opsi
+
+| Opsi | Deskripsi |
+| --------------------- | ------------------------------------------------------------------------------------------- |
+| **Mode Tampilan** | Berdampingan atau Tumpang Tindih |
+| **OCR** | Aktifkan/nonaktifkan OCR untuk perbandingan dokumen hasil pindai |
+| **Bahasa OCR** | Bahasa untuk ekstraksi teks OCR |
+| **Filter Kategori** | Atur visibilitas perubahan teks, gambar, header/footer, anotasi, format, dan latar belakang |
+| **Cakupan Perubahan** | Pada mode tumpang tindih, filter antara semua perubahan atau hanya konten |
+| **Zoom** | Atur tingkat pembesaran untuk pemeriksaan terperinci |
+
+## Kasus Penggunaan
+
+- Meninjau revisi kontrak untuk menemukan dengan tepat apa yang berubah antar versi
+- Membandingkan mockup desain untuk memastikan ekspor PDF sesuai harapan
+- Mengaudit perubahan dokumen di industri teregulasi yang mewajibkan setiap suntingan dicatat
+- Memverifikasi bahwa proses konversi PDF mempertahankan konten asli dengan akurat
+- Memeriksa dokumen terjemahan terhadap sumbernya untuk perubahan tata letak
+
+## Tips
+
+- Tampilan overlay menumpuk kedua dokumen sehingga perbedaan spasial (elemen bergeser, gambar berubah ukuran) langsung terlihat.
+- Aktifkan OCR saat membandingkan dokumen hasil pindai yang tidak memiliki lapisan teks. Mesin perbandingan akan mengekstrak teks dari gambar halaman.
+- Gunakan filter kategori untuk berfokus pada yang penting. Misalnya, sembunyikan perubahan format jika Anda hanya peduli pada perbedaan isi teks.
+
+## Alat Terkait
+
+- [Lihat Metadata](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [Gabung PDF](./merge-pdf)
diff --git a/docs/id/tools/compress-pdf.md b/docs/id/tools/compress-pdf.md
new file mode 100644
index 00000000..2f2c66d9
--- /dev/null
+++ b/docs/id/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Kompres PDF
+description: Kurangi ukuran file PDF hingga 90% dengan mesin Hyper Compress. Mendukung ukuran file target, pemrosesan batch, dan pengaturan kualitas kustom.
+---
+
+# Kompres PDF
+
+Perkecil file PDF Anda tanpa merusaknya. Kompres PDF ditenagai oleh [Hyper Compress](https://www.bentopdf.com/hyper-compress), mesin kompresi milik BentoPDF sendiri. Mesin ini mengompresi ulang gambar, membuat subset dan menggabungkan font, serta membuang beban tak terpakai seperti thumbnail tersemat dan data aplikasi privat. PDF tetap berfungsi penuh: teks tetap dapat dipilih, tautan dan kolom formulir tetap bekerja.
+
+Hyper Compress dikompilasi ke WebAssembly dan disertakan bersama BentoPDF, sehingga kompresi berjalan offline dan di lingkungan air-gapped tanpa pengaturan tambahan.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik area unggah atau menyeret file ke dalamnya.
+2. Pilih **Tingkat Kompresi**: Rendah, Sedang, Tinggi, atau Lossless.
+3. Secara opsional, masukkan **Ukuran File Target**, atau buka **Pengaturan Kustom** untuk kontrol yang lebih rinci, termasuk **Konversi ke skala abu-abu**.
+4. Klik **Kompres PDF**. Untuk beberapa file, Anda mendapatkan satu unduhan ZIP.
+
+## Dokumen Khusus
+
+- **PDF yang ditandatangani secara digital** dikembalikan tanpa perubahan, karena setiap perubahan akan membatalkan tanda tangan. Aktifkan **Abaikan perlindungan konten** di Pengaturan Kustom untuk menghapus tanda tangan dan mengompresnya; tanda tangan yang terlihat tetap ada di halaman, tetapi file tidak lagi bertanda tangan.
+- **File PDF/A** kehilangan label PDF/A setelah kompresi, sehingga file tidak pernah mengklaim kesesuaian yang tidak lagi dipenuhi. Aktifkan **Pertahankan PDF/A** di Pengaturan Kustom untuk mempertahankan kesesuaian file.
+- **PDF yang dilindungi kata sandi** mendapatkan kolom kata sandi pada kartu filenya. Masukkan kata sandi di sana dan Hyper Compress membuka file itu sendiri, tanpa langkah pembukaan kunci terpisah. Dengan dua file terkunci atau lebih, satu kolom bersama membuka semua file yang memakai kata sandi yang sama. Salinan terkompresi tidak memiliki kata sandi; gunakan [Lindungi PDF](./protect-pdf) untuk menambahkannya kembali.
+- **Hasil pindai tanpa lapisan teks** dapat menyusut lebih jauh dengan **Rasterisasi halaman menjadi gambar** di Pengaturan Kustom, yang mengganti setiap halaman dengan satu gambar yang dioptimalkan. Opsi ini dilewati untuk dokumen yang memiliki teks yang dapat dipilih, termasuk hasil pindai ber-OCR, kecuali **Abaikan perlindungan konten** aktif. Dalam kasus itu halaman teks juga menjadi gambar, sehingga teks tidak lagi dapat dipilih dan tautan berhenti berfungsi.
+
+## Tingkat Kompresi
+
+| Tingkat | Kualitas Gambar | Resolusi Maks. | Paling Cocok Untuk |
+| ------------ | ------------------- | -------------- | ------------------------------- |
+| **Rendah** | 80 | 200 DPI | Menjaga kualitas visual |
+| **Sedang** | 50 | 150 DPI | Dokumen sehari-hari |
+| **Tinggi** | 20 | 72 DPI | Lampiran email, unggahan ke web |
+| **Lossless** | Gambar tidak diubah | Tidak berubah | Salinan arsip |
+
+Tinggi juga melepas penyematan 14 font PDF standar, ditambah font yang mirip seperti Arial bila aman.
+
+## Ukuran File Target
+
+Masukkan ukuran dalam KB atau MB dan Hyper Compress mencari kualitas gambar terbaik yang masih muat, dimulai dari tingkat yang Anda pilih. Jika dokumen tidak dapat sekecil itu, Anda mendapatkan versi terkecil yang dapat dibuat beserta pesan yang menyatakannya. Halaman khusus seperti [Kompres PDF ke 1MB](https://www.bentopdf.com/compress-pdf-to-1mb) terbuka dengan target yang sudah terisi.
+
+## Pengaturan Kustom
+
+Buka panel Pengaturan Kustom untuk menyesuaikan Hyper Compress secara langsung. Memilih tingkat kompresi mengatur ulang pengaturan ini ke nilai tingkat tersebut, dan mengedit salah satunya mengubah tingkat menjadi Kustom.
+
+- **Abaikan perlindungan konten**: secara default Hyper Compress tidak menyentuh PDF bertanda tangan dan tidak merasterisasi halaman yang memiliki teks. Mengaktifkannya melewati keduanya. Pengaturan ini tetap aktif saat Anda mengubah tingkat.
+
+- **Gambar**: kualitas gambar, resolusi maksimum, resampling paksa, pengurangan warna, pemangkasan area gambar yang tidak terlihat, penghapusan gambar alternatif, penyederhanaan profil warna, JPEG 2000, dan mode lossless
+- **Font**: pembuatan subset, penggabungan duplikat, dan pelepasan penyematan font standar serta font yang mirip
+- **Konten**: perataan anotasi, kolom formulir, atau tautan
+- **Pembersihan**: penghapusan thumbnail, data aplikasi, article thread, informasi web capture, structure tree, atau output intent
+- **Rasterisasi**: mengganti halaman dengan gambar, untuk hasil pindai berupa gambar saja; dilewati jika dokumen memiliki teks yang dapat dipilih
+- **Keluaran**: Pertahankan PDF/A, dan kompresi Brotli untuk pembaca PDF 2.0 yang mendukungnya
+
+## Kasus Penggunaan
+
+- Menurunkan laporan 50 MB agar di bawah batas lampiran email
+- Membuat hasil pindai muat di bawah batas unggah ketat sebuah portal dengan ukuran file target
+- Mengoptimalkan PDF pemasaran agar unduhan situs web lebih cepat
+- Mengarsipkan kumpulan dokumen besar saat biaya penyimpanan menjadi pertimbangan
+- Mengurangi penggunaan data seluler saat membagikan PDF melalui aplikasi perpesanan
+
+## Tips
+
+- Mulailah dengan Sedang. Jika hasilnya masih terlalu besar, tetapkan ukuran file target atau naikkan ke Tinggi.
+- Untuk hasil pindai tanpa lapisan teks, aktifkan Rasterisasi halaman menjadi gambar di Pengaturan Kustom.
+- Konversi ke skala abu-abu, di Pengaturan Kustom, dapat memangkas ukuran file untuk dokumen yang banyak warna.
+
+## Alat Terkait
+
+- [Linierisasi PDF](./linearize-pdf): optimalkan PDF terkompresi untuk tampilan web yang cepat
+- [Rasterisasi PDF](./rasterize-pdf): ubah halaman menjadi gambar pada DPI tertentu, termasuk halaman bertulisan
+- [Perbaiki PDF](./repair-pdf): perbaiki PDF yang rusak saat dikompresi di tempat lain
+- [Hapus Metadata](./remove-metadata): buang data tersembunyi demi privasi
diff --git a/docs/id/tools/crop-pdf.md b/docs/id/tools/crop-pdf.md
new file mode 100644
index 00000000..0c4041a7
--- /dev/null
+++ b/docs/id/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Potong PDF
+description: Potong halaman PDF secara visual dengan menggambar area pemotongan pada setiap halaman menggunakan editor berbasis Cropper.js.
+---
+
+# Potong PDF
+
+Pangkas margin halaman PDF Anda dengan antarmuka pemotongan visual. Gambar persegi pemotongan langsung pada setiap halaman, pratinjau hasilnya, lalu terapkan. Anda dapat menetapkan area pemotongan berbeda untuk halaman berbeda atau menerapkan pemotongan yang sama ke seluruh dokumen.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Editor pemotong terbuka, menampilkan halaman pertama dengan overlay pemotongan yang dapat diseret.
+3. Sesuaikan persegi pemotongan dengan menyeret tepi atau sudutnya.
+4. Gunakan tombol navigasi halaman untuk berpindah antar halaman dan menetapkan area pemotongan untuk masing-masing.
+5. Klik **Potong & Unduh** untuk menerapkan pemotongan dan mengunduh hasilnya.
+
+## Fitur
+
+- Editor pemotongan visual berbasis Cropper.js dengan handle untuk penyesuaian presisi
+- Navigasi halaman demi halaman untuk menetapkan area pemotongan individual
+- Menyimpan pengaturan pemotongan per halaman sehingga Anda dapat menentukan pemotongan berbeda untuk halaman berbeda
+- Pratinjau langsung area pemotongan yang dipilih
+- Mendukung PDF dengan ukuran atau orientasi halaman apa pun
+
+## Kasus Penggunaan
+
+- Menghapus margin lebar dari dokumen hasil pindai agar fokus pada area konten
+- Memangkas tanda potong atau tanda registrasi printer dari PDF prepress
+- Memotong slide kuliah untuk menghapus area catatan presenter
+- Menghapus header atau footer dari setiap halaman sebelum membagikan kutipan dokumen
+- Mengubah ukuran halaman agar sesuai dengan tampilan atau tata letak cetak tertentu
+
+## Tips
+
+- Overlay pemotongan dapat diubah ukuran dan dipindahkan secara bebas. Seret sudut untuk mengubah ukuran secara proporsional atau tepi untuk penyesuaian satu sumbu.
+- Untuk dokumen yang setiap halamannya memerlukan pemotongan yang sama, atur di halaman pertama. Alat mengingat area pemotongan Anda saat Anda berpindah halaman.
+- Jika Anda perlu menyeragamkan ukuran halaman alih-alih memotong secara visual, alat Perbaiki Ukuran Halaman mungkin lebih cocok.
+
+## Alat Terkait
+
+- [Editor PDF](./edit-pdf)
+- [Nomor Halaman](./page-numbers)
+- [Hapus Halaman Kosong](./remove-blank-pages)
diff --git a/docs/id/tools/csv-to-pdf.md b/docs/id/tools/csv-to-pdf.md
new file mode 100644
index 00000000..3dbc7d25
--- /dev/null
+++ b/docs/id/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV ke PDF
+description: Konversi file spreadsheet CSV menjadi tabel PDF terformat langsung di browser Anda.
+---
+
+# CSV ke PDF
+
+Ubah file CSV menjadi dokumen PDF yang rapi dan terformat. Setiap CSV diurai dan dirender sebagai tabel pada PDF hasil. Ini berguna saat Anda perlu mencetak atau membagikan data tabular tanpa mengharuskan penerima memiliki perangkat lunak spreadsheet.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :------- |
+| CSV | `.csv` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas satu atau beberapa file CSV.
+2. Tinjau daftar file. Tambahkan file lain atau hapus yang tidak diinginkan.
+3. Klik **Konversi ke PDF**. Indikator progres menampilkan status konversi.
+4. Satu file diunduh langsung sebagai PDF. Beberapa file dikemas menjadi `csv-converted.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki konfigurasi tambahan. CSV diurai dan diformat otomatis sebagai tabel.
+
+## Output
+
+| Jumlah Input | Output |
+| :----------- | :------------------------------------------------------- |
+| 1 file | Satu unduhan PDF (mis., `data.pdf`) |
+| 2+ file | Arsip ZIP (`csv-converted.zip`) berisi satu PDF per file |
+
+## Kasus Penggunaan
+
+- Mengonversi laporan database hasil ekspor menjadi tabel PDF yang siap cetak
+- Membagikan data keuangan atau daftar inventaris kepada orang yang tidak memiliki Excel
+- Membuat versi PDF dari file log CSV untuk dokumentasi kepatuhan
+- Mencetak daftar alamat, lembar nilai, atau data tabular apa pun yang tersimpan sebagai CSV
+
+## Tips
+
+- Untuk hasil terbaik, pastikan CSV Anda memakai pemisah koma standar. Alat mengikuti konvensi penguraian CSV yang umum.
+- Jika CSV Anda memiliki banyak kolom, tabel mungkin dipadatkan agar muat di lebar halaman. Pertimbangkan membagi dataset yang lebar menjadi beberapa file.
+- Untuk file Excel (`.xls`, `.xlsx`), gunakan alat [Excel ke PDF](./excel-to-pdf), yang mempertahankan format spreadsheet dan beberapa sheet.
+
+## Alat Terkait
+
+- [Excel ke PDF](./excel-to-pdf)
+- [Teks ke PDF](./txt-to-pdf)
+- [JSON ke PDF](./json-to-pdf)
diff --git a/docs/id/tools/delete-pages.md b/docs/id/tools/delete-pages.md
new file mode 100644
index 00000000..8b3bbd77
--- /dev/null
+++ b/docs/id/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Hapus Halaman
+description: Hapus halaman tertentu dari PDF menurut nomor halaman, rentang, atau pemilihan thumbnail visual.
+---
+
+# Hapus Halaman
+
+Hapus halaman yang tidak diinginkan dari dokumen PDF. Tentukan halaman yang akan dihapus dengan mengetik nomor halaman atau rentang, atau klik langsung thumbnail halaman untuk menandainya.
+
+## Cara Kerja
+
+1. Unggah file PDF. Alat merender pratinjau thumbnail setiap halaman.
+2. Masukkan halaman yang akan dihapus di kolom teks dengan sintaks rentang (mis., `2, 5-8`), atau klik thumbnail untuk mengaktifkan/menonaktifkannya.
+3. Halaman yang ditandai disorot secara visual agar Anda dapat memastikan pilihan Anda.
+4. Klik tombol proses. PDF baru dibuat tanpa halaman yang dipilih.
+
+## Fitur
+
+- Pemilihan halaman berbasis teks dengan sintaks rentang (`2, 5-8, 12`)
+- Kisi thumbnail visual untuk penghapusan dengan klik
+- Sorotan pratinjau real-time untuk halaman yang ditandai untuk dihapus
+- Validasi input terhadap jumlah halaman sebenarnya
+- Mempertahankan semua halaman yang tidak dihapus dalam urutan aslinya
+
+## Kasus Penggunaan
+
+- Menghapus halaman kosong atau halaman pengisi dari dokumen hasil pindai
+- Membuang halaman sampul atau lampiran sebelum membagikan dokumen
+- Membersihkan halaman draf yang tidak sengaja tertinggal di PDF final
+- Menghapus halaman berisi informasi sensitif sebelum distribusi
+
+## Tips
+
+- Menghapus halaman tidak memengaruhi konten atau format halaman yang tersisa. Hasilnya adalah salinan setia dari aslinya dikurangi halaman yang dihapus.
+- Jika Anda ingin mempertahankan halaman tertentu saja alih-alih menghapus halaman tertentu, [Ekstrak Halaman](./extract-pages) lebih cocok.
+- Tampilan thumbnail dimuat secara lazy, sehingga dokumen besar tetap responsif.
+
+## Alat Terkait
+
+- [Ekstrak Halaman](./extract-pages)
+- [Duplikat & Atur](./organize-pdf)
+- [Pisah PDF](./split-pdf)
diff --git a/docs/id/tools/deskew-pdf.md b/docs/id/tools/deskew-pdf.md
new file mode 100644
index 00000000..82932f06
--- /dev/null
+++ b/docs/id/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Luruskan PDF
+description: Luruskan otomatis halaman miring pada PDF hasil pindai menggunakan deteksi kemiringan OpenCV. Ambang batas dan pengaturan DPI dapat disesuaikan.
+---
+
+# Luruskan PDF
+
+Dokumen hasil pindai jarang benar-benar lurus. Kemiringan sedikit saja membuat OCR kurang akurat dan hasil cetak tampak berantakan. Alat ini memakai algoritma pemrosesan gambar OpenCV untuk mendeteksi sudut kemiringan setiap halaman dan memutarnya kembali agar rata.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF hasil pindai.
+2. Atur **Ambang Kemiringan**: halaman dengan kemiringan terdeteksi di bawah nilai ini dibiarkan apa adanya.
+3. Pilih **Kualitas Pemrosesan (DPI)**: DPI lebih tinggi meningkatkan akurasi deteksi tetapi memakan waktu lebih lama.
+4. Klik **Luruskan PDF**.
+5. Setelah pemrosesan, panel hasil menampilkan sudut yang terdeteksi pada setiap halaman dan apakah halaman itu dikoreksi.
+
+## Opsi
+
+| Pengaturan | Nilai | Default |
+| ----------------------------- | -------------------------- | ------- |
+| **Ambang Kemiringan** | 0.1, 0.5, 1.0, 2.0 derajat | 0.5 |
+| **Kualitas Pemrosesan (DPI)** | 100, 150, 200, 300 | 150 |
+
+## Cara Kerja Deteksi Kemiringan
+
+Alat merender setiap halaman menjadi gambar pada DPI yang dipilih, lalu memakai OpenCV untuk mendeteksi sudut garis dominan pada konten. Jika kemiringan yang terdeteksi melebihi ambang batas, halaman diputar dengan sudut kebalikannya agar lurus. Halaman di bawah ambang batas diteruskan tanpa perubahan.
+
+## Kasus Penggunaan
+
+- Merapikan kontrak atau dokumen hukum yang dipindai secara batch
+- Menyiapkan struk atau faktur hasil pindai untuk pemrosesan OCR
+- Meluruskan halaman dari pemindai flatbed dengan penempatan kertas yang tidak konsisten
+- Meningkatkan kualitas visual materi arsip yang didigitalkan
+
+## Tips
+
+- Turunkan ambang batas ke 0.1 derajat jika Anda memerlukan keselarasan sempurna untuk OCR.
+- 150 DPI cepat dan akurat untuk sebagian besar dokumen. Gunakan 300 DPI untuk teks yang sangat kecil atau halaman dengan detail halus.
+- Deskew bekerja paling baik pada dokumen dengan garis teks horizontal yang jelas. Alat mungkin kesulitan pada halaman yang sebagian besar berupa gambar atau elemen desain diagonal.
+
+## Alat Terkait
+
+- [Rasterisasi PDF](./rasterize-pdf): ubah hasil yang sudah diluruskan menjadi PDF berbasis gambar datar
+- [Kompres PDF](./compress-pdf): kurangi ukuran file setelah diluruskan
+- [Perbaiki PDF](./repair-pdf): perbaiki masalah struktural pada PDF hasil pindai
diff --git a/docs/id/tools/digital-sign-pdf.md b/docs/id/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..3f97af10
--- /dev/null
+++ b/docs/id/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Tanda Tangan Digital
+description: Tambahkan tanda tangan digital kriptografis ke PDF menggunakan sertifikat X.509. Mendukung format PKCS#12 dan PEM dengan opsi tanda tangan yang terlihat.
+---
+
+# Tanda Tangan Digital
+
+Tanda tangan digital adalah bukti kriptografis bahwa orang tertentu telah menandatangani dokumen dan dokumen tersebut tidak diubah sejak saat itu. Berbeda dengan tanda tangan gambar (yang hanya berupa gambar), tanda tangan digital menggunakan sertifikat X.509 dan standar PKCS#7 untuk memberikan keaslian dan integritas yang dapat diverifikasi.
+
+BentoPDF menerapkan tanda tangan digital sepenuhnya di browser Anda. Kunci privat Anda tidak pernah meninggalkan perangkat Anda.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Unggah file sertifikat Anda (.pfx, .p12, atau .pem).
+3. Masukkan kata sandi sertifikat untuk membukanya. Alat menampilkan subjek sertifikat, penerbit, dan masa berlaku.
+4. Secara opsional, atur metadata tanda tangan (alasan, lokasi, info kontak).
+5. Secara opsional, aktifkan **Tanda Tangan Terlihat** dengan kustomisasi posisi, ukuran, gambar, dan teks.
+6. Klik **Tandatangani PDF**.
+
+## Format Sertifikat yang Didukung
+
+| Format | Ekstensi | Deskripsi |
+| ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Bundel standar industri yang berisi kunci privat dan rantai sertifikat. Format paling umum. |
+| **PEM** | .pem | Format berbasis teks. Harus berisi sertifikat dan kunci privat dalam satu file. Mendukung kunci privat terenkripsi. |
+
+## Opsi Tanda Tangan yang Terlihat
+
+Jika diaktifkan, blok tanda tangan yang terlihat dirender pada halaman PDF:
+
+- **Posisi**: koordinat X/Y serta lebar/tinggi dalam point
+- **Halaman**: halaman pertama, halaman terakhir, semua halaman, atau nomor halaman tertentu
+- **Gambar**: unggah gambar PNG, JPG, atau WebP (tanda tangan tulisan tangan Anda, stempel perusahaan, dll.)
+- **Teks**: teks kustom dengan warna dan ukuran font yang dapat diatur. Jika tidak ada gambar atau teks, alat membuat teks otomatis dari common name sertifikat dan tanggal saat ini.
+
+## Metadata Tanda Tangan
+
+- **Alasan**: Alasan dokumen ditandatangani (mis., "Disetujui", "Ditinjau")
+- **Lokasi**: Tempat penandatanganan berlangsung (mis., "Jakarta")
+- **Info Kontak**: Cara menghubungi penandatangan (mis., alamat email)
+
+## Catatan Koneksi Internet
+
+Penandatanganan mungkin memerlukan koneksi internet. Pustaka penandatanganan mengambil rantai sertifikat dari URL yang tertanam di ekstensi Authority Information Access (AIA) pada sertifikat Anda. Jika server tersebut tidak dapat dijangkau, penandatanganan akan gagal untuk sertifikat yang memerlukan validasi rantai.
+
+## Kasus Penggunaan
+
+- Menandatangani kontrak, proposal, dan perjanjian dengan tanda tangan digital yang mengikat secara hukum
+- Mengesahkan dokumen resmi dalam alur kerja yang memerlukan autentikasi berbasis PKI
+- Menandatangani faktur PDF untuk kepatuhan regulasi (banyak negara UE mewajibkan e-faktur bertanda tangan digital)
+- Menambahkan persetujuan organisasi pada gambar teknik atau dokumen mutu
+
+## Tips
+
+- Sertifikat self-signed berfungsi untuk pengujian tetapi akan menampilkan peringatan di Adobe Reader. Gunakan sertifikat dari Certificate Authority tepercaya untuk dokumen produksi.
+- Tanda tangan yang terlihat hanya bersifat visual. Tanda tangan kriptografis tertanam terlepas dari apakah blok yang terlihat diaktifkan.
+- Verifikasi PDF yang sudah ditandatangani dengan alat Validasi Tanda Tangan untuk memastikan tanda tangan masih utuh.
+
+## Alat Terkait
+
+- [Validasi Tanda Tangan PDF](./validate-signature-pdf): verifikasi tanda tangan digital pada PDF yang ditandatangani
+- [Ratakan PDF](./flatten-pdf): ratakan formulir sebelum menandatangani untuk mencegah modifikasi
+- [Lindungi PDF](./protect-pdf): tambahkan perlindungan kata sandi di atas tanda tangan digital
+- [Hapus Metadata](./remove-metadata): buang metadata sebelum menandatangani
diff --git a/docs/id/tools/divide-pages.md b/docs/id/tools/divide-pages.md
new file mode 100644
index 00000000..257df492
--- /dev/null
+++ b/docs/id/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Bagi Halaman
+description: Pisahkan halaman PDF secara horizontal atau vertikal menjadi sub-halaman yang lebih kecil.
+---
+
+# Bagi Halaman
+
+Potong setiap halaman PDF menjadi dua bagian dengan membaginya secara horizontal atau vertikal. Ini berguna saat satu halaman berisi konten yang sebaiknya dipisah menjadi halaman tersendiri, misalnya tata letak dua kolom yang dipindai sebagai satu halaman lebar.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Pilih arah pembagian: **Vertikal** (bagian kiri/kanan) atau **Horizontal** (bagian atas/bawah).
+3. Secara opsional, tentukan rentang halaman untuk membatasi halaman yang dibagi. Biarkan kosong untuk membagi semua halaman.
+4. Klik tombol proses untuk menghasilkan PDF yang sudah dibagi.
+
+## Fitur
+
+- Pembagian vertikal: membagi setiap halaman menjadi bagian kiri dan kanan
+- Pembagian horizontal: membagi setiap halaman menjadi bagian atas dan bawah
+- Filter rentang halaman untuk membagi halaman tertentu saja
+- Halaman yang tidak ditargetkan diteruskan tanpa perubahan
+- Menjaga kualitas konten tanpa render ulang
+
+## Kasus Penggunaan
+
+- Memisahkan halaman pindaian dua-halaman (mis., pindaian buku dengan halaman kiri dan kanan dalam satu lembar)
+- Membagi PDF lanskap dengan konten berdampingan menjadi halaman potret individual
+- Membagi infografis atau poster yang tinggi menjadi bagian atas dan bawah yang terpisah
+- Menyiapkan dokumen format lebar untuk dicetak di kertas standar
+
+## Tips
+
+- Jika distribusi konten pada halaman Anda tidak merata, pembagian tetap terjadi tepat di titik tengah. Untuk pembagian asimetris, pertimbangkan [Potong PDF](./crop-pdf).
+- Gabungkan alat ini dengan [Putar PDF](./rotate-pdf) jika halaman Anda perlu diputar sebelum atau sesudah dibagi.
+
+## Alat Terkait
+
+- [Pisah PDF](./split-pdf)
+- [Potong PDF](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [Posterisasi PDF](./posterize-pdf)
diff --git a/docs/id/tools/duplex-collate.md b/docs/id/tools/duplex-collate.md
new file mode 100644
index 00000000..f57945ab
--- /dev/null
+++ b/docs/id/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Susun Ulang Pindaian Dupleks
+description: Susun ulang PDF pindaian dupleks yang berisi halaman depan dan halaman belakang dalam blok terpisah menjadi urutan halaman depan/belakang yang benar.
+---
+
+# Susun Ulang Pindaian Dupleks
+
+Susun Ulang Pindaian Dupleks dirancang untuk alur kerja pemindaian ADF di mana satu PDF berisi dua blok halaman:
+
+- semua sisi depan terlebih dahulu
+- semua sisi belakang kemudian
+
+Alih-alih memisah dan merakit ulang secara manual, alat ini menyisipkan kedua blok menjadi urutan baca yang natural: depan1, belakang1, depan2, belakang2, dan seterusnya.
+
+## Cara Kerja
+
+1. Unggah satu PDF yang dibuat dari pemindaian tumpukan dupleks.
+2. Tetapkan titik pemisah tempat blok depan berakhir.
+3. Pilih penanganan blok belakang:
+ - **Balik blok halaman belakang** (umum saat tumpukan dibalik sebelum memindai sisi belakang)
+ - **Biarkan blok halaman belakang apa adanya**
+4. Klik **Susun PDF** untuk mengunduh hasil yang sudah disusun ulang.
+
+## Opsi
+
+- **Deteksi pemisahan otomatis (setengah)**: menetapkan titik pemisah ke `ceil(totalPages / 2)`.
+- **Peringatan halaman ganjil**: memberi peringatan saat total halaman ganjil (sering menandakan pindaian tidak cocok).
+- **Konfirmasi blok tidak seimbang**: meminta konfirmasi saat ukuran blok depan/belakang berbeda.
+- **Ekspor berkelompok**: pisahkan hasil susunan menjadi PDF terpisah berdasarkan jumlah halaman dokumen asli dan unduh sebagai ZIP.
+
+## Perilaku Output
+
+- **Bawaan**: satu PDF output (satu PDF masuk, satu PDF keluar).
+- **Mode berkelompok**: output dipecah menurut nilai halaman-per-dokumen Anda; jika dihasilkan beberapa potongan, semuanya diunduh sebagai satu ZIP, jika tidak satu PDF diunduh.
+
+Jika ukuran blok tidak sama, halaman yang berpasangan disusun terlebih dahulu, dan sisa halaman tanpa pasangan ditambahkan di akhir.
+
+## Kasus Penggunaan Umum
+
+- Memulihkan urutan setelah memindai setumpuk formulir bolak-balik dalam dua kali proses.
+- Membangun ulang paket depan/belakang dari pemindai kantor yang menghasilkan semua sisi depan lalu semua sisi belakang.
+- Pascapemrosesan pindaian arsip sebelum dipecah menjadi file per dokumen.
+
+## Tips
+
+- Sebagian besar batch dupleks seharusnya memiliki jumlah halaman total yang genap.
+- Jika sisi belakang tampak terbalik pada hasil, beralihlah antara **Balik blok halaman belakang** dan **Biarkan blok halaman belakang apa adanya**.
+- Untuk dokumen asli 2 halaman (depan+belakang), gunakan ekspor berkelompok dengan `2` halaman per dokumen.
+
+## Alat Terkait
+
+- [Alternatif & Campur Halaman](./alternate-merge)
+- [Pisah PDF](./split-pdf)
+- [Gabung PDF](./merge-pdf)
+- [Duplikat & Atur](./organize-pdf)
diff --git a/docs/id/tools/edit-attachments.md b/docs/id/tools/edit-attachments.md
new file mode 100644
index 00000000..e87a53cb
--- /dev/null
+++ b/docs/id/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Edit Lampiran
+description: Lihat dan hapus secara selektif lampiran file yang tertanam di dokumen PDF.
+---
+
+# Edit Lampiran
+
+Periksa dan kelola lampiran file di dalam PDF. Alat ini mendaftar setiap file tertanam beserta nama dan tingkat lampirannya, lalu memungkinkan Anda menandai lampiran tertentu untuk dihapus atau menghapus semuanya sekaligus.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Alat otomatis memindai lampiran dan menampilkannya dalam daftar.
+3. Setiap lampiran menampilkan nama file dan apakah itu lampiran tingkat dokumen atau tingkat halaman.
+4. Klik ikon tempat sampah di samping lampiran untuk menandainya untuk dihapus (klik lagi untuk membatalkan tanda).
+5. Gunakan tombol **Hapus Semua Lampiran** untuk memilih semuanya sekaligus, atau **Batalkan Pilih Semua** untuk menghapus semua pilihan.
+6. Klik tombol proses untuk menyimpan PDF baru dengan lampiran terpilih dihapus.
+
+## Fitur
+
+- Mendaftar semua lampiran tingkat dokumen dan tingkat halaman
+- Penghapusan lampiran satu per satu atau massal
+- Aktifkan dan nonaktifkan pilihan sebelum menerapkan perubahan
+- Coretan visual dan perubahan opasitas pada item yang ditandai untuk dihapus
+- Mengunduh PDF yang sudah dimodifikasi dengan lampiran terpilih dihapus
+
+## Kasus Penggunaan
+
+- Menghapus file usang atau salah yang tertanam di dokumen sebelum disebarkan ulang
+- Membuang lampiran sensitif (data keuangan, info pribadi) dari PDF sebelum dibagikan
+- Memperkecil ukuran file PDF dengan menghapus file tertanam besar yang tidak lagi diperlukan
+- Mengaudit konten tertanam dan membersihkan dokumen sebelum diarsipkan
+
+## Tips
+
+- Lampiran yang ditandai untuk dihapus ditampilkan dengan coretan visual. Anda dapat membatalkan tanda sebelum memproses jika berubah pikiran.
+- Jika tidak ada lampiran ditemukan, alat menampilkan pesan "Tidak ada lampiran di PDF ini" yang jelas. Artinya PDF memang tidak berisi file tertanam.
+
+## Alat Terkait
+
+- [Tambah Lampiran](./add-attachments)
+- [Ekstrak Lampiran](./extract-attachments)
+- [Lihat Metadata](./view-metadata)
diff --git a/docs/id/tools/edit-metadata.md b/docs/id/tools/edit-metadata.md
new file mode 100644
index 00000000..40b8a335
--- /dev/null
+++ b/docs/id/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Edit Metadata
+description: Lihat dan ubah kolom metadata PDF termasuk judul, penulis, kata kunci, tanggal, dan properti kustom.
+---
+
+# Edit Metadata
+
+Edit metadata yang tertanam di file PDF. Alat ini mengisi formulir dengan metadata dokumen yang ada, memungkinkan Anda mengubah kolom apa pun, dan menyimpan perubahan ke PDF baru.
+
+## Cara Kerja
+
+1. Unggah file PDF. Alat membaca metadata saat ini dan mengisi formulir.
+2. Edit kolom standar apa pun: Judul, Penulis, Subjek, Kata Kunci, Pembuat, Produsen.
+3. Sesuaikan Tanggal Pembuatan dan Tanggal Modifikasi menggunakan pemilih tanggal-waktu.
+4. Tambahkan kolom metadata kustom dengan mengklik tombol tambah dan memasukkan pasangan kunci-nilai.
+5. Klik tombol proses untuk menyimpan PDF yang sudah dimodifikasi.
+
+## Fitur
+
+- Mengisi otomatis semua metadata yang ada dari PDF yang diunggah
+- Kolom standar: Judul, Penulis, Subjek, Kata Kunci, Pembuat, Produsen
+- Pemilih tanggal-waktu untuk Tanggal Pembuatan dan Tanggal Modifikasi
+- Kolom metadata kunci-nilai kustom untuk properti sembarang
+- Menyimpan perubahan langsung ke document info dictionary milik PDF
+
+## Kolom yang Dapat Diedit
+
+| Kolom | Deskripsi |
+| ---------------------- | ------------------------------------------------------ |
+| **Judul** | Judul dokumen yang ditampilkan di pembaca PDF |
+| **Penulis** | Orang atau organisasi yang membuat dokumen |
+| **Subjek** | Deskripsi singkat topik dokumen |
+| **Kata Kunci** | Istilah dipisah koma untuk pencarian dan pengategorian |
+| **Pembuat** | Aplikasi yang pertama kali membuat konten |
+| **Produsen** | Aplikasi yang menghasilkan PDF |
+| **Tanggal Pembuatan** | Kapan dokumen pertama kali dibuat |
+| **Tanggal Modifikasi** | Kapan dokumen terakhir diubah |
+| **Kolom Kustom** | Pasangan kunci-nilai tambahan yang Anda tentukan |
+
+## Kasus Penggunaan
+
+- Menetapkan judul dan penulis yang tepat sebelum menerbitkan dokumen
+- Menambahkan kata kunci untuk meningkatkan kemudahan pencarian di sistem manajemen dokumen
+- Memperbarui tanggal modifikasi agar mencerminkan revisi terkini
+- Menambahkan kolom metadata kustom seperti Department, Project ID, atau Classification
+- Membersihkan metadata yang ditinggalkan perangkat lunak penyusun asli
+
+## Tips
+
+- Kolom kustom ditulis langsung ke info dictionary PDF. Beberapa pembaca PDF mungkin tidak menampilkan kolom kustom, tetapi kolom tersebut tetap tersimpan di file.
+- Kosongkan sebuah kolom untuk menghapusnya dari metadata. Tombol proses menyimpan apa pun yang ada di formulir.
+- Untuk melihat metadata tanpa mengedit, gunakan [Lihat Metadata](./view-metadata). Untuk menghapus seluruh metadata, gunakan Hapus Metadata.
+
+## Alat Terkait
+
+- [Lihat Metadata](./view-metadata)
+- [Lapisan PDF (OCG)](./pdf-layers)
+- [Kompres PDF](./compress-pdf)
diff --git a/docs/id/tools/edit-pdf.md b/docs/id/tools/edit-pdf.md
new file mode 100644
index 00000000..53957337
--- /dev/null
+++ b/docs/id/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Editor PDF
+description: Beri anotasi, sorot, redaksi, tambah bentuk dan gambar, cari, dan lihat PDF langsung di browser Anda.
+---
+
+# Editor PDF
+
+Editor PDF BentoPDF memungkinkan Anda memberi anotasi, menyorot, meredaksi, berkomentar, menambah bentuk dan gambar, serta mencari di dalam PDF Anda. Editor lengkap dimuat langsung di browser Anda tanpa unggahan ke server.
+
+## Cara Kerja
+
+1. Unggah PDF Anda dengan mengklik area unggah atau menyeret file ke dalamnya.
+2. Editor PDF tertanam terbuka otomatis dengan dokumen Anda sudah dimuat.
+3. Gunakan toolbar untuk memberi anotasi, menyorot, meredaksi, menambah teks, menggambar bentuk, atau menyisipkan gambar.
+4. Klik **Unduh PDF yang Diedit** untuk menyimpan perubahan Anda.
+
+## Fitur
+
+- Toolbar anotasi lengkap dengan sorotan, garis bawah, coretan, dan gambar bebas
+- Penyisipan teks dan komentar
+- Alat redaksi yang menghapus konten bertanda secara permanen setelah Anda menerapkan redaksi. Jika ada tanda yang belum diterapkan saat Anda mengklik **Unduh PDF yang Diedit**, editor menawarkan untuk menerapkannya terlebih dahulu.
+- Alat bentuk untuk persegi panjang, lingkaran, garis, dan panah
+- Penyisipan gambar ke halaman PDF
+- Pencarian teks bawaan di seluruh dokumen
+- Dukungan multi-dokumen dengan tab (hingga 10 dokumen terbuka bersamaan)
+- Pemuatan file dengan seret dan lepas
+
+## Kasus Penggunaan
+
+- Meninjau kontrak dan menandai perubahan dengan sorotan dan komentar
+- Meredaksi informasi rahasia seperti nomor identitas atau data keuangan sebelum dibagikan
+- Menambahkan anotasi pada denah arsitektur atau gambar teknik
+- Menyisipkan logo atau stempel perusahaan ke halaman dokumen
+- Mencari istilah tertentu di dokumen hukum yang panjang
+
+## Tips
+
+- Anda dapat membuka beberapa PDF sekaligus dan berpindah di antaranya menggunakan bilah tab di bagian atas editor.
+- Editor mempertahankan struktur PDF asli, sehingga font, tata letak, dan kolom formulir tetap utuh.
+- Menandai teks atau area untuk redaksi tidak menghapus apa pun sampai redaksi diterapkan. Saat Anda meredaksi teks terpilih, salinannya di properti file, bookmark, komentar, dan lampiran juga dihapus dari hasil unduhan, kecuali file terenkripsi.
+- Untuk watermark massal atau penomoran halaman, gunakan alat khusus agar kontrol format lebih baik.
+
+## Alat Terkait
+
+- [Tambah Watermark](./add-watermark)
+- [Tanda Tangan PDF](./sign-pdf)
+- [Tambah Stempel](./add-stamps)
+- [Hapus Anotasi](./remove-annotations)
diff --git a/docs/id/tools/email-to-pdf.md b/docs/id/tools/email-to-pdf.md
new file mode 100644
index 00000000..5a461ccd
--- /dev/null
+++ b/docs/id/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Email ke PDF
+description: Konversi file email EML dan MSG ke PDF di browser Anda. Mempertahankan header, isi, dan daftar lampiran.
+---
+
+# Email ke PDF
+
+Ubah file email tersimpan menjadi PDF yang rapi dan siap cetak. Alat ini mengurai file EML dan MSG, mengekstrak pesan secara utuh (header, isi, dan metadata lampiran), lalu merender semuanya ke PDF terstruktur. Berguna untuk discovery hukum, pencatatan arsip, atau sekadar mencetak email penting.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----- | :------- | :------------------------------------------------------------------- |
+| EML | `.eml` | Format email MIME standar (diekspor dari sebagian besar klien email) |
+| MSG | `.msg` | Format proprietari Microsoft Outlook |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file EML atau MSG Anda. Anda dapat mencampur kedua format dalam satu batch.
+2. Tinjau daftar file. Hapus entri yang tidak diinginkan dengan ikon tempat sampah, atau klik **Tambah Lebih Banyak File** untuk menambah email.
+3. Atur opsi konversi (lihat di bawah).
+4. Klik **Konversi ke PDF**. Alat mengurai setiap email, merender konten sebagai HTML bergaya, dan mengonversinya ke PDF melalui mesin PyMuPDF.
+5. Satu email diunduh langsung sebagai PDF. Beberapa email dikemas menjadi `emails-converted.zip`.
+
+## Opsi
+
+| Opsi | Default | Deskripsi |
+| :----------------------------------------- | :------ | :----------------------------------------------------------------------------------- |
+| **Ukuran Halaman** | A4 | Pilih antara dimensi halaman A4, Letter, atau Legal. |
+| **Sertakan penerima CC dan BCC di header** | On | Jika aktif, daftar penerima CC dan BCC muncul di bagian header email pada PDF. |
+| **Sertakan daftar lampiran email** | On | Jika aktif, daftar lampiran file email (beserta nama file dan ukuran) muncul di PDF. |
+
+## Kasus Penggunaan
+
+- Mengarsipkan korespondensi bisnis penting sebagai PDF untuk kepatuhan atau audit
+- Mencetak rangkaian email untuk proses hukum atau permintaan discovery
+- Membuat catatan permanen konfirmasi pesanan, tanda terima, atau kontrak yang diterima lewat email
+- Mencadangkan file MSG Outlook dalam format yang tidak memerlukan Outlook untuk membacanya
+- Mendokumentasikan interaksi dukungan pelanggan dari file EML hasil ekspor
+
+## Tips
+
+- EML (dipakai Thunderbird, Apple Mail, dan sebagian besar klien email) maupun file MSG Outlook didukung. Ekspor email dari klien email Anda dan jatuhkan langsung ke alat ini.
+- Email berformat HTML mempertahankan gayanya di PDF. Email teks biasa dirender dengan format yang bersih dan mudah dibaca.
+- Daftar lampiran menampilkan nama file dan ukuran tetapi tidak menyematkan file lampiran sebenarnya ke dalam PDF.
+
+## Alat Terkait
+
+- [XML ke PDF](./xml-to-pdf)
+- [XPS ke PDF](./xps-to-pdf)
diff --git a/docs/id/tools/epub-to-pdf.md b/docs/id/tools/epub-to-pdf.md
new file mode 100644
index 00000000..af48c287
--- /dev/null
+++ b/docs/id/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB ke PDF
+description: Konversi ebook EPUB ke PDF di browser Anda. Gratis, tanpa unggahan, konversi mengutamakan privasi.
+---
+
+# EPUB ke PDF
+
+Konversi ebook EPUB menjadi file PDF tanpa meninggalkan browser Anda. EPUB adalah standar terbuka untuk buku digital, tetapi terkadang Anda membutuhkan PDF dengan tata letak tetap untuk dicetak, diberi anotasi, atau dibagikan kepada orang yang tidak memiliki pembaca ebook.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----- | :------- | :--------------------- |
+| EPUB | `.epub` | File EPUB 2 dan EPUB 3 |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file EPUB Anda. Pemilihan banyak file didukung.
+2. Tinjau file yang diunggah. Hapus entri yang tidak diinginkan dengan ikon tempat sampah, atau klik **Tambah Lebih Banyak File** untuk memperluas batch.
+3. Klik **Konversi ke PDF**. Mesin PyMuPDF merender konten EPUB (teks, gambar, dan format) menjadi output PDF berhalaman.
+4. Satu EPUB diunduh langsung sebagai PDF. Beberapa file dikemas menjadi arsip ZIP bernama `epub-converted.zip`.
+
+## Opsi
+
+Konversi berjalan dengan default yang masuk akal tanpa konfigurasi wajib. Teks mengalir ke dimensi halaman standar, dan font serta gambar tertanam dibawa ke PDF.
+
+## Kasus Penggunaan
+
+- Mencetak ebook bebas DRM untuk dibaca jauh dari layar
+- Mengirim naskah EPUB sebagai PDF dengan tata letak tetap untuk ditinjau
+- Mengarsipkan buku digital dalam format yang dapat dibuka secara native oleh setiap sistem operasi
+- Membagikan satu bab kepada rekan yang tidak memiliki pembaca EPUB
+- Mengonversi dokumentasi teknis yang didistribusikan sebagai EPUB menjadi PDF yang dapat diberi anotasi
+
+## Tips
+
+- Fitur EPUB 3 seperti audio dan video tertanam tidak akan terbawa ke PDF, tetapi semua teks, gambar, dan tabel terkonversi dengan baik.
+- Untuk hasil terbaik pada EPUB dengan gaya yang rumit, periksa beberapa halaman pertama output untuk memastikan kesetiaan tata letak.
+
+## Alat Terkait
+
+- [MOBI ke PDF](./mobi-to-pdf)
+- [FB2 ke PDF](./fb2-to-pdf)
+- [CBZ ke PDF](./cbz-to-pdf)
diff --git a/docs/id/tools/excel-to-pdf.md b/docs/id/tools/excel-to-pdf.md
new file mode 100644
index 00000000..d23ad1b2
--- /dev/null
+++ b/docs/id/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel ke PDF
+description: Konversi spreadsheet Excel (XLS, XLSX), ODS, dan file CSV ke PDF dengan format yang terjaga.
+---
+
+# Excel ke PDF
+
+Konversi file spreadsheet ke PDF. Alat ini menangani file Excel modern, format XLS lama, OpenDocument Spreadsheet, bahkan CSV, semuanya dirender melalui mesin LibreOffice berbasis browser yang mempertahankan format sel, rumus (sebagai nilai hasil hitung), grafik, dan tata letak multi-sheet.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----------------------- | :------- |
+| Excel (modern) | `.xlsx` |
+| Excel (lama) | `.xls` |
+| OpenDocument Spreadsheet | `.ods` |
+| CSV | `.csv` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file spreadsheet Anda.
+2. Tinjau daftar file. Tambahkan file lain atau hapus yang tidak diinginkan.
+3. Klik **Konversi ke PDF**. Mesin LibreOffice diinisialisasi pada penggunaan pertama, lalu memproses setiap file.
+4. Satu file diunduh langsung sebagai PDF. Beberapa file dikirim sebagai `excel-converted.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki konfigurasi tambahan. Mesin LibreOffice menentukan tata letak halaman, skala, dan area cetak berdasarkan pengaturan bawaan spreadsheet.
+
+## Output
+
+| Jumlah Input | Output |
+| :----------- | :--------------------------------------------------------- |
+| 1 file | Satu unduhan PDF (nama file asli dengan ekstensi `.pdf`) |
+| 2+ file | Arsip ZIP (`excel-converted.zip`) berisi satu PDF per file |
+
+## Kasus Penggunaan
+
+- Mengonversi laporan keuangan atau anggaran dari Excel ke PDF untuk distribusi
+- Membuat PDF siap cetak dari spreadsheet inventaris atau katalog produk
+- Membagikan hasil analisis data kepada pemangku kepentingan yang tidak memiliki Excel
+- Mengarsipkan laporan kuartalan dalam format yang tidak dapat diedit
+- Mengonversi file ODS dari LibreOffice Calc ke PDF
+
+## Tips
+
+- Grafik yang tertanam di spreadsheet dirender di PDF. Pastikan tampilannya benar di file sumber sebelum dikonversi.
+- Jika spreadsheet Anda memiliki beberapa sheet, semua sheet disertakan dalam output PDF.
+- Untuk data CSV sederhana tanpa format, alat [CSV ke PDF](./csv-to-pdf) menyediakan konversi yang lebih ringan. Gunakan Excel ke PDF saat Anda membutuhkan format, grafik, atau beberapa sheet tetap terjaga.
+
+## Alat Terkait
+
+- [CSV ke PDF](./csv-to-pdf)
+- [Word ke PDF](./word-to-pdf)
+- [PowerPoint ke PDF](./powerpoint-to-pdf)
diff --git a/docs/id/tools/extract-attachments.md b/docs/id/tools/extract-attachments.md
new file mode 100644
index 00000000..0263dae1
--- /dev/null
+++ b/docs/id/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Ekstrak Lampiran
+description: Ekstrak semua lampiran file tertanam dari satu atau beberapa PDF dan unduh sebagai arsip ZIP.
+---
+
+# Ekstrak Lampiran
+
+Keluarkan setiap lampiran tertanam dari satu atau beberapa file PDF. Semua file yang diekstrak dibundel dalam satu arsip ZIP untuk diunduh.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF yang berisi lampiran tertanam.
+2. Klik **Ekstrak Lampiran**.
+3. Alat memindai setiap PDF untuk lampiran tingkat dokumen dan tingkat halaman.
+4. Semua file yang ditemukan dikemas ke arsip ZIP dan diunduh otomatis.
+5. Pesan status mengonfirmasi berapa banyak lampiran yang ditemukan dan ukuran totalnya.
+
+## Fitur
+
+- Ekstraksi batch dari beberapa PDF sekaligus
+- Mengekstrak lampiran tingkat dokumen maupun tingkat halaman
+- Menghasilkan satu file ZIP berisi semua file yang diekstrak
+- Menampilkan jumlah total lampiran dan gabungan ukuran file
+- Pesan status yang jelas jika tidak ada lampiran ditemukan
+
+## Kasus Penggunaan
+
+- Memulihkan file data yang tertanam di PDF laporan
+- Mengambil aset gambar dari portofolio atau dokumen spesifikasi
+- Mengekstrak materi tambahan dari PDF pelatihan atau kepatuhan
+- Mengaudit file apa saja yang tertanam di dalam sekumpulan PDF
+
+## Tips
+
+- Jika alat melaporkan tidak ada lampiran, PDF mungkin berisi gambar tertanam atau data formulir, yang bukan lampiran file. Gunakan [Ekstrak Gambar](./extract-images) untuk gambar tertanam.
+- Saat memproses beberapa PDF, semua lampiran dari setiap file berakhir dalam satu ZIP. Nama file dipertahankan dari penyematan aslinya.
+
+## Alat Terkait
+
+- [Tambah Lampiran](./add-attachments)
+- [Edit Lampiran](./edit-attachments)
+- [Ekstrak Gambar](./extract-images)
diff --git a/docs/id/tools/extract-images.md b/docs/id/tools/extract-images.md
new file mode 100644
index 00000000..67c6cdb3
--- /dev/null
+++ b/docs/id/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Ekstrak Gambar
+description: Ekstrak semua gambar tertanam dari file PDF. Pratinjau dalam kisi dan unduh satu per satu atau sebagai arsip ZIP.
+---
+
+# Ekstrak Gambar
+
+Mengeluarkan setiap gambar tertanam dari satu atau beberapa file PDF. Gambar yang diekstrak ditampilkan dalam kisi pratinjau tempat Anda dapat mengunduhnya satu per satu, atau mengambil semuanya sekaligus sebagai ZIP. Ditenagai oleh PyMuPDF.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik area unggah atau menyeret file ke dalamnya. Tambahkan file lain atau hapus file tertentu sesuai kebutuhan.
+2. Klik **Ekstrak Gambar** untuk memulai pemrosesan.
+3. Alat memindai setiap halaman dari setiap PDF yang diunggah, menemukan dan mengekstrak gambar tertanam.
+4. Gambar yang diekstrak muncul dalam kisi dengan thumbnail. Setiap gambar memiliki tombol unduh.
+5. Klik **Unduh Semua** untuk menyimpan semuanya sebagai arsip ZIP.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat dikonfigurasi. Semua gambar tertanam diekstrak dalam format aslinya (biasanya PNG, JPEG, atau format apa pun yang dipakai saat gambar disematkan di PDF).
+
+## Format Output
+
+- Gambar ditampilkan dalam kisi pratinjau dengan nama `image_1.png`, `image_2.jpg`, dan seterusnya.
+- **Unduh Semua** menghasilkan `extracted-images.zip` berisi semua gambar.
+- Gambar individual dapat diunduh satu per satu dari kisi.
+
+## Kasus Penggunaan
+
+- Memulihkan foto atau grafik dari PDF untuk dipakai ulang di proyek lain.
+- Mengekstrak gambar produk dari PDF katalog untuk listing e-commerce.
+- Mengambil diagram dari dokumentasi teknis untuk dipakai di presentasi.
+- Mengaudit gambar apa saja yang tertanam di dokumen sebelum dibagikan.
+
+## Tips
+
+- Alat mengekstrak gambar persis seperti yang tersimpan di PDF. Alat tidak merender halaman sebagai gambar. Untuk itu, gunakan [PDF ke PNG](./pdf-to-png) atau [PDF ke JPG](./pdf-to-jpg).
+- Jika alat melaporkan "Gambar Tidak Ditemukan", PDF mungkin menggunakan grafik vektor alih-alih gambar raster tertanam, atau mungkin dokumen hasil pindai di mana seluruh halaman adalah satu gambar besar.
+- Pemrosesan batch berlaku untuk beberapa PDF. Semua gambar dari semua file digabung dalam satu kisi dan ZIP.
+
+## Alat Terkait
+
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke JPG](./pdf-to-jpg)
+- [Pembangun Alur Kerja PDF](./pdf-workflow)
diff --git a/docs/id/tools/extract-pages.md b/docs/id/tools/extract-pages.md
new file mode 100644
index 00000000..15ddd1b1
--- /dev/null
+++ b/docs/id/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Ekstrak Halaman
+description: Simpan rentang halaman tertentu dari PDF sebagai dokumen baru.
+---
+
+# Ekstrak Halaman
+
+Keluarkan sekumpulan halaman dari PDF dan simpan sebagai file baru. Tentukan dengan tepat halaman yang Anda inginkan menggunakan sintaks rentang, dan alat membuat PDF bersih yang hanya berisi halaman tersebut.
+
+## Cara Kerja
+
+1. Unggah file PDF. Alat menampilkan nama file, ukuran, dan jumlah total halaman.
+2. Masukkan halaman yang ingin diekstrak dengan sintaks rentang (mis., `1-5`, `3, 7, 10-12`).
+3. Secara opsional, pilih untuk mengunduh setiap rentang sebagai PDF terpisah dalam arsip ZIP.
+4. Klik tombol proses. Halaman yang diekstrak diunduh sebagai PDF baru (atau ZIP).
+
+## Fitur
+
+- Sintaks rentang halaman yang fleksibel: halaman individual, rentang, atau kombinasi dipisah koma
+- Menampilkan jumlah total halaman setelah unggah sebagai acuan mudah
+- Opsi output sebagai satu PDF gabungan atau file terpisah dalam ZIP
+- Mempertahankan konten dan format halaman asli
+
+## Kasus Penggunaan
+
+- Mengambil ringkasan eksekutif (beberapa halaman pertama) dari laporan yang panjang
+- Mengekstrak satu bab dari PDF buku teks
+- Menyimpan halaman tertentu dari paket formulir sebagai dokumen mandiri
+- Membuat dokumen contoh dari halaman terpilih pada file yang lebih besar
+
+## Tips
+
+- Nomor halaman dimulai dari 1. Gunakan `1` untuk halaman pertama, bukan `0`.
+- Untuk menghapus halaman alih-alih mengekstraknya, gunakan [Hapus Halaman](./delete-pages), yang merupakan operasi kebalikannya.
+- Jika Anda memerlukan pemilihan halaman visual dengan thumbnail, gunakan [Pisah PDF](./split-pdf) dalam mode Visual Select.
+
+## Alat Terkait
+
+- [Pisah PDF](./split-pdf)
+- [Hapus Halaman](./delete-pages)
+- [Gabung PDF](./merge-pdf)
diff --git a/docs/id/tools/extract-tables.md b/docs/id/tools/extract-tables.md
new file mode 100644
index 00000000..fba9e13e
--- /dev/null
+++ b/docs/id/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Ekstrak Tabel PDF
+description: Deteksi dan ekstrak tabel dari dokumen PDF. Ekspor sebagai CSV, JSON, atau Markdown dengan granularitas per tabel.
+---
+
+# Ekstrak Tabel PDF
+
+Mendeteksi semua tabel di PDF dan memungkinkan Anda mengekspornya dalam format pilihan Anda: CSV, JSON, atau Markdown. Setiap tabel diekstrak secara individual dengan metadata halaman dan posisi. Ditenagai oleh mesin deteksi tabel PyMuPDF.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik area unggah atau menyeret file ke dalamnya.
+2. Pilih **Format Ekspor** yang Anda inginkan: CSV, JSON, atau Markdown.
+3. Klik **Ekstrak Tabel** untuk memulai pemrosesan.
+4. Jika satu tabel ditemukan, tabel diunduh sebagai satu file. Beberapa tabel menghasilkan arsip ZIP dengan satu file per tabel.
+
+## Opsi
+
+- **Format Ekspor**: pilih antara:
+ - **CSV**: nilai dipisah koma dengan pengutipan yang benar untuk kolom yang berisi koma, tanda kutip, atau baris baru. Cocok untuk spreadsheet dan database.
+ - **JSON**: struktur array-of-arrays, dicetak rapi dengan indentasi 2 spasi. Cocok untuk dikonsumsi secara terprogram.
+ - **Markdown**: format tabel berpembatas pipa yang dirender oleh PyMuPDF. Cocok untuk dokumentasi dan file README.
+
+## Format Output
+
+- **Satu tabel**: `filename_table.csv` (atau `.json` / `.md`)
+- **Beberapa tabel**: `filename_tables.zip` berisi file bernama `table_1_page3.csv`, `table_2_page5.csv`, dan seterusnya.
+
+## Kasus Penggunaan
+
+- Mengekstrak tabel tertentu dari laporan PDF yang panjang tanpa mengambil data seluruh dokumen.
+- Mendapatkan tabel dalam format Markdown untuk ditempel langsung ke issue GitHub, wiki, atau dokumentasi.
+- Mengambil data JSON terstruktur dari tabel PDF untuk integrasi API atau skrip.
+- Membandingkan tabel antar versi PDF dengan mengekspor keduanya ke CSV dan melakukan diff.
+
+## Tips
+
+- Alat ini memberi Anda kendali per tabel. Jika Anda hanya ingin semua tabel dijadikan satu CSV, gunakan [PDF ke CSV](./pdf-to-csv). Untuk buku kerja Excel lengkap, gunakan [PDF ke Excel](./pdf-to-excel).
+- Tabel yang membentang di beberapa halaman mungkin terdeteksi sebagai tabel terpisah per halaman. Anda mungkin perlu menggabungkannya secara manual.
+- Jika tidak ada tabel terdeteksi, PDF mungkin berupa gambar hasil pindai. Jalankan OCR terlebih dahulu untuk menambahkan lapisan teks.
+
+## Alat Terkait
+
+- [PDF ke CSV](./pdf-to-csv)
+- [PDF ke Excel](./pdf-to-excel)
+- [PDF ke Teks](./pdf-to-text)
diff --git a/docs/id/tools/fb2-to-pdf.md b/docs/id/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..fee2536d
--- /dev/null
+++ b/docs/id/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 ke PDF
+description: Konversi file ebook FictionBook (FB2) ke PDF di browser Anda. Gratis, privat, tanpa unggah ke server.
+---
+
+# FB2 ke PDF
+
+Konversi file FictionBook 2 (FB2) menjadi dokumen PDF. FB2 adalah format ebook berbasis XML yang populer di Rusia dan Eropa Timur. Meski didukung dengan baik di beberapa platform, format ini hampir tidak dikenal di platform lain. Dengan mengonversinya ke PDF, buku Anda bisa dibaca di mana saja.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :------------ | :------- | :------------------------ |
+| FictionBook 2 | `.fb2` | Format ebook berbasis XML |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file FB2 Anda. Pemilihan banyak file sekaligus didukung.
+2. Periksa daftar file. Gunakan ikon tempat sampah untuk menghapus entri tertentu, atau **Tambah File Lagi** untuk menyertakan lebih banyak file.
+3. Klik **Konversi ke PDF**. Mesin PyMuPDF mengurai struktur XML FB2 dan merendernya sebagai konten PDF berhalaman.
+4. Satu file langsung diunduh sebagai PDF. Beberapa hasil konversi dikemas dalam `fb2-converted.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi. Konverter menangani struktur XML FB2 secara otomatis, dengan mempertahankan pemisah bab, pemformatan, dan gambar yang tertanam.
+
+## Kasus Penggunaan
+
+- Membaca ebook FB2 di perangkat atau aplikasi yang hanya mendukung PDF
+- Mencetak literatur berbahasa Rusia yang didistribusikan dalam format FB2
+- Mengarsipkan pustaka FB2 ke format yang didukung secara universal
+- Membagikan buku kepada orang yang pembacanya tidak mendukung FictionBook
+
+## Tips
+
+- File FB2 adalah XML biasa, sehingga ukurannya cenderung kecil dan cepat dikonversi bahkan di browser.
+- Jika file FB2 Anda dikompresi sebagai `.fb2.zip`, ekstrak terlebih dahulu sebelum mengunggah.
+
+## Alat Terkait
+
+- [EPUB ke PDF](./epub-to-pdf)
+- [MOBI ke PDF](./mobi-to-pdf)
+- [XML ke PDF](./xml-to-pdf)
diff --git a/docs/id/tools/fix-page-size.md b/docs/id/tools/fix-page-size.md
new file mode 100644
index 00000000..09ffad8a
--- /dev/null
+++ b/docs/id/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Perbaiki Ukuran Halaman
+description: Standarkan semua halaman dalam PDF ke ukuran yang seragam. Pilih ukuran kertas standar atau tentukan dimensi kustom.
+---
+
+# Perbaiki Ukuran Halaman
+
+PDF yang disusun dari beberapa sumber sering memiliki ukuran halaman yang tidak seragam: ada yang Letter, ada yang A4, ada yang sama sekali tidak standar. Alat ini memaksa setiap halaman ke satu ukuran target, dengan menskalakan konten agar pas atau memenuhi halaman sesuai kebutuhan.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Pilih **Ukuran Halaman Target** dari menu tarik-turun (A4, Letter, Legal, A3, A5, Tabloid, atau Kustom).
+3. Pilih **Orientasi**: Otomatis mempertahankan orientasi asli setiap halaman, atau Anda bisa memaksa Potret atau Lanskap.
+4. Pilih mode **Penskalaan Konten**: Pas (mempertahankan semua konten, mungkin menambah margin) atau Penuh (memenuhi halaman, mungkin memotong tepi).
+5. Secara opsional, atur **Warna Latar Belakang** untuk margin tambahan.
+6. Klik **Perbaiki Ukuran Halaman**.
+
+## Opsi
+
+- **Ukuran standar**: A4, Letter, Legal, A3, A5, Tabloid
+- **Dimensi kustom**: Masukkan lebar dan tinggi dalam inci atau milimeter
+- **Orientasi**: Otomatis, Potret, Lanskap
+- **Mode penskalaan**: Pas atau Penuh (Potong)
+- **Warna latar belakang**: Warna apa pun untuk isian margin
+
+## Kasus Penggunaan
+
+- Menormalkan PDF gabungan yang halamannya berasal dari pemindai berbeda
+- Mengonversi dokumen US Letter ke A4 untuk distribusi internasional
+- Menyiapkan PDF siap cetak yang membutuhkan ukuran potong yang konsisten
+- Memperbaiki halaman yang sedikit menyimpang dari standar (misalnya 8,49 x 11,02 inci, bukan 8,5 x 11)
+
+## Tips
+
+- Gunakan mode Pas untuk memastikan tidak ada konten yang hilang. Mode Penuh terlihat lebih rapi tetapi dapat memotong tepi.
+- Periksa hasilnya dengan alat Dimensi Halaman untuk memastikan setiap halaman sesuai target.
+- Putih adalah warna latar belakang default; ganti ke warna gelap jika dokumen Anda memiliki margin gelap.
+
+## Alat Terkait
+
+- [Dimensi Halaman](./page-dimensions): periksa ukuran halaman sebelum dan sesudah perbaikan
+- [Kompres PDF](./compress-pdf): kurangi ukuran file setelah standarisasi
+- [Potong PDF](./crop-pdf): potong halaman secara manual alih-alih penskalaan otomatis
diff --git a/docs/id/tools/flatten-pdf.md b/docs/id/tools/flatten-pdf.md
new file mode 100644
index 00000000..ff2c1b38
--- /dev/null
+++ b/docs/id/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Ratakan PDF
+description: Ratakan formulir interaktif dan anotasi menjadi konten statis. Membuat kolom formulir tidak dapat diedit dan menyatukan anotasi ke dalam halaman.
+---
+
+# Ratakan PDF
+
+Perataan menggabungkan elemen interaktif (kolom formulir, menu tarik-turun, kotak centang, anotasi, sorotan, catatan tempel) langsung ke dalam konten halaman. Tampilan visual tetap sama, tetapi tidak ada lagi yang dapat diedit atau diekstrak. Ini setara dengan mencetak formulir yang sudah diisi lalu memindainya kembali, hanya saja kualitasnya tetap sempurna.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF.
+2. Klik **Ratakan PDF**.
+3. Satu file langsung diunduh. Beberapa file menghasilkan arsip ZIP.
+
+Alat ini menggunakan pdf-lib untuk meratakan kolom formulir (melalui `form.flatten()`) dan perata anotasi khusus untuk menyatukan anotasi ke dalam aliran halaman. Kedua operasi berjalan dalam satu proses.
+
+## Yang Diratakan
+
+- **Kolom formulir**: Input teks, kotak centang, tombol radio, menu tarik-turun, kolom tanda tangan
+- **Anotasi**: Komentar, sorotan, coretan, garis bawah, catatan tempel, stempel, anotasi tinta
+- **Elemen interaktif**: Tombol, pemicu aksi
+
+## Yang Tidak Berubah
+
+- Konten teks (tetap dapat dipilih dan dicari)
+- Gambar dan grafik
+- Tata letak dan dimensi halaman
+- Bookmark dan daftar isi
+- Hyperlink (kecuali yang berbasis anotasi)
+
+## Kasus Penggunaan
+
+- Mengunci formulir yang sudah diisi agar penerima tidak dapat mengubah jawaban yang dikirim
+- Menyiapkan PDF untuk arsip yang tidak memerlukan elemen interaktif
+- Memperbaiki masalah tampilan akibat anotasi yang dirender berbeda di berbagai penampil
+- Memastikan dokumen yang sudah ditandatangani tidak dapat diubah setelah tanda tangan diterapkan
+- Mengurangi ukuran file dengan menghilangkan definisi kolom formulir dan objek anotasi
+
+## Tips
+
+- Ratakan setelah semua pengeditan selesai. Tidak ada cara untuk membatalkan perataan PDF.
+- Jika Anda perlu meratakan sekaligus menghapus metadata, JavaScript, dan lampiran, gunakan alat Sanitasi PDF, yang menyertakan perataan sebagai salah satu opsinya.
+- Beberapa PDF melaporkan "tidak ada formulir ditemukan". Ini normal jika dokumen hanya memiliki anotasi dan tidak memiliki kolom formulir.
+
+## Alat Terkait
+
+- [Sanitasi PDF](./sanitize-pdf): ratakan formulir sekaligus hapus metadata, skrip, dan lainnya
+- [Rasterisasi PDF](./rasterize-pdf): konversi ke PDF berbasis gambar untuk perataan maksimal
+- [Font ke Garis Tepi](./font-to-outline): ratakan font menjadi jalur vektor
+- [Lindungi PDF](./protect-pdf): kunci PDF yang sudah diratakan dengan kata sandi
diff --git a/docs/id/tools/font-to-outline.md b/docs/id/tools/font-to-outline.md
new file mode 100644
index 00000000..5daa7045
--- /dev/null
+++ b/docs/id/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Font ke Garis Tepi
+description: Konversi semua font PDF menjadi garis tepi vektor agar tampil konsisten di semua perangkat. Menghilangkan masalah ketergantungan font.
+---
+
+# Font ke Garis Tepi
+
+Mengonversi font menjadi garis tepi mengubah setiap karakter teks dari glif berbasis font menjadi jalur vektor. PDF tidak lagi bergantung pada font yang terpasang: tampilannya identik di setiap perangkat, sistem operasi, dan printer. Ini adalah langkah standar dalam alur kerja prepress.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF.
+2. Klik **Konversi ke Garis Tepi**.
+3. Ghostscript mengubah semua teks menjadi jalur vektor.
+4. Unduh hasilnya. Beberapa file menghasilkan arsip ZIP.
+
+Tidak ada pengaturan yang perlu dikonfigurasi. Alat ini menggunakan Ghostscript (WebAssembly) untuk mengubah semua referensi font menjadi jalur garis tepi dalam satu proses.
+
+## Yang Berubah
+
+- Karakter teks menjadi kurva vektor (jalur bezier)
+- Penyematan font tidak lagi diperlukan: PDF mandiri pada tingkat glif
+- Ukuran file dapat bertambah karena jalur vektor biasanya lebih besar daripada referensi font
+- Tampilan visual dipertahankan persis sama
+
+## Yang Hilang
+
+- Pemilihan teks dan salin-tempel
+- Kemampuan pencarian teks (Ctrl+F tidak lagi berfungsi)
+- Kemampuan mengedit isi teks
+- Aksesibilitas pembaca layar
+
+## Kasus Penggunaan
+
+- Mengirim PDF ke percetakan yang mewajibkan font dalam bentuk garis tepi
+- Membagikan dokumen yang memakai font kustom atau berlisensi kepada orang yang tidak memiliki font tersebut
+- Mencegah penggantian font yang mengubah tampilan dokumen Anda di sistem lain
+- Menyiapkan PDF untuk alur kerja ukiran laser atau pemotongan CNC yang membutuhkan input vektor
+- Memastikan PDF yang banyak berisi logo tampil benar di semua platform
+
+## Tips
+
+- Simpan PDF asli Anda. Pengubahan ke garis tepi tidak dapat dibatalkan: jalur tidak bisa dikonversi kembali menjadi teks yang dapat diedit.
+- Jika teks perlu tetap dapat dicari, pertimbangkan alat Rasterisasi PDF dengan OCR sebagai langkah lanjutan.
+- PDF dengan garis tepi cenderung lebih besar. Jalankan Kompres PDF setelahnya jika ukuran file penting.
+
+## Alat Terkait
+
+- [Ratakan PDF](./flatten-pdf): ratakan formulir dan anotasi tanpa menyentuh font
+- [Rasterisasi PDF](./rasterize-pdf): konversi ke PDF berbasis gambar, bukan garis tepi vektor
+- [Kompres PDF](./compress-pdf): kurangi ukuran file setelah diubah ke garis tepi
+- [PDF ke PDF/A](./pdf-to-pdfa): konversi untuk arsip setelah memastikan kemandirian font
diff --git a/docs/id/tools/form-creator.md b/docs/id/tools/form-creator.md
new file mode 100644
index 00000000..f2a6e165
--- /dev/null
+++ b/docs/id/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Buat Formulir PDF
+description: Bangun formulir PDF yang dapat diisi dengan kolom teks, kotak centang, menu tarik-turun, tombol radio, dan lainnya melalui seret dan lepas.
+---
+
+# Buat Formulir PDF
+
+Rancang formulir PDF profesional yang dapat diisi dari awal atau dengan menambahkan kolom ke PDF yang sudah ada. Editor visual memungkinkan Anda menyeret dan melepas elemen formulir (kolom teks, kotak centang, menu tarik-turun, tombol radio, kolom tanda tangan, dan lainnya) langsung ke pratinjau halaman. Atur properti kolom, siapkan aturan visibilitas bersyarat, dan ekspor formulir PDF yang sepenuhnya interaktif.
+
+## Cara Kerja
+
+1. Unggah PDF yang sudah ada **atau** klik **Buat PDF Kosong** untuk memulai dari awal.
+2. Jika membuat PDF kosong, pilih ukuran halaman (Letter, A4, A5, Legal, Tabloid, A3, atau dimensi kustom).
+3. Editor formulir terbuka dengan toolbar jenis kolom dan area pratinjau halaman.
+4. Pilih jenis kolom dari toolbar, lalu klik pada halaman untuk menempatkannya.
+5. Seret kolom untuk memindahkannya. Gunakan gagang ubah ukuran untuk menyesuaikan dimensi.
+6. Klik kolom untuk membuka panel properti tempat Anda dapat mengatur nama kolom, nilai default, ukuran font, perataan, dan lainnya.
+7. Berpindah antarhalaman menggunakan kontrol halaman.
+8. Klik **Simpan** untuk mengunduh PDF yang dapat diisi.
+
+## Fitur
+
+- Penempatan kolom dengan seret dan lepas serta gagang visual untuk mengubah ukuran
+- Jenis kolom: input teks, teks multibaris, kotak centang, menu tarik-turun, tombol radio, tanda tangan, tanggal, angka, dan barcode
+- Panel properti untuk mengatur nama, label, nilai default, ukuran font, warna, perataan, dan validasi setiap kolom
+- Aksi kolom dan aturan visibilitas bersyarat (tampilkan/sembunyikan kolom berdasarkan nilai kolom lain)
+- Navigasi halaman untuk formulir multihalaman
+- Ekstraksi kolom yang ada: secara otomatis mendeteksi dan mengimpor kolom formulir dari PDF yang diunggah
+- Dukungan untuk PDF yang diunggah maupun halaman kosong sebagai kanvas formulir
+- Beberapa preset ukuran halaman plus dimensi kustom
+- Pembuatan barcode didukung oleh bwip-js
+- Pengelolaan grup tombol radio
+
+## Opsi
+
+**Preset ukuran halaman (untuk PDF kosong):**
+
+- 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)
+- Kustom (tentukan lebar dan tinggi)
+
+**Properti kolom (bervariasi menurut jenis kolom):**
+
+- Nama, label, dan teks placeholder
+- Nilai default
+- Jenis font, ukuran, dan warna
+- Perataan teks (kiri, tengah, kanan)
+- Sakelar kolom wajib diisi
+- Sakelar hanya-baca
+- Panjang maksimum untuk kolom teks
+- Daftar opsi untuk menu tarik-turun dan tombol radio
+- Aksi visibilitas bersyarat
+
+## Kasus Penggunaan
+
+- Membuat formulir onboarding karyawan dengan kolom teks untuk informasi pribadi dan kotak centang untuk persetujuan kebijakan
+- Membuat kuesioner penerimaan klien dengan menu tarik-turun untuk memilih layanan
+- Merancang formulir pemesanan dengan kolom terhitung dan pengenal barcode
+- Membuat daftar periksa inspeksi dengan tombol radio untuk penilaian lulus/gagal
+- Membuat formulir survei dengan pertanyaan lanjutan bersyarat yang muncul berdasarkan jawaban
+
+## Tips
+
+- Jika Anda mengunggah PDF yang sudah ada, alat ini akan mencoba mengekstrak kolom formulir yang sudah ada sehingga Anda dapat mengedit atau menambahkannya.
+- Gunakan fitur grup tombol radio untuk membuat pilihan yang saling eksklusif. Kolom dalam grup radio yang sama berbagi nama grup.
+- Uji formulir Anda dengan mengunduhnya dan membukanya di [Pengisi Formulir PDF](./form-filler) untuk memverifikasi perilaku kolom.
+
+## Alat Terkait
+
+- [Pengisi Formulir PDF](./form-filler)
+- [Tanda Tangan PDF](./sign-pdf)
+- [Editor PDF](./edit-pdf)
diff --git a/docs/id/tools/form-filler.md b/docs/id/tools/form-filler.md
new file mode 100644
index 00000000..8f660f6d
--- /dev/null
+++ b/docs/id/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Pengisi Formulir PDF
+description: Isi formulir PDF, termasuk formulir XFA, langsung di browser Anda dengan penampil tertanam.
+---
+
+# Pengisi Formulir PDF
+
+Buka PDF yang memiliki kolom formulir dan isi langsung di penampil tertanam. Alat ini mendukung kolom AcroForm standar maupun formulir XFA (XML Forms Architecture) lama. Setelah formulir selesai diisi, unduh versi yang sudah terisi dengan satu klik.
+
+## Cara Kerja
+
+1. Unggah PDF yang berisi kolom formulir.
+2. Dokumen terbuka di penampil PDF terintegrasi yang merender kolom formulir sebagai input interaktif.
+3. Klik kolom teks, kotak centang, menu tarik-turun, dan tombol radio untuk mengisinya.
+4. Klik **Simpan & Unduh Formulir yang Terisi** untuk mendapatkan PDF yang sudah lengkap.
+
+## Fitur
+
+- Penampil PDF.js tertanam dengan interaksi penuh pada kolom formulir
+- Dukungan untuk kolom AcroForm standar (input teks, kotak centang, menu tarik-turun, tombol radio)
+- Dukungan formulir XFA untuk formulir lama berbasis XML
+- Ukuran penampil otomatis menyesuaikan dimensi halaman
+- Tampilan file dengan informasi nama dan ukuran
+
+## Opsi
+
+Tidak ada opsi konfigurasi tambahan. Unggah formulir, isi, lalu unduh.
+
+## Kasus Penggunaan
+
+- Mengisi formulir pajak, aplikasi asuransi, atau berkas pemerintahan
+- Mengisi formulir lamaran kerja yang diterima sebagai lampiran PDF
+- Mengisi formulir onboarding vendor atau kuesioner pemasok
+- Menyetujui daftar periksa kepatuhan dengan kolom kotak centang
+- Mengisi formulir penerimaan pasien sebelum janji temu
+
+## Tips
+
+- Formulir XFA adalah format lama yang hanya didukung oleh beberapa penampil PDF. Jika Anda membuka PDF XFA di Chrome atau sebagian besar alat lain dan melihat halaman kosong, artinya penampil tersebut tidak mendukung XFA. Pengisi Formulir BentoPDF dan Firefox sama-sama menangani XFA dengan baik.
+- Untuk PDF tanpa kolom formulir, gunakan alat [Buat Formulir PDF](./form-creator) untuk menambahkan kolom terlebih dahulu, lalu isi di sini.
+- Penampil secara otomatis menyesuaikan ukurannya dengan dimensi halaman PDF.
+
+## Alat Terkait
+
+- [Buat Formulir PDF](./form-creator)
+- [Tanda Tangan PDF](./sign-pdf)
+- [Editor PDF](./edit-pdf)
diff --git a/docs/id/tools/header-footer.md b/docs/id/tools/header-footer.md
new file mode 100644
index 00000000..2074a6bc
--- /dev/null
+++ b/docs/id/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Kepala & Kaki Halaman
+description: Tambahkan teks header dan footer yang dapat disesuaikan ke halaman PDF dengan variabel nomor halaman dinamis.
+---
+
+# Kepala & Kaki Halaman
+
+Tambahkan teks ke enam posisi pada halaman PDF Anda: header kiri, header tengah, header kanan, footer kiri, footer tengah, dan footer kanan. Alat ini mendukung variabel dinamis untuk nomor halaman dan jumlah total halaman, sehingga Anda dapat membuat templat seperti "Halaman 3 dari 10" yang diperbarui otomatis di setiap halaman.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Panel opsi muncul menampilkan kontrol pemformatan dan enam kolom input teks.
+3. Masukkan teks yang diinginkan pada posisi header/footer mana pun.
+4. Gunakan placeholder `{page}` dan `{total}` untuk penomoran halaman dinamis.
+5. Atur ukuran font, warna font, dan secara opsional batasi ke rentang halaman tertentu.
+6. Klik **Tambah Kepala & Kaki Halaman** untuk memproses dan mengunduh.
+
+## Opsi
+
+- **Rentang Halaman**: Secara opsional batasi halaman yang mendapat header dan footer. Biarkan kosong untuk menerapkan ke semua halaman. Format: "1-3, 5" (rentang dipisahkan koma).
+- **Ukuran Font**: Antara 6 dan 24 poin. Default 10.
+- **Warna Font**: Pilih warna apa pun menggunakan pemilih warna.
+- **Header Kiri / Tengah / Kanan**: Kolom teks untuk bagian atas setiap halaman.
+- **Footer Kiri / Tengah / Kanan**: Kolom teks untuk bagian bawah setiap halaman.
+
+## Fitur
+
+- Enam posisi teks independen per halaman
+- Variabel dinamis `{page}` yang menyisipkan nomor halaman saat ini
+- Variabel dinamis `{total}` yang menyisipkan jumlah total halaman
+- Penyaringan rentang halaman untuk menargetkan halaman tertentu
+- Ukuran dan warna font yang dapat disesuaikan
+- Font Helvetica untuk hasil yang bersih dan profesional
+
+## Kasus Penggunaan
+
+- Menambahkan "Halaman {page} dari {total}" di footer tengah sebuah laporan
+- Menempatkan nama perusahaan di header kiri dan tanggal dokumen di header kanan
+- Menambahkan pemberitahuan kerahasiaan di footer dokumen hukum
+- Menstempel nomor revisi dokumen pada rentang halaman tertentu
+
+## Tips
+
+- Gabungkan `{page}` dan `{total}` dalam satu kolom untuk format seperti "Halaman {page} dari {total}" atau "{page}/{total}".
+- Anda dapat mengosongkan sebagian besar kolom dan hanya mengisi posisi yang diperlukan. Kolom kosong akan dilewati.
+- Untuk header yang lebih kompleks dengan gambar atau logo, pertimbangkan alat [Tambah Watermark](./add-watermark) yang diposisikan di bagian atas halaman.
+
+## Alat Terkait
+
+- [Nomor Halaman](./page-numbers)
+- [Tambah Watermark](./add-watermark)
+- [Penomoran Bates](./bates-numbering)
diff --git a/docs/id/tools/heic-to-pdf.md b/docs/id/tools/heic-to-pdf.md
new file mode 100644
index 00000000..60090c78
--- /dev/null
+++ b/docs/id/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC ke PDF
+description: Konversi gambar HEIC dan HEIF dari iPhone dan iPad ke format PDF langsung di browser Anda.
+---
+
+# HEIC ke PDF
+
+Konversi gambar HEIC/HEIF ke PDF. HEIC adalah format foto default di iPhone dan iPad sejak iOS 11. Alat ini memungkinkan Anda mengubah foto tersebut menjadi PDF tanpa memasang perangkat lunak desktop atau mengunggah file ke server.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file HEIC/HEIF Anda.
+2. Periksa daftar file dan hapus file yang tidak diinginkan.
+3. Klik **Konversi ke PDF**. Hasilnya diunduh sebagai `from_heic.pdf`.
+
+Setiap file HEIC didekode menggunakan pustaka heic2any, yang mengonversinya ke PNG dengan kualitas 92%. PNG tersebut kemudian disematkan ke PDF menggunakan pdf-lib, dengan setiap gambar di halamannya sendiri pada resolusi penuh.
+
+## Opsi
+
+Alat ini tidak menyediakan pengaturan tambahan. Gambar HEIC dikonversi dengan kualitas tinggi (0.92) ke PNG sebelum disematkan.
+
+## Kasus Penggunaan
+
+- Membuat PDF dari foto iPhone untuk dilampirkan pada klaim asuransi atau laporan
+- Mengonversi foto HEIC untuk listing properti menjadi satu dokumen yang siap cetak
+- Mengubah tangkapan layar iPad (format HEIF) menjadi PDF yang mudah dibagikan
+- Mengonversi massal foto liburan untuk jurnal perjalanan
+
+## Tips
+
+- Dekode HEIC berlangsung sepenuhnya di browser menggunakan WebAssembly. Konversi pertama mungkin memerlukan waktu sebentar saat dekoder dimuat.
+- Jika Anda perlu menggabungkan HEIC dengan format gambar lain (JPG, PNG, dll.), gunakan alat [Gambar ke PDF](./image-to-pdf), yang menangani HEIC bersama semua format lainnya.
+- File HEIC dari iPhone sering berisi data EXIF termasuk koordinat GPS. Output PDF tidak membawa metadata ini.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [JPG ke PDF](./jpg-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
diff --git a/docs/id/tools/image-to-pdf.md b/docs/id/tools/image-to-pdf.md
new file mode 100644
index 00000000..90e113d2
--- /dev/null
+++ b/docs/id/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Gambar ke PDF
+description: Konversi JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD, dan 10+ format gambar lainnya menjadi satu file PDF.
+---
+
+# Gambar ke PDF
+
+Konverter gambar ke PDF universal. Unggah gambar dalam hampir semua format dan gabungkan menjadi satu dokumen PDF. Setiap gambar mendapat halamannya sendiri, dengan ukuran yang sesuai dimensi aslinya.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Ini adalah dukungan format terluas di antara semua konverter gambar BentoPDF. Jika Anda hanya membutuhkan satu format tertentu, gunakan alat khusus sebagai gantinya.
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file gambar Anda. Anda dapat memilih banyak file sekaligus.
+2. Periksa daftar file. Hapus file yang tidak diinginkan dengan ikon tempat sampah, atau klik **Tambah File Lagi** untuk menyertakan gambar tambahan.
+3. Pilih tingkat **Kualitas PDF** dari menu tarik-turun.
+4. Klik **Konversi ke PDF**. Alat ini memproses gambar melalui mesin PyMuPDF dan mengunduh hasilnya sebagai `images_to_pdf.pdf`.
+
+## Opsi
+
+**Kualitas PDF** mengatur kompresi gambar yang diterapkan saat menyematkan gambar ke PDF:
+
+- **Kualitas Tinggi**: kompresi minimal, ukuran file lebih besar. Terbaik untuk cetak atau arsip.
+- **Kualitas Sedang** (default): kompresi seimbang. Cocok untuk sebagian besar keperluan.
+- **Kualitas Rendah**: kompresi agresif, ukuran file terkecil. Cocok untuk email atau berbagi cepat.
+
+File HEIC dan WebP otomatis dikonversi ke PNG sebelum disematkan. Ini terjadi secara transparan dan tidak memerlukan langkah tambahan.
+
+## Kasus Penggunaan
+
+- Menggabungkan struk atau dokumen hasil pindai dari kamera ponsel menjadi satu PDF
+- Membuat portofolio foto atau lookbook dari gambar berbagai format
+- Mengonversi foto iPhone (HEIC) menjadi PDF yang mudah dibagikan tanpa memasang perangkat lunak desktop
+- Menyusun mockup desain dari ekspor PSD dan tangkapan layar menjadi hasil kerja untuk klien
+- Mengarsipkan folder berisi format gambar lawas (PNM, JXR, JP2) sebagai satu PDF
+
+## Tips
+
+- Urutan gambar dalam PDF sesuai dengan urutannya di daftar file. Unggah sesuai urutan yang Anda inginkan.
+- Untuk ukuran file sekecil mungkin, pilih Kualitas Rendah. Perbedaan visualnya sering kali dapat diabaikan untuk hasil pindai yang dominan teks.
+- Jika Anda hanya memiliki satu format gambar, konverter khusus (JPG ke PDF, PNG ke PDF, dll.) memberikan hasil yang sama dengan antarmuka yang lebih sederhana.
+
+## Alat Terkait
+
+- [JPG ke PDF](./jpg-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
+- [HEIC ke PDF](./heic-to-pdf)
+- [WebP ke PDF](./webp-to-pdf)
diff --git a/docs/id/tools/index.md b/docs/id/tools/index.md
new file mode 100644
index 00000000..e0bc7778
--- /dev/null
+++ b/docs/id/tools/index.md
@@ -0,0 +1,183 @@
+# Referensi Alat
+
+BentoPDF menawarkan **130+ alat** untuk bekerja dengan PDF. Semua alat berjalan sepenuhnya di browser Anda: file Anda tidak pernah meninggalkan perangkat Anda.
+
+---
+
+## Edit & Anotasi
+
+Ubah, tandai, dan tingkatkan dokumen PDF Anda dengan rangkaian alat pengeditan yang lengkap.
+
+
+
+- [**Editor PDF**](./edit-pdf): Beri anotasi, sorot, redaksi, komentar, tambahkan bentuk/gambar, cari, dan lihat PDF.
+- [**Edit Bookmark**](./bookmark): Tambah, edit, impor, hapus, dan ekstrak bookmark PDF.
+- [**Daftar Isi**](./table-of-contents): Buat halaman daftar isi dari bookmark PDF.
+- [**Nomor Halaman**](./page-numbers): Sisipkan nomor halaman ke dokumen Anda.
+- [**Tambahkan label halaman**](./add-page-labels): Terapkan label halaman PDF dengan angka Romawi, awalan, dan awal kustom.
+- [**Penomoran Bates**](./bates-numbering): Tambahkan nomor Bates berurutan di satu atau beberapa file PDF.
+- [**Tambah Watermark**](./add-watermark): Bubuhkan teks atau gambar di atas halaman PDF Anda.
+- [**Kepala & Kaki Halaman**](./header-footer): Tambahkan teks di bagian atas dan bawah halaman.
+- [**Balik Warna**](./invert-colors): Buat versi mode gelap dari PDF Anda.
+- [**Efek Pemindai**](./scanner-effect): Buat PDF Anda tampak seperti dokumen hasil pindai.
+- [**Sesuaikan Warna**](./adjust-colors): Atur kecerahan, kontras, saturasi, dan lainnya.
+- [**Warna Latar Belakang**](./background-color): Ubah warna latar belakang PDF Anda.
+- [**Ubah Warna Teks**](./text-color): Ubah warna teks dalam PDF Anda.
+- [**Tanda Tangan PDF**](./sign-pdf): Gambar, ketik, atau unggah tanda tangan Anda.
+- [**Tambah Stempel**](./add-stamps): Tambahkan stempel gambar ke PDF Anda menggunakan toolbar anotasi.
+- [**Hapus Anotasi**](./remove-annotations): Hapus komentar, sorotan, dan tautan.
+- [**Potong PDF**](./crop-pdf): Pangkas margin setiap halaman dalam PDF Anda.
+- [**Pengisi Formulir PDF**](./form-filler): Isi formulir langsung di browser. Juga mendukung formulir XFA.
+- [**Buat Formulir PDF**](./form-creator): Buat formulir PDF yang dapat diisi dengan kolom teks seret dan lepas.
+- [**Hapus Halaman Kosong**](./remove-blank-pages): Deteksi dan hapus halaman kosong secara otomatis.
+
+
+
+---
+
+## Konversi ke PDF
+
+Ubah gambar, dokumen, e-book, dan format file lain menjadi PDF.
+
+
+
+- [**Gambar ke PDF**](./image-to-pdf): Konversi JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, dan lainnya ke PDF.
+- [**JPG ke PDF**](./jpg-to-pdf): Buat PDF dari satu atau beberapa gambar JPG.
+- [**PNG ke PDF**](./png-to-pdf): Buat PDF dari satu atau beberapa gambar PNG.
+- [**WebP ke PDF**](./webp-to-pdf): Buat PDF dari satu atau beberapa gambar WebP.
+- [**SVG ke PDF**](./svg-to-pdf): Buat PDF dari satu atau beberapa gambar SVG.
+- [**BMP ke PDF**](./bmp-to-pdf): Buat PDF dari satu atau beberapa gambar BMP.
+- [**HEIC ke PDF**](./heic-to-pdf): Buat PDF dari satu atau beberapa gambar HEIC.
+- [**TIFF ke PDF**](./tiff-to-pdf): Buat PDF dari satu atau beberapa gambar TIFF.
+- [**Teks ke PDF**](./txt-to-pdf): Konversi file teks biasa menjadi PDF.
+- [**Markdown ke PDF**](./markdown-to-pdf): Konversi Markdown ke PDF dengan pratinjau langsung dan penyorotan sintaks.
+- [**JSON ke PDF**](./json-to-pdf): Konversi file JSON ke format PDF.
+- [**ODT ke PDF**](./odt-to-pdf): Konversi file ODT (OpenDocument Text) ke PDF.
+- [**CSV ke PDF**](./csv-to-pdf): Konversi spreadsheet CSV ke PDF.
+- [**RTF ke PDF**](./rtf-to-pdf): Konversi dokumen RTF (Rich Text Format) ke PDF.
+- [**Word ke PDF**](./word-to-pdf): Konversi dokumen Word (DOCX, DOC, ODT) ke PDF.
+- [**Excel ke PDF**](./excel-to-pdf): Konversi spreadsheet Excel (XLSX, XLS, ODS) ke PDF.
+- [**PowerPoint ke PDF**](./powerpoint-to-pdf): Konversi presentasi PowerPoint (PPTX, PPT, ODP) ke PDF.
+- [**XPS ke PDF**](./xps-to-pdf): Konversi dokumen XPS/OXPS ke PDF.
+- [**MOBI ke PDF**](./mobi-to-pdf): Konversi e-book MOBI ke PDF.
+- [**EPUB ke PDF**](./epub-to-pdf): Konversi e-book EPUB ke PDF.
+- [**FB2 ke PDF**](./fb2-to-pdf): Konversi e-book FictionBook (FB2) ke PDF.
+- [**CBZ ke PDF**](./cbz-to-pdf): Konversi arsip komik (CBZ/CBR) ke PDF.
+- [**WPD ke PDF**](./wpd-to-pdf): Konversi dokumen WordPerfect (WPD) ke PDF.
+- [**WPS ke PDF**](./wps-to-pdf): Konversi dokumen WPS Office ke PDF.
+- [**XML ke PDF**](./xml-to-pdf): Konversi dokumen XML ke PDF.
+- [**ODG ke PDF**](./odg-to-pdf): Konversi OpenDocument Graphics (ODG) ke PDF.
+- [**ODS ke PDF**](./ods-to-pdf): Konversi OpenDocument Spreadsheet (ODS) ke PDF.
+- [**ODP ke PDF**](./odp-to-pdf): Konversi OpenDocument Presentation (ODP) ke PDF.
+- [**PUB ke PDF**](./pub-to-pdf): Konversi Microsoft Publisher (PUB) ke PDF.
+- [**VSD ke PDF**](./vsd-to-pdf): Konversi Microsoft Visio (VSD, VSDX) ke PDF.
+- [**PSD ke PDF**](./psd-to-pdf): Konversi file Adobe Photoshop (PSD) ke PDF.
+- [**Email ke PDF**](./email-to-pdf): Konversi file email (EML, MSG) ke format PDF.
+
+
+
+---
+
+## Konversi dari PDF
+
+Ekstrak konten dari PDF ke gambar, dokumen, dan format data.
+
+
+
+- [**PDF ke JPG**](./pdf-to-jpg): Konversi setiap halaman PDF menjadi gambar JPG.
+- [**PDF ke PNG**](./pdf-to-png): Konversi setiap halaman PDF menjadi gambar PNG.
+- [**PDF ke WebP**](./pdf-to-webp): Konversi setiap halaman PDF menjadi gambar WebP.
+- [**PDF ke BMP**](./pdf-to-bmp): Konversi setiap halaman PDF menjadi gambar BMP.
+- [**PDF ke TIFF**](./pdf-to-tiff): Konversi setiap halaman PDF menjadi gambar TIFF.
+- [**PDF ke CBZ**](./pdf-to-cbz): Konversi PDF menjadi CBZ (Comic Book Archive) untuk pembaca komik dan Calibre.
+- [**PDF ke SVG**](./pdf-to-svg): Konversi setiap halaman PDF menjadi grafik vektor yang dapat diskalakan.
+- [**PDF ke CSV**](./pdf-to-csv): Ekstrak tabel dari PDF dan konversi ke format CSV.
+- [**PDF ke Excel**](./pdf-to-excel): Ekstrak tabel dari PDF dan konversi ke Excel (XLSX).
+- [**PDF ke Skala Abu-abu**](./pdf-to-greyscale): Ubah semua warna menjadi hitam putih.
+- [**PDF ke JSON**](./pdf-to-json): Konversi file PDF ke format JSON.
+- [**PDF ke Word**](./pdf-to-word): Konversi file PDF menjadi dokumen Word yang dapat diedit.
+- [**Ekstrak Gambar**](./extract-images): Ekstrak semua gambar tertanam dari file PDF Anda.
+- [**PDF ke Markdown**](./pdf-to-markdown): Konversi teks dan tabel PDF ke format Markdown.
+- [**Siapkan PDF untuk AI**](./prepare-pdf-for-ai): Ekstrak konten PDF sebagai JSON LlamaIndex untuk pipeline RAG/LLM.
+- [**PDF ke Teks**](./pdf-to-text): Ekstrak teks dari file PDF dan simpan sebagai teks biasa.
+- [**Ekstrak Tabel PDF**](./extract-tables): Ekstrak tabel dari PDF sebagai CSV, JSON, atau Markdown.
+
+
+
+---
+
+## Atur & Kelola
+
+Susun ulang, gabungkan, pisahkan, dan kelola halaman serta file PDF Anda.
+
+
+
+- [**Pembangun Alur Kerja PDF**](./pdf-workflow): Bangun pipeline pemrosesan PDF kustom dengan editor node visual.
+- [**Alat Multi PDF**](./pdf-multi-tool): Editor PDF lengkap dengan pengelolaan halaman.
+- [**OCR PDF**](./ocr-pdf): Buat PDF dapat dicari dan disalin.
+- [**Gabung PDF**](./merge-pdf): Gabungkan beberapa PDF menjadi satu file.
+- [**Alternatif & Campur Halaman**](./alternate-merge): Gabungkan PDF dengan menyelang-nyelingkan halaman dari setiap PDF.
+- [**Susun Ulang Pindaian Dupleks**](./duplex-collate): Urutkan ulang blok pindaian depan/belakang ke urutan halaman yang benar.
+- [**Duplikat & Atur**](./organize-pdf): Duplikat, atur ulang urutan, dan hapus halaman.
+- [**Tambah Lampiran**](./add-attachments): Sematkan satu atau beberapa file ke PDF Anda.
+- [**Ekstrak Lampiran**](./extract-attachments): Ekstrak semua file tertanam dari PDF sebagai ZIP.
+- [**Edit Lampiran**](./edit-attachments): Lihat atau hapus lampiran di PDF Anda.
+- [**Lapisan PDF (OCG)**](./pdf-layers): Lihat, alihkan, tambah, dan hapus lapisan OCG di PDF Anda.
+- [**Pisah PDF**](./split-pdf): Ekstrak rentang halaman ke PDF baru.
+- [**Bagi Halaman**](./divide-pages): Bagi halaman secara horizontal atau vertikal.
+- [**Ekstrak Halaman**](./extract-pages): Simpan pilihan halaman sebagai file baru.
+- [**Hapus Halaman**](./delete-pages): Hapus halaman tertentu dari dokumen Anda.
+- [**Tambah Halaman Kosong**](./add-blank-page): Sisipkan halaman kosong di mana saja dalam PDF Anda.
+- [**Balik Halaman**](./reverse-pages): Balik urutan semua halaman dalam dokumen Anda.
+- [**Putar PDF**](./rotate-pdf): Putar halaman dalam kelipatan 90 derajat.
+- [**Putar dengan Derajat Kustom**](./rotate-custom): Putar halaman dengan sudut kustom apa pun.
+- [**N-Up PDF**](./n-up-pdf): Susun beberapa halaman dalam satu lembar.
+- [**Buku Kecil PDF**](./pdf-booklet): Susun ulang halaman untuk pencetakan buku kecil bolak-balik.
+- [**Gabung ke Halaman Tunggal**](./combine-single-page): Rangkai semua halaman menjadi satu gulungan kontinu.
+- [**Lihat Metadata**](./view-metadata): Periksa properti tersembunyi PDF Anda.
+- [**Edit Metadata**](./edit-metadata): Ubah penulis, judul, dan properti lainnya.
+- [**PDF ke ZIP**](./pdf-to-zip): Kemas beberapa file PDF ke dalam arsip ZIP.
+- [**Bandingkan PDF**](./compare-pdfs): Bandingkan dua PDF secara berdampingan.
+- [**Posterisasi PDF**](./posterize-pdf): Pecah satu halaman besar menjadi beberapa halaman yang lebih kecil.
+
+
+
+---
+
+## Optimalkan & Perbaiki
+
+Kompres, perbaiki, dan optimalkan PDF Anda untuk kinerja dan kompatibilitas yang lebih baik.
+
+
+
+- [**Kompres PDF**](./compress-pdf): Kurangi ukuran file PDF Anda.
+- [**PDF ke PDF/A**](./pdf-to-pdfa): Konversi PDF ke PDF/A untuk pengarsipan jangka panjang.
+- [**Perbaiki Ukuran Halaman**](./fix-page-size): Standarkan semua halaman ke ukuran yang seragam.
+- [**Linierisasi PDF**](./linearize-pdf): Optimalkan PDF untuk penayangan web yang cepat.
+- [**Dimensi Halaman**](./page-dimensions): Analisis ukuran, orientasi, dan satuan halaman.
+- [**Hapus Pembatasan**](./remove-restrictions): Hapus perlindungan kata sandi dan pembatasan keamanan.
+- [**Perbaiki PDF**](./repair-pdf): Pulihkan data dari file PDF yang rusak atau korup.
+- [**Rasterisasi PDF**](./rasterize-pdf): Konversi PDF menjadi PDF berbasis gambar. Ratakan lapisan dan hapus teks yang dapat dipilih.
+- [**Luruskan PDF**](./deskew-pdf): Luruskan halaman pindaian yang miring secara otomatis menggunakan OpenCV.
+- [**Font ke Garis Tepi**](./font-to-outline): Konversi semua font menjadi garis tepi vektor agar tampil konsisten.
+
+
+
+---
+
+## Amankan PDF
+
+Lindungi, enkripsi, dan kendalikan akses ke dokumen PDF Anda.
+
+
+
+- [**Enkripsi PDF**](./protect-pdf): Kunci PDF Anda dengan menambahkan kata sandi.
+- [**Sanitasi PDF**](./sanitize-pdf): Hapus metadata, anotasi, skrip, dan lainnya.
+- [**Dekripsi PDF**](./unlock-pdf): Buka kunci PDF dengan menghapus perlindungan kata sandi.
+- [**Ratakan PDF**](./flatten-pdf): Buat kolom formulir dan anotasi tidak dapat diedit.
+- [**Hapus Metadata**](./remove-metadata): Hapus data tersembunyi dari PDF Anda.
+- [**Ubah Izin**](./change-permissions): Atur atau ubah izin pengguna pada PDF.
+- [**Tanda Tangan Digital**](./digital-sign-pdf): Tambahkan tanda tangan digital kriptografis menggunakan sertifikat X.509.
+- [**Validasi Tanda Tangan**](./validate-signature-pdf): Verifikasi tanda tangan digital dan lihat detail sertifikat.
+
+
diff --git a/docs/id/tools/invert-colors.md b/docs/id/tools/invert-colors.md
new file mode 100644
index 00000000..0085c5d9
--- /dev/null
+++ b/docs/id/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Balik Warna
+description: Balik semua warna dalam PDF Anda untuk membuat versi mode gelap dari dokumen apa pun.
+---
+
+# Balik Warna
+
+Balik setiap warna dalam PDF Anda ke kebalikannya. Latar putih menjadi hitam, teks hitam menjadi putih, dan semua warna lain bergeser ke nilai komplementernya. Ini cara tercepat untuk membuat versi "mode gelap" dari PDF apa pun.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Klik **Balik Warna** untuk memproses.
+3. PDF yang sudah dibalik akan diunduh secara otomatis.
+
+Tidak ada pengaturan tambahan. Alat ini merender setiap halaman sebagai gambar, membalik semua warna piksel, lalu menyusun ulang hasilnya menjadi PDF baru.
+
+## Fitur
+
+- Pembalikan warna satu klik untuk semua halaman
+- Memproses setiap halaman dalam dokumen
+- Mempertahankan dimensi dan tata letak halaman asli
+- Bekerja dengan PDF apa pun, apa pun jenis kontennya (teks, gambar, campuran)
+
+## Kasus Penggunaan
+
+- Membuat versi mode gelap dari buku teks atau manual untuk membaca malam hari dengan nyaman
+- Menyiapkan versi kontras tinggi dari dokumen untuk keperluan aksesibilitas
+- Membalik dokumen hasil pindai yang diambil dengan eksposur yang salah
+- Membuat versi negatif dari PDF yang banyak berisi gambar untuk analisis visual
+
+## Tips
+
+- Karena alat ini merasterisasi halaman untuk menerapkan efeknya, hasilnya berbasis gambar. Teks tidak lagi dapat dipilih atau dicari. Jika Anda memerlukan teks yang dapat dicari setelah pembalikan, jalankan hasilnya melalui alat OCR.
+- Untuk penyesuaian warna yang lebih terperinci (kecerahan, kontras, saturasi), gunakan alat [Sesuaikan Warna](./adjust-colors).
+- PDF besar dengan banyak halaman mungkin membutuhkan waktu lebih lama karena setiap halaman dirender dan dibalik satu per satu.
+
+## Alat Terkait
+
+- [Sesuaikan Warna](./adjust-colors)
+- [Warna Latar Belakang](./background-color)
+- [Efek Pemindai](./scanner-effect)
diff --git a/docs/id/tools/jpg-to-pdf.md b/docs/id/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..21be17ad
--- /dev/null
+++ b/docs/id/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG ke PDF
+description: Konversi satu atau beberapa gambar JPG, JPEG, dan JPEG 2000 menjadi satu file PDF langsung di browser Anda.
+---
+
+# JPG ke PDF
+
+Ubah gambar JPG menjadi PDF yang rapi. Unggah satu file atau beberapa JPG sekaligus: setiap gambar menjadi satu halaman penuh di dokumen hasil.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file JPG Anda. Pemilihan banyak file didukung.
+2. Periksa file yang diunggah. Gunakan ikon tempat sampah untuk menghapus file tertentu, atau klik **Tambah File Lagi** untuk menambahkannya ke daftar.
+3. Pilih tingkat **Kualitas PDF**.
+4. Klik **Konversi ke PDF**. Alat ini mengompresi gambar sesuai pengaturan kualitas Anda, mengonversinya melalui mesin PyMuPDF, dan mengunduh `from_jpgs.pdf`.
+
+## Opsi
+
+**Kualitas PDF** menyesuaikan kompresi yang diterapkan pada setiap gambar sebelum disematkan ke PDF:
+
+- **Kualitas Tinggi**: mempertahankan detail maksimal. Gunakan untuk fotografi atau cetak.
+- **Kualitas Sedang** (default): keseimbangan yang baik antara kejernihan dan ukuran file.
+- **Kualitas Rendah**: kompresi agresif untuk hasil terkecil.
+
+## Kasus Penggunaan
+
+- Mengonversi dokumen hasil pindai yang disimpan sebagai JPG menjadi satu PDF untuk diserahkan
+- Mengemas foto produk menjadi katalog untuk klien
+- Mengubah gambar medis atau satelit JPEG 2000 menjadi PDF portabel
+- Membuat album foto yang dapat dicetak dari ekspor kamera
+
+## Tips
+
+- File JPEG 2000 (`.jp2`, `.jpx`) didukung sepenuhnya, bukan hanya JPEG standar. Ini berguna untuk pencitraan medis dan data geospasial.
+- Jika JPG Anda berasal dari kamera ponsel, kualitas Sedang biasanya menghasilkan file yang 40-60% lebih kecil daripada Tinggi tanpa perbedaan yang terlihat di layar.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
+- [WebP ke PDF](./webp-to-pdf)
diff --git a/docs/id/tools/json-to-pdf.md b/docs/id/tools/json-to-pdf.md
new file mode 100644
index 00000000..236235e4
--- /dev/null
+++ b/docs/id/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON ke PDF
+description: Rekonstruksi file PDF dari format JSON BentoPDF. Konversi ekspor JSON kembali ke dokumen PDF aslinya.
+---
+
+# JSON ke PDF
+
+Rekonstruksi dokumen PDF dari file JSON yang sebelumnya dibuat oleh alat **PDF ke JSON** BentoPDF. Ini adalah alat konversi bolak-balik: alat ini mengambil representasi JSON terstruktur dari sebuah PDF dan membangun kembali dokumen aslinya.
+
+::: warning
+Alat ini hanya menerima file JSON yang dihasilkan oleh konverter PDF ke JSON BentoPDF. File JSON standar dari API, basis data, atau alat lain tidak didukung.
+:::
+
+## Format yang Didukung
+
+| Input | Deskripsi |
+| :------ | :----------------------------------------------------- |
+| `.json` | File JSON yang diekspor oleh alat PDF ke JSON BentoPDF |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas satu atau beberapa file JSON.
+2. Daftar file menampilkan setiap file yang dipilih beserta ukurannya.
+3. Klik **Konversi ke PDF**. Alat ini memproses semua file menggunakan Web Worker dan mesin CPDF.
+4. Hasilnya diunduh sebagai `jsons-to-pdf.zip` yang berisi satu PDF untuk setiap file JSON input.
+
+Konversi berjalan di Web Worker latar belakang, sehingga antarmuka tetap responsif bahkan dengan file besar.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat dikonfigurasi. Struktur JSON sepenuhnya menentukan PDF hasil.
+
+## Output
+
+Saat mengonversi beberapa file JSON, hasilnya dikirim sebagai arsip ZIP. Setiap PDF dinamai sesuai file JSON sumbernya (misalnya, `report.json` menjadi `report.pdf`).
+
+## Kasus Penggunaan
+
+- Memulihkan PDF dari cadangan berbasis JSON atau pipeline arsip
+- Melakukan konversi bolak-balik PDF melalui JSON untuk inspeksi lalu kembali ke PDF
+- Membangun ulang dokumen setelah modifikasi struktur JSON secara terprogram
+- Memverifikasi bahwa ekspor PDF ke JSON menangkap seluruh isi dokumen dengan mengonversinya kembali
+
+## Tips
+
+- Jika Anda perlu mengonversi data JSON sembarang (seperti respons API atau file konfigurasi) menjadi PDF yang terformat, alat [Teks ke PDF](./txt-to-pdf) lebih cocok. Tempel JSON sebagai teks dan akan dirender dengan format yang tepat.
+- Mesin WebAssembly CPDF harus tersedia agar alat ini berfungsi. Instans yang dihosting sendiri memerlukan file WASM CPDF yang sudah dikonfigurasi.
+
+## Alat Terkait
+
+- [Teks ke PDF](./txt-to-pdf)
+- [Markdown ke PDF](./markdown-to-pdf)
+- [CSV ke PDF](./csv-to-pdf)
diff --git a/docs/id/tools/linearize-pdf.md b/docs/id/tools/linearize-pdf.md
new file mode 100644
index 00000000..9a1884c5
--- /dev/null
+++ b/docs/id/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Linierisasi PDF
+description: Optimalkan file PDF untuk penayangan web yang cepat dengan pemuatan progresif. Juga dikenal sebagai optimasi "Fast Web View".
+---
+
+# Linierisasi PDF
+
+Linierisasi menyusun ulang struktur PDF sehingga halaman pertama dapat ditampilkan sebelum seluruh file selesai diunduh. Adobe menyebutnya "Fast Web View". Jika Anda menghosting PDF di situs web atau menyajikannya melalui portal dokumen, linierisasi membuatnya terasa jauh lebih cepat dibuka.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF.
+2. Klik **Linierisasi PDF**.
+3. Unduh hasilnya sebagai arsip ZIP yang berisi semua file yang telah dilinierisasi.
+
+Tidak ada pengaturan yang perlu dikonfigurasi. Alat ini menggunakan flag `--linearize` dari QPDF, yang menyusun ulang struktur internal PDF tanpa mengubah konten visualnya.
+
+## Yang Dilakukan Linierisasi
+
+- Menyusun ulang objek PDF sehingga data halaman pertama berada di awal file
+- Menambahkan kamus linierisasi dan tabel petunjuk agar penampil tahu di mana menemukan setiap halaman
+- Mengaktifkan permintaan byte-range: browser dapat mengambil halaman pertama saja tanpa mengunduh seluruh file
+- Merapikan tabel referensi silang untuk akses acak yang efisien
+
+## Fitur
+
+- Pemrosesan batch beberapa PDF dalam satu operasi
+- Output mempertahankan semua konten, font, gambar, dan elemen interaktif
+- Menggunakan QPDF (WebAssembly) untuk linierisasi yang andal dan sesuai standar
+- Hasil dikemas dalam ZIP agar mudah diunduh
+
+## Kasus Penggunaan
+
+- Menghosting laporan PDF di situs web yang pengunjungnya mengharapkan halaman tampil seketika
+- Menyematkan PDF di aplikasi web dengan penampil di dalam browser
+- Menerbitkan katalog atau manual PDF yang diakses melalui koneksi seluler yang lambat
+- Menyiapkan dokumen untuk content delivery network (CDN) yang mendukung penyajian byte-range
+
+## Tips
+
+- Lakukan linierisasi setelah semua pengeditan lain selesai. Modifikasi apa pun setelahnya (menggabungkan, menambah halaman) akan merusak linierisasi.
+- Kombinasikan dengan Kompres PDF untuk PDF terkecil dan tercepat dimuat.
+- Linierisasi menambah sedikit overhead pada ukuran file (biasanya di bawah 1%).
+
+## Alat Terkait
+
+- [Kompres PDF](./compress-pdf): kurangi ukuran file sebelum linierisasi
+- [Perbaiki PDF](./repair-pdf): perbaiki masalah struktural yang menghalangi linierisasi
+- [Hapus Metadata](./remove-metadata): hapus metadata sebelum dipublikasikan secara online
diff --git a/docs/id/tools/markdown-to-pdf.md b/docs/id/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..4223a894
--- /dev/null
+++ b/docs/id/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown ke PDF
+description: Tulis atau tempel Markdown dan ekspor sebagai PDF berformat profesional dengan pratinjau langsung dan penyorotan sintaks.
+---
+
+# Markdown ke PDF
+
+Editor Markdown lengkap dengan pratinjau langsung dan ekspor PDF satu klik. Tulis dari awal, unggah file `.md` yang ada, atau tempel konten dari clipboard. Editor merender Markdown Anda secara real time dan mengekspor PDF bergaya menggunakan mesin cetak bawaan browser.
+
+## Format yang Didukung
+
+| Input | Deskripsi |
+| :------------- | :--------------------------- |
+| File `.md` | Unggah melalui tombol Unggah |
+| Input langsung | Ketik atau tempel ke editor |
+
+## Cara Kerja
+
+1. Buka alat Markdown ke PDF. Editor dimuat dengan tampilan terbagi: sumber Markdown di kiri, pratinjau hasil render di kanan.
+2. Tulis Markdown Anda, tempel, atau klik **Unggah** untuk memuat file `.md`.
+3. Beralih antara tema terang dan gelap menggunakan penggeser tema di toolbar.
+4. Klik **Ekspor PDF** (atau tekan `Ctrl/Cmd + S`) untuk membuat PDF melalui dialog cetak browser.
+
+## Fitur
+
+Editor mendukung serangkaian fitur Markdown yang luas di luar dasar-dasarnya:
+
+- **Markdown standar**: judul, tebal, miring, tautan, gambar, daftar, kutipan blok, garis horizontal
+- **Blok kode** dengan penyorotan sintaks untuk 15+ bahasa (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash, dan lainnya)
+- **Diagram Mermaid**: flowchart, diagram urutan, diagram ER, dan jenis bagan Mermaid lainnya dirender langsung di pratinjau
+- **Tabel** dengan sintaks tabel Markdown standar
+- **Daftar tugas** dengan kotak centang
+- **Catatan kaki**, **subskrip**, **superskrip**
+- **Daftar definisi**, **singkatan**
+- Dukungan **Emoji** (`:smile:` dirender sebagai emoji)
+- **Sorotan** (`==marked text==`) dan **sisipan** (`++inserted text++`)
+- **URL tertaut otomatis**: URL biasa diubah menjadi tautan yang dapat diklik
+- Pembuatan **daftar isi**
+- **Tautan anchor** pada judul
+
+## Kasus Penggunaan
+
+- Menulis dokumentasi proyek dan mengekspor PDF yang rapi untuk pemangku kepentingan
+- Membuat laporan teknis dengan contoh kode dan diagram arsitektur Mermaid
+- Mengonversi README GitHub menjadi PDF untuk penggunaan offline atau pencetakan
+- Menyusun proposal atau spesifikasi dengan daftar tugas dan tabel
+- Membuat handout bergaya dari catatan kuliah yang ditulis dalam Markdown
+
+## Tips
+
+- Output PDF menggunakan fungsi cetak-ke-PDF browser. Di Chrome, Anda dapat menyesuaikan margin dan skala di dialog cetak sebelum menyimpan.
+- Diagram Mermaid dirender di pratinjau tetapi mungkin memerlukan waktu sebentar untuk diinisialisasi pada penggunaan pertama.
+- Gunakan `Ctrl/Cmd + S` sebagai pintasan keyboard untuk mengekspor tanpa perlu menekan tombol.
+
+## Alat Terkait
+
+- [Teks ke PDF](./txt-to-pdf)
+- [Word ke PDF](./word-to-pdf)
+- [JSON ke PDF](./json-to-pdf)
diff --git a/docs/id/tools/merge-pdf.md b/docs/id/tools/merge-pdf.md
new file mode 100644
index 00000000..4617a84c
--- /dev/null
+++ b/docs/id/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Gabung PDF
+description: Gabungkan beberapa file PDF menjadi satu dokumen dengan pengurutan seret dan lepas serta kontrol tingkat halaman.
+---
+
+# Gabung PDF
+
+Gabungkan beberapa file PDF menjadi satu dokumen. Anda dapat menggabungkan seluruh file dalam urutan tertentu, atau beralih ke Mode Halaman untuk kontrol terperinci atas setiap halaman dari semua PDF yang diunggah.
+
+## Cara Kerja
+
+1. Unggah dua atau lebih file PDF dengan mengklik area lepas atau menyeretnya ke dalamnya.
+2. Pilih antara **Mode File** dan **Mode Halaman** menggunakan sakelar di bagian atas.
+3. Di Mode File, seret file untuk mengubah urutan dan secara opsional tentukan rentang halaman (misalnya `1-3, 5`) untuk setiap file. Biarkan rentang kosong untuk menyertakan semua halaman.
+4. Di Mode Halaman, seret dan lepas thumbnail halaman satu per satu untuk menyusun urutan halaman yang Anda inginkan.
+5. Klik **Gabung PDF** untuk menggabungkan semuanya menjadi satu file. PDF hasil gabungan diunduh secara otomatis.
+
+## Fitur
+
+- Dua mode penggabungan: Mode File untuk menggabungkan seluruh file dengan cepat, Mode Halaman untuk kontrol per halaman
+- Pengurutan seret dan lepas di kedua mode dengan animasi yang mulus
+- Sintaks rentang halaman (misalnya `1-3, 5, 8-10`) memungkinkan Anda memilih halaman tanpa beralih ke Mode Halaman
+- Thumbnail halaman yang dimuat bertahap menjaga antarmuka tetap responsif bahkan dengan dokumen besar
+- Tidak ada batas jumlah file atau total halaman
+- Mempertahankan kualitas PDF asli tanpa pengodean ulang
+
+## Opsi
+
+| Opsi | Deskripsi |
+| ----------------- | -------------------------------------------------------------------------------------------------- |
+| **Mode File** | Gabungkan seluruh file dalam urutan kustom, dengan filter rentang halaman opsional per file |
+| **Mode Halaman** | Kisi visual semua halaman dari semua file: seret thumbnail untuk menyusun urutan Anda |
+| **Input halaman** | Kolom teks per file yang menerima rentang seperti `1-3, 5` untuk menyertakan halaman tertentu saja |
+
+## Kasus Penggunaan
+
+- Menggabungkan PDF bab terpisah menjadi satu buku atau laporan
+- Menggabungkan surat lamaran dan resume menjadi satu dokumen lamaran
+- Mengambil halaman tertentu dari beberapa dokumen sumber ke dalam satu file gabungan
+- Menyusun struk atau faktur hasil pindai menjadi satu PDF arsip
+- Membuat handout presentasi dari slide di beberapa deck
+
+## Tips
+
+- Gunakan Mode Halaman saat Anda perlu menyisipkan halaman dari file berbeda secara selang-seling, bukan menambahkan satu file setelah file lainnya.
+- Anda dapat menambahkan file setelah unggahan awal menggunakan tombol **Tambah File Lagi** tanpa kehilangan susunan saat ini.
+- Rentang halaman dimulai dari 1, jadi `1` merujuk ke halaman pertama file tersebut.
+
+## Alat Terkait
+
+- [Pisah PDF](./split-pdf)
+- [Duplikat & Atur](./organize-pdf)
+- [Alternatif & Campur Halaman](./alternate-merge)
+- [Hapus Halaman](./delete-pages)
diff --git a/docs/id/tools/mobi-to-pdf.md b/docs/id/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..1b5cb7fe
--- /dev/null
+++ b/docs/id/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI ke PDF
+description: Konversi file ebook MOBI ke PDF langsung di browser Anda. Gratis, privat, tanpa unggah file.
+---
+
+# MOBI ke PDF
+
+Konversi ebook Amazon Kindle MOBI menjadi dokumen PDF. File MOBI terikat pada perangkat dan aplikasi Kindle sehingga sulit dibaca di tempat lain. Mengonversinya ke PDF memberi Anda versi portabel yang dapat dibuka di perangkat apa pun atau dicetak.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----- | :------- | :------------------------------- |
+| MOBI | `.mobi` | Format ebook Kindle (Mobipocket) |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas satu atau beberapa file MOBI.
+2. Periksa daftar file. Hapus file yang tidak diinginkan dengan ikon tempat sampah, atau gunakan **Tambah File Lagi** untuk menyertakan ebook tambahan.
+3. Klik **Konversi ke PDF**. Mesin PyMuPDF mengurai struktur MOBI dan merender setiap halaman sebagai konten PDF.
+4. Satu file diunduh sebagai PDF. Saat mengonversi beberapa file, Anda mendapatkan arsip ZIP bernama `mobi-converted.zip`.
+
+## Opsi
+
+Tidak diperlukan pengaturan tambahan. Konversi mempertahankan isi teks, pemformatan, dan gambar tertanam dari file MOBI asli.
+
+## Kasus Penggunaan
+
+- Membaca konten yang dibeli di Kindle pada e-reader non-Kindle yang hanya mendukung PDF
+- Mencetak bab dari ebook untuk belajar atau memberi anotasi secara offline
+- Mengarsipkan pustaka ebook pribadi Anda dalam format universal
+- Membagikan kutipan kepada orang yang tidak memasang aplikasi Kindle
+
+## Tips
+
+- File MOBI yang dilindungi DRM tidak dapat dikonversi. Alat ini hanya bekerja dengan file MOBI bebas DRM.
+- Ebook besar dengan banyak gambar tertanam mungkin membutuhkan beberapa detik lebih lama karena semuanya diproses di browser.
+
+## Alat Terkait
+
+- [EPUB ke PDF](./epub-to-pdf)
+- [FB2 ke PDF](./fb2-to-pdf)
+- [CBZ ke PDF](./cbz-to-pdf)
diff --git a/docs/id/tools/n-up-pdf.md b/docs/id/tools/n-up-pdf.md
new file mode 100644
index 00000000..5c6613eb
--- /dev/null
+++ b/docs/id/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-Up PDF
+description: Susun beberapa halaman PDF dalam satu lembar dengan tata letak kisi untuk pencetakan yang ringkas.
+---
+
+# N-Up PDF
+
+Tempatkan beberapa halaman dalam satu lembar dengan susunan kisi. Ini mengurangi jumlah halaman yang dicetak dengan memuat 2, 4, 6, 8, 9, atau 16 halaman per lembar. Alat ini menangani penskalaan, penempatan, dan konfigurasi ukuran halaman opsional.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Pilih jumlah halaman per lembar (nilai "N"): 2, 4, 6, 8, 9, atau 16.
+3. Pilih ukuran halaman output (default A4) dan orientasi.
+4. Secara opsional atur jarak, warna garis tepi, dan warna latar belakang.
+5. Klik tombol proses. Alat ini menskalakan setiap halaman dan menyusunnya pada lembar baru.
+
+## Fitur
+
+- Tata letak kisi: 2-up, 4-up, 6-up, 8-up, 9-up, dan 16-up
+- Ukuran halaman dan orientasi output yang dapat dikonfigurasi
+- Jarak opsional antarhalaman yang disusun
+- Pengaturan warna latar belakang dan garis tepi
+- Mempertahankan rasio aspek halaman asli saat menskalakan agar pas
+
+## Opsi
+
+| Opsi | Deskripsi |
+| ------------------------ | ------------------------------------------------------------------------------ |
+| **Halaman per lembar** | Jumlah halaman asli yang dimuat pada setiap halaman output (2, 4, 6, 8, 9, 16) |
+| **Ukuran halaman** | Ukuran lembar output (A4, Letter, Legal, dll.) |
+| **Orientasi** | Potret atau Lanskap untuk lembar output |
+| **Jarak** | Celah dalam poin antarhalaman yang disusun |
+| **Warna latar belakang** | Warna isian untuk latar belakang lembar output |
+| **Warna garis tepi** | Warna untuk garis tepi di sekeliling setiap halaman yang disusun |
+
+## Kasus Penggunaan
+
+- Mencetak handout dengan 4 slide per halaman untuk menghemat kertas
+- Membuat lembar belajar dengan beberapa halaman referensi dalam satu lembar
+- Menghasilkan arsip dokumen yang ringkas untuk penyimpanan berkas
+- Membuat lembar ikhtisar thumbnail dari dokumen yang panjang
+
+## Tips
+
+- Orientasi lanskap sering bekerja lebih baik untuk tata letak 2-up, sedangkan potret biasanya terbaik untuk 4-up ke atas.
+- Menambah jarak membantu keterbacaan tetapi mengurangi area yang tersedia untuk setiap halaman yang disusun.
+- Untuk operasi sebaliknya (memecah satu halaman menjadi beberapa), lihat [Posterisasi PDF](./posterize-pdf).
+
+## Alat Terkait
+
+- [Posterisasi PDF](./posterize-pdf)
+- [Buku Kecil PDF](./pdf-booklet)
+- [Gabung ke Halaman Tunggal](./combine-single-page)
diff --git a/docs/id/tools/ocr-pdf.md b/docs/id/tools/ocr-pdf.md
new file mode 100644
index 00000000..c64a0703
--- /dev/null
+++ b/docs/id/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Buat PDF hasil pindai dapat dicari dan disalin menggunakan Tesseract OCR dengan dukungan multibahasa dan penyaringan karakter.
+---
+
+# OCR PDF
+
+Ubah dokumen hasil pindai menjadi PDF yang dapat dicari dan disalin. Alat ini menggunakan Tesseract OCR untuk mengenali teks pada gambar dan menempatkan lapisan teks tak terlihat di atas halaman asli, sehingga tampilan visualnya tetap terjaga sementara kontennya sepenuhnya dapat dicari.
+
+## Cara Kerja
+
+1. Unggah PDF hasil pindai atau PDF berbasis gambar.
+2. Pilih satu atau beberapa bahasa yang ada dalam dokumen dari daftar bahasa yang dapat dicari.
+3. Secara opsional sesuaikan pengaturan lanjutan (resolusi, binarisasi, daftar putih).
+4. Klik **Mulai OCR** dan pantau kemajuan pada bilah kemajuan real-time.
+5. Setelah selesai, periksa teks yang diekstrak, lalu unduh PDF yang dapat dicari atau file `.txt` biasa.
+
+## Fitur
+
+- OCR multibahasa dengan pemilih bahasa yang dapat dicari
+- Lapisan teks tak terlihat mempertahankan tampilan dokumen asli
+- Bilah kemajuan real-time dan keluaran log selama pemrosesan
+- Unduh hasil sebagai PDF yang dapat dicari atau file teks biasa
+- Salin teks yang diekstrak langsung ke clipboard
+- Tiga tingkat resolusi untuk menyeimbangkan kecepatan dan akurasi
+
+## Opsi
+
+| Pengaturan | Nilai | Default | Tujuan |
+| -------------------------------- | --------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------ |
+| **Resolusi** | Standar (192 DPI), Tinggi (288 DPI), Ultra (384 DPI) | Tinggi | Resolusi lebih tinggi meningkatkan akurasi pada teks kecil tetapi lebih lama |
+| **Binarisasi Gambar** | Aktif / Nonaktif | Nonaktif | Meningkatkan kontras untuk hasil pindai yang bersih dengan mengubahnya menjadi hitam putih |
+| **Preset Daftar Putih Karakter** | Tidak Ada, Alfanumerik, Angka + Mata Uang, Hanya Huruf, Hanya Angka, Faktur, Formulir, Kustom | Tidak Ada | Membatasi karakter yang dikenali untuk meningkatkan akurasi pada jenis dokumen tertentu |
+| **Daftar Putih Karakter** | Teks bebas | Kosong | Kumpulan karakter manual saat preset diatur ke Kustom |
+
+## Kasus Penggunaan
+
+- Membuat kontrak dan faktur hasil pindai dapat dicari sehingga Anda bisa menggunakan Ctrl+F di dalamnya
+- Mengekstrak teks dari dokumen hasil foto atau arsip kertas lama
+- Memproses struk dengan preset Faktur untuk menangkap jumlah uang dan tanggal secara akurat
+- Membuat PDF yang aksesibel dari hasil pindai berupa gambar saja untuk kebutuhan kepatuhan
+- Mengekstrak isi teks secara massal dari buku atau manual hasil pindai
+
+## Tips
+
+- Pilih beberapa bahasa jika dokumen Anda berisi konten campuran bahasa (misalnya, judul bahasa Inggris dengan isi bahasa Jepang).
+- Gunakan opsi binarisasi untuk dokumen dengan teks pudar atau berkontras rendah: ini dapat meningkatkan akurasi pengenalan secara signifikan.
+- Preset daftar putih Faktur dan Formulir sangat mengurangi positif palsu pada dokumen terstruktur dengan mengabaikan bentuk karakter yang tidak relevan.
+
+## Alat Terkait
+
+- [Ekstrak Tabel PDF](./extract-tables)
+- [Gabung PDF](./merge-pdf)
+- [Kompres PDF](./compress-pdf)
diff --git a/docs/id/tools/odg-to-pdf.md b/docs/id/tools/odg-to-pdf.md
new file mode 100644
index 00000000..a4f3739d
--- /dev/null
+++ b/docs/id/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG ke PDF
+description: Konversi file LibreOffice Draw (ODG) ke PDF di browser Anda. Gratis, tanpa unggah, sepenuhnya privat.
+---
+
+# ODG ke PDF
+
+Konversi file OpenDocument Graphics menjadi PDF. ODG adalah format asli LibreOffice Draw dan digunakan untuk diagram, flowchart, dan ilustrasi vektor. Mengonversinya ke PDF membuat gambar-gambar ini mudah dibagikan, dicetak, dan disematkan di dokumen lain.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :-------------------- | :------- | :-------------------------------------- |
+| OpenDocument Graphics | `.odg` | File LibreOffice Draw / OpenOffice Draw |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file ODG Anda. Beberapa file dapat ditambahkan sekaligus.
+2. Periksa daftar file. Hapus entri tertentu dengan ikon tempat sampah, atau klik **Tambah File Lagi** untuk menambah gambar.
+3. Klik **Konversi ke PDF**. Mesin berbasis LibreOffice dimuat di browser dan mengonversi setiap file ODG, dengan mempertahankan grafik vektor, bentuk, dan teks.
+4. Satu file langsung diunduh sebagai PDF. Beberapa file menghasilkan arsip ZIP bernama `odg-to-pdf.zip`.
+
+## Opsi
+
+Tidak diperlukan pengaturan tambahan. Konversi mempertahankan dimensi halaman, bentuk, konektor, dan kotak teks asli dari sumber ODG.
+
+## Kasus Penggunaan
+
+- Membagikan diagram LibreOffice Draw kepada klien yang tidak memasang LibreOffice
+- Mencetak flowchart dan diagram jaringan yang dibuat di Draw
+- Menyertakan ilustrasi ODG dalam laporan atau presentasi sebagai PDF tersemat
+- Mengarsipkan gambar teknis dalam format yang tetap terbaca selama puluhan tahun
+
+## Tips
+
+- Elemen vektor tetap berupa vektor di output PDF, sehingga hasilnya dapat diskalakan dengan bersih ke ukuran cetak apa pun.
+- Mesin LibreOffice membutuhkan waktu sebentar untuk diinisialisasi pada penggunaan pertama. Konversi berikutnya dalam sesi yang sama lebih cepat.
+
+## Alat Terkait
+
+- [ODS ke PDF](./ods-to-pdf)
+- [ODP ke PDF](./odp-to-pdf)
+- [VSD ke PDF](./vsd-to-pdf)
diff --git a/docs/id/tools/odp-to-pdf.md b/docs/id/tools/odp-to-pdf.md
new file mode 100644
index 00000000..736f937c
--- /dev/null
+++ b/docs/id/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP ke PDF
+description: Konversi presentasi LibreOffice Impress (ODP) ke PDF di browser Anda. Gratis, privat, tanpa unggah.
+---
+
+# ODP ke PDF
+
+Konversi file OpenDocument Presentation menjadi PDF. ODP adalah format asli LibreOffice Impress dan ekspor standar dari Google Slides. Mengubah presentasi menjadi PDF berarti siapa pun dapat melihatnya tanpa perangkat lunak presentasi, dan slide tercetak dengan rapi.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :------------------------ | :------- | :----------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / ekspor Google Slides |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file ODP Anda. Anda dapat memilih beberapa presentasi sekaligus.
+2. Periksa daftar file. Hapus entri dengan ikon tempat sampah, atau gunakan **Tambah File Lagi** untuk menyertakan presentasi tambahan.
+3. Klik **Konversi ke PDF**. Mesin berbasis LibreOffice memproses setiap presentasi dan menghasilkan PDF di mana setiap slide menjadi satu halaman.
+4. Satu file diunduh sebagai PDF. Beberapa file dikirim dalam arsip ZIP bernama `odp-to-pdf.zip`.
+
+## Opsi
+
+Tidak ada pengaturan yang perlu dikonfigurasi. Setiap slide dirender pada dimensi aslinya, dengan mempertahankan teks, gambar, bentuk, dan latar belakang slide.
+
+## Kasus Penggunaan
+
+- Membagikan presentasi kepada audiens sebagai PDF handout
+- Membagikan ekspor Google Slides kepada orang yang lebih suka PDF daripada ODP
+- Mengarsipkan presentasi konferensi dan kuliah dalam format hanya-baca
+- Mencetak slide deck untuk lokakarya tatap muka
+
+## Tips
+
+- Transisi dan animasi slide adalah fitur visual yang tidak terbawa ke PDF, tetapi semua konten statis dirender dengan benar.
+- Catatan pembicara tidak disertakan dalam output PDF. Jika Anda memerlukan catatan, ekspor secara terpisah dari perangkat lunak presentasi Anda.
+- Seperti alat berbasis LibreOffice lainnya, mesin dimuat pada penggunaan pertama dan tetap tersimpan di cache selama sesi.
+
+## Alat Terkait
+
+- [ODG ke PDF](./odg-to-pdf)
+- [ODS ke PDF](./ods-to-pdf)
+- [PUB ke PDF](./pub-to-pdf)
diff --git a/docs/id/tools/ods-to-pdf.md b/docs/id/tools/ods-to-pdf.md
new file mode 100644
index 00000000..c2f8473f
--- /dev/null
+++ b/docs/id/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS ke PDF
+description: Konversi spreadsheet LibreOffice Calc (ODS) ke PDF di browser Anda. Gratis, privat, tanpa pendaftaran.
+---
+
+# ODS ke PDF
+
+Konversi file OpenDocument Spreadsheet menjadi PDF. ODS adalah format asli LibreOffice Calc dan format ekspor umum dari Google Sheets. Alat ini merender data, format, dan grafik spreadsheet Anda menjadi PDF berhalaman yang bisa dicetak atau dibagikan.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----------------------- | :------- | :-------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | Ekspor LibreOffice Calc / Google Sheets |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file ODS Anda. Beberapa file sekaligus didukung.
+2. Periksa daftar file. Gunakan ikon tempat sampah untuk menghapus file, atau klik **Tambah File Lagi** untuk memperbesar batch.
+3. Klik **Konversi ke PDF**. Engine berbasis LibreOffice dimuat di browser dan merender setiap spreadsheet menjadi halaman PDF.
+4. Satu spreadsheet diunduh sebagai PDF. Beberapa file dikemas menjadi `ods-to-pdf.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi. Konverter menerapkan tata letak cetak, format sel, dan lebar kolom yang sudah ada pada spreadsheet ke hasil PDF.
+
+## Kasus Penggunaan
+
+- Membagikan anggaran atau laporan LibreOffice Calc kepada orang yang hanya menerima PDF
+- Mencetak ekspor Google Sheets yang diunduh sebagai ODS
+- Mengarsipkan catatan keuangan dalam format yang tidak dapat diedit
+- Mengirim formulir atau lembar waktu berbasis ODS sebagai dokumen dengan tata letak tetap
+
+## Tips
+
+- Jika spreadsheet Anda memiliki beberapa lembar, semua lembar disertakan dalam hasil PDF.
+- Spreadsheet yang sangat lebar dapat terbagi ke beberapa halaman PDF secara horizontal. Pertimbangkan menyesuaikan lebar kolom di file sumber sebelum konversi jika tata letak penting.
+- Engine LibreOffice diinisialisasi saat pertama digunakan. Konversi berikutnya dalam sesi yang sama lebih cepat.
+
+## Alat Terkait
+
+- [ODG ke PDF](./odg-to-pdf)
+- [ODP ke PDF](./odp-to-pdf)
+- [XML ke PDF](./xml-to-pdf)
diff --git a/docs/id/tools/odt-to-pdf.md b/docs/id/tools/odt-to-pdf.md
new file mode 100644
index 00000000..49a13a58
--- /dev/null
+++ b/docs/id/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT ke PDF
+description: Konversi file OpenDocument Text (ODT) ke format PDF di browser Anda menggunakan engine berbasis LibreOffice.
+---
+
+# ODT ke PDF
+
+Konversi file OpenDocument Text menjadi PDF. ODT adalah format asli LibreOffice Writer, Apache OpenOffice, dan pengolah kata sumber terbuka lainnya. Alat ini menggunakan engine LibreOffice berbasis browser untuk menghasilkan konversi akurat yang mempertahankan format, tabel, gambar, dan gaya.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :---------------- | :------- |
+| OpenDocument Text | `.odt` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas satu atau beberapa file ODT.
+2. Periksa daftar file. Tambahkan file lain atau hapus yang tidak diinginkan.
+3. Klik **Konversi ke PDF**. Engine LibreOffice diinisialisasi (indikator kemajuan menampilkan status pemuatan), lalu setiap file dikonversi.
+4. Satu file diunduh langsung sebagai PDF. Beberapa file dikemas menjadi `odt-converted.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki konfigurasi tambahan. Konversi mempertahankan format dokumen asli sedekat mungkin.
+
+## Hasil
+
+| Jumlah Input | Hasil |
+| :----------- | :------------------------------------------------------- |
+| 1 file | Satu PDF diunduh (mis., `document.pdf`) |
+| 2+ file | Arsip ZIP (`odt-converted.zip`) berisi satu PDF per file |
+
+## Kasus Penggunaan
+
+- Mengonversi dokumen LibreOffice Writer ke PDF untuk dibagikan kepada pengguna Microsoft Office
+- Membuat PDF siap cetak dari makalah akademik yang ditulis dalam format OpenDocument
+- Mengonversi massal satu folder templat ODT menjadi PDF untuk distribusi
+- Membuat PDF dari file ODT yang dihasilkan oleh sistem pembuatan dokumen otomatis
+
+## Tips
+
+- Engine LibreOffice dimuat saat pertama digunakan dan disimpan dalam cache untuk konversi berikutnya. Pemuatan awal memakan waktu beberapa detik; setelah itu, konversi berjalan cepat.
+- Dokumen kompleks dengan objek OLE tersemat atau font tidak umum dapat dirender sedikit berbeda dari LibreOffice desktop. Uji dengan sampel sebelum konversi massal.
+- Untuk dokumen Word (`.doc`, `.docx`), gunakan alat [Word ke PDF](./word-to-pdf), yang juga memakai engine LibreOffice tetapi menerima format Microsoft secara langsung.
+
+## Alat Terkait
+
+- [Word ke PDF](./word-to-pdf)
+- [RTF ke PDF](./rtf-to-pdf)
+- [Teks ke PDF](./txt-to-pdf)
diff --git a/docs/id/tools/organize-pdf.md b/docs/id/tools/organize-pdf.md
new file mode 100644
index 00000000..360bbfca
--- /dev/null
+++ b/docs/id/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Atur & Duplikat
+description: Atur ulang urutan, duplikat, dan hapus halaman PDF dengan thumbnail seret dan lepas serta input urutan halaman kustom.
+---
+
+# Atur & Duplikat
+
+Susun ulang, duplikat, dan hapus halaman dari PDF menggunakan antarmuka visual seret dan lepas. Setiap halaman tampil sebagai thumbnail yang bisa dipindahkan, digandakan, atau dihapus sebelum hasilnya disimpan sebagai file baru.
+
+## Cara Kerja
+
+1. Unggah satu file PDF.
+2. Alat ini merender kisi thumbnail yang menampilkan setiap halaman.
+3. Seret thumbnail untuk mengatur ulang halaman, klik tombol duplikat hijau untuk menggandakan halaman, atau klik tombol hapus merah untuk menghapusnya.
+4. Sebagai alternatif, masukkan urutan halaman kustom di kolom teks (mis., `3, 1, 2, 4`) lalu klik **Terapkan** untuk menyusun ulang semua halaman sekaligus.
+5. Klik tombol proses untuk membuat dan mengunduh PDF yang sudah diatur ulang.
+
+## Fitur
+
+- Pengaturan ulang halaman dengan seret dan lepas disertai transisi animasi
+- Tombol duplikat dan hapus per halaman
+- Input urutan halaman kustom untuk penyusunan yang presisi
+- Label nomor halaman yang diperbarui otomatis setelah setiap perubahan
+- Mencegah penghapusan halaman terakhir yang tersisa
+
+## Kasus Penggunaan
+
+- Memindahkan halaman yang salah tempat ke posisi yang benar dalam laporan
+- Menduplikat halaman formulir agar Anda memiliki beberapa salinan kosong dalam satu file
+- Menghapus halaman draf atau placeholder sebelum dokumen dibagikan
+- Membalik atau mengacak urutan halaman untuk persiapan cetak
+- Membuat urutan halaman kustom tanpa menggabungkan ulang file terpisah
+
+## Tips
+
+- Kolom urutan halaman kustom menerima nomor halaman asli yang dipisahkan koma. Setiap halaman harus disertakan tepat satu kali, tanpa ada yang terlewat atau duplikat.
+- Setelah menduplikat halaman, kedua salinan merujuk ke indeks halaman asli yang sama. Mengatur ulang salah satu salinan bekerja secara independen.
+- Untuk operasi massal pada beberapa file atau alur kerja yang lebih lanjut, pertimbangkan [Alat Multi PDF](./pdf-multi-tool).
+
+## Alat Terkait
+
+- [Gabung PDF](./merge-pdf)
+- [Hapus Halaman](./delete-pages)
+- [Alat Multi PDF](./pdf-multi-tool)
+- [Balik Halaman](./reverse-pages)
diff --git a/docs/id/tools/page-dimensions.md b/docs/id/tools/page-dimensions.md
new file mode 100644
index 00000000..dfdfda53
--- /dev/null
+++ b/docs/id/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Dimensi Halaman
+description: Analisis ukuran halaman PDF, orientasi, rasio aspek, dan rotasi. Deteksi dokumen berukuran campuran dan ekspor data ke CSV.
+---
+
+# Dimensi Halaman
+
+Alat diagnostik yang membaca setiap halaman di PDF Anda dan melaporkan dimensi tepatnya, orientasi, nama ukuran standar, rasio aspek, luas, dan rotasi. Berguna untuk menemukan halaman berukuran campuran sebelum mencetak atau untuk mendokumentasikan properti PDF yang Anda terima.
+
+## Cara Kerja
+
+1. Unggah file PDF. Analisis dimulai otomatis, tanpa tombol yang perlu ditekan.
+2. Panel ringkasan menampilkan jumlah halaman, jumlah ukuran halaman unik, dan apakah dokumen memiliki ukuran campuran.
+3. Telusuri tabel hasil lengkap dengan detail per halaman.
+4. Ganti satuan tampilan antara Poin, Inci, Milimeter, atau Piksel.
+5. Klik **Ekspor ke CSV** untuk menyimpan data.
+
+## Kolom yang Dilaporkan
+
+| Kolom | Deskripsi |
+| -------------- | ------------------------------------------------ |
+| Halaman # | Nomor halaman berurutan |
+| Dimensi | Lebar x Tinggi dalam satuan yang dipilih |
+| Ukuran Standar | Nama yang cocok (A4, Letter, dll.) atau "Kustom" |
+| Orientasi | Potret atau Lanskap |
+| Rasio Aspek | Rasio lebar terhadap tinggi dalam desimal |
+| Luas | Luas halaman dalam satuan terpilih kuadrat |
+| Rotasi | Rotasi halaman dalam derajat |
+
+## Fitur
+
+- Deteksi otomatis ukuran kertas standar (A3, A4, A5, Letter, Legal, Tabloid, dan lainnya)
+- Peringatan dokumen berukuran campuran beserta rincian ukuran yang muncul dan jumlah halaman untuk tiap ukuran
+- Konversi satuan antara poin, inci, milimeter, dan piksel (pada 96 PPI)
+- Ekspor CSV untuk digunakan di spreadsheet atau sistem dokumentasi
+
+## Kasus Penggunaan
+
+- Memastikan semua halaman berukuran A4 sebelum mengirim dokumen ke percetakan
+- Mendiagnosis mengapa PDF gabungan tercetak dengan margin tak terduga pada halaman tertentu
+- Mendokumentasikan tata letak halaman arsip PDF besar untuk catatan metadata
+- Mengidentifikasi halaman terputar yang perlu dikoreksi
+
+## Tips
+
+- Jika ringkasan menunjukkan "Ukuran Campuran", gunakan alat Perbaiki Ukuran Halaman untuk menyeragamkan sebelum mencetak.
+- Kolom rotasi membantu mengidentifikasi halaman yang tampil benar tetapi memiliki atribut rotasi bukan nol, yang dapat menimbulkan masalah di beberapa alur kerja.
+
+## Alat Terkait
+
+- [Perbaiki Ukuran Halaman](./fix-page-size): seragamkan halaman setelah menemukan ukuran campuran
+- [Kompres PDF](./compress-pdf): optimalkan PDF setelah memperbaiki masalah halaman
+- [Putar PDF](./rotate-pdf): koreksi halaman yang terputar
diff --git a/docs/id/tools/page-numbers.md b/docs/id/tools/page-numbers.md
new file mode 100644
index 00000000..1e4da2d2
--- /dev/null
+++ b/docs/id/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Nomor Halaman
+description: Tambahkan nomor halaman yang dapat disesuaikan di posisi mana pun pada halaman PDF Anda dengan font, ukuran, dan warna yang dapat diatur.
+---
+
+# Nomor Halaman
+
+Tambahkan nomor halaman yang terlihat pada setiap halaman PDF Anda. Anda memilih posisi, format, ukuran font, dan warna, sisanya ditangani alat ini.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Atur pengaturan nomor halaman di panel opsi yang muncul.
+3. Klik **Tambah Nomor Halaman** untuk memproses.
+4. PDF bernomor diunduh secara otomatis.
+
+## Opsi
+
+- **Posisi**: Pilih tempat nomor halaman muncul: Bawah Tengah, Bawah Kiri, Bawah Kanan, Atas Tengah, Atas Kiri, atau Atas Kanan.
+- **Format**: Pilih antara penomoran sederhana (1, 2, 3...) atau format "halaman X dari Y" (1 / 5, 2 / 5...).
+- **Ukuran Font**: Atur ukuran teks nomor halaman. Default 12.
+- **Warna**: Pilih warna apa pun untuk teks nomor halaman menggunakan pemilih warna.
+
+## Fitur
+
+- Enam pilihan posisi yang mencakup semua sudut dan posisi tengah
+- Dua format penomoran: berurutan sederhana atau "halaman X dari Y"
+- Ukuran font dapat diatur dari 6 hingga 72 poin
+- Pemilih warna penuh untuk warna teks
+- Penanganan margin otomatis yang menjaga nomor tetap di area aman pada ukuran halaman apa pun
+
+## Kasus Penggunaan
+
+- Menyiapkan dokumen cetak yang memerlukan rujukan halaman yang terlihat
+- Menambahkan nomor halaman pada PDF gabungan dari beberapa file sumber
+- Menomori handout presentasi sebelum dibagikan
+- Menambahkan penomoran berurutan pada dokumen hukum atau kontrak
+
+## Tips
+
+- Format "halaman X dari Y" berguna untuk dokumen yang pembacanya perlu tahu total panjangnya, seperti proposal atau laporan.
+- Jika Anda memerlukan gaya penomoran berbeda untuk bagian berbeda (seperti angka Romawi untuk bagian awal), gunakan alat [Tambahkan label halaman](./add-page-labels).
+
+## Alat Terkait
+
+- [Tambahkan label halaman](./add-page-labels)
+- [Penomoran Bates](./bates-numbering)
+- [Kepala & Kaki Halaman](./header-footer)
diff --git a/docs/id/tools/pdf-booklet.md b/docs/id/tools/pdf-booklet.md
new file mode 100644
index 00000000..18c61e34
--- /dev/null
+++ b/docs/id/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Buku Kecil PDF
+description: Susun ulang halaman PDF ke urutan buklet (saddle-stitch) untuk dilipat dan dijilid menjadi buklet fisik.
+---
+
+# Buku Kecil PDF
+
+Susun ulang halaman PDF ke urutan imposisi buklet. Saat dicetak bolak-balik dan dilipat dua, halaman akan berada dalam urutan baca yang benar. Ini adalah tata letak yang digunakan untuk buklet saddle-stitch dan zine.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Atur pengaturan buklet: ukuran halaman dan orientasi hasil.
+3. Klik **Buat Pratinjau** untuk melihat bagaimana halaman akan disusun di setiap lembar.
+4. Periksa pratinjau, yang menampilkan setiap lembar fisik beserta penempatan halaman depan dan belakangnya.
+5. Klik **Unduh** untuk menyimpan PDF hasil imposisi buklet.
+
+## Fitur
+
+- Pengurutan ulang halaman otomatis untuk penjilidan saddle-stitch
+- Ukuran halaman hasil yang dapat diatur
+- Pratinjau visual tata letak buklet sebelum mengunduh
+- Menangani jumlah halaman ganjil dengan menyisipkan halaman kosong bila perlu
+- Menyesuaikan skala halaman sumber agar pas dengan ukuran lembar buklet
+
+## Kasus Penggunaan
+
+- Membuat buklet atau zine yang bisa dicetak dari PDF biasa
+- Menyiapkan program konferensi atau panduan acara untuk dicetak sendiri
+- Membuat kartu ucapan lipat atau katalog kecil
+- Menghasilkan chapbook atau kumpulan puisi untuk dijilid manual
+
+## Tips
+
+- Jumlah halaman PDF sumber idealnya kelipatan 4 agar buklet rapi. Jika tidak, halaman kosong ditambahkan otomatis untuk melengkapi lembar terakhir.
+- Cetak hasilnya bolak-balik dengan pengaturan printer "balik pada tepi pendek" (flip on short edge), lalu lipat semua lembar bersama dan jepret di punggung buklet.
+- Untuk sekadar menempatkan beberapa halaman dalam satu lembar tanpa urutan buklet, gunakan [N-Up PDF](./n-up-pdf).
+
+## Alat Terkait
+
+- [N-Up PDF](./n-up-pdf)
+- [Putar PDF](./rotate-pdf)
+- [Tambah Halaman Kosong](./add-blank-page)
diff --git a/docs/id/tools/pdf-layers.md b/docs/id/tools/pdf-layers.md
new file mode 100644
index 00000000..e2903183
--- /dev/null
+++ b/docs/id/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Layer OCG PDF
+description: Lihat, alihkan, tambah, dan hapus layer Optional Content Group (OCG) dalam dokumen PDF.
+---
+
+# Layer OCG PDF
+
+Kelola Optional Content Group (OCG), yang umum disebut "layer", di dalam PDF. Anda dapat mengalihkan visibilitas layer, menambah layer baru (termasuk layer anak bertingkat), menghapus layer, dan menyimpan PDF yang telah diubah.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Klik tombol proses untuk memuat dokumen dengan engine PyMuPDF.
+3. Alat ini menampilkan semua layer yang ada beserta status visibilitas, status kunci, dan hierarki bertingkatnya.
+4. Centang atau hapus centang kotak untuk menampilkan atau menyembunyikan layer. Layer terkunci tidak dapat dialihkan.
+5. Tambahkan layer tingkat atas dengan mengetik nama lalu mengklik tombol tambah, atau tambahkan layer anak di bawah induk yang ada.
+6. Hapus layer yang tidak lagi Anda perlukan.
+7. Klik **Simpan** untuk mengunduh PDF yang telah diubah dengan perubahan layer Anda.
+
+## Fitur
+
+- Menampilkan hierarki layer dengan indentasi yang tepat untuk layer bertingkat
+- Mengalihkan visibilitas layer
+- Indikator layer terkunci mencegah perubahan tidak sengaja
+- Menambah layer tingkat atas atau layer anak dengan nama kustom
+- Menghapus layer satu per satu
+- Menyimpan semua perubahan ke file PDF baru
+
+## Kasus Penggunaan
+
+- Mengalihkan visibilitas layer markup pada gambar arsitektur atau teknik
+- Menambah layer anotasi baru pada dokumen desain multi-layer
+- Menghapus layer usang dari templat sebelum didistribusikan
+- Memeriksa layer apa saja yang ada dalam PDF kompleks dari pihak ketiga
+
+## Tips
+
+- Jika PDF tidak memiliki layer, alat ini menampilkan tampilan kosong dengan ajakan untuk menambahkan satu. Tidak semua PDF menggunakan layer OCG, layer paling umum ada pada ekspor CAD dan file desain.
+- Layer anak ditampilkan menjorok di bawah induknya. Anda dapat menumpuk layer hingga kedalaman berapa pun.
+- Layer terkunci ditampilkan dengan ikon kunci dan kotak centangnya dinonaktifkan. Kunci ini diatur oleh pembuat PDF.
+
+## Alat Terkait
+
+- [Lihat Metadata](./view-metadata)
+- [Edit Metadata](./edit-metadata)
+- [Atur & Duplikat](./organize-pdf)
diff --git a/docs/id/tools/pdf-multi-tool.md b/docs/id/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..7426aed5
--- /dev/null
+++ b/docs/id/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Alat Multi PDF
+description: Pengelola halaman serba guna untuk menggabung, memisah, memutar, menduplikat, menghapus, mengatur ulang, dan mengubah ukuran halaman PDF.
+---
+
+# Alat Multi PDF
+
+Ruang kerja terpadu untuk setiap operasi tingkat halaman PDF. Unggah satu atau beberapa PDF dan kerjakan semua halamannya dalam satu kisi visual. Putar, atur ulang, duplikat, hapus, sisipkan PDF, gambar, dan halaman kosong, beri nomor ulang, ubah ukuran, dan pisahkan hasilnya, semuanya tanpa meninggalkan alat ini.
+
+## Cara Kerja
+
+1. Klik **Pilih File** atau seret file ke area unggah. Beberapa file didukung dan digabung sesuai urutan unggah.
+2. Semua halaman tampil dalam kisi yang bisa digulir dengan thumbnail.
+3. Klik halaman untuk memilihnya. Gunakan Shift+klik untuk memilih rentang dan Cmd/Ctrl+klik untuk menambah atau mengurangi halaman satu per satu.
+4. Gunakan toolbar pengatur halaman atau klik kanan halaman untuk aksi halaman.
+5. Klik **Ekspor PDF** untuk mengunduh hasil akhir.
+
+## Fitur
+
+- **Gabung**: Unggah beberapa PDF dan gambar, semuanya otomatis digabung menjadi satu dokumen
+- **Atur ulang**: Seret dan lepas halaman untuk menyusun ulang urutan, atau balik urutan seluruh dokumen
+- **Putar**: Putar halaman terpilih ke kiri atau kanan dalam kelipatan 90 derajat
+- **Duplikat**: Salin halaman terpilih dan letakkan salinannya tepat setelahnya
+- **Hapus**: Hapus halaman yang dipilih
+- **Sisipkan**: Tambahkan halaman dari PDF atau gambar lain, halaman kosong, halaman dari clipboard, atau selang-selingkan halaman PDF kedua dengan halaman saat ini
+- **Ganti**: Tukar halaman dengan halaman pertama dari PDF lain
+- **Potong, salin, dan tempel**: Pindahkan atau salin halaman di dalam dokumen
+- **Ekstrak**: Unduh halaman terpilih sebagai PDF atau gambar
+- **Nomor Halaman**: Atur label halaman seperti i, ii, iii atau A-1, A-2 untuk rentang halaman tertentu
+- **Ukuran Halaman**: Sesuaikan halaman dengan ukuran kertas standar atau ukuran kustom
+- **Pisah**: Bagi dokumen berdasarkan rentang halaman, halaman ganjil dan genap, setiap halaman, bookmark, setiap N halaman, atau ukuran file
+- **Urungkan / Ulangi**: Setiap operasi halaman bisa diurungkan dan diulangi
+- Memperbaiki PDF yang rusak secara otomatis sebelum dimuat
+
+## Pintasan Keyboard
+
+| Aksi | Pintasan |
+| --------------------- | ----------------------------- |
+| Putar ke kanan / kiri | R / Shift+R |
+| Pilih semua | Cmd/Ctrl+A |
+| Potong, salin, tempel | Cmd/Ctrl+X, C, V |
+| Duplikat | Cmd/Ctrl+D |
+| Hapus | Delete atau Backspace |
+| Urungkan / Ulangi | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Pindahkan pilihan | Tombol panah, Home, End |
+
+## Kasus Penggunaan
+
+- Membuat dokumen kustom dari halaman-halaman beberapa PDF sumber
+- Merapikan dokumen pindaian dengan menghapus halaman kosong, memutar pindaian yang miring, dan mengatur ulang bagian
+- Memisah PDF besar pada batas bab menggunakan bookmark-nya
+- Penyuntingan tingkat halaman yang cepat tanpa memerlukan editor PDF lengkap
+
+## Tips
+
+- Riwayat urungkan/ulangi melacak setiap operasi halaman. Gunakan dengan bebas, Anda tidak bisa merusak pekerjaan Anda secara tidak sengaja.
+- Gunakan **Insert > From File** atau letakkan PDF atau gambar lain ke kisi halaman kapan saja untuk menambahkannya ke dokumen.
+- Untuk tugas gabung atau pisah sederhana, alat khusus [Gabung PDF](./merge-pdf) atau [Pisah PDF](./split-pdf) mungkin lebih cepat. Alat Multi unggul saat Anda memerlukan banyak operasi dalam satu sesi.
+
+## Alat Terkait
+
+- [Gabung PDF](./merge-pdf)
+- [Pisah PDF](./split-pdf)
+- [Atur & Duplikat](./organize-pdf)
+- [Putar PDF](./rotate-pdf)
diff --git a/docs/id/tools/pdf-to-bmp.md b/docs/id/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..0cb83323
--- /dev/null
+++ b/docs/id/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF ke BMP
+description: Konversi halaman PDF ke gambar BMP tanpa kompresi. Berguna untuk sistem lama dan alur kerja cetak yang memerlukan input bitmap.
+---
+
+# PDF ke BMP
+
+Mengonversi setiap halaman PDF menjadi gambar BMP (Bitmap). BMP adalah format tanpa kompresi, sehingga hasilnya sempurna per piksel tanpa kehilangan kualitas, tetapi ukuran filenya besar.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Klik **Konversi** untuk memproses file.
+3. Satu file `.bmp` atau arsip ZIP diunduh secara otomatis.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Halaman dirender pada skala tetap 2x, menghasilkan gambar dengan dimensi sekitar dua kali dimensi asli halaman PDF.
+
+## Format Hasil
+
+- **Satu halaman**: `filename.bmp`
+- **Beberapa halaman**: `filename_bmps.zip` berisi `page_1.bmp`, `page_2.bmp`, dan seterusnya.
+
+## Kasus Penggunaan
+
+- Memasukkan halaman PDF ke sistem lama atau perangkat keras yang hanya menerima input BMP.
+- Menyiapkan gambar tanpa kompresi untuk alur kerja cetak tertentu.
+- Menggunakan hasil bitmap sebagai input untuk alat pengolah gambar yang memerlukan data piksel mentah.
+
+## Tips
+
+- File BMP sangat besar karena menyimpan data piksel mentah tanpa kompresi. Untuk sebagian besar keperluan, [PDF ke PNG](./pdf-to-png) memberikan kualitas lossless dengan file yang jauh lebih kecil.
+- Jika sistem tujuan Anda menerima PNG atau TIFF, pilih format tersebut untuk menghemat ruang disk.
+
+## Alat Terkait
+
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke TIFF](./pdf-to-tiff)
+- [PDF ke JPG](./pdf-to-jpg)
diff --git a/docs/id/tools/pdf-to-cbz.md b/docs/id/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..63c1216f
--- /dev/null
+++ b/docs/id/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF ke CBZ
+description: Konversi PDF menjadi file CBZ (Comic Book Archive) untuk pembaca komik seperti Komga, Kavita, CDisplayEx, dan Calibre.
+---
+
+# PDF ke CBZ
+
+Mengonversi PDF menjadi file CBZ (Comic Book ZIP), format standar untuk komik digital dan manga. Setiap halaman PDF menjadi satu gambar di dalam arsip. Alat ini membuat metadata dalam tiga format demi kompatibilitas maksimal: ComicInfo.xml, metadata.opf, dan ComicBookInfo JSON.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Pilih format gambar, kualitas, skala, dan metadata opsional.
+3. Klik **Konversi** untuk membuat file CBZ.
+4. File `.cbz` diunduh secara otomatis.
+
+## Opsi
+
+| Opsi | Nilai | Default | Deskripsi |
+| ----------------- | --------------- | -------- | --------------------------------------------------------------------------------------------- |
+| Format Gambar | JPEG, PNG, WebP | JPEG | JPEG untuk komik berwarna, PNG untuk manga hitam putih lossless, WebP untuk kompresi terbaik. |
+| Kualitas | 50–100% | 85% | Mengatur kompresi JPEG/WebP. Disembunyikan untuk PNG (selalu lossless). |
+| Skala | 1.0x–4.0x | 2.0x | Skala lebih tinggi menghasilkan gambar lebih tajam untuk layar resolusi tinggi. |
+| Skala abu-abu | Aktif/Nonaktif | Nonaktif | Mengonversi halaman ke skala abu-abu. Mengurangi ukuran file untuk konten hitam putih. |
+| Mode manga | Aktif/Nonaktif | Nonaktif | Menetapkan arah baca kanan ke kiri pada metadata. |
+| Sertakan metadata | Aktif/Nonaktif | Aktif | Menyematkan ComicInfo.xml, metadata.opf, dan ComicBookInfo JSON. |
+
+## Kolom Metadata
+
+Saat metadata diaktifkan, Anda dapat mengisi:
+
+- **Judul**: Terdeteksi otomatis dari nama file PDF.
+- **Seri**: Nama seri (mis., "Naruto").
+- **Nomor (#)**: Nomor edisi dalam seri.
+- **Volume (Vol.)**: Nomor volume.
+- **Penulis**: Nama penulis atau kreator.
+- **Penerbit**: Perusahaan penerbit.
+- **Tag / Genre**: Tag yang dipisahkan koma (mis., "Action, Adventure").
+- **Tahun Terbit**: Tahun publikasi (1900–2100).
+- **Peringkat**: Rating komunitas dari 0 sampai 5.
+
+## Kompatibilitas Metadata
+
+Alat ini menulis metadata dalam tiga format agar setiap pembaca dapat menemukannya:
+
+| Format | Lokasi | Didukung oleh |
+| ------------------ | ------------------ | ------------------------------------------- |
+| ComicInfo.xml | File di dalam ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | File di dalam ZIP | Calibre |
+| ComicBookInfo JSON | Kolom komentar ZIP | Calibre (cadangan) |
+
+## Format Hasil
+
+- `filename.cbz`: Arsip ZIP berisi gambar halaman bernomor dan file metadata.
+
+Gambar halaman diberi nama dengan nomor berawalan nol (`01.jpg`, `02.jpg`, dan seterusnya) agar pembaca menampilkannya dalam urutan yang benar.
+
+## Kasus Penggunaan
+
+- Mengonversi PDF manga atau komik untuk digunakan dengan pembaca komik.
+- Membangun pustaka komik digital di Komga, Kavita, atau Calibre.
+- Mengonversi komik hasil pindaian ke format yang ramah pembaca.
+- Membagikan komik dalam format yang mempertahankan arah baca dan metadata.
+
+## Tips
+
+- Gunakan **JPEG** untuk komik berwarna dan **PNG** untuk manga hitam putih, karena PNG mengompres konten hitam putih dengan sangat efisien.
+- Aktifkan **Skala abu-abu** untuk manga guna mengurangi ukuran file secara signifikan.
+- Isi kolom **Seri** dan **Nomor** agar pengelola pustaka (Komga, Calibre) dapat mengatur koleksi Anda secara otomatis.
+- **WebP** menawarkan kompresi terbaik tetapi pembaca komik yang lebih lama mungkin tidak mendukungnya.
+
+## Alat Terkait
+
+- [PDF ke JPG](./pdf-to-jpg)
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke TIFF](./pdf-to-tiff)
+- [Ekstrak Gambar](./extract-images)
diff --git a/docs/id/tools/pdf-to-csv.md b/docs/id/tools/pdf-to-csv.md
new file mode 100644
index 00000000..e667d4f0
--- /dev/null
+++ b/docs/id/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF ke CSV
+description: Ekstrak tabel dari dokumen PDF dan ekspor sebagai satu file CSV. Mendukung PDF multi-halaman dengan deteksi tabel otomatis.
+---
+
+# PDF ke CSV
+
+Mengekstrak tabel dari PDF dan mengekspornya sebagai file CSV. Alat ini memindai setiap halaman untuk data tabel menggunakan mesin deteksi tabel PyMuPDF, lalu menulis semua baris yang ditemukan ke satu keluaran yang dipisahkan koma.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Klik **Konversi** untuk memulai ekstraksi tabel.
+3. Alat ini memindai setiap halaman dan mengidentifikasi tabel secara otomatis.
+4. File `.csv` diunduh dengan semua data tabel yang diekstrak.
+
+Tabel dari halaman berbeda dipisahkan oleh baris kosong pada hasil. Sel yang berisi koma, tanda kutip, atau baris baru di-escape dengan benar mengikuti RFC 4180.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Semua tabel yang ditemukan dalam dokumen diekstrak dan digabung menjadi satu CSV.
+
+## Format Hasil
+
+- Satu file `filename.csv` yang berisi semua tabel yang terdeteksi.
+
+## Kasus Penggunaan
+
+- Mengambil data keuangan dari rekening koran atau faktur PDF ke dalam spreadsheet.
+- Mengekstrak tabel harga dari penawaran vendor untuk perbandingan.
+- Mengonversi data penelitian tabular dari makalah PDF ke format yang cocok untuk alat analisis.
+- Memigrasikan data dari laporan PDF lama ke database.
+
+## Tips
+
+- Jika tidak ada tabel ditemukan, alat ini menampilkan pesan "Tabel Tidak Ditemukan". Biasanya ini berarti PDF memakai tata letak teks yang tampak seperti tabel tetapi tidak terstruktur sebagai tabel sungguhan.
+- Untuk kontrol lebih atas setiap tabel, gunakan [Ekstrak Tabel](./extract-tables) yang memungkinkan Anda memilih format hasil CSV, JSON, dan Markdown.
+- Jika Anda memerlukan data dalam format Excel dengan lembar terpisah per tabel, gunakan [PDF ke Excel](./pdf-to-excel).
+
+## Alat Terkait
+
+- [PDF ke Excel](./pdf-to-excel)
+- [Ekstrak Tabel](./extract-tables)
+- [PDF ke Teks](./pdf-to-text)
diff --git a/docs/id/tools/pdf-to-excel.md b/docs/id/tools/pdf-to-excel.md
new file mode 100644
index 00000000..39bb946e
--- /dev/null
+++ b/docs/id/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF ke Excel
+description: Ekstrak tabel dari dokumen PDF ke spreadsheet Excel. Setiap tabel mendapat lembar kerjanya sendiri dengan rujukan halaman.
+---
+
+# PDF ke Excel
+
+Mengekstrak tabel dari PDF dan menyimpannya sebagai spreadsheet Excel (`.xlsx`). Setiap tabel yang terdeteksi ditempatkan pada lembar kerjanya sendiri, diberi label nomor tabel dan halaman sumber. Ditenagai PyMuPDF untuk deteksi tabel dan pustaka SheetJS untuk pembuatan Excel.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Klik **Konversi** untuk memulai ekstraksi tabel.
+3. Alat ini memindai setiap halaman untuk tabel, lalu membangun workbook Excel.
+4. File `.xlsx` diunduh dengan satu lembar per tabel.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Semua tabel yang terdeteksi diekstrak secara otomatis.
+
+## Format Hasil
+
+- Satu file `filename.xlsx`.
+- **Satu tabel**: satu lembar kerja bernama "Table".
+- **Beberapa tabel**: lembar kerja bernama "Table 1 (Page 3)", "Table 2 (Page 5)", dan seterusnya. Nama lembar dipotong hingga 31 karakter (batas Excel).
+
+## Kasus Penggunaan
+
+- Mengonversi laporan keuangan PDF menjadi spreadsheet yang dapat diedit untuk analisis lebih lanjut.
+- Mengekstrak tabel inventaris atau pesanan dari PDF pemasok.
+- Mengambil data terstruktur dari formulir atau katalog PDF ke Excel untuk diurutkan dan difilter.
+- Mengarsipkan data tabular PDF dalam format yang bisa dikerjakan rekan non-teknis.
+
+## Tips
+
+- Jika alat melaporkan "Tabel Tidak Ditemukan", PDF kemungkinan memakai tata letak teks bebas, bukan tabel terstruktur. Coba [PDF ke Teks](./pdf-to-text) untuk mengambil konten mentahnya.
+- Untuk format datar yang lebih sederhana, gunakan [PDF ke CSV](./pdf-to-csv). Untuk unduhan per tabel dalam beberapa format, gunakan [Ekstrak Tabel](./extract-tables).
+- Periksa nama lembar untuk mengetahui dari halaman mana setiap tabel berasal.
+
+## Alat Terkait
+
+- [PDF ke CSV](./pdf-to-csv)
+- [Ekstrak Tabel](./extract-tables)
+- [PDF ke Teks](./pdf-to-text)
diff --git a/docs/id/tools/pdf-to-greyscale.md b/docs/id/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..9f689a30
--- /dev/null
+++ b/docs/id/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF ke Skala Abu-abu
+description: Konversi PDF berwarna menjadi versi skala abu-abu (hitam putih). Menghasilkan PDF baru tanpa warna pada setiap halaman.
+---
+
+# PDF ke Skala Abu-abu
+
+Mengonversi PDF berwarna menjadi versi skala abu-abu. Setiap halaman dirender, didesaturasi, dan disematkan ulang sebagai gambar JPEG dalam PDF baru. Hasilnya mempertahankan dimensi halaman asli.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Klik **Konversi** untuk memproses file.
+3. File `greyscale.pdf` baru diunduh dengan semua halaman dikonversi menjadi hitam putih.
+
+Di balik layar, setiap halaman dirender pada skala 2x, data pikselnya dilewatkan melalui filter skala abu-abu, lalu dienkode ulang sebagai JPEG berkualitas 90% dan ditempatkan dalam dokumen PDF baru.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Konversi skala abu-abu memakai rumus luminansi standar dan kualitas JPEG ditetapkan 90%.
+
+## Format Hasil
+
+- Satu file `greyscale.pdf` berisi semua halaman sebagai gambar JPEG skala abu-abu.
+
+## Kasus Penggunaan
+
+- Menyiapkan dokumen untuk pencetakan hitam putih guna menghemat biaya tinta warna.
+- Memenuhi persyaratan pengajuan untuk berkas hukum atau pemerintah yang mewajibkan skala abu-abu.
+- Mengurangi ukuran file pada PDF yang banyak warna (gambar JPEG skala abu-abu lebih kecil daripada berwarna).
+- Membuat gaya visual yang konsisten pada dokumen dengan halaman berwarna dan hitam putih.
+
+## Tips
+
+- Karena setiap halaman dirasterisasi dan disematkan ulang sebagai JPEG, hasilnya berbasis gambar. Teks pada PDF asli tidak lagi dapat dipilih atau dicari. Jika Anda memerlukan teks yang dapat dicari setelahnya, jalankan hasilnya melalui alat OCR.
+- Untuk kontrol penyesuaian warna lebih lanjut (kecerahan, kontras, saturasi), lihat alat Sesuaikan Warna atau node Skala Abu-abu di [Pembangun Alur Kerja PDF](./pdf-workflow).
+
+## Alat Terkait
+
+- [PDF ke JPG](./pdf-to-jpg)
+- [PDF ke PNG](./pdf-to-png)
+- [Pembangun Alur Kerja PDF](./pdf-workflow)
diff --git a/docs/id/tools/pdf-to-jpg.md b/docs/id/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..21054770
--- /dev/null
+++ b/docs/id/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF ke JPG
+description: Konversi halaman PDF ke gambar JPG dengan kualitas yang dapat diatur. PDF satu halaman diunduh langsung; PDF multi-halaman diekspor sebagai ZIP.
+---
+
+# PDF ke JPG
+
+Mengonversi setiap halaman PDF menjadi gambar JPG. Dokumen satu halaman diunduh sebagai file `.jpg` mandiri. PDF multi-halaman menghasilkan arsip ZIP berisi satu JPG per halaman.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya. Alat ini menampilkan nama file, ukuran file, dan jumlah halaman.
+2. Atur penggeser **Kualitas** untuk mengontrol kompresi JPG.
+3. Klik **Konversi** untuk mulai memproses.
+4. Hasil diunduh otomatis: satu JPG untuk PDF satu halaman, atau file ZIP untuk dokumen multi-halaman.
+
+## Opsi
+
+- **Kualitas**: penggeser dari 0% hingga 100% (default 90%). Nilai lebih tinggi menghasilkan gambar lebih tajam dengan ukuran file lebih besar. Nilai lebih rendah mengompres lebih agresif.
+
+Halaman dirender pada skala 2x secara internal, sehingga resolusi hasil dua kali dimensi halaman PDF. Halaman berukuran letter standar menghasilkan gambar sekitar 1.224 x 1.584 piksel.
+
+## Format Hasil
+
+- **Satu halaman**: `filename.jpg`
+- **Beberapa halaman**: `filename_jpgs.zip` berisi `page_1.jpg`, `page_2.jpg`, dan seterusnya.
+
+## Kasus Penggunaan
+
+- Membuat thumbnail pratinjau untuk sistem manajemen dokumen.
+- Membagikan satu halaman laporan lewat obrolan atau email yang tidak mendukung PDF.
+- Membuat aset gambar dari diagram atau ilustrasi PDF.
+- Mengarsipkan dokumen pindaian sebagai gambar terpisah.
+
+## Tips
+
+- Untuk hasil lossless, gunakan [PDF ke PNG](./pdf-to-png).
+- Pengaturan kualitas 80-90% memberi keseimbangan yang baik antara ukuran file dan ketajaman visual.
+- Jika Anda memerlukan format tertentu per halaman, pertimbangkan [Pembangun Alur Kerja PDF](./pdf-workflow) yang memiliki node keluaran PDF ke Gambar.
+
+## Alat Terkait
+
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke WebP](./pdf-to-webp)
+- [PDF ke BMP](./pdf-to-bmp)
+- [PDF ke TIFF](./pdf-to-tiff)
diff --git a/docs/id/tools/pdf-to-json.md b/docs/id/tools/pdf-to-json.md
new file mode 100644
index 00000000..61f0cd12
--- /dev/null
+++ b/docs/id/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF ke JSON
+description: Konversi file PDF ke format JSON terstruktur menggunakan CPDF. Mengekspor struktur internal PDF sebagai data JSON yang dapat dibaca mesin.
+---
+
+# PDF ke JSON
+
+Mengonversi satu atau beberapa file PDF ke format JSON. Alat ini memakai CPDF (Coherent PDF) untuk menserialisasi struktur internal setiap PDF menjadi representasi JSON yang dapat dibaca mesin. Hasilnya selalu dikirim sebagai arsip ZIP.
+
+## Cara Kerja
+
+1. Pilih satu atau beberapa file PDF menggunakan pemilih file.
+2. Klik **Konversi** untuk mulai memproses. Konversi berjalan di web worker latar belakang.
+3. Arsip ZIP diunduh berisi satu file JSON untuk setiap PDF input.
+
+Bilah status menampilkan kemajuan melalui tahap konversi dan pembuatan ZIP.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Setiap PDF dikonversi ke representasi JSON lengkapnya.
+
+## Format Hasil
+
+- File `pdfs-to-json.zip` berisi `filename.json` untuk setiap PDF input.
+
+Hasil JSON merepresentasikan struktur objek internal PDF, termasuk pohon halaman, rujukan font, metadata, dan content stream.
+
+## Kasus Penggunaan
+
+- Memeriksa struktur internal PDF untuk debugging atau validasi.
+- Mengekstrak metadata terstruktur dan properti halaman secara terprogram.
+- Memasukkan data struktur PDF ke pipeline pemrosesan kustom.
+- Mengaudit dokumen PDF untuk kepatuhan dengan menganalisis pohon objeknya.
+
+## Tips
+
+- Alat ini menghasilkan struktur objek PDF mentah, bukan isi teks yang diekstrak. Jika Anda memerlukan teks halaman dalam format JSON, gunakan [Siapkan PDF untuk AI](./prepare-pdf-for-ai).
+- Untuk ekstraksi teks biasa, [PDF ke Teks](./pdf-to-text) lebih sederhana.
+- PDF besar dengan struktur kompleks menghasilkan file JSON yang sangat besar.
+
+## Alat Terkait
+
+- [PDF ke Teks](./pdf-to-text)
+- [Siapkan PDF untuk AI](./prepare-pdf-for-ai)
+- [Ekstrak Tabel](./extract-tables)
diff --git a/docs/id/tools/pdf-to-markdown.md b/docs/id/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..0c751977
--- /dev/null
+++ b/docs/id/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF ke Markdown
+description: Konversi dokumen PDF ke format Markdown dengan ekstraksi gambar opsional. Mendukung konversi massal beberapa file.
+---
+
+# PDF ke Markdown
+
+Mengonversi file PDF ke format Markdown (`.md`), mempertahankan judul, paragraf, daftar, dan format dasar. Secara opsional mengekstrak dan menyertakan gambar tersemat. Mendukung konversi tunggal dan massal. Ditenagai PyMuPDF.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Secara opsional aktifkan **Sertakan Gambar** untuk menyematkan gambar yang diekstrak ke hasil Markdown.
+3. Klik **Konversi** untuk mulai memproses.
+4. Satu file diunduh sebagai `filename.md`. Beberapa file menghasilkan `markdown-files.zip`.
+
+## Opsi
+
+- **Sertakan Gambar**: jika dicentang, gambar tersemat dari PDF diekstrak dan dirujuk di hasil Markdown. Jika tidak dicentang, hanya konten teks yang dikonversi.
+
+## Format Hasil
+
+- **Satu file**: `filename.md`
+- **Beberapa file**: `markdown-files.zip` berisi satu `.md` per PDF input.
+
+## Kasus Penggunaan
+
+- Mengonversi dokumentasi PDF menjadi Markdown untuk generator situs statis seperti VitePress, Hugo, atau Jekyll.
+- Mengubah makalah penelitian PDF menjadi Markdown yang dapat diedit untuk aplikasi catatan seperti Obsidian.
+- Memigrasikan basis pengetahuan PDF lama ke format teks yang ramah Git.
+- Mengekstrak konten terstruktur dari ebook PDF untuk diformat ulang.
+
+## Tips
+
+- Opsi Sertakan Gambar berguna saat PDF berisi diagram atau gambar yang penting bagi isinya. Nonaktifkan untuk dokumen yang didominasi teks agar hasilnya bersih.
+- Tata letak kompleks dengan sidebar, catatan kaki, atau teks multi-kolom dapat menghasilkan Markdown yang kurang sempurna. Periksa dan sesuaikan hasilnya bila perlu.
+- Untuk teks mentah tanpa format apa pun, gunakan [PDF ke Teks](./pdf-to-text).
+
+## Alat Terkait
+
+- [PDF ke Teks](./pdf-to-text)
+- [PDF ke Word](./pdf-to-word)
+- [Siapkan PDF untuk AI](./prepare-pdf-for-ai)
diff --git a/docs/id/tools/pdf-to-pdfa.md b/docs/id/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..79db9962
--- /dev/null
+++ b/docs/id/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF ke PDF/A
+description: Konversi PDF standar ke format PDF/A untuk pengarsipan jangka panjang. Mendukung tingkat kesesuaian PDF/A-1b, PDF/A-2b, dan PDF/A-3b.
+---
+
+# PDF ke PDF/A
+
+PDF/A adalah subset PDF terstandar ISO yang dirancang untuk pelestarian digital jangka panjang. Alat ini mengonversi PDF standar Anda menjadi dokumen yang sesuai PDF/A menggunakan Ghostscript yang berjalan langsung di browser Anda.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF.
+2. Pilih **Versi PDF/A** dari menu tarik-turun.
+3. Secara opsional aktifkan **Pra-ratakan PDF** untuk file kompleks yang gagal dikonversi secara normal.
+4. Klik **Konversi ke PDF/A**. Beberapa file menghasilkan arsip ZIP.
+
+## Versi PDF/A
+
+| Versi | Pembatasan | Terbaik Untuk |
+| ------------ | --------------------------------------------------- | ------------------------------------------------ |
+| **PDF/A-1b** | Paling ketat. Tanpa transparansi, tanpa layer. | Kompatibilitas maksimal dengan sistem arsip lama |
+| **PDF/A-2b** | Mengizinkan transparansi dan JPEG2000. | Pengarsipan serbaguna (direkomendasikan) |
+| **PDF/A-3b** | Mengizinkan lampiran tersemat dalam format apa pun. | Mengarsipkan dokumen beserta file data sumber |
+
+PDF/A-2b dipilih secara default dan sesuai untuk sebagian besar kebutuhan pengarsipan.
+
+## Opsi Pra-ratakan
+
+Beberapa PDF memiliki fitur yang menghalangi konversi PDF/A yang bersih, seperti encoding font tidak umum, tumpukan transparansi kompleks, atau struktur internal yang rusak. Mengaktifkan **Pra-ratakan** merasterisasi PDF pada 300 DPI sebelum konversi, yang menjamin kesesuaian dengan konsekuensi teks tidak dapat dipilih. Gunakan sebagai cadangan saat konversi standar menghasilkan error.
+
+Pra-ratakan memerlukan engine WASM PyMuPDF.
+
+## Kasus Penggunaan
+
+- Memenuhi persyaratan pengarsipan pemerintah atau hukum (banyak yurisdiksi mewajibkan PDF/A untuk berkas pengadilan)
+- Mengirim dokumen ke repositori institusi atau perpustakaan digital
+- Melestarikan catatan bisnis yang perangkat lunak aslinya mungkin tidak ada lagi sepuluh tahun ke depan
+- Menyiapkan faktur untuk standar e-invoicing yang memerlukan PDF/A-3b dengan lampiran XML
+
+## Tips
+
+- Coba konversi tanpa pra-ratakan terlebih dahulu. Aktifkan hanya jika muncul error.
+- PDF/A menyematkan semua font, sehingga file hasil sering lebih besar daripada aslinya.
+- Validasi hasilnya di validator PDF/A khusus jika alur kerja Anda memerlukan kesesuaian yang ketat.
+
+## Alat Terkait
+
+- [Kompres PDF](./compress-pdf): kecilkan ukuran file setelah konversi
+- [Ratakan PDF](./flatten-pdf): ratakan formulir sebelum dikonversi ke PDF/A
+- [Hapus Metadata](./remove-metadata): bersihkan metadata sebelum pengarsipan
diff --git a/docs/id/tools/pdf-to-png.md b/docs/id/tools/pdf-to-png.md
new file mode 100644
index 00000000..e8af352d
--- /dev/null
+++ b/docs/id/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF ke PNG
+description: Konversi halaman PDF ke gambar PNG lossless dengan skala yang dapat diatur. Ideal untuk tangkapan layar berkualitas tinggi dan latar belakang transparan.
+---
+
+# PDF ke PNG
+
+Mengonversi setiap halaman PDF menjadi gambar PNG. PNG memakai kompresi lossless, sehingga hasilnya mempertahankan setiap detail halaman asli. PDF satu halaman diunduh sebagai file `.png`; PDF multi-halaman menghasilkan ZIP.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Atur penggeser **Skala** untuk mengontrol resolusi hasil.
+3. Klik **Konversi** untuk mulai memproses.
+4. Satu PNG atau arsip ZIP diunduh secara otomatis.
+
+## Opsi
+
+- **Skala**: berkisar dari 1.0x hingga 3.0x (default 2.0x). Pada 2.0x, halaman berukuran letter standar dirender sekitar 1.224 x 1.584 piksel. Nilai skala lebih tinggi menghasilkan gambar lebih besar dan tajam dengan konsekuensi ukuran file dan waktu pemrosesan.
+
+## Format Hasil
+
+- **Satu halaman**: `filename.png`
+- **Beberapa halaman**: `filename_pngs.zip` berisi `page_1.png`, `page_2.png`, dan seterusnya.
+
+## Kasus Penggunaan
+
+- Mengambil tangkapan layar halaman PDF berfidelitas tinggi untuk presentasi.
+- Mengekstrak grafik atau diagram yang memerlukan tepi tajam tanpa artefak kompresi.
+- Menyiapkan aset desain web dari mockup PDF.
+- Membuat gambar halaman lossless untuk pra-pemrosesan OCR.
+
+## Tips
+
+- File PNG jauh lebih besar daripada JPG. Jika ukuran file lebih penting daripada kualitas sempurna, gunakan [PDF ke JPG](./pdf-to-jpg) atau [PDF ke WebP](./pdf-to-webp).
+- Pada skala 1.0x, hasil sesuai dengan resolusi asli PDF. Naikkan ke 3.0x untuk ekspor berkualitas cetak.
+
+## Alat Terkait
+
+- [PDF ke JPG](./pdf-to-jpg)
+- [PDF ke WebP](./pdf-to-webp)
+- [PDF ke SVG](./pdf-to-svg)
diff --git a/docs/id/tools/pdf-to-svg.md b/docs/id/tools/pdf-to-svg.md
new file mode 100644
index 00000000..e55f152c
--- /dev/null
+++ b/docs/id/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF ke SVG
+description: Konversi halaman PDF ke grafik vektor SVG yang dapat diskalakan. Mempertahankan teks dan bentuk sebagai jalur vektor untuk penskalaan tanpa batas.
+---
+
+# PDF ke SVG
+
+Mengonversi setiap halaman PDF menjadi file SVG (Scalable Vector Graphics). Berbeda dengan format raster, SVG mempertahankan jalur vektor, teks, dan bentuk sehingga hasilnya dapat diskalakan ke ukuran apa pun tanpa pikselasi. Ditenagai PyMuPDF.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik zona lepas atau menyeret file ke dalamnya. Anda dapat menambahkan beberapa file dan mengelolanya satu per satu.
+2. Klik **Konversi** untuk memproses semua file yang diunggah.
+3. Konversi satu file satu halaman diunduh sebagai `.svg` mandiri. Selain itu, hasilnya diunduh sebagai arsip ZIP.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Setiap halaman dikonversi ke SVG menggunakan ekspor vektor bawaan PyMuPDF.
+
+## Format Hasil
+
+- **Satu file, satu halaman**: `filename.svg`
+- **Satu file, beberapa halaman**: `filename_svg.zip` berisi `page_1.svg`, `page_2.svg`, dan seterusnya.
+- **Beberapa file**: `pdf_to_svg.zip` dengan file diatur menurut nama dokumen sumber.
+
+## Kasus Penggunaan
+
+- Mengekstrak diagram vektor, grafik, atau ilustrasi dari laporan PDF untuk digunakan di halaman web.
+- Mengedit konten halaman PDF di editor vektor seperti Inkscape atau Illustrator.
+- Menyematkan pratinjau halaman yang dapat diskalakan di aplikasi web responsif.
+- Mengekstrak logo atau grafik dari brosur PDF dengan tepi yang tetap tajam.
+
+## Tips
+
+- SVG paling cocok untuk PDF yang berisi konten vektor. Dokumen pindaian atau PDF yang banyak gambar akan menghasilkan file SVG besar dengan data raster tersemat.
+- Untuk hasil raster dari PDF yang banyak gambar, gunakan [PDF ke PNG](./pdf-to-png) atau [PDF ke JPG](./pdf-to-jpg).
+- Alat ini mendukung konversi massal: unggah beberapa PDF sekaligus untuk mengonversinya dalam satu kali proses.
+
+## Alat Terkait
+
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke JPG](./pdf-to-jpg)
+- [PDF ke Markdown](./pdf-to-markdown)
diff --git a/docs/id/tools/pdf-to-text.md b/docs/id/tools/pdf-to-text.md
new file mode 100644
index 00000000..753fedf5
--- /dev/null
+++ b/docs/id/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF ke Teks
+description: Ekstrak konten teks biasa dari file PDF. Mendukung ekstraksi massal beberapa PDF dengan hasil berupa file TXT.
+---
+
+# PDF ke Teks
+
+Mengekstrak semua konten teks dari file PDF dan menyimpannya sebagai file `.txt` biasa. Mendukung pemrosesan massal: unggah beberapa PDF dan teks masing-masing diekstrak dalam satu operasi. Ditenagai PyMuPDF.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik zona lepas atau menyeret file ke dalamnya. Kelola daftar file dengan tombol Tambah File Lagi dan Hapus Semua.
+2. Klik **Ekstrak** untuk mulai memproses.
+3. Satu file diunduh sebagai `filename.txt`. Beberapa file menghasilkan arsip `pdf-to-text.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Semua konten teks diekstrak dari setiap halaman sesuai urutan baca.
+
+## Format Hasil
+
+- **Satu file**: `filename.txt`
+- **Beberapa file**: `pdf-to-text.zip` berisi satu `.txt` per PDF input.
+
+## Kasus Penggunaan
+
+- Mengekstrak teks isi dari laporan PDF untuk pengindeksan pencarian teks lengkap.
+- Mengonversi ebook atau artikel PDF ke teks biasa untuk dibaca di perangkat e-ink.
+- Mengambil teks dari kontrak atau dokumen hukum untuk analisis kata kunci.
+- Menghapus format dari PDF untuk mendapatkan teks bersih bagi skrip pemrosesan data.
+- Menyiapkan korpus teks dari arsip PDF untuk pemrosesan bahasa alami.
+
+## Tips
+
+- PDF hasil pindaian (hanya gambar) akan menghasilkan file teks kosong karena tidak ada lapisan teks untuk diekstrak. Jalankan dokumen pindaian melalui OCR terlebih dahulu.
+- Hasilnya mempertahankan urutan baca sebagaimana ditafsirkan PyMuPDF, yang umumnya mengikuti kiri ke kanan, atas ke bawah. Tata letak multi-kolom dapat menghasilkan teks yang saling bercampur.
+- Untuk hasil terstruktur dengan judul dan format, coba [PDF ke Markdown](./pdf-to-markdown). Untuk JSON terstruktur siap AI, gunakan [Siapkan PDF untuk AI](./prepare-pdf-for-ai).
+
+## Alat Terkait
+
+- [PDF ke Markdown](./pdf-to-markdown)
+- [Siapkan PDF untuk AI](./prepare-pdf-for-ai)
+- [PDF ke Word](./pdf-to-word)
diff --git a/docs/id/tools/pdf-to-tiff.md b/docs/id/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..ea8f8d0c
--- /dev/null
+++ b/docs/id/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF ke TIFF
+description: Konversi halaman PDF ke gambar TIFF, yang umum dipakai dalam alur kerja cetak, faks, dan arsip. Beralih ke PNG jika encoding gagal.
+---
+
+# PDF ke TIFF
+
+Mengonversi setiap halaman PDF menjadi gambar TIFF. TIFF adalah format standar untuk produksi cetak, sistem faks, dan pengarsipan dokumen. Alat ini memakai kompresi PackBits untuk encoding TIFF dan beralih ke PNG jika suatu halaman gagal di-encode.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Klik **Konversi** untuk memproses file.
+3. Satu file TIFF atau arsip ZIP diunduh secara otomatis.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Halaman dirender pada skala tetap 2x.
+
+## Format Hasil
+
+- **Satu halaman**: `filename.tiff`
+- **Beberapa halaman**: `filename_tiffs.zip` berisi `page_1.tiff`, `page_2.tiff`, dan seterusnya.
+
+Jika encoding TIFF gagal untuk halaman tertentu (karena masalah kompresi), halaman itu disimpan sebagai file `.png`. Dalam kasus itu, ZIP akan berisi campuran file TIFF dan PNG.
+
+## Kasus Penggunaan
+
+- Mengirim dokumen ke instansi pemerintah atau sistem hukum yang mewajibkan format TIFF.
+- Menyiapkan halaman untuk pengiriman faks melalui layanan faks digital.
+- Mengarsipkan dokumen pindaian dalam format lossless yang didukung luas.
+- Memasukkan halaman ke sistem manajemen dokumen perusahaan.
+
+## Tips
+
+- File TIFF berukuran besar. Jika Anda hanya memerlukan kualitas lossless untuk web atau layar, [PDF ke PNG](./pdf-to-png) adalah pilihan yang lebih baik.
+- Periksa isi ZIP jika beberapa halaman memakai cadangan PNG, Anda mungkin ingin mengonversinya secara terpisah.
+
+## Alat Terkait
+
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke BMP](./pdf-to-bmp)
+- [PDF ke JPG](./pdf-to-jpg)
diff --git a/docs/id/tools/pdf-to-webp.md b/docs/id/tools/pdf-to-webp.md
new file mode 100644
index 00000000..e2320a8f
--- /dev/null
+++ b/docs/id/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF ke WebP
+description: Konversi halaman PDF ke gambar WebP dengan kualitas yang dapat diatur. Ukuran file lebih kecil daripada JPG pada kualitas visual yang sebanding.
+---
+
+# PDF ke WebP
+
+Mengonversi setiap halaman PDF menjadi gambar WebP. WebP biasanya menghasilkan file 25-35% lebih kecil daripada JPG pada kualitas yang tampak sama, sehingga menjadi pilihan kuat untuk penggunaan web.
+
+## Cara Kerja
+
+1. Unggah PDF dengan mengklik zona lepas atau menyeret file ke dalamnya.
+2. Atur penggeser **Kualitas**.
+3. Klik **Konversi** untuk memproses file.
+4. Satu file `.webp` atau arsip ZIP diunduh secara otomatis.
+
+## Opsi
+
+- **Kualitas**: penggeser dari 0% hingga 100% (default 85%). Mengontrol tingkat kompresi lossy. Nilai lebih tinggi mempertahankan lebih banyak detail.
+
+Halaman dirender pada skala 2x secara internal, menghasilkan gambar dengan dimensi sekitar dua kali dimensi asli PDF.
+
+## Format Hasil
+
+- **Satu halaman**: `filename.webp`
+- **Beberapa halaman**: `filename_webps.zip` berisi `page_1.webp`, `page_2.webp`, dan seterusnya.
+
+## Kasus Penggunaan
+
+- Menyiapkan pratinjau halaman untuk situs web yang mementingkan bandwidth.
+- Membuat versi gambar ringan dari flyer atau brosur untuk media sosial.
+- Mengonversi massal dokumen multi-halaman menjadi kumpulan gambar yang dioptimalkan untuk web.
+
+## Tips
+
+- WebP didukung di semua browser modern. Untuk kompatibilitas lama, gunakan [PDF ke JPG](./pdf-to-jpg).
+- Kualitas 80-85% biasanya tidak dapat dibedakan dari aslinya di layar sambil menjaga ukuran file tetap kecil.
+
+## Alat Terkait
+
+- [PDF ke JPG](./pdf-to-jpg)
+- [PDF ke PNG](./pdf-to-png)
+- [PDF ke BMP](./pdf-to-bmp)
diff --git a/docs/id/tools/pdf-to-word.md b/docs/id/tools/pdf-to-word.md
new file mode 100644
index 00000000..b7269027
--- /dev/null
+++ b/docs/id/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF ke Word
+description: Konversi file PDF ke dokumen Word (DOCX) yang dapat diedit. Mendukung konversi massal beberapa PDF sekaligus.
+---
+
+# PDF ke Word
+
+Mengonversi file PDF menjadi dokumen Word (`.docx`) yang dapat diedit. Alat ini memakai PyMuPDF untuk merekonstruksi isi dokumen, mempertahankan teks, format dasar, dan tata letak. Mendukung konversi tunggal dan massal.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik zona lepas atau menyeret file ke dalamnya. Anda dapat menambah file lain atau menghapus file tertentu dari daftar.
+2. Klik **Konversi** untuk mulai memproses.
+3. Satu file diunduh sebagai `filename.docx`. Beberapa file dikemas menjadi `converted-documents.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Setiap PDF dikonversi ke DOCX menggunakan engine konversi bawaan PyMuPDF.
+
+## Format Hasil
+
+- **Satu file**: `filename.docx`
+- **Beberapa file**: `converted-documents.zip` berisi satu `.docx` per PDF input.
+
+## Kasus Penggunaan
+
+- Mengedit teks pada PDF yang Anda terima dan perlu diubah.
+- Mengonversi laporan PDF yang diarsipkan ke format yang bisa diedit rekan di Microsoft Word atau Google Docs.
+- Mengambil konten dari kontrak atau proposal PDF ke Word untuk revisi.
+- Memigrasikan dokumentasi PDF lama ke format yang dapat diedit.
+
+## Tips
+
+- Tata letak kompleks dengan teks multi-kolom, formulir tersemat, atau grafik berat mungkin tidak terkonversi dengan sempurna. Periksa hasilnya dan sesuaikan format di pengolah kata Anda.
+- PDF hasil pindaian (hanya gambar) akan menghasilkan file DOCX kosong atau minimal. Jalankan melalui OCR terlebih dahulu untuk menambahkan lapisan teks.
+- Mode massal efisien untuk mengonversi seluruh folder PDF, unggah semuanya sekaligus.
+
+## Alat Terkait
+
+- [PDF ke Teks](./pdf-to-text)
+- [PDF ke Markdown](./pdf-to-markdown)
+- [Pembangun Alur Kerja PDF](./pdf-workflow)
diff --git a/docs/id/tools/pdf-to-zip.md b/docs/id/tools/pdf-to-zip.md
new file mode 100644
index 00000000..eb809c07
--- /dev/null
+++ b/docs/id/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF ke ZIP
+description: Kemas beberapa file PDF ke dalam satu arsip ZIP agar mudah dibagikan dan disimpan.
+---
+
+# PDF ke ZIP
+
+Gabungkan beberapa file PDF ke dalam satu arsip ZIP. Ini adalah alat pengemasan sederhana, tanpa konversi, kompresi, atau perubahan pada PDF itu sendiri.
+
+## Cara Kerja
+
+1. Unggah beberapa file PDF menggunakan zona lepas.
+2. Periksa daftar file. Hapus yang tidak ingin disertakan.
+3. Klik tombol proses.
+4. Arsip ZIP berisi semua PDF yang diunggah langsung diunduh.
+
+## Fitur
+
+- Menerima file PDF dalam jumlah berapa pun
+- Penghapusan per file sebelum membuat arsip
+- Mempertahankan nama file asli di dalam ZIP
+- Tidak mengubah konten PDF, file dikemas apa adanya
+- Menampilkan nama dan ukuran file untuk setiap PDF yang diunggah
+
+## Kasus Penggunaan
+
+- Menggabungkan sekumpulan faktur atau tanda terima sebagai lampiran email
+- Mengemas hasil proyek (beberapa laporan PDF) untuk serah terima
+- Membuat satu unduhan untuk kumpulan formulir atau templat
+- Mengarsipkan sekumpulan dokumen ke dalam satu file terkompresi
+
+## Tips
+
+- File ZIP memakai nama file PDF asli. Jika Anda memiliki file dengan nama yang sama, ubah namanya sebelum mengunggah untuk menghindari konflik.
+- Alat ini tidak mengompres PDF itu sendiri. Untuk mengurangi ukuran file, jalankan melalui Kompres PDF terlebih dahulu, lalu kemas dengan alat ini.
+
+## Alat Terkait
+
+- [Gabung PDF](./merge-pdf)
+- [Pisah PDF](./split-pdf)
+- [Kompres PDF](./compress-pdf)
diff --git a/docs/id/tools/pdf-workflow.md b/docs/id/tools/pdf-workflow.md
new file mode 100644
index 00000000..f6f4c85a
--- /dev/null
+++ b/docs/id/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Pembangun Alur Kerja PDF
+description: Bangun pipeline pemrosesan PDF kustom secara visual dengan menghubungkan node di kanvas. Rangkai operasi seperti gabung, kompres, watermark, dan ekspor.
+---
+
+# Pembangun Alur Kerja PDF
+
+Pembangun Alur Kerja memungkinkan Anda merangkai beberapa operasi PDF menjadi satu pipeline otomatis. Alih-alih menjalankan alat satu per satu, Anda menyusun grafik visual berisi node (input, pemrosesan, output) dan menjalankan semuanya dengan satu klik. File Anda tidak pernah meninggalkan browser.
+
+## Cara Kerja
+
+Antarmuka terbagi menjadi tiga panel: **kotak alat node** di kiri, **kanvas** di tengah, dan **panel pengaturan** di kanan yang muncul saat Anda memilih node.
+
+1. **Tambah node** dengan mengkliknya di sidebar kiri, atau seret langsung ke kanvas. Gunakan kolom pencarian di bagian atas kotak alat untuk memfilter menurut nama.
+2. **Hubungkan node** dengan menyeret dari soket keluaran (bagian bawah node) ke soket masukan (bagian atas node lain). Koneksi mengalir dari atas ke bawah.
+3. **Atur pengaturan** dengan mengklik node untuk membuka panel pengaturannya di kanan. Setiap jenis node memiliki opsinya sendiri (rentang halaman, penggeser kualitas, kata sandi, dll.).
+4. **Jalankan alur kerja** dengan mengklik tombol **Jalankan** di toolbar. Engine mengeksekusi node dalam urutan topologis, memproses satu per satu. Bilah status di bawah melacak kemajuan.
+5. **Unduh hasil**: node Unduh di ujung menyimpan PDF akhir (atau ZIP jika menghasilkan beberapa file).
+
+## Kategori Node
+
+Node diatur dalam enam kategori, masing-masing diberi kode warna di kanvas:
+
+- **Masukan** (biru): Input PDF, Input Gambar, Word/Excel/PowerPoint ke PDF, dan lebih dari 15 konverter format lain yang memasukkan file ke pipeline.
+- **Edit & Anotasi** (indigo): Pangkas, Skala Abu-abu, Balik Warna, Watermark, Nomor Halaman, Kepala & Kaki Halaman, Efek Pemindai, Sesuaikan Warna, Warna Latar, Hapus Halaman Kosong, Hapus Anotasi.
+- **Atur & Kelola** (violet): Gabung, Pisah, Ekstrak Halaman, Putar, Hapus Halaman, Balik, Tambah Halaman Kosong, Bagi Halaman, N-Up, Perbaiki Ukuran Halaman, Gabung ke Halaman Tunggal, Buklet, Posterisasi, Edit Metadata, Daftar Isi, OCR.
+- **Optimalkan & Perbaiki** (kuning amber): Kompres, Rasterisasi, Linearisasi, Luruskan, PDF ke PDF/A, Font ke Outline, Perbaiki.
+- **Amankan PDF** (mawar): Enkripsi, Dekripsi, Sanitasi, Ratakan, Tanda Tangan Digital, Redaksi.
+- **Keluaran** (teal): Unduh (mendeteksi otomatis PDF tunggal atau ZIP), PDF ke Gambar, PDF ke Teks, PDF ke DOCX, PDF ke XLSX, PDF ke CSV, PDF ke SVG, PDF ke Markdown, Ekstrak Gambar.
+
+## Menyimpan dan Memuat Alur Kerja
+
+Toolbar menyediakan empat opsi penyimpanan:
+
+- **Simpan**: menyimpan alur kerja saat ini sebagai templat bernama di penyimpanan lokal browser Anda. Anda dapat menyimpan beberapa templat.
+- **Muat**: membuka modal berisi semua templat tersimpan. Klik Muat untuk memulihkan satu, atau hapus templat yang tidak lagi Anda perlukan.
+- **Ekspor**: mengunduh alur kerja sebagai file `.json` agar dapat dibagikan atau dicadangkan.
+- **Impor**: memuat file alur kerja `.json` dari disk, memulihkan semua node, posisi, dan koneksi.
+
+Templat bertahan antar sesi di penyimpanan lokal. File JSON yang diekspor portabel antar browser dan mesin.
+
+## Model Eksekusi
+
+Engine membangun grafik dependensi dari koneksi Anda dan mengeksekusi node dalam urutan topologis. Jika ada node yang gagal, eksekusi berhenti dan node yang gagal ditandai merah. Beberapa aturan yang perlu diingat:
+
+- Setiap alur kerja memerlukan setidaknya satu node **Masukan** dan satu node **Keluaran**.
+- Engine mendeteksi dependensi melingkar dan memblokir eksekusi dengan pesan error.
+- Node **Enkripsi** harus menjadi langkah pemrosesan terakhir sebelum node output. Menempatkannya lebih awal akan memicu peringatan validasi karena node berikutnya tidak dapat beroperasi pada data terenkripsi.
+- PDF yang dilindungi kata sandi akan meminta kata sandi saat eksekusi.
+- Input multi-PDF didukung: node Gabung dapat menggabungkannya, atau node pemrosesan massal akan memproses tiap PDF secara terpisah.
+
+## Jenis Soket
+
+Koneksi memakai soket bertipe untuk mencegah sambungan yang tidak valid:
+
+- **PDF** (indigo): satu dokumen PDF.
+- **MultiPDF** (amber): beberapa dokumen PDF yang dikelompokkan bersama.
+- **Image** (hijau): sebuah blob gambar.
+
+## Opsi
+
+Setiap node memiliki konfigurasinya sendiri yang dapat diakses lewat panel pengaturan di kanan. Pola umumnya meliputi:
+
+- **Rentang halaman** pada node Pisah, Ekstrak Halaman, Hapus Halaman
+- **Penggeser kualitas** pada node output konversi gambar
+- **Kolom kata sandi** pada node Enkripsi dan Dekripsi
+- **Input teks** untuk Watermark, Kepala & Kaki Halaman, Edit Metadata
+- **Sudut rotasi** pada node Putar
+- **Tingkat kompresi** pada node Kompres
+- **Pilihan bahasa OCR** pada node OCR
+
+## Kasus Penggunaan
+
+- **Pipeline pemrosesan faktur**: Input PDF -> OCR -> Ekstrak Tabel -> Unduh sebagai CSV.
+- **Standardisasi laporan**: Word ke PDF -> Perbaiki Ukuran Halaman -> Tambah Nomor Halaman -> Watermark -> Kompres -> Unduh.
+- **Persiapan arsip**: Input PDF -> Perbaiki -> Ratakan -> Sanitasi -> PDF ke PDF/A -> Unduh.
+- **Ekstraksi gambar massal**: Input PDF (beberapa file) -> Ekstrak Gambar -> Unduh ZIP.
+- **Buklet siap cetak**: Input PDF -> Buklet -> Pangkas -> Kompres -> Unduh.
+- **Distribusi aman**: Input PDF -> Redaksi -> Hapus Anotasi -> Enkripsi -> Unduh.
+
+## Tips
+
+- Gunakan **Delete** atau **Backspace** untuk menghapus node terpilih dari kanvas.
+- Klik tombol **X** pada bilah status node untuk menghapusnya langsung.
+- Geser kanvas dengan mengklik dan menyeret di ruang kosong. Kursor berubah menjadi ikon genggam saat menggeser.
+- Di perangkat seluler, gunakan tombol **+** di toolbar untuk menampilkan atau menyembunyikan kotak alat node.
+- Jika alur kerja Anda menghasilkan beberapa file output, node Unduh otomatis mengemasnya ke dalam ZIP.
+- Mulailah dari yang sederhana: bangun dan uji pipeline dua node sebelum menambah kerumitan.
+
+## Alat Terkait
+
+- [PDF ke Teks](./pdf-to-text)
+- [PDF ke Excel](./pdf-to-excel)
+- [Ekstrak Gambar](./extract-images)
+- [PDF ke Markdown](./pdf-to-markdown)
diff --git a/docs/id/tools/png-to-pdf.md b/docs/id/tools/png-to-pdf.md
new file mode 100644
index 00000000..818eeb48
--- /dev/null
+++ b/docs/id/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG ke PDF
+description: Konversi satu atau beberapa gambar PNG menjadi dokumen PDF dengan kualitas yang dapat diatur, sepenuhnya di browser Anda.
+---
+
+# PNG ke PDF
+
+Konversi gambar PNG ke PDF sambil mempertahankan resolusi penuhnya. Setiap PNG menjadi satu halaman, berukuran sesuai dimensi gambar asli. Transparansi ditangani secara otomatis.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :------- |
+| PNG | `.png` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file PNG. Anda dapat memilih beberapa sekaligus.
+2. Kelola daftar file: hapus file yang tidak diinginkan atau tambah lainnya.
+3. Pilih tingkat **Kualitas PDF** dari menu tarik-turun.
+4. Klik **Konversi ke PDF**. Hasilnya diunduh sebagai `from_jpgs.pdf`.
+
+Alat ini memakai pdf-lib untuk menyematkan setiap gambar secara langsung. Jika PNG tidak dapat disematkan secara native (mis., karena profil warna yang tidak umum), alat ini beralih dengan merender ulang melalui canvas sebagai JPEG.
+
+## Opsi
+
+**Kualitas PDF** mengontrol kompresi yang diterapkan sebelum penyematan:
+
+- **Kualitas Tinggi**: kompresi minimal, ukuran file terbesar.
+- **Kualitas Sedang** (default): keseimbangan yang baik antara ukuran dan kejernihan.
+- **Kualitas Rendah**: kompresi maksimal, hasil terkecil.
+
+## Kasus Penggunaan
+
+- Mengonversi tangkapan layar menjadi PDF multi-halaman untuk laporan bug atau dokumentasi
+- Mengemas ekspor desain UI ke dalam satu file untuk ditinjau
+- Mengubah ekspor diagram (draw.io, Excalidraw) menjadi PDF yang dapat dibagikan
+- Menyusun sekumpulan gambar grafik menjadi laporan
+
+## Tips
+
+- File PNG dengan transparansi mendapat latar belakang putih di PDF. Jika Anda memerlukan latar belakang lain, edit gambarnya terlebih dahulu.
+- Untuk tangkapan layar dan diagram dengan tepi tajam dan teks, kualitas Tinggi menghindari artefak kompresi JPEG. Kualitas Sedang atau Rendah dapat dikonversi ke JPEG secara internal.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [JPG ke PDF](./jpg-to-pdf)
+- [SVG ke PDF](./svg-to-pdf)
diff --git a/docs/id/tools/posterize-pdf.md b/docs/id/tools/posterize-pdf.md
new file mode 100644
index 00000000..9a03c248
--- /dev/null
+++ b/docs/id/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Posterisasi PDF
+description: Pisahkan halaman PDF menjadi kisi halaman yang lebih kecil untuk pencetakan format besar di beberapa lembar.
+---
+
+# Posterisasi PDF
+
+Bagi setiap halaman PDF menjadi kisi sub-halaman yang lebih kecil. Alat ini cocok untuk mencetak satu halaman di beberapa lembar kertas, yang kemudian disusun bersama menjadi poster atau spanduk besar.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Atur jumlah **baris** dan **kolom** untuk menentukan kisi (misalnya, 2 baris x 2 kolom membagi setiap halaman menjadi 4 sub-halaman).
+3. Secara opsional, tentukan rentang halaman untuk membatasi halaman yang diposterisasi.
+4. Kanvas pratinjau menampilkan lapisan kisi pada halaman saat ini sehingga Anda dapat melihat garis potongnya.
+5. Berpindah antarhalaman untuk memeriksa lapisan kisi di halaman lain.
+6. Klik tombol proses. Setiap sel kisi menjadi halaman tersendiri di PDF hasil.
+
+## Fitur
+
+- Jumlah baris dan kolom yang dapat diatur untuk ukuran kisi yang fleksibel
+- Pratinjau langsung dengan lapisan kisi yang menunjukkan persis di mana halaman akan dibagi
+- Filter rentang halaman untuk memposterisasi halaman tertentu saja
+- Navigasi halaman demi halaman di pratinjau
+- Cuplikan halaman yang di-cache untuk navigasi pratinjau yang cepat
+- Garis kisi merah putus-putus menandai batas potongan dengan jelas
+
+## Opsi
+
+| Opsi | Deskripsi |
+| ------------------- | --------------------------------------------------- |
+| **Baris** | Jumlah pembagian horizontal (default: 1) |
+| **Kolom** | Jumlah pembagian vertikal (default: 1) |
+| **Rentang halaman** | Halaman yang diposterisasi (kosong = semua halaman) |
+
+## Kasus Penggunaan
+
+- Mencetak PDF berukuran poster di lembar A4 atau Letter standar untuk dirangkai di dinding
+- Membuat spanduk besar dari desain PDF satu halaman
+- Membagi gambar teknis berukuran besar menjadi potongan yang dapat dicetak
+- Membuat cetakan format besar tanpa printer format lebar
+
+## Tips
+
+- Kisi 2x2 mengubah satu halaman menjadi 4 halaman. Kisi 3x3 mengubah satu halaman menjadi 9. Rencanakan kisi Anda berdasarkan seberapa besar hasil akhir yang diinginkan.
+- Lapisan pratinjau membantu Anda memastikan konten penting tidak jatuh pada garis potong. Ubah baris/kolom jika perlu.
+- Untuk operasi sebaliknya (memuat beberapa halaman dalam satu lembar), gunakan [N-Up PDF](./n-up-pdf).
+
+## Alat Terkait
+
+- [N-Up PDF](./n-up-pdf)
+- [Bagi Halaman](./divide-pages)
+- [Pisah PDF](./split-pdf)
diff --git a/docs/id/tools/powerpoint-to-pdf.md b/docs/id/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..501bca31
--- /dev/null
+++ b/docs/id/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint ke PDF
+description: Konversi presentasi PowerPoint (PPT, PPTX) dan file ODP ke PDF dengan format slide tetap terjaga.
+---
+
+# PowerPoint ke PDF
+
+Konversi file presentasi ke PDF. Setiap slide menjadi satu halaman di dokumen hasil, dengan teks, gambar, bentuk, dan transisi dirender melalui mesin LibreOffice berbasis browser. Mendukung format PowerPoint modern dan lama, serta format OpenDocument Presentation.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :------------------------ | :------- |
+| PowerPoint (modern) | `.pptx` |
+| PowerPoint (lama) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file presentasi Anda.
+2. Periksa daftar file. Tambahkan atau hapus file sesuai kebutuhan.
+3. Klik **Konversi ke PDF**. Mesin LibreOffice dimuat saat pertama kali digunakan, lalu mengonversi setiap file.
+4. Satu file diunduh langsung sebagai PDF. Beberapa file dikemas dalam `powerpoint-converted.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki pengaturan tambahan. Slide dirender pada dimensi aslinya.
+
+## Hasil
+
+| Jumlah Input | Hasil |
+| :----------- | :-------------------------------------------------------------- |
+| 1 file | Unduhan satu PDF (nama file asli dengan ekstensi `.pdf`) |
+| 2+ file | Arsip ZIP (`powerpoint-converted.zip`) berisi satu PDF per file |
+
+## Kasus Penggunaan
+
+- Mengonversi presentasi ke PDF sebelum dibagikan kepada audiens yang mungkin tidak memiliki PowerPoint
+- Membuat versi handout siap cetak dari slide deck untuk konferensi atau lokakarya
+- Mengarsipkan presentasi dalam format yang tampil identik di setiap perangkat
+- Mengonversi sekaligus pustaka presentasi ODP dari LibreOffice Impress ke PDF
+- Membuat versi PDF dari pitch deck untuk lampiran email
+
+## Tips
+
+- Animasi dan transisi slide tidak ditampilkan di PDF. Setiap slide diambil sebagai halaman statis.
+- Video yang disematkan tidak akan muncul di hasil. Gantikan dengan tangkapan layar atau gambar pengganti jika perlu.
+- Catatan pembicara tidak disertakan dalam ekspor PDF default. Jika Anda memerlukan catatan, coba ekspor dari tampilan "Print Notes" bawaan PowerPoint terlebih dahulu.
+- Mesin LibreOffice disimpan di cache setelah dimuat pertama kali, sehingga mengonversi presentasi kedua dalam sesi yang sama jauh lebih cepat.
+
+## Alat Terkait
+
+- [Word ke PDF](./word-to-pdf)
+- [Excel ke PDF](./excel-to-pdf)
+- [Gambar ke PDF](./image-to-pdf)
diff --git a/docs/id/tools/prepare-pdf-for-ai.md b/docs/id/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..8b8e26e4
--- /dev/null
+++ b/docs/id/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Siapkan PDF untuk AI
+description: Ekstrak konten PDF menjadi JSON terstruktur yang dioptimalkan untuk LLM dan pipeline AI seperti LlamaIndex. Mendukung pemrosesan batch.
+---
+
+# Siapkan PDF untuk AI
+
+Mengekstrak konten dari file PDF dan menyusunnya sebagai JSON yang dioptimalkan untuk dimasukkan ke large language model (LLM) dan kerangka kerja AI seperti LlamaIndex. Konten setiap halaman diekstrak dan diorganisasi dalam format terstruktur yang siap untuk pipeline RAG, chatbot, atau sistem pencarian semantik.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa PDF dengan mengklik area drop atau menyeret file ke dalamnya.
+2. Klik **Ekstrak** untuk memulai pemrosesan.
+3. Satu file diunduh sebagai `filename_llm.json`. Beberapa file menghasilkan arsip `pdf-for-ai.zip`.
+
+Alat ini menggunakan integrasi LlamaIndex dari PyMuPDF untuk mengekstrak konten tingkat halaman beserta metadata, menghasilkan keluaran yang dapat langsung dimuat ke kerangka kerja AI.
+
+## Opsi
+
+Alat ini tidak memiliki opsi yang dapat diatur. Semua halaman diekstrak dengan teks lengkap dan metadata.
+
+## Format Keluaran
+
+- **Satu file**: `filename_llm.json`
+- **Beberapa file**: `pdf-for-ai.zip` berisi satu `_llm.json` per PDF input.
+
+Keluaran JSON mengikuti skema dokumen LlamaIndex dengan konten teks per halaman dan bidang metadata.
+
+## Kasus Penggunaan
+
+- Menyiapkan dokumen PDF untuk pipeline retrieval-augmented generation (RAG).
+- Membangun basis pengetahuan yang dapat dicari dari arsip PDF untuk chatbot AI.
+- Memasukkan laporan PDF ke alur kerja analisis berbasis LLM.
+- Memproses awal makalah penelitian untuk sistem pencarian semantik dan tanya jawab.
+- Membuat data pelatihan terstruktur dari kumpulan dokumen PDF.
+
+## Tips
+
+- Untuk ekstraksi teks biasa tanpa format khusus AI, gunakan [PDF ke Teks](./pdf-to-text).
+- Untuk keluaran Markdown yang mempertahankan judul dan struktur, gunakan [PDF ke Markdown](./pdf-to-markdown).
+- PDF hasil pindai akan menghasilkan keluaran kosong atau minimal. Jalankan OCR terlebih dahulu untuk menambahkan lapisan teks sebelum ekstraksi.
+
+## Alat Terkait
+
+- [PDF ke Teks](./pdf-to-text)
+- [PDF ke Markdown](./pdf-to-markdown)
+- [PDF ke JSON](./pdf-to-json)
diff --git a/docs/id/tools/protect-pdf.md b/docs/id/tools/protect-pdf.md
new file mode 100644
index 00000000..89bceda4
--- /dev/null
+++ b/docs/id/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Lindungi PDF
+description: Lindungi file PDF dengan kata sandi menggunakan enkripsi AES 256-bit. Atur kata sandi pengguna dan pemilik dengan pembatasan penggunaan yang dapat dikonfigurasi.
+---
+
+# Lindungi PDF
+
+Kunci PDF Anda dengan kata sandi agar hanya orang yang berwenang yang dapat membukanya. BentoPDF menggunakan enkripsi AES 256-bit, standar yang sama dengan yang dipakai bank dan lembaga pemerintah, dan diterapkan sepenuhnya di browser Anda melalui QPDF.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Masukkan **Kata Sandi Pengguna** (wajib). Ini adalah kata sandi yang diperlukan untuk membuka file.
+3. Secara opsional, masukkan **Kata Sandi Pemilik**. Jika diatur, PDF mendapatkan pembatasan penggunaan yang mencegah pencetakan, pengeditan, penyalinan, dan pemberian anotasi.
+4. Klik **Lindungi PDF**.
+5. Unduh file terenkripsi.
+
+## Jenis Kata Sandi
+
+### Kata Sandi Pengguna (Wajib)
+
+Kata sandi pengguna adalah yang diketik penerima untuk membuka PDF. Tanpanya, dokumen sama sekali tidak dapat diakses. Setiap PDF terenkripsi harus memilikinya.
+
+### Kata Sandi Pemilik (Opsional)
+
+Kata sandi pemilik mengatur apa yang dapat dilakukan pengguna berwenang setelah membuka file. Saat Anda mengatur kata sandi pemilik yang berbeda, BentoPDF otomatis menerapkan set pembatasan paling ketat:
+
+- Modifikasi dinonaktifkan
+- Ekstraksi/penyalinan dinonaktifkan
+- Pencetakan dinonaktifkan
+- Anotasi dinonaktifkan
+- Pengisian formulir dinonaktifkan
+- Perakitan dokumen dinonaktifkan
+
+Jika Anda mengosongkan kata sandi pemilik, PDF tetap dienkripsi (masih memerlukan kata sandi pengguna untuk dibuka) tetapi tidak memiliki pembatasan penggunaan setelah dibuka.
+
+## Detail Enkripsi
+
+- **Algoritma**: AES-256 (256-bit Advanced Encryption Standard)
+- **Panjang kunci**: 256 bit
+- **Standar**: Enkripsi PDF 2.0 (implementasi QPDF)
+
+AES-256 secara komputasi tidak mungkin ditembus dengan brute force menggunakan teknologi saat ini. Keamanan PDF terenkripsi Anda sepenuhnya bergantung pada kekuatan kata sandi Anda.
+
+## Kasus Penggunaan
+
+- Melindungi laporan keuangan rahasia sebelum dikirim lewat email
+- Mengamankan dokumen hukum yang dibagikan kepada pihak lawan
+- Menambahkan kata sandi pada rekam medis atau informasi identitas pribadi
+- Mendistribusikan konten berbayar (e-book, laporan) dengan kontrol akses
+- Memenuhi kebijakan perlindungan data yang mewajibkan enkripsi saat disimpan
+
+## Tips
+
+- Gunakan kata sandi yang kuat dan unik. Frasa sandi 12+ karakter dengan huruf besar dan kecil, angka, dan simbol adalah yang ideal.
+- Bagikan kata sandi melalui saluran terpisah (telepon, pesan teks), jangan pernah di email yang sama dengan PDF.
+- Jika Anda hanya perlu membatasi tindakan (tanpa pencetakan, tanpa penyalinan) tanpa mewajibkan kata sandi untuk membuka, gunakan alat Ubah Izin.
+
+## Alat Terkait
+
+- [Buka Kunci PDF](./unlock-pdf): hapus enkripsi saat Anda mengetahui kata sandinya
+- [Ubah Izin](./change-permissions): ubah pembatasan penggunaan tertentu
+- [Hapus Pembatasan](./remove-restrictions): hapus semua pengamanan dari PDF
+- [Sanitasi PDF](./sanitize-pdf): hapus konten tersembunyi sebelum mengenkripsi
diff --git a/docs/id/tools/psd-to-pdf.md b/docs/id/tools/psd-to-pdf.md
new file mode 100644
index 00000000..7902e95e
--- /dev/null
+++ b/docs/id/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD ke PDF
+description: Konversi file Photoshop (PSD) ke PDF di browser Anda. Gratis, privat, tanpa perangkat lunak Adobe.
+---
+
+# PSD ke PDF
+
+Konversi file Adobe Photoshop PSD menjadi dokumen PDF. PSD adalah format asli Photoshop, dan membukanya biasanya memerlukan perangkat lunak Adobe yang mahal. Alat ini merender komposit gabungan (flattened) dari file PSD Anda sebagai halaman PDF beresolusi penuh.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :-------------- | :------- | :------------------------------------------- |
+| Adobe Photoshop | `.psd` | Merender gambar komposit yang sudah digabung |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file PSD Anda. Beberapa file didukung.
+2. Periksa daftar file. Hapus file yang tidak diinginkan dengan ikon tempat sampah, atau gunakan **Tambah File Lainnya** untuk menambah file.
+3. Klik **Konversi ke PDF**. Mesin PyMuPDF membaca file PSD dan menyematkan gambar komposit ke halaman PDF pada resolusi aslinya.
+4. Satu PSD menghasilkan satu PDF. Saat Anda mengunggah beberapa file PSD, semuanya digabung menjadi satu PDF multi-halaman bernama `psd_to_pdf.pdf`, dengan setiap PSD menjadi satu halaman.
+
+## Opsi
+
+Tidak diperlukan pengaturan. Konverter menggunakan data gambar gabungan dari file PSD.
+
+## Kasus Penggunaan
+
+- Melihat pratinjau desain Photoshop tanpa membuka Photoshop
+- Mengirim bukti desain kepada klien yang tidak memiliki Adobe Creative Suite
+- Mencetak karya seni beresolusi tinggi dari file PSD
+- Membuat portofolio PDF dari beberapa file desain PSD, masing-masing menjadi satu halaman dalam satu dokumen
+
+## Tips
+
+- Konversi merender tampilan komposit (gabungan) dari PSD. Layer individual, layer penyesuaian, dan efek layer tidak dipertahankan sebagai elemen terpisah di PDF.
+- Beberapa file PSD digabung menjadi satu PDF multi-halaman, bukan PDF individual. Ini berguna untuk membuat portofolio atau lookbook.
+- File PSD beresolusi sangat tinggi (file cetak 300+ DPI) akan menghasilkan PDF besar. Alat ini mempertahankan resolusi penuh.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
+- [VSD ke PDF](./vsd-to-pdf)
diff --git a/docs/id/tools/pub-to-pdf.md b/docs/id/tools/pub-to-pdf.md
new file mode 100644
index 00000000..e56fbd09
--- /dev/null
+++ b/docs/id/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB ke PDF
+description: Konversi file Microsoft Publisher (PUB) ke PDF di browser Anda. Gratis, privat, tanpa perangkat lunak tambahan.
+---
+
+# PUB ke PDF
+
+Konversi file Microsoft Publisher menjadi PDF. Publisher adalah alat desktop publishing yang disertakan dalam beberapa edisi Microsoft Office, tetapi kebanyakan orang tidak menginstalnya. Alat ini memungkinkan siapa pun mengonversi file PUB ke PDF langsung di browser, tanpa perangkat lunak Microsoft.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :------------------ | :------- | :------------------------- |
+| Microsoft Publisher | `.pub` | Dokumen desktop publishing |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file PUB Anda. Beberapa file dapat diunggah sekaligus.
+2. Periksa daftar file. Hapus file yang tidak diinginkan dengan ikon tempat sampah, atau klik **Tambah File Lainnya** untuk menambah file.
+3. Klik **Konversi ke PDF**. Mesin berbasis LibreOffice dimuat di browser dan mengonversi setiap file PUB, dengan mempertahankan tata letak, gambar, dan kotak teks.
+4. Satu file diunduh langsung sebagai PDF. Beberapa file dikirim dalam arsip ZIP bernama `pub-to-pdf.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi tambahan. Konverter menangani mesin tata letak PUB secara otomatis.
+
+## Kasus Penggunaan
+
+- Membuka flyer atau buletin PUB dari klien tanpa membeli Microsoft Publisher
+- Mengonversi buletin gereja, program acara, atau buletin sekolah yang dibuat di Publisher
+- Mengarsipkan materi pemasaran dari Publisher dalam format yang dapat diakses secara universal
+- Mencetak file PUB di sistem yang tidak memiliki Publisher
+
+## Tips
+
+- Tata letak Publisher yang kompleks dengan kotak teks berlapis dan penempatan presisi dapat bergeser sedikit selama konversi. Periksa hasilnya jika posisi yang tepat sangat penting.
+- Mesin LibreOffice diinisialisasi sekali per sesi. Konversi pertama memakan waktu lebih lama, konversi berikutnya lebih cepat.
+- Untuk konversi file Publisher yang paling akurat, pastikan font khusus yang digunakan di file asli adalah font sistem standar.
+
+## Alat Terkait
+
+- [VSD ke PDF](./vsd-to-pdf)
+- [ODP ke PDF](./odp-to-pdf)
diff --git a/docs/id/tools/rasterize-pdf.md b/docs/id/tools/rasterize-pdf.md
new file mode 100644
index 00000000..60e69ccb
--- /dev/null
+++ b/docs/id/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasterisasi PDF
+description: Konversi halaman PDF menjadi PDF berbasis gambar. Ratakan semua layer, hapus teks yang dapat dipilih, dan atur DPI serta format gambar.
+---
+
+# Rasterisasi PDF
+
+Rasterisasi mengubah setiap halaman PDF menjadi gambar dan menyusun kembali gambar tersebut menjadi PDF. Hasilnya tampak identik dengan aslinya tetapi tidak berisi teks yang dapat dipilih, elemen interaktif, atau layer yang dapat diedit. Pada dasarnya ini adalah fotokopi berkualitas tinggi.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF.
+2. Atur **DPI** (resolusi) untuk hasil rasterisasi.
+3. Pilih **Format Gambar**: PNG untuk kualitas tanpa kehilangan atau JPEG untuk file lebih kecil.
+4. Secara opsional, centang **Konversi ke Skala Abu-abu**.
+5. Klik **Rasterisasi PDF**. Beberapa file diunduh sebagai ZIP.
+
+## Opsi
+
+| Pengaturan | Nilai | Default |
+| ----------------- | ------------------------------------------ | -------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Format Gambar** | PNG (tanpa kehilangan), JPEG (lebih kecil) | PNG |
+| **Skala Abu-abu** | Aktif/Nonaktif | Nonaktif |
+
+## Panduan DPI
+
+- **72**: Hanya untuk dilihat di layar, ukuran file terkecil
+- **150**: Keseimbangan yang baik untuk penggunaan umum
+- **200**: Teks lebih tajam, ukuran file sedang
+- **300**: Hasil berkualitas cetak
+- **600**: Arsip berkualitas tinggi atau pencetakan profesional
+
+## Kasus Penggunaan
+
+- Mencegah ekstraksi teks dari dokumen rahasia sebelum dibagikan
+- Menghilangkan masalah ketergantungan font dengan mengubah teks menjadi piksel
+- Membuat versi "datar" dari PDF dengan layer atau transparansi kompleks yang dirender berbeda di berbagai penampil
+- Menyiapkan PDF untuk sistem yang hanya menerima input berbasis gambar
+- Menghapus konten tersembunyi (seperti perubahan terlacak atau data formulir) dengan mengubah PDF menjadi gambar murni
+
+## Tips
+
+- 150 DPI dengan PNG adalah default yang solid. Naikkan hanya jika Anda memerlukan hasil cetak atau perlu memperbesar detail halus.
+- JPEG menghasilkan file yang jauh lebih kecil tetapi menimbulkan artefak kompresi pada tepi teks yang tajam.
+- Rasterisasi tidak dapat dibatalkan, jadi simpan PDF asli Anda jika nanti mungkin memerlukan teks yang dapat diedit.
+
+## Alat Terkait
+
+- [Kompres PDF](./compress-pdf): kurangi ukuran file PDF hasil rasterisasi
+- [Luruskan PDF](./deskew-pdf): luruskan halaman sebelum merasterisasi dokumen pindaian
+- [Font ke Outline](./font-to-outline): ubah font menjadi jalur vektor jika Anda ingin tetap skalabel
+- [Ratakan PDF](./flatten-pdf): ratakan formulir tanpa mengubahnya menjadi gambar
diff --git a/docs/id/tools/remove-annotations.md b/docs/id/tools/remove-annotations.md
new file mode 100644
index 00000000..5f014646
--- /dev/null
+++ b/docs/id/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Hapus Anotasi
+description: Hapus semua komentar, sorotan, tautan, dan anotasi lain dari PDF Anda dengan satu klik.
+---
+
+# Hapus Anotasi
+
+Bersihkan PDF Anda dengan menghapus semua anotasi: komentar, sorotan, catatan tempel, markup teks, tautan, stempel, dan objek anotasi lain yang tertanam di dokumen. Konten halaman di bawahnya (teks, gambar, grafik) tidak tersentuh.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Alat mendeteksi jumlah halaman dokumen dan menampilkan informasi file.
+3. Klik **Hapus Anotasi** untuk memproses.
+4. PDF yang sudah bersih diunduh otomatis tanpa anotasi apa pun.
+
+## Fitur
+
+- Menghapus semua jenis anotasi: komentar, sorotan, garis bawah, coretan, catatan tempel, stempel, tautan, dan markup formulir
+- Bekerja pada setiap halaman di dokumen
+- Mempertahankan semua konten non-anotasi (teks, gambar, grafik vektor, bidang formulir)
+- Menampilkan jumlah halaman dan ukuran file sebelum diproses
+
+## Kasus Penggunaan
+
+- Membersihkan dokumen sebelum distribusi akhir setelah siklus peninjauan di mana beberapa peninjau menambahkan komentar
+- Menghapus markup sorotan dan catatan tempel dari panduan belajar yang dibagikan
+- Menghapus anotasi tautan dari dokumen sebelum diarsipkan
+- Menyiapkan versi "bersih" dari dokumen hukum yang banyak dianotasi selama negosiasi
+- Menghapus komentar peninjau dari naskah sebelum dikirim ke percetakan
+
+## Tips
+
+- Alat ini menghapus anotasi pada tingkat struktur PDF, sehingga hasilnya tetap memiliki teks yang dapat dipilih dan kualitas asli, tanpa rasterisasi.
+- Jika Anda hanya ingin menghapus anotasi tertentu, bukan semuanya, gunakan [Editor PDF](./edit-pdf) untuk menghapus anotasi satu per satu.
+- Anotasi di PDF yang sudah diratakan (di mana anotasi telah digabung ke konten halaman) tidak dapat dihapus karena sudah bukan objek terpisah.
+
+## Alat Terkait
+
+- [Editor PDF](./edit-pdf)
+- [Tambah Watermark](./add-watermark)
+- [Tanda Tangan PDF](./sign-pdf)
diff --git a/docs/id/tools/remove-blank-pages.md b/docs/id/tools/remove-blank-pages.md
new file mode 100644
index 00000000..09a469e1
--- /dev/null
+++ b/docs/id/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Hapus Halaman Kosong
+description: Deteksi dan hapus halaman kosong atau hampir kosong dari PDF Anda secara otomatis dengan sensitivitas yang dapat diatur.
+---
+
+# Hapus Halaman Kosong
+
+Pindai PDF Anda untuk menemukan halaman kosong atau hampir kosong dan hapus secara otomatis. Alat ini merender setiap halaman dan menganalisis isi pikselnya untuk menentukan apakah halaman kosong, lalu memungkinkan Anda mengonfirmasi halaman mana yang akan dihapus sebelum diproses.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Atur penggeser **Sensitivitas** untuk mengontrol seberapa ketat definisi "kosong".
+3. Klik **Deteksi Halaman Kosong** untuk memindai dokumen.
+4. Alat menampilkan thumbnail halaman kosong yang terdeteksi agar Anda dapat meninjaunya.
+5. Konfirmasi pilihan dan unduh PDF bersih tanpa halaman kosong.
+
+## Opsi
+
+- **Sensitivitas**: Penggeser dari 0% hingga 100% (default 80%). Nilai lebih tinggi lebih ketat, hanya menandai halaman yang sepenuhnya atau hampir putih. Nilai lebih rendah lebih longgar, menangkap halaman dengan konten minimal seperti satu titik atau watermark samar.
+
+## Fitur
+
+- Analisis tingkat piksel pada setiap halaman untuk mendeteksi konten kosong
+- Penggeser sensitivitas yang dapat diatur untuk penyempurnaan deteksi
+- Pratinjau thumbnail halaman kosong yang terdeteksi untuk verifikasi manual
+- Mempertahankan semua halaman tidak kosong persis seperti aslinya
+- Menangani dokumen dengan ukuran atau jumlah halaman berapa pun
+- Umpan balik kemajuan selama pemindaian
+
+## Kasus Penggunaan
+
+- Membersihkan dokumen hasil pindai di mana pemindai menangkap sisi belakang kosong dari dokumen asli satu sisi
+- Menghapus halaman pemisah dari kumpulan dokumen yang dipindai massal
+- Menghapus halaman kosong yang disisipkan oleh sistem manajemen dokumen
+- Membersihkan PDF hasil ekspor dari pengolah kata yang terkadang menyertakan halaman kosong di akhir
+- Mengurangi ukuran file dengan menghapus halaman kosong yang tidak perlu
+
+## Tips
+
+- Mulailah dengan sensitivitas default 80% lalu sesuaikan. Jika alat melewatkan halaman yang menurut Anda kosong, turunkan sensitivitas. Jika alat menandai halaman yang berisi konten ringan yang ingin Anda pertahankan, naikkan.
+- Alat merender setiap halaman untuk menganalisis kontennya, sehingga waktu pemrosesan bergantung pada jumlah halaman. Untuk dokumen yang sangat besar, bersiaplah menunggu sebentar.
+- Tinjau halaman kosong yang terdeteksi di pratinjau thumbnail sebelum mengonfirmasi penghapusan. Halaman dengan header, footer, atau watermark samar dapat ditandai tergantung pengaturan sensitivitas.
+
+## Alat Terkait
+
+- [Potong PDF](./crop-pdf)
+- [Editor PDF](./edit-pdf)
+- [Nomor Halaman](./page-numbers)
diff --git a/docs/id/tools/remove-metadata.md b/docs/id/tools/remove-metadata.md
new file mode 100644
index 00000000..9bc46b4a
--- /dev/null
+++ b/docs/id/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Hapus Metadata
+description: Hapus semua metadata tersembunyi dari file PDF termasuk penulis, judul, tanggal pembuatan, produser, data XMP, dan ID dokumen.
+---
+
+# Hapus Metadata
+
+Setiap PDF membawa metadata yang dapat mengungkap siapa pembuatnya, perangkat lunak yang digunakan, kapan terakhir diubah, dan lainnya. Alat ini menghapus semuanya: info dictionary, aliran metadata XMP, ID dokumen, dan data khusus aplikasi, sehingga dokumen bersih tanpa jejak asalnya.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Klik **Hapus Metadata**.
+3. Unduh file yang sudah dibersihkan.
+
+Tidak ada opsi yang perlu diatur. Alat ini teliti secara desain: semuanya dibersihkan.
+
+## Yang Dihapus
+
+- **Bidang info dictionary**: Title, Author, Subject, Keywords, Creator, Producer, tanggal pembuatan, tanggal modifikasi
+- **Aliran metadata XMP**: Blok metadata berbasis XML yang tersimpan di katalog dokumen
+- **ID dokumen**: Pengenal unik di trailer PDF yang dapat digunakan untuk melacak dokumen lintas sistem
+- **PieceInfo**: Metadata khusus aplikasi yang ditambahkan program seperti Illustrator atau InDesign
+
+## Yang Tetap Ada
+
+- Semua konten halaman yang terlihat (teks, gambar, grafik)
+- Bidang formulir dan anotasi
+- Bookmark dan tautan
+- Struktur dokumen itu sendiri
+
+## Kasus Penggunaan
+
+- Menghapus nama dan organisasi Anda dari dokumen sebelum dipublikasikan secara anonim
+- Menghapus stempel waktu pembuatan yang mengungkap kapan dokumen disiapkan
+- Membersihkan string produser yang mengidentifikasi perangkat lunak PDF Anda
+- Menyiapkan dokumen untuk pengajuan regulasi yang mewajibkan PDF tanpa metadata
+- Menghapus jejak riwayat pengeditan sebelum membagikan dokumen ke pihak luar
+
+## Tips
+
+- Gunakan alat Lihat Metadata terlebih dahulu untuk melihat persis metadata apa yang ada di PDF Anda sebelum menghapusnya.
+- Jika Anda perlu menghapus metadata _dan_ JavaScript, anotasi, serta file tertanam, gunakan Sanitasi PDF untuk pembersihan yang lebih menyeluruh.
+- Penghapusan metadata bersifat permanen. Simpan file asli Anda jika nanti mungkin memerlukan data tersebut.
+
+## Alat Terkait
+
+- [Sanitasi PDF](./sanitize-pdf): hapus metadata beserta skrip, lampiran, dan lainnya
+- [Lindungi PDF](./protect-pdf): lindungi PDF yang sudah dibersihkan dengan kata sandi
+- [Kompres PDF](./compress-pdf): penghapusan metadata dapat sedikit mengurangi ukuran file, kompres untuk penghematan lebih besar
diff --git a/docs/id/tools/remove-restrictions.md b/docs/id/tools/remove-restrictions.md
new file mode 100644
index 00000000..b0e7ec50
--- /dev/null
+++ b/docs/id/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Hapus Pembatasan
+description: Hapus perlindungan kata sandi, pembatasan pencetakan, kunci pengeditan, dan batasan penyalinan dari file PDF.
+---
+
+# Hapus Pembatasan
+
+PDF dapat memiliki dua jenis kata sandi: kata sandi pengguna (diperlukan untuk membuka file) dan kata sandi pemilik (mengatur apa yang dapat Anda lakukan dengan file). Alat ini menghapus keduanya beserta semua pembatasan terkait: kunci pencetakan, pengeditan, penyalinan, dan anotasi.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Jika PDF memiliki kata sandi pemilik, masukkan di kolom **Kata Sandi Pemilik**. Biarkan kosong jika PDF hanya memiliki pembatasan penggunaan tanpa kata sandi.
+3. Klik **Hapus Pembatasan**.
+4. Unduh PDF tanpa pembatasan.
+
+Alat ini menggunakan flag `--decrypt` dan `--remove-restrictions` dari QPDF untuk menghasilkan salinan yang bersih dan tanpa pembatasan.
+
+## Yang Dihapus
+
+- Perlindungan kata sandi (kata sandi pengguna dan pemilik)
+- Pembatasan pencetakan
+- Pembatasan pengeditan
+- Pembatasan penyalinan teks dan gambar
+- Pembatasan anotasi dan komentar
+- Semua batasan keamanan lain yang dikodekan di PDF
+
+## Kasus Penggunaan
+
+- Membuka kunci PDF milik Anda yang kata sandinya Anda atur bertahun-tahun lalu
+- Menghapus pembatasan cetak dari dokumen yang Anda akses secara sah
+- Mengaktifkan salin-tempel pada materi referensi untuk mencatat
+- Menyiapkan PDF untuk alat aksesibilitas yang tidak dapat menangani dokumen terbatas
+
+## Tips
+
+- Anda harus mengetahui kata sandi pemilik jika ada. Alat ini tidak memecahkan atau menebak kata sandi dengan brute force.
+- Jika Anda perlu mempertahankan enkripsi tetapi mengubah izin tertentu, gunakan alat Ubah Izin.
+- File hasil tidak memiliki enkripsi sama sekali, sehingga siapa pun yang menerimanya dapat membukanya dengan bebas.
+
+## Alat Terkait
+
+- [Buka Kunci PDF](./unlock-pdf): buka kunci PDF saat Anda mengetahui kata sandi pengguna
+- [Lindungi PDF](./protect-pdf): terapkan kembali enkripsi dengan pengaturan baru
+- [Ubah Izin](./change-permissions): ubah secara selektif tindakan yang diizinkan
diff --git a/docs/id/tools/repair-pdf.md b/docs/id/tools/repair-pdf.md
new file mode 100644
index 00000000..071a5519
--- /dev/null
+++ b/docs/id/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Perbaiki PDF
+description: Pulihkan data dari file PDF yang rusak atau korup menggunakan mesin perbaikan QPDF. Mendukung pemrosesan batch.
+---
+
+# Perbaiki PDF
+
+Saat PDF tidak mau terbuka, menampilkan konten acak, atau memicu error di penampil Anda, alat ini mencoba membangun ulang struktur internalnya. Alat ini menggunakan mesin perbaikan QPDF yang dapat memulihkan data dari berbagai jenis kerusakan: tabel referensi silang yang rusak, aliran yang terpotong, referensi objek yang tidak valid, dan lainnya.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF yang rusak.
+2. Klik **Perbaiki PDF**.
+3. Satu file yang diperbaiki diunduh langsung. Beberapa file menghasilkan arsip ZIP.
+
+Alat ini memproses setiap file melalui QPDF dengan flag `--decrypt`, yang memaksa QPDF membaca dan menulis ulang seluruh struktur PDF, memperbaiki masalah yang dapat dipulihkan.
+
+## Fitur
+
+- Perbaikan batch beberapa PDF dalam satu operasi
+- Deteksi otomatis file yang dapat dipulihkan dan yang tidak
+- Pelaporan berhasil/gagal per file saat memproses beberapa file
+- Menggunakan QPDF (WebAssembly), pustaka transformasi PDF yang teruji
+
+## Yang Dapat Diperbaiki
+
+- Tabel referensi silang yang rusak atau hilang
+- Akhir file yang terpotong akibat unduhan tidak lengkap
+- Penomoran objek dan panjang aliran yang tidak valid
+- Ketidakkonsistenan struktur kecil dari generator PDF yang bermasalah
+- Artefak enkripsi dari upaya dekripsi yang gagal
+
+## Yang Tidak Dapat Diperbaiki
+
+- File yang sangat terpotong di mana sebagian besar data konten hilang
+- PDF yang dienkripsi dengan kata sandi yang tidak Anda miliki
+- File yang sebenarnya bukan PDF (ekstensi file salah)
+- Kerusakan gambar di dalam PDF (strukturnya diperbaiki, tetapi data piksel tidak dibuat ulang)
+
+## Kasus Penggunaan
+
+- Memulihkan PDF dari unduhan email yang gagal
+- Membuka file yang dihasilkan oleh generator PDF lama atau tidak standar
+- Memperbaiki PDF yang berfungsi di satu penampil tetapi tidak di penampil lain
+- Menyiapkan dokumen arsip yang rusak untuk penyimpanan jangka panjang
+
+## Tips
+
+- Jika perbaikan gagal, coba buka file di browser terlebih dahulu. Browser memiliki logika pemulihan sendiri dan mungkin merender cukup konten untuk disimpan ulang.
+- Untuk PDF terenkripsi yang gagal diperbaiki, coba Buka Kunci PDF terlebih dahulu, lalu perbaiki hasil dekripsinya.
+
+## Alat Terkait
+
+- [Kompres PDF](./compress-pdf): rapikan lebih lanjut struktur PDF yang sudah diperbaiki
+- [Linierisasi PDF](./linearize-pdf): optimalkan file yang diperbaiki untuk pengiriman web
+- [Ratakan PDF](./flatten-pdf): ratakan formulir yang mungkin rusak
diff --git a/docs/id/tools/reverse-pages.md b/docs/id/tools/reverse-pages.md
new file mode 100644
index 00000000..41775443
--- /dev/null
+++ b/docs/id/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Balik Halaman
+description: Balik urutan halaman satu atau beberapa file PDF sehingga halaman terakhir menjadi yang pertama.
+---
+
+# Balik Halaman
+
+Balik urutan halaman PDF sehingga halaman terakhir menjadi yang pertama, halaman kedua dari belakang menjadi yang kedua, dan seterusnya. Mendukung pemrosesan batch beberapa file sekaligus.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF.
+2. Klik tombol proses.
+3. Setiap file dibalik secara independen. Jika Anda mengunggah beberapa file, hasilnya berupa arsip ZIP berisi semua PDF yang sudah dibalik.
+4. Satu file diunduh langsung sebagai PDF yang sudah dibalik.
+
+## Fitur
+
+- Pemrosesan batch: balik beberapa PDF dalam satu operasi
+- Keluaran satu file untuk satu PDF, keluaran ZIP untuk beberapa
+- Tombol hapus per file sebelum diproses
+- Mempertahankan semua konten dan format halaman
+
+## Kasus Penggunaan
+
+- Memperbaiki dokumen yang dipindai dengan urutan terbalik
+- Menyiapkan PDF presentasi untuk dibaca dari belakang ke depan
+- Membalik urutan halaman untuk alur kerja pencetakan tertentu yang memasukkan halaman secara terbalik
+- Memperbaiki dokumen yang halamannya tidak sengaja tersusun terbalik
+
+## Tips
+
+- Setiap file dalam batch dibalik secara independen, urutan file satu sama lain tidak berubah.
+- Untuk pengurutan ulang halaman yang lebih terperinci (bukan hanya pembalikan penuh), gunakan [Duplikat & Atur](./organize-pdf).
+
+## Alat Terkait
+
+- [Duplikat & Atur](./organize-pdf)
+- [Putar PDF](./rotate-pdf)
+- [Alat Multi PDF](./pdf-multi-tool)
diff --git a/docs/id/tools/rotate-custom.md b/docs/id/tools/rotate-custom.md
new file mode 100644
index 00000000..62016583
--- /dev/null
+++ b/docs/id/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Putar dengan Derajat Kustom
+description: Putar halaman PDF dengan sudut apa pun menggunakan input derajat per halaman dan kontrol rotasi batch.
+---
+
+# Putar dengan Derajat Kustom
+
+Putar halaman PDF dengan sudut sembarang, tidak hanya kelipatan 90 derajat. Setiap halaman memiliki input sudutnya sendiri, dan Anda dapat menerapkan satu sudut ke semua halaman sekaligus menggunakan kontrol batch.
+
+## Cara Kerja
+
+1. Unggah file PDF. Thumbnail dirender untuk setiap halaman.
+2. Setiap halaman memiliki kolom input numerik yang menampilkan sudut rotasinya saat ini.
+3. Ketik nilai derajat apa pun (positif atau negatif) untuk memutar halaman tertentu, atau gunakan tombol kiri/kanan per halaman untuk penyesuaian cepat 90 derajat.
+4. Gunakan input **sudut batch** di bagian atas untuk mengatur rotasi seragam bagi semua halaman.
+5. Klik tombol proses untuk menghasilkan PDF yang sudah diputar.
+
+## Fitur
+
+- Input derajat bebas per halaman (nilai bilangan bulat apa pun)
+- Kontrol sudut batch untuk mengatur rotasi yang sama pada setiap halaman
+- Pratinjau rotasi secara real-time di thumbnail
+- Tombol putar cepat per halaman untuk kelipatan 90 derajat
+- Thumbnail dimuat secara lazy untuk performa pada dokumen besar
+
+## Kasus Penggunaan
+
+- Memperbaiki pindaian yang sedikit miring beberapa derajat
+- Memutar halaman agar sesuai dengan persyaratan orientasi non-standar
+- Menerapkan rotasi presisi pada halaman tertentu dalam dokumen dengan konten campuran
+- Menyempurnakan sudut halaman setelah rotasi massal awal
+
+## Tips
+
+- Nilai positif memutar searah jarum jam, nilai negatif memutar berlawanan arah jarum jam.
+- Kolom sudut batch menimpa semua sudut per halaman saat diterapkan. Atur penyesuaian individual setelah operasi batch jika perlu.
+- Untuk rotasi standar 90/180/270 derajat dengan antarmuka yang lebih sederhana, gunakan [Putar PDF](./rotate-pdf).
+
+## Alat Terkait
+
+- [Putar PDF](./rotate-pdf)
+- [Alat Multi PDF](./pdf-multi-tool)
+- [Duplikat & Atur](./organize-pdf)
diff --git a/docs/id/tools/rotate-pdf.md b/docs/id/tools/rotate-pdf.md
new file mode 100644
index 00000000..2df8505c
--- /dev/null
+++ b/docs/id/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Putar PDF
+description: Putar halaman tertentu atau semua halaman PDF dengan kelipatan 90 derajat melalui antarmuka thumbnail visual.
+---
+
+# Putar PDF
+
+Putar halaman PDF 90 derajat searah atau berlawanan arah jarum jam. Alat ini menampilkan pratinjau thumbnail setiap halaman, sehingga Anda dapat memutarnya satu per satu atau menerapkan rotasi massal ke seluruh dokumen.
+
+## Cara Kerja
+
+1. Unggah file PDF. Thumbnail setiap halaman dirender dalam kisi.
+2. Gunakan tombol rotasi kiri/kanan di bawah thumbnail setiap halaman untuk memutar halaman tersebut.
+3. Gunakan kontrol rotasi massal di bagian atas untuk memutar semua halaman sekaligus.
+4. Pratinjau thumbnail diperbarui secara real-time untuk menunjukkan rotasi.
+5. Klik tombol proses untuk menyimpan PDF yang sudah diputar.
+
+## Fitur
+
+- Rotasi per halaman dengan kelipatan 90 derajat (kiri atau kanan)
+- Rotasi massal untuk semua halaman sekaligus
+- Pratinjau thumbnail real-time dengan transisi rotasi beranimasi
+- Thumbnail dimuat secara lazy untuk performa mulus pada dokumen besar
+- Mempertahankan konten dan kualitas halaman asli
+
+## Kasus Penggunaan
+
+- Memperbaiki halaman hasil pindai yang miring ke samping atau terbalik
+- Memutar halaman lanskap ke orientasi potret (atau sebaliknya)
+- Memperbaiki dokumen berorientasi campuran di mana beberapa halaman dipindai dengan sudut yang salah
+- Menyiapkan dokumen untuk orientasi tampilan tertentu
+
+## Tips
+
+- Rotasi bersifat kumulatif. Mengklik tombol searah jarum jam dua kali menerapkan rotasi 180 derajat.
+- Untuk rotasi non-90 derajat (misalnya, 45 derajat untuk memperbaiki pindaian yang sedikit miring), gunakan [Putar dengan Derajat Kustom](./rotate-custom).
+- Kontrol rotasi massal memengaruhi semua halaman, bukan hanya yang dipilih. Alat ini tidak memiliki mekanisme pemilihan. Untuk itu, gunakan [Alat Multi PDF](./pdf-multi-tool).
+
+## Alat Terkait
+
+- [Putar dengan Derajat Kustom](./rotate-custom)
+- [Alat Multi PDF](./pdf-multi-tool)
+- [Duplikat & Atur](./organize-pdf)
diff --git a/docs/id/tools/rtf-to-pdf.md b/docs/id/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..2daf427a
--- /dev/null
+++ b/docs/id/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF ke PDF
+description: Konversi file Rich Text Format (RTF) ke PDF di browser Anda menggunakan mesin berbasis LibreOffice.
+---
+
+# RTF ke PDF
+
+Konversi dokumen Rich Text Format ke PDF. RTF adalah format dokumen lintas platform yang didukung hampir semua pengolah kata. Alat ini menggunakan mesin LibreOffice berbasis browser untuk merender file RTF dengan format yang tetap utuh: tebal, miring, tabel, dan gambar tertanam semuanya terbawa ke PDF.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Tipe MIME |
+| :----- | :------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas satu atau beberapa file RTF.
+2. Periksa daftar file. Tambahkan atau hapus file sesuai kebutuhan.
+3. Klik **Konversi ke PDF**. Mesin LibreOffice diinisialisasi saat pertama kali digunakan, lalu memproses setiap file.
+4. Satu file diunduh langsung sebagai PDF. Beberapa file dikirim sebagai `rtf-converted.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki pengaturan tambahan. Konversi mempertahankan format RTF asli.
+
+## Hasil
+
+| Jumlah Input | Hasil |
+| :----------- | :------------------------------------------------------- |
+| 1 file | Unduhan satu PDF (misalnya, `letter.pdf`) |
+| 2+ file | Arsip ZIP (`rtf-converted.zip`) berisi satu PDF per file |
+
+## Kasus Penggunaan
+
+- Mengonversi dokumen RTF lama dari pengolah kata lawas ke PDF modern
+- Mengubah templat email RTF menjadi pratinjau PDF
+- Memproses keluaran RTF dari sistem perangkat lunak hukum atau medis
+- Mengonversi sekaligus file RTF dari sistem manajemen dokumen ke PDF untuk arsip
+
+## Tips
+
+- Mesin LibreOffice dimuat sekali dan disimpan di cache. Konversi pertama dalam sesi memakan beberapa detik lebih lama, konversi berikutnya lebih cepat.
+- File RTF dengan objek OLE tertanam mungkin tidak merender semua objek dengan sempurna. Teks biasa, gambar, dan format standar dikonversi dengan andal.
+- Jika file RTF Anda dibuat oleh Microsoft Word, Anda juga dapat mengonversinya langsung dengan alat [Word ke PDF](./word-to-pdf), yang menerima RTF selain DOC dan DOCX.
+
+## Alat Terkait
+
+- [Word ke PDF](./word-to-pdf)
+- [ODT ke PDF](./odt-to-pdf)
+- [Teks ke PDF](./txt-to-pdf)
diff --git a/docs/id/tools/sanitize-pdf.md b/docs/id/tools/sanitize-pdf.md
new file mode 100644
index 00000000..224b9f42
--- /dev/null
+++ b/docs/id/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Sanitasi PDF
+description: Hapus konten tersembunyi dan berpotensi berbahaya dari PDF termasuk metadata, JavaScript, file tertanam, anotasi, dan layer.
+---
+
+# Sanitasi PDF
+
+PDF dapat membawa jauh lebih banyak daripada yang terlihat di layar. Metadata tersembunyi, JavaScript tertanam, lampiran file, data formulir, dan informasi layer dapat membocorkan data sensitif atau menimbulkan risiko keamanan. Sanitasi menghapus semuanya, sehingga Anda mendapatkan dokumen bersih yang aman dibagikan secara publik.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Pilih elemen yang akan dihapus dari daftar centang.
+3. Klik **Sanitasi PDF**.
+4. Unduh file yang sudah dibersihkan.
+
+## Opsi Sanitasi
+
+Semua opsi aktif secara default. Hapus centang pada opsi yang ingin Anda pertahankan.
+
+| Opsi | Yang Dihapus |
+| ------------------------ | ------------------------------------------------------------------------------- |
+| **Ratakan Formulir** | Mengubah bidang formulir interaktif menjadi konten statis |
+| **Hapus Metadata** | Menghapus penulis, judul, tanggal pembuatan, info perangkat lunak, dan data XMP |
+| **Hapus Anotasi** | Menghapus komentar, sorotan, catatan tempel, dan markup |
+| **Hapus JavaScript** | Menghilangkan skrip tertanam yang dapat berjalan saat dibuka |
+| **Hapus File Tertanam** | Menghapus lampiran file yang tertanam di dalam PDF |
+| **Hapus Layer (OCG)** | Meratakan grup konten opsional menjadi satu layer |
+| **Hapus Tautan** | Menghapus hyperlink dan referensi URL |
+| **Hapus Pohon Struktur** | Menghapus struktur dokumen yang digunakan untuk penandaan aksesibilitas |
+| **Hapus MarkInfo** | Menghapus informasi konten bertanda |
+| **Hapus Font** | Menghapus data font tertanam (gunakan dengan hati-hati) |
+
+## Kasus Penggunaan
+
+- Menyiapkan PDF untuk rilis publik dengan menghapus metadata internal (nama penulis, versi perangkat lunak, riwayat pengeditan)
+- Menghapus JavaScript dari PDF yang diterima dari sumber tidak tepercaya sebelum membukanya
+- Membersihkan PDF sebelum dikirim ke klien yang tidak boleh melihat komentar tertanam atau nama bidang formulir
+- Menghapus layer tersembunyi dari gambar arsitektur sebelum membagikan versi final
+- Memenuhi persyaratan minimisasi data berdasarkan regulasi privasi
+
+## Tips
+
+- Biarkan "Hapus Font" tidak dicentang kecuali Anda yakin PDF tetap dirender dengan benar. Menghapus font dapat membuat teks tidak terlihat di beberapa penampil.
+- Jika Anda hanya perlu menghapus metadata, alat Hapus Metadata khusus lebih cepat dan lebih terfokus.
+- Sanitasi tidak dapat dibatalkan. Simpan file asli Anda.
+
+## Alat Terkait
+
+- [Hapus Metadata](./remove-metadata): hapus metadata saja tanpa menyentuh konten lain
+- [Ratakan PDF](./flatten-pdf): ratakan formulir dan anotasi secara khusus
+- [Lindungi PDF](./protect-pdf): tambahkan perlindungan kata sandi setelah sanitasi
+- [Rasterisasi PDF](./rasterize-pdf): opsi pamungkas, konversi ke gambar untuk menghilangkan semua konten tersembunyi
diff --git a/docs/id/tools/scanner-effect.md b/docs/id/tools/scanner-effect.md
new file mode 100644
index 00000000..89edc2e3
--- /dev/null
+++ b/docs/id/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Efek Pemindai
+description: Buat PDF Anda tampak seperti dokumen hasil pindai dengan efek derau, rotasi, blur, dan penuaan kertas yang dapat diatur.
+---
+
+# Efek Pemindai
+
+Ubah PDF digital yang bersih menjadi tampak seperti keluaran pemindai flatbed. Alat ini menerapkan derau, rotasi ringan, blur, pergeseran kecerahan, dan penguningan opsional yang dapat diatur untuk mensimulasikan ketidaksempurnaan pindaian fisik.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Editor terbuka dengan pratinjau langsung halaman pertama di samping panel pengaturan.
+3. Sesuaikan parameter efek pindai menggunakan penggeser dan sakelar.
+4. Pratinjau diperbarui secara real-time saat Anda mengubah pengaturan.
+5. Klik **Terapkan** untuk memproses semua halaman dan mengunduh hasilnya.
+
+## Opsi
+
+- **Ruang warna (sakelar Skala Abu-abu)**: Ubah keluaran menjadi skala abu-abu untuk tampilan pindaian hitam putih klasik.
+- **Batas**: Tambahkan border gelap tipis di tepi halaman untuk meniru artefak tepi pemindai.
+- **Rotasi**: Terapkan rotasi ringan (-5 hingga +5 derajat) untuk mensimulasikan umpan kertas yang tidak sejajar.
+- **Variasi Rotasi**: Tambahkan variasi acak pada sudut rotasi sehingga setiap halaman miring sedikit berbeda.
+- **Kecerahan**: Geser kecerahan keseluruhan naik atau turun.
+- **Kontras**: Atur kontras untuk mensimulasikan variasi kualitas toner.
+- **Buram**: Terapkan blur Gaussian untuk melembutkan tepi teks seperti pindaian berkualitas rendah.
+- **Derau**: Tambahkan derau piksel acak untuk mensimulasikan butiran sensor pemindai. Nilai lebih tinggi menghasilkan tampilan lebih berbutir.
+- **Kekuningan**: Tambahkan rona kuning hangat untuk mensimulasikan kertas tua atau daur ulang.
+- **Resolusi**: Atur DPI keluaran. Nilai lebih rendah menciptakan tampilan yang lebih berpiksel seperti pindaian.
+- **Atur Ulang**: Kembalikan semua pengaturan ke default.
+
+## Fitur
+
+- Pratinjau real-time yang diperbarui saat Anda mengubah setiap parameter
+- Variasi rotasi acak per halaman untuk variasi yang realistis
+- Sepuluh parameter yang dapat diatur secara independen
+- Mode skala abu-abu untuk keluaran pindaian hitam putih yang autentik
+- Kontrol resolusi dari kualitas fax DPI rendah hingga kualitas arsip DPI tinggi
+
+## Kasus Penggunaan
+
+- Membuat dokumen buatan digital tampak seperti telah dipindai dan dicetak
+- Mensimulasikan penuaan dokumen fisik untuk rekonstruksi dokumen bersejarah
+- Menguji perangkat lunak OCR terhadap kualitas pindaian yang menurun
+- Menghasilkan dokumen yang sesuai dengan gaya visual arsip hasil pindai yang ada
+
+## Tips
+
+- Mulailah dengan nilai yang halus. Tingkat derau 10-20, rotasi ringan 0,5 derajat, dan blur minimal sudah menghasilkan tampilan pindaian yang meyakinkan.
+- Gabungkan mode skala abu-abu dengan sedikit penguningan untuk efek "fotokopi dari fotokopi".
+- Pengaturan resolusi lebih rendah (100-150 DPI) menciptakan tampilan mesin fax yang paling realistis.
+
+## Alat Terkait
+
+- [Balik Warna](./invert-colors)
+- [Sesuaikan Warna](./adjust-colors)
+- [Warna Latar Belakang](./background-color)
diff --git a/docs/id/tools/sign-pdf.md b/docs/id/tools/sign-pdf.md
new file mode 100644
index 00000000..dd316597
--- /dev/null
+++ b/docs/id/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Tanda Tangan PDF
+description: Gambar, ketik, atau unggah tanda tangan dan tempatkan di halaman PDF Anda dengan penampil terintegrasi.
+---
+
+# Tanda Tangan PDF
+
+Tambahkan tanda tangan Anda ke dokumen PDF apa pun. Alat ini menyematkan penampil PDF lengkap dengan alat tanda tangan bawaan, tempat Anda dapat menggambar tanda tangan secara bebas, mengetik nama dengan font tanda tangan, atau mengunggah gambar tanda tangan. Tempatkan dan ubah ukuran tanda tangan di halaman mana pun, lalu simpan dokumen yang sudah ditandatangani.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Dokumen terbuka di penampil PDF terintegrasi dengan alat anotasi.
+3. Gunakan alat tanda tangan penampil untuk membuat tanda tangan dengan menggambar, mengetik, atau mengunggah gambar.
+4. Klik pada halaman tempat Anda ingin menempatkan tanda tangan, lalu sesuaikan ukuran dan posisinya.
+5. Secara opsional, centang **Ratakan PDF** untuk menyematkan tanda tangan secara permanen ke dokumen.
+6. Klik **Simpan & Unduh PDF yang Ditandatangani** untuk mendapatkan file yang sudah ditandatangani.
+
+## Opsi
+
+- **Ratakan PDF**: Jika dicentang, tanda tangan disematkan secara permanen ke konten halaman. Ini mencegah tanda tangan dipindahkan atau dihapus orang lain. Jika tidak dicentang, tanda tangan tetap berupa anotasi yang dapat diedit di penampil yang kompatibel.
+
+## Fitur
+
+- Tiga metode pembuatan tanda tangan: gambar bebas, teks ketikan, atau gambar yang diunggah
+- Penampil PDF terintegrasi untuk penempatan yang akurat
+- Seret untuk memosisikan dan mengubah ukuran tanda tangan di halaman mana pun
+- Perataan opsional untuk menyematkan tanda tangan secara permanen
+- Dukungan beberapa tanda tangan pada dokumen yang sama
+
+## Kasus Penggunaan
+
+- Menandatangani kontrak, perjanjian, atau formulir persetujuan sebelum dikirim kembali
+- Menambahkan tanda tangan Anda pada dokumen pajak, klaim asuransi, atau formulir pemerintah
+- Membubuhkan paraf di halaman tertentu dari perjanjian multi-halaman
+- Menandatangani NDA atau dokumen HR yang datang sebagai lampiran PDF
+
+## Tips
+
+- Aktifkan perataan jika Anda mengirim PDF yang sudah ditandatangani kepada orang yang tidak boleh dapat menghapus atau memindahkan tanda tangan Anda.
+- Untuk tanda tangan digital yang mengikat secara hukum dengan verifikasi berbasis sertifikat, BentoPDF juga menyediakan alat Tanda Tangan Digital terpisah.
+- Unggah gambar tanda tangan PNG dengan latar belakang transparan untuk hasil yang paling bersih.
+
+## Alat Terkait
+
+- [Editor PDF](./edit-pdf)
+- [Tambah Stempel](./add-stamps)
+- [Pengisi Formulir](./form-filler)
diff --git a/docs/id/tools/split-pdf.md b/docs/id/tools/split-pdf.md
new file mode 100644
index 00000000..147d121c
--- /dev/null
+++ b/docs/id/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Pisah PDF
+description: Pisahkan PDF menjadi file yang lebih kecil berdasarkan rentang halaman, pemilihan visual, bookmark, halaman genap/ganjil, atau interval tetap.
+---
+
+# Pisah PDF
+
+Pecah PDF menjadi dokumen yang lebih kecil dengan salah satu dari enam mode pemisahan. Dari rentang halaman sederhana hingga pemisahan berbasis bookmark, alat ini menangani setiap skenario pembagian dokumen.
+
+## Cara Kerja
+
+1. Unggah satu file PDF.
+2. Pilih mode pemisahan dari dropdown.
+3. Atur opsi khusus mode (rentang halaman, pilihan, dan sebagainya).
+4. Klik tombol proses.
+5. Hasilnya diunduh sebagai satu PDF atau arsip ZIP tergantung mode dan pengaturan.
+
+## Mode Pemisahan
+
+| Mode | Deskripsi |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| **Rentang** | Masukkan rentang halaman seperti `1-3, 5, 8-10`. Beberapa rentang menghasilkan PDF terpisah dalam ZIP. Satu rentang menghasilkan satu PDF. |
+| **Pilih Visual** | Telusuri thumbnail halaman dan klik untuk memilih halaman yang Anda inginkan. Halaman terpilih diekstrak ke PDF baru. |
+| **Genap / Ganjil** | Ekstrak hanya halaman bernomor genap atau ganjil. |
+| **Semua Halaman** | Pisahkan setiap halaman menjadi file PDF tersendiri, diunduh sebagai ZIP. |
+| **Bookmark** | Pisahkan pada batas bookmark. Pilih tingkat bookmark untuk mengatur di mana pemisahan terjadi. |
+| **Setiap N Halaman** | Pisahkan menjadi potongan masing-masing N halaman (misalnya, setiap 5 halaman). Potongan terakhir mungkin memiliki lebih sedikit halaman. |
+
+## Fitur
+
+- Enam mode pemisahan berbeda yang mencakup hampir semua kasus penggunaan
+- Pemilih halaman visual dengan thumbnail yang dimuat secara lazy
+- Pemisahan berbasis bookmark dengan filter tingkat
+- Opsi keluaran ZIP untuk mode rentang dan visual
+- Menangani rentang halaman dengan sintaks campuran (`1-3, 5, 8-10`)
+- Peringatan saat pemisahan N halaman menghasilkan potongan yang tidak sama
+
+## Kasus Penggunaan
+
+- Mengekstrak bab atau bagian tertentu dari dokumen besar
+- Memisahkan halaman ganjil dan genap untuk alur kerja pencetakan bolak-balik
+- Memecah PDF buku menjadi file bab individual pada batas bookmark
+- Mengisolasi halaman tertentu (seperti halaman tanda tangan) dari kontrak
+- Memisahkan laporan gabungan menjadi file per bagian untuk distribusi
+
+## Tips
+
+- Beberapa rentang halaman yang dipisahkan koma (misalnya, `1-5, 10-15, 20-25`) menghasilkan PDF terpisah, satu per rentang, dikemas dalam ZIP.
+- Mode pemisahan bookmark mengharuskan PDF benar-benar memiliki bookmark. Jika tidak ditemukan, Anda akan mendapatkan pesan error.
+- Kotak centang "Unduh sebagai ZIP" pada mode Rentang dan Visual memungkinkan Anda mendapatkan PDF individual per halaman, bukan file gabungan.
+
+## Alat Terkait
+
+- [Gabung PDF](./merge-pdf)
+- [Ekstrak Halaman](./extract-pages)
+- [Hapus Halaman](./delete-pages)
+- [Alat Multi PDF](./pdf-multi-tool)
diff --git a/docs/id/tools/svg-to-pdf.md b/docs/id/tools/svg-to-pdf.md
new file mode 100644
index 00000000..a7d8389c
--- /dev/null
+++ b/docs/id/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG ke PDF
+description: Konversi grafik vektor SVG ke PDF dengan kontrol kualitas, sepenuhnya di browser Anda.
+---
+
+# SVG ke PDF
+
+Konversi file Scalable Vector Graphics (SVG) ke PDF. Alat ini merasterisasi setiap SVG melalui mesin rendering browser, lalu menyematkan hasilnya pada resolusi aslinya. Berguna untuk mengubah ikon vektor, diagram, dan ilustrasi menjadi dokumen portabel.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :------- |
+| SVG | `.svg` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas satu atau beberapa file SVG.
+2. Periksa dan kelola daftar file.
+3. Pilih tingkat **Kualitas PDF**.
+4. Klik **Konversi ke PDF**. Hasilnya diunduh sebagai `from_svgs.pdf`.
+
+Setiap SVG dibaca sebagai teks, dirender ke kanvas pada lebar dan tinggi intrinsiknya (default 800x600 jika tidak ada dimensi yang ditentukan), dan diekspor sebagai PNG. PNG tersebut kemudian disematkan ke PDF menggunakan pdf-lib. Area transparan diisi dengan latar belakang putih.
+
+## Opsi
+
+**Kualitas PDF** mengatur kompresi setelah rasterisasi:
+
+- **Kualitas Tinggi**: paling mendekati rendering asli.
+- **Kualitas Sedang** (default): keseimbangan yang baik.
+- **Kualitas Rendah**: file terkecil, sebagian detail hilang.
+
+## Kasus Penggunaan
+
+- Mengonversi diagram arsitektur atau teknik dari SVG ke PDF siap cetak
+- Mengemas set ikon ke dalam PDF referensi untuk sistem desain
+- Mengubah visualisasi data (D3.js, ekspor pustaka grafik) menjadi PDF siap laporan
+- Membuat versi cetak dari infografis berbasis SVG
+
+## Tips
+
+- File SVG tanpa atribut `width` dan `height` eksplisit dirender pada 800x600 piksel. Untuk hasil terbaik, atur dimensi di sumber SVG sebelum mengonversi.
+- SVG kompleks dengan referensi font eksternal atau gambar tertaut mungkin tidak dirender dengan sempurna. Sematkan semua aset di dalam SVG untuk hasil yang andal.
+- Karena SVG dirasterisasi, PDF akan berisi gambar bitmap, bukan jalur vektor. Untuk keluaran PDF vektor sejati, diperlukan alat vektor khusus.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
+- [BMP ke PDF](./bmp-to-pdf)
diff --git a/docs/id/tools/table-of-contents.md b/docs/id/tools/table-of-contents.md
new file mode 100644
index 00000000..b0c5625a
--- /dev/null
+++ b/docs/id/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Daftar Isi
+description: Buat halaman daftar isi yang terformat dari bookmark yang ada di PDF Anda.
+---
+
+# Daftar Isi
+
+Alat ini membaca bookmark (outline) di PDF Anda dan membuat halaman daftar isi terformat yang ditambahkan di awal dokumen. Jika PDF Anda sudah memiliki bookmark tetapi tidak memiliki halaman daftar isi yang terlihat, alat ini membuatnya secara otomatis.
+
+## Cara Kerja
+
+1. Unggah PDF yang berisi bookmark.
+2. Sesuaikan judul daftar isi, ukuran font, dan jenis font.
+3. Secara opsional, centang **Tambahkan bookmark untuk halaman daftar isi** agar daftar isi itu sendiri masuk ke pohon bookmark.
+4. Klik **Buat Daftar Isi** untuk memproses file.
+5. PDF yang diperbarui diunduh otomatis dengan halaman daftar isi disisipkan di awal.
+
+## Opsi
+
+- **Judul Daftar Isi**: Judul yang ditampilkan di bagian atas halaman yang dibuat. Default "Daftar Isi".
+- **Ukuran Font**: Pilih dari 10pt hingga 72pt. Defaultnya 12pt.
+- **Jenis Font**: Pilih dari varian Times Roman, Helvetica, atau Courier (reguler, tebal, miring, tebal miring). Default Helvetica.
+- **Tambahkan bookmark untuk halaman daftar isi**: Jika dicentang, entri bookmark untuk halaman daftar isi itu sendiri ditambahkan ke pohon outline PDF.
+
+## Fitur
+
+- Membaca seluruh hierarki bookmark dari PDF
+- Membuat halaman daftar isi yang terformat rapi dengan referensi nomor halaman
+- Mendukung tingkat bookmark bertingkat dengan indentasi
+- Pilihan 12 font PDF bawaan
+- Bookmark opsional yang merujuk ke halaman daftar isi itu sendiri
+
+## Kasus Penggunaan
+
+- Menambahkan daftar isi yang dapat dicetak ke e-book atau laporan yang hanya memiliki bookmark digital
+- Membuat daftar isi untuk dokumen gabungan setelah menggabungkan beberapa PDF
+- Membuat halaman referensi untuk manual teknis yang panjang
+- Menyiapkan dokumen untuk dicetak yang diharapkan memiliki daftar isi yang terlihat
+
+## Tips
+
+- Jika PDF Anda tidak memiliki bookmark, gunakan alat [Edit Bookmark](./bookmark) terlebih dahulu untuk membuatnya, lalu kembali ke sini untuk membuat daftar isi.
+- Untuk dokumen besar, ukuran font lebih besar seperti 14pt atau 16pt meningkatkan keterbacaan.
+
+## Alat Terkait
+
+- [Edit Bookmark](./bookmark)
+- [Nomor Halaman](./page-numbers)
+- [Kepala & Kaki Halaman](./header-footer)
diff --git a/docs/id/tools/text-color.md b/docs/id/tools/text-color.md
new file mode 100644
index 00000000..a7de0c29
--- /dev/null
+++ b/docs/id/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Ubah Warna Teks
+description: Ubah warna semua teks di PDF Anda menjadi warna apa pun yang Anda pilih.
+---
+
+# Ubah Warna Teks
+
+Ganti warna teks di seluruh PDF Anda. Alat ini mengidentifikasi area teks di setiap halaman dan mewarnainya kembali dengan warna pilihan Anda sambil mempertahankan tata letak dokumen dan konten non-teks.
+
+## Cara Kerja
+
+1. Unggah file PDF Anda.
+2. Pilih warna teks baru menggunakan pemilih warna. Defaultnya biru (#0000FF).
+3. Klik **Ubah Warna Teks** untuk memproses.
+4. PDF yang sudah diwarnai ulang diunduh otomatis. Indikator kemajuan menunjukkan halaman mana yang sedang diproses.
+
+## Opsi
+
+- **Warna Teks Baru**: Pemilih warna untuk memilih warna pengganti bagi semua teks di dokumen.
+
+## Fitur
+
+- Mewarnai ulang teks di setiap halaman dokumen
+- Pemrosesan per halaman dengan umpan balik kemajuan
+- Pemilih warna dengan dukungan penuh warna hex
+- Mempertahankan tata letak halaman dan elemen non-teks
+
+## Kasus Penggunaan
+
+- Mengubah teks hitam menjadi biru tua untuk tampilan dokumen yang lebih lembut dan modern
+- Mewarnai ulang teks agar sesuai dengan pedoman merek sebelum mendistribusikan dokumen
+- Mengubah teks ke warna tertentu untuk kepatuhan aksesibilitas
+- Membuat teks terlihat di atas warna latar belakang yang baru diterapkan
+
+## Tips
+
+- Alat ini merender halaman pada skala 2x untuk kualitas, lalu membangun ulang PDF. Hasilnya berbasis gambar, sehingga teks tidak lagi dapat dipilih atau dicari.
+- Untuk dokumen di mana Anda perlu mempertahankan teks yang dapat dipilih, pertimbangkan untuk mengedit PDF langsung dengan [Editor PDF](./edit-pdf).
+- Waktu pemrosesan bertambah seiring jumlah halaman karena setiap halaman dirender satu per satu.
+
+## Alat Terkait
+
+- [Warna Latar Belakang](./background-color)
+- [Balik Warna](./invert-colors)
+- [Sesuaikan Warna](./adjust-colors)
diff --git a/docs/id/tools/tiff-to-pdf.md b/docs/id/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..33c2fe2a
--- /dev/null
+++ b/docs/id/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF ke PDF
+description: Konversi gambar TIFF satu halaman dan multi-halaman ke format PDF di browser Anda dengan dukungan halaman penuh.
+---
+
+# TIFF ke PDF
+
+Konversi file TIFF ke PDF, termasuk TIFF multi-halaman. Setiap halaman (atau "IFD") dalam file TIFF menjadi halaman terpisah di PDF hasil. Ini sangat berguna untuk dokumen pindaian, fax, dan gambar medis yang umumnya disimpan sebagai TIFF multi-halaman.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file TIFF Anda.
+2. Periksa daftar file dan kelola sesuai kebutuhan.
+3. Klik **Konversi ke PDF**. Hasilnya diunduh sebagai `from_tiff.pdf`.
+
+Alat ini mendekode setiap file TIFF menggunakan dekoder TIFF JavaScript, mengekstrak data piksel RGBA mentah setiap halaman. Setiap halaman dirender ke kanvas, diekspor sebagai PNG, dan disematkan ke PDF. Dimensi halaman sesuai dengan halaman TIFF asli.
+
+## Opsi
+
+Alat ini tidak menyediakan pengaturan kualitas tambahan. Gambar disematkan pada resolusi aslinya.
+
+## Kasus Penggunaan
+
+- Mengonversi dokumen fax multi-halaman (TIFF-F) ke format PDF yang lebih portabel
+- Mengubah arsip dokumen pindaian yang tersimpan sebagai TIFF menjadi PDF yang dapat dicari (gabungkan dengan alat OCR setelahnya)
+- Memproses file pencitraan medis (slide patologi, ekspor radiologi) yang menggunakan TIFF
+- Mengonversi file TIFF GIS atau citra satelit menjadi dokumen yang dapat dibagikan
+
+## Tips
+
+- TIFF multi-halaman didukung sepenuhnya. TIFF 10 halaman akan menghasilkan PDF 10 halaman. Anda tidak perlu memisahkan TIFF terlebih dahulu.
+- File TIFF yang sangat besar (ratusan megabyte) mungkin memerlukan waktu lebih lama karena seluruh file harus didekode di memori browser.
+- Jika Anda memerlukan OCR pada PDF hasil, jalankan melalui alat [OCR PDF](./ocr-pdf) setelah konversi.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [BMP ke PDF](./bmp-to-pdf)
+- [JPG ke PDF](./jpg-to-pdf)
diff --git a/docs/id/tools/txt-to-pdf.md b/docs/id/tools/txt-to-pdf.md
new file mode 100644
index 00000000..ffe1738a
--- /dev/null
+++ b/docs/id/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Teks ke PDF
+description: Konversi file teks biasa atau teks ketikan ke PDF dengan font, warna, dan ukuran halaman kustom.
+---
+
+# Teks ke PDF
+
+Konversi teks biasa menjadi PDF terformat. Anda dapat mengunggah file `.txt` atau mengetik langsung di editor teks bawaan. Alat ini mendukung beberapa font, warna teks kustom, dan beragam ukuran halaman, dari A0 hingga A10, ditambah US Letter, Legal, dan Tabloid.
+
+## Format yang Didukung
+
+| Input | Ekstensi |
+| :------------------ | :-------------------------- |
+| File teks biasa | `.txt` |
+| Input teks langsung | Ketik atau tempel ke editor |
+
+## Cara Kerja
+
+1. Pilih mode input menggunakan sakelar di bagian atas: **Unggah File** atau **Ketik Teks**.
+2. Jika mengunggah, seret dan lepas atau klik untuk memilih satu atau beberapa file `.txt`. Jika mengetik, masukkan teks Anda langsung di textarea.
+3. Atur opsi format: jenis font, ukuran font, warna teks, dan ukuran halaman.
+4. Klik **Buat PDF**. Hasilnya diunduh sebagai `text_to_pdf.pdf`.
+
+Saat mengunggah beberapa file, isinya digabungkan dengan baris kosong di antaranya.
+
+## Opsi
+
+| Opsi | Nilai | Default |
+| :----------------- | :----------------------------------------------------------------------- | :-------------- |
+| **Jenis Font** | Helvetica (sans-serif), Tiro (serif), Courier (monospace), Times (serif) | Helvetica |
+| **Ukuran Font** | 6 -- 72 pt | 12 |
+| **Warna Teks** | Warna apa pun melalui pemilih warna | Hitam (#000000) |
+| **Ukuran Halaman** | ISO A0--A10, B0--B10, C0--C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Bahasa RTL (Arab, Ibrani, Persia, Urdu) terdeteksi secara otomatis. Saat teks RTL ditemukan, arah teks dan perataan beralih sesuai.
+
+## Kasus Penggunaan
+
+- Mengonversi cuplikan kode atau file log menjadi PDF yang dapat dicetak dengan font Courier
+- Membuat PDF cepat dari catatan rapat yang diketik langsung
+- Memformat naskah teks biasa dengan font dan ukuran halaman tertentu untuk pengajuan
+- Membuat versi PDF dari README atau changelog untuk distribusi offline
+
+## Tips
+
+- Gunakan mode **Ketik Teks** saat Anda ingin mengonversi isi clipboard dengan cepat tanpa menyimpannya sebagai file terlebih dahulu.
+- Courier (monospace) adalah pilihan font terbaik untuk kode, log, atau konten apa pun yang memerlukan perataan kolom.
+- Margin halaman ditetapkan 72 poin (1 inci) di semua sisi.
+
+## Alat Terkait
+
+- [Markdown ke PDF](./markdown-to-pdf)
+- [CSV ke PDF](./csv-to-pdf)
+- [Word ke PDF](./word-to-pdf)
diff --git a/docs/id/tools/unlock-pdf.md b/docs/id/tools/unlock-pdf.md
new file mode 100644
index 00000000..a214d1cb
--- /dev/null
+++ b/docs/id/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Buka Kunci PDF
+description: Hapus perlindungan kata sandi dari PDF terenkripsi. Mendukung dekripsi massal dengan satu kata sandi untuk banyak file.
+---
+
+# Buka Kunci PDF
+
+Jika Anda memiliki kata sandi PDF terenkripsi, alat ini menghapus enkripsinya sepenuhnya dan menghasilkan salinan tanpa kunci yang bisa dibuka siapa saja tanpa kredensial. Alat ini mendukung dekripsi massal ketika beberapa PDF memakai kata sandi yang sama.
+
+## Cara Kerja
+
+1. Unggah satu atau beberapa file PDF terenkripsi.
+2. Masukkan **kata sandi** yang digunakan untuk melindungi file.
+3. Klik **Dekripsi PDF**.
+4. Satu file akan langsung diunduh. Beberapa file menghasilkan arsip ZIP berisi semua PDF yang sudah dibuka kuncinya.
+
+## Fitur
+
+- Dekripsi satu file dan massal
+- Mendukung kata sandi pengguna maupun kata sandi pemilik
+- Menghasilkan keluaran tanpa enkripsi sama sekali dan tanpa sisa pembatasan
+- Pelaporan error yang jelas untuk kata sandi salah atau file rusak
+- Pelacakan berhasil/gagal per file dalam mode massal
+
+## Perbedaan dengan Hapus Pembatasan
+
+**Dekripsi PDF** memerlukan kata sandi dan menghapus seluruh enkripsi. **Hapus Pembatasan** menargetkan pembatasan penggunaan (cetak, salin, edit) dan mungkin tidak memerlukan kata sandi jika hanya kata sandi pemilik yang diatur. Gunakan Dekripsi jika PDF sama sekali tidak bisa dibuka tanpa kata sandi.
+
+## Kasus Penggunaan
+
+- Membuka kunci PDF yang dulu Anda enkripsi secara permanen ketika kata sandinya tidak lagi diperlukan
+- Menghapus enkripsi dari sekumpulan dokumen arsip agar lebih mudah diakses dalam jangka panjang
+- Menyiapkan PDF berkata sandi untuk sistem manajemen dokumen yang tidak mendukung file terenkripsi
+- Membuka kunci PDF sebelum menggabungkannya dengan dokumen lain (banyak alat penggabung tidak bisa memproses masukan terenkripsi)
+
+## Tips
+
+- Kolom kata sandi berlaku untuk semua file yang diunggah. Jika PDF Anda memiliki kata sandi berbeda, proses dalam batch terpisah.
+- Jika muncul error "Kata Sandi Salah", periksa kembali spasi di akhir atau caps lock.
+- Setelah didekripsi, keluaran sama sekali tidak memiliki pengamanan. Enkripsi ulang dengan Enkripsi PDF jika Anda perlu menerapkan kata sandi baru.
+
+## Alat Terkait
+
+- [Lindungi PDF](./protect-pdf): terapkan kembali enkripsi dengan kata sandi baru
+- [Hapus Pembatasan](./remove-restrictions): hapus pembatasan penggunaan tanpa dekripsi penuh
+- [Ubah Izin](./change-permissions): ubah izin tertentu pada PDF terenkripsi
diff --git a/docs/id/tools/validate-signature-pdf.md b/docs/id/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..82835a4d
--- /dev/null
+++ b/docs/id/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Validasi Tanda Tangan
+description: Verifikasi tanda tangan digital pada file PDF. Periksa validitas sertifikat, identitas penanda tangan, integritas dokumen, dan status rantai kepercayaan.
+---
+
+# Validasi Tanda Tangan
+
+Unggah PDF yang sudah ditandatangani dan alat ini akan mengekstrak setiap tanda tangan digital, mengidentifikasi penanda tangan, memeriksa validitas sertifikat, dan melaporkan apakah dokumen diubah sejak ditandatangani. Anda juga dapat menyertakan sertifikat tepercaya untuk memverifikasi rantai tanda tangan.
+
+## Cara Kerja
+
+1. Unggah file PDF yang sudah ditandatangani. Validasi dimulai secara otomatis.
+2. Alat menampilkan ringkasan: jumlah tanda tangan yang ditemukan dan berapa yang valid.
+3. Setiap tanda tangan mendapat kartu rinci yang menampilkan nama penanda tangan, penerbit, tanggal, dan status.
+4. Opsional, unggah **sertifikat tepercaya** (.pem, .crt, .cer, .der) untuk memverifikasi tanda tangan terhadap jangkar kepercayaan tertentu. Validasi ulang berjalan otomatis.
+
+## Yang Diperiksa
+
+### Penguraian Tanda Tangan
+
+Alat mengekstrak objek tanda tangan PKCS#7 dari PDF, mendekode struktur ASN.1, dan mengambil sertifikat X.509 penanda tangan beserta rantai sertifikat yang tertanam di dalam tanda tangan.
+
+### Validitas Sertifikat
+
+- **Kedaluwarsa**: Apakah sertifikat saat ini masih berada dalam rentang tanggal berlakunya?
+- **Deteksi tanda tangan sendiri**: Apakah sertifikat adalah penerbitnya sendiri?
+- **Rantai kepercayaan**: Jika sertifikat tepercaya diberikan, apakah sertifikat penanda tangan tersambung ke sertifikat tersebut?
+
+### Verifikasi Kriptografis
+
+- Alat merekonstruksi byte yang dicakup oleh `/ByteRange` tanda tangan, melakukan hash dengan algoritma yang dinyatakan penanda tangan, lalu membandingkan hasilnya dengan atribut `messageDigest` di dalam tanda tangan.
+- Kemudian alat menserialisasi ulang atribut yang ditandatangani sebagai DER SET dan memverifikasi tanda tangan terhadap kunci publik sertifikat penanda tangan.
+- **Tanda tangan dilaporkan valid hanya jika semua pemeriksaan ini lolos.** Jika byte PDF diubah setelah penandatanganan, atau tanda tangan yang tertanam tidak cocok dengan kunci penanda tangan, status menampilkan "Tidak valid: Verifikasi Kriptografi Gagal" beserta alasan spesifiknya.
+
+#### Algoritma Tanda Tangan yang Didukung
+
+| Algoritma | Jalur verifikasi |
+| ----------------------- | ----------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, dengan cadangan Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` setelah konversi tanda tangan DER → IEEE P1363 |
+
+Jika tanda tangan memakai algoritma di luar daftar ini (misalnya Ed25519, SM2, atau RSA dengan OID digest yang tidak lazim), kartu menampilkan **"Tidak Terverifikasi: Algoritma Tanda Tangan Tidak Didukung"** dengan warna kuning, beserta OID atau alasan spesifiknya. Ini adalah pembedaan tiga status yang disengaja:
+
+- **Valid**: tanda tangan terverifikasi secara kriptografis terhadap kunci publik penanda tangan.
+- **Tidak valid**: verifikasi berjalan dan menghasilkan hasil negatif (byte berubah, kunci tidak cocok).
+- **Tidak terverifikasi**: alat tidak dapat menjalankan verifikasi untuk algoritma ini. Metadata sertifikat tetap ditampilkan, tetapi anggap tanda tangan sebagai "tidak diketahui" dan verifikasi dengan Adobe Acrobat atau `openssl cms -verify`.
+
+### Algoritma Digest yang Tidak Aman
+
+- Tanda tangan yang memakai **MD5 atau SHA-1** ditolak sebagai tidak valid dan ditandai dengan status "Digest Tidak Aman". Kedua algoritma ini memiliki serangan tabrakan yang sudah dipublikasikan, sehingga tanda tangan atas hash SHA-1 atau MD5 tidak memberikan jaminan integritas.
+- SHA-224, SHA-256, SHA-384, dan SHA-512 semuanya diterima.
+
+### Cakupan Dokumen
+
+- **Cakupan penuh**: Tanda tangan mencakup seluruh file PDF, artinya tidak ada byte yang ditambahkan atau diubah setelah penandatanganan.
+- **Cakupan sebagian**: Tanda tangan hanya mencakup sebagian file. Ini bisa menandakan adanya perubahan setelah penandatanganan (belum tentu berbahaya, karena penyimpanan inkremental menghasilkan cakupan sebagian).
+
+## Detail Tanda Tangan
+
+Setiap kartu tanda tangan menampilkan:
+
+- **Ditandatangani Oleh**: Nama umum, organisasi, dan email dari sertifikat penanda tangan
+- **Penerbit**: Otoritas Sertifikat yang menerbitkan sertifikat penanda tangan
+- **Ditandatangani Pada**: Cap waktu yang tertanam dalam tanda tangan
+- **Berlaku Dari / Berlaku Hingga**: Masa berlaku sertifikat
+- **Alasan**: Mengapa dokumen ditandatangani (jika diberikan)
+- **Lokasi**: Di mana dokumen ditandatangani (jika diberikan)
+- **Status Cakupan**: Penuh atau Sebagian
+- **Lencana Kepercayaan**: Tepercaya atau Tidak dalam rantai kepercayaan (hanya jika sertifikat kustom diberikan)
+
+### Detail Teknis
+
+Perluas bagian detail teknis untuk melihat:
+
+- Nomor seri sertifikat penanda tangan
+- Algoritma digest (SHA-256, SHA-512, dll.)
+- Algoritma tanda tangan (RSA dengan SHA-256, ECDSA dengan SHA-256, dll.)
+- Pesan error untuk tanda tangan yang tidak valid
+
+## Kasus Penggunaan
+
+- Memverifikasi kontrak bertanda tangan digital sebelum ikut menandatangani
+- Mengaudit dokumen bertanda tangan untuk memastikan tidak dimanipulasi
+- Memeriksa apakah sertifikat sudah kedaluwarsa sejak dokumen ditandatangani
+- Memvalidasi tanda tangan terhadap sertifikat root organisasi Anda
+- Memeriksa detail penandatanganan dokumen pemerintah atau hukum
+
+## Tips
+
+- Sertifikat yang ditandatangani sendiri tidak berarti tanda tangannya tidak valid, melainkan identitas penanda tangan tidak dapat diverifikasi lewat pihak ketiga tepercaya. Ini umum pada dokumen internal.
+- Cakupan sebagian tidak selalu menandakan manipulasi. Banyak alur kerja PDF menambahkan pembaruan inkremental (seperti tanda tangan kedua) yang menghasilkan cakupan sebagian.
+- Unggah sertifikat root atau intermediate organisasi Anda sebagai sertifikat tepercaya untuk mendapatkan verifikasi rantai kepercayaan.
+
+## Alat Terkait
+
+- [Tanda Tangan Digital PDF](./digital-sign-pdf): tandatangani PDF dengan sertifikat Anda sendiri
+- [Ratakan PDF](./flatten-pdf): ratakan PDF sebelum ditandatangani untuk mencegah perubahan setelah penandatanganan
+- [Hapus Metadata](./remove-metadata): bersihkan PDF sebelum menerapkan tanda tangan
diff --git a/docs/id/tools/view-metadata.md b/docs/id/tools/view-metadata.md
new file mode 100644
index 00000000..c436934a
--- /dev/null
+++ b/docs/id/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Lihat Metadata
+description: Periksa semua properti metadata PDF termasuk info dokumen, data XMP, dan detail struktural.
+---
+
+# Lihat Metadata
+
+Periksa properti tersembunyi yang tertanam dalam file PDF. Alat ini menampilkan informasi dokumen (judul, penulis, tanggal), metadata XMP, dimensi halaman, dan data struktural lainnya dalam format yang mudah dibaca.
+
+## Cara Kerja
+
+1. Unggah file PDF.
+2. Alat langsung mengurai file dan menampilkan semua metadata yang tersedia dalam bagian-bagian terorganisasi.
+3. Tinjau kamus info dokumen, pohon metadata XMP, dan properti struktural.
+4. Tidak perlu langkah pemrosesan: metadata ditampilkan segera setelah file dimuat.
+
+## Fitur
+
+- Menampilkan kolom info dokumen standar: Judul, Penulis, Subjek, Kata Kunci, Pembuat, Produsen
+- Menampilkan tanggal pembuatan dan modifikasi dalam format yang mudah dibaca
+- Mengurai dan merender seluruh pohon metadata XMP dengan namespace bersarang
+- Mengonversi format tanggal PDF (`D:20240101120000Z`) menjadi tanggal yang mudah dibaca
+- Disusun dalam bagian yang bisa dilipat agar mudah dinavigasi
+
+## Bagian Metadata
+
+| Bagian | Isi |
+| -------------------- | -------------------------------------------------------------------------------------------- |
+| **Info Dokumen** | Judul, Penulis, Subjek, Kata Kunci, Pembuat, Produsen, Tanggal Pembuatan, Tanggal Modifikasi |
+| **Metadata XMP** | Pohon metadata berbasis XML lengkap dengan namespace Dublin Core, XAP, PDF, dan kustom |
+| **Properti Dokumen** | Jumlah halaman, versi PDF, ukuran file, status enkripsi |
+
+## Kasus Penggunaan
+
+- Memeriksa siapa yang menulis PDF dan kapan terakhir diubah
+- Memastikan metadata sudah diatur dengan benar sebelum menerbitkan dokumen
+- Mengaudit PDF untuk privasi dengan memeriksa informasi pribadi apa yang tertanam
+- Menyelidiki perangkat lunak yang dipakai untuk membuat atau mengubah PDF (lewat kolom Produsen)
+- Meninjau metadata XMP untuk kepatuhan manajemen aset digital
+
+## Tips
+
+- String tanggal PDF yang diawali `D:` otomatis dikonversi ke format zona waktu lokal Anda.
+- Jika kolom metadata tampak kosong, berarti pembuat PDF memang tidak mengisinya. Tidak semua PDF memiliki metadata yang kaya.
+- Untuk mengubah metadata setelah memeriksanya, gunakan [Edit Metadata](./edit-metadata). Untuk menghapusnya sepenuhnya, gunakan Hapus Metadata.
+
+## Alat Terkait
+
+- [Edit Metadata](./edit-metadata)
+- [Lapisan OCG PDF](./pdf-layers)
+- [Bandingkan PDF](./compare-pdfs)
diff --git a/docs/id/tools/vsd-to-pdf.md b/docs/id/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..5b3cd615
--- /dev/null
+++ b/docs/id/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD ke PDF
+description: Konversi diagram Microsoft Visio (VSD/VSDX) ke PDF di browser Anda. Gratis, privat, tanpa perlu Visio.
+---
+
+# VSD ke PDF
+
+Konversi diagram Microsoft Visio menjadi PDF tanpa menginstal Visio. File VSD dan VSDX berisi diagram alur, bagan organisasi, diagram jaringan, dan denah yang tidak bisa dibuka kebanyakan orang. Alat ini merendernya menjadi PDF bersih yang bisa dilihat di perangkat apa pun.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----------- | :------- | :-------------------------------------------- |
+| Visio Binary | `.vsd` | Format Visio lama (Visio 2003 dan sebelumnya) |
+| Visio XML | `.vsdx` | Format Visio modern (Visio 2013+) |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file VSD atau VSDX Anda. Kedua format bisa dicampur dalam satu batch.
+2. Tinjau daftar file. Hapus entri yang tidak diinginkan dengan ikon tempat sampah, atau gunakan **Tambah Lebih Banyak File** untuk menambah diagram.
+3. Klik **Konversi ke PDF**. Mesin berbasis LibreOffice dimuat di browser dan merender setiap diagram menjadi PDF, dengan mempertahankan bentuk, konektor, label, dan tata letak halaman.
+4. Satu diagram langsung diunduh sebagai PDF. Beberapa file menghasilkan arsip ZIP bernama `vsd-to-pdf.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi. Konverter mengikuti ukuran dan orientasi halaman asli dari dokumen Visio.
+
+## Kasus Penggunaan
+
+- Meninjau diagram Visio dari rekan kerja saat Anda tidak punya lisensi Visio
+- Menyertakan diagram jaringan atau arsitektur dalam dokumentasi proyek sebagai PDF
+- Mencetak bagan organisasi atau alur proses sebagai handout rapat
+- Mengarsipkan file VSD lama dari Visio versi lama dalam format yang tahan masa depan
+
+## Tips
+
+- Dokumen Visio multi-halaman menghasilkan PDF multi-halaman, dengan setiap halaman Visio menjadi satu halaman PDF.
+- File VSDX (format modern berbasis XML) umumnya dikonversi dengan fidelitas lebih tinggi daripada file biner VSD yang lebih lama.
+- Mesin LibreOffice dimuat sekali per sesi. Harap tunggu sebentar pada konversi pertama, dan file berikutnya akan lebih cepat.
+
+## Alat Terkait
+
+- [ODG ke PDF](./odg-to-pdf)
+- [PUB ke PDF](./pub-to-pdf)
+- [PSD ke PDF](./psd-to-pdf)
diff --git a/docs/id/tools/webp-to-pdf.md b/docs/id/tools/webp-to-pdf.md
new file mode 100644
index 00000000..e983bc90
--- /dev/null
+++ b/docs/id/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP ke PDF
+description: Konversi gambar WebP ke format PDF langsung di browser Anda dengan kualitas kompresi yang bisa diatur.
+---
+
+# WebP ke PDF
+
+Konversi format gambar WebP milik Google ke PDF. Ini sangat berguna ketika Anda mengunduh gambar dari web dalam format WebP dan memerlukannya dalam format yang lebih umum diterima untuk dicetak atau dibagikan.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :----- | :------- |
+| WebP | `.webp` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file WebP Anda.
+2. Tinjau daftar file dan hapus file yang tidak diperlukan.
+3. Pilih tingkat **Kualitas PDF**.
+4. Klik **Konversi ke PDF**. Hasilnya diunduh sebagai `from_webps.pdf`.
+
+Secara internal, setiap gambar WebP didekode melalui API canvas browser, lalu disematkan ke PDF menggunakan pdf-lib. Artinya konversi berfungsi di browser mana pun yang mendukung dekode WebP (semua browser modern mendukungnya).
+
+## Opsi
+
+**Kualitas PDF** mengatur kompresi saat menyematkan gambar:
+
+- **Kualitas Tinggi**: mempertahankan detail terbanyak.
+- **Kualitas Sedang** (default): hasil yang seimbang.
+- **Kualitas Rendah**: ukuran file terkecil.
+
+## Kasus Penggunaan
+
+- Mengonversi gambar unduhan web yang tersimpan sebagai WebP menjadi PDF yang bisa dicetak
+- Mengemas tangkapan layar WebP dari Chrome atau Edge ke dalam dokumentasi
+- Membuat portofolio PDF dari gambar yang diekspor alat desain yang memakai WebP secara default
+- Mengarsipkan gambar WebP dalam format yang lebih umum dibaca
+
+## Tips
+
+- WebP didekode ke PNG secara internal sebelum disematkan ke PDF, sehingga gambar WebP lossless mempertahankan kualitasnya pada pengaturan Tinggi.
+- Jika Anda punya campuran WebP dan format gambar lain, gunakan alat [Gambar ke PDF](./image-to-pdf), yang menerima semuanya sekaligus.
+
+## Alat Terkait
+
+- [Gambar ke PDF](./image-to-pdf)
+- [PNG ke PDF](./png-to-pdf)
+- [JPG ke PDF](./jpg-to-pdf)
diff --git a/docs/id/tools/word-to-pdf.md b/docs/id/tools/word-to-pdf.md
new file mode 100644
index 00000000..b29123a3
--- /dev/null
+++ b/docs/id/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word ke PDF
+description: Konversi dokumen Word (DOC, DOCX), ODT, dan RTF ke PDF di browser Anda dengan format yang terjaga sepenuhnya.
+---
+
+# Word ke PDF
+
+Konversi dokumen Microsoft Word dan format yang kompatibel ke PDF. Alat ini memakai mesin LibreOffice berbasis browser yang menangani file DOC, DOCX, ODT, dan RTF, dengan mempertahankan format, tabel, gambar, header, footer, dan gaya pada hasil.
+
+## Format yang Didukung
+
+| Format | Ekstensi |
+| :---------------- | :------- |
+| Word (modern) | `.docx` |
+| Word (lama) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas dokumen Word Anda. Beberapa file bisa dipilih sekaligus.
+2. Tinjau dan kelola daftar file.
+3. Klik **Konversi ke PDF**. Mesin LibreOffice dimuat saat pertama digunakan (indikator progres menampilkan status inisialisasi), lalu setiap file dikonversi.
+4. Satu file langsung diunduh sebagai PDF. Beberapa file dikemas dalam `word-converted.zip`.
+
+## Opsi
+
+Alat ini tidak memiliki pengaturan tambahan. Mesin LibreOffice menghasilkan keluaran dengan profil ekspor PDF default-nya.
+
+## Keluaran
+
+| Jumlah Masukan | Keluaran |
+| :------------- | :----------------------------------------------------------------- |
+| 1 file | Satu PDF diunduh (nama file asli dengan ekstensi `.pdf`) |
+| 2+ file | Arsip ZIP (`word-converted.zip`) berisi satu PDF untuk setiap file |
+
+## Kasus Penggunaan
+
+- Mengonversi resume atau surat lamaran dari DOCX ke PDF sebelum melamar kerja
+- Mengonversi sekumpulan kontrak atau proposal ke PDF secara massal untuk dikirim ke klien
+- Mengubah file `.doc` lama menjadi PDF modern untuk pengarsipan jangka panjang
+- Mengonversi dokumen kolaboratif dari Google Docs (diekspor sebagai DOCX) ke PDF
+- Membuat PDF siap cetak dari templat Word yang dipakai untuk pembuatan dokumen otomatis
+
+## Tips
+
+- Mesin LibreOffice diunduh sekali per sesi dan di-cache. Harap tunggu beberapa detik saat konversi pertama, dan konversi berikutnya jauh lebih cepat.
+- Format yang kompleks (makro, kontrol ActiveX, SmartArt tingkat lanjut) mungkin tidak terkonversi dengan sempurna. Elemen dokumen standar (teks, tabel, gambar, header, catatan kaki) terkonversi dengan andal.
+- Karena alat ini juga menerima ODT dan RTF, Anda bisa memakainya sebagai konverter serbaguna untuk semua format pengolah kata.
+
+## Alat Terkait
+
+- [ODT ke PDF](./odt-to-pdf)
+- [RTF ke PDF](./rtf-to-pdf)
+- [Excel ke PDF](./excel-to-pdf)
+- [PowerPoint ke PDF](./powerpoint-to-pdf)
diff --git a/docs/id/tools/wpd-to-pdf.md b/docs/id/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..42065ad2
--- /dev/null
+++ b/docs/id/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD ke PDF
+description: Konversi dokumen WordPerfect (WPD) ke PDF di browser Anda memakai LibreOffice. Gratis dan privat.
+---
+
+# WPD ke PDF
+
+Konversi dokumen Corel WordPerfect menjadi file PDF. WPD dulu adalah format pengolah kata dominan di kantor hukum dan instansi pemerintah. Jika Anda punya file WordPerfect lama yang tidak mau dibuka perangkat lunak modern, alat ini menghidupkannya kembali sebagai PDF standar.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :---------- | :------- | :---------------------------- |
+| WordPerfect | `.wpd` | Semua versi WordPerfect utama |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file WPD Anda. Beberapa file bisa dipilih sekaligus.
+2. Tinjau daftar file. Hapus file yang tidak diinginkan dengan ikon tempat sampah, atau gunakan **Tambah Lebih Banyak File** untuk menambah dokumen.
+3. Klik **Konversi ke PDF**. Alat memuat mesin konversi berbasis LibreOffice di browser Anda, yang mengurai format WPD dan menghasilkan PDF.
+4. Satu file langsung diunduh sebagai PDF. Konversi massal menghasilkan arsip ZIP bernama `wpd-to-pdf.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi. Mesin LibreOffice menangani format, font, dan tata letak WPD secara otomatis.
+
+## Kasus Penggunaan
+
+- Membuka dokumen hukum berusia puluhan tahun yang ditulis di WordPerfect
+- Mengonversi arsip berkas pemerintah dari WPD ke format modern
+- Memigrasikan pustaka dokumen WordPerfect lama ke PDF untuk penyimpanan jangka panjang
+- Membagikan file WPD kepada penerima yang tidak memasang Corel WordPerfect
+
+## Tips
+
+- Mesin LibreOffice dimuat saat pertama digunakan, yang membutuhkan waktu sebentar. Konversi berikutnya dalam sesi yang sama lebih cepat.
+- Makro WPD yang kompleks dan reveal codes tidak dipertahankan, tetapi tata letak visual, isi teks, dan format dasar terbawa ke PDF.
+
+## Alat Terkait
+
+- [WPS ke PDF](./wps-to-pdf)
+- [ODG ke PDF](./odg-to-pdf)
diff --git a/docs/id/tools/wps-to-pdf.md b/docs/id/tools/wps-to-pdf.md
new file mode 100644
index 00000000..3b0f1cb3
--- /dev/null
+++ b/docs/id/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS ke PDF
+description: Konversi dokumen Microsoft Works (WPS) ke PDF di browser Anda. Gratis, tanpa daftar, sepenuhnya privat.
+---
+
+# WPS ke PDF
+
+Konversi file pengolah kata Microsoft Works menjadi PDF. Microsoft Works dulu disertakan pada PC konsumen sepanjang akhir 1990-an dan 2000-an, dan banyak file WPS masih tersimpan di hard drive dan arsip email lama. Alat ini membukanya di browser dan menghasilkan PDF yang bersih.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :-------------- | :------- | :-------------------------------------- |
+| Microsoft Works | `.wps` | File pengolah kata dari Microsoft Works |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file WPS Anda. Beberapa file diterima.
+2. Tinjau daftar file. Gunakan ikon tempat sampah untuk menghapus file tertentu, atau klik **Tambah Lebih Banyak File** untuk memperbesar batch.
+3. Klik **Konversi ke PDF**. Mesin berbasis LibreOffice dimuat di browser dan mengonversi setiap dokumen WPS ke PDF.
+4. Satu file langsung diunduh sebagai PDF. Beberapa file dikemas dalam arsip ZIP bernama `wps-to-pdf.zip`.
+
+## Opsi
+
+Tidak ada pengaturan tambahan. Konverter menangani teks, format dasar, dan gambar tertanam dari file WPS.
+
+## Kasus Penggunaan
+
+- Memulihkan dokumen sekolah atau kerja lama yang tersimpan dalam format Microsoft Works
+- Membuka lampiran email WPS ketika Microsoft Works tidak terpasang
+- Mengonversi arsip file WPS untuk migrasi ke sistem dokumen modern
+- Mencetak dokumen lama yang tidak bisa dibuka pengolah kata saat ini
+
+## Tips
+
+- Jangan campuradukkan file `.wps` Microsoft Works dengan file WPS Office. Alat ini khusus untuk format Microsoft Works yang lebih lama.
+- Mesin LibreOffice membutuhkan waktu sebentar untuk dimuat saat pertama digunakan. Setelah dimuat, konversi berikutnya dalam sesi yang sama berjalan lebih cepat.
+
+## Alat Terkait
+
+- [WPD ke PDF](./wpd-to-pdf)
+- [PUB ke PDF](./pub-to-pdf)
diff --git a/docs/id/tools/xml-to-pdf.md b/docs/id/tools/xml-to-pdf.md
new file mode 100644
index 00000000..67b4b08e
--- /dev/null
+++ b/docs/id/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML ke PDF
+description: Konversi file XML menjadi dokumen PDF terstruktur di browser Anda. Gratis, privat, tanpa pemrosesan di server.
+---
+
+# XML ke PDF
+
+Konversi file data XML menjadi dokumen PDF terstruktur yang mudah dibaca. XML mentah itu andal tetapi sulit dibaca manusia. Alat ini mengurai pohon XML, mengenali struktur data berulang, dan merendernya sebagai tabel dan bagian terformat dalam PDF A4 lanskap.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----- | :------- | :----------------------------------- |
+| XML | `.xml` | Dokumen XML apa pun yang well-formed |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file XML Anda. Beberapa file bisa diproses dalam satu batch.
+2. Tinjau daftar file. Hapus file yang tidak diinginkan dengan ikon tempat sampah, atau klik **Tambah Lebih Banyak File** untuk menambah file.
+3. Klik **Konversi ke PDF**. Alat mengurai struktur XML memakai DOMParser bawaan browser, menganalisis hierarki data, dan merendernya ke PDF memakai jsPDF dengan pemformatan auto-table.
+4. Satu file diunduh sebagai PDF. Beberapa hasil konversi dikemas dalam `xml-to-pdf.zip`.
+
+## Opsi
+
+Tidak diperlukan konfigurasi manual. Konverter mendeteksi struktur XML secara otomatis dan memilih tata letak tabel yang sesuai. Keluaran memakai orientasi A4 lanskap untuk menampung kumpulan data yang lebar.
+
+## Kasus Penggunaan
+
+- Mengubah ekspor data XML dari basis data atau API menjadi laporan yang bisa dicetak
+- Membuat ringkasan yang mudah dibaca dari file konfigurasi XML
+- Mengonversi faktur atau log transaksi berbasis XML menjadi PDF untuk pencatatan
+- Membuat peta situs XML atau feed RSS mudah dibaca dalam bentuk dokumen
+
+## Tips
+
+- XML harus well-formed. Jika parser menemukan kesalahan sintaks, konversi akan gagal dengan pesan error deskriptif yang menunjuk masalahnya.
+- Struktur XML yang bersarang dalam diratakan menjadi tabel. Untuk hasil terbaik, data sebaiknya memiliki elemen saudara berulang dengan elemen anak yang konsisten.
+- Pembaruan progres muncul selama konversi, menampilkan setiap fase: membaca, mengurai, menganalisis, dan merender.
+
+## Alat Terkait
+
+- [FB2 ke PDF](./fb2-to-pdf)
+- [XPS ke PDF](./xps-to-pdf)
+- [Email ke PDF](./email-to-pdf)
diff --git a/docs/id/tools/xps-to-pdf.md b/docs/id/tools/xps-to-pdf.md
new file mode 100644
index 00000000..9d30ea32
--- /dev/null
+++ b/docs/id/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS ke PDF
+description: Konversi dokumen XPS dan OXPS ke format PDF di browser Anda. Tanpa unggah, tanpa daftar, sepenuhnya privat.
+---
+
+# XPS ke PDF
+
+Konversi dokumen Microsoft XPS dan OXPS menjadi file PDF standar. XPS (XML Paper Specification) adalah jawaban Microsoft atas PDF, tetapi dukungannya makin menyusut di berbagai platform. Alat ini membuat dokumen tersebut dapat dibaca secara universal lagi.
+
+## Format yang Didukung
+
+| Format | Ekstensi | Catatan |
+| :----- | :------- | :-------------------------------- |
+| XPS | `.xps` | Format XPS asli Microsoft |
+| OXPS | `.oxps` | Open XPS, varian standar ECMA-388 |
+
+## Cara Kerja
+
+1. Klik area unggah atau seret dan lepas file XPS/OXPS Anda. Anda bisa memilih beberapa file sekaligus.
+2. Tinjau daftar file. Hapus file tertentu dengan ikon tempat sampah, atau klik **Tambah Lebih Banyak File** untuk menambah dokumen.
+3. Klik **Konversi ke PDF**. Mesin PyMuPDF memproses setiap dokumen secara lokal di browser Anda.
+4. Satu file langsung diunduh sebagai PDF. Beberapa file dikemas dalam arsip ZIP bernama `xps-converted.zip`.
+
+## Opsi
+
+Alat ini melakukan konversi format langsung tanpa konfigurasi tambahan. Keluaran mempertahankan dimensi halaman, grafik vektor, font, dan gambar asli dari sumber XPS.
+
+## Kasus Penggunaan
+
+- Membuka file XPS dari sistem Windows lama yang memakai driver cetak XPS secara default
+- Mengonversi dokumen OXPS dari Windows 10/11 untuk dibagikan ke pengguna macOS atau Linux
+- Mengarsipkan file XPS lama ke format yang lebih luas didukung
+- Membuat dokumen pemerintah atau perusahaan berbasis XPS dapat diakses oleh penerima eksternal
+
+## Tips
+
+- Ekstensi `.xps` dan `.oxps` ditangani otomatis, jadi Anda bisa mencampurnya dalam batch yang sama.
+- Jika file XPS asli dibuat dari driver cetak beresolusi tinggi, PDF hasilnya mempertahankan kualitas itu. Tidak ada resampling.
+
+## Alat Terkait
+
+- [Word ke PDF](./word-to-pdf)
+- [XML ke PDF](./xml-to-pdf)
diff --git a/docs/it/contributing.md b/docs/it/contributing.md
new file mode 100644
index 00000000..5672f4d2
--- /dev/null
+++ b/docs/it/contributing.md
@@ -0,0 +1,136 @@
+# Contribuire
+
+Grazie per l'interesse a contribuire a BentoPDF! Questa guida ti aiuterà a iniziare.
+
+## Per iniziare
+
+### Prerequisiti
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Configurazione
+
+```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
+```
+
+## Struttura del progetto
+
+```
+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
+```
+
+## Aggiungere un nuovo strumento
+
+### Passaggio 1: crea il file della logica
+
+Crea `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
+});
+```
+
+### Passaggio 2: crea la pagina HTML
+
+Crea `src/pages/your-tool.html` seguendo i modelli degli strumenti esistenti.
+
+### Passaggio 3: registra lo strumento
+
+Aggiungi a `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.',
+}
+```
+
+### Passaggio 4: aggiungi alla configurazione di build
+
+Aggiungi la pagina a `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Passaggio 5: aggiungi le traduzioni
+
+Aggiungi le voci a tutti i file delle lingue in `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Stile del codice
+
+- Usa TypeScript per tutto il nuovo codice
+- Segui i pattern esistenti per coerenza
+- Esegui `npm run format` prima del commit
+- Nessun commento nel codice di produzione (i commenti vengono rimossi durante la build)
+
+## Processo delle pull request
+
+1. Crea un branch per la funzionalità: `git checkout -b feature/your-feature`
+2. Apporta le tue modifiche
+3. Testa con attenzione: `npm run build`
+4. Invia una PR con una descrizione chiara
+
+## Traduzione
+
+Consulta [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) per aggiungere nuove lingue.
+
+## Contributor License Agreement
+
+Prima che la tua PR possa essere unita, dovrai firmare la nostra CLA:
+
+- [CLA individuale (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [CLA aziendale (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Ottenere aiuto
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Community Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Licenza
+
+BentoPDF ha una doppia licenza:
+
+- **AGPL-3.0** per i progetti open source in cui condividi pubblicamente tutto il codice sorgente
+- **Licenza commerciale** per le applicazioni proprietarie o closed source: [Ottieni la licenza a vita per $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Contribuendo, accetti che i tuoi contributi siano concessi in licenza secondo questi termini.
diff --git a/docs/it/getting-started.md b/docs/it/getting-started.md
new file mode 100644
index 00000000..efa3a064
--- /dev/null
+++ b/docs/it/getting-started.md
@@ -0,0 +1,80 @@
+# Per iniziare
+
+Benvenuto in BentoPDF! Questa guida ti aiuterà a metterti in funzione rapidamente.
+
+## Cos'è BentoPDF?
+
+BentoPDF è un kit di strumenti PDF gratuito, open source e pensato per la privacy, che funziona **interamente nel tuo browser**. I tuoi file non lasciano mai il dispositivo: tutta l'elaborazione avviene in locale grazie alla tecnologia WebAssembly (WASM).
+
+## Avvio rapido
+
+### Opzione 1: usa la versione ospitata
+
+Visita [bentopdf.com](https://www.bentopdf.com) per usare BentoPDF subito, senza installare nulla.
+
+### Opzione 2: self-hosting con Docker
+
+> [!IMPORTANT]
+> La conversione dei file Office richiede `SharedArrayBuffer`, che necessita di entrambi:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - un contesto sicuro
+>
+> `http://localhost` funziona per i test in locale perché i browser considerano affidabile il loopback. `http://192.168.x.x` o altri IP di rete locale di solito no, quindi le conversioni di Word/Excel/PowerPoint richiederanno HTTPS quando si accede da altri dispositivi della tua rete.
+
+```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 è disponibile in due build: la **build self-hosted** (`bentopdf-simple`, usata sopra) per installazioni interne, di team o di organizzazioni, e la **build commerciale** (`bentopdf:latest`) usata da bentopdf.com stesso e dai titolari di una licenza commerciale che gestiscono installazioni pubbliche. Entrambe includono gli stessi strumenti PDF: la build commerciale aggiunge hero, FAQ, testimonianze e footer di bentopdf.com. Se hai dubbi, usa la build self-hosted.
+
+Poi apri `http://localhost:3000` nel browser.
+
+> [!NOTE]
+> Se stai preparando un'installazione OCR in ambiente air-gapped, devi ospitare internamente anche i font del livello di testo OCR, oltre al worker Tesseract, al runtime core e ai file traineddata. La configurazione completa è descritta in [Self-hosting](/it/self-hosting/), inclusi `VITE_OCR_FONT_BASE_URL` e la cartella inclusa `ocr-fonts/`.
+
+### Opzione 3: compila dai sorgenti
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Funzionalità in sintesi
+
+| Categoria | Strumenti |
+| --------------------- | --------------------------------------------------------------- |
+| **Converti in PDF** | Word, Excel, PowerPoint, immagini, Markdown, EPUB, MOBI e altro |
+| **Converti da PDF** | JPG, PNG, testo, Excel, SVG e altro |
+| **Modifica e annota** | Firma, evidenzia, oscura, compila moduli, aggiungi timbri |
+| **Organizza** | Unisci, dividi, ruota, elimina pagine, riordina |
+| **Ottimizza** | Comprimi, ripara, appiattisci, OCR |
+| **Sicurezza** | Cifra, decifra, rimuovi restrizioni |
+
+## Browser supportati
+
+BentoPDF funziona al meglio sui browser moderni:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Prossimi passi
+
+- [Esplora tutti gli strumenti](/it/tools/)
+- [Installa BentoPDF sul tuo server](/it/self-hosting/)
+- [Contribuisci al progetto](/it/contributing)
diff --git a/docs/it/index.md b/docs/it/index.md
new file mode 100644
index 00000000..0730a75a
--- /dev/null
+++ b/docs/it/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Strumenti PDF gratuiti e open source'
+ tagline: Elabora i PDF interamente nel tuo browser. Nessun caricamento. Nessun server. Privacy totale.
+ actions:
+ - theme: brand
+ text: Inizia
+ link: /it/getting-started
+ - theme: alt
+ text: Vedi gli strumenti
+ link: /it/tools/
+ - theme: alt
+ text: Self-hosting
+ link: /it/self-hosting/
+ - theme: alt
+ text: Licenza commerciale
+ link: /it/licensing
+
+features:
+ - icon: 🔒
+ title: 100% privato
+ details: I tuoi file non lasciano mai il dispositivo. Tutta l'elaborazione avviene in locale nel browser grazie a WebAssembly.
+ - icon: ⚡
+ title: Veloce e gratuito
+ details: Nessuna registrazione, nessun limite, nessuna filigrana. Elabora PDF senza limiti, gratis e per sempre.
+ - icon: 🛠️
+ title: Oltre 50 strumenti
+ details: Converti, modifica, unisci, dividi, comprimi, firma, OCR e altro. Tutto ciò che ti serve in un unico posto.
+
+ - icon: 🌐
+ title: Installabile sul tuo server
+ details: Distribuiscilo sulla tua infrastruttura. Docker, Vercel, Netlify, AWS o ambienti completamente air-gapped con worker OCR, dati linguistici e font del livello di testo ospitati da te.
+---
+
+## OCR offline
+
+Se ospiti BentoPDF in un ambiente air-gapped o offline, l'OCR richiede più del worker Tesseract e dei file traineddata. Per ottenere PDF ricercabili, anche i font del livello di testo OCR devono essere serviti internamente.
+Consulta [Self-hosting](/it/self-hosting/) per la configurazione completa, inclusi `VITE_OCR_FONT_BASE_URL`, la cartella inclusa `ocr-fonts/` e il flusso di lavoro air-gap aggiornato.
diff --git a/docs/it/licensing.md b/docs/it/licensing.md
new file mode 100644
index 00000000..7af61f7b
--- /dev/null
+++ b/docs/it/licensing.md
@@ -0,0 +1,110 @@
+# 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](/it/self-hosting/#configurazione-wasm-componenti-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/it/self-hosting/apache.md b/docs/it/self-hosting/apache.md
new file mode 100644
index 00000000..8d0d208b
--- /dev/null
+++ b/docs/it/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Distribuzione con Apache
+
+Ospita BentoPDF usando Apache HTTP Server.
+
+## Prerequisiti
+
+- Apache 2.4+
+- mod_rewrite abilitato
+- Certificato SSL (consigliato)
+
+## Passaggio 1: compila il progetto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Per personalizzare il marchio, imposta le variabili d'ambiente prima della build:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Passaggio 2: copia i file
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Passaggio 3: configurazione di Apache
+
+Crea `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Passaggio 4: .htaccess per il routing
+
+Crea `/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
+```
+
+## Passaggio 5: abilita i moduli necessari
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Passaggio 6: abilita il sito
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Distribuzione in una sottodirectory
+
+Per ospitarlo in `/pdf/`:
+
+1. Compila con l'URL di base:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Aggiorna `.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
+```
+
+## Risoluzione dei problemi
+
+### Errori 404 sui file WASM
+
+Assicurati che il tipo MIME sia configurato:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Firma PDF o Compilazione moduli mostra un visualizzatore vuoto (errore MIME `.mjs`)
+
+Se la console del browser mostra:
+
+```
+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.
+```
+
+…e la richiesta che fallisce termina in `.mjs`, nella tua configurazione di Apache manca la mappatura `.mjs → application/javascript`. Il visualizzatore PDF incluso usa file ES module con estensione `.mjs`, che il `mime.types` predefinito di Apache non contiene.
+
+Aggiungi al tuo VirtualHost o a `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Poi ricarica Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Per verificare: negli DevTools del browser, scheda Network, trova la richiesta `.mjs` che falliva e controlla l'header di risposta `Content-Type`. Ora dovrebbe essere `application/javascript`, non `application/octet-stream`.
+
+### Le regole di rewrite non funzionano
+
+Verifica che mod_rewrite sia abilitato:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### La conversione da Word/ODT/Excel a PDF non funziona
+
+LibreOffice WASM richiede `SharedArrayBuffer`, che necessita di questi header:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Serve anche un contesto sicuro. `http://localhost` funziona per i test in locale, ma `http://192.168.x.x` o altri IP di rete locale di solito richiedono HTTPS. Se gli header sono presenti ma `window.crossOriginIsolated` è ancora `false`, controlla se la pagina viene aperta tramite HTTP semplice su un'origine diversa dal loopback.
+
+Anche i file precompressi `.wasm.gz` e `.data.gz` richiedono un `Content-Encoding` corretto:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Assicurati che `mod_headers` sia abilitato: `sudo a2enmod headers`
+
+### Permesso negato
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/it/self-hosting/aws.md b/docs/it/self-hosting/aws.md
new file mode 100644
index 00000000..b3712b7e
--- /dev/null
+++ b/docs/it/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Distribuzione su AWS S3 + CloudFront
+
+Ospita BentoPDF su AWS per il massimo controllo e la massima scalabilità.
+
+## Architettura
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Passaggio 1: crea il bucket S3
+
+```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
+```
+
+## Passaggio 2: compila e carica
+
+```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
+```
+
+## Passaggio 3: crea la distribuzione CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Oppure usa la console AWS:
+
+1. Vai su CloudFront → Create distribution
+2. Origin domain: seleziona il tuo bucket S3
+3. Abilita "Origin Access Control"
+4. Default root object: `index.html`
+5. Crea la distribuzione
+
+## Passaggio 3b: policy degli header di risposta (necessaria per LibreOffice WASM)
+
+Le conversioni basate su LibreOffice (da Word, Excel, PowerPoint a PDF) richiedono `SharedArrayBuffer`, che necessita di specifici header di risposta. Crea una Response Headers Policy di CloudFront:
+
+1. Vai su CloudFront → Policies → Response headers
+2. Crea una policy personalizzata con questi header:
+
+| Header | Valore |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Associa la policy al default cache behavior della tua distribuzione
+
+Oppure tramite 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}
+ ]
+ }
+ }'
+```
+
+## Passaggio 3c: metadati S3 per i file WASM precompressi
+
+I file WASM di LibreOffice sono precompressi (`.wasm.gz`, `.data.gz`). Imposta Content-Type e Content-Encoding corretti in modo che i browser li decomprimano:
+
+```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 Importante
+Senza la policy degli header di risposta, `SharedArrayBuffer` non è disponibile e le conversioni LibreOffice WASM si bloccheranno intorno al 55%. Senza il Content-Encoding corretto sui file `.gz`, il browser riceve i byte gzip grezzi e la compilazione WASM fallisce.
+:::
+
+## Passaggio 4: policy del bucket S3
+
+Consenti a CloudFront di accedere al 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Passaggio 5: pagine di errore personalizzate
+
+Configura il 404 in modo che restituisca `index.html` per il routing SPA:
+
+1. CloudFront → Error pages
+2. Crea una risposta di errore personalizzata:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Stima dei costi
+
+| Risorsa | Costo stimato |
+| -------------------------- | ------------- |
+| S3 Storage (~500MB) | ~$0,01/mese |
+| CloudFront (1TB transfer) | ~$85/mese |
+| CloudFront (10GB transfer) | ~$0,85/mese |
+
+::: tip
+Usa S3 Intelligent Tiering per ottimizzare i costi dei file a cui si accede di rado.
+:::
+
+## Automazione con 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"
+ }
+}
+```
diff --git a/docs/it/self-hosting/cloudflare.md b/docs/it/self-hosting/cloudflare.md
new file mode 100644
index 00000000..ca2e035b
--- /dev/null
+++ b/docs/it/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Distribuzione su Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) offre hosting di siti statici veloce e globale con banda illimitata.
+
+## Distribuzione rapida
+
+1. Vai su [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Clicca su "Create a project"
+3. Collega il tuo repository GitHub
+
+## Configurazione della build
+
+| Impostazione | Valore |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Variabili d'ambiente
+
+Aggiungile in Settings → Environment variables:
+
+| Variabile | Valore |
+| ----------------------- | ----------------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (facoltativo) |
+| `VITE_BRAND_NAME` | Nome del marchio personalizzato (facoltativo) |
+| `VITE_BRAND_LOGO` | Percorso del logo relativo a `public/` (facoltativo) |
+| `VITE_FOOTER_TEXT` | Testo personalizzato del footer/copyright (facoltativo) |
+| `VITE_DEFAULT_LANGUAGE` | Lingua predefinita dell'interfaccia, es. `fr` (facoltativo) |
+
+## File di configurazione
+
+Crea `_headers` nella tua cartella `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 Importante
+Gli header `Cross-Origin-Embedder-Policy` e `Cross-Origin-Opener-Policy` sono necessari per le conversioni da Word/ODT/Excel/PowerPoint a PDF. Senza di essi, `SharedArrayBuffer` non è disponibile e il motore LibreOffice WASM non riesce a inizializzarsi.
+:::
+
+Crea `_redirects` per il routing SPA:
+
+```
+/* /index.html 200
+```
+
+## Dominio personalizzato
+
+1. Vai al tuo progetto Pages
+2. Clicca su "Custom domains"
+3. Aggiungi il tuo dominio
+4. Cloudflare configurerà automaticamente il DNS se il dominio è su Cloudflare
+
+## Vantaggi
+
+- **Banda illimitata gratuita**
+- **CDN globale** con oltre 300 sedi edge
+- **HTTPS automatico**
+- **Anteprime di distribuzione** per le pull request
+- **Build veloci**
+
+## Risoluzione dei problemi
+
+### Caricamento di file di grandi dimensioni
+
+Cloudflare Pages supporta file fino a 25 MB. I moduli WASM dovrebbero andare bene, ma se raggiungi i limiti, valuta:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Limiti di dimensione dei Worker
+
+Se usi Cloudflare Workers per un routing avanzato, tieni presente il limite di 1 MB dei piani gratuiti.
+
+## Worker proxy CORS (per le firme digitali)
+
+Lo strumento di firma digitale richiede un proxy CORS per recuperare le catene di certificati. Distribuisci il worker incluso:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Funzionalità di sicurezza
+
+| Funzionalità | Descrizione |
+| ---------------------------- | ---------------------------------- |
+| **Restrizioni sugli URL** | Consentiti solo URL di certificati |
+| **Limite di dimensione** | Max 10MB per richiesta |
+| **Limitazione di frequenza** | 60 richieste/IP/min (richiede KV) |
+| **Blocco degli IP privati** | Blocca localhost e IP interni |
+
+### Abilitare la limitazione di frequenza
+
+```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
+```
+
+### Compilare con l'URL del proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Oppure con 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 .
+```
+
+> **Nota:** consulta il [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) per la configurazione della firma HMAC.
diff --git a/docs/it/self-hosting/cors-proxy.md b/docs/it/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..1634c602
--- /dev/null
+++ b/docs/it/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# Proxy CORS per il recupero dei certificati
+
+Lo strumento di firma digitale usa un proxy CORS per recuperare i certificati degli emittenti da Certificate Authority (CA) esterne. È necessario perché molti server delle CA non includono header CORS nelle risposte, il che impedisce il recupero diretto dal browser.
+
+Inoltre, molti server delle CA distribuiscono i certificati tramite HTTP semplice. Quando la tua istanza di BentoPDF è ospitata su HTTPS, i browser bloccano queste richieste HTTP (policy sui contenuti misti). Il proxy CORS risolve entrambi i problemi instradando le richieste attraverso un endpoint HTTPS con gli header corretti.
+
+## Come funziona
+
+Quando firmi un PDF con un certificato:
+
+1. La libreria `zgapdfsigner` cerca di costruire una catena di certificati completa
+2. Recupera i certificati degli emittenti dagli URL incorporati nell'estensione AIA (Authority Information Access) del tuo certificato
+3. Queste richieste passano attraverso un proxy CORS che aggiunge gli header `Access-Control-Allow-Origin` necessari
+4. Il proxy restituisce al browser i dati del certificato
+
+## Self-hosting del proxy CORS
+
+Se ospiti BentoPDF in autonomia, dovrai distribuire un tuo proxy CORS affinché le firme digitali funzionino con i certificati che richiedono il recupero della catena.
+
+### Opzione 1: Cloudflare Workers (consigliata)
+
+1. **Installa la CLI di Wrangler**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Accedi a Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clona BentoPDF e aggiorna le origini consentite**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Apri `cors-proxy-worker.js` e modifica l'array `ALLOWED_ORIGINS` con il tuo dominio:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Importante
+ Senza questa modifica, il proxy rifiuterà tutte le richieste dal tuo sito con un errore **403 Forbidden**. L'impostazione predefinita consente solo le richieste da `bentopdf.com`.
+ :::
+
+4. **Distribuisci il proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Annota l'URL del tuo worker (es. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Ricompila BentoPDF con l'URL del proxy**:
+
+ Se usi 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 .
+ ```
+
+ Se compili dai sorgenti:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Opzione 2: proxy backend personalizzato
+
+Puoi anche creare un tuo endpoint proxy. I requisiti sono:
+
+1. Accettare richieste GET con un parametro di query `url`
+2. Recuperare l'URL dal tuo server (nessuna restrizione CORS lato server)
+3. Restituire la risposta con questi header:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Esempio di implementazione con 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' });
+ }
+});
+```
+
+## Considerazioni sulla sicurezza
+
+Il Cloudflare Worker incluso adotta diverse misure di sicurezza:
+
+| Funzionalità | Descrizione |
+| ------------------------------ | -------------------------------------------------------------------------------------------------- |
+| **Convalida dell'origine** | Consente solo richieste dai domini elencati in `ALLOWED_ORIGINS` |
+| **Restrizioni sugli URL** | Consente solo URL di certificati (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blocco degli IP privati** | Blocca intervalli privati IPv4/IPv6, link-local, loopback, IP decimali e metadati cloud |
+| **Sicurezza del Content-Type** | Restituisce solo tipi MIME di certificati sicuri, blocca l'iniezione di content-type dall'upstream |
+| **Limite di dimensione** | Trasmette la risposta in streaming con limite di 10MB, interrompe il download se superato |
+| **Limitazione di frequenza** | 60 richieste al minuto per IP o IPv6 /64 (richiede KV, nessun blocco in caso di errori di KV) |
+| **Firme HMAC** | Firma facoltativa lato client (scoraggia gli abusi occasionali) |
+
+### DNS rebinding (self-hosting fuori da Cloudflare)
+
+Il worker rifiuta qualsiasi URL che si risolve in un IP privato o interno. Non può usare un elenco fisso di host consentiti, perché gli URL della catena di certificati puntano a qualunque CA abbia emesso il certificato (FNMT, CA aziendali e così via), quindi le destinazioni non sono note in anticipo. Resta così una piccola finestra di rebinding: chi gestisce il DNS del proprio dominio potrebbe restituire un IP pubblico al controllo di sicurezza e uno privato alla richiesta vera e propria un istante dopo.
+
+Su Cloudflare non è sfruttabile: i Workers non possono raggiungere IP privati né l'endpoint di metadati `169.254.169.254`, quindi un rebind non porta a nulla. Basta non dare al worker una via d'accesso: non associare un Tunnel, un Service o un binding di rete privata (gli serve solo `RATE_LIMIT_KV`).
+
+Se lo esegui fuori da Cloudflare (workerd, Node e simili) all'interno di una VPC, il runtime _può_ raggiungere gli IP interni. Metti davanti un firewall in uscita e blocca gli intervalli privati: `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` e i rispettivi equivalenti IPv6. Il codice dell'app non può imporlo una volta fuori da Cloudflare.
+
+## Disattivare il proxy
+
+Se non vuoi usare un proxy CORS, imposta la variabile d'ambiente su una stringa vuota:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Nota**: senza il proxy, la firma con certificati che richiedono il recupero esterno della catena (come FNMT o alcune CA aziendali) fallirà con l'errore "Failed to fetch".
+
+## Risoluzione dei problemi
+
+### "Signing error: TypeError: Failed to fetch"
+
+Di solito significa una di queste cose:
+
+1. **Nessun proxy CORS configurato**: imposta `VITE_CORS_PROXY_URL` e ricompila
+2. **Contenuti misti bloccati**: il tuo sito è in HTTPS ma l'URL dell'emittente del certificato è in HTTP. Il proxy CORS risolve il problema.
+3. **Il proxy CORS rifiuta la tua origine**: verifica che il tuo dominio sia nell'array `ALLOWED_ORIGINS` in `cors-proxy-worker.js`
+
+### "403 Forbidden" dal proxy
+
+Il tuo dominio non è nell'elenco `ALLOWED_ORIGINS`. Modifica `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Poi ridistribuisci: `npx wrangler deploy`
+
+### Testare il proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certificati che funzionano senza proxy
+
+Alcuni certificati includono la catena completa nel file P12/PFX e non richiedono recuperi esterni:
+
+- Certificati autofirmati
+- Alcune CA commerciali che includono i certificati intermedi
+- Certificati che hai assemblato manualmente con la catena completa
diff --git a/docs/it/self-hosting/docker.md b/docs/it/self-hosting/docker.md
new file mode 100644
index 00000000..d50abefa
--- /dev/null
+++ b/docs/it/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Distribuzione con Docker / Podman
+
+Il modo più semplice per ospitare BentoPDF in autonomia in un ambiente di produzione.
+
+> [!IMPORTANT]
+> **Header richiesti per la conversione dei file Office**
+>
+> Gli strumenti basati su LibreOffice (conversione di Word, Excel, PowerPoint) richiedono questi header HTTP per il supporto a `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> La pagina deve inoltre essere servita da un contesto sicuro. `http://localhost` funziona per i test in locale, ma `http://192.168.x.x` o altri IP di rete locale di solito non lo qualificano, quindi la conversione Office tramite HTTP semplice fallirà anche se gli header sono presenti.
+>
+> Le immagini container ufficiali includono questi header. Se usi un reverse proxy (Traefik, Caddy, ecc.), assicurati che gli header vengano mantenuti o aggiunti e usa HTTPS per gli accessi diversi dal loopback.
+
+> [!TIP]
+> **Utenti Podman:** tutti i comandi `docker` funzionano con Podman sostituendo `docker` con `podman` e `docker-compose` con `podman-compose`.
+
+## Avvio rapido
+
+> [!TIP]
+> BentoPDF è disponibile in due build:
+>
+> - **Build self-hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Tutti gli strumenti PDF, **senza** la parte di marketing (niente hero, FAQ, testimonianze, footer). Usala per installazioni interne, di team o di organizzazioni. **Non** è una versione "lite" con meno funzionalità.
+> - **Build commerciale**: `ghcr.io/alam00000/bentopdf:latest`. Il sito di marketing completo, usato da bentopdf.com stesso e dai titolari di una licenza commerciale che gestiscono installazioni pubbliche.
+>
+> Se hai dubbi: scarica la build self-hosted.
+
+```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
+
+Crea `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
+```
+
+Esegui:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Crea la tua immagine
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Compila ed esegui:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Variabili d'ambiente
+
+| Variabile | Descrizione | Predefinito |
+| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Compila la variante self-hosted (nasconde la parte di marketing di bentopdf.com: hero, FAQ, testimonianze, footer). Tutti gli strumenti PDF restano. | `false` |
+| `BASE_URL` | Distribuzione in una sottodirectory | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL del modulo WASM di PyMuPDF | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL del modulo WASM di Ghostscript | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL del modulo WASM di CoherentPDF | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL dello script worker OCR | _(vuoto; usa la CDN predefinita di Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Directory del runtime core OCR | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_LANG_URL` | Directory dei traineddata OCR | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Lingue OCR separate da virgole mostrate nell'interfaccia | _(vuoto; mostra il catalogo completo)_ |
+| `VITE_OCR_FONT_BASE_URL` | Directory dei font del livello di testo OCR | _(vuoto; usa gli URL remoti dei font Noto)_ |
+| `VITE_DEFAULT_LANGUAGE` | Lingua predefinita dell'interfaccia | `en` |
+| `VITE_BRAND_NAME` | Nome del marchio personalizzato | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Percorso del logo relativo a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Testo personalizzato del footer/copyright | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | ID degli strumenti da nascondere, separati da virgole | _(vuoto; tutti gli strumenti abilitati)_ |
+| `DISABLE_GITHUB_STARS` | Salta il recupero del numero di stelle GitHub al caricamento della pagina e rimuove `api.github.com` dalla CSP. Le build in Simple Mode lo saltano sempre. | `false` |
+| `SITE_URL` | URL pubblico scritto nei link canonical, hreflang e sitemap. Lascia il valore predefinito, a meno che tu non voglia che i motori di ricerca trattino la tua installazione come un sito a sé. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Con un `SITE_URL` personalizzato, ogni pagina è marcata `noindex` così la tua copia non compete con bentopdf.com nei risultati di ricerca. Imposta `true` per permettere ai motori di ricerca di indicizzarla. | `false` |
+| `COMPRESSION_MODE` | Copie precompresse da salvare accanto a ogni file: `o` nessuna, `g` `.gz` (servite dal nginx dell'immagine), `b` `.br`, `all` entrambe. Il nginx dell'immagine non può servire `.br`. | `o` |
+
+Gli URL dei moduli WASM sono preconfigurati con i valori CDN predefiniti: tutte le funzionalità avanzate funzionano subito. Sostituiscili per installazioni air-gapped o self-hosted.
+
+### Motori di ricerca
+
+Per impostazione predefinita, ogni pagina indica ai motori di ricerca bentopdf.com come originale, così la tua installazione non appare come duplicato. Non devi cambiare nulla per un'istanza privata o interna.
+
+- **Tieni la tua istanza fuori dai risultati di ricerca:** esegui il container con `-e ROBOTS_NOINDEX=true`. Basta un riavvio, non serve ricompilare.
+- **Rendi la tua istanza un sito a sé nei risultati di ricerca:** compila con `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Senza `ALLOW_INDEXING=true`, un `SITE_URL` personalizzato marca ogni pagina `noindex`.
+
+### Content-Security-Policy
+
+L'immagine nginx include un header `Content-Security-Policy` in modalità enforcing. Le direttive `script-src`, `connect-src` e `font-src` della CSP sono **generate in fase di build** a partire dalle variabili URL `VITE_*` qui sopra: tutti gli host che passi con `--build-arg` vengono aggiunti automaticamente alla policy.
+
+Di conseguenza:
+
+- Se sovrascrivi `VITE_CORS_PROXY_URL` o `VITE_WASM_*_URL` in fase di build, la CSP consente automaticamente quelle origini, senza configurazioni aggiuntive.
+- Per gli URL su `cdn.jsdelivr.net`, `script-src` consente solo l'esatta cartella del pacchetto con versione, ad esempio `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, non l'intera CDN. jsDelivr serve qualsiasi pacchetto npm pubblico o repository GitHub, quindi consentire l'intero host permetterebbe a ciascuno di essi di essere eseguito sulla tua istanza. Gli URL su qualsiasi altro host sono consentiti per origine.
+- Se configuri URL WASM personalizzati in _runtime_ dalla pagina Impostazioni avanzate dell'app, quelle origini **non** sono nella CSP e il browser bloccherà le richieste verso di esse. Vale anche per una versione diversa dello stesso pacchetto su `cdn.jsdelivr.net`, perché è consentita solo la versione impostata in fase di build. La configurazione in runtime serve per sperimentare; per URL personalizzati permanenti imposta il corrispondente build arg `VITE_*`.
+- Nelle installazioni air-gapped che sovrascrivono tutti e tre i valori `VITE_WASM_*_URL`, anche le cartelle dei pacchetti su `cdn.jsdelivr.net` vengono rimosse dalla CSP (ogni valore predefinito viene sostituito, non aggiunto). I valori predefiniti di Tesseract OCR su `cdn.jsdelivr.net` restano nella policy finché non imposti anche i tre valori `VITE_TESSERACT_*`. Allo stesso modo, impostare `VITE_CORS_PROXY_URL` sostituisce il valore pubblico predefinito `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+La CSP include `'unsafe-eval'` in `script-src` perché il runtime LibreOffice WASM (usato dagli strumenti di conversione Word/Excel/PowerPoint) e la libreria di immagini wasm-vips (usata da PDF in TIFF) compilano codice di dispatch interno tramite `new Function()`. Rimuoverlo renderebbe inutilizzabili quegli strumenti. Se compili in `SIMPLE_MODE` (senza LibreOffice) e non ti serve PDF in TIFF, puoi modificare a mano il file generato `security-headers.conf` per eliminare `'unsafe-eval'` e ottenere una policy più restrittiva.
+
+Per l'OCR, lascia vuote le variabili `VITE_TESSERACT_*` per usare le risorse online predefinite, oppure impostale tutte e tre insieme per un OCR self-hosted/offline. Le sostituzioni parziali dell'OCR vengono rifiutate perché worker, runtime core e directory dei traineddata devono corrispondere. Per un output PDF ricercabile completamente offline, imposta anche `VITE_OCR_FONT_BASE_URL` in modo che i font del livello di testo OCR vengano caricati dal tuo server interno invece che dagli URL pubblici dei font Noto.
+
+`VITE_DEFAULT_LANGUAGE` imposta la lingua dell'interfaccia per i nuovi visitatori. Valori supportati: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Gli utenti possono comunque cambiare lingua: questo modifica solo il valore predefinito.
+
+Esempio:
+
+```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
+```
+
+### Marchio personalizzato
+
+Sostituisci il logo, il nome e il testo del footer predefiniti di BentoPDF con i tuoi. Metti il file del logo nella cartella `public/` (o usa un'immagine esistente), poi passa le variabili del marchio in fase di build:
+
+```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 .
+```
+
+La personalizzazione del marchio funziona sia in modalità completa sia in Simple Mode e si può combinare con tutte le altre opzioni di build.
+
+### Disattivare strumenti specifici
+
+Nascondi strumenti dall'interfaccia per esigenze di conformità o sicurezza. Gli strumenti disattivati vengono rimossi dalla homepage, dai risultati di ricerca, dalle scorciatoie da tastiera e dal workflow builder. L'accesso diretto tramite URL mostra una pagina "strumento non disponibile".
+
+Gli ID degli strumenti sono l'URL della pagina senza `.html`. Ad esempio, se lo strumento si trova in `bentopdf.com/edit-pdf.html`, l'ID è `edit-pdf`.
+
+#### Trovare gli ID degli strumenti
+
+Il modo più semplice: apri uno strumento qualsiasi in BentoPDF e guarda l'URL. L'ultima parte del percorso (senza `.html`) è l'ID dello strumento.
+
+
+Elenco completo degli ID degli strumenti
+
+**Modifica e annota:** `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`
+
+**Converti in 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`
+
+**Converti da 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`
+
+**Organizza e gestisci:** `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`
+
+**Ottimizza e ripara:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Sicurezza:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Opzione 1: in fase di build (build arg di Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Questo incorpora l'elenco degli strumenti disattivati nel bundle JavaScript. Per modificarlo serve ricompilare.
+
+#### Opzione 2: in runtime (config.json)
+
+Monta un file `config.json` nella directory servita, senza bisogno di ricompilare:
+
+```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
+```
+
+Oppure con 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
+```
+
+I due metodi si possono combinare: gli elenchi vengono uniti. Se uno strumento compare in uno dei due, viene disattivato.
+
+#### Disattivare le funzionalità dell'editor
+
+Puoi anche disattivare funzionalità specifiche all'interno dell'editor PDF (ad es. oscuramento, annotazioni, moduli) senza disattivare l'intero strumento. Aggiungi `editorDisabledCategories` al tuo `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Elenco completo delle categorie dell'editor
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Annotazioni:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Forme:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Misurazione:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Moduli:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Oscuramento:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Documento:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Pagina:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Pannelli:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Strumenti:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Selezione:** `selection`, `selection-copy`
+
+**Cronologia:** `history`, `history-undo`, `history-redo`
+
+
+
+Le categorie sono gerarchiche: disattivando una categoria padre (ad es. `annotation`) si disattivano tutte le sue figlie.
+
+### Disattivare il contatore di stelle GitHub
+
+La barra di navigazione mostra il numero di stelle GitHub in tempo reale, recuperato da `api.github.com` al caricamento della pagina. È l'unica richiesta esterna che non serve a una funzionalità PDF. Disattivalo in fase di build per rimuovere il codice di recupero dal bundle ed eliminare `api.github.com` dalla Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Le build in Simple Mode (`bentopdf-simple`) saltano sempre il contatore di stelle: questo flag serve solo sulla build commerciale o sulle build complete personalizzate.
+
+### URL WASM personalizzati (air-gapped / self-hosted)
+
+> [!IMPORTANT]
+> Gli URL WASM sono incorporati nel JavaScript in **fase di build**. I file WASM vengono scaricati dal **browser dell'utente** in runtime: Docker non li scarica durante la build. Per le reti air-gapped, devi ospitare i file WASM su un server interno raggiungibile dai browser.
+
+**Flusso di lavoro air-gapped completo:**
+
+```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
+```
+
+Usa i codici stampati da `bash scripts/prepare-airgap.sh --list-ocr-languages`, oppure cercali per nome con `bash scripts/prepare-airgap.sh --search-ocr-language `, per `--ocr-languages`. Quando compili con un sottoinsieme limitato di lingue OCR, passa gli stessi codici a `VITE_TESSERACT_AVAILABLE_LANGUAGES` in modo che l'app mostri solo le lingue incluse. Per un output OCR completamente offline, ospita anche la cartella inclusa `ocr-fonts/` e punta `VITE_OCR_FONT_BASE_URL` verso di essa.
+
+Imposta una variabile su stringa vuota per disattivare quel modulo (gli utenti dovranno configurarlo manualmente da Impostazioni avanzate).
+
+## Porta personalizzata
+
+Per impostazione predefinita, BentoPDF è in ascolto sulla porta `8080` all'interno del container. Per cambiarla, imposta la variabile d'ambiente `PORT` in runtime:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variabile | Descrizione | Predefinito |
+| --------- | --------------------------------------- | ----------- |
+| `PORT` | Porta di ascolto di Nginx nel container | `8080` |
+
+Funziona sia con il Dockerfile standard sia con quello nonroot.
+
+## ID utente personalizzato (PUID/PGID)
+
+Per gli ambienti che richiedono l'esecuzione come utente non root specifico (dispositivi NAS, Kubernetes con security context, policy organizzative), BentoPDF fornisce un Dockerfile separato con supporto PUID/PGID in stile LSIO.
+
+### Compila ed esegui
+
+```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
+```
+
+### Variabili d'ambiente
+
+| Variabile | Descrizione | Predefinito |
+| -------------- | -------------------------- | ----------- |
+| `PUID` | ID utente con cui eseguire | `1000` |
+| `PGID` | ID gruppo con cui eseguire | `1000` |
+| `PORT` | Porta di ascolto di Nginx | `8080` |
+| `DISABLE_IPV6` | Disattiva il listener 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
+```
+
+### Come funziona
+
+Il container si avvia come root, crea un utente con il PUID/PGID specificato, regola la proprietà di tutte le directory scrivibili e poi abbassa i privilegi con `su-exec`. Il processo nginx viene eseguito interamente come l'utente specificato.
+
+> [!NOTE]
+> Il `Dockerfile` standard usa `nginx-unprivileged` (UID 101) ed è consigliato per la maggior parte delle installazioni. Usa `Dockerfile.nonroot` solo quando ti serve un UID/GID specifico.
+
+> [!WARNING]
+> PUID/PGID non possono essere `0` (root). L'entrypoint convalida i valori e termina con un errore se non sono validi.
+
+## Con Traefik (reverse proxy)
+
+```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
+```
+
+## Con Caddy (reverse proxy)
+
+```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"
+}
+```
+
+## Limiti di risorse
+
+```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 (integrazione con systemd)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) permette di eseguire i container Podman come servizi systemd. È ideale per le installazioni di produzione su sistemi Linux.
+
+### Configurazione base di Quadlet
+
+Crea un file di unità container in `~/.config/containers/systemd/bentopdf.container` (utente) oppure `/etc/containers/systemd/bentopdf.container` (sistema):
+
+```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
+```
+
+### Abilita e avvia
+
+```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]
+> Per un'installazione a livello di sistema, usa `systemctl` senza il flag `--user` e metti il file in `/etc/containers/systemd/`.
+
+### Quadlet con health check
+
+```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
+```
+
+### Aggiornamento automatico con Quadlet
+
+Podman può aggiornare automaticamente i container quando sono disponibili nuove immagini:
+
+```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
+```
+
+### Configurazione di rete di Quadlet
+
+Per una configurazione di rete personalizzata, crea un file di rete `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Poi fai riferimento ad esso nel tuo file container:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Aggiornamento
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/it/self-hosting/hostinger.md b/docs/it/self-hosting/hostinger.md
new file mode 100644
index 00000000..60d5d940
--- /dev/null
+++ b/docs/it/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Distribuzione su Hostinger
+
+[Hostinger](https://hostinger.com) è un diffuso provider di hosting condiviso. Questa guida spiega come distribuire BentoPDF sull'hosting condiviso di Hostinger.
+
+## Prerequisiti
+
+- Piano di hosting Hostinger con accesso al file manager
+- Node.js installato in locale per la build
+
+## Passaggio 1: compila il progetto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+I file compilati saranno nella cartella `dist`.
+
+## Passaggio 2: carica su Hostinger
+
+### Distribuzione sul dominio principale
+
+1. Accedi al tuo account Hostinger
+2. Vai su **File Manager** → **public_html**
+3. **Elimina** tutti i file esistenti (fai prima un backup se serve)
+4. **Carica** tutto il contenuto della tua cartella locale `dist` in `public_html`
+
+### Distribuzione in una sottodirectory
+
+Se distribuisci in una sottodirectory (es. `yourdomain.com/pdf-tools/`):
+
+1. Compila con l'URL di base corretto:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Crea la cartella in Hostinger:
+ - Vai su **File Manager** → **public_html**
+ - Crea una nuova cartella: `pdf-tools`
+3. Carica tutto il contenuto di `dist` in `public_html/pdf-tools/`
+
+## Passaggio 3: crea il file .htaccess
+
+Crea un file `.htaccess` nella radice della cartella di distribuzione (`public_html` o `public_html/pdf-tools/`):
+
+::: warning Importante
+Per la distribuzione in una sottodirectory, cambia `RewriteBase /` in `RewriteBase /pdf-tools/` (o il nome della tua cartella).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Esempio di .htaccess per sottodirectory
+
+Per `yourdomain.com/pdf-tools/`, aggiorna queste righe:
+
+```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
+```
+
+## Risoluzione dei problemi
+
+### I file WASM non si caricano
+
+Assicurati che i tipi MIME siano impostati correttamente in `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Gli strumenti LibreOffice non funzionano
+
+Gli header di sicurezza sono fondamentali per SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Se gli header non vengono applicati, contatta il supporto di Hostinger per abilitare `mod_headers`.
+
+### Errori 404 all'aggiornamento della pagina
+
+Verifica che la regola per l'estensione `.html` e le route delle lingue siano configurate correttamente. BentoPDF usa file HTML statici, non il routing 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]
+```
+
+### Limiti di caricamento dei file
+
+Hostinger può avere limiti sulla dimensione dei file. Carica i file WASM separatamente se il caricamento in blocco fallisce.
diff --git a/docs/it/self-hosting/index.md b/docs/it/self-hosting/index.md
new file mode 100644
index 00000000..b61f3ee2
--- /dev/null
+++ b/docs/it/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Guida all'self-hosting
+
+BentoPDF può essere ospitato sulla tua infrastruttura. Questa guida illustra le varie opzioni di deploy.
+
+## Avvio rapido con Docker / Podman
+
+Il modo più rapido per ospitare BentoPDF:
+
+> [!TIP]
+> BentoPDF è disponibile in due build:
+>
+> - **Build Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Tutti gli strumenti PDF, **senza** gli elementi di marketing (niente hero, FAQ, testimonianze, footer). Usala per deploy interni, di team o di organizzazione. **Non** è una versione "lite" con meno funzionalità.
+> - **Build Commercial**: `ghcr.io/alam00000/bentopdf:latest`. Il sito di marketing completo, usato da bentopdf.com stesso e dai titolari di licenza commerciale che gestiscono deploy pubblici.
+>
+> Nel dubbio: scarica la build Self-Hosted.
+
+> [!IMPORTANT]
+> La conversione dei file Office richiede `SharedArrayBuffer`, il che significa che l'app deve essere sia isolata cross-origin sia servita da un contesto sicuro. L'immagine ufficiale invia già gli header COOP/COEP necessari, ma i browser disabilitano comunque `SharedArrayBuffer` sulle origini HTTP semplici della rete locale, come `http://192.168.x.x`.
+>
+> Usa `http://localhost` solo per test sullo stesso dispositivo. Se gli utenti accedono a BentoPDF tramite un IP o un hostname della LAN, termina la connessione con 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
+```
+
+Oppure con 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)
+
+Esegui BentoPDF come servizio systemd. Crea `~/.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
+```
+
+Consulta la [guida al deploy con Docker](/it/self-hosting/docker) per la documentazione completa di Quadlet.
+
+## Compilazione dal codice sorgente
+
+```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
+```
+
+## Opzioni di configurazione
+
+### Build Self-Hosted (Simple Mode)
+
+La build Self-Hosted (l'immagine `bentopdf-simple`, detta anche Simple Mode) è **funzionalmente identica** alla build Commercial: ogni strumento PDF è presente e si comporta allo stesso modo. Nasconde solo gli elementi di marketing che hanno senso soltanto su bentopdf.com o in un deploy commerciale pubblico. **Non è una versione "lite" con meno funzionalità.**
+
+**Cosa nasconde la build Self-Hosted** (solo aspetto estetico, nessuna funzionalità PDF viene rimossa):
+
+- Barra di navigazione, sezione hero, sezione delle funzionalità, FAQ, testimonianze, footer
+- Aggiorna il titolo della pagina in "Strumenti PDF"
+
+**Cosa mantiene la build Self-Hosted** (tutto ciò che lavora davvero sui PDF):
+
+- Ogni strumento PDF (unione, divisione, modifica, firma, OCR, conversione Office, ecc.)
+- Supporto al branding personalizzato, tutta la configurazione di build e di runtime
+
+La build Commercial (`ghcr.io/alam00000/bentopdf:latest`) è quella che alimenta bentopdf.com stesso ed è usata dai titolari di licenza commerciale che gestiscono deploy pubblici: aggiunge hero, FAQ, testimonianze e footer che non avrebbero senso in uno strumento interno.
+
+Se ospiti BentoPDF per il tuo team, la tua organizzazione o come strumento interno, scarica la build Self-Hosted:
+
+```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
+```
+
+Consulta [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) per tutti i dettagli.
+
+### Build Commercial (deploy pubblici con il tuo brand)
+
+La build Commercial (l'immagine `bentopdf`, senza il suffisso `-simple`) è quella che alimenta bentopdf.com stesso. Include il sito di marketing completo (hero, funzionalità, FAQ, testimonianze, footer) oltre a ogni strumento PDF. Usa questa build quando vuoi **distribuire BentoPDF come servizio PDF pubblico con il tuo brand**, ad esempio:
+
+- Gestisci BentoPDF come SaaS ospitato per gli utenti finali sul tuo dominio
+- Vuoi l'esperienza della landing page (sezioni di marketing + strumenti), non solo l'interfaccia essenziale degli strumenti
+- Sei un titolare di licenza commerciale e integri BentoPDF in un prodotto commerciale
+
+**Eseguila così com'è** (brand BentoPDF, utile per vedere un'anteprima della build):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Compila con il tuo brand** (il tipico flusso commerciale):
+
+```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
+```
+
+Ogni altra opzione di build (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, override degli URL WASM, ecc.) funziona come nella build Self-Hosted.
+
+::: warning Licenze
+L'esecuzione della build Commercial è consentita con una qualsiasi delle due opzioni di licenza di BentoPDF:
+
+- **AGPL-3.0** (gratuita): consentita se il tuo deploy pubblica tutto il proprio codice sorgente sotto AGPL, comprese le modifiche al brand e la logica di business circostante.
+- **Licenza commerciale** ($79 a vita): necessaria per deploy proprietari o a codice chiuso in cui non rendi open source il tuo fork di branding o il tuo codice di business.
+
+Consulta la [pagina delle licenze](https://www.bentopdf.com/licensing) per il confronto completo. I moduli WASM con licenza AGPL (PyMuPDF, Ghostscript, CoherentPDF) vengono caricati da una CDN a runtime, quindi non entrano nella tua immagine e non cambiano la tua situazione di licenza.
+:::
+
+### Base URL
+
+Deploy in una sottodirectory:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Branding personalizzato
+
+Sostituisci il logo, il nome e il testo del footer predefiniti di BentoPDF con i tuoi durante la build:
+
+| Variabile | Descrizione | Predefinito |
+| ------------------ | ------------------------------------------ | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nome del brand mostrato in header e footer | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Percorso del logo relativo a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Testo personalizzato del footer/copyright | `© 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
+```
+
+Oppure tramite 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 .
+```
+
+Il branding funziona sia in modalità completa sia in Simple Mode e può essere combinato con tutte le altre opzioni di build (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Disabilitare strumenti specifici
+
+Nascondi singoli strumenti per motivi di conformità o sicurezza. Gli strumenti disabilitati vengono rimossi dalla homepage, dalla ricerca, dalle scorciatoie, dal workflow builder e dall'accesso diretto tramite URL.
+
+Gli ID degli strumenti sono l'URL della pagina senza `.html`: apri uno strumento qualsiasi e guarda l'URL (ad es. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**In fase di build** (incorporata nel bundle):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**A runtime** (nessuna ricompilazione necessaria: monta un `config.json`):
+
+```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
+```
+
+I due metodi possono essere combinati: gli elenchi vengono uniti.
+
+Puoi anche disabilitare funzionalità specifiche dell'Editor PDF (ad es. la redazione) senza disabilitare l'intero strumento, aggiungendo `editorDisabledCategories` a `config.json`. Consulta la [guida Docker](/it/self-hosting/docker#disattivare-le-funzionalita-dell-editor) per l'elenco completo delle categorie.
+
+## Guide al deploy
+
+Scegli la tua piattaforma:
+
+- [Vercel](/it/self-hosting/vercel)
+- [Netlify](/it/self-hosting/netlify)
+- [Cloudflare Pages](/it/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/it/self-hosting/aws)
+- [Hostinger](/it/self-hosting/hostinger)
+- [Nginx](/it/self-hosting/nginx)
+- [Apache](/it/self-hosting/apache)
+- [Docker](/it/self-hosting/docker)
+- [Kubernetes](/it/self-hosting/kubernetes)
+- [CORS Proxy](/it/self-hosting/cors-proxy) - Necessario per le firme digitali
+
+## Problemi comuni
+
+### La conversione da Word / ODT / Excel / PowerPoint a PDF si blocca (SharedArrayBuffer non disponibile)
+
+**Sintomo**: le conversioni di documenti basate su LibreOffice (da Word, ODT, Excel, PowerPoint a PDF) si bloccano intorno al 55% o non partono. La console del browser può mostrare:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…oppure `window.crossOriginIsolated` restituisce `false`, o la compilazione WASM segnala `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Causa**: LibreOffice WASM richiede `SharedArrayBuffer`, che il browser abilita solo quando la pagina è **isolata cross-origin** E servita da un **contesto sicuro**. Ciò significa che devono valere due condizioni:
+
+1. Ogni risposta include entrambi gli header:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. La pagina è servita da `https://...` o da `http://localhost`. Un semplice HTTP su un IP della LAN (ad es. `http://192.168.x.x`) NON conta come sicuro: i browser disabilitano lì `SharedArrayBuffer`.
+
+La discrepanza `00 61 73 6d / 1f 8b 08 08` è un sotto-sintomo distinto: ai file precompressi `.wasm.gz` / `.data.gz` manca l'header di risposta `Content-Encoding: gzip`, quindi il browser riceve byte gzip grezzi invece di WASM decompresso.
+
+**Soluzione**: consulta la guida al deploy specifica della tua piattaforma per la configurazione esatta:
+
+- [Nginx →](/it/self-hosting/nginx#conversione-da-word-odt-excel-a-pdf-non-funzionante)
+- [Apache →](/it/self-hosting/apache#la-conversione-da-word-odt-excel-a-pdf-non-funziona)
+- [AWS S3 + CloudFront →](/it/self-hosting/aws#passaggio-3b-policy-degli-header-di-risposta-necessaria-per-libreoffice-wasm)
+- [Cloudflare Pages →](/it/self-hosting/cloudflare#file-di-configurazione) (`_headers` file)
+- [Netlify →](/it/self-hosting/netlify#conversione-da-word-odt-excel-a-pdf-bloccata-al-55) (`netlify.toml`)
+- [Vercel →](/it/self-hosting/vercel#conversione-da-word-odt-excel-a-pdf-non-funzionante) (`vercel.json`)
+- [Hostinger →](/it/self-hosting/hostinger#gli-strumenti-libreoffice-non-funzionano) (`.htaccess`)
+- [Kubernetes →](/it/self-hosting/kubernetes#verificare-che-gli-header-sharedarraybuffer-funzionino-ancora-ingress-gateway)
+- **Docker**: gestito automaticamente dalla configurazione nginx inclusa, nessuna azione necessaria.
+
+**Verifica**: apri la Console di DevTools su una qualsiasi pagina di BentoPDF ed esegui:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Se la pagina è in HTTPS o su `http://localhost` E entrambi gli header COEP/COOP sono presenti in ogni risposta, entrambi i controlli passano. Se sei su `http://192.168.x.x` o su un'altra origine HTTP non di loopback, termina la connessione con HTTPS: non esiste una soluzione basata solo sugli header.
+
+### File `.mjs` serviti come `application/octet-stream`
+
+**Sintomo**: Firma PDF / Compilazione moduli / alcuni altri strumenti mostrano un visualizzatore vuoto o non si caricano. La console del browser segnala:
+
+> `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.`
+
+**Causa**: il tuo web server o reverse proxy non ha una mappatura del tipo MIME per i file `.mjs` (il visualizzatore PDF incluso distribuisce ES module con quell'estensione). Molte configurazioni di server predefinite usano `application/octet-stream` per le estensioni non riconosciute, e i browser rifiutano di eseguirlo come ES module.
+
+**Soluzione**: consulta la guida al deploy specifica della tua piattaforma per lo snippet esatto:
+
+- [Nginx →](/it/self-hosting/nginx#firma-pdf-o-compilazione-moduli-mostra-un-visualizzatore-vuoto-errore-mime-mjs)
+- [Apache →](/it/self-hosting/apache#firma-pdf-o-compilazione-moduli-mostra-un-visualizzatore-vuoto-errore-mime-mjs)
+- [AWS S3 + CloudFront →](/it/self-hosting/aws#passaggio-2-compila-e-carica) (vedi `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/it/self-hosting/kubernetes#errori-di-tipo-mime-per-mjs-iframe-di-firma-pdf-compilazione-moduli-vuoto)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: gestito automaticamente, nessuna azione necessaria.
+
+**Verifica**: apri DevTools → scheda Network, trova la richiesta `.mjs` che fallisce e controlla l'header di risposta `Content-Type`. Dovrebbe essere `application/javascript`. Se è ancora `application/octet-stream`, un reverse proxy o una CDN esterna potrebbe riconoscere di nuovo il tipo: controlla ogni livello della catena di servizio.
+
+## Configurazione WASM (componenti AGPL)
+
+BentoPDF **non include** nel proprio codice sorgente le librerie di elaborazione con licenza AGPL, ma **preconfigura gli URL della CDN** in modo che tutte le funzionalità funzionino subito, senza alcuna configurazione manuale.
+
+::: tip Zero-config per impostazione predefinita
+Dalla v2.0.0, i moduli WASM sono preconfigurati per caricarsi dalla CDN jsDelivr tramite variabili d'ambiente. Tutte le funzionalità avanzate funzionano subito senza alcuna configurazione da parte dell'utente.
+:::
+
+| Componente | Licenza | Funzionalità |
+| --------------- | -------- | ---------------------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Conversione EPUB/MOBI/FB2/XPS, estrazione di immagini, estrazione di tabelle |
+| **Ghostscript** | AGPL-3.0 | Conversione PDF/A, compressione, raddrizzamento, rasterizzazione |
+| **CoherentPDF** | AGPL-3.0 | Indice, allegati, unione di PDF con segnalibri |
+
+### Variabili d'ambiente predefinite
+
+Sono impostate in `.env.production` e incorporate nella build:
+
+```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=
+```
+
+### Sovrascrivere gli URL WASM
+
+Puoi sovrascrivere i valori predefiniti in fase di build per deploy personalizzati:
+
+```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
+```
+
+Per disabilitare completamente un modulo (richiedendo la configurazione manuale dell'utente tramite le Impostazioni avanzate), imposta la sua variabile su una stringa vuota.
+
+Per l'OCR, lascia vuote tutte le variabili `VITE_TESSERACT_*` e mantieni gli asset online predefiniti, oppure imposta insieme gli URL di worker/core/lang per un OCR self-hosted/offline. Se includi solo alcune lingue OCR, imposta anche `VITE_TESSERACT_AVAILABLE_LANGUAGES` con gli stessi codici separati da virgola, così l'interfaccia offre solo le lingue installate e le selezioni non supportate falliscono con un errore descrittivo. Per un output PDF ricercabile completamente offline, imposta anche `VITE_OCR_FONT_BASE_URL` sulla directory interna che serve i font OCR inclusi.
+
+Gli utenti possono anche sovrascrivere questi valori predefiniti in qualsiasi momento tramite le **Impostazioni avanzate** nell'interfaccia: le sovrascritture dell'utente salvate nel browser hanno la priorità sui valori predefiniti dell'ambiente.
+
+### Deploy air-gapped / offline
+
+Per le reti senza accesso a internet (enti pubblici, sanità, finanza, ecc.). Gli URL WASM sono incorporati nel JavaScript **in fase di build**, mentre i file WASM veri e propri vengono scaricati dal **browser dell'utente** a runtime. Quindi devi preparare tutto su una macchina con accesso a internet e poi trasferirlo nella rete isolata.
+
+#### Script automatico (consigliato)
+
+Lo script `prepare-airgap.sh` incluso automatizza l'intero processo: scarica i pacchetti WASM, compila l'immagine Docker e produce un bundle autonomo con uno script di setup.
+
+```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
+```
+
+Questo produce una directory bundle:
+
+```
+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
+```
+
+Trasferisci il bundle nella rete air-gapped tramite USB, repository di artefatti interno o altro metodo approvato. Poi esegui lo script di setup incluso:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Lo script di setup carica l'immagine Docker, estrae i file WASM e, facoltativamente, avvia il container.
+
+**Opzioni dello script:**
+
+| Flag | Descrizione | Predefinito |
+| ------------------------------ | ------------------------------------------------------- | ------------------------------------ |
+| `--wasm-base-url ` | Dove verranno ospitati internamente i WASM | _(obbligatorio, richiesto se manca)_ |
+| `--image-name ` | Tag dell'immagine Docker | `bentopdf` |
+| `--output-dir ` | Directory di output del bundle | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Abilita Simple Mode | off |
+| `--base-url ` | Base URL della sottodirectory (ad es. `/pdf/`) | `/` |
+| `--language ` | Lingua predefinita dell'interfaccia (ad es. `fr`, `de`) | _(nessuno)_ |
+| `--brand-name ` | Nome del brand personalizzato | _(nessuno)_ |
+| `--brand-logo ` | Percorso del logo relativo a `public/` | _(nessuno)_ |
+| `--footer-text ` | Testo personalizzato del piè di pagina | _(nessuno)_ |
+| `--ocr-languages ` | Lingue OCR da includere, separate da virgola | `eng` |
+| `--list-ocr-languages` | Stampa i codici e i nomi OCR supportati, poi esce | off |
+| `--search-ocr-language ` | Cerca i codici OCR per nome o abbreviazione | off |
+| `--dockerfile ` | Dockerfile da usare | `Dockerfile` |
+| `--skip-docker` | Salta la build e l'esportazione di Docker | off |
+| `--skip-wasm` | Salta il download WASM (riusa i file `.tgz` esistenti) | off |
+
+Il prompt interattivo accetta anche `list` per stampare l'elenco completo dei codici Tesseract supportati e `search ` per trovare corrispondenze come `search german` o `search chi`.
+
+::: warning Requisito di stessa origine
+I file WASM devono essere serviti dalla **stessa origine** dell'app BentoPDF. I Web Worker usano `importScripts()`, che non può caricare script cross-origin. Ad esempio, se BentoPDF gira su `https://internal.example.com`, anche il base URL WASM deve essere `https://internal.example.com/wasm`.
+:::
+
+#### Passaggi manuali
+
+
+Se preferisci procedere manualmente senza lo script
+
+**Passaggio 1: scarica i pacchetti WASM e OCR** (su una macchina con accesso a internet)
+
+```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
+```
+
+**Passaggio 2: compila l'immagine Docker con gli URL interni**
+
+```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 .
+```
+
+**Passaggio 3: esporta l'immagine Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Passaggio 4: trasferisci nella rete air-gapped**
+
+Copia tramite USB, repository di artefatti interno o altro metodo di trasferimento approvato:
+
+- `bentopdf.tar`: l'immagine Docker
+- I cinque pacchetti `.tgz` WASM/OCR del Passaggio 1
+- La directory `tesseract-langdata/` del Passaggio 1
+- La directory `ocr-fonts/` del Passaggio 1
+
+**Passaggio 5: configura all'interno della rete air-gapped**
+
+```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
+```
+
+Assicurati che i file siano accessibili agli URL configurati nel Passaggio 2, inclusi `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data`, and `.../ocr/fonts`.
+
+
+
+::: info Compili dal sorgente invece di usare Docker?
+Imposta le variabili in `.env.production` prima di eseguire `npm run build`:
+
+```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
+```
+
+:::
+
+### Ospitare il tuo proxy WASM
+
+Se devi servire i file WASM AGPL con gli header CORS corretti, puoi distribuire un semplice proxy. Consulta la [guida al proxy WASM di Cloudflare](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) per un esempio di implementazione.
+
+::: tip Perché separati?
+Questa separazione garantisce:
+
+- Chiara conformità legale per gli utenti commerciali
+- Il nucleo di BentoPDF resta sotto la sua doppia licenza (AGPL-3.0 / Commercial)
+- I file WASM vengono caricati a runtime, non inclusi nel sorgente
+ :::
+
+## Requisiti di sistema
+
+| Requisito | Minimo |
+| --------- | ---------------------------------- |
+| Spazio | ~100 MB (nucleo senza moduli AGPL) |
+| RAM | 512 MB |
+| CPU | Qualsiasi processore moderno |
+
+::: tip
+BentoPDF è un sito statico: non servono database né server backend!
+:::
diff --git a/docs/it/self-hosting/kubernetes.md b/docs/it/self-hosting/kubernetes.md
new file mode 100644
index 00000000..378051f6
--- /dev/null
+++ b/docs/it/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Deploy con Kubernetes
+
+Kubernetes può essere eccessivo per un sito statico, ma è un'ottima scelta se usi già Helm + GitOps come standard.
+
+> [!IMPORTANT]
+> **Header necessari per la conversione dei file Office**
+>
+> Gli strumenti basati su LibreOffice (conversione di Word, Excel, PowerPoint) richiedono questi header HTTP per il supporto a `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Le immagini nginx ufficiali di BentoPDF includono questi header. In Kubernetes, **anche i controller Ingress/Gateway sono reverse proxy**, quindi assicurati che questi header vengano preservati (oppure aggiungili al livello edge).
+
+## Prerequisiti
+
+- Cluster Kubernetes
+- Helm v3
+- Un'immagine nginx di BentoPDF (ad es. `ghcr.io/alam00000/bentopdf:`) che serve sulla **porta 8080**
+
+## Deploy con Helm
+
+### Installazione da questo repository (chart locale)
+
+```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
+```
+
+### Installazione da GHCR (chart OCI)
+
+Se il chart è pubblicato su GHCR come artefatto OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Esporre il servizio
+
+### Port-forward (test rapido)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (facoltativo)
+
+Abilita Ingress (esempio per nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (facoltativo)
+
+Questo chart supporta `Gateway` + `HTTPRoute` della Gateway API.
+
+Esempio (operatore Gateway API di Cloudflare):
+
+```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
+```
+
+## Verificare che gli header SharedArrayBuffer funzionino ancora (Ingress/Gateway)
+
+### Cosa "dovrebbe" succedere
+
+La configurazione nginx di BentoPDF imposta gli header di risposta necessari. La maggior parte dei controller Ingress/Gateway **inoltra invariati gli header di risposta dell'upstream**.
+
+### Cosa può romperlo
+
+- Una policy del controller o dell'edge che **sovrascrive** o **rimuove** gli header di risposta
+- Un middleware di "security headers" che imposta valori COOP/COEP diversi
+
+### Come verificare
+
+Esegui questo comando sul tuo endpoint pubblico:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Dovresti vedere:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Se il tuo controller Ingress non li preserva
+
+Aggiungi gli header al livello edge (dipende dal controller). Esempio per **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;
+```
+
+## Errori di tipo MIME per `.mjs` (iframe di Firma PDF / Compilazione moduli vuoto)
+
+Se la console del browser mostra `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` su una richiesta `.mjs`, un controller Ingress/Gateway davanti all'nginx di BentoPDF sta sostituendo l'header `Content-Type` dell'upstream con `application/octet-stream`.
+
+L'nginx dell'immagine di BentoPDF serve già i file `.mjs` come `application/javascript`. La soluzione è impedire al controller di rimuoverlo o sostituirlo. Per nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Oppure usa un filtro `ResponseHeaderModifier` nella Gateway API per impostare `Content-Type: application/javascript` sui percorsi `.mjs`. Verifica con DevTools → scheda Network: la richiesta `.mjs` che falliva dovrebbe ora mostrare `content-type: application/javascript`.
+
+### Se usi la Gateway API e vuoi aggiungere gli header in modo forzato
+
+La Gateway API supporta un filtro `ResponseHeaderModifier`. Puoi associarlo in `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
+```
+
+Il supporto per filtri specifici dipende dal tuo controller Gateway; se un filtro viene ignorato, aggiungi gli header al livello edge/controller.
+
+## Disabilitare strumenti specifici
+
+Usa una ConfigMap per disabilitare gli strumenti a runtime senza ricostruire l'immagine:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Montala nella directory servita:
+
+```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
+```
+
+Gli ID degli strumenti sono l'URL della pagina senza `.html`: apri uno strumento qualsiasi e guarda l'URL (ad es. `edit-pdf`, `merge-pdf`, `compress-pdf`). Gli strumenti disabilitati sono nascosti dalla homepage, dalla ricerca, dalle scorciatoie, dal workflow builder e dall'accesso diretto tramite URL. Consulta la [guida Docker](/it/self-hosting/docker#disattivare-strumenti-specifici) per l'elenco completo delle opzioni.
diff --git a/docs/it/self-hosting/netlify.md b/docs/it/self-hosting/netlify.md
new file mode 100644
index 00000000..84f1d2b4
--- /dev/null
+++ b/docs/it/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Deploy su Netlify
+
+[Netlify](https://netlify.com) offre un ottimo hosting per siti statici con un generoso piano gratuito.
+
+## Deploy con un clic
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Deploy manuale
+
+### Passaggio 1: collega il repository
+
+1. Accedi a [Netlify](https://app.netlify.com)
+2. Fai clic su "Add new site" → "Import an existing project"
+3. Collega il tuo account GitHub
+4. Seleziona il tuo fork di BentoPDF
+
+### Passaggio 2: configura le impostazioni di build
+
+| Impostazione | Valore |
+| -------------------------- | --------------- |
+| Comando di build | `npm run build` |
+| Directory di pubblicazione | `dist` |
+| Versione di Node | 18+ |
+
+### Passaggio 3: esegui il deploy
+
+Fai clic su "Deploy site" e attendi il completamento della build.
+
+## File di configurazione
+
+Crea `netlify.toml` nella radice del tuo progetto:
+
+```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 Importante
+Gli header `Cross-Origin-Embedder-Policy` e `Cross-Origin-Opener-Policy` sono necessari per le conversioni da Word/ODT/Excel/PowerPoint a PDF. Senza di essi, `SharedArrayBuffer` non è disponibile e il motore WASM di LibreOffice non riesce a inizializzarsi.
+
+Gli header `Content-Encoding: gzip` sui file `.wasm.gz` e `.data.gz` indicano al browser di decomprimerli automaticamente. Senza di essi, il browser riceve byte gzip grezzi e la compilazione WASM fallisce.
+:::
+
+## Variabili d'ambiente
+
+Impostale in Site settings → Environment variables:
+
+| Variabile | Descrizione |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Imposta su `true` per una build minimale |
+| `VITE_BRAND_NAME` | Nome del brand personalizzato (sostituisce "BentoPDF") |
+| `VITE_BRAND_LOGO` | Percorso del logo relativo a `public/` (ad es. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Testo personalizzato del footer/copyright |
+| `VITE_DEFAULT_LANGUAGE` | Lingua predefinita dell'interfaccia (ad es. `fr`, `de`, `es`) |
+
+## Dominio personalizzato
+
+1. Vai su Site settings → Domain management
+2. Fai clic su "Add custom domain"
+3. Segui le istruzioni per la configurazione DNS
+
+## Large Media
+
+Per i file WASM di grandi dimensioni, valuta di abilitare [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Risoluzione dei problemi
+
+### Conversione da Word/ODT/Excel a PDF bloccata al 55%
+
+Se le conversioni dei documenti si bloccano al 55%, apri la Console di DevTools e controlla:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Se `crossOriginIsolated` è `false`, gli header COEP/COOP del tuo `netlify.toml` non vengono applicati. Assicurati che il file sia nella radice del progetto e ripeti il deploy.
+
+Se nella console vedi `expected magic word 00 61 73 6d, found 1f 8b 08 08`, ai file `.wasm.gz` mancano gli header `Content-Encoding: gzip`. Assicurati che i blocchi `[[headers]]` per `soffice.wasm.gz` e `soffice.data.gz` siano presenti nel tuo `netlify.toml`.
+
+### La build fallisce
+
+Controlla la compatibilità della versione di Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Caricamento iniziale lento
+
+Abilita l'ottimizzazione degli asset in Site settings → Build & deploy → Asset optimization.
diff --git a/docs/it/self-hosting/nginx.md b/docs/it/self-hosting/nginx.md
new file mode 100644
index 00000000..506289a7
--- /dev/null
+++ b/docs/it/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Deploy con Nginx
+
+Ospita BentoPDF sul tuo server usando Nginx.
+
+## Prerequisiti
+
+- Server Ubuntu/Debian
+- Nginx installato
+- Certificato SSL (consigliato: Let's Encrypt)
+
+## Passaggio 1: compila il progetto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Per personalizzare il brand, imposta le variabili d'ambiente prima della build:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Passaggio 2: copia i file
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Passaggio 3: configurazione di Nginx
+
+Crea `/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;
+ }
+}
+```
+
+## Passaggio 4: abilita il sito
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Passaggio 5: SSL con Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Deploy in una sottodirectory
+
+Per ospitarlo su `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Compila con:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Ottimizzazione delle prestazioni
+
+Aggiungi a `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;
+}
+```
+
+## Risoluzione dei problemi
+
+### WASM non si carica
+
+Assicurati che il tipo MIME sia impostato:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Firma PDF o Compilazione moduli mostra un visualizzatore vuoto (errore MIME `.mjs`)
+
+Se la console del browser mostra:
+
+```
+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.
+```
+
+…e la richiesta che fallisce termina con `.mjs`, al tuo nginx manca la mappatura `.mjs → application/javascript`. Il visualizzatore PDF incluso (usato da Firma PDF, Compilazione moduli e altri strumenti) distribuisce file ES module con estensione `.mjs`, e il `mime.types` predefinito di nginx non li include.
+
+Risolvi aggiungendo `mjs` alla riga `application/javascript` esistente in `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> NON aggiungere una _seconda_ riga `application/javascript`: nginx legge `mime.types` riga per riga e vince una sola mappatura tipo-estensione, quindi una seconda riga viene ignorata in silenzio su alcune versioni. Modifica la riga esistente aggiungendo `mjs` accanto a `js`.
+
+Oppure sovrascrivi localmente nel tuo blocco server (senza modificare il file globale):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Ricarica nginx dopo la modifica:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Per confermare: in DevTools del browser → scheda Network, trova la richiesta `.mjs` che falliva e controlla l'header di risposta `Content-Type`. Ora dovrebbe essere `application/javascript`, non `application/octet-stream`.
+
+### Conversione da Word/ODT/Excel a PDF non funzionante
+
+LibreOffice WASM richiede `SharedArrayBuffer`, che necessita degli header `Cross-Origin-Embedder-Policy` e `Cross-Origin-Opener-Policy`. Serve anche un contesto sicuro: `http://localhost` funziona per i test in locale, ma `http://192.168.x.x` o altri IP della LAN di solito richiedono HTTPS. Nota che le direttive `add_header` di nginx in un blocco `location` **sovrascrivono** quelle a livello di server, non si uniscono. Ogni blocco `location` con il proprio `add_header` deve includere gli header COEP/COOP.
+
+Verifica con:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Se usi un reverse proxy davanti a nginx, assicurati che preservi questi header.
+
+### 502 Bad Gateway
+
+Controlla i log degli errori di Nginx:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/it/self-hosting/vercel.md b/docs/it/self-hosting/vercel.md
new file mode 100644
index 00000000..4ebb5440
--- /dev/null
+++ b/docs/it/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Deploy su Vercel
+
+[Vercel](https://vercel.com) offre l'esperienza di deploy più semplice per i siti statici.
+
+## Deploy con un clic
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Deploy manuale
+
+### Passaggio 1: fai il fork del repository
+
+Fai il fork di [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) sul tuo account GitHub.
+
+### Passaggio 2: importa su Vercel
+
+1. Vai su [vercel.com/new](https://vercel.com/new)
+2. Seleziona il tuo repository forkato
+3. Configura il progetto:
+
+| Impostazione | Valore |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Passaggio 3: variabili d'ambiente (facoltativo)
+
+Aggiungile se necessario:
+
+| Variabile | Descrizione |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Imposta su `true` per un'interfaccia minimale |
+| `VITE_BRAND_NAME` | Nome del brand personalizzato (sostituisce "BentoPDF") |
+| `VITE_BRAND_LOGO` | Percorso del logo relativo a `public/` (ad es. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Testo personalizzato del footer/copyright |
+| `VITE_DEFAULT_LANGUAGE` | Lingua predefinita dell'interfaccia (ad es. `fr`, `de`, `es`) |
+
+### Passaggio 4: esegui il deploy
+
+Fai clic su "Deploy" e attendi il completamento della build.
+
+## Dominio personalizzato
+
+1. Vai alle impostazioni del progetto
+2. Apri "Domains"
+3. Aggiungi il tuo dominio personalizzato
+4. Configura il DNS come indicato
+
+## Limitazioni
+
+::: warning File di grandi dimensioni
+Le funzioni serverless di Vercel hanno un limite di 50MB. Poiché BentoPDF è un sito statico, questo non dovrebbe riguardarti, ma i moduli WASM sono grandi (~100MB in totale). Assicurati che vengano serviti dalla cartella `/public`.
+:::
+
+## Risoluzione dei problemi
+
+### Timeout della build
+
+Se le build vanno in timeout, prova:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 al ricaricamento
+
+Aggiungi un `vercel.json` per il routing SPA:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Conversione da Word/ODT/Excel a PDF non funzionante
+
+Le conversioni WASM di LibreOffice richiedono `SharedArrayBuffer`, che necessita di questi header di risposta su tutte le pagine:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Anche i file precompressi `.wasm.gz` e `.data.gz` richiedono `Content-Encoding: gzip`, così il browser li decomprime.
+
+Aggiungili al tuo `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" }
+ ]
+ }
+ ]
+}
+```
+
+Per verificare, apri la Console di DevTools ed esegui `console.log(window.crossOriginIsolated)`: dovrebbe restituire `true`.
diff --git a/docs/it/tools/add-attachments.md b/docs/it/tools/add-attachments.md
new file mode 100644
index 00000000..569fbc3a
--- /dev/null
+++ b/docs/it/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Aggiungi allegati
+description: Incorpora file di qualsiasi tipo in un PDF a livello di documento o allegati a pagine specifiche.
+---
+
+# Aggiungi allegati
+
+Incorpora uno o più file direttamente all'interno di un documento PDF. Gli allegati possono essere aggiunti a livello di documento (visibili nel pannello degli allegati di qualsiasi lettore PDF) oppure associati a pagine specifiche.
+
+## Come funziona
+
+1. Carica il PDF a cui vuoi allegare i file.
+2. Usa l'area di rilascio degli allegati per selezionare i file da incorporare (di qualsiasi tipo).
+3. Scegli il livello dell'allegato: **Documento** (predefinito) o **Pagina**.
+4. Se scegli il livello Pagina, inserisci un intervallo di pagine (ad es. `1-3` o `5`).
+5. Fai clic sul pulsante di elaborazione. Il PDF modificato viene scaricato con i tuoi file incorporati.
+
+## Funzionalità
+
+- Allega qualsiasi tipo di file: immagini, fogli di calcolo, archivi, eseguibili, qualunque cosa
+- Posizionamento dell'allegato a livello di documento o di pagina
+- È possibile allegare più file in una sola operazione
+- Mostra nomi e dimensioni di tutti gli allegati selezionati
+- L'output conserva il contenuto originale del PDF con l'aggiunta dei file incorporati
+
+## Opzioni
+
+| Opzione | Descrizione |
+| --------------------- | ----------------------------------------------------------------------------- |
+| **Livello documento** | Allega i file al PDF nel suo insieme, accessibili dal pannello degli allegati |
+| **Livello pagina** | Allega i file a pagine specifiche, indicate tramite un intervallo di pagine |
+
+## Casi d'uso
+
+- Unire i dati di origine (file Excel, CSV) a un report in PDF
+- Allegare i file immagine originali al PDF del portfolio di un fotografo
+- Incorporare documenti di supporto in un contratto o in una proposta
+- Aggiungere materiali integrativi a pagine specifiche di un manuale di formazione
+
+## Suggerimenti
+
+- Gli allegati a livello di documento sono i più supportati dai lettori PDF. Gli allegati a livello di pagina potrebbero non essere visibili in tutti i visualizzatori.
+- Non c'è un limite alla dimensione degli allegati, ma file incorporati molto grandi aumenteranno proporzionalmente le dimensioni del PDF.
+
+## Strumenti correlati
+
+- [Estrai Allegati](./extract-attachments)
+- [Modifica Allegati](./edit-attachments)
+- [Unisci PDF](./merge-pdf)
diff --git a/docs/it/tools/add-blank-page.md b/docs/it/tools/add-blank-page.md
new file mode 100644
index 00000000..6a69f8b5
--- /dev/null
+++ b/docs/it/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Aggiungi pagina vuota
+description: Inserisci una o più pagine vuote in qualsiasi posizione di un documento PDF.
+---
+
+# Aggiungi pagina vuota
+
+Inserisci pagine vuote in un PDF nella posizione che indichi. Decidi tu dove vanno le pagine vuote e quante aggiungerne.
+
+## Come funziona
+
+1. Carica un file PDF. Lo strumento mostra il numero di pagine.
+2. Inserisci la **posizione** in cui inserire le pagine vuote. Usa `0` per inserirle all'inizio, oppure il numero totale di pagine per aggiungerle alla fine.
+3. Inserisci il **numero** di pagine vuote da aggiungere (il valore predefinito è 1).
+4. Fai clic sul pulsante di elaborazione. Il PDF modificato viene scaricato con le pagine vuote inserite.
+
+## Funzionalità
+
+- Inserimento in qualsiasi posizione: all'inizio, nel mezzo o alla fine del documento
+- Aggiunta di più pagine vuote in una sola operazione
+- Il suggerimento sulla posizione si aggiorna dinamicamente in base al numero di pagine del PDF caricato
+- Pagine vuote in formato A4 standard
+
+## Casi d'uso
+
+- Aggiungere una pagina vuota di separazione tra le sezioni di un documento composito
+- Inserire pagine vuote per allineare la stampa fronte/retro
+- Lasciare spazio per appunti scritti a mano in una guida allo studio stampata
+- Riempire un documento per raggiungere un numero minimo di pagine
+
+## Suggerimenti
+
+- La posizione `0` inserisce prima della prima pagina. Una posizione pari al numero totale di pagine aggiunge dopo l'ultima pagina.
+- Se devi inserire contenuto (non solo pagine vuote) in una posizione specifica, usa [Strumento PDF multifunzione](./pdf-multi-tool) per inserire un altro PDF dopo una determinata pagina.
+
+## Strumenti correlati
+
+- [Duplica e Organizza](./organize-pdf)
+- [Strumento PDF multifunzione](./pdf-multi-tool)
+- [Unisci PDF](./merge-pdf)
diff --git a/docs/it/tools/add-page-labels.md b/docs/it/tools/add-page-labels.md
new file mode 100644
index 00000000..02c08f92
--- /dev/null
+++ b/docs/it/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Aggiungi etichette di pagina
+description: Aggiungi etichette di pagina PDF con numeri romani, prefissi alfabetici, numerazione personalizzata e più regole per documento.
+---
+
+# Aggiungi etichette di pagina
+
+Le etichette di pagina controllano come vengono mostrati i numeri di pagina nei visualizzatori PDF (il numero nella barra degli strumenti, non quello stampato sulla pagina). Questo strumento ti permette di assegnare schemi di etichettatura diversi a intervalli di pagine diversi: numeri romani per le pagine iniziali, numeri decimali per il corpo del testo, appendici con lettere e altro ancora.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Compare il pannello delle opzioni con una regola di etichetta predefinita.
+3. Configura ogni regola con un intervallo di pagine, uno stile, un prefisso facoltativo e un valore iniziale.
+4. Fai clic su **Aggiungi regola** per creare regole aggiuntive per sezioni diverse.
+5. Fai clic su **Aggiungi Etichette di Pagina** per applicare tutte le regole e scaricare il risultato.
+
+## Opzioni
+
+Ogni regola di etichetta ha queste impostazioni:
+
+- **Intervallo di pagine**: le pagine a cui si applica la regola. Lascia vuoto per tutte le pagine. Supporta intervalli come `1-4`, `7`, `odd` o `1-9,30-40`.
+- **Stile etichetta**: Arabo decimale, Romano minuscolo (i, ii, iii), Romano maiuscolo (I, II, III), Lettere minuscole (a, b, c), Lettere maiuscole (A, B, C) o Nessuna etichetta (solo prefisso).
+- **Prefisso etichetta**: testo facoltativo anteposto a ogni etichetta, ad esempio "A-" per creare etichette come A-1, A-2, A-3.
+- **Valore iniziale**: il numero da cui iniziare il conteggio. Il valore predefinito è 1. Imposta 0 per una numerazione che parte da zero.
+- **Continua la numerazione tra intervalli non contigui**: attivalo quando una regola riguarda pagine non contigue (come `1-9,30-40` o `odd`) e vuoi che la numerazione prosegua in sequenza.
+- **Rimuovi le etichette di pagina esistenti**: selezionato per impostazione predefinita. Cancella le etichette precedenti prima di applicare le nuove regole.
+
+## Funzionalità
+
+- Più regole di etichetta per documento, per schemi di numerazione complessi
+- Sei stili di etichetta che coprono tutti i sistemi di numerazione standard
+- Supporto di prefissi personalizzati per l'etichettatura per sezioni
+- Supporto di intervalli non contigui con numerazione progressiva
+- Possibilità di mantenere o rimuovere le etichette esistenti
+
+## Casi d'uso
+
+- Impostare etichette con numeri romani (i, ii, iii) per la prefazione di un libro e numeri decimali per il testo principale
+- Etichettare le pagine delle appendici con prefissi alfabetici come "A-1", "A-2", "B-1", "B-2"
+- Correggere le etichette di pagina in un documento scansionato in cui i numeri di pagina fisici non corrispondono all'ordine delle pagine del PDF
+- Aggiungere una numerazione che parte da zero per documenti tecnici
+
+## Suggerimenti
+
+- Le etichette di pagina sono metadati che i visualizzatori PDF mostrano nella barra di navigazione. Non vengono stampate sulla pagina. Per numeri visibili, usa [Numeri di Pagina](./page-numbers).
+- Questo strumento richiede che CoherentPDF (CPDF) sia configurato nelle tue Impostazioni WASM. Se non è configurato, ti verrà chiesto di farlo.
+
+## Strumenti correlati
+
+- [Numeri di Pagina](./page-numbers)
+- [Numerazione Bates](./bates-numbering)
+- [Modifica Segnalibri](./bookmark)
diff --git a/docs/it/tools/add-stamps.md b/docs/it/tools/add-stamps.md
new file mode 100644
index 00000000..c25c5120
--- /dev/null
+++ b/docs/it/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Aggiungi timbri
+description: Aggiungi timbri immagine alle pagine del tuo PDF con una barra degli strumenti di annotazione integrata e attribuzione con nome utente.
+---
+
+# Aggiungi timbri
+
+Applica timbri immagine alle pagine del tuo PDF usando un visualizzatore integrato con una barra degli strumenti di annotazione per timbri. I timbri possono includere il tuo nome come attribuzione, il che è utile per flussi di approvazione, processi di revisione e contrassegno dei documenti.
+
+## Come funziona
+
+1. Inserisci il tuo nome nel campo **Nome utente del timbro**. Questo nome comparirà sui timbri che crei.
+2. Carica il tuo file PDF facendo clic o trascinandolo nell'area di rilascio.
+3. L'editor dei timbri si apre con il tuo documento caricato in un visualizzatore.
+4. Usa lo strumento timbro immagine della barra degli strumenti per selezionare e posizionare i timbri su qualsiasi pagina.
+5. Posiziona e ridimensiona i timbri come necessario.
+6. Fai clic su **Salva PDF con timbri** per scaricare il risultato.
+
+## Funzionalità
+
+- Visualizzatore PDF integrato con una barra degli strumenti di annotazione specifica per i timbri
+- Attribuzione con nome utente sui timbri creati
+- Posizionamento di timbri immagine su qualsiasi pagina
+- Posizionamento e ridimensionamento con trascinamento
+- Dimensionamento automatico del visualizzatore in base alle proporzioni della pagina
+- Visualizzazione del file con nome e dimensioni
+
+## Casi d'uso
+
+- Aggiungere timbri immagine "APPROVATO" o "REVISIONATO" ai documenti in un flusso di revisione
+- Applicare immagini di sigilli aziendali o timbri notarili su documenti ufficiali
+- Contrassegnare le pagine con timbri "RICEVUTO" che includono il nome del revisore
+- Aggiungere timbri di controllo qualità ai rapporti di ispezione
+
+## Suggerimenti
+
+- Imposta il nome utente del timbro prima di caricare il PDF. Il nome utente viene incorporato nei metadati del timbro.
+- Il visualizzatore adatta la propria altezza alle proporzioni della prima pagina del PDF per una visualizzazione ottimale.
+- Per filigrane testuali invece di timbri immagine, usa lo strumento [Aggiungi Filigrana](./add-watermark).
+
+## Strumenti correlati
+
+- [Firma PDF](./sign-pdf)
+- [Aggiungi Filigrana](./add-watermark)
+- [Editor PDF](./edit-pdf)
diff --git a/docs/it/tools/add-watermark.md b/docs/it/tools/add-watermark.md
new file mode 100644
index 00000000..d1e7ddf2
--- /dev/null
+++ b/docs/it/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Aggiungi filigrana
+description: Applica filigrane di testo o immagine alle pagine PDF con un editor visivo a trascinamento e anteprima in tempo reale.
+---
+
+# Aggiungi filigrana
+
+Aggiungi filigrane di testo o immagine alle pagine del tuo PDF usando un editor visivo. Puoi posizionare la filigrana trascinandola direttamente sull'anteprima, ridimensionarla con le maniglie agli angoli e configurare opacità, rotazione, font e colore. Ogni pagina può avere la propria posizione della filigrana, oppure puoi applicare la stessa filigrana a tutte le pagine in una volta.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. L'editor si apre con un'anteprima in tempo reale della prima pagina e una filigrana sovrapposta trascinabile.
+3. Scegli tra la modalità filigrana **Testo** o **Immagine** con i pulsanti di selezione.
+4. Configura le impostazioni della filigrana nel pannello laterale.
+5. Trascina la filigrana sull'anteprima per posizionarla esattamente dove vuoi. Usa le maniglie agli angoli per ridimensionarla.
+6. Passa da una pagina all'altra per impostare filigrane per singola pagina, oppure lascia selezionato **Applica a tutte le pagine**.
+7. Fai clic su **Aggiungi Filigrana** per elaborare e scaricare.
+
+## Opzioni
+
+**Impostazioni della filigrana di testo:**
+
+- **Testo**: il testo della filigrana (ad es. "RISERVATO", "BOZZA").
+- **Dimensione del font**: da 10 a 200 punti. Il valore predefinito è 72.
+- **Colore**: qualsiasi colore tramite il selettore di colori.
+- **Opacità**: controlla la trasparenza da completamente trasparente a completamente opaco.
+- **Rotazione**: ruota il testo della filigrana da -180 a 180 gradi.
+
+**Impostazioni della filigrana immagine:**
+
+- **Caricamento immagine**: carica un file PNG, JPG o altra immagine da usare come filigrana.
+- **Opacità**: controlla la trasparenza dell'immagine.
+- **Scala**: ridimensiona la filigrana immagine.
+
+**Impostazioni di layout:**
+
+- **Singola**: una filigrana per pagina, posizionata trascinandola o con i preset di posizione.
+- **A mosaico**: ripete la filigrana su tutta la pagina in una griglia diagonale che segue l'angolo di rotazione, in modo che il segno copra il documento da un bordo all'altro.
+- **Spaziatura orizzontale**: spazio tra le tessere lungo la direzione del testo, come percentuale della larghezza della filigrana (solo in modalità a mosaico).
+- **Spaziatura verticale**: spazio tra le righe di tessere, come percentuale dell'altezza della filigrana (solo in modalità a mosaico).
+
+**Impostazioni generali:**
+
+- **Applica a tutte le pagine**: quando è selezionato, la stessa filigrana viene applicata a ogni pagina. Deseleziona per impostare filigrane individuali per pagina.
+- **Intervallo di pagine**: indica quali pagine ricevono la filigrana (ad es. "1-3, 5, 7-9" oppure "all").
+
+## Funzionalità
+
+- Posizionamento visivo tramite trascinamento su un'anteprima PDF in tempo reale
+- Filigrana ridimensionabile con maniglie agli angoli
+- Modalità filigrana di testo e di immagine
+- Layout singolo o a mosaico (ripetuto) su tutta la pagina con spaziatura regolabile
+- Applicazione della filigrana per singola pagina o globale
+- Navigazione pagina per pagina nell'anteprima
+- Controlli di opacità e rotazione
+- Filtro per intervallo di pagine
+
+## Casi d'uso
+
+- Contrassegnare i documenti in bozza con "BOZZA" prima di farli circolare per la revisione
+- Aggiungere filigrane "RISERVATO" a report finanziari sensibili
+- Personalizzare i documenti con una filigrana immagine del logo aziendale
+- Applicare "CAMPIONE" alla documentazione di prodotto condivisa con potenziali clienti
+- Aggiungere avvisi di copyright ai materiali PDF distribuiti
+
+## Suggerimenti
+
+- Per filigrane diagonali sulla pagina, imposta una rotazione di circa 45 gradi e aumenta la dimensione del font.
+- La modalità a mosaico rende il documento molto più difficile da riutilizzare dopo un ritaglio, perché rimuovere un segno ne lascia comunque dozzine. Riduci l'opacità quando usi il mosaico, così il testo sottostante resta leggibile.
+- Le filigrane immagine con sfondo trasparente (formato PNG) si fondono più naturalmente con il contenuto del documento.
+- Se ti servono testi di filigrana diversi su pagine diverse, deseleziona "Applica a tutte le pagine" e passa da una pagina all'altra.
+
+## Strumenti correlati
+
+- [Intestazione e Piè di Pagina](./header-footer)
+- [Aggiungi Timbri](./add-stamps)
+- [Numerazione Bates](./bates-numbering)
+- [Firma PDF](./sign-pdf)
diff --git a/docs/it/tools/adjust-colors.md b/docs/it/tools/adjust-colors.md
new file mode 100644
index 00000000..25c84ead
--- /dev/null
+++ b/docs/it/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Regola colori
+description: Regola con precisione luminosità, contrasto, saturazione, tonalità, temperatura, tinta, gamma e seppia nel tuo PDF.
+---
+
+# Regola colori
+
+Un set completo di strumenti di color grading per i PDF. Regola otto parametri indipendenti (luminosità, contrasto, saturazione, variazione di tonalità, temperatura, tinta, gamma e seppia) con un'anteprima in tempo reale che si aggiorna mentre muovi ogni cursore.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. L'editor si apre mostrando un'anteprima della prima pagina e un pannello delle impostazioni colore.
+3. Muovi i cursori per regolare ogni parametro colore. L'anteprima si aggiorna in tempo reale.
+4. Fai clic su **Reimposta** per riportare tutti i cursori alle posizioni predefinite.
+5. Fai clic su **Applica** per elaborare tutte le pagine e scaricare il PDF regolato.
+
+## Opzioni
+
+- **Luminosità**: schiarisce o scurisce l'intera pagina (da -100 a +100).
+- **Contrasto**: aumenta o riduce la differenza tra le aree chiare e scure (da -100 a +100).
+- **Saturazione**: aumenta o riduce l'intensità dei colori (da -100 a +100). Impostando -100 si ottiene un risultato in scala di grigi.
+- **Variazione di tonalità**: ruota la ruota dei colori per spostare uniformemente tutti i colori.
+- **Temperatura**: sposta i colori verso toni più caldi (giallo/arancione) o più freddi (blu).
+- **Tinta**: aggiunge una dominante verde o magenta.
+- **Gamma**: regola la luminosità dei mezzitoni con una curva gamma. Valori inferiori a 1.0 scuriscono i mezzitoni, valori superiori a 1.0 li schiariscono.
+- **Seppia**: applica il classico effetto seppia. Valori più alti producono una tinta marrone più intensa.
+
+## Funzionalità
+
+- Otto parametri colore regolabili in modo indipendente
+- Anteprima in tempo reale che risponde subito alle modifiche dei cursori
+- Pulsante di reimpostazione per tornare rapidamente ai valori predefiniti
+- Elabora tutte le pagine del documento
+- Funziona con qualsiasi contenuto PDF (testo, immagini, grafica)
+
+## Casi d'uso
+
+- Schiarire una scansione scura o correggere pagine sovraesposte
+- Desaturare un documento colorato per ridurre il consumo di inchiostro prima della stampa
+- Applicare un tono seppia per dare un aspetto antico a certificati o riconoscimenti
+- Correggere la temperatura colore di foto incorporate in un PDF
+- Aumentare il contrasto di documenti scansionati sbiaditi o di bassa qualità
+
+## Suggerimenti
+
+- Per una rapida conversione in scala di grigi, trascina il cursore della saturazione fino a -100.
+- Il cursore gamma è particolarmente utile per migliorare la leggibilità dei documenti scansionati in cui i mezzitoni sono troppo scuri o troppo chiari.
+- Come gli altri strumenti di effetti immagine, questo rasterizza ogni pagina. L'output sarà basato su immagini, quindi il testo non sarà selezionabile.
+
+## Strumenti correlati
+
+- [Inverti Colori](./invert-colors)
+- [Effetto scanner](./scanner-effect)
+- [Colore di Sfondo](./background-color)
diff --git a/docs/it/tools/alternate-merge.md b/docs/it/tools/alternate-merge.md
new file mode 100644
index 00000000..895943ca
--- /dev/null
+++ b/docs/it/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Alterna e mescola pagine
+description: Unisci i PDF alternando le pagine di ciascun file, con conservazione dei segnalibri.
+---
+
+# Alterna e mescola pagine
+
+Alterna le pagine di più file PDF in modo che si susseguano tra un documento e l'altro. È lo strumento giusto quando un'unione standard accoderebbe semplicemente i file uno dopo l'altro, ma a te serve la pagina 1 del File A, poi la pagina 1 del File B, poi la pagina 2 del File A, e così via.
+
+## Come funziona
+
+1. Carica almeno due file PDF usando l'area di rilascio.
+2. Lo strumento mostra ogni file con il numero di pagine e la dimensione.
+3. Trascina le maniglie per riordinare quale file fornisce per primo le pagine nella sequenza di alternanza.
+4. Fai clic su **Mescola pagine** per produrre l'output alternato.
+5. Il risultato viene scaricato come `alternated-mixed.pdf`.
+
+## Funzionalità
+
+- Alterna le pagine di un numero qualsiasi di PDF (minimo due)
+- Riordino dei file con trascinamento per controllare la priorità di alternanza
+- Conserva i segnalibri dei documenti di origine
+- Mostra il numero di pagine e la dimensione di ogni file caricato
+- Elaborazione tramite un web worker dedicato per un'interfaccia reattiva
+
+## Casi d'uso
+
+- Ricomporre scansioni fronte/retro in cui le pagine dispari e pari sono state scansionate separatamente
+- Combinare fogli di domande con le chiavi di risposta, in modo che ogni domanda sia seguita dalla sua risposta
+- Unire documenti bilingue pagina per pagina (ad es. inglese su un lato, traduzione sul successivo)
+- Alternare le scansioni di fronte e retro ottenute da uno scanner a facciata singola
+
+## Suggerimenti
+
+- Se i PDF di origine hanno un numero di pagine diverso, le pagine del documento più corto finiranno per prime e le pagine rimanenti del documento più lungo appariranno alla fine.
+- L'ordine dei file conta: il primo file dell'elenco fornisce la prima pagina dell'output. Trascina per riordinare se necessario.
+
+## Strumenti correlati
+
+- [Unisci PDF](./merge-pdf)
+- [Duplica e Organizza](./organize-pdf)
+- [Dividi PDF](./split-pdf)
diff --git a/docs/it/tools/background-color.md b/docs/it/tools/background-color.md
new file mode 100644
index 00000000..9eac83de
--- /dev/null
+++ b/docs/it/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Colore di sfondo
+description: Cambia il colore di sfondo di ogni pagina del tuo PDF mantenendo tutto il contenuto in primo piano.
+---
+
+# Colore di sfondo
+
+Imposta un colore di sfondo uniforme dietro tutto il contenuto esistente del tuo PDF. Lo strumento crea un rettangolo colorato su ogni pagina e sovrappone il contenuto originale, così testo, immagini e grafica restano pienamente visibili sul nuovo sfondo.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Scegli un colore di sfondo con il selettore di colori. Il valore predefinito è un giallo chiaro (#FFFFCC).
+3. Fai clic su **Cambia Colore di Sfondo** per elaborare.
+4. Il PDF aggiornato viene scaricato automaticamente.
+
+## Opzioni
+
+- **Colore di Sfondo**: un selettore di colori standard per scegliere qualsiasi colore a tinta unita. Il valore predefinito è il giallo chiaro.
+
+## Funzionalità
+
+- Applica un colore di sfondo uniforme a ogni pagina
+- Conserva tutto il contenuto originale (testo, immagini, grafica vettoriale) sopra lo strato colorato
+- Mantiene le dimensioni originali delle pagine
+- Funziona con documenti di qualsiasi numero di pagine
+
+## Casi d'uso
+
+- Aggiungere uno sfondo crema o avorio chiaro per dare ai documenti un aspetto più morbido, simile alla carta
+- Codificare con i colori gruppi di documenti applicando sfondi diversi a categorie diverse
+- Creare versioni visivamente distinte dello stesso documento per pubblici diversi
+- Aggiungere una leggera tinta di sfondo per migliorare la leggibilità quando si proiettano i documenti sullo schermo
+
+## Suggerimenti
+
+- I colori chiari e tenui funzionano meglio. Uno sfondo molto scuro può rendere il testo difficile da leggere, a meno che il testo non sia già di colore chiaro.
+- Se vuoi cambiare sia lo sfondo sia il colore del testo, applica prima il colore di sfondo, poi usa [Cambia Colore Testo](./text-color) sul risultato.
+- Questo strumento lavora a livello strutturale del PDF (senza rasterizzazione), quindi il testo resta selezionabile e ricercabile nell'output.
+
+## Strumenti correlati
+
+- [Cambia Colore Testo](./text-color)
+- [Inverti Colori](./invert-colors)
+- [Regola colori](./adjust-colors)
diff --git a/docs/it/tools/bates-numbering.md b/docs/it/tools/bates-numbering.md
new file mode 100644
index 00000000..3243620a
--- /dev/null
+++ b/docs/it/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Numerazione Bates
+description: Applica numeri Bates a uno o più PDF con modelli personalizzabili, riempimento, font e posizionamento.
+---
+
+# Numerazione Bates
+
+La numerazione Bates applica identificatori sequenziali a ogni pagina dei tuoi PDF. È il metodo standard per etichettare i documenti nei procedimenti legali, negli audit e nei flussi di conformità. Questo strumento supporta più file e modelli personalizzabili, e produce PDF numerati singolarmente oppure un unico archivio ZIP.
+
+## Come funziona
+
+1. Carica uno o più file PDF. Puoi trascinare più file contemporaneamente.
+2. Scegli un preset di stile o crea un modello personalizzato.
+3. Configura posizione, font, dimensione, colore e numeri iniziali.
+4. Fai clic su **Applica Numeri Bates** per elaborare.
+5. Un singolo file viene scaricato direttamente. Più file vengono scaricati come archivio ZIP.
+
+## Opzioni
+
+- **Preset di stile**: scegli tra i formati integrati:
+ - Esibito + Caso + Bates + Pagina (ad es. "Exhibit 1 Case XYZ 000001 Page 1")
+ - Esibito + Caso + Bates (senza numero di pagina)
+ - Caso + Bates
+ - Solo numero Bates (ad es. "000001")
+ - Personalizzato (scrivi il tuo modello)
+- **Personalizza stile**: una stringa modello che usa i segnaposto: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Riempimento Bates**: numero di cifre (da 3 a 6) per i numeri Bates con zeri iniziali. Visibile solo in modalità personalizzata.
+- **Posizione**: intestazione o piè di pagina, a sinistra, al centro o a destra.
+- **Il Bates inizia da**: il primo numero Bates. Il valore predefinito è 1. La numerazione prosegue tra i file.
+- **Il contatore file inizia da**: il numero iniziale per il segnaposto `[FILE]`.
+- **Font**: Helvetica, Times New Roman o Courier.
+- **Dimensione del font**: dimensione del testo applicato.
+- **Colore**: selettore di colori per il testo del numero Bates.
+
+## Funzionalità
+
+- Anteprima in tempo reale che mostra come appariranno i numeri Bates in tutti i file caricati
+- Supporto di più file con numerazione continua tra i documenti
+- Riordino dei file con trascinamento per controllare la sequenza di numerazione
+- Sei opzioni di posizione (intestazione/piè di pagina, sinistra/centro/destra)
+- Calcolo adattivo dei margini che rispetta i diversi formati di pagina
+- Output ZIP per lotti di più file
+- Segnaposto nei modelli per la massima flessibilità
+
+## Casi d'uso
+
+- Applicare numeri di esibito sequenziali ai documenti di discovery per le cause legali
+- Numerare pacchetti di prove di audit che comprendono decine di file
+- Applicare numeri di riferimento normativi alla documentazione di conformità
+- Etichettare gli allegati di una domanda di brevetto con identificatori specifici del caso
+
+## Suggerimenti
+
+- Trascina i file nell'elenco per riordinarli prima dell'elaborazione. La sequenza di numerazione Bates segue questo ordine.
+- Usa il segnaposto `[FILENAME]` per includere il nome del file originale nel timbro, così è più facile risalire dalle pagine ai documenti di origine.
+- Il riquadro di anteprima si aggiorna in tempo reale mentre cambi le impostazioni, così puoi verificare il formato prima di elaborare.
+
+## Strumenti correlati
+
+- [Numeri di Pagina](./page-numbers)
+- [Aggiungi Etichette di Pagina](./add-page-labels)
+- [Intestazione e Piè di Pagina](./header-footer)
diff --git a/docs/it/tools/bmp-to-pdf.md b/docs/it/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..11836680
--- /dev/null
+++ b/docs/it/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP in PDF
+description: Converti le immagini bitmap BMP in formato PDF direttamente nel tuo browser, senza caricare nulla su alcun server.
+---
+
+# BMP in PDF
+
+Converti i file Windows Bitmap (BMP) in PDF. BMP è un formato immagine non compresso ancora presente nei sistemi legacy, nell'imaging medico e negli scanner industriali. Questo strumento li converte in PDF senza bisogno di installare nulla.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :--------- |
+| BMP | `.bmp` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento oppure trascina i tuoi file BMP.
+2. Controlla l'elenco dei file. Aggiungi altri file o rimuovi quelli che non vuoi.
+3. Fai clic su **Converti in PDF**. L'output viene scaricato come `from_bmps.pdf`.
+
+Ogni BMP viene disegnato su un canvas, esportato come PNG e poi incorporato nel PDF tramite pdf-lib. Le dimensioni della pagina corrispondono a quelle dell'immagine originale.
+
+## Opzioni
+
+Questo strumento non offre impostazioni di qualità aggiuntive. Le immagini vengono incorporate alla loro risoluzione originale come PNG senza perdita all'interno del PDF.
+
+## Casi d'uso
+
+- Convertire documenti scansionati legacy salvati come BMP in PDF per l'archiviazione
+- Trasformare screenshot BMP di vecchie applicazioni Windows in documenti condivisibili
+- Elaborare l'output di scanner medicali o industriali che usano BMP per impostazione predefinita
+- Migrare vecchi archivi di immagini verso un formato più portabile
+
+## Suggerimenti
+
+- I file BMP non sono compressi, quindi tendono a essere grandi. Il PDF risultante sarà molto più piccolo, perché internamente le immagini vengono ricodificate come PNG.
+- Se hai file BMP insieme ad altri formati di immagine, usa lo strumento [Immagini in PDF](./image-to-pdf) per convertire tutto in un unico lotto.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [PNG in PDF](./png-to-pdf)
+- [TIFF in PDF](./tiff-to-pdf)
diff --git a/docs/it/tools/bookmark.md b/docs/it/tools/bookmark.md
new file mode 100644
index 00000000..fe6af782
--- /dev/null
+++ b/docs/it/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Modifica segnalibri
+description: Aggiungi, modifica, importa, esporta ed elimina i segnalibri dei PDF con un editor visuale e supporto CSV/JSON.
+---
+
+# Modifica segnalibri
+
+L'editor di segnalibri ti dà il pieno controllo sui segnalibri di navigazione del PDF (detti anche struttura o outline). Puoi aggiungere nuovi segnalibri, modificare quelli esistenti, riorganizzare la gerarchia e importare o esportare i dati dei segnalibri in formato CSV e JSON.
+
+## Come funziona
+
+1. Carica il tuo PDF facendo clic o trascinando un file nell'area di rilascio.
+2. Facoltativamente, seleziona **Estrai automaticamente segnalibri esistenti** per importare l'albero dei segnalibri attuale del documento.
+3. L'editor si apre con una vista divisa: il visualizzatore PDF a sinistra, il pannello dei segnalibri a destra.
+4. Digita il titolo di un segnalibro e fai clic su **Aggiungi alla pagina** per crearne uno che punta alla pagina corrente.
+5. Usa i pulsanti della barra degli strumenti per riordinare, formattare o eliminare i segnalibri.
+6. Fai clic su **Salva PDF con segnalibri** per scaricare il file aggiornato.
+
+## Funzionalità
+
+- Visualizzatore PDF con navigazione tra le pagine, controlli dello zoom e campo per andare a una pagina
+- Aggiungi segnalibri a qualsiasi pagina con un solo clic
+- Fai clic direttamente sul PDF per impostare una destinazione precisa del segnalibro (modalità selezione)
+- Gerarchia di segnalibri annidati con riordinamento tramite trascinamento
+- Operazioni in blocco: seleziona più segnalibri per cambiarne colore e stile o eliminarli in una volta
+- Ricerca dei segnalibri per trovare rapidamente le voci in alberi grandi
+- Annulla e ripeti per tutte le modifiche
+- Importa segnalibri da file CSV (titolo, pagina, livello) o JSON
+- Esporta i segnalibri in CSV o JSON per modificarli all'esterno
+- Stile dei segnalibri: colore (rosso, blu, verde, giallo, viola) e stile del carattere (grassetto, corsivo, grassetto corsivo)
+- Navigazione rapida: scorri le pagine con i tasti Pag su/giù
+
+## Opzioni
+
+- **Estrai automaticamente segnalibri esistenti**: se selezionata, lo strumento legge e mostra i segnalibri attuali del PDF al caricamento.
+- **Modalità batch**: attivala per selezionare più segnalibri e applicare in blocco colore, stile o eliminazione.
+- **Espandi tutto / Comprimi tutto**: mostra o nascondi rapidamente i segnalibri figli annidati.
+
+## Casi d'uso
+
+- Aggiungere un indice a un manuale o a un libro di testo privo di segnalibri
+- Ristrutturare i segnalibri in un documento scansionato dopo l'elaborazione OCR
+- Esportare i segnalibri in CSV, modificarli in un foglio di calcolo e reimportarli
+- Ripulire segnalibri generati automaticamente con riferimenti di pagina errati
+- Aggiungere segnalibri colorati per evidenziare le sezioni importanti in una memoria legale
+
+## Suggerimenti
+
+- Usa l'importazione CSV per creare segnalibri in massa. Il formato è semplice: `title,page,level`, dove il livello 1 è il livello principale.
+- La modalità selezione ti permette di fare clic su un punto esatto della pagina PDF per impostare la destinazione del segnalibro, in modo più preciso rispetto al solo numero di pagina.
+- Esporta i segnalibri prima di apportare modifiche importanti, così avrai un backup.
+
+## Strumenti correlati
+
+- [Indice](./table-of-contents)
+- [Editor PDF](./edit-pdf)
+- [Aggiungi etichette di pagina](./add-page-labels)
diff --git a/docs/it/tools/cbz-to-pdf.md b/docs/it/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..67f41990
--- /dev/null
+++ b/docs/it/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ in PDF
+description: Converti gli archivi di fumetti CBZ e CBR in PDF nel tuo browser. Gratuito, privato, senza caricamenti.
+---
+
+# CBZ in PDF
+
+Trasforma gli archivi di fumetti in PDF. CBZ e CBR sono i formati standard per i fumetti digitali: sono semplici archivi ZIP o RAR pieni di immagini. Questo strumento estrae ogni pagina, mantiene l'ordine di lettura e produce un PDF pulito in cui ogni immagine diventa una pagina a dimensione intera.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------ | :--------- | :---------------------------------------------------------------------- |
+| CBZ | `.cbz` | Archivio di fumetti basato su ZIP (elaborato in locale con pdf-lib) |
+| CBR | `.cbr` | Archivio di fumetti basato su RAR (elaborato tramite il motore PyMuPDF) |
+
+Il convertitore CBZ riconosce le immagini JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC e JXL contenute nell'archivio. I formati non standard vengono convertiti automaticamente in PNG prima di essere incorporati.
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file CBZ o CBR. Puoi mescolare entrambi i formati in un unico lotto.
+2. Controlla i file elencati. Rimuovi quelli che non ti servono oppure fai clic su **Aggiungi altri file** per aggiungerne altri.
+3. Fai clic su **Converti in PDF**. Per i file CBZ, lo strumento decomprime l'archivio, ordina le immagini per nome in ordine naturale, rileva il formato reale di ogni immagine e le incorpora in un PDF con pdf-lib. I file CBR passano invece dal motore PyMuPDF.
+4. Un singolo file viene scaricato come PDF. Più file producono un archivio ZIP chiamato `comic-converted.zip`.
+
+## Opzioni
+
+Non serve alcuna configurazione. Ogni immagine diventa una pagina con le stesse dimensioni dell'originale, quindi le doppie pagine restano larghe e le pagine singole restano strette.
+
+## Casi d'uso
+
+- Leggere i fumetti su un tablet o su un'app per smartphone che supporta il PDF ma non CBZ/CBR
+- Stampare pagine specifiche da un fumetto digitale
+- Archiviare una collezione di fumetti in un formato che qualsiasi visualizzatore di file può aprire
+- Condividere un fumetto con chi non ha un lettore di fumetti dedicato
+
+## Suggerimenti
+
+- Le immagini all'interno dell'archivio sono ordinate in ordine naturale (quindi `page2.jpg` viene prima di `page10.jpg`). Assegna ai file una numerazione coerente per ottenere la sequenza di pagine corretta.
+- Il convertitore rileva i formati delle immagini dalle firme binarie, non dalle estensioni dei file. Un PNG chiamato per errore `.jpg` verrà comunque incorporato correttamente.
+- I file CBZ vengono elaborati interamente nel browser senza caricare il motore PyMuPDF, quindi si convertono più velocemente dei file CBR.
+
+## Strumenti correlati
+
+- [EPUB in PDF](./epub-to-pdf)
+- [MOBI in PDF](./mobi-to-pdf)
+- [Immagini in PDF](./image-to-pdf)
diff --git a/docs/it/tools/change-permissions.md b/docs/it/tools/change-permissions.md
new file mode 100644
index 00000000..4233e842
--- /dev/null
+++ b/docs/it/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Modifica permessi
+description: Imposta o modifica i permessi di utilizzo del PDF per stampa, copia, modifica e annotazione. Usa la crittografia AES a 256 bit.
+---
+
+# Modifica permessi
+
+Definisci con precisione cosa possono fare i destinatari con il tuo PDF. A differenza della semplice crittografia che si limita a bloccare il file con una password, questo strumento ti permette di consentire o negare selettivamente stampa, copia, modifica, annotazione, compilazione dei moduli, assemblaggio del documento ed estrazione delle pagine, il tutto applicato tramite crittografia AES a 256 bit.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Se il PDF è già crittografato, inserisci la **Password attuale**.
+3. Imposta una **Nuova password utente** (necessaria per aprire il file) e/o una **Nuova password proprietario** (controlla i permessi).
+4. Attiva o disattiva i singoli permessi con le caselle di controllo.
+5. Fai clic su **Modifica permessi**.
+6. Scarica il PDF aggiornato.
+
+Se lasci vuoti entrambi i campi delle nuove password, lo strumento decrittografa completamente il PDF, rimuovendo ogni crittografia e restrizione.
+
+## Controlli dei permessi
+
+| Permesso | Cosa controlla |
+| ----------------------------------------- | ------------------------------------------------------------ |
+| **Consenti la stampa** | Se il documento può essere stampato |
+| **Consenti la copia del testo** | Se testo e immagini possono essere selezionati e copiati |
+| **Consenti la modifica** | Se il contenuto del documento può essere modificato |
+| **Consenti le annotazioni** | Se possono essere aggiunti commenti, evidenziazioni e timbri |
+| **Consenti la compilazione dei moduli** | Se i campi modulo interattivi possono essere compilati |
+| **Consenti l'assemblaggio del documento** | Se le pagine possono essere inserite, eliminate o ruotate |
+| **Consenti l'estrazione di pagine** | Se le singole pagine possono essere estratte |
+
+Tutti i permessi richiedono una password del proprietario per essere applicati. Senza una password del proprietario, i flag dei permessi vengono ignorati dalla maggior parte dei lettori PDF.
+
+## Come funzionano i permessi nel PDF
+
+I permessi del PDF fanno parte della specifica di crittografia. Sono memorizzati come flag di bit nel dizionario di crittografia e applicati dai lettori PDF conformi. La distinzione fondamentale:
+
+- **Password utente**: necessaria per aprire il file.
+- **Password del proprietario**: necessaria per cambiare i permessi o rimuovere le restrizioni. Senza di essa, i flag dei permessi controllano quali operazioni può eseguire l'utente.
+
+Se imposti solo una password del proprietario (senza password utente), chiunque può aprire il file ma è limitato alle operazioni consentite. Se le imposti entrambe, il file richiede una password per essere aperto ed è limitato dopo l'autenticazione.
+
+## Casi d'uso
+
+- Distribuire un report che può essere visualizzato e stampato ma non modificato né copiato
+- Condividere un modello di contratto che i destinatari possono compilare ma non modificare
+- Pubblicare un catalogo PDF in cui la copia delle immagini è disabilitata
+- Consentire le annotazioni su una bozza in revisione impedendo modifiche strutturali
+
+## Suggerimenti
+
+- Per essere efficace, imposta sempre una password del proprietario. I permessi senza password del proprietario non possono essere fatti rispettare.
+- Alcuni strumenti PDF di terze parti ignorano i flag dei permessi. Per una protezione più forte, valuta di rasterizzare il PDF o di usare il DRM.
+- Usa questo strumento per aggiornare i vecchi PDF crittografati con RC4 ad AES-256.
+
+## Strumenti correlati
+
+- [Proteggi PDF](./protect-pdf): protezione semplice con password, senza permessi granulari
+- [Sblocca PDF](./unlock-pdf): rimuove completamente la crittografia
+- [Rimuovi Restrizioni](./remove-restrictions): elimina tutte le restrizioni quando hai la password del proprietario
diff --git a/docs/it/tools/combine-single-page.md b/docs/it/tools/combine-single-page.md
new file mode 100644
index 00000000..d712f89f
--- /dev/null
+++ b/docs/it/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Combina in una pagina
+description: Unisci tutte le pagine di un PDF in un unico scorrimento continuo verticale o orizzontale.
+---
+
+# Combina in una pagina
+
+Unisci ogni pagina di un PDF in un'unica pagina lunga. Le pagine vengono affiancate in verticale (come un rotolo) o in orizzontale (una accanto all'altra), producendo una sola pagina continua in uscita.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Seleziona la direzione del layout: **Verticale** (pagine impilate dall'alto in basso) oppure **Orizzontale** (pagine affiancate).
+3. Imposta la spaziatura tra le pagine in punti.
+4. Scegli un colore di sfondo per gli spazi tra le pagine.
+5. Facoltativamente, attiva i separatori (linee sottili tra le pagine) e configurane spessore e colore.
+6. Fai clic sul pulsante di elaborazione. Il risultato è un PDF di una sola pagina.
+
+## Funzionalità
+
+- Unione delle pagine in verticale o in orizzontale
+- Spaziatura configurabile tra le pagine
+- Selettore del colore di sfondo per le aree di spazio
+- Linee di separazione facoltative con spessore e colore regolabili
+- Rende ogni pagina originale a piena risoluzione sul canvas combinato
+
+## Opzioni
+
+| Opzione | Descrizione |
+| --------------------------------- | ----------------------------------------------- |
+| **Direzione del layout** | Verticale (impilate) o orizzontale (affiancate) |
+| **Spaziatura** | Spazio tra le pagine in punti |
+| **Colore di sfondo** | Colore dell'area tra le pagine |
+| **Aggiungi linee di separazione** | Attiva le linee sottili tra le pagine |
+| **Spessore del separatore** | Spessore della linea in punti |
+| **Colore del separatore** | Colore delle linee di separazione |
+
+## Casi d'uso
+
+- Creare un'unica immagine lunga da un wireframe o un mockup di design su più pagine
+- Generare una vista continua e scorrevole di un documento da incorporare nel web
+- Unire un fumetto o uno storyboard di più pagine in un'unica striscia
+- Produrre una vista panoramica di pagine in sequenza per la revisione
+
+## Suggerimenti
+
+- L'orientamento verticale funziona meglio per i documenti con pagine verticali. Quello orizzontale è migliore per i contenuti in formato orizzontale.
+- I documenti grandi con molte pagine producono un risultato molto alto o molto largo. Alcuni visualizzatori PDF potrebbero avere difficoltà con pagine singole estremamente grandi.
+- Aggiungere separatori di un colore a contrasto rende facile capire dove finisce una pagina originale e inizia la successiva.
+
+## Strumenti correlati
+
+- [N-Up PDF](./n-up-pdf)
+- [Unisci PDF](./merge-pdf)
+- [Dividi Pagine](./divide-pages)
diff --git a/docs/it/tools/compare-pdfs.md b/docs/it/tools/compare-pdfs.md
new file mode 100644
index 00000000..324c9bc9
--- /dev/null
+++ b/docs/it/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Confronta PDF
+description: Confronta due documenti PDF affiancati o in modalità sovrapposizione, con rilevamento e classificazione dettagliati delle modifiche.
+---
+
+# Confronta PDF
+
+Carica due PDF e scopri esattamente cosa è cambiato tra l'uno e l'altro. Lo strumento abbina le pagine in modo intelligente, rileva le differenze in testo, immagini, annotazioni, intestazioni e formattazione e le presenta in una vista affiancata o sovrapposta.
+
+## Come funziona
+
+1. Carica due file PDF: l'originale (a sinistra) e la versione rivista (a destra).
+2. Lo strumento abbina le pagine tra i documenti usando le firme del contenuto.
+3. Seleziona una modalità di visualizzazione: **Fianco a fianco** oppure **Sovrapposizione**.
+4. Spostati tra le coppie di pagine con i controlli di paginazione.
+5. Le differenze vengono evidenziate e classificate. Usa il pannello dei filtri per concentrarti su tipi di modifica specifici.
+6. Facoltativamente, esporta il confronto come report PDF.
+
+## Funzionalità
+
+- Abbinamento automatico delle pagine in base alla somiglianza del contenuto
+- Viste di confronto affiancata e sovrapposta
+- Classificazione delle modifiche: testo, immagine, intestazione/piè di pagina, annotazione, formattazione, sfondo
+- Filtri per categoria per mostrare o nascondere tipi di modifica specifici
+- Ricerca nelle modifiche di testo con filtro per query
+- Supporto OCR per confrontare documenti scansionati
+- Controlli dello zoom per un'ispezione dettagliata
+- Scorrimento sincronizzato tra i pannelli nella vista affiancata
+- Esporta i risultati del confronto come PDF
+
+## Opzioni
+
+| Opzione | Descrizione |
+| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| **Modalità di visualizzazione** | Fianco a fianco o Sovrapposizione |
+| **OCR** | Attiva/disattiva l'OCR per il confronto di documenti scansionati |
+| **Lingua OCR** | Lingua per l'estrazione del testo con OCR |
+| **Filtri per categoria** | Attiva o disattiva la visibilità delle modifiche a testo, immagini, intestazioni/piè di pagina, annotazioni, formattazione e sfondo |
+| **Ambito delle modifiche** | Nella modalità sovrapposizione, filtra tra tutte le modifiche o solo il contenuto |
+| **Zoom** | Regola il livello di ingrandimento per un'ispezione dettagliata |
+
+## Casi d'uso
+
+- Rivedere le revisioni di un contratto per trovare esattamente cosa è cambiato tra le versioni
+- Confrontare mockup di design per verificare che le esportazioni PDF corrispondano alle aspettative
+- Verificare le modifiche ai documenti nei settori regolamentati, dove ogni modifica deve essere tracciata
+- Controllare che un processo di conversione PDF abbia preservato fedelmente il contenuto originale
+- Confrontare i documenti tradotti con l'originale per individuare cambiamenti di layout
+
+## Suggerimenti
+
+- La vista sovrapposta impila i due documenti uno sull'altro, rendendo subito visibili le differenze spaziali (elementi spostati, immagini ridimensionate).
+- Attiva l'OCR quando confronti documenti scansionati privi di livello di testo. Il motore di confronto estrarrà il testo dalle immagini delle pagine.
+- Usa i filtri per categoria per concentrarti su ciò che conta. Ad esempio, nascondi le modifiche di formattazione quando ti interessano solo le differenze di testo.
+
+## Strumenti correlati
+
+- [Visualizza Metadati](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [Unisci PDF](./merge-pdf)
diff --git a/docs/it/tools/compress-pdf.md b/docs/it/tools/compress-pdf.md
new file mode 100644
index 00000000..51d2c499
--- /dev/null
+++ b/docs/it/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Comprimi PDF
+description: Riduci le dimensioni dei PDF fino al 90% con il motore Hyper Compress. Supporta dimensioni di destinazione, elaborazione in blocco e impostazioni di qualità personalizzate.
+---
+
+# Comprimi PDF
+
+Riduci i tuoi file PDF senza rovinarli. Comprimi PDF è basato su [Hyper Compress](https://www.bentopdf.com/hyper-compress), il motore di compressione di BentoPDF. Ricomprime le immagini, crea sottoinsiemi e unisce i font ed elimina il peso inutile, come le miniature incorporate e i dati privati delle applicazioni. Il PDF resta pienamente funzionante: il testo rimane selezionabile, i link e i campi modulo continuano a funzionare.
+
+Hyper Compress è compilato in WebAssembly e viene distribuito con BentoPDF, quindi la compressione funziona offline e nelle installazioni isolate dalla rete (air-gapped), senza alcuna configurazione aggiuntiva.
+
+## Come funziona
+
+1. Carica uno o più PDF facendo clic sull'area di rilascio o trascinando i file.
+2. Scegli un **Livello di compressione**: Basso, Medio, Alto o Senza perdita.
+3. Facoltativamente, inserisci una **Dimensione file di destinazione**, oppure espandi **Impostazioni personalizzate** per un controllo più preciso, inclusa l'opzione **Converti in scala di grigi**.
+4. Fai clic su **Comprimi PDF**. Con più file, ottieni un unico download ZIP.
+
+## Documenti particolari
+
+- **I PDF firmati digitalmente** vengono restituiti invariati, perché qualsiasi modifica invaliderebbe la firma. Attiva **Ignora la protezione dei contenuti** in Impostazioni personalizzate per rimuovere le firme e comprimerli; la firma visibile resta sulla pagina, ma il file non è più firmato.
+- **I file PDF/A** perdono l'etichetta PDF/A dopo la compressione, così il file non dichiara mai una conformità che non rispetta più. Attiva **Mantieni PDF/A** in Impostazioni personalizzate per mantenere invece la conformità del file.
+- **I PDF protetti da password** mostrano un campo password nella scheda del file. Inserisci lì la password e Hyper Compress apre il file da solo, senza un passaggio di sblocco separato. Con due o più file bloccati, un unico campo condiviso sblocca tutti i file che usano la stessa password. La copia compressa non ha password; usa [Proteggi PDF](./protect-pdf) per aggiungerne di nuovo una.
+- **Le scansioni senza livello di testo** possono ridursi ulteriormente con **Rasterizza le pagine in immagini** in Impostazioni personalizzate, che sostituisce ogni pagina con un'unica immagine ottimizzata. Viene saltata per qualsiasi documento con testo selezionabile, comprese le scansioni con OCR, a meno che **Ignora la protezione dei contenuti** non sia attivo. In tal caso anche le pagine di testo diventano immagini, quindi il testo non è più selezionabile e i link smettono di funzionare.
+
+## Livelli di compressione
+
+| Livello | Qualità immagine | Risoluzione max | Ideale per |
+| ----------------- | ---------------- | --------------- | ----------------------------------- |
+| **Basso** | 80 | 200 DPI | Preservare la qualità visiva |
+| **Medio** | 50 | 150 DPI | Documenti di uso quotidiano |
+| **Alto** | 20 | 72 DPI | Allegati email, caricamenti sul web |
+| **Senza perdita** | Immagini intatte | Invariata | Copie d'archivio |
+
+Alto rimuove anche l'incorporamento dei 14 font PDF standard, oltre a quelli simili come Arial quando è sicuro farlo.
+
+## Dimensione di destinazione
+
+Inserisci una dimensione in KB o MB e Hyper Compress cerca la migliore qualità d'immagine che rientri comunque nel limite, partendo dal livello che hai scelto. Se il documento non può diventare così piccolo, ottieni la versione più piccola possibile e un messaggio che lo segnala. Le pagine dedicate, come [Comprimi PDF a 1MB](https://www.bentopdf.com/compress-pdf-to-1mb), si aprono con la dimensione di destinazione già compilata.
+
+## Impostazioni personalizzate
+
+Espandi il pannello Impostazioni personalizzate per regolare direttamente Hyper Compress. Scegliere un livello di compressione ripristina questi valori a quelli del livello, e modificarne uno qualsiasi porta il livello su Personalizzato.
+
+- **Ignora la protezione dei contenuti**: per impostazione predefinita Hyper Compress lascia intatti i PDF firmati e non rasterizza le pagine che contengono testo. Attivandola, aggira entrambi i controlli. Resta attiva quando cambi livello.
+
+- **Immagini**: qualità dell'immagine, risoluzione massima, ricampionamento forzato, riduzione dei colori, ritaglio delle aree invisibili delle immagini, rimozione delle immagini alternative, semplificazione dei profili colore, JPEG 2000 e modalità lossless
+- **Font**: creazione di sottoinsiemi, unione dei duplicati e rimozione dell'incorporamento dei font standard e di quelli simili
+- **Contenuto**: appiattimento di annotazioni, campi modulo o link
+- **Pulizia**: rimozione di miniature, dati delle applicazioni, article thread, informazioni di acquisizione web, albero della struttura o output intent
+- **Rasterizza**: sostituzione delle pagine con immagini, per scansioni solo immagine; viene saltata quando il documento ha testo selezionabile
+- **Output**: Mantieni PDF/A e compressione Brotli per i lettori PDF 2.0 che la supportano
+
+## Casi d'uso
+
+- Portare un report da 50 MB sotto il limite degli allegati email
+- Far rientrare una scansione nel rigido limite di caricamento di un portale con una dimensione di destinazione
+- Ottimizzare i PDF di marketing per download più rapidi dal sito web
+- Archiviare grandi insiemi di documenti quando i costi di archiviazione contano
+- Ridurre il consumo di dati mobili condividendo PDF tramite app di messaggistica
+
+## Suggerimenti
+
+- Inizia con Medio. Se il risultato è ancora troppo grande, imposta una dimensione di destinazione o passa ad Alto.
+- Per una scansione senza livello di testo, attiva Rasterizza le pagine in immagini in Impostazioni personalizzate.
+- Converti in scala di grigi, in Impostazioni personalizzate, può ridurre le dimensioni dei documenti ricchi di colore.
+
+## Strumenti correlati
+
+- [Linearizza PDF](./linearize-pdf): ottimizza il PDF compresso per una visualizzazione web veloce
+- [Rasterizza PDF](./rasterize-pdf): converte le pagine in immagini a un DPI specifico, comprese le pagine con testo
+- [Ripara PDF](./repair-pdf): ripara un PDF danneggiato da una compressione eseguita altrove
+- [Rimuovi Metadati](./remove-metadata): elimina i dati nascosti per la privacy
diff --git a/docs/it/tools/crop-pdf.md b/docs/it/tools/crop-pdf.md
new file mode 100644
index 00000000..b067639a
--- /dev/null
+++ b/docs/it/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Ritaglia PDF
+description: Ritaglia visivamente le pagine PDF disegnando un'area di ritaglio su ciascuna pagina con un editor basato su Cropper.js.
+---
+
+# Ritaglia PDF
+
+Rifila i margini delle pagine PDF con un'interfaccia di ritaglio visuale. Disegna un rettangolo di ritaglio direttamente su ogni pagina, controlla l'anteprima e applica il ritaglio. Puoi impostare aree di ritaglio diverse per pagine diverse oppure applicare lo stesso ritaglio all'intero documento.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Si apre l'editor di ritaglio, che mostra la prima pagina con una sovrapposizione di ritaglio trascinabile.
+3. Regola il rettangolo di ritaglio trascinandone i bordi o gli angoli.
+4. Usa i pulsanti di navigazione tra le pagine per spostarti e impostare le aree di ritaglio di ognuna.
+5. Fai clic su **Ritaglia e scarica** per applicare il ritaglio e scaricare il risultato.
+
+## Funzionalità
+
+- Editor di ritaglio visuale basato su Cropper.js, con maniglie per una regolazione precisa
+- Navigazione pagina per pagina per impostare aree di ritaglio individuali
+- Memorizza le impostazioni di ritaglio per pagina, così puoi definire ritagli diversi per pagine diverse
+- Anteprima in tempo reale dell'area di ritaglio selezionata
+- Supporta PDF di qualsiasi dimensione o orientamento di pagina
+
+## Casi d'uso
+
+- Rimuovere i margini ampi dai documenti scansionati per concentrarsi sull'area del contenuto
+- Eliminare i crocini di taglio o i segni di registro dai PDF di prestampa
+- Ritagliare le slide di una lezione per eliminare l'area delle note del relatore
+- Rimuovere intestazioni o piè di pagina da ogni pagina prima di condividere un estratto del documento
+- Ridimensionare le pagine per adattarle a uno specifico display o layout di stampa
+
+## Suggerimenti
+
+- La sovrapposizione di ritaglio può essere ridimensionata e riposizionata liberamente. Trascina gli angoli per un ridimensionamento proporzionale o i bordi per una regolazione su un solo asse.
+- Per i documenti in cui ogni pagina richiede lo stesso ritaglio, impostalo sulla prima pagina: lo strumento ricorda l'area di ritaglio mentre ti sposti tra le pagine.
+- Se devi uniformare le dimensioni delle pagine anziché ritagliarle visivamente, lo strumento Correggi dimensione pagina potrebbe essere più adatto.
+
+## Strumenti correlati
+
+- [Editor PDF](./edit-pdf)
+- [Numeri di Pagina](./page-numbers)
+- [Rimuovi Pagine Vuote](./remove-blank-pages)
diff --git a/docs/it/tools/csv-to-pdf.md b/docs/it/tools/csv-to-pdf.md
new file mode 100644
index 00000000..28649e96
--- /dev/null
+++ b/docs/it/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV in PDF
+description: Converti i file di foglio di calcolo CSV in tabelle PDF formattate direttamente nel tuo browser.
+---
+
+# CSV in PDF
+
+Trasforma i file CSV in documenti PDF puliti e formattati. Ogni CSV viene analizzato e reso come tabella nel PDF di output. È utile quando devi stampare o condividere dati tabellari senza richiedere al destinatario un software per fogli di calcolo.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :--------- |
+| CSV | `.csv` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina uno o più file CSV.
+2. Controlla l'elenco dei file. Aggiungine altri o rimuovi quelli indesiderati.
+3. Fai clic su **Converti in PDF**. Un indicatore di avanzamento mostra lo stato della conversione.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono raccolti in `csv-converted.zip`.
+
+## Opzioni
+
+Questo strumento non ha configurazioni aggiuntive. Il CSV viene analizzato e formattato automaticamente come tabella.
+
+## Output
+
+| Numero di input | Output |
+| :-------------- | :---------------------------------------------------------- |
+| 1 file | Download di un singolo PDF (ad es. `data.pdf`) |
+| 2+ file | Archivio ZIP (`csv-converted.zip`) con un PDF per ogni file |
+
+## Casi d'uso
+
+- Convertire i report esportati da database in tabelle PDF stampabili
+- Condividere dati finanziari o elenchi di inventario con chi non ha Excel
+- Creare versioni PDF dei file di log CSV per la documentazione di conformità
+- Stampare elenchi di indirizzi, registri dei voti o qualsiasi dato tabellare salvato come CSV
+
+## Suggerimenti
+
+- Per risultati ottimali, assicurati che il CSV usi i delimitatori standard a virgola. Lo strumento segue le convenzioni comuni di analisi dei CSV.
+- Se il CSV ha molte colonne, la tabella potrebbe essere compressa per adattarsi alla larghezza della pagina. Valuta di dividere i set di dati molto larghi in più file.
+- Per i file Excel (`.xls`, `.xlsx`), usa lo strumento [Excel in PDF](./excel-to-pdf), che preserva la formattazione del foglio di calcolo e i fogli multipli.
+
+## Strumenti correlati
+
+- [Excel in PDF](./excel-to-pdf)
+- [Testo in PDF](./txt-to-pdf)
+- [JSON in PDF](./json-to-pdf)
diff --git a/docs/it/tools/delete-pages.md b/docs/it/tools/delete-pages.md
new file mode 100644
index 00000000..f2a00e07
--- /dev/null
+++ b/docs/it/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Elimina pagine
+description: Rimuovi pagine specifiche da un PDF per numero di pagina, intervallo o selezione visuale tramite miniature.
+---
+
+# Elimina pagine
+
+Rimuovi le pagine indesiderate da un documento PDF. Indica le pagine da eliminare digitando numeri di pagina o intervalli, oppure fai clic direttamente sulle miniature per contrassegnarle per la rimozione.
+
+## Come funziona
+
+1. Carica un file PDF. Lo strumento genera le anteprime in miniatura di ogni pagina.
+2. Inserisci nel campo di testo le pagine da eliminare usando la sintassi degli intervalli (ad es. `2, 5-8`), oppure fai clic sulle miniature per selezionarle o deselezionarle.
+3. Le pagine contrassegnate vengono evidenziate visivamente, così puoi confermare la selezione.
+4. Fai clic sul pulsante di elaborazione. Viene creato un nuovo PDF senza le pagine selezionate.
+
+## Funzionalità
+
+- Selezione delle pagine tramite testo con sintassi degli intervalli (`2, 5-8, 12`)
+- Griglia di miniature per eliminare con un clic
+- Evidenziazione in tempo reale delle pagine contrassegnate per l'eliminazione
+- Validazione dell'input rispetto al numero effettivo di pagine
+- Mantiene tutte le pagine non eliminate nel loro ordine originale
+
+## Casi d'uso
+
+- Rimuovere pagine vuote o di riempimento da un documento scansionato
+- Eliminare copertine o appendici prima di condividere un documento
+- Ripulire pagine di bozza rimaste per errore in un PDF finale
+- Rimuovere le pagine con informazioni sensibili prima della distribuzione
+
+## Suggerimenti
+
+- Eliminare le pagine non influisce sul contenuto o sulla formattazione di quelle rimanenti. Il risultato è una copia fedele dell'originale meno le pagine rimosse.
+- Se vuoi conservare solo determinate pagine anziché rimuoverne alcune, [Estrai Pagine](./extract-pages) è la scelta migliore.
+- La vista a miniature si carica in modo progressivo, quindi i documenti grandi restano reattivi.
+
+## Strumenti correlati
+
+- [Estrai Pagine](./extract-pages)
+- [Duplica e Organizza](./organize-pdf)
+- [Dividi PDF](./split-pdf)
diff --git a/docs/it/tools/deskew-pdf.md b/docs/it/tools/deskew-pdf.md
new file mode 100644
index 00000000..22153a2e
--- /dev/null
+++ b/docs/it/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Raddrizza PDF
+description: Raddrizza automaticamente le pagine inclinate dei PDF scansionati con il rilevamento dell'inclinazione di OpenCV. Soglia e DPI regolabili.
+---
+
+# Raddrizza PDF
+
+I documenti scansionati raramente sono perfettamente dritti. Anche una leggera inclinazione rende l'OCR meno accurato e la stampa poco curata. Questo strumento usa gli algoritmi di elaborazione delle immagini di OpenCV per rilevare l'angolo di inclinazione di ogni pagina e ruotarla fino a riportarla in piano.
+
+## Come funziona
+
+1. Carica uno o più PDF scansionati.
+2. Imposta la **Soglia di inclinazione**: le pagine con un'inclinazione rilevata inferiore a questo valore restano invariate.
+3. Scegli una **Qualità di elaborazione (DPI)**: un DPI più alto migliora la precisione del rilevamento ma richiede più tempo.
+4. Fai clic su **Raddrizza PDF**.
+5. Al termine dell'elaborazione, un pannello dei risultati mostra l'angolo rilevato per ogni pagina e se è stata corretta.
+
+## Opzioni
+
+| Impostazione | Valori | Predefinito |
+| --------------------------------- | ------------------------ | ----------- |
+| **Soglia di inclinazione** | 0.1, 0.5, 1.0, 2.0 gradi | 0.5 |
+| **Qualità di elaborazione (DPI)** | 100, 150, 200, 300 | 150 |
+
+## Come funziona il rilevamento dell'inclinazione
+
+Lo strumento rende ogni pagina come immagine al DPI selezionato, poi usa OpenCV per rilevare gli angoli delle linee dominanti nel contenuto. Se l'inclinazione rilevata supera la soglia, la pagina viene ruotata dell'angolo inverso per raddrizzarla. Le pagine sotto la soglia passano invariate.
+
+## Casi d'uso
+
+- Ripulire contratti o documenti legali scansionati in blocco
+- Preparare ricevute o fatture scansionate per l'elaborazione OCR
+- Raddrizzare le pagine di uno scanner piano con posizionamento della carta irregolare
+- Migliorare la qualità visiva di materiali d'archivio digitalizzati
+
+## Suggerimenti
+
+- Abbassa la soglia a 0.1 gradi se ti serve un allineamento perfetto al pixel per l'OCR.
+- 150 DPI è veloce e preciso per la maggior parte dei documenti. Usa 300 DPI per testo molto piccolo o pagine con dettagli fini.
+- Il raddrizzamento funziona meglio sui documenti con linee di testo orizzontali nitide. Può avere difficoltà con pagine composte soprattutto da immagini o con elementi di design diagonali.
+
+## Strumenti correlati
+
+- [Rasterizza PDF](./rasterize-pdf): converte il risultato raddrizzato in un PDF piatto basato su immagini
+- [Comprimi PDF](./compress-pdf): riduce le dimensioni del file dopo il raddrizzamento
+- [Ripara PDF](./repair-pdf): risolve problemi strutturali nei PDF scansionati
diff --git a/docs/it/tools/digital-sign-pdf.md b/docs/it/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..11103bbb
--- /dev/null
+++ b/docs/it/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Firma Digitale
+description: Aggiungi firme digitali crittografiche ai PDF usando certificati X.509. Supporta i formati PKCS#12 e PEM con opzioni di firma visibile.
+---
+
+# Firma Digitale
+
+Una firma digitale è una prova crittografica che una persona specifica ha firmato un documento e che il documento non è stato alterato da allora. A differenza di una firma disegnata (che è solo un'immagine), una firma digitale usa certificati X.509 e gli standard PKCS#7 per garantire autenticità e integrità verificabili.
+
+BentoPDF applica le firme digitali interamente nel tuo browser. La tua chiave privata non lascia mai il tuo dispositivo.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Carica il file del tuo certificato (.pfx, .p12 o .pem).
+3. Inserisci la password del certificato per sbloccarlo. Lo strumento mostra il soggetto, l'emittente e il periodo di validità del certificato.
+4. Facoltativamente, configura i metadati della firma (motivo, luogo, contatti).
+5. Facoltativamente, attiva una **firma visibile** con personalizzazione di posizione, dimensioni, immagine e testo.
+6. Fai clic su **Firma PDF**.
+
+## Formati di certificato supportati
+
+| Formato | Estensioni | Descrizione |
+| ----------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Pacchetto standard del settore che contiene la chiave privata e la catena di certificati. È il formato più comune. |
+| **PEM** | .pem | Formato testuale. Deve contenere sia il certificato sia la chiave privata in un unico file. Supporta chiavi private crittografate. |
+
+## Opzioni della firma visibile
+
+Quando è attiva, sulla pagina PDF viene reso un blocco di firma visibile:
+
+- **Posizione**: coordinate X/Y e larghezza/altezza in punti
+- **Pagina**: prima pagina, ultima pagina, tutte le pagine o un numero di pagina specifico
+- **Immagine**: carica un'immagine PNG, JPG o WebP (la tua firma autografa, il sigillo aziendale, ecc.)
+- **Testo**: testo personalizzato con colore e dimensione del carattere configurabili. Se non vengono forniti né immagine né testo, lo strumento genera automaticamente il testo dal nome comune del certificato e dalla data corrente.
+
+## Metadati della firma
+
+- **Motivo**: perché il documento è stato firmato (ad es. "Approvato", "Rivisto")
+- **Luogo**: dove è avvenuta la firma (ad es. "New York, NY")
+- **Contatti**: come raggiungere il firmatario (ad es. indirizzo email)
+
+## Nota sulla connessione a Internet
+
+La firma può richiedere una connessione a Internet. La libreria di firma recupera la catena di certificati dagli URL incorporati nell'estensione Authority Information Access (AIA) del tuo certificato. Se quei server non sono raggiungibili, la firma fallirà per i certificati che richiedono la validazione della catena.
+
+## Casi d'uso
+
+- Firmare contratti, proposte e accordi con firme digitali giuridicamente vincolanti
+- Certificare documenti ufficiali in flussi di lavoro che richiedono l'autenticazione basata su PKI
+- Firmare fatture PDF per la conformità normativa (molti paesi dell'UE richiedono e-fatture firmate digitalmente)
+- Aggiungere l'approvazione organizzativa a disegni tecnici o documenti di qualità
+
+## Suggerimenti
+
+- I certificati autofirmati vanno bene per i test, ma mostreranno avvisi in Adobe Reader. Per i documenti di produzione usa un certificato di un'autorità di certificazione attendibile.
+- La firma visibile è puramente grafica. La firma crittografica viene incorporata indipendentemente dal fatto che il blocco visibile sia attivo.
+- Verifica il PDF firmato con lo strumento Convalida Firma per confermare che la firma sia integra.
+
+## Strumenti correlati
+
+- [Convalida Firma](./validate-signature-pdf): verifica le firme digitali nei PDF firmati
+- [Appiattisci PDF](./flatten-pdf): appiattisci i moduli prima della firma per impedire modifiche
+- [Proteggi PDF](./protect-pdf): aggiungi la protezione con password sopra la firma digitale
+- [Rimuovi Metadati](./remove-metadata): elimina i metadati prima di firmare
diff --git a/docs/it/tools/divide-pages.md b/docs/it/tools/divide-pages.md
new file mode 100644
index 00000000..91ba0b07
--- /dev/null
+++ b/docs/it/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Dividi pagine
+description: Dividi le pagine PDF in orizzontale o in verticale in sotto-pagine più piccole.
+---
+
+# Dividi pagine
+
+Taglia le singole pagine PDF a metà dividendole in orizzontale o in verticale. È utile quando una singola pagina contiene contenuti che dovrebbero stare in pagine distinte, ad esempio un layout a due colonne scansionato come un'unica pagina larga.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Seleziona la direzione di divisione: **Verticale** (metà sinistra/destra) oppure **Orizzontale** (metà superiore/inferiore).
+3. Facoltativamente, specifica un intervallo di pagine per limitare quali pagine vengono divise. Lascia vuoto per dividere tutte le pagine.
+4. Fai clic sul pulsante di elaborazione per generare il PDF diviso.
+
+## Funzionalità
+
+- Divisione verticale: divide ogni pagina in metà sinistra e destra
+- Divisione orizzontale: divide ogni pagina in metà superiore e inferiore
+- Filtro per intervallo di pagine per dividere solo pagine specifiche
+- Le pagine non selezionate passano invariate
+- Preserva la qualità del contenuto senza ripetere il rendering
+
+## Casi d'uso
+
+- Separare pagine scansionate affiancate (ad es. la scansione di un libro con pagina sinistra e destra su un unico foglio)
+- Dividere un PDF orizzontale con contenuti affiancati in singole pagine verticali
+- Dividere infografiche o poster alti in sezioni superiore e inferiore separate
+- Preparare documenti in formato largo per la stampa su carta standard
+
+## Suggerimenti
+
+- Se le pagine hanno un contenuto distribuito in modo non uniforme, la divisione avviene comunque nel punto esatto di metà. Per divisioni asimmetriche, usa piuttosto [Ritaglia PDF](./crop-pdf).
+- Combina questo strumento con [Ruota PDF](./rotate-pdf) se le pagine devono essere ruotate prima o dopo la divisione.
+
+## Strumenti correlati
+
+- [Dividi PDF](./split-pdf)
+- [Ritaglia PDF](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [Posterizza PDF](./posterize-pdf)
diff --git a/docs/it/tools/duplex-collate.md b/docs/it/tools/duplex-collate.md
new file mode 100644
index 00000000..ba1df82d
--- /dev/null
+++ b/docs/it/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Fascicola scansione fronte/retro
+description: Riordina i PDF scansionati in fronte/retro che contengono le pagine anteriori e posteriori in blocchi separati, mettendole nell'ordine corretto.
+---
+
+# Fascicola scansione fronte/retro
+
+Fascicola Fronte/Retro è pensato per i flussi di scansione con alimentatore automatico (ADF) in cui un PDF contiene due blocchi di pagine:
+
+- prima tutti i fronti
+- poi tutti i retro
+
+Invece di dividere e riassemblare a mano, questo strumento intercala i due blocchi nel naturale ordine di lettura: fronte1, retro1, fronte2, retro2 e così via.
+
+## Come funziona
+
+1. Carica un singolo PDF creato dalla scansione di una pila fronte/retro.
+2. Imposta il punto di divisione in cui termina il blocco dei fronti.
+3. Scegli come gestire il blocco dei retro:
+ - **Inverti il blocco dei retri** (comune quando la pila viene capovolta prima di scansionare i retro)
+ - **Mantieni il blocco dei retri così com'è**
+4. Fai clic su **Fascicola PDF** per scaricare il risultato riordinato.
+
+## Opzioni
+
+- **Rileva divisione automaticamente (metà)**: imposta il punto di divisione a `ceil(totalPages / 2)`.
+- **Avviso pagine dispari**: avvisa quando il totale delle pagine è dispari (spesso indica una scansione non corrispondente).
+- **Conferma blocchi non uniformi**: chiede conferma quando le dimensioni dei blocchi fronte/retro differiscono.
+- **Esportazione raggruppata**: divide l'output fascicolato in PDF separati in base al numero di pagine del documento originale e li scarica come ZIP.
+
+## Comportamento dell'output
+
+- **Predefinito**: un solo PDF in uscita (un PDF in ingresso, un PDF in uscita).
+- **Modalità raggruppata**: l'output viene suddiviso in base al valore di pagine per documento; se vengono prodotti più blocchi, vengono scaricati come un unico ZIP, altrimenti viene scaricato un singolo PDF.
+
+Se le dimensioni dei blocchi sono diverse, le pagine in coppia vengono fascicolate per prime e le pagine rimaste senza coppia vengono aggiunte in fondo.
+
+## Casi d'uso comuni
+
+- Ripristinare l'ordine dopo aver scansionato una pila di moduli fronte/retro in due passate.
+- Ricostruire i fascicoli fronte/retro da scanner d'ufficio che restituiscono prima tutti i fronti e poi tutti i retro.
+- Post-elaborare le scansioni d'archivio prima di dividerle in file per documento.
+
+## Suggerimenti
+
+- La maggior parte dei lotti fronte/retro dovrebbe avere un numero totale di pagine pari.
+- Se i retro risultano invertiti, passa da **Inverti il blocco dei retri** a **Mantieni il blocco dei retri così com'è** o viceversa.
+- Per originali di 2 pagine (fronte+retro), usa l'esportazione raggruppata con `2` pagine per documento.
+
+## Strumenti correlati
+
+- [Alterna e Riordina Pagine](./alternate-merge)
+- [Dividi PDF](./split-pdf)
+- [Unisci PDF](./merge-pdf)
+- [Duplica e Organizza](./organize-pdf)
diff --git a/docs/it/tools/edit-attachments.md b/docs/it/tools/edit-attachments.md
new file mode 100644
index 00000000..d4248e37
--- /dev/null
+++ b/docs/it/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Modifica allegati
+description: Visualizza e rimuovi in modo selettivo i file allegati incorporati in un documento PDF.
+---
+
+# Modifica allegati
+
+Ispeziona e gestisci i file allegati all'interno di un PDF. Lo strumento elenca ogni file incorporato con il suo nome e il livello di allegato, poi ti permette di contrassegnare singoli allegati per la rimozione o di eliminarli tutti in una volta.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Lo strumento cerca automaticamente gli allegati e li mostra in un elenco.
+3. Ogni allegato mostra il nome del file e se è un allegato a livello di documento o di pagina.
+4. Fai clic sull'icona del cestino accanto a un allegato per contrassegnarlo per la rimozione (fai di nuovo clic per annullare).
+5. Usa il pulsante **Rimuovi tutti gli allegati** per selezionare tutto in una volta, oppure **Deseleziona tutto** per azzerare le selezioni.
+6. Fai clic sul pulsante di elaborazione per salvare un nuovo PDF senza gli allegati selezionati.
+
+## Funzionalità
+
+- Elenca tutti gli allegati a livello di documento e di pagina
+- Rimozione singola o in blocco degli allegati
+- Selezione attivabile e disattivabile prima di confermare le modifiche
+- Testo barrato e opacità ridotta sugli elementi contrassegnati per la rimozione
+- Scarica il PDF modificato senza gli allegati selezionati
+
+## Casi d'uso
+
+- Rimuovere file obsoleti o errati incorporati in un documento prima di ridistribuirlo
+- Eliminare allegati sensibili (dati finanziari, informazioni personali) da un PDF prima di condividerlo
+- Ridurre le dimensioni del PDF rimuovendo grandi file incorporati non più necessari
+- Verificare i contenuti incorporati e ripulire un documento prima di archiviarlo
+
+## Suggerimenti
+
+- Gli allegati contrassegnati per la rimozione vengono mostrati barrati. Puoi riattivarli prima dell'elaborazione se cambi idea.
+- Se non vengono trovati allegati, lo strumento mostra un chiaro messaggio "Nessun allegato trovato": il PDF semplicemente non contiene file incorporati.
+
+## Strumenti correlati
+
+- [Aggiungi Allegati](./add-attachments)
+- [Estrai Allegati](./extract-attachments)
+- [Visualizza Metadati](./view-metadata)
diff --git a/docs/it/tools/edit-metadata.md b/docs/it/tools/edit-metadata.md
new file mode 100644
index 00000000..a36eec0e
--- /dev/null
+++ b/docs/it/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Modifica metadati
+description: Visualizza e modifica i campi dei metadati del PDF, tra cui titolo, autore, parole chiave, date e proprietà personalizzate.
+---
+
+# Modifica metadati
+
+Modifica i metadati incorporati in un file PDF. Lo strumento precompila un modulo con i metadati esistenti del documento, ti permette di modificare qualsiasi campo e salva le modifiche in un nuovo PDF.
+
+## Come funziona
+
+1. Carica un file PDF. Lo strumento legge i metadati attuali e compila il modulo.
+2. Modifica uno qualsiasi dei campi standard: Titolo, Autore, Oggetto, Parole chiave, Creatore, Produttore.
+3. Regola Data di creazione e Data di modifica con i selettori di data e ora.
+4. Aggiungi campi di metadati personalizzati facendo clic sul pulsante di aggiunta e inserendo una coppia chiave-valore.
+5. Fai clic sul pulsante di elaborazione per salvare il PDF modificato.
+
+## Funzionalità
+
+- Precompila tutti i metadati esistenti del PDF caricato
+- Campi standard: Titolo, Autore, Oggetto, Parole chiave, Creatore, Produttore
+- Selettori di data e ora per Data di creazione e Data di modifica
+- Campi di metadati personalizzati chiave-valore per proprietà arbitrarie
+- Salva le modifiche direttamente nel dizionario delle informazioni del documento PDF
+
+## Campi modificabili
+
+| Campo | Descrizione |
+| ------------------------ | ---------------------------------------------------------------- |
+| **Titolo** | Il titolo del documento mostrato nei lettori PDF |
+| **Autore** | La persona o l'organizzazione che ha creato il documento |
+| **Oggetto** | Una breve descrizione dell'argomento del documento |
+| **Parole chiave** | Termini separati da virgole per la ricerca e la categorizzazione |
+| **Creatore** | L'applicazione che ha creato originariamente il contenuto |
+| **Produttore** | L'applicazione che ha generato il PDF |
+| **Data di creazione** | Quando il documento è stato creato originariamente |
+| **Data di modifica** | Quando il documento è stato modificato l'ultima volta |
+| **Campi personalizzati** | Qualsiasi coppia chiave-valore aggiuntiva che definisci |
+
+## Casi d'uso
+
+- Impostare un titolo e un autore corretti prima di pubblicare un documento
+- Aggiungere parole chiave per migliorare la reperibilità nei sistemi di gestione documentale
+- Aggiornare la data di modifica per riflettere la revisione corrente
+- Aggiungere campi di metadati personalizzati come Reparto, ID progetto o Classificazione
+- Ripulire i metadati lasciati dal software di creazione originale
+
+## Suggerimenti
+
+- I campi personalizzati vengono scritti direttamente nel dizionario delle informazioni del PDF. Alcuni lettori PDF potrebbero non mostrarli, ma vengono conservati nel file.
+- Lascia un campo vuoto per cancellarlo dai metadati. Il pulsante di elaborazione salva ciò che si trova nel modulo.
+- Per visualizzare i metadati senza modificarli, usa [Visualizza Metadati](./view-metadata). Per rimuovere del tutto i metadati, usa Rimuovi Metadati.
+
+## Strumenti correlati
+
+- [Visualizza Metadati](./view-metadata)
+- [Livelli OCG del PDF](./pdf-layers)
+- [Comprimi PDF](./compress-pdf)
diff --git a/docs/it/tools/edit-pdf.md b/docs/it/tools/edit-pdf.md
new file mode 100644
index 00000000..982ee572
--- /dev/null
+++ b/docs/it/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Editor PDF
+description: Annota, evidenzia, oscura, aggiungi forme e immagini, cerca e visualizza i PDF direttamente nel tuo browser.
+---
+
+# Editor PDF
+
+L'Editor PDF di BentoPDF ti permette di annotare, evidenziare, oscurare, commentare, aggiungere forme e immagini e cercare nei tuoi PDF. Carica un editor completo direttamente nel browser, senza alcun caricamento su server.
+
+## Come funziona
+
+1. Carica il tuo PDF facendo clic sull'area di rilascio o trascinandoci sopra un file.
+2. L'editor PDF integrato si apre automaticamente con il documento caricato.
+3. Usa la barra degli strumenti per annotare, evidenziare, oscurare, aggiungere testo, disegnare forme o inserire immagini.
+4. Fai clic su **Scarica il PDF modificato** per salvare le modifiche.
+
+## Funzionalità
+
+- Barra degli strumenti di annotazione completa con evidenziazione, sottolineatura, testo barrato e disegno a mano libera
+- Inserimento di testo e commenti
+- Strumenti di oscuramento che rimuovono definitivamente il contenuto contrassegnato una volta applicato l'oscuramento. Se alcuni contrassegni non sono stati applicati quando fai clic su **Scarica il PDF modificato**, l'editor ti propone di applicarli prima.
+- Strumenti per forme: rettangoli, cerchi, linee e frecce
+- Inserimento di immagini nelle pagine PDF
+- Ricerca del testo integrata in tutto il documento
+- Supporto multi-documento con schede (fino a 10 documenti aperti contemporaneamente)
+- Caricamento dei file tramite trascinamento
+
+## Casi d'uso
+
+- Rivedere contratti e segnare le modifiche con evidenziazioni e commenti
+- Oscurare informazioni riservate come codici fiscali o dati finanziari prima della condivisione
+- Aggiungere annotazioni a piante architettoniche o disegni tecnici
+- Inserire loghi aziendali o timbri nelle pagine del documento
+- Cercare termini specifici in lunghi documenti legali
+
+## Suggerimenti
+
+- Puoi aprire più PDF contemporaneamente e passare dall'uno all'altro con la barra delle schede in alto nell'editor.
+- L'editor preserva la struttura originale del PDF, quindi font, layout e campi modulo restano intatti.
+- Contrassegnare un testo o un'area per l'oscuramento non rimuove nulla finché l'oscuramento non viene applicato. Quando oscuri un testo selezionato, vengono rimosse dal download anche le sue copie nelle proprietà del file, nei segnalibri, nei commenti e negli allegati, a meno che il file non sia crittografato.
+- Per filigrane o numerazione di pagina in blocco, usa gli strumenti dedicati, che offrono più controllo sulla formattazione.
+
+## Strumenti correlati
+
+- [Aggiungi Filigrana](./add-watermark)
+- [Firma PDF](./sign-pdf)
+- [Aggiungi Timbri](./add-stamps)
+- [Rimuovi Annotazioni](./remove-annotations)
diff --git a/docs/it/tools/email-to-pdf.md b/docs/it/tools/email-to-pdf.md
new file mode 100644
index 00000000..93f4404e
--- /dev/null
+++ b/docs/it/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Email in PDF
+description: Converti i file email EML e MSG in PDF nel tuo browser. Preserva intestazioni, corpo ed elenco degli allegati.
+---
+
+# Email in PDF
+
+Converti le email salvate in PDF puliti e stampabili. Lo strumento analizza i file EML e MSG, estrae il messaggio completo (intestazioni, corpo e metadati degli allegati) e rende tutto in un PDF strutturato. Utile per la raccolta di prove legali, l'archiviazione o semplicemente per stampare un'email importante.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------ | :--------- | :------------------------------------------------------------------------------ |
+| EML | `.eml` | Formato email MIME standard (esportato dalla maggior parte dei client di posta) |
+| MSG | `.msg` | Formato proprietario di Microsoft Outlook |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file EML o MSG. Puoi mescolare entrambi i formati in un unico lotto.
+2. Controlla l'elenco dei file. Rimuovi le voci indesiderate con l'icona del cestino, oppure fai clic su **Aggiungi altri file** per includere altre email.
+3. Configura le opzioni di conversione (vedi sotto).
+4. Fai clic su **Converti in PDF**. Lo strumento analizza ogni email, rende il contenuto come HTML formattato e lo converte in PDF tramite il motore PyMuPDF.
+5. Una singola email viene scaricata direttamente come PDF. Più email vengono raccolte in `emails-converted.zip`.
+
+## Opzioni
+
+| Opzione | Predefinito | Descrizione |
+| :--------------------------------------------------- | :---------- | :------------------------------------------------------------------------------------------------------- |
+| **Formato pagina** | A4 | Scegli tra le dimensioni di pagina A4, Letter o Legal. |
+| **Includi i destinatari CC e CCN nell'intestazione** | Attivo | Se attiva, gli elenchi dei destinatari CC e CCN compaiono nella sezione intestazione dell'email nel PDF. |
+| **Includi l'elenco degli allegati dell'email** | Attivo | Se attiva, nel PDF compare l'elenco degli allegati dell'email (con nomi dei file e dimensioni). |
+
+## Casi d'uso
+
+- Archiviare in PDF la corrispondenza aziendale importante per conformità o audit
+- Stampare conversazioni email per procedimenti legali o richieste di produzione di documenti
+- Creare una registrazione permanente di conferme d'ordine, ricevute o contratti ricevuti via email
+- Fare il backup dei file MSG di Outlook in un formato che non richiede Outlook per essere letto
+- Documentare le interazioni con l'assistenza clienti a partire da file EML esportati
+
+## Suggerimenti
+
+- Sono supportati sia i file EML (usati da Thunderbird, Apple Mail e dalla maggior parte dei client di posta) sia i file MSG di Outlook. Esporta le email dal tuo client e trascinale direttamente nello strumento.
+- Le email in formato HTML mantengono lo stile nel PDF. Le email in testo semplice vengono rese con una formattazione pulita e leggibile.
+- L'elenco degli allegati mostra nomi e dimensioni dei file ma non incorpora i file allegati veri e propri nel PDF.
+
+## Strumenti correlati
+
+- [XML in PDF](./xml-to-pdf)
+- [XPS in PDF](./xps-to-pdf)
diff --git a/docs/it/tools/epub-to-pdf.md b/docs/it/tools/epub-to-pdf.md
new file mode 100644
index 00000000..fa4ae6ec
--- /dev/null
+++ b/docs/it/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB in PDF
+description: Converti gli ebook EPUB in PDF nel tuo browser. Gratuito, senza caricamenti, conversione orientata alla privacy.
+---
+
+# EPUB in PDF
+
+Converti gli ebook EPUB in file PDF senza uscire dal browser. EPUB è lo standard aperto per i libri digitali, ma a volte serve un PDF a layout fisso per stampare, annotare o condividere con chi non ha un lettore di ebook.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------ | :--------- | :-------------------- |
+| EPUB | `.epub` | File EPUB 2 ed EPUB 3 |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file EPUB. È supportata la selezione multipla.
+2. Controlla i file caricati. Rimuovi le voci indesiderate con l'icona del cestino, oppure fai clic su **Aggiungi altri file** per ampliare il lotto.
+3. Fai clic su **Converti in PDF**. Il motore PyMuPDF rende il contenuto dell'EPUB (testo, immagini e formattazione) in un PDF impaginato.
+4. Un singolo EPUB viene scaricato direttamente come PDF. Più file vengono raccolti in un archivio ZIP chiamato `epub-converted.zip`.
+
+## Opzioni
+
+La conversione usa impostazioni predefinite sensate e non richiede alcuna configurazione. Il testo si adatta alle dimensioni di pagina standard, mentre font e immagini incorporati vengono mantenuti nel PDF.
+
+## Casi d'uso
+
+- Stampare un ebook privo di DRM per leggerlo lontano dagli schermi
+- Inviare un manoscritto EPUB come PDF a layout fisso per la revisione
+- Archiviare libri digitali in un formato che ogni sistema operativo può aprire in modo nativo
+- Condividere un capitolo con un collega che non ha un lettore EPUB
+- Convertire la documentazione tecnica distribuita in EPUB in PDF annotabili
+
+## Suggerimenti
+
+- Le funzionalità di EPUB 3 come audio e video incorporati non vengono trasferite nel PDF, ma tutto il testo, le immagini e le tabelle si convertono correttamente.
+- Per ottenere i migliori risultati con EPUB molto stilizzati, controlla le prime pagine dell'output per verificare la fedeltà del layout.
+
+## Strumenti correlati
+
+- [MOBI in PDF](./mobi-to-pdf)
+- [FB2 in PDF](./fb2-to-pdf)
+- [CBZ in PDF](./cbz-to-pdf)
diff --git a/docs/it/tools/excel-to-pdf.md b/docs/it/tools/excel-to-pdf.md
new file mode 100644
index 00000000..b8adb99e
--- /dev/null
+++ b/docs/it/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel in PDF
+description: Converti fogli di calcolo Excel (XLS, XLSX), ODS e file CSV in PDF preservando la formattazione.
+---
+
+# Excel in PDF
+
+Converti i file di fogli di calcolo in PDF. Lo strumento gestisce i file Excel moderni, il vecchio formato XLS, i fogli di calcolo OpenDocument e persino i CSV, il tutto reso tramite un motore LibreOffice nel browser che preserva la formattazione delle celle, le formule (come valori calcolati), i grafici e i layout a più fogli.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :----------------------- | :--------- |
+| Excel (moderno) | `.xlsx` |
+| Excel (legacy) | `.xls` |
+| OpenDocument Spreadsheet | `.ods` |
+| CSV | `.csv` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file di fogli di calcolo.
+2. Controlla l'elenco dei file. Aggiungine altri o rimuovi quelli indesiderati.
+3. Fai clic su **Converti in PDF**. Il motore LibreOffice si inizializza al primo utilizzo, poi elabora ogni file.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono consegnati come `excel-converted.zip`.
+
+## Opzioni
+
+Questo strumento non ha configurazioni aggiuntive. Il motore LibreOffice determina layout di pagina, scala e area di stampa in base alle impostazioni integrate del foglio di calcolo.
+
+## Output
+
+| Numero di input | Output |
+| :-------------- | :--------------------------------------------------------------------- |
+| 1 file | Download di un singolo PDF (nome file originale con estensione `.pdf`) |
+| 2+ file | Archivio ZIP (`excel-converted.zip`) con un PDF per ogni file |
+
+## Casi d'uso
+
+- Convertire report finanziari o budget da Excel a PDF per la distribuzione
+- Creare PDF pronti per la stampa da fogli di calcolo di inventario o cataloghi prodotti
+- Condividere i risultati di analisi dei dati con persone che non hanno Excel installato
+- Archiviare i report trimestrali in un formato non modificabile
+- Convertire in PDF i file ODS di LibreOffice Calc
+
+## Suggerimenti
+
+- I grafici incorporati nel foglio di calcolo vengono resi nel PDF. Assicurati che siano corretti nel file di origine prima di convertire.
+- Se il foglio di calcolo ha più fogli, tutti i fogli sono inclusi nel PDF di output.
+- Per semplici dati CSV senza formattazione, lo strumento [CSV in PDF](./csv-to-pdf) offre una conversione più leggera. Usa Excel in PDF quando ti serve preservare formattazione, grafici o più fogli.
+
+## Strumenti correlati
+
+- [CSV in PDF](./csv-to-pdf)
+- [Word in PDF](./word-to-pdf)
+- [PowerPoint in PDF](./powerpoint-to-pdf)
diff --git a/docs/it/tools/extract-attachments.md b/docs/it/tools/extract-attachments.md
new file mode 100644
index 00000000..b0f89146
--- /dev/null
+++ b/docs/it/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Estrai allegati
+description: Estrai tutti gli allegati incorporati da uno o più PDF e scaricali come archivio ZIP.
+---
+
+# Estrai allegati
+
+Estrai ogni allegato incorporato da uno o più file PDF. Tutti i file estratti vengono raccolti in un unico archivio ZIP da scaricare.
+
+## Come funziona
+
+1. Carica uno o più file PDF che contengono allegati incorporati.
+2. Fai clic su **Estrai allegati**.
+3. Lo strumento analizza ogni PDF alla ricerca di allegati a livello di documento e di pagina.
+4. Tutti i file trovati vengono inseriti in un archivio ZIP e scaricati automaticamente.
+5. Un messaggio di stato conferma quanti allegati sono stati trovati e la loro dimensione totale.
+
+## Funzionalità
+
+- Estrazione in blocco da più PDF contemporaneamente
+- Estrae sia gli allegati a livello di documento sia quelli a livello di pagina
+- Produce un unico file ZIP con tutti i file estratti
+- Mostra il numero totale di allegati e la dimensione complessiva dei file
+- Messaggi di stato chiari se non viene trovato alcun allegato
+
+## Casi d'uso
+
+- Recuperare file di dati incorporati in un PDF di report
+- Estrarre risorse di immagini da un portfolio o da un documento di specifiche
+- Estrarre materiali supplementari da PDF di formazione o conformità
+- Verificare quali file sono incorporati in un lotto di PDF
+
+## Suggerimenti
+
+- Se lo strumento segnala che non ci sono allegati, il PDF potrebbe contenere immagini incorporate o dati di moduli, che non sono allegati di file. Usa [Estrai Immagini](./extract-images) per le immagini incorporate.
+- Quando elabori più PDF, tutti gli allegati di ogni file finiscono in un unico ZIP. I nomi dei file originali vengono mantenuti.
+
+## Strumenti correlati
+
+- [Aggiungi Allegati](./add-attachments)
+- [Modifica Allegati](./edit-attachments)
+- [Estrai Immagini](./extract-images)
diff --git a/docs/it/tools/extract-images.md b/docs/it/tools/extract-images.md
new file mode 100644
index 00000000..8d37ef82
--- /dev/null
+++ b/docs/it/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Estrai immagini
+description: Estrai tutte le immagini incorporate dai file PDF. Visualizzale in anteprima in una griglia e scaricale singolarmente o come archivio ZIP.
+---
+
+# Estrai immagini
+
+Estrae ogni immagine incorporata da uno o più file PDF. Le immagini estratte vengono mostrate in una griglia di anteprima dove puoi scaricarle singolarmente oppure prenderle tutte insieme in un ZIP. Basato su PyMuPDF.
+
+## Come funziona
+
+1. Carica uno o più PDF facendo clic sull'area di rilascio o trascinandoci sopra i file. Aggiungi altri file o rimuovi quelli singoli secondo necessità.
+2. Fai clic su **Estrai immagini** per avviare l'elaborazione.
+3. Lo strumento analizza ogni pagina di ogni PDF caricato, trovando ed estraendo le immagini incorporate.
+4. Le immagini estratte appaiono in una griglia con le miniature. Ogni immagine ha un pulsante di download.
+5. Fai clic su **Scarica tutto** per salvare tutto come archivio ZIP.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Tutte le immagini incorporate vengono estratte nel loro formato originale (in genere PNG, JPEG o qualunque formato fosse usato quando l'immagine è stata incorporata nel PDF).
+
+## Formato di output
+
+- Le immagini nella griglia di anteprima hanno nomi come `image_1.png`, `image_2.jpg`, ecc.
+- **Scarica tutto** produce `extracted-images.zip` con tutte le immagini.
+- Le singole immagini possono essere scaricate una alla volta dalla griglia.
+
+## Casi d'uso
+
+- Recuperare foto o grafiche da un PDF per riutilizzarle in un altro progetto.
+- Estrarre le immagini dei prodotti da un catalogo PDF per un annuncio di e-commerce.
+- Prendere diagrammi dalla documentazione tecnica da usare nelle presentazioni.
+- Verificare quali immagini sono incorporate in un documento prima di condividerlo.
+
+## Suggerimenti
+
+- Lo strumento estrae le immagini esattamente come sono memorizzate nel PDF. Non esegue il rendering delle pagine come immagini: per quello usa [PDF in PNG](./pdf-to-png) o [PDF in JPG](./pdf-to-jpg).
+- Se lo strumento segnala "Nessuna immagine trovata", il PDF potrebbe usare grafica vettoriale anziché immagini raster incorporate, oppure potrebbe essere un documento scansionato in cui l'intera pagina è una grande immagine.
+- L'elaborazione in blocco funziona su più PDF. Tutte le immagini di tutti i file vengono riunite in un'unica griglia e in un unico ZIP.
+
+## Strumenti correlati
+
+- [PDF in PNG](./pdf-to-png)
+- [PDF in JPG](./pdf-to-jpg)
+- [Workflow Builder PDF](./pdf-workflow)
diff --git a/docs/it/tools/extract-pages.md b/docs/it/tools/extract-pages.md
new file mode 100644
index 00000000..e530579a
--- /dev/null
+++ b/docs/it/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Estrai pagine
+description: Salva un intervallo specifico di pagine di un PDF come nuovo documento.
+---
+
+# Estrai pagine
+
+Estrai un insieme di pagine da un PDF e salvale come nuovo file. Indica esattamente quali pagine vuoi usando la sintassi degli intervalli e lo strumento crea un PDF pulito contenente solo quelle pagine.
+
+## Come funziona
+
+1. Carica un file PDF. Lo strumento mostra il nome del file, la dimensione e il numero totale di pagine.
+2. Inserisci le pagine da estrarre usando la sintassi degli intervalli (ad es. `1-5`, `3, 7, 10-12`).
+3. Facoltativamente, scegli di scaricare ogni intervallo come PDF separato in un archivio ZIP.
+4. Fai clic sul pulsante di elaborazione. Le pagine estratte vengono scaricate come nuovo PDF (o ZIP).
+
+## Funzionalità
+
+- Sintassi flessibile degli intervalli: pagine singole, intervalli o combinazioni separate da virgole
+- Mostra il numero totale di pagine dopo il caricamento per un facile riferimento
+- Opzione per ottenere un unico PDF combinato o file separati in un ZIP
+- Preserva il contenuto e la formattazione originali delle pagine
+
+## Casi d'uso
+
+- Estrarre il riepilogo esecutivo (le prime pagine) da un report lungo
+- Estrarre un singolo capitolo da un PDF di un libro di testo
+- Salvare pagine specifiche di un pacchetto di moduli come documenti autonomi
+- Creare un documento di esempio da pagine selezionate di un file più grande
+
+## Suggerimenti
+
+- I numeri di pagina partono da 1. Usa `1` per la prima pagina, non `0`.
+- Per rimuovere pagine anziché estrarle, usa [Elimina Pagine](./delete-pages): è l'operazione inversa.
+- Se ti serve la selezione visuale delle pagine con le miniature, usa [Dividi PDF](./split-pdf) nella modalità Visual Select.
+
+## Strumenti correlati
+
+- [Dividi PDF](./split-pdf)
+- [Elimina Pagine](./delete-pages)
+- [Unisci PDF](./merge-pdf)
diff --git a/docs/it/tools/extract-tables.md b/docs/it/tools/extract-tables.md
new file mode 100644
index 00000000..42e99d2c
--- /dev/null
+++ b/docs/it/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Estrai Tabelle
+description: Rileva ed estrai le tabelle dai documenti PDF. Esporta in CSV, JSON o Markdown con granularità per singola tabella.
+---
+
+# Estrai Tabelle
+
+Rileva tutte le tabelle in un PDF e ti permette di esportarle nel formato che preferisci: CSV, JSON o Markdown. Ogni tabella viene estratta singolarmente con metadati di pagina e posizione. Basato sul motore di rilevamento delle tabelle di PyMuPDF.
+
+## Come funziona
+
+1. Carica un PDF facendo clic sull'area di rilascio o trascinandoci sopra un file.
+2. Seleziona il **formato di esportazione** preferito: CSV, JSON o Markdown.
+3. Fai clic su **Estrai tabelle** per avviare l'elaborazione.
+4. Se viene trovata una sola tabella, viene scaricata come singolo file. Più tabelle producono un archivio ZIP con un file per tabella.
+
+## Opzioni
+
+- **Formato di esportazione**: scegli tra:
+ - **CSV**: valori separati da virgole con le corrette virgolette per i campi che contengono virgole, virgolette o a capo. Adatto a fogli di calcolo e database.
+ - **JSON**: struttura ad array di array, formattata con indentazione di 2 spazi. Adatto all'uso programmatico.
+ - **Markdown**: formato di tabella delimitato da barre verticali, generato da PyMuPDF. Adatto a documentazione e file README.
+
+## Formato di output
+
+- **Tabella singola**: `filename_table.csv` (oppure `.json` / `.md`)
+- **Più tabelle**: `filename_tables.zip` con file chiamati `table_1_page3.csv`, `table_2_page5.csv`, ecc.
+
+## Casi d'uso
+
+- Estrarre tabelle specifiche da report PDF lunghi senza prelevare i dati dell'intero documento.
+- Ottenere le tabelle in formato Markdown da incollare direttamente in issue di GitHub, wiki o documentazione.
+- Ricavare dati JSON strutturati dalle tabelle PDF per integrazioni API o script.
+- Confrontare le tabelle di versioni PDF diverse esportando entrambe in CSV e confrontandole con un diff.
+
+## Suggerimenti
+
+- Questo strumento offre il controllo per singola tabella. Se vuoi tutte le tabelle in un unico CSV, usa [PDF in CSV](./pdf-to-csv). Per una cartella di lavoro Excel completa, usa [PDF in Excel](./pdf-to-excel).
+- Le tabelle che si estendono su più pagine potrebbero essere rilevate come tabelle separate per ogni pagina. Potrebbe essere necessario concatenarle manualmente.
+- Se non vengono rilevate tabelle, il PDF potrebbe essere un'immagine scansionata. Esegui prima l'OCR per aggiungere un livello di testo.
+
+## Strumenti correlati
+
+- [PDF in CSV](./pdf-to-csv)
+- [PDF in Excel](./pdf-to-excel)
+- [PDF in Testo](./pdf-to-text)
diff --git a/docs/it/tools/fb2-to-pdf.md b/docs/it/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..7ac4d539
--- /dev/null
+++ b/docs/it/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 in PDF
+description: Converti gli ebook FictionBook (FB2) in PDF direttamente nel browser. Gratis, privato, senza caricamento su server.
+---
+
+# FB2 in PDF
+
+Converti i file FictionBook 2 (FB2) in documenti PDF. FB2 è un formato di ebook basato su XML, popolare in Russia e nell'Europa orientale. Mentre su alcune piattaforme è ben supportato, su altre è praticamente sconosciuto: convertirlo in PDF rende i tuoi libri leggibili ovunque.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------------ | :--------- | :-------------------------- |
+| FictionBook 2 | `.fb2` | Formato ebook basato su XML |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file FB2. La selezione multipla è supportata.
+2. Controlla l'elenco dei file. Usa l'icona del cestino per rimuovere singole voci, oppure **Aggiungi altri file** per includerne altri.
+3. Clicca su **Converti in PDF**. Il motore PyMuPDF analizza la struttura XML dell'FB2 e la rende come contenuto PDF paginato.
+4. Un singolo file viene scaricato direttamente come PDF. Più conversioni vengono raggruppate in `fb2-converted.zip`.
+
+## Opzioni
+
+Non serve alcuna configurazione. Il convertitore gestisce automaticamente la struttura XML dell'FB2, conservando interruzioni di capitolo, formattazione e immagini incorporate.
+
+## Casi d'uso
+
+- Leggere ebook FB2 su dispositivi o app che supportano solo il PDF
+- Stampare letteratura in lingua russa distribuita in formato FB2
+- Archiviare una libreria FB2 in un formato supportato universalmente
+- Condividere un libro con chi ha un lettore che non supporta FictionBook
+
+## Suggerimenti
+
+- I file FB2 sono semplice XML, quindi tendono a essere piccoli e a convertirsi in fretta anche nel browser.
+- Se i tuoi file FB2 sono compressi come `.fb2.zip`, estraili prima di caricarli.
+
+## Strumenti correlati
+
+- [EPUB in PDF](./epub-to-pdf)
+- [MOBI in PDF](./mobi-to-pdf)
+- [XML in PDF](./xml-to-pdf)
diff --git a/docs/it/tools/fix-page-size.md b/docs/it/tools/fix-page-size.md
new file mode 100644
index 00000000..31a7fcb9
--- /dev/null
+++ b/docs/it/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Correggi dimensione pagina
+description: Uniforma tutte le pagine di un PDF alla stessa dimensione. Scegli tra i formati carta standard o imposta dimensioni personalizzate.
+---
+
+# Correggi dimensione pagina
+
+I PDF assemblati da più fonti hanno spesso pagine di dimensioni diverse: alcune Letter, altre A4, altre del tutto non standard. Questo strumento porta ogni pagina a un'unica dimensione di destinazione, scalando il contenuto per adattarlo o riempire la pagina.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Seleziona una **Dimensione pagina di destinazione** dal menu a tendina (A4, Letter, Legal, A3, A5, Tabloid o Personalizzata).
+3. Scegli un **Orientamento**: Automatico mantiene l'orientamento originale di ogni pagina, oppure puoi forzare Verticale o Orizzontale.
+4. Scegli una modalità di **Scala del contenuto**: Adatta (conserva tutto il contenuto, può aggiungere margini) o Riempi (riempie la pagina, può tagliare i bordi).
+5. Facoltativamente, imposta un **Colore di sfondo** per gli eventuali margini aggiunti.
+6. Clicca su **Correggi Dimensione Pagina**.
+
+## Opzioni
+
+- **Dimensioni standard**: A4, Letter, Legal, A3, A5, Tabloid
+- **Dimensioni personalizzate**: inserisci larghezza e altezza in pollici o millimetri
+- **Orientamento**: Automatico, Verticale, Orizzontale
+- **Modalità di scala**: Adatta o Riempi (Ritaglia)
+- **Colore di sfondo**: qualsiasi colore per i margini aggiunti
+
+## Casi d'uso
+
+- Normalizzare un PDF unito in cui le pagine provengono da scanner diversi
+- Convertire un documento US Letter in A4 per la distribuzione internazionale
+- Preparare PDF pronti per la stampa che richiedono un formato di taglio coerente
+- Correggere pagine leggermente fuori standard (ad es. 8,49 x 11,02 pollici invece di 8,5 x 11)
+
+## Suggerimenti
+
+- Usa la modalità Adatta per essere certo di non perdere contenuto. La modalità Riempi ha un aspetto più pulito ma può tagliare i bordi.
+- Controlla il risultato con lo strumento Dimensioni Pagina per verificare che ogni pagina corrisponda alla dimensione di destinazione.
+- Il bianco è il colore di sfondo predefinito; passa a un colore scuro se il tuo documento ha margini scuri.
+
+## Strumenti correlati
+
+- [Dimensioni Pagina](./page-dimensions): controlla le dimensioni delle pagine prima e dopo la correzione
+- [Comprimi PDF](./compress-pdf): riduci la dimensione del file dopo l'uniformazione
+- [Ritaglia PDF](./crop-pdf): ritaglia le pagine manualmente invece di scalarle automaticamente
diff --git a/docs/it/tools/flatten-pdf.md b/docs/it/tools/flatten-pdf.md
new file mode 100644
index 00000000..79daaa5c
--- /dev/null
+++ b/docs/it/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Appiattisci PDF
+description: Appiattisci moduli interattivi e annotazioni in contenuto statico. Rende i campi dei moduli non modificabili e fonde le annotazioni nella pagina.
+---
+
+# Appiattisci PDF
+
+L'appiattimento fonde gli elementi interattivi (campi dei moduli, menu a tendina, caselle di controllo, annotazioni, evidenziazioni, note adesive) direttamente nel contenuto della pagina. L'aspetto visivo resta lo stesso, ma nulla è più modificabile o estraibile. È l'equivalente PDF di stampare un modulo compilato e scansionarlo di nuovo, con la differenza che la qualità resta perfetta.
+
+## Come funziona
+
+1. Carica uno o più file PDF.
+2. Clicca su **Appiattisci PDF**.
+3. Un singolo file viene scaricato direttamente. Più file producono un archivio ZIP.
+
+Lo strumento usa pdf-lib per appiattire i campi dei moduli (tramite `form.flatten()`) e un apposito appiattitore di annotazioni per fondere le annotazioni nel flusso della pagina. Entrambe le operazioni avvengono in un unico passaggio.
+
+## Cosa viene appiattito
+
+- **Campi dei moduli**: campi di testo, caselle di controllo, pulsanti di opzione, menu a tendina, campi firma
+- **Annotazioni**: commenti, evidenziazioni, testo barrato, sottolineato, note adesive, timbri, annotazioni a mano libera
+- **Elementi interattivi**: pulsanti, azioni attivabili
+
+## Cosa resta invariato
+
+- Il contenuto testuale (resta selezionabile e ricercabile)
+- Immagini e grafica
+- Layout e dimensioni delle pagine
+- Segnalibri e indice
+- Collegamenti ipertestuali (a meno che non siano basati su annotazioni)
+
+## Casi d'uso
+
+- Bloccare un modulo compilato in modo che i destinatari non possano modificare le risposte inviate
+- Preparare un PDF per l'archiviazione dove gli elementi interattivi non servono
+- Risolvere problemi di visualizzazione causati da annotazioni rese in modo diverso dai vari lettori
+- Garantire che un documento firmato non possa essere modificato dopo l'applicazione della firma
+- Ridurre la dimensione del file eliminando le definizioni dei campi e gli oggetti annotazione
+
+## Suggerimenti
+
+- Appiattisci dopo aver completato tutte le modifiche. Non c'è modo di annullare l'appiattimento di un PDF.
+- Se devi appiattire e anche rimuovere metadati, JavaScript e allegati, usa invece lo strumento Sanitizza PDF, che include l'appiattimento tra le sue opzioni.
+- Alcuni PDF segnalano "nessun modulo trovato": è normale se il documento ha solo annotazioni e nessun campo di modulo.
+
+## Strumenti correlati
+
+- [Sanitizza PDF](./sanitize-pdf): appiattisci i moduli e rimuovi metadati, script e altro
+- [Rasterizza PDF](./rasterize-pdf): converti in un PDF basato su immagini per il massimo appiattimento
+- [Font in Contorni](./font-to-outline): appiattisci i font in tracciati vettoriali
+- [Cripta PDF](./protect-pdf): proteggi con password il PDF appiattito
diff --git a/docs/it/tools/font-to-outline.md b/docs/it/tools/font-to-outline.md
new file mode 100644
index 00000000..bab82262
--- /dev/null
+++ b/docs/it/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Font in contorni
+description: Converti tutti i font del PDF in contorni vettoriali per una resa coerente su ogni dispositivo. Elimina i problemi di dipendenza dai font.
+---
+
+# Font in contorni
+
+Convertire i font in contorni trasforma ogni carattere di testo da glifo basato su font a tracciato vettoriale. Il PDF non dipende più da alcun font installato: si visualizza in modo identico su ogni dispositivo, ogni sistema operativo e ogni stampante. È un passaggio standard nei flussi di prestampa.
+
+## Come funziona
+
+1. Carica uno o più file PDF.
+2. Clicca su **Converti in Contorni**.
+3. Ghostscript converte tutto il testo in tracciati vettoriali.
+4. Scarica il risultato. Più file producono un archivio ZIP.
+
+Non ci sono impostazioni da configurare. Lo strumento usa Ghostscript (WebAssembly) per convertire tutti i riferimenti ai font in tracciati a contorno in un unico passaggio.
+
+## Cosa cambia
+
+- I caratteri di testo diventano curve vettoriali (tracciati bezier)
+- L'incorporamento dei font non è più necessario: il PDF è autosufficiente a livello di glifo
+- La dimensione del file può aumentare perché i tracciati vettoriali sono in genere più grandi dei riferimenti ai font
+- L'aspetto visivo viene preservato esattamente
+
+## Cosa perdi
+
+- Selezione e copia-incolla del testo
+- Ricercabilità del testo (Ctrl+F smette di funzionare)
+- La possibilità di modificare il contenuto testuale
+- Accessibilità per i lettori di schermo
+
+## Casi d'uso
+
+- Inviare PDF a una tipografia che richiede font convertiti in contorni
+- Condividere documenti che usano font personalizzati o con licenza con persone che non hanno quei font
+- Evitare la sostituzione dei font che cambia l'aspetto del documento su altri sistemi
+- Preparare PDF per flussi di incisione laser o taglio CNC che richiedono input vettoriale
+- Garantire che un PDF ricco di loghi si visualizzi correttamente su tutte le piattaforme
+
+## Suggerimenti
+
+- Conserva il PDF originale. La conversione in contorni è irreversibile: non puoi riconvertire i tracciati in testo modificabile.
+- Se hai bisogno che il testo resti ricercabile, valuta invece lo strumento Rasterizza PDF seguito dall'OCR.
+- I PDF con contorni tendono a essere più grandi. Esegui Comprimi PDF in seguito se la dimensione conta.
+
+## Strumenti correlati
+
+- [Appiattisci PDF](./flatten-pdf): appiattisci moduli e annotazioni senza toccare i font
+- [Rasterizza PDF](./rasterize-pdf): converti in un PDF basato su immagini invece che in contorni vettoriali
+- [Comprimi PDF](./compress-pdf): riduci la dimensione del file dopo la conversione in contorni
+- [PDF in PDF/A](./pdf-to-pdfa): converti per l'archiviazione dopo aver garantito l'indipendenza dai font
diff --git a/docs/it/tools/form-creator.md b/docs/it/tools/form-creator.md
new file mode 100644
index 00000000..4f704438
--- /dev/null
+++ b/docs/it/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Crea modulo PDF
+description: Crea moduli PDF compilabili con campi di testo, caselle di controllo, menu a tendina, pulsanti di opzione e altro, con il trascinamento.
+---
+
+# Crea modulo PDF
+
+Progetta moduli PDF compilabili professionali da zero o aggiungendo campi a un PDF esistente. L'editor visuale ti permette di trascinare gli elementi del modulo (campi di testo, caselle di controllo, menu a tendina, pulsanti di opzione, campi firma e altro) direttamente sulle anteprime delle pagine. Configura le proprietà dei campi, imposta regole di visibilità condizionale ed esporta un modulo PDF completamente interattivo.
+
+## Come funziona
+
+1. Carica un PDF esistente **oppure** clicca su **Crea PDF vuoto** per iniziare da zero.
+2. Se crei un PDF vuoto, seleziona un formato di pagina (Letter, A4, A5, Legal, Tabloid, A3 o dimensioni personalizzate).
+3. Si apre l'editor del modulo con una barra degli strumenti dei tipi di campo e un'area di anteprima della pagina.
+4. Seleziona un tipo di campo dalla barra degli strumenti, poi clicca sulla pagina per posizionarlo.
+5. Trascina i campi per riposizionarli. Usa le maniglie di ridimensionamento per regolare le dimensioni.
+6. Clicca su un campo per aprire il pannello delle proprietà, dove puoi impostare nome del campo, valore predefinito, dimensione del carattere, allineamento e altro.
+7. Naviga tra le pagine con i controlli di pagina.
+8. Clicca su **Salva** per scaricare il PDF compilabile finito.
+
+## Funzionalità
+
+- Posizionamento dei campi con trascinamento e maniglie visive per il ridimensionamento
+- Tipi di campo: input di testo, testo su più righe, casella di controllo, menu a tendina, pulsante di opzione, firma, data, numero e codice a barre
+- Pannello delle proprietà per configurare nome, etichetta, valore predefinito, dimensione del carattere, colore, allineamento e validazione di ogni campo
+- Azioni sui campi e regole di visibilità condizionale (mostra/nascondi campi in base ai valori di altri campi)
+- Navigazione tra le pagine per moduli su più pagine
+- Estrazione dei campi esistenti: rileva e importa automaticamente i campi dei moduli dai PDF caricati
+- Supporto sia per PDF caricati sia per pagine vuote come tela del modulo
+- Diversi formati di pagina predefiniti più dimensioni personalizzate
+- Generazione di codici a barre con bwip-js
+- Gestione dei gruppi di pulsanti di opzione
+
+## Opzioni
+
+**Formati di pagina predefiniti (per PDF vuoti):**
+
+- 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)
+- Personalizzato (specifica larghezza e altezza)
+
+**Proprietà dei campi (variano in base al tipo di campo):**
+
+- Nome, etichetta e testo segnaposto
+- Valore predefinito
+- Famiglia, dimensione e colore del carattere
+- Allineamento del testo (sinistra, centro, destra)
+- Interruttore campo obbligatorio
+- Interruttore sola lettura
+- Lunghezza massima per i campi di testo
+- Elenco di opzioni per menu a tendina e pulsanti di opzione
+- Azioni di visibilità condizionale
+
+## Casi d'uso
+
+- Creare moduli di inserimento dei dipendenti con campi di testo per i dati personali e caselle di controllo per l'accettazione delle policy
+- Creare questionari di accoglienza clienti con menu a tendina per la scelta del servizio
+- Progettare moduli d'ordine con campi calcolati e identificatori a codice a barre
+- Creare checklist di ispezione con pulsanti di opzione per le valutazioni superato/non superato
+- Creare moduli di sondaggio con domande di approfondimento condizionali che compaiono in base alle risposte
+
+## Suggerimenti
+
+- Se carichi un PDF esistente, lo strumento tenta di estrarre i campi del modulo già presenti, così puoi modificarli o aggiungerne altri.
+- Usa la funzione dei gruppi di pulsanti di opzione per creare selezioni mutuamente esclusive. I campi dello stesso gruppo condividono un nome di gruppo.
+- Testa il tuo modulo scaricandolo e aprendolo nel [Compilatore Moduli PDF](./form-filler) per verificare il comportamento dei campi.
+
+## Strumenti correlati
+
+- [Compilatore Moduli PDF](./form-filler)
+- [Firma PDF](./sign-pdf)
+- [Editor PDF](./edit-pdf)
diff --git a/docs/it/tools/form-filler.md b/docs/it/tools/form-filler.md
new file mode 100644
index 00000000..ada93cf0
--- /dev/null
+++ b/docs/it/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Compilatore moduli PDF
+description: Compila moduli PDF, inclusi i moduli XFA, direttamente nel browser con un visualizzatore integrato.
+---
+
+# Compilatore moduli PDF
+
+Apri un PDF con campi di modulo e compilalo direttamente in un visualizzatore integrato. Lo strumento supporta sia i campi AcroForm standard sia i moduli XFA (XML Forms Architecture) legacy. Una volta completato il modulo, scarica la versione compilata con un solo clic.
+
+## Come funziona
+
+1. Carica un PDF che contiene campi di modulo.
+2. Il documento si apre in un visualizzatore PDF integrato che mostra i campi del modulo come input interattivi.
+3. Clicca su campi di testo, caselle di controllo, menu a tendina e pulsanti di opzione per compilarli.
+4. Clicca su **Salva e scarica il modulo compilato** per ottenere il PDF completato.
+
+## Funzionalità
+
+- Visualizzatore PDF.js integrato con piena interazione con i campi del modulo
+- Supporto per i campi AcroForm standard (input di testo, caselle di controllo, menu a tendina, pulsanti di opzione)
+- Supporto dei moduli XFA per i moduli legacy basati su XML
+- Dimensionamento automatico del visualizzatore in base alle dimensioni della pagina
+- Visualizzazione del file con nome e dimensione
+
+## Opzioni
+
+Non ci sono opzioni di configurazione aggiuntive. Carica il modulo, compilalo e scaricalo.
+
+## Casi d'uso
+
+- Compilare moduli fiscali, richieste assicurative o pratiche burocratiche
+- Compilare moduli di candidatura ricevuti come allegati PDF
+- Completare moduli di inserimento fornitori o questionari per fornitori
+- Approvare checklist di conformità con campi a casella di controllo
+- Compilare moduli di accettazione medica prima di un appuntamento
+
+## Suggerimenti
+
+- I moduli XFA sono un formato legacy supportato solo da alcuni visualizzatori PDF. Se apri un PDF XFA in Chrome o nella maggior parte degli altri strumenti e vedi pagine vuote, significa che quei visualizzatori non supportano XFA. Il Compilatore Moduli di BentoPDF e Firefox gestiscono correttamente XFA.
+- Per i PDF senza campi di modulo esistenti, usa lo strumento [Crea Modulo PDF](./form-creator) per aggiungere prima i campi, poi compilali qui.
+- Il visualizzatore adatta automaticamente le proprie dimensioni a quelle della pagina del PDF.
+
+## Strumenti correlati
+
+- [Crea Modulo PDF](./form-creator)
+- [Firma PDF](./sign-pdf)
+- [Editor PDF](./edit-pdf)
diff --git a/docs/it/tools/header-footer.md b/docs/it/tools/header-footer.md
new file mode 100644
index 00000000..1fbe5787
--- /dev/null
+++ b/docs/it/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Intestazione e piè di pagina
+description: Aggiungi testo personalizzabile di intestazione e piè di pagina alle pagine PDF con variabili dinamiche per i numeri di pagina.
+---
+
+# Intestazione e piè di pagina
+
+Aggiungi testo in sei posizioni delle pagine del tuo PDF: intestazione a sinistra, al centro e a destra, piè di pagina a sinistra, al centro e a destra. Lo strumento supporta variabili dinamiche per il numero di pagina e il totale delle pagine, così puoi creare modelli come "Pagina 3 di 10" che si aggiornano automaticamente per ogni pagina.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Compare il pannello delle opzioni con i controlli di formattazione e sei campi di testo.
+3. Inserisci il testo desiderato in una qualsiasi posizione di intestazione o piè di pagina.
+4. Usa i segnaposto `{page}` e `{total}` per la numerazione dinamica.
+5. Regola dimensione e colore del carattere e, se vuoi, limita l'operazione a un intervallo di pagine.
+6. Clicca su **Aggiungi Intestazione e Piè di Pagina** per elaborare e scaricare.
+
+## Opzioni
+
+- **Intervallo di pagine**: limita facoltativamente le pagine che ricevono intestazioni e piè di pagina. Lascia vuoto per applicarlo a tutte le pagine. Formato: "1-3, 5" (intervalli separati da virgole).
+- **Dimensione del carattere**: tra 6 e 24 punti. Il valore predefinito è 10.
+- **Colore del carattere**: scegli qualsiasi colore con il selettore di colore.
+- **Intestazione sinistra / centro / destra**: campi di testo per la parte alta di ogni pagina.
+- **Piè di pagina sinistra / centro / destra**: campi di testo per la parte bassa di ogni pagina.
+
+## Funzionalità
+
+- Sei posizioni di testo indipendenti per pagina
+- Variabile dinamica `{page}` che inserisce il numero della pagina corrente
+- Variabile dinamica `{total}` che inserisce il numero totale di pagine
+- Filtro per intervallo di pagine per scegliere pagine specifiche
+- Dimensione e colore del carattere personalizzabili
+- Font Helvetica per un risultato pulito e professionale
+
+## Casi d'uso
+
+- Aggiungere "Pagina {page} di {total}" al centro del piè di pagina di una relazione
+- Inserire il nome dell'azienda nell'intestazione a sinistra e la data del documento nell'intestazione a destra
+- Aggiungere avvisi di riservatezza al piè di pagina dei documenti legali
+- Applicare i numeri di revisione del documento a specifici intervalli di pagine
+
+## Suggerimenti
+
+- Combina `{page}` e `{total}` in un unico campo per formati come "Pagina {page} di {total}" o "{page}/{total}".
+- Puoi lasciare vuota la maggior parte dei campi e compilare solo le posizioni che ti servono. I campi vuoti vengono semplicemente ignorati.
+- Per intestazioni più complesse con immagini o loghi, valuta lo strumento [Aggiungi Filigrana](./add-watermark) posizionato nella parte alta della pagina.
+
+## Strumenti correlati
+
+- [Numeri di Pagina](./page-numbers)
+- [Aggiungi Filigrana](./add-watermark)
+- [Numerazione Bates](./bates-numbering)
diff --git a/docs/it/tools/heic-to-pdf.md b/docs/it/tools/heic-to-pdf.md
new file mode 100644
index 00000000..65be8c00
--- /dev/null
+++ b/docs/it/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC in PDF
+description: Converti le immagini HEIC e HEIF di iPhone e iPad in PDF direttamente nel browser.
+---
+
+# HEIC in PDF
+
+Converti le immagini HEIC/HEIF in PDF. HEIC è il formato foto predefinito di iPhone e iPad da iOS 11. Questo strumento ti permette di trasformare quelle foto in PDF senza installare software desktop né caricare file su un server.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :--------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file HEIC/HEIF.
+2. Controlla l'elenco dei file e rimuovi quelli che non ti servono.
+3. Clicca su **Converti in PDF**. Il risultato viene scaricato come `from_heic.pdf`.
+
+Ogni file HEIC viene decodificato con la libreria heic2any, che lo converte in PNG con qualità al 92%. Il PNG viene poi incorporato nel PDF con pdf-lib, con ogni immagine su una pagina a sé alla risoluzione piena.
+
+## Opzioni
+
+Questo strumento non offre impostazioni aggiuntive. Le immagini HEIC vengono convertite in PNG ad alta qualità (0,92) prima dell'incorporamento.
+
+## Casi d'uso
+
+- Creare un PDF dalle foto dell'iPhone da allegare a una richiesta di risarcimento assicurativo o a una relazione
+- Convertire le foto HEIC per un annuncio immobiliare in un unico documento stampabile
+- Trasformare gli screenshot dell'iPad (formato HEIF) in un PDF condivisibile
+- Convertire in blocco le foto delle vacanze per un diario di viaggio
+
+## Suggerimenti
+
+- La decodifica HEIC avviene interamente nel browser con WebAssembly. La prima conversione può richiedere un momento mentre il decodificatore si carica.
+- Se devi mescolare HEIC con altri formati di immagine (JPG, PNG, ecc.), usa lo strumento [Immagini in PDF](./image-to-pdf), che gestisce HEIC insieme a tutti gli altri formati.
+- I file HEIC degli iPhone contengono spesso dati EXIF, comprese le coordinate GPS. Il PDF risultante non conserva questi metadati.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [JPG in PDF](./jpg-to-pdf)
+- [PNG in PDF](./png-to-pdf)
diff --git a/docs/it/tools/image-to-pdf.md b/docs/it/tools/image-to-pdf.md
new file mode 100644
index 00000000..a8f52a20
--- /dev/null
+++ b/docs/it/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Immagini in PDF
+description: Converti JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD e più di 10 altri formati di immagine in un unico file PDF.
+---
+
+# Immagini in PDF
+
+Il convertitore universale da immagini a PDF. Carica immagini in praticamente qualsiasi formato e uniscile in un unico documento PDF. Ogni immagine ottiene una pagina propria, delle stesse dimensioni dell'originale.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+È il supporto di formati più ampio tra tutti i convertitori di immagini di BentoPDF. Se ti serve un solo formato, usa invece uno degli strumenti dedicati.
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file immagine. Puoi selezionare più file contemporaneamente.
+2. Controlla l'elenco dei file. Rimuovi quelli che non ti servono con l'icona del cestino, oppure clicca su **Aggiungi altri file** per includere altre immagini.
+3. Scegli un livello di **Qualità PDF** dal menu a tendina.
+4. Clicca su **Converti in PDF**. Lo strumento elabora le immagini con il motore PyMuPDF e scarica il risultato come `images_to_pdf.pdf`.
+
+## Opzioni
+
+**Qualità PDF** controlla la compressione applicata alle immagini quando vengono incorporate nel PDF:
+
+- **Alta qualità**: compressione minima, file più grande. Ideale per la stampa o l'archiviazione.
+- **Qualità media** (predefinita): compressione bilanciata. Va bene per la maggior parte degli usi.
+- **Bassa qualità**: compressione aggressiva, file più piccolo. Adatta a email o condivisioni rapide.
+
+I file HEIC e WebP vengono convertiti automaticamente in PNG prima dell'incorporamento. Questo avviene in modo trasparente e non richiede passaggi extra.
+
+## Casi d'uso
+
+- Unire in un unico PDF ricevute o documenti scansionati con la fotocamera del telefono
+- Creare un portfolio fotografico o un lookbook da immagini in formati misti
+- Convertire le foto dell'iPhone (HEIC) in un PDF condivisibile senza installare software desktop
+- Assemblare mockup di design da esportazioni PSD e screenshot in un documento da consegnare al cliente
+- Archiviare una cartella di formati di immagine datati (PNM, JXR, JP2) come un unico PDF
+
+## Suggerimenti
+
+- L'ordine delle immagini nel PDF corrisponde all'ordine in cui compaiono nell'elenco dei file. Caricale nella sequenza che desideri.
+- Per ottenere il file più piccolo possibile, scegli Bassa qualità. La differenza visiva è spesso trascurabile per scansioni ricche di testo.
+- Se hai un solo formato di immagine, i convertitori dedicati (JPG in PDF, PNG in PDF, ecc.) offrono lo stesso risultato con un'interfaccia più semplice.
+
+## Strumenti correlati
+
+- [JPG in PDF](./jpg-to-pdf)
+- [PNG in PDF](./png-to-pdf)
+- [HEIC in PDF](./heic-to-pdf)
+- [WebP in PDF](./webp-to-pdf)
diff --git a/docs/it/tools/index.md b/docs/it/tools/index.md
new file mode 100644
index 00000000..ddf79e25
--- /dev/null
+++ b/docs/it/tools/index.md
@@ -0,0 +1,183 @@
+# Riferimento degli strumenti
+
+BentoPDF offre **più di 130 strumenti** per lavorare con i PDF. Tutti gli strumenti vengono eseguiti interamente nel tuo browser: i tuoi file non lasciano mai il dispositivo.
+
+---
+
+## Modifica e annota
+
+Modifica, annota e migliora i tuoi documenti PDF con un'ampia suite di strumenti di modifica.
+
+
+
+- [**Editor PDF**](./edit-pdf): annota, evidenzia, oscura, commenta, aggiungi forme/immagini, cerca e visualizza i PDF.
+- [**Modifica Segnalibri**](./bookmark): aggiungi, modifica, importa, elimina ed estrai i segnalibri del PDF.
+- [**Indice**](./table-of-contents): genera una pagina di indice dai segnalibri del PDF.
+- [**Numeri di Pagina**](./page-numbers): inserisci i numeri di pagina nel documento.
+- [**Aggiungi etichette di pagina**](./add-page-labels): applica etichette di pagina PDF con numeri romani, prefissi e inizi personalizzati.
+- [**Numerazione Bates**](./bates-numbering): aggiungi numeri Bates sequenziali su uno o più file PDF.
+- [**Aggiungi Filigrana**](./add-watermark): sovrapponi testo o un'immagine alle pagine del PDF.
+- [**Intestazione e Piè di Pagina**](./header-footer): aggiungi testo nella parte alta e bassa delle pagine.
+- [**Inverti Colori**](./invert-colors): crea una versione in modalità scura del tuo PDF.
+- [**Effetto scanner**](./scanner-effect): fai sembrare il tuo PDF un documento scansionato.
+- [**Regola colori**](./adjust-colors): regola con precisione luminosità, contrasto, saturazione e altro.
+- [**Colore di Sfondo**](./background-color): cambia il colore di sfondo del tuo PDF.
+- [**Cambia Colore Testo**](./text-color): cambia il colore del testo nel tuo PDF.
+- [**Firma PDF**](./sign-pdf): disegna, digita o carica la tua firma.
+- [**Aggiungi Timbri**](./add-stamps): aggiungi timbri immagine al tuo PDF con la barra degli strumenti delle annotazioni.
+- [**Rimuovi Annotazioni**](./remove-annotations): elimina commenti, evidenziazioni e link.
+- [**Ritaglia PDF**](./crop-pdf): rifila i margini di ogni pagina del tuo PDF.
+- [**Compilatore Moduli PDF**](./form-filler): compila i moduli direttamente nel browser. Supporta anche i moduli XFA.
+- [**Crea Modulo PDF**](./form-creator): crea moduli PDF compilabili con campi di testo trascinabili.
+- [**Rimuovi Pagine Vuote**](./remove-blank-pages): rileva ed elimina automaticamente le pagine vuote.
+
+
+
+---
+
+## Converti in PDF
+
+Trasforma immagini, documenti, e-book e altri formati di file in PDF.
+
+
+
+- [**Immagini in PDF**](./image-to-pdf): converti JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP e altri in PDF.
+- [**JPG in PDF**](./jpg-to-pdf): crea un PDF da una o più immagini JPG.
+- [**PNG in PDF**](./png-to-pdf): crea un PDF da una o più immagini PNG.
+- [**WebP in PDF**](./webp-to-pdf): crea un PDF da una o più immagini WebP.
+- [**SVG in PDF**](./svg-to-pdf): crea un PDF da una o più immagini SVG.
+- [**BMP in PDF**](./bmp-to-pdf): crea un PDF da una o più immagini BMP.
+- [**HEIC in PDF**](./heic-to-pdf): crea un PDF da una o più immagini HEIC.
+- [**TIFF in PDF**](./tiff-to-pdf): crea un PDF da una o più immagini TIFF.
+- [**Testo in PDF**](./txt-to-pdf): converti un file di testo semplice in PDF.
+- [**Markdown in PDF**](./markdown-to-pdf): converti Markdown in PDF con anteprima dal vivo ed evidenziazione della sintassi.
+- [**JSON in PDF**](./json-to-pdf): converti file JSON in formato PDF.
+- [**ODT in PDF**](./odt-to-pdf): converti file ODT (OpenDocument Text) in PDF.
+- [**CSV in PDF**](./csv-to-pdf): converti fogli di calcolo CSV in PDF.
+- [**RTF in PDF**](./rtf-to-pdf): converti documenti RTF (Rich Text Format) in PDF.
+- [**Word in PDF**](./word-to-pdf): converti documenti Word (DOCX, DOC, ODT) in PDF.
+- [**Excel in PDF**](./excel-to-pdf): converti fogli di calcolo Excel (XLSX, XLS, ODS) in PDF.
+- [**PowerPoint in PDF**](./powerpoint-to-pdf): converti presentazioni PowerPoint (PPTX, PPT, ODP) in PDF.
+- [**XPS in PDF**](./xps-to-pdf): converti documenti XPS/OXPS in PDF.
+- [**MOBI in PDF**](./mobi-to-pdf): converti e-book MOBI in PDF.
+- [**EPUB in PDF**](./epub-to-pdf): converti e-book EPUB in PDF.
+- [**FB2 in PDF**](./fb2-to-pdf): converti e-book FictionBook (FB2) in PDF.
+- [**CBZ in PDF**](./cbz-to-pdf): converti archivi di fumetti (CBZ/CBR) in PDF.
+- [**WPD in PDF**](./wpd-to-pdf): converti documenti WordPerfect (WPD) in PDF.
+- [**WPS in PDF**](./wps-to-pdf): converti documenti WPS Office in PDF.
+- [**XML in PDF**](./xml-to-pdf): converti documenti XML in PDF.
+- [**ODG in PDF**](./odg-to-pdf): converti OpenDocument Graphics (ODG) in PDF.
+- [**ODS in PDF**](./ods-to-pdf): converti OpenDocument Spreadsheet (ODS) in PDF.
+- [**ODP in PDF**](./odp-to-pdf): converti OpenDocument Presentation (ODP) in PDF.
+- [**PUB in PDF**](./pub-to-pdf): converti Microsoft Publisher (PUB) in PDF.
+- [**VSD in PDF**](./vsd-to-pdf): converti Microsoft Visio (VSD, VSDX) in PDF.
+- [**PSD in PDF**](./psd-to-pdf): converti file Adobe Photoshop (PSD) in PDF.
+- [**Email in PDF**](./email-to-pdf): converti file email (EML, MSG) in formato PDF.
+
+
+
+---
+
+## Converti da PDF
+
+Estrai il contenuto dei PDF in immagini, documenti e formati di dati.
+
+
+
+- [**PDF in JPG**](./pdf-to-jpg): converti ogni pagina del PDF in un'immagine JPG.
+- [**PDF in PNG**](./pdf-to-png): converti ogni pagina del PDF in un'immagine PNG.
+- [**PDF in WebP**](./pdf-to-webp): converti ogni pagina del PDF in un'immagine WebP.
+- [**PDF in BMP**](./pdf-to-bmp): converti ogni pagina del PDF in un'immagine BMP.
+- [**PDF in TIFF**](./pdf-to-tiff): converti ogni pagina del PDF in un'immagine TIFF.
+- [**PDF in CBZ**](./pdf-to-cbz): converti un PDF in un CBZ (archivio di fumetti) per lettori di fumetti e Calibre.
+- [**PDF in SVG**](./pdf-to-svg): converti ogni pagina del PDF in una grafica vettoriale scalabile.
+- [**PDF in CSV**](./pdf-to-csv): estrai le tabelle dal PDF e convertile in formato CSV.
+- [**PDF in Excel**](./pdf-to-excel): estrai le tabelle dal PDF e convertile in Excel (XLSX).
+- [**PDF in scala di grigi**](./pdf-to-greyscale): converti tutti i colori in bianco e nero.
+- [**PDF in JSON**](./pdf-to-json): converti file PDF in formato JSON.
+- [**PDF in Word**](./pdf-to-word): converti file PDF in documenti Word modificabili.
+- [**Estrai immagini**](./extract-images): estrai tutte le immagini incorporate dai tuoi file PDF.
+- [**PDF in Markdown**](./pdf-to-markdown): converti testo e tabelle del PDF in formato Markdown.
+- [**Prepara PDF per IA**](./prepare-pdf-for-ai): estrai il contenuto del PDF come JSON LlamaIndex per pipeline RAG/LLM.
+- [**PDF in Testo**](./pdf-to-text): estrai il testo dai file PDF e salvalo come testo semplice.
+- [**Estrai tabelle PDF**](./extract-tables): estrai le tabelle dai PDF come CSV, JSON o Markdown.
+
+
+
+---
+
+## Organizza e gestisci
+
+Riorganizza, combina, dividi e gestisci le pagine e i file PDF.
+
+
+
+- [**Costruttore di workflow PDF**](./pdf-workflow): crea pipeline di elaborazione PDF personalizzate con un editor visuale a nodi.
+- [**Strumento PDF multifunzione**](./pdf-multi-tool): editor PDF completo con gestione delle pagine.
+- [**OCR PDF**](./ocr-pdf): rendi un PDF ricercabile e copiabile.
+- [**Unisci PDF**](./merge-pdf): combina più PDF in un unico file.
+- [**Alterna e Riordina Pagine**](./alternate-merge): unisci i PDF alternando le pagine di ciascuno.
+- [**Fascicola scansione fronte/retro**](./duplex-collate): riordina i blocchi di scansione fronte/retro nella sequenza di pagine corretta.
+- [**Duplica e Organizza**](./organize-pdf): duplica, riordina ed elimina pagine.
+- [**Aggiungi Allegati**](./add-attachments): incorpora uno o più file nel tuo PDF.
+- [**Estrai Allegati**](./extract-attachments): estrai tutti i file incorporati dai PDF come ZIP.
+- [**Modifica Allegati**](./edit-attachments): visualizza o rimuovi gli allegati nel tuo PDF.
+- [**Livelli PDF (OCG)**](./pdf-layers): visualizza, attiva/disattiva, aggiungi ed elimina i livelli OCG nel tuo PDF.
+- [**Dividi PDF**](./split-pdf): estrai un intervallo di pagine in un nuovo PDF.
+- [**Dividi Pagine**](./divide-pages): dividi le pagine in orizzontale o in verticale.
+- [**Estrai Pagine**](./extract-pages): salva una selezione di pagine come nuovi file.
+- [**Elimina Pagine**](./delete-pages): rimuovi pagine specifiche dal documento.
+- [**Aggiungi Pagina Vuota**](./add-blank-page): inserisci una pagina vuota in qualsiasi punto del tuo PDF.
+- [**Inverti Pagine**](./reverse-pages): inverti l'ordine di tutte le pagine del documento.
+- [**Ruota PDF**](./rotate-pdf): ruota le pagine a incrementi di 90 gradi.
+- [**Ruota di Gradi Personalizzati**](./rotate-custom): ruota le pagine di qualsiasi angolo personalizzato.
+- [**N-Up PDF**](./n-up-pdf): disponi più pagine su un unico foglio.
+- [**Opuscolo PDF**](./pdf-booklet): riordina le pagine per la stampa di opuscoli fronte/retro.
+- [**Combina in Una Pagina**](./combine-single-page): unisci tutte le pagine in un unico scorrimento continuo.
+- [**Visualizza Metadati**](./view-metadata): ispeziona le proprietà nascoste del tuo PDF.
+- [**Modifica Metadati**](./edit-metadata): cambia autore, titolo e altre proprietà.
+- [**PDF in ZIP**](./pdf-to-zip): raggruppa più file PDF in un archivio ZIP.
+- [**Confronta PDF**](./compare-pdfs): confronta due PDF affiancati.
+- [**Posterizza PDF**](./posterize-pdf): dividi una pagina grande in più pagine più piccole.
+
+
+
+---
+
+## Ottimizza e ripara
+
+Comprimi, correggi e ottimizza i tuoi PDF per prestazioni e compatibilità migliori.
+
+
+
+- [**Comprimi PDF**](./compress-pdf): riduci la dimensione del file del tuo PDF.
+- [**PDF in PDF/A**](./pdf-to-pdfa): converti il PDF in PDF/A per l'archiviazione a lungo termine.
+- [**Correggi Dimensione Pagina**](./fix-page-size): uniforma tutte le pagine a una dimensione comune.
+- [**Linearizza PDF**](./linearize-pdf): ottimizza il PDF per una visualizzazione web rapida.
+- [**Dimensioni Pagina**](./page-dimensions): analizza dimensione, orientamento e unità della pagina.
+- [**Rimuovi Restrizioni**](./remove-restrictions): rimuovi la protezione con password e le restrizioni di sicurezza.
+- [**Ripara PDF**](./repair-pdf): recupera i dati da file PDF corrotti o danneggiati.
+- [**Rasterizza PDF**](./rasterize-pdf): converti il PDF in un PDF basato su immagini. Appiattisci i livelli e rimuovi il testo selezionabile.
+- [**Raddrizza PDF**](./deskew-pdf): raddrizza automaticamente le pagine scansionate inclinate con OpenCV.
+- [**Font in Contorni**](./font-to-outline): converti tutti i font in contorni vettoriali per una resa coerente.
+
+
+
+---
+
+## Proteggi il PDF
+
+Proteggi, cripta e controlla l'accesso ai tuoi documenti PDF.
+
+
+
+- [**Cripta PDF**](./protect-pdf): proteggi il tuo PDF aggiungendo una password.
+- [**Sanitizza PDF**](./sanitize-pdf): rimuovi metadati, annotazioni, script e altro.
+- [**Decrittografa PDF**](./unlock-pdf): sblocca il PDF rimuovendo la protezione con password.
+- [**Appiattisci PDF**](./flatten-pdf): rendi non modificabili i campi dei moduli e le annotazioni.
+- [**Rimuovi metadati**](./remove-metadata): elimina i dati nascosti dal tuo PDF.
+- [**Modifica permessi**](./change-permissions): imposta o cambia i permessi utente su un PDF.
+- [**Firma digitale PDF**](./digital-sign-pdf): aggiungi una firma digitale crittografica con certificati X.509.
+- [**Verifica firma PDF**](./validate-signature-pdf): verifica le firme digitali e visualizza i dettagli del certificato.
+
+
diff --git a/docs/it/tools/invert-colors.md b/docs/it/tools/invert-colors.md
new file mode 100644
index 00000000..5b99d69c
--- /dev/null
+++ b/docs/it/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Inverti colori
+description: Inverti tutti i colori del tuo PDF per creare una versione in modalità scura di qualsiasi documento.
+---
+
+# Inverti colori
+
+Trasforma ogni colore del tuo PDF nel suo inverso. Gli sfondi bianchi diventano neri, il testo nero diventa bianco e tutti gli altri colori passano ai rispettivi complementari. È il modo più rapido per creare una versione "modalità scura" di qualsiasi PDF.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Clicca su **Inverti Colori** per elaborare.
+3. Il PDF invertito viene scaricato automaticamente.
+
+Non ci sono impostazioni aggiuntive. Lo strumento renderizza ogni pagina come immagine, inverte tutti i colori dei pixel e riassembla il risultato in un nuovo PDF.
+
+## Funzionalità
+
+- Inversione dei colori con un clic per tutte le pagine
+- Elabora ogni pagina del documento
+- Mantiene dimensioni e layout originali delle pagine
+- Funziona con qualsiasi PDF, indipendentemente dal contenuto (testo, immagini, misto)
+
+## Casi d'uso
+
+- Creare versioni in modalità scura di libri di testo o manuali per una lettura notturna più comoda
+- Preparare versioni ad alto contrasto dei documenti per scopi di accessibilità
+- Invertire documenti scansionati acquisiti con un'esposizione errata
+- Generare versioni in negativo di PDF ricchi di immagini per l'analisi visiva
+
+## Suggerimenti
+
+- Poiché lo strumento rasterizza le pagine per applicare l'effetto, il risultato è basato su immagini. Il testo non sarà più selezionabile né ricercabile. Se ti serve testo ricercabile dopo l'inversione, passa il risultato in uno strumento OCR.
+- Per regolazioni dei colori più precise (luminosità, contrasto, saturazione), usa invece lo strumento [Regola Colori](./adjust-colors).
+- I PDF grandi con molte pagine possono richiedere più tempo, perché ogni pagina viene renderizzata e invertita singolarmente.
+
+## Strumenti correlati
+
+- [Regola Colori](./adjust-colors)
+- [Colore di Sfondo](./background-color)
+- [Effetto Scanner](./scanner-effect)
diff --git a/docs/it/tools/jpg-to-pdf.md b/docs/it/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..06c839bd
--- /dev/null
+++ b/docs/it/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG in PDF
+description: Converti una o più immagini JPG, JPEG e JPEG 2000 in un unico file PDF direttamente nel browser.
+---
+
+# JPG in PDF
+
+Trasforma le immagini JPG in un PDF pulito. Carica un file o più JPG insieme: ogni immagine diventa una pagina a dimensione piena nel documento finale.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file JPG. La selezione multipla è supportata.
+2. Controlla i file caricati. Usa l'icona del cestino per rimuovere singoli file, oppure clicca su **Aggiungi altri file** per aggiungerne all'elenco.
+3. Seleziona un livello di **Qualità PDF**.
+4. Clicca su **Converti in PDF**. Lo strumento comprime le immagini in base all'impostazione di qualità, le converte con il motore PyMuPDF e scarica `from_jpgs.pdf`.
+
+## Opzioni
+
+**Qualità PDF** regola la compressione applicata a ogni immagine prima che venga incorporata nel PDF:
+
+- **Alta qualità**: conserva il massimo dettaglio. Da usare per fotografia o stampa.
+- **Qualità media** (predefinita): un buon equilibrio tra nitidezza e dimensione del file.
+- **Bassa qualità**: compressione aggressiva per il file più piccolo.
+
+## Casi d'uso
+
+- Convertire documenti scansionati salvati come JPG in un unico PDF da inviare
+- Raccogliere foto di prodotto in un catalogo per i clienti
+- Trasformare immagini mediche o satellitari JPEG 2000 in un PDF portabile
+- Creare un album fotografico stampabile dalle esportazioni della fotocamera
+
+## Suggerimenti
+
+- I file JPEG 2000 (`.jp2`, `.jpx`) sono pienamente supportati, non solo il JPEG standard. È utile per l'imaging medico e i dati geospaziali.
+- Se i tuoi JPG provengono dalla fotocamera di un telefono, la qualità Media di solito produce un file più piccolo del 40-60% rispetto ad Alta, senza differenze visibili a schermo.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [PNG in PDF](./png-to-pdf)
+- [WebP in PDF](./webp-to-pdf)
diff --git a/docs/it/tools/json-to-pdf.md b/docs/it/tools/json-to-pdf.md
new file mode 100644
index 00000000..33adfac9
--- /dev/null
+++ b/docs/it/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON in PDF
+description: Ricostruisci i file PDF dal formato JSON di BentoPDF. Riconverti le esportazioni JSON nei documenti PDF originali.
+---
+
+# JSON in PDF
+
+Ricostruisci documenti PDF a partire da file JSON creati in precedenza con lo strumento **PDF in JSON** di BentoPDF. È uno strumento di conversione di andata e ritorno: prende la rappresentazione strutturata in JSON di un PDF e ricostruisce il documento originale.
+
+::: warning
+Questo strumento accetta solo file JSON prodotti dal convertitore PDF in JSON di BentoPDF. I file JSON standard provenienti da API, database o altri strumenti non sono supportati.
+:::
+
+## Formati supportati
+
+| Input | Descrizione |
+| :------ | :---------------------------------------------------------- |
+| `.json` | File JSON esportati dallo strumento PDF in JSON di BentoPDF |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina uno o più file JSON.
+2. L'elenco dei file mostra ogni file selezionato con la sua dimensione.
+3. Clicca su **Converti in PDF**. Lo strumento elabora tutti i file con un Web Worker e il motore CPDF.
+4. Il risultato viene scaricato come `jsons-to-pdf.zip`, contenente un PDF per ogni file JSON in ingresso.
+
+La conversione viene eseguita in un Web Worker in background, quindi l'interfaccia resta reattiva anche con file di grandi dimensioni.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. La struttura del JSON determina interamente il PDF risultante.
+
+## Output
+
+Quando converti più file JSON, i risultati vengono consegnati come archivio ZIP. Ogni PDF prende il nome del file JSON di origine (ad es. `report.json` diventa `report.pdf`).
+
+## Casi d'uso
+
+- Ripristinare PDF da un backup o da una pipeline di archiviazione basati su JSON
+- Far passare un PDF attraverso il JSON per ispezionarlo e poi riconvertirlo in PDF
+- Ricostruire documenti dopo modifiche programmatiche alla struttura JSON
+- Verificare che un'esportazione da PDF a JSON abbia catturato tutto il contenuto del documento riconvertendola
+
+## Suggerimenti
+
+- Se devi convertire dati JSON arbitrari (come risposte di API o file di configurazione) in un PDF formattato, lo strumento [Testo in PDF](./txt-to-pdf) è più adatto. Incolla il JSON come testo e verrà reso con una formattazione adeguata.
+- Il motore WebAssembly CPDF deve essere disponibile perché questo strumento funzioni. Le istanze self-hosted richiedono la configurazione dei file WASM di CPDF.
+
+## Strumenti correlati
+
+- [Testo in PDF](./txt-to-pdf)
+- [Markdown in PDF](./markdown-to-pdf)
+- [CSV in PDF](./csv-to-pdf)
diff --git a/docs/it/tools/linearize-pdf.md b/docs/it/tools/linearize-pdf.md
new file mode 100644
index 00000000..6d727623
--- /dev/null
+++ b/docs/it/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Linearizza PDF
+description: Ottimizza i file PDF per una visualizzazione web rapida con caricamento progressivo. Noto anche come ottimizzazione "Fast Web View".
+---
+
+# Linearizza PDF
+
+La linearizzazione ristruttura un PDF in modo che la prima pagina possa essere mostrata prima che l'intero file sia stato scaricato. Adobe la chiama "Fast Web View". Se ospiti PDF su un sito web o li servi tramite un portale documentale, la linearizzazione li fa aprire in modo molto più rapido.
+
+## Come funziona
+
+1. Carica uno o più file PDF.
+2. Clicca su **Linearizza PDF**.
+3. Scarica i risultati come archivio ZIP contenente tutti i file linearizzati.
+
+Non ci sono impostazioni da configurare. Lo strumento usa il flag `--linearize` di QPDF, che riorganizza la struttura interna del PDF senza alterarne il contenuto visivo.
+
+## Cosa fa la linearizzazione
+
+- Riordina gli oggetti del PDF in modo che i dati della prima pagina compaiano all'inizio del file
+- Aggiunge un dizionario di linearizzazione e tabelle di suggerimento, così i visualizzatori sanno dove trovare ogni pagina
+- Abilita le richieste byte-range: un browser può scaricare solo la prima pagina senza scaricare l'intero file
+- Ripulisce la tabella dei riferimenti incrociati per un accesso casuale efficiente
+
+## Funzionalità
+
+- Elaborazione in blocco di più PDF in una sola operazione
+- Il risultato conserva tutti i contenuti, i font, le immagini e gli elementi interattivi
+- Usa QPDF (WebAssembly) per una linearizzazione affidabile e conforme agli standard
+- I risultati vengono raggruppati in un file ZIP per un download comodo
+
+## Casi d'uso
+
+- Ospitare report PDF su un sito web dove gli utenti si aspettano la visualizzazione immediata delle pagine
+- Incorporare PDF in applicazioni web con visualizzatori nel browser
+- Pubblicare cataloghi o manuali PDF consultati su connessioni mobili lente
+- Preparare documenti per le reti di distribuzione dei contenuti (CDN) che supportano il servizio byte-range
+
+## Suggerimenti
+
+- Linearizza dopo aver completato tutte le altre modifiche. Qualsiasi modifica successiva (unione, aggiunta di pagine) interrompe la linearizzazione.
+- Combinala con Comprimi PDF per ottenere PDF il più piccoli e veloci da caricare possibile.
+- La linearizzazione aggiunge un piccolo sovraccarico alla dimensione del file (in genere meno dell'1%).
+
+## Strumenti correlati
+
+- [Comprimi PDF](./compress-pdf): riduci la dimensione del file prima di linearizzare
+- [Ripara PDF](./repair-pdf): correggi i problemi strutturali che impediscono la linearizzazione
+- [Rimuovi Metadati](./remove-metadata): elimina i metadati prima di pubblicare online
diff --git a/docs/it/tools/markdown-to-pdf.md b/docs/it/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..f1ebfe06
--- /dev/null
+++ b/docs/it/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown in PDF
+description: Scrivi o incolla Markdown ed esportalo come PDF formattato in modo professionale, con anteprima dal vivo ed evidenziazione della sintassi.
+---
+
+# Markdown in PDF
+
+Un editor Markdown completo con anteprima dal vivo ed esportazione in PDF con un clic. Scrivi da zero, carica un file `.md` esistente o incolla il contenuto dagli appunti. L'editor rende il tuo Markdown in tempo reale ed esporta un PDF con stile usando il motore di stampa integrato nel browser.
+
+## Formati supportati
+
+| Input | Descrizione |
+| :------------ | :------------------------------ |
+| File `.md` | Caricali con il pulsante Carica |
+| Input diretto | Scrivi o incolla nell'editor |
+
+## Come funziona
+
+1. Apri lo strumento Markdown in PDF. L'editor si carica con una vista divisa: sorgente Markdown a sinistra, anteprima renderizzata a destra.
+2. Scrivi il tuo Markdown, incollalo oppure clicca su **Carica** per caricare un file `.md`.
+3. Passa dal tema chiaro a quello scuro con il cursore del tema nella barra degli strumenti.
+4. Clicca su **Esporta PDF** (oppure premi `Ctrl/Cmd + S`) per generare un PDF tramite la finestra di stampa del browser.
+
+## Funzionalità
+
+L'editor supporta un ampio insieme di funzionalità Markdown oltre alle basi:
+
+- **Markdown standard**: titoli, grassetto, corsivo, link, immagini, elenchi, citazioni, linee orizzontali
+- **Blocchi di codice** con evidenziazione della sintassi per più di 15 linguaggi (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash e altri)
+- **Diagrammi Mermaid**: diagrammi di flusso, diagrammi di sequenza, diagrammi ER e altri tipi di grafici Mermaid vengono resi direttamente nell'anteprima
+- **Tabelle** con la sintassi standard delle tabelle Markdown
+- **Elenchi di attività** con caselle di controllo
+- **Note a piè di pagina**, **pedici**, **apici**
+- **Elenchi di definizioni**, **abbreviazioni**
+- Supporto per le **emoji** (`:smile:` viene reso come emoji)
+- **Evidenziazioni** (`==marked text==`) e **inserimenti** (`++inserted text++`)
+- **URL con link automatico**: gli URL semplici vengono convertiti in link cliccabili
+- Generazione dell'**indice**
+- **Link di ancoraggio** sui titoli
+
+## Casi d'uso
+
+- Scrivere la documentazione di un progetto ed esportare un PDF curato per gli stakeholder
+- Creare report tecnici con esempi di codice e diagrammi di architettura Mermaid
+- Convertire un README di GitHub in PDF per l'uso offline o la stampa
+- Redigere una proposta o una specifica con elenchi di attività e tabelle
+- Generare una dispensa con stile a partire da appunti di lezione scritti in Markdown
+
+## Suggerimenti
+
+- L'output PDF usa la funzione di stampa in PDF del browser. In Chrome puoi personalizzare margini e scala nella finestra di stampa prima di salvare.
+- I diagrammi Mermaid vengono resi nell'anteprima, ma al primo utilizzo possono richiedere un momento per inizializzarsi.
+- Usa `Ctrl/Cmd + S` come scorciatoia da tastiera per esportare senza cercare il pulsante.
+
+## Strumenti correlati
+
+- [Testo in PDF](./txt-to-pdf)
+- [Word in PDF](./word-to-pdf)
+- [JSON in PDF](./json-to-pdf)
diff --git a/docs/it/tools/merge-pdf.md b/docs/it/tools/merge-pdf.md
new file mode 100644
index 00000000..e0a44012
--- /dev/null
+++ b/docs/it/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Unisci PDF
+description: Combina più file PDF in un unico documento con riordinamento tramite trascinamento e controllo a livello di pagina.
+---
+
+# Unisci PDF
+
+Combina più file PDF in un unico documento. Puoi unire file interi in un ordine specifico, oppure passare alla Modalità Pagina per avere un controllo preciso sulle singole pagine di ogni PDF caricato.
+
+## Come funziona
+
+1. Carica due o più file PDF cliccando sull'area di rilascio o trascinandoli.
+2. Scegli tra **Modalità File** e **Modalità Pagina** con l'interruttore in alto.
+3. In Modalità File, trascina i file per riordinarli e, se vuoi, specifica gli intervalli di pagine (ad es. `1-3, 5`) per ciascun file. Lascia l'intervallo vuoto per includere tutte le pagine.
+4. In Modalità Pagina, trascina le miniature delle singole pagine per costruire l'esatta sequenza di pagine.
+5. Clicca su **Unisci PDF** per combinare tutto in un unico file. Il PDF unito viene scaricato automaticamente.
+
+## Funzionalità
+
+- Due modalità di unione: Modalità File per combinare rapidamente file interi, Modalità Pagina per il controllo pagina per pagina
+- Riordinamento con trascinamento in entrambe le modalità, con animazioni fluide
+- La sintassi degli intervalli di pagine (ad es. `1-3, 5, 8-10`) permette di scegliere le pagine senza passare alla Modalità Pagina
+- Le miniature delle pagine vengono caricate al bisogno, così l'interfaccia resta reattiva anche con documenti grandi
+- Nessun limite al numero di file o al totale delle pagine
+- Conserva la qualità originale del PDF senza ricodifica
+
+## Opzioni
+
+| Opzione | Descrizione |
+| ------------------- | --------------------------------------------------------------------------------------------------------- |
+| **Modalità File** | Unisci file interi in un ordine personalizzato, con filtri facoltativi per intervallo di pagine per file |
+| **Modalità Pagina** | Griglia visiva di tutte le pagine di tutti i file: trascina le miniature per costruire la sequenza esatta |
+| **Campo Pagine** | Campo di testo per file che accetta intervalli come `1-3, 5` per includere solo pagine specifiche |
+
+## Casi d'uso
+
+- Combinare PDF di capitoli separati in un unico libro o relazione
+- Unire una lettera di presentazione e un curriculum in un unico documento di candidatura
+- Estrarre pagine specifiche da più documenti di origine in un file consolidato
+- Raccogliere ricevute o fatture scansionate in un unico PDF d'archivio
+- Creare una dispensa di presentazione con diapositive provenienti da più presentazioni
+
+## Suggerimenti
+
+- Usa la Modalità Pagina quando devi alternare pagine di file diversi invece di accodare un file dopo l'altro.
+- Puoi aggiungere altri file dopo il caricamento iniziale con il pulsante **Aggiungi altri file** senza perdere la disposizione attuale.
+- Gli intervalli di pagine partono da 1, quindi `1` indica la prima pagina di quel file.
+
+## Strumenti correlati
+
+- [Dividi PDF](./split-pdf)
+- [Duplica e Organizza](./organize-pdf)
+- [Alterna e Riordina Pagine](./alternate-merge)
+- [Elimina Pagine](./delete-pages)
diff --git a/docs/it/tools/mobi-to-pdf.md b/docs/it/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..4e7a0d55
--- /dev/null
+++ b/docs/it/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI in PDF
+description: Converti i file ebook MOBI in PDF direttamente nel browser. Gratis, privato, senza caricamento di file.
+---
+
+# MOBI in PDF
+
+Converti gli ebook MOBI di Amazon Kindle in documenti PDF. I file MOBI sono legati ai dispositivi e alle app Kindle, quindi è difficile leggerli altrove. Convertirli in PDF ti dà una versione portabile che puoi aprire su qualsiasi dispositivo o stampare.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------ | :--------- | :-------------------------------- |
+| MOBI | `.mobi` | Formato ebook Kindle (Mobipocket) |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina uno o più file MOBI.
+2. Controlla l'elenco dei file. Rimuovi quelli che non ti servono con l'icona del cestino, oppure usa **Aggiungi altri file** per includere altri ebook.
+3. Clicca su **Converti in PDF**. Il motore PyMuPDF analizza la struttura del MOBI e rende ogni pagina come contenuto PDF.
+4. Un singolo file viene scaricato come PDF. Se converti più file, ottieni un archivio ZIP chiamato `mobi-converted.zip`.
+
+## Opzioni
+
+Non servono impostazioni aggiuntive. La conversione conserva il contenuto testuale, la formattazione e le immagini incorporate del file MOBI originale.
+
+## Casi d'uso
+
+- Leggere contenuti acquistati su Kindle su un e-reader non Kindle che supporta solo il PDF
+- Stampare capitoli di un ebook per lo studio o le annotazioni offline
+- Archiviare la tua libreria personale di ebook in un formato universale
+- Condividere estratti con chi non ha l'app Kindle installata
+
+## Suggerimenti
+
+- I file MOBI protetti da DRM non possono essere convertiti. Lo strumento funziona solo con file MOBI senza DRM.
+- Gli ebook grandi con molte immagini incorporate possono richiedere qualche secondo in più, perché tutto avviene nel browser.
+
+## Strumenti correlati
+
+- [EPUB in PDF](./epub-to-pdf)
+- [FB2 in PDF](./fb2-to-pdf)
+- [CBZ in PDF](./cbz-to-pdf)
diff --git a/docs/it/tools/n-up-pdf.md b/docs/it/tools/n-up-pdf.md
new file mode 100644
index 00000000..15d3a173
--- /dev/null
+++ b/docs/it/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-Up PDF
+description: Disponi più pagine PDF su un unico foglio in una griglia per una stampa compatta.
+---
+
+# N-Up PDF
+
+Posiziona più pagine su un unico foglio in una disposizione a griglia. Questo riduce il numero di pagine stampate inserendo 2, 4, 6, 8, 9 o 16 pagine per foglio. Lo strumento gestisce scala, posizionamento e configurazione facoltativa del formato di pagina.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Seleziona il numero di pagine per foglio (il valore "N"): 2, 4, 6, 8, 9 o 16.
+3. Scegli il formato della pagina di output (il predefinito è A4) e l'orientamento.
+4. Facoltativamente, configura spaziatura, colore del bordo e colore di sfondo.
+5. Clicca sul pulsante di elaborazione. Lo strumento scala ogni pagina e le dispone a mosaico su nuovi fogli.
+
+## Funzionalità
+
+- Disposizioni a griglia: 2-up, 4-up, 6-up, 8-up, 9-up e 16-up
+- Formato e orientamento della pagina di output configurabili
+- Spaziatura facoltativa tra le pagine affiancate
+- Impostazioni di colore di sfondo e bordo
+- Mantiene le proporzioni delle pagine originali durante il ridimensionamento
+
+## Opzioni
+
+| Opzione | Descrizione |
+| --------------------- | ----------------------------------------------------------------------------------- |
+| **Pagine per foglio** | Numero di pagine originali da inserire in ogni pagina di output (2, 4, 6, 8, 9, 16) |
+| **Formato pagina** | Dimensione del foglio di output (A4, Letter, Legal, ecc.) |
+| **Orientamento** | Verticale o Orizzontale per il foglio di output |
+| **Spaziatura** | Distanza in punti tra le pagine affiancate |
+| **Colore di sfondo** | Colore di riempimento dello sfondo del foglio di output |
+| **Colore del bordo** | Colore dei bordi attorno a ogni pagina affiancata |
+
+## Casi d'uso
+
+- Stampare dispense con 4 diapositive per pagina per risparmiare carta
+- Creare fogli di studio con più pagine di riferimento su un solo foglio
+- Produrre archivi di documenti compatti da archiviare
+- Generare fogli panoramici con miniature di un documento lungo
+
+## Suggerimenti
+
+- L'orientamento orizzontale funziona spesso meglio per le disposizioni 2-up, mentre quello verticale è di solito ideale da 4-up in su.
+- Aumentare la spaziatura migliora la leggibilità ma riduce l'area disponibile per ogni pagina affiancata.
+- Per l'operazione inversa (dividere una pagina in più pagine), vedi [Posterizza PDF](./posterize-pdf).
+
+## Strumenti correlati
+
+- [Posterizza PDF](./posterize-pdf)
+- [Opuscolo PDF](./pdf-booklet)
+- [Combina in Una Pagina](./combine-single-page)
diff --git a/docs/it/tools/ocr-pdf.md b/docs/it/tools/ocr-pdf.md
new file mode 100644
index 00000000..491f29c4
--- /dev/null
+++ b/docs/it/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Rendi ricercabili e copiabili i PDF scansionati con Tesseract OCR, con supporto multilingue e filtro dei caratteri.
+---
+
+# OCR PDF
+
+Trasforma i documenti scansionati in PDF ricercabili e copiabili. Lo strumento usa Tesseract OCR per riconoscere il testo nelle immagini e sovrappone un livello di testo invisibile alle pagine originali, preservandone l'aspetto visivo e rendendo il contenuto completamente ricercabile.
+
+## Come funziona
+
+1. Carica un PDF scansionato o basato su immagini.
+2. Seleziona una o più lingue presenti nel documento dall'elenco delle lingue con ricerca.
+3. Facoltativamente, regola le impostazioni avanzate (risoluzione, binarizzazione, whitelist).
+4. Clicca su **Avvia OCR** e segui l'avanzamento nella barra di progresso in tempo reale.
+5. Al termine, controlla il testo estratto, poi scarica il PDF ricercabile o un semplice file `.txt`.
+
+## Funzionalità
+
+- OCR multilingue con selettore di lingua ricercabile
+- Il livello di testo invisibile preserva l'aspetto originale del documento
+- Barra di progresso e log in tempo reale durante l'elaborazione
+- Scarica i risultati come PDF ricercabile o file di testo semplice
+- Copia il testo estratto direttamente negli appunti
+- Tre livelli di risoluzione per bilanciare velocità e precisione
+
+## Opzioni
+
+| Impostazione | Valori | Predefinito | Scopo |
+| ---------------------------------- | -------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------- |
+| **Risoluzione** | Standard (192 DPI), Alta (288 DPI), Ultra (384 DPI) | Alta | Una risoluzione maggiore migliora la precisione sul testo piccolo ma richiede più tempo |
+| **Binarizza immagine** | Sì / No | No | Migliora il contrasto per scansioni pulite convertendo in bianco e nero |
+| **Preset whitelist dei caratteri** | Nessuno, Alfanumerico, Numeri + Valuta, Solo lettere, Solo numeri, Fattura, Moduli, Personalizzato | Nessuno | Limita i caratteri riconosciuti per migliorare la precisione su tipi di documento specifici |
+| **Whitelist dei caratteri** | Testo libero | Vuoto | Insieme di caratteri manuale quando il preset è impostato su Personalizzato |
+
+## Casi d'uso
+
+- Rendere ricercabili contratti e fatture scansionati, così puoi usare Ctrl+F al loro interno
+- Estrarre il testo da documenti fotografati o vecchie carte
+- Elaborare ricevute con il preset Fattura per catturare con precisione importi e date
+- Creare PDF accessibili da scansioni di sole immagini per requisiti di conformità
+- Estrarre in blocco il contenuto testuale da libri o manuali scansionati
+
+## Suggerimenti
+
+- Seleziona più lingue se il documento contiene testo in lingue miste (ad es. intestazioni in inglese con testo in giapponese).
+- Usa l'opzione di binarizzazione per documenti con testo sbiadito o a basso contrasto: può migliorare in modo significativo la precisione del riconoscimento.
+- I preset di whitelist Fattura e Moduli riducono drasticamente i falsi positivi sui documenti strutturati ignorando le forme di caratteri irrilevanti.
+
+## Strumenti correlati
+
+- [Estrai tabelle PDF](./extract-tables)
+- [Unisci PDF](./merge-pdf)
+- [Comprimi PDF](./compress-pdf)
diff --git a/docs/it/tools/odg-to-pdf.md b/docs/it/tools/odg-to-pdf.md
new file mode 100644
index 00000000..18ac4a49
--- /dev/null
+++ b/docs/it/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG in PDF
+description: Converti i file LibreOffice Draw (ODG) in PDF nel browser. Gratis, senza caricamento, completamente privato.
+---
+
+# ODG in PDF
+
+Converti i file OpenDocument Graphics in PDF. ODG è il formato nativo di LibreOffice Draw ed è usato per diagrammi, diagrammi di flusso e illustrazioni vettoriali. Convertire in PDF rende questi disegni facili da condividere, stampare e incorporare in altri documenti.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :-------------------- | :--------- | :----------------------------------------- |
+| OpenDocument Graphics | `.odg` | File di LibreOffice Draw / OpenOffice Draw |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file ODG. Puoi aggiungere più file contemporaneamente.
+2. Controlla l'elenco dei file. Rimuovi singole voci con l'icona del cestino, oppure clicca su **Aggiungi altri file** per aggiungere altri disegni.
+3. Clicca su **Converti in PDF**. Un motore basato su LibreOffice si carica nel browser e converte ogni file ODG, preservando grafica vettoriale, forme e testo.
+4. Un singolo file viene scaricato direttamente come PDF. Più file producono un archivio ZIP chiamato `odg-to-pdf.zip`.
+
+## Opzioni
+
+Non sono richieste impostazioni aggiuntive. La conversione preserva le dimensioni originali della pagina, le forme, i connettori e le caselle di testo del sorgente ODG.
+
+## Casi d'uso
+
+- Condividere diagrammi di LibreOffice Draw con clienti che non hanno LibreOffice installato
+- Stampare diagrammi di flusso e diagrammi di rete creati in Draw
+- Includere illustrazioni ODG in una relazione o presentazione come PDF incorporati
+- Archiviare disegni tecnici in un formato che resterà leggibile per decenni
+
+## Suggerimenti
+
+- Gli elementi vettoriali restano vettoriali nel PDF risultante, quindi il risultato si scala in modo pulito a qualsiasi dimensione di stampa.
+- Il motore LibreOffice richiede un momento per inizializzarsi al primo utilizzo. Le conversioni successive nella stessa sessione sono più rapide.
+
+## Strumenti correlati
+
+- [ODS in PDF](./ods-to-pdf)
+- [ODP in PDF](./odp-to-pdf)
+- [VSD in PDF](./vsd-to-pdf)
diff --git a/docs/it/tools/odp-to-pdf.md b/docs/it/tools/odp-to-pdf.md
new file mode 100644
index 00000000..59188e72
--- /dev/null
+++ b/docs/it/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP in PDF
+description: Converti le presentazioni LibreOffice Impress (ODP) in PDF nel browser. Gratis, privato, senza caricamento.
+---
+
+# ODP in PDF
+
+Converti i file OpenDocument Presentation in PDF. ODP è il formato nativo di LibreOffice Impress ed è un'esportazione standard di Google Slides. Trasformare le presentazioni in PDF permette a chiunque di visualizzarle senza software di presentazione, e le diapositive si stampano in modo pulito.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------------------------ | :--------- | :-------------------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / esportazione di Google Slides |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file ODP. Puoi selezionare più presentazioni contemporaneamente.
+2. Controlla l'elenco dei file. Rimuovi le voci con l'icona del cestino, oppure usa **Aggiungi altri file** per includere altre presentazioni.
+3. Clicca su **Converti in PDF**. Il motore basato su LibreOffice elabora ogni presentazione e produce un PDF in cui ogni diapositiva diventa una pagina.
+4. Un singolo file viene scaricato come PDF. Più file vengono consegnati in un archivio ZIP chiamato `odp-to-pdf.zip`.
+
+## Opzioni
+
+Nessuna impostazione da configurare. Ogni diapositiva viene resa alle sue dimensioni originali, preservando testo, immagini, forme e sfondi.
+
+## Casi d'uso
+
+- Distribuire una presentazione al pubblico come dispensa in PDF
+- Condividere le esportazioni di Google Slides con chi preferisce il PDF all'ODP
+- Archiviare interventi a conferenze e lezioni in un formato di sola lettura
+- Stampare presentazioni per workshop in presenza
+
+## Suggerimenti
+
+- Le transizioni e le animazioni delle diapositive sono funzioni solo visive che non passano nel PDF, ma tutto il contenuto statico viene reso correttamente.
+- Le note del relatore non sono incluse nel PDF. Se ti servono le note, esportale separatamente dal tuo software di presentazione.
+- Come gli altri strumenti basati su LibreOffice, il motore si carica al primo utilizzo e resta in cache per la sessione.
+
+## Strumenti correlati
+
+- [ODG in PDF](./odg-to-pdf)
+- [ODS in PDF](./ods-to-pdf)
+- [PUB in PDF](./pub-to-pdf)
diff --git a/docs/it/tools/ods-to-pdf.md b/docs/it/tools/ods-to-pdf.md
new file mode 100644
index 00000000..765234ca
--- /dev/null
+++ b/docs/it/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS in PDF
+description: Converti i fogli di calcolo LibreOffice Calc (ODS) in PDF nel browser. Gratis, privato, senza registrazione.
+---
+
+# ODS in PDF
+
+Converti i file OpenDocument Spreadsheet in PDF. ODS è il formato nativo di LibreOffice Calc e un'esportazione comune di Google Sheets. Questo strumento trasforma i dati, la formattazione e i grafici del tuo foglio di calcolo in un PDF impaginato, pronto da stampare o condividere.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :----------------------- | :--------- | :----------------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | Esportazione da LibreOffice Calc / Google Sheets |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i tuoi file ODS. Sono supportati più file.
+2. Controlla l'elenco dei file. Usa l'icona del cestino per rimuovere i file, oppure clicca su **Aggiungi altri file** per ampliare il gruppo.
+3. Clicca su **Converti in PDF**. Il motore basato su LibreOffice si carica nel browser e trasforma ogni foglio di calcolo in pagine PDF.
+4. Un singolo foglio di calcolo viene scaricato come PDF. Più file vengono raccolti in `ods-to-pdf.zip`.
+
+## Opzioni
+
+Non è richiesta alcuna configurazione. Il convertitore applica al PDF il layout di stampa, la formattazione delle celle e la larghezza delle colonne già presenti nel foglio di calcolo.
+
+## Casi d'uso
+
+- Condividere un budget o un report di LibreOffice Calc con chi accetta solo PDF
+- Stampare un'esportazione di Google Sheets scaricata come ODS
+- Archiviare documenti finanziari in un formato non modificabile
+- Inviare moduli o fogli presenze in formato ODS come documenti a layout fisso
+
+## Suggerimenti
+
+- Se il foglio di calcolo contiene più fogli, tutti vengono inclusi nel PDF.
+- I fogli di calcolo molto larghi possono estendersi su più pagine PDF in orizzontale. Se il layout è importante, valuta di regolare la larghezza delle colonne nel file di origine prima di convertire.
+- Il motore LibreOffice si inizializza al primo utilizzo. Le conversioni successive nella stessa sessione sono più veloci.
+
+## Strumenti correlati
+
+- [ODG in PDF](./odg-to-pdf)
+- [ODP in PDF](./odp-to-pdf)
+- [XML in PDF](./xml-to-pdf)
diff --git a/docs/it/tools/odt-to-pdf.md b/docs/it/tools/odt-to-pdf.md
new file mode 100644
index 00000000..dcdcf448
--- /dev/null
+++ b/docs/it/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT in PDF
+description: Converti i file OpenDocument Text (ODT) in PDF nel browser con un motore basato su LibreOffice.
+---
+
+# ODT in PDF
+
+Converti i file OpenDocument Text in PDF. ODT è il formato nativo di LibreOffice Writer, Apache OpenOffice e di altri elaboratori di testo open source. Questo strumento usa un motore LibreOffice che gira nel browser per ottenere conversioni accurate, che mantengono formattazione, tabelle, immagini e stili.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :---------------- | :--------- |
+| OpenDocument Text | `.odt` |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina uno o più file ODT.
+2. Controlla l'elenco dei file. Aggiungi altri file o rimuovi quelli indesiderati.
+3. Clicca su **Converti in PDF**. Il motore LibreOffice si inizializza (un indicatore di avanzamento mostra lo stato del caricamento), poi ogni file viene convertito.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono raccolti in `odt-converted.zip`.
+
+## Opzioni
+
+Questo strumento non ha configurazioni aggiuntive. La conversione mantiene la formattazione del documento originale il più fedelmente possibile.
+
+## Output
+
+| Numero di file | Output |
+| :------------- | :---------------------------------------------------------- |
+| 1 file | Download di un singolo PDF (ad es. `document.pdf`) |
+| 2 o più file | Archivio ZIP (`odt-converted.zip`) con un PDF per ogni file |
+
+## Casi d'uso
+
+- Convertire documenti di LibreOffice Writer in PDF da condividere con chi usa Microsoft Office
+- Produrre PDF pronti per la stampa da articoli accademici scritti in formato OpenDocument
+- Convertire in blocco una cartella di modelli ODT in PDF da distribuire
+- Generare PDF da file ODT creati da sistemi automatici di generazione di documenti
+
+## Suggerimenti
+
+- Il motore LibreOffice si carica al primo utilizzo e viene memorizzato nella cache per le conversioni successive. Il primo caricamento richiede alcuni secondi, poi le conversioni sono veloci.
+- I documenti complessi con oggetti OLE incorporati o font insoliti possono apparire in modo leggermente diverso rispetto a LibreOffice desktop. Prova con un campione prima di convertire in blocco.
+- Per i documenti Word (`.doc`, `.docx`), usa invece lo strumento [Word in PDF](./word-to-pdf), che usa lo stesso motore LibreOffice ma accetta direttamente i formati Microsoft.
+
+## Strumenti correlati
+
+- [Word in PDF](./word-to-pdf)
+- [RTF in PDF](./rtf-to-pdf)
+- [Testo in PDF](./txt-to-pdf)
diff --git a/docs/it/tools/organize-pdf.md b/docs/it/tools/organize-pdf.md
new file mode 100644
index 00000000..85468f3a
--- /dev/null
+++ b/docs/it/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplica e Organizza
+description: Riordina, duplica ed elimina le pagine PDF con miniature trascinabili e un ordine pagine personalizzato.
+---
+
+# Duplica e Organizza
+
+Riorganizza, duplica e rimuovi le pagine di un PDF con un'interfaccia visiva a trascinamento. Ogni pagina appare come una miniatura che puoi spostare, clonare o eliminare prima di salvare il risultato come nuovo file.
+
+## Come funziona
+
+1. Carica un singolo file PDF.
+2. Lo strumento mostra una griglia di miniature con tutte le pagine.
+3. Trascina le miniature per riordinare le pagine, clicca sul pulsante verde di duplicazione per clonare una pagina o sul pulsante rosso di eliminazione per rimuoverla.
+4. In alternativa, inserisci un ordine di pagine personalizzato nel campo di testo (ad es. `3, 1, 2, 4`) e clicca su **Applica** per riorganizzare tutte le pagine in una volta.
+5. Clicca sul pulsante di elaborazione per creare e scaricare il PDF riorganizzato.
+
+## Funzionalità
+
+- Riordino delle pagine con trascinamento e transizioni animate
+- Pulsanti di duplicazione ed eliminazione per ogni pagina
+- Ordine di pagine personalizzato per una disposizione precisa
+- Etichette con il numero di pagina che si aggiornano automaticamente dopo ogni modifica
+- Impedisce di eliminare l'ultima pagina rimasta
+
+## Casi d'uso
+
+- Spostare nella posizione corretta una pagina fuori posto in un report
+- Duplicare la pagina di un modulo per avere più copie vuote in un unico file
+- Rimuovere pagine di bozza o segnaposto prima di distribuire un documento
+- Invertire o rimescolare l'ordine delle pagine per preparare la stampa
+- Creare una sequenza di pagine personalizzata senza dover unire di nuovo file separati
+
+## Suggerimenti
+
+- Il campo dell'ordine personalizzato richiede i numeri delle pagine originali separati da virgole. Deve includere ogni pagina esattamente una volta: nessuna omissione e nessun duplicato.
+- Dopo aver duplicato una pagina, entrambe le copie fanno riferimento allo stesso indice di pagina originale. Puoi riordinare ciascuna copia in modo indipendente.
+- Per operazioni in blocco su più file o flussi di lavoro più avanzati, valuta lo [Strumento PDF multifunzione](./pdf-multi-tool).
+
+## Strumenti correlati
+
+- [Unisci PDF](./merge-pdf)
+- [Elimina Pagine](./delete-pages)
+- [Strumento PDF multifunzione](./pdf-multi-tool)
+- [Inverti Pagine](./reverse-pages)
diff --git a/docs/it/tools/page-dimensions.md b/docs/it/tools/page-dimensions.md
new file mode 100644
index 00000000..43f14a5b
--- /dev/null
+++ b/docs/it/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Dimensioni pagina
+description: Analizza dimensioni, orientamento, proporzioni e rotazione delle pagine PDF. Rileva i documenti con pagine di formati diversi ed esporta i dati in CSV.
+---
+
+# Dimensioni pagina
+
+Uno strumento diagnostico che legge ogni pagina del tuo PDF e ne riporta le dimensioni esatte, l'orientamento, il nome del formato standard, le proporzioni, l'area e la rotazione. Utile per individuare pagine di formati diversi prima della stampa o per documentare le proprietà di un PDF ricevuto.
+
+## Come funziona
+
+1. Carica un file PDF. L'analisi parte automaticamente: non c'è nessun pulsante da premere.
+2. Un riquadro di riepilogo mostra il totale delle pagine, il numero di formati di pagina unici e se il documento contiene formati misti.
+3. Consulta la tabella completa dei risultati con i dettagli di ogni pagina.
+4. Cambia l'unità di misura tra punti, pollici, millimetri o pixel.
+5. Clicca su **Esporta in CSV** per salvare i dati.
+
+## Campi riportati
+
+| Colonna | Descrizione |
+| ---------------- | --------------------------------------------------------- |
+| N. pagina | Numero progressivo della pagina |
+| Dimensioni | Larghezza x Altezza nell'unità selezionata |
+| Formato standard | Nome corrispondente (A4, Letter, ecc.) o "Personalizzato" |
+| Orientamento | Verticale o Orizzontale |
+| Proporzioni | Rapporto larghezza/altezza in formato decimale |
+| Area | Area della pagina nell'unità selezionata al quadrato |
+| Rotazione | Rotazione della pagina in gradi |
+
+## Funzionalità
+
+- Rilevamento automatico dei formati di carta standard (A3, A4, A5, Letter, Legal, Tabloid e altri)
+- Avviso per documenti con formati misti, con il dettaglio dei formati presenti e di quante pagine usano ciascuno
+- Conversione tra punti, pollici, millimetri e pixel (a 96 PPI)
+- Esportazione in CSV da usare in fogli di calcolo o sistemi di documentazione
+
+## Casi d'uso
+
+- Verificare che tutte le pagine siano A4 prima di inviare un documento a una tipografia
+- Capire perché un PDF unito viene stampato con margini inattesi su alcune pagine
+- Documentare il layout delle pagine di un grande archivio PDF per i record di metadati
+- Individuare le pagine ruotate che richiedono una correzione
+
+## Suggerimenti
+
+- Se il riepilogo mostra "Formati misti", usa lo strumento Correggi Dimensione Pagina per uniformare prima di stampare.
+- Il campo della rotazione aiuta a individuare le pagine che si vedono correttamente ma hanno un attributo di rotazione diverso da zero, cosa che può causare problemi in alcuni flussi di lavoro.
+
+## Strumenti correlati
+
+- [Correggi Dimensione Pagina](./fix-page-size): uniforma le pagine dopo aver individuato i formati misti
+- [Comprimi PDF](./compress-pdf): ottimizza il PDF dopo aver corretto i problemi delle pagine
+- [Ruota PDF](./rotate-pdf): correggi le pagine ruotate
diff --git a/docs/it/tools/page-numbers.md b/docs/it/tools/page-numbers.md
new file mode 100644
index 00000000..2a7c2e9b
--- /dev/null
+++ b/docs/it/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Numeri di pagina
+description: Aggiungi numeri di pagina personalizzabili in qualsiasi posizione delle pagine PDF, con font, dimensione e colore configurabili.
+---
+
+# Numeri di pagina
+
+Aggiungi numeri di pagina visibili a ogni pagina del tuo PDF. Scegli tu posizione, formato, dimensione del carattere e colore: al resto pensa lo strumento.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Configura le impostazioni dei numeri di pagina nel pannello delle opzioni che compare.
+3. Clicca su **Aggiungi numeri di pagina** per elaborare.
+4. Il PDF numerato viene scaricato automaticamente.
+
+## Opzioni
+
+- **Posizione**: scegli dove compaiono i numeri di pagina: in basso al centro, in basso a sinistra, in basso a destra, in alto al centro, in alto a sinistra o in alto a destra.
+- **Formato**: scegli tra la numerazione semplice (1, 2, 3...) e il formato "pagina X di Y" (1 / 5, 2 / 5...).
+- **Dimensione del carattere**: imposta la dimensione del testo del numero di pagina. Il valore predefinito è 12.
+- **Colore**: scegli qualsiasi colore per il testo del numero di pagina con il selettore colore.
+
+## Funzionalità
+
+- Sei posizioni disponibili, che coprono tutti gli angoli e le posizioni centrali
+- Due formati di numerazione: sequenziale semplice o "pagina X di Y"
+- Dimensione del carattere personalizzabile da 6 a 72 punti
+- Selettore colore completo per il colore del testo
+- Gestione automatica dei margini che mantiene i numeri in aree sicure, qualunque sia la dimensione della pagina
+
+## Casi d'uso
+
+- Preparare per la stampa documenti che richiedono riferimenti di pagina visibili
+- Aggiungere i numeri di pagina a un PDF unito da più file di origine
+- Numerare le dispense di una presentazione prima di distribuirle
+- Aggiungere una numerazione progressiva a documenti legali o contratti
+
+## Suggerimenti
+
+- Il formato "pagina X di Y" è utile per i documenti in cui i lettori devono conoscere la lunghezza totale, come proposte o report.
+- Se hai bisogno di stili di numerazione diversi per sezioni diverse (ad esempio numeri romani per le pagine iniziali), usa invece lo strumento [Aggiungi etichette di pagina](./add-page-labels).
+
+## Strumenti correlati
+
+- [Aggiungi etichette di pagina](./add-page-labels)
+- [Numerazione Bates](./bates-numbering)
+- [Intestazione e Piè di Pagina](./header-footer)
diff --git a/docs/it/tools/pdf-booklet.md b/docs/it/tools/pdf-booklet.md
new file mode 100644
index 00000000..71bb88a2
--- /dev/null
+++ b/docs/it/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Opuscolo PDF
+description: Riorganizza le pagine PDF nell'ordine da opuscolo (con graffatura a sella) per piegarle e pinzarle in un opuscolo fisico.
+---
+
+# Opuscolo PDF
+
+Riorganizza le pagine di un PDF nell'ordine di imposizione da opuscolo. Stampate fronte e retro e piegate a metà, le pagine risulteranno nella sequenza di lettura corretta. È il layout usato per opuscoli con graffatura a sella e zine.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Configura le impostazioni dell'opuscolo: dimensione e orientamento della pagina di output.
+3. Clicca su **Genera anteprima** per vedere come verranno disposte le pagine su ogni foglio.
+4. Controlla l'anteprima, che mostra ogni foglio fisico con l'assegnazione delle pagine di fronte e retro.
+5. Clicca su **Scarica** per salvare il PDF con l'imposizione da opuscolo.
+
+## Funzionalità
+
+- Riordino automatico delle pagine per la legatura a sella
+- Dimensione della pagina di output configurabile
+- Anteprima visiva del layout dell'opuscolo prima del download
+- Gestisce un numero dispari di pagine inserendo pagine vuote dove serve
+- Adatta le pagine di origine alla dimensione del foglio dell'opuscolo
+
+## Casi d'uso
+
+- Creare opuscoli o zine stampabili da un normale PDF
+- Preparare programmi di conferenze o guide di eventi per la stampa interna
+- Realizzare biglietti d'auguri piegati o piccoli cataloghi
+- Produrre plaquette o raccolte di poesie da rilegare a mano
+
+## Suggerimenti
+
+- Il numero di pagine del PDF di origine dovrebbe idealmente essere un multiplo di 4 per ottenere un opuscolo ordinato. In caso contrario, vengono aggiunte automaticamente pagine vuote per completare l'ultimo foglio.
+- Stampa l'output fronte e retro con l'impostazione "capovolgi sul lato corto" della stampante, poi piega tutti i fogli insieme e pinza sul dorso.
+- Per disporre più pagine su un foglio senza l'ordine da opuscolo, usa invece [N-Up PDF](./n-up-pdf).
+
+## Strumenti correlati
+
+- [N-Up PDF](./n-up-pdf)
+- [Ruota PDF](./rotate-pdf)
+- [Aggiungi Pagina Vuota](./add-blank-page)
diff --git a/docs/it/tools/pdf-layers.md b/docs/it/tools/pdf-layers.md
new file mode 100644
index 00000000..7265da89
--- /dev/null
+++ b/docs/it/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Livelli PDF (OCG)
+description: Visualizza, attiva o disattiva, aggiungi ed elimina i livelli Optional Content Group (OCG) in un documento PDF.
+---
+
+# Livelli PDF (OCG)
+
+Gestisci gli Optional Content Group (OCG), comunemente chiamati "livelli", all'interno di un PDF. Puoi attivare o disattivare la visibilità dei livelli, aggiungere nuovi livelli (anche livelli figli annidati), eliminare livelli e salvare il PDF modificato.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Clicca sul pulsante di elaborazione per caricare il documento con il motore PyMuPDF.
+3. Lo strumento mostra tutti i livelli esistenti con il loro stato di visibilità, lo stato di blocco e la gerarchia di annidamento.
+4. Usa le caselle di controllo per mostrare o nascondere i livelli. I livelli bloccati non possono essere attivati o disattivati.
+5. Aggiungi nuovi livelli di primo livello digitando un nome e cliccando sul pulsante di aggiunta, oppure aggiungi livelli figli sotto un livello padre esistente.
+6. Elimina i livelli che non ti servono più.
+7. Clicca su **Salva** per scaricare il PDF modificato con le modifiche ai livelli applicate.
+
+## Funzionalità
+
+- Mostra la gerarchia dei livelli con la giusta rientranza per i livelli annidati
+- Attiva o disattiva la visibilità dei livelli
+- L'indicatore di livello bloccato evita modifiche accidentali
+- Aggiungi livelli di primo livello o figli con nomi personalizzati
+- Elimina i singoli livelli
+- Salva tutte le modifiche in un nuovo file PDF
+
+## Casi d'uso
+
+- Attivare o disattivare la visibilità dei livelli di annotazione in disegni architettonici o tecnici
+- Aggiungere nuovi livelli di annotazione a un documento di progettazione a più livelli
+- Rimuovere i livelli obsoleti da un modello prima di distribuirlo
+- Controllare quali livelli esistono in un PDF complesso ricevuto da terzi
+
+## Suggerimenti
+
+- Se il PDF non ha livelli, lo strumento mostra uno stato vuoto con l'invito ad aggiungerne uno. Non tutti i PDF usano i livelli OCG: sono più comuni nelle esportazioni CAD e nei file di progettazione.
+- I livelli figli sono visivamente rientrati sotto il loro padre. Puoi annidare i livelli a qualsiasi profondità.
+- I livelli bloccati sono mostrati con un'icona di lucchetto e le loro caselle di controllo sono disabilitate. Questi blocchi sono impostati dal creatore del PDF.
+
+## Strumenti correlati
+
+- [Visualizza Metadati](./view-metadata)
+- [Modifica Metadati](./edit-metadata)
+- [Duplica e Organizza](./organize-pdf)
diff --git a/docs/it/tools/pdf-multi-tool.md b/docs/it/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..18809b63
--- /dev/null
+++ b/docs/it/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Strumento PDF multifunzione
+description: Un gestore di pagine tutto in uno per unire, dividere, ruotare, duplicare, eliminare, riordinare e ridimensionare le pagine PDF.
+---
+
+# Strumento PDF multifunzione
+
+Uno spazio di lavoro unificato per ogni operazione sulle pagine di un PDF. Carica uno o più PDF e lavora con tutte le loro pagine in un'unica griglia visiva. Ruota, riordina, duplica, elimina, inserisci PDF, immagini e pagine vuote, rinumera, ridimensiona e dividi il risultato, il tutto senza uscire dallo strumento.
+
+## Come funziona
+
+1. Clicca su **Seleziona file** o trascina i file sull'area di caricamento. Sono supportati più file, che vengono uniti nell'ordine di caricamento.
+2. Tutte le pagine compaiono in una griglia scorrevole con le miniature.
+3. Clicca su una pagina per selezionarla. Usa Shift+clic per selezionare un intervallo e Cmd/Ctrl+clic per aggiungere o togliere singole pagine.
+4. Usa la barra degli strumenti dell'organizzatore o fai clic destro su una pagina per le azioni sulle pagine.
+5. Clicca su **Esporta PDF** per scaricare il risultato finale.
+
+## Funzionalità
+
+- **Unisci**: carica più PDF e immagini e vengono combinati automaticamente in un unico documento
+- **Riordina**: trascina le pagine per cambiarne la sequenza, oppure inverti l'intero documento
+- **Ruota**: ruota le pagine selezionate a sinistra o a destra a passi di 90 gradi
+- **Duplica**: copia le pagine selezionate e posiziona le copie subito dopo
+- **Elimina**: rimuovi le pagine selezionate
+- **Inserisci**: aggiungi pagine da un altro PDF o da un'immagine, una pagina vuota, pagine dagli appunti, oppure alterna le pagine di un secondo PDF con quelle attuali
+- **Sostituisci**: sostituisci una pagina con la prima pagina di un altro PDF
+- **Taglia, copia e incolla**: sposta o copia le pagine all'interno del documento
+- **Estrai**: scarica le pagine selezionate come PDF o come immagini
+- **Numeri di pagina**: imposta etichette di pagina come i, ii, iii o A-1, A-2 per un intervallo di pagine
+- **Dimensione pagina**: adatta le pagine a un formato carta standard o a una dimensione personalizzata
+- **Dividi**: dividi il documento per intervalli di pagine, pagine dispari e pari, pagina per pagina, segnalibri, ogni N pagine o dimensione del file
+- **Annulla / Ripeti**: ogni operazione sulle pagine può essere annullata e ripetuta
+- Ripara automaticamente i PDF danneggiati prima del caricamento
+
+## Scorciatoie da tastiera
+
+| Azione | Scorciatoia |
+| --------------------------- | ----------------------------- |
+| Ruota a destra / a sinistra | R / Shift+R |
+| Seleziona tutto | Cmd/Ctrl+A |
+| Taglia, copia, incolla | Cmd/Ctrl+X, C, V |
+| Duplica | Cmd/Ctrl+D |
+| Elimina | Canc o Backspace |
+| Annulla / Ripeti | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Sposta la selezione | Tasti freccia, Home, End |
+
+## Casi d'uso
+
+- Creare un documento personalizzato con pagine prese da più PDF di origine
+- Ripulire un documento scansionato eliminando le pagine vuote, ruotando le scansioni di lato e riordinando le sezioni
+- Dividere un PDF di grandi dimensioni ai confini dei capitoli usando i suoi segnalibri
+- Modificare rapidamente le pagine senza bisogno di un editor PDF completo
+
+## Suggerimenti
+
+- La cronologia di annullamento e ripristino tiene traccia di ogni operazione sulle pagine. Usala liberamente: non puoi distruggere il tuo lavoro per sbaglio.
+- Usa **Insert > From File** o trascina altri PDF o immagini sulla griglia delle pagine in qualsiasi momento per aggiungerli al documento.
+- Per semplici operazioni di unione o divisione, gli strumenti dedicati [Unisci PDF](./merge-pdf) o [Dividi PDF](./split-pdf) possono essere più rapidi. Lo strumento multifunzione dà il meglio quando servono più operazioni in una sola sessione.
+
+## Strumenti correlati
+
+- [Unisci PDF](./merge-pdf)
+- [Dividi PDF](./split-pdf)
+- [Duplica e Organizza](./organize-pdf)
+- [Ruota PDF](./rotate-pdf)
diff --git a/docs/it/tools/pdf-to-bmp.md b/docs/it/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..2bd0ed42
--- /dev/null
+++ b/docs/it/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF in BMP
+description: Converti le pagine PDF in immagini BMP non compresse. Utile per sistemi legacy e flussi di stampa che richiedono input bitmap.
+---
+
+# PDF in BMP
+
+Converte ogni pagina di un PDF in un'immagine BMP (Bitmap). BMP è un formato non compresso, quindi l'output è perfetto al pixel e senza perdita di qualità, ma i file sono pesanti.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Clicca su **Converti** per elaborare il file.
+3. Un singolo file `.bmp` o un archivio ZIP viene scaricato automaticamente.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Le pagine vengono renderizzate a una scala fissa di 2x, producendo immagini di circa il doppio delle dimensioni native della pagina PDF.
+
+## Formato di output
+
+- **Pagina singola**: `filename.bmp`
+- **Più pagine**: `filename_bmps.zip` contenente `page_1.bmp`, `page_2.bmp`, ecc.
+
+## Casi d'uso
+
+- Passare le pagine PDF a sistemi legacy o hardware che accettano solo input BMP.
+- Preparare immagini non compresse per specifici flussi di stampa.
+- Usare l'output bitmap come input per strumenti di elaborazione delle immagini che richiedono dati pixel grezzi.
+
+## Suggerimenti
+
+- I file BMP sono molto grandi perché memorizzano dati pixel grezzi senza compressione. Per la maggior parte degli usi, [PDF in PNG](./pdf-to-png) offre una qualità senza perdita con file molto più piccoli.
+- Se il sistema di destinazione accetta PNG o TIFF, preferisci questi formati per risparmiare spazio su disco.
+
+## Strumenti correlati
+
+- [PDF in PNG](./pdf-to-png)
+- [PDF in TIFF](./pdf-to-tiff)
+- [PDF in JPG](./pdf-to-jpg)
diff --git a/docs/it/tools/pdf-to-cbz.md b/docs/it/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..e08262cd
--- /dev/null
+++ b/docs/it/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF in CBZ
+description: Converti un PDF in un file CBZ (Comic Book Archive) per lettori di fumetti come Komga, Kavita, CDisplayEx e Calibre.
+---
+
+# PDF in CBZ
+
+Converte un PDF in un file CBZ (Comic Book ZIP), il formato standard per fumetti e manga digitali. Ogni pagina del PDF diventa un'immagine all'interno dell'archivio. Lo strumento genera i metadati in tre formati per la massima compatibilità: ComicInfo.xml, metadata.opf e ComicBookInfo JSON.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Scegli formato immagine, qualità, scala ed eventuali metadati.
+3. Clicca su **Converti** per generare il file CBZ.
+4. Il file `.cbz` viene scaricato automaticamente.
+
+## Opzioni
+
+| Opzione | Valori | Predefinito | Descrizione |
+| ---------------- | --------------- | ----------- | ----------------------------------------------------------------------------------------------------------- |
+| Formato immagine | JPEG, PNG, WebP | JPEG | JPEG per fumetti a colori, PNG per manga in bianco e nero senza perdita, WebP per la migliore compressione. |
+| Qualità | 50–100% | 85% | Controlla la compressione JPEG/WebP. Nascosta per PNG (sempre senza perdita). |
+| Scala | 1.0x–4.0x | 2.0x | Una scala maggiore produce immagini più nitide per schermi ad alta risoluzione. |
+| Scala di grigi | Sì/No | No | Converte le pagine in scala di grigi. Riduce le dimensioni del file per i contenuti in bianco e nero. |
+| Modalità manga | Sì/No | No | Imposta nei metadati la direzione di lettura da destra a sinistra. |
+| Includi metadati | Sì/No | Sì | Incorpora ComicInfo.xml, metadata.opf e ComicBookInfo JSON. |
+
+## Campi dei metadati
+
+Quando i metadati sono attivi, puoi compilare:
+
+- **Titolo**: rilevato automaticamente dal nome del file PDF.
+- **Serie**: il nome della serie (ad es. "Naruto").
+- **Numero (#)**: numero dell'albo all'interno della serie.
+- **Volume (Vol.)**: numero del volume.
+- **Autore/i**: nome dello scrittore o del creatore.
+- **Editore**: casa editrice.
+- **Tag / Genere**: tag separati da virgole (ad es. "Azione, Avventura").
+- **Anno di pubblicazione**: anno di pubblicazione (1900–2100).
+- **Valutazione**: valutazione della community da 0 a 5.
+
+## Compatibilità dei metadati
+
+Lo strumento scrive i metadati in tre formati, così ogni lettore può trovarli:
+
+| Formato | Posizione | Supportato da |
+| ------------------ | -------------------------- | ------------------------------------------- |
+| ComicInfo.xml | File all'interno dello ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | File all'interno dello ZIP | Calibre |
+| ComicBookInfo JSON | Campo commento dello ZIP | Calibre (alternativa) |
+
+## Formato di output
+
+- `filename.cbz`: un archivio ZIP contenente le immagini delle pagine numerate e i file dei metadati.
+
+Le immagini delle pagine sono nominate con numeri riempiti con zeri (`01.jpg`, `02.jpg`, ecc.) in modo che i lettori le mostrino nell'ordine corretto.
+
+## Casi d'uso
+
+- Convertire PDF di manga o fumetti da usare con i lettori di fumetti.
+- Creare una libreria di fumetti digitali in Komga, Kavita o Calibre.
+- Convertire fumetti scansionati in un formato adatto ai lettori.
+- Condividere fumetti in un formato che conserva direzione di lettura e metadati.
+
+## Suggerimenti
+
+- Usa **JPEG** per i fumetti a colori e **PNG** per i manga in bianco e nero: PNG comprime in modo molto efficiente i contenuti in bianco e nero.
+- Attiva **Scala di grigi** per i manga per ridurre in modo significativo le dimensioni del file.
+- Compila i campi **Serie** e **Numero** così i gestori di librerie (Komga, Calibre) possono organizzare automaticamente la tua collezione.
+- **WebP** offre la migliore compressione, ma i lettori di fumetti più vecchi potrebbero non supportarlo.
+
+## Strumenti correlati
+
+- [PDF in JPG](./pdf-to-jpg)
+- [PDF in PNG](./pdf-to-png)
+- [PDF in TIFF](./pdf-to-tiff)
+- [Estrai immagini](./extract-images)
diff --git a/docs/it/tools/pdf-to-csv.md b/docs/it/tools/pdf-to-csv.md
new file mode 100644
index 00000000..f991bdb2
--- /dev/null
+++ b/docs/it/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF in CSV
+description: Estrai le tabelle dai documenti PDF ed esportale in un unico file CSV. Gestisce i PDF multipagina con rilevamento automatico delle tabelle.
+---
+
+# PDF in CSV
+
+Estrae le tabelle da un PDF e le esporta come file CSV. Lo strumento analizza ogni pagina alla ricerca di dati tabulari con il motore di rilevamento delle tabelle di PyMuPDF, poi scrive tutte le righe trovate in un unico output separato da virgole.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Clicca su **Converti** per avviare l'estrazione delle tabelle.
+3. Lo strumento analizza ogni pagina e identifica automaticamente le tabelle.
+4. Viene scaricato un file `.csv` con tutti i dati delle tabelle estratte.
+
+Le tabelle di pagine diverse sono separate da righe vuote nell'output. Le celle che contengono virgole, virgolette o ritorni a capo vengono correttamente protette secondo la RFC 4180.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Tutte le tabelle trovate nel documento vengono estratte e combinate in un unico CSV.
+
+## Formato di output
+
+- Un unico file `filename.csv` contenente tutte le tabelle rilevate.
+
+## Casi d'uso
+
+- Portare in un foglio di calcolo i dati finanziari di estratti conto o fatture in PDF.
+- Estrarre le tabelle dei prezzi dai preventivi dei fornitori per confrontarli.
+- Convertire dati di ricerca tabulari da articoli in PDF in un formato adatto agli strumenti di analisi.
+- Migrare in database i dati di vecchi report in PDF.
+
+## Suggerimenti
+
+- Se non vengono trovate tabelle, lo strumento mostra il messaggio "Nessuna tabella trovata". Di solito significa che il PDF usa un layout di testo che sembra tabulare ma non è strutturato come una vera tabella.
+- Per un controllo maggiore sulle singole tabelle, usa [Estrai tabelle PDF](./extract-tables), che permette di scegliere tra i formati di output CSV, JSON e Markdown.
+- Se ti servono i dati in formato Excel con fogli separati per ogni tabella, usa [PDF in Excel](./pdf-to-excel).
+
+## Strumenti correlati
+
+- [PDF in Excel](./pdf-to-excel)
+- [Estrai tabelle PDF](./extract-tables)
+- [PDF in Testo](./pdf-to-text)
diff --git a/docs/it/tools/pdf-to-excel.md b/docs/it/tools/pdf-to-excel.md
new file mode 100644
index 00000000..2fd8bbd1
--- /dev/null
+++ b/docs/it/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF in Excel
+description: Estrai le tabelle dai documenti PDF in un foglio di calcolo Excel. Ogni tabella ha il suo foglio di lavoro con i riferimenti alla pagina.
+---
+
+# PDF in Excel
+
+Estrae le tabelle da un PDF e le salva come foglio di calcolo Excel (`.xlsx`). Ogni tabella rilevata viene collocata in un foglio di lavoro dedicato, con il numero della tabella e la pagina di origine. Usa PyMuPDF per il rilevamento delle tabelle e la libreria SheetJS per generare il file Excel.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Clicca su **Converti** per avviare l'estrazione delle tabelle.
+3. Lo strumento analizza ogni pagina alla ricerca di tabelle, poi costruisce una cartella di lavoro Excel.
+4. Viene scaricato un file `.xlsx` con un foglio per ogni tabella.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Tutte le tabelle rilevate vengono estratte automaticamente.
+
+## Formato di output
+
+- Un unico file `filename.xlsx`.
+- **Una tabella**: un solo foglio di lavoro chiamato "Table".
+- **Più tabelle**: fogli di lavoro chiamati "Table 1 (Page 3)", "Table 2 (Page 5)", ecc. I nomi dei fogli vengono troncati a 31 caratteri (il limite di Excel).
+
+## Casi d'uso
+
+- Convertire report finanziari in PDF in fogli di calcolo modificabili per ulteriori analisi.
+- Estrarre tabelle di inventario o ordini dai PDF dei fornitori.
+- Portare in Excel dati strutturati di moduli o cataloghi PDF per ordinarli e filtrarli.
+- Archiviare dati tabulari di PDF in un formato con cui possono lavorare anche i colleghi non tecnici.
+
+## Suggerimenti
+
+- Se lo strumento segnala "Nessuna tabella trovata", il PDF probabilmente usa un layout di testo libero invece di tabelle strutturate. Prova [PDF in Testo](./pdf-to-text) per ottenere invece il contenuto grezzo.
+- Per un formato piatto più semplice, usa [PDF in CSV](./pdf-to-csv). Per scaricare ogni tabella in più formati, usa [Estrai tabelle PDF](./extract-tables).
+- Controlla i nomi dei fogli per capire da quale pagina proviene ogni tabella.
+
+## Strumenti correlati
+
+- [PDF in CSV](./pdf-to-csv)
+- [Estrai tabelle PDF](./extract-tables)
+- [PDF in Testo](./pdf-to-text)
diff --git a/docs/it/tools/pdf-to-greyscale.md b/docs/it/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..dd270863
--- /dev/null
+++ b/docs/it/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF in scala di grigi
+description: Converti un PDF a colori in una versione in scala di grigi (bianco e nero). Produce un nuovo PDF con tutti i colori rimossi da ogni pagina.
+---
+
+# PDF in scala di grigi
+
+Converte un PDF a colori in una versione in scala di grigi. Ogni pagina viene renderizzata, desaturata e reincorporata come immagine JPEG in un nuovo PDF. L'output mantiene le dimensioni originali delle pagine.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Clicca su **Converti** per elaborare il file.
+3. Viene scaricato un nuovo `greyscale.pdf` con tutte le pagine convertite in bianco e nero.
+
+Dietro le quinte, ogni pagina viene renderizzata a scala 2x, i dati dei pixel passano attraverso un filtro in scala di grigi, poi vengono ricodificati come JPEG al 90% di qualità e inseriti in un nuovo documento PDF.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. La conversione in scala di grigi usa una formula di luminanza standard e la qualità JPEG è fissata al 90%.
+
+## Formato di output
+
+- Un unico file `greyscale.pdf` contenente tutte le pagine come immagini JPEG in scala di grigi.
+
+## Casi d'uso
+
+- Preparare documenti per la stampa in bianco e nero e risparmiare sui costi dell'inchiostro a colori.
+- Rispettare i requisiti di invio di pratiche legali o governative che richiedono la scala di grigi.
+- Ridurre le dimensioni dei PDF molto colorati (le immagini JPEG in scala di grigi sono più piccole di quelle a colori).
+- Creare uno stile visivo coerente in documenti con pagine miste a colori e in bianco e nero.
+
+## Suggerimenti
+
+- Poiché ogni pagina viene rasterizzata e reincorporata come JPEG, l'output è basato su immagini. Il testo del PDF originale non sarà più selezionabile né ricercabile. Se in seguito ti serve testo ricercabile, passa l'output nello strumento OCR.
+- Per un controllo maggiore sulle regolazioni del colore (luminosità, contrasto, saturazione), guarda lo strumento Regola colori o il nodo Scala di grigi nel [Costruttore di workflow PDF](./pdf-workflow).
+
+## Strumenti correlati
+
+- [PDF in JPG](./pdf-to-jpg)
+- [PDF in PNG](./pdf-to-png)
+- [Costruttore di workflow PDF](./pdf-workflow)
diff --git a/docs/it/tools/pdf-to-jpg.md b/docs/it/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..f041ac60
--- /dev/null
+++ b/docs/it/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF in JPG
+description: Converti le pagine PDF in immagini JPG con qualità regolabile. I PDF di una pagina vengono scaricati direttamente, quelli multipagina come ZIP.
+---
+
+# PDF in JPG
+
+Converte ogni pagina di un PDF in un'immagine JPG. I documenti di una sola pagina vengono scaricati come singolo file `.jpg`. I PDF multipagina producono un archivio ZIP con un JPG per pagina.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file. Lo strumento mostra il nome del file, la dimensione e il numero di pagine.
+2. Regola il cursore **Qualità** per controllare la compressione JPG.
+3. Clicca su **Converti** per avviare l'elaborazione.
+4. Il risultato viene scaricato automaticamente: un singolo JPG per i PDF di una pagina, oppure un file ZIP per i documenti multipagina.
+
+## Opzioni
+
+- **Qualità**: un cursore da 0% a 100% (predefinito 90%). Valori più alti producono immagini più nitide con file più grandi. Valori più bassi comprimono in modo più aggressivo.
+
+Le pagine vengono renderizzate internamente a scala 2x, quindi la risoluzione di output è il doppio delle dimensioni della pagina PDF. Una pagina standard in formato Letter produce un'immagine di circa 1.224 x 1.584 pixel.
+
+## Formato di output
+
+- **Pagina singola**: `filename.jpg`
+- **Più pagine**: `filename_jpgs.zip` contenente `page_1.jpg`, `page_2.jpg`, ecc.
+
+## Casi d'uso
+
+- Generare miniature di anteprima per un sistema di gestione documentale.
+- Condividere una pagina di un report in una chat o in un'email che non supporta i PDF.
+- Creare risorse grafiche da diagrammi o illustrazioni in PDF.
+- Archiviare documenti scansionati come singole immagini.
+
+## Suggerimenti
+
+- Per un output senza perdita, usa invece [PDF in PNG](./pdf-to-png).
+- Un valore di qualità tra 80 e 90% offre un buon equilibrio tra dimensione del file e fedeltà visiva.
+- Se ti serve un formato specifico per ogni pagina, valuta il [Costruttore di workflow PDF](./pdf-workflow), che ha un nodo di output PDF in immagini.
+
+## Strumenti correlati
+
+- [PDF in PNG](./pdf-to-png)
+- [PDF in WebP](./pdf-to-webp)
+- [PDF in BMP](./pdf-to-bmp)
+- [PDF in TIFF](./pdf-to-tiff)
diff --git a/docs/it/tools/pdf-to-json.md b/docs/it/tools/pdf-to-json.md
new file mode 100644
index 00000000..b9ca5378
--- /dev/null
+++ b/docs/it/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF in JSON
+description: Converti i file PDF in formato JSON strutturato con CPDF. Esporta la struttura interna del PDF come dati JSON leggibili da macchina.
+---
+
+# PDF in JSON
+
+Converte uno o più file PDF in formato JSON. Lo strumento usa CPDF (Coherent PDF) per serializzare la struttura interna di ogni PDF in una rappresentazione JSON leggibile da macchina. L'output viene sempre consegnato come archivio ZIP.
+
+## Come funziona
+
+1. Seleziona uno o più file PDF con il selettore di file.
+2. Clicca su **Converti** per avviare l'elaborazione. La conversione gira in un web worker in background.
+3. Viene scaricato un archivio ZIP contenente un file JSON per ogni PDF in ingresso.
+
+La barra di stato mostra l'avanzamento delle fasi di conversione e di creazione dello ZIP.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Ogni PDF viene convertito nella sua rappresentazione JSON completa.
+
+## Formato di output
+
+- Un file `pdfs-to-json.zip` contenente `filename.json` per ogni PDF in ingresso.
+
+L'output JSON rappresenta la struttura interna degli oggetti del PDF, inclusi alberi delle pagine, riferimenti ai font, metadati e flussi di contenuto.
+
+## Casi d'uso
+
+- Ispezionare la struttura interna di un PDF per il debug o la convalida.
+- Estrarre in modo programmatico metadati strutturati e proprietà delle pagine.
+- Passare i dati sulla struttura del PDF a pipeline di elaborazione personalizzate.
+- Verificare la conformità dei documenti PDF analizzando i loro alberi di oggetti.
+
+## Suggerimenti
+
+- Questo strumento produce la struttura grezza degli oggetti del PDF, non il testo estratto. Se ti serve il testo delle pagine in formato JSON, usa invece [Prepara PDF per IA](./prepare-pdf-for-ai).
+- Per l'estrazione del solo testo, [PDF in Testo](./pdf-to-text) è più diretto.
+- I PDF grandi con strutture complesse producono file JSON molto grandi.
+
+## Strumenti correlati
+
+- [PDF in Testo](./pdf-to-text)
+- [Prepara PDF per IA](./prepare-pdf-for-ai)
+- [Estrai tabelle PDF](./extract-tables)
diff --git a/docs/it/tools/pdf-to-markdown.md b/docs/it/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..64d21ad2
--- /dev/null
+++ b/docs/it/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF in Markdown
+description: Converti i documenti PDF in formato Markdown con estrazione opzionale delle immagini. Supporta la conversione in blocco di più file.
+---
+
+# PDF in Markdown
+
+Converte i file PDF in formato Markdown (`.md`), mantenendo titoli, paragrafi, elenchi e formattazione di base. Può estrarre e includere le immagini incorporate. Supporta la conversione di singoli file e in blocco. Usa PyMuPDF.
+
+## Come funziona
+
+1. Carica uno o più PDF cliccando sull'area di rilascio o trascinandovi sopra i file.
+2. Se vuoi, attiva **Includi immagini** per incorporare le immagini estratte nell'output Markdown.
+3. Clicca su **Converti** per avviare l'elaborazione.
+4. Un singolo file viene scaricato come `filename.md`. Più file producono un `markdown-files.zip`.
+
+## Opzioni
+
+- **Includi immagini**: se selezionata, le immagini incorporate nel PDF vengono estratte e referenziate nell'output Markdown. Se deselezionata, viene convertito solo il contenuto testuale.
+
+## Formato di output
+
+- **File singolo**: `filename.md`
+- **Più file**: `markdown-files.zip` contenente un `.md` per ogni PDF in ingresso.
+
+## Casi d'uso
+
+- Convertire la documentazione PDF in Markdown per un generatore di siti statici come VitePress, Hugo o Jekyll.
+- Trasformare articoli di ricerca in PDF in Markdown modificabile per app di appunti come Obsidian.
+- Migrare vecchie basi di conoscenza in PDF in un formato di testo adatto a Git.
+- Estrarre contenuti strutturati da ebook in PDF per riformattarli.
+
+## Suggerimenti
+
+- L'opzione Includi immagini è utile quando il PDF contiene diagrammi o figure essenziali per il contenuto. Disattivala per i documenti ricchi di testo, per mantenere l'output pulito.
+- I layout complessi con barre laterali, note a piè di pagina o testo su più colonne possono produrre un Markdown imperfetto. Controlla e correggi l'output se necessario.
+- Per il testo grezzo senza alcuna formattazione, usa invece [PDF in Testo](./pdf-to-text).
+
+## Strumenti correlati
+
+- [PDF in Testo](./pdf-to-text)
+- [PDF in Word](./pdf-to-word)
+- [Prepara PDF per IA](./prepare-pdf-for-ai)
diff --git a/docs/it/tools/pdf-to-pdfa.md b/docs/it/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..f65b705b
--- /dev/null
+++ b/docs/it/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF in PDF/A
+description: Converti i PDF standard in formato PDF/A per l'archiviazione a lungo termine. Supporta i livelli di conformità PDF/A-1b, PDF/A-2b e PDF/A-3b.
+---
+
+# PDF in PDF/A
+
+PDF/A è un sottoinsieme del PDF standardizzato ISO, pensato per la conservazione digitale a lungo termine. Questo strumento converte i tuoi PDF standard in documenti conformi a PDF/A usando Ghostscript direttamente nel tuo browser.
+
+## Come funziona
+
+1. Carica uno o più file PDF.
+2. Seleziona una **Versione PDF/A** dal menu a tendina.
+3. Se vuoi, attiva **Appiattisci PDF prima** per i file complessi che falliscono con la conversione normale.
+4. Clicca su **Converti in PDF/A**. Più file producono un archivio ZIP.
+
+## Versioni PDF/A
+
+| Versione | Restrizioni | Ideale per |
+| ------------ | --------------------------------------------------- | ----------------------------------------------------------- |
+| **PDF/A-1b** | La più rigida. Nessuna trasparenza, nessun livello. | Massima compatibilità con i vecchi sistemi di archiviazione |
+| **PDF/A-2b** | Consente trasparenza e JPEG2000. | Archiviazione generica (consigliata) |
+| **PDF/A-3b** | Consente allegati incorporati di qualsiasi formato. | Archiviare documenti con i relativi file di dati di origine |
+
+PDF/A-2b è selezionata per impostazione predefinita e soddisfa la grande maggioranza delle esigenze di archiviazione.
+
+## Opzione di appiattimento preliminare
+
+Alcuni PDF contengono elementi che impediscono una conversione pulita in PDF/A: codifiche di font insolite, complesse pile di trasparenze o strutture interne danneggiate. Attivando **Appiattisci PDF prima**, il PDF viene rasterizzato a 300 DPI prima della conversione: questo garantisce la conformità al prezzo di rendere il testo non selezionabile. Usala come soluzione di riserva quando la conversione standard produce errori.
+
+L'appiattimento preliminare richiede il motore PyMuPDF WASM.
+
+## Casi d'uso
+
+- Rispettare i requisiti di archiviazione governativi o legali (molte giurisdizioni impongono PDF/A per gli atti giudiziari)
+- Inviare documenti a archivi istituzionali o biblioteche digitali
+- Conservare documenti aziendali il cui software originale potrebbe non esistere più tra dieci anni
+- Preparare fatture per gli standard di fatturazione elettronica che richiedono PDF/A-3b con allegati XML
+
+## Suggerimenti
+
+- Prova prima la conversione senza appiattimento preliminare. Attivalo solo se ottieni un errore.
+- PDF/A incorpora tutti i font, quindi i file di output sono spesso più grandi degli originali.
+- Convalida l'output con un validatore PDF/A dedicato se il tuo flusso di lavoro richiede una conformità rigorosa.
+
+## Strumenti correlati
+
+- [Comprimi PDF](./compress-pdf): riduci le dimensioni del file dopo la conversione
+- [Appiattisci PDF](./flatten-pdf): appiattisci i moduli prima di convertire in PDF/A
+- [Rimuovi metadati](./remove-metadata): elimina i metadati prima di archiviare
diff --git a/docs/it/tools/pdf-to-png.md b/docs/it/tools/pdf-to-png.md
new file mode 100644
index 00000000..6397f445
--- /dev/null
+++ b/docs/it/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF in PNG
+description: Converti le pagine PDF in immagini PNG senza perdita con scala regolabile. Ideale per schermate di alta qualità e sfondi trasparenti.
+---
+
+# PDF in PNG
+
+Converte ogni pagina di un PDF in un'immagine PNG. PNG usa una compressione senza perdita, quindi l'output conserva ogni dettaglio della pagina originale. I PDF di una pagina vengono scaricati come file `.png`; i PDF multipagina producono uno ZIP.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Imposta il cursore **Scala** per controllare la risoluzione di output.
+3. Clicca su **Converti** per avviare l'elaborazione.
+4. Un singolo PNG o un archivio ZIP viene scaricato automaticamente.
+
+## Opzioni
+
+- **Scala**: da 1.0x a 3.0x (predefinito 2.0x). A 2.0x, una pagina standard in formato Letter viene renderizzata a circa 1.224 x 1.584 pixel. Valori di scala più alti producono immagini più grandi e nitide, a scapito di dimensione del file e tempo di elaborazione.
+
+## Formato di output
+
+- **Pagina singola**: `filename.png`
+- **Più pagine**: `filename_pngs.zip` contenente `page_1.png`, `page_2.png`, ecc.
+
+## Casi d'uso
+
+- Catturare schermate ad alta fedeltà delle pagine PDF per le presentazioni.
+- Estrarre grafici o diagrammi che richiedono bordi nitidi e nessun artefatto di compressione.
+- Preparare risorse per il web design a partire da mockup in PDF.
+- Creare immagini di pagina senza perdita per la pre-elaborazione OCR.
+
+## Suggerimenti
+
+- I file PNG sono molto più grandi dei JPG. Se la dimensione del file conta più della qualità perfetta, usa [PDF in JPG](./pdf-to-jpg) o [PDF in WebP](./pdf-to-webp).
+- A scala 1.0x l'output corrisponde alla risoluzione nativa del PDF. Porta a 3.0x per esportazioni di qualità da stampa.
+
+## Strumenti correlati
+
+- [PDF in JPG](./pdf-to-jpg)
+- [PDF in WebP](./pdf-to-webp)
+- [PDF in SVG](./pdf-to-svg)
diff --git a/docs/it/tools/pdf-to-svg.md b/docs/it/tools/pdf-to-svg.md
new file mode 100644
index 00000000..0b8f6a7b
--- /dev/null
+++ b/docs/it/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF in SVG
+description: Converti le pagine PDF in grafica vettoriale SVG scalabile. Mantiene testo e forme come tracciati vettoriali per una scalabilità infinita.
+---
+
+# PDF in SVG
+
+Converte ogni pagina di un PDF in un file SVG (Scalable Vector Graphics). A differenza dei formati raster, SVG conserva tracciati vettoriali, testo e forme, quindi l'output si adatta a qualsiasi dimensione senza pixelazione. Usa PyMuPDF.
+
+## Come funziona
+
+1. Carica uno o più PDF cliccando sull'area di rilascio o trascinandovi sopra i file. Puoi aggiungere più file e gestirli singolarmente.
+2. Clicca su **Converti** per elaborare tutti i file caricati.
+3. Le conversioni di un solo file con una sola pagina vengono scaricate come `.svg` singolo. Tutto il resto viene scaricato come archivio ZIP.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Ogni pagina viene convertita in SVG con l'esportazione vettoriale nativa di PyMuPDF.
+
+## Formato di output
+
+- **Un file, una pagina**: `filename.svg`
+- **Un file, più pagine**: `filename_svg.zip` contenente `page_1.svg`, `page_2.svg`, ecc.
+- **Più file**: `pdf_to_svg.zip` con i file organizzati per nome del documento di origine.
+
+## Casi d'uso
+
+- Estrarre diagrammi vettoriali, grafici o illustrazioni da report PDF da usare in pagine web.
+- Modificare il contenuto delle pagine PDF in un editor vettoriale come Inkscape o Illustrator.
+- Incorporare anteprime di pagina scalabili in applicazioni web responsive.
+- Estrarre loghi o grafica da brochure PDF mantenendo i bordi nitidi.
+
+## Suggerimenti
+
+- SVG funziona al meglio con i PDF che contengono contenuto vettoriale. I documenti scansionati o i PDF ricchi di immagini producono file SVG grandi con dati raster incorporati.
+- Per un output raster di PDF ricchi di immagini, usa invece [PDF in PNG](./pdf-to-png) o [PDF in JPG](./pdf-to-jpg).
+- Questo strumento supporta la conversione in blocco: carica più PDF insieme per convertirli tutti in una sola esecuzione.
+
+## Strumenti correlati
+
+- [PDF in PNG](./pdf-to-png)
+- [PDF in JPG](./pdf-to-jpg)
+- [PDF in Markdown](./pdf-to-markdown)
diff --git a/docs/it/tools/pdf-to-text.md b/docs/it/tools/pdf-to-text.md
new file mode 100644
index 00000000..374d7f54
--- /dev/null
+++ b/docs/it/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF in Testo
+description: Estrai il testo semplice dai file PDF. Supporta l'estrazione in blocco di più PDF con output in file TXT.
+---
+
+# PDF in Testo
+
+Estrae tutto il contenuto testuale dai file PDF e lo salva come semplici file `.txt`. Supporta l'elaborazione in blocco: carica più PDF e ottieni il testo di ciascuno in una sola operazione. Usa PyMuPDF.
+
+## Come funziona
+
+1. Carica uno o più PDF cliccando sull'area di rilascio o trascinandovi sopra i file. Gestisci l'elenco dei file con i pulsanti Aggiungi altri e Cancella.
+2. Clicca su **Estrai** per avviare l'elaborazione.
+3. Un singolo file viene scaricato come `filename.txt`. Più file producono un archivio `pdf-to-text.zip`.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Tutto il testo viene estratto da ogni pagina nell'ordine di lettura.
+
+## Formato di output
+
+- **File singolo**: `filename.txt`
+- **Più file**: `pdf-to-text.zip` contenente un `.txt` per ogni PDF in ingresso.
+
+## Casi d'uso
+
+- Estrarre il testo principale dai report PDF per l'indicizzazione della ricerca full-text.
+- Convertire ebook o articoli PDF in testo semplice da leggere su dispositivi e-ink.
+- Ricavare il testo da contratti o documenti legali per l'analisi delle parole chiave.
+- Eliminare la formattazione dai PDF per ottenere testo pulito per script di elaborazione dati.
+- Preparare un corpus di testo da archivi PDF per l'elaborazione del linguaggio naturale.
+
+## Suggerimenti
+
+- I PDF scansionati (solo immagine) producono file di testo vuoti perché non c'è alcun livello di testo da estrarre. Passa prima i documenti scansionati attraverso l'OCR.
+- L'output mantiene l'ordine di lettura interpretato da PyMuPDF, che in genere procede da sinistra a destra e dall'alto in basso. I layout a più colonne possono produrre testo intercalato.
+- Per un output strutturato con titoli e formattazione, prova [PDF in Markdown](./pdf-to-markdown). Per JSON strutturato pronto per l'IA, usa [Prepara PDF per IA](./prepare-pdf-for-ai).
+
+## Strumenti correlati
+
+- [PDF in Markdown](./pdf-to-markdown)
+- [Prepara PDF per IA](./prepare-pdf-for-ai)
+- [PDF in Word](./pdf-to-word)
diff --git a/docs/it/tools/pdf-to-tiff.md b/docs/it/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..0c470e58
--- /dev/null
+++ b/docs/it/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF in TIFF
+description: Converti le pagine PDF in immagini TIFF, comunemente usate nei flussi di stampa, fax e archiviazione. Ripiega su PNG se la codifica fallisce.
+---
+
+# PDF in TIFF
+
+Converte ogni pagina di un PDF in un'immagine TIFF. TIFF è il formato standard per la produzione di stampa, i sistemi fax e l'archiviazione documentale. Lo strumento usa la compressione PackBits per la codifica TIFF e ripiega su PNG se una pagina non riesce a essere codificata.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Clicca su **Converti** per elaborare il file.
+3. Un singolo file TIFF o un archivio ZIP viene scaricato automaticamente.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Le pagine vengono renderizzate a una scala fissa di 2x.
+
+## Formato di output
+
+- **Pagina singola**: `filename.tiff`
+- **Più pagine**: `filename_tiffs.zip` contenente `page_1.tiff`, `page_2.tiff`, ecc.
+
+Se la codifica TIFF fallisce per una pagina specifica (per problemi di compressione), quella pagina viene salvata come file `.png`. In tal caso lo ZIP conterrà un mix di file TIFF e PNG.
+
+## Casi d'uso
+
+- Inviare documenti a enti governativi o sistemi legali che richiedono il formato TIFF.
+- Preparare pagine per la trasmissione fax tramite servizi di fax digitali.
+- Archiviare documenti scansionati in un formato senza perdita ampiamente supportato.
+- Passare pagine a sistemi aziendali di gestione documentale.
+
+## Suggerimenti
+
+- I file TIFF sono grandi. Se ti serve la qualità senza perdita solo per uso web o a schermo, [PDF in PNG](./pdf-to-png) è una scelta migliore.
+- Controlla il contenuto dello ZIP se alcune pagine hanno richiesto il ripiego su PNG: potresti volerle convertire separatamente.
+
+## Strumenti correlati
+
+- [PDF in PNG](./pdf-to-png)
+- [PDF in BMP](./pdf-to-bmp)
+- [PDF in JPG](./pdf-to-jpg)
diff --git a/docs/it/tools/pdf-to-webp.md b/docs/it/tools/pdf-to-webp.md
new file mode 100644
index 00000000..98cb01db
--- /dev/null
+++ b/docs/it/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF in WebP
+description: Converti le pagine PDF in immagini WebP con qualità regolabile. File più piccoli del JPG a parità di qualità visiva.
+---
+
+# PDF in WebP
+
+Converte ogni pagina di un PDF in un'immagine WebP. WebP produce in genere file più piccoli del 25-35% rispetto al JPG a parità di qualità percepita, il che lo rende una scelta valida per l'uso sul web.
+
+## Come funziona
+
+1. Carica un PDF cliccando sull'area di rilascio o trascinandovi sopra un file.
+2. Regola il cursore **Qualità**.
+3. Clicca su **Converti** per elaborare il file.
+4. Un singolo file `.webp` o un archivio ZIP viene scaricato automaticamente.
+
+## Opzioni
+
+- **Qualità**: un cursore da 0% a 100% (predefinito 85%). Controlla il livello di compressione con perdita. Valori più alti conservano più dettagli.
+
+Le pagine vengono renderizzate internamente a scala 2x, producendo immagini di circa il doppio delle dimensioni native del PDF.
+
+## Formato di output
+
+- **Pagina singola**: `filename.webp`
+- **Più pagine**: `filename_webps.zip` contenente `page_1.webp`, `page_2.webp`, ecc.
+
+## Casi d'uso
+
+- Preparare anteprime di pagina per siti web in cui la banda conta.
+- Generare versioni di immagine leggere di volantini o brochure per i social media.
+- Convertire in blocco documenti multipagina in un insieme di immagini ottimizzate per il web.
+
+## Suggerimenti
+
+- WebP è supportato da tutti i browser moderni. Per la compatibilità con i sistemi più vecchi, ripiega su [PDF in JPG](./pdf-to-jpg).
+- Una qualità dell'80-85% di solito è indistinguibile dall'originale a schermo, mantenendo piccole le dimensioni dei file.
+
+## Strumenti correlati
+
+- [PDF in JPG](./pdf-to-jpg)
+- [PDF in PNG](./pdf-to-png)
+- [PDF in BMP](./pdf-to-bmp)
diff --git a/docs/it/tools/pdf-to-word.md b/docs/it/tools/pdf-to-word.md
new file mode 100644
index 00000000..4cdcfabe
--- /dev/null
+++ b/docs/it/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF in Word
+description: Converti i file PDF in documenti Word (DOCX) modificabili. Supporta la conversione in blocco di più PDF contemporaneamente.
+---
+
+# PDF in Word
+
+Converte i file PDF in documenti Word (`.docx`) modificabili. Lo strumento usa PyMuPDF per ricostruire il contenuto del documento, mantenendo testo, formattazione di base e layout. Supporta la conversione di singoli file e in blocco.
+
+## Come funziona
+
+1. Carica uno o più PDF cliccando sull'area di rilascio o trascinandovi sopra i file. Puoi aggiungere altri file o rimuovere singoli file dall'elenco.
+2. Clicca su **Converti** per avviare l'elaborazione.
+3. Un singolo file viene scaricato come `filename.docx`. Più file vengono raccolti in `converted-documents.zip`.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Ogni PDF viene convertito in DOCX con il motore di conversione integrato di PyMuPDF.
+
+## Formato di output
+
+- **File singolo**: `filename.docx`
+- **Più file**: `converted-documents.zip` contenente un `.docx` per ogni PDF in ingresso.
+
+## Casi d'uso
+
+- Modificare il testo di un PDF ricevuto che devi correggere.
+- Convertire report PDF archiviati in un formato che i colleghi possono modificare in Microsoft Word o Google Docs.
+- Portare in Word il contenuto di contratti o proposte in PDF per le revisioni.
+- Migrare vecchia documentazione PDF in un formato modificabile.
+
+## Suggerimenti
+
+- I layout complessi con testo su più colonne, moduli incorporati o molta grafica potrebbero non essere convertiti perfettamente. Controlla l'output e correggi la formattazione nel tuo elaboratore di testi.
+- I PDF scansionati (solo immagine) producono file DOCX vuoti o quasi. Passali prima attraverso l'OCR per aggiungere un livello di testo.
+- La modalità in blocco è efficiente per convertire intere cartelle di PDF: caricali tutti insieme.
+
+## Strumenti correlati
+
+- [PDF in Testo](./pdf-to-text)
+- [PDF in Markdown](./pdf-to-markdown)
+- [Costruttore di workflow PDF](./pdf-workflow)
diff --git a/docs/it/tools/pdf-to-zip.md b/docs/it/tools/pdf-to-zip.md
new file mode 100644
index 00000000..0d414456
--- /dev/null
+++ b/docs/it/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF in ZIP
+description: Raccogli più file PDF in un unico archivio ZIP per condividerli e archiviarli facilmente.
+---
+
+# PDF in ZIP
+
+Raccogli più file PDF in un unico archivio ZIP. È un semplice strumento di impacchettamento: nessuna conversione, compressione o modifica dei PDF stessi.
+
+## Come funziona
+
+1. Carica più file PDF usando l'area di rilascio.
+2. Controlla l'elenco dei file. Rimuovi quelli che non vuoi includere.
+3. Clicca sul pulsante di elaborazione.
+4. Un archivio ZIP contenente tutti i PDF caricati viene scaricato subito.
+
+## Funzionalità
+
+- Accetta qualsiasi numero di file PDF
+- Rimozione dei singoli file prima di creare l'archivio
+- Mantiene i nomi originali dei file all'interno dello ZIP
+- Nessuna modifica al contenuto dei PDF: i file vengono impacchettati così come sono
+- Mostra nome e dimensione di ogni PDF caricato
+
+## Casi d'uso
+
+- Raccogliere un insieme di fatture o ricevute da allegare a un'email
+- Impacchettare i deliverable di un progetto (più report PDF) per la consegna
+- Creare un unico download per una raccolta di moduli o modelli
+- Archiviare un gruppo di documenti in un unico file compresso
+
+## Suggerimenti
+
+- Il file ZIP usa i nomi originali dei PDF. Se hai file con lo stesso nome, rinominali prima del caricamento per evitare conflitti.
+- Questo strumento non comprime i PDF stessi. Per ridurre le dimensioni dei file, passali prima da Comprimi PDF, poi impacchettali con questo strumento.
+
+## Strumenti correlati
+
+- [Unisci PDF](./merge-pdf)
+- [Dividi PDF](./split-pdf)
+- [Comprimi PDF](./compress-pdf)
diff --git a/docs/it/tools/pdf-workflow.md b/docs/it/tools/pdf-workflow.md
new file mode 100644
index 00000000..beae0f19
--- /dev/null
+++ b/docs/it/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Costruttore di workflow PDF
+description: Crea visivamente pipeline di elaborazione PDF personalizzate collegando nodi su una tela. Concatena operazioni come unione, compressione, filigrana ed esportazione.
+---
+
+# Costruttore di workflow PDF
+
+Il Costruttore di workflow ti permette di concatenare più operazioni PDF in un'unica pipeline automatizzata. Invece di eseguire gli strumenti uno alla volta, colleghi un grafo visivo di nodi (input, elaborazione, output) ed esegui tutto con un clic. I tuoi file non lasciano mai il browser.
+
+## Come funziona
+
+L'interfaccia è divisa in tre pannelli: una **casella dei nodi** a sinistra, la **tela** al centro e un **pannello delle impostazioni** a destra che compare quando selezioni un nodo.
+
+1. **Aggiungi nodi** cliccandoli nella barra laterale sinistra, oppure trascinandoli direttamente sulla tela. Usa la barra di ricerca in cima alla casella dei nodi per filtrare per nome.
+2. **Collega i nodi** trascinando da un socket di output (in basso in un nodo) a un socket di input (in alto in un altro nodo). Le connessioni scorrono dall'alto verso il basso.
+3. **Configura le impostazioni** cliccando un nodo per aprire il suo pannello delle impostazioni a destra. Ogni tipo di nodo ha le proprie opzioni (intervalli di pagine, cursori di qualità, password, ecc.).
+4. **Esegui il workflow** cliccando sul pulsante **Esegui** nella barra degli strumenti. Il motore esegue i nodi in ordine topologico, elaborandoli uno dopo l'altro. Una barra di stato in basso mostra l'avanzamento.
+5. **Scarica i risultati**: il nodo Download finale salva il PDF risultante (o uno ZIP se vengono prodotti più file).
+
+## Categorie di nodi
+
+I nodi sono organizzati in sei categorie, ciascuna con un colore sulla tela:
+
+- **Input** (blu): Input PDF, Immagine di input, Word/Excel/PowerPoint in PDF e oltre 15 altri convertitori di formato che portano i file nella pipeline.
+- **Modifica e annotazione** (indaco): Ritaglia, Scala di grigi, Inverti colori, Filigrana, Numeri di pagina, Intestazione e piè di pagina, Effetto scanner, Regola colori, Colore di sfondo, Rimuovi pagine vuote, Rimuovi annotazioni.
+- **Organizza e gestisci** (viola): Unisci, Dividi, Estrai pagine, Ruota, Elimina pagine, Inverti, Aggiungi pagina vuota, Dividi pagine, N-Up, Correggi dimensione pagina, Combina in una sola pagina, Opuscolo, Posterizza, Modifica metadati, Indice, OCR.
+- **Ottimizza e ripara** (ambra): Comprimi, Rasterizza, Linearizza, Raddrizza, PDF in PDF/A, Font in contorni, Ripara.
+- **Proteggi PDF** (rosa): Cripta, Decripta, Sanifica, Appiattisci, Firma digitale, Oscura.
+- **Output** (verde acqua): Download (rileva automaticamente PDF singolo o ZIP), PDF in immagini, PDF in testo, PDF in DOCX, PDF in XLSX, PDF in CSV, PDF in SVG, PDF in Markdown, Estrai immagini.
+
+## Salvare e caricare i workflow
+
+La barra degli strumenti offre quattro opzioni di persistenza:
+
+- **Salva**: memorizza il workflow corrente come modello con nome nella memoria locale del browser. Puoi salvare più modelli.
+- **Carica**: apre una finestra con l'elenco di tutti i modelli salvati. Clicca su Carica per ripristinarne uno, oppure elimina i modelli che non ti servono più.
+- **Esporta**: scarica il workflow come file `.json` per condividerlo o farne un backup.
+- **Importa**: carica un file di workflow `.json` dal disco, ripristinando tutti i nodi, le posizioni e le connessioni.
+
+I modelli persistono tra le sessioni nella memoria locale. I file JSON esportati sono portabili tra browser e computer.
+
+## Modello di esecuzione
+
+Il motore costruisce un grafo di dipendenze dalle tue connessioni ed esegue i nodi in ordine topologico. Se un nodo fallisce, l'esecuzione si interrompe e il nodo in errore viene segnato in rosso. Alcune regole da ricordare:
+
+- Ogni workflow richiede almeno un nodo **Input** e un nodo **Output**.
+- Il motore rileva le dipendenze circolari e blocca l'esecuzione con un errore.
+- Il nodo **Cripta** deve essere l'ultimo passo di elaborazione prima del nodo di output. Collocarlo prima genera un avviso di convalida, perché i nodi a valle non possono operare su dati cifrati.
+- I PDF protetti da password chiedono una password durante l'esecuzione.
+- Sono supportati input con più PDF: il nodo Unisci può combinarli, oppure i nodi di elaborazione in blocco elaboreranno ogni PDF singolarmente.
+
+## Tipi di socket
+
+Le connessioni usano socket tipizzati per evitare collegamenti non validi:
+
+- **PDF** (indaco): un singolo documento PDF.
+- **MultiPDF** (ambra): più documenti PDF raggruppati insieme.
+- **Image** (verde): un blob di immagine.
+
+## Opzioni
+
+Ogni nodo ha una propria configurazione accessibile dal pannello delle impostazioni a destra. Gli schemi comuni includono:
+
+- **Intervalli di pagine** nei nodi Dividi, Estrai pagine, Elimina pagine
+- **Cursori di qualità** nei nodi di output per la conversione in immagini
+- **Campi password** nei nodi Cripta e Decripta
+- **Campi di testo** per Filigrana, Intestazione e piè di pagina, Modifica metadati
+- **Angoli di rotazione** nel nodo Ruota
+- **Livello di compressione** nel nodo Comprimi
+- **Selezione della lingua OCR** nel nodo OCR
+
+## Casi d'uso
+
+- **Pipeline di elaborazione fatture**: Input PDF -> OCR -> Estrai tabelle -> Download come CSV.
+- **Standardizzazione dei report**: Word in PDF -> Correggi dimensione pagina -> Aggiungi numeri di pagina -> Filigrana -> Comprimi -> Download.
+- **Preparazione all'archiviazione**: Input PDF -> Ripara -> Appiattisci -> Sanifica -> PDF in PDF/A -> Download.
+- **Estrazione di immagini in blocco**: Input PDF (più file) -> Estrai immagini -> Download ZIP.
+- **Opuscoli pronti per la stampa**: Input PDF -> Opuscolo -> Ritaglia -> Comprimi -> Download.
+- **Distribuzione sicura**: Input PDF -> Oscura -> Rimuovi annotazioni -> Cripta -> Download.
+
+## Suggerimenti
+
+- Usa **Canc** o **Backspace** per rimuovere dalla tela il nodo selezionato.
+- Clicca sul pulsante **X** nella barra di stato di un nodo per eliminarlo direttamente.
+- Sposta la tela cliccando e trascinando in uno spazio vuoto. Il cursore diventa una mano mentre trascini.
+- Su dispositivi mobili, usa il pulsante **+** nella barra degli strumenti per mostrare o nascondere la casella dei nodi.
+- Se il tuo workflow produce più file di output, il nodo Download li raccoglie automaticamente in uno ZIP.
+- Inizia in modo semplice: crea e prova una pipeline di due nodi prima di aggiungere complessità.
+
+## Strumenti correlati
+
+- [PDF in Testo](./pdf-to-text)
+- [PDF in Excel](./pdf-to-excel)
+- [Estrai immagini](./extract-images)
+- [PDF in Markdown](./pdf-to-markdown)
diff --git a/docs/it/tools/png-to-pdf.md b/docs/it/tools/png-to-pdf.md
new file mode 100644
index 00000000..5f23510b
--- /dev/null
+++ b/docs/it/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG in PDF
+description: Converti una o più immagini PNG in un documento PDF con qualità regolabile, interamente nel tuo browser.
+---
+
+# PNG in PDF
+
+Converti le immagini PNG in PDF mantenendo la loro piena risoluzione. Ogni PNG diventa una pagina a sé, delle stesse dimensioni dell'immagine originale. La trasparenza viene gestita automaticamente.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :--------- |
+| PNG | `.png` |
+
+## Come funziona
+
+1. Clicca sull'area di caricamento o trascina i file PNG. Puoi selezionarne più di uno alla volta.
+2. Gestisci l'elenco dei file: rimuovi quelli indesiderati o aggiungine altri.
+3. Scegli un livello di **Qualità PDF** dal menu a tendina.
+4. Clicca su **Converti in PDF**. L'output viene scaricato come `from_jpgs.pdf`.
+
+Lo strumento usa pdf-lib per incorporare direttamente ogni immagine. Se un PNG non può essere incorporato in modo nativo (ad es. per un profilo colore insolito), ripiega sul ridisegno tramite canvas come JPEG.
+
+## Opzioni
+
+**Qualità PDF** controlla la compressione applicata prima dell'incorporamento:
+
+- **Alta qualità**: compressione minima, dimensione del file maggiore.
+- **Media qualità** (predefinita): buon equilibrio tra dimensione e nitidezza.
+- **Bassa qualità**: compressione massima, output più piccolo.
+
+## Casi d'uso
+
+- Convertire schermate in un PDF multipagina per segnalazioni di bug o documentazione
+- Impacchettare le esportazioni di design dell'interfaccia in un unico file da rivedere
+- Trasformare le esportazioni di diagrammi (draw.io, Excalidraw) in un PDF condivisibile
+- Assemblare un insieme di immagini di grafici in un report
+
+## Suggerimenti
+
+- I file PNG con trasparenza ottengono uno sfondo bianco nel PDF. Se ti serve uno sfondo diverso, modifica prima le immagini.
+- Per schermate e diagrammi con bordi netti e testo, l'alta qualità evita gli artefatti di compressione JPEG. La qualità media o bassa può convertire internamente in JPEG.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [JPG in PDF](./jpg-to-pdf)
+- [SVG in PDF](./svg-to-pdf)
diff --git a/docs/it/tools/posterize-pdf.md b/docs/it/tools/posterize-pdf.md
new file mode 100644
index 00000000..202e126f
--- /dev/null
+++ b/docs/it/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Posterizza PDF
+description: Dividi le pagine di un PDF in una griglia di pagine più piccole per la stampa in grande formato su più fogli.
+---
+
+# Posterizza PDF
+
+Dividi ogni pagina di un PDF in una griglia di sottopagine più piccole. È lo strumento giusto per stampare una singola pagina su più fogli di carta, da affiancare poi per creare un grande poster o striscione.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Imposta il numero di **righe** e **colonne** per definire la griglia (ad es. 2 righe x 2 colonne divide ogni pagina in 4 sottopagine).
+3. Se vuoi, specifica un intervallo di pagine per limitare le pagine da posterizzare.
+4. L'anteprima mostra una griglia sovrapposta alla pagina corrente, così puoi vedere dove avverranno i tagli.
+5. Scorri le pagine per controllare la griglia anche sulle altre.
+6. Fai clic sul pulsante di elaborazione. Ogni cella della griglia diventa una pagina a sé nel PDF di output.
+
+## Funzionalità
+
+- Numero di righe e colonne configurabile per griglie di qualsiasi dimensione
+- Anteprima in tempo reale con griglia sovrapposta che mostra esattamente dove verranno divise le pagine
+- Filtro per intervallo di pagine per posterizzare solo alcune pagine
+- Navigazione pagina per pagina nell'anteprima
+- Istantanee delle pagine in cache per scorrere l'anteprima più velocemente
+- Linee rosse tratteggiate che indicano chiaramente i bordi di taglio
+
+## Opzioni
+
+| Opzione | Descrizione |
+| ------------------------ | ------------------------------------------------ |
+| **Righe** | Numero di divisioni orizzontali (predefinito: 1) |
+| **Colonne** | Numero di divisioni verticali (predefinito: 1) |
+| **Intervallo di pagine** | Pagine da posterizzare (vuoto = tutte le pagine) |
+
+## Casi d'uso
+
+- Stampare un PDF in formato poster su normali fogli A4 o Letter da montare a parete
+- Creare grandi striscioni a partire da un progetto di una sola pagina
+- Dividere in riquadri stampabili disegni tecnici di grandi dimensioni
+- Realizzare stampe in grande formato senza una stampante per grandi formati
+
+## Suggerimenti
+
+- Una griglia 2x2 trasforma una pagina in 4 pagine. Una griglia 3x3 la trasforma in 9. Scegli la griglia in base alle dimensioni finali che vuoi ottenere.
+- L'anteprima con la griglia ti aiuta a verificare che i contenuti importanti non cadano su una linea di taglio. Se serve, modifica righe e colonne.
+- Per l'operazione inversa (disporre più pagine su un solo foglio), usa [N-Up PDF](./n-up-pdf).
+
+## Strumenti correlati
+
+- [N-Up PDF](./n-up-pdf)
+- [Dividi Pagine](./divide-pages)
+- [Dividi PDF](./split-pdf)
diff --git a/docs/it/tools/powerpoint-to-pdf.md b/docs/it/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..bb0f5faf
--- /dev/null
+++ b/docs/it/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint in PDF
+description: Converti presentazioni PowerPoint (PPT, PPTX) e file ODP in PDF mantenendo la formattazione delle diapositive.
+---
+
+# PowerPoint in PDF
+
+Converti file di presentazione in PDF. Ogni diapositiva diventa una pagina del documento di output, con testo, immagini, forme e transizioni elaborati da un motore LibreOffice che gira nel browser. Supporta i formati PowerPoint moderni e legacy, oltre al formato OpenDocument Presentation.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------------------------ | :--------- |
+| PowerPoint (moderno) | `.pptx` |
+| PowerPoint (legacy) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i file delle presentazioni.
+2. Controlla l'elenco dei file. Aggiungine altri o rimuovi quelli che non servono.
+3. Fai clic su **Converti in PDF**. Il motore LibreOffice si carica al primo utilizzo, poi converte ogni file.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono raccolti in `powerpoint-converted.zip`.
+
+## Opzioni
+
+Questo strumento non ha impostazioni aggiuntive. Le diapositive vengono elaborate nelle loro dimensioni originali.
+
+## Output
+
+| Numero di file | Output |
+| :------------- | :--------------------------------------------------------------------- |
+| 1 file | Download di un singolo PDF (nome file originale con estensione `.pdf`) |
+| 2+ file | Archivio ZIP (`powerpoint-converted.zip`) con un PDF per file |
+
+## Casi d'uso
+
+- Convertire una presentazione in PDF prima di condividerla con un pubblico che potrebbe non avere PowerPoint
+- Creare una versione stampabile di una presentazione come dispensa per una conferenza o un workshop
+- Archiviare le presentazioni in un formato che appare identico su ogni dispositivo
+- Convertire in blocco una raccolta di presentazioni ODP di LibreOffice Impress in PDF
+- Produrre una versione PDF di una presentazione commerciale da allegare a un'email
+
+## Suggerimenti
+
+- Animazioni e transizioni delle diapositive non sono rappresentate nel PDF. Ogni diapositiva viene acquisita come pagina statica.
+- I video incorporati non compaiono nell'output. Se serve, sostituiscili con uno screenshot o un'immagine segnaposto.
+- Le note del relatore non sono incluse nell'esportazione PDF predefinita. Se ti servono, esporta prima dalla vista "Stampa note" di PowerPoint.
+- Il motore LibreOffice resta in cache dopo il primo caricamento, quindi convertire una seconda presentazione nella stessa sessione è molto più veloce.
+
+## Strumenti correlati
+
+- [Word in PDF](./word-to-pdf)
+- [Excel in PDF](./excel-to-pdf)
+- [Immagini in PDF](./image-to-pdf)
diff --git a/docs/it/tools/prepare-pdf-for-ai.md b/docs/it/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..964bb723
--- /dev/null
+++ b/docs/it/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Prepara PDF per IA
+description: Estrai il contenuto dei PDF in JSON strutturato, ottimizzato per LLM e pipeline di IA come LlamaIndex. Supporta l'elaborazione in batch.
+---
+
+# Prepara PDF per IA
+
+Estrae il contenuto dei file PDF e lo struttura in JSON ottimizzato per l'importazione in modelli linguistici di grandi dimensioni (LLM) e framework di IA come LlamaIndex. Il contenuto di ogni pagina viene estratto e organizzato in un formato strutturato, pronto per pipeline RAG, chatbot o sistemi di ricerca semantica.
+
+## Come funziona
+
+1. Carica uno o più PDF facendo clic sull'area di rilascio o trascinandovi i file.
+2. Fai clic su **Estrai** per avviare l'elaborazione.
+3. Un singolo file viene scaricato come `filename_llm.json`. Più file producono un archivio `pdf-for-ai.zip`.
+
+Lo strumento usa l'integrazione LlamaIndex di PyMuPDF per estrarre il contenuto a livello di pagina insieme ai metadati, producendo un output che può essere caricato direttamente nei framework di IA.
+
+## Opzioni
+
+Questo strumento non ha opzioni configurabili. Tutte le pagine vengono estratte con testo completo e metadati.
+
+## Formato di output
+
+- **File singolo**: `filename_llm.json`
+- **File multipli**: `pdf-for-ai.zip` con un `_llm.json` per ogni PDF di input.
+
+L'output JSON segue lo schema dei documenti di LlamaIndex, con il testo di ogni pagina e i campi dei metadati.
+
+## Casi d'uso
+
+- Preparare documenti PDF per pipeline di retrieval-augmented generation (RAG).
+- Creare una base di conoscenza consultabile da archivi PDF per un chatbot di IA.
+- Fornire report PDF a flussi di analisi basati su LLM.
+- Pre-elaborare articoli scientifici per sistemi di ricerca semantica e di domande e risposte.
+- Creare dati di addestramento strutturati da raccolte di documenti PDF.
+
+## Suggerimenti
+
+- Per l'estrazione di solo testo, senza formattazione specifica per l'IA, usa [PDF in Testo](./pdf-to-text).
+- Per un output Markdown che conservi titoli e struttura, usa [PDF in Markdown](./pdf-to-markdown).
+- I PDF scansionati producono un output vuoto o minimo. Passali prima dall'OCR per aggiungere un livello di testo prima dell'estrazione.
+
+## Strumenti correlati
+
+- [PDF in Testo](./pdf-to-text)
+- [PDF in Markdown](./pdf-to-markdown)
+- [PDF in JSON](./pdf-to-json)
diff --git a/docs/it/tools/protect-pdf.md b/docs/it/tools/protect-pdf.md
new file mode 100644
index 00000000..4a9bee1e
--- /dev/null
+++ b/docs/it/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Proteggi PDF
+description: Proteggi i file PDF con una password usando la crittografia AES a 256 bit. Imposta password utente e proprietario con restrizioni d'uso configurabili.
+---
+
+# Proteggi PDF
+
+Blocca il tuo PDF con una password, così solo le persone autorizzate potranno aprirlo. BentoPDF usa la crittografia AES a 256 bit, lo stesso standard usato da banche e agenzie governative, applicata interamente nel tuo browser tramite QPDF.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Inserisci una **Password utente** (obbligatoria). È la password che serve per aprire il file.
+3. Se vuoi, inserisci una **Password proprietario**. Se impostata, il PDF ottiene restrizioni d'uso che impediscono di stampare, modificare, copiare e annotare.
+4. Fai clic su **Cripta PDF**.
+5. Scarica il file criptato.
+
+## Tipi di password
+
+### Password utente (obbligatoria)
+
+La password utente è quella che i destinatari digitano per aprire il PDF. Senza di essa il documento è completamente inaccessibile. Ogni PDF criptato deve averne una.
+
+### Password proprietario (facoltativa)
+
+La password proprietario controlla cosa può fare un utente autorizzato dopo aver aperto il file. Quando imposti una password proprietario distinta, BentoPDF applica automaticamente il set di restrizioni più severo:
+
+- Modifica disabilitata
+- Estrazione/copia disabilitata
+- Stampa disabilitata
+- Annotazione disabilitata
+- Compilazione dei moduli disabilitata
+- Assemblaggio del documento disabilitato
+
+Se lasci vuota la password proprietario, il PDF viene criptato (per aprirlo serve comunque la password utente) ma, una volta aperto, non ha restrizioni d'uso.
+
+## Dettagli sulla crittografia
+
+- **Algoritmo**: AES-256 (Advanced Encryption Standard a 256 bit)
+- **Lunghezza della chiave**: 256 bit
+- **Standard**: crittografia PDF 2.0 (implementazione QPDF)
+
+Con la tecnologia attuale, AES-256 non è violabile con un attacco a forza bruta. La sicurezza del tuo PDF criptato dipende interamente dalla robustezza della password.
+
+## Casi d'uso
+
+- Proteggere report finanziari riservati prima di inviarli per email
+- Mettere al sicuro documenti legali condivisi con la controparte
+- Aggiungere una password a cartelle cliniche o a dati personali identificabili
+- Distribuire contenuti a pagamento (e-book, report) con controllo degli accessi
+- Rispettare le policy di protezione dei dati che richiedono la crittografia dei dati archiviati
+
+## Suggerimenti
+
+- Usa una password forte e univoca. Una passphrase di almeno 12 caratteri con maiuscole, minuscole, numeri e simboli è l'ideale.
+- Condividi la password attraverso un canale separato (telefono, messaggio di testo), mai nella stessa email del PDF.
+- Se ti serve solo limitare alcune azioni (niente stampa, niente copia) senza richiedere una password per aprire il file, usa invece lo strumento Modifica permessi.
+
+## Strumenti correlati
+
+- [Decrittografa PDF](./unlock-pdf): rimuovi la crittografia quando conosci la password
+- [Modifica permessi](./change-permissions): modifica restrizioni d'uso specifiche
+- [Rimuovi Restrizioni](./remove-restrictions): elimina ogni protezione da un PDF
+- [Sanitizza PDF](./sanitize-pdf): rimuovi i contenuti nascosti prima di criptare
diff --git a/docs/it/tools/psd-to-pdf.md b/docs/it/tools/psd-to-pdf.md
new file mode 100644
index 00000000..b58fff8e
--- /dev/null
+++ b/docs/it/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD in PDF
+description: Converti i file Photoshop (PSD) in PDF nel tuo browser. Gratis, privato, senza bisogno di software Adobe.
+---
+
+# PSD in PDF
+
+Converti i file Adobe Photoshop PSD in documenti PDF. PSD è il formato nativo di Photoshop e aprirlo di solito richiede costosi software Adobe. Questo strumento elabora l'immagine composita appiattita del tuo file PSD come pagina PDF a piena risoluzione.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :-------------- | :--------- | :-------------------------------------- |
+| Adobe Photoshop | `.psd` | Elabora l'immagine composita appiattita |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file PSD. Sono supportati più file.
+2. Controlla l'elenco dei file. Rimuovi quelli che non vuoi con l'icona del cestino oppure usa **Aggiungi altri file** per includerne altri.
+3. Fai clic su **Converti in PDF**. Il motore PyMuPDF legge il file PSD e incorpora l'immagine composita in una pagina PDF alla risoluzione originale.
+4. Un singolo PSD produce un PDF. Se carichi più file PSD, vengono uniti in un unico PDF multipagina chiamato `psd_to_pdf.pdf`, in cui ogni PSD diventa una pagina.
+
+## Opzioni
+
+Non servono impostazioni. Il convertitore usa i dati immagine appiattiti del file PSD.
+
+## Casi d'uso
+
+- Visualizzare in anteprima i progetti Photoshop senza aprire Photoshop
+- Inviare bozze di design a clienti che non hanno Adobe Creative Suite
+- Stampare illustrazioni ad alta risoluzione da file PSD
+- Creare un portfolio PDF da più file di design PSD: ognuno diventa una pagina di un unico documento
+
+## Suggerimenti
+
+- La conversione elabora la vista composita (appiattita) del PSD. I singoli livelli, i livelli di regolazione e gli effetti di livello non vengono conservati come elementi separati nel PDF.
+- Più file PSD vengono uniti in un unico PDF multipagina anziché in PDF separati. È utile per creare portfolio o lookbook.
+- I file PSD ad altissima risoluzione (file di stampa a 300+ DPI) producono PDF di grandi dimensioni. Lo strumento mantiene la risoluzione completa.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [PNG in PDF](./png-to-pdf)
+- [VSD in PDF](./vsd-to-pdf)
diff --git a/docs/it/tools/pub-to-pdf.md b/docs/it/tools/pub-to-pdf.md
new file mode 100644
index 00000000..eb830f72
--- /dev/null
+++ b/docs/it/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB in PDF
+description: Converti i file Microsoft Publisher (PUB) in PDF nel tuo browser. Gratis, privato, senza bisogno di software.
+---
+
+# PUB in PDF
+
+Converti i file Microsoft Publisher in PDF. Publisher è uno strumento di desktop publishing incluso in alcune edizioni di Microsoft Office, ma la maggior parte delle persone non lo ha installato. Questo strumento permette a chiunque di convertire i file PUB in PDF direttamente nel browser, senza software Microsoft.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------------------ | :--------- | :------------------------------ |
+| Microsoft Publisher | `.pub` | Documenti di desktop publishing |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file PUB. Puoi caricare più file contemporaneamente.
+2. Controlla l'elenco dei file. Rimuovi quelli che non vuoi con l'icona del cestino oppure fai clic su **Aggiungi altri file** per aggiungerne altri.
+3. Fai clic su **Converti in PDF**. Un motore basato su LibreOffice si carica nel browser e converte ogni file PUB, mantenendo layout, immagini e caselle di testo.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono consegnati in un archivio ZIP chiamato `pub-to-pdf.zip`.
+
+## Opzioni
+
+Non serve alcuna configurazione aggiuntiva. Il convertitore gestisce automaticamente il layout PUB.
+
+## Casi d'uso
+
+- Aprire un volantino o una newsletter PUB ricevuti da un cliente senza acquistare Microsoft Publisher
+- Convertire bollettini parrocchiali, programmi di eventi o newsletter scolastiche creati con Publisher
+- Archiviare materiali di marketing creati in Publisher in un formato accessibile a tutti
+- Stampare file PUB su un sistema che non ha Publisher installato
+
+## Suggerimenti
+
+- I layout complessi di Publisher, con caselle di testo sovrapposte e posizionamento preciso, possono spostarsi leggermente durante la conversione. Controlla l'output se la posizione esatta è importante.
+- Il motore LibreOffice si avvia una sola volta per sessione. La prima conversione richiede più tempo, le successive sono più veloci.
+- Per una conversione il più fedele possibile dei file Publisher, assicurati che gli eventuali font personalizzati usati nell'originale siano font di sistema standard.
+
+## Strumenti correlati
+
+- [VSD in PDF](./vsd-to-pdf)
+- [ODP in PDF](./odp-to-pdf)
diff --git a/docs/it/tools/rasterize-pdf.md b/docs/it/tools/rasterize-pdf.md
new file mode 100644
index 00000000..9bbb1907
--- /dev/null
+++ b/docs/it/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasterizza PDF
+description: Converti le pagine PDF in un PDF basato su immagini. Appiattisci tutti i livelli, rimuovi il testo selezionabile e controlla DPI e formato immagine.
+---
+
+# Rasterizza PDF
+
+La rasterizzazione converte ogni pagina di un PDF in un'immagine e riassembla queste immagini in un PDF. Il risultato appare identico all'originale ma non contiene testo selezionabile, elementi interattivi né livelli modificabili. È di fatto una fotocopia di alta qualità.
+
+## Come funziona
+
+1. Carica uno o più file PDF.
+2. Imposta i **DPI** (risoluzione) dell'output rasterizzato.
+3. Scegli un **Formato immagine**: PNG per una qualità senza perdita o JPEG per file più piccoli.
+4. Se vuoi, seleziona **Converti in scala di grigi**.
+5. Fai clic su **Rasterizza PDF**. Più file vengono scaricati in un archivio ZIP.
+
+## Opzioni
+
+| Impostazione | Valori | Predefinito |
+| -------------------- | --------------------------------------- | ----------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Formato immagine** | PNG (senza perdita), JPEG (più leggero) | PNG |
+| **Scala di grigi** | Sì/No | No |
+
+## Indicazioni sui DPI
+
+- **72**: solo visualizzazione a schermo, dimensione file minima
+- **150**: buon equilibrio per l'uso generale
+- **200**: testo più nitido, dimensione file moderata
+- **300**: output di qualità per la stampa
+- **600**: archiviazione di alta qualità o stampa professionale
+
+## Casi d'uso
+
+- Impedire l'estrazione del testo da documenti riservati prima di condividerli
+- Eliminare i problemi di dipendenza dai font convertendo il testo in pixel
+- Creare una versione "piatta" di un PDF con livelli o trasparenze complessi che appare diversa nei vari visualizzatori
+- Preparare un PDF per un sistema che accetta solo input basato su immagini
+- Eliminare i contenuti nascosti (come le modifiche tracciate o i dati dei moduli) riducendo il PDF a sole immagini
+
+## Suggerimenti
+
+- 150 DPI in PNG è un'ottima impostazione predefinita. Aumenta solo se ti serve un output per la stampa o devi ingrandire dettagli sottili.
+- JPEG produce file sensibilmente più piccoli ma introduce artefatti di compressione sui bordi nitidi del testo.
+- La rasterizzazione è irreversibile: conserva il PDF originale se potresti aver bisogno del testo modificabile in futuro.
+
+## Strumenti correlati
+
+- [Comprimi PDF](./compress-pdf): riduci la dimensione del PDF rasterizzato
+- [Raddrizza PDF](./deskew-pdf): raddrizza le pagine prima di rasterizzare documenti scansionati
+- [Font in Contorni](./font-to-outline): converti i font in tracciati vettoriali se vuoi mantenere la scalabilità
+- [Appiattisci PDF](./flatten-pdf): appiattisci i moduli senza convertire in immagini
diff --git a/docs/it/tools/remove-annotations.md b/docs/it/tools/remove-annotations.md
new file mode 100644
index 00000000..cff5b586
--- /dev/null
+++ b/docs/it/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Rimuovi annotazioni
+description: Elimina con un clic tutti i commenti, le evidenziazioni, i collegamenti e le altre annotazioni dal tuo PDF.
+---
+
+# Rimuovi annotazioni
+
+Ripulisci il tuo PDF rimuovendo tutte le annotazioni: commenti, evidenziazioni, note adesive, markup del testo, collegamenti, timbri e qualsiasi altro oggetto di annotazione incorporato nel documento. Il contenuto sottostante delle pagine (testo, immagini, grafica) resta intatto.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Lo strumento rileva il numero di pagine del documento e mostra le informazioni sul file.
+3. Fai clic su **Rimuovi Annotazioni** per elaborare.
+4. Il PDF ripulito viene scaricato automaticamente senza alcuna annotazione.
+
+## Funzionalità
+
+- Rimuove tutti i tipi di annotazione: commenti, evidenziazioni, sottolineature, testo barrato, note adesive, timbri, collegamenti e markup dei moduli
+- Agisce su ogni pagina del documento
+- Conserva tutti i contenuti che non sono annotazioni (testo, immagini, grafica vettoriale, campi modulo)
+- Mostra il numero di pagine e la dimensione del file prima dell'elaborazione
+
+## Casi d'uso
+
+- Ripulire un documento prima della distribuzione finale dopo un ciclo di revisione in cui più revisori hanno aggiunto commenti
+- Rimuovere evidenziazioni e note adesive da una guida di studio condivisa
+- Eliminare le annotazioni di collegamento da un documento prima di archiviarlo
+- Preparare una versione "pulita" di un documento legale molto annotato durante la negoziazione
+- Rimuovere i commenti dei revisori da un manoscritto prima di mandarlo in stampa
+
+## Suggerimenti
+
+- Questo strumento rimuove le annotazioni a livello di struttura del PDF, quindi il risultato mantiene il testo selezionabile e la qualità originale, senza alcuna rasterizzazione.
+- Se vuoi rimuovere solo alcune annotazioni e non tutte, usa l'[Editor PDF](./edit-pdf) per eliminare selettivamente le singole annotazioni.
+- Le annotazioni nei PDF appiattiti (in cui le annotazioni sono state unite al contenuto della pagina) non possono essere rimosse perché non sono più oggetti separati.
+
+## Strumenti correlati
+
+- [Editor PDF](./edit-pdf)
+- [Aggiungi Filigrana](./add-watermark)
+- [Firma PDF](./sign-pdf)
diff --git a/docs/it/tools/remove-blank-pages.md b/docs/it/tools/remove-blank-pages.md
new file mode 100644
index 00000000..aabbf57d
--- /dev/null
+++ b/docs/it/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Rimuovi pagine vuote
+description: Rileva e rimuovi automaticamente le pagine vuote o quasi vuote dal tuo PDF con sensibilità regolabile.
+---
+
+# Rimuovi pagine vuote
+
+Analizza il tuo PDF alla ricerca di pagine vuote o quasi vuote e rimuovile automaticamente. Lo strumento elabora ogni pagina e ne analizza i pixel per stabilire se è vuota, poi ti permette di confermare quali pagine rimuovere prima dell'elaborazione.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Regola il cursore **Sensibilità** per controllare quanto rigorosamente viene definita una pagina "vuota".
+3. Fai clic su **Rileva pagine vuote** per analizzare il documento.
+4. Lo strumento mostra le miniature delle pagine vuote rilevate, così puoi controllarle.
+5. Conferma la selezione e scarica il PDF ripulito senza le pagine vuote.
+
+## Opzioni
+
+- **Sensibilità**: un cursore da 0% a 100% (predefinito 80%). Valori più alti sono più rigorosi e segnalano solo le pagine completamente o quasi completamente bianche. Valori più bassi sono più permissivi e individuano anche pagine con contenuto minimo, come un singolo punto o una filigrana tenue.
+
+## Funzionalità
+
+- Analisi a livello di pixel di ogni pagina per rilevare i contenuti vuoti
+- Cursore di sensibilità regolabile per affinare il rilevamento
+- Anteprima a miniature delle pagine vuote rilevate per la verifica manuale
+- Conserva esattamente tutte le pagine non vuote
+- Gestisce documenti di qualsiasi dimensione o numero di pagine
+- Indicazione dell'avanzamento durante l'analisi
+
+## Casi d'uso
+
+- Ripulire documenti scansionati in cui lo scanner ha acquisito i retri vuoti di originali stampati su un solo lato
+- Rimuovere le pagine separatrici da lotti di documenti scansionati in blocco
+- Eliminare le pagine vuote inserite dai sistemi di gestione documentale
+- Ripulire PDF esportati da elaboratori di testi che a volte includono pagine vuote finali
+- Ridurre la dimensione del file eliminando pagine vuote inutili
+
+## Suggerimenti
+
+- Parti dalla sensibilità predefinita dell'80% e regola da lì. Se lo strumento non rileva pagine che a te sembrano vuote, abbassa la sensibilità. Se segnala pagine con un contenuto leggero che vuoi mantenere, alzala.
+- Lo strumento elabora ogni pagina per analizzarne il contenuto, quindi il tempo di elaborazione cresce con il numero di pagine. Per documenti molto grandi, mettiti in conto una breve attesa.
+- Controlla le pagine vuote rilevate nell'anteprima a miniature prima di confermare la rimozione. Le pagine con intestazioni, piè di pagina o filigrane tenui potrebbero essere segnalate a seconda della sensibilità impostata.
+
+## Strumenti correlati
+
+- [Ritaglia PDF](./crop-pdf)
+- [Editor PDF](./edit-pdf)
+- [Numeri di Pagina](./page-numbers)
diff --git a/docs/it/tools/remove-metadata.md b/docs/it/tools/remove-metadata.md
new file mode 100644
index 00000000..d8c245f5
--- /dev/null
+++ b/docs/it/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Rimuovi metadati
+description: Elimina tutti i metadati nascosti dai file PDF, tra cui autore, titolo, data di creazione, produttore, dati XMP e ID del documento.
+---
+
+# Rimuovi metadati
+
+Ogni PDF contiene metadati che possono rivelare chi lo ha creato, quale software è stato usato, quando è stato modificato l'ultima volta e altro ancora. Questo strumento li elimina tutti: il dizionario info, i flussi di metadati XMP, gli ID del documento e i dati specifici delle applicazioni, lasciando un documento pulito, senza alcuna traccia della sua origine.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Fai clic su **Rimuovi metadati**.
+3. Scarica il file ripulito.
+
+Nessuna opzione da configurare. Lo strumento è accurato per scelta: cancella tutto.
+
+## Cosa viene rimosso
+
+- **Campi del dizionario info**: Titolo, Autore, Oggetto, Parole chiave, Creatore, Produttore, data di creazione, data di modifica
+- **Flusso di metadati XMP**: il blocco di metadati basato su XML memorizzato nel catalogo del documento
+- **ID del documento**: identificatori univoci nel trailer del PDF che possono servire a tracciare un documento tra sistemi diversi
+- **PieceInfo**: metadati specifici delle applicazioni aggiunti da programmi come Illustrator o InDesign
+
+## Cosa resta
+
+- Tutto il contenuto visibile delle pagine (testo, immagini, grafica)
+- Campi modulo e annotazioni
+- Segnalibri e collegamenti
+- La struttura del documento stesso
+
+## Casi d'uso
+
+- Rimuovere il tuo nome e la tua organizzazione da un documento prima di pubblicarlo in forma anonima
+- Eliminare i timestamp di creazione che rivelano quando è stato preparato un documento
+- Ripulire le stringhe del produttore che identificano il software PDF che usi
+- Preparare documenti per invii normativi che richiedono PDF privi di metadati
+- Rimuovere le tracce della cronologia delle modifiche prima di condividere un documento all'esterno
+
+## Suggerimenti
+
+- Usa prima lo strumento Visualizza Metadati per vedere esattamente quali metadati contiene il tuo PDF prima di eliminarli.
+- Se devi rimuovere i metadati _e_ anche JavaScript, annotazioni e file incorporati, usa Sanitizza PDF per una pulizia più completa.
+- La rimozione dei metadati è permanente. Conserva l'originale se potresti aver bisogno di quei dati in futuro.
+
+## Strumenti correlati
+
+- [Sanitizza PDF](./sanitize-pdf): rimuovi i metadati insieme a script, allegati e altro
+- [Cripta PDF](./protect-pdf): proteggi con una password il PDF ripulito
+- [Comprimi PDF](./compress-pdf): rimuovere i metadati può ridurre leggermente la dimensione del file, comprimi per risparmiare di più
diff --git a/docs/it/tools/remove-restrictions.md b/docs/it/tools/remove-restrictions.md
new file mode 100644
index 00000000..e7696e01
--- /dev/null
+++ b/docs/it/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Rimuovi restrizioni
+description: Rimuovi la protezione con password, le restrizioni di stampa, i blocchi di modifica e i limiti di copia dai file PDF.
+---
+
+# Rimuovi restrizioni
+
+I PDF possono avere due tipi di password: una password utente (necessaria per aprire il file) e una password proprietario (controlla cosa puoi farci). Questo strumento elimina entrambe, insieme a tutte le restrizioni associate: blocchi di stampa, modifica, copia e annotazione.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Se il PDF ha una password proprietario, inseriscila nel campo **Password proprietario**. Lascialo vuoto se il PDF ha solo restrizioni d'uso senza password.
+3. Fai clic su **Rimuovi Restrizioni**.
+4. Scarica il PDF senza restrizioni.
+
+Lo strumento usa i flag `--decrypt` e `--remove-restrictions` di QPDF per produrre una copia pulita e senza restrizioni.
+
+## Cosa viene rimosso
+
+- Protezione con password (sia utente che proprietario)
+- Restrizioni di stampa
+- Restrizioni di modifica
+- Restrizioni di copia di testo e immagini
+- Restrizioni di annotazione e commento
+- Tutte le altre limitazioni di sicurezza codificate nel PDF
+
+## Casi d'uso
+
+- Sbloccare un PDF di tua proprietà di cui hai impostato la password anni fa
+- Rimuovere le restrizioni di stampa da un documento a cui hai legittimamente accesso
+- Abilitare il copia e incolla su materiali di consultazione per prendere appunti
+- Preparare PDF per strumenti di accessibilità che non gestiscono i documenti con restrizioni
+
+## Suggerimenti
+
+- Se ne è impostata una, devi conoscere la password proprietario. Questo strumento non decifra né forza le password.
+- Se vuoi mantenere il file criptato ma cambiare alcuni permessi, usa invece lo strumento Modifica permessi.
+- Il file di output non ha alcuna crittografia: chiunque lo riceva può aprirlo liberamente.
+
+## Strumenti correlati
+
+- [Decrittografa PDF](./unlock-pdf): sblocca un PDF quando conosci la password utente
+- [Cripta PDF](./protect-pdf): applica di nuovo la crittografia con nuove impostazioni
+- [Modifica permessi](./change-permissions): modifica in modo selettivo le azioni consentite
diff --git a/docs/it/tools/repair-pdf.md b/docs/it/tools/repair-pdf.md
new file mode 100644
index 00000000..45e534f1
--- /dev/null
+++ b/docs/it/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Ripara PDF
+description: Recupera i dati da file PDF corrotti o danneggiati con il motore di riparazione di QPDF. Supporta l'elaborazione in batch.
+---
+
+# Ripara PDF
+
+Quando un PDF non si apre, mostra contenuti illeggibili o genera errori nel tuo visualizzatore, questo strumento tenta di ricostruirne la struttura interna. Usa il motore di riparazione di QPDF, in grado di recuperare i dati da molti tipi di corruzione: tabelle di riferimenti incrociati danneggiate, stream troncati, riferimenti a oggetti non validi e altro ancora.
+
+## Come funziona
+
+1. Carica uno o più file PDF danneggiati.
+2. Fai clic su **Ripara PDF**.
+3. Un singolo file riparato viene scaricato direttamente. Più file producono un archivio ZIP.
+
+Lo strumento fa passare ogni file da QPDF con il flag `--decrypt`, che costringe QPDF a leggere e riscrivere l'intera struttura del PDF, correggendo lungo il percorso i problemi recuperabili.
+
+## Funzionalità
+
+- Riparazione in batch di più PDF in una sola operazione
+- Rilevamento automatico dei file recuperabili e di quelli irrecuperabili
+- Report di successo/errore per ogni file quando ne elabori più di uno
+- Usa QPDF (WebAssembly), una libreria di trasformazione PDF collaudata
+
+## Cosa può correggere
+
+- Tabelle di riferimenti incrociati danneggiate o mancanti
+- Finali di file troncati da download incompleti
+- Numerazione degli oggetti e lunghezze degli stream non valide
+- Piccole incoerenze strutturali dovute a generatori PDF difettosi
+- Artefatti di crittografia dovuti a tentativi di decrittografia falliti
+
+## Cosa non può correggere
+
+- File gravemente troncati in cui manca la maggior parte dei dati
+- PDF criptati con una password che non hai
+- File che in realtà non sono PDF (estensione sbagliata)
+- Corruzione delle immagini all'interno del PDF (la struttura viene corretta, ma i dati dei pixel non vengono rigenerati)
+
+## Casi d'uso
+
+- Recuperare un PDF da un download via email non riuscito
+- Aprire file prodotti da generatori PDF datati o non standard
+- Correggere PDF che funzionano in un visualizzatore ma non in un altro
+- Preparare documenti d'archivio danneggiati per la conservazione a lungo termine
+
+## Suggerimenti
+
+- Se la riparazione fallisce, prova prima ad aprire il file in un browser: i browser hanno una propria logica di recupero e potrebbero mostrare abbastanza contenuto da poterlo salvare di nuovo.
+- Per i PDF criptati che non si riescono a riparare, prova prima Decrittografa PDF, poi ripara l'output decrittografato.
+
+## Strumenti correlati
+
+- [Comprimi PDF](./compress-pdf): pulisci ulteriormente la struttura del PDF riparato
+- [Linearizza PDF](./linearize-pdf): ottimizza il file riparato per la distribuzione sul web
+- [Appiattisci PDF](./flatten-pdf): appiattisci i moduli che potrebbero essere stati danneggiati
diff --git a/docs/it/tools/reverse-pages.md b/docs/it/tools/reverse-pages.md
new file mode 100644
index 00000000..21808f13
--- /dev/null
+++ b/docs/it/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Inverti pagine
+description: Inverti l'ordine delle pagine di uno o più file PDF in modo che l'ultima pagina diventi la prima.
+---
+
+# Inverti pagine
+
+Inverti l'ordine delle pagine di un PDF in modo che l'ultima pagina diventi la prima, la penultima diventi la seconda e così via. Supporta l'elaborazione in batch di più file contemporaneamente.
+
+## Come funziona
+
+1. Carica uno o più file PDF.
+2. Fai clic sul pulsante di elaborazione.
+3. Ogni file viene invertito in modo indipendente. Se hai caricato più file, l'output è un archivio ZIP con tutti i PDF invertiti.
+4. Un singolo file viene scaricato direttamente come PDF invertito.
+
+## Funzionalità
+
+- Elaborazione in batch: inverti più PDF in una sola operazione
+- Output di un singolo file per un PDF, ZIP per più file
+- Pulsanti per rimuovere i singoli file prima dell'elaborazione
+- Conserva tutto il contenuto e la formattazione delle pagine
+
+## Casi d'uso
+
+- Correggere un documento scansionato in ordine inverso
+- Preparare un PDF di presentazione da leggere dall'ultima alla prima pagina
+- Invertire l'ordine delle pagine per flussi di stampa che alimentano le pagine al contrario
+- Correggere un documento le cui pagine sono state assemblate per errore al contrario
+
+## Suggerimenti
+
+- Ogni file di un batch viene invertito in modo indipendente: i file stessi non vengono riordinati tra loro.
+- Per un riordino delle pagine più preciso (non solo un'inversione completa), usa [Duplica e Organizza](./organize-pdf).
+
+## Strumenti correlati
+
+- [Duplica e Organizza](./organize-pdf)
+- [Ruota PDF](./rotate-pdf)
+- [Strumento PDF multifunzione](./pdf-multi-tool)
diff --git a/docs/it/tools/rotate-custom.md b/docs/it/tools/rotate-custom.md
new file mode 100644
index 00000000..bb05363c
--- /dev/null
+++ b/docs/it/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Ruota di gradi personalizzati
+description: Ruota le pagine PDF di qualsiasi angolo, con campi per i gradi di ogni pagina e controlli di rotazione in blocco.
+---
+
+# Ruota di gradi personalizzati
+
+Ruota le pagine PDF di un angolo qualsiasi, non solo a multipli di 90 gradi. Ogni pagina ha il proprio campo per l'angolo e puoi applicare un unico angolo a tutte le pagine in una volta con il controllo in blocco.
+
+## Come funziona
+
+1. Carica un file PDF. Vengono generate le miniature di tutte le pagine.
+2. Ogni pagina ha un campo numerico che mostra l'angolo di rotazione attuale.
+3. Digita un valore in gradi (positivo o negativo) per ruotare una pagina specifica, oppure usa i pulsanti sinistra/destra di ogni pagina per regolazioni rapide di 90 gradi.
+4. Usa il campo **angolo in blocco** in alto per impostare una rotazione uniforme su tutte le pagine.
+5. Fai clic sul pulsante di elaborazione per generare il PDF ruotato.
+
+## Funzionalità
+
+- Inserimento libero dei gradi per ogni pagina (qualsiasi valore intero)
+- Controllo dell'angolo in blocco per impostare la stessa rotazione su ogni pagina
+- Anteprima della rotazione in tempo reale nelle miniature
+- Pulsanti di rotazione rapida per ogni pagina a passi di 90 gradi
+- Miniature caricate in modo differito per prestazioni migliori sui documenti grandi
+
+## Casi d'uso
+
+- Correggere di qualche grado scansioni leggermente inclinate
+- Ruotare le pagine per rispettare un requisito di orientamento non standard
+- Applicare rotazioni precise a singole pagine in un documento con contenuti misti
+- Rifinire gli angoli delle pagine dopo una prima rotazione in blocco
+
+## Suggerimenti
+
+- I valori positivi ruotano in senso orario, quelli negativi in senso antiorario.
+- Il campo dell'angolo in blocco sovrascrive tutti gli angoli delle singole pagine quando viene applicato. Se serve, imposta le regolazioni singole dopo l'operazione in blocco.
+- Per le rotazioni standard di 90/180/270 gradi con un'interfaccia più semplice, usa [Ruota PDF](./rotate-pdf).
+
+## Strumenti correlati
+
+- [Ruota PDF](./rotate-pdf)
+- [Strumento PDF multifunzione](./pdf-multi-tool)
+- [Duplica e Organizza](./organize-pdf)
diff --git a/docs/it/tools/rotate-pdf.md b/docs/it/tools/rotate-pdf.md
new file mode 100644
index 00000000..3a21a198
--- /dev/null
+++ b/docs/it/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Ruota PDF
+description: Ruota singole pagine o tutte le pagine di un PDF a passi di 90 gradi con un'interfaccia visiva a miniature.
+---
+
+# Ruota PDF
+
+Ruota le pagine di un PDF di 90 gradi in senso orario o antiorario. Lo strumento mostra le anteprime di ogni pagina e ti permette di ruotarle singolarmente oppure di applicare una rotazione in blocco a tutto il documento.
+
+## Come funziona
+
+1. Carica un file PDF. Le miniature di tutte le pagine vengono mostrate in una griglia.
+2. Usa i pulsanti di rotazione sinistra/destra sotto la miniatura di ogni pagina per ruotare quella pagina.
+3. Usa i controlli di rotazione in blocco in alto per ruotare tutte le pagine insieme.
+4. L'anteprima delle miniature si aggiorna in tempo reale per mostrare la rotazione.
+5. Fai clic sul pulsante di elaborazione per salvare il PDF ruotato.
+
+## Funzionalità
+
+- Rotazione per ogni pagina a passi di 90 gradi (a sinistra o a destra)
+- Rotazione in blocco di tutte le pagine contemporaneamente
+- Anteprima delle miniature in tempo reale con transizioni di rotazione animate
+- Miniature caricate in modo differito per prestazioni fluide sui documenti grandi
+- Conserva il contenuto e la qualità originali delle pagine
+
+## Casi d'uso
+
+- Correggere pagine scansionate di lato o capovolte
+- Ruotare le pagine orizzontali in verticale (o viceversa)
+- Correggere un documento con orientamenti misti in cui alcune pagine sono state scansionate con l'angolo sbagliato
+- Preparare un documento per uno specifico orientamento di visualizzazione
+
+## Suggerimenti
+
+- Le rotazioni sono cumulative. Fare clic due volte sul pulsante orario applica una rotazione di 180 gradi.
+- Per rotazioni diverse da 90 gradi (ad es. 45 gradi per correggere una scansione leggermente inclinata), usa invece [Ruota di Gradi Personalizzati](./rotate-custom).
+- I controlli di rotazione in blocco agiscono su tutte le pagine, non solo su quelle selezionate. In questo strumento non esiste la selezione: per quella, usa lo [Strumento PDF multifunzione](./pdf-multi-tool).
+
+## Strumenti correlati
+
+- [Ruota di Gradi Personalizzati](./rotate-custom)
+- [Strumento PDF multifunzione](./pdf-multi-tool)
+- [Duplica e Organizza](./organize-pdf)
diff --git a/docs/it/tools/rtf-to-pdf.md b/docs/it/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..0419e9bb
--- /dev/null
+++ b/docs/it/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF in PDF
+description: Converti i file Rich Text Format (RTF) in PDF nel tuo browser con un motore basato su LibreOffice.
+---
+
+# RTF in PDF
+
+Converti i documenti Rich Text Format in PDF. RTF è un formato di documento multipiattaforma supportato praticamente da ogni elaboratore di testi. Questo strumento usa un motore LibreOffice nel browser per elaborare i file RTF mantenendo la formattazione: grassetto, corsivo, tabelle e immagini incorporate vengono tutti riportati nel PDF.
+
+## Formati supportati
+
+| Formato | Estensioni | Tipi MIME |
+| :------ | :--------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina uno o più file RTF.
+2. Controlla l'elenco dei file. Aggiungine altri o rimuovi quelli che non servono.
+3. Fai clic su **Converti in PDF**. Il motore LibreOffice si avvia al primo utilizzo, poi elabora ogni file.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono consegnati come `rtf-converted.zip`.
+
+## Opzioni
+
+Questo strumento non ha impostazioni aggiuntive. La conversione conserva la formattazione RTF originale.
+
+## Output
+
+| Numero di file | Output |
+| :------------- | :----------------------------------------------------- |
+| 1 file | Download di un singolo PDF (ad es. `letter.pdf`) |
+| 2+ file | Archivio ZIP (`rtf-converted.zip`) con un PDF per file |
+
+## Casi d'uso
+
+- Convertire in PDF moderni i documenti RTF di vecchi elaboratori di testi
+- Trasformare modelli di email RTF in anteprime PDF
+- Elaborare l'output RTF di sistemi software legali o medici
+- Convertire in blocco file RTF di un sistema di gestione documentale in PDF per l'archiviazione
+
+## Suggerimenti
+
+- Il motore LibreOffice viene caricato una sola volta e messo in cache. La prima conversione di una sessione richiede qualche secondo in più, le successive sono più veloci.
+- I file RTF con oggetti OLE incorporati potrebbero non mostrare perfettamente tutti gli oggetti. Testo semplice, immagini e formattazione standard vengono convertiti in modo affidabile.
+- Se i tuoi file RTF sono stati creati con Microsoft Word, puoi convertirli direttamente anche con lo strumento [Word in PDF](./word-to-pdf), che accetta RTF oltre a DOC e DOCX.
+
+## Strumenti correlati
+
+- [Word in PDF](./word-to-pdf)
+- [ODT in PDF](./odt-to-pdf)
+- [Testo in PDF](./txt-to-pdf)
diff --git a/docs/it/tools/sanitize-pdf.md b/docs/it/tools/sanitize-pdf.md
new file mode 100644
index 00000000..2d388230
--- /dev/null
+++ b/docs/it/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Sanitizza PDF
+description: Rimuovi dai PDF i contenuti nascosti e potenzialmente pericolosi, tra cui metadati, JavaScript, file incorporati, annotazioni e livelli.
+---
+
+# Sanitizza PDF
+
+I PDF possono contenere molto più di ciò che vedi sullo schermo. Metadati nascosti, JavaScript incorporato, allegati, dati dei moduli e informazioni sui livelli possono far trapelare dati sensibili o rappresentare rischi per la sicurezza. La sanitizzazione elimina tutto questo e ti lascia un documento pulito, sicuro da condividere pubblicamente.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Seleziona dall'elenco gli elementi da rimuovere.
+3. Fai clic su **Sanitizza PDF**.
+4. Scarica il file ripulito.
+
+## Opzioni di sanitizzazione
+
+Tutte le opzioni sono attive per impostazione predefinita. Deseleziona quelle che vuoi conservare.
+
+| Opzione | Cosa rimuove |
+| ---------------------------------- | ------------------------------------------------------------------------------- |
+| **Appiattisci moduli** | Converte i campi modulo interattivi in contenuto statico |
+| **Rimuovi metadati** | Elimina autore, titolo, data di creazione, informazioni sul software e dati XMP |
+| **Rimuovi annotazioni** | Elimina commenti, evidenziazioni, note adesive e markup |
+| **Rimuovi JavaScript** | Elimina gli script incorporati che potrebbero essere eseguiti all'apertura |
+| **Rimuovi file incorporati** | Elimina gli allegati incorporati nel PDF |
+| **Rimuovi livelli (OCG)** | Appiattisce i gruppi di contenuto opzionale in un unico livello |
+| **Rimuovi collegamenti** | Elimina i collegamenti ipertestuali e i riferimenti a URL |
+| **Rimuovi albero della struttura** | Rimuove la struttura del documento usata per i tag di accessibilità |
+| **Rimuovi MarkInfo** | Elimina le informazioni sul contenuto contrassegnato |
+| **Rimuovi font** | Rimuove i dati dei font incorporati (da usare con cautela) |
+
+## Casi d'uso
+
+- Preparare un PDF per la pubblicazione eliminando i metadati interni (nomi degli autori, versioni del software, cronologia delle modifiche)
+- Rimuovere JavaScript da un PDF ricevuto da una fonte non attendibile prima di aprirlo
+- Ripulire un PDF prima di inviarlo a un cliente che non deve vedere commenti incorporati o nomi dei campi modulo
+- Eliminare i livelli nascosti da un disegno architettonico prima di condividere la versione finale
+- Rispettare i requisiti di minimizzazione dei dati previsti dalle normative sulla privacy
+
+## Suggerimenti
+
+- Lascia deselezionato "Rimuovi font" a meno che tu non sia certo che il PDF verrà comunque visualizzato correttamente. Rimuovere i font può rendere il testo invisibile in alcuni visualizzatori.
+- Se ti serve solo eliminare i metadati, lo strumento dedicato Rimuovi metadati è più rapido e mirato.
+- La sanitizzazione è irreversibile. Conserva il file originale.
+
+## Strumenti correlati
+
+- [Rimuovi metadati](./remove-metadata): elimina solo i metadati senza toccare il resto del contenuto
+- [Appiattisci PDF](./flatten-pdf): appiattisci in particolare moduli e annotazioni
+- [Cripta PDF](./protect-pdf): aggiungi la protezione con password dopo la sanitizzazione
+- [Rasterizza PDF](./rasterize-pdf): l'opzione drastica, converte in immagini per eliminare ogni contenuto nascosto
diff --git a/docs/it/tools/scanner-effect.md b/docs/it/tools/scanner-effect.md
new file mode 100644
index 00000000..477d797d
--- /dev/null
+++ b/docs/it/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Effetto scanner
+description: Fai sembrare il tuo PDF un documento scansionato con rumore, rotazione, sfocatura e invecchiamento della carta regolabili.
+---
+
+# Effetto scanner
+
+Trasforma un PDF digitale pulito in qualcosa che sembra uscito da uno scanner piano. Lo strumento applica rumore, leggera rotazione, sfocatura, variazioni di luminosità e un ingiallimento facoltativo configurabili, per simulare le imperfezioni di una scansione fisica.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. L'editor si apre con un'anteprima in tempo reale della prima pagina accanto a un pannello delle impostazioni.
+3. Regola i parametri dell'effetto scansione con i cursori e gli interruttori.
+4. L'anteprima si aggiorna in tempo reale mentre modifichi le impostazioni.
+5. Fai clic su **Applica** per elaborare tutte le pagine e scaricare il risultato.
+
+## Opzioni
+
+- **Spazio colore (interruttore Scala di grigi)**: converte l'output in scala di grigi per il classico aspetto di una scansione in bianco e nero.
+- **Bordo**: aggiunge un sottile bordo scuro attorno ai margini della pagina per imitare gli artefatti di bordo dello scanner.
+- **Rotazione**: applica una leggera rotazione (da -5 a +5 gradi) per simulare un'alimentazione della carta non allineata.
+- **Variazione della rotazione**: aggiunge una variazione casuale all'angolo di rotazione, così ogni pagina si inclina in modo leggermente diverso.
+- **Luminosità**: sposta la luminosità complessiva verso l'alto o verso il basso.
+- **Contrasto**: regola il contrasto per simulare le variazioni di qualità del toner.
+- **Sfocatura**: applica una sfocatura gaussiana per ammorbidire i bordi del testo come in una scansione di bassa qualità.
+- **Rumore**: aggiunge rumore casuale ai pixel per simulare la grana del sensore dello scanner. Valori più alti producono un risultato più granuloso.
+- **Ingiallimento**: aggiunge una tinta gialla calda per simulare carta invecchiata o riciclata.
+- **Risoluzione**: imposta i DPI dell'output. Valori più bassi creano un aspetto più pixelato, tipico di una scansione.
+- **Reimposta**: ripristina tutte le impostazioni ai valori predefiniti.
+
+## Funzionalità
+
+- Anteprima in tempo reale che si aggiorna a ogni modifica dei parametri
+- Variazione casuale della rotazione per ogni pagina, per un risultato realistico
+- Dieci parametri regolabili in modo indipendente
+- Modalità scala di grigi per un autentico output di scansione in bianco e nero
+- Controllo della risoluzione, dalla qualità di un fax a bassi DPI a quella di un archivio ad alti DPI
+
+## Casi d'uso
+
+- Far sembrare scansionati e stampati dei documenti creati in digitale
+- Simulare l'invecchiamento fisico dei documenti per ricreare documenti storici
+- Mettere alla prova i software OCR con scansioni di qualità degradata
+- Produrre documenti che corrispondano allo stile visivo di archivi di scansioni esistenti
+
+## Suggerimenti
+
+- Parti da valori leggeri. Un livello di rumore di 10-20, una leggera rotazione di 0,5 gradi e una sfocatura minima bastano già per un aspetto da scansione convincente.
+- Combina la modalità scala di grigi con un leggero ingiallimento per l'effetto "fotocopia di una fotocopia".
+- Le risoluzioni più basse (100-150 DPI) creano l'aspetto più realistico da fax.
+
+## Strumenti correlati
+
+- [Inverti Colori](./invert-colors)
+- [Regola colori](./adjust-colors)
+- [Colore di Sfondo](./background-color)
diff --git a/docs/it/tools/sign-pdf.md b/docs/it/tools/sign-pdf.md
new file mode 100644
index 00000000..e82f58c2
--- /dev/null
+++ b/docs/it/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Firma PDF
+description: Disegna, digita o carica una firma e posizionala sulle pagine del tuo PDF con un visualizzatore integrato.
+---
+
+# Firma PDF
+
+Aggiungi la tua firma a qualsiasi documento PDF. Lo strumento incorpora un visualizzatore PDF completo con strumenti di firma integrati: puoi disegnare la firma a mano libera, digitare il tuo nome con un carattere da firma o caricare l'immagine di una firma. Posiziona e ridimensiona le firme su qualsiasi pagina, poi salva il documento firmato.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Il documento si apre in un visualizzatore PDF integrato con strumenti di annotazione.
+3. Usa lo strumento firma del visualizzatore per creare la tua firma disegnandola, digitandola o caricando un'immagine.
+4. Fai clic sulla pagina nel punto in cui vuoi inserire la firma e regolane dimensioni e posizione.
+5. Se vuoi, seleziona **Appiattisci PDF** per incorporare in modo permanente la firma nel documento.
+6. Fai clic su **Salva e scarica il PDF firmato** per ottenere il file firmato.
+
+## Opzioni
+
+- **Appiattisci PDF**: se selezionata, la firma viene incorporata in modo permanente nel contenuto della pagina. Questo impedisce ad altri di spostarla o eliminarla. Se deselezionata, la firma resta un'annotazione modificabile nei visualizzatori compatibili.
+
+## Funzionalità
+
+- Tre metodi per creare la firma: disegno a mano libera, testo digitato o immagine caricata
+- Visualizzatore PDF integrato per un posizionamento preciso
+- Trascina per posizionare e ridimensionare le firme su qualsiasi pagina
+- Appiattimento facoltativo per incorporare le firme in modo permanente
+- Supporto per più firme nello stesso documento
+
+## Casi d'uso
+
+- Firmare contratti, accordi o moduli di approvazione prima di rimandarli indietro
+- Aggiungere la tua firma a documenti fiscali, richieste di risarcimento assicurative o moduli della pubblica amministrazione
+- Apporre le sigle sulle singole pagine di un accordo di più pagine
+- Firmare NDA o documenti delle risorse umane che arrivano come allegati PDF
+
+## Suggerimenti
+
+- Attiva l'appiattimento se invii il PDF firmato a qualcuno che non deve poter rimuovere o spostare la tua firma.
+- Per le firme digitali legalmente vincolanti con verifica basata su certificato, BentoPDF offre anche uno strumento separato, Firma digitale PDF.
+- Carica un'immagine PNG della firma con sfondo trasparente per il risultato più pulito.
+
+## Strumenti correlati
+
+- [Editor PDF](./edit-pdf)
+- [Aggiungi Timbri](./add-stamps)
+- [Compilatore Moduli PDF](./form-filler)
diff --git a/docs/it/tools/split-pdf.md b/docs/it/tools/split-pdf.md
new file mode 100644
index 00000000..f425905f
--- /dev/null
+++ b/docs/it/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Dividi PDF
+description: Dividi un PDF in file più piccoli per intervallo di pagine, selezione visiva, segnalibri, pagine pari/dispari o intervalli fissi.
+---
+
+# Dividi PDF
+
+Suddividi un PDF in documenti più piccoli con una delle sei modalità di divisione. Dai semplici intervalli di pagine alla divisione basata sui segnalibri, questo strumento copre ogni scenario per dividere un documento.
+
+## Come funziona
+
+1. Carica un singolo file PDF.
+2. Scegli una modalità di divisione dal menu a discesa.
+3. Configura le opzioni specifiche della modalità (intervalli di pagine, selezioni e così via).
+4. Fai clic sul pulsante di elaborazione.
+5. Il risultato viene scaricato come singolo PDF o come archivio ZIP, a seconda della modalità e delle impostazioni.
+
+## Modalità di divisione
+
+| Modalità | Descrizione |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **Intervallo** | Inserisci intervalli di pagine come `1-3, 5, 8-10`. Più intervalli producono PDF separati in uno ZIP. Un singolo intervallo produce un solo PDF. |
+| **Selezione visiva** | Sfoglia le miniature delle pagine e fai clic per selezionare quelle che vuoi. Le pagine selezionate vengono estratte in un nuovo PDF. |
+| **Pari / Dispari** | Estrae solo le pagine con numero pari o dispari. |
+| **Tutte le pagine** | Divide ogni pagina in un file PDF a sé, scaricato come ZIP. |
+| **Segnalibri** | Divide ai confini dei segnalibri. Scegli il livello dei segnalibri per controllare dove avvengono le divisioni. |
+| **Ogni N pagine** | Divide in blocchi di N pagine ciascuno (ad es. ogni 5 pagine). L'ultimo blocco può avere meno pagine. |
+
+## Funzionalità
+
+- Sei modalità di divisione distinte che coprono praticamente ogni caso d'uso
+- Selettore visivo delle pagine con miniature caricate in modo differito
+- Divisione basata sui segnalibri con filtro per livello
+- Opzione di output ZIP per le modalità Intervallo e Selezione visiva
+- Gestisce intervalli di pagine con sintassi mista (`1-3, 5, 8-10`)
+- Avviso quando la divisione per N pagine produce blocchi non uniformi
+
+## Casi d'uso
+
+- Estrarre un capitolo o una sezione specifica da un documento di grandi dimensioni
+- Separare le pagine pari e dispari per i flussi di stampa fronte/retro
+- Suddividere il PDF di un libro in file dei singoli capitoli ai confini dei segnalibri
+- Isolare pagine specifiche (come la pagina delle firme) da un contratto
+- Dividere un report compilato in file per sezione da distribuire
+
+## Suggerimenti
+
+- Più intervalli di pagine separati da virgole (ad es. `1-5, 10-15, 20-25`) producono PDF separati, uno per intervallo, raccolti in uno ZIP.
+- La modalità di divisione per segnalibri richiede che il PDF contenga effettivamente dei segnalibri. Se non ne vengono trovati, riceverai un messaggio di errore.
+- La casella "Scarica come ZIP" nelle modalità Intervallo e Selezione visiva ti permette di ottenere un PDF per ogni pagina anziché un file combinato.
+
+## Strumenti correlati
+
+- [Unisci PDF](./merge-pdf)
+- [Estrai Pagine](./extract-pages)
+- [Elimina Pagine](./delete-pages)
+- [Strumento PDF multifunzione](./pdf-multi-tool)
diff --git a/docs/it/tools/svg-to-pdf.md b/docs/it/tools/svg-to-pdf.md
new file mode 100644
index 00000000..c77a2404
--- /dev/null
+++ b/docs/it/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG in PDF
+description: Converti la grafica vettoriale SVG in PDF con controllo della qualità, interamente nel tuo browser.
+---
+
+# SVG in PDF
+
+Converti i file Scalable Vector Graphics (SVG) in PDF. Lo strumento rasterizza ogni SVG con il motore di rendering del browser, poi incorpora il risultato alla sua risoluzione nativa. È utile per trasformare icone vettoriali, diagrammi e illustrazioni in documenti portabili.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :--------- |
+| SVG | `.svg` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina uno o più file SVG.
+2. Controlla e gestisci l'elenco dei file.
+3. Scegli un livello di **Qualità PDF**.
+4. Fai clic su **Converti in PDF**. Il risultato viene scaricato come `from_svgs.pdf`.
+
+Ogni SVG viene letto come testo, disegnato su un canvas con la sua larghezza e altezza intrinseche (800x600 se non sono specificate dimensioni) ed esportato come PNG. Quel PNG viene poi incorporato nel PDF con pdf-lib. Le aree trasparenti vengono riempite con uno sfondo bianco.
+
+## Opzioni
+
+**Qualità PDF** controlla la compressione dopo la rasterizzazione:
+
+- **Qualità alta**: il più vicino possibile al rendering originale.
+- **Qualità media** (predefinita): buon equilibrio.
+- **Qualità bassa**: file più piccolo, con una certa perdita di dettaglio.
+
+## Casi d'uso
+
+- Convertire diagrammi di architettura o ingegneria da SVG a un PDF pronto per la stampa
+- Raccogliere set di icone in un PDF di riferimento per un design system
+- Trasformare visualizzazioni di dati (D3.js, esportazioni di librerie di grafici) in PDF pronti per i report
+- Creare versioni stampabili di infografiche basate su SVG
+
+## Suggerimenti
+
+- I file SVG senza attributi `width` e `height` espliciti vengono elaborati a 800x600 pixel. Per risultati migliori, imposta le dimensioni nel sorgente SVG prima della conversione.
+- Gli SVG complessi con riferimenti a font esterni o immagini collegate potrebbero non essere elaborati perfettamente. Incorpora tutte le risorse nell'SVG per un output affidabile.
+- Poiché l'SVG viene rasterizzato, il PDF conterrà un'immagine bitmap anziché tracciati vettoriali. Per un vero output PDF vettoriale serve uno strumento vettoriale dedicato.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [PNG in PDF](./png-to-pdf)
+- [BMP in PDF](./bmp-to-pdf)
diff --git a/docs/it/tools/table-of-contents.md b/docs/it/tools/table-of-contents.md
new file mode 100644
index 00000000..fc2af27d
--- /dev/null
+++ b/docs/it/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Indice
+description: Genera una pagina di indice formattata a partire dai segnalibri esistenti del tuo PDF.
+---
+
+# Indice
+
+Questo strumento legge i segnalibri (struttura) del tuo PDF e genera una pagina di indice formattata che viene anteposta al documento. Se il tuo PDF ha già dei segnalibri ma non una pagina di indice visibile, questo strumento ne crea una automaticamente.
+
+## Come funziona
+
+1. Carica un PDF che contiene segnalibri.
+2. Personalizza il titolo dell'indice, la dimensione e la famiglia del carattere.
+3. Se vuoi, seleziona **Aggiungi segnalibro per la pagina dell'indice** per includere l'indice stesso nell'albero dei segnalibri.
+4. Fai clic su **Genera indice** per elaborare il file.
+5. Il PDF aggiornato viene scaricato automaticamente con la pagina dell'indice inserita all'inizio.
+
+## Opzioni
+
+- **Titolo dell'indice**: l'intestazione mostrata in cima alla pagina generata. Il valore predefinito è "Indice".
+- **Dimensione del carattere**: da 10 pt a 72 pt. Il valore predefinito è 12 pt.
+- **Famiglia di caratteri**: scegli tra le varianti Times Roman, Helvetica o Courier (normale, grassetto, corsivo, grassetto corsivo). Il valore predefinito è Helvetica.
+- **Aggiungi segnalibro per la pagina dell'indice**: se selezionata, nell'albero della struttura del PDF viene aggiunta una voce di segnalibro per la pagina dell'indice stessa.
+
+## Funzionalità
+
+- Legge l'intera gerarchia dei segnalibri del PDF
+- Genera una pagina di indice ben formattata con i riferimenti ai numeri di pagina
+- Supporta livelli di segnalibri annidati con rientri
+- Scelta tra 12 font PDF integrati
+- Segnalibro autoreferenziale facoltativo per la pagina dell'indice
+
+## Casi d'uso
+
+- Aggiungere un indice stampabile a e-book o report che hanno solo segnalibri digitali
+- Creare un indice per un documento unito dopo aver combinato più PDF
+- Generare una pagina di riferimento per lunghi manuali tecnici
+- Preparare documenti per la stampa in cui è previsto un indice visibile
+
+## Suggerimenti
+
+- Se il tuo PDF non ha segnalibri, usa prima lo strumento [Modifica Segnalibri](./bookmark) per crearli, poi torna qui per generare l'indice.
+- Per i documenti grandi, una dimensione del carattere maggiore, come 14 pt o 16 pt, migliora la leggibilità.
+
+## Strumenti correlati
+
+- [Modifica Segnalibri](./bookmark)
+- [Numeri di Pagina](./page-numbers)
+- [Intestazione e Piè di Pagina](./header-footer)
diff --git a/docs/it/tools/text-color.md b/docs/it/tools/text-color.md
new file mode 100644
index 00000000..c2585618
--- /dev/null
+++ b/docs/it/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Cambia colore testo
+description: Cambia il colore di tutto il testo del tuo PDF con qualsiasi colore a tua scelta.
+---
+
+# Cambia colore testo
+
+Sostituisci il colore del testo in tutto il tuo PDF. Lo strumento individua le aree di testo in ogni pagina e le ricolora con il colore scelto, mantenendo il layout del documento e i contenuti che non sono testo.
+
+## Come funziona
+
+1. Carica il tuo file PDF.
+2. Scegli un nuovo colore del testo con il selettore di colore. Il valore predefinito è il blu (#0000FF).
+3. Fai clic su **Cambia Colore Testo** per elaborare.
+4. Il PDF ricolorato viene scaricato automaticamente. Un indicatore di avanzamento mostra quale pagina è in elaborazione.
+
+## Opzioni
+
+- **Nuovo colore del testo**: un selettore di colore per scegliere il colore che sostituirà quello di tutto il testo del documento.
+
+## Funzionalità
+
+- Ricolora il testo di ogni pagina del documento
+- Elaborazione pagina per pagina con indicazione dell'avanzamento
+- Selettore di colore con pieno supporto dei colori esadecimali
+- Conserva il layout della pagina e gli elementi che non sono testo
+
+## Casi d'uso
+
+- Cambiare il testo nero in blu scuro per un aspetto del documento più morbido e moderno
+- Ricolorare il testo per rispettare le linee guida del marchio prima di distribuire i documenti
+- Convertire il testo in un colore specifico per la conformità all'accessibilità
+- Rendere visibile il testo su un colore di sfondo appena applicato
+
+## Suggerimenti
+
+- Questo strumento elabora le pagine a scala 2x per mantenere la qualità, poi ricostruisce il PDF. L'output è basato su immagini, quindi il testo non sarà più selezionabile né ricercabile.
+- Per i documenti in cui devi mantenere il testo selezionabile, valuta di modificare direttamente il PDF con l'[Editor PDF](./edit-pdf).
+- Il tempo di elaborazione aumenta con il numero di pagine, perché ogni pagina viene elaborata singolarmente.
+
+## Strumenti correlati
+
+- [Colore di Sfondo](./background-color)
+- [Inverti Colori](./invert-colors)
+- [Regola colori](./adjust-colors)
diff --git a/docs/it/tools/tiff-to-pdf.md b/docs/it/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..832980c7
--- /dev/null
+++ b/docs/it/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF in PDF
+description: Converti immagini TIFF singole e multipagina in formato PDF nel tuo browser, con supporto completo delle pagine.
+---
+
+# TIFF in PDF
+
+Converti i file TIFF in PDF, inclusi i TIFF multipagina. Ogni pagina (o "IFD") di un file TIFF diventa una pagina separata nel PDF di output. È particolarmente utile per documenti scansionati, fax e immagini mediche, che sono spesso archiviati come TIFF multipagina.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file TIFF.
+2. Controlla l'elenco dei file e gestiscilo come preferisci.
+3. Fai clic su **Converti in PDF**. Il risultato viene scaricato come `from_tiff.pdf`.
+
+Lo strumento decodifica ogni file TIFF con un decodificatore TIFF in JavaScript, estraendo i dati grezzi dei pixel RGBA di ogni pagina. Ogni pagina viene disegnata su un canvas, esportata come PNG e incorporata nel PDF. Le dimensioni delle pagine corrispondono a quelle delle pagine TIFF originali.
+
+## Opzioni
+
+Questo strumento non offre impostazioni di qualità aggiuntive. Le immagini vengono incorporate alla loro risoluzione nativa.
+
+## Casi d'uso
+
+- Convertire documenti fax multipagina (TIFF-F) in un formato PDF più portabile
+- Trasformare archivi di documenti scansionati, conservati come TIFF, in PDF ricercabili (combinando poi lo strumento OCR)
+- Elaborare file di imaging medico (vetrini di patologia, esportazioni di radiologia) in formato TIFF
+- Convertire immagini TIFF GIS o satellitari in documenti condivisibili
+
+## Suggerimenti
+
+- I TIFF multipagina sono pienamente supportati. Un TIFF di 10 pagine produce un PDF di 10 pagine. Non serve dividere prima il TIFF.
+- I file TIFF molto grandi (centinaia di megabyte) possono richiedere più tempo, perché l'intero file deve essere decodificato nella memoria del browser.
+- Se ti serve l'OCR sul PDF risultante, passalo dallo strumento [OCR PDF](./ocr-pdf) dopo la conversione.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [BMP in PDF](./bmp-to-pdf)
+- [JPG in PDF](./jpg-to-pdf)
diff --git a/docs/it/tools/txt-to-pdf.md b/docs/it/tools/txt-to-pdf.md
new file mode 100644
index 00000000..5a5fd1e2
--- /dev/null
+++ b/docs/it/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Testo in PDF
+description: Converti file di testo semplice o testo digitato in PDF con font, colori e formati di pagina personalizzati.
+---
+
+# Testo in PDF
+
+Converti il testo semplice in un PDF formattato. Puoi caricare file `.txt` oppure digitare direttamente nell'editor di testo integrato. Lo strumento supporta più font, colori del testo personalizzati e un'ampia gamma di formati di pagina, da A0 fino ad A10, oltre a US Letter, Legal e Tabloid.
+
+## Formati supportati
+
+| Input | Estensioni |
+| :--------------------- | :--------------------------- |
+| File di testo semplice | `.txt` |
+| Inserimento diretto | Digita o incolla nell'editor |
+
+## Come funziona
+
+1. Scegli la modalità di input con l'interruttore in alto: **Carica file** o **Digita testo**.
+2. Se carichi file, trascinali oppure fai clic per selezionare uno o più file `.txt`. Se digiti, inserisci il testo direttamente nell'area di testo.
+3. Configura le opzioni di formattazione: famiglia di caratteri, dimensione del carattere, colore del testo e formato di pagina.
+4. Fai clic su **Crea PDF**. L'output viene scaricato come `text_to_pdf.pdf`.
+
+Quando carichi più file, i loro contenuti vengono concatenati con righe vuote in mezzo.
+
+## Opzioni
+
+| Opzione | Valori | Predefinito |
+| :------------------------ | :----------------------------------------------------------------------- | :------------- |
+| **Famiglia di caratteri** | Helvetica (sans-serif), Tiro (serif), Courier (monospace), Times (serif) | Helvetica |
+| **Dimensione carattere** | 6 - 72 pt | 12 |
+| **Colore del testo** | Qualsiasi colore tramite il selettore | Nero (#000000) |
+| **Formato di pagina** | ISO A0-A10, B0-B10, C0-C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Le lingue RTL (arabo, ebraico, persiano, urdu) vengono rilevate automaticamente. Quando viene trovato testo RTL, la direzione e l'allineamento del testo cambiano di conseguenza.
+
+## Casi d'uso
+
+- Convertire frammenti di codice o file di log in un PDF stampabile con il font Courier
+- Creare al volo un PDF da appunti di una riunione digitati sul momento
+- Formattare un manoscritto in testo semplice con un font e un formato di pagina specifici per l'invio
+- Produrre una versione PDF di un README o di un changelog per la distribuzione offline
+
+## Suggerimenti
+
+- Usa la modalità **Digita testo** quando vuoi convertire rapidamente il contenuto degli appunti senza salvarlo prima in un file.
+- Courier (monospace) è la scelta migliore per codice, log o qualsiasi contenuto in cui conta l'allineamento delle colonne.
+- I margini della pagina sono fissi a 72 punti (1 pollice) su tutti i lati.
+
+## Strumenti correlati
+
+- [Markdown in PDF](./markdown-to-pdf)
+- [CSV in PDF](./csv-to-pdf)
+- [Word in PDF](./word-to-pdf)
diff --git a/docs/it/tools/unlock-pdf.md b/docs/it/tools/unlock-pdf.md
new file mode 100644
index 00000000..75863d00
--- /dev/null
+++ b/docs/it/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Sblocca PDF
+description: Rimuovi la protezione con password dai PDF crittografati. Supporta la decrittografia in batch con un'unica password per più file.
+---
+
+# Sblocca PDF
+
+Se conosci la password di un PDF crittografato, questo strumento rimuove completamente la crittografia e produce una copia sbloccata che chiunque può aprire senza credenziali. Supporta la decrittografia in batch quando più PDF condividono la stessa password.
+
+## Come funziona
+
+1. Carica uno o più file PDF crittografati.
+2. Inserisci la **password** usata per proteggere i file.
+3. Fai clic su **Decrittografa PDF**.
+4. Un singolo file viene scaricato direttamente. Più file producono un archivio ZIP con tutti i PDF sbloccati.
+
+## Funzionalità
+
+- Decrittografia di singoli file e in batch
+- Gestisce sia le password utente sia quelle del proprietario
+- Produce un output completamente non crittografato, senza restrizioni residue
+- Segnalazione chiara degli errori per password errate o file danneggiati
+- Monitoraggio di successo/errore per ogni file in modalità batch
+
+## Differenze rispetto a Rimuovi Restrizioni
+
+**Decrittografa PDF** richiede la password e rimuove tutta la crittografia. **Rimuovi Restrizioni** agisce sulle restrizioni d'uso (stampa, copia, modifica) e potrebbe non richiedere una password se è stata impostata solo una password del proprietario. Usa Decrittografa quando il PDF non si apre affatto senza password.
+
+## Casi d'uso
+
+- Sbloccare in modo permanente PDF che avevi crittografato in precedenza quando la password non serve più
+- Rimuovere la crittografia da un gruppo di documenti archiviati per un accesso più semplice nel lungo periodo
+- Preparare PDF protetti da password per un sistema di gestione documentale che non supporta i file crittografati
+- Sbloccare i PDF prima di unirli ad altri documenti (molti strumenti di unione non riescono a elaborare input crittografati)
+
+## Suggerimenti
+
+- Il campo password si applica a tutti i file caricati. Se i tuoi PDF hanno password diverse, elaborali in batch separati.
+- Se ricevi l'errore "Password errata", controlla di non aver inserito spazi finali e che il blocco maiuscole non sia attivo.
+- Dopo la decrittografia, l'output non ha alcuna protezione. Ricrittografa con Cripta PDF se vuoi applicare una nuova password.
+
+## Strumenti correlati
+
+- [Cripta PDF](./protect-pdf): applica di nuovo la crittografia con una nuova password
+- [Rimuovi Restrizioni](./remove-restrictions): rimuovi le restrizioni d'uso senza decrittografare del tutto
+- [Modifica permessi](./change-permissions): modifica permessi specifici di un PDF crittografato
diff --git a/docs/it/tools/validate-signature-pdf.md b/docs/it/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..dbb45cd3
--- /dev/null
+++ b/docs/it/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Verifica firma PDF
+description: Verifica le firme digitali nei file PDF. Controlla validità del certificato, identità del firmatario, integrità del documento e stato della catena di fiducia.
+---
+
+# Verifica firma PDF
+
+Carica un PDF firmato e questo strumento estrae ogni firma digitale, identifica il firmatario, controlla la validità del certificato e indica se il documento è stato modificato dopo la firma. Puoi anche fornire un certificato attendibile per verificare la catena della firma.
+
+## Come funziona
+
+1. Carica un file PDF firmato. La verifica parte automaticamente.
+2. Lo strumento mostra un riepilogo: numero di firme trovate e quante sono valide.
+3. Ogni firma ha una scheda dettagliata con nome del firmatario, emittente, date e stato.
+4. Se vuoi, carica un **certificato attendibile** (.pem, .crt, .cer, .der) per verificare la firma rispetto a una specifica radice di fiducia. La nuova verifica parte automaticamente.
+
+## Cosa viene controllato
+
+### Analisi della firma
+
+Lo strumento estrae gli oggetti firma PKCS#7 dal PDF, decodifica la struttura ASN.1 e ricava il certificato X.509 del firmatario insieme all'eventuale catena di certificati incorporata nella firma.
+
+### Validità del certificato
+
+- **Scadenza**: il certificato è attualmente entro il suo periodo di validità?
+- **Rilevamento di autofirma**: il certificato è emesso da sé stesso?
+- **Catena di fiducia**: quando viene fornito un certificato attendibile, il certificato del firmatario risale fino a esso?
+
+### Verifica crittografica
+
+- Lo strumento ricostruisce i byte coperti dal `/ByteRange` della firma, ne calcola l'hash con l'algoritmo dichiarato dal firmatario e confronta il risultato con l'attributo `messageDigest` all'interno della firma.
+- Poi serializza di nuovo gli attributi firmati come DER SET e verifica la firma rispetto alla chiave pubblica del certificato del firmatario.
+- **Una firma è segnalata come valida solo se tutti questi controlli vanno a buon fine.** Se i byte del PDF sono stati modificati dopo la firma, o la firma incorporata non corrisponde alla chiave del firmatario, lo stato mostra "Non valida: verifica crittografica non riuscita" con il motivo specifico.
+
+#### Algoritmi di firma supportati
+
+| Algoritmo | Percorso di verifica |
+| ----------------------- | ---------------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, con fallback su Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` dopo la conversione della firma da DER a IEEE P1363 |
+
+Se una firma usa un algoritmo non presente in questo elenco (ad esempio Ed25519, SM2 o RSA con un OID di digest insolito), la scheda mostra in giallo **"Non verificata: algoritmo di firma non supportato"**, insieme all'OID o al motivo specifico. Si tratta di una distinzione volutamente a tre stati:
+
+- **Valida**: firma verificata crittograficamente rispetto alla chiave pubblica del firmatario.
+- **Non valida**: la verifica è stata eseguita e ha dato esito negativo (byte modificati, chiave non corrispondente).
+- **Non verificata**: lo strumento non ha potuto eseguire la verifica per questo algoritmo. I metadati del certificato vengono comunque mostrati, ma considera la firma come "sconosciuta" e verificala con Adobe Acrobat o `openssl cms -verify`.
+
+### Algoritmi di digest non sicuri
+
+- Le firme che usano **MD5 o SHA-1** sono rifiutate come non valide e contrassegnate con lo stato "Digest non sicuro". Entrambi gli algoritmi hanno attacchi di collisione noti, quindi una firma su un hash SHA-1 o MD5 non offre alcuna garanzia di integrità.
+- SHA-224, SHA-256, SHA-384 e SHA-512 sono tutti accettati.
+
+### Copertura del documento
+
+- **Copertura completa**: la firma copre l'intero file PDF, quindi nessun byte è stato aggiunto o modificato dopo la firma.
+- **Copertura parziale**: la firma copre solo una parte del file. Può indicare modifiche successive alla firma (non necessariamente dolose: i salvataggi incrementali producono una copertura parziale).
+
+## Dettagli della firma
+
+Ogni scheda di firma mostra:
+
+- **Firmato da**: nome comune, organizzazione ed email dal certificato del firmatario
+- **Emittente**: l'autorità di certificazione che ha emesso il certificato del firmatario
+- **Firmato il**: il timestamp incorporato nella firma
+- **Valido dal / Valido fino al**: il periodo di validità del certificato
+- **Motivo**: perché il documento è stato firmato (se indicato)
+- **Luogo**: dove è stato firmato (se indicato)
+- **Stato della copertura**: completa o parziale
+- **Badge di fiducia**: Attendibile oppure Non nella catena di fiducia (solo quando viene fornito un certificato personalizzato)
+
+### Dettagli tecnici
+
+Espandi la sezione dei dettagli tecnici per vedere:
+
+- Numero di serie del certificato del firmatario
+- Algoritmo di digest (SHA-256, SHA-512, ecc.)
+- Algoritmo di firma (RSA con SHA-256, ECDSA con SHA-256, ecc.)
+- Messaggi di errore per le firme non valide
+
+## Casi d'uso
+
+- Verificare un contratto firmato digitalmente prima di controfirmarlo
+- Controllare i documenti firmati per confermare che non siano stati manomessi
+- Verificare se un certificato è scaduto dopo la firma del documento
+- Convalidare le firme rispetto al certificato radice della tua organizzazione
+- Ispezionare i dettagli di firma di documenti governativi o legali
+
+## Suggerimenti
+
+- Un certificato autofirmato non significa che la firma non sia valida: significa che l'identità del firmatario non può essere verificata tramite una terza parte attendibile. È comune per i documenti interni.
+- La copertura parziale non indica sempre una manomissione. Molti flussi di lavoro PDF aggiungono aggiornamenti incrementali (come una seconda firma) che creano una copertura parziale.
+- Carica il certificato radice o intermedio della tua organizzazione come certificato attendibile per ottenere la verifica della catena di fiducia.
+
+## Strumenti correlati
+
+- [Firma digitale](./digital-sign-pdf): firma i PDF con il tuo certificato
+- [Appiattisci PDF](./flatten-pdf): appiattisci un PDF prima di firmarlo per impedire modifiche successive alla firma
+- [Rimuovi metadati](./remove-metadata): ripulisci un PDF prima di applicare una firma
diff --git a/docs/it/tools/view-metadata.md b/docs/it/tools/view-metadata.md
new file mode 100644
index 00000000..73481595
--- /dev/null
+++ b/docs/it/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Visualizza metadati
+description: Ispeziona tutte le proprietà dei metadati di un PDF, comprese informazioni del documento, dati XMP e dettagli strutturali.
+---
+
+# Visualizza metadati
+
+Esamina le proprietà nascoste incorporate in un file PDF. Lo strumento mostra le informazioni del documento (titolo, autore, date), i metadati XMP, le dimensioni delle pagine e altri dati strutturali in un formato leggibile.
+
+## Come funziona
+
+1. Carica un file PDF.
+2. Lo strumento analizza subito il file e mostra tutti i metadati disponibili in sezioni organizzate.
+3. Consulta il dizionario delle informazioni del documento, l'albero dei metadati XMP e le proprietà strutturali.
+4. Non serve alcuna fase di elaborazione: i metadati vengono mostrati appena il file è caricato.
+
+## Funzionalità
+
+- Mostra i campi standard delle informazioni del documento: Titolo, Autore, Oggetto, Parole chiave, Creatore, Produttore
+- Mostra le date di creazione e modifica in un formato leggibile
+- Analizza e visualizza l'intero albero dei metadati XMP con namespace annidati
+- Converte il formato data PDF (`D:20240101120000Z`) in date leggibili
+- Organizzato in sezioni comprimibili per una navigazione più semplice
+
+## Sezioni dei metadati
+
+| Sezione | Contenuto |
+| -------------------------- | ------------------------------------------------------------------------------------------------- |
+| **Informazioni documento** | Titolo, Autore, Oggetto, Parole chiave, Creatore, Produttore, Data di creazione, Data di modifica |
+| **Metadati XMP** | Albero completo dei metadati in formato XML con namespace Dublin Core, XAP, PDF e personalizzati |
+| **Proprietà documento** | Numero di pagine, versione PDF, dimensione del file, stato della crittografia |
+
+## Casi d'uso
+
+- Controllare chi ha creato un PDF e quando è stato modificato l'ultima volta
+- Verificare che i metadati siano impostati correttamente prima di pubblicare un documento
+- Controllare la privacy dei PDF verificando quali informazioni personali sono incorporate
+- Indagare sul software usato per creare o modificare un PDF (tramite il campo Produttore)
+- Rivedere i metadati XMP per la conformità nella gestione delle risorse digitali
+
+## Suggerimenti
+
+- Le stringhe di data PDF che iniziano con `D:` vengono convertite automaticamente nel formato del tuo fuso orario locale.
+- Se i campi dei metadati appaiono vuoti, significa semplicemente che chi ha creato il PDF non li ha impostati. Non tutti i PDF contengono metadati ricchi.
+- Per modificare i metadati dopo averli ispezionati, usa [Modifica Metadati](./edit-metadata). Per rimuoverli del tutto, usa Rimuovi metadati.
+
+## Strumenti correlati
+
+- [Modifica Metadati](./edit-metadata)
+- [Livelli OCG del PDF](./pdf-layers)
+- [Confronta PDF](./compare-pdfs)
diff --git a/docs/it/tools/vsd-to-pdf.md b/docs/it/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..d71fd862
--- /dev/null
+++ b/docs/it/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD in PDF
+description: Converti i diagrammi Microsoft Visio (VSD/VSDX) in PDF nel browser. Gratis, privato, senza bisogno di Visio.
+---
+
+# VSD in PDF
+
+Converti i diagrammi Microsoft Visio in PDF senza installare Visio. I file VSD e VSDX contengono diagrammi di flusso, organigrammi, diagrammi di rete e planimetrie che la maggior parte delle persone non riesce ad aprire. Questo strumento li trasforma in PDF puliti, visualizzabili su qualsiasi dispositivo.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------------ | :--------- | :--------------------------------------------- |
+| Visio binario | `.vsd` | Formato Visio legacy (Visio 2003 e precedenti) |
+| Visio XML | `.vsdx` | Formato Visio moderno (Visio 2013+) |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file VSD o VSDX. Puoi mescolare i due formati nello stesso batch.
+2. Controlla l'elenco dei file. Rimuovi le voci indesiderate con l'icona del cestino, oppure usa **Aggiungi altri file** per aggiungere altri diagrammi.
+3. Fai clic su **Converti in PDF**. Il motore basato su LibreOffice si carica nel browser e trasforma ogni diagramma in un PDF, mantenendo forme, connettori, etichette e layout di pagina.
+4. Un singolo diagramma viene scaricato direttamente come PDF. Più file producono un archivio ZIP chiamato `vsd-to-pdf.zip`.
+
+## Opzioni
+
+Non è richiesta alcuna configurazione. Il convertitore rispetta le dimensioni e l'orientamento di pagina originali del documento Visio.
+
+## Casi d'uso
+
+- Consultare i diagrammi Visio di un collega quando non hai una licenza Visio
+- Includere diagrammi di rete o di architettura nella documentazione di progetto come PDF
+- Stampare organigrammi o flussi di processo come dispense per le riunioni
+- Archiviare vecchi file VSD delle versioni precedenti di Visio in un formato destinato a durare
+
+## Suggerimenti
+
+- I documenti Visio con più pagine producono PDF con più pagine, con ogni pagina Visio associata a una pagina PDF.
+- I file VSDX (il formato moderno basato su XML) in genere vengono convertiti con maggiore fedeltà rispetto ai vecchi file binari VSD.
+- Il motore LibreOffice viene caricato una sola volta per sessione. Aspettati una breve attesa alla prima conversione, con risultati più rapidi sui file successivi.
+
+## Strumenti correlati
+
+- [ODG in PDF](./odg-to-pdf)
+- [PUB in PDF](./pub-to-pdf)
+- [PSD in PDF](./psd-to-pdf)
diff --git a/docs/it/tools/webp-to-pdf.md b/docs/it/tools/webp-to-pdf.md
new file mode 100644
index 00000000..111db146
--- /dev/null
+++ b/docs/it/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP in PDF
+description: Converti le immagini WebP in PDF direttamente nel browser con qualità di compressione regolabile.
+---
+
+# WebP in PDF
+
+Converti il formato immagine WebP di Google in PDF. È particolarmente utile quando hai scaricato dal web immagini in formato WebP e ti servono in un formato più universale per stamparle o condividerle.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :------ | :--------- |
+| WebP | `.webp` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file WebP.
+2. Controlla l'elenco dei file e rimuovi quelli che non ti servono.
+3. Seleziona un livello di **Qualità PDF**.
+4. Fai clic su **Converti in PDF**. L'output viene scaricato come `from_webps.pdf`.
+
+Internamente, ogni immagine WebP viene decodificata tramite l'API canvas del browser e poi incorporata nel PDF con pdf-lib. Questo significa che la conversione funziona su qualsiasi browser che supporti la decodifica WebP (tutti i browser moderni lo fanno).
+
+## Opzioni
+
+**Qualità PDF** controlla la compressione durante l'inserimento delle immagini:
+
+- **Alta qualità**: conserva il massimo dettaglio.
+- **Qualità media** (predefinita): output bilanciato.
+- **Bassa qualità**: dimensione del file più piccola.
+
+## Casi d'uso
+
+- Convertire in un PDF stampabile le immagini scaricate dal web e salvate come WebP
+- Raccogliere in una documentazione gli screenshot WebP di Chrome o Edge
+- Creare un portfolio PDF da immagini esportate da strumenti di design che usano WebP per impostazione predefinita
+- Archiviare le immagini WebP in un formato leggibile più universalmente
+
+## Suggerimenti
+
+- WebP viene decodificato internamente in PNG prima dell'inserimento nel PDF, quindi le immagini WebP lossless mantengono la loro qualità con l'impostazione Alta.
+- Se hai un mix di WebP e altri formati di immagine, usa invece lo strumento [Immagini in PDF](./image-to-pdf): accetta tutto in un colpo solo.
+
+## Strumenti correlati
+
+- [Immagini in PDF](./image-to-pdf)
+- [PNG in PDF](./png-to-pdf)
+- [JPG in PDF](./jpg-to-pdf)
diff --git a/docs/it/tools/word-to-pdf.md b/docs/it/tools/word-to-pdf.md
new file mode 100644
index 00000000..984cd67b
--- /dev/null
+++ b/docs/it/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word in PDF
+description: Converti documenti Word (DOC, DOCX), ODT e RTF in PDF nel browser, conservando tutta la formattazione.
+---
+
+# Word in PDF
+
+Converti i documenti Microsoft Word e i formati compatibili in PDF. Lo strumento usa un motore LibreOffice nel browser che gestisce file DOC, DOCX, ODT e RTF, mantenendo nell'output formattazione, tabelle, immagini, intestazioni, piè di pagina e stili.
+
+## Formati supportati
+
+| Formato | Estensioni |
+| :---------------- | :--------- |
+| Word (moderno) | `.docx` |
+| Word (legacy) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi documenti Word. Puoi selezionare più file contemporaneamente.
+2. Controlla e gestisci l'elenco dei file.
+3. Fai clic su **Converti in PDF**. Il motore LibreOffice si carica al primo utilizzo (un indicatore di avanzamento mostra lo stato dell'inizializzazione), poi ogni file viene convertito.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono raccolti in `word-converted.zip`.
+
+## Opzioni
+
+Questo strumento non ha impostazioni aggiuntive. Il motore LibreOffice genera l'output con il suo profilo di esportazione PDF predefinito.
+
+## Output
+
+| Numero di input | Output |
+| :-------------- | :---------------------------------------------------------------- |
+| 1 file | Download di un singolo PDF (nome originale con estensione `.pdf`) |
+| 2+ file | Archivio ZIP (`word-converted.zip`) con un PDF per ogni file |
+
+## Casi d'uso
+
+- Convertire un curriculum o una lettera di presentazione da DOCX a PDF prima di inviare una candidatura
+- Convertire in batch una serie di contratti o proposte in PDF per la consegna a un cliente
+- Trasformare vecchi file `.doc` in PDF moderni per l'archiviazione a lungo termine
+- Convertire in PDF documenti collaborativi di Google Docs (esportati come DOCX)
+- Produrre PDF pronti per la stampa da modelli Word usati per la generazione automatica di documenti
+
+## Suggerimenti
+
+- Il motore LibreOffice viene scaricato una volta per sessione e memorizzato nella cache. Aspettati qualche secondo di caricamento alla prima conversione, mentre le successive sono molto più rapide.
+- La formattazione complessa (macro, controlli ActiveX, SmartArt avanzati) potrebbe non essere convertita perfettamente. Gli elementi standard di un documento (testo, tabelle, immagini, intestazioni, note a piè di pagina) vengono convertiti in modo affidabile.
+- Poiché questo strumento accetta anche ODT e RTF, puoi usarlo come convertitore unico per tutti i formati di elaborazione testi.
+
+## Strumenti correlati
+
+- [ODT in PDF](./odt-to-pdf)
+- [RTF in PDF](./rtf-to-pdf)
+- [Excel in PDF](./excel-to-pdf)
+- [PowerPoint in PDF](./powerpoint-to-pdf)
diff --git a/docs/it/tools/wpd-to-pdf.md b/docs/it/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..c41ac429
--- /dev/null
+++ b/docs/it/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD in PDF
+description: Converti i documenti WordPerfect (WPD) in PDF nel browser con LibreOffice. Gratis e privato.
+---
+
+# WPD in PDF
+
+Converti i documenti Corel WordPerfect in file PDF. WPD è stato per anni il formato di elaborazione testi dominante negli studi legali e negli enti pubblici. Se hai vecchi file WordPerfect che i software moderni non riescono ad aprire, questo strumento li riporta in vita come PDF standard.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :---------- | :--------- | :------------------------------------------ |
+| WordPerfect | `.wpd` | Tutte le principali versioni di WordPerfect |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file WPD. Puoi selezionare più file contemporaneamente.
+2. Controlla l'elenco dei file. Rimuovi i file indesiderati con l'icona del cestino, oppure usa **Aggiungi altri file** per aggiungere altri documenti.
+3. Fai clic su **Converti in PDF**. Lo strumento carica nel browser un motore di conversione basato su LibreOffice, che analizza il formato WPD e produce il PDF.
+4. Un singolo file viene scaricato direttamente come PDF. Le conversioni in batch producono un archivio ZIP chiamato `wpd-to-pdf.zip`.
+
+## Opzioni
+
+Non è richiesta alcuna configurazione. Il motore LibreOffice gestisce automaticamente formattazione, font e layout WPD.
+
+## Casi d'uso
+
+- Aprire documenti legali vecchi di decenni scritti in WordPerfect
+- Convertire pratiche governative archiviate da WPD a un formato moderno
+- Migrare una vecchia libreria di documenti WordPerfect in PDF per l'archiviazione a lungo termine
+- Condividere file WPD con destinatari che non hanno Corel WordPerfect installato
+
+## Suggerimenti
+
+- Il motore LibreOffice si carica al primo utilizzo, e ci vuole un momento. Le conversioni successive nella stessa sessione sono più rapide.
+- Le macro WPD complesse e i codici rivelati non vengono mantenuti, ma layout visivo, contenuto testuale e formattazione di base passano nel PDF.
+
+## Strumenti correlati
+
+- [WPS in PDF](./wps-to-pdf)
+- [ODG in PDF](./odg-to-pdf)
diff --git a/docs/it/tools/wps-to-pdf.md b/docs/it/tools/wps-to-pdf.md
new file mode 100644
index 00000000..17626271
--- /dev/null
+++ b/docs/it/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS in PDF
+description: Converti i documenti Microsoft Works (WPS) in PDF nel browser. Gratis, senza registrazione, completamente privato.
+---
+
+# WPS in PDF
+
+Converti i file di elaborazione testi di Microsoft Works in PDF. Microsoft Works era incluso nei PC di largo consumo tra la fine degli anni '90 e gli anni 2000, e molti file WPS si trovano ancora su vecchi dischi rigidi e archivi di posta. Questo strumento li apre nel browser e produce PDF puliti.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :-------------- | :--------- | :-------------------------------------------- |
+| Microsoft Works | `.wps` | File di elaborazione testi di Microsoft Works |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file WPS. Sono accettati più file.
+2. Controlla l'elenco dei file. Usa l'icona del cestino per rimuovere singoli file, oppure fai clic su **Aggiungi altri file** per ampliare il batch.
+3. Fai clic su **Converti in PDF**. Un motore basato su LibreOffice si carica nel browser e converte ogni documento WPS in PDF.
+4. Un file viene scaricato direttamente come PDF. Più file vengono raccolti in un archivio ZIP chiamato `wps-to-pdf.zip`.
+
+## Opzioni
+
+Non servono impostazioni aggiuntive. Il convertitore gestisce testo, formattazione di base e immagini incorporate del file WPS.
+
+## Casi d'uso
+
+- Recuperare vecchi documenti di scuola o lavoro salvati in formato Microsoft Works
+- Aprire allegati WPS ricevuti via email quando non hai Microsoft Works installato
+- Convertire un archivio di file WPS per migrarlo a un moderno sistema documentale
+- Stampare documenti legacy che gli attuali programmi di elaborazione testi non riescono ad aprire
+
+## Suggerimenti
+
+- Non confondere i file `.wps` di Microsoft Works con i file di WPS Office. Questo strumento è pensato specificamente per il vecchio formato Microsoft Works.
+- Il motore LibreOffice impiega un momento a caricarsi al primo utilizzo. Una volta caricato, le conversioni successive nella stessa sessione sono più rapide.
+
+## Strumenti correlati
+
+- [WPD in PDF](./wpd-to-pdf)
+- [PUB in PDF](./pub-to-pdf)
diff --git a/docs/it/tools/xml-to-pdf.md b/docs/it/tools/xml-to-pdf.md
new file mode 100644
index 00000000..b628a78c
--- /dev/null
+++ b/docs/it/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML in PDF
+description: Converti i file XML in documenti PDF strutturati nel browser. Gratis, privato, nessuna elaborazione sul server.
+---
+
+# XML in PDF
+
+Converti i file di dati XML in documenti PDF leggibili e strutturati. L'XML grezzo è potente ma difficile da leggere per le persone. Questo strumento analizza l'albero XML, individua le strutture di dati ripetute e le trasforma in tabelle e sezioni formattate in un PDF A4 orizzontale.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------ | :--------- | :----------------------------- |
+| XML | `.xml` | Qualsiasi documento XML valido |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file XML. Puoi elaborare più file in un unico batch.
+2. Controlla l'elenco dei file. Rimuovi i file indesiderati con l'icona del cestino, oppure fai clic su **Aggiungi altri file** per includerne altri.
+3. Fai clic su **Converti in PDF**. Lo strumento analizza la struttura XML con il DOMParser integrato nel browser, esamina la gerarchia dei dati e la trasforma in un PDF usando jsPDF con formattazione auto-table.
+4. Un singolo file viene scaricato come PDF. Più conversioni vengono raccolte in `xml-to-pdf.zip`.
+
+## Opzioni
+
+Non è richiesta alcuna configurazione manuale. Il convertitore rileva automaticamente la struttura XML e sceglie layout di tabella adatti. L'output usa l'orientamento A4 orizzontale per ospitare insiemi di dati ampi.
+
+## Casi d'uso
+
+- Trasformare esportazioni di dati XML da database o API in report stampabili
+- Creare riepiloghi leggibili da file di configurazione XML
+- Convertire fatture o registri di transazioni in formato XML in PDF da conservare
+- Rendere leggibili in forma di documento sitemap XML o feed RSS
+
+## Suggerimenti
+
+- L'XML deve essere ben formato. Se il parser incontra errori di sintassi, la conversione non riesce e mostra un messaggio d'errore descrittivo che indica il problema.
+- Le strutture XML con annidamento profondo vengono appiattite in tabelle. Per ottenere i risultati migliori, i dati dovrebbero avere elementi fratelli ripetuti con elementi figli coerenti.
+- Durante la conversione compaiono aggiornamenti di avanzamento che mostrano ogni fase: lettura, analisi, esame e rendering.
+
+## Strumenti correlati
+
+- [FB2 in PDF](./fb2-to-pdf)
+- [XPS in PDF](./xps-to-pdf)
+- [Email in PDF](./email-to-pdf)
diff --git a/docs/it/tools/xps-to-pdf.md b/docs/it/tools/xps-to-pdf.md
new file mode 100644
index 00000000..d99175d9
--- /dev/null
+++ b/docs/it/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS in PDF
+description: Converti i documenti XPS e OXPS in PDF nel browser. Nessun caricamento, nessuna registrazione, completamente privato.
+---
+
+# XPS in PDF
+
+Converti i documenti Microsoft XPS e OXPS in normali file PDF. XPS (XML Paper Specification) era la risposta di Microsoft al PDF, ma il suo supporto è diminuito su tutte le piattaforme. Questo strumento rende di nuovo questi documenti leggibili da chiunque.
+
+## Formati supportati
+
+| Formato | Estensione | Note |
+| :------ | :--------- | :-------------------------------------------- |
+| XPS | `.xps` | Formato XPS originale di Microsoft |
+| OXPS | `.oxps` | Open XPS, la variante dello standard ECMA-388 |
+
+## Come funziona
+
+1. Fai clic sull'area di caricamento o trascina i tuoi file XPS/OXPS. Puoi selezionare più file contemporaneamente.
+2. Controlla l'elenco dei file. Rimuovi i singoli file con l'icona del cestino, oppure fai clic su **Aggiungi altri file** per accodare altri documenti.
+3. Fai clic su **Converti in PDF**. Il motore PyMuPDF elabora ogni documento localmente nel tuo browser.
+4. Un singolo file viene scaricato direttamente come PDF. Più file vengono raccolti in un archivio ZIP chiamato `xps-converted.zip`.
+
+## Opzioni
+
+Questo strumento esegue una conversione diretta del formato, senza configurazione aggiuntiva. L'output conserva dimensioni di pagina, grafica vettoriale, font e immagini originali della sorgente XPS.
+
+## Casi d'uso
+
+- Aprire file XPS ricevuti da vecchi sistemi Windows che usavano il driver di stampa XPS come predefinito
+- Convertire documenti OXPS di Windows 10/11 per condividerli con utenti macOS o Linux
+- Archiviare vecchi file XPS in un formato supportato più ampiamente
+- Rendere accessibili a destinatari esterni documenti governativi o aziendali basati su XPS
+
+## Suggerimenti
+
+- Le estensioni `.xps` e `.oxps` vengono gestite entrambe automaticamente: puoi mescolarle nello stesso batch.
+- Se il file XPS originale è stato creato con un driver di stampa ad alta risoluzione, il PDF risultante mantiene quella qualità. Non avviene alcun ricampionamento.
+
+## Strumenti correlati
+
+- [Word in PDF](./word-to-pdf)
+- [XML in PDF](./xml-to-pdf)
diff --git a/docs/ja/contributing.md b/docs/ja/contributing.md
new file mode 100644
index 00000000..c6bf8a5a
--- /dev/null
+++ b/docs/ja/contributing.md
@@ -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
+```
+
+## 新しいツールの追加
+
+### ステップ1:ロジックファイルを作成する
+
+`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
+});
+```
+
+### ステップ2:HTMLページを作成する
+
+既存のツールテンプレートに倣って `src/pages/your-tool.html` を作成します。
+
+### ステップ3:ツールを登録する
+
+`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.',
+}
+```
+
+### ステップ4:ビルド設定に追加する
+
+`vite.config.ts` にページを追加します。
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### ステップ5:翻訳を追加する
+
+`public/locales/` 内のすべてのロケールファイルにエントリを追加します。
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## コードスタイル
+
+- 新しいコードにはすべてTypeScriptを使用する
+- 一貫性のため既存のパターンに従う
+- コミット前に `npm run format` を実行する
+- 本番コードにコメントは書かない(コメントはビルド時に削除されます)
+
+## プルリクエストの手順
+
+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)
+
+## ヘルプ
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Discordコミュニティ](https://discord.gg/Bgq3Ay3f2w)
+
+## ライセンス
+
+BentoPDFはデュアルライセンスです。
+
+- **AGPL-3.0**:ソースコード全体を公開するオープンソースプロジェクト向け
+- **商用ライセンス**:プロプライエタリ/クローズドソースのアプリケーション向け - [$79で永久ライセンスを購入](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+コントリビュートすることで、あなたの貢献がこれらの条件でライセンスされることに同意したものとみなされます。
diff --git a/docs/ja/getting-started.md b/docs/ja/getting-started.md
new file mode 100644
index 00000000..8c7623b9
--- /dev/null
+++ b/docs/ja/getting-started.md
@@ -0,0 +1,80 @@
+# はじめに
+
+BentoPDFへようこそ。このガイドですぐに使い始められます。
+
+## BentoPDFとは?
+
+BentoPDFは、無料でオープンソースの、プライバシーを第一に考えたPDFツールキットで、**すべてブラウザ内で**動作します。ファイルがデバイスの外に出ることはなく、処理はすべてWebAssembly(WASM)技術を使ってローカルで行われます。
+
+## クイックスタート
+
+### オプション1:ホスト版を使う
+
+[bentopdf.com](https://www.bentopdf.com) にアクセスすればすぐに使えます。インストールは不要です。
+
+### オプション2:Dockerでセルフホストする
+
+> [!IMPORTANT]
+> Officeファイルの変換には `SharedArrayBuffer` が必要で、次の両方が求められます。
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - セキュアコンテキスト
+>
+> ブラウザはループバックを信頼できるものとして扱うため、ローカルでのテストでは `http://localhost` が使えます。`http://192.168.x.x` などのLAN 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には2つのビルドがあります。社内・チーム・組織向けのデプロイ用の**セルフホスト版ビルド**(`bentopdf-simple`、上で使用)と、bentopdf.com自体や、公開向けにデプロイする商用ライセンス保持者が使う**商用版ビルド**(`bentopdf:latest`)です。どちらも同じPDFツールを備えており、商用版ビルドにはbentopdf.comのヒーロー、FAQ、お客様の声、フッターが加わります。迷ったらセルフホスト版ビルドを使ってください。
+
+その後、ブラウザで `http://localhost:3000` を開きます。
+
+> [!NOTE]
+> エアギャップ環境でOCRをデプロイする場合は、Tesseractのワーカー、コアランタイム、traineddataファイルに加えて、OCRテキストレイヤー用フォントも社内でホストする必要があります。`VITE_OCR_FONT_BASE_URL` や同梱の `ocr-fonts/` ディレクトリを含む完全な手順は[セルフホスティング](/ja/self-hosting/)に記載されています。
+
+### オプション3:ソースからビルドする
+
+```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+
+
+## 次のステップ
+
+- [すべてのツールを見る](/ja/tools/)
+- [BentoPDFをセルフホストする](/ja/self-hosting/)
+- [プロジェクトにコントリビュートする](/ja/contributing)
diff --git a/docs/ja/index.md b/docs/ja/index.md
new file mode 100644
index 00000000..9fb92be1
--- /dev/null
+++ b/docs/ja/index.md
@@ -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: /ja/getting-started
+ - theme: alt
+ text: ツールを見る
+ link: /ja/tools/
+ - theme: alt
+ text: セルフホスト
+ link: /ja/self-hosting/
+ - theme: alt
+ text: 商用ライセンス
+ link: /ja/licensing
+
+features:
+ - icon: 🔒
+ title: 100%プライベート
+ details: ファイルがデバイスの外に出ることはありません。処理はすべてWebAssemblyを使ってブラウザ内でローカルに行われます。
+ - icon: ⚡
+ title: 高速で無料
+ details: 登録不要、制限なし、透かしなし。無制限のPDF処理をずっと無料で。
+ - icon: 🛠️
+ title: 50以上のツール
+ details: 変換、編集、結合、分割、圧縮、署名、OCRなど。必要なものがすべて1か所に。
+
+ - icon: 🌐
+ title: セルフホスト可能
+ details: 自社のインフラにデプロイできます。Docker、Vercel、Netlify、AWS、さらにセルフホストのOCRワーカー、言語データ、テキストレイヤー用フォントを備えた完全エアギャップ環境にも対応。
+---
+
+## オフラインOCR
+
+エアギャップ環境やオフライン環境にBentoPDFをセルフホストする場合、OCRにはTesseractのワーカーとtraineddataファイルだけでなく、検索可能なPDFの出力に必要なOCRテキストレイヤー用フォントも社内で配信する必要があります。
+`VITE_OCR_FONT_BASE_URL`、同梱の `ocr-fonts/` ディレクトリ、更新されたエアギャップ向けワークフローを含む完全な手順は[セルフホスティング](/ja/self-hosting/)を参照してください。
diff --git a/docs/ja/licensing.md b/docs/ja/licensing.md
new file mode 100644
index 00000000..5f656462
--- /dev/null
+++ b/docs/ja/licensing.md
@@ -0,0 +1,110 @@
+# 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](/ja/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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/ja/self-hosting/apache.md b/docs/ja/self-hosting/apache.md
new file mode 100644
index 00000000..69bbd342
--- /dev/null
+++ b/docs/ja/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Apacheでデプロイする
+
+Apache HTTP Serverを使ってBentoPDFをホストします。
+
+## 前提条件
+
+- Apache 2.4+
+- mod_rewriteが有効
+- SSL証明書(推奨)
+
+## ステップ1:プロジェクトをビルドする
+
+```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
+```
+
+## ステップ2:ファイルをコピーする
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## ステップ3:Apacheの設定
+
+`/etc/apache2/sites-available/bentopdf.conf` を作成します。
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## ステップ4:ルーティング用の.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
+```
+
+## ステップ5:必要なモジュールを有効にする
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## ステップ6:サイトを有効にする
+
+```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
+```
+
+## トラブルシューティング
+
+### WASMの404エラー
+
+MIMEタイプが設定されていることを確認してください。
+
+```apache
+AddType application/wasm .wasm
+```
+
+### PDFへ署名またはフォーム入力で空白のビューアが表示される(`.mjs` のMIMEエラー)
+
+ブラウザのコンソールに次のように表示される場合:
+
+```
+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ビューアは拡張子 `.mjs` のESモジュールファイルを配布していますが、Apache標準の `mime.types` にはデフォルトで含まれていません。
+
+VirtualHostまたは `.htaccess` に追加します。
+
+```apache
+AddType application/javascript .mjs
+```
+
+続いてApacheをリロードします。
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+確認するには、ブラウザのDevToolsの「Network」タブで失敗している `.mjs` のリクエストを探し、レスポンスヘッダー `Content-Type` を確認します。`application/octet-stream` ではなく `application/javascript` になっているはずです。
+
+### リライトが動作しない
+
+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"
+```
+
+セキュアコンテキストも必要です。ローカルでのテストでは `http://localhost` が使えますが、`http://192.168.x.x` などのLAN IPでは通常HTTPSが必要です。ヘッダーが設定されているのに `window.crossOriginIsolated` が `false` のままの場合は、ループバック以外のオリジンでページがプレーンなHTTPで開かれていないか確認してください。
+
+事前圧縮された `.wasm.gz` と `.data.gz` ファイルにも、正しい `Content-Encoding` が必要です。
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+`mod_headers` が有効になっていることを確認してください:`sudo a2enmod headers`
+
+### パーミッションエラー
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/ja/self-hosting/aws.md b/docs/ja/self-hosting/aws.md
new file mode 100644
index 00000000..aa3cdd42
--- /dev/null
+++ b/docs/ja/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# AWS S3 + CloudFrontにデプロイする
+
+最大限の制御とスケーラビリティを求めて、AWS上にBentoPDFをホストします。
+
+## アーキテクチャ
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## ステップ1:S3バケットを作成する
+
+```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
+```
+
+## ステップ2:ビルドしてアップロードする
+
+```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
+```
+
+## ステップ3:CloudFrontディストリビューションを作成する
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+またはAWSコンソールを使います。
+
+1. CloudFront → ディストリビューションを作成 に移動します
+2. オリジンドメイン:S3バケットを選択します
+3. 「Origin Access Control」を有効にします
+4. デフォルトルートオブジェクト:`index.html`
+5. ディストリビューションを作成します
+
+## ステップ3b:レスポンスヘッダーポリシー(LibreOffice WASMに必須)
+
+LibreOfficeベースの変換(Word、Excel、PowerPointからPDFへ)には `SharedArrayBuffer` が必要で、特定のレスポンスヘッダーが求められます。CloudFrontのレスポンスヘッダーポリシーを作成します。
+
+1. CloudFront → ポリシー → レスポンスヘッダー に移動します
+2. 次のヘッダーでカスタムポリシーを作成します。
+
+| ヘッダー | 値 |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. ポリシーをディストリビューションのデフォルトキャッシュビヘイビアにアタッチします
+
+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}
+ ]
+ }
+ }'
+```
+
+## ステップ3c:事前圧縮されたWASMファイルのS3メタデータ
+
+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の変換は約55%で止まります。`.gz` ファイルに正しいContent-Encodingがないと、ブラウザは生のgzipバイトを受け取り、WASMのコンパイルに失敗します。
+:::
+
+## ステップ4:S3バケットポリシー
+
+CloudFrontがバケットにアクセスできるようにします。
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## ステップ5:カスタムエラーページ
+
+SPAのルーティングのため、404で `index.html` を返すように設定します。
+
+1. CloudFront → エラーページ
+2. カスタムエラーレスポンスを作成します。
+ - HTTPエラーコード:404
+ - レスポンスページのパス:`/index.html`
+ - HTTPレスポンスコード: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"
+ }
+}
+```
diff --git a/docs/ja/self-hosting/cloudflare.md b/docs/ja/self-hosting/cloudflare.md
new file mode 100644
index 00000000..345978c2
--- /dev/null
+++ b/docs/ja/self-hosting/cloudflare.md
@@ -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リポジトリを接続します
+
+## ビルド設定
+
+| 設定 | 値 |
+| ------------------------ | --------------- |
+| フレームワークプリセット | None |
+| ビルドコマンド | `npm run build` |
+| ビルド出力ディレクトリ | `dist` |
+| ルートディレクトリ | `/` |
+
+## 環境変数
+
+設定 → 環境変数 で次を追加します。
+
+| 変数 | 値 |
+| ----------------------- | ------------------------------------------ |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false`(任意) |
+| `VITE_BRAND_NAME` | カスタムブランド名(任意) |
+| `VITE_BRAND_LOGO` | `public/` からの相対ロゴパス(任意) |
+| `VITE_FOOTER_TEXT` | カスタムのフッター/著作権テキスト(任意) |
+| `VITE_DEFAULT_LANGUAGE` | デフォルトのUI言語、例:`fr`(任意) |
+
+## 設定ファイル
+
+`public` フォルダに `_headers` を作成します。
+
+```
+# 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 重要
+Word/ODT/Excel/PowerPointからPDFへの変換には、`Cross-Origin-Embedder-Policy` ヘッダーと `Cross-Origin-Opener-Policy` ヘッダーが必要です。これらがないと `SharedArrayBuffer` が使えず、LibreOffice WASMエンジンの初期化に失敗します。
+:::
+
+SPAのルーティング用に `_redirects` を作成します。
+
+```
+/* /index.html 200
+```
+
+## カスタムドメイン
+
+1. Pagesプロジェクトに移動します
+2. 「Custom domains」をクリックします
+3. ドメインを追加します
+4. ドメインがCloudflareにある場合、CloudflareがDNSを自動設定します
+
+## メリット
+
+- **帯域幅無制限で無料**
+- 300以上のエッジロケーションを持つ**グローバルCDN**
+- **自動HTTPS**
+- プルリクエストの**プレビューデプロイ**
+- **高速なビルド**
+
+## トラブルシューティング
+
+### 大きなファイルのアップロード
+
+Cloudflare Pagesは最大25 MBのファイルに対応しています。WASMモジュールは問題ないはずですが、上限に達した場合は次を検討してください。
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Workerのサイズ制限
+
+高度なルーティングにCloudflare Workersを使う場合は、無料プランでは1 MBの制限がある点に注意してください。
+
+## CORSプロキシWorker(デジタル署名用)
+
+デジタル署名ツールが証明書チェーンを取得するには、CORSプロキシが必要です。同梱のWorkerをデプロイします。
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### セキュリティ機能
+
+| 機能 | 説明 |
+| ---------------------------- | ------------------------------ |
+| **URL制限** | 証明書のURLのみ許可 |
+| **ファイルサイズ制限** | 1リクエストあたり最大10MB |
+| **レート制限** | 60リクエスト/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)を参照してください。
diff --git a/docs/ja/self-hosting/cors-proxy.md b/docs/ja/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..2a72a55a
--- /dev/null
+++ b/docs/ja/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# 証明書取得用のCORSプロキシ
+
+デジタル署名ツールは、外部の認証局(CA)から発行者証明書を取得するためにCORSプロキシを使います。多くのCAサーバーはレスポンスにCORSヘッダーを含めないため、ブラウザから直接取得することができません。
+
+さらに、多くのCAサーバーはプレーンなHTTPで証明書を提供しています。BentoPDFのインスタンスをHTTPSでホストしている場合、ブラウザはこれらのHTTPリクエストをブロックします(混合コンテンツポリシー)。CORSプロキシは、適切なヘッダーを付けたHTTPSエンドポイント経由でリクエストを中継することで、この2つの問題を解決します。
+
+## 仕組み
+
+証明書でPDFに署名するとき:
+
+1. `zgapdfsigner` ライブラリが完全な証明書チェーンの構築を試みます
+2. 証明書のAIA(Authority Information Access)拡張に埋め込まれたURLから、発行者証明書を取得します
+3. これらのリクエストは、必要な `Access-Control-Allow-Origin` ヘッダーを追加するCORSプロキシ経由で送られます
+4. プロキシが証明書データをブラウザに返します
+
+## CORSプロキシのセルフホスト
+
+BentoPDFをセルフホストしている場合、チェーンの取得が必要な証明書でデジタル署名を使うには、独自のCORSプロキシをデプロイする必要があります。
+
+### オプション1: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
+ ```
+
+ WorkerのURL(例:`https://bentopdf-cors-proxy.your-subdomain.workers.dev`)を控えておきます。
+
+5. **プロキシURLを指定してBentoPDFを再ビルドする**:
+
+ 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
+ ```
+
+### オプション2:独自のバックエンドプロキシ
+
+独自のプロキシエンドポイントを作ることもできます。要件は次のとおりです。
+
+1. `url` クエリパラメータ付きのGETリクエストを受け付ける
+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のプライベート範囲、リンクローカル、ループバック、10進数IP、クラウドメタデータをブロック |
+| **Content-Typeの安全性** | 安全な証明書のMIMEタイプのみ返し、上流のcontent-typeインジェクションをブロック |
+| **ファイルサイズ制限** | レスポンスを10MBの上限でストリーミングし、超過するとダウンロード途中で中断 |
+| **レート制限** | IPまたはIPv6 /64ごとに1分あたり60リクエスト(KVが必要、KVエラー時はフェイルオープン) |
+| **HMAC署名** | 任意のクライアント側署名(気軽な悪用の抑止) |
+
+### DNSリバインディング(Cloudflare以外でのセルフホスト)
+
+このWorkerは、プライベートまたは内部のIPに解決されるURLをすべて拒否します。証明書チェーンのURLは、その証明書を発行したCA(FNMT、企業のCAなど)を指すため、ホストの固定許可リストは使えず、宛先を事前に把握できません。そのため、リバインディングの小さな隙が残ります。自分のドメインのDNSを運用する人が、安全性チェックには公開IPを、その直後の実際のリクエストにはプライベートIPを返す可能性があります。
+
+Cloudflare上では、WorkersがプライベートIPや `169.254.169.254` のメタデータエンドポイントに到達できないため、悪用はできません。リバインドしても何にも届きません。ただし、Workerに侵入経路を与えないでください。Tunnel、Service、プライベートネットワークのバインディングはアタッチしないでください(必要なのは `RATE_LIMIT_KV` だけです)。
+
+VPC内でCloudflare以外(workerdやNodeなど)で実行する場合、ランタイムは内部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プロキシがオリジンを拒否している**:`cors-proxy-worker.js` の `ALLOWED_ORIGINS` 配列にドメインが含まれているか確認してください
+
+### プロキシからの「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
+- 完全なチェーンを手動で組み立てた証明書
diff --git a/docs/ja/self-hosting/docker.md b/docs/ja/self-hosting/docker.md
new file mode 100644
index 00000000..619b9463
--- /dev/null
+++ b/docs/ja/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Docker / Podmanでデプロイする
+
+本番環境でBentoPDFをセルフホストする最も簡単な方法です。
+
+> [!IMPORTANT]
+> **Officeファイル変換に必要なヘッダー**
+>
+> LibreOfficeベースのツール(Word、Excel、PowerPointの変換)が `SharedArrayBuffer` を使うには、次のHTTPヘッダーが必要です。
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> ページはセキュアコンテキストから配信される必要もあります。ローカルでのテストでは `http://localhost` が使えますが、`http://192.168.x.x` などのLAN IPは通常これに該当しないため、ヘッダーが設定されていてもプレーンなHTTPではOffice変換が失敗します。
+>
+> 公式のコンテナイメージにはこれらのヘッダーが含まれています。リバースプロキシ(Traefik、Caddyなど)を使う場合は、これらのヘッダーが保持されるか追加されるようにし、ループバック以外からのアクセスにはHTTPSを使ってください。
+
+> [!TIP]
+> **Podmanユーザー:** すべての `docker` コマンドは、`docker` を `podman` に、`docker-compose` を `podman-compose` に置き換えればPodmanでも動作します。
+
+## クイックスタート
+
+> [!TIP]
+> BentoPDFには2つのビルドがあります。
+>
+> - **セルフホスト版ビルド**:`ghcr.io/alam00000/bentopdf-simple:latest`。マーケティング用の要素(ヒーロー、FAQ、お客様の声、フッター)**なし**で、すべてのPDFツールを備えています。社内・チーム・組織向けのデプロイに使います。機能を減らした「ライト」版では**ありません**。
+> - **商用版ビルド**:`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
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+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 のマーケティング要素であるヒーロー、FAQ、お客様の声、フッターを非表示にします)。すべてのPDFツールは残ります。 | `false` |
+| `BASE_URL` | サブディレクトリへのデプロイ | `/` |
+| `VITE_WASM_PYMUPDF_URL` | PyMuPDF WASMモジュールのURL | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | Ghostscript WASMモジュールのURL | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | CoherentPDF WASMモジュールのURL | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | OCRワーカースクリプトのURL | _(空。Tesseract.jsのデフォルトCDNを使用)_ |
+| `VITE_TESSERACT_CORE_URL` | OCRコアランタイムのディレクトリ | _(空。Tesseract.jsのデフォルトCDNを使用)_ |
+| `VITE_TESSERACT_LANG_URL` | OCR traineddataのディレクトリ | _(空。Tesseract.jsのデフォルトCDNを使用)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | UIに表示するOCR言語(カンマ区切り) | _(空。全カタログを表示)_ |
+| `VITE_OCR_FONT_BASE_URL` | OCRテキストレイヤー用フォントのディレクトリ | _(空。リモートのNotoフォントURLを使用)_ |
+| `VITE_DEFAULT_LANGUAGE` | デフォルトのUI言語 | `en` |
+| `VITE_BRAND_NAME` | カスタムブランド名 | `BentoPDF` |
+| `VITE_BRAND_LOGO` | `public/` からの相対ロゴパス | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | カスタムのフッター/著作権テキスト | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | 非表示にするツールID(カンマ区切り) | _(空。すべてのツールが有効)_ |
+| `DISABLE_GITHUB_STARS` | ページ読み込み時のGitHubスター数の取得をスキップし、CSPから `api.github.com` を除外します。Simple Modeのビルドでは常にスキップされます。 | `false` |
+| `SITE_URL` | canonical、hreflang、サイトマップのリンクに書き込まれる公開URL。検索エンジンにデプロイ先を独立したサイトとして扱わせたい場合を除き、デフォルトのままにしてください。 | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | カスタムの `SITE_URL` を使う場合、検索結果でbentopdf.comと競合しないよう、すべてのページが `noindex` になります。検索エンジンにインデックスさせるには `true` に設定します。 | `false` |
+| `COMPRESSION_MODE` | 各ファイルの横に保存する事前圧縮コピー:`o` なし、`g` `.gz`(イメージのnginxが配信)、`b` `.br`、`all` 両方。イメージのnginxは `.br` を配信できません。 | `o` |
+
+WASMモジュールのURLには、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` ヘッダーが含まれています。CSPの `script-src`、`connect-src`、`font-src` ディレクティブは、上記の `VITE_*` URL変数から**ビルド時に生成**されます。`--build-arg` で渡したホストは自動的にポリシーに追加されます。
+
+そのため:
+
+- ビルド時に `VITE_CORS_PROXY_URL` や `VITE_WASM_*_URL` を上書きすると、CSPがそれらのオリジンを自動的に許可します。追加の設定は不要です。
+- `cdn.jsdelivr.net` 上のURLでは、`script-src` はCDN全体ではなく、バージョンまで含む正確なパッケージフォルダ(例:`https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`)だけを許可します。jsDelivrは公開されているあらゆるnpmパッケージやGitHubリポジトリを配信するため、ホスト全体を許可すると、そのどれもがインスタンス上で実行できてしまうからです。それ以外のホスト上のURLは、オリジン単位で許可されます。
+- アプリ内の詳細設定ページで、_実行時_ にカスタムのWASM URLを設定した場合、それらのオリジンはCSPに含まれないため、ブラウザはそれらへのフェッチをブロックします。ビルド時に設定したバージョンのみが許可されるため、`cdn.jsdelivr.net` 上の同じパッケージの別バージョンにも当てはまります。実行時の設定は試験用です。恒久的なカスタムURLには、対応する `VITE_*` のビルド引数を設定してください。
+- 3つの `VITE_WASM_*_URL` をすべて上書きしたエアギャップ環境のデプロイでは、それらの `cdn.jsdelivr.net` パッケージフォルダもCSPから削除されます(各デフォルトは追加ではなく置換されます)。`cdn.jsdelivr.net` 上のTesseract OCRのデフォルトは、3つの `VITE_TESSERACT_*` も設定するまでポリシーに残ります。同様に、`VITE_CORS_PROXY_URL` を設定すると、公開の `bentopdf-cors-proxy.bentopdf.workers.dev` というデフォルトが置き換えられます。
+
+CSPの `script-src` に `'unsafe-eval'` が含まれているのは、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では3つすべてを一緒に設定します。ワーカー、コアランタイム、traineddataディレクトリは対応している必要があるため、一部だけの上書きは拒否されます。完全オフラインで検索可能なPDFを出力するには、`VITE_OCR_FONT_BASE_URL` も設定して、OCRテキストレイヤー用フォントを公開のNotoフォントURLではなく社内サーバーから読み込むようにします。
+
+`VITE_DEFAULT_LANGUAGE` は、初めて訪れたユーザーのUI言語を設定します。サポートされる値:`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の両方で動作し、他のすべてのビルド時オプションと組み合わせられます。
+
+### 特定のツールを無効にする
+
+コンプライアンスやセキュリティ要件に応じて、UIからツールを非表示にします。無効にしたツールは、ホームページ、検索結果、キーボードショートカット、ワークフロービルダーから削除されます。URLに直接アクセスすると「ツールは利用できません」ページが表示されます。
+
+ツールIDは、ページURLから `.html` を除いたものです。たとえばツールが `bentopdf.com/edit-pdf.html` にある場合、IDは `edit-pdf` です。
+
+#### ツールIDの調べ方
+
+最も簡単な方法:BentoPDFで任意のツールを開き、URLを見ます。パスの最後の部分(`.html` を除く)がツールIDです。
+
+
+ツールIDの完全な一覧
+
+**編集と注釈:** `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`
+
+
+
+#### オプション1:ビルド時(Dockerのビルド引数)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+これにより、無効化リストがJavaScriptバンドルに組み込まれます。変更するには再ビルドが必要です。
+
+#### オプション2:実行時(config.json)
+
+`config.json` ファイルを配信ディレクトリにマウントします。再ビルドは不要です。
+
+```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エディタ内の特定の機能(墨消し、注釈、フォームなど)だけを無効にすることもできます。`config.json` に `editorDisabledCategories` を追加します。
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+エディタカテゴリの完全な一覧
+
+**ズーム:** `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`
+
+**計測:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**フォーム:** `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`, `organize`
+
+**選択:** `selection`, `selection-copy`
+
+**履歴:** `history`, `history-undo`, `history-redo`
+
+
+
+カテゴリは階層構造になっており、親(例:`annotation`)を無効にすると、その子もすべて無効になります。
+
+### GitHubスターカウンターを無効にする
+
+ナビゲーションバーには、ページ読み込み時に `api.github.com` から取得するGitHubスター数のライブ表示があります。これはPDF機能とは無関係な、唯一の外部リクエストです。ビルド時に無効にすると、フェッチのコードがバンドルから取り除かれ、Content-Security-Policyから `api.github.com` も除外されます。
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Simple Modeのビルド(`bentopdf-simple`)では常にスターカウンターをスキップします。このフラグが必要なのは、商用版ビルドまたはカスタムのフルビルドの場合だけです。
+
+### カスタムWASM URL(エアギャップ/セルフホスト)
+
+> [!IMPORTANT]
+> WASMのURLは**ビルド時**に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
+```
+
+`bash scripts/prepare-airgap.sh --list-ocr-languages` で表示されるコード、または `bash scripts/prepare-airgap.sh --search-ocr-language ` で名前から検索したコードを、`--ocr-languages` に使います。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のDockerfileの両方で動作します。
+
+## カスタムユーザーID(PUID/PGID)
+
+特定の非rootユーザーでの実行が必要な環境(NASデバイス、セキュリティコンテキストを使うKubernetes、組織のポリシーなど)向けに、BentoPDFはLSIO形式のPUID/PGIDに対応した別のDockerfileを提供しています。
+
+### ビルドと実行
+
+```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` | 実行するユーザーID | `1000` |
+| `PGID` | 実行するグループID | `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)を使い、ほとんどのデプロイで推奨されます。`Dockerfile.nonroot` は、特定のUID/GIDが必要な場合にのみ使ってください。
+
+> [!WARNING]
+> PUID/PGIDは `0`(root)にできません。エントリポイントが入力を検証し、無効な値の場合はエラーで終了します。
+
+## 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サービスとして実行できます。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]
+> システム全体にデプロイする場合は、`--user` フラグなしで `systemctl` を使い、ファイルを `/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
+```
diff --git a/docs/ja/self-hosting/hostinger.md b/docs/ja/self-hosting/hostinger.md
new file mode 100644
index 00000000..d6ee5562
--- /dev/null
+++ b/docs/ja/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Hostingerにデプロイする
+
+[Hostinger](https://hostinger.com)は人気のある共有ホスティングプロバイダーです。このガイドでは、Hostingerの共有ホスティングにBentoPDFをデプロイする方法を説明します。
+
+## 前提条件
+
+- ファイルマネージャーにアクセスできるHostingerのホスティングプラン
+- ビルド用にローカルにインストールされたNode.js
+
+## ステップ1:プロジェクトをビルドする
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+ビルドされたファイルは `dist` フォルダに出力されます。
+
+## ステップ2:Hostingerにアップロードする
+
+### ルートドメインへのデプロイ
+
+1. Hostingerのアカウントにログインします
+2. **ファイルマネージャー** → **public_html** に移動します
+3. 既存のファイルをすべて**削除**します(必要ならバックアップしてください)
+4. ローカルの `dist` フォルダの中身をすべて `public_html` に**アップロード**します
+
+### サブディレクトリへのデプロイ
+
+サブディレクトリ(例:`yourdomain.com/pdf-tools/`)にデプロイする場合:
+
+1. 正しいベースURLを指定してビルドします。
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Hostingerにフォルダを作成します。
+ - **ファイルマネージャー** → **public_html** に移動します
+ - 新しいフォルダ `pdf-tools` を作成します
+3. `dist` の中身をすべて `public_html/pdf-tools/` にアップロードします
+
+## ステップ3:.htaccessファイルを作成する
+
+デプロイ先フォルダのルート(`public_html` または `public_html/pdf-tools/`)に `.htaccess` ファイルを作成します。
+
+::: warning 重要
+サブディレクトリにデプロイする場合は、`RewriteBase /` を `RewriteBase /pdf-tools/`(またはフォルダ名)に変更してください。
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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ファイルが読み込まれない
+
+`.htaccess` でMIMEタイプが正しく設定されていることを確認してください。
+
+```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はSPAのルーティングではなく、静的なHTMLファイルを使います。
+
+```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ファイルを別途アップロードしてください。
diff --git a/docs/ja/self-hosting/index.md b/docs/ja/self-hosting/index.md
new file mode 100644
index 00000000..969e9ccf
--- /dev/null
+++ b/docs/ja/self-hosting/index.md
@@ -0,0 +1,538 @@
+# セルフホスティングガイド
+
+BentoPDF は、自分のインフラでセルフホストできます。このガイドでは、さまざまなデプロイ方法を紹介します。
+
+## Docker / Podman でクイックスタート
+
+BentoPDF をセルフホストする最も手早い方法です。
+
+> [!TIP]
+> BentoPDF には 2 種類のビルドがあります。
+>
+> - **セルフホスト版ビルド**: `ghcr.io/alam00000/bentopdf-simple:latest`。マーケティング用の要素(ヒーロー、FAQ、お客様の声、フッター)**なし**で、すべての PDF ツールを利用できます。社内、チーム、組織向けのデプロイにはこちらを使ってください。機能を削減した「ライト」版では**ありません**。
+> - **商用版ビルド**: `ghcr.io/alam00000/bentopdf:latest`。マーケティングサイト全体を含み、bentopdf.com 自体や、一般公開向けのデプロイを行う商用ライセンス保有者が使用します。
+>
+> 迷った場合は、セルフホスト版ビルドを取得してください。
+
+> [!IMPORTANT]
+> Office ファイルの変換には `SharedArrayBuffer` が必要です。そのため、アプリはクロスオリジン分離され、かつセキュアコンテキストから配信される必要があります。公式イメージは必要な COOP/COEP ヘッダーをすでに送信していますが、`http://192.168.x.x` のようなプレーン HTTP のローカルネットワークオリジンでは、ブラウザーが `SharedArrayBuffer` を無効にします。
+>
+> `http://localhost` は、同じデバイス上でのテストにのみ使用してください。ユーザーが LAN の 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 デプロイガイド](/ja/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
+```
+
+## 設定オプション
+
+### セルフホスト版ビルド(シンプルモード)
+
+セルフホスト版ビルド(`bentopdf-simple` イメージ。シンプルモードとも呼ばれます)は、商用版ビルドと**機能的に同一**です。すべての PDF ツールが含まれ、同じように動作します。bentopdf.com 自体や、商用の一般公開向けデプロイでのみ意味を持つマーケティング用の要素を非表示にしているだけです。**機能を削減した「ライト」版ではありません。**
+
+**セルフホスト版ビルドで非表示になるもの**(見た目のみで、PDF 機能は削除されません):
+
+- ナビゲーションバー、ヒーローセクション、機能セクション、FAQ、お客様の声、フッター
+- ページタイトルが「PDFツール」に更新されます
+
+**セルフホスト版ビルドで維持されるもの**(実際に PDF の処理を行うすべて):
+
+- すべての PDF ツール(結合、分割、編集、署名、OCR、Office 変換など)
+- カスタムブランディングのサポート、すべてのビルド時および実行時の設定
+
+商用版ビルド(`ghcr.io/alam00000/bentopdf:latest`)は bentopdf.com 自体を動かしているもので、一般公開向けのデプロイを行う商用ライセンス保有者が使用します。社内ツールでは意味をなさない、ヒーロー、FAQ、お客様の声、フッターが追加されています。
+
+チーム、組織、または社内ツールとして 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 ツールに加えて、マーケティングサイト全体(ヒーロー、機能、FAQ、お客様の声、フッター)が含まれます。**BentoPDF を独自ブランドの一般公開向け PDF サービスとしてデプロイ**したい場合に、このビルドを使用します。たとえば次のようなケースです。
+
+- 自分のドメインで、エンドユーザー向けのホスト型 SaaS として BentoPDF を運用する
+- ツールだけでなく、ランディングページの体験(マーケティングセクション + ツール)が欲しい
+- 商用ライセンス保有者として、商用製品に 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`、WASM URL の上書きなど)も、セルフホスト版ビルドと同じように使えます。
+
+::: warning ライセンス
+商用版ビルドの実行は、BentoPDF の 2 つのライセンスオプションのどちらでも許可されています。
+
+- **AGPL-3.0**(無料): ブランディングの変更や周辺のビジネスロジックを含め、デプロイのソースコード全体を AGPL の下で公開する場合に許可されます。
+- **商用ライセンス**($79 の買い切り): ブランディングのフォークやビジネスコードをオープンソース化しない、クローズドソース/プロプライエタリなデプロイに必要です。
+
+詳しい比較は[ライセンスのページ](https://www.bentopdf.com/licensing)を参照してください。AGPL ライセンスの WASM モジュール(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 .
+```
+
+ブランディングはフルモードとシンプルモードの両方で機能し、他のすべてのビルド時オプション(`BASE_URL`、`SIMPLE_MODE`、`VITE_DEFAULT_LANGUAGE`)と組み合わせられます。
+
+### 特定のツールを無効にする
+
+コンプライアンスやセキュリティのために、個別のツールを非表示にします。無効にしたツールは、ホームページ、検索、ショートカット、ワークフロービルダー、直接の URL アクセスから削除されます。
+
+ツール ID は、`.html` を除いたページの URL です。任意のツールを開いて URL を確認してください(例: `edit-pdf`、`sign-pdf`、`encrypt-pdf`)。
+
+**ビルド時**(バンドルに組み込まれます):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**実行時**(再ビルド不要。`config.json` をマウントします):
+
+```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
+```
+
+両方の方法を組み合わせることもできます。リストはマージされます。
+
+PDF エディタ内の特定の機能(例: 墨消し)だけを、ツール全体を無効にせずに無効にすることもできます。`config.json` に `editorDisabledCategories` を追加します。カテゴリーの一覧は [Docker ガイド](/ja/self-hosting/docker#エディタ機能を無効にする)を参照してください。
+
+## デプロイガイド
+
+プラットフォームを選んでください。
+
+- [Vercel](/ja/self-hosting/vercel)
+- [Netlify](/ja/self-hosting/netlify)
+- [Cloudflare Pages](/ja/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/ja/self-hosting/aws)
+- [Hostinger](/ja/self-hosting/hostinger)
+- [Nginx](/ja/self-hosting/nginx)
+- [Apache](/ja/self-hosting/apache)
+- [Docker](/ja/self-hosting/docker)
+- [Kubernetes](/ja/self-hosting/kubernetes)
+- [CORS Proxy](/ja/self-hosting/cors-proxy) - デジタル署名に必要です
+
+## よくある問題
+
+### Word / ODT / Excel / PowerPoint から PDF への変換がハングする(SharedArrayBuffer が利用できない)
+
+**症状**: LibreOffice ベースの文書変換(Word、ODT、Excel、PowerPoint から PDF)が約 55% で止まる、または開始できません。ブラウザーのコンソールに次のように表示されることがあります。
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…または、`window.crossOriginIsolated` が `false` を返す、あるいは WASM のコンパイルで `expected magic word 00 61 73 6d, found 1f 8b 08 08` と報告されます。
+
+**原因**: LibreOffice WASM には `SharedArrayBuffer` が必要で、ブラウザーはページが**クロスオリジン分離**され、かつ**セキュアコンテキスト**から配信されている場合にのみ、これを有効にします。つまり、次の 2 つの条件を満たす必要があります。
+
+1. すべてのレスポンスに、次の両方のヘッダーが含まれていること。
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. ページが `https://...` または `http://localhost` から配信されていること。LAN IP(例: `http://192.168.x.x`)上のプレーン HTTP はセキュアとは見なされず、ブラウザーはそこで `SharedArrayBuffer` を無効にします。
+
+`00 61 73 6d / 1f 8b 08 08` の不一致は別のサブ症状です。事前圧縮された `.wasm.gz` / `.data.gz` ファイルに `Content-Encoding: gzip` レスポンスヘッダーがないため、ブラウザーは展開された WASM ではなく、生の gzip バイト列を受け取っています。
+
+**対処法**: 正確な設定は、各プラットフォームのデプロイガイドを参照してください。
+
+- [Nginx →](/ja/self-hosting/nginx#word-odt-excel-から-pdf-への変換が動作しない)
+- [Apache →](/ja/self-hosting/apache#word-odt-excelからpdfへの変換が動作しない)
+- [AWS S3 + CloudFront →](/ja/self-hosting/aws#ステップ3b-レスポンスヘッダーポリシー-libreoffice-wasmに必須)
+- [Cloudflare Pages →](/ja/self-hosting/cloudflare#設定ファイル)(`_headers` ファイル)
+- [Netlify →](/ja/self-hosting/netlify#word-odt-excel-から-pdf-への変換が-55-で止まる)(`netlify.toml`)
+- [Vercel →](/ja/self-hosting/vercel#word-odt-excel-から-pdf-への変換が動作しない)(`vercel.json`)
+- [Hostinger →](/ja/self-hosting/hostinger#libreofficeツールが動作しない)(`.htaccess`)
+- [Kubernetes →](/ja/self-hosting/kubernetes#sharedarraybuffer-ヘッダーが引き続き機能することを確認する-ingress-gateway)
+- **Docker**: 同梱の nginx 設定によって自動的に処理されるため、操作は不要です。
+
+**確認**: 任意の BentoPDF ページで DevTools のコンソールを開き、次を実行します。
+
+```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 オリジンを使っている場合は、HTTPS で終端してください。ヘッダーだけで解決する方法はありません。
+
+### `.mjs` ファイルが `application/octet-stream` として配信される
+
+**症状**: PDFへ署名 / Form Filler など一部のツールで、ビューアが空白になる、または読み込みに失敗します。ブラウザーのコンソールに次のように表示されます。
+
+> `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.`
+
+**原因**: Web サーバーまたはリバースプロキシに、`.mjs` ファイル(内蔵の PDF ビューアは、この拡張子で ES モジュールを同梱しています)の MIME タイプのマッピングがありません。多くの標準的なサーバー設定では、認識できない拡張子はデフォルトで `application/octet-stream` になり、ブラウザーはそれを ES モジュールとして実行することを拒否します。
+
+**対処法**: 正確なスニペットは、各プラットフォームのデプロイガイドを参照してください。
+
+- [Nginx →](/ja/self-hosting/nginx#pdfへ署名-または-form-filler-で空白のビューアが表示される-mjs-の-mime-エラー)
+- [Apache →](/ja/self-hosting/apache#pdfへ署名またはフォーム入力で空白のビューアが表示される-mjs-のmimeエラー)
+- [AWS S3 + CloudFront →](/ja/self-hosting/aws#ステップ2-ビルドしてアップロードする)(`aws s3 cp ... --include "*.mjs"` を参照)
+- [Kubernetes →](/ja/self-hosting/kubernetes#mjs-の-mime-タイプエラー-pdfへ署名-form-filler-の-iframe-が空白になる)
+- **Docker、Vercel、Netlify、Cloudflare Pages、Hostinger**: 自動的に処理されるため、操作は不要です。
+
+**確認**: DevTools → Network タブを開き、失敗している `.mjs` リクエストを見つけて、`Content-Type` レスポンスヘッダーを確認します。`application/javascript` になっているはずです。それでも `application/octet-stream` の場合は、外側のリバースプロキシや CDN がタイプを再判定している可能性があります。配信経路の各層を確認してください。
+
+## WASM の設定(AGPL コンポーネント)
+
+BentoPDF は、AGPL ライセンスの処理ライブラリをソースコードに**同梱していません**が、すべての機能がそのまま動作するよう、CDN の URL を**あらかじめ設定**しています。手動での設定は不要です。
+
+::: tip デフォルトでゼロコンフィグ
+v2.0.0 以降、WASM モジュールは環境変数によって jsDelivr CDN から読み込まれるようあらかじめ設定されています。すべての高度な機能は、ユーザーが何も設定しなくてもすぐに使えます。
+:::
+
+| コンポーネント | ライセンス | 機能 |
+| --------------- | ---------- | ---------------------------------------------- |
+| **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=
+```
+
+### WASM URL を上書きする
+
+カスタムデプロイでは、ビルド時にデフォルトを上書きできます。
+
+```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_*` 変数を空のままにしてデフォルトのオンラインアセットを使うか、セルフホスト/オフライン OCR 用に worker/core/lang の URL をまとめて設定します。特定の OCR 言語のみをバンドルする場合は、`VITE_TESSERACT_AVAILABLE_LANGUAGES` にも同じカンマ区切りのコードを設定してください。これにより、UI にはインストール済みの言語のみが表示され、サポートされていない選択は説明付きのエラーで失敗します。完全オフラインで検索可能な PDF を出力するには、バンドルされた OCR フォントを配信する社内ディレクトリを `VITE_OCR_FONT_BASE_URL` にも設定してください。
+
+ユーザーは、UI の **詳細設定** からいつでもこれらのデフォルトを上書きできます。ブラウザーに保存されたユーザーの上書き設定は、環境のデフォルトより優先されます。
+
+### エアギャップ / オフラインデプロイ
+
+インターネットにアクセスできないネットワーク(政府、医療、金融など)向けです。WASM の URL は**ビルド時に** 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 ` | WASM を社内でホストする場所 | _(必須。指定がない場合は入力を求められます)_ |
+| `--image-name ` | Docker イメージのタグ | `bentopdf` |
+| `--output-dir ` | 出力するバンドルのディレクトリ | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | シンプルモードを有効にする | オフ |
+| `--base-url ` | サブディレクトリのベース URL(例: `/pdf/`) | `/` |
+| `--language ` | デフォルトの UI 言語(例: `fr`、`de`) | _(なし)_ |
+| `--brand-name ` | カスタムのブランド名 | _(なし)_ |
+| `--brand-logo ` | `public/` からの相対ロゴパス | _(なし)_ |
+| `--footer-text ` | カスタムのフッターテキスト | _(なし)_ |
+| `--ocr-languages ` | バンドルする OCR 言語(カンマ区切り) | `eng` |
+| `--list-ocr-languages` | サポートされている OCR コードと名前を表示して終了する | オフ |
+| `--search-ocr-language ` | 名前または略称で OCR コードを検索する | オフ |
+| `--dockerfile ` | 使用する Dockerfile | `Dockerfile` |
+| `--skip-docker` | Docker のビルドとエクスポートをスキップする | オフ |
+| `--skip-wasm` | WASM のダウンロードをスキップする(既存の `.tgz` ファイルを再利用) | オフ |
+
+対話式のプロンプトでは `list` と入力すると、サポートされているすべての Tesseract コードの一覧を表示でき、`search ` で一致するコードを検索できます(例: `search german`、`search chi`)。
+
+::: warning 同一オリジンの要件
+WASM ファイルは、BentoPDF アプリと**同じオリジン**から配信する必要があります。Web ワーカーは `importScripts()` を使用しますが、これはスクリプトをクロスオリジンで読み込めません。たとえば、BentoPDF が `https://internal.example.com` で動作している場合、WASM のベース URL も `https://internal.example.com/wasm` にする必要があります。
+:::
+
+#### 手動の手順
+
+
+スクリプトを使わずに手動で行う場合
+
+**ステップ 1: 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
+```
+
+**ステップ 2: 社内 URL を指定して Docker イメージをビルドする**
+
+```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 .
+```
+
+**ステップ 3: Docker イメージをエクスポートする**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**ステップ 4: エアギャップネットワークへ転送する**
+
+USB、社内のアーティファクトリポジトリ、または承認された転送方法でコピーします。
+
+- `bentopdf.tar`: Docker イメージ
+- ステップ 1 の 5 つの `.tgz` WASM/OCR パッケージ
+- ステップ 1 の `tesseract-langdata/` ディレクトリ
+- ステップ 1 の `ocr-fonts/` ディレクトリ
+
+**ステップ 5: エアギャップネットワーク内でセットアップする**
+
+```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
+```
+
+ステップ 2 で設定した URL でファイルにアクセスできることを確認してください。`.../ocr/worker.min.js`、`.../ocr/core`、`.../ocr/lang-data`、`.../ocr/fonts` も含まれます。
+
+
+
+::: 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 プロキシをホストする
+
+AGPL の WASM ファイルを適切な CORS ヘッダー付きで配信する必要がある場合は、シンプルなプロキシをデプロイできます。実装例は [Cloudflare WASM Proxy ガイド](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md)を参照してください。
+
+::: tip なぜ分離しているのか
+この分離により、次のことが保証されます。
+
+- 商用ユーザーにとって明確な法令遵守
+- BentoPDF のコアがデュアルライセンス(AGPL-3.0 / 商用)のまま維持されること
+- WASM ファイルはソースにバンドルされるのではなく、実行時に読み込まれること
+ :::
+
+## システム要件
+
+| 要件 | 最小 |
+| ---------- | -------------------------------------- |
+| ストレージ | 約 100 MB(AGPL モジュールを除くコア) |
+| RAM | 512 MB |
+| CPU | 最近のプロセッサー |
+
+::: tip
+BentoPDF は静的サイトです。データベースやバックエンドサーバーは不要です!
+:::
diff --git a/docs/ja/self-hosting/kubernetes.md b/docs/ja/self-hosting/kubernetes.md
new file mode 100644
index 00000000..48cb7be5
--- /dev/null
+++ b/docs/ja/self-hosting/kubernetes.md
@@ -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`
+>
+> 公式の BentoPDF nginx イメージにはこれらのヘッダーが含まれています。Kubernetes では **Ingress/Gateway コントローラーもリバースプロキシ**であるため、これらのヘッダーが保持されるようにするか、エッジで追加してください。
+
+## 前提条件
+
+- Kubernetes クラスター
+- Helm v3
+- **ポート 8080** で配信する BentoPDF の nginx イメージ(例: `ghcr.io/alam00000/bentopdf:`)
+
+## 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=""
+
+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
+```
+
+## 公開する
+
+### ポートフォワード(簡易テスト)
+
+```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 API の `Gateway` と `HTTPRoute` に対応しています。
+
+例(Cloudflare Gateway API operator):
+
+```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)
+
+### 本来の動作
+
+BentoPDF の nginx 設定が、必要なレスポンスヘッダーを設定します。ほとんどの 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;
+```
+
+## `.mjs` の MIME タイプエラー(PDFへ署名 / Form Filler の iframe が空白になる)
+
+ブラウザーのコンソールに、`.mjs` リクエストに対して `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` と表示される場合、BentoPDF の nginx の前段にある Ingress/Gateway コントローラーが、アップストリームの `Content-Type` ヘッダーを `application/octet-stream` に置き換えています。
+
+BentoPDF イメージの nginx は、すでに `.mjs` を `application/javascript` として配信しています。修正方法は、コントローラーによる削除や置き換えを止めることです。nginx-ingress の場合:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+または、Gateway API の `ResponseHeaderModifier` フィルターを使って、`.mjs` パスに `Content-Type: application/javascript` を設定します。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"]
+ }
+```
+
+配信されるディレクトリにマウントします。
+
+```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
+```
+
+ツール ID は、`.html` を除いたページの URL です。任意のツールを開いて URL を確認してください(例: `edit-pdf`、`merge-pdf`、`compress-pdf`)。無効にしたツールは、ホームページ、検索、ショートカット、ワークフロービルダー、直接の URL アクセスから非表示になります。すべてのオプションについては、[Docker ガイド](/ja/self-hosting/docker#特定のツールを無効にする)を参照してください。
diff --git a/docs/ja/self-hosting/netlify.md b/docs/ja/self-hosting/netlify.md
new file mode 100644
index 00000000..2fca1ddf
--- /dev/null
+++ b/docs/ja/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Netlify にデプロイする
+
+[Netlify](https://netlify.com) は、手厚い無料枠を備えた優れた静的サイトホスティングを提供しています。
+
+## ワンクリックデプロイ
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## 手動デプロイ
+
+### ステップ 1: リポジトリを接続する
+
+1. [Netlify](https://app.netlify.com) にログインします
+2. 「Add new site」→「Import an existing project」をクリックします
+3. GitHub アカウントを接続します
+4. BentoPDF のフォークを選択します
+
+### ステップ 2: ビルド設定を行う
+
+| 設定 | 値 |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### ステップ 3: デプロイする
+
+「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 重要
+Word/ODT/Excel/PowerPoint から PDF への変換には、`Cross-Origin-Embedder-Policy` と `Cross-Origin-Opener-Policy` ヘッダーが必要です。これらがないと `SharedArrayBuffer` が使えず、LibreOffice WASM エンジンの初期化に失敗します。
+
+`.wasm.gz` と `.data.gz` ファイルの `Content-Encoding: gzip` ヘッダーは、ブラウザーにそれらを自動的に展開させるためのものです。これがないと、ブラウザーは生の 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` | デフォルトの UI 言語(例: `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 への変換が 55% で止まる
+
+文書の変換が 55% で止まる場合は、DevTools のコンソールを開いて次を確認します。
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+`crossOriginIsolated` が `false` の場合、`netlify.toml` の COEP/COOP ヘッダーが適用されていません。ファイルがプロジェクトのルートにあることを確認して、再デプロイしてください。
+
+コンソールに `expected magic word 00 61 73 6d, found 1f 8b 08 08` と表示される場合は、`.wasm.gz` ファイルに `Content-Encoding: gzip` ヘッダーがありません。`soffice.wasm.gz` と `soffice.data.gz` 用の `[[headers]]` ブロックが `netlify.toml` に含まれていることを確認してください。
+
+### ビルドが失敗する
+
+Node のバージョンの互換性を確認します。
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### 初回の読み込みが遅い
+
+Site settings → Build & deploy → Asset optimization で、アセットの最適化を有効にします。
diff --git a/docs/ja/self-hosting/nginx.md b/docs/ja/self-hosting/nginx.md
new file mode 100644
index 00000000..d1820c00
--- /dev/null
+++ b/docs/ja/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Nginx でデプロイする
+
+Nginx を使って、BentoPDF を自分のサーバーでホストします。
+
+## 前提条件
+
+- Ubuntu/Debian サーバー
+- Nginx がインストール済みであること
+- SSL 証明書(推奨: Let's Encrypt)
+
+## ステップ 1: プロジェクトをビルドする
+
+```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
+```
+
+## ステップ 2: ファイルをコピーする
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## ステップ 3: 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;
+ }
+}
+```
+
+## ステップ 4: サイトを有効にする
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## ステップ 5: Let's Encrypt による SSL
+
+```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へ署名 または Form Filler で空白のビューアが表示される(`.mjs` の MIME エラー)
+
+ブラウザーのコンソールに次のように表示される場合:
+
+```
+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へ署名、Form Filler、その他いくつかのツールで使用)は `.mjs` 拡張子の ES モジュールファイルを同梱していますが、nginx の標準の `mime.types` にはデフォルトで含まれていません。
+
+`/etc/nginx/mime.types` にある既存の `application/javascript` の行に `mjs` を追加して修正します。
+
+```nginx
+application/javascript js mjs;
+```
+
+> `application/javascript` の行を*もう 1 行*追加しないでください。nginx は `mime.types` を 1 行ずつ解析し、拡張子との対応付けは 1 つの型につき 1 つしか有効にならないため、バージョンによっては 2 行目が黙って無視されます。既存の行を編集して、`js` の隣に `mjs` を追加してください。
+
+または、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/octet-stream` ではなく `application/javascript` になっているはずです。
+
+### Word/ODT/Excel から PDF への変換が動作しない
+
+LibreOffice WASM には `SharedArrayBuffer` が必要で、そのためには `Cross-Origin-Embedder-Policy` と `Cross-Origin-Opener-Policy` ヘッダーが必要です。セキュアコンテキストも必要なため、`http://localhost` はローカルでのテストには使えますが、`http://192.168.x.x` などの LAN IP では通常 HTTPS が必要です。なお、`location` ブロック内の nginx の `add_header` ディレクティブは、server レベルの `add_header` ディレクティブを**上書き**します。マージはされません。独自の `add_header` を持つすべての `location` ブロックに、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
+```
diff --git a/docs/ja/self-hosting/vercel.md b/docs/ja/self-hosting/vercel.md
new file mode 100644
index 00000000..308cd694
--- /dev/null
+++ b/docs/ja/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Vercel にデプロイする
+
+[Vercel](https://vercel.com) は、静的サイトを最も簡単にデプロイできるサービスです。
+
+## ワンクリックデプロイ
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## 手動デプロイ
+
+### ステップ 1: リポジトリをフォークする
+
+[bentopdf/bentopdf](https://github.com/alam00000/bentopdf) を自分の GitHub アカウントにフォークします。
+
+### ステップ 2: 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` |
+
+### ステップ 3: 環境変数(任意)
+
+必要に応じて、次の変数を追加します。
+
+| 変数 | 説明 |
+| ----------------------- | -------------------------------------------------------- |
+| `SIMPLE_MODE` | 最小限の UI にするには `true` を設定します |
+| `VITE_BRAND_NAME` | カスタムブランド名("BentoPDF" を置き換えます) |
+| `VITE_BRAND_LOGO` | `public/` からの相対ロゴパス(例: `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | カスタムのフッター/著作権テキスト |
+| `VITE_DEFAULT_LANGUAGE` | デフォルトの UI 言語(例: `fr`、`de`、`es`) |
+
+### ステップ 4: デプロイする
+
+「Deploy」をクリックして、ビルドが完了するのを待ちます。
+
+## カスタムドメイン
+
+1. プロジェクトの設定を開きます
+2. 「Domains」に移動します
+3. カスタムドメインを追加します
+4. 指示に従って DNS を設定します
+
+## 制限事項
+
+::: warning 大きなファイル
+Vercel のサーバーレス関数には 50MB の制限があります。BentoPDF は静的サイトなので影響はないはずですが、WASM モジュールは大きく(合計で約 100MB)、`/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" }
+ ]
+ }
+ ]
+}
+```
+
+確認するには、DevTools のコンソールを開いて `console.log(window.crossOriginIsolated)` を実行します。`true` が返れば正常です。
diff --git a/docs/ja/tools/add-attachments.md b/docs/ja/tools/add-attachments.md
new file mode 100644
index 00000000..d19b5100
--- /dev/null
+++ b/docs/ja/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: 添付ファイルの追加
+description: あらゆる種類のファイルを、文書レベルまたは特定のページに紐づけて PDF に埋め込みます。
+---
+
+# 添付ファイルの追加
+
+1 つまたは複数のファイルを PDF 文書の中に直接埋め込みます。添付ファイルは文書レベル(あらゆる PDF リーダーの添付ファイルパネルに表示されます)で追加することも、特定のページに紐づけることもできます。
+
+## 使い方
+
+1. ファイルを添付したい PDF をアップロードします。
+2. 添付ファイルのドロップゾーンで、埋め込みたいファイル(どんな種類でも可)を選択します。
+3. 添付レベルを選択します。**文書**(デフォルト)または**ページ**です。
+4. ページレベルを選んだ場合は、ページ範囲(例: `1-3` や `5`)を入力します。
+5. 処理ボタンをクリックします。ファイルが埋め込まれた PDF がダウンロードされます。
+
+## 機能
+
+- あらゆる種類のファイルを添付可能。画像、スプレッドシート、アーカイブ、実行ファイルなど何でも対応
+- 文書レベルまたはページレベルで添付位置を指定
+- 1 回の操作で複数のファイルを添付可能
+- 選択したすべての添付ファイルのファイル名とサイズを表示
+- 出力では元の PDF の内容を保持したまま、埋め込みファイルを追加
+
+## オプション
+
+| オプション | 説明 |
+| ---------------- | ---------------------------------------------------------------------- |
+| **文書レベル** | PDF 全体にファイルを添付します。添付ファイルパネルからアクセスできます |
+| **ページレベル** | ページ範囲の入力で指定した特定のページにファイルを添付します |
+
+## ユースケース
+
+- PDF レポートにソースデータ(Excel ファイルや CSV)を同梱する
+- 写真ポートフォリオ PDF に元の画像ファイルを添付する
+- 契約書や提案書に関連書類を埋め込む
+- 研修マニュアルの特定のページに補足資料を追加する
+
+## ヒント
+
+- 文書レベルの添付ファイルは、PDF リーダー全般で最も広くサポートされています。ページレベルの添付ファイルは、すべてのビューアで表示されるとは限りません。
+- 添付ファイルのサイズに上限はありませんが、非常に大きなファイルを埋め込むと、それに比例して PDF のサイズも大きくなります。
+
+## 関連ツール
+
+- [添付ファイルの抽出](./extract-attachments)
+- [添付ファイルの編集](./edit-attachments)
+- [PDFの結合](./merge-pdf)
diff --git a/docs/ja/tools/add-blank-page.md b/docs/ja/tools/add-blank-page.md
new file mode 100644
index 00000000..7840dfd5
--- /dev/null
+++ b/docs/ja/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: 空白ページの追加
+description: PDF 文書の任意の位置に、1 ページ以上の空白ページを挿入します。
+---
+
+# 空白ページの追加
+
+指定した位置に空のページを PDF へ挿入します。空白ページを入れる場所と枚数を自由に指定できます。
+
+## 使い方
+
+1. PDF ファイルをアップロードします。ツールにページ数が表示されます。
+2. 空白ページを挿入する**位置**を入力します。先頭に挿入するには `0`、末尾に追加するには総ページ数を指定します。
+3. 追加する空白ページの**枚数**を入力します(デフォルトは 1)。
+4. 処理ボタンをクリックします。空白ページが挿入された PDF がダウンロードされます。
+
+## 機能
+
+- 先頭、途中、末尾など、任意の位置に挿入可能
+- 1 回の操作で複数の空白ページを追加可能
+- アップロードした PDF のページ数に応じて、位置のヒントが動的に更新
+- 標準的な A4 サイズの空白ページ
+
+## ユースケース
+
+- まとめた文書のセクション間に、区切り用の空白ページを追加する
+- 両面印刷の位置合わせのために空白ページを挿入する
+- 印刷した学習ガイドに手書きメモ用のスペースを追加する
+- 最低ページ数の要件を満たすために文書のページ数を調整する
+
+## ヒント
+
+- 位置 `0` は最初のページの前に挿入します。総ページ数と同じ位置を指定すると、最後のページの後ろに追加されます。
+- 空白ではなく内容のあるページを特定の位置に挿入したい場合は、[PDFマルチツール](./pdf-multi-tool) を使って、指定したページの後ろに別の PDF を挿入してください。
+
+## 関連ツール
+
+- [Organize & Duplicate](./organize-pdf)
+- [PDFマルチツール](./pdf-multi-tool)
+- [PDFの結合](./merge-pdf)
diff --git a/docs/ja/tools/add-page-labels.md b/docs/ja/tools/add-page-labels.md
new file mode 100644
index 00000000..3797a94b
--- /dev/null
+++ b/docs/ja/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: ページラベルの追加
+description: ローマ数字、英字のプレフィックス、カスタム番号付けに対応し、1 つの文書に複数のルールを設定できる PDF ページラベルを追加します。
+---
+
+# ページラベルの追加
+
+ページラベルは、PDF ビューアでのページ番号の表示方法を決めるものです(ツールバーに表示される番号であり、ページ上には印刷されません)。このツールでは、ページ範囲ごとに異なるラベル方式を割り当てられます。たとえば、前付にはローマ数字、本文には算用数字、付録にはアルファベットといった設定ができます。
+
+## 使い方
+
+1. PDF ファイルをアップロードします。
+2. オプションパネルが表示され、デフォルトで 1 つのラベルルールが用意されています。
+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 です。0 から始める番号付けにしたい場合は 0 を設定します。
+- **離れた範囲でも番号を継続する** -- ルールの対象が連続しないページ(`1-9,30-40` や `odd` など)で、番号を連続させたい場合に有効にします。
+- **既存のページラベルを削除** -- デフォルトでオンです。新しいルールを適用する前に、以前のラベルをすべて消去します。
+
+## 機能
+
+- 複雑な番号付けスキームに対応する、1 つの文書内の複数のラベルルール
+- あらゆる標準的な番号体系をカバーする 6 種類のラベルスタイル
+- セクションごとのラベル付けに使えるカスタムプレフィックス
+- 離れた範囲に対応し、番号を連続させることが可能
+- 既存のラベルを残すか削除するかを選択可能
+
+## ユースケース
+
+- 書籍の序文にはローマ数字(i, ii, iii)、本文には算用数字のラベルを設定する
+- 付録ページに "A-1"、"A-2"、"B-1"、"B-2" のようなアルファベットのプレフィックスを付ける
+- 実際のページ番号と PDF のページ順が一致しないスキャン文書のページラベルを修正する
+- 技術文書向けに 0 から始まる番号付けを追加する
+
+## ヒント
+
+- ページラベルは、PDF ビューアのナビゲーションツールバーに表示されるメタデータです。実際のページには印刷されません。目に見える番号が必要な場合は、[ページ番号](./page-numbers) を使用してください。
+- このツールを使うには、WASM 設定で CoherentPDF (CPDF) を設定しておく必要があります。未設定の場合は、設定を促すメッセージが表示されます。
+
+## 関連ツール
+
+- [ページ番号](./page-numbers)
+- [通し番号付け](./bates-numbering)
+- [しおりの編集](./bookmark)
diff --git a/docs/ja/tools/add-stamps.md b/docs/ja/tools/add-stamps.md
new file mode 100644
index 00000000..da0bf0b2
--- /dev/null
+++ b/docs/ja/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: スタンプの追加
+description: ユーザー名による帰属表示に対応した統合アノテーションツールバーを使って、PDF のページに画像スタンプを追加します。
+---
+
+# スタンプの追加
+
+スタンプ用アノテーションツールバーを備えた埋め込みビューアを使って、PDF のページに画像スタンプを配置します。スタンプには自分の名前を含めて帰属を示せるため、承認ワークフロー、レビュー作業、文書への押印に便利です。
+
+## 使い方
+
+1. **スタンプのユーザー名**欄に名前を入力します。この名前は、作成するスタンプに表示されます。
+2. PDF ファイルをクリックするか、ドロップゾーンにドラッグしてアップロードします。
+3. 文書がビューアに読み込まれた状態で、スタンプエディタが開きます。
+4. ツールバーの画像スタンプツールを使って、任意のページにスタンプを選択して配置します。
+5. 必要に応じて、スタンプの位置とサイズを調整します。
+6. **スタンプ済み PDF を保存**をクリックして、結果をダウンロードします。
+
+## 機能
+
+- スタンプ専用のアノテーションツールバーを備えた統合 PDF ビューア
+- 作成したスタンプにユーザー名を表示
+- 任意のページに画像スタンプを配置可能
+- ドラッグ&ドロップによる位置調整とサイズ変更
+- ページの縦横比に応じたビューアの自動サイズ調整
+- ファイル名とサイズ情報の表示
+
+## ユースケース
+
+- レビューワークフローで、文書に「承認済み」や「確認済み」の画像スタンプを追加する
+- 公式文書に会社の社印や公証人の印影画像を配置する
+- 確認者の名前入りの「受領」スタンプをページに押す
+- 検査報告書に品質管理スタンプを追加する
+
+## ヒント
+
+- PDF をアップロードする前に、スタンプのユーザー名を設定してください。ユーザー名はスタンプのメタデータに埋め込まれます。
+- ビューアの高さは、PDF の最初のページの縦横比に合わせて調整され、見やすい表示になります。
+- 画像スタンプではなく、テキストベースの透かしを入れたい場合は、[透かしの追加](./add-watermark) ツールを使用してください。
+
+## 関連ツール
+
+- [PDFへ署名](./sign-pdf)
+- [透かしの追加](./add-watermark)
+- [PDFエディター](./edit-pdf)
diff --git a/docs/ja/tools/add-watermark.md b/docs/ja/tools/add-watermark.md
new file mode 100644
index 00000000..427bcdbc
--- /dev/null
+++ b/docs/ja/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: 透かしの追加
+description: ビジュアルなドラッグ&ドロップエディタとライブプレビューで、PDF のページにテキストまたは画像の透かしを入れます。
+---
+
+# 透かしの追加
+
+ビジュアルエディタを使って、PDF のページにテキストまたは画像の透かしを追加します。プレビュー上で透かしを直接ドラッグして位置を決め、角のハンドルでサイズを変更し、不透明度、回転、フォント、色を設定できます。ページごとに透かしの位置を変えることも、すべてのページに同じ透かしを一括で適用することもできます。
+
+## 使い方
+
+1. PDF ファイルをアップロードします。
+2. 最初のページのライブプレビューと、ドラッグ可能な透かしのオーバーレイが表示されたエディタが開きます。
+3. 切り替えボタンで、**テキスト**または**画像**の透かしモードを選びます。
+4. サイドバーのパネルで透かしの設定を行います。
+5. プレビュー上で透かしをドラッグして、好みの位置に正確に配置します。サイズを変えるには、角のハンドルを使います。
+6. ページを移動してページごとの透かしを設定するか、**すべてのページに適用**をオンのままにします。
+7. **透かしを追加**をクリックして、処理とダウンロードを行います。
+
+## オプション
+
+**テキスト透かしの設定:**
+
+- **テキスト** -- 透かしの文字列です(例: "CONFIDENTIAL"、"DRAFT")。
+- **フォントサイズ** -- 10 ~ 200 ポイントです。デフォルトは 72 です。
+- **色** -- カラーピッカーで好きな色を選べます。
+- **不透明度** -- 完全な透明から完全な不透明まで、透明度を調整できます。
+- **回転** -- 透かしの文字を -180 度から 180 度の範囲で回転できます。
+
+**画像透かしの設定:**
+
+- **画像のアップロード** -- 透かしとして使う PNG、JPG などの画像ファイルをアップロードします。
+- **不透明度** -- 画像の透明度を調整します。
+- **スケール** -- 画像透かしのサイズを変更します。
+
+**レイアウトの設定:**
+
+- **単一** -- 1 ページに透かしを 1 つ配置します。ドラッグするか、位置のプリセットで位置を決めます。
+- **タイル** -- 回転角度に沿った斜めのグリッド状に、ページ全体へ透かしを繰り返し配置します。これにより、透かしが文書の端から端までを覆います。
+- **水平方向の間隔** -- 文字方向に沿ったタイル間の間隔です。透かしの幅に対する割合(パーセント)で指定します(タイルモードのみ)。
+- **垂直方向の間隔** -- タイルの行間の間隔です。透かしの高さに対する割合(パーセント)で指定します(タイルモードのみ)。
+
+**一般設定:**
+
+- **すべてのページに適用** -- オンにすると、すべてのページに同じ透かしが適用されます。オフにすると、ページごとに個別の透かしを設定できます。
+- **ページ範囲** -- 透かしを入れるページを指定します(例: "1-3, 5, 7-9" や "all")。
+
+## 機能
+
+- ライブ PDF プレビュー上での、ビジュアルなドラッグ&ドロップによる位置決め
+- 角のハンドルでサイズ変更できる透かし
+- テキストと画像の透かしモード
+- 間隔を調整できる、単一配置またはページ全体のタイル(繰り返し)レイアウト
+- ページごと、または全体への透かしの適用
+- プレビューでのページ単位の移動
+- 不透明度と回転のコントロール
+- ページ範囲によるフィルタリング
+
+## ユースケース
+
+- レビュー用に回覧する前に、下書き文書へ "DRAFT" の透かしを入れる
+- 機密性の高い財務レポートに "CONFIDENTIAL" の透かしを追加する
+- 会社のロゴ画像の透かしで文書にブランドを付ける
+- 見込み客と共有する製品ドキュメントに "SAMPLE" と押印する
+- 配布する PDF 資料に著作権表示を追加する
+
+## ヒント
+
+- ページを斜めに横切る透かしにするには、回転を約 45 度に設定し、フォントサイズを大きくします。
+- タイルモードにすると、トリミングしても透かしが何十個も残るため、文書の再利用がはるかに難しくなります。タイルにする場合は、下の文字が読めるように不透明度を下げてください。
+- 背景が透明な画像透かし(PNG 形式)は、文書の内容とより自然になじみます。
+- ページごとに異なる透かしテキストが必要な場合は、「すべてのページに適用」をオフにして、ページごとに移動しながら設定してください。
+
+## 関連ツール
+
+- [ヘッダーとフッター](./header-footer)
+- [スタンプの追加](./add-stamps)
+- [通し番号付け](./bates-numbering)
+- [PDFへ署名](./sign-pdf)
diff --git a/docs/ja/tools/adjust-colors.md b/docs/ja/tools/adjust-colors.md
new file mode 100644
index 00000000..0b4465aa
--- /dev/null
+++ b/docs/ja/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: 色の調整
+description: PDF の明るさ、コントラスト、彩度、色相、色温度、色合い、ガンマ、セピアを細かく調整します。
+---
+
+# 色の調整
+
+PDF 向けの本格的なカラーグレーディングツールキットです。明るさ、コントラスト、彩度、色相シフト、色温度、色合い、ガンマ、セピアの 8 つのパラメータを独立して調整でき、スライダーを動かすたびにライブプレビューが更新されます。
+
+## 使い方
+
+1. PDF ファイルをアップロードします。
+2. 最初のページのプレビューと色設定パネルが表示されたエディタが開きます。
+3. スライダーを動かして、各カラーパラメータを調整します。プレビューはリアルタイムで更新されます。
+4. **リセット**をクリックすると、すべてのスライダーがデフォルトの位置に戻ります。
+5. **適用**をクリックすると、すべてのページを処理して、調整後の PDF をダウンロードします。
+
+## オプション
+
+- **明るさ** -- ページ全体を明るくまたは暗くします(-100 ~ +100)。
+- **コントラスト** -- 明るい部分と暗い部分の差を大きくまたは小さくします(-100 ~ +100)。
+- **彩度** -- 色の鮮やかさを上げ下げします(-100 ~ +100)。-100 にするとグレースケールになります。
+- **色相シフト** -- 色相環を回転させて、すべての色を一様にずらします。
+- **色温度** -- 色を暖色系(黄色やオレンジ)または寒色系(青)にずらします。
+- **色合い** -- 緑またはマゼンタの色かぶりを加えます。
+- **ガンマ** -- ガンマカーブを使って中間調の明るさを調整します。1.0 未満の値では中間調が暗くなり、1.0 を超える値では明るくなります。
+- **セピア** -- クラシックなセピア調の効果を適用します。値が大きいほど、茶色の色味が強くなります。
+
+## 機能
+
+- 独立して調整できる 8 つのカラーパラメータ
+- スライダーの変更に即座に反応するライブプレビュー
+- すぐにデフォルトへ戻せるリセットボタン
+- 文書内のすべてのページを処理
+- あらゆる PDF の内容(テキスト、画像、グラフィック)に対応
+
+## ユースケース
+
+- 暗いスキャンを明るくしたり、露出オーバーのページを補正したりする
+- カラフルな文書の彩度を下げて、印刷時のインク使用量を減らす
+- セピア調を適用して、証明書や賞状にアンティークな雰囲気を出す
+- PDF に埋め込まれた写真の色温度を補正する
+- 色あせたスキャン文書や低品質なスキャン文書のコントラストを上げる
+
+## ヒント
+
+- 手早くグレースケールに変換するには、彩度のスライダーを -100 まで動かします。
+- ガンマのスライダーは、中間調が暗すぎる、または明るすぎるスキャン文書の読みやすさを改善するのに特に役立ちます。
+- 他の画像エフェクト系ツールと同様に、このツールは各ページをラスタライズします。出力は画像ベースになるため、テキストは選択できなくなります。
+
+## 関連ツール
+
+- [色の反転](./invert-colors)
+- [スキャナー効果](./scanner-effect)
+- [背景色](./background-color)
diff --git a/docs/ja/tools/alternate-merge.md b/docs/ja/tools/alternate-merge.md
new file mode 100644
index 00000000..69aa11bf
--- /dev/null
+++ b/docs/ja/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: ページの交互結合と混合
+description: 各ファイルのページを交互に差し込んで PDF を結合し、しおりも保持します。
+---
+
+# ページの交互結合と混合
+
+複数の PDF ファイルのページを交互に差し込んで、文書間でページが入れ替わるようにします。通常の結合ではファイルが単に端から端へつながるだけですが、ファイル A の 1 ページ目、ファイル B の 1 ページ目、ファイル A の 2 ページ目、というように並べたいときに使うツールです。
+
+## 使い方
+
+1. ドロップゾーンを使って、2 つ以上の PDF ファイルをアップロードします。
+2. ツールに、各ファイルのページ数とファイルサイズが表示されます。
+3. グリップハンドルをドラッグして、差し込みの順序でどのファイルのページを先に置くかを並べ替えます。
+4. **ページを混合**をクリックして、交互に差し込んだ出力を作成します。
+5. 結果は `alternated-mixed.pdf` としてダウンロードされます。
+
+## 機能
+
+- 任意の数の PDF(最低 2 つ)にわたってページを交互に差し込み
+- ファイルをドラッグ&ドロップで並べ替えて、差し込みの優先順位を制御
+- 元の文書のしおりを保持
+- アップロードした各ファイルのページ数とファイルサイズを表示
+- 専用の Web ワーカーで処理するため、UI の応答性を維持
+
+## ユースケース
+
+- 奇数ページと偶数ページを別々にスキャンした両面スキャンを組み直す
+- 問題用紙と解答集を組み合わせて、各問題の直後に解答が来るようにする
+- 2 言語の文書をページごとに結合する(例: 片面に英語、次の面に翻訳)
+- 片面スキャナーで読み取った表と裏のスキャンを交互に差し込む
+
+## ヒント
+
+- 元の PDF のページ数が異なる場合は、短い文書のページが先になくなり、長い文書の残りのページは末尾にまとめて配置されます。
+- ファイルの順序は重要です。リストの先頭のファイルが、出力の最初のページになります。必要に応じてドラッグして並べ替えてください。
+
+## 関連ツール
+
+- [PDFの結合](./merge-pdf)
+- [Organize & Duplicate](./organize-pdf)
+- [PDFの分割](./split-pdf)
diff --git a/docs/ja/tools/background-color.md b/docs/ja/tools/background-color.md
new file mode 100644
index 00000000..2d622da8
--- /dev/null
+++ b/docs/ja/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: 背景色
+description: PDF のすべてのページの背景色を、上にある内容をそのまま保ったまま変更します。
+---
+
+# 背景色
+
+PDF の既存の内容の背後に、単色の背景色を設定します。このツールは各ページに色付きの長方形を作成し、その上に元の内容を重ねるため、テキスト、画像、グラフィックは新しい背景の上でもすべてはっきり見えます。
+
+## 使い方
+
+1. PDF ファイルをアップロードします。
+2. カラーセレクターで背景色を選びます。デフォルトは明るい黄色(#FFFFCC)です。
+3. **背景色を変更**をクリックして処理します。
+4. 更新された PDF が自動的にダウンロードされます。
+
+## オプション
+
+- **背景色** -- 好きな単色を選べる標準のカラーピッカーです。デフォルトは明るい黄色です。
+
+## 機能
+
+- すべてのページに均一な背景色を適用
+- 元の内容(テキスト、画像、ベクターグラフィック)を色付きレイヤーの上にすべて保持
+- 元のページサイズを維持
+- ページ数に関係なく利用可能
+
+## ユースケース
+
+- 明るいクリーム色やアイボリーの背景を付けて、文書に紙のような柔らかい印象を与える
+- カテゴリーごとに異なる背景色を適用して、文書セットを色分けする
+- 同じ文書を、読者に応じて見た目の異なるバージョンにする
+- 文書を画面に映すときに、明るい背景の色味を加えて読みやすくする
+
+## ヒント
+
+- 明るく落ち着いた色が最適です。テキストがすでに明るい色でない限り、非常に暗い背景ではテキストが読みにくくなることがあります。
+- 背景色とテキストの色の両方を変えたい場合は、先に背景色を適用してから、その結果に対して [テキストの色の変更](./text-color) を使用してください。
+- このツールは PDF の構造レベルで動作し(ラスタライズではありません)、出力でもテキストを選択、検索できます。
+
+## 関連ツール
+
+- [テキストの色の変更](./text-color)
+- [色の反転](./invert-colors)
+- [色の調整](./adjust-colors)
diff --git a/docs/ja/tools/bates-numbering.md b/docs/ja/tools/bates-numbering.md
new file mode 100644
index 00000000..a4cadf96
--- /dev/null
+++ b/docs/ja/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: 通し番号付け
+description: カスタマイズ可能なテンプレート、桁数、フォント、位置を使って、1 つまたは複数の PDF にベイツ番号を付けます。
+---
+
+# 通し番号付け
+
+ベイツ番号は、PDF のすべてのページに連続した識別子を押印する方式です。法的手続き、監査、コンプライアンス業務で文書にラベルを付ける際の標準的な方法です。このツールは複数のファイル、カスタマイズ可能なテンプレートに対応し、個別に番号を付けた PDF、または 1 つの ZIP アーカイブとして出力します。
+
+## 使い方
+
+1. 1 つ以上の PDF ファイルをアップロードします。複数のファイルを一度にドラッグできます。
+2. スタイルのプリセットを選ぶか、カスタムテンプレートを作成します。
+3. 位置、フォント、サイズ、色、開始番号を設定します。
+4. **ベイツ番号を適用**をクリックして処理します。
+5. ファイルが 1 つの場合は直接ダウンロードされます。複数のファイルは ZIP アーカイブとしてダウンロードされます。
+
+## オプション
+
+- **スタイルプリセット** -- 組み込みの形式から選択します。
+ - 証拠 + 事件 + ベイツ + ページ(例: "Exhibit 1 Case XYZ 000001 Page 1")
+ - 証拠 + 事件 + ベイツ(ページ番号なし)
+ - 事件 + ベイツ
+ - ベイツ番号のみ(例: "000001")
+ - カスタム(独自のテンプレートを作成)
+- **スタイルのカスタマイズ** -- プレースホルダー `[BATES]`、`[PAGE]`、`[FILE]`、`[FILENAME]` を使ったテンプレート文字列です。
+- **ベイツ番号の桁数** -- ゼロ埋めするベイツ番号の桁数(3 ~ 6)です。カスタムモードでのみ表示されます。
+- **位置** -- ヘッダーまたはフッター、左、中央、右から選びます。
+- **ベイツ開始番号** -- 最初のベイツ番号です。デフォルトは 1 です。番号はファイルをまたいで続きます。
+- **ファイルカウンターの開始番号** -- `[FILE]` プレースホルダーの開始番号です。
+- **フォント** -- Helvetica、Times New Roman、Courier から選びます。
+- **フォントサイズ** -- 押印するテキストのサイズです。
+- **色** -- ベイツ番号のテキストの色を選ぶカラーピッカーです。
+
+## 機能
+
+- アップロードしたすべてのファイルでベイツ番号がどう表示されるかを確認できるライブプレビュー
+- 文書をまたいで連続した番号を付けられる複数ファイル対応
+- ファイルをドラッグ&ドロップで並べ替えて、番号付けの順序を制御
+- 6 通りの位置指定(ヘッダー/フッター、左/中央/右)
+- ページサイズの違いに対応する、適応型の余白計算
+- 複数ファイルのバッチ向け ZIP 出力
+- 高い柔軟性を実現するテンプレートプレースホルダー
+
+## ユースケース
+
+- 訴訟の証拠開示文書に、連続した証拠番号を押印する
+- 数十のファイルにまたがる監査証拠パッケージに番号を付ける
+- コンプライアンス文書に規制の参照番号を付与する
+- 特許出願の添付資料に、事件固有の識別子を付ける
+
+## ヒント
+
+- 処理する前に、ファイルリストでファイルをドラッグして並べ替えてください。ベイツ番号の順序は、この並び順に従います。
+- `[FILENAME]` プレースホルダーを使うと、元のファイル名を押印に含められるため、ページを元の文書までたどりやすくなります。
+- プレビューボックスは設定を変更するとリアルタイムで更新されるので、処理する前に形式を確認できます。
+
+## 関連ツール
+
+- [ページ番号](./page-numbers)
+- [ページラベルの追加](./add-page-labels)
+- [ヘッダーとフッター](./header-footer)
diff --git a/docs/ja/tools/bmp-to-pdf.md b/docs/ja/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..5388de2e
--- /dev/null
+++ b/docs/ja/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMPからPDF
+description: BMP ビットマップ画像を、サーバーにアップロードすることなく、ブラウザ上で直接 PDF 形式に変換します。
+---
+
+# BMPからPDF
+
+Windows ビットマップ(BMP)ファイルを PDF に変換します。BMP は非圧縮の画像形式で、レガシーシステム、医用画像、産業用スキャナーなどで今も使われています。このツールなら、何もインストールせずに PDF へ変換できます。
+
+## 対応形式
+
+| 形式 | 拡張子 |
+| :--- | :----- |
+| BMP | `.bmp` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、BMP ファイルをドラッグ&ドロップします。
+2. ファイルリストを確認します。ファイルを追加したり、不要なファイルを削除したりできます。
+3. **PDF に変換**をクリックします。出力は `from_bmps.pdf` としてダウンロードされます。
+
+各 BMP はキャンバスに描画されて PNG として書き出され、その後 pdf-lib を使って PDF に埋め込まれます。ページサイズは元の画像のサイズと一致します。
+
+## オプション
+
+このツールには、追加の品質設定はありません。画像は元の解像度のまま、ロスレスの PNG として PDF に埋め込まれます。
+
+## ユースケース
+
+- BMP で保存されたレガシーなスキャン文書を、アーカイブ用の PDF に変換する
+- 古い Windows アプリケーションの BMP スクリーンショットを、共有しやすい文書にする
+- 既定で BMP を出力する医療用や産業用のスキャナーの出力を処理する
+- 古い画像アーカイブを、より持ち運びやすい形式へ移行する
+
+## ヒント
+
+- BMP ファイルは非圧縮のため、サイズが大きくなりがちです。画像は内部で PNG に再エンコードされるため、できあがる PDF は大幅に小さくなります。
+- BMP ファイルと他の画像形式が混在している場合は、[画像からPDF](./image-to-pdf) ツールを使えば、すべてを 1 回のバッチで変換できます。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [PNGからPDF](./png-to-pdf)
+- [TIFFからPDF](./tiff-to-pdf)
diff --git a/docs/ja/tools/bookmark.md b/docs/ja/tools/bookmark.md
new file mode 100644
index 00000000..8e1969ec
--- /dev/null
+++ b/docs/ja/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: しおりの編集
+description: ビジュアルエディターとCSV/JSON対応で、PDFのしおりを追加、編集、インポート、エクスポート、削除できます。
+---
+
+# しおりの編集
+
+しおりエディターを使えば、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)
diff --git a/docs/ja/tools/cbz-to-pdf.md b/docs/ja/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..33dee37c
--- /dev/null
+++ b/docs/ja/tools/cbz-to-pdf.md
@@ -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ファイルをドラッグ&ドロップします。両方の形式を1回のバッチに混在させることもできます。
+2. 一覧に表示されたファイルを確認します。不要なものは削除し、**ファイルを追加** をクリックしてさらに追加できます。
+3. **PDFに変換** をクリックします。CBZファイルの場合、ツールはアーカイブを展開し、画像ファイルを名前の自然順で並べ、各画像の実際の形式を判定して、pdf-libでPDFに埋め込みます。CBRファイルは代わりにPyMuPDFエンジンで処理されます。
+4. 1ファイルの場合はPDFとしてダウンロードされます。複数ファイルの場合は `comic-converted.zip` という名前のZIPアーカイブになります。
+
+## オプション
+
+設定は不要です。各画像は元のサイズに合わせたページになるため、見開きは横長のまま、単ページは縦長のままになります。
+
+## 活用例
+
+- PDFには対応していてもCBZ/CBRには対応していないタブレットやスマートフォンのアプリでコミックを読む
+- デジタルコミックの特定のページを印刷する
+- コミックのコレクションを、どのファイルビューアーでも開ける形式で保管する
+- 専用のコミックリーダーを持っていない人にコミックを共有する
+
+## ヒント
+
+- アーカイブ内の画像は自然順で並べ替えられます(そのため `page2.jpg` は `page10.jpg` より前になります)。正しいページ順にするため、ファイル名には一貫した番号を付けてください。
+- コンバーターは、ファイル拡張子ではなくバイナリシグネチャで画像形式を判定します。誤って `.jpg` と名付けられたPNGでも正しく埋め込まれます。
+- CBZファイルはPyMuPDFエンジンを読み込まずにブラウザ内ですべて処理されるため、CBRファイルより高速に変換できます。
+
+## 関連ツール
+
+- [EPUBからPDF](./epub-to-pdf)
+- [MOBIからPDFへの変換](./mobi-to-pdf)
+- [画像からPDF](./image-to-pdf)
diff --git a/docs/ja/tools/change-permissions.md b/docs/ja/tools/change-permissions.md
new file mode 100644
index 00000000..ff6aed9d
--- /dev/null
+++ b/docs/ja/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: 権限の変更
+description: 印刷、コピー、編集、注釈に関するPDFの利用権限を設定または変更します。256ビットAES暗号化を使用します。
+---
+
+# 権限の変更
+
+受け取った人がPDFで何をできるかを細かく調整します。ファイルをパスワードで保護するだけの基本的な暗号化とは異なり、このツールでは、印刷、コピー、編集、注釈、フォーム入力、文書の組み立て、ページの抽出を個別に許可または禁止でき、そのすべてが256ビットAES暗号化によって適用されます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. PDFがすでに暗号化されている場合は、**現在のパスワード** を入力します。
+3. **新しいユーザーパスワード**(開くために必要)や **新しいオーナーパスワード**(権限を管理)を設定します。
+4. チェックボックスで、個々の権限のオンとオフを切り替えます。
+5. **権限の変更** をクリックします。
+6. 更新されたPDFをダウンロードします。
+
+新しいパスワード欄を両方とも空にすると、ツールはPDFを完全に復号し、すべての暗号化と制限を解除します。
+
+## 権限の設定項目
+
+| 権限 | 制御する内容 |
+| ------------------------ | -------------------------------------------------------- |
+| **印刷を許可** | 文書を印刷できるかどうか |
+| **コピーを許可** | テキストや画像を選択してコピーできるかどうか |
+| **変更を許可** | 文書の内容を編集できるかどうか |
+| **注釈を許可** | コメント、ハイライト、スタンプを追加できるかどうか |
+| **フォーム入力を許可** | インタラクティブなフォームフィールドに入力できるかどうか |
+| **文書の組み立てを許可** | ページの挿入、削除、回転ができるかどうか |
+| **ページの抽出を許可** | 個々のページを抽出できるかどうか |
+
+すべての権限は、適用するためにオーナーパスワードが必要です。オーナーパスワードがないと、権限フラグはほとんどのPDFリーダーで無視されます。
+
+## PDFにおける権限のしくみ
+
+PDFの権限は暗号化仕様の一部です。暗号化辞書にビットフラグとして保存され、準拠したPDFリーダーによって適用されます。重要な違いは次のとおりです。
+
+- **ユーザーパスワード**: ファイルを開くために必要です。
+- **オーナーパスワード**: 権限の変更や制限の解除に必要です。これがない場合、権限フラグによってユーザーが実行できる操作が制御されます。
+
+オーナーパスワードだけを設定した場合(ユーザーパスワードなし)、誰でもファイルを開けますが、許可された操作に制限されます。両方を設定した場合は、開くのにパスワードが必要で、認証後も制限が適用されます。
+
+## 活用例
+
+- 閲覧と印刷はできても、編集やコピーはできないレポートを配布する
+- 受け取った人が記入はできても変更はできない契約書テンプレートを共有する
+- 画像のコピーを無効にしたPDFカタログを公開する
+- 構造の変更は防ぎつつ、レビュー用の下書きには注釈を許可する
+
+## ヒント
+
+- 効果を出すには、必ずオーナーパスワードを設定してください。オーナーパスワードのない権限は強制できません。
+- 一部のサードパーティ製PDFツールは権限フラグを無視します。より強力に保護したい場合は、PDFを画像化するか、DRMの利用を検討してください。
+- このツールを使うと、古いRC4暗号化のPDFをAES-256にアップグレードできます。
+
+## 関連ツール
+
+- [PDFの暗号化](./protect-pdf): 細かな権限設定を伴わない、シンプルなパスワード保護
+- [PDFの復号化](./unlock-pdf): 暗号化を完全に解除
+- [制限の解除](./remove-restrictions): オーナーパスワードがある場合に、すべての制限を取り除く
diff --git a/docs/ja/tools/combine-single-page.md b/docs/ja/tools/combine-single-page.md
new file mode 100644
index 00000000..02b2f99d
--- /dev/null
+++ b/docs/ja/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: 単一ページに結合
+description: PDFのすべてのページを、1つの連続した縦または横のスクロールページにつなぎ合わせます。
+---
+
+# 単一ページに結合
+
+PDFのすべてのページを、1枚の長いページに結合します。ページは縦(スクロールのよう)または横(並べて)につなぎ合わされ、出力は連続した1ページになります。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. レイアウトの方向を選びます。**縦**(ページを上から下に積み重ねる)または **横**(ページを横に並べる)です。
+3. ページ間の間隔をポイント単位で設定します。
+4. ページ間の隙間の背景色を選びます。
+5. 必要に応じて、区切り線(ページ間の細い線)を有効にし、太さと色を設定します。
+6. 処理ボタンをクリックします。出力は1ページのPDFになります。
+
+## 機能
+
+- ページを縦または横につなぎ合わせ
+- ページ間隔を設定可能
+- 隙間部分の背景色ピッカー
+- 太さと色を調整できる区切り線(任意)
+- 元の各ページを、結合したキャンバスに原寸の解像度で描画
+
+## オプション
+
+| オプション | 説明 |
+| ------------------ | -------------------------------- |
+| **向き** | 縦(積み重ね)または横(並べる) |
+| **ページ間隔** | ページ間の隙間(ポイント単位) |
+| **背景色** | ページ間の領域の色 |
+| **区切り線を追加** | ページ間の細い線のオン/オフ |
+| **区切り線の太さ** | 線の太さ(ポイント単位) |
+| **区切り線の色** | 区切り線の色 |
+
+## 活用例
+
+- 複数ページのワイヤーフレームやデザインモックアップから、1枚の長い画像を作る
+- Webへの埋め込み用に、文書を連続してスクロールできる表示にする
+- 複数ページのコミックやストーリーボードを1本の帯につなぎ合わせる
+- 連続したページを、レビュー用にパノラマ表示にする
+
+## ヒント
+
+- 縦向きは縦長ページの文書に最適です。横向きは横長のコンテンツに向いています。
+- ページ数の多い文書は、非常に縦長または横長の出力になります。極端に大きな単一ページは、一部のPDFビューアーでは扱いにくい場合があります。
+- コントラストのある色の区切り線を追加すると、元のページの終わりと次のページの始まりがわかりやすくなります。
+
+## 関連ツール
+
+- [N-Up PDF](./n-up-pdf)
+- [PDFの結合](./merge-pdf)
+- [ページの分割](./divide-pages)
diff --git a/docs/ja/tools/compare-pdfs.md b/docs/ja/tools/compare-pdfs.md
new file mode 100644
index 00000000..c7f64f2f
--- /dev/null
+++ b/docs/ja/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: PDFの比較
+description: 2つのPDF文書を、並べて表示またはオーバーレイモードで比較し、変更を詳細に検出して分類します。
+---
+
+# PDFの比較
+
+2つのPDFをアップロードすると、その間で何が変わったのかが正確にわかります。このツールはページを賢く対応付け、テキスト、画像、注釈、ヘッダー、書式の違いを検出して、並べて表示またはオーバーレイ表示で示します。
+
+## 使い方
+
+1. 2つのPDFファイルをアップロードします。元のファイル(左)と改訂版(右)です。
+2. ツールが、内容のシグネチャを使って文書間のページを対応付けます。
+3. 表示モードを選びます。**並べて表示** または **オーバーレイ** です。
+4. ページネーションのコントロールで、ページの組を移動します。
+5. 違いはハイライトされ、分類されます。フィルターパネルを使って、特定の変更タイプに絞り込めます。
+6. 必要に応じて、比較結果をPDFレポートとしてエクスポートします。
+
+## 機能
+
+- 内容の類似度に基づく自動ページ対応付け
+- 並べて表示とオーバーレイの比較ビュー
+- 変更の分類:テキスト、画像、ヘッダー/フッター、注釈、書式、背景
+- カテゴリごとのフィルター切り替えで、特定の変更タイプを表示または非表示
+- クエリで絞り込めるテキスト変更の検索
+- スキャン文書を比較するためのOCR対応
+- 詳細確認用のズーム操作
+- 並べて表示モードでのパネル間の同期スクロール
+- 比較結果をPDFとしてエクスポート
+
+## オプション
+
+| オプション | 説明 |
+| ---------------------- | --------------------------------------------------------------------------- |
+| **表示モード** | 並べて表示またはオーバーレイ |
+| **OCR** | スキャン文書の比較用にOCRを有効/無効にする |
+| **OCR言語** | OCRによるテキスト抽出の言語 |
+| **カテゴリフィルター** | テキスト、画像、ヘッダー/フッター、注釈、書式、背景の変更の表示を切り替える |
+| **変更の範囲** | オーバーレイモードで、すべての変更とコンテンツのみを切り替える |
+| **ズーム** | 詳細確認のための拡大率を調整する |
+
+## 活用例
+
+- 契約書の改訂版を確認し、版の間で何が変わったかを正確に見つける
+- デザインのモックアップを比較し、PDFへのエクスポート結果が期待どおりか確認する
+- すべての編集を追跡する必要がある規制対象の業界で、文書の変更を監査する
+- PDFの変換処理で、元の内容が正確に保たれたかを検証する
+- 翻訳文書を原文と照らし合わせ、レイアウトの変化を確認する
+
+## ヒント
+
+- オーバーレイ表示は、2つの文書を重ねて表示するため、位置のずれや画像のサイズ変更といった空間的な違いがすぐにわかります。
+- テキストレイヤーのないスキャン文書を比較するときは、OCRを有効にしてください。比較エンジンがページ画像からテキストを抽出します。
+- カテゴリフィルターで重要なものに集中しましょう。たとえば、テキスト内容の違いだけが気になるときは、書式の変更を非表示にします。
+
+## 関連ツール
+
+- [メタデータの表示](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [PDFの結合](./merge-pdf)
diff --git a/docs/ja/tools/compress-pdf.md b/docs/ja/tools/compress-pdf.md
new file mode 100644
index 00000000..39927f2b
--- /dev/null
+++ b/docs/ja/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: PDFの圧縮
+description: Hyper Compressエンジンで、PDFのファイルサイズを最大90%削減します。目標ファイルサイズ、バッチ処理、カスタム品質設定に対応。
+---
+
+# PDFの圧縮
+
+PDFファイルを壊さずに小さくします。PDFの圧縮は、BentoPDF独自の圧縮エンジンである [Hyper Compress](https://www.bentopdf.com/hyper-compress) を使用しています。画像の再圧縮、フォントのサブセット化と統合、埋め込みサムネイルやアプリケーション固有の非公開データなど不要なデータの削除を行います。PDFの機能は完全に保たれ、テキストは選択でき、リンクやフォームフィールドも動作します。
+
+Hyper CompressはWebAssemblyにコンパイルされてBentoPDFに同梱されているため、追加のセットアップなしで、オフラインやエアギャップ環境でも圧縮できます。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、1つ以上のPDFをアップロードします。
+2. **圧縮レベル** を選びます。低、中、高、ロスレスのいずれかです。
+3. 必要に応じて **目標ファイルサイズ** を入力するか、**詳細設定** を開いて、**グレースケールに変換** を含むきめ細かな設定をします。
+4. **PDFを圧縮** をクリックします。複数のファイルの場合は、1つのZIPとしてダウンロードされます。
+
+## 特殊な文書
+
+- **デジタル署名付きPDF** は、変更すると署名が無効になるため、そのまま返されます。詳細設定で **コンテンツ保護を上書き** をオンにすると、署名が削除されて圧縮されます。見える署名はページに残りますが、ファイルは署名済みではなくなります。
+- **PDF/Aファイル** は、圧縮後にPDF/Aのラベルを失います。これは、もはや満たしていない準拠を主張しないようにするためです。代わりにファイルの準拠を保ちたい場合は、詳細設定で **PDF/Aを維持** をオンにします。
+- **パスワード保護されたPDF** には、ファイルカードにパスワード欄が表示されます。そこにパスワードを入力すると、Hyper Compressがファイルを自分で開くため、別途ロック解除の手順は不要です。ロックされたファイルが2つ以上ある場合は、同じパスワードを使うすべてのファイルを、共有の1つの欄でロック解除できます。圧縮後のコピーにはパスワードがありません。再度設定するには [PDFの暗号化](./protect-pdf) を使用してください。
+- **テキストレイヤーのないスキャン** は、詳細設定の **ページを画像化** を使うと、さらに小さくできます。これは各ページを1枚の最適化された画像に置き換えます。OCR済みのスキャンを含め、選択可能なテキストを持つ文書では、**コンテンツ保護を上書き** がオンでない限りスキップされます。オンにした場合は、テキストのページも画像になるため、テキストは選択できなくなり、リンクも動作しなくなります。
+
+## 圧縮レベル
+
+| レベル | 画像品質 | 最大解像度 | 最適な用途 |
+| ------------ | -------------- | ---------- | --------------------------------- |
+| **低** | 80 | 200 DPI | 見た目の品質を保ちたいとき |
+| **中** | 50 | 150 DPI | 日常的な文書 |
+| **高** | 20 | 72 DPI | メールの添付、Webへのアップロード |
+| **ロスレス** | 画像はそのまま | 変更なし | アーカイブ用のコピー |
+
+高では、標準の14種類のPDFフォントに加え、安全な場合はArialなどの類似フォントも埋め込みを解除します。
+
+## 目標ファイルサイズ
+
+KBまたはMBでサイズを入力すると、Hyper Compressは、選んだレベルから始めて、そのサイズに収まる最良の画像品質を探します。文書がそこまで小さくならない場合は、作成できる最小のバージョンが出力され、その旨のメッセージが表示されます。[PDFを1MBに圧縮](https://www.bentopdf.com/compress-pdf-to-1mb) のような専用ページは、目標があらかじめ入力された状態で開きます。
+
+## 詳細設定
+
+詳細設定パネルを開くと、Hyper Compressを直接調整できます。圧縮レベルを選ぶと、これらはそのレベルの値にリセットされ、どれかを編集すると、レベルはカスタムに切り替わります。
+
+- **コンテンツ保護を上書き**: デフォルトでは、Hyper Compressは署名付きPDFには手を加えず、テキストのあるページを画像化しません。これをオンにすると、その両方を回避します。レベルを変更してもオンのままです。
+
+- **画像**: 画像品質、最大解像度、強制的な再サンプリング、色の削減、見えない画像領域のクリッピング、代替画像の削除、カラープロファイルの簡素化、JPEG 2000、ロスレスモード
+- **フォント**: サブセット化、重複の統合、標準フォントとその類似フォントの埋め込み解除
+- **コンテンツ**: 注釈、フォームフィールド、リンクの平坦化
+- **クリーンアップ**: サムネイル、アプリケーションデータ、記事スレッド、Webキャプチャ情報、構造ツリー、出力インテントの削除
+- **画像化**: 画像のみのスキャンで、ページを画像に置き換える。選択可能なテキストがある文書ではスキップ
+- **出力**: PDF/Aを維持、およびBrotli圧縮に対応するPDF 2.0リーダー向けのBrotli圧縮
+
+## 活用例
+
+- 50 MBのレポートを、メールの添付ファイルの上限以下にする
+- 目標ファイルサイズを使って、スキャンをポータルの厳しいアップロード上限以下にする
+- マーケティング用PDFを最適化して、Webサイトでのダウンロードを速くする
+- ストレージコストが問題になる大量の文書セットをアーカイブする
+- メッセージアプリでPDFを共有するときのモバイルデータ使用量を減らす
+
+## ヒント
+
+- まずは中から始めましょう。それでも大きすぎる場合は、目標ファイルサイズを設定するか、高に上げてください。
+- テキストレイヤーのないスキャンには、詳細設定の「ページを画像化」をオンにします。
+- 詳細設定の「グレースケールに変換」は、カラーが多い文書のファイルサイズを減らせます。
+
+## 関連ツール
+
+- [PDFの線形化](./linearize-pdf): 圧縮したPDFをWebでの高速表示向けに最適化
+- [PDFの画像化](./rasterize-pdf): テキストのあるページを含め、特定のDPIでページを画像に変換
+- [PDFの修復](./repair-pdf): 他の場所での圧縮で壊れたPDFを修復
+- [メタデータの削除](./remove-metadata): プライバシーのために隠れたデータを削除
diff --git a/docs/ja/tools/crop-pdf.md b/docs/ja/tools/crop-pdf.md
new file mode 100644
index 00000000..bc652cb7
--- /dev/null
+++ b/docs/ja/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PDFのトリミング
+description: Cropper.jsを使ったエディターで、各ページにトリミング領域を描いて、PDFのページを視覚的にトリミングします。
+---
+
+# PDFのトリミング
+
+視覚的なトリミング画面で、PDFページの余白を切り取ります。各ページ上に直接トリミング用の長方形を描き、結果をプレビューして、トリミングを適用します。ページごとに異なるトリミング領域を設定することも、文書全体に同じトリミングを適用することもできます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. トリミングエディターが開き、ドラッグできるトリミングのオーバーレイが付いた最初のページが表示されます。
+3. 辺や角をドラッグして、トリミングの長方形を調整します。
+4. ページ移動ボタンでページを切り替え、それぞれのトリミング領域を設定します。
+5. **トリミング** をクリックして適用し、結果をダウンロードします。
+
+## 機能
+
+- 精密な調整用のハンドルを備えた、Cropper.js搭載のビジュアルトリミングエディター
+- ページごとに移動して、個別のトリミング領域を設定
+- トリミング設定をページごとに保存するため、ページによって異なるトリミングを定義可能
+- 選択したトリミング領域のライブプレビュー
+- あらゆるページサイズや向きのPDFに対応
+
+## 活用例
+
+- スキャン文書の広い余白を取り除いて、内容の領域に集中させる
+- プリプレス用PDFから、プリンターのトンボや見当マークを切り取る
+- 講義スライドから、発表者ノートの領域を取り除く
+- 文書の抜粋を共有する前に、すべてのページからヘッダーやフッターを取り除く
+- 特定の画面や印刷レイアウトに合わせて、ページのサイズを変更する
+
+## ヒント
+
+- トリミングのオーバーレイは、自由にサイズ変更や移動ができます。角をドラッグすると縦横比を保ったまま、辺をドラッグすると1方向だけ調整できます。
+- すべてのページに同じトリミングが必要な文書では、最初のページで設定してください。ページを移動しても、ツールがトリミング領域を記憶しています。
+- 視覚的にトリミングするのではなく、ページサイズを統一したい場合は、ページサイズを固定ツールのほうが適していることがあります。
+
+## 関連ツール
+
+- [PDFエディター](./edit-pdf)
+- [ページ番号](./page-numbers)
+- [空白ページの削除](./remove-blank-pages)
diff --git a/docs/ja/tools/csv-to-pdf.md b/docs/ja/tools/csv-to-pdf.md
new file mode 100644
index 00000000..c9a005ab
--- /dev/null
+++ b/docs/ja/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSVからPDF
+description: CSVの表計算ファイルを、ブラウザ上で書式の整ったPDFの表に直接変換します。
+---
+
+# CSVからPDF
+
+CSVファイルを、すっきりとした書式のPDF文書に変換します。各CSVは解析され、出力PDFの中で表として描画されます。受け取る人が表計算ソフトを持っていなくても、表形式のデータを印刷したり共有したりしたいときに便利です。
+
+## 対応形式
+
+| 形式 | 拡張子 |
+| :--- | :----- |
+| CSV | `.csv` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、1つ以上のCSVファイルをドラッグ&ドロップします。
+2. ファイル一覧を確認します。ファイルを追加したり、不要なものを削除したりできます。
+3. **PDFに変換** をクリックします。進行状況インジケーターが変換の状態を示します。
+4. 1ファイルの場合は、PDFとして直接ダウンロードされます。複数ファイルの場合は `csv-converted.zip` にまとめられます。
+
+## オプション
+
+このツールに追加の設定はありません。CSVは自動的に解析され、表として整形されます。
+
+## 出力
+
+| 入力数 | 出力 |
+| :------------ | :------------------------------------------------------------------- |
+| 1ファイル | 単一のPDFをダウンロード(例: `data.pdf`) |
+| 2ファイル以上 | ZIPアーカイブ(`csv-converted.zip`)に、ファイルごとに1つのPDFを格納 |
+
+## 活用例
+
+- エクスポートしたデータベースのレポートを、印刷できるPDFの表に変換する
+- Excelを持っていない人に、財務データや在庫リストを共有する
+- コンプライアンス文書用に、CSVのログファイルのPDF版を作成する
+- 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)
diff --git a/docs/ja/tools/delete-pages.md b/docs/ja/tools/delete-pages.md
new file mode 100644
index 00000000..09f7bfaa
--- /dev/null
+++ b/docs/ja/tools/delete-pages.md
@@ -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)
diff --git a/docs/ja/tools/deskew-pdf.md b/docs/ja/tools/deskew-pdf.md
new file mode 100644
index 00000000..d5fbc408
--- /dev/null
+++ b/docs/ja/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDFの傾き補正
+description: OpenCVの傾き検出を使って、スキャンしたPDFの傾いたページを自動で補正します。しきい値とDPIを調整できます。
+---
+
+# PDFの傾き補正
+
+スキャンした文書が完全にまっすぐなことはまれです。わずかな傾きでも、OCRの精度が下がり、印刷の見た目も雑になります。このツールはOpenCVの画像処理アルゴリズムを使って各ページの傾きの角度を検出し、水平に戻すよう回転させます。
+
+## 使い方
+
+1. スキャンしたPDFを1つ以上アップロードします。
+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の構造上の問題を修復
diff --git a/docs/ja/tools/digital-sign-pdf.md b/docs/ja/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..e304fc19
--- /dev/null
+++ b/docs/ja/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: 電子署名
+description: X.509証明書を使って、PDFに暗号化による電子署名を追加します。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 | テキストベースの形式。証明書と秘密鍵の両方を1つのファイルに含める必要があります。暗号化された秘密鍵にも対応。 |
+
+## 可視署名のオプション
+
+有効にすると、PDFのページに可視の署名ブロックが描画されます。
+
+- **位置**: X/Y座標と、幅/高さ(ポイント単位)
+- **ページ**: 最初のページ、最後のページ、すべてのページ、または特定のページ番号
+- **画像**: PNG、JPG、WebPの画像をアップロード(手書きの署名、社印など)
+- **テキスト**: 色とフォントサイズを設定できるカスタムテキスト。画像もテキストも指定しない場合、ツールは証明書のコモンネームと現在の日付からテキストを自動生成します。
+
+## 署名のメタデータ
+
+- **理由**: 文書に署名した理由(例: 「承認済み」、「確認済み」)
+- **場所**: 署名を行った場所(例: 「New York, NY」)
+- **連絡先**: 署名者への連絡方法(例: メールアドレス)
+
+## インターネット接続について
+
+署名にはインターネット接続が必要な場合があります。署名ライブラリは、証明書の認証局情報アクセス(AIA)拡張に埋め込まれたURLから、証明書チェーンを取得します。それらのサーバーに到達できない場合、チェーンの検証が必要な証明書では署名に失敗します。
+
+## 活用例
+
+- 契約書、提案書、合意書に、法的拘束力のある電子署名で署名する
+- PKIベースの認証が必要なワークフローで、公式文書を認証する
+- 規制対応のためにPDFの請求書に署名する(EU諸国の多くが、電子署名付きの電子請求書を求めています)
+- 設計図や品質文書に、組織としての承認を加える
+
+## ヒント
+
+- 自己署名証明書はテストには使えますが、Adobe Readerでは警告が表示されます。本番の文書には、信頼できる認証局の証明書を使ってください。
+- 可視署名は見た目だけのものです。暗号署名は、可視ブロックを有効にしているかどうかにかかわらず埋め込まれます。
+- 署名済みPDFを署名の検証ツールで確認し、署名が損なわれていないことを確かめましょう。
+
+## 関連ツール
+
+- [PDF署名を検証する](./validate-signature-pdf): 署名済みPDFの電子署名を検証
+- [PDFの平坦化](./flatten-pdf): 署名前にフォームを平坦化して、改変を防止
+- [PDFの暗号化](./protect-pdf): 電子署名に加えてパスワード保護を追加
+- [メタデータの削除](./remove-metadata): 署名前にメタデータを削除
diff --git a/docs/ja/tools/divide-pages.md b/docs/ja/tools/divide-pages.md
new file mode 100644
index 00000000..e840fd1e
--- /dev/null
+++ b/docs/ja/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: ページの分割
+description: PDFのページを、横または縦に、より小さなサブページに分割します。
+---
+
+# ページの分割
+
+PDFの各ページを、横または縦に分割して半分に切ります。1ページに入っている内容を別々のページに分けたいときに便利です。たとえば、2段組みのレイアウトを1枚の横長ページとしてスキャンした場合などです。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. 分割の方向を選びます。**縦**(左右の半分)または **横**(上下の半分)です。
+3. 必要に応じて、分割するページを限定するページ範囲を指定します。空欄にすると、すべてのページが分割されます。
+4. 処理ボタンをクリックして、分割したPDFを生成します。
+
+## 機能
+
+- 縦の分割:各ページを左右の半分に分割
+- 横の分割:各ページを上下の半分に分割
+- 特定のページだけを分割するページ範囲フィルター
+- 対象外のページは、そのまま通過
+- 再描画せずに、内容の品質を保持
+
+## 活用例
+
+- 2ページ分を1枚にスキャンしたページを分ける(例: 1枚に左右のページが写った本のスキャン)
+- 内容が左右に並んだ横向きのPDFを、個別の縦向きページに分割する
+- 縦長のインフォグラフィックやポスターを、上下の別々のセクションに分割する
+- 大判の文書を、標準サイズの用紙に印刷できるよう準備する
+
+## ヒント
+
+- ページ内の内容の配分が偏っていても、分割は正確に中央で行われます。左右非対称に分割したい場合は、代わりに [PDFのトリミング](./crop-pdf) を検討してください。
+- 分割の前後でページの回転が必要な場合は、このツールを [PDFの回転](./rotate-pdf) と組み合わせてください。
+
+## 関連ツール
+
+- [PDFの分割](./split-pdf)
+- [PDFのトリミング](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [PDFのポスタライズ](./posterize-pdf)
diff --git a/docs/ja/tools/duplex-collate.md b/docs/ja/tools/duplex-collate.md
new file mode 100644
index 00000000..15e48871
--- /dev/null
+++ b/docs/ja/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: 両面スキャンの並べ替え
+description: 表面のページと裏面のページが別々のブロックに分かれた両面スキャンのPDFを、正しい表裏の順序に並べ替えます。
+---
+
+# 両面スキャンの並べ替え
+
+両面スキャンの並べ替えは、1つのPDFに2つのページブロックが含まれるADFスキャンのワークフロー向けに作られています。
+
+- 最初にすべての表面
+- 次にすべての裏面
+
+手作業で分割して組み直す代わりに、このツールは2つのブロックを自然な読み順に交互に並べます。表1、裏1、表2、裏2、というようにです。
+
+## 使い方
+
+1. 両面の束をスキャンして作成した、1つのPDFをアップロードします。
+2. 表面のブロックが終わる分割位置を設定します。
+3. 裏面のブロックの扱いを選びます。
+ - **裏面ブロックを反転**(裏面をスキャンする前に束をひっくり返した場合に一般的)
+ - **裏面ブロックをそのまま維持**
+4. **PDFを並べ替え** をクリックして、並べ替えた結果をダウンロードします。
+
+## オプション
+
+- **分割位置を自動検出(半分)**: 分割位置を `ceil(totalPages / 2)` に設定します。
+- **奇数ページの警告**: 総ページ数が奇数の場合に警告します(スキャンの不一致であることが多いです)。
+- **ブロックサイズ不一致の確認**: 表面と裏面のブロックのサイズが異なる場合に、確認を求めます。
+- **グループ別エクスポート**: 並べ替えた出力を、元の文書のページ数に基づいて個別のPDFに分割し、ZIPとしてダウンロードします。
+
+## 出力の動作
+
+- **デフォルト**: 1つの出力PDF(入力PDF1つに対して、出力PDF1つ)。
+- **グループモード**: 出力は、指定した文書あたりのページ数で分割されます。複数のまとまりができた場合は1つのZIPとして、そうでない場合は単一のPDFとしてダウンロードされます。
+
+ブロックのサイズが揃っていない場合は、対になるページが先に並べ替えられ、残った対のないページは最後に追加されます。
+
+## よくある活用例
+
+- 両面印刷のフォームの束を2回に分けてスキャンした後、順序を元に戻す
+- すべての表面の後にすべての裏面を出力するオフィス用スキャナーから、表裏のセットを組み直す
+- アーカイブ用のスキャンを、文書ごとのファイルに分割する前に後処理する
+
+## ヒント
+
+- ほとんどの両面バッチでは、総ページ数は偶数になるはずです。
+- 裏面の向きが逆に見える場合は、**裏面ブロックを反転** と **裏面ブロックをそのまま維持** を切り替えてください。
+- 2ページの原本(表と裏)には、文書あたり `2` ページでグループ別エクスポートを使用します。
+
+## 関連ツール
+
+- [代替ページと混合ページ](./alternate-merge)
+- [PDFの分割](./split-pdf)
+- [PDFの結合](./merge-pdf)
+- [複製と整理](./organize-pdf)
diff --git a/docs/ja/tools/edit-attachments.md b/docs/ja/tools/edit-attachments.md
new file mode 100644
index 00000000..65e56fbf
--- /dev/null
+++ b/docs/ja/tools/edit-attachments.md
@@ -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)
diff --git a/docs/ja/tools/edit-metadata.md b/docs/ja/tools/edit-metadata.md
new file mode 100644
index 00000000..1c1cc926
--- /dev/null
+++ b/docs/ja/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: メタデータの編集
+description: タイトル、作成者、キーワード、日付、カスタムプロパティなど、PDFのメタデータフィールドを表示して変更します。
+---
+
+# メタデータの編集
+
+PDFファイルに埋め込まれたメタデータを編集します。ツールは、文書の既存のメタデータをフォームにあらかじめ入力し、任意のフィールドを変更でき、変更を新しいPDFに保存します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。ツールが現在のメタデータを読み取り、フォームに入力します。
+2. 標準フィールド(タイトル、作成者、サブジェクト、キーワード、作成アプリケーション、PDF変換)を編集します。
+3. 日時ピッカーで、作成日と更新日を調整します。
+4. 追加ボタンをクリックし、キーと値のペアを入力して、カスタムメタデータフィールドを追加します。
+5. 処理ボタンをクリックして、変更したPDFを保存します。
+
+## 機能
+
+- アップロードしたPDFの既存のメタデータをすべて自動入力
+- 標準フィールド:タイトル、作成者、サブジェクト、キーワード、作成アプリケーション、PDF変換
+- 作成日と更新日の日時ピッカー
+- 任意のプロパティのための、キーと値によるカスタムメタデータフィールド
+- 変更をPDFの文書情報辞書に直接保存
+
+## 編集できるフィールド
+
+| フィールド | 説明 |
+| ------------------------ | ------------------------------------------ |
+| **タイトル** | PDFリーダーに表示される文書のタイトル |
+| **作成者** | 文書を作成した個人または組織 |
+| **サブジェクト** | 文書のトピックの簡単な説明 |
+| **キーワード** | 検索や分類のための、カンマ区切りの用語 |
+| **作成アプリケーション** | コンテンツを最初に作成したアプリケーション |
+| **PDF変換** | PDFを生成したアプリケーション |
+| **作成日** | 文書が最初に作成された日時 |
+| **更新日** | 文書が最後に変更された日時 |
+| **カスタムフィールド** | 独自に定義する追加のキーと値のペア |
+
+## 活用例
+
+- 文書を公開する前に、適切なタイトルと作成者を設定する
+- 文書管理システムでの検索性を高めるために、キーワードを追加する
+- 現在の改訂を反映するように、更新日を更新する
+- 部署、プロジェクトID、分類などのカスタムメタデータフィールドを追加する
+- 元の作成ソフトが残したメタデータを整理する
+
+## ヒント
+
+- カスタムフィールドは、PDFの情報辞書に直接書き込まれます。一部のPDFリーダーではカスタムフィールドが表示されないことがありますが、ファイルには保持されます。
+- フィールドを空欄にすると、メタデータから消去されます。処理ボタンは、フォームに入っている内容をそのまま保存します。
+- 編集せずにメタデータを表示するには、[メタデータの表示](./view-metadata) を使ってください。メタデータをすべて削除するには、メタデータの削除を使います。
+
+## 関連ツール
+
+- [メタデータの表示](./view-metadata)
+- [PDF OCG](./pdf-layers)
+- [PDFの圧縮](./compress-pdf)
diff --git a/docs/ja/tools/edit-pdf.md b/docs/ja/tools/edit-pdf.md
new file mode 100644
index 00000000..c2363756
--- /dev/null
+++ b/docs/ja/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDFエディター
+description: ブラウザ上で直接、PDFに注釈を付け、ハイライトし、墨消しし、図形や画像を追加し、検索し、表示します。
+---
+
+# PDFエディター
+
+BentoPDFのPDFエディターを使うと、PDFに注釈を付け、ハイライトし、墨消しし、コメントし、図形や画像を追加し、検索できます。高機能なエディターがブラウザ上で直接読み込まれ、サーバーへのアップロードは不要です。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. 埋め込みのPDFエディターが自動的に開き、文書が読み込まれます。
+3. ツールバーを使って、注釈、ハイライト、墨消し、テキストの追加、図形の描画、画像の挿入ができます。
+4. **編集したPDFをダウンロード** をクリックして、変更を保存します。
+
+## 機能
+
+- ハイライト、下線、取り消し線、フリーハンド描画を備えた、フル機能の注釈ツールバー
+- テキストの挿入とコメント
+- 墨消しを適用すると、マークした内容を完全に削除する墨消しツール。**編集したPDFをダウンロード** をクリックしたときに適用されていないマークがある場合、エディターは先にそれらを適用するか確認します。
+- 長方形、円、線、矢印の図形ツール
+- PDFのページへの画像の挿入
+- 文書全体を対象とした、内蔵のテキスト検索
+- タブによる複数文書のサポート(最大10個の文書を同時に開けます)
+- ドラッグ&ドロップによるファイルの読み込み
+
+## 活用例
+
+- 契約書を確認し、ハイライトやコメントで変更箇所に印を付ける
+- 共有の前に、社会保障番号や財務データなどの機密情報を墨消しする
+- 建築図面や設計図に注釈を追加する
+- 会社のロゴやスタンプを文書のページに挿入する
+- 長い法的文書から、特定の用語を検索する
+
+## ヒント
+
+- 複数のPDFを同時に開き、エディター上部のタブバーで切り替えられます。
+- エディターは元のPDFの構造を保持するため、フォント、レイアウト、フォームフィールドはそのまま維持されます。
+- テキストや領域を墨消し対象にマークしただけでは、墨消しを適用するまで何も削除されません。選択したテキストを墨消しすると、ファイルのプロパティ、しおり、コメント、添付ファイルにあるそのコピーも、ダウンロードから削除されます(ファイルが暗号化されている場合を除く)。
+- 一括の透かしやページ番号の追加には、書式をより細かく制御できる専用ツールを使ってください。
+
+## 関連ツール
+
+- [透かしの追加](./add-watermark)
+- [PDFへ署名](./sign-pdf)
+- [スタンプの追加](./add-stamps)
+- [注釈の削除](./remove-annotations)
diff --git a/docs/ja/tools/email-to-pdf.md b/docs/ja/tools/email-to-pdf.md
new file mode 100644
index 00000000..371f8a53
--- /dev/null
+++ b/docs/ja/tools/email-to-pdf.md
@@ -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ファイルをドラッグ&ドロップします。両方の形式を1回のバッチに混在させることもできます。
+2. ファイル一覧を確認します。不要な項目はゴミ箱アイコンで削除するか、**ファイルを追加** をクリックして、さらにメールを追加します。
+3. 変換オプションを設定します(下記参照)。
+4. **PDFに変換** をクリックします。ツールは各メールを解析し、内容をスタイル付きHTMLとして描画して、PyMuPDFエンジンでPDFに変換します。
+5. 1通のメールの場合は、PDFとして直接ダウンロードされます。複数のメールの場合は `emails-converted.zip` にまとめられます。
+
+## オプション
+
+| オプション | デフォルト | 説明 |
+| :--------------------------- | :--------- | :-------------------------------------------------------------------------------------- |
+| **ページサイズ** | A4 | A4、Letter、Legalのページ寸法から選択します。 |
+| **CCとBCCを含める** | オン | 有効にすると、CCとBCCの宛先リストが、PDFのメールヘッダー部分に表示されます。 |
+| **添付ファイル一覧を含める** | オン | 有効にすると、メールのファイル添付の一覧(ファイル名とサイズ付き)がPDFに表示されます。 |
+
+## 活用例
+
+- コンプライアンスや監査のために、重要なビジネス上のやり取りをPDFとして保管する
+- 法的手続きや証拠開示の要求のために、メールのスレッドを印刷する
+- メールで受け取った注文確認、領収書、契約書の恒久的な記録を作成する
+- Outlookがなくても読める形式で、OutlookのMSGファイルをバックアップする
+- エクスポートしたEMLファイルから、カスタマーサポートのやり取りを記録する
+
+## ヒント
+
+- EML(Thunderbird、Apple Mail、ほとんどのメールクライアントで使われます)とOutlookのMSGファイルの両方に対応しています。メールクライアントからメールをエクスポートして、そのままツールにドロップしてください。
+- HTML形式のメールは、PDFでもスタイルが保たれます。プレーンテキストのメールは、すっきりした読みやすい書式で描画されます。
+- 添付ファイルの一覧にはファイル名とサイズが表示されますが、実際の添付ファイルがPDFに埋め込まれることはありません。
+
+## 関連ツール
+
+- [XMLからPDF](./xml-to-pdf)
+- [XPSからPDF](./xps-to-pdf)
diff --git a/docs/ja/tools/epub-to-pdf.md b/docs/ja/tools/epub-to-pdf.md
new file mode 100644
index 00000000..ddd3fc71
--- /dev/null
+++ b/docs/ja/tools/epub-to-pdf.md
@@ -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. 1つのEPUBの場合は、PDFとして直接ダウンロードされます。複数ファイルの場合は、`epub-converted.zip` という名前のZIPアーカイブにまとめられます。
+
+## オプション
+
+変換は妥当なデフォルト設定で実行され、必須の設定はありません。テキストは標準のページ寸法に再配置され、埋め込みフォントと画像はPDFに引き継がれます。
+
+## 活用例
+
+- DRMフリーの電子書籍を印刷して、画面から離れて読む
+- EPUBの原稿を、レビュー用にレイアウト固定のPDFとして提出する
+- デジタル書籍を、どのOSでも標準で開ける形式でアーカイブする
+- EPUBリーダーを持っていない同僚に、1つの章を共有する
+- EPUBで配布されている技術文書を、注釈を付けられるPDFに変換する
+
+## ヒント
+
+- 埋め込み音声や動画といったEPUB 3の機能はPDFに引き継がれませんが、テキスト、画像、表はすべてきれいに変換されます。
+- スタイルが多用されたEPUBで最良の結果を得るには、出力の最初の数ページを確認して、レイアウトが忠実か確かめてください。
+
+## 関連ツール
+
+- [MOBIからPDFへの変換](./mobi-to-pdf)
+- [FB2からPDF](./fb2-to-pdf)
+- [CBZからPDF](./cbz-to-pdf)
diff --git a/docs/ja/tools/excel-to-pdf.md b/docs/ja/tools/excel-to-pdf.md
new file mode 100644
index 00000000..cd5dd92d
--- /dev/null
+++ b/docs/ja/tools/excel-to-pdf.md
@@ -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. 1ファイルの場合は、PDFとして直接ダウンロードされます。複数ファイルの場合は `excel-converted.zip` として提供されます。
+
+## オプション
+
+このツールに追加の設定はありません。ページレイアウト、拡大縮小、印刷範囲は、スプレッドシートに組み込まれた設定に基づいて、LibreOfficeエンジンが決定します。
+
+## 出力
+
+| 入力数 | 出力 |
+| :------------ | :--------------------------------------------------------------------- |
+| 1ファイル | 単一のPDFをダウンロード(元のファイル名に `.pdf` 拡張子) |
+| 2ファイル以上 | ZIPアーカイブ(`excel-converted.zip`)に、ファイルごとに1つのPDFを格納 |
+
+## 活用例
+
+- 配布用に、財務レポートや予算表をExcelからPDFに変換する
+- 在庫表や商品カタログのスプレッドシートから、印刷用のPDFを作成する
+- Excelがインストールされていない関係者に、データ分析の結果を共有する
+- 四半期レポートを、編集できない形式でアーカイブする
+- LibreOffice CalcのODSファイルを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)
diff --git a/docs/ja/tools/extract-attachments.md b/docs/ja/tools/extract-attachments.md
new file mode 100644
index 00000000..579a0f68
--- /dev/null
+++ b/docs/ja/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: 添付ファイルの抽出
+description: 1つ以上のPDFから、埋め込まれたファイル添付をすべて抽出し、ZIPアーカイブとしてダウンロードします。
+---
+
+# 添付ファイルの抽出
+
+1つ以上のPDFファイルから、埋め込まれたすべての添付ファイルを取り出します。抽出されたファイルは、ダウンロード用に1つのZIPアーカイブにまとめられます。
+
+## 使い方
+
+1. 埋め込まれた添付ファイルを含む、1つ以上のPDFファイルをアップロードします。
+2. **添付ファイルを抽出** をクリックします。
+3. ツールが、各PDFの文書レベルとページレベルの添付ファイルをスキャンします。
+4. 見つかったすべてのファイルがZIPアーカイブにまとめられ、自動的にダウンロードされます。
+5. ステータスメッセージで、見つかった添付ファイルの数と合計サイズを確認できます。
+
+## 機能
+
+- 複数のPDFからの一括抽出
+- 文書レベルとページレベルの両方の添付ファイルを抽出
+- 抽出したすべてのファイルを含む、1つのZIPファイルを出力
+- 添付ファイルの合計数と合計ファイルサイズを表示
+- 添付ファイルが見つからない場合は、わかりやすいステータスメッセージを表示
+
+## 活用例
+
+- レポートのPDFに埋め込まれたデータファイルを復元する
+- ポートフォリオや仕様書から、画像素材を取り出す
+- 研修やコンプライアンス用のPDFから、補足資料を抽出する
+- 一連のPDFにどのファイルが埋め込まれているかを監査する
+
+## ヒント
+
+- ツールが添付ファイルなしと報告した場合、PDFには、ファイル添付ではなく、埋め込み画像やフォームデータが含まれている可能性があります。それらはファイル添付ではありません。埋め込み画像には [画像の抽出](./extract-images) を使ってください。
+- 複数のPDFを処理すると、すべてのファイルの添付ファイルが1つのZIPにまとめられます。ファイル名は、元の埋め込み時のものが保持されます。
+
+## 関連ツール
+
+- [添付ファイルの追加](./add-attachments)
+- [添付ファイルの編集](./edit-attachments)
+- [画像の抽出](./extract-images)
diff --git a/docs/ja/tools/extract-images.md b/docs/ja/tools/extract-images.md
new file mode 100644
index 00000000..667ad9e4
--- /dev/null
+++ b/docs/ja/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: 画像の抽出
+description: PDFファイルから、埋め込まれたすべての画像を抽出します。グリッドでプレビューし、個別に、またはZIPアーカイブとしてダウンロードできます。
+---
+
+# 画像の抽出
+
+1つ以上のPDFファイルから、埋め込まれたすべての画像を取り出します。抽出された画像はプレビューグリッドに表示され、個別にダウンロードすることも、ZIPとしてすべてを一度に取得することもできます。PyMuPDFを搭載しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、1つ以上のPDFをアップロードします。必要に応じてファイルを追加したり、個別に削除したりできます。
+2. **抽出** をクリックして、処理を開始します。
+3. ツールが、アップロードされたすべてのPDFのすべてのページをスキャンし、埋め込まれた画像を見つけて抽出します。
+4. 抽出された画像がサムネイル付きのグリッドに表示されます。各画像にはダウンロードボタンがあります。
+5. **すべてダウンロード** をクリックして、すべてをZIPアーカイブとして保存します。
+
+## オプション
+
+このツールに設定可能なオプションはありません。埋め込まれたすべての画像は、元の形式(通常はPNG、JPEG、またはPDFに埋め込まれたときに使われた形式)で抽出されます。
+
+## 出力形式
+
+- 画像は、`image_1.png`、`image_2.jpg` のような名前でプレビューグリッドに表示されます。
+- **すべてダウンロード** は、すべての画像を含む `extracted-images.zip` を生成します。
+- 個々の画像は、グリッドから1つずつダウンロードできます。
+
+## 活用例
+
+- PDFから写真やグラフィックを取り出して、別のプロジェクトで再利用する。
+- ECサイトの掲載用に、カタログのPDFから商品画像を抽出する。
+- プレゼンテーションで使うために、技術文書から図を取り出す。
+- 共有する前に、文書にどの画像が埋め込まれているかを監査する。
+
+## ヒント
+
+- このツールは、PDFに保存されているとおりの画像を抽出します。ページを画像として再描画することはありません。それには、[PDFからPNG](./pdf-to-png) や [PDFからJPG](./pdf-to-jpg) を使ってください。
+- ツールが「画像が見つかりません」と報告した場合、PDFが埋め込みのラスター画像ではなくベクターグラフィックを使っているか、ページ全体が1枚の大きな画像になっているスキャン文書である可能性があります。
+- バッチ処理は、複数のPDFにまたがって機能します。すべてのファイルのすべての画像が、1つのグリッドと1つのZIPにまとめられます。
+
+## 関連ツール
+
+- [PDFからPNG](./pdf-to-png)
+- [PDFからJPG](./pdf-to-jpg)
+- [PDFワークフロービルダー](./pdf-workflow)
diff --git a/docs/ja/tools/extract-pages.md b/docs/ja/tools/extract-pages.md
new file mode 100644
index 00000000..7917e674
--- /dev/null
+++ b/docs/ja/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: ページの抽出
+description: PDFから特定のページ範囲を、新しい文書として保存します。
+---
+
+# ページの抽出
+
+PDFから複数のページを取り出して、新しいファイルとして保存します。範囲の構文で必要なページを正確に指定すると、ツールがそれらのページだけを含むすっきりしたPDFを作成します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。ツールにファイル名、サイズ、総ページ数が表示されます。
+2. 範囲の構文(例: `1-5`、`3, 7, 10-12`)で、抽出したいページを入力します。
+3. 必要に応じて、各範囲を別々のPDFとしてZIPアーカイブでダウンロードするよう選択します。
+4. 処理ボタンをクリックします。抽出されたページが、新しいPDF(またはZIP)としてダウンロードされます。
+
+## 機能
+
+- 柔軟なページ範囲の構文:個別のページ、範囲、またはカンマ区切りの組み合わせ
+- アップロード後に総ページ数を表示し、参照しやすく
+- 1つにまとめたPDF、またはZIP内の別々のファイルとして出力するオプション
+- 元のページの内容と書式を保持
+
+## 活用例
+
+- 長いレポートから、エグゼクティブサマリー(最初の数ページ)を取り出す
+- 教科書のPDFから、1つの章を抽出する
+- 書類一式から特定のページを、独立した文書として保存する
+- 大きなファイルの選択したページから、サンプル文書を作成する
+
+## ヒント
+
+- ページ番号は1から始まります。最初のページには `0` ではなく `1` を使ってください。
+- ページを抽出するのではなく取り除きたい場合は、逆の操作にあたる [ページの削除](./delete-pages) を使ってください。
+- サムネイルでページを視覚的に選択したい場合は、[PDFの分割](./split-pdf) をビジュアル選択モードで使ってください。
+
+## 関連ツール
+
+- [PDFの分割](./split-pdf)
+- [ページの削除](./delete-pages)
+- [PDFの結合](./merge-pdf)
diff --git a/docs/ja/tools/extract-tables.md b/docs/ja/tools/extract-tables.md
new file mode 100644
index 00000000..a3aa678f
--- /dev/null
+++ b/docs/ja/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: PDFテーブルの抽出
+description: PDF文書から表を検出して抽出します。表ごとに、CSV、JSON、Markdownとしてエクスポートできます。
+---
+
+# PDFテーブルの抽出
+
+PDF内のすべての表を検出し、CSV、JSON、Markdownのお好みの形式でエクスポートできます。各表は、ページと位置のメタデータとともに個別に抽出されます。PyMuPDFの表検出エンジンを搭載しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. お好みの **エクスポート形式** を選びます。CSV、JSON、Markdownのいずれかです。
+3. **抽出** をクリックして、処理を開始します。
+4. 表が1つ見つかった場合は、単一のファイルとしてダウンロードされます。複数の表がある場合は、表ごとに1ファイルのZIPアーカイブになります。
+
+## オプション
+
+- **エクスポート形式**: 次から選べます。
+ - **CSV**: カンマ、引用符、改行を含むフィールドを適切に引用符で囲んだ、カンマ区切りの値。表計算ソフトやデータベースに適しています。
+ - **JSON**: 配列の配列の構造で、2スペースのインデントで整形されます。プログラムでの利用に適しています。
+ - **Markdown**: PyMuPDFが描画する、パイプ区切りの表形式。ドキュメントやREADMEファイルに適しています。
+
+## 出力形式
+
+- **表が1つ**: `filename_table.csv`(または `.json` / `.md`)
+- **複数の表**: `table_1_page3.csv`、`table_2_page5.csv` のような名前のファイルを含む `filename_tables.zip`
+
+## 活用例
+
+- 長いPDFレポートから、文書全体のデータを取り出さずに、特定の表だけを抽出する。
+- GitHubのIssue、Wiki、ドキュメントに直接貼り付けるために、表をMarkdown形式で取得する。
+- APIの連携やスクリプトのために、PDFの表から構造化されたJSONデータを取り出す。
+- 異なるバージョンのPDFの表を、両方をCSVにエクスポートして差分を取って比較する。
+
+## ヒント
+
+- このツールでは表ごとに制御できます。すべての表を1つの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)
diff --git a/docs/ja/tools/fb2-to-pdf.md b/docs/ja/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..1e63817c
--- /dev/null
+++ b/docs/ja/tools/fb2-to-pdf.md
@@ -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エンジンがFB2のXML構造を解析し、ページ分割されたPDFとして出力します。
+4. ファイルが1つの場合はPDFが直接ダウンロードされます。複数の場合は`fb2-converted.zip`にまとめられます。
+
+## オプション
+
+設定は不要です。コンバーターがFB2のXML構造を自動で処理し、章の区切り、書式、埋め込み画像を保持します。
+
+## 活用例
+
+- PDFにしか対応していない端末やアプリでFB2の電子書籍を読む
+- FB2形式で配布されているロシア語文学を印刷する
+- FB2ライブラリを、どこでも使える形式でアーカイブする
+- FictionBookに対応していないリーダーを使っている相手に本を共有する
+
+## ヒント
+
+- FB2ファイルはプレーンなXMLなので、サイズが小さく、ブラウザー上でも素早く変換できます。
+- FB2ファイルが`.fb2.zip`として圧縮されている場合は、先に展開してからアップロードしてください。
+
+## 関連ツール
+
+- [EPUBからPDF](./epub-to-pdf)
+- [MOBIからPDFへの変換](./mobi-to-pdf)
+- [XMLからPDF](./xml-to-pdf)
diff --git a/docs/ja/tools/fix-page-size.md b/docs/ja/tools/fix-page-size.md
new file mode 100644
index 00000000..b39cee0c
--- /dev/null
+++ b/docs/ja/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: ページサイズを固定
+description: PDF内のすべてのページを同じサイズに統一します。標準の用紙サイズから選ぶか、任意のサイズを指定できます。
+---
+
+# ページサイズを固定
+
+複数の出典から組み立てたPDFでは、LetterとA4が混在したり、規格外のサイズが混ざったりして、ページサイズがそろわないことがあります。このツールはすべてのページを1つのサイズに揃え、必要に応じて内容を拡大縮小して収めたり埋めたりします。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. ドロップダウンから**ターゲットページサイズ**を選びます(A4、Letter、Legal、A3、A5、Tabloid、カスタム)。
+3. **向き**を選びます。自動なら各ページの元の向きを保ち、縦または横に固定することもできます。
+4. **コンテンツのスケーリング**モードを選びます。フィット(内容をすべて保持、余白が付く場合あり)またはフィル(ページを埋める、端が切れる場合あり)です。
+5. 必要に応じて、追加される余白の**背景色**を設定します。
+6. **ページサイズを固定**をクリックします。
+
+## オプション
+
+- **標準サイズ**: A4、Letter、Legal、A3、A5、Tabloid
+- **カスタムサイズ**: 幅と高さをインチまたはミリメートルで入力
+- **向き**: 自動、縦、横
+- **スケーリングモード**: フィットまたはフィル(トリミング)
+- **背景色**: 余白部分に使う任意の色
+
+## 活用例
+
+- 別々のスキャナーで取り込んだページを結合したPDFを統一する
+- USレターの文書を海外向けにA4へ変換する
+- 一定の仕上がりサイズが必要な印刷用PDFを準備する
+- 標準からわずかにずれたページ(例: 8.5 x 11ではなく8.49 x 11.02インチ)を修正する
+
+## ヒント
+
+- 内容を失いたくない場合はフィットモードを使います。フィルモードは見た目がすっきりしますが、端が切れることがあります。
+- 出力は「ページ寸法」ツールで確認すると、すべてのページが目標サイズに一致しているか分かります。
+- 背景色の初期値は白です。文書の余白が暗い場合は暗い色に切り替えてください。
+
+## 関連ツール
+
+- [ページ寸法](./page-dimensions): 修正の前後でページサイズを確認
+- [PDFの圧縮](./compress-pdf): 統一後にファイルサイズを削減
+- [PDFのトリミング](./crop-pdf): 自動スケーリングの代わりに手動でトリミング
diff --git a/docs/ja/tools/flatten-pdf.md b/docs/ja/tools/flatten-pdf.md
new file mode 100644
index 00000000..011818c9
--- /dev/null
+++ b/docs/ja/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: PDFの平坦化
+description: インタラクティブなフォームと注釈を静的なコンテンツに平坦化します。フォームフィールドは編集不可になり、注釈はページに焼き付けられます。
+---
+
+# PDFの平坦化
+
+平坦化では、フォームフィールド、ドロップダウン、チェックボックス、注釈、ハイライト、付箋などのインタラクティブな要素をページの内容に直接統合します。見た目は変わりませんが、編集も抽出もできなくなります。入力済みのフォームを印刷してスキャンし直すのと同じ効果ですが、画質は完全に保たれます。
+
+## 使い方
+
+1. 1つ以上のPDFファイルをアップロードします。
+2. **PDFを平坦化**をクリックします。
+3. ファイルが1つの場合は直接ダウンロードされ、複数の場合はZIPアーカイブになります。
+
+このツールはpdf-libでフォームフィールドを平坦化し(`form.flatten()`経由)、専用の注釈フラットナーで注釈をページストリームに焼き付けます。どちらの処理も1回のパスで行われます。
+
+## 平坦化されるもの
+
+- **フォームフィールド**: テキスト入力、チェックボックス、ラジオボタン、ドロップダウン、署名フィールド
+- **注釈**: コメント、ハイライト、取り消し線、下線、付箋、スタンプ、インク注釈
+- **インタラクティブ要素**: ボタン、アクショントリガー
+
+## 変更されないもの
+
+- テキストの内容(選択や検索は引き続き可能)
+- 画像とグラフィック
+- ページのレイアウトと寸法
+- しおりと目次
+- ハイパーリンク(注釈ベースのものを除く)
+
+## 活用例
+
+- 入力済みのフォームをロックし、受取人が提出内容を変更できないようにする
+- インタラクティブ要素が不要なアーカイブ用にPDFを準備する
+- ビューアーごとに注釈の表示が異なる問題を解消する
+- 署名済みの文書が署名後に変更されないようにする
+- フォームフィールドの定義と注釈オブジェクトを除去してファイルサイズを減らす
+
+## ヒント
+
+- すべての編集が終わってから平坦化してください。平坦化したPDFを元に戻す方法はありません。
+- 平坦化に加えてメタデータ、JavaScript、添付ファイルも削除したい場合は、代わりに「PDFをサニタイズ」ツールを使ってください。平坦化もオプションの1つとして含まれています。
+- 「フォームが見つかりません」と表示されるPDFがありますが、文書に注釈のみでフォームフィールドがない場合は正常です。
+
+## 関連ツール
+
+- [PDFをサニタイズ](./sanitize-pdf): フォームの平坦化に加え、メタデータやスクリプトなども削除
+- [PDFの画像化](./rasterize-pdf): 画像ベースのPDFに変換して最大限に平坦化
+- [フォントをアウトライン化](./font-to-outline): フォントをベクターパスに平坦化
+- [PDFの暗号化](./protect-pdf): 平坦化したPDFをパスワードでロック
diff --git a/docs/ja/tools/font-to-outline.md b/docs/ja/tools/font-to-outline.md
new file mode 100644
index 00000000..73bb3478
--- /dev/null
+++ b/docs/ja/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: フォントをアウトライン化
+description: PDFのすべてのフォントをベクターアウトラインに変換し、どのデバイスでも同じ表示にします。フォント依存の問題を解消します。
+---
+
+# フォントをアウトライン化
+
+フォントをアウトライン化すると、すべての文字がフォントのグリフからベクターパスに変換されます。PDFはインストール済みのフォントに依存しなくなり、あらゆるデバイス、OS、プリンターで同じように表示されます。これは印刷前工程(プリプレス)の標準的な手順です。
+
+## 使い方
+
+1. 1つ以上のPDFファイルをアップロードします。
+2. **アウトラインに変換**をクリックします。
+3. Ghostscriptがすべてのテキストをベクターパスに変換します。
+4. 結果をダウンロードします。複数ファイルの場合はZIPアーカイブになります。
+
+設定項目はありません。このツールはGhostscript(WebAssembly)を使い、すべてのフォント参照を1回のパスでアウトライン化したパスに変換します。
+
+## 変わること
+
+- 文字がベクター曲線(ベジェパス)になる
+- フォントの埋め込みが不要になり、PDFはグリフレベルで自己完結する
+- ベクターパスは通常フォント参照より大きいため、ファイルサイズが増える場合がある
+- 見た目は完全に保たれる
+
+## 失われるもの
+
+- テキストの選択とコピー&ペースト
+- テキスト検索(Ctrl+Fが使えなくなる)
+- テキスト内容の編集
+- スクリーンリーダーによるアクセシビリティ
+
+## 活用例
+
+- アウトライン化したフォントを要求する印刷所にPDFを送る
+- カスタムフォントやライセンスフォントを使った文書を、そのフォントを持たない相手と共有する
+- 他のシステムでフォントが置き換わって見た目が変わるのを防ぐ
+- ベクター入力が必要なレーザー彫刻やCNCカットの工程用にPDFを準備する
+- ロゴを多く含むPDFをすべてのプラットフォームで正しく表示させる
+
+## ヒント
+
+- 元のPDFは必ず保管してください。アウトライン化は元に戻せず、パスを編集可能なテキストに戻すことはできません。
+- テキストを検索可能なままにしたい場合は、代わりに「PDFの画像化」ツールを使い、その後にOCRを行うことを検討してください。
+- アウトライン化したPDFは大きくなりがちです。ファイルサイズが気になる場合は、後から「PDFの圧縮」を実行してください。
+
+## 関連ツール
+
+- [PDFの平坦化](./flatten-pdf): フォントには触れずにフォームと注釈を平坦化
+- [PDFの画像化](./rasterize-pdf): ベクターアウトラインの代わりに画像ベースのPDFに変換
+- [PDFの圧縮](./compress-pdf): アウトライン化後にファイルサイズを削減
+- [PDFからPDF/A](./pdf-to-pdfa): フォント非依存にしたうえで、アーカイブ用に変換
diff --git a/docs/ja/tools/form-creator.md b/docs/ja/tools/form-creator.md
new file mode 100644
index 00000000..ae2f58fa
--- /dev/null
+++ b/docs/ja/tools/form-creator.md
@@ -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)
diff --git a/docs/ja/tools/form-filler.md b/docs/ja/tools/form-filler.md
new file mode 100644
index 00000000..8427e424
--- /dev/null
+++ b/docs/ja/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: PDFフォーム入力機能
+description: XFAフォームを含むPDFフォームを、埋め込みビューアーでブラウザー上で直接入力します。
+---
+
+# PDFフォーム入力機能
+
+フォームフィールドのあるPDFを開き、埋め込みビューアーで直接入力できます。標準のAcroFormフィールドと、従来のXFA(XML Forms Architecture)フォームの両方に対応しています。入力が終わったら、ワンクリックで記入済みのPDFをダウンロードできます。
+
+## 使い方
+
+1. フォームフィールドを含むPDFをアップロードします。
+2. 文書が統合PDFビューアーで開き、フォームフィールドがインタラクティブな入力欄として表示されます。
+3. テキストフィールド、チェックボックス、ドロップダウン、ラジオボタンをクリックして入力します。
+4. **保存してダウンロード**をクリックすると、記入済みのPDFが取得できます。
+
+## 機能
+
+- フォームフィールドを操作できる、PDF.jsの埋め込みビューアー
+- 標準のAcroFormフィールド(テキスト入力、チェックボックス、ドロップダウン、ラジオボタン)に対応
+- 従来のXMLベースのフォーム向けにXFAフォームに対応
+- ページ寸法に合わせたビューアーサイズの自動調整
+- ファイル名とサイズの表示
+
+## オプション
+
+追加の設定項目はありません。フォームをアップロードして入力し、ダウンロードするだけです。
+
+## 活用例
+
+- 税務書類、保険の申込書、役所の書類に記入する
+- PDFの添付ファイルで届いた求人応募フォームに記入する
+- 取引先登録フォームやサプライヤー向けアンケートに記入する
+- チェックボックスのフィールドでコンプライアンスのチェックリストを承認する
+- 診察前に問診票に記入する
+
+## ヒント
+
+- XFAフォームは従来の形式で、一部のPDFビューアーでしか対応していません。XFAのPDFをChromeやほとんどのツールで開いて空白ページが表示される場合、それらのビューアーがXFAに対応していないためです。BentoPDFのフォーム入力機能とFirefoxはXFAを正しく処理できます。
+- 既存のフォームフィールドがないPDFは、まず[PDFフォームの作成](./form-creator)ツールでフィールドを追加してから、ここで入力してください。
+- ビューアーはPDFのページ寸法に合わせて自動でサイズが調整されます。
+
+## 関連ツール
+
+- [PDFフォームの作成](./form-creator)
+- [PDFへ署名](./sign-pdf)
+- [PDFエディター](./edit-pdf)
diff --git a/docs/ja/tools/header-footer.md b/docs/ja/tools/header-footer.md
new file mode 100644
index 00000000..23a689ca
--- /dev/null
+++ b/docs/ja/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: ヘッダーとフッター
+description: ページ番号の動的変数を使って、PDFのページにカスタマイズ可能なヘッダーとフッターのテキストを追加します。
+---
+
+# ヘッダーとフッター
+
+PDFのページの6か所(ヘッダー左、ヘッダー中央、ヘッダー右、フッター左、フッター中央、フッター右)にテキストを追加します。ページ番号と総ページ数の動的変数に対応しているので、「10ページ中3ページ」のようなテンプレートを作れば、ページごとに自動で更新されます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. 書式設定のコントロールと6つのテキスト入力欄を含むオプションパネルが表示されます。
+3. ヘッダー/フッターの任意の位置に、表示したいテキストを入力します。
+4. 動的なページ番号には`{page}`と`{total}`のプレースホルダーを使います。
+5. フォントサイズと文字色を調整し、必要に応じて特定のページ範囲に限定します。
+6. **ヘッダーとフッターを追加**をクリックして処理し、ダウンロードします。
+
+## オプション
+
+- **ページ範囲**: ヘッダーとフッターを付けるページを限定できます(任意)。空欄にするとすべてのページに適用されます。形式は「1-3, 5」(カンマ区切りの範囲)です。
+- **フォントサイズ**: 6〜24ポイント。初期値は10です。
+- **文字色**: カラーセレクターで好きな色を選べます。
+- **ヘッダー左 / 中央 / 右**: 各ページ上部のテキスト欄です。
+- **フッター左 / 中央 / 右**: 各ページ下部のテキスト欄です。
+
+## 機能
+
+- 1ページにつき、独立した6つのテキスト位置
+- 現在のページ番号を挿入する動的な`{page}`変数
+- 総ページ数を挿入する動的な`{total}`変数
+- 特定のページを対象にするページ範囲フィルター
+- フォントサイズと色のカスタマイズ
+- すっきりとしたプロフェッショナルな仕上がりのHelveticaフォント
+
+## 活用例
+
+- レポートのフッター中央に「{total} ページ中 {page} ページ」を追加する
+- ヘッダー左に会社名、ヘッダー右に文書の日付を配置する
+- 法律文書のフッターに機密保持の注意書きを追加する
+- 特定のページ範囲に文書の改訂番号を入れる
+
+## ヒント
+
+- `{page}`と`{total}`を1つの欄に組み合わせて、「{total} ページ中 {page} ページ」や「{page}/{total}」のような形式にできます。
+- 必要な位置だけ入力し、ほとんどの欄を空のままにできます。空の欄は単にスキップされます。
+- 画像やロゴを含むより複雑なヘッダーには、ページ上部に配置した[透かしの追加](./add-watermark)ツールの利用を検討してください。
+
+## 関連ツール
+
+- [ページ番号](./page-numbers)
+- [透かしの追加](./add-watermark)
+- [通し番号付け](./bates-numbering)
diff --git a/docs/ja/tools/heic-to-pdf.md b/docs/ja/tools/heic-to-pdf.md
new file mode 100644
index 00000000..7173a379
--- /dev/null
+++ b/docs/ja/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEICからPDF
+description: iPhoneやiPadのHEIC/HEIF画像を、ブラウザー上で直接PDFに変換します。
+---
+
+# HEICからPDF
+
+HEIC/HEIF画像をPDFに変換します。HEICはiOS 11以降のiPhoneとiPadで標準の写真フォーマットです。このツールを使えば、デスクトップソフトをインストールしたりファイルをサーバーにアップロードしたりせずに、写真をPDFにできます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :----------- | :------ |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## 使い方
+
+1. アップロードエリアをクリックするか、HEIC/HEIFファイルをドラッグ&ドロップします。
+2. ファイル一覧を確認し、不要なファイルを削除します。
+3. **PDFに変換**をクリックします。結果は`from_heic.pdf`としてダウンロードされます。
+
+各HEICファイルはheic2anyライブラリでデコードされ、品質92%のPNGに変換されます。そのPNGはpdf-libでPDFに埋め込まれ、1枚の画像が1ページに、フル解像度で配置されます。
+
+## オプション
+
+このツールに追加の設定はありません。HEIC画像は高品質(0.92)でPNGに変換されてから埋め込まれます。
+
+## 活用例
+
+- 保険請求やレポートに添付するため、iPhoneの写真からPDFを作る
+- 不動産掲載用のHEIC写真を、印刷可能な1つの文書にまとめる
+- iPadのスクリーンショット(HEIF形式)を共有しやすいPDFにする
+- 旅行記用に、旅行の写真を一括で変換する
+
+## ヒント
+
+- HEICのデコードはWebAssemblyを使ってすべてブラウザー内で行われます。デコーダーの読み込み中は、最初の変換に少し時間がかかる場合があります。
+- HEICを他の画像形式(JPG、PNGなど)と混ぜたい場合は、HEICを含むすべての形式を扱える[画像からPDF](./image-to-pdf)ツールを使ってください。
+- iPhoneのHEICファイルには、GPS座標を含むEXIFデータが含まれていることがよくあります。PDFの出力にはこのメタデータは引き継がれません。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [JPGからPDF](./jpg-to-pdf)
+- [PNGからPDF](./png-to-pdf)
diff --git a/docs/ja/tools/image-to-pdf.md b/docs/ja/tools/image-to-pdf.md
new file mode 100644
index 00000000..7be4f6ba
--- /dev/null
+++ b/docs/ja/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: 画像からPDF
+description: JPG、PNG、BMP、GIF、TIFF、SVG、HEIC、WebP、PSDなど10種類以上の画像フォーマットを、1つのPDFファイルに変換します。
+---
+
+# 画像からPDF
+
+あらゆる画像に対応したユニバーサルな画像PDFコンバーターです。ほぼどんな形式の画像でもアップロードして、1つのPDF文書にまとめられます。各画像は元の寸法に合わせたサイズで、1枚につき1ページになります。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :-------------- | :------------------------------------- |
+| 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に変換されます。これは自動的に行われ、追加の操作は不要です。
+
+## 活用例
+
+- スマートフォンのカメラで撮ったレシートや書類のスキャンを1つのPDFにまとめる
+- 形式が混在した画像から、フォトポートフォリオやルックブックを作る
+- デスクトップソフトをインストールせずに、iPhoneの写真(HEIC)を共有しやすいPDFに変換する
+- PSDの書き出しとスクリーンショットから、クライアント向けのデザインモックアップ資料を作る
+- 古い形式(PNM、JXR、JP2)の画像が入ったフォルダーを、1つのPDFとしてアーカイブする
+
+## ヒント
+
+- PDF内の画像の順序は、ファイル一覧の並び順と一致します。希望する順番でアップロードしてください。
+- ファイルサイズを最小にしたい場合は低品質を選びます。文字中心のスキャンでは、見た目の差はたいてい気になりません。
+- 画像形式が1種類だけなら、専用コンバーター(JPGからPDF、PNGからPDFなど)でも同じ結果が、よりシンプルな画面で得られます。
+
+## 関連ツール
+
+- [JPGからPDF](./jpg-to-pdf)
+- [PNGからPDF](./png-to-pdf)
+- [HEICからPDF](./heic-to-pdf)
+- [WebPからPDF](./webp-to-pdf)
diff --git a/docs/ja/tools/index.md b/docs/ja/tools/index.md
new file mode 100644
index 00000000..54fdebf7
--- /dev/null
+++ b/docs/ja/tools/index.md
@@ -0,0 +1,183 @@
+# ツールリファレンス
+
+BentoPDFには、PDFを扱う**130以上のツール**があります。すべてのツールはブラウザー内で完結して動作し、ファイルがお使いのデバイスの外に出ることはありません。
+
+---
+
+## 編集と注釈
+
+充実した編集ツールで、PDF文書を修正、マークアップ、強化できます。
+
+
+
+- [**PDFエディター**](./edit-pdf): 注釈、ハイライト、墨消し、コメント、図形や画像の追加、検索、PDFの閲覧ができます。
+- [**しおりの編集**](./bookmark): PDFのしおりを追加、編集、インポート、削除、抽出できます。
+- [**目次**](./table-of-contents): PDFのしおりから目次ページを生成します。
+- [**ページ番号**](./page-numbers): 文書にページ番号を挿入します。
+- [**ページラベルの追加**](./add-page-labels): ローマ数字、接頭辞、任意の開始番号でPDFのページラベルを設定します。
+- [**通し番号付け**](./bates-numbering): 1つ以上のPDFファイルにまたがって、連続したBates番号を追加します。
+- [**透かしの追加**](./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): 空白ページを自動で検出して削除します。
+
+
+
+---
+
+## PDFへの変換
+
+画像、文書、電子書籍、その他のファイル形式をPDFに変換します。
+
+
+
+- [**画像からPDF**](./image-to-pdf): JPG、PNG、BMP、GIF、TIFF、SVG、HEIC、WebPなどをPDFに変換します。
+- [**JPGからPDF**](./jpg-to-pdf): 1つ以上のJPG画像からPDFを作成します。
+- [**PNGからPDF**](./png-to-pdf): 1つ以上のPNG画像からPDFを作成します。
+- [**WebPからPDF**](./webp-to-pdf): 1つ以上のWebP画像からPDFを作成します。
+- [**SVGからPDF**](./svg-to-pdf): 1つ以上のSVG画像からPDFを作成します。
+- [**BMPからPDF**](./bmp-to-pdf): 1つ以上のBMP画像からPDFを作成します。
+- [**HEICからPDF**](./heic-to-pdf): 1つ以上のHEIC画像からPDFを作成します。
+- [**TIFFからPDFへ**](./tiff-to-pdf): 1つ以上のTIFF画像からPDFを作成します。
+- [**テキストからPDF**](./txt-to-pdf): プレーンテキストファイルをPDFに変換します。
+- [**マークダウンから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(リッチテキスト形式)の文書を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形式に変換します。
+
+
+
+---
+
+## PDFからの変換
+
+PDFの内容を、画像、文書、データ形式に取り出します。
+
+
+
+- [**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): コミックリーダーやCalibre向けに、PDFをCBZ(コミックブックアーカイブ)に変換します。
+- [**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からマークダウン**](./pdf-to-markdown): PDFのテキストと表をMarkdown形式に変換します。
+- [**AI用のPDFを準備する**](./prepare-pdf-for-ai): RAG/LLMパイプライン向けに、PDFの内容をLlamaIndex JSONとして抽出します。
+- [**PDFからテキスト**](./pdf-to-text): PDFファイルからテキストを抽出して、プレーンテキストとして保存します。
+- [**PDFテーブルの抽出**](./extract-tables): PDFから表をCSV、JSON、Markdownとして抽出します。
+
+
+
+---
+
+## 整理と管理
+
+PDFのページやファイルを並べ替え、結合、分割、管理します。
+
+
+
+- [**PDFワークフロービルダー**](./pdf-workflow): ビジュアルなノードエディターで、独自のPDF処理パイプラインを構築します。
+- [**PDFマルチツール**](./pdf-multi-tool): ページ管理に対応した、フル機能のPDFエディターです。
+- [**OCR PDF**](./ocr-pdf): PDFを検索やコピーができるようにします。
+- [**PDFの結合**](./merge-pdf): 複数のPDFを1つのファイルにまとめます。
+- [**代替ページと混合ページ**](./alternate-merge): 各PDFのページを交互に並べて、PDFを結合します。
+- [**両面スキャンの並べ替え**](./duplex-collate): 表面と裏面のスキャンのまとまりを、正しいページ順に並べ替えます。
+- [**複製と整理**](./organize-pdf): ページの複製、並べ替え、削除を行います。
+- [**添付ファイルの追加**](./add-attachments): 1つ以上のファイルをPDFに埋め込みます。
+- [**添付ファイルの抽出**](./extract-attachments): PDFに埋め込まれたすべてのファイルをZIPとして抽出します。
+- [**添付ファイルの編集**](./edit-attachments): PDF内の添付ファイルを表示または削除します。
+- [**PDF OCG**](./pdf-layers): PDF内のOCGレイヤーを表示、切り替え、追加、削除します。
+- [**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): 複数のページを1枚のシートに配置します。
+- [**PDFブックレット**](./pdf-booklet): 両面のブックレット印刷用に、ページを並べ替えます。
+- [**単一ページに結合**](./combine-single-page): すべてのページを、1つの連続したスクロールページにつなぎ合わせます。
+- [**メタデータの表示**](./view-metadata): PDFの隠れたプロパティを確認します。
+- [**メタデータの編集**](./edit-metadata): 作成者、タイトル、その他のプロパティを変更します。
+- [**PDFからZIP**](./pdf-to-zip): 複数のPDFファイルをZIPアーカイブにまとめます。
+- [**PDFの比較**](./compare-pdfs): 2つのPDFを並べて比較します。
+- [**PDFのポスタライズ**](./posterize-pdf): 大きなページを、複数の小さなページに分割します。
+
+
+
+---
+
+## 最適化と修復
+
+PDFを圧縮、修正、最適化して、パフォーマンスと互換性を高めます。
+
+
+
+- [**PDFの圧縮**](./compress-pdf): PDFのファイルサイズを小さくします。
+- [**PDFからPDF/A**](./pdf-to-pdfa): 長期保存用に、PDFをPDF/Aに変換します。
+- [**ページサイズを固定**](./fix-page-size): すべてのページを同じサイズに統一します。
+- [**PDFの線形化**](./linearize-pdf): PDFをWebでの高速表示向けに最適化します。
+- [**ページ寸法**](./page-dimensions): ページのサイズ、向き、単位を分析します。
+- [**制限の解除**](./remove-restrictions): パスワード保護とセキュリティ制限を解除します。
+- [**PDFの修復**](./repair-pdf): 破損したPDFファイルからデータを復元します。
+- [**PDFの画像化**](./rasterize-pdf): PDFを画像ベースのPDFに変換します。レイヤーを平坦化し、選択可能なテキストを取り除きます。
+- [**PDFの傾き補正**](./deskew-pdf): OpenCVを使って、傾いたスキャンページを自動で水平に補正します。
+- [**フォントをアウトライン化**](./font-to-outline): 表示を一定にするため、すべてのフォントをベクターアウトラインに変換します。
+
+
+
+---
+
+## PDFのセキュリティ
+
+PDF文書を保護、暗号化し、アクセスを制御します。
+
+
+
+- [**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証明書を使って、暗号化された電子署名を追加します。
+- [**署名の検証**](./validate-signature-pdf): 電子署名を検証し、証明書の詳細を表示します。
+
+
diff --git a/docs/ja/tools/invert-colors.md b/docs/ja/tools/invert-colors.md
new file mode 100644
index 00000000..6d65bc75
--- /dev/null
+++ b/docs/ja/tools/invert-colors.md
@@ -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)
diff --git a/docs/ja/tools/jpg-to-pdf.md b/docs/ja/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..1f35d294
--- /dev/null
+++ b/docs/ja/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPGからPDF
+description: 1つ以上のJPG、JPEG、JPEG 2000画像を、ブラウザー上で直接1つのPDFファイルに変換します。
+---
+
+# JPGからPDF
+
+JPG画像をきれいなPDFにします。ファイルを1つだけ、または複数のJPGをまとめてアップロードでき、各画像が出力文書のフルサイズの1ページになります。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :----------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## 使い方
+
+1. アップロードエリアをクリックするか、JPGファイルをドラッグ&ドロップします。複数選択に対応しています。
+2. アップロードしたファイルを確認します。ゴミ箱アイコンで個別に削除でき、**ファイルを追加**で一覧に追加できます。
+3. **PDFの品質**を選びます。
+4. **PDFに変換**をクリックします。ツールは品質設定に応じて画像を圧縮し、PyMuPDFエンジンで変換して、`from_jpgs.pdf`をダウンロードします。
+
+## オプション
+
+**PDFの品質**は、PDFに埋め込む前に各画像へ適用する圧縮を調整します。
+
+- **高品質**: 細部を最大限に保ちます。写真や印刷向けです。
+- **中品質**(初期値): 鮮明さとファイルサイズのバランスが良い設定です。
+- **低品質**: 強力に圧縮して、出力を最小にします。
+
+## 活用例
+
+- JPGで保存したスキャン文書を、提出用の1つのPDFにまとめる
+- 顧客向けに、商品写真をカタログとしてまとめる
+- 医療や衛星のJPEG 2000画像を、持ち運びしやすいPDFにする
+- カメラから書き出した写真で、印刷用のフォトアルバムを作る
+
+## ヒント
+
+- 標準のJPEGだけでなく、JPEG 2000ファイル(`.jp2`、`.jpx`)にも完全に対応しています。医療画像や地理空間データに便利です。
+- スマートフォンのカメラで撮ったJPGなら、中品質にすると、画面上では違いが見えないまま、高品質よりファイルが40〜60%小さくなることが多いです。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [PNGからPDF](./png-to-pdf)
+- [WebPからPDF](./webp-to-pdf)
diff --git a/docs/ja/tools/json-to-pdf.md b/docs/ja/tools/json-to-pdf.md
new file mode 100644
index 00000000..08f449ca
--- /dev/null
+++ b/docs/ja/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSONからPDF
+description: BentoPDFのJSON形式からPDFファイルを再構築します。JSONで書き出したデータを、元のPDF文書に戻します。
+---
+
+# JSONからPDF
+
+BentoPDFの**PDFからJSON**ツールで作成したJSONファイルから、PDF文書を再構築します。これは往復変換のためのツールで、PDFの構造化されたJSON表現を受け取り、元の文書を組み立て直します。
+
+::: warning
+このツールが受け付けるのは、BentoPDFのPDFからJSONコンバーターで作成したJSONファイルのみです。APIやデータベース、他のツールが出力する一般的なJSONファイルには対応していません。
+:::
+
+## 対応フォーマット
+
+| 入力 | 説明 |
+| :------ | :---------------------------------------------------- |
+| `.json` | BentoPDFのPDFからJSONツールで書き出されたJSONファイル |
+
+## 使い方
+
+1. アップロードエリアをクリックするか、1つ以上のJSONファイルをドラッグ&ドロップします。
+2. ファイル一覧に、選択した各ファイルとそのサイズが表示されます。
+3. **PDFに変換**をクリックします。ツールはWeb WorkerとCPDFエンジンですべてのファイルを処理します。
+4. 出力は`jsons-to-pdf.zip`としてダウンロードされ、入力した各JSONファイルにつき1つのPDFが含まれます。
+
+変換はバックグラウンドのWeb Workerで実行されるため、大きなファイルでもUIは応答し続けます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。出力されるPDFは、JSONの構造によって完全に決まります。
+
+## 出力
+
+複数のJSONファイルを変換した場合、結果はZIPアーカイブで提供されます。各PDFは元のJSONファイルの名前が付きます(例: `report.json`は`report.pdf`になります)。
+
+## 活用例
+
+- JSONベースのバックアップやアーカイブのパイプラインからPDFを復元する
+- PDFをJSONに変換して中身を確認し、再びPDFに戻す
+- JSON構造をプログラムで変更した後に、文書を再構築する
+- PDFからJSONへの書き出しがすべての文書内容を取得できているか、変換し直して確認する
+
+## ヒント
+
+- 任意のJSONデータ(APIのレスポンスや設定ファイルなど)を整形したPDFに変換したい場合は、[テキストからPDF](./txt-to-pdf)ツールのほうが向いています。JSONをテキストとして貼り付けると、適切な書式でレンダリングされます。
+- このツールを使うには、CPDF WebAssemblyエンジンが利用可能である必要があります。セルフホスト環境では、CPDFのWASMファイルを設定してください。
+
+## 関連ツール
+
+- [テキストからPDF](./txt-to-pdf)
+- [マークダウンからPDF](./markdown-to-pdf)
+- [CSVからPDF](./csv-to-pdf)
diff --git a/docs/ja/tools/linearize-pdf.md b/docs/ja/tools/linearize-pdf.md
new file mode 100644
index 00000000..a8412921
--- /dev/null
+++ b/docs/ja/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PDFの線形化
+description: プログレッシブ読み込みに対応して、PDFをWebでの高速表示向けに最適化します。「Fast Web View」最適化とも呼ばれます。
+---
+
+# PDFの線形化
+
+線形化はPDFの構造を組み替えて、ファイル全体のダウンロードが終わる前に最初のページを表示できるようにします。Adobeはこれを「Fast Web View」と呼んでいます。PDFをWebサイトで公開したり、ドキュメントポータルで提供したりしている場合、線形化すると開くときの体感速度が大きく向上します。
+
+## 使い方
+
+1. 1つ以上のPDFファイルをアップロードします。
+2. **PDFを線形化**をクリックします。
+3. すべての線形化済みファイルを含むZIPアーカイブとして、結果をダウンロードします。
+
+設定項目はありません。このツールはQPDFの`--linearize`フラグを使い、見た目の内容を変えずにPDFの内部構造を並べ替えます。
+
+## 線形化で行われること
+
+- 最初のページのデータがファイルの先頭に来るよう、PDFオブジェクトを並べ替える
+- ビューアーが各ページの場所を把握できるよう、線形化ディクショナリとヒントテーブルを追加する
+- バイトレンジリクエストを有効にし、ブラウザーがファイル全体をダウンロードせずに最初のページだけを取得できるようにする
+- ランダムアクセスを効率化するため、相互参照テーブルを整理する
+
+## 機能
+
+- 複数のPDFを1回の操作でバッチ処理
+- 出力はすべてのコンテンツ、フォント、画像、インタラクティブ要素を保持
+- 確実で標準に準拠した線形化のためにQPDF(WebAssembly)を使用
+- 結果は簡単にダウンロードできるようZIPにまとめられる
+
+## 活用例
+
+- ユーザーが即座にページ表示されることを期待するWebサイトで、PDFレポートを公開する
+- ブラウザー内ビューアーを備えたWebアプリケーションにPDFを埋め込む
+- 低速なモバイル回線でアクセスされるPDFのカタログやマニュアルを公開する
+- バイトレンジ配信に対応したコンテンツ配信ネットワーク(CDN)向けに文書を準備する
+
+## ヒント
+
+- 線形化は、ほかの編集がすべて終わってから行ってください。その後に変更(結合やページの追加など)を加えると、線形化が解除されます。
+- 「PDFの圧縮」と組み合わせると、最小で最速に読み込めるPDFになります。
+- 線形化によってファイルサイズがわずかに増えます(通常は1%未満)。
+
+## 関連ツール
+
+- [PDFの圧縮](./compress-pdf): 線形化の前にファイルサイズを削減
+- [PDFの修復](./repair-pdf): 線形化を妨げる構造上の問題を修正
+- [メタデータの削除](./remove-metadata): オンライン公開の前にメタデータを削除
diff --git a/docs/ja/tools/markdown-to-pdf.md b/docs/ja/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..753d6c16
--- /dev/null
+++ b/docs/ja/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: マークダウンからPDF
+description: Markdownを書くか貼り付けて、ライブプレビューとシンタックスハイライト付きで、整ったPDFとして書き出します。
+---
+
+# マークダウンからPDF
+
+ライブプレビューとワンクリックのPDF書き出しを備えた、高機能なMarkdownエディターです。ゼロから書く、既存の`.md`ファイルをアップロードする、クリップボードから貼り付けるのいずれも可能です。エディターはMarkdownをリアルタイムでレンダリングし、ブラウザー内蔵の印刷エンジンでスタイル付きのPDFを書き出します。
+
+## 対応フォーマット
+
+| 入力 | 説明 |
+| :------------ | :--------------------------------- |
+| `.md`ファイル | アップロードボタンからアップロード |
+| 直接入力 | エディターに入力または貼り付け |
+
+## 使い方
+
+1. マークダウンからPDFツールを開きます。エディターは分割ビューで読み込まれ、左にMarkdownのソース、右にレンダリングされたプレビューが表示されます。
+2. Markdownを書くか貼り付けるか、**アップロード**をクリックして`.md`ファイルを読み込みます。
+3. ツールバーのテーマスライダーで、ライトテーマとダークテーマを切り替えます。
+4. **PDFを書き出し**をクリックするか`Ctrl/Cmd + S`を押すと、ブラウザーの印刷ダイアログ経由でPDFが生成されます。
+
+## 機能
+
+このエディターは、基本を超えた豊富な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のアーキテクチャ図を含む技術レポートを作る
+- GitHubのREADMEを、オフラインでの閲覧や印刷用にPDFへ変換する
+- タスクリストや表を使って、提案書や仕様書の下書きを作る
+- Markdownで書いた講義ノートから、スタイル付きの配布資料を作る
+
+## ヒント
+
+- PDFの出力にはブラウザーの「PDFに印刷」機能を使います。Chromeでは、保存前に印刷ダイアログで余白や拡大率を調整できます。
+- Mermaid図はプレビューに表示されますが、初回は初期化に少し時間がかかる場合があります。
+- ボタンに手を伸ばさず書き出すには、キーボードショートカットの`Ctrl/Cmd + S`を使ってください。
+
+## 関連ツール
+
+- [テキストからPDF](./txt-to-pdf)
+- [WordからPDF](./word-to-pdf)
+- [JSONからPDF](./json-to-pdf)
diff --git a/docs/ja/tools/merge-pdf.md b/docs/ja/tools/merge-pdf.md
new file mode 100644
index 00000000..e839bafe
--- /dev/null
+++ b/docs/ja/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDFの結合
+description: ドラッグ&ドロップでの並べ替えとページ単位の制御で、複数のPDFファイルを1つの文書に結合します。
+---
+
+# PDFの結合
+
+複数のPDFファイルを1つの文書に結合します。ファイル全体を指定した順序で結合することも、ページモードに切り替えて、アップロードしたすべてのPDFの個々のページを細かく制御することもできます。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ドラッグして、2つ以上のPDFファイルをアップロードします。
+2. 上部の切り替えで、**ファイルモード**と**ページモード**のどちらかを選びます。
+3. ファイルモードでは、ファイルをドラッグして並べ替え、必要に応じて各ファイルのページ範囲(例: `1-3, 5`)を指定します。範囲を空欄にすると、すべてのページが含まれます。
+4. ページモードでは、個々のページのサムネイルをドラッグ&ドロップして、思い通りのページ順を作ります。
+5. **PDFを結合**をクリックすると、すべてが1つのファイルにまとめられます。結合したPDFは自動でダウンロードされます。
+
+## 機能
+
+- 2つの結合モード: ファイル全体をすばやく結合するファイルモードと、ページ単位で制御するページモード
+- どちらのモードでも、滑らかなアニメーションでドラッグ&ドロップによる並べ替えが可能
+- ページ範囲の記法(例: `1-3, 5, 8-10`)で、ページモードに切り替えずに必要なページだけを選べる
+- サムネイルを遅延読み込みするため、大きな文書でもUIが軽快に動作
+- ファイル数や合計ページ数に制限なし
+- 再エンコードせず、元のPDFの品質を維持
+
+## オプション
+
+| オプション | 説明 |
+| ------------------ | ---------------------------------------------------------------------------------------- |
+| **ファイルモード** | ファイル全体を好きな順序で結合。ファイルごとにページ範囲のフィルターも指定可能 |
+| **ページモード** | すべてのファイルのすべてのページを一覧表示。サムネイルをドラッグして思い通りの順序を作成 |
+| **ページ入力** | ファイルごとのテキスト欄。`1-3, 5`のような範囲を指定して、特定のページだけを含める |
+
+## 活用例
+
+- 章ごとに分かれたPDFを、1冊の本やレポートにまとめる
+- 送付状と履歴書を、1つの応募書類に結合する
+- 複数の元文書から特定のページを取り出して、1つのファイルにまとめる
+- スキャンしたレシートや請求書を、1つのアーカイブPDFにまとめる
+- 複数のスライド資料から、プレゼンテーションの配布資料を作る
+
+## ヒント
+
+- ファイルを次々に追加するのではなく、異なるファイルのページを交互に挟み込みたい場合は、ページモードを使ってください。
+- 最初のアップロード後でも、**ファイルを追加**ボタンでファイルを追加できます。現在の並びは失われません。
+- ページ範囲は1始まりなので、`1`はそのファイルの最初のページを指します。
+
+## 関連ツール
+
+- [PDFの分割](./split-pdf)
+- [複製と整理](./organize-pdf)
+- [代替ページと混合ページ](./alternate-merge)
+- [ページの削除](./delete-pages)
diff --git a/docs/ja/tools/mobi-to-pdf.md b/docs/ja/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..53e0a336
--- /dev/null
+++ b/docs/ja/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBIからPDF
+description: MOBI形式の電子書籍ファイルを、ブラウザー上で直接PDFに変換します。無料でプライベート、ファイルのアップロードは不要です。
+---
+
+# MOBIからPDF
+
+Amazon KindleのMOBI形式の電子書籍を、PDF文書に変換します。MOBIファイルはKindleの端末やアプリに依存しているため、ほかの環境では読みにくいことがあります。PDFに変換すれば、どんなデバイスでも開いたり印刷したりできる、持ち運びしやすい版が手に入ります。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :----------- | :------ | :--------------------------------- |
+| MOBI | `.mobi` | Kindleの電子書籍形式(Mobipocket) |
+
+## 使い方
+
+1. アップロードエリアをクリックするか、1つ以上のMOBIファイルをドラッグ&ドロップします。
+2. ファイル一覧を確認します。不要なファイルはゴミ箱アイコンで削除でき、**ファイルを追加**で電子書籍を追加できます。
+3. **PDFに変換**をクリックします。PyMuPDFエンジンがMOBIの構造を解析し、各ページをPDFの内容としてレンダリングします。
+4. ファイルが1つの場合はPDFとしてダウンロードされます。複数ファイルを変換した場合は、`mobi-converted.zip`という名前のZIPアーカイブが得られます。
+
+## オプション
+
+追加の設定は不要です。変換では、元のMOBIファイルのテキスト、書式、埋め込み画像が保持されます。
+
+## 活用例
+
+- PDFにしか対応していない、Kindle以外の電子書籍リーダーで、Kindleで購入したコンテンツを読む
+- オフラインでの学習や書き込みのために、電子書籍の章を印刷する
+- 個人の電子書籍ライブラリを、汎用的な形式でアーカイブする
+- Kindleアプリを持っていない相手に、抜粋を共有する
+
+## ヒント
+
+- DRM保護されたMOBIファイルは変換できません。このツールが扱えるのはDRMフリーのMOBIファイルのみです。
+- すべてがブラウザー内で処理されるため、画像が多く埋め込まれた大きな電子書籍は、処理に数秒長くかかる場合があります。
+
+## 関連ツール
+
+- [EPUBからPDF](./epub-to-pdf)
+- [FB2からPDF](./fb2-to-pdf)
+- [CBZからPDF](./cbz-to-pdf)
diff --git a/docs/ja/tools/n-up-pdf.md b/docs/ja/tools/n-up-pdf.md
new file mode 100644
index 00000000..ec3fd82f
--- /dev/null
+++ b/docs/ja/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-Up PDF
+description: 複数のPDFページを1枚のシートにグリッド状に配置し、コンパクトに印刷します。
+---
+
+# N-Up PDF
+
+複数のページを、グリッド状に1枚のシートに配置します。1枚に2、4、6、8、9、16ページを収めることで、印刷枚数を減らせます。拡大縮小、配置、必要に応じたページサイズの設定は、ツールが処理します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. 1枚あたりのページ数(「N」の値)を選びます: 2、4、6、8、9、16。
+3. 出力するページサイズ(初期値はA4)と向きを選びます。
+4. 必要に応じて、間隔、枠線の色、背景色を設定します。
+5. 処理ボタンをクリックします。ツールが各ページを拡大縮小し、新しいシートに並べます。
+
+## 機能
+
+- グリッドレイアウト: 2-up、4-up、6-up、8-up、9-up、16-up
+- 出力ページサイズと向きを設定可能
+- 並べたページ間の間隔を任意で設定可能
+- 背景色と枠線の色の設定
+- 元のページの縦横比を保ったまま、収まるように拡大縮小
+
+## オプション
+
+| オプション | 説明 |
+| ----------------------- | ------------------------------------------------------ |
+| **1枚あたりのページ数** | 出力ページ1枚に収める元のページ数(2、4、6、8、9、16) |
+| **ページサイズ** | 出力シートのサイズ(A4、Letter、Legalなど) |
+| **向き** | 出力シートの縦または横 |
+| **間隔** | 並べたページ間のすき間(ポイント単位) |
+| **背景色** | 出力シートの背景の塗りつぶし色 |
+| **枠線の色** | 並べた各ページの周囲の枠線の色 |
+
+## 活用例
+
+- 紙を節約するため、1ページにスライド4枚を載せた配布資料を印刷する
+- 複数の参考ページを1枚にまとめた学習用シートを作る
+- ファイリング用に、コンパクトな文書アーカイブを作る
+- 長い文書のサムネイル一覧シートを作る
+
+## ヒント
+
+- 2-upのレイアウトには横向きが適していることが多く、4-up以上では通常は縦向きが最適です。
+- 間隔を広げると読みやすくなりますが、並べた各ページに使える面積が小さくなります。
+- 逆の操作(1ページを複数に分割する)については、[PDFのポスタライズ](./posterize-pdf)をご覧ください。
+
+## 関連ツール
+
+- [PDFのポスタライズ](./posterize-pdf)
+- [PDFブックレット](./pdf-booklet)
+- [単一ページに結合](./combine-single-page)
diff --git a/docs/ja/tools/ocr-pdf.md b/docs/ja/tools/ocr-pdf.md
new file mode 100644
index 00000000..0e053e3f
--- /dev/null
+++ b/docs/ja/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Tesseract OCRを使い、多言語と文字フィルターに対応して、スキャンしたPDFを検索・コピー可能にします。
+---
+
+# OCR PDF
+
+スキャンした文書を、検索やコピーができるPDFに変えます。このツールはTesseract OCRで画像内のテキストを認識し、元のページの上に不可視のテキストレイヤーを重ねます。見た目はそのままで、内容を完全に検索できるようになります。
+
+## 使い方
+
+1. スキャンしたPDF、または画像ベースのPDFファイルをアップロードします。
+2. 検索できる言語リストから、文書に含まれる言語を1つ以上選びます。
+3. 必要に応じて、詳細設定(解像度、二値化、ホワイトリスト)を調整します。
+4. **OCRを開始**をクリックし、リアルタイムの進行状況バーで進み具合を確認します。
+5. 完了したら、抽出されたテキストを確認し、検索可能なPDFまたはプレーンな`.txt`ファイルをダウンロードします。
+
+## 機能
+
+- 検索可能な言語セレクターによる、多言語OCR
+- 不可視のテキストレイヤーで、元の文書の見た目を維持
+- 処理中のリアルタイムな進行状況バーとログ出力
+- 検索可能なPDFまたはプレーンテキストファイルとして結果をダウンロード
+- 抽出したテキストをクリップボードに直接コピー
+- 速度と精度のバランスを取る、3段階の解像度
+
+## オプション
+
+| 設定 | 値 | 初期値 | 目的 |
+| ---------------------------------- | ------------------------------------------------------------------------ | ------ | ---------------------------------------------------------------------- |
+| **解像度** | 標準(192 DPI)、高(288 DPI)、超高(384 DPI) | 高 | 解像度を上げると小さな文字の精度が向上しますが、処理に時間がかかります |
+| **画像を二値化** | オン / オフ | オフ | 白黒に変換して、きれいなスキャンのコントラストを高めます |
+| **文字ホワイトリストのプリセット** | なし、英数字、数字と通貨、文字のみ、数字のみ、請求書、フォーム、カスタム | なし | 認識する文字を制限して、特定の種類の文書での精度を高めます |
+| **文字ホワイトリスト** | 自由入力 | 空 | プリセットがカスタムのときに使う、手動の文字セット |
+
+## 活用例
+
+- スキャンした契約書や請求書を検索可能にして、Ctrl+Fで探せるようにする
+- 撮影した文書や古い紙の記録からテキストを抽出する
+- 請求書プリセットでレシートを処理し、金額や日付を正確に取り込む
+- コンプライアンス要件のために、画像のみのスキャンからアクセシブルなPDFを作る
+- スキャンした書籍やマニュアルのテキストを一括で抽出する
+
+## ヒント
+
+- 文書に複数の言語が混在している場合(例: 英語の見出しと日本語の本文)は、複数の言語を選択してください。
+- 文字がかすれていたりコントラストが低い文書には、二値化オプションを使ってください。認識精度が大きく向上することがあります。
+- 請求書とフォームのホワイトリストプリセットは、無関係な文字の形を無視するため、構造化された文書での誤認識を大幅に減らします。
+
+## 関連ツール
+
+- [PDFテーブルの抽出](./extract-tables)
+- [PDFの結合](./merge-pdf)
+- [PDFの圧縮](./compress-pdf)
diff --git a/docs/ja/tools/odg-to-pdf.md b/docs/ja/tools/odg-to-pdf.md
new file mode 100644
index 00000000..ef926c13
--- /dev/null
+++ b/docs/ja/tools/odg-to-pdf.md
@@ -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. ファイルが1つの場合はPDFが直接ダウンロードされます。複数の場合は、`odg-to-pdf.zip`という名前のZIPアーカイブになります。
+
+## オプション
+
+追加の設定は不要です。変換では、ODGソースの元のページ寸法、図形、コネクター、テキストボックスが保持されます。
+
+## 活用例
+
+- LibreOfficeをインストールしていない取引先と、LibreOffice Drawの図を共有する
+- Drawで作成したフローチャートやネットワーク図を印刷する
+- ODGのイラストを、PDFとしてレポートやプレゼンテーションに埋め込む
+- 技術図面を、数十年先でも読める形式でアーカイブする
+
+## ヒント
+
+- ベクター要素はPDF出力でもベクターのまま保たれるため、どんな印刷サイズにもきれいに拡大縮小できます。
+- LibreOfficeエンジンは初回の使用時に初期化に少し時間がかかります。その後、同じセッション内の変換はより速くなります。
+
+## 関連ツール
+
+- [ODSからPDF](./ods-to-pdf)
+- [ODPからPDF](./odp-to-pdf)
+- [VSDからPDFへのファイル変換](./vsd-to-pdf)
diff --git a/docs/ja/tools/odp-to-pdf.md b/docs/ja/tools/odp-to-pdf.md
new file mode 100644
index 00000000..e53d2390
--- /dev/null
+++ b/docs/ja/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODPからPDF
+description: LibreOffice Impress(ODP)のプレゼンテーションを、ブラウザー上でPDFに変換します。無料でプライベート、アップロード不要です。
+---
+
+# ODPからPDF
+
+OpenDocument PresentationファイルをPDFに変換します。ODPはLibreOffice Impressのネイティブ形式で、Googleスライドの標準的な書き出し形式でもあります。プレゼンテーションをPDFにすれば、誰でもプレゼンテーションソフトなしで閲覧でき、スライドもきれいに印刷できます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :------------------------ | :----- | :--------------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / Googleスライドの書き出し |
+
+## 使い方
+
+1. アップロードエリアをクリックするか、ODPファイルをドラッグ&ドロップします。複数のプレゼンテーションを一度に選択できます。
+2. ファイル一覧を確認します。ゴミ箱アイコンで削除でき、**ファイルを追加**でプレゼンテーションを追加できます。
+3. **PDFに変換**をクリックします。LibreOfficeベースのエンジンが各プレゼンテーションを処理し、スライドが1枚ずつ1ページになったPDFを作成します。
+4. ファイルが1つの場合はPDFとしてダウンロードされます。複数ファイルの場合は、`odp-to-pdf.zip`という名前のZIPアーカイブで提供されます。
+
+## オプション
+
+設定する項目はありません。各スライドは元の寸法でレンダリングされ、テキスト、画像、図形、スライドの背景が保持されます。
+
+## 活用例
+
+- 配布資料のPDFとして、プレゼンテーションを参加者に配布する
+- ODPよりPDFを好む相手に、Googleスライドの書き出しを共有する
+- カンファレンスの講演や講義を、読み取り専用の形式でアーカイブする
+- 対面のワークショップ用に、スライド資料を印刷する
+
+## ヒント
+
+- スライドの切り替え効果やアニメーションは視覚効果のみでPDFには引き継がれませんが、静的なコンテンツはすべて正しくレンダリングされます。
+- スピーカーノートはPDFの出力に含まれません。ノートが必要な場合は、プレゼンテーションソフトから別途書き出してください。
+- ほかのLibreOfficeベースのツールと同様に、エンジンは初回の使用時に読み込まれ、セッション中はキャッシュされたままになります。
+
+## 関連ツール
+
+- [ODGからPDF](./odg-to-pdf)
+- [ODSからPDF](./ods-to-pdf)
+- [PUBからPDF](./pub-to-pdf)
diff --git a/docs/ja/tools/ods-to-pdf.md b/docs/ja/tools/ods-to-pdf.md
new file mode 100644
index 00000000..1d1a4b67
--- /dev/null
+++ b/docs/ja/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODSからPDF
+description: LibreOffice Calc (ODS) のスプレッドシートをブラウザ上でPDFに変換します。無料、プライベート、登録不要。
+---
+
+# ODSからPDF
+
+OpenDocumentスプレッドシートファイルをPDFに変換します。ODSはLibreOffice Calcのネイティブ形式で、Google Sheetsからよくエクスポートされる形式でもあります。このツールは、スプレッドシートのデータ、書式、グラフをページ分割されたPDFにレンダリングし、印刷や共有に使えるようにします。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :----------------------- | :----- | :--------------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | LibreOffice Calc / Google Sheetsのエクスポート |
+
+## 使い方
+
+1. アップロード領域をクリックするか、ODSファイルをドラッグ&ドロップします。複数のファイルに対応しています。
+2. ファイル一覧を確認します。ごみ箱アイコンでファイルを削除するか、**ファイルを追加**をクリックしてバッチを増やせます。
+3. **PDFに変換**をクリックします。LibreOfficeベースのエンジンがブラウザに読み込まれ、各スプレッドシートをPDFページにレンダリングします。
+4. 1つのスプレッドシートはPDFとしてダウンロードされます。複数のファイルは`ods-to-pdf.zip`にまとめられます。
+
+## オプション
+
+設定は不要です。コンバーターは、スプレッドシートに設定済みの印刷レイアウト、セルの書式、列幅をそのままPDF出力に適用します。
+
+## ユースケース
+
+- PDFしか受け付けない相手にLibreOffice Calcの予算表やレポートを共有する
+- ODSとしてダウンロードしたGoogle Sheetsのエクスポートを印刷する
+- 財務記録を編集できない形式で保管する
+- ODSベースのフォームやタイムシートをレイアウト固定の文書として提出する
+
+## ヒント
+
+- スプレッドシートに複数のシートがある場合、すべてのシートがPDF出力に含まれます。
+- 非常に幅の広いスプレッドシートは、PDFの複数ページに横方向で分割されることがあります。レイアウトが重要な場合は、変換前に元ファイルで列幅を調整してください。
+- LibreOfficeエンジンは初回使用時に初期化されます。同じセッション内の2回目以降の変換は高速です。
+
+## 関連ツール
+
+- [ODGからPDF](./odg-to-pdf)
+- [ODPからPDF](./odp-to-pdf)
+- [XMLからPDF](./xml-to-pdf)
diff --git a/docs/ja/tools/odt-to-pdf.md b/docs/ja/tools/odt-to-pdf.md
new file mode 100644
index 00000000..57c59cf7
--- /dev/null
+++ b/docs/ja/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODTからPDF
+description: LibreOfficeベースのエンジンを使い、OpenDocument Text (ODT) ファイルをブラウザ上でPDF形式に変換します。
+---
+
+# ODTからPDF
+
+OpenDocument TextファイルをPDFに変換します。ODTはLibreOffice Writer、Apache OpenOffice、その他のオープンソースワープロのネイティブ形式です。このツールはブラウザ上のLibreOfficeエンジンを使い、書式、表、画像、スタイルを保持した正確な変換を行います。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :---------------- | :----- |
+| OpenDocument Text | `.odt` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、1つ以上のODTファイルをドラッグ&ドロップします。
+2. ファイル一覧を確認します。ファイルの追加や不要なファイルの削除ができます。
+3. **PDFに変換**をクリックします。LibreOfficeエンジンが初期化され (進行状況インジケーターに読み込み状況が表示されます)、その後各ファイルが変換されます。
+4. 1つのファイルはPDFとして直接ダウンロードされます。複数のファイルは`odt-converted.zip`にまとめられます。
+
+## オプション
+
+このツールに追加の設定はありません。変換では、元の文書の書式をできるだけ忠実に保持します。
+
+## 出力
+
+| 入力数 | 出力 |
+| :------------ | :-------------------------------------------------------------------- |
+| 1ファイル | 単一のPDFをダウンロード (例: `document.pdf`) |
+| 2ファイル以上 | ZIPアーカイブ (`odt-converted.zip`)。ファイルごとに1つのPDFを含みます |
+
+## ユースケース
+
+- LibreOffice Writerの文書をPDFに変換し、Microsoft Officeユーザーと共有する
+- OpenDocument形式で書かれた学術論文から印刷用PDFを作成する
+- ODTテンプレートのフォルダをまとめてPDFに変換して配布する
+- 自動文書生成システムが作成したODTファイルからPDFを生成する
+
+## ヒント
+
+- 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)
diff --git a/docs/ja/tools/organize-pdf.md b/docs/ja/tools/organize-pdf.md
new file mode 100644
index 00000000..a8516b9c
--- /dev/null
+++ b/docs/ja/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: 複製と整理
+description: ドラッグ&ドロップのサムネイルとカスタムページ順入力で、PDFのページを並べ替え、複製、削除します。
+---
+
+# 複製と整理
+
+視覚的なドラッグ&ドロップ操作で、PDFのページを並べ替え、複製、削除します。各ページはサムネイルとして表示され、移動、複製、削除をしてから新しいファイルとして保存できます。
+
+## 使い方
+
+1. PDFファイルを1つアップロードします。
+2. すべてのページを示すサムネイルグリッドが表示されます。
+3. サムネイルをドラッグしてページを並べ替えます。緑の複製ボタンでページを複製し、赤の削除ボタンでページを削除します。
+4. または、テキストフィールドにカスタムページ順 (例: `3, 1, 2, 4`) を入力して**適用**をクリックすると、すべてのページを一度に並べ替えられます。
+5. 処理ボタンをクリックして、整理したPDFを作成しダウンロードします。
+
+## 機能
+
+- アニメーション付きのドラッグ&ドロップによるページの並べ替え
+- ページごとの複製ボタンと削除ボタン
+- 正確な並べ替えのためのカスタムページ順入力
+- 変更のたびに自動更新されるページ番号ラベル
+- 最後に残った1ページは削除できません
+
+## ユースケース
+
+- レポートの中で位置がずれたページを正しい位置に移動する
+- フォームのページを複製し、1つのファイルに複数の空白コピーを作る
+- 文書を配布する前に、下書きやプレースホルダーのページを削除する
+- 印刷準備のためにページ順を逆にしたり入れ替えたりする
+- 別々のファイルを再結合せずに、独自のページ順序を作る
+
+## ヒント
+
+- カスタムページ順のフィールドには、元のページ番号をカンマ区切りで入力します。すべてのページをちょうど1回ずつ含める必要があり、抜けや重複は使えません。
+- ページを複製すると、2つのコピーは同じ元のページインデックスを参照します。どちらのコピーも独立して並べ替えられます。
+- 複数ファイルにまたがる一括操作やより高度なワークフローには、代わりに[PDFマルチツール](./pdf-multi-tool)をご検討ください。
+
+## 関連ツール
+
+- [PDFの結合](./merge-pdf)
+- [ページの削除](./delete-pages)
+- [PDFマルチツール](./pdf-multi-tool)
+- [ページの反転](./reverse-pages)
diff --git a/docs/ja/tools/page-dimensions.md b/docs/ja/tools/page-dimensions.md
new file mode 100644
index 00000000..51ba7e14
--- /dev/null
+++ b/docs/ja/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: ページ寸法
+description: PDFのページサイズ、向き、縦横比、回転を分析します。サイズが混在した文書を検出し、データをCSVにエクスポートできます。
+---
+
+# ページ寸法
+
+PDFのすべてのページを読み取り、正確な寸法、向き、標準サイズ名、縦横比、面積、回転を報告する診断ツールです。印刷前にサイズが混在したページを見つけたり、受け取ったPDFのプロパティを記録したりするのに便利です。
+
+## 使い方
+
+1. PDFファイルをアップロードします。分析は自動的に始まり、押すボタンはありません。
+2. サマリーパネルに、総ページ数、異なるページサイズの数、サイズが混在しているかどうかが表示されます。
+3. ページごとの詳細を含む結果テーブル全体を確認します。
+4. 表示単位をポイント、インチ、ミリメートル、ピクセルから切り替えられます。
+5. **CSVにエクスポート**をクリックしてデータを保存します。
+
+## 報告される項目
+
+| 列 | 説明 |
+| ---------- | ------------------------------------------------- |
+| ページ番号 | 連番のページ番号 |
+| 寸法 | 選択した単位での幅 x 高さ |
+| 標準サイズ | 一致した名前 (A4、Letterなど)、または「カスタム」 |
+| 向き | 縦または横 |
+| 縦横比 | 幅と高さの比 (小数) |
+| 面積 | 選択した単位の2乗でのページ面積 |
+| 回転 | ページの回転角度 (度) |
+
+## 機能
+
+- 標準の用紙サイズ (A3、A4、A5、Letter、Legal、Tabloidなど) の自動検出
+- サイズ混在の警告。どのサイズが何ページで使われているかの内訳も表示
+- ポイント、インチ、ミリメートル、ピクセル (96 PPI) の間の単位変換
+- スプレッドシートやドキュメント管理システムで使えるCSVエクスポート
+
+## ユースケース
+
+- 印刷会社に文書を提出する前に、すべてのページがA4であることを確認する
+- 結合したPDFで特定のページだけ余白が想定外になる原因を調べる
+- 大量のPDFアーカイブのページレイアウトをメタデータ記録として文書化する
+- 修正が必要な回転済みページを見つける
+
+## ヒント
+
+- サマリーに「サイズ混在」と表示された場合は、印刷前にページサイズを固定ツールで統一してください。
+- 回転フィールドを見ると、正しく表示されていても回転属性が0以外のページを特定できます。これは一部のワークフローで問題の原因になることがあります。
+
+## 関連ツール
+
+- [ページサイズを固定](./fix-page-size): サイズが混在していると分かったページを統一します
+- [PDFの圧縮](./compress-pdf): ページの問題を修正した後にPDFを最適化します
+- [PDFの回転](./rotate-pdf): 回転しているページを修正します
diff --git a/docs/ja/tools/page-numbers.md b/docs/ja/tools/page-numbers.md
new file mode 100644
index 00000000..d9726441
--- /dev/null
+++ b/docs/ja/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: ページ番号
+description: フォント、サイズ、色を設定して、PDFページの好きな位置にカスタマイズ可能なページ番号を追加します。
+---
+
+# ページ番号
+
+PDFのすべてのページに、見えるページ番号を追加します。位置、形式、フォントサイズ、色を選ぶだけで、あとはツールが処理します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. 表示されるオプションパネルでページ番号の設定を行います。
+3. **ページ番号を追加**をクリックして処理します。
+4. 番号付きのPDFが自動的にダウンロードされます。
+
+## オプション
+
+- **位置**: ページ番号を表示する場所を選びます。下中央、左下、右下、上中央、左上、右上から選べます。
+- **形式**: 単純な連番 (1, 2, 3...) か、「全Yページ中Xページ」形式 (1 / 5, 2 / 5...) を選びます。
+- **フォントサイズ**: ページ番号のテキストサイズを設定します。デフォルトは12です。
+- **色**: カラーピッカーでページ番号のテキストの色を自由に選べます。
+
+## 機能
+
+- 四隅と中央をカバーする6種類の配置オプション
+- 2種類の番号形式: 単純な連番、または「全Yページ中Xページ」
+- 6〜72ポイントで調整できるフォントサイズ
+- テキストの色を選べるフルカラーピッカー
+- ページサイズに関係なく、番号を安全な領域内に収める自動余白処理
+
+## ユースケース
+
+- ページ参照が必要な文書を印刷用に準備する
+- 複数のファイルから作った結合PDFにページ番号を追加する
+- 配布前のプレゼン資料にページ番号を振る
+- 法律文書や契約書に連番を追加する
+
+## ヒント
+
+- 「全Yページ中Xページ」形式は、提案書やレポートなど、読み手が全体の長さを知る必要がある文書に便利です。
+- 前付けにローマ数字を使うなど、セクションごとに異なる番号スタイルが必要な場合は、代わりに[ページラベルの追加](./add-page-labels)ツールを使ってください。
+
+## 関連ツール
+
+- [ページラベルの追加](./add-page-labels)
+- [通し番号付け](./bates-numbering)
+- [ヘッダーとフッター](./header-footer)
diff --git a/docs/ja/tools/pdf-booklet.md b/docs/ja/tools/pdf-booklet.md
new file mode 100644
index 00000000..69425c4a
--- /dev/null
+++ b/docs/ja/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: PDFブックレット
+description: PDFのページを、折って綴じて冊子にするための中綴じ(ブックレット)順に並べ替えます。
+---
+
+# PDFブックレット
+
+PDFのページをブックレットの面付け順に並べ替えます。両面印刷して半分に折ると、ページが正しい読み順になります。中綴じの冊子やジンで使われるレイアウトです。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. ブックレットの設定を行います。出力ページサイズと向きを選びます。
+3. **プレビューを生成**をクリックして、各シートでのページの配置を確認します。
+4. プレビューを確認します。各用紙の表面と裏面に割り当てられたページが表示されます。
+5. **ダウンロード**をクリックして、面付け済みのブックレットPDFを保存します。
+
+## 機能
+
+- 中綴じ製本のための自動ページ並べ替え
+- 出力ページサイズの設定
+- ダウンロード前にブックレットのレイアウトを視覚的にプレビュー
+- ページ数が奇数の場合は必要に応じて空白ページを挿入
+- 元のページをブックレットの用紙サイズに合わせて拡大縮小
+
+## ユースケース
+
+- 通常のPDFから印刷できるブックレットやジンを作る
+- 社内印刷用にカンファレンスのプログラムやイベントガイドを準備する
+- 二つ折りのグリーティングカードや小さなカタログを作る
+- 手製本用の小冊子や詩集を作る
+
+## ヒント
+
+- きれいなブックレットにするには、元のPDFのページ数が4の倍数であることが理想です。そうでない場合は、最後の用紙を埋めるため空白ページが自動的に追加されます。
+- 出力は、プリンターの「短辺とじ」で両面印刷し、すべての用紙を重ねて折り、背をホチキスで留めてください。
+- ブックレット順にせず、単に複数のページを1枚の用紙に並べたい場合は、代わりに[N-Up PDF](./n-up-pdf)を使ってください。
+
+## 関連ツール
+
+- [N-Up PDF](./n-up-pdf)
+- [PDFの回転](./rotate-pdf)
+- [空白ページの追加](./add-blank-page)
diff --git a/docs/ja/tools/pdf-layers.md b/docs/ja/tools/pdf-layers.md
new file mode 100644
index 00000000..0707230d
--- /dev/null
+++ b/docs/ja/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: PDF OCGレイヤー
+description: PDF文書内のオプショナルコンテンツグループ (OCG) レイヤーを表示、切り替え、追加、削除します。
+---
+
+# PDF OCGレイヤー
+
+PDF内のオプショナルコンテンツグループ (OCG)、一般に「レイヤー」と呼ばれるものを管理します。レイヤーの表示切り替え、新しいレイヤー (入れ子の子レイヤーを含む) の追加、レイヤーの削除を行い、変更したPDFを保存できます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. 処理ボタンをクリックして、PyMuPDFエンジンで文書を読み込みます。
+3. 既存のすべてのレイヤーが、表示状態、ロック状態、入れ子の階層とともに表示されます。
+4. チェックボックスでレイヤーの表示と非表示を切り替えます。ロックされたレイヤーは切り替えられません。
+5. 名前を入力して追加ボタンをクリックすると新しいトップレベルのレイヤーを追加でき、既存の親レイヤーの下に子レイヤーも追加できます。
+6. 不要になったレイヤーを削除します。
+7. **保存**をクリックして、レイヤーの変更を反映したPDFをダウンロードします。
+
+## 機能
+
+- 入れ子のレイヤーを適切なインデントで階層表示
+- レイヤーの表示と非表示の切り替え
+- ロックされたレイヤーの表示により、誤った変更を防止
+- 任意の名前でトップレベルまたは子レイヤーを追加
+- 個別のレイヤーを削除
+- すべての変更を新しいPDFファイルに保存
+
+## ユースケース
+
+- 建築や設計図面で、マークアップレイヤーの表示を切り替える
+- 複数レイヤーのデザイン文書に新しい注釈レイヤーを追加する
+- テンプレートを配布する前に、不要になったレイヤーを削除する
+- 第三者から受け取った複雑なPDFにどのレイヤーがあるか調べる
+
+## ヒント
+
+- PDFにレイヤーがない場合、ツールは空の状態を表示し、レイヤーの追加を促します。すべてのPDFがOCGレイヤーを使っているわけではなく、CAD出力やデザインファイルで最もよく使われます。
+- 子レイヤーは親の下にインデントして表示されます。レイヤーは任意の深さまで入れ子にできます。
+- ロックされたレイヤーにはロックアイコンが表示され、チェックボックスは無効になります。このロックはPDFの作成者が設定したものです。
+
+## 関連ツール
+
+- [メタデータの表示](./view-metadata)
+- [メタデータの編集](./edit-metadata)
+- [複製と整理](./organize-pdf)
diff --git a/docs/ja/tools/pdf-multi-tool.md b/docs/ja/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..2562b770
--- /dev/null
+++ b/docs/ja/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: PDFマルチツール
+description: PDFページの結合、分割、回転、複製、削除、並べ替え、サイズ変更ができるオールインワンのページ管理ツールです。
+---
+
+# PDFマルチツール
+
+ページ単位のあらゆるPDF操作をまとめた統合ワークスペースです。1つ以上のPDFをアップロードすると、すべてのページを1つの視覚的なグリッドで扱えます。回転、並べ替え、複製、削除、PDFや画像、空白ページの挿入、ページ番号の振り直し、サイズ変更、結果の分割まで、ツールを離れずに行えます。
+
+## 使い方
+
+1. **ファイルの選択**をクリックするか、アップロード領域にファイルをドラッグします。複数のファイルに対応しており、アップロードした順に結合されます。
+2. すべてのページが、サムネイル付きのスクロール可能なグリッドに表示されます。
+3. ページをクリックすると選択できます。Shiftキーを押しながらクリックすると範囲を選択でき、Cmd/Ctrlキーを押しながらクリックすると個別のページを選択に追加したり、選択から外したりできます。
+4. ページの操作には、オーガナイザーのツールバーを使うか、ページを右クリックします。
+5. **PDFをエクスポート**をクリックして最終結果をダウンロードします。
+
+## 機能
+
+- **結合**: 複数のPDFや画像をアップロードすると、自動的に1つの文書にまとまります
+- **並べ替え**: ページをドラッグ&ドロップして順序を変更したり、文書全体の順序を逆にしたりできます
+- **回転**: 選択したページを90度単位で左または右に回転します
+- **複製**: 選択したページをコピーし、そのすぐ後ろに配置します
+- **削除**: 選択したページを削除します
+- **挿入**: 別のPDFや画像のページ、空白ページ、クリップボードのページを追加したり、2つ目のPDFのページを現在のページと交互に組み合わせたりできます
+- **置換**: ページを別のPDFの1ページ目に差し替えます
+- **切り取り、コピー、貼り付け**: 文書内でページを移動またはコピーします
+- **抽出**: 選択したページをPDFまたは画像としてダウンロードします
+- **ページ番号**: ページ範囲に「i, ii, iii」や「A-1, A-2」のようなページラベルを設定します
+- **ページサイズ**: ページを標準の用紙サイズまたはカスタムサイズに合わせます
+- **分割**: ページ範囲、奇数ページと偶数ページ、1ページずつ、しおり、Nページごと、ファイルサイズで文書を分割します
+- **元に戻す / やり直し**: すべてのページ操作を元に戻したり、やり直したりできます
+- 破損したPDFは読み込み前に自動修復します
+
+## キーボードショートカット
+
+| 操作 | ショートカット |
+| -------------------------- | ----------------------------- |
+| 右に回転 / 左に回転 | R / Shift+R |
+| すべて選択 | Cmd/Ctrl+A |
+| 切り取り、コピー、貼り付け | Cmd/Ctrl+X, C, V |
+| 複製 | Cmd/Ctrl+D |
+| 削除 | DeleteまたはBackspace |
+| 元に戻す / やり直し | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| 選択範囲の移動 | 矢印キー、Home、End |
+
+## ユースケース
+
+- 複数の元PDFのページから独自の文書を作る
+- スキャン文書の空白ページを削除し、横向きのスキャンを回転し、セクションを並べ替えて整える
+- しおりを使って、大きなPDFを章の区切りで分割する
+- 本格的なPDFエディターを使わずに、手早くページ単位で編集する
+
+## ヒント
+
+- 元に戻す/やり直しの履歴は、すべてのページ操作を記録します。作業が誤って失われることはないので、気軽に使ってください。
+- **Insert > From File**を使うか、ページのグリッドにPDFや画像をいつでもドロップすると、文書に追加できます。
+- 単純な結合や分割には、専用の[PDFの結合](./merge-pdf)または[PDFの分割](./split-pdf)ツールのほうが速い場合があります。マルチツールは、1回のセッションで複数の操作が必要なときに力を発揮します。
+
+## 関連ツール
+
+- [PDFの結合](./merge-pdf)
+- [PDFの分割](./split-pdf)
+- [複製と整理](./organize-pdf)
+- [PDFの回転](./rotate-pdf)
diff --git a/docs/ja/tools/pdf-to-bmp.md b/docs/ja/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..8a6557ee
--- /dev/null
+++ b/docs/ja/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDFからBMP
+description: PDFのページを非圧縮のBMP画像に変換します。ビットマップ入力が必要なレガシーシステムや印刷ワークフローに便利です。
+---
+
+# PDFからBMP
+
+PDFの各ページをBMP (ビットマップ) 画像に変換します。BMPは非圧縮形式なので、出力は画質の劣化がなくピクセル単位で正確ですが、ファイルは大きくなります。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **変換**をクリックしてファイルを処理します。
+3. 1つの`.bmp`ファイル、またはZIPアーカイブが自動的にダウンロードされます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。ページは固定の2倍スケールでレンダリングされ、PDF本来のページ寸法のおよそ2倍の画像になります。
+
+## 出力形式
+
+- **1ページ**: `filename.bmp`
+- **複数ページ**: `filename_bmps.zip`。`page_1.bmp`、`page_2.bmp`などを含みます。
+
+## ユースケース
+
+- BMP入力しか受け付けないレガシーシステムやハードウェアにPDFのページを渡す。
+- 特定の印刷ワークフロー向けに非圧縮画像を準備する。
+- 生のピクセルデータが必要な画像処理ツールの入力としてビットマップ出力を使う。
+
+## ヒント
+
+- BMPファイルは圧縮なしで生のピクセルデータを保存するため、非常に大きくなります。ほとんどの用途では、[PDFからPNG](./pdf-to-png)のほうがロスレスの画質を保ちながらファイルがはるかに小さくなります。
+- 対象のシステムがPNGやTIFFに対応しているなら、ディスク容量を節約するためそれらの形式を優先してください。
+
+## 関連ツール
+
+- [PDFからPNG](./pdf-to-png)
+- [PDFからTIFF](./pdf-to-tiff)
+- [PDFからJPG](./pdf-to-jpg)
diff --git a/docs/ja/tools/pdf-to-cbz.md b/docs/ja/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..bb65e6ca
--- /dev/null
+++ b/docs/ja/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDFからCBZ
+description: PDFを、Komga、Kavita、CDisplayEx、Calibreなどのコミックリーダー向けのCBZ (コミックブックアーカイブ) ファイルに変換します。
+---
+
+# PDFからCBZ
+
+PDFをCBZ (Comic Book ZIP) ファイルに変換します。デジタルコミックやマンガの標準形式です。PDFの各ページはアーカイブ内の画像になります。最大限の互換性のため、メタデータはComicInfo.xml、metadata.opf、ComicBookInfo JSONの3つの形式で生成されます。
+
+## 使い方
+
+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のコミュニティ評価。
+
+## メタデータの互換性
+
+このツールは、どのリーダーでも見つけられるよう、3つの形式でメタデータを書き込みます。
+
+| 形式 | 場所 | 対応するリーダー |
+| ------------------ | --------------- | ------------------------------------------- |
+| 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)
diff --git a/docs/ja/tools/pdf-to-csv.md b/docs/ja/tools/pdf-to-csv.md
new file mode 100644
index 00000000..2e6c05e4
--- /dev/null
+++ b/docs/ja/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDFからCSV
+description: PDF文書から表を抽出し、1つのCSVファイルとしてエクスポートします。自動表検出で複数ページのPDFにも対応します。
+---
+
+# PDFからCSV
+
+PDFから表を抽出し、CSVファイルとしてエクスポートします。このツールはPyMuPDFの表検出エンジンですべてのページから表形式のデータを探し、見つかったすべての行を1つのカンマ区切りの出力に書き込みます。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **変換**をクリックして表の抽出を開始します。
+3. ツールが各ページをスキャンし、表を自動的に識別します。
+4. 抽出されたすべての表データを含む`.csv`ファイルがダウンロードされます。
+
+異なるページの表は、出力内で空白行によって区切られます。カンマ、引用符、改行を含むセルは、RFC 4180に従って適切にエスケープされます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。文書内で見つかったすべての表が抽出され、1つのCSVにまとめられます。
+
+## 出力形式
+
+- 検出されたすべての表を含む、単一の`filename.csv`ファイル。
+
+## ユースケース
+
+- PDFの銀行明細や請求書の財務データをスプレッドシートに取り込む。
+- 業者の見積書から価格表を抽出して比較する。
+- PDF論文の表形式の研究データを、分析ツールに適した形式に変換する。
+- 古いPDFレポートのデータをデータベースに移行する。
+
+## ヒント
+
+- 表が見つからない場合、ツールは「表が見つかりません」というメッセージを表示します。これは通常、PDFのテキストレイアウトが表のように見えても、実際の表として構造化されていないことを意味します。
+- 個々の表をより細かく制御したい場合は、CSV、JSON、Markdownの出力形式から選べる[PDFテーブルの抽出](./extract-tables)を使ってください。
+- 表ごとにシートを分けたExcel形式でデータが必要な場合は、[PDFからExcel](./pdf-to-excel)を使ってください。
+
+## 関連ツール
+
+- [PDFからExcel](./pdf-to-excel)
+- [PDFテーブルの抽出](./extract-tables)
+- [PDFからテキスト](./pdf-to-text)
diff --git a/docs/ja/tools/pdf-to-excel.md b/docs/ja/tools/pdf-to-excel.md
new file mode 100644
index 00000000..fb3e71e0
--- /dev/null
+++ b/docs/ja/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDFからExcel
+description: PDF文書から表を抽出してExcelスプレッドシートにします。各表は、ページ参照付きの専用ワークシートに配置されます。
+---
+
+# PDFからExcel
+
+PDFから表を抽出し、Excel (`.xlsx`) スプレッドシートとして保存します。検出された各表は、表番号と元のページが付いた専用のワークシートに配置されます。表の検出にはPyMuPDF、Excelの生成にはSheetJSライブラリを使用しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **変換**をクリックして表の抽出を開始します。
+3. ツールがすべてのページから表をスキャンし、Excelブックを作成します。
+4. 表ごとに1シートを持つ`.xlsx`ファイルがダウンロードされます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。検出されたすべての表が自動的に抽出されます。
+
+## 出力形式
+
+- 単一の`filename.xlsx`ファイル。
+- **表が1つの場合**: 「Table」という名前のワークシートが1つ。
+- **表が複数の場合**: 「Table 1 (Page 3)」、「Table 2 (Page 5)」などの名前のワークシート。シート名はExcelの上限である31文字に切り詰められます。
+
+## ユースケース
+
+- PDFの財務レポートを、さらに分析するための編集可能なスプレッドシートに変換する。
+- 仕入先のPDFから在庫表や注文表を抽出する。
+- PDFのフォームやカタログの構造化データをExcelに取り込み、並べ替えやフィルターを行う。
+- 表形式のPDFデータを、専門外の同僚でも扱える形式で保管する。
+
+## ヒント
+
+- ツールが「表が見つかりません」と報告する場合、そのPDFは構造化された表ではなく、自由なテキストレイアウトを使っている可能性があります。代わりに[PDFからテキスト](./pdf-to-text)で生のコンテンツを取得してみてください。
+- よりシンプルなフラット形式には[PDFからCSV](./pdf-to-csv)を使ってください。表ごとに複数の形式でダウンロードしたい場合は、[PDFテーブルの抽出](./extract-tables)を使ってください。
+- シート名を確認すると、各表がどのページのものか分かります。
+
+## 関連ツール
+
+- [PDFからCSV](./pdf-to-csv)
+- [PDFテーブルの抽出](./extract-tables)
+- [PDFからテキスト](./pdf-to-text)
diff --git a/docs/ja/tools/pdf-to-greyscale.md b/docs/ja/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..3a11c46f
--- /dev/null
+++ b/docs/ja/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDFのグレースケール化
+description: カラーのPDFをグレースケール (白黒) 版に変換します。すべてのページから色を除いた新しいPDFを作成します。
+---
+
+# PDFのグレースケール化
+
+カラーのPDFをグレースケール版に変換します。各ページはレンダリングされ、彩度を落とした後、JPEG画像として新しいPDFに再埋め込みされます。出力は元のページ寸法を保持します。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **変換**をクリックしてファイルを処理します。
+3. すべてのページが白黒に変換された新しい`greyscale.pdf`がダウンロードされます。
+
+内部的には、各ページが2倍スケールでレンダリングされ、ピクセルデータにグレースケールフィルターが適用され、品質90%のJPEGとして再エンコードされて、新しいPDF文書に配置されます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。グレースケール変換には標準の輝度計算式を使い、JPEG品質は90%に固定されています。
+
+## 出力形式
+
+- すべてのページをグレースケールのJPEG画像として含む、単一の`greyscale.pdf`ファイル。
+
+## ユースケース
+
+- カラーインクのコストを節約するため、白黒印刷用に文書を準備する。
+- グレースケールを義務付ける法的または行政の提出要件を満たす。
+- カラーが多いPDFのファイルサイズを減らす (グレースケールのJPEG画像はカラーより小さくなります)。
+- カラーと白黒のページが混在する文書で、見た目を統一する。
+
+## ヒント
+
+- 各ページがラスタライズされJPEGとして再埋め込みされるため、出力は画像ベースになります。元のPDFのテキストは選択も検索もできなくなります。後で検索可能なテキストが必要な場合は、出力をOCRツールにかけてください。
+- 明るさ、コントラスト、彩度などの色調整をより細かく行いたい場合は、色の調整ツールや、[PDFワークフロービルダー](./pdf-workflow)のグレースケールノードをご覧ください。
+
+## 関連ツール
+
+- [PDFからJPG](./pdf-to-jpg)
+- [PDFからPNG](./pdf-to-png)
+- [PDFワークフロービルダー](./pdf-workflow)
diff --git a/docs/ja/tools/pdf-to-jpg.md b/docs/ja/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..c20b8f1e
--- /dev/null
+++ b/docs/ja/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDFからJPG
+description: PDFのページを、品質を調整できるJPG画像に変換します。1ページのPDFは直接ダウンロードされ、複数ページのPDFはZIPとしてエクスポートされます。
+---
+
+# PDFからJPG
+
+PDFの各ページをJPG画像に変換します。1ページの文書は単独の`.jpg`ファイルとしてダウンロードされます。複数ページのPDFは、1ページにつき1つのJPGを含むZIPアーカイブになります。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。ツールにファイル名、ファイルサイズ、ページ数が表示されます。
+2. **品質**スライダーを調整して、JPGの圧縮を制御します。
+3. **変換**をクリックして処理を開始します。
+4. 結果は自動的にダウンロードされます。1ページのPDFなら1つのJPG、複数ページの文書ならZIPファイルです。
+
+## オプション
+
+- **品質**: 0%から100% (デフォルトは90%) のスライダー。値を高くすると、ファイルサイズは大きくなりますが、より鮮明な画像になります。値を低くすると、より強く圧縮されます。
+
+ページは内部で2倍スケールでレンダリングされるため、出力解像度はPDFのページ寸法の2倍になります。標準のレターサイズのページでは、約1,224 x 1,584ピクセルの画像になります。
+
+## 出力形式
+
+- **1ページ**: `filename.jpg`
+- **複数ページ**: `filename_jpgs.zip`。`page_1.jpg`、`page_2.jpg`などを含みます。
+
+## ユースケース
+
+- 文書管理システム用のプレビューサムネイルを生成する。
+- PDFに対応していないチャットやメールで、レポートの1ページを共有する。
+- PDFの図やイラストから画像素材を作る。
+- スキャンした文書を個別の画像として保管する。
+
+## ヒント
+
+- ロスレスの出力が必要な場合は、代わりに[PDFからPNG](./pdf-to-png)を使ってください。
+- 品質を80〜90%に設定すると、ファイルサイズと見た目の忠実度のバランスがよくなります。
+- ページごとに特定の形式が必要な場合は、PDFから画像への出力ノードを持つ[PDFワークフロービルダー](./pdf-workflow)をご検討ください。
+
+## 関連ツール
+
+- [PDFからPNG](./pdf-to-png)
+- [PDFからWebP](./pdf-to-webp)
+- [PDFからBMP](./pdf-to-bmp)
+- [PDFからTIFF](./pdf-to-tiff)
diff --git a/docs/ja/tools/pdf-to-json.md b/docs/ja/tools/pdf-to-json.md
new file mode 100644
index 00000000..3780ebbf
--- /dev/null
+++ b/docs/ja/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDFからJSON
+description: CPDFを使ってPDFファイルを構造化JSON形式に変換します。PDFの内部構造を機械可読なJSONデータとしてエクスポートします。
+---
+
+# PDFからJSON
+
+1つ以上のPDFファイルをJSON形式に変換します。このツールはCPDF (Coherent PDF) を使い、各PDFの内部構造を機械可読なJSON表現にシリアライズします。出力は常にZIPアーカイブとして提供されます。
+
+## 使い方
+
+1. ファイルピッカーで1つ以上のPDFファイルを選択します。
+2. **変換**をクリックして処理を開始します。変換はバックグラウンドのWebワーカーで実行されます。
+3. 入力したPDFごとに1つのJSONファイルを含むZIPアーカイブがダウンロードされます。
+
+ステータスバーに、変換とZIP作成の各段階の進行状況が表示されます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。各PDFは完全なJSON表現に変換されます。
+
+## 出力形式
+
+- 入力したPDFごとの`filename.json`を含む`pdfs-to-json.zip`ファイル。
+
+JSON出力は、ページツリー、フォント参照、メタデータ、コンテンツストリームなど、PDFの内部オブジェクト構造を表します。
+
+## ユースケース
+
+- デバッグや検証のために、PDFの内部構造を調べる。
+- 構造化されたメタデータやページのプロパティをプログラムで抽出する。
+- PDFの構造データを独自の処理パイプラインに渡す。
+- オブジェクトツリーを分析して、PDF文書のコンプライアンスを監査する。
+
+## ヒント
+
+- このツールが出力するのは生のPDFオブジェクト構造で、抽出したテキストコンテンツではありません。ページのテキストをJSON形式で取得したい場合は、代わりに[AI用のPDFを準備する](./prepare-pdf-for-ai)を使ってください。
+- プレーンテキストの抽出には、[PDFからテキスト](./pdf-to-text)のほうが簡単です。
+- 構造が複雑な大きなPDFは、非常に大きなJSONファイルになります。
+
+## 関連ツール
+
+- [PDFからテキスト](./pdf-to-text)
+- [AI用のPDFを準備する](./prepare-pdf-for-ai)
+- [PDFテーブルの抽出](./extract-tables)
diff --git a/docs/ja/tools/pdf-to-markdown.md b/docs/ja/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..3f96e5b8
--- /dev/null
+++ b/docs/ja/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDFからマークダウン
+description: PDF文書をMarkdown形式に変換します。画像の抽出も任意で行え、複数ファイルの一括変換に対応しています。
+---
+
+# PDFからマークダウン
+
+PDFファイルをMarkdown (`.md`) 形式に変換し、見出し、段落、リスト、基本的な書式を保持します。埋め込み画像の抽出と取り込みも任意で行えます。単一ファイルと一括変換に対応しています。PyMuPDFを使用しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、1つ以上のPDFをアップロードします。
+2. 必要に応じて**画像を含める**を切り替え、抽出した画像をMarkdown出力に埋め込みます。
+3. **変換**をクリックして処理を開始します。
+4. 1つのファイルは`filename.md`としてダウンロードされます。複数のファイルは`markdown-files.zip`になります。
+
+## オプション
+
+- **画像を含める**: チェックすると、PDFの埋め込み画像が抽出され、Markdown出力から参照されます。チェックしない場合は、テキストコンテンツのみが変換されます。
+
+## 出力形式
+
+- **単一ファイル**: `filename.md`
+- **複数ファイル**: 入力したPDFごとに1つの`.md`を含む`markdown-files.zip`。
+
+## ユースケース
+
+- PDFのドキュメントを、VitePress、Hugo、Jekyllなどの静的サイトジェネレーター向けにMarkdownへ変換する。
+- PDFの研究論文を、Obsidianなどのノートアプリ向けに編集可能なMarkdownにする。
+- 古いPDFのナレッジベースを、Gitと相性のよいテキスト形式に移行する。
+- PDFの電子書籍から構造化されたコンテンツを抽出し、再フォーマットする。
+
+## ヒント
+
+- 画像を含めるオプションは、PDFにコンテンツに不可欠な図や表が含まれている場合に便利です。テキスト中心の文書では、出力をすっきり保つために無効にしてください。
+- サイドバー、脚注、複数段組みのテキストを含む複雑なレイアウトでは、Markdownが完全にならないことがあります。必要に応じて出力を確認し、調整してください。
+- 書式のない生のテキストが必要な場合は、代わりに[PDFからテキスト](./pdf-to-text)を使ってください。
+
+## 関連ツール
+
+- [PDFからテキスト](./pdf-to-text)
+- [PDFからWord](./pdf-to-word)
+- [AI用のPDFを準備する](./prepare-pdf-for-ai)
diff --git a/docs/ja/tools/pdf-to-pdfa.md b/docs/ja/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..af4dd426
--- /dev/null
+++ b/docs/ja/tools/pdf-to-pdfa.md
@@ -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. 1つ以上のPDFファイルをアップロードします。
+2. ドロップダウンから**PDF/Aバージョン**を選びます。
+3. 通常の変換に失敗する複雑なファイルでは、必要に応じて**事前に平坦化**を有効にします。
+4. **PDF/Aに変換**をクリックします。複数のファイルはZIPアーカイブになります。
+
+## PDF/Aのバージョン
+
+| バージョン | 制限 | 適した用途 |
+| ------------ | ------------------------------------------ | ---------------------------------- |
+| **PDF/A-1b** | 最も厳格。透明効果とレイヤーは使用不可。 | 古い保管システムとの最大限の互換性 |
+| **PDF/A-2b** | 透明効果とJPEG2000を許可。 | 汎用的な保管 (推奨) |
+| **PDF/A-3b** | あらゆる形式の埋め込み添付ファイルを許可。 | 元のデータファイルを含む文書の保管 |
+
+デフォルトではPDF/A-2bが選択されており、ほとんどの保管ニーズに対応できます。
+
+## 事前平坦化オプション
+
+PDFによっては、特殊なフォントエンコーディング、複雑な透明効果の重なり、壊れた内部構造など、PDF/Aへのきれいな変換を妨げる機能が含まれていることがあります。**事前に平坦化**を有効にすると、変換前にPDFを300 DPIでラスタライズします。これにより準拠が保証されますが、テキストは選択できなくなります。標準の変換でエラーが出る場合のフォールバックとして使ってください。
+
+事前平坦化にはPyMuPDF WASMエンジンが必要です。
+
+## ユースケース
+
+- 政府や法的な保管要件を満たす (多くの法域で、裁判所への提出書類にPDF/Aが義務付けられています)
+- 機関リポジトリやデジタルライブラリに文書を提出する
+- 元のソフトウェアが10年後には存在しないかもしれない業務記録を保存する
+- XML添付ファイル付きのPDF/A-3bを必要とする電子請求書の規格向けに請求書を準備する
+
+## ヒント
+
+- まず事前平坦化なしで変換を試してください。エラーが出た場合にのみ有効にします。
+- PDF/Aはすべてのフォントを埋め込むため、出力ファイルは元のファイルより大きくなることがよくあります。
+- ワークフローで厳密な準拠が必要な場合は、専用のPDF/A検証ツールで出力を検証してください。
+
+## 関連ツール
+
+- [PDFの圧縮](./compress-pdf): 変換後にファイルサイズを減らします
+- [PDFの平坦化](./flatten-pdf): PDF/Aに変換する前にフォームを平坦化します
+- [メタデータの削除](./remove-metadata): 保管前にメタデータを取り除きます
diff --git a/docs/ja/tools/pdf-to-png.md b/docs/ja/tools/pdf-to-png.md
new file mode 100644
index 00000000..5f50cf6a
--- /dev/null
+++ b/docs/ja/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDFからPNG
+description: PDFのページを、スケールを調整できるロスレスのPNG画像に変換します。高品質なスクリーンショットや透明な背景に最適です。
+---
+
+# PDFからPNG
+
+PDFの各ページをPNG画像に変換します。PNGはロスレス圧縮を使うため、出力は元のページのあらゆるディテールを保持します。1ページのPDFは`.png`ファイルとしてダウンロードされ、複数ページのPDFはZIPになります。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **スケール**スライダーを設定して、出力解像度を制御します。
+3. **変換**をクリックして処理を開始します。
+4. 1つのPNG、またはZIPアーカイブが自動的にダウンロードされます。
+
+## オプション
+
+- **スケール**: 1.0xから3.0x (デフォルトは2.0x)。2.0xでは、標準のレターサイズのページが約1,224 x 1,584ピクセルでレンダリングされます。スケールを上げると、より大きく鮮明な画像になりますが、ファイルサイズと処理時間が増えます。
+
+## 出力形式
+
+- **1ページ**: `filename.png`
+- **複数ページ**: `filename_pngs.zip`。`page_1.png`、`page_2.png`などを含みます。
+
+## ユースケース
+
+- プレゼン用に、PDFページの高精細なスクリーンショットを取得する。
+- 輪郭がくっきりして圧縮ノイズのない、グラフや図を抽出する。
+- PDFのモックアップから、Webデザイン用の素材を準備する。
+- 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)
diff --git a/docs/ja/tools/pdf-to-svg.md b/docs/ja/tools/pdf-to-svg.md
new file mode 100644
index 00000000..37da412c
--- /dev/null
+++ b/docs/ja/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDFからSVG
+description: PDFのページをスケーラブルなSVGベクターグラフィックスに変換します。テキストと図形をベクターパスとして保持し、無限に拡大できます。
+---
+
+# PDFからSVG
+
+PDFの各ページをSVG (Scalable Vector Graphics) ファイルに変換します。ラスター形式と違い、SVGはベクターパス、テキスト、図形を保持するため、出力はピクセル化せずに任意のサイズへ拡大できます。PyMuPDFを使用しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、1つ以上のPDFをアップロードします。複数のファイルを追加し、個別に管理できます。
+2. **変換**をクリックして、アップロードしたすべてのファイルを処理します。
+3. 1ファイル1ページの変換は、単独の`.svg`としてダウンロードされます。それ以外はZIPアーカイブとしてダウンロードされます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。各ページは、PyMuPDFのネイティブなベクターエクスポートでSVGに変換されます。
+
+## 出力形式
+
+- **単一ファイル、単一ページ**: `filename.svg`
+- **単一ファイル、複数ページ**: `filename_svg.zip`。`page_1.svg`、`page_2.svg`などを含みます。
+- **複数ファイル**: 元の文書名ごとに整理されたファイルを含む`pdf_to_svg.zip`。
+
+## ユースケース
+
+- PDFレポートからベクターの図、グラフ、イラストを抽出し、Webページで使う。
+- InkscapeやIllustratorなどのベクターエディターで、PDFページの内容を編集する。
+- レスポンシブなWebアプリケーションに、拡大縮小できるページプレビューを埋め込む。
+- PDFのパンフレットから、輪郭を保ったままロゴやグラフィックを抽出する。
+
+## ヒント
+
+- SVGは、ベクターコンテンツを含むPDFで最も効果を発揮します。スキャンした文書や画像の多いPDFは、ラスターデータが埋め込まれた大きなSVGファイルになります。
+- 画像の多いPDFをラスター形式で出力するには、代わりに[PDFからPNG](./pdf-to-png)または[PDFからJPG](./pdf-to-jpg)を使ってください。
+- このツールは一括変換に対応しています。複数のPDFを一度にアップロードして、1回の実行ですべて変換できます。
+
+## 関連ツール
+
+- [PDFからPNG](./pdf-to-png)
+- [PDFからJPG](./pdf-to-jpg)
+- [PDFからマークダウン](./pdf-to-markdown)
diff --git a/docs/ja/tools/pdf-to-text.md b/docs/ja/tools/pdf-to-text.md
new file mode 100644
index 00000000..87e8e37a
--- /dev/null
+++ b/docs/ja/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDFからテキスト
+description: PDFファイルからプレーンテキストを抽出します。複数のPDFを一括で抽出でき、TXTファイルとして出力します。
+---
+
+# PDFからテキスト
+
+PDFファイルからすべてのテキストコンテンツを抽出し、プレーンな`.txt`ファイルとして保存します。一括処理に対応しており、複数のPDFをアップロードすると、1回の操作でそれぞれのテキストを抽出できます。PyMuPDFを使用しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、1つ以上のPDFをアップロードします。ファイルリストは、追加ボタンとクリアボタンで管理できます。
+2. **抽出**をクリックして処理を開始します。
+3. 1つのファイルは`filename.txt`としてダウンロードされます。複数のファイルは`pdf-to-text.zip`アーカイブになります。
+
+## オプション
+
+このツールに設定可能なオプションはありません。すべてのページのテキストコンテンツが、読み順に抽出されます。
+
+## 出力形式
+
+- **単一ファイル**: `filename.txt`
+- **複数ファイル**: 入力したPDFごとに1つの`.txt`を含む`pdf-to-text.zip`。
+
+## ユースケース
+
+- 全文検索のインデックス作成のために、PDFレポートから本文を抽出する。
+- PDFの電子書籍や記事を、電子ペーパー端末で読めるプレーンテキストに変換する。
+- キーワード分析のために、契約書や法的文書からテキストを取り出す。
+- データ処理スクリプト用に、PDFから書式を取り除いてきれいなテキストにする。
+- 自然言語処理のために、PDFアーカイブからテキストコーパスを準備する。
+
+## ヒント
+
+- スキャンされたPDF (画像のみ) は、抽出できるテキストレイヤーがないため、空のテキストファイルになります。スキャンした文書は、先にOCRにかけてください。
+- 出力は、PyMuPDFが解釈した読み順を保持します。一般的には左から右、上から下の順です。複数段組みのレイアウトでは、テキストが入り混じることがあります。
+- 見出しや書式を含む構造化された出力には、[PDFからマークダウン](./pdf-to-markdown)をお試しください。AI向けの構造化JSONには、[AI用のPDFを準備する](./prepare-pdf-for-ai)を使ってください。
+
+## 関連ツール
+
+- [PDFからマークダウン](./pdf-to-markdown)
+- [AI用のPDFを準備する](./prepare-pdf-for-ai)
+- [PDFからWord](./pdf-to-word)
diff --git a/docs/ja/tools/pdf-to-tiff.md b/docs/ja/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..64b1b460
--- /dev/null
+++ b/docs/ja/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDFからTIFF
+description: PDFのページを、印刷、ファクス、アーカイブのワークフローでよく使われるTIFF画像に変換します。エンコードに失敗した場合はPNGにフォールバックします。
+---
+
+# PDFからTIFF
+
+PDFの各ページをTIFF画像に変換します。TIFFは、印刷製版、ファクスシステム、文書アーカイブの標準形式です。このツールはTIFFのエンコードにPackBits圧縮を使い、ページのエンコードに失敗した場合はPNGにフォールバックします。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **変換**をクリックしてファイルを処理します。
+3. 1つのTIFFファイル、またはZIPアーカイブが自動的にダウンロードされます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。ページは固定の2倍スケールでレンダリングされます。
+
+## 出力形式
+
+- **1ページ**: `filename.tiff`
+- **複数ページ**: `filename_tiffs.zip`。`page_1.tiff`、`page_2.tiff`などを含みます。
+
+特定のページでTIFFのエンコードに失敗した場合 (圧縮の問題による)、そのページは代わりに`.png`ファイルとして保存されます。その場合、ZIPにはTIFFとPNGのファイルが混在します。
+
+## ユースケース
+
+- TIFF形式を必須とする行政機関や法的システムに文書を提出する。
+- デジタルファクスサービスで送信するためのページを準備する。
+- スキャンした文書を、広くサポートされているロスレス形式で保管する。
+- 企業の文書管理システムにページを渡す。
+
+## ヒント
+
+- TIFFファイルは大きくなります。Webや画面での利用でロスレスの品質だけが必要な場合は、[PDFからPNG](./pdf-to-png)のほうが適しています。
+- 一部のページでPNGへのフォールバックが発生した場合は、ZIPの中身を確認してください。それらのページは別途変換し直したほうがよいかもしれません。
+
+## 関連ツール
+
+- [PDFからPNG](./pdf-to-png)
+- [PDFからBMP](./pdf-to-bmp)
+- [PDFからJPG](./pdf-to-jpg)
diff --git a/docs/ja/tools/pdf-to-webp.md b/docs/ja/tools/pdf-to-webp.md
new file mode 100644
index 00000000..9bd402d4
--- /dev/null
+++ b/docs/ja/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDFからWebP
+description: PDFのページを、品質を調整できるWebP画像に変換します。同程度の画質でJPGよりファイルサイズが小さくなります。
+---
+
+# PDFからWebP
+
+PDFの各ページをWebP画像に変換します。WebPは、同じ体感品質でJPGより25〜35%小さいファイルになるのが一般的で、Web用途に適しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、PDFをアップロードします。
+2. **品質**スライダーを調整します。
+3. **変換**をクリックしてファイルを処理します。
+4. 1つの`.webp`ファイル、またはZIPアーカイブが自動的にダウンロードされます。
+
+## オプション
+
+- **品質**: 0%から100% (デフォルトは85%) のスライダー。非可逆圧縮のレベルを制御します。値を高くすると、より多くのディテールが保持されます。
+
+ページは内部で2倍スケールでレンダリングされ、PDF本来の寸法のおよそ2倍の画像になります。
+
+## 出力形式
+
+- **1ページ**: `filename.webp`
+- **複数ページ**: `filename_webps.zip`。`page_1.webp`、`page_2.webp`などを含みます。
+
+## ユースケース
+
+- 帯域幅が重要なWebサイト向けに、ページのプレビューを準備する。
+- ソーシャルメディア向けに、チラシやパンフレットの軽量な画像版を生成する。
+- 複数ページの文書を、Web向けに最適化した画像セットに一括変換する。
+
+## ヒント
+
+- WebPはすべてのモダンブラウザでサポートされています。古い環境との互換性が必要な場合は、[PDFからJPG](./pdf-to-jpg)を使ってください。
+- 品質80〜85%なら、画面上では通常元の画像と見分けがつかず、ファイルサイズも小さく保てます。
+
+## 関連ツール
+
+- [PDFからJPG](./pdf-to-jpg)
+- [PDFからPNG](./pdf-to-png)
+- [PDFからBMP](./pdf-to-bmp)
diff --git a/docs/ja/tools/pdf-to-word.md b/docs/ja/tools/pdf-to-word.md
new file mode 100644
index 00000000..5a7a3faf
--- /dev/null
+++ b/docs/ja/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDFからWord
+description: PDFファイルを編集可能なWord (DOCX) 文書に変換します。複数のPDFの一括変換に対応しています。
+---
+
+# PDFからWord
+
+PDFファイルを編集可能なWord (`.docx`) 文書に変換します。このツールはPyMuPDFを使って文書の内容を再構築し、テキスト、基本的な書式、レイアウトを保持します。単一ファイルと一括変換に対応しています。
+
+## 使い方
+
+1. ドロップゾーンをクリックするか、ファイルをドラッグして、1つ以上のPDFをアップロードします。ファイルを追加したり、リストから個別に削除したりできます。
+2. **変換**をクリックして処理を開始します。
+3. 1つのファイルは`filename.docx`としてダウンロードされます。複数のファイルは`converted-documents.zip`にまとめられます。
+
+## オプション
+
+このツールに設定可能なオプションはありません。各PDFは、PyMuPDFの組み込み変換エンジンでDOCXに変換されます。
+
+## 出力形式
+
+- **単一ファイル**: `filename.docx`
+- **複数ファイル**: 入力したPDFごとに1つの`.docx`を含む`converted-documents.zip`。
+
+## ユースケース
+
+- 受け取ったPDFのテキストを、修正のために編集する。
+- 保管してあるPDFレポートを、同僚がMicrosoft WordやGoogle Docsで編集できる形式に変換する。
+- PDFの契約書や提案書の内容をWordに取り込み、修正履歴を付けて校正する。
+- 古いPDFドキュメントを、編集可能な形式に移行する。
+
+## ヒント
+
+- 複数段組みのテキスト、埋め込みフォーム、多くのグラフィックを含む複雑なレイアウトは、完全には変換されないことがあります。出力を確認し、ワープロで書式を調整してください。
+- スキャンされたPDF (画像のみ) は、空または最小限のDOCXファイルになります。先にOCRにかけてテキストレイヤーを追加してください。
+- 一括モードは、フォルダ全体のPDFを変換するのに効率的です。まとめてアップロードしてください。
+
+## 関連ツール
+
+- [PDFからテキスト](./pdf-to-text)
+- [PDFからマークダウン](./pdf-to-markdown)
+- [PDFワークフロービルダー](./pdf-workflow)
diff --git a/docs/ja/tools/pdf-to-zip.md b/docs/ja/tools/pdf-to-zip.md
new file mode 100644
index 00000000..f8906bdf
--- /dev/null
+++ b/docs/ja/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDFからZIP
+description: 複数のPDFファイルを1つのZIPアーカイブにまとめ、共有や保管をしやすくします。
+---
+
+# PDFからZIP
+
+複数のPDFファイルを1つのZIPアーカイブにまとめます。シンプルなパッケージツールで、PDF自体の変換、圧縮、変更は行いません。
+
+## 使い方
+
+1. ドロップゾーンを使って、複数のPDFファイルをアップロードします。
+2. ファイルの一覧を確認します。含めたくないものは削除します。
+3. 処理ボタンをクリックします。
+4. アップロードしたすべてのPDFを含むZIPアーカイブがすぐにダウンロードされます。
+
+## 機能
+
+- 任意の数のPDFファイルに対応
+- アーカイブ作成前にファイルごとに削除可能
+- ZIP内で元のファイル名を保持
+- PDFの内容は変更せず、ファイルはそのままパッケージ化
+- アップロードした各PDFのファイル名とサイズを表示
+
+## ユースケース
+
+- メールに添付するため、請求書や領収書をまとめる
+- 引き継ぎのために、プロジェクトの成果物 (複数のPDFレポート) をまとめる
+- フォームやテンプレートのコレクションを、1回でダウンロードできるようにする
+- 一連の文書を1つの圧縮ファイルに保管する
+
+## ヒント
+
+- ZIPファイルには元のPDFのファイル名が使われます。同じ名前のファイルがある場合は、競合を避けるためアップロード前に名前を変更してください。
+- このツールはPDF自体を圧縮しません。ファイルサイズを減らしたい場合は、先にPDFの圧縮を通してから、このツールでまとめてください。
+
+## 関連ツール
+
+- [PDFの結合](./merge-pdf)
+- [PDFの分割](./split-pdf)
+- [PDFの圧縮](./compress-pdf)
diff --git a/docs/ja/tools/pdf-workflow.md b/docs/ja/tools/pdf-workflow.md
new file mode 100644
index 00000000..0def9405
--- /dev/null
+++ b/docs/ja/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: PDFワークフロービルダー
+description: キャンバス上でノードを接続して、独自のPDF処理パイプラインを視覚的に構築します。結合、圧縮、透かし、エクスポートなどの操作をつなげられます。
+---
+
+# PDFワークフロービルダー
+
+ワークフロービルダーを使うと、複数のPDF操作を1つの自動化パイプラインにつなげられます。ツールを1つずつ実行する代わりに、入力、処理、出力のノードを視覚的なグラフとしてつなぎ、ワンクリックですべてを実行します。ファイルがブラウザの外に出ることはありません。
+
+## 使い方
+
+画面は3つのパネルに分かれています。左の**ノードツールボックス**、中央の**キャンバス**、ノードを選択すると右に表示される**設定パネル**です。
+
+1. **ノードを追加**するには、左のサイドバーでクリックするか、キャンバスに直接ドラッグします。ツールボックス上部の検索バーで名前による絞り込みができます。
+2. **ノードを接続**するには、出力ソケット (ノードの下側) から別のノードの入力ソケット (上側) へドラッグします。接続は上から下へ流れます。
+3. **設定する**には、ノードをクリックして右側の設定パネルを開きます。ノードの種類ごとに独自のオプション (ページ範囲、品質スライダー、パスワードなど) があります。
+4. **ワークフローを実行**するには、ツールバーの**実行**ボタンをクリックします。エンジンはノードをトポロジカル順に実行し、1つずつ処理します。下部のステータスバーで進行状況を確認できます。
+5. **結果をダウンロード**するには、最後のダウンロードノードが最終的なPDF (複数ファイルが生成された場合はZIP) を保存します。
+
+## ノードのカテゴリ
+
+ノードは6つのカテゴリに整理されており、キャンバス上で色分けされています。
+
+- **入力** (青): PDF入力、画像入力、Word/Excel/PowerPointからPDF、およびパイプラインにファイルを渡す15種類以上のその他の形式コンバーター。
+- **編集と注釈** (インディゴ): トリミング、グレースケール、色の反転、透かし、ページ番号、ヘッダーとフッター、スキャナー効果、色の調整、背景色、空白ページの削除、注釈の削除。
+- **整理と管理** (紫): 結合、分割、ページの抽出、回転、ページの削除、反転、空白ページの追加、ページの分割、N-Up、ページサイズの固定、単一ページに結合、ブックレット、ポスター化、メタデータの編集、目次、OCR。
+- **最適化と修復** (琥珀): 圧縮、ラスタライズ、リニアライズ、傾き補正、PDFからPDF/A、フォントのアウトライン化、修復。
+- **PDFの保護** (ローズ): 暗号化、復号、サニタイズ、平坦化、電子署名、墨消し。
+- **出力** (ティール): ダウンロード (単一のPDFかZIPかを自動判別)、PDFから画像、PDFからテキスト、PDFからDOCX、PDFからXLSX、PDFからCSV、PDFからSVG、PDFからMarkdown、画像の抽出。
+
+## ワークフローの保存と読み込み
+
+ツールバーには4つの保存オプションがあります。
+
+- **保存**: 現在のワークフローを、名前付きテンプレートとしてブラウザのローカルストレージに保存します。複数のテンプレートを保存できます。
+- **読み込み**: 保存済みのテンプレートをすべて一覧表示するモーダルを開きます。読み込みをクリックして復元するか、不要になったテンプレートを削除できます。
+- **エクスポート**: ワークフローを`.json`ファイルとしてダウンロードし、共有やバックアップに使えます。
+- **インポート**: ディスクから`.json`のワークフローファイルを読み込み、すべてのノード、位置、接続を復元します。
+
+テンプレートはローカルストレージにセッションをまたいで保持されます。エクスポートしたJSONファイルは、ブラウザやマシンの間で持ち運べます。
+
+## 実行モデル
+
+エンジンは接続から依存関係グラフを作成し、ノードをトポロジカル順に実行します。いずれかのノードが失敗すると実行は停止し、失敗したノードが赤く表示されます。次のルールに注意してください。
+
+- すべてのワークフローには、少なくとも1つの**入力**ノードと1つの**出力**ノードが必要です。
+- エンジンは循環依存を検出し、エラーを出して実行をブロックします。
+- **暗号化**ノードは、出力ノードの直前の最後の処理ステップにする必要があります。それより前に置くと、下流のノードは暗号化されたデータを扱えないため、検証の警告が出ます。
+- パスワード保護されたPDFは、実行中にパスワードの入力を求められます。
+- 複数のPDF入力に対応しています。結合ノードでまとめることも、一括処理ノードで各PDFを個別に処理することもできます。
+
+## ソケットの種類
+
+接続には型付きのソケットが使われ、無効な配線を防ぎます。
+
+- **PDF** (インディゴ): 1つのPDF文書。
+- **MultiPDF** (琥珀): まとめられた複数のPDF文書。
+- **画像** (緑): 画像のBlob。
+
+## オプション
+
+各ノードには、右側の設定パネルから行える独自の設定があります。よくあるパターンは次のとおりです。
+
+- 分割、ページの抽出、ページの削除ノードの**ページ範囲**
+- 画像変換の出力ノードの**品質スライダー**
+- 暗号化と復号ノードの**パスワード欄**
+- 透かし、ヘッダーとフッター、メタデータの編集の**テキスト入力**
+- 回転ノードの**回転角度**
+- 圧縮ノードの**圧縮レベル**
+- OCRノードの**OCR言語の選択**
+
+## ユースケース
+
+- **請求書処理パイプライン**: PDF入力 -> OCR -> 表の抽出 -> CSVとしてダウンロード。
+- **レポートの標準化**: WordからPDF -> ページサイズの固定 -> ページ番号の追加 -> 透かし -> 圧縮 -> ダウンロード。
+- **保管の準備**: PDF入力 -> 修復 -> 平坦化 -> サニタイズ -> PDFからPDF/A -> ダウンロード。
+- **画像の一括抽出**: PDF入力 (複数ファイル) -> 画像の抽出 -> ZIPをダウンロード。
+- **印刷用ブックレット**: PDF入力 -> ブックレット -> トリミング -> 圧縮 -> ダウンロード。
+- **安全な配布**: PDF入力 -> 墨消し -> 注釈の削除 -> 暗号化 -> ダウンロード。
+
+## ヒント
+
+- **Delete**または**Backspace**を使うと、選択したノードをキャンバスから削除できます。
+- ノードのステータスバーにある**X**ボタンをクリックすると、そのノードを直接削除できます。
+- 何もない場所をクリックしてドラッグすると、キャンバスを移動できます。移動中はカーソルがつかむアイコンに変わります。
+- モバイルでは、ツールバーの+ボタンでノードツールボックスを切り替えます。
+- ワークフローが複数の出力ファイルを生成する場合、ダウンロードノードが自動的にZIPにまとめます。
+- まずはシンプルに、2ノードのパイプラインを作ってテストしてから、複雑にしていきましょう。
+
+## 関連ツール
+
+- [PDFからテキスト](./pdf-to-text)
+- [PDFからExcel](./pdf-to-excel)
+- [画像の抽出](./extract-images)
+- [PDFからマークダウン](./pdf-to-markdown)
diff --git a/docs/ja/tools/png-to-pdf.md b/docs/ja/tools/png-to-pdf.md
new file mode 100644
index 00000000..f518a6ee
--- /dev/null
+++ b/docs/ja/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNGからPDF
+description: 1つ以上のPNG画像を、品質を調整できるPDF文書に、すべてブラウザ上で変換します。
+---
+
+# PNGからPDF
+
+PNG画像を、フル解像度を保ったままPDFに変換します。各PNGは、元の画像サイズに合わせた1ページになります。透明部分は自動的に処理されます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :----------- | :----- |
+| PNG | `.png` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、PNGファイルをドラッグ&ドロップします。複数を同時に選択できます。
+2. ファイルリストを管理します。不要なファイルを削除したり、追加したりできます。
+3. ドロップダウンから**PDF品質**のレベルを選びます。
+4. **PDFに変換**をクリックします。出力は`from_jpgs.pdf`としてダウンロードされます。
+
+このツールはpdf-libを使って各画像を直接埋め込みます。PNGをネイティブに埋め込めない場合 (たとえば特殊なカラープロファイルのため) は、キャンバス経由でJPEGとして再レンダリングするフォールバックが働きます。
+
+## オプション
+
+**PDF品質**は、埋め込み前に適用される圧縮を制御します。
+
+- **高品質**: 圧縮を最小限にし、ファイルサイズは最大になります。
+- **中品質** (デフォルト): サイズと鮮明さのバランスがよい設定です。
+- **低品質**: 圧縮を最大にし、出力は最小になります。
+
+## ユースケース
+
+- スクリーンショットを、バグレポートやドキュメント用の複数ページPDFに変換する
+- UIデザインのエクスポートを、レビュー用に1つのファイルにまとめる
+- 図のエクスポート (draw.io、Excalidraw) を、共有できるPDFにする
+- 一連のグラフ画像を、レポートとしてまとめる
+
+## ヒント
+
+- 透明部分を含むPNGは、PDFでは白い背景になります。別の背景が必要な場合は、事前に画像を編集してください。
+- 輪郭やテキストがくっきりしたスクリーンショットや図では、高品質を選ぶとJPEG圧縮のノイズを避けられます。中品質や低品質では、内部的にJPEGへ変換されることがあります。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [JPGからPDF](./jpg-to-pdf)
+- [SVGからPDF](./svg-to-pdf)
diff --git a/docs/ja/tools/posterize-pdf.md b/docs/ja/tools/posterize-pdf.md
new file mode 100644
index 00000000..66c45291
--- /dev/null
+++ b/docs/ja/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDFのポスタライズ
+description: PDFのページを小さなページのグリッドに分割し、複数枚の用紙にまたがる大判印刷に対応します。
+---
+
+# PDFのポスタライズ
+
+PDFの各ページを、小さなサブページのグリッドに分割します。1ページを複数枚の用紙に印刷し、それらをつなぎ合わせて大きなポスターやバナーを作るためのツールです。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. **行**と**列**の数を設定してグリッドを決めます(例:2行 x 2列なら各ページが4つのサブページに分割されます)。
+3. 必要に応じて、ポスタライズするページ範囲を指定します。
+4. プレビューキャンバスには現在のページにグリッドが重ねて表示されるため、切り取り位置を確認できます。
+5. ページを切り替えて、他のページのオーバーレイも確認します。
+6. 処理ボタンをクリックします。グリッドの各セルが、出力PDFの1ページになります。
+
+## 機能
+
+- 行数と列数を自由に設定でき、柔軟なグリッドサイズに対応
+- ページが分割される位置を正確に示すグリッドオーバーレイ付きのライブプレビュー
+- 特定のページだけをポスタライズするページ範囲フィルター
+- プレビューでのページ単位の移動
+- ページのスナップショットをキャッシュし、プレビューの移動を高速化
+- 赤い破線のグリッド線で切り取りの境界を明確に表示
+
+## オプション
+
+| オプション | 説明 |
+| -------------- | -------------------------------------------- |
+| **行** | 横方向の分割数(デフォルト:1) |
+| **列** | 縦方向の分割数(デフォルト:1) |
+| **ページ範囲** | ポスタライズするページ(空欄の場合はすべて) |
+
+## 活用例
+
+- ポスターサイズのPDFを標準のA4またはレターサイズの用紙に印刷し、壁の上で組み立てる
+- 1ページのPDFデザインから大きなバナーを作る
+- 大きすぎる技術図面を印刷可能なタイルに分割する
+- 大判プリンターがなくても大判印刷を行う
+
+## ヒント
+
+- 2x2のグリッドは1ページを4ページに、3x3のグリッドは1ページを9ページにします。組み立てた後の大きさに合わせてグリッドを計画してください。
+- プレビューのオーバーレイで、重要な内容が切り取り線にかからないか確認できます。必要に応じて行や列を調整してください。
+- 逆の操作(複数のページを1枚にまとめる)には、[N-Up PDF](./n-up-pdf)を使用します。
+
+## 関連ツール
+
+- [N-Up PDF](./n-up-pdf)
+- [ページの分割](./divide-pages)
+- [PDFの分割](./split-pdf)
diff --git a/docs/ja/tools/powerpoint-to-pdf.md b/docs/ja/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..f2229bd9
--- /dev/null
+++ b/docs/ja/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPointからPDF
+description: PowerPointプレゼンテーション(PPT、PPTX)とODPファイルを、スライドの書式を保ったままPDFに変換します。
+---
+
+# PowerPointからPDF
+
+プレゼンテーションファイルをPDFに変換します。各スライドが出力ドキュメントの1ページになり、テキスト、画像、図形、トランジションがブラウザ上のLibreOfficeエンジンで描画されます。新しい形式と古い形式のPowerPoint、さらにOpenDocument Presentation形式に対応しています。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :------------------------ | :------ |
+| PowerPoint(新形式) | `.pptx` |
+| PowerPoint(旧形式) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、プレゼンテーションファイルをドラッグアンドドロップします。
+2. ファイル一覧を確認します。必要に応じてファイルを追加または削除します。
+3. **PDFに変換**をクリックします。LibreOfficeエンジンは初回使用時に読み込まれ、その後各ファイルが変換されます。
+4. ファイルが1つの場合はPDFとして直接ダウンロードされます。複数の場合は`powerpoint-converted.zip`にまとめられます。
+
+## オプション
+
+このツールに追加の設定はありません。スライドは元のサイズで描画されます。
+
+## 出力
+
+| 入力数 | 出力 |
+| :------------ | :-------------------------------------------------------------------------- |
+| 1ファイル | PDFを1つダウンロード(元のファイル名に`.pdf`拡張子) |
+| 2ファイル以上 | ZIPアーカイブ(`powerpoint-converted.zip`)に、ファイルごとに1つのPDFを格納 |
+
+## 活用例
+
+- PowerPointを持っていない相手に共有する前に、プレゼンテーションをPDFに変換する
+- 会議やワークショップ向けに、スライドの印刷用配布資料を作成する
+- どの端末でも同じように表示される形式でプレゼンテーションを保管する
+- LibreOffice ImpressのODPプレゼンテーションをまとめてPDFに変換する
+- メールに添付するために、ピッチデッキのPDF版を作成する
+
+## ヒント
+
+- スライドのアニメーションやトランジションはPDFには反映されません。各スライドは静止したページとして取り込まれます。
+- 埋め込まれた動画は出力に表示されません。必要に応じて、スクリーンショットやプレースホルダー画像に置き換えてください。
+- スピーカーノートは、デフォルトのPDF出力には含まれません。ノートが必要な場合は、先にPowerPoint標準の「ノートの印刷」ビューから書き出すことを検討してください。
+- LibreOfficeエンジンは初回の読み込み後にキャッシュされるため、同じセッションで2つ目のプレゼンテーションを変換するときははるかに高速です。
+
+## 関連ツール
+
+- [WordからPDF](./word-to-pdf)
+- [ExcelからPDF](./excel-to-pdf)
+- [画像からPDF](./image-to-pdf)
diff --git a/docs/ja/tools/prepare-pdf-for-ai.md b/docs/ja/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..6ebd7110
--- /dev/null
+++ b/docs/ja/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: AI用のPDFを準備する
+description: PDFの内容を、LLMやLlamaIndexなどのAIパイプラインに最適化された構造化JSONとして抽出します。一括処理に対応しています。
+---
+
+# AI用のPDFを準備する
+
+PDFファイルから内容を抽出し、大規模言語モデル(LLM)やLlamaIndexなどのAIフレームワークに取り込みやすいJSONとして構造化します。各ページの内容が抽出され、RAGパイプライン、チャットボット、セマンティック検索システムにそのまま使える形式に整理されます。
+
+## 使い方
+
+1. ドロップゾーンをクリックするかファイルをドラッグして、1つ以上のPDFをアップロードします。
+2. **抽出**をクリックして処理を開始します。
+3. ファイルが1つの場合は`filename_llm.json`としてダウンロードされます。複数の場合は`pdf-for-ai.zip`アーカイブになります。
+
+このツールはPyMuPDFのLlamaIndex連携を使用して、ページ単位の内容をメタデータ付きで抽出し、AIフレームワークに直接読み込める出力を生成します。
+
+## オプション
+
+このツールに設定可能なオプションはありません。すべてのページがテキスト全体とメタデータとともに抽出されます。
+
+## 出力形式
+
+- **1ファイル**:`filename_llm.json`
+- **複数ファイル**:入力PDFごとに1つの`_llm.json`を含む`pdf-for-ai.zip`。
+
+JSON出力はLlamaIndexのドキュメントスキーマに従い、ページごとのテキスト内容とメタデータフィールドを持ちます。
+
+## 活用例
+
+- 検索拡張生成(RAG)パイプライン向けにPDFドキュメントを準備する。
+- AIチャットボット向けに、PDFアーカイブから検索可能なナレッジベースを構築する。
+- PDFレポートをLLMベースの分析ワークフローに取り込む。
+- セマンティック検索や質問応答システム向けに、研究論文を前処理する。
+- PDFドキュメントのコレクションから構造化された学習データを作成する。
+
+## ヒント
+
+- AI向けの整形をしないプレーンテキストの抽出には、[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)
diff --git a/docs/ja/tools/protect-pdf.md b/docs/ja/tools/protect-pdf.md
new file mode 100644
index 00000000..fe06b279
--- /dev/null
+++ b/docs/ja/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: PDFの保護
+description: 256ビットAES暗号化でPDFファイルをパスワード保護します。ユーザーパスワードと所有者パスワードを設定し、利用制限を構成できます。
+---
+
+# PDFの保護
+
+PDFをパスワードでロックし、許可された人だけが開けるようにします。BentoPDFは、銀行や政府機関でも使われている標準と同じ256ビットAES暗号化を、QPDFを通じてすべてブラウザ上で適用します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. **ユーザーパスワード**を入力します(必須)。ファイルを開くために必要なパスワードです。
+3. 必要に応じて**所有者パスワード**を入力します。設定すると、印刷、編集、コピー、注釈の追加を禁止する利用制限がPDFに適用されます。
+4. **PDFを暗号化**をクリックします。
+5. 暗号化されたファイルをダウンロードします。
+
+## パスワードの種類
+
+### ユーザーパスワード(必須)
+
+ユーザーパスワードは、受信者がPDFを開くときに入力するものです。これがなければ、ドキュメントにはまったくアクセスできません。暗号化されたPDFには必ず1つ設定します。
+
+### 所有者パスワード(任意)
+
+所有者パスワードは、許可されたユーザーがファイルを開いた後にできることを制御します。ユーザーパスワードと異なる所有者パスワードを設定すると、BentoPDFは最も厳しい制限を自動的に適用します。
+
+- 変更を無効化
+- 抽出とコピーを無効化
+- 印刷を無効化
+- 注釈を無効化
+- フォーム入力を無効化
+- ドキュメントの組み立てを無効化
+
+所有者パスワードを空欄にした場合、PDFは暗号化されます(開くにはユーザーパスワードが必要です)が、開いた後の利用制限はありません。
+
+## 暗号化の詳細
+
+- **アルゴリズム**:AES-256(256ビット Advanced Encryption Standard)
+- **鍵長**:256ビット
+- **規格**:PDF 2.0暗号化(QPDF実装)
+
+AES-256は、現在の技術ではブルートフォースで破ることが計算上不可能です。暗号化したPDFの安全性は、パスワードの強度にかかっています。
+
+## 活用例
+
+- 機密性の高い財務レポートをメールで送る前に保護する
+- 相手方の弁護士と共有する法的文書を保護する
+- 医療記録や個人を特定できる情報にパスワードを設定する
+- 有料コンテンツ(電子書籍やレポート)をアクセス制御付きで配布する
+- 保存時の暗号化を求めるデータ保護ポリシーに準拠する
+
+## ヒント
+
+- 強力で一意なパスワードを使用してください。大文字小文字、数字、記号を混ぜた12文字以上のパスフレーズが理想的です。
+- パスワードは、PDFと同じメールではなく、電話やテキストメッセージなど別の経路で共有してください。
+- 開くときのパスワードは不要で、操作(印刷不可、コピー不可など)だけを制限したい場合は、代わりに権限の変更ツールを使用してください。
+
+## 関連ツール
+
+- [PDFの復号化](./unlock-pdf):パスワードがわかっている場合に暗号化を解除
+- [権限の変更](./change-permissions):特定の利用制限を変更
+- [制限の解除](./remove-restrictions):PDFからすべてのセキュリティを削除
+- [PDFのサニタイズ](./sanitize-pdf):暗号化する前に隠れたコンテンツを削除
diff --git a/docs/ja/tools/psd-to-pdf.md b/docs/ja/tools/psd-to-pdf.md
new file mode 100644
index 00000000..f27138da
--- /dev/null
+++ b/docs/ja/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSDからPDF
+description: Photoshop(PSD)ファイルをブラウザ上でPDFに変換します。無料でプライバシーも安心、Adobeソフトウェアは不要です。
+---
+
+# PSDからPDF
+
+Adobe PhotoshopのPSDファイルをPDFドキュメントに変換します。PSDはPhotoshopのネイティブ形式で、通常は高価なAdobeソフトウェアがないと開けません。このツールは、PSDファイルの統合済みの合成画像を、フル解像度のPDFページとして描画します。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :-------------- | :----- | :----------------------------- |
+| Adobe Photoshop | `.psd` | 統合済みの合成画像を描画します |
+
+## 使い方
+
+1. アップロード領域をクリックするか、PSDファイルをドラッグアンドドロップします。複数のファイルに対応しています。
+2. ファイル一覧を確認します。不要なファイルはゴミ箱アイコンで削除するか、**ファイルを追加**でさらに追加します。
+3. **PDFに変換**をクリックします。PyMuPDFエンジンがPSDファイルを読み込み、合成画像を元の解像度でPDFのページに埋め込みます。
+4. PSDが1つの場合はPDFが1つ生成されます。複数のPSDファイルをアップロードした場合は、`psd_to_pdf.pdf`という名前の1つの複数ページPDFにまとめられ、各PSDが1ページになります。
+
+## オプション
+
+設定は不要です。コンバーターはPSDファイルの統合済み画像データを使用します。
+
+## 活用例
+
+- Photoshopを開かずにデザインをプレビューする
+- Adobe Creative Suiteを持っていないクライアントにデザインの校正を送る
+- PSDファイルの高解像度アートワークを印刷する
+- 複数のPSDデザインファイルからPDFポートフォリオを作成する(それぞれが1つのドキュメント内の1ページになります)
+
+## ヒント
+
+- 変換では、PSDの合成(統合済み)ビューが描画されます。個々のレイヤー、調整レイヤー、レイヤー効果は、PDFの中で別々の要素としては保持されません。
+- 複数のPSDファイルは、個別のPDFではなく1つの複数ページPDFに結合されます。ポートフォリオやルックブックの作成に便利です。
+- 解像度が非常に高いPSDファイル(300 DPI以上の印刷用ファイル)は、大きなPDFになります。このツールはフル解像度を保持します。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [PNGからPDF](./png-to-pdf)
+- [VSDからPDF](./vsd-to-pdf)
diff --git a/docs/ja/tools/pub-to-pdf.md b/docs/ja/tools/pub-to-pdf.md
new file mode 100644
index 00000000..5890e808
--- /dev/null
+++ b/docs/ja/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUBからPDF
+description: Microsoft Publisher(PUB)ファイルをブラウザ上でPDFに変換します。無料でプライバシーも安心、ソフトウェアは不要です。
+---
+
+# PUBからPDF
+
+Microsoft PublisherファイルをPDFに変換します。PublisherはMicrosoft Officeの一部のエディションに含まれるデスクトップパブリッシングツールですが、インストールしている人は多くありません。このツールを使えば、Microsoftのソフトウェアなしで、ブラウザ上で直接PUBファイルをPDFに変換できます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :------------------ | :----- | :----------------------------- |
+| Microsoft Publisher | `.pub` | デスクトップパブリッシング文書 |
+
+## 使い方
+
+1. アップロード領域をクリックするか、PUBファイルをドラッグアンドドロップします。複数のファイルを一度にアップロードできます。
+2. ファイル一覧を確認します。不要なファイルはゴミ箱アイコンで削除するか、**ファイルを追加**をクリックしてさらに追加します。
+3. **PDFに変換**をクリックします。LibreOfficeベースのエンジンがブラウザに読み込まれ、レイアウト、画像、テキストボックスを保ったまま各PUBファイルを変換します。
+4. ファイルが1つの場合はPDFとして直接ダウンロードされます。複数の場合は、`pub-to-pdf.zip`という名前のZIPアーカイブで届きます。
+
+## オプション
+
+追加の設定は不要です。コンバーターがPUBのレイアウトエンジンを自動的に処理します。
+
+## 活用例
+
+- Microsoft Publisherを購入せずに、クライアントから受け取ったPUBのチラシやニュースレターを開く
+- Publisherで作成した教会の会報、イベントプログラム、学校のニュースレターを変換する
+- Publisherのマーケティング資料を、誰でも開ける形式で保管する
+- Publisherがインストールされていないシステムで、PUBファイルを印刷する
+
+## ヒント
+
+- テキストボックスが重なり、位置が細かく指定された複雑なPublisherレイアウトは、変換時に少しずれることがあります。正確な位置が重要な場合は、出力を確認してください。
+- LibreOfficeエンジンはセッションごとに1回初期化されます。最初の変換には時間がかかり、2回目以降は高速です。
+- Publisherファイルを最も忠実に変換するには、元のファイルで使用しているカスタムフォントが標準のシステムフォントであることを確認してください。
+
+## 関連ツール
+
+- [VSDからPDF](./vsd-to-pdf)
+- [ODPからPDF](./odp-to-pdf)
diff --git a/docs/ja/tools/rasterize-pdf.md b/docs/ja/tools/rasterize-pdf.md
new file mode 100644
index 00000000..878dcea0
--- /dev/null
+++ b/docs/ja/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDFの画像化
+description: PDFのページを画像ベースのPDFに変換します。すべてのレイヤーを統合し、選択可能なテキストを削除し、DPIと画像形式を指定できます。
+---
+
+# PDFの画像化
+
+ラスタライズは、PDFの各ページを画像に変換し、それらの画像をPDFに組み直す処理です。見た目は元のPDFと同じですが、選択可能なテキスト、インタラクティブな要素、編集可能なレイヤーは含まれません。いわば高品質なコピーです。
+
+## 使い方
+
+1. 1つ以上のPDFファイルをアップロードします。
+2. ラスタライズ出力の**DPI**(解像度)を設定します。
+3. **画像形式**を選択します。可逆圧縮の高品質ならPNG、ファイルを小さくするならJPEGです。
+4. 必要に応じて**グレースケールに変換**をオンにします。
+5. **PDFをラスタライズ**をクリックします。複数のファイルはZIPでダウンロードされます。
+
+## オプション
+
+| 設定 | 値 | デフォルト |
+| ------------------ | ----------------------------------- | ---------- |
+| **DPI** | 72、150、200、300、600 | 150 |
+| **画像形式** | PNG(可逆圧縮)、JPEG(より小さい) | PNG |
+| **グレースケール** | オン/オフ | オフ |
+
+## DPIの目安
+
+- **72**:画面での閲覧のみ。ファイルサイズが最小
+- **150**:一般的な用途に適したバランス
+- **200**:テキストがより鮮明で、ファイルサイズは中程度
+- **300**:印刷品質の出力
+- **600**:高品質のアーカイブやプロ向けの印刷
+
+## 活用例
+
+- 機密文書を共有する前に、テキストの抽出を防ぐ
+- テキストをピクセルに変換して、フォントの依存関係の問題をなくす
+- ビューアーによって表示が異なる、複雑なレイヤーや透明効果を含むPDFの「フラット」版を作成する
+- 画像ベースの入力しか受け付けないシステム向けにPDFを準備する
+- PDFを画像だけにして、隠れたコンテンツ(変更履歴やフォームデータなど)を取り除く
+
+## ヒント
+
+- PNGで150 DPIは、安心できるデフォルトです。印刷出力が必要な場合や細部を拡大したい場合にのみ、それより高くしてください。
+- JPEGはファイルがかなり小さくなりますが、鮮明なテキストの縁に圧縮ノイズが出ます。
+- ラスタライズは元に戻せません。後で編集可能なテキストが必要になる可能性がある場合は、元のPDFを保管してください。
+
+## 関連ツール
+
+- [PDFの圧縮](./compress-pdf):ラスタライズしたPDFのファイルサイズを削減
+- [PDFの傾き補正](./deskew-pdf):スキャンした文書をラスタライズする前にページをまっすぐに補正
+- [フォントのアウトライン化](./font-to-outline):拡大縮小性を保ちたい場合に、フォントをベクターパスに変換
+- [PDFのフラット化](./flatten-pdf):画像に変換せずにフォームをフラット化
diff --git a/docs/ja/tools/remove-annotations.md b/docs/ja/tools/remove-annotations.md
new file mode 100644
index 00000000..543e2649
--- /dev/null
+++ b/docs/ja/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: 注釈の削除
+description: コメント、ハイライト、リンクなどのすべての注釈を、ワンクリックでPDFから取り除きます。
+---
+
+# 注釈の削除
+
+コメント、ハイライト、付箋、テキストマークアップ、リンク、スタンプなど、ドキュメントに埋め込まれたすべての注釈オブジェクトを削除して、PDFをきれいにします。ページの本来の内容(テキスト、画像、グラフィック)はそのまま残ります。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. ツールがドキュメントのページ数を検出し、ファイル情報を表示します。
+3. **注釈を削除**をクリックして処理します。
+4. すべての注釈が取り除かれたPDFが自動的にダウンロードされます。
+
+## 機能
+
+- すべての種類の注釈を削除:コメント、ハイライト、下線、取り消し線、付箋、スタンプ、リンク、フォームマークアップ
+- ドキュメントのすべてのページが対象
+- 注釈以外の内容(テキスト、画像、ベクターグラフィック、フォームフィールド)はすべて保持
+- 処理前にページ数とファイルサイズを表示
+
+## 活用例
+
+- 複数のレビュアーがコメントを付けたレビューの後、最終配布の前にドキュメントを整理する
+- 共有している学習ガイドから、ハイライトと付箋を削除する
+- アーカイブの前に、ドキュメントからリンク注釈を取り除く
+- 交渉中に大量の注釈が付いた法的文書の「クリーン」版を用意する
+- 印刷に送る前に、原稿からレビュアーのコメントを削除する
+
+## ヒント
+
+- このツールはPDFの構造レベルで注釈を削除するため、結果は選択可能なテキストと元の品質を保ちます。ラスタライズは行われません。
+- すべてではなく特定の注釈だけを削除したい場合は、[PDFエディター](./edit-pdf)を使って個々の注釈を選んで削除してください。
+- フラット化されたPDF(注釈がページの内容に統合されたもの)の注釈は、もう独立したオブジェクトではないため削除できません。
+
+## 関連ツール
+
+- [PDFエディター](./edit-pdf)
+- [透かしの追加](./add-watermark)
+- [PDFへ署名](./sign-pdf)
diff --git a/docs/ja/tools/remove-blank-pages.md b/docs/ja/tools/remove-blank-pages.md
new file mode 100644
index 00000000..49e77507
--- /dev/null
+++ b/docs/ja/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: 空白ページの削除
+description: PDFから空白またはほぼ空白のページを、調整可能な感度で自動的に検出して削除します。
+---
+
+# 空白ページの削除
+
+PDFをスキャンして、空白またはほぼ空白のページを自動的に削除します。このツールは各ページを描画してピクセルの内容を分析し、空白かどうかを判定した上で、処理の前にどのページを削除するか確認できます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. **感度**スライダーを調整して、「空白」の判定の厳しさを決めます。
+3. **空白ページを検出**をクリックして、ドキュメントをスキャンします。
+4. 検出された空白ページのサムネイルが表示されるので、確認します。
+5. 選択を確定して、空白ページを削除したPDFをダウンロードします。
+
+## オプション
+
+- **感度**:0%から100%までのスライダー(デフォルトは80%)。値が高いほど厳しくなり、完全にまたはほぼ白いページだけを対象にします。値が低いほど寛容になり、1つの点やかすかな透かしのような、わずかな内容を含むページも検出します。
+
+## 機能
+
+- ページごとのピクセルレベル分析で空白の内容を検出
+- 検出を細かく調整できる感度スライダー
+- 検出された空白ページを目視で確認できるページサムネイルのプレビュー
+- 空白でないページはそのまま保持
+- どんなサイズやページ数のドキュメントにも対応
+- スキャン中の進捗表示
+
+## 活用例
+
+- 片面の原稿をスキャンしたときに取り込まれた、空の裏面を取り除く
+- 一括スキャンした文書の束から、区切りのページを削除する
+- 文書管理システムが挿入した空白ページを取り除く
+- ワープロから書き出したPDFに含まれることがある、末尾の空白ページを取り除く
+- 不要な空ページを削除して、ファイルサイズを小さくする
+
+## ヒント
+
+- まずデフォルトの感度80%で試し、そこから調整してください。空白に見えるページを見逃す場合は感度を下げ、残したい薄い内容のページが検出される場合は感度を上げます。
+- このツールは内容を分析するために各ページを描画するため、処理時間はページ数に比例します。非常に大きなドキュメントでは、少し待つことになります。
+- 削除を確定する前に、サムネイルのプレビューで検出された空白ページを確認してください。かすかなヘッダー、フッター、透かしのあるページは、感度の設定によっては検出されることがあります。
+
+## 関連ツール
+
+- [PDFのトリミング](./crop-pdf)
+- [PDFエディター](./edit-pdf)
+- [ページ番号](./page-numbers)
diff --git a/docs/ja/tools/remove-metadata.md b/docs/ja/tools/remove-metadata.md
new file mode 100644
index 00000000..91d8a127
--- /dev/null
+++ b/docs/ja/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: メタデータの削除
+description: 作成者、タイトル、作成日、作成ソフト、XMPデータ、ドキュメントIDなど、PDFファイルに含まれる隠れたメタデータをすべて取り除きます。
+---
+
+# メタデータの削除
+
+すべてのPDFには、誰が作成したか、どのソフトウェアを使ったか、最後にいつ変更されたかなどを明らかにするメタデータが含まれています。このツールは、情報辞書、XMPメタデータストリーム、ドキュメントID、アプリケーション固有のデータをすべて取り除き、作成元の痕跡がないクリーンなドキュメントにします。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. **メタデータを削除**をクリックします。
+3. クリーンになったファイルをダウンロードします。
+
+設定するオプションはありません。このツールはすべてを消去する、徹底した設計になっています。
+
+## 削除されるもの
+
+- **情報辞書のフィールド**:タイトル、作成者、サブジェクト、キーワード、作成アプリケーション、PDF変換ソフト、作成日、更新日
+- **XMPメタデータストリーム**:ドキュメントカタログに保存されているXMLベースのメタデータブロック
+- **ドキュメントID**:PDFトレーラー内の一意の識別子で、システムをまたいでドキュメントを追跡するのに使われることがあります
+- **PieceInfo**:IllustratorやInDesignなどのプログラムが追加するアプリケーション固有のメタデータ
+
+## 残るもの
+
+- 表示されるすべてのページ内容(テキスト、画像、グラフィック)
+- フォームフィールドと注釈
+- しおりとリンク
+- ドキュメントの構造そのもの
+
+## 活用例
+
+- 匿名で公開する前に、ドキュメントから自分の名前と組織名を削除する
+- ドキュメントがいつ準備されたかを示す作成タイムスタンプを取り除く
+- 使用しているPDFソフトウェアの構成がわかるプロデューサー文字列を消去する
+- メタデータのないPDFを求める規制当局への提出書類を準備する
+- 外部に共有する前に、編集履歴の痕跡を削除する
+
+## ヒント
+
+- 取り除く前に、まずメタデータの表示ツールで、PDFにどんなメタデータが含まれているかを正確に確認してください。
+- メタデータに加えて、JavaScript、注釈、埋め込みファイルも削除する必要がある場合は、より徹底的なクリーニングができるPDFをサニタイズを使用してください。
+- メタデータの削除は元に戻せません。後でそのデータが必要になる可能性がある場合は、元のファイルを保管してください。
+
+## 関連ツール
+
+- [PDFをサニタイズ](./sanitize-pdf):メタデータに加えて、スクリプトや添付ファイルなどを削除
+- [PDFの暗号化](./protect-pdf):クリーンになったPDFをパスワードで保護
+- [PDFの圧縮](./compress-pdf):メタデータの削除でファイルサイズがわずかに小さくなります。さらに小さくするには圧縮してください
diff --git a/docs/ja/tools/remove-restrictions.md b/docs/ja/tools/remove-restrictions.md
new file mode 100644
index 00000000..d36ec50b
--- /dev/null
+++ b/docs/ja/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: 制限の解除
+description: PDFファイルから、パスワード保護、印刷制限、編集ロック、コピー制限を取り除きます。
+---
+
+# 制限の解除
+
+PDFには2種類のパスワードを設定できます。ユーザーパスワード(ファイルを開くために必要)と、所有者パスワード(ファイルに対してできることを制御)です。このツールは、その両方に加えて、印刷、編集、コピー、注釈のロックといった関連するすべての制限を取り除きます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. PDFに所有者パスワードが設定されている場合は、**所有者パスワード**欄に入力します。パスワードがなく利用制限だけがある場合は、空欄のままにします。
+3. **制限を解除**をクリックします。
+4. 制限のないPDFをダウンロードします。
+
+このツールはQPDFの`--decrypt`フラグと`--remove-restrictions`フラグを使用して、クリーンで制限のないコピーを生成します。
+
+## 削除されるもの
+
+- パスワード保護(ユーザーパスワードと所有者パスワードの両方)
+- 印刷の制限
+- 編集の制限
+- テキストと画像のコピー制限
+- 注釈とコメントの制限
+- PDFに設定されているその他すべてのセキュリティ制限
+
+## 活用例
+
+- 自分のPDFだが、何年も前に設定したパスワードのロックを解除する
+- 正当にアクセスできるドキュメントから、印刷制限を取り除く
+- メモを取るために、参考資料でコピーアンドペーストを有効にする
+- 制限付きのドキュメントを扱えないアクセシビリティツール向けにPDFを準備する
+
+## ヒント
+
+- 所有者パスワードが設定されている場合は、それを知っている必要があります。このツールはパスワードの解読やブルートフォースは行いません。
+- ファイルを暗号化したまま特定の権限だけを変更したい場合は、代わりに権限の変更ツールを使用してください。
+- 出力ファイルは暗号化されていません。受け取った人は誰でも自由に開けます。
+
+## 関連ツール
+
+- [PDFの復号化](./unlock-pdf):ユーザーパスワードがわかっている場合にPDFのロックを解除
+- [PDFの暗号化](./protect-pdf):新しい設定で暗号化を再適用
+- [権限の変更](./change-permissions):許可する操作を個別に変更
diff --git a/docs/ja/tools/repair-pdf.md b/docs/ja/tools/repair-pdf.md
new file mode 100644
index 00000000..c1f24996
--- /dev/null
+++ b/docs/ja/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: PDFの修復
+description: QPDFの修復エンジンを使って、破損または損傷したPDFファイルからデータを復元します。一括処理に対応しています。
+---
+
+# PDFの修復
+
+PDFが開かない、内容が文字化けする、ビューアーでエラーが出るといったときに、このツールが内部構造の再構築を試みます。QPDFの修復エンジンを使用しており、壊れた相互参照テーブル、途切れたストリーム、無効なオブジェクト参照など、さまざまな種類の破損からデータを復元できます。
+
+## 使い方
+
+1. 損傷した1つ以上のPDFファイルをアップロードします。
+2. **PDFを修復**をクリックします。
+3. ファイルが1つの場合は、修復されたファイルが直接ダウンロードされます。複数の場合はZIPアーカイブになります。
+
+このツールは、各ファイルを`--decrypt`フラグ付きでQPDFに通します。これにより、QPDFはPDF構造全体を読み込んで書き直し、その過程で修復可能な問題を修正します。
+
+## 機能
+
+- 複数のPDFを1回の操作でまとめて修復
+- 復元可能なファイルと不可能なファイルを自動判別
+- 複数のファイルを処理するとき、ファイルごとに成功/失敗を報告
+- 実績のあるPDF変換ライブラリであるQPDF(WebAssembly)を使用
+
+## 修復できるもの
+
+- 壊れた、または欠けている相互参照テーブル
+- ダウンロードが中断されたことによるファイル末尾の欠落
+- 無効なオブジェクト番号とストリーム長
+- 不具合のあるPDFジェネレーターによる軽微な構造の不整合
+- 復号化に失敗したことで生じた暗号化の残骸
+
+## 修復できないもの
+
+- 内容データのほとんどが失われた、大きく途切れたファイル
+- 持っていないパスワードで暗号化されたPDF
+- 実際にはPDFではないファイル(拡張子が間違っている)
+- PDF内の画像の破損(構造は修復されますが、ピクセルデータは再生成されません)
+
+## 活用例
+
+- メールのダウンロードに失敗したPDFを復元する
+- 古い、または標準に沿わないPDFジェネレーターで作成されたファイルを開く
+- あるビューアーでは開けるが、別のビューアーでは開けないPDFを修正する
+- 損傷したアーカイブ文書を長期保存用に準備する
+
+## ヒント
+
+- 修復に失敗した場合は、まずブラウザでファイルを開いてみてください。ブラウザには独自の復元ロジックがあり、再保存できる程度に内容を表示できることがあります。
+- 修復に失敗する暗号化されたPDFは、まずPDFの復号化を試し、その後で復号化した出力を修復してください。
+
+## 関連ツール
+
+- [PDFの圧縮](./compress-pdf):修復したPDFの構造をさらに整理
+- [PDFの最適化](./linearize-pdf):修復したファイルをWeb配信用に最適化
+- [PDFのフラット化](./flatten-pdf):損傷した可能性のあるフォームをフラット化
diff --git a/docs/ja/tools/reverse-pages.md b/docs/ja/tools/reverse-pages.md
new file mode 100644
index 00000000..2cf8394c
--- /dev/null
+++ b/docs/ja/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: ページの反転
+description: 1つ以上のPDFファイルのページ順を反転させ、最後のページを最初のページにします。
+---
+
+# ページの反転
+
+PDFのページ順を反転させ、最後のページを最初に、最後から2番目のページを2番目にというように並べ替えます。複数のファイルの一括処理に対応しています。
+
+## 使い方
+
+1. 1つ以上のPDFファイルをアップロードします。
+2. 処理ボタンをクリックします。
+3. 各ファイルは個別に反転されます。複数のファイルをアップロードした場合、出力は反転されたすべてのPDFを含むZIPアーカイブになります。
+4. ファイルが1つの場合は、反転されたPDFとして直接ダウンロードされます。
+
+## 機能
+
+- 一括処理:複数のPDFを1回の操作で反転
+- PDFが1つなら単一ファイルで出力、複数ならZIPで出力
+- 処理前にファイルごとの削除ボタンで取り除ける
+- すべてのページ内容と書式を保持
+
+## 活用例
+
+- 逆順にスキャンされてしまったドキュメントを修正する
+- プレゼンテーションPDFを後ろから前へ読めるように準備する
+- ページを逆順で給紙する特定の印刷ワークフロー向けに、ページ順を反転する
+- 誤って逆向きに組み立てられたドキュメントを修正する
+
+## ヒント
+
+- バッチ内の各ファイルは個別に反転されます。ファイル同士の順序が入れ替わるわけではありません。
+- 全体の反転だけでなく、より細かくページを並べ替えたい場合は、[複製と整理](./organize-pdf)を使用してください。
+
+## 関連ツール
+
+- [複製と整理](./organize-pdf)
+- [PDFの回転](./rotate-pdf)
+- [PDFマルチツール](./pdf-multi-tool)
diff --git a/docs/ja/tools/rotate-custom.md b/docs/ja/tools/rotate-custom.md
new file mode 100644
index 00000000..bceff37f
--- /dev/null
+++ b/docs/ja/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: 任意の角度で回転
+description: ページごとの角度入力と一括回転のコントロールで、PDFのページを任意の角度で回転します。
+---
+
+# 任意の角度で回転
+
+PDFのページを、90度単位に限らず任意の角度で回転します。各ページに個別の角度入力欄があり、一括コントロールを使って、すべてのページに同じ角度を一度に適用することもできます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。すべてのページのサムネイルが描画されます。
+2. 各ページには、現在の回転角度を示す数値入力欄があります。
+3. 特定のページを回転するには、任意の角度(正または負)を入力します。90度単位ですばやく調整するには、ページごとの左/右ボタンを使用します。
+4. 上部の**一括角度**入力欄で、すべてのページに共通の回転を設定します。
+5. 処理ボタンをクリックして、回転したPDFを生成します。
+
+## 機能
+
+- ページごとの自由な角度入力(任意の整数値)
+- すべてのページに同じ回転を設定する一括角度コントロール
+- サムネイルでの回転のリアルタイムプレビュー
+- 90度単位のページごとのクイック回転ボタン
+- 大きなドキュメントでも快適に動作する、サムネイルの遅延読み込み
+
+## 活用例
+
+- 数度だけ傾いたスキャンを補正する
+- 標準的でない向きの要件に合わせてページを回転する
+- 内容が混在するドキュメントの個々のページに、正確な回転を適用する
+- 最初に一括回転した後で、ページの角度を微調整する
+
+## ヒント
+
+- 正の値は時計回り、負の値は反時計回りに回転します。
+- 一括角度欄を適用すると、ページごとの角度がすべて上書きされます。個別の調整が必要な場合は、一括操作の後で行ってください。
+- 90/180/270度の標準的な回転をより簡単な画面で行うには、[PDFの回転](./rotate-pdf)を使用してください。
+
+## 関連ツール
+
+- [PDFの回転](./rotate-pdf)
+- [PDFマルチツール](./pdf-multi-tool)
+- [複製と整理](./organize-pdf)
diff --git a/docs/ja/tools/rotate-pdf.md b/docs/ja/tools/rotate-pdf.md
new file mode 100644
index 00000000..02dfc4b0
--- /dev/null
+++ b/docs/ja/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PDFの回転
+description: サムネイルを使った視覚的な画面で、PDFの個別のページまたはすべてのページを90度単位で回転します。
+---
+
+# PDFの回転
+
+PDFのページを時計回りまたは反時計回りに90度回転します。すべてのページのサムネイルプレビューが表示され、個別に回転することも、ドキュメント全体を一括で回転することもできます。
+
+## 使い方
+
+1. PDFファイルをアップロードします。すべてのページのサムネイルがグリッドに表示されます。
+2. 各ページのサムネイルの下にある左/右の回転ボタンで、そのページを回転します。
+3. 上部の一括回転コントロールで、すべてのページを一度に回転します。
+4. サムネイルのプレビューがリアルタイムで更新され、回転の状態が表示されます。
+5. 処理ボタンをクリックして、回転したPDFを保存します。
+
+## 機能
+
+- 90度単位のページごとの回転(左または右)
+- すべてのページを同時に回転する一括回転
+- アニメーション付きの回転トランジションを備えた、リアルタイムのサムネイルプレビュー
+- 大きなドキュメントでも滑らかに動作する、サムネイルの遅延読み込み
+- 元のページ内容と品質を保持
+
+## 活用例
+
+- 横向きや上下逆さまにスキャンされたページを修正する
+- 横向きのページを縦向きに回転する(またはその逆)
+- 一部のページが誤った角度でスキャンされた、向きが混在するドキュメントを修正する
+- 特定の表示の向きに合わせてドキュメントを準備する
+
+## ヒント
+
+- 回転は累積されます。時計回りのボタンを2回クリックすると、180度回転します。
+- 90度以外の回転(例:わずかに傾いたスキャンを直す45度)には、代わりに[任意の角度で回転](./rotate-custom)を使用してください。
+- 一括回転コントロールは、選択したページだけでなくすべてのページに作用します。このツールには選択機能がありません。選択が必要な場合は、[PDFマルチツール](./pdf-multi-tool)を使用してください。
+
+## 関連ツール
+
+- [任意の角度で回転](./rotate-custom)
+- [PDFマルチツール](./pdf-multi-tool)
+- [複製と整理](./organize-pdf)
diff --git a/docs/ja/tools/rtf-to-pdf.md b/docs/ja/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..0e055ae8
--- /dev/null
+++ b/docs/ja/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTFからPDF
+description: LibreOfficeベースのエンジンを使って、リッチテキスト形式(RTF)のファイルをブラウザ上でPDFに変換します。
+---
+
+# RTFからPDF
+
+リッチテキスト形式のドキュメントをPDFに変換します。RTFは、ほぼすべてのワープロでサポートされているクロスプラットフォームのドキュメント形式です。このツールはブラウザ上のLibreOfficeエンジンを使って、書式を保ったままRTFファイルを描画します。太字、斜体、表、埋め込み画像もすべてPDFに引き継がれます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | MIMEタイプ |
+| :----------- | :----- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、1つ以上のRTFファイルをドラッグアンドドロップします。
+2. ファイル一覧を確認します。必要に応じてファイルを追加または削除します。
+3. **PDFに変換**をクリックします。LibreOfficeエンジンは初回使用時に初期化され、その後各ファイルが処理されます。
+4. ファイルが1つの場合はPDFとして直接ダウンロードされます。複数の場合は`rtf-converted.zip`として届きます。
+
+## オプション
+
+このツールに追加の設定はありません。変換では元のRTFの書式が保持されます。
+
+## 出力
+
+| 入力数 | 出力 |
+| :------------ | :------------------------------------------------------------------- |
+| 1ファイル | PDFを1つダウンロード(例:`letter.pdf`) |
+| 2ファイル以上 | ZIPアーカイブ(`rtf-converted.zip`)に、ファイルごとに1つのPDFを格納 |
+
+## 活用例
+
+- 古いワープロで作成したレガシーなRTFドキュメントを、現在のPDFに変換する
+- RTFのメールテンプレートをPDFのプレビューにする
+- 法務や医療のソフトウェアシステムが出力するRTFを処理する
+- 文書管理システムのRTFファイルを、アーカイブ用にまとめてPDFに変換する
+
+## ヒント
+
+- LibreOfficeエンジンは一度読み込まれてキャッシュされます。セッション内の最初の変換は数秒余分にかかり、2回目以降は高速です。
+- 埋め込みOLEオブジェクトを含むRTFファイルでは、すべてのオブジェクトが完全に描画されない場合があります。プレーンテキスト、画像、標準的な書式は確実に変換されます。
+- RTFファイルがMicrosoft Wordで作成された場合は、DOCやDOCXと並んでRTFも受け付ける[WordからPDF](./word-to-pdf)ツールで直接変換することもできます。
+
+## 関連ツール
+
+- [WordからPDF](./word-to-pdf)
+- [ODTからPDF](./odt-to-pdf)
+- [テキストからPDF](./txt-to-pdf)
diff --git a/docs/ja/tools/sanitize-pdf.md b/docs/ja/tools/sanitize-pdf.md
new file mode 100644
index 00000000..6cbcff2d
--- /dev/null
+++ b/docs/ja/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDFをサニタイズ
+description: メタデータ、JavaScript、埋め込みファイル、注釈、レイヤーなど、PDFに含まれる隠れた、潜在的に危険なコンテンツを取り除きます。
+---
+
+# PDFをサニタイズ
+
+PDFには、画面に表示されるもの以外にも多くのものが含まれていることがあります。隠れたメタデータ、埋め込みのJavaScript、添付ファイル、フォームデータ、レイヤー情報は、機密データを漏らしたり、セキュリティ上のリスクになったりすることがあります。サニタイズはそれらをすべて取り除き、公開しても安全なクリーンなドキュメントにします。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. チェックリストから、削除する要素を選択します。
+3. **PDFをサニタイズ**をクリックします。
+4. クリーンになったファイルをダウンロードします。
+
+## サニタイズのオプション
+
+すべてのオプションはデフォルトで有効です。残したいものはチェックを外してください。
+
+| オプション | 削除されるもの |
+| -------------------------- | ------------------------------------------------------------ |
+| **フォームをフラット化** | インタラクティブなフォームフィールドを静的な内容に変換 |
+| **メタデータを削除** | 作成者、タイトル、作成日、ソフトウェア情報、XMPデータを削除 |
+| **注釈を削除** | コメント、ハイライト、付箋、マークアップを削除 |
+| **JavaScriptを削除** | 開いたときに実行される可能性のある埋め込みスクリプトを除去 |
+| **埋め込みファイルを削除** | PDFに埋め込まれた添付ファイルを削除 |
+| **レイヤー(OCG)を削除** | オプションコンテンツグループを1つのレイヤーにフラット化 |
+| **リンクを削除** | ハイパーリンクとURL参照を削除 |
+| **構造ツリーを削除** | アクセシビリティのタグ付けに使われるドキュメント構造を削除 |
+| **MarkInfoを削除** | マークされたコンテンツ情報を削除 |
+| **フォントを削除** | 埋め込まれたフォントデータを削除(注意して使用してください) |
+
+## 活用例
+
+- 内部のメタデータ(作成者名、ソフトウェアのバージョン、編集履歴)を取り除いて、PDFを一般公開用に準備する
+- 信頼できない送信元から受け取ったPDFを開く前に、JavaScriptを削除する
+- 埋め込みコメントやフォームフィールド名を見せたくないクライアントにPDFを送る前に整理する
+- 建築図面から隠れたレイヤーを取り除いてから、最終版を共有する
+- プライバシー規制のデータ最小化の要件に準拠する
+
+## ヒント
+
+- PDFが正しく表示されることが確実でない限り、「フォントを削除」のチェックは外したままにしてください。フォントを削除すると、ビューアーによってはテキストが見えなくなることがあります。
+- メタデータだけを取り除きたい場合は、専用のメタデータの削除ツールのほうが速く、目的に合っています。
+- サニタイズは元に戻せません。元のファイルを保管してください。
+
+## 関連ツール
+
+- [メタデータの削除](./remove-metadata):ほかの内容には触れず、メタデータだけを削除
+- [PDFのフラット化](./flatten-pdf):フォームと注釈を特にフラット化
+- [PDFの暗号化](./protect-pdf):サニタイズの後にパスワード保護を追加
+- [PDFのラスタライズ](./rasterize-pdf):最終手段として、画像に変換して隠れたコンテンツをすべて排除
diff --git a/docs/ja/tools/scanner-effect.md b/docs/ja/tools/scanner-effect.md
new file mode 100644
index 00000000..15b69965
--- /dev/null
+++ b/docs/ja/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: スキャナー効果
+description: ノイズ、回転、ぼかし、紙の経年変化の効果を調整して、PDFをスキャンした文書のように見せます。
+---
+
+# スキャナー効果
+
+きれいなデジタルPDFを、フラットベッドスキャナーから出てきたかのような見た目に変換します。ノイズ、わずかな回転、ぼかし、明るさの変化、任意の黄ばみを設定して適用し、物理的なスキャンの不完全さを再現します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. 1ページ目のライブプレビューと設定パネルが並んだエディターが開きます。
+3. スライダーとトグルを使って、スキャン効果のパラメーターを調整します。
+4. 設定を変更するたびに、プレビューがリアルタイムで更新されます。
+5. **適用**をクリックして、すべてのページを処理し、結果をダウンロードします。
+
+## オプション
+
+- **カラースペース(グレースケールのトグル)**:出力をグレースケールに変換し、昔ながらの白黒スキャンの見た目にします。
+- **枠線**:ページの端に目立たない暗い枠線を追加し、スキャナーの縁のアーティファクトを再現します。
+- **回転**:わずかな回転(-5度から+5度)を適用し、紙のずれた給紙を再現します。
+- **回転のばらつき**:回転角度にランダムなばらつきを加え、ページごとに少しずつ違う傾きにします。
+- **明るさ**:全体の明るさを上げ下げします。
+- **コントラスト**:コントラストを調整し、トナー品質の違いを再現します。
+- **ぼかし**:ガウスぼかしを適用し、低品質のスキャンのようにテキストの縁をやわらげます。
+- **ノイズ**:ランダムなピクセルノイズを加え、スキャナーセンサーの粒状感を再現します。値が高いほど粒子が粗くなります。
+- **黄ばみ**:温かみのある黄色の色合いを加え、古い紙や再生紙を再現します。
+- **解像度**:出力のDPIを設定します。値が低いほど、ピクセルが粗いスキャンらしい見た目になります。
+- **リセット**:すべての設定をデフォルトに戻します。
+
+## 機能
+
+- 各パラメーターを調整するたびに更新されるリアルタイムプレビュー
+- リアルな変化を出すための、ページごとのランダムな回転のばらつき
+- 独立して調整できる10個のパラメーター
+- 本物らしい白黒スキャンの出力に対応するグレースケールモード
+- 低DPIのFAX品質から高DPIのアーカイブ品質まで対応する解像度の調整
+
+## 活用例
+
+- デジタルで作成したドキュメントを、スキャンして印刷したもののように見せる
+- 歴史的な文書の再現のために、物理的な文書の経年劣化をシミュレートする
+- 劣化したスキャン品質に対して、OCRソフトウェアをテストする
+- 既存のスキャンされたアーカイブの見た目に合ったドキュメントを作成する
+
+## ヒント
+
+- 控えめな値から始めてください。ノイズレベル10から20、0.5度のわずかな回転、最小限のぼかしでも、十分にスキャンらしい見た目になります。
+- グレースケールモードとわずかな黄ばみを組み合わせると、「コピーのコピー」のような効果になります。
+- 低めの解像度設定(100から150 DPI)にすると、最もリアルなFAX機の見た目になります。
+
+## 関連ツール
+
+- [色の反転](./invert-colors)
+- [色の調整](./adjust-colors)
+- [背景色](./background-color)
diff --git a/docs/ja/tools/sign-pdf.md b/docs/ja/tools/sign-pdf.md
new file mode 100644
index 00000000..8259a2ce
--- /dev/null
+++ b/docs/ja/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDFへ署名
+description: 署名を手書き、入力、またはアップロードして、内蔵のビューアーでPDFのページに配置します。
+---
+
+# PDFへ署名
+
+あらゆるPDFドキュメントに署名を追加します。このツールには、署名ツールを備えたPDFビューアーが組み込まれており、署名を手書きしたり、署名用フォントで名前を入力したり、署名画像をアップロードしたりできます。署名は任意のページに配置してサイズを変更し、署名済みのドキュメントを保存します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. ドキュメントが、注釈ツールを備えた統合PDFビューアーで開きます。
+3. ビューアーの署名ツールで、手書き、入力、または画像のアップロードによって署名を作成します。
+4. 署名を配置したいページをクリックし、サイズと位置を調整します。
+5. 必要に応じて、**PDFをフラット化**にチェックを入れ、署名をドキュメントに完全に埋め込みます。
+6. **署名済みPDFを保存してダウンロード**をクリックして、署名済みのファイルを入手します。
+
+## オプション
+
+- **PDFをフラット化**:チェックを入れると、署名がページの内容に完全に埋め込まれます。これにより、他の人が署名を移動したり削除したりできなくなります。チェックを外すと、署名は注釈のままで、対応するビューアーで編集できます。
+
+## 機能
+
+- 3つの署名作成方法:手書き、入力したテキスト、アップロードした画像
+- 正確に配置できる統合PDFビューアー
+- 任意のページで署名をドラッグして配置し、サイズを変更
+- 署名を完全に埋め込む、任意のフラット化
+- 同じドキュメントに複数の署名を追加可能
+
+## 活用例
+
+- 契約書、合意書、承認フォームに署名して返送する
+- 税務書類、保険の請求書、行政の書類に署名を追加する
+- 複数ページの合意書の各ページにイニシャルを入れる
+- PDFの添付ファイルとして届いたNDAや人事書類に署名する
+
+## ヒント
+
+- 署名済みのPDFを、署名を削除したり位置を変更したりできないようにしたい相手に送る場合は、フラット化を有効にしてください。
+- 証明書ベースの検証を伴う、法的拘束力のあるデジタル署名には、BentoPDFに別途用意されているデジタル署名ツールを使用できます。
+- 最もきれいな結果を得るには、背景が透明なPNGの署名画像をアップロードしてください。
+
+## 関連ツール
+
+- [PDFエディター](./edit-pdf)
+- [スタンプの追加](./add-stamps)
+- [フォーム入力](./form-filler)
diff --git a/docs/ja/tools/split-pdf.md b/docs/ja/tools/split-pdf.md
new file mode 100644
index 00000000..bcc22357
--- /dev/null
+++ b/docs/ja/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: PDFの分割
+description: ページ範囲、視覚的な選択、しおり、偶数/奇数ページ、一定の間隔で、PDFを小さなファイルに分割します。
+---
+
+# PDFの分割
+
+6つの分割モードのいずれかを使って、PDFを小さなドキュメントに分けます。単純なページ範囲からしおりによる分割まで、ドキュメントを分けるあらゆる場面に対応します。
+
+## 使い方
+
+1. PDFファイルを1つアップロードします。
+2. ドロップダウンから分割モードを選択します。
+3. モードごとのオプション(ページ範囲、選択など)を設定します。
+4. 処理ボタンをクリックします。
+5. 結果は、モードと設定に応じて、単一のPDFまたはZIPアーカイブとしてダウンロードされます。
+
+## 分割モード
+
+| モード | 説明 |
+| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| **範囲** | `1-3, 5, 8-10`のようにページ範囲を入力します。複数の範囲を指定すると、別々のPDFがZIPで生成されます。範囲が1つなら、PDFが1つ生成されます。 |
+| **視覚的に選択** | ページのサムネイルを見ながら、クリックして必要なページを選択します。選択したページが新しいPDFに抽出されます。 |
+| **偶数 / 奇数** | 偶数ページまたは奇数ページだけを抽出します。 |
+| **すべてのページ** | すべてのページを個別のPDFファイルに分割し、ZIPでダウンロードします。 |
+| **しおり** | しおりの境界で分割します。しおりのレベルを選んで、分割する位置を制御します。 |
+| **Nページごと** | Nページずつのまとまりに分割します(例:5ページごと)。最後のまとまりはページ数が少なくなる場合があります。 |
+
+## 機能
+
+- ほぼすべての用途をカバーする6つの分割モード
+- 遅延読み込みのサムネイルによる視覚的なページ選択
+- レベルで絞り込めるしおり対応の分割
+- 範囲モードと視覚的選択モードでのZIP出力オプション
+- 混在した記法のページ範囲(`1-3, 5, 8-10`)に対応
+- Nページごとの分割で、まとまりが不均等になる場合の警告
+
+## 活用例
+
+- 大きなドキュメントから特定の章やセクションを抽出する
+- 両面印刷のワークフロー向けに、奇数ページと偶数ページを分ける
+- 書籍のPDFを、しおりの境界で章ごとのファイルに分割する
+- 契約書から、署名ページなどの特定のページを取り出す
+- まとめられたレポートを、配布用にセクションごとのファイルに分割する
+
+## ヒント
+
+- カンマで区切った複数のページ範囲(例:`1-5, 10-15, 20-25`)を指定すると、範囲ごとに別々のPDFが生成され、ZIPにまとめられます。
+- しおりによる分割モードには、PDFに実際にしおりが含まれている必要があります。見つからない場合はエラーメッセージが表示されます。
+- 範囲モードと視覚的選択モードの「ZIPとしてダウンロード」チェックボックスを使うと、結合したファイルではなく、ページごとの個別のPDFを入手できます。
+
+## 関連ツール
+
+- [PDFの結合](./merge-pdf)
+- [ページの抽出](./extract-pages)
+- [ページの削除](./delete-pages)
+- [PDFマルチツール](./pdf-multi-tool)
diff --git a/docs/ja/tools/svg-to-pdf.md b/docs/ja/tools/svg-to-pdf.md
new file mode 100644
index 00000000..d5408c6b
--- /dev/null
+++ b/docs/ja/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVGからPDF
+description: SVGベクターグラフィックスを、品質を調整しながらPDFに変換します。すべてブラウザ上で完結します。
+---
+
+# SVGからPDF
+
+Scalable Vector Graphics(SVG)ファイルをPDFに変換します。このツールは各SVGをブラウザの描画エンジンでラスタライズし、その結果を元の解像度で埋め込みます。ベクターのアイコン、図、イラストを持ち運びやすいドキュメントにするのに便利です。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :----------- | :----- |
+| SVG | `.svg` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、1つ以上のSVGファイルをドラッグアンドドロップします。
+2. ファイル一覧を確認して管理します。
+3. **PDF品質**のレベルを選択します。
+4. **PDFに変換**をクリックします。結果は`from_svgs.pdf`としてダウンロードされます。
+
+各SVGはテキストとして読み込まれ、本来の幅と高さ(サイズの指定がない場合は800x600がデフォルト)でキャンバスに描画され、PNGとして書き出されます。そのPNGがpdf-libを使ってPDFに埋め込まれます。透明な部分は白い背景で塗りつぶされます。
+
+## オプション
+
+**PDF品質**は、ラスタライズ後の圧縮を制御します。
+
+- **高品質**:元の描画に最も近くなります。
+- **中品質**(デフォルト):バランスが良い設定です。
+- **低品質**:ファイルが最小になりますが、細部が失われます。
+
+## 活用例
+
+- 建築やエンジニアリングの図を、SVGから印刷用のPDFに変換する
+- アイコンセットを、デザインシステムのリファレンスPDFにまとめる
+- データの可視化(D3.jsやチャートライブラリの出力)を、レポートに使えるPDFにする
+- SVGベースのインフォグラフィックの印刷用バージョンを作成する
+
+## ヒント
+
+- `width`と`height`属性が明示されていないSVGファイルは、800x600ピクセルで描画されます。最良の結果を得るには、変換する前にSVGのソースでサイズを設定してください。
+- 外部フォントの参照やリンクされた画像を含む複雑なSVGは、完全には描画されない場合があります。確実な出力のために、すべてのアセットをSVG内にインライン化してください。
+- SVGはラスタライズされるため、PDFにはベクターパスではなくビットマップ画像が含まれます。真のベクターPDF出力には、専用のベクターツールが必要です。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [PNGからPDF](./png-to-pdf)
+- [BMPからPDF](./bmp-to-pdf)
diff --git a/docs/ja/tools/table-of-contents.md b/docs/ja/tools/table-of-contents.md
new file mode 100644
index 00000000..73e0900b
--- /dev/null
+++ b/docs/ja/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: 目次
+description: PDFにある既存のしおりから、書式設定された目次ページを生成します。
+---
+
+# 目次
+
+このツールは、PDF内のしおり(アウトライン)を読み取り、書式設定された目次ページを生成してドキュメントの先頭に追加します。PDFにしおりはあるものの、目に見える目次ページがない場合に、自動的に作成します。
+
+## 使い方
+
+1. しおりを含むPDFをアップロードします。
+2. 目次のタイトル、フォントサイズ、フォントファミリーをカスタマイズします。
+3. 必要に応じて**目次ページのしおりを追加**にチェックを入れ、目次自体もしおりツリーに含めます。
+4. **目次を生成**をクリックして、ファイルを処理します。
+5. 先頭に目次ページが挿入されたPDFが、自動的にダウンロードされます。
+
+## オプション
+
+- **目次のタイトル**:生成されるページの上部に表示される見出しです。デフォルトは「目次」です。
+- **フォントサイズ**:10ptから72ptまで選べます。デフォルトは12ptです。
+- **フォントファミリー**:Times Roman、Helvetica、Courierのバリエーション(標準、太字、斜体、太字斜体)から選択します。デフォルトはHelveticaです。
+- **目次ページのしおりを追加**:チェックを入れると、目次ページ自体のしおり項目がPDFのアウトラインツリーに追加されます。
+
+## 機能
+
+- PDFのしおりの階層全体を読み取り
+- ページ番号の参照付きで、きれいに整形された目次ページを生成
+- 入れ子になったしおりのレベルを、インデントでサポート
+- 12種類の内蔵PDFフォントから選択可能
+- 目次ページ自体を指すしおりを、任意で追加
+
+## 活用例
+
+- デジタルのしおりしかない電子書籍やレポートに、印刷可能な目次を追加する
+- 複数のPDFを結合した後のドキュメントに、目次を作成する
+- 長い技術マニュアルの参照ページを生成する
+- 目に見える目次が求められる印刷用のドキュメントを準備する
+
+## ヒント
+
+- PDFにしおりがない場合は、先に[しおりの編集](./bookmark)ツールでしおりを作成してから、ここに戻って目次を生成してください。
+- 大きなドキュメントでは、14ptや16ptなど大きめのフォントサイズにすると読みやすくなります。
+
+## 関連ツール
+
+- [しおりの編集](./bookmark)
+- [ページ番号](./page-numbers)
+- [ヘッダーとフッター](./header-footer)
diff --git a/docs/ja/tools/text-color.md b/docs/ja/tools/text-color.md
new file mode 100644
index 00000000..f6a6f4d6
--- /dev/null
+++ b/docs/ja/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: テキストの色の変更
+description: PDF内のすべてのテキストの色を、好きな色に変更します。
+---
+
+# テキストの色の変更
+
+PDF全体のテキストの色を置き換えます。このツールは各ページのテキスト領域を識別して選択した色に変更し、ドキュメントのレイアウトとテキスト以外の内容は保持します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. カラーセレクターで新しいテキストの色を選びます。デフォルトは青(#0000FF)です。
+3. **テキストの色を変更**をクリックして処理します。
+4. 色が変更されたPDFが自動的にダウンロードされます。進捗インジケーターに、処理中のページが表示されます。
+
+## オプション
+
+- **新しいテキストの色**:ドキュメント内のすべてのテキストの置き換え後の色を選ぶカラーピッカーです。
+
+## 機能
+
+- ドキュメントのすべてのページのテキストの色を変更
+- 進捗表示付きのページごとの処理
+- 16進数カラーに完全対応したカラーピッカー
+- ページのレイアウトとテキスト以外の要素を保持
+
+## 活用例
+
+- 黒いテキストを濃い青に変えて、より柔らかく現代的なドキュメントの印象にする
+- ドキュメントを配布する前に、ブランドガイドラインに合わせてテキストの色を変更する
+- アクセシビリティ要件への準拠のために、テキストを特定の色にする
+- 新しく適用した背景色に対して、テキストが見えるようにする
+
+## ヒント
+
+- このツールは品質を保つためにページを2倍のスケールで描画し、PDFを再構築します。出力は画像ベースになるため、テキストは選択も検索もできなくなります。
+- 選択可能なテキストを保ちたいドキュメントでは、代わりに[PDFエディター](./edit-pdf)でPDFを直接編集することを検討してください。
+- 各ページが個別に描画されるため、処理時間はページ数に応じて長くなります。
+
+## 関連ツール
+
+- [背景色](./background-color)
+- [色の反転](./invert-colors)
+- [色の調整](./adjust-colors)
diff --git a/docs/ja/tools/tiff-to-pdf.md b/docs/ja/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..1444ce97
--- /dev/null
+++ b/docs/ja/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFFからPDF
+description: 単一ページおよび複数ページのTIFF画像を、すべてのページに対応してブラウザ上でPDF形式に変換します。
+---
+
+# TIFFからPDF
+
+複数ページのTIFFを含め、TIFFファイルをPDFに変換します。TIFFファイル内の各ページ(「IFD」)が、出力PDFの別々のページになります。複数ページのTIFFとして保存されることが多い、スキャン文書、FAX、医療画像に特に便利です。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :----------- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、TIFFファイルをドラッグアンドドロップします。
+2. ファイル一覧を確認し、必要に応じて管理します。
+3. **PDFに変換**をクリックします。結果は`from_tiff.pdf`としてダウンロードされます。
+
+このツールは、JavaScriptのTIFFデコーダーで各TIFFファイルをデコードし、すべてのページの生のRGBAピクセルデータを抽出します。各ページはキャンバスに描画され、PNGとして書き出されてPDFに埋め込まれます。ページのサイズは元のTIFFのページと一致します。
+
+## オプション
+
+このツールには、品質に関する追加の設定はありません。画像は元の解像度で埋め込まれます。
+
+## 活用例
+
+- 複数ページのFAX文書(TIFF-F)を、より持ち運びやすいPDF形式に変換する
+- TIFFで保存されたスキャン文書のアーカイブを、検索可能なPDFにする(その後OCRツールと組み合わせます)
+- TIFFを使用する医療画像ファイル(病理スライド、放射線画像の出力)を処理する
+- GISや衛星画像のTIFFファイルを、共有できるドキュメントに変換する
+
+## ヒント
+
+- 複数ページのTIFFに完全対応しています。10ページのTIFFからは10ページのPDFが生成されます。先にTIFFを分割する必要はありません。
+- 非常に大きなTIFFファイル(数百メガバイト)は、ファイル全体をブラウザのメモリ内でデコードする必要があるため、処理に時間がかかることがあります。
+- 生成されたPDFにOCRが必要な場合は、変換後に[OCR PDF](./ocr-pdf)ツールを実行してください。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [BMPからPDF](./bmp-to-pdf)
+- [JPGからPDF](./jpg-to-pdf)
diff --git a/docs/ja/tools/txt-to-pdf.md b/docs/ja/tools/txt-to-pdf.md
new file mode 100644
index 00000000..03270fae
--- /dev/null
+++ b/docs/ja/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: テキストからPDF
+description: プレーンテキストファイルまたは入力したテキストを、フォント、色、ページサイズを指定してPDFに変換します。
+---
+
+# テキストからPDF
+
+プレーンテキストを、書式設定されたPDFに変換します。`.txt`ファイルをアップロードするか、内蔵のテキストエディターに直接入力できます。複数のフォント、テキストの色の指定、A0からA10に加えてUSレター、リーガル、タブロイドまで、幅広いページサイズに対応しています。
+
+## 対応フォーマット
+
+| 入力 | 拡張子 |
+| :----------------------- | :----------------------------- |
+| プレーンテキストファイル | `.txt` |
+| テキストの直接入力 | エディターに入力または貼り付け |
+
+## 使い方
+
+1. 上部のトグルで入力モードを選択します。**ファイルをアップロード**または**テキストを入力**です。
+2. アップロードする場合は、1つ以上の`.txt`ファイルをドラッグアンドドロップするか、クリックして選択します。入力する場合は、テキストエリアに直接テキストを入力します。
+3. 書式のオプションを設定します。フォントファミリー、フォントサイズ、テキストの色、ページサイズです。
+4. **PDFを作成**をクリックします。出力は`text_to_pdf.pdf`としてダウンロードされます。
+
+複数のファイルをアップロードした場合、それらの内容は間に空行を挟んで連結されます。
+
+## オプション
+
+| オプション | 値 | デフォルト |
+| :--------------------- | :----------------------------------------------------------------------------------- | :------------ |
+| **フォントファミリー** | Helvetica(サンセリフ)、Tiro(セリフ)、Courier(等幅)、Times(セリフ) | Helvetica |
+| **フォントサイズ** | 6 - 72 pt | 12 |
+| **テキストの色** | カラーピッカーで任意の色 | 黒(#000000) |
+| **ページサイズ** | ISO A0からA10、B0からB10、C0からC10、USレター、リーガル、タブロイド、レジャー、11x17 | A4 |
+
+RTL言語(アラビア語、ヘブライ語、ペルシア語、ウルドゥー語)は自動的に検出されます。RTLのテキストが見つかると、テキストの方向と配置がそれに応じて切り替わります。
+
+## 活用例
+
+- コードスニペットやログファイルを、Courierフォントの印刷可能なPDFに変換する
+- その場で入力した会議メモから、すばやくPDFを作成する
+- プレーンテキストの原稿を、提出用に特定のフォントとページサイズで整形する
+- READMEや変更履歴のPDF版を、オフライン配布用に作成する
+
+## ヒント
+
+- クリップボードの内容を、ファイルとして保存せずにすばやく変換したい場合は、**テキストを入力**モードを使用してください。
+- Courier(等幅)は、コードやログ、列の揃いが重要な内容に最適なフォントです。
+- ページの余白は、四辺とも72ポイント(1インチ)に固定されています。
+
+## 関連ツール
+
+- [MarkdownからPDF](./markdown-to-pdf)
+- [CSVからPDF](./csv-to-pdf)
+- [WordからPDF](./word-to-pdf)
diff --git a/docs/ja/tools/unlock-pdf.md b/docs/ja/tools/unlock-pdf.md
new file mode 100644
index 00000000..07b5ab5f
--- /dev/null
+++ b/docs/ja/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDFのロック解除
+description: 暗号化されたPDFのパスワード保護を解除します。1つのパスワードで複数ファイルをまとめて復号化できます。
+---
+
+# PDFのロック解除
+
+暗号化されたPDFのパスワードがわかっている場合、このツールで暗号化を完全に解除し、パスワードなしで誰でも開けるコピーを作成できます。複数のPDFが同じパスワードを共有している場合は、一括で復号化できます。
+
+## 使い方
+
+1. 暗号化されたPDFファイルを1つまたは複数アップロードします。
+2. ファイルの保護に使用した**パスワード**を入力します。
+3. **PDFの復号化**をクリックします。
+4. 1ファイルの場合はそのままダウンロードされます。複数ファイルの場合は、ロック解除済みのPDFをすべて含むZIPアーカイブが作成されます。
+
+## 機能
+
+- 単一ファイルの復号化と一括復号化
+- ユーザーパスワードと所有者パスワードの両方に対応
+- 制限が一切残らない、完全に暗号化されていない出力
+- パスワードの誤りや破損ファイルを明確に報告
+- 一括モードではファイルごとの成功/失敗を追跡
+
+## 制限の解除との違い
+
+**PDFの復号化**はパスワードが必要で、すべての暗号化を解除します。**制限を解除**は使用制限(印刷、コピー、編集)を対象とし、所有者パスワードのみが設定されている場合はパスワードが不要なことがあります。パスワードなしではPDFをまったく開けない場合は、Decryptを使用してください。
+
+## 活用例
+
+- 以前に暗号化したPDFで、パスワードが不要になったものを恒久的にロック解除する
+- 保管済みの文書をまとめて暗号化解除し、長期的にアクセスしやすくする
+- 暗号化ファイルに対応していない文書管理システム向けに、パスワード保護されたPDFを準備する
+- 他の文書と結合する前にPDFのロックを解除する(多くの結合ツールは暗号化された入力を処理できません)
+
+## ヒント
+
+- パスワード欄はアップロードしたすべてのファイルに適用されます。PDFごとにパスワードが異なる場合は、別々のバッチで処理してください。
+- 「パスワードが正しくありません」エラーが出る場合は、末尾の空白やCaps Lockを確認してください。
+- 復号化後の出力にはセキュリティがまったくありません。新しいパスワードを設定したい場合は、PDFの暗号化で再び暗号化してください。
+
+## 関連ツール
+
+- [PDFの暗号化](./protect-pdf): 新しいパスワードで暗号化を再適用します
+- [制限の解除](./remove-restrictions): 完全に復号化せずに使用制限を解除します
+- [権限の変更](./change-permissions): 暗号化されたPDFの特定の権限を変更します
diff --git a/docs/ja/tools/validate-signature-pdf.md b/docs/ja/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..b4b8e9af
--- /dev/null
+++ b/docs/ja/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: PDF署名を検証する
+description: PDFファイルの電子署名を検証します。証明書の有効性、署名者の身元、文書の完全性、信頼チェーンの状態を確認できます。
+---
+
+# PDF署名を検証する
+
+署名済みPDFをアップロードすると、このツールがすべての電子署名を抽出し、署名者を特定し、証明書の有効性を確認し、署名後に文書が変更されたかどうかを報告します。信頼する証明書を指定して、署名チェーンを検証することもできます。
+
+## 使い方
+
+1. 署名済みPDFファイルをアップロードします。検証は自動的に始まります。
+2. ツールが概要(見つかった署名の数と、そのうち有効なものの数)を表示します。
+3. 各署名について、署名者名、発行者、日付、状態を示す詳細カードが表示されます。
+4. 必要に応じて、**信頼する証明書**(.pem、.crt、.cer、.der)をアップロードすると、特定のトラストアンカーに対して署名を検証できます。再検証は自動的に実行されます。
+
+## チェック内容
+
+### 署名の解析
+
+ツールはPDFからPKCS#7署名オブジェクトを抽出してASN.1構造をデコードし、署名者のX.509証明書と、署名に埋め込まれた証明書チェーンを取り出します。
+
+### 証明書の有効性
+
+- **有効期限**: 証明書は現在、有効期間内ですか。
+- **自己署名の検出**: 証明書は自身の発行者ですか。
+- **信頼チェーン**: 信頼する証明書が指定された場合、署名者の証明書はそこまでチェーンがつながっていますか。
+
+### 暗号による検証
+
+- ツールは署名の`/ByteRange`が対象とするバイト列を再構築し、署名者が宣言したアルゴリズムでハッシュ化して、署名内の`messageDigest`属性と結果を比較します。
+- 次に、署名済み属性をDERのSETとして再シリアライズし、署名者証明書の公開鍵に対して署名を検証します。
+- **署名は、これらすべてに合格した場合にのみ有効と報告されます。** 署名後にPDFのバイト列が変更された場合、または埋め込まれた署名が署名者の鍵と一致しない場合、ステータスには具体的な理由とともに「無効: 暗号化検証に失敗しました」と表示されます。
+
+#### 対応する署名アルゴリズム
+
+| アルゴリズム | 検証方法 |
+| ----------------------- | ------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`、Web Cryptoへのフォールバックあり |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | DERからIEEE P1363形式への署名変換後、Web Crypto `verify({name: 'ECDSA', hash})` |
+
+署名がこの一覧にないアルゴリズム(たとえばEd25519、SM2、特殊なダイジェストOIDを使ったRSAなど)を使用している場合、カードには黄色で「未検証: 未対応の署名アルゴリズム」と、具体的なOIDまたは理由が表示されます。これは意図的な3段階の区別です。
+
+- **有効**: 署名者の公開鍵に対して、署名が暗号的に検証されました。
+- **無効**: 検証が実行され、否定的な結果になりました(バイト列の変更、鍵の不一致)。
+- **未検証**: このアルゴリズムについては検証を実行できませんでした。証明書のメタデータは表示されますが、署名は「不明」として扱い、Adobe Acrobatまたは`openssl cms -verify`で検証してください。
+
+### 安全でないダイジェストアルゴリズム
+
+- **MD5またはSHA-1**を使用した署名は無効として拒否され、「安全でないダイジェスト」ステータスが付きます。どちらのアルゴリズムにも衝突攻撃が公開されているため、SHA-1やMD5のハッシュに対する署名では完全性は保証されません。
+- SHA-224、SHA-256、SHA-384、SHA-512はすべて受け入れられます。
+
+### 文書のカバー範囲
+
+- **完全カバー**: 署名がPDFファイル全体をカバーしており、署名後にバイトが追加・変更されていないことを意味します。
+- **部分カバー**: 署名がファイルの一部のみをカバーしています。署名後に変更が加えられた可能性を示しますが、悪意があるとは限りません(増分保存でも部分カバーになります)。
+
+## 署名の詳細
+
+各署名カードには次の情報が表示されます。
+
+- **署名者**: 署名者の証明書に含まれる共通名、組織、メールアドレス
+- **発行者**: 署名者の証明書を発行した認証局
+- **署名日時**: 署名に埋め込まれたタイムスタンプ
+- **有効開始日 / 有効期限**: 証明書の有効期間
+- **理由**: 文書に署名した理由(指定されている場合)
+- **場所**: 署名した場所(指定されている場合)
+- **カバー状況**: 完全または部分
+- **信頼バッジ**: 信頼済み、または信頼チェーンにないことを示します(カスタム証明書を指定した場合のみ)
+
+### 技術的な詳細
+
+技術的な詳細セクションを展開すると、次の情報が表示されます。
+
+- 署名者の証明書のシリアル番号
+- ダイジェストアルゴリズム(SHA-256、SHA-512など)
+- 署名アルゴリズム(RSA with SHA-256、ECDSA with SHA-256など)
+- 無効な署名のエラーメッセージ
+
+## 活用例
+
+- 副署する前に、電子署名された契約書を検証する
+- 署名済み文書を監査し、改ざんされていないことを確認する
+- 文書に署名した後に証明書の有効期限が切れていないかを確認する
+- 組織のルート証明書に対して署名を検証する
+- 政府文書や法的文書の署名の詳細を確認する
+
+## ヒント
+
+- 自己署名証明書だからといって署名が無効というわけではありません。信頼できる第三者を通じて署名者の身元を確認できない、という意味です。社内文書ではよくあることです。
+- 部分カバーは、必ずしも改ざんを示すものではありません。多くのPDFワークフローでは、増分更新(2つ目の署名など)が追加され、部分カバーになります。
+- 信頼チェーンの検証を行うには、組織のルート証明書または中間証明書を信頼する証明書としてアップロードしてください。
+
+## 関連ツール
+
+- [PDFへの電子署名](./digital-sign-pdf): 自分の証明書でPDFに署名します
+- [PDFの平坦化](./flatten-pdf): 署名前にPDFをフラット化し、署名後の変更を防ぎます
+- [メタデータの削除](./remove-metadata): 署名を適用する前にPDFをクリーンアップします
diff --git a/docs/ja/tools/view-metadata.md b/docs/ja/tools/view-metadata.md
new file mode 100644
index 00000000..e9ec25a1
--- /dev/null
+++ b/docs/ja/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: メタデータの表示
+description: ドキュメント情報、XMPデータ、構造の詳細など、PDFのすべてのメタデータプロパティを確認します。
+---
+
+# メタデータの表示
+
+PDFファイルに埋め込まれた隠れたプロパティを調べます。このツールは、ドキュメント情報(タイトル、作成者、日付)、XMPメタデータ、ページサイズなどの構造データを、読みやすい形式で表示します。
+
+## 使い方
+
+1. PDFファイルをアップロードします。
+2. ツールがすぐにファイルを解析し、利用可能なすべてのメタデータを整理されたセクションに表示します。
+3. ドキュメント情報ディクショナリ、XMPメタデータツリー、構造プロパティを確認します。
+4. 処理の手順は不要です。ファイルが読み込まれるとすぐにメタデータが表示されます。
+
+## 機能
+
+- 標準のドキュメント情報フィールドを表示: タイトル、作成者、サブジェクト、キーワード、作成アプリケーション、PDF変換
+- 作成日と更新日を読みやすい形式で表示
+- ネストされた名前空間を含む、XMPメタデータツリー全体を解析して表示
+- PDFの日付形式(`D:20240101120000Z`)を読みやすい日付に変換
+- 折りたたみ可能なセクションに整理され、移動しやすい
+
+## メタデータのセクション
+
+| セクション | 内容 |
+| ---------------------------- | ----------------------------------------------------------------------------------------- |
+| **ドキュメント情報** | タイトル、作成者、サブジェクト、キーワード、作成アプリケーション、PDF変換、作成日、更新日 |
+| **XMPメタデータ** | Dublin Core、XAP、PDF、カスタム名前空間を含む、XMLベースのメタデータツリー全体 |
+| **ドキュメントのプロパティ** | ページ数、PDFバージョン、ファイルサイズ、暗号化の状態 |
+
+## 活用例
+
+- PDFの作成者と最終更新日を確認する
+- 文書を公開する前に、メタデータが正しく設定されているか確認する
+- 埋め込まれている個人情報を調べ、プライバシーの観点からPDFを監査する
+- PDFの作成や変更に使われたソフトウェアを調べる(Producerフィールドから)
+- デジタルアセット管理のコンプライアンスのためにXMPメタデータを確認する
+
+## ヒント
+
+- `D:`で始まるPDFの日付文字列は、自動的にお使いのローカルタイムゾーンの形式に変換されます。
+- メタデータのフィールドが空の場合は、PDFの作成者が設定しなかっただけです。すべてのPDFに豊富なメタデータが含まれているわけではありません。
+- 確認したメタデータを変更するには[メタデータの編集](./edit-metadata)を、完全に削除するにはメタデータの削除を使用してください。
+
+## 関連ツール
+
+- [メタデータの編集](./edit-metadata)
+- [PDF OCG Layers](./pdf-layers)
+- [PDFの比較](./compare-pdfs)
diff --git a/docs/ja/tools/vsd-to-pdf.md b/docs/ja/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..5c26fe89
--- /dev/null
+++ b/docs/ja/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSDからPDF
+description: Microsoft Visio(VSD/VSDX)の図をブラウザ上でPDFに変換します。無料でプライベート、Visioは不要です。
+---
+
+# VSDからPDF
+
+Visioをインストールせずに、Microsoft VisioのダイアグラムをPDFに変換します。VSDファイルとVSDXファイルには、フローチャート、組織図、ネットワーク図、間取り図などが含まれていますが、多くの人は開けません。このツールは、それらをどのデバイスでも見られるきれいなPDFとして出力します。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :------------ | :------ | :------------------------------ |
+| Visioバイナリ | `.vsd` | 従来のVisio形式(Visio 2003以前) |
+| Visio XML | `.vsdx` | 現在のVisio形式(Visio 2013以降) |
+
+## 使い方
+
+1. アップロード領域をクリックするか、VSDまたはVSDXファイルをドラッグ&ドロップします。両方の形式を1つのバッチに混在させることができます。
+2. ファイル一覧を確認します。不要な項目はゴミ箱アイコンで削除するか、**さらにファイルを追加する**でダイアグラムを追加します。
+3. **PDFに変換**をクリックします。LibreOfficeベースのエンジンがブラウザに読み込まれ、図形、コネクタ、ラベル、ページレイアウトを維持したまま各ダイアグラムをPDFにレンダリングします。
+4. 1つのダイアグラムはそのままPDFとしてダウンロードされます。複数ファイルの場合は、`vsd-to-pdf.zip`という名前のZIPアーカイブが作成されます。
+
+## オプション
+
+設定は不要です。コンバーターは、Visio文書の元のページサイズと向きを尊重します。
+
+## 活用例
+
+- Visioのライセンスがなくても、同僚のVisio図を確認する
+- ネットワーク図やアーキテクチャ図を、プロジェクトのドキュメントにPDFとして含める
+- 会議の配布資料として、組織図やプロセスフローを印刷する
+- 古いバージョンのVisioで作られたVSDファイルを、将来も使える形式で保管する
+
+## ヒント
+
+- 複数ページのVisio文書は複数ページのPDFになり、Visioの各ページがPDFの各ページに対応します。
+- VSDXファイル(現在のXMLベースの形式)は、古いVSDバイナリファイルよりも高い再現度で変換されるのが一般的です。
+- LibreOfficeエンジンはセッションごとに1回読み込まれます。最初の変換では少し待ち時間がありますが、以降のファイルはより速く処理されます。
+
+## 関連ツール
+
+- [ODGからPDF](./odg-to-pdf)
+- [PUBからPDF](./pub-to-pdf)
+- [PSDからPDF](./psd-to-pdf)
diff --git a/docs/ja/tools/webp-to-pdf.md b/docs/ja/tools/webp-to-pdf.md
new file mode 100644
index 00000000..7f1d060a
--- /dev/null
+++ b/docs/ja/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebPからPDF
+description: WebP画像をブラウザ上でPDF形式に変換します。圧縮品質を調整できます。
+---
+
+# WebPからPDF
+
+GoogleのWebP画像形式をPDFに変換します。Webからダウンロードした画像がWebP形式で、印刷や共有のためにより広く対応された形式が必要な場合に特に便利です。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :----------- | :------ |
+| WebP | `.webp` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、WebPファイルをドラッグ&ドロップします。
+2. ファイル一覧を確認し、不要なファイルを削除します。
+3. **PDFの品質**のレベルを選択します。
+4. **PDFに変換**をクリックします。出力は`from_webps.pdf`としてダウンロードされます。
+
+内部では、各WebP画像がブラウザのcanvas APIでデコードされ、pdf-libを使ってPDFに埋め込まれます。そのため、WebPのデコードに対応しているブラウザ(最近のブラウザはすべて対応)であれば変換できます。
+
+## オプション
+
+**PDFの品質**は、画像を埋め込む際の圧縮を制御します。
+
+- **高画質(ファイルサイズ大)**: 最も多くの細部を維持します。
+- **中画質(バランス)**(デフォルト): バランスの取れた出力です。
+- **低画質(ファイルサイズ小)**: ファイルサイズが最小になります。
+
+## 活用例
+
+- Webからダウンロードして保存したWebP画像を、印刷可能なPDFに変換する
+- ChromeやEdgeで撮影したWebPのスクリーンショットをドキュメントにまとめる
+- WebPが既定のデザインツールから書き出した画像で、PDFポートフォリオを作成する
+- WebP画像を、より広く読める形式で保管する
+
+## ヒント
+
+- WebPはPDFに埋め込む前に内部でPNGにデコードされるため、ロスレスのWebP画像はHigh設定で品質が維持されます。
+- WebPとほかの画像形式が混在している場合は、代わりに[画像からPDF](./image-to-pdf)ツールを使用してください。すべてをまとめて受け付けます。
+
+## 関連ツール
+
+- [画像からPDF](./image-to-pdf)
+- [PNGからPDF](./png-to-pdf)
+- [JPGからPDF](./jpg-to-pdf)
diff --git a/docs/ja/tools/word-to-pdf.md b/docs/ja/tools/word-to-pdf.md
new file mode 100644
index 00000000..d116f0d0
--- /dev/null
+++ b/docs/ja/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: WordからPDF
+description: Word文書(DOC、DOCX)、ODT、RTFファイルを、書式を完全に保ったままブラウザ上でPDFに変換します。
+---
+
+# WordからPDF
+
+Microsoft Word文書と互換形式をPDFに変換します。このツールはブラウザベースのLibreOfficeエンジンを使用し、DOC、DOCX、ODT、RTFファイルを処理して、書式、表、画像、ヘッダー、フッター、スタイルを出力に維持します。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 |
+| :------------------- | :------ |
+| Word(現行) | `.docx` |
+| Word(旧形式) | `.doc` |
+| OpenDocumentテキスト | `.odt` |
+| リッチテキスト形式 | `.rtf` |
+
+## 使い方
+
+1. アップロード領域をクリックするか、Word文書をドラッグ&ドロップします。複数のファイルを一度に選択できます。
+2. ファイル一覧を確認して整理します。
+3. **PDFに変換**をクリックします。LibreOfficeエンジンは初回の使用時に読み込まれ(進行状況インジケーターに初期化の状態が表示されます)、その後、各ファイルが変換されます。
+4. 1ファイルの場合は、そのままPDFとしてダウンロードされます。複数ファイルの場合は、`word-converted.zip`にまとめられます。
+
+## オプション
+
+このツールに追加の設定はありません。LibreOfficeエンジンが、デフォルトのPDFエクスポートプロファイルで出力を生成します。
+
+## 出力
+
+| 入力数 | 出力 |
+| :------------ | :------------------------------------------------------------------ |
+| 1ファイル | 単一のPDFをダウンロード(元のファイル名に`.pdf`拡張子) |
+| 2ファイル以上 | ZIPアーカイブ(`word-converted.zip`)に、ファイルごとに1つのPDFを格納 |
+
+## 活用例
+
+- 就職応募の前に、履歴書やカバーレターをDOCXからPDFに変換する
+- 顧客への納品用に、契約書や提案書のセットをまとめてPDFに変換する
+- 旧形式の`.doc`ファイルを、長期保管用の最新のPDFに変換する
+- Google Docsで共同編集した文書(DOCXとしてエクスポート)をPDFに変換する
+- 自動文書生成で使われるWordテンプレートから、印刷用のPDFを作成する
+
+## ヒント
+
+- LibreOfficeエンジンはセッションごとに1回ダウンロードされ、キャッシュされます。最初の変換では数秒の読み込み時間がかかりますが、以降の変換ははるかに速くなります。
+- 複雑な書式(マクロ、ActiveXコントロール、高度なSmartArt)は、完全には変換されない場合があります。テキスト、表、画像、ヘッダー、脚注といった標準的な文書要素は、確実に変換されます。
+- このツールはODTとRTFにも対応しているため、あらゆるワープロ形式をまとめて変換できるツールとして使えます。
+
+## 関連ツール
+
+- [ODTからPDF](./odt-to-pdf)
+- [RTFからPDF](./rtf-to-pdf)
+- [ExcelからPDF](./excel-to-pdf)
+- [PowerPointからPDF](./powerpoint-to-pdf)
diff --git a/docs/ja/tools/wpd-to-pdf.md b/docs/ja/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..27dd3110
--- /dev/null
+++ b/docs/ja/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPDからPDF
+description: LibreOfficeを使って、WordPerfect(WPD)文書をブラウザ上でPDFに変換します。無料でプライベートです。
+---
+
+# WPDからPDF
+
+Corel WordPerfectの文書をPDFファイルに変換します。WPDは、かつて法律事務所や政府機関で主流だったワープロ形式でした。最近のソフトウェアでは開けない古いWordPerfectファイルを、標準的なPDFとしてよみがえらせることができます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :----------- | :----- | :---------------------------------- |
+| WordPerfect | `.wpd` | WordPerfectの主要なバージョンすべて |
+
+## 使い方
+
+1. アップロード領域をクリックするか、WPDファイルをドラッグ&ドロップします。複数のファイルを一度に選択できます。
+2. ファイル一覧を確認します。不要なファイルはゴミ箱アイコンで削除するか、**さらにファイルを追加する**で文書を追加します。
+3. **PDFに変換**をクリックします。ツールがLibreOfficeベースの変換エンジンをブラウザに読み込み、WPD形式を解析してPDFを出力します。
+4. 1ファイルの場合は、そのままPDFとしてダウンロードされます。一括変換の場合は、`wpd-to-pdf.zip`という名前のZIPアーカイブが作成されます。
+
+## オプション
+
+設定は不要です。LibreOfficeエンジンが、WPDの書式、フォント、レイアウトを自動的に処理します。
+
+## 活用例
+
+- WordPerfectで書かれた数十年前の法的文書を開く
+- 保管されている政府の提出書類をWPDから最新の形式に変換する
+- 従来のWordPerfect文書ライブラリを、長期保存用にPDFへ移行する
+- Corel WordPerfectをインストールしていない相手と、WPDファイルを共有する
+
+## ヒント
+
+- LibreOfficeエンジンは初回の使用時に読み込まれるため、少し時間がかかります。同じセッション内の以降の変換は、より速くなります。
+- 複雑なWPDのマクロやコード表示は保持されませんが、見た目のレイアウト、テキスト内容、基本的な書式はPDFに引き継がれます。
+
+## 関連ツール
+
+- [WPSからPDF](./wps-to-pdf)
+- [ODGからPDF](./odg-to-pdf)
diff --git a/docs/ja/tools/wps-to-pdf.md b/docs/ja/tools/wps-to-pdf.md
new file mode 100644
index 00000000..2caef01f
--- /dev/null
+++ b/docs/ja/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPSからPDF
+description: Microsoft Works(WPS)文書をブラウザ上でPDFに変換します。無料、登録不要、完全にプライベートです。
+---
+
+# WPSからPDF
+
+Microsoft Worksのワープロファイルを、PDFに変換します。Microsoft Worksは1990年代後半から2000年代にかけて、家庭向けPCにバンドルされており、多くのWPSファイルが今も古いハードディスクやメールのアーカイブに残っています。このツールは、それらをブラウザ上で開き、きれいなPDFを作成します。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :-------------- | :----- | :-------------------------------- |
+| Microsoft Works | `.wps` | Microsoft Worksのワープロファイル |
+
+## 使い方
+
+1. アップロード領域をクリックするか、WPSファイルをドラッグ&ドロップします。複数のファイルを受け付けます。
+2. ファイル一覧を確認します。ゴミ箱アイコンで個別のファイルを削除するか、**さらにファイルを追加する**をクリックしてバッチを広げます。
+3. **PDFに変換**をクリックします。LibreOfficeベースのエンジンがブラウザに読み込まれ、各WPS文書をPDFに変換します。
+4. 1ファイルの場合は、そのままPDFとしてダウンロードされます。複数ファイルの場合は、`wps-to-pdf.zip`という名前のZIPアーカイブにまとめられます。
+
+## オプション
+
+追加の設定は不要です。コンバーターは、WPSファイルのテキスト、基本的な書式、埋め込み画像を処理します。
+
+## 活用例
+
+- Microsoft Works形式で保存された、古い学校や仕事の文書を復元する
+- Microsoft Worksをインストールしていなくても、メールに添付されたWPSファイルを開く
+- WPSファイルのアーカイブを、最新の文書システムへ移行するために変換する
+- 現在のワープロでは開けない古い文書を印刷する
+
+## ヒント
+
+- Microsoft Worksの`.wps`ファイルを、WPS Officeのファイルと混同しないでください。このツールは、古いMicrosoft Works形式専用です。
+- LibreOfficeエンジンは初回の使用時に読み込みに少し時間がかかります。読み込み後は、同じセッション内の追加の変換がより速く実行されます。
+
+## 関連ツール
+
+- [WPDからPDF](./wpd-to-pdf)
+- [PUBからPDF](./pub-to-pdf)
diff --git a/docs/ja/tools/xml-to-pdf.md b/docs/ja/tools/xml-to-pdf.md
new file mode 100644
index 00000000..358255d0
--- /dev/null
+++ b/docs/ja/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XMLからPDF
+description: XMLファイルを、構造化されたPDF文書にブラウザ上で変換します。無料でプライベート、サーバー処理はありません。
+---
+
+# XMLからPDF
+
+XMLデータファイルを、読みやすく構造化されたPDF文書に変換します。生のXMLは強力ですが、人間には読みにくいものです。このツールはXMLツリーを解析し、繰り返されるデータ構造を見つけて、横向きのA4 PDFに整形された表とセクションとしてレンダリングします。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :----------- | :----- | :---------------------------- |
+| XML | `.xml` | 整形式のXML文書であれば何でも |
+
+## 使い方
+
+1. アップロード領域をクリックするか、XMLファイルをドラッグ&ドロップします。複数のファイルを1つのバッチで処理できます。
+2. ファイル一覧を確認します。不要なファイルはゴミ箱アイコンで削除するか、**さらにファイルを追加する**をクリックしてファイルを追加します。
+3. **PDFに変換**をクリックします。ツールはブラウザ組み込みのDOMParserでXML構造を解析し、データ階層を分析して、jsPDFのauto-table書式でPDFにレンダリングします。
+4. 1ファイルの場合は、PDFとしてダウンロードされます。複数の変換結果は`xml-to-pdf.zip`にまとめられます。
+
+## オプション
+
+手動の設定は不要です。コンバーターはXML構造を自動的に検出し、適切な表のレイアウトを選択します。出力は、横幅の広いデータセットに対応するため、横向きのA4になります。
+
+## 活用例
+
+- データベースやAPIから書き出したXMLデータを、印刷可能なレポートにする
+- XML設定ファイルから、読みやすい概要を作成する
+- XMLベースの請求書や取引ログを、記録保管用のPDFに変換する
+- XMLサイトマップやRSSフィードを、文書の形で読みやすくする
+
+## ヒント
+
+- XMLは整形式である必要があります。パーサーが構文エラーを検出した場合、問題箇所を示す具体的なエラーメッセージとともに変換が失敗します。
+- 深くネストされたXML構造は、表に平坦化されます。最良の結果を得るには、データに、一貫した子要素を持つ繰り返しの兄弟要素が含まれているようにしてください。
+- 変換中は、読み込み、解析、分析、レンダリングという各段階を示す進行状況が表示されます。
+
+## 関連ツール
+
+- [FB2からPDF](./fb2-to-pdf)
+- [XPSからPDF](./xps-to-pdf)
+- [電子メールからPDF](./email-to-pdf)
diff --git a/docs/ja/tools/xps-to-pdf.md b/docs/ja/tools/xps-to-pdf.md
new file mode 100644
index 00000000..4d312949
--- /dev/null
+++ b/docs/ja/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPSからPDF
+description: XPSとOXPS文書をブラウザ上でPDF形式に変換します。アップロード不要、登録不要、完全にプライベートです。
+---
+
+# XPSからPDF
+
+Microsoft XPSおよびOXPS文書を、標準的なPDFファイルに変換します。XPS(XML Paper Specification)はPDFに対抗するMicrosoftの規格でしたが、対応するプラットフォームは減っています。このツールを使えば、そうした文書をふたたび誰でも読めるようにできます。
+
+## 対応フォーマット
+
+| フォーマット | 拡張子 | 備考 |
+| :----------- | :------ | :--------------------------------- |
+| XPS | `.xps` | Microsoft独自の元のXPS形式 |
+| OXPS | `.oxps` | Open XPS、ECMA-388標準のバリアント |
+
+## 使い方
+
+1. アップロード領域をクリックするか、XPS/OXPSファイルをドラッグ&ドロップします。複数のファイルを一度に選択できます。
+2. ファイル一覧を確認します。個別のファイルはゴミ箱アイコンで削除するか、**さらにファイルを追加する**をクリックして文書を追加します。
+3. **PDFに変換**をクリックします。PyMuPDFエンジンが、各文書をブラウザ内でローカルに処理します。
+4. 1ファイルの場合は、そのままPDFとしてダウンロードされます。複数ファイルの場合は、`xps-converted.zip`という名前のZIPアーカイブにまとめられます。
+
+## オプション
+
+このツールは、追加の設定なしで直接フォーマットを変換します。出力では、XPS元データのページサイズ、ベクターグラフィックス、フォント、画像が維持されます。
+
+## 活用例
+
+- XPS印刷ドライバーが既定だった古いWindowsシステムから受け取ったXPSファイルを開く
+- Windows 10/11のOXPS文書を、macOSやLinuxのユーザーと共有できるように変換する
+- 古いXPSファイルを、より広く対応された形式で保管する
+- XPSベースの政府文書や企業文書を、外部の受取人が利用できるようにする
+
+## ヒント
+
+- `.xps`と`.oxps`の両方の拡張子が自動的に処理されるため、同じバッチに混在させることができます。
+- 元のXPSファイルが高解像度の印刷ドライバーで作成されていた場合、生成されるPDFもその品質を維持します。再サンプリングは行われません。
+
+## 関連ツール
+
+- [WordからPDF](./word-to-pdf)
+- [XMLからPDF](./xml-to-pdf)
diff --git a/docs/ko/contributing.md b/docs/ko/contributing.md
new file mode 100644
index 00000000..d6045265
--- /dev/null
+++ b/docs/ko/contributing.md
@@ -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
+```
+
+## 새 도구 추가하기
+
+### 1단계: 로직 파일 만들기
+
+`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
+});
+```
+
+### 2단계: HTML 페이지 만들기
+
+기존 도구 템플릿을 참고하여 `src/pages/your-tool.html`을 만드세요.
+
+### 3단계: 도구 등록하기
+
+`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.',
+}
+```
+
+### 4단계: 빌드 설정에 추가하기
+
+`vite.config.ts`에 페이지를 추가하세요:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### 5단계: 번역 추가하기
+
+`public/locales/`의 모든 로케일 파일에 항목을 추가하세요:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## 코드 스타일
+
+- 모든 새 코드는 TypeScript로 작성하세요
+- 일관성을 위해 기존 패턴을 따르세요
+- 커밋하기 전에 `npm run format`을 실행하세요
+- 프로덕션 코드에는 주석을 넣지 마세요 (주석은 빌드 중에 제거됩니다)
+
+## 풀 리퀘스트 절차
+
+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)
+
+## 도움 받기
+
+- [GitHub 이슈](https://github.com/alam00000/bentopdf/issues)
+- [Discord 커뮤니티](https://discord.gg/Bgq3Ay3f2w)
+
+## 라이선스
+
+BentoPDF는 듀얼 라이선스로 제공됩니다:
+
+- **AGPL-3.0**: 전체 소스 코드를 공개적으로 공유하는 오픈소스 프로젝트용
+- **상용 라이선스**: 독점/비공개 소스 애플리케이션용 - [평생 라이선스 $79에 구매하기](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+기여하면 기여한 내용이 위 조건에 따라 라이선스된다는 데 동의하는 것으로 간주됩니다.
diff --git a/docs/ko/getting-started.md b/docs/ko/getting-started.md
new file mode 100644
index 00000000..66ca312b
--- /dev/null
+++ b/docs/ko/getting-started.md
@@ -0,0 +1,80 @@
+# 시작하기
+
+BentoPDF에 오신 것을 환영합니다! 이 가이드로 빠르게 시작해 보세요.
+
+## BentoPDF란?
+
+BentoPDF는 **브라우저에서 전부 실행되는** 무료 오픈소스 개인정보 보호 중심 PDF 도구 모음입니다. 파일이 기기 밖으로 나가지 않으며, 모든 처리는 WebAssembly(WASM) 기술로 로컬에서 이루어집니다.
+
+## 빠른 시작
+
+### 옵션 1: 호스팅 버전 사용하기
+
+[bentopdf.com](https://www.bentopdf.com)에 접속하면 설치 없이 바로 BentoPDF를 사용할 수 있습니다.
+
+### 옵션 2: Docker로 직접 호스팅하기
+
+> [!IMPORTANT]
+> Office 파일 변환에는 `SharedArrayBuffer`가 필요하며, 다음이 모두 충족되어야 합니다:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - 보안 컨텍스트
+>
+> `http://localhost`는 브라우저가 루프백을 신뢰할 수 있는 주소로 취급하므로 로컬 테스트에서 작동합니다. `http://192.168.x.x` 같은 LAN 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 도구를 제공하며, 상용 빌드에는 bentopdf.com의 히어로, FAQ, 후기, 푸터가 추가됩니다. 잘 모르겠다면 셀프 호스팅 빌드를 사용하세요.
+
+그런 다음 브라우저에서 `http://localhost:3000`을 여세요.
+
+> [!NOTE]
+> 폐쇄망 OCR 배포를 준비한다면 Tesseract 워커, 코어 런타임, traineddata 파일 외에 OCR 텍스트 레이어 글꼴도 내부에서 호스팅해야 합니다. `VITE_OCR_FONT_BASE_URL`과 번들된 `ocr-fonts/` 디렉터리를 포함한 전체 설정은 [셀프 호스팅](/ko/self-hosting/)에 문서화되어 있습니다.
+
+### 옵션 3: 소스에서 빌드하기
+
+```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+
+
+## 다음 단계
+
+- [모든 도구 살펴보기](/ko/tools/)
+- [BentoPDF 직접 호스팅하기](/ko/self-hosting/)
+- [프로젝트에 기여하기](/ko/contributing)
diff --git a/docs/ko/index.md b/docs/ko/index.md
new file mode 100644
index 00000000..69316e84
--- /dev/null
+++ b/docs/ko/index.md
@@ -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: /ko/getting-started
+ - theme: alt
+ text: 도구 보기
+ link: /ko/tools/
+ - theme: alt
+ text: 직접 호스팅
+ link: /ko/self-hosting/
+ - theme: alt
+ text: 상용 라이선스
+ link: /ko/licensing
+
+features:
+ - icon: 🔒
+ title: 100% 개인정보 보호
+ details: 파일이 기기 밖으로 나가지 않습니다. 모든 처리는 WebAssembly를 사용해 브라우저에서 로컬로 이루어집니다.
+ - icon: ⚡
+ title: 빠르고 무료
+ details: 회원가입, 제한, 워터마크가 없습니다. 무제한으로 PDF를 영원히 무료로 처리하세요.
+ - icon: 🛠️
+ title: 50개 이상의 도구
+ details: 변환, 편집, 병합, 분할, 압축, 서명, OCR 등. 필요한 모든 것을 한곳에서.
+
+ - icon: 🌐
+ title: 직접 호스팅 가능
+ details: 자체 인프라에 배포하세요. Docker, Vercel, Netlify, AWS는 물론, 셀프 호스팅 OCR 워커, 언어 데이터, 텍스트 레이어 글꼴을 갖춘 완전 폐쇄망 환경까지 지원합니다.
+---
+
+## 오프라인 OCR
+
+폐쇄망이나 오프라인 환경에서 BentoPDF를 직접 호스팅하는 경우, OCR에는 Tesseract 워커와 traineddata 파일 외에도 필요한 것이 있습니다. 검색 가능한 PDF를 만들려면 OCR 텍스트 레이어 글꼴도 내부에서 제공해야 합니다.
+`VITE_OCR_FONT_BASE_URL`, 번들된 `ocr-fonts/` 디렉터리, 업데이트된 폐쇄망 워크플로를 포함한 전체 설정은 [셀프 호스팅](/ko/self-hosting/)을 참고하세요.
diff --git a/docs/ko/licensing.md b/docs/ko/licensing.md
new file mode 100644
index 00000000..bdfbb785
--- /dev/null
+++ b/docs/ko/licensing.md
@@ -0,0 +1,110 @@
+# 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](/ko/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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/ko/self-hosting/apache.md b/docs/ko/self-hosting/apache.md
new file mode 100644
index 00000000..e1e81a6a
--- /dev/null
+++ b/docs/ko/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Apache로 배포하기
+
+Apache HTTP Server로 BentoPDF를 호스팅하세요.
+
+## 사전 요구 사항
+
+- Apache 2.4+
+- mod_rewrite 활성화
+- SSL 인증서 (권장)
+
+## 1단계: 프로젝트 빌드
+
+```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
+```
+
+## 2단계: 파일 복사
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## 3단계: Apache 설정
+
+`/etc/apache2/sites-available/bentopdf.conf`를 만드세요:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## 4단계: 라우팅용 .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
+```
+
+## 5단계: 필요한 모듈 활성화
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## 6단계: 사이트 활성화
+
+```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
+```
+
+## 문제 해결
+
+### WASM 404 오류
+
+MIME 타입이 설정되어 있는지 확인하세요:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### PDF 서명 또는 Form Filler에 빈 뷰어가 표시됨 (`.mjs` MIME 오류)
+
+브라우저 콘솔에 다음과 같은 메시지가 표시되는 경우:
+
+```
+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 뷰어는 `.mjs` 확장자의 ES 모듈 파일을 포함하며, Apache 기본 `mime.types`에는 이 확장자가 들어 있지 않습니다.
+
+VirtualHost 또는 `.htaccess`에 다음을 추가하세요:
+
+```apache
+AddType application/javascript .mjs
+```
+
+그런 다음 Apache를 다시 로드하세요:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+확인하려면 브라우저 DevTools의 Network 탭에서 실패한 `.mjs` 요청을 찾아 `Content-Type` 응답 헤더를 확인하세요. 이제 `application/octet-stream`이 아니라 `application/javascript`여야 합니다.
+
+### Rewrite가 작동하지 않음
+
+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"
+```
+
+보안 컨텍스트도 필요합니다. `http://localhost`는 로컬 테스트에서 작동하지만, `http://192.168.x.x` 같은 LAN IP는 대체로 HTTPS가 필요합니다. 헤더가 있는데도 `window.crossOriginIsolated`가 계속 `false`라면, 페이지가 루프백이 아닌 origin에서 일반 HTTP로 열려 있는지 확인하세요.
+
+미리 압축된 `.wasm.gz` 및 `.data.gz` 파일에도 올바른 `Content-Encoding`이 필요합니다:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+`mod_headers`가 활성화되어 있는지 확인하세요: `sudo a2enmod headers`
+
+### 권한 거부
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/ko/self-hosting/aws.md b/docs/ko/self-hosting/aws.md
new file mode 100644
index 00000000..2c43dea1
--- /dev/null
+++ b/docs/ko/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# AWS S3 + CloudFront에 배포하기
+
+최대한의 제어와 확장성을 위해 AWS에서 BentoPDF를 호스팅하세요.
+
+## 아키텍처
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## 1단계: S3 버킷 만들기
+
+```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
+```
+
+## 2단계: 빌드 및 업로드
+
+```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
+```
+
+## 3단계: CloudFront 배포 만들기
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+또는 AWS 콘솔을 사용하세요:
+
+1. CloudFront → Create distribution으로 이동합니다
+2. Origin domain: S3 버킷을 선택합니다
+3. "Origin Access Control"을 활성화합니다
+4. Default root object: `index.html`
+5. 배포를 만듭니다
+
+## 3b단계: 응답 헤더 정책 (LibreOffice WASM에 필수)
+
+LibreOffice 기반 변환(Word, Excel, PowerPoint를 PDF로)에는 `SharedArrayBuffer`가 필요하며, 이를 위해 특정 응답 헤더가 필요합니다. CloudFront 응답 헤더 정책을 만드세요:
+
+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. 정책을 배포의 기본 캐시 동작에 연결합니다
+
+또는 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}
+ ]
+ }
+ }'
+```
+
+## 3c단계: 미리 압축된 WASM 파일의 S3 메타데이터
+
+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 변환이 약 55%에서 멈춥니다. `.gz` 파일에 올바른 Content-Encoding이 없으면 브라우저가 원시 gzip 바이트를 받게 되어 WASM 컴파일이 실패합니다.
+:::
+
+## 4단계: S3 버킷 정책
+
+CloudFront가 버킷에 접근할 수 있도록 허용합니다:
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## 5단계: 사용자 지정 오류 페이지
+
+SPA 라우팅을 위해 404가 `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"
+ }
+}
+```
diff --git a/docs/ko/self-hosting/cloudflare.md b/docs/ko/self-hosting/cloudflare.md
new file mode 100644
index 00000000..824c955f
--- /dev/null
+++ b/docs/ko/self-hosting/cloudflare.md
@@ -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 저장소를 연결합니다
+
+## 빌드 설정
+
+| 설정 | 값 |
+| ------------------ | --------------- |
+| 프레임워크 프리셋 | 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` | 기본 UI 언어, 예: `fr` (선택) |
+
+## 설정 파일
+
+`public` 폴더에 `_headers`를 만드세요:
+
+```
+# 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 중요
+Word/ODT/Excel/PowerPoint를 PDF로 변환하려면 `Cross-Origin-Embedder-Policy` 및 `Cross-Origin-Opener-Policy` 헤더가 필요합니다. 이 헤더가 없으면 `SharedArrayBuffer`를 사용할 수 없고 LibreOffice WASM 엔진이 초기화되지 못합니다.
+:::
+
+SPA 라우팅을 위해 `_redirects`를 만드세요:
+
+```
+/* /index.html 200
+```
+
+## 사용자 지정 도메인
+
+1. Pages 프로젝트로 이동합니다
+2. "Custom domains"를 클릭합니다
+3. 도메인을 추가합니다
+4. 도메인이 Cloudflare에 있으면 Cloudflare가 DNS를 자동으로 설정합니다
+
+## 장점
+
+- **무료 무제한 대역폭**
+- 300개 이상의 엣지 로케이션을 갖춘 **글로벌 CDN**
+- **자동 HTTPS**
+- 풀 리퀘스트용 **미리보기 배포**
+- **빠른 빌드**
+
+## 문제 해결
+
+### 대용량 파일 업로드
+
+Cloudflare Pages는 최대 25MB 파일을 지원합니다. WASM 모듈은 문제없겠지만 제한에 걸린다면 다음을 고려하세요:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Worker 크기 제한
+
+고급 라우팅에 Cloudflare Workers를 사용하는 경우, 무료 플랜에는 1MB 제한이 있다는 점에 유의하세요.
+
+## CORS 프록시 Worker (디지털 서명용)
+
+디지털 서명 도구는 인증서 체인을 가져오기 위해 CORS 프록시가 필요합니다. 포함된 worker를 배포하세요:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### 보안 기능
+
+| 기능 | 설명 |
+| ------------------ | ------------------------ |
+| **URL 제한** | 인증서 URL만 허용 |
+| **파일 크기 제한** | 요청당 최대 10MB |
+| **속도 제한** | IP당 분당 60회 (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)를 참고하세요.
diff --git a/docs/ko/self-hosting/cors-proxy.md b/docs/ko/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..4be25dcd
--- /dev/null
+++ b/docs/ko/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# 인증서 가져오기용 CORS 프록시
+
+디지털 서명 도구는 CORS 프록시를 사용해 외부 인증 기관(CA)에서 발급자 인증서를 가져옵니다. 많은 CA 서버가 응답에 CORS 헤더를 포함하지 않아 브라우저에서 직접 가져올 수 없기 때문입니다.
+
+또한 많은 CA 서버가 일반 HTTP로 인증서를 제공합니다. BentoPDF 인스턴스가 HTTPS로 호스팅되면 브라우저가 이러한 HTTP 요청을 차단합니다(혼합 콘텐츠 정책). CORS 프록시는 적절한 헤더를 붙인 HTTPS 엔드포인트를 거쳐 요청을 전달하여 두 문제를 모두 해결합니다.
+
+## 작동 방식
+
+인증서로 PDF에 서명할 때:
+
+1. `zgapdfsigner` 라이브러리가 전체 인증서 체인을 구성하려고 시도합니다
+2. 인증서의 AIA(Authority Information Access) 확장에 포함된 URL에서 발급자 인증서를 가져옵니다
+3. 이 요청은 필요한 `Access-Control-Allow-Origin` 헤더를 추가하는 CORS 프록시를 거칩니다
+4. 프록시가 인증서 데이터를 브라우저에 반환합니다
+
+## CORS 프록시 직접 호스팅하기
+
+BentoPDF를 직접 호스팅한다면, 체인 가져오기가 필요한 인증서로 디지털 서명이 작동하도록 자체 CORS 프록시를 배포해야 합니다.
+
+### 옵션 1: Cloudflare Workers (권장)
+
+1. **Wrangler CLI 설치**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Cloudflare에 로그인**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **BentoPDF를 클론하고 허용 origin 업데이트**:
+
+ ```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
+ ```
+
+ worker URL을 메모해 두세요 (예: `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **프록시 URL로 BentoPDF 다시 빌드**:
+
+ 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
+ ```
+
+### 옵션 2: 사용자 지정 백엔드 프록시
+
+자체 프록시 엔드포인트를 만들 수도 있습니다. 요구 사항은 다음과 같습니다:
+
+1. `url` 쿼리 매개변수가 있는 GET 요청을 받습니다
+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에는 여러 보안 장치가 있습니다:
+
+| 기능 | 설명 |
+| ----------------------- | --------------------------------------------------------------------------- |
+| **Origin 검증** | `ALLOWED_ORIGINS`에 나열된 도메인의 요청만 허용 |
+| **URL 제한** | 인증서 URL만 허용 (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **사설 IP 차단** | IPv4/IPv6 사설 대역, 링크 로컬, 루프백, 십진수 IP, 클라우드 메타데이터 차단 |
+| **Content-Type 안전성** | 안전한 인증서 MIME 타입만 반환하고, 업스트림 content-type 주입 차단 |
+| **파일 크기 제한** | 응답을 10MB 제한으로 스트리밍하며, 초과하면 다운로드 도중 중단 |
+| **속도 제한** | IP 또는 IPv6 /64당 분당 60회 (KV 필요, KV 오류 시 fail open) |
+| **HMAC 서명** | 선택적 클라이언트 측 서명 (단순한 악용 억제) |
+
+### DNS 리바인딩 (Cloudflare 외부에서 직접 호스팅하는 경우)
+
+worker는 사설 또는 내부 IP로 확인되는 모든 URL을 거부합니다. 인증서 체인 URL은 인증서를 발급한 CA(FNMT, 기업 CA 등)가 가리키는 곳 어디든 될 수 있어 미리 정해진 호스트 허용 목록을 쓸 수 없고, 목적지를 사전에 알 수 없습니다. 그래서 작은 리바인딩 틈이 남습니다. 자기 도메인의 DNS를 운영하는 누군가가 안전 검사에는 공개 IP를, 잠시 후의 실제 요청에는 사설 IP를 돌려줄 수 있습니다.
+
+Cloudflare에서는 악용할 수 없습니다. Workers는 사설 IP나 `169.254.169.254` 메타데이터 엔드포인트에 접근할 수 없으므로 리바인딩해도 아무것도 닿지 않습니다. 다만 worker에 진입 경로를 만들지 마세요. Tunnel, Service, 사설 네트워크 바인딩을 연결하지 마세요 (필요한 것은 `RATE_LIMIT_KV`뿐입니다).
+
+VPC 안에서 Cloudflare 외부(workerd, Node 등)로 실행하면 런타임이 내부 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 프록시가 origin을 거부함**: `cors-proxy-worker.js`의 `ALLOWED_ORIGINS` 배열에 도메인이 있는지 확인하세요
+
+### 프록시에서 "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
+- 전체 체인을 직접 조립한 인증서
diff --git a/docs/ko/self-hosting/docker.md b/docs/ko/self-hosting/docker.md
new file mode 100644
index 00000000..e3639138
--- /dev/null
+++ b/docs/ko/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Docker / Podman으로 배포하기
+
+프로덕션 환경에서 BentoPDF를 직접 호스팅하는 가장 쉬운 방법입니다.
+
+> [!IMPORTANT]
+> **Office 파일 변환에 필요한 헤더**
+>
+> LibreOffice 기반 도구(Word, Excel, PowerPoint 변환)는 `SharedArrayBuffer` 지원을 위해 다음 HTTP 헤더가 필요합니다:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> 페이지는 보안 컨텍스트에서 제공되어야 합니다. `http://localhost`는 로컬 테스트에서 작동하지만, `http://192.168.x.x` 같은 LAN IP는 대체로 해당되지 않으므로 헤더가 있어도 일반 HTTP로는 Office 변환이 실패합니다.
+>
+> 공식 컨테이너 이미지에는 이 헤더가 포함되어 있습니다. 리버스 프록시(Traefik, Caddy 등)를 사용한다면 이 헤더가 유지되거나 추가되도록 하고, 루프백이 아닌 접근에는 HTTPS를 사용하세요.
+
+> [!TIP]
+> **Podman 사용자:** 모든 `docker` 명령은 `docker`를 `podman`으로, `docker-compose`를 `podman-compose`로 바꾸면 Podman에서도 작동합니다.
+
+## 빠른 시작
+
+> [!TIP]
+> BentoPDF는 두 가지 빌드로 제공됩니다:
+>
+> - **셀프 호스팅 빌드**: `ghcr.io/alam00000/bentopdf-simple:latest`. 마케팅 요소(히어로, FAQ, 후기, 푸터)를 **제외한** 모든 PDF 도구를 제공합니다. 내부/팀/조직 배포에 사용하세요. 기능이 줄어든 "라이트" 버전이 **아닙니다**.
+> - **상용 빌드**: `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
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+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 마케팅 요소인 히어로, FAQ, 후기, 푸터를 숨깁니다). 모든 PDF 도구는 유지됩니다. | `false` |
+| `BASE_URL` | 하위 디렉터리에 배포 | `/` |
+| `VITE_WASM_PYMUPDF_URL` | PyMuPDF WASM 모듈 URL | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | Ghostscript WASM 모듈 URL | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | CoherentPDF WASM 모듈 URL | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | OCR 워커 스크립트 URL | _(비어 있음, Tesseract.js 기본 CDN 사용)_ |
+| `VITE_TESSERACT_CORE_URL` | OCR 코어 런타임 디렉터리 | _(비어 있음, Tesseract.js 기본 CDN 사용)_ |
+| `VITE_TESSERACT_LANG_URL` | OCR traineddata 디렉터리 | _(비어 있음, Tesseract.js 기본 CDN 사용)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | UI에 표시할 OCR 언어 (쉼표로 구분) | _(비어 있음, 전체 목록 표시)_ |
+| `VITE_OCR_FONT_BASE_URL` | OCR 텍스트 레이어 글꼴 디렉터리 | _(비어 있음, 원격 Noto 글꼴 URL 사용)_ |
+| `VITE_DEFAULT_LANGUAGE` | 기본 UI 언어 | `en` |
+| `VITE_BRAND_NAME` | 사용자 지정 브랜드 이름 | `BentoPDF` |
+| `VITE_BRAND_LOGO` | `public/` 기준 로고 경로 | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | 사용자 지정 푸터/저작권 텍스트 | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | 숨길 도구 ID (쉼표로 구분) | _(비어 있음, 모든 도구 활성화)_ |
+| `DISABLE_GITHUB_STARS` | 페이지 로드 시 GitHub 스타 수 가져오기를 건너뛰고 CSP에서 `api.github.com`을 제거합니다. Simple Mode 빌드는 항상 건너뜁니다. | `false` |
+| `SITE_URL` | canonical, hreflang, 사이트맵 링크에 기록되는 공개 URL입니다. 검색 엔진이 사용자의 배포를 독립된 사이트로 취급하길 원하지 않는다면 기본값으로 두세요. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | 사용자 지정 `SITE_URL`을 사용하면 모든 페이지가 `noindex`로 표시되어 사용자의 사본이 검색 결과에서 bentopdf.com과 경쟁하지 않습니다. 검색 엔진이 색인하도록 하려면 `true`로 설정하세요. | `false` |
+| `COMPRESSION_MODE` | 각 파일 옆에 저장할 사전 압축 사본: `o` 없음, `g` `.gz` (이미지의 nginx가 제공), `b` `.br`, `all` 둘 다. 이미지의 nginx는 `.br`을 제공할 수 없습니다. | `o` |
+
+WASM 모듈 URL에는 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 이미지에는 적용(enforcing) 모드의 `Content-Security-Policy` 헤더가 포함되어 있습니다. CSP의 `script-src`, `connect-src`, `font-src` 지시어는 위의 `VITE_*` URL 변수로부터 **빌드 시점에 생성**됩니다. `--build-arg`로 전달하는 호스트는 자동으로 정책에 추가됩니다.
+
+그 결과:
+
+- 빌드 시 `VITE_CORS_PROXY_URL` 또는 `VITE_WASM_*_URL`을 덮어쓰면 CSP가 해당 origin을 자동으로 허용합니다. 별도 설정이 필요 없습니다.
+- `cdn.jsdelivr.net`의 URL에 대해 `script-src`는 전체 CDN이 아니라 버전이 명시된 정확한 패키지 폴더만 허용합니다. 예: `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`. jsDelivr는 모든 공개 npm 패키지와 GitHub 저장소를 제공하므로 호스트 전체를 허용하면 그 어떤 것도 사용자의 인스턴스에서 실행될 수 있기 때문입니다. 다른 호스트의 URL은 origin 단위로 허용됩니다.
+- 앱 내 고급 설정 페이지에서 _런타임에_ 사용자 지정 WASM URL을 설정하면 해당 origin은 CSP에 **포함되지 않으며** 브라우저가 해당 가져오기를 차단합니다. `cdn.jsdelivr.net`의 같은 패키지라도 다른 버전이면 마찬가지인데, 빌드 시 설정한 버전만 허용되기 때문입니다. 런타임 설정은 실험용입니다. 영구적인 사용자 지정 URL은 해당 `VITE_*` 빌드 인수를 설정하세요.
+- 세 가지 `VITE_WASM_*_URL` 값을 모두 덮어쓰는 폐쇄망 배포는 해당 `cdn.jsdelivr.net` 패키지 폴더도 CSP에서 제거됩니다 (각 기본값은 추가되는 것이 아니라 대체됩니다). `cdn.jsdelivr.net`의 Tesseract OCR 기본값은 `VITE_TESSERACT_*` 세 값도 설정하기 전까지 정책에 남습니다. 마찬가지로 `VITE_CORS_PROXY_URL`을 설정하면 공개 `bentopdf-cors-proxy.bentopdf.workers.dev` 기본값이 대체됩니다.
+
+CSP의 `script-src`에는 `'unsafe-eval'`이 포함되어 있습니다. 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을 쓰려면 세 가지를 함께 설정하세요. 워커, 코어 런타임, traineddata 디렉터리가 서로 일치해야 하므로 일부만 덮어쓰는 것은 거부됩니다. 완전히 오프라인으로 검색 가능한 PDF를 만들려면 `VITE_OCR_FONT_BASE_URL`도 설정하여 OCR 텍스트 레이어 글꼴을 공개 Noto 글꼴 URL 대신 내부 서버에서 불러오도록 하세요.
+
+`VITE_DEFAULT_LANGUAGE`는 처음 방문하는 사용자의 UI 언어를 설정합니다. 지원되는 값: `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 모두에서 작동하며 다른 모든 빌드 시점 옵션과 함께 사용할 수 있습니다.
+
+### 특정 도구 비활성화
+
+규정 준수나 보안 요구 사항에 따라 UI에서 도구를 숨길 수 있습니다. 비활성화된 도구는 홈페이지, 검색 결과, 키보드 단축키, 워크플로 빌더에서 제거됩니다. URL로 직접 접근하면 "도구를 사용할 수 없음" 페이지가 표시됩니다.
+
+도구 ID는 `.html`을 뺀 페이지 URL입니다. 예를 들어 도구가 `bentopdf.com/edit-pdf.html`에 있다면 ID는 `edit-pdf`입니다.
+
+#### 도구 ID 찾기
+
+가장 쉬운 방법: BentoPDF에서 아무 도구나 열고 URL을 보세요. 경로의 마지막 부분(`.html` 제외)이 도구 ID입니다.
+
+
+전체 도구 ID 목록
+
+**편집 및 주석:** `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`
+
+
+
+#### 옵션 1: 빌드 시점 (Docker 빌드 인수)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+비활성화 목록이 JavaScript 번들에 포함됩니다. 변경하려면 다시 빌드해야 합니다.
+
+#### 옵션 2: 런타임 (config.json)
+
+제공되는 디렉터리에 `config.json` 파일을 마운트하세요. 다시 빌드할 필요가 없습니다:
+
+```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 에디터 내부의 특정 기능(예: 교정, 주석, 양식)만 비활성화할 수도 있습니다. `config.json`에 `editorDisabledCategories`를 추가하세요:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+전체 에디터 카테고리 목록
+
+**확대/축소:** `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`
+
+**측정:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**양식:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**교정(Redaction):** `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`, `organize`
+
+**선택:** `selection`, `selection-copy`
+
+**기록:** `history`, `history-undo`, `history-redo`
+
+
+
+카테고리는 계층 구조입니다. 상위 항목(예: `annotation`)을 비활성화하면 모든 하위 항목도 비활성화됩니다.
+
+### GitHub 스타 카운터 비활성화
+
+내비게이션 바에는 페이지 로드 시 `api.github.com`에서 가져오는 실시간 GitHub 스타 수가 표시됩니다. PDF 기능과 무관한 유일한 외부 요청입니다. 빌드 시 비활성화하면 번들에서 가져오기 코드가 제거되고 Content-Security-Policy에서 `api.github.com`이 제거됩니다:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Simple Mode 빌드(`bentopdf-simple`)는 항상 스타 카운터를 건너뜁니다. 이 플래그는 상용 빌드나 사용자 지정 전체 빌드에서만 필요합니다.
+
+### 사용자 지정 WASM URL (폐쇄망 / 직접 호스팅)
+
+> [!IMPORTANT]
+> WASM URL은 **빌드 시점**에 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 `으로 이름을 검색하세요. 제한된 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 Dockerfile 모두에서 작동합니다.
+
+## 사용자 지정 사용자 ID (PUID/PGID)
+
+특정 비루트 사용자로 실행해야 하는 환경(NAS 기기, 보안 컨텍스트가 있는 Kubernetes, 조직 정책 등)을 위해 BentoPDF는 LSIO 방식의 PUID/PGID를 지원하는 별도의 Dockerfile을 제공합니다.
+
+### 빌드 및 실행
+
+```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` | 실행할 사용자 ID | `1000` |
+| `PGID` | 실행할 그룹 ID | `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)일 수 없습니다. 엔트리포인트가 입력을 검증하고 잘못된 값이면 오류와 함께 종료합니다.
+
+## 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 서비스로 실행할 수 있습니다. 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]
+> 시스템 전체 배포에는 `--user` 플래그 없이 `systemctl`을 사용하고 파일을 `/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
+```
diff --git a/docs/ko/self-hosting/hostinger.md b/docs/ko/self-hosting/hostinger.md
new file mode 100644
index 00000000..3ab1c70d
--- /dev/null
+++ b/docs/ko/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Hostinger에 배포하기
+
+[Hostinger](https://hostinger.com)는 인기 있는 공유 호스팅 제공업체입니다. 이 가이드는 Hostinger 공유 호스팅에 BentoPDF를 배포하는 방법을 다룹니다.
+
+## 사전 요구 사항
+
+- 파일 관리자에 접근할 수 있는 Hostinger 호스팅 플랜
+- 빌드를 위해 로컬에 설치된 Node.js
+
+## 1단계: 프로젝트 빌드
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+빌드된 파일은 `dist` 폴더에 있습니다.
+
+## 2단계: Hostinger에 업로드
+
+### 루트 도메인 배포
+
+1. Hostinger 계정에 로그인합니다
+2. **File Manager** → **public_html**로 이동합니다
+3. 기존 파일을 모두 **삭제**합니다 (필요하면 백업하세요)
+4. 로컬 `dist` 폴더의 모든 내용을 `public_html`에 **업로드**합니다
+
+### 하위 디렉터리 배포
+
+하위 디렉터리(예: `yourdomain.com/pdf-tools/`)에 배포하는 경우:
+
+1. 올바른 기본 URL로 빌드합니다:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Hostinger에서 폴더를 만듭니다:
+ - **File Manager** → **public_html**로 이동합니다
+ - 새 폴더를 만듭니다: `pdf-tools`
+3. `dist`의 모든 내용을 `public_html/pdf-tools/`에 업로드합니다
+
+## 3단계: .htaccess 파일 만들기
+
+배포 폴더의 루트(`public_html` 또는 `public_html/pdf-tools/`)에 `.htaccess` 파일을 만드세요:
+
+::: warning 중요
+하위 디렉터리에 배포하는 경우 `RewriteBase /`를 `RewriteBase /pdf-tools/`(또는 사용하는 폴더 이름)로 변경하세요.
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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 파일이 로드되지 않음
+
+`.htaccess`에 MIME 타입이 올바르게 설정되어 있는지 확인하세요:
+
+```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는 SPA 라우팅이 아니라 정적 HTML 파일을 사용합니다:
+
+```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 파일을 따로 업로드하세요.
diff --git a/docs/ko/self-hosting/index.md b/docs/ko/self-hosting/index.md
new file mode 100644
index 00000000..d942ee68
--- /dev/null
+++ b/docs/ko/self-hosting/index.md
@@ -0,0 +1,538 @@
+# 셀프 호스팅 가이드
+
+BentoPDF는 자체 인프라에서 셀프 호스팅할 수 있습니다. 이 가이드는 다양한 배포 옵션을 다룹니다.
+
+## Docker / Podman으로 빠르게 시작하기
+
+BentoPDF를 셀프 호스팅하는 가장 빠른 방법입니다.
+
+> [!TIP]
+> BentoPDF는 두 가지 빌드로 제공됩니다.
+>
+> - **셀프 호스팅 빌드**: `ghcr.io/alam00000/bentopdf-simple:latest`. 마케팅 요소(히어로, FAQ, 후기, 푸터)를 **제외한** 모든 PDF 도구를 제공합니다. 내부/팀/조직 배포에 사용하세요. 기능이 줄어든 "라이트" 버전이 **아닙니다**.
+> - **상업용 빌드**: `ghcr.io/alam00000/bentopdf:latest`. 전체 마케팅 사이트를 포함하며 bentopdf.com 자체와, 공개 서비스를 운영하는 상업용 라이선스 보유자가 사용합니다.
+>
+> 잘 모르겠다면 셀프 호스팅 빌드를 받으세요.
+
+> [!IMPORTANT]
+> Office 파일 변환에는 `SharedArrayBuffer`가 필요하며, 이를 위해 앱이 교차 출처 격리되어 있고 보안 컨텍스트에서 제공되어야 합니다. 공식 이미지는 필요한 COOP/COEP 헤더를 이미 전송하지만, `http://192.168.x.x` 같은 일반 HTTP 로컬 네트워크 출처에서는 브라우저가 여전히 `SharedArrayBuffer`를 비활성화합니다.
+>
+> `http://localhost`는 같은 기기에서 테스트할 때만 사용하세요. 사용자가 LAN 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 배포 가이드](/ko/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 기능은 제거되지 않습니다):
+
+- 탐색 모음, 히어로 섹션, 기능 섹션, FAQ, 후기, 푸터
+- 페이지 제목을 "PDF 도구"로 변경
+
+**셀프 호스팅 빌드가 유지하는 것** (실제 PDF 작업을 수행하는 모든 것):
+
+- 모든 PDF 도구 (병합, 분할, 편집, 서명, OCR, Office 변환 등)
+- 사용자 지정 브랜딩 지원, 모든 빌드 시점 및 런타임 구성
+
+상업용 빌드(`ghcr.io/alam00000/bentopdf:latest`)는 bentopdf.com 자체를 구동하며 공개 서비스를 운영하는 상업용 라이선스 보유자가 사용합니다. 내부 도구에는 어울리지 않는 히어로, FAQ, 후기, 푸터가 추가됩니다.
+
+팀, 조직 또는 내부 도구로 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 도구에 더해 전체 마케팅 사이트(히어로, 기능, FAQ, 후기, 푸터)를 포함합니다. **자체 브랜드로 BentoPDF를 공개 PDF 서비스로 배포**하려는 경우에 이 빌드를 사용하세요. 예를 들면 다음과 같습니다.
+
+- 자체 도메인에서 최종 사용자를 위한 호스팅 SaaS로 BentoPDF를 운영하는 경우
+- 도구 화면만이 아니라 랜딩 페이지 경험(마케팅 섹션 + 도구)을 원하는 경우
+- 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`, WASM URL 재정의 등)은 셀프 호스팅 빌드와 같은 방식으로 작동합니다.
+
+::: warning 라이선스
+상업용 빌드는 BentoPDF의 두 가지 라이선스 옵션 중 어느 쪽으로든 실행할 수 있습니다.
+
+- **AGPL-3.0** (무료): 브랜딩 수정과 주변 비즈니스 로직을 포함한 전체 소스 코드를 AGPL로 공개하는 배포에서 허용됩니다.
+- **상업용 라이선스** ($79 평생): 브랜딩 포크나 비즈니스 코드를 오픈소스로 공개하지 않는 비공개/독점 배포에 필요합니다.
+
+전체 비교는 [라이선스 페이지](https://www.bentopdf.com/licensing)를 참고하세요. AGPL 라이선스의 WASM 모듈(PyMuPDF, Ghostscript, CoherentPDF)은 런타임에 CDN에서 로드되므로 이미지에 포함되지 않으며 라이선스 상태에 영향을 주지 않습니다.
+:::
+
+### Base 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 접근에서 제거됩니다.
+
+도구 ID는 `.html`을 뺀 페이지 URL입니다. 아무 도구나 열어 URL을 확인하세요(예: `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**빌드 시점** (번들에 포함됨):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**런타임** (재빌드 불필요, `config.json`을 마운트):
+
+```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
+```
+
+두 방법을 함께 사용할 수 있으며 목록이 병합됩니다.
+
+`config.json`에 `editorDisabledCategories`를 추가하면 도구 전체를 비활성화하지 않고 PDF 편집기 내부의 특정 기능(예: 교정)만 비활성화할 수도 있습니다. 전체 카테고리 목록은 [Docker 가이드](/ko/self-hosting/docker#에디터-기능-비활성화)를 참고하세요.
+
+## 배포 가이드
+
+플랫폼을 선택하세요.
+
+- [Vercel](/ko/self-hosting/vercel)
+- [Netlify](/ko/self-hosting/netlify)
+- [Cloudflare Pages](/ko/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/ko/self-hosting/aws)
+- [Hostinger](/ko/self-hosting/hostinger)
+- [Nginx](/ko/self-hosting/nginx)
+- [Apache](/ko/self-hosting/apache)
+- [Docker](/ko/self-hosting/docker)
+- [Kubernetes](/ko/self-hosting/kubernetes)
+- [CORS 프록시](/ko/self-hosting/cors-proxy) - 디지털 서명에 필요
+
+## 자주 발생하는 문제
+
+### Word / ODT / Excel / PowerPoint를 PDF로 변환이 멈춤 (SharedArrayBuffer 사용 불가)
+
+**증상**: LibreOffice 기반 문서 변환(Word, ODT, Excel, PowerPoint를 PDF로)이 약 55%에서 멈추거나 시작되지 않습니다. 브라우저 콘솔에 다음이 표시될 수 있습니다.
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+...또는 `window.crossOriginIsolated`가 `false`로 보고되거나, WASM 컴파일이 `expected magic word 00 61 73 6d, found 1f 8b 08 08`을 보고합니다.
+
+**원인**: LibreOffice WASM에는 `SharedArrayBuffer`가 필요하며, 브라우저는 페이지가 **교차 출처 격리**되어 있고 **보안 컨텍스트**에서 제공될 때만 이를 활성화합니다. 즉 두 가지가 모두 충족되어야 합니다.
+
+1. 모든 응답에 다음 두 헤더가 포함되어야 합니다.
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. 페이지가 `https://...` 또는 `http://localhost`에서 제공되어야 합니다. LAN IP의 일반 HTTP(예: `http://192.168.x.x`)는 보안 컨텍스트로 인정되지 않으며, 브라우저가 `SharedArrayBuffer`를 비활성화합니다.
+
+`00 61 73 6d / 1f 8b 08 08` 불일치는 별도의 하위 증상입니다. 미리 압축된 `.wasm.gz` / `.data.gz` 파일에 `Content-Encoding: gzip` 응답 헤더가 없어서 브라우저가 압축 해제된 WASM이 아닌 원시 gzip 바이트를 받는 것입니다.
+
+**해결**: 정확한 설정은 플랫폼별 배포 가이드를 참고하세요.
+
+- [Nginx →](/ko/self-hosting/nginx#word-odt-excel을-pdf로-변환이-작동하지-않음)
+- [Apache →](/ko/self-hosting/apache#word-odt-excel을-pdf로-변환이-작동하지-않음)
+- [AWS S3 + CloudFront →](/ko/self-hosting/aws#_3b단계-응답-헤더-정책-libreoffice-wasm에-필수)
+- [Cloudflare Pages →](/ko/self-hosting/cloudflare#설정-파일) (`_headers` 파일)
+- [Netlify →](/ko/self-hosting/netlify#word-odt-excel을-pdf로-변환이-55-에서-멈춤) (`netlify.toml`)
+- [Vercel →](/ko/self-hosting/vercel#word-odt-excel을-pdf로-변환이-작동하지-않음) (`vercel.json`)
+- [Hostinger →](/ko/self-hosting/hostinger#libreoffice-도구가-작동하지-않음) (`.htaccess`)
+- [Kubernetes →](/ko/self-hosting/kubernetes#sharedarraybuffer-헤더가-계속-작동하는지-확인-ingress-gateway)
+- **Docker**: 번들된 nginx 설정이 자동으로 처리하므로 별도 조치가 필요 없습니다.
+
+**확인**: 아무 BentoPDF 페이지에서 DevTools 콘솔을 열고 다음을 실행하세요.
+
+```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 출처라면 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.`
+
+**원인**: 웹 서버나 리버스 프록시에 `.mjs` 파일의 MIME 타입 매핑이 없습니다(내장 PDF 뷰어는 이 확장자의 ES 모듈을 포함합니다). 많은 기본 서버 설정은 인식하지 못하는 확장자를 `application/octet-stream`으로 처리하며, 브라우저는 이를 ES 모듈로 실행하지 않습니다.
+
+**해결**: 정확한 스니펫은 플랫폼별 배포 가이드를 참고하세요.
+
+- [Nginx →](/ko/self-hosting/nginx#pdf-서명-또는-양식-작성기에-빈-뷰어가-표시됨-mjs-mime-오류)
+- [Apache →](/ko/self-hosting/apache#pdf-서명-또는-form-filler에-빈-뷰어가-표시됨-mjs-mime-오류)
+- [AWS S3 + CloudFront →](/ko/self-hosting/aws#_2단계-빌드-및-업로드) (`aws s3 cp ... --include "*.mjs"` 참고)
+- [Kubernetes →](/ko/self-hosting/kubernetes#mjs-mime-타입-오류-pdf-서명-양식-작성기-iframe이-비어-있음)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: 자동으로 처리되므로 별도 조치가 필요 없습니다.
+
+**확인**: DevTools → Network 탭을 열어 실패한 `.mjs` 요청을 찾고 `Content-Type` 응답 헤더를 확인하세요. `application/javascript`여야 합니다. 여전히 `application/octet-stream`이라면 바깥쪽 리버스 프록시나 CDN이 타입을 다시 판별하고 있을 수 있으니, 서비스 경로의 각 계층을 확인하세요.
+
+## WASM 구성 (AGPL 구성 요소)
+
+BentoPDF는 AGPL 라이선스 처리 라이브러리를 소스 코드에 **번들하지 않지만**, 모든 기능이 바로 작동하도록 **CDN URL을 미리 구성**해 둡니다. 수동 설정이 필요 없습니다.
+
+::: tip 기본 제로 설정
+v2.0.0부터 WASM 모듈은 환경 변수를 통해 jsDelivr CDN에서 로드되도록 미리 구성되어 있습니다. 모든 고급 기능이 사용자 설정 없이 바로 작동합니다.
+:::
+
+| 구성 요소 | 라이선스 | 기능 |
+| --------------- | -------- | -------------------------------------------- |
+| **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=
+```
+
+### WASM URL 재정의
+
+사용자 지정 배포를 위해 빌드 시점에 기본값을 재정의할 수 있습니다.
+
+```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_*` 변수를 비워 두고 기본 온라인 에셋을 사용하거나, 셀프 호스팅/오프라인 OCR을 위해 worker/core/lang URL을 함께 설정하세요. 특정 OCR 언어만 번들한다면 `VITE_TESSERACT_AVAILABLE_LANGUAGES`에도 같은 쉼표 구분 코드를 설정하세요. 그러면 UI가 설치된 언어만 제공하고, 지원되지 않는 선택은 설명이 포함된 오류로 실패합니다. 완전 오프라인으로 검색 가능한 PDF를 출력하려면 번들된 OCR 글꼴을 제공하는 내부 디렉터리를 `VITE_OCR_FONT_BASE_URL`로 설정하세요.
+
+사용자는 UI의 **고급 설정**에서 언제든지 이 기본값을 재정의할 수도 있습니다. 브라우저에 저장된 사용자 재정의가 환경 기본값보다 우선합니다.
+
+### 폐쇄망 / 오프라인 배포
+
+인터넷에 접속할 수 없는 네트워크(정부, 의료, 금융 등)를 위한 방법입니다. WASM URL은 **빌드 시점**에 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 ` | WASM을 내부적으로 호스팅할 위치 | _(필수, 없으면 입력 요청)_ |
+| `--image-name ` | Docker 이미지 태그 | `bentopdf` |
+| `--output-dir ` | 출력 번들 디렉터리 | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Simple Mode 활성화 | off |
+| `--base-url ` | 하위 디렉터리 기본 URL (예: `/pdf/`) | `/` |
+| `--language ` | 기본 UI 언어 (예: `fr`, `de`) | _(없음)_ |
+| `--brand-name ` | 사용자 지정 브랜드 이름 | _(없음)_ |
+| `--brand-logo ` | `public/` 기준 로고 경로 | _(없음)_ |
+| `--footer-text ` | 사용자 지정 푸터 텍스트 | _(없음)_ |
+| `--ocr-languages ` | 번들할 OCR 언어(쉼표로 구분) | `eng` |
+| `--list-ocr-languages` | 지원되는 OCR 코드와 이름을 출력하고 종료 | off |
+| `--search-ocr-language ` | 이름이나 약어로 OCR 코드 검색 | off |
+| `--dockerfile ` | 사용할 Dockerfile | `Dockerfile` |
+| `--skip-docker` | Docker 빌드와 내보내기 건너뛰기 | off |
+| `--skip-wasm` | WASM 다운로드 건너뛰기 (기존 `.tgz` 파일 재사용) | off |
+
+대화형 프롬프트에서도 `list`를 입력하면 지원되는 전체 Tesseract 코드 목록을 출력하고, `search `을 입력하면 `search german`이나 `search chi` 같은 일치 항목을 찾을 수 있습니다.
+
+::: warning 동일 출처 요구 사항
+WASM 파일은 BentoPDF 앱과 **같은 출처**에서 제공되어야 합니다. 웹 워커는 다른 출처의 스크립트를 로드할 수 없는 `importScripts()`를 사용합니다. 예를 들어 BentoPDF가 `https://internal.example.com`에서 실행된다면 WASM 기본 URL도 `https://internal.example.com/wasm`이어야 합니다.
+:::
+
+#### 수동 단계
+
+
+스크립트 없이 직접 진행하려는 경우
+
+**1단계: 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
+```
+
+**2단계: 내부 URL로 Docker 이미지 빌드**
+
+```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 .
+```
+
+**3단계: Docker 이미지 내보내기**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**4단계: 폐쇄망으로 전송**
+
+USB, 내부 아티팩트 저장소 또는 승인된 전송 방법으로 다음을 복사합니다.
+
+- `bentopdf.tar`: Docker 이미지
+- 1단계의 `.tgz` WASM/OCR 패키지 다섯 개
+- 1단계의 `tesseract-langdata/` 디렉터리
+- 1단계의 `ocr-fonts/` 디렉터리
+
+**5단계: 폐쇄망 안에서 설정**
+
+```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
+```
+
+`.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data`, `.../ocr/fonts`를 포함해 2단계에서 구성한 URL로 파일에 접근할 수 있는지 확인하세요.
+
+
+
+::: 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 프록시 호스팅
+
+적절한 CORS 헤더와 함께 AGPL WASM 파일을 제공해야 한다면 간단한 프록시를 배포할 수 있습니다. 구현 예시는 [Cloudflare WASM Proxy 가이드](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md)를 참고하세요.
+
+::: tip 왜 분리했나요?
+이렇게 분리하면 다음이 보장됩니다.
+
+- 상업용 사용자를 위한 명확한 법적 준수
+- BentoPDF 코어가 듀얼 라이선스(AGPL-3.0 / 상업용)를 유지
+- WASM 파일은 소스에 번들되지 않고 런타임에 로드됨
+ :::
+
+## 시스템 요구 사항
+
+| 요구 사항 | 최소 사양 |
+| --------- | ------------------------------- |
+| 저장 공간 | 약 100 MB (AGPL 모듈 제외 코어) |
+| RAM | 512 MB |
+| CPU | 최신 프로세서 아무거나 |
+
+::: tip
+BentoPDF는 정적 사이트이므로 데이터베이스나 백엔드 서버가 필요 없습니다!
+:::
diff --git a/docs/ko/self-hosting/kubernetes.md b/docs/ko/self-hosting/kubernetes.md
new file mode 100644
index 00000000..3ce90fed
--- /dev/null
+++ b/docs/ko/self-hosting/kubernetes.md
@@ -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`
+>
+> 공식 BentoPDF nginx 이미지에는 이 헤더가 포함되어 있습니다. Kubernetes에서는 **Ingress/Gateway 컨트롤러도 리버스 프록시**이므로 이 헤더가 유지되는지 확인하거나 엣지에서 추가하세요.
+
+## 사전 준비
+
+- Kubernetes 클러스터
+- Helm v3
+- **8080 포트**로 서비스하는 BentoPDF nginx 이미지 (예: `ghcr.io/alam00000/bentopdf:`)
+
+## 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=""
+
+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
+```
+
+## 외부에 노출하기
+
+### 포트 포워딩 (빠른 테스트)
+
+```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 API의 `Gateway`와 `HTTPRoute`를 지원합니다.
+
+예시 (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)
+
+### 정상적으로 일어나야 하는 일
+
+BentoPDF의 nginx 설정이 필요한 응답 헤더를 설정합니다. 대부분의 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;
+```
+
+## `.mjs` MIME 타입 오류 (PDF 서명 / 양식 작성기 iframe이 비어 있음)
+
+브라우저 콘솔에 `.mjs` 요청에 대해 `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"`이 표시되면, BentoPDF nginx 앞단의 Ingress/Gateway 컨트롤러가 업스트림 `Content-Type` 헤더를 `application/octet-stream`으로 바꾸고 있는 것입니다.
+
+BentoPDF 이미지의 nginx는 이미 `.mjs`를 `application/javascript`로 제공합니다. 해결 방법은 컨트롤러가 이를 제거하거나 바꾸지 못하게 하는 것입니다. nginx-ingress의 경우:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+또는 Gateway API의 `ResponseHeaderModifier` 필터를 사용해 `.mjs` 경로에 `Content-Type: application/javascript`를 설정할 수 있습니다. 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"]
+ }
+```
+
+서비스되는 디렉터리에 마운트합니다.
+
+```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
+```
+
+도구 ID는 `.html`을 뺀 페이지 URL입니다. 아무 도구나 열어 URL을 확인하세요(예: `edit-pdf`, `merge-pdf`, `compress-pdf`). 비활성화된 도구는 홈페이지, 검색, 단축키, 워크플로 빌더, 직접 URL 접근에서 숨겨집니다. 전체 옵션 목록은 [Docker 가이드](/ko/self-hosting/docker#특정-도구-비활성화)를 참고하세요.
diff --git a/docs/ko/self-hosting/netlify.md b/docs/ko/self-hosting/netlify.md
new file mode 100644
index 00000000..5d928f1d
--- /dev/null
+++ b/docs/ko/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Netlify에 배포하기
+
+[Netlify](https://netlify.com)는 넉넉한 무료 요금제와 함께 훌륭한 정적 사이트 호스팅을 제공합니다.
+
+## 원클릭 배포
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## 수동 배포
+
+### 1단계: 저장소 연결
+
+1. [Netlify](https://app.netlify.com)에 로그인합니다
+2. "Add new site" → "Import an existing project"를 클릭합니다
+3. GitHub 계정을 연결합니다
+4. BentoPDF 포크를 선택합니다
+
+### 2단계: 빌드 설정 구성
+
+| 설정 | 값 |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### 3단계: 배포
+
+"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 중요
+Word/ODT/Excel/PowerPoint를 PDF로 변환하려면 `Cross-Origin-Embedder-Policy` 및 `Cross-Origin-Opener-Policy` 헤더가 필요합니다. 이 헤더가 없으면 `SharedArrayBuffer`를 사용할 수 없어 LibreOffice WASM 엔진이 초기화되지 못합니다.
+
+`.wasm.gz` 및 `.data.gz` 파일의 `Content-Encoding: gzip` 헤더는 브라우저가 자동으로 압축을 풀도록 알려 줍니다. 이 헤더가 없으면 브라우저가 원시 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` | 기본 UI 언어 (예: `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로 변환이 55%에서 멈춤
+
+문서 변환이 55%에서 멈추면 DevTools 콘솔을 열고 다음을 확인하세요.
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+`crossOriginIsolated`가 `false`이면 `netlify.toml`의 COEP/COOP 헤더가 적용되지 않은 것입니다. 파일이 프로젝트 루트에 있는지 확인하고 다시 배포하세요.
+
+콘솔에 `expected magic word 00 61 73 6d, found 1f 8b 08 08`이 표시되면 `.wasm.gz` 파일에 `Content-Encoding: gzip` 헤더가 빠진 것입니다. `soffice.wasm.gz`와 `soffice.data.gz`용 `[[headers]]` 블록이 `netlify.toml`에 있는지 확인하세요.
+
+### 빌드 실패
+
+Node 버전 호환성을 확인하세요.
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### 첫 로딩이 느림
+
+Site settings → Build & deploy → Asset optimization에서 에셋 최적화를 활성화하세요.
diff --git a/docs/ko/self-hosting/nginx.md b/docs/ko/self-hosting/nginx.md
new file mode 100644
index 00000000..cd49f823
--- /dev/null
+++ b/docs/ko/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Nginx로 배포하기
+
+Nginx를 사용해 자체 서버에서 BentoPDF를 호스팅합니다.
+
+## 사전 요구 사항
+
+- Ubuntu/Debian 서버
+- Nginx 설치
+- SSL 인증서 (권장: Let's Encrypt)
+
+## 1단계: 프로젝트 빌드
+
+```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
+```
+
+## 2단계: 파일 복사
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## 3단계: 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;
+ }
+}
+```
+
+## 4단계: 사이트 활성화
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## 5단계: Let's Encrypt로 SSL 설정
+
+```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 서명 또는 양식 작성기에 빈 뷰어가 표시됨 (`.mjs` MIME 오류)
+
+브라우저 콘솔에 다음이 표시되는 경우:
+
+```
+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 서명, 양식 작성기 및 일부 다른 도구에서 사용)는 `.mjs` 확장자의 ES 모듈 파일을 포함하는데, nginx의 기본 `mime.types`에는 이 확장자가 들어 있지 않습니다.
+
+`/etc/nginx/mime.types`의 기존 `application/javascript` 줄에 `mjs`를 추가해 해결합니다.
+
+```nginx
+application/javascript js mjs;
+```
+
+> `application/javascript` 줄을 _두 번째로_ 추가하지 마세요. nginx는 `mime.types`를 한 줄씩 파싱하며 타입과 확장자의 매핑은 하나만 적용되므로, 일부 버전에서는 두 번째 줄이 조용히 무시됩니다. 기존 줄을 수정해 `js` 옆에 `mjs`를 추가하세요.
+
+또는 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/octet-stream`이 아니라 `application/javascript`여야 합니다.
+
+### Word/ODT/Excel을 PDF로 변환이 작동하지 않음
+
+LibreOffice WASM에는 `SharedArrayBuffer`가 필요하며, 이를 위해 `Cross-Origin-Embedder-Policy` 및 `Cross-Origin-Opener-Policy` 헤더가 필요합니다. 보안 컨텍스트도 필요하므로 `http://localhost`는 로컬 테스트에서 작동하지만 `http://192.168.x.x` 같은 LAN IP는 보통 HTTPS가 필요합니다. `location` 블록의 nginx `add_header` 지시문은 server 수준 `add_header` 지시문을 병합하지 않고 **덮어씁니다**. 자체 `add_header`가 있는 모든 `location` 블록에는 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
+```
diff --git a/docs/ko/self-hosting/vercel.md b/docs/ko/self-hosting/vercel.md
new file mode 100644
index 00000000..b613afdd
--- /dev/null
+++ b/docs/ko/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Vercel에 배포하기
+
+[Vercel](https://vercel.com)은 정적 사이트를 가장 쉽게 배포할 수 있는 환경을 제공합니다.
+
+## 원클릭 배포
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## 수동 배포
+
+### 1단계: 저장소 포크
+
+[bentopdf/bentopdf](https://github.com/alam00000/bentopdf)를 GitHub 계정으로 포크합니다.
+
+### 2단계: 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` |
+
+### 3단계: 환경 변수 (선택 사항)
+
+필요한 경우 다음을 추가합니다.
+
+| 변수 | 설명 |
+| ----------------------- | --------------------------------------------------- |
+| `SIMPLE_MODE` | 최소 UI를 사용하려면 `true`로 설정 |
+| `VITE_BRAND_NAME` | 사용자 지정 브랜드 이름 ("BentoPDF" 대체) |
+| `VITE_BRAND_LOGO` | `public/` 기준 로고 경로 (예: `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | 사용자 지정 바닥글/저작권 텍스트 |
+| `VITE_DEFAULT_LANGUAGE` | 기본 UI 언어 (예: `fr`, `de`, `es`) |
+
+### 4단계: 배포
+
+"Deploy"를 클릭하고 빌드가 끝날 때까지 기다립니다.
+
+## 사용자 지정 도메인
+
+1. 프로젝트 설정으로 이동합니다
+2. "Domains"로 이동합니다
+3. 사용자 지정 도메인을 추가합니다
+4. 안내에 따라 DNS를 구성합니다
+
+## 제한 사항
+
+::: warning 대용량 파일
+Vercel의 서버리스 함수에는 50MB 제한이 있습니다. BentoPDF는 정적 사이트이므로 영향을 받지 않아야 하지만, WASM 모듈은 용량이 큽니다(총 약 100MB). `/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" }
+ ]
+ }
+ ]
+}
+```
+
+확인하려면 DevTools 콘솔을 열고 `console.log(window.crossOriginIsolated)`를 실행하세요. `true`가 반환되어야 합니다.
diff --git a/docs/ko/tools/add-attachments.md b/docs/ko/tools/add-attachments.md
new file mode 100644
index 00000000..04837836
--- /dev/null
+++ b/docs/ko/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: 첨부파일 추가
+description: 모든 형식의 파일을 문서 수준 또는 특정 페이지에 연결하여 PDF에 삽입합니다.
+---
+
+# 첨부파일 추가
+
+하나 이상의 파일을 PDF 문서 안에 직접 삽입합니다. 첨부파일은 문서 수준(모든 PDF 리더의 첨부파일 패널에서 확인 가능)으로 추가하거나 특정 페이지에 연결할 수 있습니다.
+
+## 사용 방법
+
+1. 파일을 첨부할 PDF를 업로드합니다.
+2. 첨부파일 드롭 영역에서 삽입할 파일(모든 형식)을 선택합니다.
+3. 첨부 수준을 선택합니다. **문서**(기본값) 또는 **페이지**입니다.
+4. 페이지 수준을 선택한 경우 페이지 범위(예: `1-3` 또는 `5`)를 입력합니다.
+5. 처리 버튼을 클릭합니다. 파일이 삽입된 PDF가 다운로드됩니다.
+
+## 기능
+
+- 모든 파일 형식 첨부 가능 -- 이미지, 스프레드시트, 압축 파일, 실행 파일 등 무엇이든 가능
+- 문서 수준 또는 페이지 수준으로 첨부 위치 지정
+- 한 번에 여러 파일 첨부 가능
+- 선택한 모든 첨부파일의 이름과 크기 표시
+- 원본 PDF 내용은 그대로 유지하고 삽입된 파일만 추가
+
+## 옵션
+
+| 옵션 | 설명 |
+| --------------- | ---------------------------------------------------------------- |
+| **문서 수준** | PDF 전체에 파일을 첨부하며, 첨부파일 패널에서 접근할 수 있습니다 |
+| **페이지 수준** | 페이지 범위 입력으로 지정한 특정 페이지에 파일을 첨부합니다 |
+
+## 활용 사례
+
+- PDF 보고서에 원본 데이터(Excel 파일, CSV)를 함께 묶기
+- 사진 포트폴리오 PDF에 원본 이미지 파일 첨부
+- 계약서나 제안서 안에 증빙 자료 삽입
+- 교육 매뉴얼의 특정 페이지에 보충 자료 추가
+
+## 팁
+
+- 문서 수준 첨부파일은 PDF 리더에서 가장 폭넓게 지원됩니다. 페이지 수준 첨부파일은 일부 뷰어에서 보이지 않을 수 있습니다.
+- 첨부파일 크기에는 제한이 없지만, 매우 큰 파일을 삽입하면 PDF 크기도 그만큼 커집니다.
+
+## 관련 도구
+
+- [첨부파일 추출](./extract-attachments)
+- [첨부파일 편집](./edit-attachments)
+- [PDF 병합](./merge-pdf)
diff --git a/docs/ko/tools/add-blank-page.md b/docs/ko/tools/add-blank-page.md
new file mode 100644
index 00000000..c46f87d9
--- /dev/null
+++ b/docs/ko/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: 빈 페이지 추가
+description: PDF 문서의 원하는 위치에 빈 페이지를 하나 이상 삽입합니다.
+---
+
+# 빈 페이지 추가
+
+지정한 위치에 빈 페이지를 PDF에 삽입합니다. 빈 페이지를 넣을 위치와 개수를 직접 정할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다. 도구에 페이지 수가 표시됩니다.
+2. 빈 페이지를 삽입할 **위치**를 입력합니다. 맨 앞에 삽입하려면 `0`을, 맨 끝에 추가하려면 전체 페이지 수를 입력합니다.
+3. 추가할 빈 페이지의 **개수**를 입력합니다(기본값은 1).
+4. 처리 버튼을 클릭합니다. 빈 페이지가 삽입된 PDF가 다운로드됩니다.
+
+## 기능
+
+- 문서의 처음, 중간, 끝 등 원하는 위치에 삽입
+- 한 번에 여러 개의 빈 페이지 추가
+- 업로드한 PDF의 페이지 수에 따라 위치 안내가 동적으로 갱신
+- 표준 A4 크기의 빈 페이지
+
+## 활용 사례
+
+- 합쳐진 문서의 섹션 사이에 빈 구분 페이지 추가
+- 양면 인쇄 정렬을 위한 빈 페이지 삽입
+- 인쇄한 학습 자료에 손글씨 메모 공간 확보
+- 최소 페이지 수 요건을 맞추기 위한 페이지 채우기
+
+## 팁
+
+- 위치 `0`은 첫 페이지 앞에 삽입하고, 전체 페이지 수와 같은 위치는 마지막 페이지 뒤에 추가합니다.
+- 빈 페이지가 아니라 내용을 특정 위치에 삽입해야 한다면 [PDF 멀티 도구](./pdf-multi-tool)로 지정한 페이지 뒤에 다른 PDF를 삽입하세요.
+
+## 관련 도구
+
+- [정리 및 복제](./organize-pdf)
+- [PDF 멀티 도구](./pdf-multi-tool)
+- [PDF 병합](./merge-pdf)
diff --git a/docs/ko/tools/add-page-labels.md b/docs/ko/tools/add-page-labels.md
new file mode 100644
index 00000000..1afc2124
--- /dev/null
+++ b/docs/ko/tools/add-page-labels.md
@@ -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입니다. 0부터 시작하려면 0으로 설정합니다.
+- **떨어진 범위에서 번호 이어가기** -- 규칙이 연속되지 않은 페이지(`1-9,30-40` 또는 `odd` 등)를 대상으로 하며 번호를 순서대로 이어가고 싶을 때 켭니다.
+- **기존 페이지 레이블 제거** -- 기본으로 선택되어 있습니다. 새 규칙을 적용하기 전에 이전 레이블을 모두 지웁니다.
+
+## 기능
+
+- 복잡한 번호 체계를 위한 문서당 다중 레이블 규칙
+- 모든 표준 번호 체계를 포괄하는 여섯 가지 레이블 스타일
+- 섹션별 레이블을 위한 사용자 지정 접두사 지원
+- 떨어진 범위에서 이어지는 번호 매기기 지원
+- 기존 레이블 유지 또는 제거 옵션
+
+## 활용 사례
+
+- 책의 머리말에는 로마 숫자(i, ii, iii), 본문에는 십진수 레이블 설정
+- 부록 페이지에 "A-1", "A-2", "B-1", "B-2" 같은 문자 접두사 레이블 지정
+- 실제 페이지 번호가 PDF 페이지 순서와 맞지 않는 스캔 문서의 페이지 레이블 수정
+- 기술 문서에 0부터 시작하는 번호 매기기 적용
+
+## 팁
+
+- 페이지 레이블은 PDF 뷰어가 탐색 도구 모음에 표시하는 메타데이터입니다. 실제 페이지에는 인쇄되지 않습니다. 눈에 보이는 번호가 필요하면 [페이지 번호](./page-numbers)를 사용하세요.
+- 이 도구를 사용하려면 WASM 설정에서 CoherentPDF(CPDF)를 구성해야 합니다. 설정되어 있지 않으면 구성하라는 안내가 표시됩니다.
+
+## 관련 도구
+
+- [페이지 번호](./page-numbers)
+- [베이츠 번호 매기기](./bates-numbering)
+- [북마크 편집](./bookmark)
diff --git a/docs/ko/tools/add-stamps.md b/docs/ko/tools/add-stamps.md
new file mode 100644
index 00000000..1a8231dc
--- /dev/null
+++ b/docs/ko/tools/add-stamps.md
@@ -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)
diff --git a/docs/ko/tools/add-watermark.md b/docs/ko/tools/add-watermark.md
new file mode 100644
index 00000000..217099eb
--- /dev/null
+++ b/docs/ko/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: 워터마크 추가
+description: 시각적 끌어서 놓기 편집기와 실시간 미리보기로 PDF 페이지에 텍스트 또는 이미지 워터마크를 찍습니다.
+---
+
+# 워터마크 추가
+
+시각적 편집기를 사용해 PDF 페이지에 텍스트 또는 이미지 워터마크를 추가합니다. 미리보기에서 워터마크를 직접 끌어 위치를 정하고, 모서리 핸들로 크기를 조절하며, 불투명도, 회전, 글꼴, 색상을 설정할 수 있습니다. 페이지마다 워터마크 위치를 따로 지정하거나 모든 페이지에 같은 워터마크를 한 번에 적용할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 첫 페이지의 실시간 미리보기와 끌 수 있는 워터마크 오버레이가 있는 편집기가 열립니다.
+3. 토글 버튼으로 **텍스트** 또는 **이미지** 워터마크 모드를 선택합니다.
+4. 사이드바 패널에서 워터마크 설정을 구성합니다.
+5. 미리보기에서 워터마크를 끌어 원하는 위치에 놓습니다. 모서리 핸들로 크기를 조절합니다.
+6. 페이지별 워터마크를 설정하려면 페이지를 넘겨 가며 지정하고, 아니면 **모든 페이지에 적용**을 선택한 상태로 둡니다.
+7. **워터마크 추가**를 클릭하여 처리하고 다운로드합니다.
+
+## 옵션
+
+**텍스트 워터마크 설정:**
+
+- **텍스트** -- 워터마크 문구입니다(예: "CONFIDENTIAL", "DRAFT").
+- **글꼴 크기** -- 10에서 200포인트입니다. 기본값은 72입니다.
+- **색상** -- 색상 선택기로 원하는 색을 고릅니다.
+- **불투명도** -- 완전 투명에서 완전 불투명까지 투명도를 조절합니다.
+- **회전** -- 워터마크 텍스트를 -180도에서 180도까지 회전합니다.
+
+**이미지 워터마크 설정:**
+
+- **이미지 업로드** -- 워터마크로 사용할 PNG, JPG 등의 이미지 파일을 업로드합니다.
+- **불투명도** -- 이미지 투명도를 조절합니다.
+- **배율** -- 이미지 워터마크의 크기를 조정합니다.
+
+**레이아웃 설정:**
+
+- **단일** -- 페이지당 워터마크 하나를 끌어서 또는 위치 프리셋으로 배치합니다.
+- **타일** -- 회전 각도를 따르는 대각선 격자로 페이지 전체에 워터마크를 반복하여 문서를 가장자리까지 덮습니다.
+- **가로 간격** -- 텍스트 방향을 따른 타일 사이의 간격으로, 워터마크 너비에 대한 백분율입니다(타일 모드에서만 해당).
+- **세로 간격** -- 타일 행 사이의 간격으로, 워터마크 높이에 대한 백분율입니다(타일 모드에서만 해당).
+
+**일반 설정:**
+
+- **모든 페이지에 적용** -- 선택하면 모든 페이지에 같은 워터마크가 적용됩니다. 선택을 해제하면 페이지별로 워터마크를 설정할 수 있습니다.
+- **페이지 범위** -- 워터마크를 넣을 페이지를 지정합니다(예: "1-3, 5, 7-9" 또는 "all").
+
+## 기능
+
+- 실시간 PDF 미리보기에서 끌어서 놓는 시각적 위치 지정
+- 모서리 핸들로 크기를 조절할 수 있는 워터마크
+- 텍스트 및 이미지 워터마크 모드
+- 간격을 조절할 수 있는 단일 또는 전체 페이지 타일(반복) 레이아웃
+- 페이지별 또는 전체 워터마크 적용
+- 미리보기에서 페이지 단위 탐색
+- 불투명도 및 회전 조절
+- 페이지 범위 필터링
+
+## 활용 사례
+
+- 검토용으로 배포하기 전에 초안 문서에 "DRAFT" 표시
+- 민감한 재무 보고서에 "CONFIDENTIAL" 워터마크 추가
+- 회사 로고 이미지 워터마크로 문서 브랜딩
+- 잠재 고객에게 공유하는 제품 문서에 "SAMPLE" 찍기
+- 배포용 PDF 자료에 저작권 고지 추가
+
+## 팁
+
+- 페이지를 대각선으로 가로지르는 워터마크는 회전을 약 45도로 설정하고 글꼴 크기를 키우세요.
+- 타일 모드는 하나를 지워도 수십 개가 남기 때문에 잘라내기 후 문서를 재사용하기가 훨씬 어려워집니다. 타일을 쓸 때는 아래 텍스트가 읽히도록 불투명도를 낮추세요.
+- 배경이 투명한 이미지 워터마크(PNG 형식)가 문서 내용과 더 자연스럽게 어우러집니다.
+- 페이지마다 다른 워터마크 텍스트가 필요하면 "모든 페이지에 적용"을 해제하고 페이지별로 이동하며 설정하세요.
+
+## 관련 도구
+
+- [머리글 및 바닥글](./header-footer)
+- [도장 추가](./add-stamps)
+- [베이츠 번호 매기기](./bates-numbering)
+- [PDF 서명](./sign-pdf)
diff --git a/docs/ko/tools/adjust-colors.md b/docs/ko/tools/adjust-colors.md
new file mode 100644
index 00000000..16f8242f
--- /dev/null
+++ b/docs/ko/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: 색상 조정
+description: PDF의 밝기, 대비, 채도, 색조, 색온도, 틴트, 감마, 세피아를 세밀하게 조정합니다.
+---
+
+# 색상 조정
+
+PDF를 위한 본격적인 색 보정 도구입니다. 밝기, 대비, 채도, 색조 이동, 색온도, 틴트, 감마, 세피아의 여덟 가지 매개변수를 각각 독립적으로 조정할 수 있으며, 슬라이더를 움직일 때마다 미리보기가 실시간으로 갱신됩니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 첫 페이지 미리보기와 색상 설정 패널이 있는 편집기가 열립니다.
+3. 슬라이더를 움직여 각 색상 매개변수를 조정합니다. 미리보기가 실시간으로 갱신됩니다.
+4. **초기화**를 클릭하면 모든 슬라이더가 기본 위치로 돌아갑니다.
+5. **적용**을 클릭하여 모든 페이지를 처리하고 조정된 PDF를 다운로드합니다.
+
+## 옵션
+
+- **밝기** -- 페이지 전체를 밝게 하거나 어둡게 합니다(-100에서 +100).
+- **대비** -- 밝은 영역과 어두운 영역의 차이를 키우거나 줄입니다(-100에서 +100).
+- **채도** -- 색의 강도를 높이거나 낮춥니다(-100에서 +100). -100으로 설정하면 회색조 결과가 나옵니다.
+- **색조 이동** -- 색상환을 회전하여 모든 색을 일괄적으로 이동합니다.
+- **색온도** -- 색을 따뜻하게(노랑/주황) 또는 차갑게(파랑) 이동합니다.
+- **틴트** -- 녹색 또는 마젠타 색조를 더합니다.
+- **감마** -- 감마 곡선으로 중간 톤의 밝기를 조정합니다. 1.0 미만이면 중간 톤이 어두워지고, 1.0 초과면 밝아집니다.
+- **세피아** -- 고전적인 세피아 톤 효과를 적용합니다. 값이 높을수록 갈색이 더 강해집니다.
+
+## 기능
+
+- 독립적으로 조정 가능한 여덟 가지 색상 매개변수
+- 슬라이더 변경에 즉시 반응하는 실시간 미리보기
+- 기본값으로 빠르게 되돌리는 초기화 버튼
+- 문서의 모든 페이지 처리
+- 텍스트, 이미지, 그래픽 등 모든 PDF 콘텐츠에 사용 가능
+
+## 활용 사례
+
+- 어두운 스캔본을 밝게 하거나 과다 노출된 페이지 보정
+- 인쇄 전에 컬러 문서의 채도를 낮춰 잉크 사용량 절감
+- 증명서나 상장에 세피아 톤을 적용해 고풍스러운 느낌 연출
+- PDF에 삽입된 사진의 색온도 보정
+- 바래거나 품질이 낮은 스캔 문서의 대비 강화
+
+## 팁
+
+- 빠르게 회색조로 변환하려면 채도 슬라이더를 -100까지 끝까지 끌어 내리세요.
+- 감마 슬라이더는 중간 톤이 너무 어둡거나 밝은 스캔 문서의 가독성을 개선하는 데 특히 유용합니다.
+- 다른 이미지 효과 도구와 마찬가지로 각 페이지를 래스터화합니다. 출력은 이미지 기반이 되므로 텍스트를 선택할 수 없습니다.
+
+## 관련 도구
+
+- [색상 반전](./invert-colors)
+- [스캔 효과](./scanner-effect)
+- [배경색 변경](./background-color)
diff --git a/docs/ko/tools/alternate-merge.md b/docs/ko/tools/alternate-merge.md
new file mode 100644
index 00000000..a4b2d118
--- /dev/null
+++ b/docs/ko/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: 페이지 교차 병합
+description: 각 파일의 페이지를 번갈아 끼워 넣어 PDF를 병합하며, 북마크를 유지합니다.
+---
+
+# 페이지 교차 병합
+
+여러 PDF 파일의 페이지를 문서 간에 번갈아 가며 끼워 넣습니다. 일반 병합은 파일을 단순히 이어 붙이지만, 파일 A의 1페이지, 파일 B의 1페이지, 파일 A의 2페이지 순으로 배치해야 할 때 사용하는 도구입니다.
+
+## 사용 방법
+
+1. 드롭 영역을 사용해 PDF 파일을 두 개 이상 업로드합니다.
+2. 도구에 각 파일의 페이지 수와 파일 크기가 표시됩니다.
+3. 손잡이를 끌어 교차 순서에서 어느 파일의 페이지가 먼저 오는지 바꿉니다.
+4. **페이지 섞기**를 클릭하여 교차 출력을 만듭니다.
+5. 결과가 `alternated-mixed.pdf`로 다운로드됩니다.
+
+## 기능
+
+- 개수에 상관없이(최소 두 개) 여러 PDF의 페이지를 교차 배치
+- 끌어서 놓기로 파일 순서를 바꿔 교차 우선순위 조절
+- 원본 문서의 북마크 유지
+- 업로드한 각 파일의 페이지 수와 파일 크기 표시
+- 전용 웹 워커로 처리하여 반응성이 좋은 UI
+
+## 활용 사례
+
+- 홀수 페이지와 짝수 페이지를 따로 스캔한 양면 스캔본 재조립
+- 문제지와 답안지를 합쳐 각 문제 뒤에 답이 오도록 구성
+- 두 언어 문서를 페이지 단위로 병합(예: 한쪽은 영어, 다음 쪽은 번역)
+- 단면 스캐너로 스캔한 앞면과 뒷면 교차 배치
+
+## 팁
+
+- 원본 PDF의 페이지 수가 다르면 짧은 문서의 페이지가 먼저 소진되고, 긴 문서의 남은 페이지가 끝에 나옵니다.
+- 파일 순서가 중요합니다 -- 목록의 첫 번째 파일이 출력의 첫 페이지를 제공합니다. 필요하면 끌어서 순서를 바꾸세요.
+
+## 관련 도구
+
+- [PDF 병합](./merge-pdf)
+- [정리 및 복제](./organize-pdf)
+- [PDF 분할](./split-pdf)
diff --git a/docs/ko/tools/background-color.md b/docs/ko/tools/background-color.md
new file mode 100644
index 00000000..6a3aef24
--- /dev/null
+++ b/docs/ko/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: 배경색 변경
+description: PDF 모든 페이지의 배경색을 바꾸면서 위에 있는 내용은 그대로 유지합니다.
+---
+
+# 배경색 변경
+
+PDF의 기존 내용 뒤에 단색 배경을 설정합니다. 각 페이지에 색 사각형을 만들고 원본 내용을 그 위에 겹치므로, 텍스트, 이미지, 그래픽이 새 배경 위에서도 완전히 보입니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 색상 선택기로 배경색을 고릅니다. 기본값은 연한 노랑(#FFFFCC)입니다.
+3. **배경색 변경**을 클릭하여 처리합니다.
+4. 업데이트된 PDF가 자동으로 다운로드됩니다.
+
+## 옵션
+
+- **배경색** -- 원하는 단색을 고르는 표준 색상 선택기입니다. 기본값은 연한 노랑입니다.
+
+## 기능
+
+- 모든 페이지에 균일한 배경색 적용
+- 색 레이어 위에 모든 원본 내용(텍스트, 이미지, 벡터 그래픽) 유지
+- 원본 페이지 크기 유지
+- 페이지 수에 상관없이 사용 가능
+
+## 활용 사례
+
+- 연한 크림색이나 아이보리 배경으로 문서에 종이 같은 부드러운 느낌 부여
+- 분류별로 다른 배경색을 적용해 문서 세트를 색으로 구분
+- 대상 독자별로 시각적으로 구분되는 같은 문서의 버전 만들기
+- 화면에 문서를 띄울 때 가독성을 높이기 위해 연한 배경 색조 추가
+
+## 팁
+
+- 연하고 차분한 색이 가장 잘 어울립니다. 텍스트가 이미 밝은 색이 아니라면 매우 어두운 배경은 글자를 읽기 어렵게 만들 수 있습니다.
+- 배경과 텍스트 색을 모두 바꾸려면 먼저 배경색을 적용한 뒤 결과물에 [텍스트 색상 변경](./text-color)을 사용하세요.
+- 이 도구는 래스터화가 아닌 PDF 구조 수준에서 작동하므로 출력에서도 텍스트를 선택하고 검색할 수 있습니다.
+
+## 관련 도구
+
+- [텍스트 색상 변경](./text-color)
+- [색상 반전](./invert-colors)
+- [색상 조정](./adjust-colors)
diff --git a/docs/ko/tools/bates-numbering.md b/docs/ko/tools/bates-numbering.md
new file mode 100644
index 00000000..a85c6d8a
--- /dev/null
+++ b/docs/ko/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: 베이츠 번호 매기기
+description: 사용자 지정 템플릿, 자릿수 채우기, 글꼴, 위치를 설정하여 하나 또는 여러 PDF에 베이츠 번호를 적용합니다.
+---
+
+# 베이츠 번호 매기기
+
+베이츠 번호 매기기는 PDF의 모든 페이지에 순차적인 식별 번호를 찍는 방식입니다. 법적 절차, 감사, 규정 준수 업무에서 문서에 번호를 붙이는 표준 방법입니다. 이 도구는 여러 파일, 사용자 지정 템플릿을 지원하며 번호가 매겨진 PDF를 개별 파일이나 하나의 ZIP 아카이브로 만듭니다.
+
+## 사용 방법
+
+1. PDF 파일을 하나 이상 업로드합니다. 여러 파일을 한 번에 끌어다 놓을 수 있습니다.
+2. 스타일 프리셋을 고르거나 사용자 지정 템플릿을 만듭니다.
+3. 위치, 글꼴, 크기, 색상, 시작 번호를 설정합니다.
+4. **베이츠 번호 적용**을 클릭하여 처리합니다.
+5. 파일이 하나면 바로 다운로드되고, 여러 개면 ZIP 아카이브로 다운로드됩니다.
+
+## 옵션
+
+- **스타일 프리셋** -- 기본 제공 형식 중에서 선택합니다.
+ - 증거 + 사건 + Bates + 페이지 (예: "Exhibit 1 Case XYZ 000001 Page 1")
+ - 증거 + 사건 + Bates (페이지 번호 없음)
+ - 사건 + Bates
+ - Bates 번호만 (예: "000001")
+ - 사용자 지정 (직접 템플릿 작성)
+- **스타일 사용자 지정** -- 자리 표시자 `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`을 사용하는 템플릿 문자열입니다.
+- **베이츠 자릿수** -- 0으로 채운 베이츠 번호의 자릿수(3에서 6)입니다. 사용자 지정 모드에서만 표시됩니다.
+- **위치** -- 머리글 또는 바닥글, 그리고 왼쪽, 가운데, 오른쪽입니다.
+- **베이츠 시작 번호** -- 첫 번째 베이츠 번호입니다. 기본값은 1입니다. 번호는 파일을 넘어 이어집니다.
+- **파일 카운터 시작 번호** -- `[FILE]` 자리 표시자의 시작 번호입니다.
+- **글꼴** -- Helvetica, Times New Roman 또는 Courier입니다.
+- **글꼴 크기** -- 찍히는 텍스트의 크기입니다.
+- **색상** -- 베이츠 번호 텍스트의 색상 선택기입니다.
+
+## 기능
+
+- 업로드한 모든 파일에 베이츠 번호가 어떻게 표시될지 보여 주는 실시간 미리보기
+- 문서 간에 번호가 이어지는 다중 파일 지원
+- 끌어서 놓기로 파일 순서를 바꿔 번호 순서 제어
+- 여섯 가지 위치 옵션(머리글/바닥글, 왼쪽/가운데/오른쪽)
+- 페이지 크기에 따라 달라지는 여백을 고려한 적응형 여백 계산
+- 여러 파일 일괄 처리 시 ZIP 출력
+- 최대한의 유연성을 위한 템플릿 자리 표시자
+
+## 활용 사례
+
+- 소송 증거 개시 문서에 순차적인 증거 번호 찍기
+- 수십 개 파일에 걸친 감사 증빙 패키지에 번호 매기기
+- 규정 준수 문서에 규제 참조 번호 적용
+- 특허 출원 첨부 자료에 사건별 식별자 붙이기
+
+## 팁
+
+- 처리하기 전에 파일 목록에서 파일을 끌어 순서를 바꾸세요. 베이츠 번호 순서는 이 순서를 따릅니다.
+- `[FILENAME]` 자리 표시자를 사용하면 원본 파일 이름이 도장에 들어가 페이지를 원본 문서로 추적하는 데 도움이 됩니다.
+- 설정을 바꾸면 미리보기 상자가 실시간으로 갱신되므로 처리하기 전에 형식을 확인할 수 있습니다.
+
+## 관련 도구
+
+- [페이지 번호](./page-numbers)
+- [페이지 레이블 추가](./add-page-labels)
+- [머리글 및 바닥글](./header-footer)
diff --git a/docs/ko/tools/bmp-to-pdf.md b/docs/ko/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..a33246d5
--- /dev/null
+++ b/docs/ko/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP를 PDF로
+description: 서버로 업로드하지 않고 브라우저에서 바로 BMP 비트맵 이미지를 PDF 형식으로 변환합니다.
+---
+
+# BMP를 PDF로
+
+Windows 비트맵(BMP) 파일을 PDF로 변환합니다. BMP는 압축되지 않은 이미지 형식으로, 오래된 시스템, 의료 영상, 산업용 스캐너에서 여전히 볼 수 있습니다. 이 도구는 아무것도 설치하지 않고도 이를 PDF로 변환합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 |
+| :--- | :----- |
+| BMP | `.bmp` |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 BMP 파일을 끌어다 놓습니다.
+2. 파일 목록을 확인합니다. 파일을 더 추가하거나 불필요한 파일을 제거합니다.
+3. **PDF로 변환**을 클릭합니다. 출력은 `from_bmps.pdf`로 다운로드됩니다.
+
+각 BMP는 캔버스에 그려져 PNG로 내보내진 뒤 pdf-lib를 사용해 PDF에 삽입됩니다. 페이지 크기는 원본 이미지 크기와 같습니다.
+
+## 옵션
+
+이 도구는 별도의 품질 설정을 제공하지 않습니다. 이미지는 PDF 안에 원본 해상도의 무손실 PNG로 삽입됩니다.
+
+## 활용 사례
+
+- BMP로 저장된 오래된 스캔 문서를 보관용 PDF로 변환
+- 구형 Windows 응용 프로그램의 BMP 스크린샷을 공유 가능한 문서로 변환
+- 기본 출력이 BMP인 의료 또는 산업용 스캐너 결과물 처리
+- 오래된 이미지 아카이브를 이식성이 더 좋은 형식으로 이전
+
+## 팁
+
+- BMP 파일은 압축되지 않아 용량이 큰 편입니다. 이미지가 내부적으로 PNG로 다시 인코딩되므로 결과 PDF는 훨씬 작아집니다.
+- BMP 파일과 다른 이미지 형식이 섞여 있다면 [이미지를 PDF로](./image-to-pdf) 도구로 한 번에 일괄 변환하세요.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [PNG를 PDF로](./png-to-pdf)
+- [TIFF를 PDF로](./tiff-to-pdf)
diff --git a/docs/ko/tools/bookmark.md b/docs/ko/tools/bookmark.md
new file mode 100644
index 00000000..0c38b236
--- /dev/null
+++ b/docs/ko/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: 북마크 편집
+description: 시각적 편집기와 CSV/JSON 지원으로 PDF 북마크를 추가, 편집, 가져오기, 내보내기, 삭제합니다.
+---
+
+# 북마크 편집
+
+북마크 편집기를 사용하면 PDF 탐색 북마크(개요라고도 합니다)를 완전히 제어할 수 있습니다. 새 북마크를 추가하고, 기존 북마크를 편집하고, 계층 구조를 재구성하고, 북마크 데이터를 CSV 및 JSON 형식으로 가져오거나 내보낼 수 있습니다.
+
+## 사용 방법
+
+1. 클릭하거나 파일을 드롭 영역으로 끌어다 놓아 PDF를 업로드합니다.
+2. 필요하면 **기존 북마크 자동 추출**을 선택하여 문서의 현재 북마크 트리를 불러옵니다.
+3. 편집기가 분할 보기로 열립니다. 왼쪽에는 PDF 뷰어, 오른쪽에는 북마크 패널이 표시됩니다.
+4. 북마크 제목을 입력하고 **페이지에 추가**를 클릭하면 현재 페이지를 가리키는 새 북마크가 만들어집니다.
+5. 도구 모음 버튼으로 북마크를 재정렬하거나, 스타일을 지정하거나, 삭제합니다.
+6. **북마크 포함하여 PDF 저장**을 클릭하여 업데이트된 파일을 다운로드합니다.
+
+## 기능
+
+- 페이지 이동, 확대/축소 컨트롤, 페이지 이동 입력란이 있는 시각적 PDF 뷰어
+- 한 번의 클릭으로 모든 페이지에 북마크 추가
+- PDF를 직접 클릭하여 정확한 북마크 위치 지정(지정 모드)
+- 드래그 앤 드롭으로 순서를 바꿀 수 있는 중첩 북마크 계층 구조
+- 일괄 작업: 여러 북마크를 선택하여 색상, 스타일 변경 또는 삭제를 한 번에 처리
+- 큰 트리에서 항목을 빠르게 찾는 북마크 검색
+- 모든 변경 사항에 대한 실행 취소 및 다시 실행 지원
+- CSV(제목, 페이지, 수준) 또는 JSON 파일에서 북마크 가져오기
+- 외부 편집을 위해 북마크를 CSV 또는 JSON으로 내보내기
+- 북마크 스타일: 색상(빨강, 파랑, 초록, 노랑, 보라)과 글꼴 스타일(굵게, 기울임, 굵은 기울임)
+- 빠른 탐색: 페이지 위/아래 키로 페이지 스크롤
+
+## 옵션
+
+- **기존 북마크 자동 추출**: 선택하면 로드할 때 PDF의 현재 북마크를 읽어 표시합니다.
+- **일괄 모드**: 여러 북마크를 선택하여 색상, 스타일 또는 삭제 작업을 한꺼번에 적용합니다.
+- **모두 펼치기/접기**: 중첩된 하위 북마크를 빠르게 표시하거나 숨깁니다.
+
+## 사용 사례
+
+- 북마크가 없는 교재나 매뉴얼에 목차 추가
+- OCR 처리 후 스캔 문서의 북마크 구조 재정비
+- 북마크를 CSV로 내보내 스프레드시트에서 편집한 뒤 다시 가져오기
+- 페이지 참조가 잘못된 자동 생성 북마크 정리
+- 법률 준비서면의 중요한 섹션을 표시하기 위해 색상 북마크 추가
+
+## 팁
+
+- 대량으로 북마크를 만들 때는 CSV 가져오기를 사용하세요. 형식은 간단합니다. `title,page,level`이며 level 1이 최상위입니다.
+- 지정 모드에서는 PDF 페이지의 정확한 위치를 클릭하여 북마크 대상을 지정할 수 있어, 페이지 번호만 지정하는 것보다 정밀합니다.
+- 큰 변경을 하기 전에 북마크를 내보내 백업해 두세요.
+
+## 관련 도구
+
+- [목차](./table-of-contents)
+- [PDF 편집기](./edit-pdf)
+- [페이지 레이블 추가](./add-page-labels)
diff --git a/docs/ko/tools/cbz-to-pdf.md b/docs/ko/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..3cf64fb9
--- /dev/null
+++ b/docs/ko/tools/cbz-to-pdf.md
@@ -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로 다운로드됩니다. 여러 파일이면 `comic-converted.zip`이라는 ZIP 아카이브가 만들어집니다.
+
+## 옵션
+
+별도의 설정이 필요 없습니다. 각 이미지는 원본 크기에 맞춰 한 페이지가 되므로, 두 페이지에 걸친 펼침면은 넓게, 한 페이지짜리는 좁게 유지됩니다.
+
+## 사용 사례
+
+- PDF는 지원하지만 CBZ/CBR은 지원하지 않는 태블릿이나 휴대폰 앱에서 만화 읽기
+- 디지털 만화의 특정 페이지 인쇄
+- 만화 컬렉션을 어떤 파일 뷰어로도 열 수 있는 형식으로 보관
+- 전용 만화 리더가 없는 사람과 만화 공유
+
+## 팁
+
+- 아카이브 안의 이미지는 자연스러운 순서로 정렬됩니다(`page2.jpg`가 `page10.jpg`보다 먼저 옵니다). 올바른 페이지 순서를 위해 파일 이름에 일관된 번호를 붙이세요.
+- 변환기는 파일 확장자가 아니라 바이너리 시그니처로 이미지 형식을 감지합니다. 실수로 `.jpg`라는 이름이 붙은 PNG도 올바르게 삽입됩니다.
+- CBZ 파일은 PyMuPDF 엔진을 불러오지 않고 브라우저에서 전부 처리되므로 CBR 파일보다 빠르게 변환됩니다.
+
+## 관련 도구
+
+- [EPUB를 PDF로](./epub-to-pdf)
+- [MOBI를 PDF로](./mobi-to-pdf)
+- [이미지를 PDF로](./image-to-pdf)
diff --git a/docs/ko/tools/change-permissions.md b/docs/ko/tools/change-permissions.md
new file mode 100644
index 00000000..08f78681
--- /dev/null
+++ b/docs/ko/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: 권한 변경
+description: 인쇄, 복사, 편집, 주석에 대한 PDF 사용 권한을 설정하거나 수정합니다. 256비트 AES 암호화를 사용합니다.
+---
+
+# 권한 변경
+
+받는 사람이 PDF로 할 수 있는 일을 세밀하게 조정합니다. 파일을 비밀번호로 잠그기만 하는 기본 암호화와 달리, 이 도구는 인쇄, 복사, 편집, 주석, 양식 작성, 문서 조합, 페이지 추출을 선택적으로 허용하거나 거부할 수 있으며, 모두 256비트 AES 암호화로 적용됩니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. PDF가 이미 암호화되어 있다면 **현재 비밀번호**를 입력합니다.
+3. **새 사용자 비밀번호**(열 때 필요)와 **새 소유자 비밀번호**(권한 제어) 중 하나 또는 둘 다 설정합니다.
+4. 체크박스로 개별 권한을 켜거나 끕니다.
+5. **권한 변경**을 클릭합니다.
+6. 업데이트된 PDF를 다운로드합니다.
+
+새 비밀번호 필드를 둘 다 비워 두면 도구가 PDF를 완전히 복호화하여 모든 암호화와 제한을 제거합니다.
+
+## 권한 제어
+
+| 권한 | 제어 대상 |
+| -------------------- | ------------------------------------------------ |
+| **인쇄 허용** | 문서를 인쇄할 수 있는지 여부 |
+| **복사 허용** | 텍스트와 이미지를 선택하고 복사할 수 있는지 여부 |
+| **수정 허용** | 문서 내용을 편집할 수 있는지 여부 |
+| **주석 허용** | 댓글, 강조 표시, 스탬프를 추가할 수 있는지 여부 |
+| **양식 작성 허용** | 대화형 양식 필드를 작성할 수 있는지 여부 |
+| **문서 조합 허용** | 페이지를 삽입, 삭제, 회전할 수 있는지 여부 |
+| **페이지 추출 허용** | 개별 페이지를 추출할 수 있는지 여부 |
+
+모든 권한이 적용되려면 소유자 비밀번호가 필요합니다. 소유자 비밀번호가 없으면 대부분의 PDF 리더가 권한 플래그를 무시합니다.
+
+## PDF의 권한 작동 방식
+
+PDF 권한은 암호화 사양의 일부입니다. 암호화 딕셔너리에 비트 플래그로 저장되며 규격을 준수하는 PDF 리더가 이를 적용합니다. 핵심적인 차이는 다음과 같습니다.
+
+- **사용자 비밀번호**: 파일을 여는 데 필요합니다.
+- **소유자 비밀번호**: 권한을 변경하거나 제한을 제거하는 데 필요합니다. 이 비밀번호가 없으면 권한 플래그가 사용자가 수행할 수 있는 작업을 제어합니다.
+
+소유자 비밀번호만 설정하면(사용자 비밀번호 없음) 누구나 파일을 열 수 있지만 허용된 작업으로만 제한됩니다. 둘 다 설정하면 파일을 열 때 비밀번호가 필요하고 인증 후에도 제한이 적용됩니다.
+
+## 사용 사례
+
+- 보기와 인쇄는 가능하지만 편집이나 복사는 할 수 없는 보고서 배포
+- 받는 사람이 작성할 수는 있지만 수정할 수는 없는 계약서 템플릿 공유
+- 이미지 복사를 비활성화한 PDF 카탈로그 게시
+- 구조 변경은 막으면서 검토용 초안에 주석은 허용
+
+## 팁
+
+- 효과를 내려면 항상 소유자 비밀번호를 설정하세요. 소유자 비밀번호가 없는 권한은 강제할 수 없습니다.
+- 일부 서드파티 PDF 도구는 권한 플래그를 무시합니다. 더 강력한 보호가 필요하면 PDF를 래스터화하거나 DRM 사용을 고려하세요.
+- 이 도구로 오래된 RC4 암호화 PDF를 AES-256으로 업그레이드할 수 있습니다.
+
+## 관련 도구
+
+- [PDF 보호](./protect-pdf): 세부 권한 없이 간단한 비밀번호 보호
+- [PDF 잠금 해제](./unlock-pdf): 암호화를 완전히 제거
+- [제한 제거](./remove-restrictions): 소유자 비밀번호가 있을 때 모든 제한 제거
diff --git a/docs/ko/tools/combine-single-page.md b/docs/ko/tools/combine-single-page.md
new file mode 100644
index 00000000..432102c6
--- /dev/null
+++ b/docs/ko/tools/combine-single-page.md
@@ -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)
diff --git a/docs/ko/tools/compare-pdfs.md b/docs/ko/tools/compare-pdfs.md
new file mode 100644
index 00000000..0b25b349
--- /dev/null
+++ b/docs/ko/tools/compare-pdfs.md
@@ -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)
+- [PDF OCR](./ocr-pdf)
+- [PDF 병합](./merge-pdf)
diff --git a/docs/ko/tools/compress-pdf.md b/docs/ko/tools/compress-pdf.md
new file mode 100644
index 00000000..f88fc8f4
--- /dev/null
+++ b/docs/ko/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: PDF 압축
+description: Hyper Compress 엔진으로 PDF 파일 크기를 최대 90%까지 줄입니다. 목표 파일 크기, 일괄 처리, 사용자 지정 품질 설정을 지원합니다.
+---
+
+# PDF 압축
+
+PDF 파일을 망가뜨리지 않고 줄입니다. PDF 압축은 BentoPDF의 자체 압축 엔진인 [Hyper Compress](https://www.bentopdf.com/hyper-compress)로 구동됩니다. 이미지를 다시 압축하고, 글꼴을 서브셋으로 만들어 병합하며, 내장 썸네일과 비공개 애플리케이션 데이터 같은 불필요한 용량을 제거합니다. 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 | 이메일 첨부, 웹 업로드 |
+| **무손실** | 이미지 변경 없음 | 변경 없음 | 보관용 사본 |
+
+높음은 14개의 표준 PDF 글꼴과, 안전한 경우 Arial 같은 유사 글꼴의 내장도 해제합니다.
+
+## 목표 파일 크기
+
+KB 또는 MB 단위로 크기를 입력하면 Hyper Compress가 선택한 수준에서 시작하여 그 크기에 맞는 최선의 이미지 품질을 찾습니다. 문서가 그만큼 작아질 수 없으면 만들 수 있는 가장 작은 버전과 함께 그 사실을 알리는 메시지가 표시됩니다. [PDF를 1MB로 압축](https://www.bentopdf.com/compress-pdf-to-1mb) 같은 전용 페이지는 목표가 이미 입력된 상태로 열립니다.
+
+## 사용자 지정 설정
+
+사용자 지정 설정 패널을 펼쳐 Hyper Compress를 직접 조정합니다. 압축 수준을 선택하면 이 값들이 해당 수준의 값으로 초기화되고, 하나라도 수정하면 수준이 사용자 지정으로 바뀝니다.
+
+- **콘텐츠 보호 재정의**: 기본적으로 Hyper Compress는 서명된 PDF를 건드리지 않고 텍스트가 있는 페이지를 래스터화하지 않습니다. 이 옵션을 켜면 둘 다 우회합니다. 수준을 바꿔도 켜진 상태로 유지됩니다.
+
+- **이미지**: 이미지 품질, 최대 해상도, 강제 리샘플링, 색상 감소, 보이지 않는 이미지 영역 잘라내기, 대체 이미지 제거, 색상 프로필 단순화, JPEG 2000, 무손실 모드
+- **글꼴**: 서브셋 생성, 중복 병합, 표준 글꼴과 유사 글꼴의 내장 해제
+- **콘텐츠**: 주석, 양식 필드, 링크 평면화
+- **정리**: 썸네일, 애플리케이션 데이터, 아티클 스레드, 웹 캡처 정보, 구조 트리, 출력 인텐트 제거
+- **래스터화**: 이미지만 있는 스캔본을 위해 페이지를 이미지로 교체. 문서에 선택 가능한 텍스트가 있으면 건너뜀
+- **출력**: PDF/A 유지, 지원하는 PDF 2.0 리더를 위한 Brotli 압축
+
+## 사용 사례
+
+- 50MB 보고서를 이메일 첨부 한도 이하로 줄이기
+- 목표 파일 크기로 스캔본을 포털의 엄격한 업로드 한도 이하로 맞추기
+- 웹사이트 다운로드를 빠르게 하기 위해 마케팅 PDF 최적화
+- 저장 비용이 중요한 대규모 문서 세트 보관
+- 메신저 앱으로 PDF를 공유할 때 모바일 데이터 사용량 절감
+
+## 팁
+
+- 중간으로 시작하세요. 결과가 여전히 크면 목표 파일 크기를 설정하거나 높음으로 올리세요.
+- 텍스트 레이어가 없는 스캔본은 사용자 지정 설정에서 페이지 래스터화를 켜세요.
+- 사용자 지정 설정의 회색조로 변환은 색상이 많은 문서의 파일 크기를 줄일 수 있습니다.
+
+## 관련 도구
+
+- [PDF 선형화](./linearize-pdf): 압축한 PDF를 빠른 웹 보기에 맞게 최적화
+- [PDF 래스터화](./rasterize-pdf): 텍스트가 있는 페이지를 포함해 특정 DPI의 이미지로 페이지 변환
+- [PDF 복구](./repair-pdf): 다른 곳에서 압축하다 손상된 PDF 수정
+- [메타데이터 제거](./remove-metadata): 개인정보 보호를 위해 숨겨진 데이터 제거
diff --git a/docs/ko/tools/crop-pdf.md b/docs/ko/tools/crop-pdf.md
new file mode 100644
index 00000000..8c53134b
--- /dev/null
+++ b/docs/ko/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PDF 자르기
+description: Cropper.js 기반 편집기로 각 페이지에 자르기 영역을 그려 PDF 페이지를 시각적으로 자릅니다.
+---
+
+# PDF 자르기
+
+시각적인 자르기 인터페이스로 PDF 페이지의 여백을 다듬습니다. 각 페이지에 직접 자르기 사각형을 그리고, 결과를 미리 보고, 자르기를 적용하세요. 페이지마다 다른 자르기 영역을 지정하거나 문서 전체에 같은 자르기를 적용할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 자르기 편집기가 열리고 드래그할 수 있는 자르기 오버레이와 함께 첫 페이지가 표시됩니다.
+3. 가장자리나 모서리를 끌어 자르기 사각형을 조정합니다.
+4. 페이지 이동 버튼으로 페이지 사이를 이동하며 각 페이지의 자르기 영역을 설정합니다.
+5. **자르기**를 클릭하여 자르기를 적용하고 결과를 다운로드합니다.
+
+## 기능
+
+- 정밀 조정용 핸들이 있는 Cropper.js 기반 시각적 자르기 편집기
+- 페이지별로 이동하며 개별 자르기 영역 설정
+- 페이지마다 자르기 설정을 저장하므로 페이지별로 다른 자르기 지정 가능
+- 선택한 자르기 영역의 실시간 미리 보기
+- 모든 페이지 크기와 방향의 PDF 지원
+
+## 사용 사례
+
+- 스캔 문서의 넓은 여백을 제거하여 콘텐츠 영역에 집중
+- 인쇄 전 PDF에서 프린터 자르기 표시나 등록 표시 제거
+- 강의 슬라이드에서 발표자 노트 영역 자르기
+- 문서 발췌본을 공유하기 전에 모든 페이지의 머리글이나 바닥글 제거
+- 특정 화면이나 인쇄 레이아웃에 맞게 페이지 크기 조정
+
+## 팁
+
+- 자르기 오버레이는 자유롭게 크기를 조정하고 위치를 옮길 수 있습니다. 모서리를 끌면 비율을 유지하며 크기가 바뀌고, 가장자리를 끌면 한 축으로만 조정됩니다.
+- 모든 페이지에 같은 자르기가 필요한 문서라면 첫 페이지에서 설정하세요. 페이지를 이동해도 도구가 자르기 영역을 기억합니다.
+- 시각적으로 자르는 대신 페이지 크기를 통일하려면 페이지 크기 수정 도구가 더 적합할 수 있습니다.
+
+## 관련 도구
+
+- [PDF 편집기](./edit-pdf)
+- [페이지 번호](./page-numbers)
+- [빈 페이지 제거](./remove-blank-pages)
diff --git a/docs/ko/tools/csv-to-pdf.md b/docs/ko/tools/csv-to-pdf.md
new file mode 100644
index 00000000..4e790637
--- /dev/null
+++ b/docs/ko/tools/csv-to-pdf.md
@@ -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개 이상 | 파일당 PDF 하나를 담은 ZIP 아카이브 (`csv-converted.zip`) |
+
+## 사용 사례
+
+- 내보낸 데이터베이스 보고서를 인쇄 가능한 PDF 표로 변환
+- Excel이 없는 사람과 재무 데이터나 재고 목록 공유
+- 규정 준수 문서화를 위해 CSV 로그 파일의 PDF 버전 만들기
+- 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)
diff --git a/docs/ko/tools/delete-pages.md b/docs/ko/tools/delete-pages.md
new file mode 100644
index 00000000..e2db2bbb
--- /dev/null
+++ b/docs/ko/tools/delete-pages.md
@@ -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)
diff --git a/docs/ko/tools/deskew-pdf.md b/docs/ko/tools/deskew-pdf.md
new file mode 100644
index 00000000..401acb54
--- /dev/null
+++ b/docs/ko/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDF 기울기 보정
+description: OpenCV 기울기 감지로 스캔한 PDF의 기울어진 페이지를 자동으로 바로잡습니다. 임계값과 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의 구조 문제 수정
diff --git a/docs/ko/tools/digital-sign-pdf.md b/docs/ko/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..05d37a74
--- /dev/null
+++ b/docs/ko/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: 디지털 서명
+description: X.509 인증서로 PDF에 암호화 디지털 서명을 추가합니다. 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")
+- **연락처**: 서명자에게 연락하는 방법(예: 이메일 주소)
+
+## 인터넷 연결 참고
+
+서명에는 인터넷 연결이 필요할 수 있습니다. 서명 라이브러리가 인증서의 AIA(Authority Information Access) 확장에 포함된 URL에서 인증서 체인을 가져옵니다. 해당 서버에 접속할 수 없으면 체인 검증이 필요한 인증서의 서명이 실패합니다.
+
+## 사용 사례
+
+- 법적 효력이 있는 디지털 서명으로 계약서, 제안서, 합의서 서명
+- PKI 기반 인증이 필요한 워크플로에서 공식 문서 인증
+- 규정 준수를 위한 PDF 청구서 서명(많은 EU 국가가 디지털 서명된 전자 청구서를 요구합니다)
+- 엔지니어링 도면이나 품질 문서에 조직의 승인 추가
+
+## 팁
+
+- 자체 서명 인증서는 테스트에는 쓸 수 있지만 Adobe Reader에서 경고가 표시됩니다. 실제 운영 문서에는 신뢰할 수 있는 인증 기관의 인증서를 사용하세요.
+- 보이는 서명은 순전히 시각적인 것입니다. 보이는 블록을 켜든 켜지 않든 암호화 서명은 포함됩니다.
+- 서명 검증 도구로 서명된 PDF를 확인하여 서명이 온전한지 검증하세요.
+
+## 관련 도구
+
+- [서명 검증](./validate-signature-pdf): 서명된 PDF의 디지털 서명 확인
+- [PDF 평면화](./flatten-pdf): 서명 전에 양식을 평면화하여 수정 방지
+- [PDF 보호](./protect-pdf): 디지털 서명 위에 비밀번호 보호 추가
+- [메타데이터 제거](./remove-metadata): 서명 전에 메타데이터 제거
diff --git a/docs/ko/tools/divide-pages.md b/docs/ko/tools/divide-pages.md
new file mode 100644
index 00000000..5b6d3f90
--- /dev/null
+++ b/docs/ko/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: 페이지 분할
+description: PDF 페이지를 가로 또는 세로로 더 작은 하위 페이지로 나눕니다.
+---
+
+# 페이지 분할
+
+개별 PDF 페이지를 가로 또는 세로로 잘라 반으로 나눕니다. 한 페이지에 별도의 페이지로 분리해야 할 내용이 들어 있을 때 유용합니다. 예를 들어 2단 레이아웃이 넓은 한 페이지로 스캔된 경우입니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 나누기 방향을 선택합니다. **세로**(왼쪽/오른쪽 절반) 또는 **가로**(위/아래 절반).
+3. 필요하면 나눌 페이지를 제한하는 페이지 범위를 지정합니다. 비워 두면 모든 페이지를 나눕니다.
+4. 처리 버튼을 클릭하여 나눈 PDF를 생성합니다.
+
+## 기능
+
+- 세로 나누기: 각 페이지를 왼쪽과 오른쪽 절반으로 나눔
+- 가로 나누기: 각 페이지를 위쪽과 아래쪽 절반으로 나눔
+- 특정 페이지만 선택적으로 나누는 페이지 범위 필터
+- 대상이 아닌 페이지는 그대로 통과
+- 다시 렌더링하지 않고 콘텐츠 품질 유지
+
+## 사용 사례
+
+- 2쪽씩 스캔된 페이지 분리(예: 한 장에 왼쪽과 오른쪽 페이지가 함께 있는 책 스캔)
+- 내용이 나란히 있는 가로형 PDF를 개별 세로형 페이지로 나누기
+- 긴 인포그래픽이나 포스터를 위쪽과 아래쪽 섹션으로 나누기
+- 와이드 포맷 문서를 표준 용지 인쇄용으로 준비
+
+## 팁
+
+- 페이지의 콘텐츠 분포가 고르지 않아도 나누기는 정확히 중간 지점에서 이루어집니다. 비대칭으로 나누려면 [PDF 자르기](./crop-pdf)를 대신 고려하세요.
+- 나누기 전이나 후에 페이지를 회전해야 한다면 이 도구를 [PDF 회전](./rotate-pdf)과 함께 사용하세요.
+
+## 관련 도구
+
+- [PDF 분할](./split-pdf)
+- [PDF 자르기](./crop-pdf)
+- [N-Up PDF](./n-up-pdf)
+- [PDF 포스터화](./posterize-pdf)
diff --git a/docs/ko/tools/duplex-collate.md b/docs/ko/tools/duplex-collate.md
new file mode 100644
index 00000000..ef53ece1
--- /dev/null
+++ b/docs/ko/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: 양면 스캔 정렬
+description: 앞면 페이지와 뒷면 페이지가 별도 블록으로 들어 있는 양면 스캔 PDF를 올바른 앞면/뒷면 순서로 재정렬합니다.
+---
+
+# 양면 스캔 정렬
+
+양면 스캔 정렬은 하나의 PDF에 두 개의 페이지 블록이 들어 있는 ADF 스캔 워크플로를 위해 설계되었습니다.
+
+- 모든 앞면이 먼저
+- 모든 뒷면이 그다음
+
+수동으로 나누고 다시 조립하는 대신, 이 도구가 두 블록을 자연스러운 읽기 순서(앞면1, 뒷면1, 앞면2, 뒷면2 등)로 교차 배열합니다.
+
+## 사용 방법
+
+1. 양면 스택 스캔으로 만든 PDF 하나를 업로드합니다.
+2. 앞면 블록이 끝나는 분할 지점을 설정합니다.
+3. 뒷면 블록 처리 방식을 선택합니다.
+ - **뒷면 블록 뒤집기** (뒷면을 스캔하기 전에 스택을 뒤집은 경우 일반적)
+ - **뒷면 블록 그대로 유지**
+4. **PDF 정렬**을 클릭하여 재정렬된 결과를 다운로드합니다.
+
+## 옵션
+
+- **분할 지점 자동 감지(절반)**: 분할 지점을 `ceil(totalPages / 2)`로 설정합니다.
+- **홀수 페이지 경고**: 전체 페이지 수가 홀수이면 경고합니다(스캔 불일치인 경우가 많습니다).
+- **불균등 블록 확인**: 앞면/뒷면 블록 크기가 다르면 확인을 요청합니다.
+- **그룹 내보내기**: 정렬된 출력을 원본 문서의 페이지 수에 따라 별도의 PDF로 나누고 ZIP으로 다운로드합니다.
+
+## 출력 동작
+
+- **기본**: 출력 PDF 하나(입력 PDF 하나에 출력 PDF 하나).
+- **그룹 모드**: 문서당 페이지 수 값에 따라 출력을 나눕니다. 여러 덩어리가 만들어지면 하나의 ZIP으로 다운로드되고, 그렇지 않으면 PDF 하나가 다운로드됩니다.
+
+블록 크기가 다르면 짝이 맞는 페이지를 먼저 정렬하고, 짝이 없는 나머지 페이지는 끝에 덧붙입니다.
+
+## 일반적인 사용 사례
+
+- 양면 양식 더미를 두 번에 나누어 스캔한 후 순서 복원
+- 모든 앞면을 먼저, 모든 뒷면을 나중에 출력하는 사무용 스캐너의 앞면/뒷면 묶음 재구성
+- 문서별 파일로 나누기 전 보관용 스캔 후처리
+
+## 팁
+
+- 대부분의 양면 배치는 전체 페이지 수가 짝수여야 합니다.
+- 뒷면이 거꾸로 보이면 **뒷면 블록 뒤집기**와 **뒷면 블록 그대로 유지** 사이를 전환해 보세요.
+- 2페이지짜리 원본(앞면+뒷면)에는 문서당 페이지 수를 `2`로 하여 그룹 내보내기를 사용하세요.
+
+## 관련 도구
+
+- [페이지 교차 병합](./alternate-merge)
+- [PDF 분할](./split-pdf)
+- [PDF 병합](./merge-pdf)
+- [정리 및 복제](./organize-pdf)
diff --git a/docs/ko/tools/edit-attachments.md b/docs/ko/tools/edit-attachments.md
new file mode 100644
index 00000000..f53612b4
--- /dev/null
+++ b/docs/ko/tools/edit-attachments.md
@@ -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)
diff --git a/docs/ko/tools/edit-metadata.md b/docs/ko/tools/edit-metadata.md
new file mode 100644
index 00000000..42740212
--- /dev/null
+++ b/docs/ko/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: 메타데이터 편집
+description: 제목, 작성자, 키워드, 날짜, 사용자 지정 속성을 포함한 PDF 메타데이터 필드를 확인하고 수정합니다.
+---
+
+# 메타데이터 편집
+
+PDF 파일에 포함된 메타데이터를 편집합니다. 도구가 문서의 기존 메타데이터로 양식을 미리 채우고, 원하는 필드를 수정한 뒤 변경 사항을 새 PDF에 저장합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다. 도구가 현재 메타데이터를 읽어 양식에 채웁니다.
+2. 표준 필드(제목, 작성자, 주제, 키워드, 작성 프로그램, PDF 생성기)를 편집합니다.
+3. 날짜/시간 선택기로 작성일과 수정일을 조정합니다.
+4. 추가 버튼을 클릭하고 키-값 쌍을 입력하여 사용자 지정 메타데이터 필드를 추가합니다.
+5. 처리 버튼을 클릭하여 수정된 PDF를 저장합니다.
+
+## 기능
+
+- 업로드한 PDF의 기존 메타데이터를 모두 미리 채움
+- 표준 필드: 제목, 작성자, 주제, 키워드, 작성 프로그램, PDF 생성기
+- 작성일과 수정일용 날짜/시간 선택기
+- 임의 속성을 위한 사용자 지정 키-값 메타데이터 필드
+- 변경 사항을 PDF의 문서 정보 딕셔너리에 직접 저장
+
+## 편집 가능한 필드
+
+| 필드 | 설명 |
+| -------------------- | ------------------------------------- |
+| **제목** | PDF 리더에 표시되는 문서 제목 |
+| **작성자** | 문서를 만든 사람 또는 조직 |
+| **주제** | 문서 주제에 대한 간단한 설명 |
+| **키워드** | 검색과 분류를 위한 쉼표로 구분된 용어 |
+| **작성 프로그램** | 콘텐츠를 처음 만든 애플리케이션 |
+| **PDF 생성기** | PDF를 생성한 애플리케이션 |
+| **작성일** | 문서가 처음 만들어진 시점 |
+| **수정일** | 문서가 마지막으로 수정된 시점 |
+| **사용자 지정 필드** | 직접 정의하는 추가 키-값 쌍 |
+
+## 사용 사례
+
+- 문서를 게시하기 전에 적절한 제목과 작성자 설정
+- 문서 관리 시스템에서 검색성을 높이기 위해 키워드 추가
+- 현재 개정을 반영하도록 수정일 업데이트
+- 부서, 프로젝트 ID, 분류 같은 사용자 지정 메타데이터 필드 추가
+- 원래 작성 소프트웨어가 남긴 메타데이터 정리
+
+## 팁
+
+- 사용자 지정 필드는 PDF의 정보 딕셔너리에 직접 기록됩니다. 일부 PDF 리더는 사용자 지정 필드를 표시하지 않을 수 있지만 파일에는 보존됩니다.
+- 필드를 비워 두면 메타데이터에서 해당 값이 지워집니다. 처리 버튼은 양식에 있는 내용을 그대로 저장합니다.
+- 편집 없이 메타데이터를 보려면 [메타데이터 보기](./view-metadata)를 사용하세요. 모든 메타데이터를 완전히 제거하려면 메타데이터 제거를 사용하세요.
+
+## 관련 도구
+
+- [메타데이터 보기](./view-metadata)
+- [PDF OCG 레이어](./pdf-layers)
+- [PDF 압축](./compress-pdf)
diff --git a/docs/ko/tools/edit-pdf.md b/docs/ko/tools/edit-pdf.md
new file mode 100644
index 00000000..42726299
--- /dev/null
+++ b/docs/ko/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF 편집기
+description: 브라우저에서 바로 PDF에 주석을 달고, 강조하고, 가리고, 도형과 이미지를 추가하고, 검색하고, 봅니다.
+---
+
+# PDF 편집기
+
+BentoPDF의 PDF 편집기로 PDF에 주석을 달고, 강조하고, 가리고(교정), 댓글을 남기고, 도형과 이미지를 추가하고, 내용을 검색할 수 있습니다. 서버 업로드 없이 브라우저에서 바로 모든 기능을 갖춘 편집기를 불러옵니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. 문서가 로드된 상태로 내장 PDF 편집기가 자동으로 열립니다.
+3. 도구 모음으로 주석, 강조, 가리기, 텍스트 추가, 도형 그리기, 이미지 삽입을 합니다.
+4. **편집된 PDF 다운로드**를 클릭하여 변경 사항을 저장합니다.
+
+## 기능
+
+- 강조, 밑줄, 취소선, 자유 그리기를 포함한 전체 주석 도구 모음
+- 텍스트 삽입 및 댓글
+- 가리기를 적용하면 표시한 콘텐츠를 영구적으로 제거하는 가리기(교정) 도구. **편집된 PDF 다운로드**를 클릭할 때 적용되지 않은 표시가 있으면 편집기가 먼저 적용할지 묻습니다.
+- 사각형, 원, 선, 화살표용 도형 도구
+- PDF 페이지에 이미지 삽입
+- 문서 전체를 대상으로 한 내장 텍스트 검색
+- 탭을 사용한 다중 문서 지원(최대 10개 문서 동시 열기)
+- 드래그 앤 드롭 파일 불러오기
+
+## 사용 사례
+
+- 계약서를 검토하며 강조와 댓글로 변경 사항 표시
+- 공유하기 전에 주민등록번호나 재무 데이터 같은 기밀 정보 가리기
+- 건축 도면이나 엔지니어링 도면에 주석 추가
+- 문서 페이지에 회사 로고나 스탬프 삽입
+- 긴 법률 문서에서 특정 용어 검색
+
+## 팁
+
+- 여러 PDF를 동시에 열고 편집기 상단의 탭 막대로 전환할 수 있습니다.
+- 편집기는 원본 PDF 구조를 유지하므로 글꼴, 레이아웃, 양식 필드가 그대로 보존됩니다.
+- 가리기 대상으로 텍스트나 영역을 표시해도 가리기를 적용하기 전에는 아무것도 제거되지 않습니다. 선택한 텍스트를 가리면 파일 속성, 북마크, 댓글, 첨부파일에 있는 해당 텍스트의 사본도 다운로드에서 제거됩니다(파일이 암호화되어 있지 않은 경우).
+- 일괄 워터마크나 페이지 번호 작업에는 서식을 더 세밀하게 제어할 수 있는 전용 도구를 사용하세요.
+
+## 관련 도구
+
+- [워터마크 추가](./add-watermark)
+- [PDF 서명](./sign-pdf)
+- [스탬프 추가](./add-stamps)
+- [주석 제거](./remove-annotations)
diff --git a/docs/ko/tools/email-to-pdf.md b/docs/ko/tools/email-to-pdf.md
new file mode 100644
index 00000000..59bb7055
--- /dev/null
+++ b/docs/ko/tools/email-to-pdf.md
@@ -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) 수신자 목록이 PDF의 이메일 헤더 섹션에 표시됩니다. |
+| **첨부파일 목록 포함** | 켜짐 | 켜면 이메일의 첨부파일 목록(파일 이름과 크기)이 PDF에 표시됩니다. |
+
+## 사용 사례
+
+- 규정 준수나 감사를 위해 중요한 업무 서신을 PDF로 보관
+- 법적 절차나 증거 개시 요청을 위한 이메일 스레드 인쇄
+- 이메일로 받은 주문 확인서, 영수증, 계약서의 영구 기록 만들기
+- Outlook이 없어도 읽을 수 있는 형식으로 Outlook MSG 파일 백업
+- 내보낸 EML 파일로 고객 지원 대화 기록
+
+## 팁
+
+- Thunderbird, Apple Mail 등 대부분의 이메일 클라이언트에서 쓰는 EML과 Outlook MSG 파일을 모두 지원합니다. 이메일 클라이언트에서 이메일을 내보내 도구에 바로 끌어다 놓으세요.
+- HTML 형식의 이메일은 PDF에서도 스타일이 유지됩니다. 일반 텍스트 이메일은 깔끔하고 읽기 쉬운 서식으로 렌더링됩니다.
+- 첨부파일 목록에는 파일 이름과 크기가 표시되지만 실제 첨부파일이 PDF에 포함되지는 않습니다.
+
+## 관련 도구
+
+- [XML을 PDF로](./xml-to-pdf)
+- [XPS를 PDF로](./xps-to-pdf)
diff --git a/docs/ko/tools/epub-to-pdf.md b/docs/ko/tools/epub-to-pdf.md
new file mode 100644
index 00000000..85de89cb
--- /dev/null
+++ b/docs/ko/tools/epub-to-pdf.md
@@ -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로 바로 다운로드됩니다. 여러 파일이면 `epub-converted.zip`이라는 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)
diff --git a/docs/ko/tools/excel-to-pdf.md b/docs/ko/tools/excel-to-pdf.md
new file mode 100644
index 00000000..dd4a722f
--- /dev/null
+++ b/docs/ko/tools/excel-to-pdf.md
@@ -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개 이상 | 파일당 PDF 하나를 담은 ZIP 아카이브 (`excel-converted.zip`) |
+
+## 사용 사례
+
+- 배포를 위해 재무 보고서나 예산을 Excel에서 PDF로 변환
+- 재고나 제품 카탈로그 스프레드시트로 인쇄용 PDF 만들기
+- Excel이 설치되지 않은 이해관계자와 데이터 분석 결과 공유
+- 분기 보고서를 편집할 수 없는 형식으로 보관
+- LibreOffice Calc의 ODS 파일을 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)
diff --git a/docs/ko/tools/extract-attachments.md b/docs/ko/tools/extract-attachments.md
new file mode 100644
index 00000000..459750fa
--- /dev/null
+++ b/docs/ko/tools/extract-attachments.md
@@ -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)
diff --git a/docs/ko/tools/extract-images.md b/docs/ko/tools/extract-images.md
new file mode 100644
index 00000000..240bfc6b
--- /dev/null
+++ b/docs/ko/tools/extract-images.md
@@ -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)
diff --git a/docs/ko/tools/extract-pages.md b/docs/ko/tools/extract-pages.md
new file mode 100644
index 00000000..dad1a43a
--- /dev/null
+++ b/docs/ko/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: 페이지 추출
+description: PDF에서 특정 범위의 페이지를 새 문서로 저장합니다.
+---
+
+# 페이지 추출
+
+PDF에서 여러 페이지를 꺼내 새 파일로 저장합니다. 범위 구문으로 원하는 페이지를 정확히 지정하면 도구가 해당 페이지만 담은 깔끔한 PDF를 만듭니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다. 도구가 파일 이름, 크기, 전체 페이지 수를 표시합니다.
+2. 범위 구문(예: `1-5`, `3, 7, 10-12`)으로 추출할 페이지를 입력합니다.
+3. 필요하면 각 범위를 ZIP 아카이브 안의 별도 PDF로 다운로드하도록 선택합니다.
+4. 처리 버튼을 클릭합니다. 추출된 페이지가 새 PDF(또는 ZIP)로 다운로드됩니다.
+
+## 기능
+
+- 유연한 페이지 범위 구문: 개별 페이지, 범위, 쉼표로 구분한 조합
+- 업로드 후 전체 페이지 수를 표시하여 쉽게 참조
+- 하나로 합친 PDF 또는 ZIP 안의 개별 파일로 출력하는 옵션
+- 원본 페이지 내용과 서식 유지
+
+## 사용 사례
+
+- 긴 보고서에서 요약(처음 몇 페이지) 꺼내기
+- 교재 PDF에서 한 챕터 추출
+- 양식 묶음에서 특정 페이지를 독립된 문서로 저장
+- 큰 파일에서 선택한 페이지로 샘플 문서 만들기
+
+## 팁
+
+- 페이지 번호는 1부터 시작합니다. 첫 페이지는 `0`이 아니라 `1`을 사용하세요.
+- 페이지를 추출하는 대신 제거하려면 반대 작업인 [페이지 삭제](./delete-pages)를 사용하세요.
+- 썸네일로 페이지를 시각적으로 선택하려면 [PDF 분할](./split-pdf)의 시각적 선택 모드를 사용하세요.
+
+## 관련 도구
+
+- [PDF 분할](./split-pdf)
+- [페이지 삭제](./delete-pages)
+- [PDF 병합](./merge-pdf)
diff --git a/docs/ko/tools/extract-tables.md b/docs/ko/tools/extract-tables.md
new file mode 100644
index 00000000..fb4dd0de
--- /dev/null
+++ b/docs/ko/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: PDF 표 추출
+description: PDF 문서에서 표를 감지하고 추출합니다. 표 단위로 CSV, JSON 또는 Markdown으로 내보냅니다.
+---
+
+# PDF 표 추출
+
+PDF의 모든 표를 감지하여 CSV, JSON, Markdown 중 원하는 형식으로 내보낼 수 있게 해 줍니다. 각 표는 페이지와 위치 메타데이터와 함께 개별적으로 추출됩니다. PyMuPDF의 표 감지 엔진으로 구동됩니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. 원하는 **내보내기 형식**을 선택합니다. CSV, JSON 또는 Markdown.
+3. **추출**을 클릭하여 처리를 시작합니다.
+4. 표가 하나면 파일 하나로 다운로드됩니다. 표가 여러 개이면 표당 파일 하나를 담은 ZIP 아카이브가 만들어집니다.
+
+## 옵션
+
+- **내보내기 형식**: 다음 중에서 선택합니다.
+ - **CSV**: 쉼표, 따옴표 또는 줄바꿈이 포함된 필드를 올바르게 따옴표 처리한 쉼표로 구분된 값. 스프레드시트와 데이터베이스에 적합합니다.
+ - **JSON**: 배열의 배열 구조이며 2칸 들여쓰기로 보기 좋게 출력됩니다. 프로그램에서 사용하기에 적합합니다.
+ - **Markdown**: PyMuPDF가 렌더링하는 파이프 구분 표 형식. 문서와 README 파일에 적합합니다.
+
+## 출력 형식
+
+- **표 하나**: `filename_table.csv` (또는 `.json` / `.md`)
+- **표 여러 개**: `table_1_page3.csv`, `table_2_page5.csv` 같은 이름의 파일을 담은 `filename_tables.zip`
+
+## 사용 사례
+
+- 문서 전체의 데이터를 가져오지 않고 긴 PDF 보고서에서 특정 표만 추출
+- GitHub 이슈, 위키 또는 문서에 바로 붙여 넣을 수 있도록 Markdown 형식으로 표 가져오기
+- API 연동이나 스크립트를 위해 PDF 표에서 구조화된 JSON 데이터 가져오기
+- 두 버전을 모두 CSV로 내보내 diff하여 서로 다른 PDF 버전의 표 비교
+
+## 팁
+
+- 이 도구는 표 단위로 제어할 수 있습니다. 모든 표를 하나의 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)
diff --git a/docs/ko/tools/fb2-to-pdf.md b/docs/ko/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..d5f15fc7
--- /dev/null
+++ b/docs/ko/tools/fb2-to-pdf.md
@@ -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 엔진이 FB2 XML 구조를 분석하여 페이지가 나뉜 PDF 콘텐츠로 렌더링합니다.
+4. 파일 하나는 PDF로 바로 다운로드됩니다. 여러 파일을 변환하면 `fb2-converted.zip`으로 묶여 다운로드됩니다.
+
+## 옵션
+
+별도 설정이 필요하지 않습니다. 변환기가 FB2 XML 구조를 자동으로 처리하며 장 구분, 서식, 포함된 이미지를 그대로 유지합니다.
+
+## 활용 사례
+
+- PDF만 지원하는 기기나 앱에서 FB2 전자책 읽기
+- FB2 형식으로 배포된 러시아어 문학 작품 인쇄하기
+- FB2 라이브러리를 범용 형식으로 보관하기
+- FictionBook을 지원하지 않는 리더를 쓰는 사람에게 책 공유하기
+
+## 팁
+
+- FB2 파일은 일반 XML이라 용량이 작고 브라우저에서도 빠르게 변환됩니다.
+- FB2 파일이 `.fb2.zip`으로 압축되어 있다면 먼저 압축을 풀고 업로드하세요.
+
+## 관련 도구
+
+- [EPUB를 PDF로](./epub-to-pdf)
+- [MOBI를 PDF로](./mobi-to-pdf)
+- [XML을 PDF로](./xml-to-pdf)
diff --git a/docs/ko/tools/fix-page-size.md b/docs/ko/tools/fix-page-size.md
new file mode 100644
index 00000000..a099f54d
--- /dev/null
+++ b/docs/ko/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: 페이지 크기 통일
+description: PDF의 모든 페이지를 동일한 크기로 맞춥니다. 표준 용지 크기를 선택하거나 사용자 지정 크기를 설정할 수 있습니다.
+---
+
+# 페이지 크기 통일
+
+여러 출처의 파일을 합친 PDF는 페이지 크기가 제각각인 경우가 많습니다. Letter와 A4가 섞여 있거나 표준에서 완전히 벗어난 크기가 있기도 합니다. 이 도구는 모든 페이지를 하나의 목표 크기로 맞추고, 필요에 따라 콘텐츠를 맞춤 또는 채움 방식으로 조정합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드하세요.
+2. 드롭다운에서 **목표 페이지 크기**를 선택하세요(A4, Letter, Legal, A3, A5, Tabloid 또는 사용자 지정).
+3. **방향**을 선택하세요. 자동은 각 페이지의 원래 방향을 유지하며, 세로 또는 가로로 고정할 수도 있습니다.
+4. **콘텐츠 배율** 모드를 고르세요. 맞춤은 모든 콘텐츠를 보존하며 여백이 생길 수 있고, 채움은 페이지를 가득 채우며 가장자리가 잘릴 수 있습니다.
+5. 필요하면 추가된 여백에 적용할 **배경색**을 설정하세요.
+6. **페이지 크기 통일**을 클릭하세요.
+
+## 옵션
+
+- **표준 크기**: A4, Letter, Legal, A3, A5, Tabloid
+- **사용자 지정 크기**: 너비와 높이를 인치 또는 밀리미터로 입력
+- **방향**: 자동, 세로, 가로
+- **배율 모드**: 맞춤 또는 채움(자르기)
+- **배경색**: 여백을 채울 아무 색상
+
+## 활용 사례
+
+- 서로 다른 스캐너에서 가져온 페이지가 섞인 병합 PDF 정리하기
+- 미국 Letter 문서를 해외 배포용 A4로 변환하기
+- 일정한 재단 크기가 필요한 인쇄용 PDF 준비하기
+- 표준에서 약간 벗어난 페이지 바로잡기(예: 8.5 x 11 대신 8.49 x 11.02 인치)
+
+## 팁
+
+- 콘텐츠 손실이 없어야 한다면 맞춤 모드를 사용하세요. 채움 모드는 더 깔끔해 보이지만 가장자리가 잘릴 수 있습니다.
+- 페이지 크기 정보 도구로 결과를 확인하여 모든 페이지가 목표 크기와 일치하는지 점검하세요.
+- 기본 배경색은 흰색입니다. 문서에 어두운 여백이 있다면 어두운 색으로 바꾸세요.
+
+## 관련 도구
+
+- [페이지 크기 정보](./page-dimensions): 수정 전후의 페이지 크기 확인
+- [PDF 압축](./compress-pdf): 크기 통일 후 파일 용량 줄이기
+- [PDF 자르기](./crop-pdf): 자동 배율 조정 대신 직접 페이지 자르기
diff --git a/docs/ko/tools/flatten-pdf.md b/docs/ko/tools/flatten-pdf.md
new file mode 100644
index 00000000..baa06daf
--- /dev/null
+++ b/docs/ko/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: PDF 평탄화
+description: 대화형 양식과 주석을 정적 콘텐츠로 평탄화합니다. 양식 필드를 편집할 수 없게 만들고 주석을 페이지에 합칩니다.
+---
+
+# 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를 비밀번호로 잠그기
diff --git a/docs/ko/tools/font-to-outline.md b/docs/ko/tools/font-to-outline.md
new file mode 100644
index 00000000..78218441
--- /dev/null
+++ b/docs/ko/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: 폰트 윤곽선 변환
+description: PDF의 모든 폰트를 벡터 윤곽선으로 변환하여 기기에 관계없이 동일하게 표시합니다. 폰트 의존성 문제를 없애줍니다.
+---
+
+# 폰트 윤곽선 변환
+
+폰트를 윤곽선으로 변환하면 모든 텍스트 문자가 폰트 기반 글리프에서 벡터 경로로 바뀝니다. PDF가 설치된 폰트에 더 이상 의존하지 않으므로 모든 기기, 운영체제, 프린터에서 똑같이 표시됩니다. 인쇄 전 작업(프리프레스)의 표준 단계입니다.
+
+## 사용 방법
+
+1. PDF 파일을 하나 이상 업로드하세요.
+2. **윤곽선으로 변환**을 클릭하세요.
+3. Ghostscript가 모든 텍스트를 벡터 경로로 변환합니다.
+4. 결과를 다운로드하세요. 여러 파일은 ZIP 아카이브로 제공됩니다.
+
+설정할 항목은 없습니다. 이 도구는 Ghostscript(WebAssembly)를 사용하여 모든 폰트 참조를 한 번에 윤곽선 경로로 변환합니다.
+
+## 변경되는 점
+
+- 텍스트 문자가 벡터 곡선(베지어 경로)이 됩니다
+- 폰트를 포함할 필요가 없어집니다. PDF가 글리프 수준에서 독립적으로 완성됩니다
+- 벡터 경로가 폰트 참조보다 일반적으로 크기 때문에 파일 크기가 늘어날 수 있습니다
+- 겉모습은 그대로 보존됩니다
+
+## 잃게 되는 것
+
+- 텍스트 선택과 복사 및 붙여넣기
+- 텍스트 검색(Ctrl+F가 작동하지 않음)
+- 텍스트 내용 편집 기능
+- 스크린 리더 접근성
+
+## 활용 사례
+
+- 윤곽선 처리된 폰트를 요구하는 인쇄소에 PDF 보내기
+- 사용자 지정 폰트나 라이선스 폰트를 쓴 문서를 해당 폰트가 없는 사람과 공유하기
+- 다른 시스템에서 폰트가 대체되어 문서 모양이 달라지는 것 방지하기
+- 벡터 입력이 필요한 레이저 각인 또는 CNC 절단 작업용 PDF 준비하기
+- 로고가 많은 PDF가 모든 플랫폼에서 올바르게 표시되도록 하기
+
+## 팁
+
+- 원본 PDF를 보관하세요. 윤곽선 변환은 되돌릴 수 없으며 경로를 편집 가능한 텍스트로 되돌릴 수 없습니다.
+- 텍스트를 계속 검색할 수 있어야 한다면, 대신 PDF 래스터화 도구로 변환한 뒤 OCR을 적용하는 방법을 고려하세요.
+- 윤곽선 처리된 PDF는 대체로 용량이 큽니다. 파일 크기가 중요하다면 이후에 PDF 압축을 실행하세요.
+
+## 관련 도구
+
+- [PDF 평탄화](./flatten-pdf): 폰트는 건드리지 않고 양식과 주석 평탄화
+- [PDF 래스터화](./rasterize-pdf): 벡터 윤곽선 대신 이미지 기반 PDF로 변환
+- [PDF 압축](./compress-pdf): 윤곽선 변환 후 파일 용량 줄이기
+- [PDF를 PDF/A로](./pdf-to-pdfa): 폰트 독립성을 확보한 뒤 보관용으로 변환
diff --git a/docs/ko/tools/form-creator.md b/docs/ko/tools/form-creator.md
new file mode 100644
index 00000000..811d418b
--- /dev/null
+++ b/docs/ko/tools/form-creator.md
@@ -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)
diff --git a/docs/ko/tools/form-filler.md b/docs/ko/tools/form-filler.md
new file mode 100644
index 00000000..203d4b80
--- /dev/null
+++ b/docs/ko/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: PDF 양식 작성
+description: XFA 양식을 포함한 PDF 양식을 내장 뷰어로 브라우저에서 바로 작성합니다.
+---
+
+# PDF 양식 작성
+
+양식 필드가 있는 PDF를 열어 내장 뷰어에서 바로 작성하세요. 표준 AcroForm 필드와 레거시 XFA(XML Forms Architecture) 양식을 모두 지원합니다. 양식 작성을 마치면 클릭 한 번으로 작성된 버전을 다운로드할 수 있습니다.
+
+## 사용 방법
+
+1. 양식 필드가 있는 PDF를 업로드하세요.
+2. 문서가 통합 PDF 뷰어에서 열리고 양식 필드가 대화형 입력란으로 표시됩니다.
+3. 텍스트 필드, 체크박스, 드롭다운, 라디오 버튼을 클릭해 내용을 입력하세요.
+4. **저장 및 작성된 양식 다운로드**를 클릭하면 완성된 PDF를 받을 수 있습니다.
+
+## 기능
+
+- 양식 필드를 완전히 조작할 수 있는 내장 PDF.js 뷰어
+- 표준 AcroForm 필드 지원(텍스트 입력, 체크박스, 드롭다운, 라디오 버튼)
+- XML 기반 레거시 양식을 위한 XFA 양식 지원
+- 페이지 크기에 맞춘 뷰어 자동 크기 조정
+- 이름과 크기 정보가 있는 파일 표시
+
+## 옵션
+
+추가 설정 옵션은 없습니다. 양식을 업로드하고 작성한 뒤 다운로드하면 됩니다.
+
+## 활용 사례
+
+- 세금 양식, 보험 신청서, 관공서 서류 작성하기
+- PDF 첨부파일로 받은 입사 지원서 작성하기
+- 거래처 온보딩 양식이나 공급업체 설문지 작성하기
+- 체크박스 필드가 있는 규정 준수 체크리스트 승인하기
+- 진료 예약 전 문진표 작성하기
+
+## 팁
+
+- XFA 양식은 일부 PDF 뷰어에서만 지원되는 레거시 형식입니다. XFA PDF를 Chrome이나 대부분의 다른 도구에서 열었을 때 빈 페이지가 보인다면 해당 뷰어가 XFA를 지원하지 않기 때문입니다. BentoPDF의 양식 작성 도구와 Firefox는 XFA를 제대로 처리합니다.
+- 양식 필드가 없는 PDF는 먼저 [PDF 양식 만들기](./form-creator) 도구로 필드를 추가한 뒤 여기서 작성하세요.
+- 뷰어는 PDF의 페이지 크기에 맞게 자동으로 크기를 조정합니다.
+
+## 관련 도구
+
+- [PDF 양식 만들기](./form-creator)
+- [PDF 서명](./sign-pdf)
+- [PDF 편집기](./edit-pdf)
diff --git a/docs/ko/tools/header-footer.md b/docs/ko/tools/header-footer.md
new file mode 100644
index 00000000..9fa974c9
--- /dev/null
+++ b/docs/ko/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: 머리글 및 바닥글
+description: 페이지 번호 변수를 지원하는 사용자 지정 머리글과 바닥글 텍스트를 PDF 페이지에 추가합니다.
+---
+
+# 머리글 및 바닥글
+
+PDF 페이지의 여섯 위치(머리글 왼쪽, 가운데, 오른쪽, 바닥글 왼쪽, 가운데, 오른쪽)에 텍스트를 추가하세요. 페이지 번호와 전체 페이지 수를 나타내는 동적 변수를 지원하므로 "10페이지 중 3페이지"처럼 페이지마다 자동으로 바뀌는 템플릿을 만들 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드하세요.
+2. 서식 컨트롤과 여섯 개의 텍스트 입력란이 있는 옵션 패널이 나타납니다.
+3. 원하는 머리글/바닥글 위치에 텍스트를 입력하세요.
+4. 동적 페이지 번호에는 `{page}`와 `{total}` 자리 표시자를 사용하세요.
+5. 글꼴 크기와 글꼴 색상을 조정하고, 필요하면 특정 페이지 범위로 제한하세요.
+6. **머리글 및 바닥글 추가**를 클릭해 처리하고 다운로드하세요.
+
+## 옵션
+
+- **페이지 범위**: 머리글과 바닥글을 넣을 페이지를 제한할 수 있습니다. 비워 두면 모든 페이지에 적용됩니다. 형식: "1-3, 5"(쉼표로 구분한 범위).
+- **글꼴 크기**: 6~24포인트. 기본값은 10입니다.
+- **글꼴 색상**: 색상 선택기로 원하는 색을 고르세요.
+- **머리글 왼쪽 / 가운데 / 오른쪽**: 각 페이지 상단의 텍스트 필드.
+- **바닥글 왼쪽 / 가운데 / 오른쪽**: 각 페이지 하단의 텍스트 필드.
+
+## 기능
+
+- 페이지당 독립적인 여섯 개의 텍스트 위치
+- 현재 페이지 번호를 넣는 동적 `{page}` 변수
+- 전체 페이지 수를 넣는 동적 `{total}` 변수
+- 특정 페이지를 대상으로 하는 페이지 범위 필터링
+- 글꼴 크기와 색상 사용자 지정
+- 깔끔하고 전문적인 결과를 위한 Helvetica 글꼴
+
+## 활용 사례
+
+- 보고서 바닥글 가운데에 "{total}페이지 중 {page}페이지" 추가하기
+- 머리글 왼쪽에 회사 이름, 머리글 오른쪽에 문서 날짜 넣기
+- 법률 문서 바닥글에 기밀 유지 고지 추가하기
+- 특정 페이지 범위에 문서 개정 번호 찍기
+
+## 팁
+
+- `{page}`와 `{total}`을 한 필드에 함께 써서 "{total}페이지 중 {page}페이지"나 "{page}/{total}" 같은 형식을 만들 수 있습니다.
+- 필요한 위치만 채우고 나머지는 비워 두어도 됩니다. 빈 필드는 건너뜁니다.
+- 이미지나 로고가 들어가는 복잡한 머리글이 필요하면 페이지 상단에 배치한 [워터마크 추가](./add-watermark) 도구를 고려하세요.
+
+## 관련 도구
+
+- [페이지 번호](./page-numbers)
+- [워터마크 추가](./add-watermark)
+- [베이츠 번호 매기기](./bates-numbering)
diff --git a/docs/ko/tools/heic-to-pdf.md b/docs/ko/tools/heic-to-pdf.md
new file mode 100644
index 00000000..f361e8f5
--- /dev/null
+++ b/docs/ko/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC를 PDF로
+description: iPhone과 iPad의 HEIC 및 HEIF 이미지를 브라우저에서 바로 PDF로 변환합니다.
+---
+
+# HEIC를 PDF로
+
+HEIC/HEIF 이미지를 PDF로 변환합니다. HEIC는 iOS 11 이후 iPhone과 iPad의 기본 사진 형식입니다. 이 도구를 사용하면 데스크톱 소프트웨어를 설치하거나 서버에 파일을 업로드하지 않고도 사진을 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로 변환됩니다.
+
+## 활용 사례
+
+- 보험 청구서나 보고서에 첨부할 iPhone 사진으로 PDF 만들기
+- 부동산 매물용 HEIC 사진을 인쇄 가능한 문서 하나로 변환하기
+- iPad 스크린샷(HEIF 형식)을 공유 가능한 PDF로 만들기
+- 여행 일기용 휴가 사진 일괄 변환하기
+
+## 팁
+
+- HEIC 디코딩은 WebAssembly를 사용하여 전적으로 브라우저에서 이루어집니다. 디코더를 불러오는 동안 첫 변환은 시간이 조금 걸릴 수 있습니다.
+- HEIC를 다른 이미지 형식(JPG, PNG 등)과 함께 사용해야 한다면 HEIC를 포함한 모든 형식을 처리하는 [이미지를 PDF로](./image-to-pdf) 도구를 사용하세요.
+- iPhone의 HEIC 파일에는 GPS 좌표를 포함한 EXIF 데이터가 들어 있는 경우가 많습니다. PDF 출력에는 이 메타데이터가 전달되지 않습니다.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [JPG를 PDF로](./jpg-to-pdf)
+- [PNG를 PDF로](./png-to-pdf)
diff --git a/docs/ko/tools/image-to-pdf.md b/docs/ko/tools/image-to-pdf.md
new file mode 100644
index 00000000..8c267ceb
--- /dev/null
+++ b/docs/ko/tools/image-to-pdf.md
@@ -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로 합치기
+- 여러 형식의 이미지로 포토 포트폴리오나 룩북 만들기
+- 데스크톱 소프트웨어 설치 없이 iPhone 사진(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)
diff --git a/docs/ko/tools/index.md b/docs/ko/tools/index.md
new file mode 100644
index 00000000..6f224f3d
--- /dev/null
+++ b/docs/ko/tools/index.md
@@ -0,0 +1,183 @@
+# 도구 안내
+
+BentoPDF는 PDF 작업을 위한 **130개 이상의 도구**를 제공합니다. 모든 도구는 전적으로 브라우저에서 실행되므로 파일이 기기 밖으로 나가지 않습니다.
+
+---
+
+## 편집 및 주석
+
+다양한 편집 도구로 PDF 문서를 수정하고, 표시하고, 보강하세요.
+
+
+
+- [**PDF 편집기**](./edit-pdf): 주석, 하이라이트, 교정(가리기), 댓글, 도형/이미지 추가, 검색, PDF 보기.
+- [**북마크 편집**](./bookmark): PDF 북마크를 추가, 편집, 가져오기, 삭제, 추출합니다.
+- [**목차 생성**](./table-of-contents): PDF 북마크로 목차 페이지를 생성합니다.
+- [**페이지 번호**](./page-numbers): 문서에 페이지 번호를 삽입합니다.
+- [**페이지 레이블 추가**](./add-page-labels): 로마 숫자, 접두사, 사용자 지정 시작 번호로 PDF 페이지 레이블을 적용합니다.
+- [**베이츠 번호 매기기**](./bates-numbering): 하나 이상의 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): 빈 페이지를 자동으로 감지해 삭제합니다.
+
+
+
+---
+
+## PDF로 변환
+
+이미지, 문서, 전자책 및 기타 파일 형식을 PDF로 바꿉니다.
+
+
+
+- [**이미지를 PDF로**](./image-to-pdf): JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP 등을 PDF로 변환합니다.
+- [**JPG를 PDF로**](./jpg-to-pdf): 하나 이상의 JPG 이미지로 PDF를 만듭니다.
+- [**PNG를 PDF로**](./png-to-pdf): 하나 이상의 PNG 이미지로 PDF를 만듭니다.
+- [**WebP를 PDF로**](./webp-to-pdf): 하나 이상의 WebP 이미지로 PDF를 만듭니다.
+- [**SVG를 PDF로**](./svg-to-pdf): 하나 이상의 SVG 이미지로 PDF를 만듭니다.
+- [**BMP를 PDF로**](./bmp-to-pdf): 하나 이상의 BMP 이미지로 PDF를 만듭니다.
+- [**HEIC를 PDF로**](./heic-to-pdf): 하나 이상의 HEIC 이미지로 PDF를 만듭니다.
+- [**TIFF를 PDF로**](./tiff-to-pdf): 하나 이상의 TIFF 이미지로 PDF를 만듭니다.
+- [**텍스트를 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 형식으로 변환합니다.
+
+
+
+---
+
+## PDF에서 변환
+
+PDF의 내용을 이미지, 문서, 데이터 형식으로 추출합니다.
+
+
+
+- [**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): 만화 리더와 Calibre용으로 PDF를 CBZ(만화책 아카이브)로 변환합니다.
+- [**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 형식으로 변환합니다.
+- [**AI용 PDF 준비**](./prepare-pdf-for-ai): RAG/LLM 파이프라인용으로 PDF 내용을 LlamaIndex JSON으로 추출합니다.
+- [**PDF를 텍스트로**](./pdf-to-text): PDF 파일에서 텍스트를 추출해 일반 텍스트로 저장합니다.
+- [**PDF 표 추출**](./extract-tables): PDF의 표를 CSV, JSON, Markdown으로 추출합니다.
+
+
+
+---
+
+## 정리 및 관리
+
+PDF 페이지와 파일을 재배치, 병합, 분할, 관리합니다.
+
+
+
+- [**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의 첨부파일을 확인하거나 제거합니다.
+- [**PDF OCG**](./pdf-layers): PDF의 OCG 레이어를 보고, 전환하고, 추가하고, 삭제합니다.
+- [**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): 큰 페이지를 여러 개의 작은 페이지로 나눕니다.
+
+
+
+---
+
+## 최적화 및 복구
+
+더 나은 성능과 호환성을 위해 PDF를 압축, 수정, 최적화합니다.
+
+
+
+- [**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): 일관된 렌더링을 위해 모든 폰트를 벡터 윤곽선으로 변환합니다.
+
+
+
+---
+
+## PDF 보안
+
+PDF 문서를 보호하고, 암호화하고, 접근을 제어합니다.
+
+
+
+- [**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): 디지털 서명을 확인하고 인증서 세부 정보를 봅니다.
+
+
diff --git a/docs/ko/tools/invert-colors.md b/docs/ko/tools/invert-colors.md
new file mode 100644
index 00000000..c86959b5
--- /dev/null
+++ b/docs/ko/tools/invert-colors.md
@@ -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)
diff --git a/docs/ko/tools/jpg-to-pdf.md b/docs/ko/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..b214d702
--- /dev/null
+++ b/docs/ko/tools/jpg-to-pdf.md
@@ -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뿐 아니라 JPEG 2000 파일(`.jp2`, `.jpx`)도 완전히 지원합니다. 의료 영상과 지리 공간 데이터에 유용합니다.
+- 휴대폰 카메라로 찍은 JPG라면 중간 품질이 고품질보다 40~60% 작은 파일을 만들면서 화면에서는 눈에 띄는 차이가 없는 경우가 많습니다.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [PNG를 PDF로](./png-to-pdf)
+- [WebP를 PDF로](./webp-to-pdf)
diff --git a/docs/ko/tools/json-to-pdf.md b/docs/ko/tools/json-to-pdf.md
new file mode 100644
index 00000000..75eb8d5b
--- /dev/null
+++ b/docs/ko/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON을 PDF로
+description: BentoPDF의 JSON 형식에서 PDF 파일을 복원합니다. JSON으로 내보낸 파일을 원래 PDF 문서로 되돌립니다.
+---
+
+# JSON을 PDF로
+
+BentoPDF의 **PDF를 JSON으로** 도구로 이전에 만든 JSON 파일에서 PDF 문서를 복원합니다. PDF의 구조화된 JSON 표현을 받아 원래 문서를 다시 만드는 왕복 변환 도구입니다.
+
+::: warning
+이 도구는 BentoPDF의 PDF를 JSON으로 변환기가 만든 JSON 파일만 허용합니다. API, 데이터베이스, 다른 도구에서 가져온 일반 JSON 파일은 지원되지 않습니다.
+:::
+
+## 지원 형식
+
+| 입력 | 설명 |
+| :------ | :------------------------------------------------ |
+| `.json` | BentoPDF의 PDF를 JSON으로 도구로 내보낸 JSON 파일 |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 JSON 파일을 하나 이상 끌어다 놓으세요.
+2. 파일 목록에 선택한 각 파일이 크기와 함께 표시됩니다.
+3. **PDF로 변환**을 클릭하세요. 도구가 Web Worker와 CPDF 엔진으로 모든 파일을 처리합니다.
+4. 결과는 입력한 JSON 파일마다 PDF 하나씩을 담은 `jsons-to-pdf.zip`으로 다운로드됩니다.
+
+변환은 백그라운드 Web Worker에서 실행되므로 큰 파일에서도 UI가 계속 반응합니다.
+
+## 옵션
+
+이 도구에는 설정할 수 있는 옵션이 없습니다. JSON 구조가 출력 PDF를 완전히 결정합니다.
+
+## 출력
+
+여러 JSON 파일을 변환하면 결과가 ZIP 아카이브로 제공됩니다. 각 PDF는 원본 JSON 파일 이름을 따릅니다(예: `report.json`은 `report.pdf`가 됨).
+
+## 활용 사례
+
+- JSON 기반 백업 또는 보관 파이프라인에서 PDF 복원하기
+- PDF를 JSON으로 변환해 확인한 뒤 다시 PDF로 되돌리기
+- JSON 구조를 프로그램으로 수정한 후 문서 다시 만들기
+- PDF를 JSON으로 내보낸 결과가 문서 내용을 모두 담았는지 다시 변환해 검증하기
+
+## 팁
+
+- API 응답이나 설정 파일 같은 임의의 JSON 데이터를 서식 있는 PDF로 변환하려면 [텍스트를 PDF로](./txt-to-pdf) 도구가 더 적합합니다. JSON을 텍스트로 붙여넣으면 적절한 서식으로 렌더링됩니다.
+- 이 도구가 작동하려면 CPDF WebAssembly 엔진을 사용할 수 있어야 합니다. 직접 호스팅하는 인스턴스는 CPDF WASM 파일을 설정해야 합니다.
+
+## 관련 도구
+
+- [텍스트를 PDF로](./txt-to-pdf)
+- [Markdown을 PDF로](./markdown-to-pdf)
+- [CSV를 PDF로](./csv-to-pdf)
diff --git a/docs/ko/tools/linearize-pdf.md b/docs/ko/tools/linearize-pdf.md
new file mode 100644
index 00000000..f6382f03
--- /dev/null
+++ b/docs/ko/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PDF 선형화
+description: 점진적 로딩으로 빠르게 웹에서 볼 수 있도록 PDF 파일을 최적화합니다. "빠른 웹 보기" 최적화라고도 합니다.
+---
+
+# PDF 선형화
+
+선형화는 파일 전체를 다운로드하기 전에 첫 페이지를 표시할 수 있도록 PDF를 재구성합니다. Adobe는 이를 "빠른 웹 보기"라고 부릅니다. 웹사이트에 PDF를 올리거나 문서 포털로 제공한다면 선형화로 훨씬 빠르게 열리는 느낌을 줄 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 하나 이상 업로드하세요.
+2. **PDF 선형화**를 클릭하세요.
+3. 선형화된 모든 파일이 담긴 ZIP 아카이브로 결과를 다운로드하세요.
+
+설정할 항목은 없습니다. 이 도구는 QPDF의 `--linearize` 플래그를 사용하며, 시각적 콘텐츠는 바꾸지 않고 PDF의 내부 구조만 재배열합니다.
+
+## 선형화가 하는 일
+
+- 첫 페이지의 데이터가 파일 맨 앞에 오도록 PDF 객체 순서를 재정렬
+- 뷰어가 각 페이지의 위치를 알 수 있도록 선형화 사전과 힌트 테이블 추가
+- 바이트 범위 요청 지원: 브라우저가 파일 전체를 받지 않고 첫 페이지만 가져올 수 있음
+- 효율적인 임의 접근을 위해 상호 참조 테이블 정리
+
+## 기능
+
+- 한 번의 작업으로 여러 PDF 일괄 처리
+- 출력물이 모든 콘텐츠, 폰트, 이미지, 대화형 요소를 보존
+- 안정적이고 표준을 준수하는 선형화를 위해 QPDF(WebAssembly) 사용
+- 쉬운 다운로드를 위해 결과를 ZIP으로 묶음
+
+## 활용 사례
+
+- 사용자가 즉시 페이지가 표시되길 기대하는 웹사이트에 PDF 보고서 올리기
+- 브라우저 내 뷰어가 있는 웹 애플리케이션에 PDF 삽입하기
+- 느린 모바일 연결로 접근하는 PDF 카탈로그나 매뉴얼 게시하기
+- 바이트 범위 제공을 지원하는 콘텐츠 전송 네트워크(CDN)용 문서 준비하기
+
+## 팁
+
+- 다른 모든 편집이 끝난 뒤에 선형화하세요. 이후 수정(병합, 페이지 추가 등)을 하면 선형화가 깨집니다.
+- PDF 압축과 함께 사용하면 가장 작고 가장 빠르게 로드되는 PDF를 만들 수 있습니다.
+- 선형화로 파일 크기가 약간 늘어납니다(보통 1% 미만).
+
+## 관련 도구
+
+- [PDF 압축](./compress-pdf): 선형화 전에 파일 크기 줄이기
+- [PDF 복구](./repair-pdf): 선형화를 막는 구조적 문제 해결
+- [메타데이터 제거](./remove-metadata): 온라인 게시 전에 메타데이터 제거
diff --git a/docs/ko/tools/markdown-to-pdf.md b/docs/ko/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..923b8328
--- /dev/null
+++ b/docs/ko/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown을 PDF로
+description: Markdown을 작성하거나 붙여넣고 실시간 미리보기와 구문 강조가 적용된 전문적인 서식의 PDF로 내보냅니다.
+---
+
+# Markdown을 PDF로
+
+실시간 미리보기와 원클릭 PDF 내보내기를 갖춘 다기능 Markdown 편집기입니다. 처음부터 작성하거나 기존 `.md` 파일을 업로드하거나 클립보드의 내용을 붙여넣을 수 있습니다. 편집기는 Markdown을 실시간으로 렌더링하고 브라우저의 내장 인쇄 엔진으로 스타일이 적용된 PDF를 내보냅니다.
+
+## 지원 형식
+
+| 입력 | 설명 |
+| :--------- | :--------------------------- |
+| `.md` 파일 | 업로드 버튼으로 업로드 |
+| 직접 입력 | 편집기에 입력하거나 붙여넣기 |
+
+## 사용 방법
+
+1. Markdown을 PDF로 도구를 여세요. 편집기가 분할 보기로 열리며 왼쪽에는 Markdown 소스, 오른쪽에는 렌더링된 미리보기가 표시됩니다.
+2. Markdown을 작성하거나 붙여넣거나 **업로드**를 클릭해 `.md` 파일을 불러오세요.
+3. 도구 모음의 테마 슬라이더로 라이트와 다크 테마를 전환하세요.
+4. **PDF 내보내기**를 클릭하거나 `Ctrl/Cmd + S`를 눌러 브라우저의 인쇄 대화상자로 PDF를 생성하세요.
+
+## 기능
+
+편집기는 기본 기능 외에도 폭넓은 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 아키텍처 다이어그램이 있는 기술 보고서 만들기
+- GitHub README를 오프라인 사용이나 인쇄용 PDF로 변환하기
+- 작업 목록과 표를 사용해 제안서나 명세서 초안 작성하기
+- Markdown으로 쓴 강의 노트로 스타일이 적용된 유인물 만들기
+
+## 팁
+
+- PDF 출력은 브라우저의 PDF로 인쇄 기능을 사용합니다. Chrome에서는 저장하기 전에 인쇄 대화상자에서 여백과 배율을 조정할 수 있습니다.
+- Mermaid 다이어그램은 미리보기에 렌더링되지만 처음 사용할 때는 초기화에 잠시 시간이 걸릴 수 있습니다.
+- 버튼을 누르지 않고 내보내려면 `Ctrl/Cmd + S` 단축키를 사용하세요.
+
+## 관련 도구
+
+- [텍스트를 PDF로](./txt-to-pdf)
+- [Word를 PDF로](./word-to-pdf)
+- [JSON을 PDF로](./json-to-pdf)
diff --git a/docs/ko/tools/merge-pdf.md b/docs/ko/tools/merge-pdf.md
new file mode 100644
index 00000000..d4623e04
--- /dev/null
+++ b/docs/ko/tools/merge-pdf.md
@@ -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`)으로 페이지 모드로 전환하지 않고도 원하는 페이지만 선택
+- 지연 로딩되는 페이지 썸네일로 큰 문서에서도 UI가 원활하게 동작
+- 파일 수나 전체 페이지 수에 제한 없음
+- 재인코딩 없이 원본 PDF 품질 유지
+
+## 옵션
+
+| 옵션 | 설명 |
+| --------------- | ------------------------------------------------------------------------------------ |
+| **파일 모드** | 전체 파일을 원하는 순서로 병합하며, 파일별 페이지 범위 필터를 선택적으로 사용 |
+| **페이지 모드** | 모든 파일의 모든 페이지를 보여주는 시각적 그리드로, 썸네일을 끌어 원하는 순서를 구성 |
+| **페이지 입력** | `1-3, 5` 같은 범위를 받아 특정 페이지만 포함하는 파일별 텍스트 필드 |
+
+## 활용 사례
+
+- 장별로 나뉜 PDF를 책이나 보고서 하나로 합치기
+- 자기소개서와 이력서를 지원서 문서 하나로 병합하기
+- 여러 원본 문서에서 특정 페이지만 뽑아 하나의 파일로 통합하기
+- 스캔한 영수증이나 청구서를 보관용 PDF 하나로 모으기
+- 여러 슬라이드 덱의 슬라이드로 발표 유인물 만들기
+
+## 팁
+
+- 파일을 차례로 이어 붙이는 대신 서로 다른 파일의 페이지를 교차로 배치해야 한다면 페이지 모드를 사용하세요.
+- **파일 더 추가** 버튼으로 처음 업로드한 후에도 현재 배치를 잃지 않고 파일을 더 추가할 수 있습니다.
+- 페이지 범위는 1부터 시작하므로 `1`은 해당 파일의 첫 페이지를 뜻합니다.
+
+## 관련 도구
+
+- [PDF 분할](./split-pdf)
+- [복제 및 정리](./organize-pdf)
+- [페이지 교차 병합](./alternate-merge)
+- [페이지 삭제](./delete-pages)
diff --git a/docs/ko/tools/mobi-to-pdf.md b/docs/ko/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..30296446
--- /dev/null
+++ b/docs/ko/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI를 PDF로
+description: MOBI 전자책 파일을 브라우저에서 바로 PDF로 변환합니다. 무료, 개인정보 보호, 파일 업로드 없음.
+---
+
+# MOBI를 PDF로
+
+Amazon Kindle MOBI 전자책을 PDF 문서로 변환합니다. MOBI 파일은 Kindle 기기와 앱에 묶여 있어 다른 곳에서 읽기 어렵습니다. PDF로 변환하면 어떤 기기에서든 열거나 인쇄할 수 있는 휴대용 버전을 얻게 됩니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :--- | :------ | :----------------------------- |
+| MOBI | `.mobi` | Kindle 전자책 형식(Mobipocket) |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 MOBI 파일을 하나 이상 끌어다 놓으세요.
+2. 파일 목록을 확인하세요. 휴지통 아이콘으로 불필요한 파일을 제거하거나 **파일 더 추가**로 전자책을 더 넣을 수 있습니다.
+3. **PDF로 변환**을 클릭하세요. PyMuPDF 엔진이 MOBI 구조를 분석하고 각 페이지를 PDF 콘텐츠로 렌더링합니다.
+4. 파일 하나는 PDF로 다운로드됩니다. 여러 파일을 변환하면 `mobi-converted.zip`이라는 ZIP 아카이브를 받게 됩니다.
+
+## 옵션
+
+추가 설정은 필요하지 않습니다. 변환은 원본 MOBI 파일의 텍스트 콘텐츠, 서식, 포함된 이미지를 그대로 보존합니다.
+
+## 활용 사례
+
+- PDF만 지원하는 Kindle 외 전자책 리더에서 Kindle에서 구매한 콘텐츠 읽기
+- 오프라인 학습이나 주석 작성을 위해 전자책의 일부 장 인쇄하기
+- 개인 전자책 라이브러리를 범용 형식으로 보관하기
+- Kindle 앱이 없는 사람과 발췌본 공유하기
+
+## 팁
+
+- DRM으로 보호된 MOBI 파일은 변환할 수 없습니다. 이 도구는 DRM이 없는 MOBI 파일에서만 작동합니다.
+- 이미지가 많이 포함된 큰 전자책은 모든 작업이 브라우저에서 이루어지므로 처리에 몇 초 더 걸릴 수 있습니다.
+
+## 관련 도구
+
+- [EPUB를 PDF로](./epub-to-pdf)
+- [FB2를 PDF로](./fb2-to-pdf)
+- [CBZ를 PDF로](./cbz-to-pdf)
diff --git a/docs/ko/tools/n-up-pdf.md b/docs/ko/tools/n-up-pdf.md
new file mode 100644
index 00000000..74c7e90e
--- /dev/null
+++ b/docs/ko/tools/n-up-pdf.md
@@ -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)
diff --git a/docs/ko/tools/ocr-pdf.md b/docs/ko/tools/ocr-pdf.md
new file mode 100644
index 00000000..cae567dd
--- /dev/null
+++ b/docs/ko/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Tesseract OCR로 스캔한 PDF를 검색하고 복사할 수 있게 만듭니다. 다국어 지원과 문자 필터링을 제공합니다.
+---
+
+# OCR PDF
+
+스캔한 문서를 검색하고 복사할 수 있는 PDF로 바꾸세요. 이 도구는 Tesseract OCR로 이미지 속 텍스트를 인식하고 원본 페이지 위에 보이지 않는 텍스트 레이어를 덧씌웁니다. 시각적 모습은 그대로 유지하면서 내용을 완전히 검색할 수 있게 됩니다.
+
+## 사용 방법
+
+1. 스캔한 PDF 또는 이미지 기반 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)
diff --git a/docs/ko/tools/odg-to-pdf.md b/docs/ko/tools/odg-to-pdf.md
new file mode 100644
index 00000000..12a9f3a4
--- /dev/null
+++ b/docs/ko/tools/odg-to-pdf.md
@@ -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로 바로 다운로드됩니다. 여러 파일은 `odg-to-pdf.zip`이라는 ZIP 아카이브로 제공됩니다.
+
+## 옵션
+
+추가 설정은 필요하지 않습니다. 변환은 ODG 원본의 페이지 크기, 도형, 커넥터, 텍스트 상자를 그대로 보존합니다.
+
+## 활용 사례
+
+- LibreOffice가 설치되어 있지 않은 고객과 LibreOffice Draw 다이어그램 공유하기
+- Draw에서 만든 순서도와 네트워크 다이어그램 인쇄하기
+- ODG 일러스트를 임베디드 PDF로 보고서나 프레젠테이션에 포함하기
+- 수십 년간 읽을 수 있는 형식으로 기술 도면 보관하기
+
+## 팁
+
+- 벡터 요소는 PDF 출력에서도 벡터로 유지되므로 어떤 인쇄 크기로도 깔끔하게 확대할 수 있습니다.
+- LibreOffice 엔진은 처음 사용할 때 초기화에 잠시 시간이 걸립니다. 같은 세션에서 그다음부터는 변환이 더 빠릅니다.
+
+## 관련 도구
+
+- [ODS를 PDF로](./ods-to-pdf)
+- [ODP를 PDF로](./odp-to-pdf)
+- [VSD를 PDF로](./vsd-to-pdf)
diff --git a/docs/ko/tools/odp-to-pdf.md b/docs/ko/tools/odp-to-pdf.md
new file mode 100644
index 00000000..dfb00982
--- /dev/null
+++ b/docs/ko/tools/odp-to-pdf.md
@@ -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로 다운로드됩니다. 여러 파일은 `odp-to-pdf.zip`이라는 ZIP 아카이브로 제공됩니다.
+
+## 옵션
+
+설정할 항목은 없습니다. 각 슬라이드는 원래 크기로 렌더링되며 텍스트, 이미지, 도형, 슬라이드 배경이 보존됩니다.
+
+## 활용 사례
+
+- 청중에게 유인물 PDF로 프레젠테이션 배포하기
+- ODP보다 PDF를 선호하는 사람들과 Google Slides 내보내기 공유하기
+- 학회 발표와 강의를 읽기 전용 형식으로 보관하기
+- 대면 워크숍용 슬라이드 덱 인쇄하기
+
+## 팁
+
+- 슬라이드 전환과 애니메이션은 시각 효과 전용 기능이라 PDF로 옮겨지지 않지만 모든 정적 콘텐츠는 올바르게 렌더링됩니다.
+- 발표자 노트는 PDF 출력에 포함되지 않습니다. 노트가 필요하면 프레젠테이션 소프트웨어에서 따로 내보내세요.
+- 다른 LibreOffice 기반 도구와 마찬가지로 엔진은 처음 사용할 때 로드되며 세션 동안 캐시된 상태로 유지됩니다.
+
+## 관련 도구
+
+- [ODG를 PDF로](./odg-to-pdf)
+- [ODS를 PDF로](./ods-to-pdf)
+- [PUB를 PDF로](./pub-to-pdf)
diff --git a/docs/ko/tools/ods-to-pdf.md b/docs/ko/tools/ods-to-pdf.md
new file mode 100644
index 00000000..744d2b78
--- /dev/null
+++ b/docs/ko/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS를 PDF로
+description: LibreOffice Calc(ODS) 스프레드시트를 브라우저에서 PDF로 변환합니다. 무료, 개인정보 보호, 회원가입 불필요.
+---
+
+# ODS를 PDF로
+
+OpenDocument Spreadsheet 파일을 PDF로 변환합니다. ODS는 LibreOffice Calc의 기본 형식이며 Google Sheets에서도 흔히 내보내는 형식입니다. 이 도구는 스프레드시트의 데이터, 서식, 차트를 페이지로 나뉜 PDF로 렌더링하여 인쇄하거나 공유할 수 있게 해줍니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 비고 |
+| :----------------------- | :----- | :---------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | LibreOffice Calc / Google Sheets 내보내기 |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 ODS 파일을 끌어다 놓습니다. 여러 파일을 지원합니다.
+2. 파일 목록을 확인합니다. 휴지통 아이콘으로 파일을 제거하거나 **파일 더 추가**를 클릭해 일괄 작업을 확장할 수 있습니다.
+3. **PDF로 변환**을 클릭합니다. LibreOffice 기반 엔진이 브라우저에 로드되어 각 스프레드시트를 PDF 페이지로 렌더링합니다.
+4. 스프레드시트 하나는 PDF로 다운로드됩니다. 여러 파일은 `ods-to-pdf.zip`으로 묶입니다.
+
+## 옵션
+
+별도 설정은 필요하지 않습니다. 변환기는 스프레드시트의 기존 인쇄 레이아웃, 셀 서식, 열 너비를 PDF 출력에 그대로 적용합니다.
+
+## 활용 사례
+
+- PDF만 받는 상대에게 LibreOffice Calc 예산표나 보고서 공유하기
+- ODS로 내려받은 Google Sheets 내보내기 파일 인쇄하기
+- 재무 기록을 편집할 수 없는 형식으로 보관하기
+- ODS 기반 양식이나 근무 시간표를 고정 레이아웃 문서로 제출하기
+
+## 팁
+
+- 스프레드시트에 시트가 여러 개 있으면 모든 시트가 PDF 출력에 포함됩니다.
+- 매우 넓은 스프레드시트는 PDF에서 가로로 여러 페이지에 걸칠 수 있습니다. 레이아웃이 중요하다면 변환 전에 원본 파일의 열 너비를 조정하세요.
+- LibreOffice 엔진은 처음 사용할 때 초기화됩니다. 같은 세션에서 이후 변환은 더 빠릅니다.
+
+## 관련 도구
+
+- [ODG를 PDF로](./odg-to-pdf)
+- [ODP를 PDF로](./odp-to-pdf)
+- [XML을 PDF로](./xml-to-pdf)
diff --git a/docs/ko/tools/odt-to-pdf.md b/docs/ko/tools/odt-to-pdf.md
new file mode 100644
index 00000000..476adccd
--- /dev/null
+++ b/docs/ko/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT를 PDF로
+description: LibreOffice 기반 엔진으로 OpenDocument Text(ODT) 파일을 브라우저에서 PDF로 변환합니다.
+---
+
+# ODT를 PDF로
+
+OpenDocument Text 파일을 PDF로 변환합니다. ODT는 LibreOffice Writer, Apache OpenOffice 및 기타 오픈소스 워드 프로세서의 기본 형식입니다. 이 도구는 브라우저 기반 LibreOffice 엔진을 사용해 서식, 표, 이미지, 스타일을 그대로 유지하는 정확한 변환을 제공합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 |
+| :---------------- | :----- |
+| OpenDocument Text | `.odt` |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 ODT 파일을 하나 이상 끌어다 놓습니다.
+2. 파일 목록을 확인합니다. 파일을 더 추가하거나 필요 없는 파일을 제거할 수 있습니다.
+3. **PDF로 변환**을 클릭합니다. LibreOffice 엔진이 초기화되고(진행 표시기에 로드 상태가 표시됩니다) 각 파일이 변환됩니다.
+4. 파일 하나는 PDF로 바로 다운로드됩니다. 여러 파일은 `odt-converted.zip`으로 묶입니다.
+
+## 옵션
+
+이 도구에는 추가 설정이 없습니다. 변환 시 원본 문서의 서식을 최대한 그대로 유지합니다.
+
+## 출력
+
+| 입력 수 | 출력 |
+| :------------ | :-------------------------------------------------------- |
+| 파일 1개 | PDF 한 개 다운로드 (예: `document.pdf`) |
+| 파일 2개 이상 | 파일당 PDF 하나가 담긴 ZIP 압축 파일(`odt-converted.zip`) |
+
+## 활용 사례
+
+- LibreOffice Writer 문서를 Microsoft Office 사용자와 공유하기 위해 PDF로 변환하기
+- OpenDocument 형식으로 작성한 학술 논문에서 인쇄용 PDF 만들기
+- ODT 템플릿 폴더를 배포용 PDF로 일괄 변환하기
+- 자동 문서 생성 시스템이 만든 ODT 파일에서 PDF 생성하기
+
+## 팁
+
+- 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)
diff --git a/docs/ko/tools/organize-pdf.md b/docs/ko/tools/organize-pdf.md
new file mode 100644
index 00000000..38636712
--- /dev/null
+++ b/docs/ko/tools/organize-pdf.md
@@ -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)
diff --git a/docs/ko/tools/page-dimensions.md b/docs/ko/tools/page-dimensions.md
new file mode 100644
index 00000000..a95d89ee
--- /dev/null
+++ b/docs/ko/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: 페이지 크기 정보
+description: PDF 페이지 크기, 방향, 가로세로 비율, 회전을 분석합니다. 크기가 섞인 문서를 감지하고 데이터를 CSV로 내보냅니다.
+---
+
+# 페이지 크기 정보
+
+PDF의 모든 페이지를 읽어 정확한 크기, 방향, 표준 용지 이름, 가로세로 비율, 면적, 회전을 보고하는 진단 도구입니다. 인쇄 전에 크기가 섞인 페이지를 찾아내거나 받은 PDF의 속성을 문서화할 때 유용합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다. 분석이 자동으로 시작되므로 누를 버튼이 없습니다.
+2. 요약 패널에 전체 페이지 수, 고유한 페이지 크기 수, 문서에 크기가 섞여 있는지 여부가 표시됩니다.
+3. 페이지별 세부 정보가 담긴 전체 결과 표를 살펴봅니다.
+4. 표시 단위를 포인트, 인치, 밀리미터, 픽셀 중에서 전환합니다.
+5. **CSV로 내보내기**를 클릭해 데이터를 저장합니다.
+
+## 보고 항목
+
+| 열 | 설명 |
+| ------------- | ----------------------------------------------- |
+| 페이지 # | 순차 페이지 번호 |
+| 크기 | 선택한 단위의 너비 x 높이 |
+| 표준 크기 | 일치하는 이름(A4, Letter 등) 또는 "사용자 지정" |
+| 방향 | 세로 또는 가로 |
+| 가로세로 비율 | 너비 대 높이 비율(소수) |
+| 면적 | 선택한 단위의 제곱으로 나타낸 페이지 면적 |
+| 회전 | 페이지 회전 각도(도) |
+
+## 기능
+
+- 표준 용지 크기(A3, A4, A5, Letter, Legal, Tabloid 등) 자동 감지
+- 어떤 크기가 몇 페이지에 쓰였는지 보여주는 크기 혼합 문서 경고
+- 포인트, 인치, 밀리미터, 픽셀(96 PPI 기준) 간 단위 변환
+- 스프레드시트나 문서 관리 시스템에서 쓸 수 있는 CSV 내보내기
+
+## 활용 사례
+
+- 인쇄소에 문서를 제출하기 전에 모든 페이지가 A4인지 확인하기
+- 병합한 PDF가 특정 페이지에서 예상치 못한 여백으로 인쇄되는 원인 진단하기
+- 대규모 PDF 보관소의 페이지 레이아웃을 메타데이터 기록으로 문서화하기
+- 보정이 필요한 회전된 페이지 찾기
+
+## 팁
+
+- 요약에 "크기 혼합"이 표시되면 인쇄 전에 페이지 크기 통일 도구로 크기를 맞추세요.
+- 회전 필드는 올바르게 표시되지만 회전 속성이 0이 아닌 페이지를 찾는 데 도움이 되며, 이런 페이지는 일부 워크플로우에서 문제를 일으킬 수 있습니다.
+
+## 관련 도구
+
+- [페이지 크기 통일](./fix-page-size): 크기가 섞인 페이지를 찾은 뒤 표준화
+- [PDF 압축](./compress-pdf): 페이지 문제를 해결한 뒤 PDF 최적화
+- [PDF 회전](./rotate-pdf): 회전된 페이지 보정
diff --git a/docs/ko/tools/page-numbers.md b/docs/ko/tools/page-numbers.md
new file mode 100644
index 00000000..38b53257
--- /dev/null
+++ b/docs/ko/tools/page-numbers.md
@@ -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-numbering)
+- [머리글 및 바닥글](./header-footer)
diff --git a/docs/ko/tools/pdf-booklet.md b/docs/ko/tools/pdf-booklet.md
new file mode 100644
index 00000000..df4dafb6
--- /dev/null
+++ b/docs/ko/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: PDF 소책자
+description: 접고 스테이플로 고정해 실제 소책자를 만들 수 있도록 PDF 페이지를 소책자(중철) 순서로 재배열합니다.
+---
+
+# PDF 소책자
+
+PDF 페이지를 소책자 면부착 순서로 재배열합니다. 양면 인쇄 후 반으로 접으면 페이지가 올바른 읽기 순서가 됩니다. 중철 소책자와 진(zine)에 쓰이는 레이아웃입니다.
+
+## 사용 방법
+
+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)
diff --git a/docs/ko/tools/pdf-layers.md b/docs/ko/tools/pdf-layers.md
new file mode 100644
index 00000000..aaa20e17
--- /dev/null
+++ b/docs/ko/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: PDF OCG 레이어
+description: PDF 문서의 선택적 콘텐츠 그룹(OCG) 레이어를 보고, 전환하고, 추가하고, 삭제합니다.
+---
+
+# PDF OCG 레이어
+
+PDF 안의 선택적 콘텐츠 그룹(OCG), 흔히 "레이어"라고 부르는 항목을 관리합니다. 레이어 표시 여부를 전환하고, 새 레이어(중첩된 하위 레이어 포함)를 추가하고, 레이어를 삭제한 뒤 수정된 PDF를 저장할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 처리 버튼을 클릭해 PyMuPDF 엔진으로 문서를 불러옵니다.
+3. 도구가 기존 레이어를 표시 상태, 잠금 상태, 중첩 계층과 함께 보여줍니다.
+4. 체크박스를 전환해 레이어를 표시하거나 숨깁니다. 잠긴 레이어는 전환할 수 없습니다.
+5. 이름을 입력하고 추가 버튼을 클릭해 새 최상위 레이어를 추가하거나, 기존 상위 레이어 아래에 하위 레이어를 추가합니다.
+6. 더 이상 필요 없는 레이어를 삭제합니다.
+7. **저장**을 클릭해 레이어 변경 사항이 적용된 PDF를 다운로드합니다.
+
+## 기능
+
+- 중첩된 레이어를 올바른 들여쓰기로 계층 구조 표시
+- 레이어 표시 켜기/끄기 전환
+- 실수로 변경하는 것을 막아주는 잠금 레이어 표시
+- 사용자 지정 이름으로 최상위 또는 하위 레이어 추가
+- 개별 레이어 삭제
+- 모든 변경 사항을 새 PDF 파일로 저장
+
+## 활용 사례
+
+- 건축 또는 엔지니어링 도면에서 마크업 레이어 표시 전환하기
+- 여러 레이어로 된 디자인 문서에 새 주석 레이어 추가하기
+- 템플릿을 배포하기 전에 더 이상 쓰지 않는 레이어 제거하기
+- 외부에서 받은 복잡한 PDF에 어떤 레이어가 있는지 확인하기
+
+## 팁
+
+- PDF에 레이어가 없으면 도구가 빈 상태와 함께 레이어 추가 안내를 표시합니다. 모든 PDF가 OCG 레이어를 사용하는 것은 아니며, CAD 내보내기와 디자인 파일에서 가장 흔합니다.
+- 하위 레이어는 상위 레이어 아래에 들여쓰기되어 표시됩니다. 레이어는 원하는 깊이까지 중첩할 수 있습니다.
+- 잠긴 레이어는 잠금 아이콘과 함께 표시되며 체크박스가 비활성화됩니다. 이 잠금은 PDF 작성자가 설정한 것입니다.
+
+## 관련 도구
+
+- [메타데이터 보기](./view-metadata)
+- [메타데이터 편집](./edit-metadata)
+- [복제 및 정리](./organize-pdf)
diff --git a/docs/ko/tools/pdf-multi-tool.md b/docs/ko/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..bc34699d
--- /dev/null
+++ b/docs/ko/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: PDF 멀티 도구
+description: PDF 페이지의 병합, 분할, 회전, 복제, 삭제, 재정렬, 크기 조정을 한곳에서 처리하는 올인원 페이지 관리 도구입니다.
+---
+
+# PDF 멀티 도구
+
+모든 페이지 단위 PDF 작업을 위한 통합 작업 공간입니다. PDF를 하나 이상 업로드하면 모든 페이지를 하나의 시각적 그리드에서 다룰 수 있습니다. 회전, 재정렬, 복제, 삭제, PDF와 이미지, 빈 페이지 삽입, 페이지 번호 다시 매기기, 크기 조정, 결과 분할까지 도구를 벗어나지 않고 모두 처리합니다.
+
+## 사용 방법
+
+1. **파일 선택**을 클릭하거나 업로드 영역에 파일을 끌어다 놓습니다. 여러 파일을 지원하며, 업로드한 순서대로 병합됩니다.
+2. 모든 페이지가 미리보기와 함께 스크롤 가능한 그리드에 표시됩니다.
+3. 페이지를 클릭하면 선택됩니다. Shift 키를 누른 채 클릭하면 범위를 선택하고, Cmd/Ctrl 키를 누른 채 클릭하면 개별 페이지를 선택에 추가하거나 선택에서 뺍니다.
+4. 오거나이저 도구 모음을 사용하거나 페이지를 마우스 오른쪽 버튼으로 클릭해 페이지 작업을 실행합니다.
+5. **PDF 내보내기**를 클릭해 최종 결과를 다운로드합니다.
+
+## 기능
+
+- **병합**: 여러 PDF와 이미지를 업로드하면 하나의 문서로 자동 결합됩니다
+- **재정렬**: 페이지를 끌어다 놓아 순서를 바꾸거나 문서 전체의 순서를 뒤집습니다
+- **회전**: 선택한 페이지를 90도 단위로 왼쪽 또는 오른쪽으로 회전합니다
+- **복제**: 선택한 페이지를 복사해 바로 뒤에 배치합니다
+- **삭제**: 선택한 페이지를 제거합니다
+- **삽입**: 다른 PDF나 이미지의 페이지, 빈 페이지, 클립보드의 페이지를 추가하거나, 두 번째 PDF의 페이지를 현재 페이지와 번갈아 끼워 넣습니다
+- **교체**: 페이지를 다른 PDF의 첫 페이지로 바꿉니다
+- **잘라내기, 복사, 붙여넣기**: 문서 안에서 페이지를 이동하거나 복사합니다
+- **추출**: 선택한 페이지를 PDF 또는 이미지로 다운로드합니다
+- **페이지 번호**: 페이지 범위에 i, ii, iii 또는 A-1, A-2 같은 페이지 레이블을 지정합니다
+- **페이지 크기**: 페이지를 표준 용지 크기나 사용자 지정 크기에 맞춥니다
+- **분할**: 페이지 범위, 홀수 및 짝수 페이지, 한 페이지씩, 북마크, N페이지마다, 파일 크기 기준으로 문서를 나눕니다
+- **실행 취소 / 다시 실행**: 모든 페이지 작업을 실행 취소하고 다시 실행할 수 있습니다
+- 불러오기 전에 손상된 PDF를 자동 복구
+
+## 키보드 단축키
+
+| 작업 | 단축키 |
+| ------------------------ | ----------------------------- |
+| 오른쪽 / 왼쪽으로 회전 | R / Shift+R |
+| 모두 선택 | Cmd/Ctrl+A |
+| 잘라내기, 복사, 붙여넣기 | Cmd/Ctrl+X, C, V |
+| 복제 | Cmd/Ctrl+D |
+| 삭제 | Delete 또는 Backspace |
+| 실행 취소 / 다시 실행 | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| 선택 영역 이동 | 화살표 키, Home, End |
+
+## 활용 사례
+
+- 여러 원본 PDF의 페이지로 사용자 지정 문서 만들기
+- 빈 페이지 삭제, 옆으로 누운 스캔 회전, 섹션 재정렬로 스캔 문서 정리하기
+- 북마크를 이용해 큰 PDF를 챕터 경계에서 분할하기
+- 전체 PDF 편집기 없이 빠르게 페이지 단위 편집하기
+
+## 팁
+
+- 실행 취소/다시 실행 기록은 모든 페이지 작업을 추적합니다. 마음껏 사용하세요. 작업 내용을 실수로 잃을 일은 없습니다.
+- **Insert > From File**을 사용하거나 언제든지 페이지 그리드에 PDF나 이미지를 더 끌어다 놓으면 문서에 추가됩니다.
+- 단순한 병합이나 분할 작업에는 전용 [PDF 병합](./merge-pdf) 또는 [PDF 분할](./split-pdf) 도구가 더 빠를 수 있습니다. 멀티 도구는 한 세션에서 여러 작업이 필요할 때 빛을 발합니다.
+
+## 관련 도구
+
+- [PDF 병합](./merge-pdf)
+- [PDF 분할](./split-pdf)
+- [복제 및 정리](./organize-pdf)
+- [PDF 회전](./rotate-pdf)
diff --git a/docs/ko/tools/pdf-to-bmp.md b/docs/ko/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..cc5fa013
--- /dev/null
+++ b/docs/ko/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF를 BMP로
+description: PDF 페이지를 비압축 BMP 이미지로 변환합니다. 비트맵 입력이 필요한 레거시 시스템과 인쇄 워크플로우에 유용합니다.
+---
+
+# PDF를 BMP로
+
+PDF의 각 페이지를 BMP(비트맵) 이미지로 변환합니다. BMP는 비압축 형식이므로 품질 손실 없이 픽셀 단위로 정확한 결과를 얻을 수 있지만 파일 크기가 큽니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. **변환**을 클릭해 파일을 처리합니다.
+3. `.bmp` 파일 하나 또는 ZIP 압축 파일이 자동으로 다운로드됩니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 페이지는 고정된 2배 배율로 렌더링되어, PDF 원래 페이지 크기의 약 두 배인 이미지가 만들어집니다.
+
+## 출력 형식
+
+- **한 페이지**: `filename.bmp`
+- **여러 페이지**: `page_1.bmp`, `page_2.bmp` 등이 담긴 `filename_bmps.zip`
+
+## 활용 사례
+
+- BMP 입력만 받는 레거시 시스템이나 장비에 PDF 페이지 전달하기
+- 특정 인쇄 워크플로우를 위한 비압축 이미지 준비하기
+- 원시 픽셀 데이터가 필요한 이미지 처리 도구의 입력으로 비트맵 출력 사용하기
+
+## 팁
+
+- BMP 파일은 압축 없이 원시 픽셀 데이터를 저장하므로 매우 큽니다. 대부분의 용도에서는 [PDF를 PNG로](./pdf-to-png)가 무손실 품질에 훨씬 작은 파일을 제공합니다.
+- 대상 시스템이 PNG나 TIFF를 받는다면 디스크 공간을 아끼기 위해 해당 형식을 선택하세요.
+
+## 관련 도구
+
+- [PDF를 PNG로](./pdf-to-png)
+- [PDF를 TIFF로](./pdf-to-tiff)
+- [PDF를 JPG로](./pdf-to-jpg)
diff --git a/docs/ko/tools/pdf-to-cbz.md b/docs/ko/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..4491071e
--- /dev/null
+++ b/docs/ko/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF를 CBZ로
+description: PDF를 Komga, Kavita, CDisplayEx, Calibre 같은 만화 리더용 CBZ(만화책 아카이브) 파일로 변환합니다.
+---
+
+# 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 압축 파일입니다.
+
+페이지 이미지는 0으로 채운 번호(`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)
diff --git a/docs/ko/tools/pdf-to-csv.md b/docs/ko/tools/pdf-to-csv.md
new file mode 100644
index 00000000..5bc199f8
--- /dev/null
+++ b/docs/ko/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF를 CSV로
+description: PDF 문서에서 표를 추출해 하나의 CSV 파일로 내보냅니다. 자동 표 감지로 여러 페이지 PDF도 처리합니다.
+---
+
+# PDF를 CSV로
+
+PDF에서 표를 추출해 CSV 파일로 내보냅니다. PyMuPDF의 표 감지 엔진으로 모든 페이지에서 표 형태의 데이터를 찾고, 발견한 모든 행을 하나의 쉼표로 구분된 출력에 기록합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. **변환**을 클릭해 표 추출을 시작합니다.
+3. 도구가 각 페이지를 스캔하여 표를 자동으로 식별합니다.
+4. 추출한 모든 표 데이터가 담긴 `.csv` 파일이 다운로드됩니다.
+
+서로 다른 페이지의 표는 출력에서 빈 행으로 구분됩니다. 쉼표, 따옴표, 줄바꿈이 포함된 셀은 RFC 4180에 따라 올바르게 이스케이프됩니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 문서에서 발견된 모든 표가 추출되어 하나의 CSV로 합쳐집니다.
+
+## 출력 형식
+
+- 감지된 모든 표가 담긴 `filename.csv` 파일 하나.
+
+## 활용 사례
+
+- PDF 은행 명세서나 청구서의 재무 데이터를 스프레드시트로 가져오기
+- 공급업체 견적서의 가격표를 추출해 비교하기
+- PDF 논문의 표 형태 연구 데이터를 분석 도구에 맞는 형식으로 변환하기
+- 레거시 PDF 보고서의 데이터를 데이터베이스로 이전하기
+
+## 팁
+
+- 표를 찾지 못하면 도구가 "표를 찾을 수 없음" 메시지를 표시합니다. 보통 PDF가 표처럼 보이지만 실제 표로 구조화되지 않은 텍스트 레이아웃을 사용한다는 뜻입니다.
+- 개별 표를 더 세밀하게 제어하려면 CSV, JSON, Markdown 출력 형식 중에서 고를 수 있는 [PDF 표 추출](./extract-tables)을 사용하세요.
+- 표마다 별도 시트가 있는 Excel 형식이 필요하다면 [PDF를 Excel로](./pdf-to-excel)를 사용하세요.
+
+## 관련 도구
+
+- [PDF를 Excel로](./pdf-to-excel)
+- [PDF 표 추출](./extract-tables)
+- [PDF를 텍스트로](./pdf-to-text)
diff --git a/docs/ko/tools/pdf-to-excel.md b/docs/ko/tools/pdf-to-excel.md
new file mode 100644
index 00000000..3aea39a2
--- /dev/null
+++ b/docs/ko/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF를 Excel로
+description: PDF 문서의 표를 Excel 스프레드시트로 추출합니다. 각 표는 페이지 정보가 포함된 별도의 워크시트가 됩니다.
+---
+
+# PDF를 Excel로
+
+PDF에서 표를 추출해 Excel(`.xlsx`) 스프레드시트로 저장합니다. 감지된 각 표는 표 번호와 원본 페이지가 표시된 별도의 워크시트에 배치됩니다. 표 감지는 PyMuPDF가, Excel 생성은 SheetJS 라이브러리가 담당합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. **변환**을 클릭해 표 추출을 시작합니다.
+3. 도구가 모든 페이지에서 표를 스캔한 뒤 Excel 통합 문서를 만듭니다.
+4. 표당 시트 하나가 있는 `.xlsx` 파일이 다운로드됩니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 감지된 모든 표가 자동으로 추출됩니다.
+
+## 출력 형식
+
+- `filename.xlsx` 파일 하나.
+- **표 하나**: "Table"이라는 이름의 워크시트 하나.
+- **표 여러 개**: "Table 1 (Page 3)", "Table 2 (Page 5)" 등의 이름이 붙은 워크시트. 시트 이름은 Excel 제한인 31자로 잘립니다.
+
+## 활용 사례
+
+- PDF 재무 보고서를 추가 분석을 위한 편집 가능한 스프레드시트로 변환하기
+- 공급업체 PDF에서 재고나 주문 표 추출하기
+- PDF 양식이나 카탈로그의 구조화된 데이터를 정렬과 필터링을 위해 Excel로 가져오기
+- 표 형태의 PDF 데이터를 비전문가 동료도 다룰 수 있는 형식으로 보관하기
+
+## 팁
+
+- 도구가 "표를 찾을 수 없음"이라고 알려준다면 PDF가 구조화된 표가 아닌 자유로운 텍스트 레이아웃을 사용했을 가능성이 높습니다. 대신 [PDF를 텍스트로](./pdf-to-text)로 원본 내용을 가져와 보세요.
+- 더 단순한 평면 형식은 [PDF를 CSV로](./pdf-to-csv)를 사용하세요. 여러 형식으로 표별 다운로드가 필요하면 [PDF 표 추출](./extract-tables)을 사용하세요.
+- 시트 이름을 보면 각 표가 어느 페이지에서 왔는지 알 수 있습니다.
+
+## 관련 도구
+
+- [PDF를 CSV로](./pdf-to-csv)
+- [PDF 표 추출](./extract-tables)
+- [PDF를 텍스트로](./pdf-to-text)
diff --git a/docs/ko/tools/pdf-to-greyscale.md b/docs/ko/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..a9ecab00
--- /dev/null
+++ b/docs/ko/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF 흑백 변환
+description: 컬러 PDF를 흑백 버전으로 변환합니다. 모든 페이지에서 색상이 제거된 새 PDF를 만듭니다.
+---
+
+# PDF 흑백 변환
+
+컬러 PDF를 흑백 버전으로 변환합니다. 각 페이지를 렌더링하고 채도를 제거한 뒤 JPEG 이미지로 새 PDF에 다시 삽입합니다. 출력은 원래 페이지 크기를 유지합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. **변환**을 클릭해 파일을 처리합니다.
+3. 모든 페이지가 흑백으로 변환된 새 `greyscale.pdf`가 다운로드됩니다.
+
+내부적으로 각 페이지를 2배 배율로 렌더링하고, 픽셀 데이터에 흑백 필터를 적용한 뒤, 품질 90%의 JPEG로 다시 인코딩하여 새 PDF 문서에 배치합니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 흑백 변환은 표준 휘도 공식을 사용하며 JPEG 품질은 90%로 고정되어 있습니다.
+
+## 출력 형식
+
+- 모든 페이지가 흑백 JPEG 이미지로 들어 있는 `greyscale.pdf` 파일 하나.
+
+## 활용 사례
+
+- 컬러 잉크 비용을 아끼기 위해 흑백 인쇄용 문서 준비하기
+- 흑백을 요구하는 법률 또는 정부 제출 요건 충족하기
+- 컬러 비중이 큰 PDF의 파일 크기 줄이기(흑백 JPEG 이미지는 컬러보다 작습니다)
+- 컬러와 흑백 페이지가 섞인 문서들의 시각적 스타일 통일하기
+
+## 팁
+
+- 각 페이지가 래스터화되어 JPEG로 다시 삽입되므로 출력은 이미지 기반입니다. 원본 PDF의 텍스트는 더 이상 선택하거나 검색할 수 없습니다. 이후 검색 가능한 텍스트가 필요하면 출력을 OCR 도구에 넣어 처리하세요.
+- 색상 조정(밝기, 대비, 채도)을 더 세밀하게 제어하려면 색상 조정 도구나 [PDF 워크플로우 빌더](./pdf-workflow)의 흑백 노드를 살펴보세요.
+
+## 관련 도구
+
+- [PDF를 JPG로](./pdf-to-jpg)
+- [PDF를 PNG로](./pdf-to-png)
+- [PDF 워크플로우 빌더](./pdf-workflow)
diff --git a/docs/ko/tools/pdf-to-jpg.md b/docs/ko/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..928b3238
--- /dev/null
+++ b/docs/ko/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF를 JPG로
+description: 품질을 조절하여 PDF 페이지를 JPG 이미지로 변환합니다. 한 페이지 PDF는 바로 다운로드되고 여러 페이지 PDF는 ZIP으로 내보냅니다.
+---
+
+# PDF를 JPG로
+
+PDF의 각 페이지를 JPG 이미지로 변환합니다. 한 페이지 문서는 독립된 `.jpg` 파일로 다운로드됩니다. 여러 페이지 PDF는 페이지당 JPG 하나가 담긴 ZIP 압축 파일이 만들어집니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다. 도구에 파일 이름, 파일 크기, 페이지 수가 표시됩니다.
+2. **품질** 슬라이더로 JPG 압축을 조절합니다.
+3. **변환**을 클릭해 처리를 시작합니다.
+4. 결과가 자동으로 다운로드됩니다. 한 페이지 PDF는 JPG 하나, 여러 페이지 문서는 ZIP 파일입니다.
+
+## 옵션
+
+- **품질**: 0%에서 100%까지의 슬라이더(기본값 90%). 값이 높을수록 이미지가 선명하고 파일이 커집니다. 값이 낮을수록 더 강하게 압축됩니다.
+
+페이지는 내부적으로 2배 배율로 렌더링되므로 출력 해상도는 PDF 페이지 크기의 두 배입니다. 표준 Letter 크기 페이지는 약 1,224 x 1,584 픽셀 이미지가 됩니다.
+
+## 출력 형식
+
+- **한 페이지**: `filename.jpg`
+- **여러 페이지**: `page_1.jpg`, `page_2.jpg` 등이 담긴 `filename_jpgs.zip`
+
+## 활용 사례
+
+- 문서 관리 시스템용 미리보기 썸네일 생성하기
+- PDF를 지원하지 않는 채팅이나 이메일로 보고서의 한 페이지 공유하기
+- PDF 다이어그램이나 일러스트에서 이미지 자산 만들기
+- 스캔한 문서를 개별 이미지로 보관하기
+
+## 팁
+
+- 무손실 출력이 필요하면 [PDF를 PNG로](./pdf-to-png)를 대신 사용하세요.
+- 품질 80-90% 설정이 파일 크기와 시각적 충실도 사이의 좋은 균형입니다.
+- 페이지마다 특정 형식이 필요하면 PDF를 이미지로 내보내는 출력 노드가 있는 [PDF 워크플로우 빌더](./pdf-workflow)를 고려해 보세요.
+
+## 관련 도구
+
+- [PDF를 PNG로](./pdf-to-png)
+- [PDF를 WebP로](./pdf-to-webp)
+- [PDF를 BMP로](./pdf-to-bmp)
+- [PDF를 TIFF로](./pdf-to-tiff)
diff --git a/docs/ko/tools/pdf-to-json.md b/docs/ko/tools/pdf-to-json.md
new file mode 100644
index 00000000..b6839f58
--- /dev/null
+++ b/docs/ko/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF를 JSON으로
+description: CPDF를 사용해 PDF 파일을 구조화된 JSON 형식으로 변환합니다. PDF 내부 구조를 기계가 읽을 수 있는 JSON 데이터로 내보냅니다.
+---
+
+# PDF를 JSON으로
+
+PDF 파일을 하나 이상 JSON 형식으로 변환합니다. 이 도구는 CPDF(Coherent PDF)를 사용해 각 PDF의 내부 구조를 기계가 읽을 수 있는 JSON 표현으로 직렬화합니다. 출력은 항상 ZIP 압축 파일로 제공됩니다.
+
+## 사용 방법
+
+1. 파일 선택기로 PDF 파일을 하나 이상 선택합니다.
+2. **변환**을 클릭해 처리를 시작합니다. 변환은 백그라운드 웹 워커에서 실행됩니다.
+3. 입력한 PDF마다 JSON 파일 하나가 담긴 ZIP 압축 파일이 다운로드됩니다.
+
+상태 표시줄에 변환과 ZIP 생성 단계의 진행 상황이 표시됩니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 각 PDF는 전체 JSON 표현으로 변환됩니다.
+
+## 출력 형식
+
+- 입력한 PDF마다 `filename.json`이 담긴 `pdfs-to-json.zip` 파일.
+
+JSON 출력은 페이지 트리, 글꼴 참조, 메타데이터, 콘텐츠 스트림을 포함한 PDF의 내부 개체 구조를 나타냅니다.
+
+## 활용 사례
+
+- 디버깅이나 검증을 위해 PDF의 내부 구조 살펴보기
+- 구조화된 메타데이터와 페이지 속성을 프로그래밍 방식으로 추출하기
+- PDF 구조 데이터를 맞춤형 처리 파이프라인에 전달하기
+- 개체 트리를 분석해 규정 준수를 위한 PDF 문서 감사하기
+
+## 팁
+
+- 이 도구는 추출된 텍스트 콘텐츠가 아닌 원시 PDF 개체 구조를 출력합니다. 페이지 텍스트를 JSON 형식으로 원한다면 [AI용 PDF 준비](./prepare-pdf-for-ai)를 사용하세요.
+- 일반 텍스트 추출에는 [PDF를 텍스트로](./pdf-to-text)가 더 간단합니다.
+- 구조가 복잡한 큰 PDF는 매우 큰 JSON 파일을 만듭니다.
+
+## 관련 도구
+
+- [PDF를 텍스트로](./pdf-to-text)
+- [AI용 PDF 준비](./prepare-pdf-for-ai)
+- [PDF 표 추출](./extract-tables)
diff --git a/docs/ko/tools/pdf-to-markdown.md b/docs/ko/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..7de9f39d
--- /dev/null
+++ b/docs/ko/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF를 Markdown으로
+description: PDF 문서를 선택적 이미지 추출과 함께 Markdown 형식으로 변환합니다. 여러 파일 일괄 변환을 지원합니다.
+---
+
+# PDF를 Markdown으로
+
+PDF 파일을 제목, 문단, 목록, 기본 서식을 유지하며 Markdown(`.md`) 형식으로 변환합니다. 포함된 이미지를 추출해 함께 넣을 수도 있습니다. 단일 변환과 일괄 변환을 지원하며 PyMuPDF를 기반으로 합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 하나 이상 업로드합니다.
+2. 필요하면 **이미지 포함**을 켜서 추출한 이미지를 Markdown 출력에 포함합니다.
+3. **변환**을 클릭해 처리를 시작합니다.
+4. 파일 하나는 `filename.md`로 다운로드됩니다. 여러 파일은 `markdown-files.zip`이 만들어집니다.
+
+## 옵션
+
+- **이미지 포함**: 체크하면 PDF에 포함된 이미지가 추출되어 Markdown 출력에서 참조됩니다. 체크를 해제하면 텍스트 콘텐츠만 변환됩니다.
+
+## 출력 형식
+
+- **파일 하나**: `filename.md`
+- **파일 여러 개**: 입력한 PDF마다 `.md` 하나가 담긴 `markdown-files.zip`
+
+## 활용 사례
+
+- PDF 문서를 VitePress, Hugo, Jekyll 같은 정적 사이트 생성기용 Markdown으로 변환하기
+- PDF 연구 논문을 Obsidian 같은 노트 앱에서 쓸 수 있는 편집 가능한 Markdown으로 바꾸기
+- 레거시 PDF 지식 베이스를 Git 친화적인 텍스트 형식으로 이전하기
+- PDF 전자책에서 구조화된 콘텐츠를 추출해 다시 편집하기
+
+## 팁
+
+- 이미지 포함 옵션은 PDF에 콘텐츠에 필수적인 다이어그램이나 그림이 있을 때 유용합니다. 텍스트 위주 문서에서는 출력을 깔끔하게 유지하려면 끄세요.
+- 사이드바, 각주, 다단 텍스트가 있는 복잡한 레이아웃은 Markdown이 완벽하지 않을 수 있습니다. 필요에 따라 출력을 검토하고 수정하세요.
+- 서식이 전혀 없는 원시 텍스트가 필요하면 [PDF를 텍스트로](./pdf-to-text)를 대신 사용하세요.
+
+## 관련 도구
+
+- [PDF를 텍스트로](./pdf-to-text)
+- [PDF를 Word로](./pdf-to-word)
+- [AI용 PDF 준비](./prepare-pdf-for-ai)
diff --git a/docs/ko/tools/pdf-to-pdfa.md b/docs/ko/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..8260eca1
--- /dev/null
+++ b/docs/ko/tools/pdf-to-pdfa.md
@@ -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는 장기 디지털 보존을 위해 설계된 ISO 표준 PDF 하위 집합입니다. 이 도구는 브라우저에서 직접 실행되는 Ghostscript로 일반 PDF를 PDF/A 규격 문서로 변환합니다.
+
+## 사용 방법
+
+1. PDF 파일을 하나 이상 업로드합니다.
+2. 드롭다운에서 **PDF/A 버전**을 선택합니다.
+3. 일반 변환이 실패하는 복잡한 파일이라면 **사전 평탄화**를 선택적으로 켭니다.
+4. **PDF/A로 변환**을 클릭합니다. 여러 파일은 ZIP 압축 파일로 만들어집니다.
+
+## PDF/A 버전
+
+| 버전 | 제한 사항 | 적합한 용도 |
+| ------------ | ---------------------------------------------- | -------------------------------------- |
+| **PDF/A-1b** | 가장 엄격함. 투명도와 레이어를 사용할 수 없음. | 오래된 보관 시스템과의 최대 호환성 |
+| **PDF/A-2b** | 투명도와 JPEG2000을 허용. | 범용 보관 (권장) |
+| **PDF/A-3b** | 모든 형식의 첨부 파일 포함을 허용. | 원본 데이터 파일이 함께 있는 문서 보관 |
+
+PDF/A-2b가 기본으로 선택되어 있으며 대부분의 보관 요구를 충족합니다.
+
+## 사전 평탄화 옵션
+
+일부 PDF에는 특이한 글꼴 인코딩, 복잡한 투명도 스택, 손상된 내부 구조처럼 깔끔한 PDF/A 변환을 방해하는 요소가 있습니다. **사전 평탄화**를 켜면 변환 전에 PDF를 300 DPI로 래스터화하여 규정 준수를 보장하지만, 대신 텍스트를 선택할 수 없게 됩니다. 표준 변환에서 오류가 발생할 때의 대안으로 사용하세요.
+
+사전 평탄화에는 PyMuPDF WASM 엔진이 필요합니다.
+
+## 활용 사례
+
+- 정부 또는 법률 보관 요건 충족하기 (많은 관할권이 법원 제출 문서에 PDF/A를 의무화합니다)
+- 기관 저장소나 디지털 도서관에 문서 제출하기
+- 10년 뒤에는 원본 소프트웨어가 없을 수 있는 업무 기록 보존하기
+- XML 첨부가 있는 PDF/A-3b를 요구하는 전자 청구서 표준에 맞춰 청구서 준비하기
+
+## 팁
+
+- 먼저 사전 평탄화 없이 변환을 시도하세요. 오류가 발생할 때만 켜세요.
+- PDF/A는 모든 글꼴을 포함하므로 출력 파일이 원본보다 큰 경우가 많습니다.
+- 워크플로우에서 엄격한 준수가 필요하다면 전용 PDF/A 검증기로 출력을 검증하세요.
+
+## 관련 도구
+
+- [PDF 압축](./compress-pdf): 변환 후 파일 크기 줄이기
+- [PDF 평탄화](./flatten-pdf): PDF/A로 변환하기 전에 양식 평탄화
+- [메타데이터 제거](./remove-metadata): 보관 전에 메타데이터 제거
diff --git a/docs/ko/tools/pdf-to-png.md b/docs/ko/tools/pdf-to-png.md
new file mode 100644
index 00000000..18469ad5
--- /dev/null
+++ b/docs/ko/tools/pdf-to-png.md
@@ -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`
+- **여러 페이지**: `page_1.png`, `page_2.png` 등이 담긴 `filename_pngs.zip`
+
+## 활용 사례
+
+- 프레젠테이션용으로 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)
diff --git a/docs/ko/tools/pdf-to-svg.md b/docs/ko/tools/pdf-to-svg.md
new file mode 100644
index 00000000..a8c016d1
--- /dev/null
+++ b/docs/ko/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF를 SVG로
+description: PDF 페이지를 확장 가능한 SVG 벡터 그래픽으로 변환합니다. 텍스트와 도형을 벡터 경로로 유지하여 무한히 확대할 수 있습니다.
+---
+
+# PDF를 SVG로
+
+PDF의 각 페이지를 SVG(Scalable Vector Graphics) 파일로 변환합니다. 래스터 형식과 달리 SVG는 벡터 경로, 텍스트, 도형을 유지하므로 출력이 어떤 크기로 확대해도 깨지지 않습니다. PyMuPDF를 기반으로 합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 하나 이상 업로드합니다. 여러 파일을 추가하고 개별적으로 관리할 수 있습니다.
+2. **변환**을 클릭해 업로드한 모든 파일을 처리합니다.
+3. 파일 하나에 페이지 하나인 변환은 독립된 `.svg`로 다운로드됩니다. 그 외에는 ZIP 압축 파일로 다운로드됩니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 각 페이지는 PyMuPDF의 기본 벡터 내보내기로 SVG로 변환됩니다.
+
+## 출력 형식
+
+- **파일 하나, 페이지 하나**: `filename.svg`
+- **파일 하나, 페이지 여러 개**: `page_1.svg`, `page_2.svg` 등이 담긴 `filename_svg.zip`
+- **파일 여러 개**: 원본 문서 이름별로 정리된 파일이 담긴 `pdf_to_svg.zip`
+
+## 활용 사례
+
+- PDF 보고서의 벡터 다이어그램, 차트, 일러스트를 웹 페이지용으로 추출하기
+- Inkscape나 Illustrator 같은 벡터 편집기에서 PDF 페이지 콘텐츠 편집하기
+- 반응형 웹 애플리케이션에 확장 가능한 페이지 미리보기 삽입하기
+- 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)
diff --git a/docs/ko/tools/pdf-to-text.md b/docs/ko/tools/pdf-to-text.md
new file mode 100644
index 00000000..364decf7
--- /dev/null
+++ b/docs/ko/tools/pdf-to-text.md
@@ -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마다 `.txt` 하나가 담긴 `pdf-to-text.zip`
+
+## 활용 사례
+
+- 전체 텍스트 검색 색인용으로 PDF 보고서의 본문 추출하기
+- 전자잉크 기기에서 읽을 수 있도록 PDF 전자책이나 기사를 일반 텍스트로 변환하기
+- 키워드 분석을 위해 계약서나 법률 문서에서 텍스트 가져오기
+- 데이터 처리 스크립트용으로 PDF의 서식을 제거해 깨끗한 텍스트 얻기
+- PDF 보관소에서 자연어 처리용 텍스트 말뭉치 준비하기
+
+## 팁
+
+- 스캔한 PDF(이미지만 있는 경우)는 추출할 텍스트 레이어가 없으므로 빈 텍스트 파일이 만들어집니다. 스캔 문서는 먼저 OCR을 거치세요.
+- 출력은 PyMuPDF가 해석한 읽기 순서를 유지하며, 일반적으로 왼쪽에서 오른쪽, 위에서 아래로 따릅니다. 다단 레이아웃은 텍스트가 뒤섞일 수 있습니다.
+- 제목과 서식이 있는 구조화된 출력은 [PDF를 Markdown으로](./pdf-to-markdown)를 사용해 보세요. AI에 바로 쓸 수 있는 구조화된 JSON은 [AI용 PDF 준비](./prepare-pdf-for-ai)를 사용하세요.
+
+## 관련 도구
+
+- [PDF를 Markdown으로](./pdf-to-markdown)
+- [AI용 PDF 준비](./prepare-pdf-for-ai)
+- [PDF를 Word로](./pdf-to-word)
diff --git a/docs/ko/tools/pdf-to-tiff.md b/docs/ko/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..1b7459f7
--- /dev/null
+++ b/docs/ko/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF를 TIFF로
+description: 인쇄, 팩스, 보관 워크플로우에서 흔히 쓰는 TIFF 이미지로 PDF 페이지를 변환합니다. 인코딩에 실패하면 PNG로 대체됩니다.
+---
+
+# PDF를 TIFF로
+
+PDF의 각 페이지를 TIFF 이미지로 변환합니다. TIFF는 인쇄 제작, 팩스 시스템, 문서 보관의 표준 형식입니다. 이 도구는 TIFF 인코딩에 PackBits 압축을 사용하며, 페이지 인코딩에 실패하면 PNG로 대체합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. **변환**을 클릭해 파일을 처리합니다.
+3. TIFF 파일 하나 또는 ZIP 압축 파일이 자동으로 다운로드됩니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 페이지는 고정된 2배 배율로 렌더링됩니다.
+
+## 출력 형식
+
+- **한 페이지**: `filename.tiff`
+- **여러 페이지**: `page_1.tiff`, `page_2.tiff` 등이 담긴 `filename_tiffs.zip`
+
+특정 페이지의 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)
diff --git a/docs/ko/tools/pdf-to-webp.md b/docs/ko/tools/pdf-to-webp.md
new file mode 100644
index 00000000..7036311f
--- /dev/null
+++ b/docs/ko/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF를 WebP로
+description: 품질을 조절하여 PDF 페이지를 WebP 이미지로 변환합니다. 비슷한 화질에서 JPG보다 파일 크기가 작습니다.
+---
+
+# PDF를 WebP로
+
+PDF의 각 페이지를 WebP 이미지로 변환합니다. WebP는 같은 체감 화질에서 보통 JPG보다 파일이 25-35% 작아 웹 용도에 좋은 선택입니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 업로드합니다.
+2. **품질** 슬라이더를 조절합니다.
+3. **변환**을 클릭해 파일을 처리합니다.
+4. `.webp` 파일 하나 또는 ZIP 압축 파일이 자동으로 다운로드됩니다.
+
+## 옵션
+
+- **품질**: 0%에서 100%까지의 슬라이더(기본값 85%). 손실 압축 수준을 조절합니다. 값이 높을수록 더 많은 세부 사항이 유지됩니다.
+
+페이지는 내부적으로 2배 배율로 렌더링되어 PDF 원래 크기의 약 두 배인 이미지가 만들어집니다.
+
+## 출력 형식
+
+- **한 페이지**: `filename.webp`
+- **여러 페이지**: `page_1.webp`, `page_2.webp` 등이 담긴 `filename_webps.zip`
+
+## 활용 사례
+
+- 대역폭이 중요한 웹사이트용 페이지 미리보기 준비하기
+- 소셜 미디어용으로 전단지나 브로슈어의 가벼운 이미지 버전 만들기
+- 여러 페이지 문서를 웹에 최적화된 이미지 세트로 일괄 변환하기
+
+## 팁
+
+- WebP는 모든 최신 브라우저에서 지원됩니다. 레거시 호환이 필요하면 [PDF를 JPG로](./pdf-to-jpg)를 사용하세요.
+- 품질 80-85%는 보통 화면에서 원본과 구분되지 않으면서 파일 크기를 작게 유지합니다.
+
+## 관련 도구
+
+- [PDF를 JPG로](./pdf-to-jpg)
+- [PDF를 PNG로](./pdf-to-png)
+- [PDF를 BMP로](./pdf-to-bmp)
diff --git a/docs/ko/tools/pdf-to-word.md b/docs/ko/tools/pdf-to-word.md
new file mode 100644
index 00000000..dfd31ba6
--- /dev/null
+++ b/docs/ko/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF를 Word로
+description: PDF 파일을 편집 가능한 Word(DOCX) 문서로 변환합니다. 여러 PDF의 일괄 변환을 지원합니다.
+---
+
+# PDF를 Word로
+
+PDF 파일을 편집 가능한 Word(`.docx`) 문서로 변환합니다. 이 도구는 PyMuPDF로 문서 내용을 재구성하여 텍스트, 기본 서식, 레이아웃을 유지합니다. 단일 변환과 일괄 변환을 지원합니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 하나 이상 업로드합니다. 목록에서 파일을 더 추가하거나 개별 파일을 제거할 수 있습니다.
+2. **변환**을 클릭해 처리를 시작합니다.
+3. 파일 하나는 `filename.docx`로 다운로드됩니다. 여러 파일은 `converted-documents.zip`으로 묶입니다.
+
+## 옵션
+
+이 도구에는 설정 가능한 옵션이 없습니다. 각 PDF는 PyMuPDF의 내장 변환 엔진으로 DOCX로 변환됩니다.
+
+## 출력 형식
+
+- **파일 하나**: `filename.docx`
+- **파일 여러 개**: 입력한 PDF마다 `.docx` 하나가 담긴 `converted-documents.zip`
+
+## 활용 사례
+
+- 받은 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)
diff --git a/docs/ko/tools/pdf-to-zip.md b/docs/ko/tools/pdf-to-zip.md
new file mode 100644
index 00000000..1edc53bc
--- /dev/null
+++ b/docs/ko/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF를 ZIP으로
+description: 여러 PDF 파일을 하나의 ZIP 압축 파일로 묶어 쉽게 공유하고 보관합니다.
+---
+
+# PDF를 ZIP으로
+
+여러 PDF 파일을 하나의 ZIP 압축 파일로 묶습니다. PDF 자체를 변환, 압축, 수정하지 않는 단순한 묶음 도구입니다.
+
+## 사용 방법
+
+1. 드롭 영역으로 PDF 파일을 여러 개 업로드합니다.
+2. 파일 목록을 확인합니다. 포함하고 싶지 않은 파일은 제거합니다.
+3. 처리 버튼을 클릭합니다.
+4. 업로드한 모든 PDF가 담긴 ZIP 압축 파일이 바로 다운로드됩니다.
+
+## 기능
+
+- 개수 제한 없이 PDF 파일 허용
+- 압축 파일을 만들기 전에 파일별 제거
+- ZIP 안에서 원래 파일 이름 유지
+- PDF 내용은 수정하지 않고 파일을 그대로 묶음
+- 업로드한 각 PDF의 파일 이름과 크기 표시
+
+## 활용 사례
+
+- 이메일 첨부를 위해 청구서나 영수증 묶음 만들기
+- 인수인계를 위해 프로젝트 산출물(PDF 보고서 여러 개) 묶기
+- 양식이나 템플릿 모음을 한 번에 내려받을 수 있게 만들기
+- 문서 묶음을 하나의 압축 파일로 보관하기
+
+## 팁
+
+- ZIP 파일은 원래 PDF 파일 이름을 사용합니다. 이름이 같은 파일이 있으면 충돌을 피하기 위해 업로드 전에 이름을 바꾸세요.
+- 이 도구는 PDF 자체를 압축하지 않습니다. 파일 크기를 줄이려면 먼저 PDF 압축을 거친 뒤 이 도구로 묶으세요.
+
+## 관련 도구
+
+- [PDF 병합](./merge-pdf)
+- [PDF 분할](./split-pdf)
+- [PDF 압축](./compress-pdf)
diff --git a/docs/ko/tools/pdf-workflow.md b/docs/ko/tools/pdf-workflow.md
new file mode 100644
index 00000000..607907b5
--- /dev/null
+++ b/docs/ko/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: PDF 워크플로우 빌더
+description: 캔버스에서 노드를 연결해 사용자 지정 PDF 처리 파이프라인을 시각적으로 만듭니다. 병합, 압축, 워터마크, 내보내기 같은 작업을 연결합니다.
+---
+
+# PDF 워크플로우 빌더
+
+워크플로우 빌더를 사용하면 여러 PDF 작업을 하나의 자동화된 파이프라인으로 연결할 수 있습니다. 도구를 하나씩 실행하는 대신 입력, 처리, 출력 노드로 이루어진 시각적 그래프를 구성하고 클릭 한 번으로 모두 실행합니다. 파일은 브라우저 밖으로 나가지 않습니다.
+
+## 사용 방법
+
+인터페이스는 왼쪽의 **노드 도구 상자**, 가운데의 **캔버스**, 노드를 선택하면 오른쪽에 나타나는 **설정 패널**의 세 패널로 나뉩니다.
+
+1. 왼쪽 사이드바에서 노드를 클릭하거나 캔버스로 직접 끌어다 놓아 **노드를 추가**합니다. 도구 상자 상단의 검색창으로 이름을 필터링할 수 있습니다.
+2. 출력 소켓(노드 아래쪽)에서 다른 노드의 입력 소켓(위쪽)으로 끌어 **노드를 연결**합니다. 연결은 위에서 아래로 흐릅니다.
+3. 노드를 클릭해 오른쪽에 설정 패널을 열어 **설정을 구성**합니다. 노드 유형마다 고유한 옵션(페이지 범위, 품질 슬라이더, 비밀번호 등)이 있습니다.
+4. 도구 모음의 **실행** 버튼을 클릭해 **워크플로우를 실행**합니다. 엔진이 노드를 위상 순서로 실행하며 하나씩 순서대로 처리합니다. 하단의 상태 표시줄에서 진행 상황을 확인할 수 있습니다.
+5. **결과 다운로드**: 마지막 다운로드 노드가 최종 PDF(여러 파일이 만들어지면 ZIP)를 저장합니다.
+
+## 노드 카테고리
+
+노드는 여섯 개의 카테고리로 구성되며 캔버스에서 각각 색상으로 구분됩니다.
+
+- **입력** (파랑): PDF 입력, 이미지 입력, Word/Excel/PowerPoint를 PDF로, 그리고 파이프라인에 파일을 공급하는 15개 이상의 다른 형식 변환기.
+- **편집 및 주석** (남색): 자르기, 흑백, 색상 반전, 워터마크, 페이지 번호, 머리글 및 바닥글, 스캔 효과, 색상 조정, 배경색, 빈 페이지 제거, 주석 제거.
+- **정리 및 관리** (보라): 병합, 분할, 페이지 추출, 회전, 페이지 삭제, 역순, 빈 페이지 추가, 페이지 분할, N-Up, 페이지 크기 통일, 한 페이지로 합치기, 소책자, 포스터화, 메타데이터 편집, 목차, OCR.
+- **최적화 및 복구** (호박색): 압축, 래스터화, 선형화, 기울기 보정, PDF를 PDF/A로, 폰트 윤곽선 변환, 복구.
+- **PDF 보안** (장미색): 암호화, 복호화, 정리, 평탄화, 디지털 서명, 교정(Redact).
+- **출력** (청록): 다운로드(단일 PDF와 ZIP을 자동 감지), PDF를 이미지로, PDF를 텍스트로, PDF를 DOCX로, PDF를 XLSX로, PDF를 CSV로, PDF를 SVG로, PDF를 Markdown으로, 이미지 추출.
+
+## 워크플로우 저장 및 불러오기
+
+도구 모음은 네 가지 보존 옵션을 제공합니다.
+
+- **저장**: 현재 워크플로우를 브라우저의 로컬 저장소에 이름이 있는 템플릿으로 저장합니다. 여러 템플릿을 저장할 수 있습니다.
+- **불러오기**: 저장된 모든 템플릿이 나열된 모달을 엽니다. 불러오기를 클릭해 복원하거나, 더 이상 필요 없는 템플릿을 삭제합니다.
+- **내보내기**: 공유하거나 백업할 수 있도록 워크플로우를 `.json` 파일로 다운로드합니다.
+- **가져오기**: 디스크의 `.json` 워크플로우 파일을 불러와 모든 노드, 위치, 연결을 복원합니다.
+
+템플릿은 세션이 바뀌어도 로컬 저장소에 유지됩니다. 내보낸 JSON 파일은 브라우저와 기기 간에 이동할 수 있습니다.
+
+## 실행 모델
+
+엔진은 연결로부터 종속성 그래프를 만들고 노드를 위상 순서로 실행합니다. 노드가 하나라도 실패하면 실행이 중단되고 실패한 노드는 빨간색으로 표시됩니다. 알아둘 규칙은 다음과 같습니다.
+
+- 모든 워크플로우에는 **입력** 노드와 **출력** 노드가 각각 최소 하나 필요합니다.
+- 엔진은 순환 종속성을 감지하고 오류와 함께 실행을 차단합니다.
+- **암호화** 노드는 출력 노드 직전의 마지막 처리 단계여야 합니다. 더 앞에 배치하면 하위 노드가 암호화된 데이터를 처리할 수 없으므로 검증 경고가 표시됩니다.
+- 비밀번호로 보호된 PDF는 실행 중에 비밀번호를 요청합니다.
+- 여러 PDF 입력을 지원합니다. 병합 노드로 합치거나, 일괄 처리 노드가 각 PDF를 개별로 처리합니다.
+
+## 소켓 유형
+
+연결은 잘못된 배선을 막기 위해 유형이 있는 소켓을 사용합니다.
+
+- **PDF** (남색): PDF 문서 하나.
+- **MultiPDF** (호박색): 함께 묶인 여러 PDF 문서.
+- **Image** (초록): 이미지 blob.
+
+## 옵션
+
+모든 노드에는 오른쪽 설정 패널로 접근하는 고유한 설정이 있습니다. 흔한 예는 다음과 같습니다.
+
+- 분할, 페이지 추출, 페이지 삭제 노드의 **페이지 범위**
+- 이미지 변환 출력 노드의 **품질 슬라이더**
+- 암호화 및 복호화 노드의 **비밀번호 필드**
+- 워터마크, 머리글 및 바닥글, 메타데이터 편집의 **텍스트 입력**
+- 회전 노드의 **회전 각도**
+- 압축 노드의 **압축 수준**
+- OCR 노드의 **OCR 언어 선택**
+
+## 활용 사례
+
+- **청구서 처리 파이프라인**: PDF 입력 -> OCR -> 표 추출 -> CSV로 다운로드.
+- **보고서 표준화**: Word를 PDF로 -> 페이지 크기 통일 -> 페이지 번호 추가 -> 워터마크 -> 압축 -> 다운로드.
+- **보관 준비**: PDF 입력 -> 복구 -> 평탄화 -> 정리 -> PDF를 PDF/A로 -> 다운로드.
+- **일괄 이미지 추출**: PDF 입력(여러 파일) -> 이미지 추출 -> ZIP 다운로드.
+- **인쇄용 소책자**: PDF 입력 -> 소책자 -> 자르기 -> 압축 -> 다운로드.
+- **안전한 배포**: PDF 입력 -> 교정 -> 주석 제거 -> 암호화 -> 다운로드.
+
+## 팁
+
+- 선택한 노드를 캔버스에서 제거하려면 **Delete** 또는 **Backspace**를 사용하세요.
+- 노드 상태 표시줄의 **X** 버튼을 클릭하면 바로 삭제할 수 있습니다.
+- 빈 공간을 클릭하고 끌어 캔버스를 이동하세요. 이동하는 동안 커서가 손바닥 아이콘으로 바뀝니다.
+- 모바일에서는 도구 모음의 **+** 버튼으로 노드 도구 상자를 전환하세요.
+- 워크플로우가 여러 출력 파일을 만들면 다운로드 노드가 자동으로 ZIP으로 묶습니다.
+- 간단하게 시작하세요. 복잡도를 더하기 전에 노드 두 개짜리 파이프라인을 만들고 테스트해 보세요.
+
+## 관련 도구
+
+- [PDF를 텍스트로](./pdf-to-text)
+- [PDF를 Excel로](./pdf-to-excel)
+- [이미지 추출](./extract-images)
+- [PDF를 Markdown으로](./pdf-to-markdown)
diff --git a/docs/ko/tools/png-to-pdf.md b/docs/ko/tools/png-to-pdf.md
new file mode 100644
index 00000000..b93895d8
--- /dev/null
+++ b/docs/ko/tools/png-to-pdf.md
@@ -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를 기본 방식으로 포함할 수 없는 경우(예: 특이한 색상 프로필) 캔버스를 통해 JPEG로 다시 렌더링하는 방식으로 대체합니다.
+
+## 옵션
+
+**PDF 품질**은 포함하기 전에 적용되는 압축을 조절합니다.
+
+- **높은 품질**: 최소 압축, 가장 큰 파일 크기.
+- **중간 품질** (기본값): 크기와 선명도의 좋은 균형.
+- **낮은 품질**: 최대 압축, 가장 작은 출력.
+
+## 활용 사례
+
+- 버그 보고서나 문서화를 위해 스크린샷을 여러 페이지 PDF로 변환하기
+- UI 디자인 내보내기 파일을 검토용 단일 파일로 묶기
+- 다이어그램 내보내기(draw.io, Excalidraw)를 공유 가능한 PDF로 만들기
+- 차트 이미지 모음을 보고서로 구성하기
+
+## 팁
+
+- 투명도가 있는 PNG 파일은 PDF에서 흰색 배경이 적용됩니다. 다른 배경이 필요하면 미리 이미지를 편집하세요.
+- 선명한 가장자리와 텍스트가 있는 스크린샷과 다이어그램은 높은 품질을 사용하면 JPEG 압축 흔적을 피할 수 있습니다. 중간 또는 낮은 품질은 내부적으로 JPEG로 변환될 수 있습니다.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [JPG를 PDF로](./jpg-to-pdf)
+- [SVG를 PDF로](./svg-to-pdf)
diff --git a/docs/ko/tools/posterize-pdf.md b/docs/ko/tools/posterize-pdf.md
new file mode 100644
index 00000000..6e56c5fd
--- /dev/null
+++ b/docs/ko/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF 포스터화
+description: PDF 페이지를 격자 형태의 작은 페이지로 나누어 여러 장에 걸쳐 대형 인쇄를 할 수 있습니다.
+---
+
+# PDF 포스터화
+
+PDF의 각 페이지를 격자 형태의 작은 하위 페이지로 나눕니다. 한 페이지를 여러 장의 용지에 나누어 인쇄한 뒤 이어 붙여 대형 포스터나 현수막을 만들 때 사용하는 도구입니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. **행**과 **열** 수를 설정하여 격자를 정합니다(예: 2행 x 2열이면 각 페이지가 4개의 하위 페이지로 나뉩니다).
+3. 필요하면 페이지 범위를 지정하여 포스터화할 페이지를 제한합니다.
+4. 미리보기 캔버스에 현재 페이지 위로 격자 오버레이가 표시되어 자르는 위치를 확인할 수 있습니다.
+5. 페이지를 넘기며 다른 페이지의 오버레이도 확인합니다.
+6. 처리 버튼을 클릭합니다. 격자의 각 칸이 출력 PDF의 개별 페이지가 됩니다.
+
+## 기능
+
+- 행과 열 수를 자유롭게 설정하여 다양한 격자 크기 지원
+- 페이지가 나뉘는 위치를 정확히 보여주는 격자 오버레이 실시간 미리보기
+- 특정 페이지만 포스터화하는 페이지 범위 필터
+- 미리보기에서 페이지별 탐색
+- 빠른 미리보기 탐색을 위한 페이지 스냅샷 캐시
+- 빨간 점선 격자선으로 자르는 경계를 명확하게 표시
+
+## 옵션
+
+| 옵션 | 설명 |
+| --------------- | ----------------------------------------- |
+| **행** | 가로 분할 수 (기본값: 1) |
+| **열** | 세로 분할 수 (기본값: 1) |
+| **페이지 범위** | 포스터화할 페이지 (비워 두면 모든 페이지) |
+
+## 활용 사례
+
+- 포스터 크기의 PDF를 일반 A4 또는 Letter 용지에 나누어 인쇄하여 벽에 붙이기
+- 한 페이지짜리 PDF 디자인으로 대형 현수막 만들기
+- 큰 기술 도면을 인쇄 가능한 조각으로 나누기
+- 대형 프린터 없이 대형 인쇄물 만들기
+
+## 팁
+
+- 2x2 격자는 한 페이지를 4페이지로, 3x3 격자는 9페이지로 만듭니다. 최종적으로 이어 붙인 결과물의 크기에 맞춰 격자를 계획하세요.
+- 미리보기 오버레이로 중요한 내용이 자르는 선에 걸치지 않는지 확인할 수 있습니다. 필요하면 행/열을 조정하세요.
+- 반대 작업(여러 페이지를 한 장에 맞추기)에는 [N-Up PDF](./n-up-pdf)를 사용하세요.
+
+## 관련 도구
+
+- [N-Up PDF](./n-up-pdf)
+- [페이지 분할](./divide-pages)
+- [PDF 분할](./split-pdf)
diff --git a/docs/ko/tools/powerpoint-to-pdf.md b/docs/ko/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..e6f73f29
--- /dev/null
+++ b/docs/ko/tools/powerpoint-to-pdf.md
@@ -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`으로 묶여 다운로드됩니다.
+
+## 옵션
+
+이 도구에는 추가 설정이 없습니다. 슬라이드는 원래 크기 그대로 렌더링됩니다.
+
+## 출력
+
+| 입력 수 | 출력 |
+| :------------ | :---------------------------------------------------------------- |
+| 파일 1개 | PDF 한 개 다운로드 (원본 파일명에 `.pdf` 확장자) |
+| 파일 2개 이상 | 파일당 PDF 하나를 담은 ZIP 압축 파일 (`powerpoint-converted.zip`) |
+
+## 활용 사례
+
+- PowerPoint가 없을 수 있는 대상에게 공유하기 전에 프레젠테이션을 PDF로 변환
+- 컨퍼런스나 워크숍용 슬라이드 인쇄 자료 만들기
+- 모든 기기에서 동일하게 보이는 형식으로 프레젠테이션 보관
+- LibreOffice Impress의 ODP 프레젠테이션을 일괄 PDF로 변환
+- 이메일 첨부용 피치 덱 PDF 만들기
+
+## 팁
+
+- 슬라이드 애니메이션과 전환 효과는 PDF에 반영되지 않습니다. 각 슬라이드는 정적인 페이지로 저장됩니다.
+- 삽입된 동영상은 출력에 나타나지 않습니다. 필요하면 스크린샷이나 대체 이미지로 바꾸세요.
+- 발표자 노트는 기본 PDF 내보내기에 포함되지 않습니다. 노트가 필요하면 먼저 PowerPoint 자체의 "노트 인쇄" 보기에서 내보내는 것을 고려하세요.
+- LibreOffice 엔진은 처음 로드한 뒤 캐시되므로 같은 세션에서 두 번째 프레젠테이션을 변환하면 훨씬 빠릅니다.
+
+## 관련 도구
+
+- [Word를 PDF로](./word-to-pdf)
+- [Excel을 PDF로](./excel-to-pdf)
+- [이미지를 PDF로](./image-to-pdf)
diff --git a/docs/ko/tools/prepare-pdf-for-ai.md b/docs/ko/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..a23846ca
--- /dev/null
+++ b/docs/ko/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: AI용 PDF 준비
+description: PDF 내용을 LLM과 LlamaIndex 같은 AI 파이프라인에 최적화된 구조화 JSON으로 추출합니다. 일괄 처리를 지원합니다.
+---
+
+# AI용 PDF 준비
+
+PDF 파일에서 내용을 추출하여 대규모 언어 모델(LLM)과 LlamaIndex 같은 AI 프레임워크에서 사용하기 좋은 JSON으로 구조화합니다. 각 페이지의 내용이 추출되어 RAG 파이프라인, 챗봇, 시맨틱 검색 시스템에 바로 쓸 수 있는 구조화된 형식으로 정리됩니다.
+
+## 사용 방법
+
+1. 드롭 영역을 클릭하거나 파일을 끌어다 놓아 PDF를 하나 이상 업로드합니다.
+2. **추출**을 클릭하여 처리를 시작합니다.
+3. 파일이 하나면 `filename_llm.json`으로 다운로드됩니다. 여러 파일은 `pdf-for-ai.zip` 압축 파일로 생성됩니다.
+
+이 도구는 PyMuPDF의 LlamaIndex 통합 기능을 사용하여 메타데이터가 포함된 페이지 단위 내용을 추출하며, 결과물은 AI 프레임워크에 바로 불러올 수 있습니다.
+
+## 옵션
+
+이 도구에는 설정할 수 있는 옵션이 없습니다. 모든 페이지가 전체 텍스트와 메타데이터와 함께 추출됩니다.
+
+## 출력 형식
+
+- **파일 하나**: `filename_llm.json`
+- **여러 파일**: 입력 PDF마다 `_llm.json` 하나씩을 담은 `pdf-for-ai.zip`.
+
+JSON 출력은 페이지별 텍스트 내용과 메타데이터 필드를 가진 LlamaIndex 문서 스키마를 따릅니다.
+
+## 활용 사례
+
+- 검색 증강 생성(RAG) 파이프라인용 PDF 문서 준비
+- PDF 아카이브로 AI 챗봇용 검색 가능한 지식 베이스 구축
+- PDF 보고서를 LLM 기반 분석 워크플로에 입력
+- 시맨틱 검색 및 질의응답 시스템을 위한 연구 논문 전처리
+- PDF 문서 모음에서 구조화된 학습 데이터 생성
+
+## 팁
+
+- AI 전용 형식이 필요 없는 일반 텍스트 추출에는 [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)
diff --git a/docs/ko/tools/protect-pdf.md b/docs/ko/tools/protect-pdf.md
new file mode 100644
index 00000000..183478a6
--- /dev/null
+++ b/docs/ko/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: PDF 보호
+description: 256비트 AES 암호화로 PDF 파일을 비밀번호로 보호합니다. 사용자 및 소유자 비밀번호와 사용 제한을 설정할 수 있습니다.
+---
+
+# PDF 보호
+
+PDF를 비밀번호로 잠가 권한이 있는 사람만 열 수 있게 합니다. BentoPDF는 은행과 정부 기관에서 사용하는 것과 같은 표준인 256비트 AES 암호화를 QPDF를 통해 브라우저 안에서 모두 처리합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. **사용자 비밀번호**를 입력합니다(필수). 파일을 열 때 필요한 비밀번호입니다.
+3. 필요하면 **소유자 비밀번호**를 입력합니다. 설정하면 PDF에 인쇄, 편집, 복사, 주석 달기를 막는 사용 제한이 적용됩니다.
+4. **PDF 암호화**를 클릭합니다.
+5. 암호화된 파일을 다운로드합니다.
+
+## 비밀번호 종류
+
+### 사용자 비밀번호 (필수)
+
+사용자 비밀번호는 받는 사람이 PDF를 열 때 입력하는 비밀번호입니다. 이 비밀번호가 없으면 문서에 전혀 접근할 수 없습니다. 암호화된 모든 PDF에는 반드시 있어야 합니다.
+
+### 소유자 비밀번호 (선택)
+
+소유자 비밀번호는 권한이 있는 사용자가 파일을 연 후 할 수 있는 작업을 제어합니다. 별도의 소유자 비밀번호를 설정하면 BentoPDF가 가장 엄격한 제한 설정을 자동으로 적용합니다.
+
+- 수정 비활성화
+- 추출/복사 비활성화
+- 인쇄 비활성화
+- 주석 비활성화
+- 양식 작성 비활성화
+- 문서 조립 비활성화
+
+소유자 비밀번호를 비워 두면 PDF는 암호화되어 열 때 사용자 비밀번호가 필요하지만, 일단 열고 나면 사용 제한이 없습니다.
+
+## 암호화 세부 정보
+
+- **알고리즘**: AES-256 (256비트 Advanced Encryption Standard)
+- **키 길이**: 256비트
+- **표준**: PDF 2.0 암호화 (QPDF 구현)
+
+AES-256은 현재 기술로는 무차별 대입으로 뚫는 것이 계산상 불가능합니다. 암호화된 PDF의 보안은 전적으로 비밀번호의 강도에 달려 있습니다.
+
+## 활용 사례
+
+- 기밀 재무 보고서를 이메일로 보내기 전에 보호
+- 상대측 변호인과 공유하는 법률 문서 보안
+- 의료 기록이나 개인 식별 정보에 비밀번호 추가
+- 유료 콘텐츠(전자책, 보고서)를 접근 제어와 함께 배포
+- 저장 데이터 암호화를 요구하는 데이터 보호 정책 준수
+
+## 팁
+
+- 강력하고 고유한 비밀번호를 사용하세요. 대소문자, 숫자, 기호를 섞은 12자 이상의 암호 문구가 이상적입니다.
+- 비밀번호는 별도의 경로(전화, 문자 메시지)로 전달하고, PDF를 보내는 이메일에는 절대 함께 적지 마세요.
+- 열 때 비밀번호를 요구하지 않고 동작(인쇄 금지, 복사 금지)만 제한하려면 권한 변경 도구를 대신 사용하세요.
+
+## 관련 도구
+
+- [PDF 잠금 해제](./unlock-pdf): 비밀번호를 알고 있을 때 암호화 해제
+- [권한 변경](./change-permissions): 특정 사용 제한 수정
+- [제한 해제](./remove-restrictions): PDF의 모든 보안 제거
+- [PDF 정리](./sanitize-pdf): 암호화 전에 숨겨진 내용 제거
diff --git a/docs/ko/tools/psd-to-pdf.md b/docs/ko/tools/psd-to-pdf.md
new file mode 100644
index 00000000..ae1cabc1
--- /dev/null
+++ b/docs/ko/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD를 PDF로
+description: Photoshop(PSD) 파일을 브라우저에서 PDF로 변환합니다. 무료이며 개인정보가 보호되고 Adobe 소프트웨어가 필요 없습니다.
+---
+
+# PSD를 PDF로
+
+Adobe Photoshop PSD 파일을 PDF 문서로 변환합니다. PSD는 Photoshop의 기본 형식이라 보통 값비싼 Adobe 소프트웨어가 있어야 열 수 있습니다. 이 도구는 PSD 파일의 병합된 합성 이미지를 원본 해상도 그대로 PDF 페이지로 렌더링합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :-------------- | :----- | :-------------------------- |
+| Adobe Photoshop | `.psd` | 병합된 합성 이미지를 렌더링 |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 PSD 파일을 끌어다 놓습니다. 여러 파일을 지원합니다.
+2. 파일 목록을 확인합니다. 원하지 않는 파일은 휴지통 아이콘으로 제거하거나 **파일 더 추가**로 더 포함합니다.
+3. **PDF로 변환**을 클릭합니다. PyMuPDF 엔진이 PSD 파일을 읽고 합성 이미지를 원본 해상도로 PDF 페이지에 삽입합니다.
+4. PSD 하나는 PDF 하나가 됩니다. 여러 PSD 파일을 업로드하면 `psd_to_pdf.pdf`라는 이름의 여러 페이지짜리 PDF 하나로 합쳐지며, 각 PSD가 한 페이지가 됩니다.
+
+## 옵션
+
+설정이 필요 없습니다. 변환기는 PSD 파일의 병합된 이미지 데이터를 사용합니다.
+
+## 활용 사례
+
+- Photoshop을 열지 않고 디자인 미리보기
+- Adobe Creative Suite가 없는 고객에게 디자인 시안 전달
+- PSD 파일의 고해상도 아트워크 인쇄
+- 여러 PSD 디자인 파일로 PDF 포트폴리오 만들기: 각 파일이 하나의 문서 안에서 한 페이지가 됩니다
+
+## 팁
+
+- 변환은 PSD의 합성(병합된) 보기를 렌더링합니다. 개별 레이어, 조정 레이어, 레이어 효과는 PDF에서 별도 요소로 유지되지 않습니다.
+- 여러 PSD 파일은 개별 PDF가 아니라 여러 페이지짜리 PDF 하나로 합쳐집니다. 포트폴리오나 룩북을 만들 때 유용합니다.
+- 해상도가 매우 높은 PSD 파일(300 DPI 이상의 인쇄용 파일)은 PDF 크기가 커집니다. 이 도구는 전체 해상도를 유지합니다.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [PNG를 PDF로](./png-to-pdf)
+- [VSD를 PDF로](./vsd-to-pdf)
diff --git a/docs/ko/tools/pub-to-pdf.md b/docs/ko/tools/pub-to-pdf.md
new file mode 100644
index 00000000..73006ba5
--- /dev/null
+++ b/docs/ko/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB를 PDF로
+description: Microsoft Publisher(PUB) 파일을 브라우저에서 PDF로 변환합니다. 무료이며 개인정보가 보호되고 별도 소프트웨어가 필요 없습니다.
+---
+
+# PUB를 PDF로
+
+Microsoft Publisher 파일을 PDF로 변환합니다. Publisher는 일부 Microsoft Office 에디션에 포함된 데스크톱 출판 도구이지만 대부분의 사람들은 설치하지 않았습니다. 이 도구로 누구나 Microsoft 소프트웨어 없이 브라우저에서 바로 PUB 파일을 PDF로 변환할 수 있습니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :------------------ | :----- | :----------------- |
+| Microsoft Publisher | `.pub` | 데스크톱 출판 문서 |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 PUB 파일을 끌어다 놓습니다. 여러 파일을 한 번에 업로드할 수 있습니다.
+2. 파일 목록을 확인합니다. 원하지 않는 파일은 휴지통 아이콘으로 제거하거나 **파일 더 추가**를 클릭해 더 추가합니다.
+3. **PDF로 변환**을 클릭합니다. LibreOffice 기반 엔진이 브라우저에 로드되어 레이아웃, 이미지, 텍스트 상자를 유지한 채 각 PUB 파일을 변환합니다.
+4. 파일이 하나면 PDF로 바로 다운로드됩니다. 여러 파일은 `pub-to-pdf.zip`이라는 ZIP 압축 파일로 제공됩니다.
+
+## 옵션
+
+추가 설정이 필요 없습니다. 변환기가 PUB 레이아웃 엔진을 자동으로 처리합니다.
+
+## 활용 사례
+
+- Microsoft Publisher를 구매하지 않고 고객이 보낸 PUB 전단지나 소식지 열기
+- Publisher로 만든 교회 주보, 행사 프로그램, 학교 소식지 변환
+- Publisher의 마케팅 자료를 누구나 열 수 있는 형식으로 보관
+- Publisher가 설치되지 않은 시스템에서 PUB 파일 인쇄
+
+## 팁
+
+- 텍스트 상자가 겹쳐 있고 위치가 정밀한 복잡한 Publisher 레이아웃은 변환 중 약간 어긋날 수 있습니다. 정확한 위치가 중요하다면 결과를 확인하세요.
+- LibreOffice 엔진은 세션당 한 번 초기화됩니다. 첫 변환은 시간이 더 걸리고 이후는 더 빠릅니다.
+- Publisher 파일을 가장 충실하게 변환하려면 원본에 사용된 사용자 지정 글꼴이 표준 시스템 글꼴인지 확인하세요.
+
+## 관련 도구
+
+- [VSD를 PDF로](./vsd-to-pdf)
+- [ODP를 PDF로](./odp-to-pdf)
diff --git a/docs/ko/tools/rasterize-pdf.md b/docs/ko/tools/rasterize-pdf.md
new file mode 100644
index 00000000..122c96a4
--- /dev/null
+++ b/docs/ko/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF 래스터화
+description: PDF 페이지를 이미지 기반 PDF로 변환합니다. 모든 레이어를 평탄화하고 선택 가능한 텍스트를 제거하며 DPI와 이미지 형식을 조절할 수 있습니다.
+---
+
+# PDF 래스터화
+
+래스터화는 PDF의 각 페이지를 이미지로 변환한 뒤 그 이미지들을 다시 PDF로 조립합니다. 결과물은 원본과 똑같아 보이지만 선택 가능한 텍스트, 상호작용 요소, 편집 가능한 레이어가 없습니다. 사실상 고품질 복사본입니다.
+
+## 사용 방법
+
+1. PDF 파일을 하나 이상 업로드합니다.
+2. 래스터화 출력의 **DPI**(해상도)를 설정합니다.
+3. **이미지 형식**을 선택합니다. 무손실 품질은 PNG, 더 작은 파일은 JPEG입니다.
+4. 필요하면 **흑백으로 변환**을 선택합니다.
+5. **PDF 래스터화**를 클릭합니다. 여러 파일은 ZIP으로 다운로드됩니다.
+
+## 옵션
+
+| 설정 | 값 | 기본값 |
+| --------------- | ---------------------------- | ------ |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **이미지 형식** | PNG (무손실), JPEG (더 작음) | PNG |
+| **흑백** | 켜기/끄기 | 끄기 |
+
+## DPI 가이드
+
+- **72**: 화면에서만 볼 때, 가장 작은 파일 크기
+- **150**: 일반 용도에 적합한 균형
+- **200**: 더 선명한 텍스트, 보통 파일 크기
+- **300**: 인쇄 품질 출력
+- **600**: 고품질 보관 또는 전문 인쇄
+
+## 활용 사례
+
+- 공유 전에 기밀 문서의 텍스트 추출 방지
+- 텍스트를 픽셀로 변환하여 글꼴 의존 문제 해결
+- 복잡한 레이어나 투명도 때문에 뷰어마다 다르게 보이는 PDF의 "평면" 버전 만들기
+- 이미지 기반 입력만 받는 시스템용 PDF 준비
+- PDF를 순수 이미지로 줄여 숨겨진 내용(변경 내역이나 양식 데이터 등) 제거
+
+## 팁
+
+- PNG 150 DPI가 안정적인 기본값입니다. 인쇄용 출력이 필요하거나 세부를 확대해야 할 때만 더 높이세요.
+- JPEG는 파일이 눈에 띄게 작아지지만 선명한 텍스트 가장자리에 압축 노이즈가 생깁니다.
+- 래스터화는 되돌릴 수 없습니다. 나중에 편집 가능한 텍스트가 필요할 수 있다면 원본 PDF를 보관하세요.
+
+## 관련 도구
+
+- [PDF 압축](./compress-pdf): 래스터화된 PDF의 파일 크기 줄이기
+- [PDF 기울기 보정](./deskew-pdf): 스캔 문서를 래스터화하기 전에 페이지 바로잡기
+- [폰트 윤곽선 변환](./font-to-outline): 확대 축소 품질을 유지하려면 글꼴을 벡터 경로로 변환
+- [PDF 평탄화](./flatten-pdf): 이미지로 변환하지 않고 양식 평탄화
diff --git a/docs/ko/tools/remove-annotations.md b/docs/ko/tools/remove-annotations.md
new file mode 100644
index 00000000..68c4393c
--- /dev/null
+++ b/docs/ko/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: 주석 제거
+description: PDF에서 모든 댓글, 강조 표시, 링크 및 기타 주석을 한 번에 제거합니다.
+---
+
+# 주석 제거
+
+모든 주석을 제거하여 PDF를 깔끔하게 만듭니다. 댓글, 강조 표시, 스티커 메모, 텍스트 마크업, 링크, 도장 등 문서에 삽입된 모든 주석 개체가 대상입니다. 페이지의 기본 내용(텍스트, 이미지, 그래픽)은 그대로 유지됩니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 도구가 문서의 페이지 수를 확인하고 파일 정보를 표시합니다.
+3. **주석 제거**를 클릭하여 처리합니다.
+4. 모든 주석이 제거된 PDF가 자동으로 다운로드됩니다.
+
+## 기능
+
+- 모든 주석 유형 제거: 댓글, 강조 표시, 밑줄, 취소선, 스티커 메모, 도장, 링크, 양식 마크업
+- 문서의 모든 페이지에 적용
+- 주석이 아닌 모든 내용(텍스트, 이미지, 벡터 그래픽, 양식 필드) 유지
+- 처리 전에 페이지 수와 파일 크기 표시
+
+## 활용 사례
+
+- 여러 검토자가 댓글을 남긴 검토 과정 후 최종 배포 전에 문서 정리
+- 공유한 학습 자료에서 강조 표시와 스티커 메모 제거
+- 보관 전에 문서에서 링크 주석 제거
+- 협상 중 주석이 많이 달린 법률 문서의 "깨끗한" 버전 준비
+- 인쇄 전에 원고에서 검토자 댓글 제거
+
+## 팁
+
+- 이 도구는 PDF 구조 수준에서 주석을 제거하므로 결과물은 선택 가능한 텍스트와 원본 품질을 유지합니다. 래스터화는 사용하지 않습니다.
+- 모든 주석이 아니라 특정 주석만 제거하려면 [PDF 편집기](./edit-pdf)로 개별 주석을 선택하여 삭제하세요.
+- 평탄화된 PDF(주석이 페이지 내용에 병합된 경우)의 주석은 더 이상 별도 개체가 아니므로 제거할 수 없습니다.
+
+## 관련 도구
+
+- [PDF 편집기](./edit-pdf)
+- [워터마크 추가](./add-watermark)
+- [PDF 서명](./sign-pdf)
diff --git a/docs/ko/tools/remove-blank-pages.md b/docs/ko/tools/remove-blank-pages.md
new file mode 100644
index 00000000..ab89336a
--- /dev/null
+++ b/docs/ko/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: 빈 페이지 제거
+description: PDF에서 빈 페이지 또는 거의 빈 페이지를 민감도를 조절하여 자동으로 감지하고 제거합니다.
+---
+
+# 빈 페이지 제거
+
+PDF에서 빈 페이지나 거의 빈 페이지를 찾아 자동으로 제거합니다. 각 페이지를 렌더링하여 픽셀 내용을 분석해 빈 페이지인지 판단하고, 처리 전에 제거할 페이지를 확인할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. **민감도** 슬라이더로 "빈 페이지"의 기준을 얼마나 엄격하게 할지 조절합니다.
+3. **빈 페이지 감지**를 클릭하여 문서를 스캔합니다.
+4. 감지된 빈 페이지의 썸네일이 표시되어 검토할 수 있습니다.
+5. 선택을 확인하고 빈 페이지가 제거된 PDF를 다운로드합니다.
+
+## 옵션
+
+- **민감도**: 0%에서 100%까지의 슬라이더(기본값 80%). 값이 높을수록 엄격하여 완전히 또는 거의 흰색인 페이지만 표시합니다. 값이 낮을수록 관대하여 점 하나나 희미한 워터마크처럼 내용이 거의 없는 페이지도 잡아냅니다.
+
+## 기능
+
+- 각 페이지의 픽셀 수준 분석으로 빈 내용 감지
+- 감지를 세밀하게 조정하는 민감도 슬라이더
+- 수동 확인을 위한 감지된 빈 페이지 썸네일 미리보기
+- 빈 페이지가 아닌 모든 페이지를 그대로 유지
+- 문서 크기와 페이지 수에 제한 없음
+- 스캔 중 진행 상황 표시
+
+## 활용 사례
+
+- 단면 원본의 빈 뒷면까지 스캔된 문서 정리
+- 대량 스캔한 문서 묶음에서 구분용 페이지 제거
+- 문서 관리 시스템이 삽입한 빈 페이지 제거
+- 워드 프로세서에서 내보낸 PDF 끝에 가끔 포함되는 빈 페이지 정리
+- 불필요한 빈 페이지를 제거하여 파일 크기 줄이기
+
+## 팁
+
+- 기본 민감도 80%로 시작하여 조절하세요. 빈 페이지처럼 보이는데 도구가 놓치면 민감도를 낮추고, 남기고 싶은 옅은 내용이 있는 페이지가 표시되면 높이세요.
+- 내용을 분석하기 위해 각 페이지를 렌더링하므로 처리 시간은 페이지 수에 비례합니다. 매우 큰 문서는 잠시 기다려야 할 수 있습니다.
+- 제거를 확인하기 전에 썸네일 미리보기에서 감지된 빈 페이지를 검토하세요. 희미한 머리글, 바닥글, 워터마크가 있는 페이지는 민감도 설정에 따라 표시될 수 있습니다.
+
+## 관련 도구
+
+- [PDF 자르기](./crop-pdf)
+- [PDF 편집기](./edit-pdf)
+- [페이지 번호](./page-numbers)
diff --git a/docs/ko/tools/remove-metadata.md b/docs/ko/tools/remove-metadata.md
new file mode 100644
index 00000000..6ecdcdf6
--- /dev/null
+++ b/docs/ko/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: 메타데이터 제거
+description: 작성자, 제목, 생성일, 생성 프로그램, XMP 데이터, 문서 ID를 포함한 PDF의 모든 숨겨진 메타데이터를 제거합니다.
+---
+
+# 메타데이터 제거
+
+모든 PDF에는 누가 만들었는지, 어떤 소프트웨어를 사용했는지, 마지막으로 언제 수정했는지 등을 알려줄 수 있는 메타데이터가 들어 있습니다. 이 도구는 정보 사전, XMP 메타데이터 스트림, 문서 ID, 애플리케이션 고유 데이터를 모두 제거하여 출처의 흔적이 없는 깨끗한 문서를 만듭니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. **메타데이터 제거**를 클릭합니다.
+3. 정리된 파일을 다운로드합니다.
+
+설정할 옵션이 없습니다. 이 도구는 모든 것을 지우도록 철저하게 설계되었습니다.
+
+## 제거되는 항목
+
+- **정보 사전 필드**: 제목, 작성자, 주제, 키워드, 생성 프로그램(Creator), 변환 프로그램(Producer), 생성일, 수정일
+- **XMP 메타데이터 스트림**: 문서 카탈로그에 저장된 XML 기반 메타데이터 블록
+- **문서 ID**: 시스템 간에 문서를 추적하는 데 사용될 수 있는 PDF 트레일러의 고유 식별자
+- **PieceInfo**: Illustrator나 InDesign 같은 프로그램이 추가한 애플리케이션 고유 메타데이터
+
+## 유지되는 항목
+
+- 눈에 보이는 모든 페이지 내용(텍스트, 이미지, 그래픽)
+- 양식 필드와 주석
+- 북마크와 링크
+- 문서 구조 자체
+
+## 활용 사례
+
+- 익명으로 게시하기 전에 문서에서 이름과 소속 제거
+- 문서를 준비한 시점이 드러나는 생성 타임스탬프 제거
+- 사용 중인 PDF 소프트웨어를 알려주는 Producer 문자열 정리
+- 메타데이터 없는 PDF를 요구하는 규제 제출용 문서 준비
+- 외부 공유 전에 편집 이력 흔적 제거
+
+## 팁
+
+- 제거하기 전에 메타데이터 보기 도구로 PDF에 어떤 메타데이터가 있는지 먼저 확인하세요.
+- 메타데이터와 함께 JavaScript, 주석, 첨부 파일까지 제거해야 한다면 PDF 정리를 사용하여 더 철저히 정리하세요.
+- 메타데이터 제거는 되돌릴 수 없습니다. 나중에 그 데이터가 필요할 수 있다면 원본을 보관하세요.
+
+## 관련 도구
+
+- [PDF 정리](./sanitize-pdf): 메타데이터와 함께 스크립트, 첨부 파일 등 제거
+- [PDF 보호](./protect-pdf): 정리된 PDF를 비밀번호로 보호
+- [PDF 압축](./compress-pdf): 메타데이터를 제거하면 파일 크기가 약간 줄 수 있으며, 압축하면 더 많이 줄일 수 있습니다
diff --git a/docs/ko/tools/remove-restrictions.md b/docs/ko/tools/remove-restrictions.md
new file mode 100644
index 00000000..25a283f0
--- /dev/null
+++ b/docs/ko/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: 제한 해제
+description: PDF 파일의 비밀번호 보호, 인쇄 제한, 편집 잠금, 복사 제한을 제거합니다.
+---
+
+# 제한 해제
+
+PDF에는 두 가지 비밀번호가 있을 수 있습니다. 사용자 비밀번호(파일을 열 때 필요)와 소유자 비밀번호(파일로 할 수 있는 작업을 제어)입니다. 이 도구는 둘 다 제거하고 인쇄, 편집, 복사, 주석 잠금 같은 관련 제한도 모두 해제합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. PDF에 소유자 비밀번호가 있으면 **소유자 비밀번호** 필드에 입력합니다. 비밀번호 없이 사용 제한만 있는 경우에는 비워 둡니다.
+3. **제한 해제**를 클릭합니다.
+4. 제한이 없는 PDF를 다운로드합니다.
+
+이 도구는 QPDF의 `--decrypt` 및 `--remove-restrictions` 플래그를 사용하여 제한 없는 깨끗한 사본을 만듭니다.
+
+## 제거되는 항목
+
+- 비밀번호 보호(사용자 및 소유자 비밀번호 모두)
+- 인쇄 제한
+- 편집 제한
+- 텍스트 및 이미지 복사 제한
+- 주석 및 댓글 제한
+- PDF에 인코딩된 그 밖의 모든 보안 제한
+
+## 활용 사례
+
+- 직접 소유한 PDF인데 몇 년 전에 설정한 비밀번호가 기억나지 않을 때 잠금 해제
+- 정당하게 접근할 수 있는 문서의 인쇄 제한 제거
+- 노트 작성을 위해 참고 자료에서 복사 및 붙여넣기 활성화
+- 제한된 문서를 처리하지 못하는 접근성 도구용 PDF 준비
+
+## 팁
+
+- 소유자 비밀번호가 설정되어 있다면 그 비밀번호를 알아야 합니다. 이 도구는 비밀번호를 해독하거나 무차별 대입하지 않습니다.
+- 파일을 암호화한 상태로 유지하면서 특정 권한만 바꾸려면 권한 변경 도구를 대신 사용하세요.
+- 출력 파일에는 암호화가 전혀 없습니다. 파일을 받는 사람은 누구나 자유롭게 열 수 있습니다.
+
+## 관련 도구
+
+- [PDF 잠금 해제](./unlock-pdf): 사용자 비밀번호를 알 때 PDF 잠금 해제
+- [PDF 보호](./protect-pdf): 새 설정으로 암호화 다시 적용
+- [권한 변경](./change-permissions): 허용되는 작업을 선택적으로 수정
diff --git a/docs/ko/tools/repair-pdf.md b/docs/ko/tools/repair-pdf.md
new file mode 100644
index 00000000..47103a04
--- /dev/null
+++ b/docs/ko/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: PDF 복구
+description: QPDF의 복구 엔진으로 손상되거나 깨진 PDF 파일의 데이터를 복구합니다. 일괄 처리를 지원합니다.
+---
+
+# PDF 복구
+
+PDF가 열리지 않거나 내용이 깨져 보이거나 뷰어에서 오류가 발생할 때, 이 도구가 내부 구조를 다시 구성하려고 시도합니다. QPDF의 복구 엔진을 사용하며, 손상된 상호 참조 테이블, 잘린 스트림, 잘못된 개체 참조 등 다양한 유형의 손상에서 데이터를 복구할 수 있습니다.
+
+## 사용 방법
+
+1. 손상된 PDF 파일을 하나 이상 업로드합니다.
+2. **PDF 복구**를 클릭합니다.
+3. 파일이 하나면 복구된 파일이 바로 다운로드됩니다. 여러 파일은 ZIP 압축 파일로 생성됩니다.
+
+이 도구는 각 파일을 `--decrypt` 플래그와 함께 QPDF에 통과시켜 PDF 전체 구조를 강제로 읽고 다시 쓰며, 그 과정에서 복구 가능한 문제를 수정합니다.
+
+## 기능
+
+- 한 번의 작업으로 여러 PDF 일괄 복구
+- 복구 가능한 파일과 불가능한 파일 자동 감지
+- 여러 파일 처리 시 파일별 성공/실패 보고
+- 검증된 PDF 변환 라이브러리인 QPDF(WebAssembly) 사용
+
+## 복구할 수 있는 문제
+
+- 손상되었거나 누락된 상호 참조 테이블
+- 불완전한 다운로드로 잘린 파일 끝부분
+- 잘못된 개체 번호와 스트림 길이
+- 버그가 있는 PDF 생성기가 만든 경미한 구조적 불일치
+- 실패한 복호화 시도로 생긴 암호화 흔적
+
+## 복구할 수 없는 문제
+
+- 대부분의 내용 데이터가 없는 심하게 잘린 파일
+- 알지 못하는 비밀번호로 암호화된 PDF
+- 실제로는 PDF가 아닌 파일(잘못된 파일 확장자)
+- PDF 내부의 이미지 손상(구조는 수정되지만 픽셀 데이터는 다시 생성되지 않음)
+
+## 활용 사례
+
+- 이메일 다운로드 실패로 손상된 PDF 복구
+- 구형이거나 비표준 PDF 생성기가 만든 파일 열기
+- 한 뷰어에서는 되지만 다른 뷰어에서는 안 되는 PDF 수정
+- 손상된 보관 문서를 장기 보관용으로 준비
+
+## 팁
+
+- 복구에 실패하면 먼저 브라우저에서 파일을 열어 보세요. 브라우저에는 자체 복구 로직이 있어 다시 저장할 수 있을 만큼 내용을 표시할 수도 있습니다.
+- 암호화된 PDF의 복구가 실패하면 먼저 PDF 잠금 해제를 한 뒤 복호화된 출력을 복구하세요.
+
+## 관련 도구
+
+- [PDF 압축](./compress-pdf): 복구된 PDF의 구조를 더 정리
+- [PDF 선형화](./linearize-pdf): 복구된 파일을 웹 전송에 맞게 최적화
+- [PDF 평탄화](./flatten-pdf): 손상되었을 수 있는 양식 평탄화
diff --git a/docs/ko/tools/reverse-pages.md b/docs/ko/tools/reverse-pages.md
new file mode 100644
index 00000000..2c9314d4
--- /dev/null
+++ b/docs/ko/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: 페이지 역순 정렬
+description: 하나 이상의 PDF 파일의 페이지 순서를 뒤집어 마지막 페이지가 첫 페이지가 되게 합니다.
+---
+
+# 페이지 역순 정렬
+
+PDF의 페이지 순서를 뒤집어 마지막 페이지가 첫 페이지, 끝에서 두 번째 페이지가 두 번째 페이지가 되도록 합니다. 여러 파일을 한 번에 일괄 처리할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 하나 이상 업로드합니다.
+2. 처리 버튼을 클릭합니다.
+3. 각 파일은 독립적으로 역순 정렬됩니다. 여러 파일을 업로드했다면 역순으로 정렬된 모든 PDF가 담긴 ZIP 압축 파일이 출력됩니다.
+4. 파일이 하나면 역순 정렬된 PDF가 바로 다운로드됩니다.
+
+## 기능
+
+- 일괄 처리: 한 번의 작업으로 여러 PDF 역순 정렬
+- PDF 하나는 단일 파일로, 여러 개는 ZIP으로 출력
+- 처리 전에 파일별 제거 버튼 제공
+- 모든 페이지 내용과 서식 유지
+
+## 활용 사례
+
+- 거꾸로 된 순서로 스캔된 문서 수정
+- 뒤에서 앞으로 읽도록 프레젠테이션 PDF 준비
+- 페이지를 역순으로 공급하는 특정 인쇄 작업 준비
+- 실수로 거꾸로 조립된 문서 바로잡기
+
+## 팁
+
+- 일괄 처리에서 각 파일은 독립적으로 역순 정렬됩니다. 파일끼리의 순서는 바뀌지 않습니다.
+- 전체 역순이 아닌 더 세밀한 페이지 순서 변경에는 [복제 및 정리](./organize-pdf)를 사용하세요.
+
+## 관련 도구
+
+- [복제 및 정리](./organize-pdf)
+- [PDF 회전](./rotate-pdf)
+- [PDF 멀티 도구](./pdf-multi-tool)
diff --git a/docs/ko/tools/rotate-custom.md b/docs/ko/tools/rotate-custom.md
new file mode 100644
index 00000000..f2a1ca18
--- /dev/null
+++ b/docs/ko/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: 사용자 지정 각도 회전
+description: 페이지별 각도 입력과 일괄 회전 제어로 PDF 페이지를 원하는 각도로 회전합니다.
+---
+
+# 사용자 지정 각도 회전
+
+90도 단위뿐 아니라 임의의 각도로 PDF 페이지를 회전합니다. 각 페이지마다 각도를 입력할 수 있고, 일괄 제어로 모든 페이지에 같은 각도를 한 번에 적용할 수도 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다. 모든 페이지의 썸네일이 렌더링됩니다.
+2. 각 페이지에는 현재 회전 각도를 보여주는 숫자 입력 필드가 있습니다.
+3. 특정 페이지를 회전하려면 원하는 각도 값(양수 또는 음수)을 입력하거나, 페이지별 왼쪽/오른쪽 버튼으로 90도씩 빠르게 조정합니다.
+4. 상단의 **일괄 각도** 입력으로 모든 페이지에 동일한 회전을 설정합니다.
+5. 처리 버튼을 클릭하여 회전된 PDF를 생성합니다.
+
+## 기능
+
+- 페이지별 자유 각도 입력(임의의 정수 값)
+- 모든 페이지에 같은 회전을 설정하는 일괄 각도 제어
+- 썸네일에서 회전을 실시간으로 미리보기
+- 90도 단위로 빠르게 회전하는 페이지별 버튼
+- 큰 문서에서도 성능이 좋은 지연 로딩 썸네일
+
+## 활용 사례
+
+- 몇 도 기울어진 스캔본 바로잡기
+- 비표준 방향 요구사항에 맞게 페이지 회전
+- 여러 내용이 섞인 문서에서 개별 페이지를 정밀하게 회전
+- 처음 일괄 회전한 후 페이지 각도 미세 조정
+
+## 팁
+
+- 양수 값은 시계 방향, 음수 값은 시계 반대 방향으로 회전합니다.
+- 일괄 각도 필드를 적용하면 페이지별 각도가 모두 덮어쓰기됩니다. 필요하면 일괄 작업 후에 개별 조정을 하세요.
+- 표준 90/180/270도 회전을 더 간단한 인터페이스로 하려면 [PDF 회전](./rotate-pdf)을 사용하세요.
+
+## 관련 도구
+
+- [PDF 회전](./rotate-pdf)
+- [PDF 멀티 도구](./pdf-multi-tool)
+- [복제 및 정리](./organize-pdf)
diff --git a/docs/ko/tools/rotate-pdf.md b/docs/ko/tools/rotate-pdf.md
new file mode 100644
index 00000000..0d10e7df
--- /dev/null
+++ b/docs/ko/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PDF 회전
+description: 시각적 썸네일 인터페이스로 PDF의 개별 페이지 또는 모든 페이지를 90도 단위로 회전합니다.
+---
+
+# PDF 회전
+
+PDF의 페이지를 시계 방향 또는 시계 반대 방향으로 90도 회전합니다. 모든 페이지의 썸네일 미리보기가 표시되어 페이지별로 회전하거나 문서 전체에 일괄 회전을 적용할 수 있습니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다. 모든 페이지의 썸네일이 격자로 렌더링됩니다.
+2. 각 페이지 썸네일 아래의 왼쪽/오른쪽 회전 버튼으로 해당 페이지를 회전합니다.
+3. 상단의 일괄 회전 제어로 모든 페이지를 한 번에 회전합니다.
+4. 썸네일 미리보기가 실시간으로 업데이트되어 회전 결과를 보여줍니다.
+5. 처리 버튼을 클릭하여 회전된 PDF를 저장합니다.
+
+## 기능
+
+- 90도 단위의 페이지별 회전(왼쪽 또는 오른쪽)
+- 모든 페이지를 동시에 회전하는 일괄 회전
+- 회전 전환 애니메이션이 있는 실시간 썸네일 미리보기
+- 큰 문서에서도 부드러운 성능을 위한 지연 로딩 썸네일
+- 원본 페이지 내용과 품질 유지
+
+## 활용 사례
+
+- 옆으로 누워 있거나 거꾸로 스캔된 페이지 수정
+- 가로 페이지를 세로로(또는 그 반대로) 회전
+- 일부 페이지가 잘못된 각도로 스캔된 방향이 섞인 문서 바로잡기
+- 특정 표시 방향에 맞게 문서 준비
+
+## 팁
+
+- 회전은 누적됩니다. 시계 방향 버튼을 두 번 클릭하면 180도 회전이 적용됩니다.
+- 90도 단위가 아닌 회전(예: 약간 기울어진 스캔을 바로잡기 위한 45도)에는 [사용자 지정 각도 회전](./rotate-custom)을 사용하세요.
+- 일괄 회전 제어는 선택한 페이지가 아니라 모든 페이지에 적용됩니다. 이 도구에는 선택 기능이 없으며, 선택이 필요하면 [PDF 멀티 도구](./pdf-multi-tool)를 사용하세요.
+
+## 관련 도구
+
+- [사용자 지정 각도 회전](./rotate-custom)
+- [PDF 멀티 도구](./pdf-multi-tool)
+- [복제 및 정리](./organize-pdf)
diff --git a/docs/ko/tools/rtf-to-pdf.md b/docs/ko/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..ee72e132
--- /dev/null
+++ b/docs/ko/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF를 PDF로
+description: LibreOffice 기반 엔진으로 RTF(Rich Text Format) 파일을 브라우저에서 PDF로 변환합니다.
+---
+
+# RTF를 PDF로
+
+Rich Text Format 문서를 PDF로 변환합니다. RTF는 거의 모든 워드 프로세서에서 지원하는 크로스 플랫폼 문서 형식입니다. 이 도구는 브라우저 기반 LibreOffice 엔진으로 RTF 파일을 서식 그대로 렌더링하며, 굵게, 기울임, 표, 삽입된 이미지가 모두 PDF에 반영됩니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | MIME 유형 |
+| :--- | :----- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 RTF 파일을 하나 이상 끌어다 놓습니다.
+2. 파일 목록을 확인합니다. 필요에 따라 파일을 추가하거나 제거합니다.
+3. **PDF로 변환**을 클릭합니다. 처음 사용할 때 LibreOffice 엔진이 초기화된 후 각 파일을 처리합니다.
+4. 파일이 하나면 PDF로 바로 다운로드됩니다. 여러 파일은 `rtf-converted.zip`으로 제공됩니다.
+
+## 옵션
+
+이 도구에는 추가 설정이 없습니다. 변환 시 원본 RTF 서식이 유지됩니다.
+
+## 출력
+
+| 입력 수 | 출력 |
+| :------------ | :--------------------------------------------------------- |
+| 파일 1개 | PDF 한 개 다운로드 (예: `letter.pdf`) |
+| 파일 2개 이상 | 파일당 PDF 하나를 담은 ZIP 압축 파일 (`rtf-converted.zip`) |
+
+## 활용 사례
+
+- 오래된 워드 프로세서의 RTF 문서를 최신 PDF로 변환
+- RTF 이메일 템플릿을 PDF 미리보기로 변환
+- 법률 또는 의료 소프트웨어 시스템에서 나온 RTF 출력 처리
+- 문서 관리 시스템의 RTF 파일을 보관용 PDF로 일괄 변환
+
+## 팁
+
+- LibreOffice 엔진은 한 번 로드된 후 캐시됩니다. 세션의 첫 변환은 몇 초 더 걸리고 이후는 더 빠릅니다.
+- OLE 개체가 삽입된 RTF 파일은 모든 개체가 완벽하게 렌더링되지 않을 수 있습니다. 일반 텍스트, 이미지, 표준 서식은 안정적으로 변환됩니다.
+- RTF 파일을 Microsoft Word로 만들었다면 DOC, DOCX와 함께 RTF도 지원하는 [Word를 PDF로](./word-to-pdf) 도구로 바로 변환할 수도 있습니다.
+
+## 관련 도구
+
+- [Word를 PDF로](./word-to-pdf)
+- [ODT를 PDF로](./odt-to-pdf)
+- [텍스트를 PDF로](./txt-to-pdf)
diff --git a/docs/ko/tools/sanitize-pdf.md b/docs/ko/tools/sanitize-pdf.md
new file mode 100644
index 00000000..3c9b4309
--- /dev/null
+++ b/docs/ko/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF 정리
+description: 메타데이터, JavaScript, 첨부 파일, 주석, 레이어 등 PDF의 숨겨진 위험 요소를 제거합니다.
+---
+
+# PDF 정리
+
+PDF에는 화면에 보이는 것보다 훨씬 많은 정보가 들어 있을 수 있습니다. 숨겨진 메타데이터, 삽입된 JavaScript, 파일 첨부, 양식 데이터, 레이어 정보는 민감한 데이터를 유출하거나 보안 위험이 될 수 있습니다. 정리 기능은 이 모든 것을 제거하여 공개적으로 공유해도 안전한 깨끗한 문서를 만들어 줍니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 체크리스트에서 제거할 요소를 선택합니다.
+3. **PDF 정리**를 클릭합니다.
+4. 정리된 파일을 다운로드합니다.
+
+## 정리 옵션
+
+모든 옵션은 기본적으로 활성화되어 있습니다. 유지하려는 항목은 선택을 해제하세요.
+
+| 옵션 | 제거되는 항목 |
+| -------------------- | ------------------------------------------------------ |
+| **양식 평탄화** | 상호작용 양식 필드를 정적 내용으로 변환 |
+| **메타데이터 제거** | 작성자, 제목, 생성일, 소프트웨어 정보, XMP 데이터 제거 |
+| **주석 제거** | 댓글, 강조 표시, 스티커 메모, 마크업 삭제 |
+| **JavaScript 제거** | 열 때 실행될 수 있는 삽입된 스크립트 제거 |
+| **첨부 파일 제거** | PDF에 삽입된 파일 첨부 제거 |
+| **레이어(OCG) 제거** | 선택적 콘텐츠 그룹을 하나의 레이어로 평탄화 |
+| **링크 제거** | 하이퍼링크와 URL 참조 제거 |
+| **구조 트리 제거** | 접근성 태그에 사용되는 문서 구조 제거 |
+| **MarkInfo 제거** | 표시된 콘텐츠 정보 제거 |
+| **글꼴 제거** | 삽입된 글꼴 데이터 제거 (주의해서 사용) |
+
+## 활용 사례
+
+- 내부 메타데이터(작성자 이름, 소프트웨어 버전, 편집 이력)를 제거하여 PDF를 공개 배포용으로 준비
+- 신뢰할 수 없는 출처에서 받은 PDF를 열기 전에 JavaScript 제거
+- 삽입된 댓글이나 양식 필드 이름을 보면 안 되는 고객에게 보내기 전에 PDF 정리
+- 최종본을 공유하기 전에 건축 도면의 숨겨진 레이어 제거
+- 개인정보 보호 규정의 데이터 최소화 요구사항 준수
+
+## 팁
+
+- PDF가 제대로 렌더링될 것이 확실하지 않다면 "글꼴 제거"는 선택하지 마세요. 글꼴을 제거하면 일부 뷰어에서 텍스트가 보이지 않을 수 있습니다.
+- 메타데이터만 제거하면 된다면 전용 메타데이터 제거 도구가 더 빠르고 목적에 맞습니다.
+- 정리는 되돌릴 수 없습니다. 원본 파일을 보관하세요.
+
+## 관련 도구
+
+- [메타데이터 제거](./remove-metadata): 다른 내용은 건드리지 않고 메타데이터만 제거
+- [PDF 평탄화](./flatten-pdf): 양식과 주석만 평탄화
+- [PDF 보호](./protect-pdf): 정리 후 비밀번호 보호 추가
+- [PDF 래스터화](./rasterize-pdf): 최후의 수단으로, 이미지로 변환하여 숨겨진 모든 내용 제거
diff --git a/docs/ko/tools/scanner-effect.md b/docs/ko/tools/scanner-effect.md
new file mode 100644
index 00000000..bef58a74
--- /dev/null
+++ b/docs/ko/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: 스캔 효과
+description: 노이즈, 회전, 흐림, 종이 노화 효과를 조절하여 PDF를 스캔한 문서처럼 보이게 합니다.
+---
+
+# 스캔 효과
+
+깨끗한 디지털 PDF를 평판 스캐너에서 나온 것처럼 보이게 바꿉니다. 노이즈, 미세한 회전, 흐림, 밝기 변화, 선택적인 누렇게 변색 효과를 조절하여 실제 스캔의 불완전함을 재현합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 설정 패널과 함께 첫 페이지의 실시간 미리보기가 있는 편집기가 열립니다.
+3. 슬라이더와 토글로 스캔 효과 매개변수를 조절합니다.
+4. 설정을 바꾸면 미리보기가 실시간으로 업데이트됩니다.
+5. **적용**을 클릭하여 모든 페이지를 처리하고 결과를 다운로드합니다.
+
+## 옵션
+
+- **색 공간(흑백 토글)**: 출력을 흑백으로 변환하여 전형적인 흑백 스캔 느낌을 냅니다.
+- **테두리**: 스캐너 테두리 흔적을 흉내 내어 페이지 가장자리에 은은한 어두운 테두리를 추가합니다.
+- **회전**: 종이가 어긋나게 급지된 것을 흉내 내어 미세한 회전(-5도에서 +5도)을 적용합니다.
+- **회전 변동**: 회전 각도에 무작위 변화를 더해 페이지마다 조금씩 다르게 기울어지게 합니다.
+- **밝기**: 전체 밝기를 높이거나 낮춥니다.
+- **대비**: 토너 품질 차이를 흉내 내어 대비를 조절합니다.
+- **흐림**: 저품질 스캔처럼 텍스트 가장자리가 부드러워지도록 가우시안 블러를 적용합니다.
+- **노이즈**: 스캐너 센서의 입자감을 흉내 내어 무작위 픽셀 노이즈를 추가합니다. 값이 높을수록 더 거칠어집니다.
+- **누런 색조**: 오래되었거나 재활용된 종이를 흉내 내어 따뜻한 노란 색조를 추가합니다.
+- **해상도**: 출력 DPI를 설정합니다. 값이 낮을수록 더 픽셀이 보이는 스캔 같은 모습이 됩니다.
+- **초기화**: 모든 설정을 기본값으로 되돌립니다.
+
+## 기능
+
+- 각 매개변수를 조정할 때마다 업데이트되는 실시간 미리보기
+- 현실감 있는 변화를 위한 페이지별 무작위 회전 변동
+- 독립적으로 조절 가능한 10개의 매개변수
+- 진짜 같은 흑백 스캔 출력을 위한 흑백 모드
+- 저해상도 팩스 품질부터 고해상도 보관 품질까지 해상도 조절
+
+## 활용 사례
+
+- 디지털로 만든 문서를 스캔하여 인쇄한 것처럼 보이게 만들기
+- 역사 문서 재현을 위해 실제 문서의 노화 모사
+- 품질이 저하된 스캔에 대한 OCR 소프트웨어 테스트
+- 기존 스캔 보관 자료와 시각적 스타일이 일치하는 문서 제작
+
+## 팁
+
+- 약한 값으로 시작하세요. 노이즈 10-20, 0.5도의 미세한 회전, 최소한의 흐림만으로도 충분히 그럴듯한 스캔 느낌이 납니다.
+- 흑백 모드와 약간의 누런 색조를 함께 쓰면 "복사본의 복사본" 효과가 납니다.
+- 낮은 해상도 설정(100-150 DPI)이 가장 현실적인 팩스 느낌을 줍니다.
+
+## 관련 도구
+
+- [색상 반전](./invert-colors)
+- [색상 조정](./adjust-colors)
+- [배경색 변경](./background-color)
diff --git a/docs/ko/tools/sign-pdf.md b/docs/ko/tools/sign-pdf.md
new file mode 100644
index 00000000..27d371be
--- /dev/null
+++ b/docs/ko/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF 서명
+description: 서명을 그리거나 입력하거나 업로드하여 통합 뷰어에서 PDF 페이지에 배치합니다.
+---
+
+# PDF 서명
+
+모든 PDF 문서에 서명을 추가합니다. 이 도구는 서명 도구가 내장된 PDF 뷰어를 포함하고 있어 서명을 손으로 그리거나, 서명 글꼴로 이름을 입력하거나, 서명 이미지를 업로드할 수 있습니다. 어느 페이지에든 서명을 배치하고 크기를 조절한 뒤 서명된 문서를 저장합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 문서가 주석 도구가 있는 통합 PDF 뷰어에서 열립니다.
+3. 뷰어의 서명 도구로 그리기, 입력, 이미지 업로드 중 하나로 서명을 만듭니다.
+4. 서명을 놓을 페이지 위치를 클릭하고 크기와 위치를 조절합니다.
+5. 필요하면 **PDF 평탄화**를 선택하여 서명을 문서에 영구적으로 삽입합니다.
+6. **저장 및 서명된 PDF 다운로드**를 클릭하여 서명된 파일을 받습니다.
+
+## 옵션
+
+- **PDF 평탄화**: 선택하면 서명이 페이지 내용에 영구적으로 삽입됩니다. 다른 사람이 서명을 이동하거나 삭제할 수 없습니다. 선택하지 않으면 서명은 호환되는 뷰어에서 편집할 수 있는 주석으로 남습니다.
+
+## 기능
+
+- 세 가지 서명 생성 방법: 손으로 그리기, 텍스트 입력, 이미지 업로드
+- 정확한 배치를 위한 통합 PDF 뷰어
+- 어느 페이지에서든 서명을 드래그하여 배치하고 크기 조절
+- 서명을 영구적으로 삽입하는 선택적 평탄화
+- 한 문서에 여러 서명 지원
+
+## 활용 사례
+
+- 계약서, 합의서, 승인 양식에 서명하여 회신
+- 세금 문서, 보험 청구서, 정부 양식에 서명 추가
+- 여러 페이지로 된 합의서의 개별 페이지에 이니셜 넣기
+- PDF 첨부 파일로 도착한 NDA나 인사 문서에 서명
+
+## 팁
+
+- 서명된 PDF를 받는 사람이 서명을 제거하거나 위치를 바꾸면 안 되는 경우 평탄화를 켜세요.
+- 인증서 기반 검증이 가능한 법적 효력이 있는 디지털 서명이 필요하면 BentoPDF의 별도 디지털 서명 도구를 사용할 수 있습니다.
+- 배경이 투명한 PNG 서명 이미지를 업로드하면 가장 깔끔한 결과를 얻을 수 있습니다.
+
+## 관련 도구
+
+- [PDF 편집기](./edit-pdf)
+- [도장 추가](./add-stamps)
+- [PDF 양식 작성](./form-filler)
diff --git a/docs/ko/tools/split-pdf.md b/docs/ko/tools/split-pdf.md
new file mode 100644
index 00000000..60bcf840
--- /dev/null
+++ b/docs/ko/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: PDF 분할
+description: 페이지 범위, 시각적 선택, 북마크, 짝수/홀수 페이지 또는 고정 간격으로 PDF를 더 작은 파일로 분할합니다.
+---
+
+# PDF 분할
+
+여섯 가지 분할 모드 중 하나로 PDF를 더 작은 문서로 나눕니다. 간단한 페이지 범위부터 북마크 기반 분할까지, 문서를 나누는 모든 상황을 처리합니다.
+
+## 사용 방법
+
+1. PDF 파일 하나를 업로드합니다.
+2. 드롭다운에서 분할 모드를 선택합니다.
+3. 모드별 옵션(페이지 범위, 선택 등)을 설정합니다.
+4. 처리 버튼을 클릭합니다.
+5. 모드와 설정에 따라 결과가 PDF 하나 또는 ZIP 압축 파일로 다운로드됩니다.
+
+## 분할 모드
+
+| 모드 | 설명 |
+| --------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| **범위** | `1-3, 5, 8-10`처럼 페이지 범위를 입력합니다. 범위가 여러 개면 ZIP 안에 각각의 PDF가 만들어지고, 범위가 하나면 PDF 하나가 만들어집니다. |
+| **시각적 선택** | 페이지 썸네일을 보면서 클릭하여 원하는 페이지를 선택합니다. 선택한 페이지가 새 PDF로 추출됩니다. |
+| **짝수 / 홀수** | 짝수 번호 또는 홀수 번호 페이지만 추출합니다. |
+| **모든 페이지** | 모든 페이지를 각각의 PDF 파일로 분할하여 ZIP으로 다운로드합니다. |
+| **북마크** | 북마크 경계에서 분할합니다. 북마크 수준을 선택하여 분할 위치를 제어합니다. |
+| **N페이지마다** | N페이지씩(예: 5페이지마다) 묶음으로 분할합니다. 마지막 묶음은 페이지가 더 적을 수 있습니다. |
+
+## 기능
+
+- 거의 모든 사용 사례를 아우르는 여섯 가지 분할 모드
+- 지연 로딩 썸네일이 있는 시각적 페이지 선택기
+- 수준 필터링이 가능한 북마크 기반 분할
+- 범위 및 시각적 모드의 ZIP 출력 옵션
+- 혼합 구문(`1-3, 5, 8-10`)의 페이지 범위 처리
+- N페이지 분할로 묶음 크기가 고르지 않을 때 경고 표시
+
+## 활용 사례
+
+- 큰 문서에서 특정 장이나 섹션 추출
+- 양면 인쇄 작업을 위해 홀수 페이지와 짝수 페이지 분리
+- 책 PDF를 북마크 경계에서 장별 파일로 분할
+- 계약서에서 서명 페이지 같은 특정 페이지 분리
+- 편집된 보고서를 배포용으로 섹션별 파일로 분할
+
+## 팁
+
+- 쉼표로 구분한 여러 페이지 범위(예: `1-5, 10-15, 20-25`)는 범위마다 별도의 PDF를 만들어 ZIP으로 묶습니다.
+- 북마크 분할 모드는 PDF에 실제로 북마크가 있어야 합니다. 북마크가 없으면 오류 메시지가 표시됩니다.
+- 범위 및 시각적 모드의 "ZIP으로 다운로드" 체크박스를 사용하면 합친 파일 대신 페이지별 개별 PDF를 받을 수 있습니다.
+
+## 관련 도구
+
+- [PDF 병합](./merge-pdf)
+- [페이지 추출](./extract-pages)
+- [페이지 삭제](./delete-pages)
+- [PDF 멀티 도구](./pdf-multi-tool)
diff --git a/docs/ko/tools/svg-to-pdf.md b/docs/ko/tools/svg-to-pdf.md
new file mode 100644
index 00000000..4be1ec35
--- /dev/null
+++ b/docs/ko/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG를 PDF로
+description: SVG 벡터 그래픽을 품질을 조절하여 브라우저에서 PDF로 변환합니다.
+---
+
+# SVG를 PDF로
+
+Scalable Vector Graphics(SVG) 파일을 PDF로 변환합니다. 이 도구는 브라우저의 렌더링 엔진으로 각 SVG를 래스터화한 뒤 원래 해상도로 삽입합니다. 벡터 아이콘, 다이어그램, 일러스트를 휴대 가능한 문서로 만들 때 유용합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 |
+| :--- | :----- |
+| SVG | `.svg` |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 SVG 파일을 하나 이상 끌어다 놓습니다.
+2. 파일 목록을 확인하고 관리합니다.
+3. **PDF 품질** 수준을 선택합니다.
+4. **PDF로 변환**을 클릭합니다. 결과는 `from_svgs.pdf`로 다운로드됩니다.
+
+각 SVG는 텍스트로 읽혀 고유한 너비와 높이(크기가 지정되지 않으면 기본 800x600)로 캔버스에 렌더링된 후 PNG로 내보내집니다. 그 PNG가 pdf-lib로 PDF에 삽입됩니다. 투명한 영역은 흰색 배경으로 채워집니다.
+
+## 옵션
+
+**PDF 품질**은 래스터화 후의 압축을 제어합니다.
+
+- **높은 품질**: 원본 렌더링에 가장 가까움
+- **중간 품질** (기본값): 좋은 균형
+- **낮은 품질**: 가장 작은 파일, 세부 정보 일부 손실
+
+## 활용 사례
+
+- 건축 또는 공학 다이어그램을 SVG에서 인쇄용 PDF로 변환
+- 디자인 시스템 참고용으로 아이콘 세트를 PDF로 묶기
+- 데이터 시각화(D3.js, 차트 라이브러리 내보내기)를 보고서용 PDF로 변환
+- SVG 기반 인포그래픽의 인쇄용 버전 만들기
+
+## 팁
+
+- 명시적인 `width`와 `height` 속성이 없는 SVG 파일은 800x600 픽셀로 렌더링됩니다. 최상의 결과를 위해 변환 전에 SVG 소스에 크기를 지정하세요.
+- 외부 글꼴 참조나 링크된 이미지가 있는 복잡한 SVG는 완벽하게 렌더링되지 않을 수 있습니다. 안정적인 출력을 위해 모든 에셋을 SVG 안에 포함하세요.
+- SVG가 래스터화되므로 PDF에는 벡터 경로가 아닌 비트맵 이미지가 포함됩니다. 진정한 벡터 PDF 출력에는 전용 벡터 도구가 필요합니다.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [PNG를 PDF로](./png-to-pdf)
+- [BMP를 PDF로](./bmp-to-pdf)
diff --git a/docs/ko/tools/table-of-contents.md b/docs/ko/tools/table-of-contents.md
new file mode 100644
index 00000000..92a3a7cf
--- /dev/null
+++ b/docs/ko/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: 목차 생성
+description: PDF에 있는 북마크로 서식이 적용된 목차 페이지를 생성합니다.
+---
+
+# 목차 생성
+
+이 도구는 PDF의 북마크(개요)를 읽어 서식이 적용된 목차 페이지를 만들어 문서 맨 앞에 추가합니다. PDF에 북마크는 있지만 보이는 목차 페이지가 없다면 이 도구가 자동으로 만들어 줍니다.
+
+## 사용 방법
+
+1. 북마크가 있는 PDF를 업로드합니다.
+2. 목차 제목, 글꼴 크기, 글꼴 모음을 설정합니다.
+3. 필요하면 **목차 페이지용 북마크 추가**를 선택하여 목차 자체를 북마크 트리에 포함합니다.
+4. **목차 생성**을 클릭하여 파일을 처리합니다.
+5. 목차 페이지가 맨 앞에 삽입된 PDF가 자동으로 다운로드됩니다.
+
+## 옵션
+
+- **목차 제목**: 생성된 페이지 상단에 표시되는 제목입니다. 기본값은 "목차"입니다.
+- **글꼴 크기**: 10pt에서 72pt까지 선택합니다. 기본값은 12pt입니다.
+- **글꼴 모음**: Times Roman, Helvetica, Courier 변형(보통, 굵게, 기울임, 굵은 기울임) 중에서 선택합니다. 기본값은 Helvetica입니다.
+- **목차 페이지용 북마크 추가**: 선택하면 목차 페이지 자체에 대한 북마크 항목이 PDF의 개요 트리에 추가됩니다.
+
+## 기능
+
+- PDF의 전체 북마크 계층 구조 읽기
+- 페이지 번호 참조가 있는 깔끔한 서식의 목차 페이지 생성
+- 들여쓰기로 중첩된 북마크 수준 지원
+- 12가지 내장 PDF 글꼴 중 선택
+- 목차 페이지를 가리키는 선택적 북마크
+
+## 활용 사례
+
+- 디지털 북마크만 있는 전자책이나 보고서에 인쇄 가능한 목차 추가
+- 여러 PDF를 합친 후 병합된 문서의 목차 만들기
+- 긴 기술 매뉴얼의 참조 페이지 생성
+- 눈에 보이는 목차가 기대되는 인쇄용 문서 준비
+
+## 팁
+
+- PDF에 북마크가 없다면 먼저 [북마크 편집](./bookmark) 도구로 북마크를 만든 뒤 여기로 돌아와 목차를 생성하세요.
+- 큰 문서에서는 14pt나 16pt 같은 더 큰 글꼴 크기가 가독성을 높여 줍니다.
+
+## 관련 도구
+
+- [북마크 편집](./bookmark)
+- [페이지 번호](./page-numbers)
+- [머리글 및 바닥글](./header-footer)
diff --git a/docs/ko/tools/text-color.md b/docs/ko/tools/text-color.md
new file mode 100644
index 00000000..a153270e
--- /dev/null
+++ b/docs/ko/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: 텍스트 색상 변경
+description: PDF의 모든 텍스트 색상을 원하는 색으로 변경합니다.
+---
+
+# 텍스트 색상 변경
+
+PDF 전체의 텍스트 색상을 바꿉니다. 이 도구는 각 페이지의 텍스트 영역을 식별하여 선택한 색으로 다시 칠하며, 문서 레이아웃과 텍스트가 아닌 내용은 그대로 유지합니다.
+
+## 사용 방법
+
+1. PDF 파일을 업로드합니다.
+2. 색상 선택기로 새 텍스트 색상을 고릅니다. 기본값은 파란색(#0000FF)입니다.
+3. **텍스트 색상 변경**을 클릭하여 처리합니다.
+4. 색상이 바뀐 PDF가 자동으로 다운로드됩니다. 진행 표시기에 처리 중인 페이지가 표시됩니다.
+
+## 옵션
+
+- **새 텍스트 색상**: 문서의 모든 텍스트를 대체할 색상을 고르는 색상 선택기입니다.
+
+## 기능
+
+- 문서의 모든 페이지에서 텍스트 색상 변경
+- 진행 상황을 보여주는 페이지별 처리
+- 16진수 색상 코드를 완전히 지원하는 색상 선택기
+- 페이지 레이아웃과 텍스트가 아닌 요소 유지
+
+## 활용 사례
+
+- 더 부드럽고 현대적인 문서 느낌을 위해 검은색 텍스트를 진한 파란색으로 변경
+- 문서를 배포하기 전에 브랜드 가이드라인에 맞게 텍스트 색상 변경
+- 접근성 준수를 위해 텍스트를 특정 색으로 변환
+- 새로 적용한 배경색 위에서 텍스트가 잘 보이게 만들기
+
+## 팁
+
+- 이 도구는 품질을 위해 페이지를 2배 배율로 렌더링한 뒤 PDF를 다시 구성합니다. 출력은 이미지 기반이므로 텍스트를 더 이상 선택하거나 검색할 수 없습니다.
+- 선택 가능한 텍스트를 유지해야 하는 문서라면 [PDF 편집기](./edit-pdf)로 PDF를 직접 편집하는 것을 고려하세요.
+- 각 페이지를 개별적으로 렌더링하므로 페이지 수가 많을수록 처리 시간이 늘어납니다.
+
+## 관련 도구
+
+- [배경색 변경](./background-color)
+- [색상 반전](./invert-colors)
+- [색상 조정](./adjust-colors)
diff --git a/docs/ko/tools/tiff-to-pdf.md b/docs/ko/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..dbe6b43c
--- /dev/null
+++ b/docs/ko/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF를 PDF로
+description: 단일 및 다중 페이지 TIFF 이미지를 모든 페이지를 지원하며 브라우저에서 PDF로 변환합니다.
+---
+
+# TIFF를 PDF로
+
+다중 페이지 TIFF를 포함한 TIFF 파일을 PDF로 변환합니다. TIFF 파일의 각 페이지(또는 "IFD")가 출력 PDF의 개별 페이지가 됩니다. 다중 페이지 TIFF로 흔히 저장되는 스캔 문서, 팩스, 의료 영상에 특히 유용합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 |
+| :--- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## 사용 방법
+
+1. 업로드 영역을 클릭하거나 TIFF 파일을 끌어다 놓습니다.
+2. 파일 목록을 확인하고 필요에 따라 관리합니다.
+3. **PDF로 변환**을 클릭합니다. 결과는 `from_tiff.pdf`로 다운로드됩니다.
+
+이 도구는 JavaScript TIFF 디코더로 각 TIFF 파일을 디코딩하여 모든 페이지의 원시 RGBA 픽셀 데이터를 추출합니다. 각 페이지는 캔버스에 렌더링되어 PNG로 내보내진 뒤 PDF에 삽입됩니다. 페이지 크기는 원본 TIFF 페이지와 같습니다.
+
+## 옵션
+
+이 도구는 추가 품질 설정을 제공하지 않습니다. 이미지는 원래 해상도로 삽입됩니다.
+
+## 활용 사례
+
+- 다중 페이지 팩스 문서(TIFF-F)를 더 휴대하기 좋은 PDF 형식으로 변환
+- TIFF로 저장된 스캔 문서 보관 자료를 검색 가능한 PDF로 변환(이후 OCR 도구와 함께 사용)
+- TIFF를 사용하는 의료 영상 파일(병리 슬라이드, 방사선 내보내기) 처리
+- GIS 또는 위성 영상 TIFF 파일을 공유 가능한 문서로 변환
+
+## 팁
+
+- 다중 페이지 TIFF를 완전히 지원합니다. 10페이지 TIFF는 10페이지 PDF가 됩니다. TIFF를 먼저 분할할 필요가 없습니다.
+- 매우 큰 TIFF 파일(수백 메가바이트)은 전체 파일을 브라우저 메모리에서 디코딩해야 하므로 처리 시간이 더 걸릴 수 있습니다.
+- 결과 PDF에 OCR이 필요하면 변환 후 [OCR PDF](./ocr-pdf) 도구로 처리하세요.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [BMP를 PDF로](./bmp-to-pdf)
+- [JPG를 PDF로](./jpg-to-pdf)
diff --git a/docs/ko/tools/txt-to-pdf.md b/docs/ko/tools/txt-to-pdf.md
new file mode 100644
index 00000000..ccf9a436
--- /dev/null
+++ b/docs/ko/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: 텍스트를 PDF로
+description: 일반 텍스트 파일이나 직접 입력한 텍스트를 사용자 지정 글꼴, 색상, 페이지 크기로 PDF로 변환합니다.
+---
+
+# 텍스트를 PDF로
+
+일반 텍스트를 서식이 적용된 PDF로 변환합니다. `.txt` 파일을 업로드하거나 내장 텍스트 편집기에 직접 입력할 수 있습니다. 여러 글꼴, 사용자 지정 텍스트 색상, A0부터 A10까지의 다양한 페이지 크기와 US Letter, Legal, Tabloid를 지원합니다.
+
+## 지원 형식
+
+| 입력 | 확장자 |
+| :--------------- | :--------------------------- |
+| 일반 텍스트 파일 | `.txt` |
+| 직접 텍스트 입력 | 편집기에 입력하거나 붙여넣기 |
+
+## 사용 방법
+
+1. 상단 토글로 입력 모드를 선택합니다: **파일 업로드** 또는 **텍스트 입력**.
+2. 업로드하는 경우 `.txt` 파일을 하나 이상 끌어다 놓거나 클릭하여 선택합니다. 입력하는 경우 텍스트 영역에 직접 입력합니다.
+3. 서식 옵션(글꼴 모음, 글꼴 크기, 텍스트 색상, 페이지 크기)을 설정합니다.
+4. **PDF 만들기**를 클릭합니다. 출력은 `text_to_pdf.pdf`로 다운로드됩니다.
+
+여러 파일을 업로드하면 내용이 사이에 빈 줄을 두고 이어 붙여집니다.
+
+## 옵션
+
+| 옵션 | 값 | 기본값 |
+| :-------------- | :-------------------------------------------------------------------- | :------------- |
+| **글꼴 모음** | Helvetica (산세리프), Tiro (세리프), Courier (고정폭), Times (세리프) | Helvetica |
+| **글꼴 크기** | 6 - 72 pt | 12 |
+| **텍스트 색상** | 색상 선택기로 선택한 모든 색 | 검정 (#000000) |
+| **페이지 크기** | ISO A0-A10, B0-B10, C0-C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+RTL 언어(아랍어, 히브리어, 페르시아어, 우르두어)는 자동으로 감지됩니다. RTL 텍스트가 발견되면 텍스트 방향과 정렬이 그에 맞게 전환됩니다.
+
+## 활용 사례
+
+- 코드 조각이나 로그 파일을 Courier 글꼴의 인쇄 가능한 PDF로 변환
+- 즉석에서 입력한 회의 메모로 빠르게 PDF 만들기
+- 제출용으로 일반 텍스트 원고를 특정 글꼴과 페이지 크기로 서식 지정
+- 오프라인 배포를 위해 README나 변경 로그의 PDF 버전 만들기
+
+## 팁
+
+- 클립보드 내용을 파일로 저장하지 않고 빠르게 변환하려면 **텍스트 입력** 모드를 사용하세요.
+- 코드, 로그 또는 열 정렬이 중요한 내용에는 Courier(고정폭)가 가장 좋은 글꼴입니다.
+- 페이지 여백은 모든 면에서 72포인트(1인치)로 고정되어 있습니다.
+
+## 관련 도구
+
+- [Markdown을 PDF로](./markdown-to-pdf)
+- [CSV를 PDF로](./csv-to-pdf)
+- [Word를 PDF로](./word-to-pdf)
diff --git a/docs/ko/tools/unlock-pdf.md b/docs/ko/tools/unlock-pdf.md
new file mode 100644
index 00000000..f57363f6
--- /dev/null
+++ b/docs/ko/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDF 잠금 해제
+description: 암호화된 PDF에서 비밀번호 보호를 제거합니다. 하나의 비밀번호로 여러 파일을 일괄 복호화할 수 있습니다.
+---
+
+# PDF 잠금 해제
+
+암호화된 PDF의 비밀번호를 알고 있다면, 이 도구로 암호화를 완전히 제거해 누구나 비밀번호 없이 열 수 있는 잠금 해제 사본을 만들 수 있습니다. 여러 PDF가 같은 비밀번호를 사용하는 경우 일괄 복호화도 지원합니다.
+
+## 작동 방식
+
+1. 암호화된 PDF 파일을 하나 이상 업로드합니다.
+2. 파일 보호에 사용된 **비밀번호**를 입력합니다.
+3. **PDF 복호화**를 클릭합니다.
+4. 파일이 하나면 바로 다운로드됩니다. 여러 파일이면 잠금이 해제된 모든 PDF가 담긴 ZIP 압축 파일이 만들어집니다.
+
+## 기능
+
+- 단일 파일 및 일괄 복호화
+- 사용자 비밀번호와 소유자 비밀번호 모두 처리
+- 남아 있는 제한 없이 완전히 암호화되지 않은 결과물 생성
+- 잘못된 비밀번호나 손상된 파일에 대한 명확한 오류 보고
+- 일괄 모드에서 파일별 성공/실패 추적
+
+## 제한 해제와의 차이
+
+**PDF 복호화**는 비밀번호가 필요하며 모든 암호화를 제거합니다. **제한 해제**는 사용 제한(인쇄, 복사, 편집)을 대상으로 하며, 소유자 비밀번호만 설정된 경우에는 비밀번호가 필요하지 않을 수 있습니다. 비밀번호 없이는 PDF가 아예 열리지 않을 때 복호화를 사용하세요.
+
+## 사용 사례
+
+- 이전에 직접 암호화했지만 더 이상 비밀번호가 필요 없는 PDF의 잠금을 영구적으로 해제
+- 보관 중인 문서를 장기적으로 쉽게 열람할 수 있도록 일괄 암호화 해제
+- 암호화된 파일을 지원하지 않는 문서 관리 시스템에 사용할 비밀번호 보호 PDF 준비
+- 다른 문서와 병합하기 전에 PDF 잠금 해제 (많은 병합 도구가 암호화된 입력을 처리하지 못합니다)
+
+## 팁
+
+- 비밀번호 입력란은 업로드한 모든 파일에 적용됩니다. PDF마다 비밀번호가 다르면 별도의 묶음으로 처리하세요.
+- "잘못된 비밀번호" 오류가 나면 끝에 공백이 있거나 Caps Lock이 켜져 있지 않은지 확인하세요.
+- 복호화 후의 결과물에는 보안이 전혀 없습니다. 새 비밀번호를 적용하려면 PDF 암호화로 다시 암호화하세요.
+
+## 관련 도구
+
+- [PDF 보호](./protect-pdf): 새 비밀번호로 암호화를 다시 적용
+- [제한 해제](./remove-restrictions): 완전한 복호화 없이 사용 제한 제거
+- [권한 변경](./change-permissions): 암호화된 PDF의 특정 권한 수정
diff --git a/docs/ko/tools/validate-signature-pdf.md b/docs/ko/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..792706d8
--- /dev/null
+++ b/docs/ko/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: 서명 검증
+description: PDF 파일의 디지털 서명을 검증합니다. 인증서 유효성, 서명자 신원, 문서 무결성, 신뢰 체인 상태를 확인합니다.
+---
+
+# 서명 검증
+
+서명된 PDF를 업로드하면 이 도구가 모든 디지털 서명을 추출하고, 서명자를 식별하고, 인증서 유효성을 확인하며, 서명 이후 문서가 수정되었는지 알려 줍니다. 신뢰할 수 있는 인증서를 제공해 서명 체인을 검증할 수도 있습니다.
+
+## 작동 방식
+
+1. 서명된 PDF 파일을 업로드합니다. 검증이 자동으로 시작됩니다.
+2. 도구가 요약을 표시합니다. 발견된 서명 수와 그중 유효한 서명 수가 나옵니다.
+3. 각 서명마다 서명자 이름, 발급자, 날짜, 상태를 보여 주는 상세 카드가 표시됩니다.
+4. 선택적으로 **신뢰할 수 있는 인증서**(.pem, .crt, .cer, .der)를 업로드하면 특정 신뢰 앵커를 기준으로 서명을 검증할 수 있습니다. 재검증은 자동으로 실행됩니다.
+
+## 확인 항목
+
+### 서명 파싱
+
+도구는 PDF에서 PKCS#7 서명 객체를 추출하고 ASN.1 구조를 디코딩하여, 서명자의 X.509 인증서와 서명에 포함된 인증서 체인을 가져옵니다.
+
+### 인증서 유효성
+
+- **만료**: 인증서가 현재 유효 기간 내에 있습니까?
+- **자체 서명 감지**: 인증서가 스스로를 발급했습니까?
+- **신뢰 체인**: 신뢰할 수 있는 인증서가 제공된 경우, 서명자의 인증서가 그 인증서까지 이어집니까?
+
+### 암호화 검증
+
+- 도구는 서명의 `/ByteRange`가 포함하는 바이트를 재구성하고, 서명자가 선언한 알고리즘으로 해시한 뒤, 그 결과를 서명 내부의 `messageDigest` 속성과 비교합니다.
+- 그런 다음 서명된 속성을 DER SET으로 다시 직렬화하고, 서명자 인증서의 공개 키로 서명을 검증합니다.
+- **이 모든 검사를 통과한 경우에만 서명이 유효한 것으로 보고됩니다.** 서명 후 PDF 바이트가 수정되었거나 내장된 서명이 서명자의 키와 일치하지 않으면, 상태에 구체적인 사유와 함께 "유효하지 않음: 암호화 검증 실패"가 표시됩니다.
+
+#### 지원하는 서명 알고리즘
+
+| 알고리즘 | 검증 경로 |
+| ----------------------- | ------------------------------------------------------------------------ |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, Web Crypto 폴백 포함 |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | DER → IEEE P1363 서명 변환 후 Web Crypto `verify({name: 'ECDSA', hash})` |
+
+서명이 이 목록에 없는 알고리즘(예: Ed25519, SM2 또는 특이한 다이제스트 OID를 쓰는 RSA)을 사용하면, 카드에 구체적인 OID나 사유와 함께 노란색으로 "미검증: 지원되지 않는 서명 알고리즘"이 표시됩니다. 이는 의도적인 3단계 구분입니다.
+
+- **유효**: 서명자의 공개 키로 서명이 암호학적으로 검증되었습니다.
+- **유효하지 않음**: 검증이 실행되었고 부정적인 결과가 나왔습니다(바이트 변경, 키 불일치).
+- **미검증**: 이 알고리즘에 대해서는 도구가 검증을 실행할 수 없었습니다. 인증서 메타데이터는 계속 표시되지만, 서명을 "알 수 없음"으로 간주하고 Adobe Acrobat이나 `openssl cms -verify`로 검증해야 합니다.
+
+### 안전하지 않은 다이제스트 알고리즘
+
+- **MD5 또는 SHA-1**을 사용하는 서명은 유효하지 않은 것으로 거부되며 "안전하지 않은 다이제스트" 상태로 표시됩니다. 두 알고리즘 모두 충돌 공격이 공개되어 있으므로, SHA-1이나 MD5 해시에 대한 서명은 무결성을 보장하지 않습니다.
+- SHA-224, SHA-256, SHA-384, SHA-512는 모두 허용됩니다.
+
+### 문서 적용 범위
+
+- **전체 적용**: 서명이 PDF 파일 전체를 포함하므로, 서명 후 추가되거나 변경된 바이트가 없습니다.
+- **부분 적용**: 서명이 파일의 일부만 포함합니다. 서명 후 수정이 이루어졌음을 나타낼 수 있습니다(반드시 악의적인 것은 아니며, 증분 저장도 부분 적용을 만듭니다).
+
+## 서명 상세 정보
+
+각 서명 카드에는 다음이 표시됩니다.
+
+- **서명자**: 서명자 인증서의 공통 이름, 조직, 이메일
+- **발급자**: 서명자 인증서를 발급한 인증 기관
+- **서명 일시**: 서명에 포함된 타임스탬프
+- **유효 시작 / 유효 종료**: 인증서의 유효 기간
+- **사유**: 문서에 서명한 이유 (제공된 경우)
+- **위치**: 서명한 장소 (제공된 경우)
+- **적용 범위 상태**: 전체 또는 부분
+- **신뢰 배지**: 신뢰함 또는 신뢰 체인에 없음 (사용자 지정 인증서가 제공된 경우에만)
+
+### 기술 세부 정보
+
+기술 세부 정보 섹션을 펼치면 다음을 볼 수 있습니다.
+
+- 서명자 인증서의 일련 번호
+- 다이제스트 알고리즘 (SHA-256, SHA-512 등)
+- 서명 알고리즘 (SHA-256을 사용하는 RSA, SHA-256을 사용하는 ECDSA 등)
+- 유효하지 않은 서명의 오류 메시지
+
+## 사용 사례
+
+- 추가 서명하기 전에 디지털 서명된 계약서 검증
+- 서명된 문서가 변조되지 않았는지 감사
+- 문서 서명 이후 인증서가 만료되었는지 확인
+- 조직의 루트 인증서를 기준으로 서명 검증
+- 정부 또는 법률 문서의 서명 세부 정보 조회
+
+## 팁
+
+- 자체 서명 인증서라고 해서 서명이 유효하지 않은 것은 아닙니다. 신뢰할 수 있는 제3자를 통해 서명자의 신원을 확인할 수 없다는 뜻이며, 내부 문서에서는 흔한 일입니다.
+- 부분 적용이 항상 변조를 의미하는 것은 아닙니다. 많은 PDF 워크플로가 증분 업데이트(예: 두 번째 서명)를 추가해 부분 적용이 생깁니다.
+- 조직의 루트 또는 중간 인증서를 신뢰할 수 있는 인증서로 업로드하면 신뢰 체인 검증을 받을 수 있습니다.
+
+## 관련 도구
+
+- [디지털 서명](./digital-sign-pdf): 자신의 인증서로 PDF에 서명
+- [PDF 평면화](./flatten-pdf): 서명 후 수정을 막기 위해 서명 전에 PDF를 평면화
+- [메타데이터 제거](./remove-metadata): 서명을 적용하기 전에 PDF 정리
diff --git a/docs/ko/tools/view-metadata.md b/docs/ko/tools/view-metadata.md
new file mode 100644
index 00000000..409adf73
--- /dev/null
+++ b/docs/ko/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: 메타데이터 보기
+description: 문서 정보, XMP 데이터, 구조 세부 정보를 포함한 PDF의 모든 메타데이터 속성을 조회합니다.
+---
+
+# 메타데이터 보기
+
+PDF 파일에 숨겨진 속성을 살펴보세요. 이 도구는 문서 정보(제목, 작성자, 날짜), XMP 메타데이터, 페이지 크기 및 기타 구조 데이터를 읽기 쉬운 형태로 보여 줍니다.
+
+## 작동 방식
+
+1. PDF 파일을 업로드합니다.
+2. 도구가 즉시 파일을 분석해 사용 가능한 모든 메타데이터를 구분된 섹션으로 표시합니다.
+3. 문서 정보 사전, XMP 메타데이터 트리, 구조 속성을 검토합니다.
+4. 별도의 처리 단계는 없습니다. 파일이 로드되자마자 메타데이터가 표시됩니다.
+
+## 기능
+
+- 표준 문서 정보 필드 표시: 제목, 작성자, 주제, 키워드, 작성 프로그램, 생성 프로그램
+- 생성 및 수정 날짜를 사람이 읽기 쉬운 형식으로 표시
+- 중첩된 네임스페이스를 포함한 전체 XMP 메타데이터 트리를 분석하고 렌더링
+- PDF 날짜 형식(`D:20240101120000Z`)을 읽기 쉬운 날짜로 변환
+- 쉽게 탐색할 수 있도록 접을 수 있는 섹션으로 구성
+
+## 메타데이터 섹션
+
+| 섹션 | 내용 |
+| ------------------ | ---------------------------------------------------------------------------------------- |
+| **문서 정보** | 제목, 작성자, 주제, 키워드, 작성 프로그램, 생성 프로그램, 생성 날짜, 수정 날짜 |
+| **XMP 메타데이터** | Dublin Core, XAP, PDF 및 사용자 지정 네임스페이스를 포함한 전체 XML 기반 메타데이터 트리 |
+| **문서 속성** | 페이지 수, PDF 버전, 파일 크기, 암호화 상태 |
+
+## 사용 사례
+
+- PDF의 작성자와 마지막 수정 시점 확인
+- 문서를 게시하기 전에 메타데이터가 올바르게 설정되었는지 확인
+- 어떤 개인 정보가 포함되어 있는지 확인해 PDF의 개인정보 보호 감사
+- 생성 프로그램 필드를 통해 PDF를 만들거나 수정한 소프트웨어 조사
+- 디지털 자산 관리 규정 준수를 위한 XMP 메타데이터 검토
+
+## 팁
+
+- `D:`로 시작하는 PDF 날짜 문자열은 자동으로 현지 시간대 형식으로 변환됩니다.
+- 메타데이터 필드가 비어 있다면 PDF 작성자가 설정하지 않은 것뿐입니다. 모든 PDF에 풍부한 메타데이터가 있는 것은 아닙니다.
+- 확인한 메타데이터를 수정하려면 [메타데이터 편집](./edit-metadata)을 사용하세요. 모두 제거하려면 메타데이터 제거를 사용하세요.
+
+## 관련 도구
+
+- [메타데이터 편집](./edit-metadata)
+- [PDF OCG 레이어](./pdf-layers)
+- [PDF 비교](./compare-pdfs)
diff --git a/docs/ko/tools/vsd-to-pdf.md b/docs/ko/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..f757542e
--- /dev/null
+++ b/docs/ko/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD를 PDF로
+description: Microsoft Visio(VSD/VSDX) 다이어그램을 브라우저에서 PDF로 변환합니다. 무료, 비공개, Visio 불필요.
+---
+
+# VSD를 PDF로
+
+Visio를 설치하지 않고 Microsoft Visio 다이어그램을 PDF로 변환합니다. VSD와 VSDX 파일에는 대부분의 사람이 열 수 없는 순서도, 조직도, 네트워크 다이어그램, 평면도가 들어 있습니다. 이 도구는 이를 어떤 기기에서나 볼 수 있는 깔끔한 PDF로 렌더링합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :------------- | :------ | :------------------------------------------ |
+| Visio 바이너리 | `.vsd` | 레거시 Visio 형식 (Visio 2003 및 이전 버전) |
+| Visio XML | `.vsdx` | 최신 Visio 형식 (Visio 2013 이상) |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 VSD 또는 VSDX 파일을 끌어다 놓습니다. 두 형식을 한 번에 섞어서 올릴 수 있습니다.
+2. 파일 목록을 확인합니다. 휴지통 아이콘으로 원하지 않는 항목을 제거하거나, **파일 더 추가**로 다이어그램을 더 추가합니다.
+3. **PDF로 변환**을 클릭합니다. LibreOffice 기반 엔진이 브라우저에 로드되어 각 다이어그램을 도형, 연결선, 레이블, 페이지 레이아웃을 유지한 채 PDF로 렌더링합니다.
+4. 다이어그램이 하나면 PDF로 바로 다운로드됩니다. 여러 파일이면 `vsd-to-pdf.zip`이라는 ZIP 압축 파일이 만들어집니다.
+
+## 옵션
+
+별도의 설정은 필요하지 않습니다. 변환기는 Visio 문서의 원래 페이지 크기와 방향을 따릅니다.
+
+## 사용 사례
+
+- Visio 라이선스가 없을 때 동료가 보낸 Visio 다이어그램 검토
+- 프로젝트 문서에 네트워크 또는 아키텍처 다이어그램을 PDF로 포함
+- 회의 자료용으로 조직도나 프로세스 흐름도 인쇄
+- 이전 Visio 버전의 레거시 VSD 파일을 장기 보존 가능한 형식으로 보관
+
+## 팁
+
+- 여러 페이지로 된 Visio 문서는 여러 페이지의 PDF가 되며, 각 Visio 페이지가 PDF 페이지에 대응됩니다.
+- VSDX 파일(최신 XML 기반 형식)은 일반적으로 이전 VSD 바이너리 파일보다 충실도가 높게 변환됩니다.
+- LibreOffice 엔진은 세션당 한 번 로드됩니다. 첫 변환에는 잠시 기다려야 하지만 이후 파일은 더 빠르게 처리됩니다.
+
+## 관련 도구
+
+- [ODG를 PDF로](./odg-to-pdf)
+- [PUB를 PDF로](./pub-to-pdf)
+- [PSD를 PDF로](./psd-to-pdf)
diff --git a/docs/ko/tools/webp-to-pdf.md b/docs/ko/tools/webp-to-pdf.md
new file mode 100644
index 00000000..f4273640
--- /dev/null
+++ b/docs/ko/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP를 PDF로
+description: WebP 이미지를 브라우저에서 바로 PDF로 변환하며 압축 품질을 조절할 수 있습니다.
+---
+
+# WebP를 PDF로
+
+Google의 WebP 이미지 형식을 PDF로 변환합니다. 웹에서 내려받은 이미지가 WebP 형식이라 인쇄나 공유를 위해 더 널리 쓰이는 형식이 필요할 때 특히 유용합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 |
+| :--- | :------ |
+| WebP | `.webp` |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 WebP 파일을 끌어다 놓습니다.
+2. 파일 목록을 확인하고 필요 없는 파일을 제거합니다.
+3. **PDF 품질** 수준을 선택합니다.
+4. **PDF로 변환**을 클릭합니다. 결과물은 `from_webps.pdf`로 다운로드됩니다.
+
+내부적으로 각 WebP 이미지는 브라우저의 canvas API로 디코딩된 다음 pdf-lib를 사용해 PDF에 삽입됩니다. 따라서 WebP 디코딩을 지원하는 모든 브라우저(최신 브라우저는 모두 해당)에서 변환이 작동합니다.
+
+## 옵션
+
+**PDF 품질**은 이미지를 삽입할 때의 압축을 조절합니다.
+
+- **높은 품질**: 가장 많은 디테일을 유지합니다.
+- **중간 품질**(기본값): 균형 잡힌 결과물.
+- **낮은 품질**: 가장 작은 파일 크기.
+
+## 사용 사례
+
+- 웹에서 내려받아 WebP로 저장된 이미지를 인쇄 가능한 PDF로 변환
+- Chrome이나 Edge의 WebP 스크린샷을 문서로 묶기
+- 기본값이 WebP인 디자인 도구에서 내보낸 이미지로 PDF 포트폴리오 만들기
+- WebP 이미지를 더 널리 읽을 수 있는 형식으로 보관
+
+## 팁
+
+- WebP는 PDF에 삽입되기 전에 내부적으로 PNG로 디코딩되므로, 무손실 WebP 이미지는 높은 품질 설정에서 품질이 유지됩니다.
+- WebP와 다른 이미지 형식이 섞여 있다면 대신 [이미지를 PDF로](./image-to-pdf) 도구를 사용하세요. 모든 형식을 한 번에 받습니다.
+
+## 관련 도구
+
+- [이미지를 PDF로](./image-to-pdf)
+- [PNG를 PDF로](./png-to-pdf)
+- [JPG를 PDF로](./jpg-to-pdf)
diff --git a/docs/ko/tools/word-to-pdf.md b/docs/ko/tools/word-to-pdf.md
new file mode 100644
index 00000000..e65527fa
--- /dev/null
+++ b/docs/ko/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word를 PDF로
+description: Word 문서(DOC, DOCX), ODT, RTF 파일을 서식을 그대로 유지한 채 브라우저에서 PDF로 변환합니다.
+---
+
+# Word를 PDF로
+
+Microsoft Word 문서와 호환 형식을 PDF로 변환합니다. 이 도구는 브라우저 기반 LibreOffice 엔진을 사용해 DOC, DOCX, ODT, RTF 파일을 처리하며, 서식, 표, 이미지, 머리글, 바닥글, 스타일을 결과물에 그대로 유지합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 |
+| :------------------ | :------ |
+| Word (최신) | `.docx` |
+| Word (레거시) | `.doc` |
+| OpenDocument 텍스트 | `.odt` |
+| 서식 있는 텍스트 | `.rtf` |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 Word 문서를 끌어다 놓습니다. 여러 파일을 한 번에 선택할 수 있습니다.
+2. 파일 목록을 확인하고 관리합니다.
+3. **PDF로 변환**을 클릭합니다. LibreOffice 엔진은 처음 사용할 때 로드되며(진행 표시기에 초기화 상태가 나타남), 이후 각 파일이 변환됩니다.
+4. 파일이 하나면 PDF로 바로 다운로드됩니다. 여러 파일은 `word-converted.zip`으로 묶입니다.
+
+## 옵션
+
+이 도구에는 추가 설정이 없습니다. LibreOffice 엔진이 기본 PDF 내보내기 프로필로 결과물을 만듭니다.
+
+## 출력
+
+| 입력 개수 | 출력 |
+| :------------ | :---------------------------------------------------------- |
+| 파일 1개 | PDF 한 개 다운로드 (원래 파일명에 `.pdf` 확장자) |
+| 파일 2개 이상 | ZIP 압축 파일(`word-converted.zip`), 파일마다 PDF 하나 포함 |
+
+## 사용 사례
+
+- 입사 지원서를 제출하기 전에 이력서나 자기소개서를 DOCX에서 PDF로 변환
+- 고객에게 전달할 계약서나 제안서 묶음을 PDF로 일괄 변환
+- 장기 보관을 위해 레거시 `.doc` 파일을 최신 PDF로 변환
+- Google Docs에서 DOCX로 내보낸 공동 작업 문서를 PDF로 변환
+- 자동 문서 생성에 쓰는 Word 템플릿에서 인쇄용 PDF 생성
+
+## 팁
+
+- LibreOffice 엔진은 세션당 한 번 다운로드되어 캐시됩니다. 첫 변환에는 로딩에 몇 초가 걸리지만 이후 변환은 훨씬 빠릅니다.
+- 복잡한 서식(매크로, ActiveX 컨트롤, 고급 SmartArt)은 완벽하게 변환되지 않을 수 있습니다. 텍스트, 표, 이미지, 머리글, 각주 같은 표준 문서 요소는 안정적으로 변환됩니다.
+- 이 도구는 ODT와 RTF도 받으므로 모든 워드 프로세서 형식을 위한 통합 변환기로 사용할 수 있습니다.
+
+## 관련 도구
+
+- [ODT를 PDF로](./odt-to-pdf)
+- [RTF를 PDF로](./rtf-to-pdf)
+- [Excel을 PDF로](./excel-to-pdf)
+- [PowerPoint를 PDF로](./powerpoint-to-pdf)
diff --git a/docs/ko/tools/wpd-to-pdf.md b/docs/ko/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..27f4367b
--- /dev/null
+++ b/docs/ko/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD를 PDF로
+description: WordPerfect(WPD) 문서를 LibreOffice를 사용해 브라우저에서 PDF로 변환합니다. 무료이며 비공개입니다.
+---
+
+# WPD를 PDF로
+
+Corel WordPerfect 문서를 PDF 파일로 변환합니다. WPD는 한때 법률 사무소와 정부 기관에서 지배적인 워드 프로세서 형식이었습니다. 최신 소프트웨어가 열어 주지 않는 오래된 WordPerfect 파일이 있다면, 이 도구로 표준 PDF로 되살릴 수 있습니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :---------- | :----- | :------------------------- |
+| WordPerfect | `.wpd` | 모든 주요 WordPerfect 버전 |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 WPD 파일을 끌어다 놓습니다. 여러 파일을 한 번에 선택할 수 있습니다.
+2. 파일 목록을 확인합니다. 휴지통 아이콘으로 원하지 않는 파일을 제거하거나, **파일 더 추가**로 문서를 더 추가합니다.
+3. **PDF로 변환**을 클릭합니다. 도구가 브라우저에 LibreOffice 기반 변환 엔진을 로드해 WPD 형식을 분석하고 PDF로 출력합니다.
+4. 파일이 하나면 PDF로 바로 다운로드됩니다. 일괄 변환은 `wpd-to-pdf.zip`이라는 ZIP 압축 파일로 만들어집니다.
+
+## 옵션
+
+별도의 설정은 필요하지 않습니다. LibreOffice 엔진이 WPD의 서식, 글꼴, 레이아웃을 자동으로 처리합니다.
+
+## 사용 사례
+
+- 수십 년 전 WordPerfect로 작성한 법률 문서 열기
+- 보관된 정부 제출 서류를 WPD에서 최신 형식으로 변환
+- 장기 보관을 위해 레거시 WordPerfect 문서 라이브러리를 PDF로 이전
+- Corel WordPerfect가 설치되지 않은 수신자와 WPD 파일 공유
+
+## 팁
+
+- LibreOffice 엔진은 처음 사용할 때 로드되므로 잠시 걸립니다. 같은 세션의 이후 변환은 더 빠릅니다.
+- 복잡한 WPD 매크로와 코드 표시는 유지되지 않지만, 시각적 레이아웃, 텍스트 내용, 기본 서식은 PDF로 그대로 옮겨집니다.
+
+## 관련 도구
+
+- [WPS를 PDF로](./wps-to-pdf)
+- [ODG를 PDF로](./odg-to-pdf)
diff --git a/docs/ko/tools/wps-to-pdf.md b/docs/ko/tools/wps-to-pdf.md
new file mode 100644
index 00000000..6580eecd
--- /dev/null
+++ b/docs/ko/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS를 PDF로
+description: Microsoft Works(WPS) 문서를 브라우저에서 PDF로 변환합니다. 무료, 회원가입 불필요, 완전한 비공개.
+---
+
+# WPS를 PDF로
+
+Microsoft Works 워드 프로세서 파일을 PDF로 변환합니다. Microsoft Works는 1990년대 후반부터 2000년대까지 가정용 PC에 기본 포함되었고, 지금도 오래된 하드 드라이브와 이메일 보관함에 많은 WPS 파일이 남아 있습니다. 이 도구는 브라우저에서 이를 열어 깔끔한 PDF로 만들어 줍니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :-------------- | :----- | :----------------------------------- |
+| Microsoft Works | `.wps` | Microsoft Works의 워드 프로세서 파일 |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 WPS 파일을 끌어다 놓습니다. 여러 파일을 받을 수 있습니다.
+2. 파일 목록을 확인합니다. 휴지통 아이콘으로 개별 파일을 제거하거나, **파일 더 추가**를 클릭해 묶음을 늘립니다.
+3. **PDF로 변환**을 클릭합니다. LibreOffice 기반 엔진이 브라우저에 로드되어 각 WPS 문서를 PDF로 변환합니다.
+4. 파일이 하나면 PDF로 바로 다운로드됩니다. 여러 파일은 `wps-to-pdf.zip`이라는 ZIP 압축 파일로 묶입니다.
+
+## 옵션
+
+추가 설정은 필요하지 않습니다. 변환기는 WPS 파일의 텍스트, 기본 서식, 삽입된 이미지를 처리합니다.
+
+## 사용 사례
+
+- Microsoft Works 형식으로 저장된 옛 학교 또는 업무 문서 복구
+- Microsoft Works가 설치되지 않은 상태에서 WPS 이메일 첨부 파일 열기
+- 최신 문서 시스템으로 이전하기 위해 WPS 파일 보관본 변환
+- 현재의 워드 프로세서가 열지 못하는 레거시 문서 인쇄
+
+## 팁
+
+- Microsoft Works의 `.wps` 파일과 WPS Office 파일을 혼동하지 마세요. 이 도구는 오래된 Microsoft Works 형식 전용입니다.
+- LibreOffice 엔진은 처음 사용할 때 로드되는 데 잠시 걸립니다. 로드된 후에는 같은 세션의 추가 변환이 더 빠르게 실행됩니다.
+
+## 관련 도구
+
+- [WPD를 PDF로](./wpd-to-pdf)
+- [PUB를 PDF로](./pub-to-pdf)
diff --git a/docs/ko/tools/xml-to-pdf.md b/docs/ko/tools/xml-to-pdf.md
new file mode 100644
index 00000000..747987b7
--- /dev/null
+++ b/docs/ko/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML을 PDF로
+description: XML 파일을 구조화된 PDF 문서로 브라우저에서 변환합니다. 무료, 비공개, 서버 처리 없음.
+---
+
+# XML을 PDF로
+
+XML 데이터 파일을 읽기 쉬운 구조화된 PDF 문서로 변환합니다. 원시 XML은 강력하지만 사람이 읽기에는 어렵습니다. 이 도구는 XML 트리를 분석해 반복되는 데이터 구조를 찾아내고, 가로 방향 A4 PDF에 서식이 있는 표와 섹션으로 렌더링합니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :--- | :----- | :-------------------------- |
+| XML | `.xml` | 올바른 형식의 모든 XML 문서 |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 XML 파일을 끌어다 놓습니다. 여러 파일을 한 번에 처리할 수 있습니다.
+2. 파일 목록을 확인합니다. 휴지통 아이콘으로 원하지 않는 파일을 제거하거나, **파일 더 추가**를 클릭해 더 포함합니다.
+3. **PDF로 변환**을 클릭합니다. 도구가 브라우저 내장 DOMParser로 XML 구조를 분석하고, 데이터 계층을 파악한 뒤, jsPDF와 자동 표 서식을 사용해 PDF로 렌더링합니다.
+4. 파일이 하나면 PDF로 다운로드됩니다. 여러 변환 결과는 `xml-to-pdf.zip`으로 묶입니다.
+
+## 옵션
+
+수동 설정은 필요하지 않습니다. 변환기가 XML 구조를 자동으로 감지해 적절한 표 레이아웃을 선택합니다. 넓은 데이터 세트를 담기 위해 결과물은 가로 방향 A4를 사용합니다.
+
+## 사용 사례
+
+- 데이터베이스나 API에서 내보낸 XML 데이터를 인쇄 가능한 보고서로 변환
+- XML 구성 파일에서 읽기 쉬운 요약 만들기
+- XML 기반 청구서나 거래 로그를 기록 보관용 PDF로 변환
+- XML 사이트맵이나 RSS 피드를 문서 형태로 읽기 쉽게 만들기
+
+## 팁
+
+- XML은 올바른 형식이어야 합니다. 파서가 구문 오류를 발견하면 문제 위치를 알려 주는 오류 메시지와 함께 변환이 실패합니다.
+- 깊게 중첩된 XML 구조는 표로 평면화됩니다. 최상의 결과를 위해 데이터에는 일관된 하위 요소를 가진 반복 형제 요소가 있어야 합니다.
+- 변환 중에는 읽기, 분석, 구조 파악, 렌더링의 각 단계를 보여 주는 진행 상황이 표시됩니다.
+
+## 관련 도구
+
+- [FB2를 PDF로](./fb2-to-pdf)
+- [XPS를 PDF로](./xps-to-pdf)
+- [이메일을 PDF로](./email-to-pdf)
diff --git a/docs/ko/tools/xps-to-pdf.md b/docs/ko/tools/xps-to-pdf.md
new file mode 100644
index 00000000..9b167991
--- /dev/null
+++ b/docs/ko/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS를 PDF로
+description: XPS 및 OXPS 문서를 브라우저에서 PDF 형식으로 변환합니다. 업로드 없음, 회원가입 불필요, 완전한 비공개.
+---
+
+# XPS를 PDF로
+
+Microsoft XPS 및 OXPS 문서를 표준 PDF 파일로 변환합니다. XPS(XML Paper Specification)는 PDF에 대한 Microsoft의 대답이었지만, 여러 플랫폼에서 지원이 줄어들었습니다. 이 도구는 그런 문서를 다시 누구나 읽을 수 있게 만들어 줍니다.
+
+## 지원 형식
+
+| 형식 | 확장자 | 참고 |
+| :--- | :------ | :--------------------------- |
+| XPS | `.xps` | 원래의 Microsoft XPS 형식 |
+| OXPS | `.oxps` | Open XPS, ECMA-388 표준 변형 |
+
+## 작동 방식
+
+1. 업로드 영역을 클릭하거나 XPS/OXPS 파일을 끌어다 놓습니다. 여러 파일을 한 번에 선택할 수 있습니다.
+2. 파일 목록을 확인합니다. 휴지통 아이콘으로 개별 파일을 제거하거나, **파일 더 추가**를 클릭해 문서를 더 추가합니다.
+3. **PDF로 변환**을 클릭합니다. PyMuPDF 엔진이 브라우저에서 각 문서를 로컬로 처리합니다.
+4. 파일이 하나면 PDF로 바로 다운로드됩니다. 여러 파일은 `xps-converted.zip`이라는 ZIP 압축 파일로 묶입니다.
+
+## 옵션
+
+이 도구는 추가 설정 없이 형식을 직접 변환합니다. 결과물은 XPS 원본의 페이지 크기, 벡터 그래픽, 글꼴, 이미지를 그대로 유지합니다.
+
+## 사용 사례
+
+- XPS 인쇄 드라이버를 기본으로 쓰던 오래된 Windows 시스템에서 받은 XPS 파일 열기
+- macOS나 Linux 사용자와 공유하기 위해 Windows 10/11의 OXPS 문서 변환
+- 레거시 XPS 파일을 더 널리 지원되는 형식으로 보관
+- XPS 기반 정부 또는 기업 문서를 외부 수신자가 열람할 수 있게 하기
+
+## 팁
+
+- `.xps`와 `.oxps` 확장자 모두 자동으로 처리되므로 같은 묶음에 섞어서 올릴 수 있습니다.
+- 원래 XPS 파일이 고해상도 인쇄 드라이버로 만들어졌다면 결과 PDF도 그 품질을 유지합니다. 리샘플링은 일어나지 않습니다.
+
+## 관련 도구
+
+- [Word를 PDF로](./word-to-pdf)
+- [XML을 PDF로](./xml-to-pdf)
diff --git a/docs/licensing.md b/docs/licensing.md
index db3d996d..35194a9c 100644
--- a/docs/licensing.md
+++ b/docs/licensing.md
@@ -70,9 +70,23 @@ The commercial license covers BentoPDF's own code. If you configure and use AGPL
| Self-hosting rights | ✅ |
| Lifetime updates | ✅ |
| Remove branding (Simple Mode) | ✅ |
+| Hyper Compress (bundled) | ✅ |
| Commercial support | ✅ (via email) |
| Priority feature requests | ✅ |
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
## FAQ
### Do I need a license key to use BentoPDF?
@@ -83,6 +97,10 @@ No. BentoPDF does not use license keys. The commercial license grants you legal
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.
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
### 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.
diff --git a/docs/nl/contributing.md b/docs/nl/contributing.md
new file mode 100644
index 00000000..f92c4175
--- /dev/null
+++ b/docs/nl/contributing.md
@@ -0,0 +1,136 @@
+# Bijdragen
+
+Bedankt voor je interesse in een bijdrage aan BentoPDF! Deze gids helpt je op weg.
+
+## Aan de slag
+
+### Vereisten
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Installatie
+
+```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
+```
+
+## Projectstructuur
+
+```
+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
+```
+
+## Een nieuwe tool toevoegen
+
+### Stap 1: Maak het logicabestand
+
+Maak `src/js/logic/your-tool-page.ts` aan:
+
+```typescript
+import { showLoader, hideLoader, showAlert } from '../ui.js';
+import { state } from '../state.js';
+
+document.addEventListener('DOMContentLoaded', () => {
+ // Your tool logic here
+});
+```
+
+### Stap 2: Maak de HTML-pagina
+
+Maak `src/pages/your-tool.html` aan volgens de bestaande tooltemplates.
+
+### Stap 3: Registreer de tool
+
+Voeg toe aan `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.',
+}
+```
+
+### Stap 4: Voeg toe aan de buildconfiguratie
+
+Voeg de pagina toe aan `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Stap 5: Voeg vertalingen toe
+
+Voeg items toe aan alle localebestanden in `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Codestijl
+
+- Gebruik TypeScript voor alle nieuwe code
+- Volg bestaande patronen voor consistentie
+- Voer `npm run format` uit voordat je commit
+- Geen opmerkingen in productiecode (opmerkingen worden tijdens de build verwijderd)
+
+## Pull request-proces
+
+1. Maak een featurebranch: `git checkout -b feature/your-feature`
+2. Breng je wijzigingen aan
+3. Test grondig: `npm run build`
+4. Dien een PR in met een duidelijke beschrijving
+
+## Vertalen
+
+Zie [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) voor het toevoegen van nieuwe talen.
+
+## Contributor License Agreement
+
+Voordat je PR kan worden samengevoegd, moet je onze CLA ondertekenen:
+
+- [Individual CLA (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [Corporate CLA (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Hulp krijgen
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Discord-community](https://discord.gg/Bgq3Ay3f2w)
+
+## Licentie
+
+BentoPDF heeft een dubbele licentie:
+
+- **AGPL-3.0** voor open-sourceprojecten waarbij je je volledige broncode openbaar deelt
+- **Commerciële licentie** voor propriëtaire/closed-source toepassingen - [Levenslange licentie voor $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Door bij te dragen ga je ermee akkoord dat je bijdragen onder deze voorwaarden worden gelicentieerd.
diff --git a/docs/nl/getting-started.md b/docs/nl/getting-started.md
new file mode 100644
index 00000000..061507f3
--- /dev/null
+++ b/docs/nl/getting-started.md
@@ -0,0 +1,80 @@
+# Aan de slag
+
+Welkom bij BentoPDF! Deze gids helpt je snel op weg.
+
+## Wat is BentoPDF?
+
+BentoPDF is een gratis, open-source, privacygerichte PDF-toolkit die **volledig in je browser** draait. Je bestanden verlaten je apparaat nooit: alle verwerking gebeurt lokaal met WebAssembly (WASM).
+
+## Snelstart
+
+### Optie 1: Gebruik de gehoste versie
+
+Ga naar [bentopdf.com](https://www.bentopdf.com) om BentoPDF direct te gebruiken, zonder installatie.
+
+### Optie 2: Zelf hosten met Docker
+
+> [!IMPORTANT]
+> Conversie van Office-bestanden vereist `SharedArrayBuffer`, waarvoor beide nodig zijn:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - een beveiligde context
+>
+> `http://localhost` werkt voor lokaal testen, omdat browsers loopback vertrouwen. `http://192.168.x.x` of andere LAN-IP's doen dat meestal niet, dus voor Word/Excel/PowerPoint-conversies is HTTPS nodig wanneer je ze vanaf andere apparaten in je netwerk opent.
+
+```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 wordt in twee builds geleverd: de **zelfgehoste build** (`bentopdf-simple`, hierboven gebruikt) voor interne implementaties van teams of organisaties, en de **commerciële build** (`bentopdf:latest`) die bentopdf.com zelf gebruikt en die bedoeld is voor houders van een commerciële licentie met openbare implementaties. Beide bevatten dezelfde PDF-tools. De commerciële build voegt de hero, FAQ, testimonials en footer van bentopdf.com toe. Twijfel je, gebruik dan de zelfgehoste build.
+
+Open daarna `http://localhost:3000` in je browser.
+
+> [!NOTE]
+> Als je een air-gapped OCR-implementatie voorbereidt, moet je naast de Tesseract-worker, de core-runtime en de traineddata-bestanden ook de OCR-tekstlaaglettertypen intern hosten. De volledige installatie staat in [Zelf hosten](/nl/self-hosting/), inclusief `VITE_OCR_FONT_BASE_URL` en de meegeleverde map `ocr-fonts/`.
+
+### Optie 3: Bouwen vanuit de broncode
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Functies in het kort
+
+| Categorie | Tools |
+| ------------------------- | --------------------------------------------------------------------------- |
+| **Naar PDF converteren** | Word, Excel, PowerPoint, afbeeldingen, Markdown, EPUB, MOBI en meer |
+| **Van PDF converteren** | JPG, PNG, tekst, Excel, SVG en meer |
+| **Bewerken en annoteren** | Ondertekenen, markeren, redigeren, formulieren invullen, stempels toevoegen |
+| **Organiseren** | Samenvoegen, splitsen, roteren, pagina's verwijderen, herordenen |
+| **Optimaliseren** | Comprimeren, repareren, platmaken, OCR |
+| **Beveiliging** | Versleutelen, ontsleutelen, beperkingen verwijderen |
+
+## Browserondersteuning
+
+BentoPDF werkt het best op moderne browsers:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Volgende stappen
+
+- [Alle tools verkennen](/nl/tools/)
+- [BentoPDF zelf hosten](/nl/self-hosting/)
+- [Bijdragen aan het project](/nl/contributing)
diff --git a/docs/nl/index.md b/docs/nl/index.md
new file mode 100644
index 00000000..c057dcc8
--- /dev/null
+++ b/docs/nl/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Gratis, open-source PDF-tools'
+ tagline: Verwerk PDF's volledig in je browser. Geen uploads. Geen servers. Complete privacy.
+ actions:
+ - theme: brand
+ text: Aan de slag
+ link: /nl/getting-started
+ - theme: alt
+ text: Tools bekijken
+ link: /nl/tools/
+ - theme: alt
+ text: Zelf hosten
+ link: /nl/self-hosting/
+ - theme: alt
+ text: Commerciële licentie
+ link: /nl/licensing
+
+features:
+ - icon: 🔒
+ title: 100% privé
+ details: Je bestanden verlaten je apparaat nooit. Alle verwerking gebeurt lokaal in je browser met WebAssembly.
+ - icon: ⚡
+ title: Snel en gratis
+ details: Geen aanmelding, geen limieten, geen watermerken. Verwerk onbeperkt PDF's, voor altijd gratis.
+ - icon: 🛠️
+ title: 50+ tools
+ details: Converteren, bewerken, samenvoegen, splitsen, comprimeren, ondertekenen, OCR en meer. Alles wat je nodig hebt op één plek.
+
+ - icon: 🌐
+ title: Zelf te hosten
+ details: Implementeer op je eigen infrastructuur. Docker, Vercel, Netlify, AWS of volledig air-gapped omgevingen met zelfgehoste OCR-workers, taaldata en tekstlaaglettertypen.
+---
+
+## Offline OCR
+
+Als je BentoPDF zelf host in een air-gapped of offline omgeving, heeft OCR meer nodig dan de Tesseract-worker en traineddata-bestanden. Voor doorzoekbare PDF-uitvoer moeten ook de OCR-tekstlaaglettertypen intern worden aangeboden.
+Zie [Zelf hosten](/nl/self-hosting/) voor de volledige installatie, inclusief `VITE_OCR_FONT_BASE_URL`, de meegeleverde map `ocr-fonts/` en de bijgewerkte air-gap-werkwijze.
diff --git a/docs/nl/licensing.md b/docs/nl/licensing.md
new file mode 100644
index 00000000..074f2109
--- /dev/null
+++ b/docs/nl/licensing.md
@@ -0,0 +1,110 @@
+# 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](/nl/self-hosting/#wasm-configuratie-agpl-componenten) 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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/nl/self-hosting/apache.md b/docs/nl/self-hosting/apache.md
new file mode 100644
index 00000000..541be7bb
--- /dev/null
+++ b/docs/nl/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Implementeren met Apache
+
+Host BentoPDF met Apache HTTP Server.
+
+## Vereisten
+
+- Apache 2.4+
+- mod_rewrite ingeschakeld
+- SSL-certificaat (aanbevolen)
+
+## Stap 1: Bouw het project
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Wil je de huisstijl aanpassen, stel dan omgevingsvariabelen in voordat je bouwt:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Stap 2: Kopieer de bestanden
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Stap 3: Apache-configuratie
+
+Maak `/etc/apache2/sites-available/bentopdf.conf` aan:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Stap 4: .htaccess voor routing
+
+Maak `/var/www/bentopdf/.htaccess` aan:
+
+```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
+```
+
+## Stap 5: Schakel de vereiste modules in
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Stap 6: Schakel de site in
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Implementatie in een submap
+
+Om te hosten op `/pdf/`:
+
+1. Bouw met de basis-URL:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Werk `.htaccess` bij:
+
+```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
+```
+
+## Probleemoplossing
+
+### WASM 404-fouten
+
+Controleer of het MIME-type is geconfigureerd:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### PDF ondertekenen of formulierinvuller toont een leeg weergavevenster (`.mjs` MIME-fout)
+
+Als de browserconsole dit toont:
+
+```
+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.
+```
+
+...en het mislukte verzoek eindigt op `.mjs`, ontbreekt in je Apache-configuratie de koppeling `.mjs → application/javascript`. De meegeleverde PDF-viewer bevat ES-modulebestanden met de extensie `.mjs`, en de standaard `mime.types` van Apache bevat die niet.
+
+Voeg toe aan je VirtualHost of `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Laad Apache daarna opnieuw:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Controleren: zoek in de browser-DevTools op het tabblad Network het mislukte `.mjs`-verzoek en bekijk de responsheader `Content-Type`. Die moet nu `application/javascript` zijn, niet `application/octet-stream`.
+
+### Rewrite werkt niet
+
+Controleer of mod_rewrite is ingeschakeld:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Word/ODT/Excel naar PDF werkt niet
+
+LibreOffice WASM vereist `SharedArrayBuffer`, waarvoor deze headers nodig zijn:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Daarnaast is een beveiligde context nodig. `http://localhost` werkt voor lokaal testen, maar `http://192.168.x.x` of andere LAN-IP's vereisen meestal HTTPS. Als de headers aanwezig zijn maar `window.crossOriginIsolated` nog steeds `false` is, controleer dan of de pagina via gewoon HTTP wordt geopend op een origin die geen loopback is.
+
+De vooraf gecomprimeerde bestanden `.wasm.gz` en `.data.gz` hebben ook de juiste `Content-Encoding` nodig:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Zorg dat `mod_headers` is ingeschakeld: `sudo a2enmod headers`
+
+### Toegang geweigerd
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/nl/self-hosting/aws.md b/docs/nl/self-hosting/aws.md
new file mode 100644
index 00000000..0bd8c834
--- /dev/null
+++ b/docs/nl/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Implementeren op AWS S3 + CloudFront
+
+Host BentoPDF op AWS voor maximale controle en schaalbaarheid.
+
+## Architectuur
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Stap 1: Maak een 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
+```
+
+## Stap 2: Bouwen en uploaden
+
+```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
+```
+
+## Stap 3: Maak een CloudFront-distributie
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Of gebruik de AWS Console:
+
+1. Ga naar CloudFront → Create distribution
+2. Origin domain: selecteer je S3-bucket
+3. Schakel "Origin Access Control" in
+4. Default root object: `index.html`
+5. Maak de distributie aan
+
+## Stap 3b: Response Headers Policy (vereist voor LibreOffice WASM)
+
+Conversies met LibreOffice (Word, Excel, PowerPoint naar PDF) vereisen `SharedArrayBuffer`, waarvoor specifieke responsheaders nodig zijn. Maak een CloudFront Response Headers Policy aan:
+
+1. Ga naar CloudFront → Policies → Response headers
+2. Maak een aangepaste policy met deze headers:
+
+| Header | Waarde |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Koppel de policy aan het standaard cachegedrag van je distributie
+
+Of via de 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}
+ ]
+ }
+ }'
+```
+
+## Stap 3c: S3-metadata voor vooraf gecomprimeerde WASM-bestanden
+
+De LibreOffice WASM-bestanden zijn vooraf gecomprimeerd (`.wasm.gz`, `.data.gz`). Stel de juiste Content-Type en Content-Encoding in, zodat browsers ze decomprimeren:
+
+```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 Belangrijk
+Zonder de response headers policy is `SharedArrayBuffer` niet beschikbaar en blijven LibreOffice WASM-conversies hangen op ~55%. Zonder de juiste Content-Encoding op de `.gz`-bestanden ontvangt de browser onbewerkte gzip-bytes en mislukt de WASM-compilatie.
+:::
+
+## Stap 4: S3-bucketbeleid
+
+Geef CloudFront toegang tot de 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Stap 5: Aangepaste foutpagina's
+
+Configureer 404 zo dat `index.html` wordt geretourneerd voor SPA-routing:
+
+1. CloudFront → Error pages
+2. Maak een aangepaste foutrespons:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Kostenraming
+
+| Resource | Geschatte kosten |
+| -------------------------- | ---------------- |
+| S3-opslag (~500MB) | ~$0,01/maand |
+| CloudFront (1TB transfer) | ~$85/maand |
+| CloudFront (10GB transfer) | ~$0,85/maand |
+
+::: tip
+Gebruik S3 Intelligent Tiering voor kostenoptimalisatie bij bestanden die zelden worden geopend.
+:::
+
+## Automatisering met 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"
+ }
+}
+```
diff --git a/docs/nl/self-hosting/cloudflare.md b/docs/nl/self-hosting/cloudflare.md
new file mode 100644
index 00000000..1b6d9dbc
--- /dev/null
+++ b/docs/nl/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Implementeren op Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) biedt snelle, wereldwijde hosting van statische sites met onbeperkte bandbreedte.
+
+## Snel implementeren
+
+1. Ga naar [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Klik op "Create a project"
+3. Koppel je GitHub-repository
+
+## Buildconfiguratie
+
+| Instelling | Waarde |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Omgevingsvariabelen
+
+Voeg deze toe onder Settings → Environment variables:
+
+| Variabele | Waarde |
+| ----------------------- | ------------------------------------------------------ |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (optioneel) |
+| `VITE_BRAND_NAME` | Aangepaste merknaam (optioneel) |
+| `VITE_BRAND_LOGO` | Logopad relatief aan `public/` (optioneel) |
+| `VITE_FOOTER_TEXT` | Aangepaste footer-/copyrighttekst (optioneel) |
+| `VITE_DEFAULT_LANGUAGE` | Standaardtaal van de interface, bijv. `fr` (optioneel) |
+
+## Configuratiebestand
+
+Maak `_headers` aan in je map `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 Belangrijk
+De headers `Cross-Origin-Embedder-Policy` en `Cross-Origin-Opener-Policy` zijn vereist voor conversies van Word/ODT/Excel/PowerPoint naar PDF. Zonder deze headers is `SharedArrayBuffer` niet beschikbaar en kan de LibreOffice WASM-engine niet starten.
+:::
+
+Maak `_redirects` aan voor SPA-routing:
+
+```
+/* /index.html 200
+```
+
+## Eigen domein
+
+1. Ga naar je Pages-project
+2. Klik op "Custom domains"
+3. Voeg je domein toe
+4. Cloudflare configureert DNS automatisch als het domein bij Cloudflare staat
+
+## Voordelen
+
+- **Gratis onbeperkte bandbreedte**
+- **Wereldwijd CDN** met 300+ edge-locaties
+- **Automatische HTTPS**
+- **Previewimplementaties** voor pull requests
+- **Snelle builds**
+
+## Probleemoplossing
+
+### Uploads van grote bestanden
+
+Cloudflare Pages ondersteunt bestanden tot 25 MB. WASM-modules zouden geen probleem moeten zijn, maar als je tegen limieten aanloopt, overweeg dan:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Groottelimieten van Workers
+
+Gebruik je Cloudflare Workers voor geavanceerde routing, let dan op de limiet van 1 MB voor gratis abonnementen.
+
+## CORS-proxyworker (voor digitale handtekeningen)
+
+De tool voor digitale handtekeningen vereist een CORS-proxy om certificaatketens op te halen. Implementeer de meegeleverde worker:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Beveiligingsfuncties
+
+| Functie | Beschrijving |
+| ------------------------- | ----------------------------------- |
+| **URL-beperkingen** | Alleen certificaat-URL's toegestaan |
+| **Bestandsgroottelimiet** | Max 10MB per verzoek |
+| **Rate limiting** | 60 verzoeken/IP/min (vereist KV) |
+| **Blokkering privé-IP's** | Blokkeert localhost en interne IP's |
+
+### Rate limiting inschakelen
+
+```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
+```
+
+### Bouwen met proxy-URL
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Of met 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 .
+```
+
+> **Opmerking:** Zie de [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) voor de installatie van de HMAC-handtekening.
diff --git a/docs/nl/self-hosting/cors-proxy.md b/docs/nl/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..69304ae1
--- /dev/null
+++ b/docs/nl/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS-proxy voor het ophalen van certificaten
+
+De tool voor digitale handtekeningen gebruikt een CORS-proxy om uitgevers-certificaten op te halen bij externe certificeringsinstanties (CA's). Dat is nodig omdat veel CA-servers geen CORS-headers in hun antwoorden opnemen, waardoor rechtstreeks ophalen vanuit de browser niet lukt.
+
+Bovendien leveren veel CA-servers certificaten via gewoon HTTP. Wanneer je BentoPDF-instantie via HTTPS wordt gehost, blokkeren browsers deze HTTP-verzoeken (mixed content-beleid). De CORS-proxy lost beide problemen op door verzoeken via een HTTPS-eindpunt met de juiste headers te routeren.
+
+## Hoe het werkt
+
+Bij het ondertekenen van een PDF met een certificaat:
+
+1. De bibliotheek `zgapdfsigner` probeert een volledige certificaatketen op te bouwen
+2. Ze haalt uitgevers-certificaten op via URL's in de AIA-extensie (Authority Information Access) van je certificaat
+3. Deze verzoeken lopen via een CORS-proxy die de benodigde `Access-Control-Allow-Origin`-headers toevoegt
+4. De proxy stuurt de certificaatgegevens terug naar de browser
+
+## De CORS-proxy zelf hosten
+
+Host je BentoPDF zelf, dan moet je een eigen CORS-proxy implementeren, zodat digitale handtekeningen werken met certificaten waarvoor de keten moet worden opgehaald.
+
+### Optie 1: Cloudflare Workers (aanbevolen)
+
+1. **Installeer de Wrangler CLI**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Log in bij Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clone BentoPDF en pas de toegestane origins aan**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Open `cors-proxy-worker.js` en verander de array `ALLOWED_ORIGINS` naar je eigen domein:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Belangrijk
+ Zonder deze wijziging weigert de proxy alle verzoeken van je site met een **403 Forbidden**-fout. Standaard worden alleen verzoeken van `bentopdf.com` toegestaan.
+ :::
+
+4. **Implementeer de proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Noteer de URL van je worker (bijv. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Bouw BentoPDF opnieuw met de proxy-URL**:
+
+ Met 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 .
+ ```
+
+ Bouwen vanuit de broncode:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Optie 2: Eigen backendproxy
+
+Je kunt ook je eigen proxy-eindpunt maken. De vereisten zijn:
+
+1. Accepteer GET-verzoeken met een queryparameter `url`
+2. Haal de URL op vanaf je server (aan de serverkant gelden geen CORS-beperkingen)
+3. Retourneer het antwoord met deze headers:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Voorbeeldimplementatie met 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' });
+ }
+});
+```
+
+## Beveiligingsoverwegingen
+
+De meegeleverde Cloudflare Worker heeft diverse beveiligingsmaatregelen:
+
+| Functie | Beschrijving |
+| --------------------------- | ------------------------------------------------------------------------------------------------------- |
+| **Origin-validatie** | Staat alleen verzoeken toe van domeinen in `ALLOWED_ORIGINS` |
+| **URL-beperkingen** | Staat alleen certificaat-URL's toe (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blokkering privé-IP's** | Blokkeert privébereiken van IPv4/IPv6, link-local, loopback, decimale IP's en cloud-metadata |
+| **Content-Type-veiligheid** | Retourneert alleen veilige MIME-typen voor certificaten en blokkeert injectie van upstream content-type |
+| **Bestandsgroottelimiet** | Streamt het antwoord met een limiet van 10MB en breekt halverwege de download af bij overschrijding |
+| **Rate limiting** | 60 verzoeken per minuut per IP of IPv6 /64 (vereist KV, laat verkeer door bij KV-fouten) |
+| **HMAC-handtekeningen** | Optionele ondertekening aan de clientzijde (ontmoedigt gelegenheidsmisbruik) |
+
+### DNS-rebinding (zelf hosten buiten Cloudflare)
+
+De worker weigert elke URL die naar een privé- of intern IP verwijst. Een vaste allowlist van hosts is niet mogelijk, omdat URL's in certificaatketens verwijzen naar de CA die het certificaat heeft uitgegeven (FNMT, bedrijfs-CA's enzovoort), dus de bestemmingen zijn vooraf niet bekend. Daardoor blijft een klein rebinding-venster over: wie de DNS van een eigen domein beheert, kan de veiligheidscontrole een publiek IP geven en het echte verzoek even later een privé-IP.
+
+Op Cloudflare is dit niet te misbruiken: Workers kunnen geen privé-IP's of het metadata-eindpunt `169.254.169.254` bereiken, dus een rebind komt nergens uit. Geef de worker alleen geen toegang naar binnen: koppel geen Tunnel, Service of privénetwerkbinding (hij heeft alleen `RATE_LIMIT_KV` nodig).
+
+Draai je dit buiten Cloudflare (workerd, Node en dergelijke) in een VPC, dan _kan_ de runtime interne IP's bereiken. Zet er een egress-firewall voor en blokkeer de privébereiken: `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` en hun IPv6-equivalenten. Applicatiecode kan dat niet afdwingen zodra je buiten Cloudflare draait.
+
+## De proxy uitschakelen
+
+Wil je geen CORS-proxy gebruiken, stel de omgevingsvariabele dan in op een lege string:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Opmerking**: Zonder de proxy mislukt het ondertekenen met certificaten waarvoor de keten extern moet worden opgehaald (zoals FNMT of sommige bedrijfs-CA's) met de foutmelding "Failed to fetch".
+
+## Probleemoplossing
+
+### "Signing error: TypeError: Failed to fetch"
+
+Dit betekent meestal een van deze dingen:
+
+1. **Geen CORS-proxy geconfigureerd**: stel `VITE_CORS_PROXY_URL` in en bouw opnieuw
+2. **Mixed content geblokkeerd**: je site is HTTPS, maar de uitgevers-URL van het certificaat is HTTP. De CORS-proxy lost dit op.
+3. **CORS-proxy weigert je origin**: controleer of je domein in de array `ALLOWED_ORIGINS` in `cors-proxy-worker.js` staat
+
+### "403 Forbidden" van de proxy
+
+Je domein staat niet in de lijst `ALLOWED_ORIGINS`. Bewerk `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Implementeer daarna opnieuw: `npx wrangler deploy`
+
+### De proxy testen
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certificaten die zonder proxy werken
+
+Sommige certificaten bevatten de volledige keten in het P12/PFX-bestand en hoeven niets extern op te halen:
+
+- Zelfondertekende certificaten
+- Sommige commerciële CA's die tussencertificaten meeleveren
+- Certificaten die je handmatig met de volledige keten hebt samengesteld
diff --git a/docs/nl/self-hosting/docker.md b/docs/nl/self-hosting/docker.md
new file mode 100644
index 00000000..bb0c523c
--- /dev/null
+++ b/docs/nl/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Implementeren met Docker / Podman
+
+De eenvoudigste manier om BentoPDF zelf te hosten in een productieomgeving.
+
+> [!IMPORTANT]
+> **Vereiste headers voor conversie van Office-bestanden**
+>
+> Op LibreOffice gebaseerde tools (conversie van Word, Excel en PowerPoint) hebben deze HTTP-headers nodig voor `SharedArrayBuffer`-ondersteuning:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> De pagina moet ook vanuit een beveiligde context worden aangeboden. `http://localhost` werkt voor lokaal testen, maar `http://192.168.x.x` of andere LAN-IP's komen meestal niet in aanmerking, dus Office-conversie via gewoon HTTP mislukt ook als de headers aanwezig zijn.
+>
+> De officiële containerimages bevatten deze headers. Gebruik je een reverse proxy (Traefik, Caddy enzovoort), zorg dan dat deze headers behouden blijven of worden toegevoegd, en gebruik HTTPS voor toegang buiten loopback.
+
+> [!TIP]
+> **Podman-gebruikers:** Alle `docker`-opdrachten werken met Podman door `docker` te vervangen door `podman` en `docker-compose` door `podman-compose`.
+
+## Snelstart
+
+> [!TIP]
+> BentoPDF wordt in twee builds geleverd:
+>
+> - **Zelfgehoste build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Alle PDF-tools, **zonder** de marketingelementen (geen hero, FAQ, testimonials, footer). Gebruik deze voor interne implementaties van teams of organisaties. Het is **geen** "lite"-versie met minder functies.
+> - **Commerciële build**: `ghcr.io/alam00000/bentopdf:latest`. De volledige marketingsite, gebruikt door bentopdf.com zelf en door houders van een commerciële licentie met openbare implementaties.
+>
+> Twijfel je, haal dan de zelfgehoste build op.
+
+```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
+
+Maak `docker-compose.yml` aan:
+
+```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
+```
+
+Uitvoeren:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Bouw je eigen image
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Bouwen en uitvoeren:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Omgevingsvariabelen
+
+| Variable | Description | Default |
+| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Bouw de zelfgehoste variant (verbergt de marketingelementen van bentopdf.com: hero, FAQ, testimonials, footer). Alle PDF-tools blijven beschikbaar. | `false` |
+| `BASE_URL` | Implementeren in een submap | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL van de PyMuPDF WASM-module | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL van de Ghostscript WASM-module | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL van de CoherentPDF WASM-module | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL van het OCR-workerscript | _(leeg; gebruik de standaard-CDN van Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Map met de OCR-core-runtime | _(leeg; gebruik de standaard-CDN van Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Map met OCR-traineddata | _(leeg; gebruik de standaard-CDN van Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | OCR-talen in de interface, gescheiden door komma's | _(leeg; toon de volledige catalogus)_ |
+| `VITE_OCR_FONT_BASE_URL` | Map met OCR-tekstlaaglettertypen | _(leeg; gebruik externe Noto-lettertype-URL's)_ |
+| `VITE_DEFAULT_LANGUAGE` | Standaardtaal van de interface | `en` |
+| `VITE_BRAND_NAME` | Aangepaste merknaam | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logopad relatief aan `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Aangepaste footer-/copyrighttekst | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | Tool-ID's om te verbergen, gescheiden door komma's | _(leeg; alle tools ingeschakeld)_ |
+| `DISABLE_GITHUB_STARS` | Sla het ophalen van het aantal GitHub-sterren bij het laden van de pagina over en haal `api.github.com` uit de CSP. Builds in Simple Mode slaan het altijd over. | `false` |
+| `SITE_URL` | Openbare URL die in canonical-, hreflang- en sitemaplinks wordt geschreven. Laat de standaardwaarde staan, tenzij zoekmachines je implementatie als eigen site moeten zien. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Bij een aangepaste `SITE_URL` krijgt elke pagina `noindex`, zodat je kopie niet concurreert met bentopdf.com in zoekresultaten. Zet op `true` om indexering toe te staan. | `false` |
+| `COMPRESSION_MODE` | Voorgecomprimeerde kopieën: `o` geen, `g` `.gz` (geserveerd door de nginx van de image), `b` `.br`, `all` beide. De nginx van de image kan `.br` niet serveren. | `o` |
+
+WASM-module-URL's zijn vooraf geconfigureerd met CDN-standaardwaarden, dus alle geavanceerde functies werken direct. Overschrijf ze voor air-gapped of zelfgehoste implementaties.
+
+### Zoekmachines
+
+Standaard verwijst elke pagina zoekmachines naar bentopdf.com als origineel, zodat je implementatie niet als duplicaat verschijnt. Voor een privé- of interne instantie hoef je niets te wijzigen.
+
+- **Houd je instantie helemaal uit zoekresultaten:** start de container met `-e ROBOTS_NOINDEX=true`. Hiervoor is alleen een herstart nodig, geen nieuwe build.
+- **Maak van je instantie een eigen site in zoekresultaten:** bouw met `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Zonder `ALLOW_INDEXING=true` markeert een aangepaste `SITE_URL` elke pagina als `noindex`.
+
+### Content-Security-Policy
+
+De nginx-image wordt geleverd met een afdwingende `Content-Security-Policy`-header. De richtlijnen `script-src`, `connect-src` en `font-src` van de CSP worden **tijdens de build gegenereerd** uit de bovenstaande `VITE_*`-URL-variabelen: alle hosts die je via `--build-arg` meegeeft, worden automatisch aan het beleid toegevoegd.
+
+Daardoor geldt:
+
+- Overschrijf je `VITE_CORS_PROXY_URL` of `VITE_WASM_*_URL` tijdens de build, dan staat de CSP die origins automatisch toe, zonder extra configuratie.
+- Voor URL's op `cdn.jsdelivr.net` staat `script-src` alleen de exacte map van het versiegebonden pakket toe, bijvoorbeeld `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, niet de hele CDN. jsDelivr serveert elk openbaar npm-pakket of GitHub-repository, dus het toestaan van de hele host zou elk daarvan op je instantie laten draaien. URL's op andere hosts worden op origin toegestaan.
+- Configureer je aangepaste WASM-URL's tijdens _runtime_ via de pagina Geavanceerde instellingen in de app, dan staan die origins **niet** in de CSP en blokkeert de browser het ophalen ervan. Dit geldt ook voor een andere versie van hetzelfde pakket op `cdn.jsdelivr.net`, omdat alleen de tijdens de build ingestelde versie is toegestaan. Runtimeconfiguratie is bedoeld om mee te experimenteren; stel voor permanente aangepaste URL's het bijbehorende `VITE_*`-buildargument in.
+- Air-gapped implementaties die alle drie de `VITE_WASM_*_URL`-waarden overschrijven, verwijderen ook die `cdn.jsdelivr.net`-pakketmappen uit de CSP (elke standaardwaarde wordt vervangen, niet aangevuld). De Tesseract OCR-standaardwaarden op `cdn.jsdelivr.net` blijven in het beleid staan totdat je ook de drie `VITE_TESSERACT_*`-waarden instelt. Zo vervangt het instellen van `VITE_CORS_PROXY_URL` ook de openbare standaardwaarde `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+De CSP bevat `'unsafe-eval'` in `script-src`, omdat de LibreOffice WASM-runtime (gebruikt door de conversietools voor Word/Excel/PowerPoint) en de afbeeldingsbibliotheek wasm-vips (gebruikt door PDF naar TIFF) interne dispatch-code compileren via `new Function()`. Zonder dit werken die tools niet meer. Bouw je in `SIMPLE_MODE` (zonder LibreOffice) en heb je PDF naar TIFF niet nodig, dan kun je het gegenereerde `security-headers.conf` handmatig bewerken om `'unsafe-eval'` te verwijderen voor een strenger beleid.
+
+Laat voor OCR de `VITE_TESSERACT_*`-variabelen leeg om de standaard online assets te gebruiken, of stel alle drie samen in voor zelfgehoste/offline OCR. Gedeeltelijke OCR-overschrijvingen worden geweigerd, omdat de worker, de core-runtime en de traineddata-map bij elkaar moeten passen. Stel voor volledig offline doorzoekbare PDF-uitvoer ook `VITE_OCR_FONT_BASE_URL` in, zodat de OCR-tekstlaaglettertypen van je interne server worden geladen in plaats van van de openbare Noto-lettertype-URL's.
+
+`VITE_DEFAULT_LANGUAGE` stelt de interfacetaal in voor nieuwe bezoekers. Ondersteunde waarden: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Gebruikers kunnen nog steeds van taal wisselen: dit verandert alleen de standaardtaal.
+
+Voorbeeld:
+
+```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
+```
+
+### Eigen huisstijl
+
+Vervang het standaardlogo, de naam en de footertekst van BentoPDF door je eigen. Plaats je logobestand in de map `public/` (of gebruik een bestaande afbeelding) en geef de huisstijlvariabelen tijdens de build mee:
+
+```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 .
+```
+
+Huisstijl werkt in zowel de volledige modus als Simple Mode en kan worden gecombineerd met alle andere buildopties.
+
+### Specifieke tools uitschakelen
+
+Verberg tools in de interface voor compliance- of beveiligingseisen. Uitgeschakelde tools verdwijnen van de startpagina, uit zoekresultaten, sneltoetsen en de workflowbouwer. Rechtstreekse toegang via de URL toont een pagina "tool niet beschikbaar".
+
+Tool-ID's zijn de pagina-URL zonder `.html`. Staat een tool bijvoorbeeld op `bentopdf.com/edit-pdf.html`, dan is de ID `edit-pdf`.
+
+#### Tool-ID's vinden
+
+Het makkelijkst: open een tool in BentoPDF en kijk naar de URL. Het laatste deel van het pad (zonder `.html`) is de tool-ID.
+
+
+Volledige lijst met tool-ID's
+
+**Bewerken en annoteren:** `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`
+
+**Naar PDF converteren:** `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`
+
+**Van PDF converteren:** `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`
+
+**Organiseren en beheren:** `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`
+
+**Optimaliseren en repareren:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Beveiliging:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Optie 1: Tijdens de build (Docker-buildargument)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Hiermee wordt de lijst met uitgeschakelde tools in de JavaScript-bundel ingebakken. Wijzigen vereist een nieuwe build.
+
+#### Optie 2: Tijdens runtime (config.json)
+
+Koppel een bestand `config.json` in de aangeboden map, zonder nieuwe build:
+
+```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
+```
+
+Of met 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
+```
+
+Beide methoden kunnen worden gecombineerd: de lijsten worden samengevoegd. Staat een tool in een van beide, dan is hij uitgeschakeld.
+
+#### Editorfuncties uitschakelen
+
+Je kunt ook specifieke functies in de PDF-editor (bijv. redactie, annotaties, formulieren) uitschakelen zonder de hele editortool uit te schakelen. Voeg `editorDisabledCategories` toe aan je `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Volledige lijst met editorcategorieën
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Annotatie:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Vormen:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Meten:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formulier:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Redactie:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Document:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Pagina:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Paneel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Tools:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Selectie:** `selection`, `selection-copy`
+
+**Geschiedenis:** `history`, `history-undo`, `history-redo`
+
+
+
+Categorieën zijn hiërarchisch: het uitschakelen van een bovenliggende categorie (bijv. `annotation`) schakelt alle onderliggende uit.
+
+### De GitHub-sterrenteller uitschakelen
+
+De navigatiebalk toont een live aantal GitHub-sterren, bij het laden van de pagina opgehaald van `api.github.com`. Het is het enige externe verzoek dat geen PDF-functie dient. Schakel het uit tijdens de build om de ophaalcode uit de bundel te verwijderen en `api.github.com` uit de Content-Security-Policy te halen:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Builds in Simple Mode (`bentopdf-simple`) slaan de sterrenteller altijd over: deze vlag is alleen nodig voor de commerciële build of aangepaste volledige builds.
+
+### Aangepaste WASM-URL's (air-gapped / zelfgehost)
+
+> [!IMPORTANT]
+> WASM-URL's worden tijdens de **build** in de JavaScript ingebakken. De WASM-bestanden worden tijdens runtime door de **browser van de gebruiker** gedownload: Docker downloadt ze niet tijdens de build. Voor air-gapped netwerken moet je de WASM-bestanden hosten op een interne server die browsers kunnen bereiken.
+
+**Volledige air-gapped werkwijze:**
+
+```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
+```
+
+Gebruik de codes die `bash scripts/prepare-airgap.sh --list-ocr-languages` toont, of zoek op naam met `bash scripts/prepare-airgap.sh --search-ocr-language `, voor `--ocr-languages`. Bouw je met een beperkte OCR-subset, geef dan dezelfde codes door aan `VITE_TESSERACT_AVAILABLE_LANGUAGES`, zodat de app alleen meegeleverde talen toont. Host voor volledig offline OCR-uitvoer ook de meegeleverde map `ocr-fonts/` en laat `VITE_OCR_FONT_BASE_URL` ernaar verwijzen.
+
+Stel een variabele in op een lege string om die module uit te schakelen (gebruikers moeten dan handmatig configureren via Geavanceerde instellingen).
+
+## Aangepaste poort
+
+Standaard luistert BentoPDF op poort `8080` in de container. Om dit te wijzigen, stel je tijdens runtime de omgevingsvariabele `PORT` in:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variable | Description | Default |
+| -------- | ---------------------------------- | ------- |
+| `PORT` | Nginx-luisterpoort in de container | `8080` |
+
+Dit werkt met zowel de standaard als de nonroot Dockerfile.
+
+## Aangepaste gebruikers-ID (PUID/PGID)
+
+Voor omgevingen die als een specifieke niet-rootgebruiker moeten draaien (NAS-apparaten, Kubernetes met security contexts, organisatiebeleid) biedt BentoPDF een aparte Dockerfile met PUID/PGID-ondersteuning in LSIO-stijl.
+
+### Bouwen en uitvoeren
+
+```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
+```
+
+### Omgevingsvariabelen
+
+| Variable | Description | Default |
+| -------------- | ------------------------------- | ------- |
+| `PUID` | Gebruikers-ID om mee te draaien | `1000` |
+| `PGID` | Groeps-ID om mee te draaien | `1000` |
+| `PORT` | Nginx-luisterpoort | `8080` |
+| `DISABLE_IPV6` | IPv6-listener uitschakelen | `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
+```
+
+### Hoe het werkt
+
+De container start als root, maakt een gebruiker aan met de opgegeven PUID/PGID, past het eigendom van alle beschrijfbare mappen aan en laat daarna rechten vallen met `su-exec`. Het nginx-proces draait volledig als de door jou opgegeven gebruiker.
+
+> [!NOTE]
+> De standaard `Dockerfile` gebruikt `nginx-unprivileged` (UID 101) en wordt aanbevolen voor de meeste implementaties. Gebruik `Dockerfile.nonroot` alleen als je een specifieke UID/GID nodig hebt.
+
+> [!WARNING]
+> PUID/PGID mag niet `0` (root) zijn. De entrypoint valideert de invoer en stopt met een foutmelding bij ongeldige waarden.
+
+## Met Traefik (reverse proxy)
+
+```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
+```
+
+## Met Caddy (reverse proxy)
+
+```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"
+}
+```
+
+## Resourcelimieten
+
+```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-integratie)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) laat je Podman-containers als systemd-services draaien. Dit is ideaal voor productie-implementaties op Linux-systemen.
+
+### Basisinstallatie van Quadlet
+
+Maak een containerunitbestand aan op `~/.config/containers/systemd/bentopdf.container` (gebruiker) of `/etc/containers/systemd/bentopdf.container` (systeem):
+
+```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
+```
+
+### Inschakelen en starten
+
+```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]
+> Gebruik voor een systeembrede implementatie `systemctl` zonder de vlag `--user` en plaats het bestand in `/etc/containers/systemd/`.
+
+### Quadlet met health check
+
+```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
+```
+
+### Automatisch bijwerken met Quadlet
+
+Podman kan containers automatisch bijwerken wanneer nieuwe images beschikbaar zijn:
+
+```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
+```
+
+### Netwerkconfiguratie van Quadlet
+
+Maak voor een aangepaste netwerkconfiguratie een netwerkbestand `bentopdf.network` aan:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Verwijs er daarna naar in je containerbestand:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Bijwerken
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/nl/self-hosting/hostinger.md b/docs/nl/self-hosting/hostinger.md
new file mode 100644
index 00000000..1835a1e2
--- /dev/null
+++ b/docs/nl/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Implementeren op Hostinger
+
+[Hostinger](https://hostinger.com) is een populaire aanbieder van shared hosting. Deze gids behandelt het implementeren van BentoPDF op de shared hosting van Hostinger.
+
+## Vereisten
+
+- Hostinger-hostingpakket met toegang tot de bestandsbeheerder
+- Lokaal geïnstalleerde Node.js om te bouwen
+
+## Stap 1: Bouw het project
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+De gebouwde bestanden staan in de map `dist`.
+
+## Stap 2: Uploaden naar Hostinger
+
+### Implementatie op het hoofddomein
+
+1. Log in op je Hostinger-account
+2. Ga naar **File Manager** → **public_html**
+3. **Verwijder** bestaande bestanden (maak zo nodig een back-up)
+4. **Upload** de volledige inhoud van je lokale map `dist` naar `public_html`
+
+### Implementatie in een submap
+
+Bij implementatie in een submap (bijv. `yourdomain.com/pdf-tools/`):
+
+1. Bouw met de juiste basis-URL:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Maak de map aan in Hostinger:
+ - Ga naar **File Manager** → **public_html**
+ - Maak een nieuwe map: `pdf-tools`
+3. Upload de volledige inhoud van `dist` naar `public_html/pdf-tools/`
+
+## Stap 3: Maak het .htaccess-bestand aan
+
+Maak een bestand `.htaccess` aan in de hoofdmap van je implementatiemap (`public_html` of `public_html/pdf-tools/`):
+
+::: warning Belangrijk
+Wijzig bij implementatie in een submap `RewriteBase /` naar `RewriteBase /pdf-tools/` (of de naam van je map).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Voorbeeld van .htaccess voor een submap
+
+Pas voor `yourdomain.com/pdf-tools/` deze regels aan:
+
+```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
+```
+
+## Probleemoplossing
+
+### WASM-bestanden worden niet geladen
+
+Controleer of de MIME-typen correct zijn ingesteld in `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### LibreOffice-tools werken niet
+
+De beveiligingsheaders zijn cruciaal voor SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Als de headers niet worden toegepast, neem dan contact op met de support van Hostinger om `mod_headers` in te schakelen.
+
+### 404-fouten bij het vernieuwen van de pagina
+
+Controleer of de regel voor de extensie `.html` en de taalroutes correct zijn geconfigureerd. BentoPDF gebruikt statische HTML-bestanden, geen SPA-routing:
+
+```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]
+```
+
+### Limieten voor bestandsuploads
+
+Hostinger kan limieten voor bestandsgrootte hebben. Upload WASM-bestanden afzonderlijk als de bulkupload mislukt.
diff --git a/docs/nl/self-hosting/index.md b/docs/nl/self-hosting/index.md
new file mode 100644
index 00000000..1bbf8de4
--- /dev/null
+++ b/docs/nl/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Zelf hosten
+
+BentoPDF kun je op je eigen infrastructuur zelf hosten. Deze gids behandelt verschillende implementatiemogelijkheden.
+
+## Snel aan de slag met Docker / Podman
+
+De snelste manier om BentoPDF zelf te hosten:
+
+> [!TIP]
+> BentoPDF wordt in twee builds geleverd:
+>
+> - **Self-Hosted build**: `ghcr.io/alam00000/bentopdf-simple:latest`. Alle PDF-tools, **zonder** de marketingelementen (geen hero, FAQ, testimonials, footer). Gebruik dit voor interne implementaties voor teams of organisaties. Het is **geen** versie met minder functies of een "lite"-versie.
+> - **Commercial build**: `ghcr.io/alam00000/bentopdf:latest`. De volledige marketingsite, gebruikt door bentopdf.com zelf en door commerciële licentiehouders met openbare implementaties.
+>
+> Twijfel je? Haal dan de Self-Hosted build op.
+
+> [!IMPORTANT]
+> Voor het converteren van Office-bestanden is `SharedArrayBuffer` nodig. De app moet daarvoor zowel cross-origin geïsoleerd zijn als vanuit een veilige context worden aangeboden. De officiële image stuurt de vereiste COOP/COEP-headers al mee, maar browsers schakelen `SharedArrayBuffer` nog steeds uit op gewone HTTP-origins in een lokaal netwerk, zoals `http://192.168.x.x`.
+>
+> Gebruik `http://localhost` alleen voor tests op hetzelfde apparaat. Als gebruikers BentoPDF via een LAN-IP of hostnaam openen, zorg dan voor 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
+```
+
+Of met 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)
+
+Draai BentoPDF als systemd-service. Maak `~/.config/containers/systemd/bentopdf.container` aan:
+
+```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
+```
+
+Zie de [Docker-implementatiegids](/nl/self-hosting/docker) voor de volledige Quadlet-documentatie.
+
+## Bouwen vanuit de broncode
+
+```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
+```
+
+## Configuratieopties
+
+### Self-Hosted build (Simple Mode)
+
+De Self-Hosted build (de `bentopdf-simple` image, ook wel Simple Mode genoemd) is **functioneel identiek** aan de Commercial build: alle PDF-tools zijn aanwezig en werken hetzelfde. Hij verbergt alleen de marketingelementen die uitsluitend zinvol zijn op bentopdf.com zelf of bij een commerciële, openbare implementatie. **Het is geen versie met minder functies of een "lite"-versie.**
+
+**Wat de Self-Hosted build verbergt** (alleen cosmetisch, er worden geen PDF-functies verwijderd):
+
+- Navigatiebalk, hero-sectie, functiesectie, FAQ, testimonials, footer
+- Wijzigt de paginatitel in "PDF-tools"
+
+**Wat de Self-Hosted build behoudt** (alles wat daadwerkelijk PDF-werk doet):
+
+- Alle PDF-tools (samenvoegen, splitsen, bewerken, ondertekenen, OCR, Office-conversie, enz.)
+- Ondersteuning voor eigen huisstijl, alle configuratie tijdens het bouwen en tijdens runtime
+
+De Commercial build (`ghcr.io/alam00000/bentopdf:latest`) is wat bentopdf.com zelf draait en wordt gebruikt door commerciële licentiehouders met openbare implementaties. Hij voegt de hero, FAQ, testimonials en footer toe die op een interne tool niet zinvol zouden zijn.
+
+Host je BentoPDF zelf voor je team, organisatie of als interne tool, haal dan de Self-Hosted build op:
+
+```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
+```
+
+Zie [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) voor alle details.
+
+### Commercial build (openbare implementaties met je eigen merk)
+
+De Commercial build (de `bentopdf` image, zonder het achtervoegsel `-simple`) is wat bentopdf.com zelf draait. Hij bevat de volledige marketingsite (hero, functies, FAQ, testimonials, footer) bovenop alle PDF-tools. Gebruik deze build als je **BentoPDF wilt implementeren als openbare PDF-dienst onder je eigen merk**, bijvoorbeeld:
+
+- Je draait BentoPDF als gehoste SaaS voor eindgebruikers op je eigen domein
+- Je wilt de ervaring van de landingspagina (marketingsecties plus tools), niet alleen de kale toolomgeving
+- Je bent commercieel licentiehouder en verwerkt BentoPDF in een commercieel product
+
+**Draai hem ongewijzigd** (met BentoPDF-huisstijl, handig om de build te bekijken):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Bouw met je eigen merk** (de gebruikelijke commerciële werkwijze):
+
+```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
+```
+
+Elke andere buildoptie (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, WASM-URL-overschrijvingen, enz.) werkt op dezelfde manier als bij de Self-Hosted build.
+
+::: warning Licenties
+De Commercial build draaien is toegestaan onder een van de twee licentieopties van BentoPDF:
+
+- **AGPL-3.0** (gratis): toegestaan als je implementatie de volledige broncode onder AGPL publiceert, inclusief aanpassingen aan de huisstijl en de omringende bedrijfslogica.
+- **Commerciële licentie** ($79 eenmalig): vereist voor closed-source / propriëtaire implementaties waarbij je je huisstijlfork of bedrijfscode niet open source maakt.
+
+Zie de [Licentiepagina](https://www.bentopdf.com/licensing) voor de volledige vergelijking. AGPL-gelicentieerde WASM-modules (PyMuPDF, Ghostscript, CoherentPDF) worden tijdens runtime vanaf een CDN geladen, dus ze komen niet in je image terecht en veranderen je licentiepositie niet.
+:::
+
+### Basis-URL
+
+Implementeren in een submap:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Eigen huisstijl
+
+Vervang tijdens het bouwen het standaard BentoPDF-logo, de naam en de voettekst door je eigen:
+
+| Variabele | Beschrijving | Standaard |
+| ------------------ | ------------------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Merknaam in de header en footer | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logopad relatief ten opzichte van `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Eigen footer-/copyrighttekst | `© 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
+```
+
+Of via 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 .
+```
+
+Eigen huisstijl werkt in zowel de volledige modus als Simple Mode en kan worden gecombineerd met alle andere buildopties (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Specifieke tools uitschakelen
+
+Verberg afzonderlijke tools voor compliance of beveiliging. Uitgeschakelde tools worden verwijderd van de startpagina, uit zoeken, sneltoetsen, de workflowbouwer en directe URL-toegang.
+
+Tool-ID's zijn de pagina-URL zonder `.html`: open een tool en kijk naar de URL (bijv. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Tijdens het bouwen** (ingebakken in de bundel):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Tijdens runtime** (geen nieuwe build nodig: koppel een `config.json`):
+
+```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
+```
+
+Beide methoden kunnen worden gecombineerd: de lijsten worden samengevoegd.
+
+Je kunt ook specifieke functies in de PDF-editor (bijv. redactie) uitschakelen zonder de hele tool uit te schakelen door `editorDisabledCategories` toe te voegen aan `config.json`. Zie de [Docker-gids](/nl/self-hosting/docker#editorfuncties-uitschakelen) voor de volledige lijst met categorieën.
+
+## Implementatiegidsen
+
+Kies je platform:
+
+- [Vercel](/nl/self-hosting/vercel)
+- [Netlify](/nl/self-hosting/netlify)
+- [Cloudflare Pages](/nl/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/nl/self-hosting/aws)
+- [Hostinger](/nl/self-hosting/hostinger)
+- [Nginx](/nl/self-hosting/nginx)
+- [Apache](/nl/self-hosting/apache)
+- [Docker](/nl/self-hosting/docker)
+- [Kubernetes](/nl/self-hosting/kubernetes)
+- [CORS Proxy](/nl/self-hosting/cors-proxy) - Vereist voor digitale handtekeningen
+
+## Veelvoorkomende problemen
+
+### Word / ODT / Excel / PowerPoint naar PDF blijft hangen (SharedArrayBuffer niet beschikbaar)
+
+**Symptoom**: Documentconversies op basis van LibreOffice (Word, ODT, Excel, PowerPoint naar PDF) blijven hangen bij ~55% of starten niet. De browserconsole toont mogelijk:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+...of `window.crossOriginIsolated` meldt `false`, of de WASM-compilatie meldt `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Oorzaak**: LibreOffice WASM vereist `SharedArrayBuffer`, dat de browser alleen inschakelt wanneer de pagina **cross-origin geïsoleerd** is EN vanuit een **veilige context** wordt aangeboden. Dat betekent dat twee dingen moeten kloppen:
+
+1. Elke respons bevat beide headers:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. De pagina wordt aangeboden vanaf `https://...` of `http://localhost`. Gewone HTTP op een LAN-IP (bijv. `http://192.168.x.x`) telt NIET als veilig: browsers schakelen `SharedArrayBuffer` daar uit.
+
+Het verschil tussen `00 61 73 6d / 1f 8b 08 08` is een apart subsymptoom: bij de vooraf gecomprimeerde `.wasm.gz` / `.data.gz`-bestanden ontbreekt de responsheader `Content-Encoding: gzip`, waardoor de browser ruwe gzip-bytes ontvangt in plaats van gedecomprimeerde WASM.
+
+**Oplossing**: zie de platformspecifieke implementatiegids voor de exacte configuratie:
+
+- [Nginx →](/nl/self-hosting/nginx#pdf-ondertekenen-of-formulierinvuller-toont-een-lege-viewer-mjs-mime-fout)
+- [Apache →](/nl/self-hosting/apache#pdf-ondertekenen-of-formulierinvuller-toont-een-leeg-weergavevenster-mjs-mime-fout)
+- [AWS S3 + CloudFront →](/nl/self-hosting/aws#stap-3b-response-headers-policy-vereist-voor-libreoffice-wasm)
+- [Cloudflare Pages →](/nl/self-hosting/cloudflare#configuratiebestand) (`_headers`-bestand)
+- [Netlify →](/nl/self-hosting/netlify#word-odt-excel-naar-pdf-blijft-hangen-op-55) (`netlify.toml`)
+- [Vercel →](/nl/self-hosting/vercel#word-odt-excel-naar-pdf-werkt-niet) (`vercel.json`)
+- [Hostinger →](/nl/self-hosting/hostinger#libreoffice-tools-werken-niet) (`.htaccess`)
+- [Kubernetes →](/nl/self-hosting/kubernetes#mjs-mime-typefouten-iframe-van-pdf-ondertekenen-pdf-formulier-invullen-leeg)
+- **Docker**: wordt automatisch afgehandeld door de meegeleverde nginx-configuratie, geen actie nodig.
+
+**Controleren**: open de DevTools-console op een willekeurige BentoPDF-pagina en voer uit:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Als de pagina HTTPS of `http://localhost` gebruikt EN beide COEP/COOP-headers op elke respons aanwezig zijn, slagen beide controles. Zit je op `http://192.168.x.x` of een andere niet-loopback HTTP-origin, zorg dan voor HTTPS: een oplossing met alleen headers bestaat niet.
+
+### `.mjs`-bestanden geleverd als `application/octet-stream`
+
+**Symptoom**: PDF ondertekenen / PDF-formulier invullen / enkele andere tools tonen een lege viewer of laden niet. De browserconsole meldt:
+
+> `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.`
+
+**Oorzaak**: Je webserver of reverse proxy heeft geen MIME-type-koppeling voor `.mjs`-bestanden (de meegeleverde PDF-viewer gebruikt ES-modules met die extensie). Veel standaard serverconfiguraties gebruiken voor onbekende extensies `application/octet-stream`, wat browsers weigeren uit te voeren als ES-modules.
+
+**Oplossing**: zie de platformspecifieke implementatiegids voor het exacte fragment:
+
+- [Nginx →](/nl/self-hosting/nginx#pdf-ondertekenen-of-formulierinvuller-toont-een-lege-viewer-mjs-mime-fout)
+- [Apache →](/nl/self-hosting/apache#pdf-ondertekenen-of-formulierinvuller-toont-een-leeg-weergavevenster-mjs-mime-fout)
+- [AWS S3 + CloudFront →](/nl/self-hosting/aws#stap-2-bouwen-en-uploaden) (zie `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/nl/self-hosting/kubernetes#mjs-mime-typefouten-iframe-van-pdf-ondertekenen-pdf-formulier-invullen-leeg)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: worden automatisch afgehandeld, geen actie nodig.
+
+**Controleren**: open DevTools → tabblad Netwerk, zoek het mislukte `.mjs`-verzoek en bekijk de responsheader `Content-Type`. Die hoort `application/javascript` te zijn. Is het nog steeds `application/octet-stream`, dan bepaalt een externe reverse proxy of CDN het type mogelijk opnieuw: controleer elke laag in je serveringsketen.
+
+## WASM-configuratie (AGPL-componenten)
+
+BentoPDF **bundelt geen** AGPL-gelicentieerde verwerkingsbibliotheken in de broncode, maar **stelt CDN-URL's vooraf in** zodat alle functies direct werken, zonder handmatige configuratie.
+
+::: tip Standaard zonder configuratie
+Sinds v2.0.0 zijn WASM-modules via omgevingsvariabelen vooraf ingesteld om vanaf de jsDelivr CDN te laden. Alle geavanceerde functies werken direct zonder configuratie door de gebruiker.
+:::
+
+| Component | Licentie | Functies |
+| --------------- | -------- | ----------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | EPUB/MOBI/FB2/XPS-conversie, afbeeldingsextractie, tabelextractie |
+| **Ghostscript** | AGPL-3.0 | PDF/A-conversie, compressie, rechtzetten, rasteren |
+| **CoherentPDF** | AGPL-3.0 | Inhoudsopgave, bijlagen, PDF samenvoegen met bladwijzers |
+
+### Standaard omgevingsvariabelen
+
+Deze staan in `.env.production` en worden in de build ingebakken:
+
+```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=
+```
+
+### WASM-URL's overschrijven
+
+Je kunt de standaardwaarden tijdens het bouwen overschrijven voor aangepaste implementaties:
+
+```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
+```
+
+Om een module helemaal uit te schakelen (handmatige configuratie door de gebruiker via Geavanceerde instellingen is dan vereist), stel je de variabele in op een lege tekenreeks.
+
+Laat voor OCR alle `VITE_TESSERACT_*`-variabelen leeg en gebruik de standaard online bronnen, of stel de worker-, core- en lang-URL's samen in voor zelf gehoste/offline OCR. Bundel je alleen specifieke OCR-talen, stel dan ook `VITE_TESSERACT_AVAILABLE_LANGUAGES` in op dezelfde kommagescheiden codes, zodat de interface alleen geïnstalleerde talen aanbiedt en niet-ondersteunde selecties mislukken met een duidelijke foutmelding. Stel voor volledig offline doorzoekbare PDF-uitvoer ook `VITE_OCR_FONT_BASE_URL` in op de interne map waarin de meegeleverde OCR-lettertypen worden aangeboden.
+
+Gebruikers kunnen deze standaardwaarden ook op elk moment overschrijven via **Geavanceerde instellingen** in de interface. Overschrijvingen van gebruikers die in de browser zijn opgeslagen, hebben voorrang op de standaardwaarden uit de omgeving.
+
+### Air-gapped / offline implementatie
+
+Voor netwerken zonder internettoegang (overheid, zorg, financiële sector, enz.). De WASM-URL's worden tijdens het **bouwen** in de JavaScript ingebakken: de eigenlijke WASM-bestanden worden tijdens runtime door de **browser van de gebruiker** gedownload. Je moet dus alles voorbereiden op een machine met internet en het daarna overbrengen naar het geïsoleerde netwerk.
+
+#### Geautomatiseerd script (aanbevolen)
+
+Het meegeleverde script `prepare-airgap.sh` automatiseert het hele proces: het downloadt WASM-pakketten, bouwt de Docker-image en maakt een zelfstandige bundel met een installatiescript.
+
+```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
+```
+
+Dit levert een bundelmap op:
+
+```
+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
+```
+
+Breng de bundel via USB, een interne artefactrepository of een goedgekeurde methode over naar het air-gapped netwerk. Voer daarna het meegeleverde installatiescript uit:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Het installatiescript laadt de Docker-image, pakt de WASM-bestanden uit en start optioneel de container.
+
+**Scriptopties:**
+
+| Vlag | Beschrijving | Standaard |
+| ------------------------------ | ----------------------------------------------------------------- | ------------------------------------------------- |
+| `--wasm-base-url ` | Waar de WASM's intern worden gehost | _(vereist, wordt gevraagd indien niet opgegeven)_ |
+| `--image-name ` | Docker-imagetag | `bentopdf` |
+| `--output-dir ` | Uitvoermap voor de bundel | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Simple Mode inschakelen | uit |
+| `--base-url ` | Basis-URL van submap (bijv. `/pdf/`) | `/` |
+| `--language ` | Standaardtaal van de interface (bijv. `fr`, `de`) | _(geen)_ |
+| `--brand-name ` | Eigen merknaam | _(geen)_ |
+| `--brand-logo ` | Logopad relatief ten opzichte van `public/` | _(geen)_ |
+| `--footer-text ` | Eigen voettekst | _(geen)_ |
+| `--ocr-languages ` | Kommagescheiden OCR-talen om te bundelen | `eng` |
+| `--list-ocr-languages` | Toon ondersteunde OCR-codes en namen en stop | uit |
+| `--search-ocr-language ` | Zoek OCR-codes op naam of afkorting | uit |
+| `--dockerfile ` | Te gebruiken Dockerfile | `Dockerfile` |
+| `--skip-docker` | Docker-build en export overslaan | uit |
+| `--skip-wasm` | WASM-download overslaan (bestaande `.tgz`-bestanden hergebruiken) | uit |
+
+De interactieve prompt accepteert ook `list` om de volledige lijst met ondersteunde Tesseract-codes te tonen en `search ` om resultaten te vinden, zoals `search german` of `search chi`.
+
+::: warning Vereiste van dezelfde origin
+WASM-bestanden moeten worden aangeboden vanaf dezelfde **origin** als de BentoPDF-app. Web Workers gebruiken `importScripts()`, dat geen scripts cross-origin kan laden. Draait BentoPDF bijvoorbeeld op `https://internal.example.com`, dan moet de WASM-basis-URL ook `https://internal.example.com/wasm` zijn.
+:::
+
+#### Handmatige stappen
+
+
+Als je het liever handmatig doet, zonder het script
+
+**Stap 1: Download de WASM- en OCR-pakketten** (op een machine met internet)
+
+```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
+```
+
+**Stap 2: Bouw de Docker-image met interne URL's**
+
+```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 .
+```
+
+**Stap 3: Exporteer de Docker-image**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Stap 4: Breng alles over naar het air-gapped netwerk**
+
+Kopieer via USB, een interne artefactrepository of een goedgekeurde overdrachtsmethode:
+
+- `bentopdf.tar`: de Docker-image
+- De vijf `.tgz` WASM-/OCR-pakketten uit stap 1
+- De map `tesseract-langdata/` uit stap 1
+- De map `ocr-fonts/` uit stap 1
+
+**Stap 5: Installeer binnen het air-gapped netwerk**
+
+```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
+```
+
+Zorg dat de bestanden bereikbaar zijn op de URL's die je in stap 2 hebt ingesteld, waaronder `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` en `.../ocr/fonts`.
+
+
+
+::: info Bouwen vanuit de broncode in plaats van Docker?
+Stel de variabelen in `.env.production` in voordat je `npm run build` uitvoert:
+
+```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
+```
+
+:::
+
+### Je eigen WASM-proxy hosten
+
+Als je AGPL-WASM-bestanden met de juiste CORS-headers wilt aanbieden, kun je een eenvoudige proxy implementeren. Zie de [Cloudflare WASM Proxy-gids](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) voor een voorbeeldimplementatie.
+
+::: tip Waarom gescheiden?
+Deze scheiding zorgt voor:
+
+- Duidelijke juridische naleving voor commerciële gebruikers
+- De kern van BentoPDF blijft onder de dubbele licentie (AGPL-3.0 / Commercieel)
+- WASM-bestanden worden tijdens runtime geladen en niet in de broncode gebundeld
+ :::
+
+## Systeemvereisten
+
+| Vereiste | Minimum |
+| -------- | ---------------------------------- |
+| Opslag | ~100 MB (kern zonder AGPL-modules) |
+| RAM | 512 MB |
+| CPU | Elke moderne processor |
+
+::: tip
+BentoPDF is een statische site: er is geen database of backendserver nodig!
+:::
diff --git a/docs/nl/self-hosting/kubernetes.md b/docs/nl/self-hosting/kubernetes.md
new file mode 100644
index 00000000..5ce62052
--- /dev/null
+++ b/docs/nl/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Implementeren met Kubernetes
+
+Kubernetes is misschien overdreven voor een statische site, maar het kan een goede keuze zijn als je al standaardiseert op Helm + GitOps.
+
+> [!IMPORTANT]
+> **Vereiste headers voor Office-bestandsconversie**
+>
+> Tools op basis van LibreOffice (conversie van Word, Excel, PowerPoint) vereisen deze HTTP-headers voor `SharedArrayBuffer`-ondersteuning:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> De officiële BentoPDF nginx-images bevatten deze headers. In Kubernetes zijn **Ingress-/Gateway-controllers ook reverse proxies**, dus zorg dat deze headers behouden blijven (of voeg ze toe aan de edge).
+
+## Vereisten
+
+- Kubernetes-cluster
+- Helm v3
+- Een BentoPDF nginx-image (bijv. `ghcr.io/alam00000/bentopdf:`) die op **poort 8080** draait
+
+## Implementeren met Helm
+
+### Installeren vanuit deze repo (lokale chart)
+
+```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
+```
+
+### Installeren vanuit GHCR (OCI-chart)
+
+Als de chart als OCI-artefact op GHCR is gepubliceerd:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Beschikbaar maken
+
+### Port-forward (snelle test)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (optioneel)
+
+Schakel Ingress in (voorbeeld voor nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (optioneel)
+
+Deze chart ondersteunt Gateway API `Gateway` + `HTTPRoute`.
+
+Voorbeeld (Cloudflare Gateway API-operator):
+
+```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
+```
+
+## Zorgen dat de SharedArrayBuffer-headers blijven werken (Ingress/Gateway)
+
+### Wat er hoort te gebeuren
+
+De nginx-configuratie van BentoPDF stelt de vereiste responsheaders in. De meeste Ingress-/Gateway-controllers **laten responsheaders van de upstream ongewijzigd door**.
+
+### Wat het kan breken
+
+- Een controller- of edge-beleid dat responsheaders **overschrijft** of **verwijdert**
+- Een "security headers"-middleware die andere COOP/COEP-waarden instelt
+
+### Hoe te controleren
+
+Voer dit uit tegen je openbare endpoint:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Je zou moeten zien:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Als je Ingress-controller ze niet behoudt
+
+Voeg de headers toe aan de edge (afhankelijk van de controller). Voorbeeld voor **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;
+```
+
+## `.mjs` MIME-typefouten (iframe van PDF ondertekenen / PDF-formulier invullen leeg)
+
+Als de browserconsole `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` toont bij een `.mjs`-verzoek, vervangt een Ingress-/Gateway-controller vóór de BentoPDF nginx de upstream `Content-Type`-header door `application/octet-stream`.
+
+De nginx van de BentoPDF-image levert `.mjs` al als `application/javascript`. De oplossing is te voorkomen dat de controller de header verwijdert of vervangt. Voor nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Of gebruik een `ResponseHeaderModifier`-filter in Gateway API om `Content-Type: application/javascript` in te stellen voor `.mjs`-paden. Controleer met DevTools → tabblad Netwerk: het mislukte `.mjs`-verzoek zou nu `content-type: application/javascript` moeten tonen.
+
+### Gebruik je Gateway API en wil je headers afdwingen
+
+Gateway API ondersteunt een `ResponseHeaderModifier`-filter. Je kunt dit koppelen in `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
+```
+
+Ondersteuning voor specifieke filters hangt af van je Gateway-controller. Wordt een filter genegeerd, voeg de headers dan toe aan de edge of controllerlaag.
+
+## Specifieke tools uitschakelen
+
+Gebruik een ConfigMap om tools tijdens runtime uit te schakelen zonder de image opnieuw te bouwen:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Koppel het in de aangeboden map:
+
+```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
+```
+
+Tool-ID's zijn de pagina-URL zonder `.html`: open een tool en kijk naar de URL (bijv. `edit-pdf`, `merge-pdf`, `compress-pdf`). Uitgeschakelde tools worden verborgen op de startpagina, in zoeken, sneltoetsen, de workflowbouwer en bij directe URL-toegang. Zie de [Docker-gids](/nl/self-hosting/docker#specifieke-tools-uitschakelen) voor de volledige lijst met opties.
diff --git a/docs/nl/self-hosting/netlify.md b/docs/nl/self-hosting/netlify.md
new file mode 100644
index 00000000..0bb65ebd
--- /dev/null
+++ b/docs/nl/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Implementeren op Netlify
+
+[Netlify](https://netlify.com) biedt uitstekende hosting voor statische sites met een royale gratis laag.
+
+## Implementeren met één klik
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Handmatig implementeren
+
+### Stap 1: Repository koppelen
+
+1. Log in bij [Netlify](https://app.netlify.com)
+2. Klik op "Add new site" → "Import an existing project"
+3. Koppel je GitHub-account
+4. Selecteer je BentoPDF-fork
+
+### Stap 2: Buildinstellingen configureren
+
+| Instelling | Waarde |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### Stap 3: Implementeren
+
+Klik op "Deploy site" en wacht tot de build klaar is.
+
+## Configuratiebestand
+
+Maak `netlify.toml` aan in de hoofdmap van je project:
+
+```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 Belangrijk
+De headers `Cross-Origin-Embedder-Policy` en `Cross-Origin-Opener-Policy` zijn vereist voor conversies van Word/ODT/Excel/PowerPoint naar PDF. Zonder deze headers is `SharedArrayBuffer` niet beschikbaar en kan de LibreOffice WASM-engine niet worden geïnitialiseerd.
+
+De `Content-Encoding: gzip`-headers op de bestanden `.wasm.gz` en `.data.gz` zorgen ervoor dat de browser ze automatisch decomprimeert. Zonder deze headers ontvangt de browser ruwe gzip-bytes en mislukt de WASM-compilatie.
+:::
+
+## Omgevingsvariabelen
+
+Stel deze in via Site settings → Environment variables:
+
+| Variabele | Beschrijving |
+| ----------------------- | ------------------------------------------------------------------------ |
+| `SIMPLE_MODE` | Stel in op `true` voor een minimale build |
+| `VITE_BRAND_NAME` | Eigen merknaam (vervangt "BentoPDF") |
+| `VITE_BRAND_LOGO` | Logopad relatief ten opzichte van `public/` (bijv. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Eigen footer-/copyrighttekst |
+| `VITE_DEFAULT_LANGUAGE` | Standaardtaal van de interface (bijv. `fr`, `de`, `es`) |
+
+## Eigen domein
+
+1. Ga naar Site settings → Domain management
+2. Klik op "Add custom domain"
+3. Volg de DNS-configuratie-instructies
+
+## Grote media
+
+Overweeg voor grote WASM-bestanden [Netlify Large Media](https://docs.netlify.com/large-media/overview/) in te schakelen:
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Probleemoplossing
+
+### Word/ODT/Excel naar PDF blijft hangen op 55%
+
+Als documentconversies blijven hangen op 55%, open dan de DevTools-console en controleer:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Als `crossOriginIsolated` `false` is, worden de COEP/COOP-headers uit je `netlify.toml` niet toegepast. Zorg dat het bestand in de hoofdmap van je project staat en implementeer opnieuw.
+
+Als je `expected magic word 00 61 73 6d, found 1f 8b 08 08` in de console ziet, ontbreken bij de `.wasm.gz`-bestanden de `Content-Encoding: gzip`-headers. Zorg dat de `[[headers]]`-blokken voor `soffice.wasm.gz` en `soffice.data.gz` in je `netlify.toml` staan.
+
+### Build mislukt
+
+Controleer de compatibiliteit van de Node-versie:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Trage eerste lading
+
+Schakel assetoptimalisatie in via Site settings → Build & deploy → Asset optimization.
diff --git a/docs/nl/self-hosting/nginx.md b/docs/nl/self-hosting/nginx.md
new file mode 100644
index 00000000..6c735860
--- /dev/null
+++ b/docs/nl/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Implementeren met Nginx
+
+Host BentoPDF op je eigen server met Nginx.
+
+## Vereisten
+
+- Ubuntu/Debian-server
+- Nginx geïnstalleerd
+- SSL-certificaat (aanbevolen: Let's Encrypt)
+
+## Stap 1: Bouw het project
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Om de huisstijl aan te passen, stel je omgevingsvariabelen in vóór het bouwen:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Stap 2: Bestanden kopiëren
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Stap 3: Nginx-configuratie
+
+Maak `/etc/nginx/sites-available/bentopdf` aan:
+
+```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;
+ }
+}
+```
+
+## Stap 4: De site inschakelen
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Stap 5: SSL met Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Implementatie in een submap
+
+Om te hosten op `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Bouw met:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Prestaties afstellen
+
+Voeg toe aan `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;
+}
+```
+
+## Probleemoplossing
+
+### WASM wordt niet geladen
+
+Zorg dat het MIME-type is ingesteld:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### PDF ondertekenen of formulierinvuller toont een lege viewer (`.mjs` MIME-fout)
+
+Als de browserconsole het volgende toont:
+
+```
+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.
+```
+
+...en het mislukte verzoek eindigt op `.mjs`, dan mist in je nginx de koppeling `.mjs → application/javascript`. De meegeleverde PDF-viewer (gebruikt door PDF ondertekenen, PDF-formulier invullen en een paar andere tools) levert ES-modulebestanden met de extensie `.mjs`, en de standaard `mime.types` van nginx bevat die niet.
+
+Los dit op door `mjs` toe te voegen aan de bestaande regel `application/javascript` in `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> Voeg GEEN _tweede_ regel `application/javascript` toe: nginx leest `mime.types` regel voor regel en slechts één koppeling van type naar extensie wint, dus een tweede regel wordt op sommige versies stilzwijgend genegeerd. Pas de bestaande regel aan door `mjs` naast `js` toe te voegen.
+
+Of overschrijf het lokaal in je serverblok (geen globale bestandswijziging):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Laad nginx opnieuw na de wijziging:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Om te bevestigen: zoek in browser DevTools → tabblad Netwerk het mislukte `.mjs`-verzoek en controleer de responsheader `Content-Type`. Die moet nu `application/javascript` zijn, niet `application/octet-stream`.
+
+### Word/ODT/Excel naar PDF werkt niet
+
+LibreOffice WASM vereist `SharedArrayBuffer`, waarvoor de headers `Cross-Origin-Embedder-Policy` en `Cross-Origin-Opener-Policy` nodig zijn. Ook is een veilige context nodig, dus `http://localhost` werkt voor lokaal testen, maar `http://192.168.x.x` of andere LAN-IP's vereisen meestal HTTPS. Let op: nginx `add_header`-directives in een `location`-blok **overschrijven** `add_header`-directives op serverniveau, ze worden niet samengevoegd. Elk `location`-blok met eigen `add_header` moet de COEP/COOP-headers bevatten.
+
+Controleren met:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Gebruik je een reverse proxy vóór nginx, zorg dan dat die deze headers behoudt.
+
+### 502 Bad Gateway
+
+Controleer de Nginx-foutlogboeken:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/nl/self-hosting/vercel.md b/docs/nl/self-hosting/vercel.md
new file mode 100644
index 00000000..f080e0cb
--- /dev/null
+++ b/docs/nl/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Implementeren op Vercel
+
+[Vercel](https://vercel.com) biedt de eenvoudigste implementatie-ervaring voor statische sites.
+
+## Implementeren met één klik
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Handmatig implementeren
+
+### Stap 1: Fork de repository
+
+Fork [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) naar je GitHub-account.
+
+### Stap 2: Importeren in Vercel
+
+1. Ga naar [vercel.com/new](https://vercel.com/new)
+2. Selecteer je geforkte repository
+3. Configureer het project:
+
+| Instelling | Waarde |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Stap 3: Omgevingsvariabelen (optioneel)
+
+Voeg deze toe indien nodig:
+
+| Variabele | Beschrijving |
+| ----------------------- | ------------------------------------------------------------------------ |
+| `SIMPLE_MODE` | Stel in op `true` voor een minimale interface |
+| `VITE_BRAND_NAME` | Eigen merknaam (vervangt "BentoPDF") |
+| `VITE_BRAND_LOGO` | Logopad relatief ten opzichte van `public/` (bijv. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Eigen footer-/copyrighttekst |
+| `VITE_DEFAULT_LANGUAGE` | Standaardtaal van de interface (bijv. `fr`, `de`, `es`) |
+
+### Stap 4: Implementeren
+
+Klik op "Deploy" en wacht tot de build klaar is.
+
+## Eigen domein
+
+1. Ga naar de projectinstellingen
+2. Ga naar "Domains"
+3. Voeg je eigen domein toe
+4. Configureer DNS zoals aangegeven
+
+## Beperkingen
+
+::: warning Grote bestanden
+De serverless functions van Vercel hebben een limiet van 50 MB. Omdat BentoPDF een statische site is, zou dit je niet moeten raken, maar WASM-modules zijn groot (~100 MB in totaal). Zorg dat ze worden aangeboden vanuit de map `/public`.
+:::
+
+## Probleemoplossing
+
+### Build-timeout
+
+Als builds een timeout geven, probeer dan:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 bij vernieuwen
+
+Voeg een `vercel.json` toe voor SPA-routing:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Word/ODT/Excel naar PDF werkt niet
+
+LibreOffice WASM-conversies vereisen `SharedArrayBuffer`, waarvoor deze responsheaders op alle pagina's nodig zijn:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+De vooraf gecomprimeerde bestanden `.wasm.gz` en `.data.gz` hebben ook `Content-Encoding: gzip` nodig, zodat de browser ze decomprimeert.
+
+Voeg deze toe aan je `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" }
+ ]
+ }
+ ]
+}
+```
+
+Controleer dit door de DevTools-console te openen en `console.log(window.crossOriginIsolated)` uit te voeren: het moet `true` teruggeven.
diff --git a/docs/nl/tools/add-attachments.md b/docs/nl/tools/add-attachments.md
new file mode 100644
index 00000000..feb8eeeb
--- /dev/null
+++ b/docs/nl/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Bijlagen toevoegen
+description: Sluit bestanden van elk type in een PDF in, op documentniveau of gekoppeld aan specifieke pagina's.
+---
+
+# Bijlagen toevoegen
+
+Sluit een of meer bestanden rechtstreeks in een PDF-document in. Bijlagen kunnen op documentniveau worden toegevoegd (zichtbaar in het bijlagenpaneel van elke PDF-lezer) of aan specifieke pagina's worden gekoppeld.
+
+## Hoe het werkt
+
+1. Upload de PDF waaraan je bestanden wilt toevoegen.
+2. Selecteer via de uploadzone de bestanden die je wilt insluiten (elk bestandstype).
+3. Kies het bijlageniveau: **Document** (standaard) of **Pagina**.
+4. Kies je Pagina-niveau, voer dan een paginabereik in (bijv. `1-3` of `5`).
+5. Klik op de verwerkknop. De aangepaste PDF wordt gedownload met je bestanden ingesloten.
+
+## Functies
+
+- Voeg elk bestandstype toe: afbeeldingen, spreadsheets, archieven, uitvoerbare bestanden, alles
+- Bijlagen op documentniveau of paginaniveau
+- Meerdere bestanden in één bewerking toevoegen
+- Toont bestandsnamen en groottes van alle geselecteerde bijlagen
+- De uitvoer behoudt de originele PDF-inhoud met de ingesloten bestanden erbij
+
+## Opties
+
+| Optie | Beschrijving |
+| ------------------ | ------------------------------------------------------------------------------ |
+| **Documentniveau** | Voegt bestanden toe aan de PDF als geheel, toegankelijk via het bijlagenpaneel |
+| **Paginaniveau** | Voegt bestanden toe aan specifieke pagina's, opgegeven via een paginabereik |
+
+## Toepassingen
+
+- Brondata (Excel-bestanden, CSV's) bundelen met een PDF-rapport
+- Originele afbeeldingsbestanden toevoegen aan een PDF met een fotografieportfolio
+- Ondersteunende documenten insluiten in een contract of voorstel
+- Aanvullend materiaal toevoegen aan specifieke pagina's van een trainingshandleiding
+
+## Tips
+
+- Bijlagen op documentniveau worden door de meeste PDF-lezers ondersteund. Bijlagen op paginaniveau zijn mogelijk niet in alle viewers zichtbaar.
+- Er is geen limiet voor de bestandsgrootte van bijlagen, maar zeer grote ingesloten bestanden vergroten de PDF evenredig.
+
+## Gerelateerde tools
+
+- [Bijlagen Uitpakken](./extract-attachments)
+- [Bijlagen bewerken](./edit-attachments)
+- [PDF samenvoegen](./merge-pdf)
diff --git a/docs/nl/tools/add-blank-page.md b/docs/nl/tools/add-blank-page.md
new file mode 100644
index 00000000..5a6b04fc
--- /dev/null
+++ b/docs/nl/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Blanco pagina toevoegen
+description: Voeg een of meer blanco pagina's op elke gewenste positie in een PDF-document in.
+---
+
+# Blanco pagina toevoegen
+
+Voeg lege pagina's in een PDF in op een positie die je zelf opgeeft. Jij bepaalt waar de blanco pagina's komen en hoeveel er worden toegevoegd.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand. De tool toont het aantal pagina's.
+2. Voer de **positie** in waar de blanco pagina's moeten komen. Gebruik `0` om helemaal vooraan in te voegen, of het totale aantal pagina's om aan het einde toe te voegen.
+3. Voer het **aantal** blanco pagina's in dat je wilt toevoegen (standaard 1).
+4. Klik op de verwerkknop. De aangepaste PDF wordt gedownload met de blanco pagina's erin.
+
+## Functies
+
+- Voeg in op elke positie: begin, midden of einde van het document
+- Meerdere blanco pagina's in één bewerking toevoegen
+- De positiehint wordt dynamisch bijgewerkt op basis van het aantal pagina's van de geüploade PDF
+- Blanco pagina's in standaard A4-formaat
+
+## Toepassingen
+
+- Een blanco scheidingspagina toevoegen tussen de onderdelen van een samengesteld document
+- Blanco pagina's invoegen voor een goede uitlijning bij dubbelzijdig printen
+- Ruimte toevoegen voor handgeschreven notities in een geprinte studiegids
+- Een document aanvullen om aan een minimaal aantal pagina's te voldoen
+
+## Tips
+
+- Positie `0` voegt in vóór de eerste pagina. Een positie gelijk aan het totale aantal pagina's voegt toe na de laatste pagina.
+- Wil je inhoud (niet alleen blanco pagina's) op een specifieke positie invoegen, gebruik dan [PDF Multitool](./pdf-multi-tool) om een andere PDF na een bepaalde pagina in te voegen.
+
+## Gerelateerde tools
+
+- [Ordenen & Dupliceren](./organize-pdf)
+- [PDF Multitool](./pdf-multi-tool)
+- [PDF samenvoegen](./merge-pdf)
diff --git a/docs/nl/tools/add-page-labels.md b/docs/nl/tools/add-page-labels.md
new file mode 100644
index 00000000..fcdf7d61
--- /dev/null
+++ b/docs/nl/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Paginalabels toevoegen
+description: Voeg PDF-paginalabels toe met Romeinse cijfers, letter-voorvoegsels, aangepaste nummering en meerdere regels per document.
+---
+
+# Paginalabels toevoegen
+
+Paginalabels bepalen hoe paginanummers in PDF-viewers worden weergegeven (het nummer in de werkbalk, niet op de pagina zelf gedrukt). Met deze tool wijs je verschillende labelschema's toe aan verschillende paginabereiken: Romeinse cijfers voor de inleiding, gewone cijfers voor de hoofdtekst, bijlagen met letters en meer.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. Het optiespaneel verschijnt met standaard één labelregel.
+3. Stel elke regel in met een paginabereik, stijl, optioneel voorvoegsel en startwaarde.
+4. Klik op **Regel toevoegen** om extra regels voor andere secties te maken.
+5. Klik op **Paginalabels toevoegen** om alle regels toe te passen en het resultaat te downloaden.
+
+## Opties
+
+Elke labelregel heeft deze instellingen:
+
+- **Paginabereik** -- Op welke pagina's de regel van toepassing is. Laat leeg voor alle pagina's. Ondersteunt bereiken zoals `1-4`, `7`, `odd` of `1-9,30-40`.
+- **Labelstijl** -- Decimaal Arabisch, Romeinse kleine letters (i, ii, iii), Romeinse hoofdletters (I, II, III), kleine letters (a, b, c), hoofdletters (A, B, C) of Geen label (alleen voorvoegsel).
+- **Labelvoorvoegsel** -- Optionele tekst vóór elk label, zoals "A-" voor labels als A-1, A-2, A-3.
+- **Startwaarde** -- Het getal waarmee het tellen begint. Standaard 1. Stel in op 0 voor nummering vanaf nul.
+- **Nummering voortzetten over losse bereiken** -- Schakel dit in als een regel niet-aaneengesloten pagina's omvat (zoals `1-9,30-40` of `odd`) en je wilt dat de nummering doorloopt.
+- **Bestaande paginalabels verwijderen** -- Standaard aangevinkt. Wist eventuele eerdere labels voordat je nieuwe regels worden toegepast.
+
+## Functies
+
+- Meerdere labelregels per document voor complexe nummeringsschema's
+- Zes labelstijlen die alle gangbare nummeringssystemen dekken
+- Ondersteuning voor eigen voorvoegsels voor labels per sectie
+- Ondersteuning voor losse bereiken met doorlopende nummering
+- Optie om bestaande labels te behouden of te verwijderen
+
+## Toepassingen
+
+- Romeinse cijfers (i, ii, iii) instellen voor het voorwoord van een boek en gewone cijfers voor de hoofdtekst
+- Bijlagepagina's labelen met letter-voorvoegsels zoals "A-1", "A-2", "B-1", "B-2"
+- Paginalabels corrigeren in een gescand document waarvan de fysieke paginanummers niet overeenkomen met de PDF-paginavolgorde
+- Nummering vanaf nul toevoegen voor technische documenten
+
+## Tips
+
+- Paginalabels zijn metadata die PDF-viewers in hun navigatiewerkbalk tonen. Ze worden niet op de pagina zelf afgedrukt. Gebruik voor zichtbare nummers [Paginanummers](./page-numbers).
+- Voor deze tool moet CoherentPDF (CPDF) zijn ingesteld in je WASM-instellingen. Is dat niet het geval, dan word je gevraagd het in te stellen.
+
+## Gerelateerde tools
+
+- [Paginanummers](./page-numbers)
+- [Bates-nummering](./bates-numbering)
+- [Bladwijzers bewerken](./bookmark)
diff --git a/docs/nl/tools/add-stamps.md b/docs/nl/tools/add-stamps.md
new file mode 100644
index 00000000..14752590
--- /dev/null
+++ b/docs/nl/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Stempels toevoegen
+description: Voeg afbeeldingsstempels toe aan je PDF-pagina's met een geïntegreerde annotatiewerkbalk en vermelding van de gebruikersnaam.
+---
+
+# Stempels toevoegen
+
+Plaats afbeeldingsstempels op je PDF-pagina's met een ingebouwde viewer met een stempelwerkbalk voor annotaties. Stempels kunnen je naam bevatten, handig voor goedkeuringsprocessen, beoordelingen en het markeren van documenten.
+
+## Hoe het werkt
+
+1. Voer je naam in bij het veld **Stempelgebruikersnaam**. Deze naam verschijnt op de stempels die je maakt.
+2. Upload je PDF-bestand door te klikken of het naar de uploadzone te slepen.
+3. De stempeleditor opent met je document geladen in een viewer.
+4. Gebruik het afbeeldingsstempel-gereedschap in de werkbalk om stempels te kiezen en op elke pagina te plaatsen.
+5. Verplaats en vergroot of verklein de stempels naar wens.
+6. Klik op **Gestempelde PDF opslaan** om het resultaat te downloaden.
+
+## Functies
+
+- Geïntegreerde PDF-viewer met een stempelspecifieke annotatiewerkbalk
+- Vermelding van de gebruikersnaam op gemaakte stempels
+- Afbeeldingsstempels plaatsen op elke pagina
+- Positioneren en formaat wijzigen met slepen
+- Automatische viewergrootte op basis van de beeldverhouding van de pagina
+- Bestandsweergave met naam en grootte
+
+## Toepassingen
+
+- "APPROVED"- of "REVIEWED"-afbeeldingsstempels toevoegen aan documenten in een beoordelingsproces
+- Bedrijfszegels of notarisstempels als afbeelding op officiële documenten plaatsen
+- Pagina's markeren met "RECEIVED"-stempels inclusief de naam van de beoordelaar
+- Kwaliteitscontrolestempels toevoegen aan inspectierapporten
+
+## Tips
+
+- Stel je stempelgebruikersnaam in voordat je de PDF uploadt. De gebruikersnaam wordt in de metadata van de stempel opgenomen.
+- De viewer past zijn hoogte aan op basis van de beeldverhouding van de eerste pagina van de PDF, voor optimale weergave.
+- Voor tekstwatermerken in plaats van afbeeldingsstempels gebruik je de tool [Watermerk toevoegen](./add-watermark).
+
+## Gerelateerde tools
+
+- [PDF ondertekenen](./sign-pdf)
+- [Watermerk toevoegen](./add-watermark)
+- [PDF-editor](./edit-pdf)
diff --git a/docs/nl/tools/add-watermark.md b/docs/nl/tools/add-watermark.md
new file mode 100644
index 00000000..d45b8a27
--- /dev/null
+++ b/docs/nl/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Watermerk toevoegen
+description: Stempel tekst- of afbeeldingswatermerken op PDF-pagina's met een visuele sleep-en-neerzet-editor en live voorbeeld.
+---
+
+# Watermerk toevoegen
+
+Voeg tekst- of afbeeldingswatermerken toe aan je PDF-pagina's met een visuele editor. Je positioneert het watermerk door het direct in het voorbeeld te slepen, past het formaat aan met de hoekgrepen en stelt dekking, rotatie, lettertype en kleur in. Elke pagina kan een eigen watermerkpositie hebben, of je past hetzelfde watermerk in één keer op alle pagina's toe.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. De editor opent met een live voorbeeld van de eerste pagina en een versleepbare watermerklaag.
+3. Kies met de schakelknoppen tussen de modus **Tekst** of **Afbeelding**.
+4. Stel het watermerk in via het zijpaneel.
+5. Sleep het watermerk in het voorbeeld naar de gewenste plek. Gebruik de hoekgrepen om het formaat te wijzigen.
+6. Blader tussen pagina's om watermerken per pagina in te stellen, of laat **Op alle pagina's toepassen** aangevinkt.
+7. Klik op **Watermerk toevoegen** om te verwerken en te downloaden.
+
+## Opties
+
+**Instellingen voor tekstwatermerk:**
+
+- **Tekst** -- De tekst van het watermerk (bijv. "VERTROUWELIJK", "CONCEPT").
+- **Lettergrootte** -- Van 10 tot 200 punten. Standaard 72.
+- **Kleur** -- Elke kleur via de kleurkiezer.
+- **Dekking** -- Regel de transparantie van volledig transparant tot volledig dekkend.
+- **Rotatie** -- Draai de watermerktekst van -180 tot 180 graden.
+
+**Instellingen voor afbeeldingswatermerk:**
+
+- **Afbeelding uploaden** -- Upload een PNG, JPG of ander afbeeldingsbestand om als watermerk te gebruiken.
+- **Dekking** -- Regel de transparantie van de afbeelding.
+- **Schaal** -- Wijzig het formaat van het afbeeldingswatermerk.
+
+**Lay-outinstellingen:**
+
+- **Enkel** -- Eén watermerk per pagina, gepositioneerd door te slepen of met de positievoorinstellingen.
+- **Getegeld** -- Herhaalt het watermerk over de hele pagina in een diagonaal raster dat de rotatiehoek volgt, zodat het merk het document van rand tot rand bedekt.
+- **Horizontale ruimte** -- Afstand tussen tegels in de tekstrichting, als percentage van de breedte van het watermerk (alleen in getegelde modus).
+- **Verticale ruimte** -- Afstand tussen tegelrijen, als percentage van de hoogte van het watermerk (alleen in getegelde modus).
+
+**Algemene instellingen:**
+
+- **Op alle pagina's toepassen** -- Indien aangevinkt, geldt hetzelfde watermerk voor elke pagina. Schakel uit om per pagina afzonderlijke watermerken in te stellen.
+- **Paginabereik** -- Geef aan welke pagina's het watermerk krijgen (bijv. "1-3, 5, 7-9" of "all").
+
+## Functies
+
+- Visueel positioneren met slepen in een live PDF-voorbeeld
+- Watermerk met aanpasbaar formaat via hoekgrepen
+- Tekst- en afbeeldingsmodus voor watermerken
+- Enkele of paginavullende getegelde (herhalende) lay-out met instelbare tussenruimte
+- Watermerk per pagina of globaal toepassen
+- Pagina voor pagina bladeren in het voorbeeld
+- Bediening voor dekking en rotatie
+- Filteren op paginabereik
+
+## Toepassingen
+
+- Conceptdocumenten markeren met "CONCEPT" voordat ze ter beoordeling worden rondgestuurd
+- "VERTROUWELIJK"-watermerken toevoegen aan gevoelige financiële rapporten
+- Documenten voorzien van een bedrijfslogo als afbeeldingswatermerk
+- "SAMPLE" stempelen op productdocumentatie die met prospects wordt gedeeld
+- Auteursrechtvermeldingen toevoegen aan verspreid PDF-materiaal
+
+## Tips
+
+- Voor diagonale watermerken over de pagina stel je een rotatie van ongeveer 45 graden in en vergroot je de lettergrootte.
+- Getegelde modus maakt een document veel lastiger te hergebruiken na bijsnijden, omdat het verwijderen van één merk tientallen andere laat staan. Verlaag de dekking bij tegelen zodat de onderliggende tekst leesbaar blijft.
+- Afbeeldingswatermerken met transparante achtergrond (PNG-formaat) gaan natuurlijker op in de inhoud van het document.
+- Heb je op verschillende pagina's een andere watermerktekst nodig, schakel dan "Op alle pagina's toepassen" uit en blader pagina voor pagina.
+
+## Gerelateerde tools
+
+- [Koptekst en voettekst](./header-footer)
+- [Stempels toevoegen](./add-stamps)
+- [Bates-nummering](./bates-numbering)
+- [PDF ondertekenen](./sign-pdf)
diff --git a/docs/nl/tools/adjust-colors.md b/docs/nl/tools/adjust-colors.md
new file mode 100644
index 00000000..0500b08f
--- /dev/null
+++ b/docs/nl/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Kleuren aanpassen
+description: Stem helderheid, contrast, verzadiging, tint, temperatuur, kleurzweem, gamma en sepia in je PDF fijn af.
+---
+
+# Kleuren aanpassen
+
+Een complete toolkit voor kleurcorrectie van PDF's. Pas acht onafhankelijke parameters aan -- helderheid, contrast, verzadiging, tintverschuiving, temperatuur, kleurzweem, gamma en sepia -- met een live voorbeeld dat meebeweegt terwijl je elke schuifregelaar verplaatst.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. De editor opent met een voorbeeld van de eerste pagina en een paneel met kleurinstellingen.
+3. Beweeg de schuifregelaars om elke kleurparameter aan te passen. Het voorbeeld wordt in realtime bijgewerkt.
+4. Klik op **Herstellen** om alle schuifregelaars terug te zetten naar hun standaardpositie.
+5. Klik op **Toepassen** om alle pagina's te verwerken en de aangepaste PDF te downloaden.
+
+## Opties
+
+- **Helderheid** -- Maak de hele pagina lichter of donkerder (-100 tot +100).
+- **Contrast** -- Vergroot of verklein het verschil tussen lichte en donkere gebieden (-100 tot +100).
+- **Verzadiging** -- Versterk of verminder de kleurintensiteit (-100 tot +100). Bij -100 is het resultaat grijswaarden.
+- **Tintverschuiving** -- Draai het kleurenwiel om alle kleuren gelijkmatig te verschuiven.
+- **Temperatuur** -- Verschuif kleuren naar warmer (geel/oranje) of koeler (blauw).
+- **Kleurzweem** -- Voeg een groene of magenta zweem toe.
+- **Gamma** -- Pas de helderheid van de middentonen aan met een gammacurve. Waarden onder 1,0 maken middentonen donkerder; waarden boven 1,0 maken ze lichter.
+- **Sepia** -- Pas een klassiek sepia-effect toe. Hogere waarden geven een sterkere bruine tint.
+
+## Functies
+
+- Acht onafhankelijk instelbare kleurparameters
+- Live voorbeeld dat direct reageert op wijzigingen aan de schuifregelaars
+- Herstelknop om snel terug te gaan naar de standaardwaarden
+- Verwerkt alle pagina's in het document
+- Werkt met elke PDF-inhoud (tekst, afbeeldingen, graphics)
+
+## Toepassingen
+
+- Een donkere scan opfleuren of overbelichte pagina's corrigeren
+- Een kleurrijk document ontdoen van kleur om inkt te besparen voor het printen
+- Een sepiatint toepassen voor een antieke uitstraling van certificaten of onderscheidingen
+- De kleurtemperatuur corrigeren van foto's die in een PDF zijn ingesloten
+- Het contrast verhogen van vervaagde of gescande documenten van lage kwaliteit
+
+## Tips
+
+- Voor een snelle conversie naar grijswaarden sleep je de verzadigingsregelaar helemaal naar -100.
+- De gammaregelaar is vooral handig om de leesbaarheid van gescande documenten te verbeteren waarbij de middentonen te donker of te licht zijn.
+- Net als de andere beeldeffecttools rastert deze tool elke pagina. De uitvoer is afbeeldingsgebaseerd, dus tekst is niet selecteerbaar.
+
+## Gerelateerde tools
+
+- [Kleuren omkeren](./invert-colors)
+- [Scannereffect](./scanner-effect)
+- [Achtergrondkleur](./background-color)
diff --git a/docs/nl/tools/alternate-merge.md b/docs/nl/tools/alternate-merge.md
new file mode 100644
index 00000000..91cff1f2
--- /dev/null
+++ b/docs/nl/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Pagina's afwisselen en mixen
+description: Voeg PDF's samen door pagina's van elk bestand afwisselend te mixen, met behoud van bladwijzers.
+---
+
+# Pagina's afwisselen en mixen
+
+Meng pagina's van meerdere PDF-bestanden zodat ze elkaar afwisselen. Dit is de tool voor als een gewone samenvoeging bestanden gewoon achter elkaar zou plakken, maar je pagina 1 van bestand A wilt, dan pagina 1 van bestand B, dan pagina 2 van bestand A, enzovoort.
+
+## Hoe het werkt
+
+1. Upload minstens twee PDF-bestanden via de uploadzone.
+2. De tool toont elk bestand met het aantal pagina's en de bestandsgrootte.
+3. Sleep de grepen om te bepalen van welk bestand de pagina's als eerste komen in de afwisselende volgorde.
+4. Klik op **Pagina's Mixen** om de gemengde uitvoer te maken.
+5. Het resultaat wordt gedownload als `alternated-mixed.pdf`.
+
+## Functies
+
+- Wisselt pagina's af over een willekeurig aantal PDF's (minimaal twee)
+- Bestanden herordenen met slepen om de afwisselingsvolgorde te bepalen
+- Behoudt bladwijzers uit de brondocumenten
+- Toont het aantal pagina's en de bestandsgrootte van elk geüpload bestand
+- Verwerkt via een eigen web worker voor een responsieve interface
+
+## Toepassingen
+
+- Dubbelzijdige scans weer in elkaar zetten wanneer oneven en even pagina's apart zijn gescand
+- Vragenbladen combineren met antwoordsleutels zodat elke vraag door het antwoord wordt gevolgd
+- Tweetalige documenten pagina voor pagina samenvoegen (bijv. Engels op de ene kant, vertaling op de volgende)
+- Voor- en achterkant van een enkelzijdige scanner afwisselend samenvoegen
+
+## Tips
+
+- Hebben je bron-PDF's een verschillend aantal pagina's, dan zijn de pagina's van het kortere document als eerste op en komen de resterende pagina's van het langere document aan het einde.
+- De bestandsvolgorde is belangrijk -- het eerste bestand in de lijst levert de eerste pagina van de uitvoer. Sleep om te herschikken indien nodig.
+
+## Gerelateerde tools
+
+- [PDF samenvoegen](./merge-pdf)
+- [Ordenen & Dupliceren](./organize-pdf)
+- [PDF splitsen](./split-pdf)
diff --git a/docs/nl/tools/background-color.md b/docs/nl/tools/background-color.md
new file mode 100644
index 00000000..2473ff4a
--- /dev/null
+++ b/docs/nl/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Achtergrondkleur
+description: Wijzig de achtergrondkleur van elke pagina in je PDF en behoud alle inhoud erboven.
+---
+
+# Achtergrondkleur
+
+Stel een effen achtergrondkleur in achter alle bestaande inhoud van je PDF. De tool maakt op elke pagina een gekleurde rechthoek en legt de originele inhoud erbovenop, zodat tekst, afbeeldingen en graphics volledig zichtbaar blijven tegen de nieuwe achtergrond.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. Kies een achtergrondkleur met de kleurkiezer. De standaard is lichtgeel (#FFFFCC).
+3. Klik op **Achtergrondkleur wijzigen** om te verwerken.
+4. De bijgewerkte PDF wordt automatisch gedownload.
+
+## Opties
+
+- **Achtergrondkleur** -- Een standaard kleurkiezer voor elke effen kleur. Standaard lichtgeel.
+
+## Functies
+
+- Past een uniforme achtergrondkleur toe op elke pagina
+- Behoudt alle originele inhoud (tekst, afbeeldingen, vectorgraphics) bovenop de gekleurde laag
+- Behoudt de originele paginaafmetingen
+- Werkt met documenten van elk aantal pagina's
+
+## Toepassingen
+
+- Een lichte crème- of ivoorkleurige achtergrond toevoegen voor een zachtere, papierachtige uitstraling
+- Documentsets met kleuren indelen door verschillende achtergrondkleuren per categorie toe te passen
+- Visueel onderscheidende versies van hetzelfde document maken voor verschillende doelgroepen
+- Een lichte achtergrondtint toevoegen om de leesbaarheid te verbeteren bij het projecteren van documenten op een scherm
+
+## Tips
+
+- Lichte, gedempte kleuren werken het best. Een zeer donkere achtergrond maakt tekst moeilijk leesbaar, tenzij de tekst al lichtgekleurd is.
+- Wil je zowel de achtergrond- als de tekstkleur wijzigen, pas dan eerst de achtergrondkleur toe en gebruik daarna [Tekstkleur Wijzigen](./text-color) op het resultaat.
+- Deze tool werkt op het structurele niveau van de PDF (geen rasterisatie), dus tekst blijft selecteerbaar en doorzoekbaar in de uitvoer.
+
+## Gerelateerde tools
+
+- [Tekstkleur Wijzigen](./text-color)
+- [Kleuren omkeren](./invert-colors)
+- [Kleuren aanpassen](./adjust-colors)
diff --git a/docs/nl/tools/bates-numbering.md b/docs/nl/tools/bates-numbering.md
new file mode 100644
index 00000000..8787dadc
--- /dev/null
+++ b/docs/nl/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Bates-nummering
+description: Pas Bates-nummers toe op een of meer PDF's met aanpasbare sjablonen, opvulling, lettertypen en positionering.
+---
+
+# Bates-nummering
+
+Bates-nummering stempelt opeenvolgende identificatiecodes op elke pagina van je PDF's. Het is de standaardmethode om documenten te labelen in rechtszaken, audits en compliance-processen. Deze tool ondersteunt meerdere bestanden en aanpasbare sjablonen, en levert afzonderlijk genummerde PDF's of één ZIP-archief.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF-bestanden. Je kunt meerdere bestanden tegelijk slepen.
+2. Kies een stijlvoorinstelling of maak een eigen sjabloon.
+3. Stel de positie, het lettertype, de grootte, de kleur en de startnummers in.
+4. Klik op **Bates-nummers toepassen** om te verwerken.
+5. Een enkel bestand wordt direct gedownload. Meerdere bestanden worden als ZIP-archief gedownload.
+
+## Opties
+
+- **Stijlvoorinstelling** -- Kies uit ingebouwde indelingen:
+ - Exhibit + Case + Bates + Page (bijv. "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (zonder paginanummer)
+ - Case + Bates
+ - Alleen Bates-nummer (bijv. "000001")
+ - Aangepast (schrijf je eigen sjabloon)
+- **Stijl aanpassen** -- Een sjabloontekenreeks met plaatshouders: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Bates-opvulling** -- Aantal cijfers (3 tot 6) voor Bates-nummers met voorloopnullen. Alleen zichtbaar in de aangepaste modus.
+- **Positie** -- Koptekst of voettekst, links, midden of rechts.
+- **Bates begint bij** -- Het eerste Bates-nummer. Standaard 1. De nummering loopt door over bestanden heen.
+- **Bestandsteller begint bij** -- Het startnummer voor de plaatshouder `[FILE]`.
+- **Lettertype** -- Helvetica, Times New Roman of Courier.
+- **Lettergrootte** -- Grootte van de gestempelde tekst.
+- **Kleur** -- Kleurkiezer voor de tekst van het Bates-nummer.
+
+## Functies
+
+- Live voorbeeld dat toont hoe Bates-nummers over alle geüploade bestanden verschijnen
+- Ondersteuning voor meerdere bestanden met doorlopende nummering over documenten heen
+- Bestanden herordenen met slepen om de nummeringsvolgorde te bepalen
+- Zes positieopties (koptekst/voettekst, links/midden/rechts)
+- Adaptieve margeberekening die rekening houdt met verschillende paginaformaten
+- ZIP-uitvoer voor reeksen met meerdere bestanden
+- Sjabloonplaatshouders voor maximale flexibiliteit
+
+## Toepassingen
+
+- Discoverydocumenten voor een rechtszaak stempelen met opeenvolgende exhibitnummers
+- Auditbewijspakketten nummeren die tientallen bestanden beslaan
+- Regelgevende referentienummers toepassen op compliancedocumentatie
+- Bijlagen bij octrooiaanvragen labelen met zaakspecifieke identificatiecodes
+
+## Tips
+
+- Sleep bestanden in de bestandslijst om ze te herordenen voordat je verwerkt. De Bates-nummering volgt deze volgorde.
+- Gebruik de plaatshouder `[FILENAME]` om de originele bestandsnaam in de stempel op te nemen, zodat je pagina's makkelijker naar de brondocumenten kunt herleiden.
+- Het voorbeeldvak wordt in realtime bijgewerkt terwijl je instellingen wijzigt, zodat je de indeling kunt controleren voordat je verwerkt.
+
+## Gerelateerde tools
+
+- [Paginanummers](./page-numbers)
+- [Paginalabels toevoegen](./add-page-labels)
+- [Koptekst en voettekst](./header-footer)
diff --git a/docs/nl/tools/bmp-to-pdf.md b/docs/nl/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..a086676e
--- /dev/null
+++ b/docs/nl/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP naar PDF
+description: Zet BMP-bitmapafbeeldingen direct in je browser om naar PDF, zonder upload naar een server.
+---
+
+# BMP naar PDF
+
+Zet Windows Bitmap-bestanden (BMP) om naar PDF. BMP is een ongecomprimeerd afbeeldingsformaat dat nog voorkomt in oudere systemen, medische beeldvorming en industriële scanners. Deze tool zet ze om naar PDF zonder dat je iets hoeft te installeren.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------- |
+| BMP | `.bmp` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je BMP-bestanden erheen.
+2. Bekijk de bestandslijst. Voeg meer bestanden toe of verwijder ongewenste bestanden.
+3. Klik op **Converteren naar PDF**. De uitvoer wordt gedownload als `from_bmps.pdf`.
+
+Elke BMP wordt op een canvas getekend, als PNG geëxporteerd en vervolgens met pdf-lib in de PDF ingesloten. Het paginaformaat komt overeen met de originele afbeeldingsafmetingen.
+
+## Opties
+
+Deze tool biedt geen extra kwaliteitsinstellingen. Afbeeldingen worden op hun originele resolutie ingesloten als verliesvrije PNG in de PDF.
+
+## Toepassingen
+
+- Oude gescande documenten die als BMP zijn opgeslagen omzetten naar archiefwaardige PDF's
+- BMP-schermafbeeldingen uit oudere Windows-toepassingen omzetten naar deelbare documenten
+- Uitvoer van medische of industriële scanners verwerken die standaard BMP gebruikt
+- Oude afbeeldingsarchieven migreren naar een beter overdraagbaar formaat
+
+## Tips
+
+- BMP-bestanden zijn ongecomprimeerd en daardoor vaak groot. De resulterende PDF is aanzienlijk kleiner omdat de afbeeldingen intern opnieuw als PNG worden gecodeerd.
+- Heb je BMP-bestanden naast andere afbeeldingsformaten, gebruik dan de tool [Afbeeldingen naar PDF](./image-to-pdf) om alles in één keer te converteren.
+
+## Gerelateerde tools
+
+- [Afbeeldingen naar PDF](./image-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
+- [TIFF naar PDF](./tiff-to-pdf)
diff --git a/docs/nl/tools/bookmark.md b/docs/nl/tools/bookmark.md
new file mode 100644
index 00000000..222436c7
--- /dev/null
+++ b/docs/nl/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Bladwijzers bewerken
+description: Voeg PDF-bladwijzers toe, bewerk, importeer, exporteer en verwijder ze met een visuele editor en ondersteuning voor CSV/JSON.
+---
+
+# Bladwijzers bewerken
+
+Met de bladwijzereditor heb je volledige controle over de navigatiebladwijzers van een PDF (ook wel overzicht genoemd). Je kunt nieuwe bladwijzers toevoegen, bestaande bewerken, de hiërarchie herschikken en bladwijzergegevens importeren of exporteren in CSV- en JSON-formaat.
+
+## Zo werkt het
+
+1. Upload je PDF door te klikken of een bestand naar het uploadvak te slepen.
+2. Vink eventueel **Bestaande bladwijzers automatisch extraheren** aan om de huidige bladwijzerstructuur van het document over te nemen.
+3. De editor opent in een gesplitste weergave: de PDF-viewer links, het bladwijzerpaneel rechts.
+4. Typ een bladwijzertitel en klik op **Toevoegen aan pagina** om een nieuwe bladwijzer naar de huidige pagina te maken.
+5. Gebruik de knoppen in de werkbalk om bladwijzers te herschikken, op te maken of te verwijderen.
+6. Klik op **PDF met bladwijzers opslaan** om het bijgewerkte bestand te downloaden.
+
+## Functies
+
+- Visuele PDF-viewer met paginanavigatie, zoomopties en een veld om naar een pagina te gaan
+- Voeg met één klik bladwijzers toe aan elke pagina
+- Klik direct op de PDF om een nauwkeurige bestemming voor de bladwijzer in te stellen (kiesmodus)
+- Geneste bladwijzerhiërarchie met herschikken via slepen en neerzetten
+- Bewerkingen in bulk: selecteer meerdere bladwijzers om de kleur of stijl te wijzigen of ze in één keer te verwijderen
+- Zoeken in bladwijzers om snel items te vinden in grote structuren
+- Ongedaan maken en opnieuw uitvoeren voor alle wijzigingen
+- Bladwijzers importeren uit CSV (titel, pagina, niveau) of JSON-bestanden
+- Bladwijzers exporteren naar CSV of JSON voor bewerking in een ander programma
+- Opmaak van bladwijzers: kleur (rood, blauw, groen, geel, paars) en lettertype (vet, cursief, vet cursief)
+- Snel navigeren: blader door de pagina's met de toetsen Page Up en Page Down
+
+## Opties
+
+- **Bestaande bladwijzers automatisch extraheren**: als dit is aangevinkt, leest de tool de huidige bladwijzers van de PDF en toont ze bij het laden.
+- **Bulkmodus**: schakel in om meerdere bladwijzers te selecteren en kleur, stijl of verwijderen in bulk toe te passen.
+- **Alles uitvouwen/samenvouwen**: toon of verberg snel de onderliggende bladwijzers.
+
+## Toepassingen
+
+- Een inhoudsopgave toevoegen aan een studieboek of handleiding zonder bladwijzers
+- Bladwijzers herstructureren in een gescand document na OCR-verwerking
+- Bladwijzers exporteren naar CSV, bewerken in een spreadsheet en opnieuw importeren
+- Automatisch gegenereerde bladwijzers met onjuiste paginaverwijzingen opschonen
+- Gekleurde bladwijzers toevoegen om belangrijke onderdelen in een juridisch dossier te markeren
+
+## Tips
+
+- Gebruik CSV-import om in één keer veel bladwijzers aan te maken. Het formaat is eenvoudig: `title,page,level`, waarbij niveau 1 het hoogste niveau is.
+- Met de kiesmodus klik je op een exacte plek op de PDF-pagina om de bestemming van de bladwijzer in te stellen. Dat is nauwkeuriger dan alleen een paginanummer opgeven.
+- Exporteer je bladwijzers voordat je grote wijzigingen doorvoert, zodat je een back-up hebt.
+
+## Gerelateerde tools
+
+- [Inhoudsopgave](./table-of-contents)
+- [PDF-editor](./edit-pdf)
+- [Paginalabels toevoegen](./add-page-labels)
diff --git a/docs/nl/tools/cbz-to-pdf.md b/docs/nl/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..c830463f
--- /dev/null
+++ b/docs/nl/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ naar PDF
+description: Zet CBZ- en CBR-stripboekarchieven om naar PDF in je browser. Gratis, privé, zonder upload.
+---
+
+# CBZ naar PDF
+
+Zet stripboekarchieven om naar PDF's. CBZ en CBR zijn de standaardformaten voor digitale strips: het zijn gewoon ZIP- of RAR-archieven vol afbeeldingen. Deze tool haalt elke pagina eruit, behoudt de leesvolgorde en maakt een nette PDF waarin elke afbeelding een pagina op volledige grootte wordt.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------ | :------- | :------------------------------------------------------------- |
+| CBZ | `.cbz` | Op ZIP gebaseerd striparchief (lokaal verwerkt met pdf-lib) |
+| CBR | `.cbr` | Op RAR gebaseerd striparchief (verwerkt via de PyMuPDF-engine) |
+
+De CBZ-converter herkent JPEG-, PNG-, GIF-, BMP-, WebP-, AVIF-, TIFF-, HEIC- en JXL-afbeeldingen in het archief. Niet-standaardformaten worden vóór het insluiten automatisch naar PNG geconverteerd.
+
+## Zo werkt het
+
+1. Klik op het uploadvak of sleep je CBZ- of CBR-bestanden erheen. Je kunt beide formaten in één reeks combineren.
+2. Bekijk de lijst met bestanden. Verwijder wat je niet nodig hebt, of klik op **Meer bestanden toevoegen** om er meer toe te voegen.
+3. Klik op **Converteren naar PDF**. Bij CBZ-bestanden pakt de tool het archief uit, sorteert de afbeeldingen op naam in natuurlijke volgorde, detecteert het werkelijke formaat van elke afbeelding en sluit ze met pdf-lib in een PDF in. CBR-bestanden gaan in plaats daarvan via de PyMuPDF-engine.
+4. Eén bestand wordt als PDF gedownload. Bij meerdere bestanden krijg je een ZIP-archief met de naam `comic-converted.zip`.
+
+## Opties
+
+Er is geen configuratie nodig. Elke afbeelding wordt een pagina met dezelfde afmetingen als het origineel, zodat dubbele pagina's breed blijven en enkele pagina's smal.
+
+## Toepassingen
+
+- Strips lezen op een tablet of in een telefoon-app die wel PDF maar geen CBZ/CBR ondersteunt
+- Specifieke pagina's van een digitale strip afdrukken
+- Een stripcollectie archiveren in een formaat dat elke bestandsviewer kan openen
+- Een strip delen met iemand die geen speciale stripreader heeft
+
+## Tips
+
+- Afbeeldingen in het archief worden in natuurlijke volgorde gesorteerd (dus `page2.jpg` komt vóór `page10.jpg`). Geef je bestanden een consistente nummering voor de juiste paginavolgorde.
+- De converter herkent afbeeldingsformaten aan hun binaire handtekening, niet aan de bestandsextensie. Een PNG die per ongeluk `.jpg` heet, wordt toch correct ingesloten.
+- CBZ-bestanden worden volledig in de browser verwerkt zonder de PyMuPDF-engine te laden, dus ze worden sneller geconverteerd dan CBR-bestanden.
+
+## Gerelateerde tools
+
+- [EPUB naar PDF](./epub-to-pdf)
+- [MOBI naar PDF](./mobi-to-pdf)
+- [Afbeelding naar PDF](./image-to-pdf)
diff --git a/docs/nl/tools/change-permissions.md b/docs/nl/tools/change-permissions.md
new file mode 100644
index 00000000..e2284a5a
--- /dev/null
+++ b/docs/nl/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Rechten aanpassen
+description: Stel gebruiksrechten van een PDF in of wijzig ze voor afdrukken, kopiëren, bewerken en annoteren. Gebruikt 256-bits AES-versleuteling.
+---
+
+# Rechten aanpassen
+
+Bepaal precies wat ontvangers met je PDF mogen doen. Anders dan eenvoudige versleuteling, die het bestand alleen achter een wachtwoord zet, kun je met deze tool afdrukken, kopiëren, bewerken, annoteren, formulieren invullen, documentsamenstelling en pagina-extractie selectief toestaan of weigeren, allemaal afgedwongen met 256-bits AES-versleuteling.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. Als de PDF al versleuteld is, voer je het **Huidige wachtwoord** in.
+3. Stel een **Nieuw gebruikerswachtwoord** in (vereist om te openen) en/of een **Nieuw eigenaarswachtwoord** (bepaalt de rechten).
+4. Zet afzonderlijke rechten aan of uit met de selectievakjes.
+5. Klik op **Rechten aanpassen**.
+6. Download de bijgewerkte PDF.
+
+Als je beide velden voor een nieuw wachtwoord leeg laat, ontsleutelt de tool de PDF volledig en verwijdert alle versleuteling en beperkingen.
+
+## Rechtenbeheer
+
+| Recht | Wat het regelt |
+| ---------------------------------- | ---------------------------------------------------------------- |
+| **Afdrukken toestaan** | Of het document mag worden afgedrukt |
+| **Kopiëren toestaan** | Of tekst en afbeeldingen mogen worden geselecteerd en gekopieerd |
+| **Wijzigen toestaan** | Of de inhoud van het document mag worden bewerkt |
+| **Annoteren toestaan** | Of opmerkingen, markeringen en stempels mogen worden toegevoegd |
+| **Formulieren invullen toestaan** | Of interactieve formuliervelden mogen worden ingevuld |
+| **Documentsamenstelling toestaan** | Of pagina's mogen worden ingevoegd, verwijderd of gedraaid |
+| **Pagina-extractie toestaan** | Of afzonderlijke pagina's mogen worden geëxtraheerd |
+
+Voor alle rechten is een eigenaarswachtwoord nodig om ze af te dwingen. Zonder eigenaarswachtwoord worden de rechtenvlaggen door de meeste PDF-lezers genegeerd.
+
+## Hoe rechten werken in PDF
+
+PDF-rechten maken deel uit van de versleutelingsspecificatie. Ze worden als bitvlaggen opgeslagen in het versleutelingswoordenboek en afgedwongen door conforme PDF-lezers. Het belangrijkste verschil:
+
+- **Gebruikerswachtwoord**: nodig om het bestand überhaupt te openen.
+- **Eigenaarswachtwoord**: nodig om rechten te wijzigen of beperkingen te verwijderen. Zonder dit wachtwoord bepalen de rechtenvlaggen welke handelingen de gebruiker mag uitvoeren.
+
+Als je alleen een eigenaarswachtwoord instelt (geen gebruikerswachtwoord), kan iedereen het bestand openen, maar is hij beperkt tot de toegestane handelingen. Als je beide instelt, is voor het openen een wachtwoord nodig en gelden de beperkingen na verificatie.
+
+## Toepassingen
+
+- Een rapport verspreiden dat kan worden bekeken en afgedrukt, maar niet bewerkt of gekopieerd
+- Een contractsjabloon delen die ontvangers kunnen invullen maar niet wijzigen
+- Een PDF-catalogus publiceren waarin het kopiëren van afbeeldingen is uitgeschakeld
+- Annotaties toestaan in een conceptversie ter beoordeling, terwijl structurele wijzigingen worden voorkomen
+
+## Tips
+
+- Stel altijd een eigenaarswachtwoord in, anders werkt het niet. Rechten zonder eigenaarswachtwoord zijn niet af te dwingen.
+- Sommige PDF-tools van derden negeren rechtenvlaggen. Overweeg voor sterkere bescherming de PDF te rasteriseren of DRM te gebruiken.
+- Gebruik deze tool om oude met RC4 versleutelde PDF's te upgraden naar AES-256.
+
+## Gerelateerde tools
+
+- [PDF versleutelen](./protect-pdf): eenvoudige wachtwoordbeveiliging zonder gedetailleerde rechten
+- [PDF ontsleutelen](./unlock-pdf): versleuteling volledig verwijderen
+- [Beperkingen verwijderen](./remove-restrictions): alle beperkingen verwijderen als je het eigenaarswachtwoord hebt
diff --git a/docs/nl/tools/combine-single-page.md b/docs/nl/tools/combine-single-page.md
new file mode 100644
index 00000000..633cd7fe
--- /dev/null
+++ b/docs/nl/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Combineren tot één pagina
+description: Plak alle pagina's van een PDF aan elkaar tot één doorlopende verticale of horizontale pagina.
+---
+
+# Combineren tot één pagina
+
+Voeg alle pagina's van een PDF samen tot één lange pagina. De pagina's worden verticaal (als een rol) of horizontaal (naast elkaar) aan elkaar geplakt, zodat de uitvoer uit één doorlopende pagina bestaat.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. Kies de richting van de indeling: **Verticaal** (pagina's van boven naar beneden gestapeld) of **Horizontaal** (pagina's naast elkaar).
+3. Stel de ruimte tussen de pagina's in punten in.
+4. Kies een achtergrondkleur voor de tussenruimtes.
+5. Schakel eventueel scheidingslijnen (dunne lijnen tussen pagina's) in en stel de dikte en kleur in.
+6. Klik op de verwerkingsknop. De uitvoer is een PDF met één pagina.
+
+## Functies
+
+- Pagina's verticaal of horizontaal aan elkaar plakken
+- Instelbare ruimte tussen pagina's
+- Kleurkiezer voor de achtergrond van de tussenruimtes
+- Optionele scheidingslijnen met instelbare dikte en kleur
+- Geeft elke originele pagina op volledige resolutie weer op het gecombineerde canvas
+
+## Opties
+
+| Optie | Beschrijving |
+| ---------------------------- | --------------------------------------------------- |
+| **Oriëntatie** | Verticaal (gestapeld) of Horizontaal (naast elkaar) |
+| **Paginaruimte** | Ruimte tussen pagina's in punten |
+| **Achtergrondkleur** | Kleur van het gebied tussen de pagina's |
+| **Scheidingslijn toevoegen** | Dunne lijnen tussen pagina's in- of uitschakelen |
+| **Dikte scheidingslijn** | Lijndikte in punten |
+| **Kleur scheidingslijn** | Kleur van de scheidingslijnen |
+
+## Toepassingen
+
+- Een lange afbeelding maken van een wireframe of ontwerpmodel met meerdere pagina's
+- Een doorlopende, scrolbare weergave van een document maken voor insluiting op het web
+- Een stripverhaal of storyboard van meerdere pagina's aan elkaar plakken tot één strook
+- Een panoramaweergave van opeenvolgende pagina's maken voor beoordeling
+
+## Tips
+
+- Verticale oriëntatie werkt het best voor documenten met staande pagina's. Horizontaal is beter voor inhoud in liggende stand.
+- Grote documenten met veel pagina's leveren een zeer hoge of brede uitvoer op. Sommige PDF-viewers hebben moeite met extreem grote enkele pagina's.
+- Met scheidingslijnen in een contrasterende kleur zie je makkelijk waar een originele pagina eindigt en de volgende begint.
+
+## Gerelateerde tools
+
+- [N-up PDF](./n-up-pdf)
+- [PDF samenvoegen](./merge-pdf)
+- [Pagina's opdelen](./divide-pages)
diff --git a/docs/nl/tools/compare-pdfs.md b/docs/nl/tools/compare-pdfs.md
new file mode 100644
index 00000000..76253be2
--- /dev/null
+++ b/docs/nl/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: PDF's vergelijken
+description: Vergelijk twee PDF-documenten naast elkaar of in overlaymodus, met gedetailleerde detectie en indeling van wijzigingen.
+---
+
+# PDF's vergelijken
+
+Upload twee PDF's en zie precies wat er tussen beide is veranderd. De tool koppelt pagina's op slimme wijze, detecteert verschillen in tekst, afbeeldingen, annotaties, kop- en voetteksten en opmaak, en toont ze in een weergave naast elkaar of als overlay.
+
+## Zo werkt het
+
+1. Upload twee PDF-bestanden: het origineel (links) en de herziene versie (rechts).
+2. De tool koppelt pagina's tussen de documenten op basis van inhoudskenmerken.
+3. Kies een weergavemodus: **Naast elkaar** of **Overlay**.
+4. Navigeer tussen paginaparen met de paginabesturing.
+5. Verschillen worden gemarkeerd en ingedeeld. Gebruik het filterpaneel om je op specifieke soorten wijzigingen te richten.
+6. Exporteer de vergelijking eventueel als PDF-rapport.
+
+## Functies
+
+- Automatische paginakoppeling op basis van inhoudelijke overeenkomst
+- Vergelijkingsweergaven naast elkaar en als overlay
+- Indeling van wijzigingen: tekst, afbeelding, kop-/voettekst, annotatie, opmaak, achtergrond
+- Filterschakelaars per categorie om bepaalde soorten wijzigingen te tonen of te verbergen
+- Zoeken in tekstwijzigingen met een zoekopdracht
+- OCR-ondersteuning voor het vergelijken van gescande documenten
+- Zoomopties voor gedetailleerde inspectie
+- Gesynchroniseerd scrollen tussen de panelen in de weergave naast elkaar
+- Vergelijkingsresultaten exporteren als PDF
+
+## Opties
+
+| Optie | Beschrijving |
+| -------------------- | ------------------------------------------------------------------------------------------------------- |
+| **Weergavemodus** | Naast elkaar of Overlay |
+| **OCR** | OCR in- of uitschakelen voor het vergelijken van gescande documenten |
+| **OCR-taal** | Taal voor het extraheren van OCR-tekst |
+| **Categoriefilters** | Zichtbaarheid van wijzigingen in tekst, afbeeldingen, kop-/voettekst, annotaties, opmaak en achtergrond |
+| **Wijzigingsbereik** | In overlaymodus: filteren tussen alle wijzigingen of alleen inhoud |
+| **Zoom** | Het vergrotingsniveau aanpassen voor gedetailleerde inspectie |
+
+## Toepassingen
+
+- Contractwijzigingen beoordelen om precies te zien wat er tussen versies is veranderd
+- Ontwerpmodellen vergelijken om te controleren of PDF-exports aan de verwachtingen voldoen
+- Documentwijzigingen controleren in gereguleerde sectoren waar elke bewerking moet worden bijgehouden
+- Controleren of een PDF-conversie de originele inhoud nauwkeurig heeft behouden
+- Vertaalde documenten naast de bron leggen om opmaakwijzigingen te controleren
+
+## Tips
+
+- De overlayweergave legt beide documenten over elkaar, zodat verschillen in positie (verschoven elementen, aangepaste afbeeldingsgrootte) direct zichtbaar zijn.
+- Schakel OCR in bij het vergelijken van gescande documenten zonder tekstlaag. De vergelijkingsengine haalt de tekst dan uit de pagina-afbeeldingen.
+- Gebruik categoriefilters om je te richten op wat telt. Verberg bijvoorbeeld opmaakwijzigingen als je alleen om verschillen in de tekstinhoud geeft.
+
+## Gerelateerde tools
+
+- [Metadata weergeven](./view-metadata)
+- [PDF OCR](./ocr-pdf)
+- [PDF samenvoegen](./merge-pdf)
diff --git a/docs/nl/tools/compress-pdf.md b/docs/nl/tools/compress-pdf.md
new file mode 100644
index 00000000..4bc3843b
--- /dev/null
+++ b/docs/nl/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: PDF comprimeren
+description: Verklein de bestandsgrootte van een PDF tot wel 90% met de Hyper Compress-engine. Ondersteunt doelbestandsgroottes, bewerking in reeksen en eigen kwaliteitsinstellingen.
+---
+
+# PDF comprimeren
+
+Maak je PDF-bestanden kleiner zonder ze te beschadigen. PDF comprimeren draait op [Hyper Compress](https://www.bentopdf.com/hyper-compress), de eigen compressie-engine van BentoPDF. Die comprimeert afbeeldingen opnieuw, maakt subsets van lettertypen en voegt ze samen, en verwijdert overbodige onderdelen zoals ingesloten miniaturen en privé-toepassingsgegevens. De PDF blijft volledig functioneel: tekst blijft selecteerbaar en koppelingen en formuliervelden blijven werken.
+
+Hyper Compress is gecompileerd naar WebAssembly en wordt met BentoPDF meegeleverd, dus compressie werkt offline en in air-gapped omgevingen zonder extra installatie.
+
+## Zo werkt het
+
+1. Upload een of meer PDF's door op het uploadvak te klikken of bestanden erheen te slepen.
+2. Kies een **Compressieniveau**: Laag, Gemiddeld, Hoog of Verliesvrij.
+3. Voer eventueel een **Doelbestandsgrootte** in, of vouw **Aangepaste instellingen** uit voor fijnere controle, inclusief **Converteren naar grijstinten**.
+4. Klik op **PDF comprimeren**. Bij meerdere bestanden krijg je één ZIP-download.
+
+## Speciale documenten
+
+- **Digitaal ondertekende PDF's** worden ongewijzigd teruggegeven, omdat elke wijziging de handtekening ongeldig zou maken. Schakel onder Aangepaste instellingen **Inhoudsbescherming negeren** in om de handtekeningen te verwijderen en toch te comprimeren. De zichtbare handtekening blijft op de pagina staan, maar het bestand is niet langer ondertekend.
+- **PDF/A-bestanden** verliezen na compressie hun PDF/A-label, zodat het bestand nooit een conformiteit claimt waaraan het niet meer voldoet. Schakel onder Aangepaste instellingen **PDF/A behouden** in om het bestand juist conform te houden.
+- **Met een wachtwoord beveiligde PDF's** krijgen een wachtwoordveld op hun bestandskaart. Voer daar het wachtwoord in en Hyper Compress opent het bestand zelf, zonder aparte ontgrendelstap. Bij twee of meer vergrendelde bestanden ontgrendelt één gedeeld veld alle bestanden met hetzelfde wachtwoord. De gecomprimeerde kopie heeft geen wachtwoord; gebruik [PDF versleutelen](./protect-pdf) om er opnieuw een toe te voegen.
+- **Scans zonder tekstlaag** kunnen nog verder krimpen met **Pagina's rasteriseren** onder Aangepaste instellingen, waarmee elke pagina wordt vervangen door één geoptimaliseerde afbeelding. Dit wordt overgeslagen voor elk document met selecteerbare tekst, inclusief scans met OCR, tenzij **Inhoudsbescherming negeren** aanstaat. Dan worden ook tekstpagina's afbeeldingen, zodat tekst niet meer selecteerbaar is en koppelingen niet meer werken.
+
+## Compressieniveaus
+
+| Niveau | Afbeeldingskwaliteit | Max. resolutie | Het best voor |
+| --------------- | ------------------------ | -------------- | ------------------------------------ |
+| **Laag** | 80 | 200 DPI | Visuele kwaliteit behouden |
+| **Gemiddeld** | 50 | 150 DPI | Alledaagse documenten |
+| **Hoog** | 20 | 72 DPI | E-mailbijlagen, uploads naar het web |
+| **Verliesvrij** | Afbeeldingen onaangetast | Ongewijzigd | Archiefkopieën |
+
+Hoog haalt ook de 14 standaard-PDF-lettertypen uit het bestand, plus lookalikes zoals Arial wanneer dat veilig kan.
+
+## Doelbestandsgrootte
+
+Voer een grootte in KB of MB in en Hyper Compress zoekt de beste afbeeldingskwaliteit die nog binnen die grootte past, uitgaand van het gekozen niveau. Als het document niet zo klein kan worden, krijg je de kleinste versie die mogelijk is, met een melding daarover. De speciale pagina's, zoals [PDF comprimeren tot 1 MB](https://www.bentopdf.com/compress-pdf-to-1mb), openen met het doel al ingevuld.
+
+## Aangepaste instellingen
+
+Vouw het paneel Aangepaste instellingen uit om Hyper Compress rechtstreeks af te stemmen. Als je een compressieniveau kiest, worden deze instellingen teruggezet naar de waarden van dat niveau, en zodra je er een wijzigt, schakelt het niveau over naar Aangepast.
+
+- **Inhoudsbescherming negeren**: standaard laat Hyper Compress ondertekende PDF's ongemoeid en rasteriseert het geen pagina's met tekst. Als je dit inschakelt, worden beide omzeild. De instelling blijft aan als je het niveau wijzigt.
+
+- **Afbeeldingen**: afbeeldingskwaliteit, maximale resolutie, geforceerd opnieuw samplen, kleurreductie, onzichtbare afbeeldingsgebieden wegsnijden, alternatieve afbeeldingen verwijderen, kleurprofielen vereenvoudigen, JPEG 2000 en verliesvrije modus
+- **Lettertypen**: subsets maken, duplicaten samenvoegen en standaardlettertypen en hun lookalikes niet insluiten
+- **Inhoud**: annotaties, formuliervelden of koppelingen platmaken
+- **Opschonen**: miniaturen, toepassingsgegevens, artikelreeksen, webopnamegegevens, de structuurboom of uitvoerintenties verwijderen
+- **Rasteriseren**: pagina's vervangen door afbeeldingen, voor scans met alleen afbeeldingen; wordt overgeslagen als het document selecteerbare tekst heeft
+- **Uitvoer**: PDF/A behouden en Brotli-compressie voor PDF 2.0-lezers die dit ondersteunen
+
+## Toepassingen
+
+- Een rapport van 50 MB onder de limiet voor e-mailbijlagen brengen
+- Een scan onder de strikte uploadlimiet van een portaal krijgen met een doelbestandsgrootte
+- PDF's voor marketing optimaliseren voor snellere downloads van een website
+- Grote documentenverzamelingen archiveren waarbij opslagkosten ertoe doen
+- Het mobiele datagebruik verminderen bij het delen van PDF's via berichtenapps
+
+## Tips
+
+- Begin met Gemiddeld. Is het resultaat nog te groot, stel dan een doelbestandsgrootte in of ga naar Hoog.
+- Zet voor een scan zonder tekstlaag **Pagina's rasteriseren** aan onder Aangepaste instellingen.
+- Converteren naar grijstinten, onder Aangepaste instellingen, kan de bestandsgrootte van kleurrijke documenten flink verkleinen.
+
+## Gerelateerde tools
+
+- [PDF lineariseren](./linearize-pdf): optimaliseer de gecomprimeerde PDF voor snel bekijken op het web
+- [PDF rasteriseren](./rasterize-pdf): zet pagina's om naar afbeeldingen met een bepaalde DPI, ook pagina's met tekst
+- [PDF repareren](./repair-pdf): herstel een PDF die elders tijdens het comprimeren is beschadigd
+- [Metadata verwijderen](./remove-metadata): verwijder verborgen gegevens voor je privacy
diff --git a/docs/nl/tools/crop-pdf.md b/docs/nl/tools/crop-pdf.md
new file mode 100644
index 00000000..967f9bc0
--- /dev/null
+++ b/docs/nl/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PDF bijsnijden
+description: Snij PDF-pagina's visueel bij door op elke pagina een uitsnedegebied te tekenen met een editor op basis van Cropper.js.
+---
+
+# PDF bijsnijden
+
+Snij de marges van je PDF-pagina's weg met een visuele bijsnij-interface. Teken een bijsnijrechthoek direct op elke pagina, bekijk het resultaat en pas het bijsnijden toe. Je kunt voor verschillende pagina's verschillende gebieden instellen of dezelfde uitsnede op het hele document toepassen.
+
+## Zo werkt het
+
+1. Upload je PDF-bestand.
+2. De bijsnij-editor opent en toont de eerste pagina met een versleepbare bijsnij-overlay.
+3. Pas de bijsnijrechthoek aan door aan de randen of hoeken te slepen.
+4. Gebruik de paginanavigatieknoppen om tussen pagina's te wisselen en voor elke pagina een gebied in te stellen.
+5. Klik op **Bijsnijden** om de uitsnede toe te passen en het resultaat te downloaden.
+
+## Functies
+
+- Visuele bijsnij-editor op basis van Cropper.js met handvatten voor nauwkeurige aanpassing
+- Navigatie per pagina om afzonderlijke bijsnijgebieden in te stellen
+- Slaat de bijsnij-instellingen per pagina op, zodat je voor verschillende pagina's een andere uitsnede kunt bepalen
+- Live voorbeeld van het geselecteerde bijsnijgebied
+- Ondersteunt PDF's met elk paginaformaat of elke oriëntatie
+
+## Toepassingen
+
+- Brede marges van gescande documenten verwijderen om je op het inhoudsgebied te richten
+- Snijmarkeringen of registratiemarkeringen van drukklare PDF's verwijderen
+- Collegesheets bijsnijden om het gebied met spreeknotities te verwijderen
+- Kop- of voetteksten van elke pagina verwijderen voordat je een uittreksel van een document deelt
+- Pagina's aanpassen aan een specifieke weergave of afdrukindeling
+
+## Tips
+
+- De bijsnij-overlay kan vrij worden vergroot, verkleind en verplaatst. Sleep de hoeken voor proportioneel schalen of de randen voor aanpassing in één richting.
+- Als elke pagina dezelfde uitsnede nodig heeft, stel die dan in op de eerste pagina: de tool onthoudt je bijsnijgebied terwijl je door de pagina's navigeert.
+- Als je paginaformaten wilt standaardiseren in plaats van visueel bij te snijden, past de tool Paginaformaat corrigeren mogelijk beter.
+
+## Gerelateerde tools
+
+- [PDF-editor](./edit-pdf)
+- [Paginanummers](./page-numbers)
+- [Lege pagina's verwijderen](./remove-blank-pages)
diff --git a/docs/nl/tools/csv-to-pdf.md b/docs/nl/tools/csv-to-pdf.md
new file mode 100644
index 00000000..f108ecd1
--- /dev/null
+++ b/docs/nl/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV naar PDF
+description: Zet CSV-spreadsheetbestanden direct in je browser om naar opgemaakte PDF-tabellen.
+---
+
+# CSV naar PDF
+
+Zet CSV-bestanden om naar nette, opgemaakte PDF-documenten. Elke CSV wordt verwerkt en als tabel weergegeven in de PDF. Handig als je tabelgegevens wilt afdrukken of delen zonder dat de ontvanger spreadsheetsoftware nodig heeft.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------- |
+| CSV | `.csv` |
+
+## Zo werkt het
+
+1. Klik op het uploadvak of sleep een of meer CSV-bestanden erheen.
+2. Bekijk de bestandslijst. Voeg meer bestanden toe of verwijder ongewenste bestanden.
+3. Klik op **Converteren naar PDF**. Een voortgangsindicator toont de status van de conversie.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden worden verpakt in `csv-converted.zip`.
+
+## Opties
+
+Deze tool heeft geen extra configuratie. De CSV wordt automatisch verwerkt en als tabel opgemaakt.
+
+## Uitvoer
+
+| Aantal invoerbestanden | Uitvoer |
+| :--------------------- | :-------------------------------------------------------- |
+| 1 bestand | Eén PDF-download (bijv. `data.pdf`) |
+| 2+ bestanden | ZIP-archief (`csv-converted.zip`) met één PDF per bestand |
+
+## Toepassingen
+
+- Geëxporteerde databaserapporten omzetten naar afdrukbare PDF-tabellen
+- Financiële gegevens of voorraadlijsten delen met mensen zonder Excel
+- PDF-versies maken van CSV-logbestanden voor compliancedocumentatie
+- Adreslijsten, cijferlijsten of andere tabelgegevens in CSV afdrukken
+
+## Tips
+
+- Zorg voor het beste resultaat dat je CSV standaard komma's als scheidingsteken gebruikt. De tool volgt gangbare CSV-conventies.
+- Als je CSV veel kolommen heeft, kan de tabel worden samengedrukt om op de paginabreedte te passen. Overweeg brede datasets in meerdere bestanden te splitsen.
+- Gebruik voor Excel-bestanden (`.xls`, `.xlsx`) de tool [Excel naar PDF](./excel-to-pdf), die de opmaak van de spreadsheet en meerdere bladen behoudt.
+
+## Gerelateerde tools
+
+- [Excel naar PDF](./excel-to-pdf)
+- [Tekst naar PDF](./txt-to-pdf)
+- [JSON naar PDF](./json-to-pdf)
diff --git a/docs/nl/tools/delete-pages.md b/docs/nl/tools/delete-pages.md
new file mode 100644
index 00000000..4945ff5a
--- /dev/null
+++ b/docs/nl/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Pagina's verwijderen
+description: Verwijder specifieke pagina's uit een PDF op paginanummer, bereik of door visuele selectie van miniaturen.
+---
+
+# Pagina's verwijderen
+
+Verwijder ongewenste pagina's uit een PDF-document. Geef de te verwijderen pagina's op door paginanummers of bereiken te typen, of klik direct op miniaturen om ze voor verwijdering te markeren.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand. De tool toont miniaturen van elke pagina.
+2. Voer de te verwijderen pagina's in het tekstveld in met bereiksyntaxis (bijv. `2, 5-8`), of klik op miniaturen om ze te selecteren.
+3. Gemarkeerde pagina's worden visueel benadrukt, zodat je je selectie kunt controleren.
+4. Klik op de verwerkingsknop. Er wordt een nieuwe PDF gemaakt zonder de geselecteerde pagina's.
+
+## Functies
+
+- Paginaselectie met tekst en bereiksyntaxis (`2, 5-8, 12`)
+- Visueel miniaturenraster om pagina's door te klikken te selecteren voor verwijdering
+- Realtime markering van pagina's die voor verwijdering zijn gemarkeerd
+- Invoercontrole op het werkelijke aantal pagina's
+- Behoudt alle niet-verwijderde pagina's in hun oorspronkelijke volgorde
+
+## Toepassingen
+
+- Lege pagina's of opvulpagina's uit een gescand document verwijderen
+- Voorbladen of bijlagen verwijderen voordat je een document deelt
+- Conceptpagina's opruimen die per ongeluk in een definitieve PDF zijn blijven staan
+- Pagina's met gevoelige informatie verwijderen voor verspreiding
+
+## Tips
+
+- Het verwijderen van pagina's heeft geen invloed op de inhoud of opmaak van de overige pagina's. De uitvoer is een getrouwe kopie van het origineel minus de verwijderde pagina's.
+- Als je liever alleen bepaalde pagina's wilt behouden dan bepaalde pagina's te verwijderen, is [Pagina's extraheren](./extract-pages) een betere keuze.
+- De miniaturenweergave laadt geleidelijk, zodat grote documenten vlot blijven.
+
+## Gerelateerde tools
+
+- [Pagina's extraheren](./extract-pages)
+- [Ordenen en dupliceren](./organize-pdf)
+- [PDF splitsen](./split-pdf)
diff --git a/docs/nl/tools/deskew-pdf.md b/docs/nl/tools/deskew-pdf.md
new file mode 100644
index 00000000..20edc318
--- /dev/null
+++ b/docs/nl/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDF rechttrekken
+description: Trek scheve pagina's in gescande PDF's automatisch recht met scheefstandsdetectie van OpenCV. Instelbare drempel en DPI.
+---
+
+# PDF rechttrekken
+
+Gescande documenten liggen zelden perfect recht. Zelfs een lichte scheefstand maakt OCR minder nauwkeurig en afdrukken slordig. Deze tool gebruikt de beeldverwerkingsalgoritmen van OpenCV om de scheefstandshoek van elke pagina te detecteren en de pagina weer recht te draaien.
+
+## Zo werkt het
+
+1. Upload een of meer gescande PDF's.
+2. Stel de **Scheefstandsdrempel** in: pagina's met een gedetecteerde scheefstand onder deze waarde blijven ongemoeid.
+3. Kies een **Verwerkingskwaliteit (DPI)**: een hogere DPI verbetert de detectienauwkeurigheid, maar duurt langer.
+4. Klik op **PDF rechttrekken**.
+5. Na de verwerking toont een resultatenpaneel per pagina de gedetecteerde hoek en of die is gecorrigeerd.
+
+## Opties
+
+| Instelling | Waarden | Standaard |
+| ----------------------- | ------------------------- | --------- |
+| **Scheefstandsdrempel** | 0,1, 0,5, 1,0, 2,0 graden | 0,5 |
+| **Verwerkings-DPI** | 100, 150, 200, 300 | 150 |
+
+## Hoe scheefstandsdetectie werkt
+
+De tool geeft elke pagina weer als afbeelding met de gekozen DPI en gebruikt vervolgens OpenCV om de dominante lijnhoeken in de inhoud te detecteren. Als de gedetecteerde scheefstand de drempel overschrijdt, wordt de pagina met de omgekeerde hoek gedraaid om hem recht te trekken. Pagina's onder de drempel worden ongewijzigd doorgegeven.
+
+## Toepassingen
+
+- Contracten of juridische documenten die in bulk zijn gescand opschonen
+- Gescande bonnetjes of facturen voorbereiden op OCR-verwerking
+- Pagina's van een flatbedscanner rechttrekken wanneer het papier telkens anders ligt
+- De visuele kwaliteit van gedigitaliseerd archiefmateriaal verbeteren
+
+## Tips
+
+- Verlaag de drempel naar 0,1 graad als je pixelnauwkeurige uitlijning voor OCR nodig hebt.
+- 150 DPI is snel en nauwkeurig voor de meeste documenten. Gebruik 300 DPI voor zeer kleine tekst of pagina's met fijne details.
+- Rechttrekken werkt het best bij documenten met duidelijke horizontale tekstregels. Het kan moeite hebben met pagina's die vooral uit afbeeldingen of diagonale ontwerpelementen bestaan.
+
+## Gerelateerde tools
+
+- [PDF rasteriseren](./rasterize-pdf): zet de rechtgetrokken uitvoer om naar een vlakke PDF op basis van afbeeldingen
+- [PDF comprimeren](./compress-pdf): verklein de bestandsgrootte na het rechttrekken
+- [PDF repareren](./repair-pdf): herstel structurele problemen in gescande PDF's
diff --git a/docs/nl/tools/digital-sign-pdf.md b/docs/nl/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..542ea107
--- /dev/null
+++ b/docs/nl/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Digitale handtekening
+description: Voeg cryptografische digitale handtekeningen toe aan PDF's met X.509-certificaten. Ondersteunt PKCS#12- en PEM-formaten met opties voor zichtbare handtekeningen.
+---
+
+# Digitale handtekening
+
+Een digitale handtekening is cryptografisch bewijs dat een bepaald persoon een document heeft ondertekend en dat het document sindsdien niet is gewijzigd. Anders dan een getekende handtekening (die slechts een afbeelding is) gebruikt een digitale handtekening X.509-certificaten en PKCS#7-standaarden voor controleerbare authenticiteit en integriteit.
+
+BentoPDF past digitale handtekeningen volledig in je browser toe. Je privésleutel verlaat je apparaat nooit.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. Upload je certificaatbestand (.pfx, .p12 of .pem).
+3. Voer het certificaatwachtwoord in om het te ontgrendelen. De tool toont de certificaathouder, de uitgever en de geldigheidsperiode.
+4. Configureer eventueel de metadata van de handtekening (reden, locatie, contactgegevens).
+5. Schakel eventueel een **zichtbare handtekening** in met aanpassingen voor positie, grootte, afbeelding en tekst.
+6. Klik op **PDF ondertekenen**.
+
+## Ondersteunde certificaatformaten
+
+| Formaat | Extensies | Beschrijving |
+| ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| **PKCS#12** | .pfx, .p12 | Standaardbundel in de branche met de privésleutel en de certificaatketen. Het meest gebruikte formaat. |
+| **PEM** | .pem | Op tekst gebaseerd formaat. Moet zowel het certificaat als de privésleutel in één bestand bevatten. Ondersteunt versleutelde privésleutels. |
+
+## Opties voor zichtbare handtekening
+
+Als deze optie is ingeschakeld, wordt een zichtbaar handtekeningblok op de PDF-pagina weergegeven:
+
+- **Positie**: X/Y-coördinaten en breedte/hoogte in punten
+- **Pagina**: eerste pagina, laatste pagina, alle pagina's of een specifiek paginanummer
+- **Afbeelding**: upload een PNG-, JPG- of WebP-afbeelding (je handgeschreven handtekening, bedrijfszegel enz.)
+- **Tekst**: eigen tekst met instelbare kleur en lettergrootte. Als er geen afbeelding of tekst is opgegeven, genereert de tool automatisch tekst uit de common name van het certificaat en de huidige datum.
+
+## Metadata van de handtekening
+
+- **Reden**: waarom het document is ondertekend (bijv. "Goedgekeurd", "Beoordeeld")
+- **Locatie**: waar de ondertekening plaatsvond (bijv. "Amsterdam")
+- **Contactgegevens**: hoe de ondertekenaar bereikbaar is (bijv. e-mailadres)
+
+## Opmerking over internetverbinding
+
+Ondertekenen kan een internetverbinding vereisen. De ondertekenbibliotheek haalt de certificaatketen op via URL's die in de extensie Authority Information Access (AIA) van je certificaat staan. Als die servers onbereikbaar zijn, mislukt het ondertekenen voor certificaten die ketenvalidatie vereisen.
+
+## Toepassingen
+
+- Contracten, offertes en overeenkomsten ondertekenen met juridisch bindende digitale handtekeningen
+- Officiële documenten certificeren in workflows die authenticatie op basis van PKI vereisen
+- PDF-facturen ondertekenen voor naleving van regelgeving (veel EU-landen eisen digitaal ondertekende e-facturen)
+- Organisatorische goedkeuring toevoegen aan technische tekeningen of kwaliteitsdocumenten
+
+## Tips
+
+- Zelfondertekende certificaten werken om te testen, maar tonen waarschuwingen in Adobe Reader. Gebruik voor productiedocumenten een certificaat van een vertrouwde certificeringsinstantie.
+- De zichtbare handtekening is puur visueel. De cryptografische handtekening wordt altijd ingesloten, ook als het zichtbare blok niet is ingeschakeld.
+- Controleer je ondertekende PDF met de tool Handtekening valideren om te bevestigen dat de handtekening intact is.
+
+## Gerelateerde tools
+
+- [Handtekening valideren](./validate-signature-pdf): controleer digitale handtekeningen in ondertekende PDF's
+- [PDF platmaken](./flatten-pdf): maak formulieren plat vóór het ondertekenen om wijzigingen te voorkomen
+- [PDF versleutelen](./protect-pdf): voeg wachtwoordbeveiliging toe bovenop de digitale handtekening
+- [Metadata verwijderen](./remove-metadata): verwijder metadata vóór het ondertekenen
diff --git a/docs/nl/tools/divide-pages.md b/docs/nl/tools/divide-pages.md
new file mode 100644
index 00000000..aa9651a1
--- /dev/null
+++ b/docs/nl/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Pagina's opdelen
+description: Splits PDF-pagina's horizontaal of verticaal in kleinere deelpagina's.
+---
+
+# Pagina's opdelen
+
+Snijd afzonderlijke PDF-pagina's doormidden door ze horizontaal of verticaal te splitsen. Handig als één pagina inhoud bevat die over aparte pagina's verdeeld moet worden, bijvoorbeeld een indeling met twee kolommen die als één brede pagina is gescand.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. Kies de splitsrichting: **Verticaal** (linker- en rechterhelft) of **Horizontaal** (boven- en onderhelft).
+3. Geef eventueel een paginabereik op om te beperken welke pagina's worden opgedeeld. Laat leeg om alle pagina's op te delen.
+4. Klik op de verwerkingsknop om de opgedeelde PDF te genereren.
+
+## Functies
+
+- Verticaal splitsen: deelt elke pagina in een linker- en rechterhelft
+- Horizontaal splitsen: deelt elke pagina in een boven- en onderhelft
+- Paginabereikfilter om specifieke pagina's selectief op te delen
+- Pagina's die niet zijn geselecteerd, blijven ongewijzigd
+- Behoudt de kwaliteit van de inhoud zonder opnieuw te renderen
+
+## Toepassingen
+
+- Gescande pagina's met twee naast elkaar scheiden (bijv. een boekscan met linker- en rechterpagina op één vel)
+- Een liggende PDF met inhoud naast elkaar splitsen in afzonderlijke staande pagina's
+- Hoge infographics of posters verdelen in aparte boven- en ondersecties
+- Documenten in breed formaat voorbereiden op afdrukken op standaardpapier
+
+## Tips
+
+- Als de inhoud op je pagina's ongelijk is verdeeld, gebeurt de splitsing toch op het exacte midden. Overweeg voor asymmetrische splitsingen in plaats daarvan [PDF bijsnijden](./crop-pdf).
+- Combineer deze tool met [PDF roteren](./rotate-pdf) als je pagina's vóór of na het opdelen gedraaid moeten worden.
+
+## Gerelateerde tools
+
+- [PDF splitsen](./split-pdf)
+- [PDF bijsnijden](./crop-pdf)
+- [N-up PDF](./n-up-pdf)
+- [PDF posteriseren](./posterize-pdf)
diff --git a/docs/nl/tools/duplex-collate.md b/docs/nl/tools/duplex-collate.md
new file mode 100644
index 00000000..0a33e535
--- /dev/null
+++ b/docs/nl/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Dubbelzijdige scan sorteren
+description: Herorden dubbelzijdige scan-PDF's met voorzijden en achterzijden in aparte blokken naar de juiste volgorde van voor- en achterzijde.
+---
+
+# Dubbelzijdige scan sorteren
+
+Dubbelzijdige scan sorteren is bedoeld voor ADF-scanworkflows waarbij één PDF twee blokken pagina's bevat:
+
+- eerst alle voorzijden
+- daarna alle achterzijden
+
+In plaats van handmatig splitsen en opnieuw samenstellen voegt deze tool de twee blokken samen in de natuurlijke leesvolgorde: voorzijde1, achterzijde1, voorzijde2, achterzijde2, enzovoort.
+
+## Zo werkt het
+
+1. Upload één PDF die is gemaakt met het scannen van een dubbelzijdige stapel.
+2. Stel het splitspunt in waar het blok met voorzijden eindigt.
+3. Kies hoe het blok met achterzijden wordt verwerkt:
+ - **Achterzijdeblok omkeren** (gebruikelijk als de stapel wordt omgedraaid voordat de achterzijden worden gescand)
+ - **Achterzijdeblok behouden zoals het is**
+4. Klik op **PDF sorteren** om het opnieuw geordende resultaat te downloaden.
+
+## Opties
+
+- **Splitsing automatisch detecteren (helft)**: stelt het splitspunt in op `ceil(totalPages / 2)`.
+- **Waarschuwing oneven pagina's**: waarschuwt als het totale aantal pagina's oneven is (vaak een scanfout).
+- **Bevestiging ongelijke blokken**: vraagt om bevestiging als de blokken met voor- en achterzijden verschillen in grootte.
+- **Gegroepeerde export**: splitst de gesorteerde uitvoer in aparte PDF's op basis van het oorspronkelijke aantal pagina's per document en downloadt ze als ZIP.
+
+## Uitvoergedrag
+
+- **Standaard**: één uitvoer-PDF (één invoer-PDF in, één uitvoer-PDF uit).
+- **Gegroepeerde modus**: de uitvoer wordt verdeeld op basis van je waarde voor pagina's per document; als er meerdere delen ontstaan, worden ze als één ZIP gedownload, anders wordt één PDF gedownload.
+
+Als de blokken ongelijk van grootte zijn, worden eerst de gepaarde pagina's gesorteerd en worden de overgebleven ongepaarde pagina's achteraan toegevoegd.
+
+## Veelvoorkomende toepassingen
+
+- De volgorde herstellen na het scannen van een stapel dubbelzijdige formulieren in twee rondes.
+- Pakketten met voor- en achterzijden opnieuw opbouwen van kantoorscanners die eerst alle voorzijden en dan alle achterzijden uitvoeren.
+- Archiefscans nabewerken voordat ze in bestanden per document worden gesplitst.
+
+## Tips
+
+- De meeste dubbelzijdige reeksen moeten een even totaal aantal pagina's hebben.
+- Als de achterzijden omgekeerd lijken, wissel dan tussen **Achterzijdeblok omkeren** en **Achterzijdeblok behouden zoals het is**.
+- Gebruik voor originelen van 2 pagina's (voor- en achterzijde) gegroepeerde export met `2` pagina's per document.
+
+## Gerelateerde tools
+
+- [Pagina's afwisselen en mixen](./alternate-merge)
+- [PDF splitsen](./split-pdf)
+- [PDF samenvoegen](./merge-pdf)
+- [Ordenen en dupliceren](./organize-pdf)
diff --git a/docs/nl/tools/edit-attachments.md b/docs/nl/tools/edit-attachments.md
new file mode 100644
index 00000000..0a7848a4
--- /dev/null
+++ b/docs/nl/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Bijlagen bewerken
+description: Bekijk bijgesloten bestanden in een PDF-document en verwijder ze selectief.
+---
+
+# Bijlagen bewerken
+
+Bekijk en beheer de bijgesloten bestanden in een PDF. De tool toont alle ingesloten bestanden met hun naam en bijlageniveau, en laat je afzonderlijke bijlagen voor verwijdering markeren of ze allemaal in één keer verwijderen.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. De tool zoekt automatisch naar bijlagen en toont ze in een lijst.
+3. Bij elke bijlage staan de bestandsnaam en of het een bijlage op documentniveau of paginaniveau is.
+4. Klik op het prullenbakpictogram naast een bijlage om hem voor verwijdering te markeren (klik opnieuw om de markering op te heffen).
+5. Gebruik de knop **Alle bijlagen verwijderen** om alles in één keer te selecteren, of **Alles deselecteren** om je selectie te wissen.
+6. Klik op de verwerkingsknop om een nieuwe PDF op te slaan zonder de geselecteerde bijlagen.
+
+## Functies
+
+- Toont alle bijlagen op documentniveau en paginaniveau
+- Bijlagen afzonderlijk of in bulk verwijderen
+- Selectie aan- en uitzetten voordat je de wijzigingen doorvoert
+- Visuele doorhaling en verminderde dekking bij items die voor verwijdering zijn gemarkeerd
+- Downloadt de gewijzigde PDF zonder de geselecteerde bijlagen
+
+## Toepassingen
+
+- Verouderde of onjuiste bijgesloten bestanden uit een document verwijderen voordat je het opnieuw verspreidt
+- Gevoelige bijlagen (financiële gegevens, persoonlijke informatie) uit een PDF verwijderen voordat je hem deelt
+- De bestandsgrootte van een PDF verkleinen door grote bijgesloten bestanden te verwijderen die niet meer nodig zijn
+- Ingesloten inhoud controleren en een document opschonen vóór archivering
+
+## Tips
+
+- Bijlagen die voor verwijdering zijn gemarkeerd, worden doorgehaald weergegeven. Je kunt de markering vóór de verwerking nog ongedaan maken als je van gedachten verandert.
+- Als er geen bijlagen zijn, toont de tool een duidelijke melding "Geen bijlagen gevonden": de PDF bevat dan gewoon geen ingesloten bestanden.
+
+## Gerelateerde tools
+
+- [Bijlagen toevoegen](./add-attachments)
+- [Bijlagen extraheren](./extract-attachments)
+- [Metadata weergeven](./view-metadata)
diff --git a/docs/nl/tools/edit-metadata.md b/docs/nl/tools/edit-metadata.md
new file mode 100644
index 00000000..8313c76d
--- /dev/null
+++ b/docs/nl/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Metadata bewerken
+description: Bekijk en wijzig PDF-metadatavelden, waaronder titel, auteur, trefwoorden, datums en aangepaste eigenschappen.
+---
+
+# Metadata bewerken
+
+Bewerk de metadata die in een PDF-bestand is ingesloten. De tool vult een formulier vooraf met de bestaande metadata van het document, laat je elk veld wijzigen en slaat de wijzigingen op in een nieuwe PDF.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand. De tool leest de huidige metadata en vult het formulier.
+2. Bewerk een van de standaardvelden: Titel, Auteur, Onderwerp, Trefwoorden, Maker, Producent.
+3. Pas de aanmaakdatum en de wijzigingsdatum aan met de datum-tijdkiezers.
+4. Voeg aangepaste metadatavelden toe door op de toevoegknop te klikken en een sleutel-waardepaar in te voeren.
+5. Klik op de verwerkingsknop om de gewijzigde PDF op te slaan.
+
+## Functies
+
+- Vult alle bestaande metadata van de geüploade PDF vooraf in
+- Standaardvelden: Titel, Auteur, Onderwerp, Trefwoorden, Maker, Producent
+- Datum-tijdkiezers voor de aanmaakdatum en de wijzigingsdatum
+- Aangepaste sleutel-waardevelden voor willekeurige eigenschappen
+- Slaat wijzigingen direct op in het documentinformatiewoordenboek van de PDF
+
+## Bewerkbare velden
+
+| Veld | Beschrijving |
+| --------------------- | --------------------------------------------------------- |
+| **Titel** | De documenttitel die in PDF-lezers wordt getoond |
+| **Auteur** | De persoon of organisatie die het document heeft gemaakt |
+| **Onderwerp** | Een korte beschrijving van het onderwerp van het document |
+| **Trefwoorden** | Door komma's gescheiden termen voor zoeken en indelen |
+| **Maker** | De toepassing waarmee de inhoud oorspronkelijk is gemaakt |
+| **Producent** | De toepassing die de PDF heeft gegenereerd |
+| **Aanmaakdatum** | Wanneer het document oorspronkelijk is gemaakt |
+| **Wijzigingsdatum** | Wanneer het document voor het laatst is gewijzigd |
+| **Aangepaste velden** | Alle extra sleutel-waardeparen die je zelf definieert |
+
+## Toepassingen
+
+- Een juiste titel en auteur instellen voordat je een document publiceert
+- Trefwoorden toevoegen om de vindbaarheid in documentbeheersystemen te verbeteren
+- De wijzigingsdatum bijwerken zodat die de huidige revisie weergeeft
+- Aangepaste metadatavelden toevoegen, zoals Afdeling, Project-ID of Classificatie
+- Metadata opschonen die door de oorspronkelijke authoringsoftware is achtergelaten
+
+## Tips
+
+- Aangepaste velden worden rechtstreeks in het informatiewoordenboek van de PDF geschreven. Sommige PDF-lezers tonen aangepaste velden mogelijk niet, maar ze blijven in het bestand bewaard.
+- Laat een veld leeg om het uit de metadata te wissen. De verwerkingsknop slaat op wat er in het formulier staat.
+- Gebruik [Metadata weergeven](./view-metadata) om metadata te bekijken zonder te bewerken. Gebruik Metadata verwijderen om alle metadata volledig te verwijderen.
+
+## Gerelateerde tools
+
+- [Metadata weergeven](./view-metadata)
+- [PDF OCG-lagen](./pdf-layers)
+- [PDF comprimeren](./compress-pdf)
diff --git a/docs/nl/tools/edit-pdf.md b/docs/nl/tools/edit-pdf.md
new file mode 100644
index 00000000..921bcbfd
--- /dev/null
+++ b/docs/nl/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF bewerken
+description: Annoteer, markeer, redigeer, voeg vormen en afbeeldingen toe, zoek en bekijk PDF's direct in je browser.
+---
+
+# PDF bewerken
+
+Met de PDF-editor van BentoPDF kun je je PDF's annoteren, markeren, redigeren, van opmerkingen voorzien, vormen en afbeeldingen toevoegen en doorzoeken. Er laadt een volledige editor direct in je browser, zonder uploads naar een server.
+
+## Zo werkt het
+
+1. Upload je PDF door op het uploadvak te klikken of een bestand erheen te slepen.
+2. De ingebouwde PDF-editor opent automatisch met je document geladen.
+3. Gebruik de werkbalk om te annoteren, markeren, redigeren, tekst toe te voegen, vormen te tekenen of afbeeldingen in te voegen.
+4. Klik op **Bewerkte PDF downloaden** om je wijzigingen op te slaan.
+
+## Functies
+
+- Volledige annotatiewerkbalk met markeren, onderstrepen, doorhalen en vrij tekenen
+- Tekst invoegen en opmerkingen plaatsen
+- Redactiehulpmiddelen die gemarkeerde inhoud permanent verwijderen zodra je de redactie toepast. Als er nog markeringen niet zijn toegepast wanneer je op **Bewerkte PDF downloaden** klikt, biedt de editor aan ze eerst toe te passen.
+- Vormhulpmiddelen voor rechthoeken, cirkels, lijnen en pijlen
+- Afbeeldingen invoegen op PDF-pagina's
+- Ingebouwd zoeken naar tekst in het document
+- Ondersteuning voor meerdere documenten met tabbladen (tot 10 tegelijk geopende documenten)
+- Bestanden laden via slepen en neerzetten
+
+## Toepassingen
+
+- Contracten beoordelen en wijzigingen markeren met markeringen en opmerkingen
+- Vertrouwelijke informatie zoals burgerservicenummers of financiële gegevens redigeren voordat je ze deelt
+- Annotaties toevoegen aan bouwplannen of technische tekeningen
+- Bedrijfslogo's of stempels op documentpagina's plaatsen
+- Lange juridische documenten doorzoeken op specifieke termen
+
+## Tips
+
+- Je kunt meerdere PDF's tegelijk openen en ertussen wisselen met de tabbalk bovenaan de editor.
+- De editor behoudt de oorspronkelijke PDF-structuur, dus lettertypen, indelingen en formuliervelden blijven intact.
+- Het markeren van tekst of een gebied voor redactie verwijdert nog niets zolang de redactie niet is toegepast. Als je geselecteerde tekst redigeert, worden kopieën ervan in de bestandseigenschappen, bladwijzers, opmerkingen en bijlagen ook uit de download verwijderd, tenzij het bestand is versleuteld.
+- Gebruik voor het in bulk toevoegen van watermerken of paginanummers liever de speciale tools, voor meer controle over de opmaak.
+
+## Gerelateerde tools
+
+- [Watermerk toevoegen](./add-watermark)
+- [PDF ondertekenen](./sign-pdf)
+- [Stempels toevoegen](./add-stamps)
+- [Annotaties verwijderen](./remove-annotations)
diff --git a/docs/nl/tools/email-to-pdf.md b/docs/nl/tools/email-to-pdf.md
new file mode 100644
index 00000000..cf5bdc72
--- /dev/null
+++ b/docs/nl/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: E-mail naar PDF
+description: Zet EML- en MSG-e-mailbestanden in je browser om naar PDF. Behoudt headers, berichttekst en de lijst met bijlagen.
+---
+
+# E-mail naar PDF
+
+Zet opgeslagen e-mailbestanden om naar nette, afdrukbare PDF's. De tool verwerkt EML- en MSG-bestanden, haalt het volledige bericht eruit (headers, berichttekst en metadata van bijlagen) en geeft alles weer in een gestructureerde PDF. Handig voor juridisch onderzoek, archivering of gewoon om een belangrijke e-mail af te drukken.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------ | :------- | :-------------------------------------------------------------------------- |
+| EML | `.eml` | Standaard MIME-e-mailformaat (geëxporteerd uit de meeste e-mailprogramma's) |
+| MSG | `.msg` | Eigen formaat van Microsoft Outlook |
+
+## Zo werkt het
+
+1. Klik op het uploadvak of sleep je EML- of MSG-bestanden erheen. Je kunt beide formaten in één reeks combineren.
+2. Bekijk de bestandslijst. Verwijder ongewenste items met het prullenbakpictogram, of klik op **Meer bestanden toevoegen** om meer e-mails toe te voegen.
+3. Stel de conversieopties in (zie hieronder).
+4. Klik op **Converteren naar PDF**. De tool verwerkt elke e-mail, geeft de inhoud weer als opgemaakte HTML en zet die via de PyMuPDF-engine om naar PDF.
+5. Eén e-mail wordt direct als PDF gedownload. Meerdere e-mails worden verpakt in `emails-converted.zip`.
+
+## Opties
+
+| Optie | Standaard | Beschrijving |
+| :----------------------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------- |
+| **Paginaformaat** | A4 | Kies tussen de paginaformaten A4, Letter of Legal. |
+| **CC en BCC opnemen** | Aan | Als dit is ingeschakeld, verschijnen de ontvangerslijsten voor CC en BCC in het headergedeelte van de PDF. |
+| **Lijst met bijlagen opnemen** | Aan | Als dit is ingeschakeld, verschijnt een lijst met de bijlagen van de e-mail (met bestandsnamen en groottes) in de PDF. |
+
+## Toepassingen
+
+- Belangrijke zakelijke correspondentie als PDF archiveren voor compliance of controle
+- E-mailconversaties afdrukken voor rechtszaken of verzoeken om gegevensverstrekking
+- Een blijvend overzicht maken van orderbevestigingen, bonnen of contracten die per e-mail zijn ontvangen
+- Outlook MSG-bestanden back-uppen in een formaat waarvoor Outlook niet nodig is
+- Klantenservicegesprekken documenteren aan de hand van geëxporteerde EML-bestanden
+
+## Tips
+
+- Zowel EML (gebruikt door Thunderbird, Apple Mail en de meeste e-mailprogramma's) als Outlook MSG-bestanden worden ondersteund. Exporteer e-mails uit je e-mailprogramma en zet ze direct in de tool.
+- E-mails met HTML-opmaak behouden hun stijl in de PDF. E-mails met platte tekst worden netjes en leesbaar weergegeven.
+- De lijst met bijlagen toont bestandsnamen en groottes, maar sluit de bijlagen zelf niet in de PDF in.
+
+## Gerelateerde tools
+
+- [XML naar PDF](./xml-to-pdf)
+- [XPS naar PDF](./xps-to-pdf)
diff --git a/docs/nl/tools/epub-to-pdf.md b/docs/nl/tools/epub-to-pdf.md
new file mode 100644
index 00000000..ca67dfd3
--- /dev/null
+++ b/docs/nl/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB naar PDF
+description: Zet EPUB-e-boeken in je browser om naar PDF. Gratis, zonder upload, conversie met privacy voorop.
+---
+
+# EPUB naar PDF
+
+Zet EPUB-e-boeken om naar PDF-bestanden zonder je browser te verlaten. EPUB is de open standaard voor digitale boeken, maar soms heb je een PDF met vaste opmaak nodig om af te drukken, te annoteren of te delen met mensen zonder e-reader.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------ | :------- | :-------------------------- |
+| EPUB | `.epub` | EPUB 2- en EPUB 3-bestanden |
+
+## Zo werkt het
+
+1. Klik op het uploadvak of sleep je EPUB-bestanden erheen. Meerdere bestanden selecteren kan.
+2. Bekijk de geüploade bestanden. Verwijder ongewenste items met het prullenbakpictogram, of klik op **Meer bestanden toevoegen** om de reeks uit te breiden.
+3. Klik op **Converteren naar PDF**. De PyMuPDF-engine geeft de EPUB-inhoud (tekst, afbeeldingen en opmaak) weer als gepagineerde PDF-uitvoer.
+4. Eén EPUB wordt direct als PDF gedownload. Meerdere bestanden worden verpakt in een ZIP-archief met de naam `epub-converted.zip`.
+
+## Opties
+
+De conversie draait met verstandige standaardinstellingen en vereist geen configuratie. Tekst wordt herschikt naar standaardpaginaformaten en ingesloten lettertypen en afbeeldingen worden overgenomen in de PDF.
+
+## Toepassingen
+
+- Een e-boek zonder DRM afdrukken om buiten het scherm te lezen
+- Een EPUB-manuscript indienen als PDF met vaste opmaak ter beoordeling
+- Digitale boeken archiveren in een formaat dat elk besturingssysteem native kan openen
+- Een hoofdstuk delen met een collega die geen EPUB-lezer heeft
+- Technische documentatie die als EPUB wordt verspreid omzetten naar PDF's die je kunt annoteren
+
+## Tips
+
+- Functies van EPUB 3, zoals ingesloten audio en video, worden niet overgenomen in de PDF, maar alle tekst, afbeeldingen en tabellen worden netjes geconverteerd.
+- Controleer bij EPUB's met veel opmaak de eerste pagina's van de uitvoer om te bevestigen dat de opmaak klopt.
+
+## Gerelateerde tools
+
+- [MOBI naar PDF](./mobi-to-pdf)
+- [FB2 naar PDF](./fb2-to-pdf)
+- [CBZ naar PDF](./cbz-to-pdf)
diff --git a/docs/nl/tools/excel-to-pdf.md b/docs/nl/tools/excel-to-pdf.md
new file mode 100644
index 00000000..5b1d73dc
--- /dev/null
+++ b/docs/nl/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel naar PDF
+description: Zet Excel-spreadsheets (XLS, XLSX), ODS- en CSV-bestanden om naar PDF met behoud van de opmaak.
+---
+
+# Excel naar PDF
+
+Zet spreadsheetbestanden om naar PDF. De tool verwerkt moderne Excel-bestanden, het oudere XLS-formaat, OpenDocument-spreadsheets en zelfs CSV. Alles wordt weergegeven door een LibreOffice-engine in de browser, die celopmaak, formules (als berekende waarden), grafieken en indelingen met meerdere bladen behoudt.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :----------------------- | :-------- |
+| Excel (modern) | `.xlsx` |
+| Excel (verouderd) | `.xls` |
+| OpenDocument-spreadsheet | `.ods` |
+| CSV | `.csv` |
+
+## Zo werkt het
+
+1. Klik op het uploadvak of sleep je spreadsheetbestanden erheen.
+2. Bekijk de bestandslijst. Voeg meer bestanden toe of verwijder ongewenste bestanden.
+3. Klik op **Converteren naar PDF**. De LibreOffice-engine wordt bij het eerste gebruik gestart en verwerkt daarna elk bestand.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden worden geleverd als `excel-converted.zip`.
+
+## Opties
+
+Deze tool heeft geen extra configuratie. De LibreOffice-engine bepaalt de paginaindeling, schaling en het afdrukbereik op basis van de ingebouwde instellingen van de spreadsheet.
+
+## Uitvoer
+
+| Aantal invoerbestanden | Uitvoer |
+| :--------------------- | :------------------------------------------------------------------ |
+| 1 bestand | Eén PDF-download (oorspronkelijke bestandsnaam met extensie `.pdf`) |
+| 2+ bestanden | ZIP-archief (`excel-converted.zip`) met één PDF per bestand |
+
+## Toepassingen
+
+- Financiële rapporten of begrotingen uit Excel omzetten naar PDF voor verspreiding
+- Drukklare PDF's maken van voorraad- of productcatalogusspreadsheets
+- Resultaten van data-analyse delen met belanghebbenden die geen Excel hebben geïnstalleerd
+- Kwartaalrapporten archiveren in een niet-bewerkbaar formaat
+- ODS-bestanden uit LibreOffice Calc omzetten naar PDF
+
+## Tips
+
+- Grafieken in de spreadsheet worden weergegeven in de PDF. Controleer of ze in het bronbestand goed zijn voordat je converteert.
+- Als je spreadsheet meerdere bladen heeft, worden alle bladen opgenomen in de PDF-uitvoer.
+- Voor eenvoudige CSV-gegevens zonder opmaak biedt de tool [CSV naar PDF](./csv-to-pdf) een lichtere conversie. Gebruik Excel naar PDF wanneer je opmaak, grafieken of meerdere bladen wilt behouden.
+
+## Gerelateerde tools
+
+- [CSV naar PDF](./csv-to-pdf)
+- [Word naar PDF](./word-to-pdf)
+- [PowerPoint naar PDF](./powerpoint-to-pdf)
diff --git a/docs/nl/tools/extract-attachments.md b/docs/nl/tools/extract-attachments.md
new file mode 100644
index 00000000..12ede1f2
--- /dev/null
+++ b/docs/nl/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Bijlagen extraheren
+description: Haal alle ingesloten bijlagen uit een of meer PDF's en download ze als ZIP-archief.
+---
+
+# Bijlagen extraheren
+
+Haal alle ingesloten bijlagen uit een of meer PDF-bestanden. Alle geëxtraheerde bestanden worden gebundeld in één ZIP-archief om te downloaden.
+
+## Zo werkt het
+
+1. Upload een of meer PDF-bestanden met ingesloten bijlagen.
+2. Klik op **Bijlagen extraheren**.
+3. De tool doorzoekt elke PDF op bijlagen op documentniveau en paginaniveau.
+4. Alle gevonden bestanden worden verpakt in een ZIP-archief en automatisch gedownload.
+5. Een statusmelding bevestigt hoeveel bijlagen zijn gevonden en wat hun totale grootte is.
+
+## Functies
+
+- Extractie in bulk uit meerdere PDF's tegelijk
+- Extraheert bijlagen op zowel documentniveau als paginaniveau
+- Levert één ZIP-bestand met alle geëxtraheerde bestanden
+- Toont het totale aantal bijlagen en de gecombineerde bestandsgrootte
+- Duidelijke statusmeldingen als er geen bijlagen zijn gevonden
+
+## Toepassingen
+
+- Gegevensbestanden terughalen die in een rapport-PDF zijn ingesloten
+- Afbeeldingsbestanden uit een portfolio of specificatiedocument halen
+- Aanvullend materiaal extraheren uit PDF's voor training of compliance
+- Controleren welke bestanden in een reeks PDF's zijn ingesloten
+
+## Tips
+
+- Als de tool meldt dat er geen bijlagen zijn, bevat de PDF mogelijk ingesloten afbeeldingen of formuliergegevens: dat zijn geen bijgesloten bestanden. Gebruik [Afbeeldingen extraheren](./extract-images) voor ingesloten afbeeldingen.
+- Bij het verwerken van meerdere PDF's komen alle bijlagen van elk bestand in één ZIP terecht. De bestandsnamen blijven zoals ze oorspronkelijk waren ingesloten.
+
+## Gerelateerde tools
+
+- [Bijlagen toevoegen](./add-attachments)
+- [Bijlagen bewerken](./edit-attachments)
+- [Afbeeldingen extraheren](./extract-images)
diff --git a/docs/nl/tools/extract-images.md b/docs/nl/tools/extract-images.md
new file mode 100644
index 00000000..ca793a24
--- /dev/null
+++ b/docs/nl/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Afbeeldingen extraheren
+description: Haal alle ingesloten afbeeldingen uit PDF-bestanden. Bekijk ze in een raster en download ze afzonderlijk of als ZIP-archief.
+---
+
+# Afbeeldingen extraheren
+
+Haalt alle ingesloten afbeeldingen uit een of meer PDF-bestanden. De geëxtraheerde afbeeldingen worden getoond in een voorbeeldraster, waar je ze afzonderlijk kunt downloaden of alles in één keer als ZIP kunt ophalen. Mogelijk gemaakt door PyMuPDF.
+
+## Zo werkt het
+
+1. Upload een of meer PDF's door op het uploadvak te klikken of bestanden erheen te slepen. Voeg zo nodig meer bestanden toe of verwijder afzonderlijke bestanden.
+2. Klik op **Extraheren** om de verwerking te starten.
+3. De tool doorzoekt elke pagina van elke geüploade PDF en extraheert de ingesloten afbeeldingen.
+4. De geëxtraheerde afbeeldingen verschijnen in een raster met miniaturen. Elke afbeelding heeft een downloadknop.
+5. Klik op **Alles downloaden** om alles als ZIP-archief op te slaan.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Alle ingesloten afbeeldingen worden geëxtraheerd in hun oorspronkelijke formaat (meestal PNG, JPEG of het formaat dat is gebruikt toen de afbeelding in de PDF werd ingesloten).
+
+## Uitvoerformaat
+
+- Afbeeldingen worden in een voorbeeldraster getoond onder de namen `image_1.png`, `image_2.jpg`, enzovoort.
+- **Alles downloaden** levert `extracted-images.zip` met alle afbeeldingen.
+- Afzonderlijke afbeeldingen kun je een voor een downloaden uit het raster.
+
+## Toepassingen
+
+- Foto's of afbeeldingen uit een PDF terughalen om in een ander project te hergebruiken.
+- Productafbeeldingen uit een catalogus-PDF extraheren voor een webwinkelvermelding.
+- Diagrammen uit technische documentatie halen voor gebruik in presentaties.
+- Controleren welke afbeeldingen in een document zijn ingesloten voordat je het deelt.
+
+## Tips
+
+- De tool extraheert afbeeldingen precies zoals ze in de PDF zijn opgeslagen. Pagina's worden niet opnieuw als afbeelding weergegeven. Gebruik daarvoor [PDF naar PNG](./pdf-to-png) of [PDF naar JPG](./pdf-to-jpg).
+- Als de tool "Geen afbeeldingen gevonden" meldt, gebruikt de PDF mogelijk vectorafbeeldingen in plaats van ingesloten rasterafbeeldingen, of is het een gescand document waarbij de hele pagina één grote afbeelding is.
+- Verwerking in bulk werkt voor meerdere PDF's. Alle afbeeldingen uit alle bestanden worden gecombineerd in één raster en één ZIP.
+
+## Gerelateerde tools
+
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar JPG](./pdf-to-jpg)
+- [PDF-workflowbouwer](./pdf-workflow)
diff --git a/docs/nl/tools/extract-pages.md b/docs/nl/tools/extract-pages.md
new file mode 100644
index 00000000..8d7b6ab0
--- /dev/null
+++ b/docs/nl/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Pagina's extraheren
+description: Sla een specifiek bereik pagina's uit een PDF op als nieuw document.
+---
+
+# Pagina's extraheren
+
+Haal een aantal pagina's uit een PDF en sla ze op als nieuw bestand. Geef met bereiksyntaxis precies op welke pagina's je wilt, en de tool maakt een nette PDF met alleen die pagina's.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand. De tool toont de bestandsnaam, de grootte en het totale aantal pagina's.
+2. Voer de te extraheren pagina's in met bereiksyntaxis (bijv. `1-5`, `3, 7, 10-12`).
+3. Kies eventueel om elk bereik als aparte PDF in een ZIP-archief te downloaden.
+4. Klik op de verwerkingsknop. De geëxtraheerde pagina's worden gedownload als nieuwe PDF (of ZIP).
+
+## Functies
+
+- Flexibele syntaxis voor paginabereiken: afzonderlijke pagina's, bereiken of combinaties gescheiden door komma's
+- Toont na het uploaden het totale aantal pagina's als referentie
+- Optie om uit te voeren als één gecombineerde PDF of als afzonderlijke bestanden in een ZIP
+- Behoudt de oorspronkelijke inhoud en opmaak van de pagina's
+
+## Toepassingen
+
+- De samenvatting (de eerste paar pagina's) uit een lang rapport halen
+- Een enkel hoofdstuk uit een studieboek-PDF extraheren
+- Specifieke pagina's uit een formulierenpakket opslaan als losse documenten
+- Een voorbeelddocument maken van geselecteerde pagina's uit een groter bestand
+
+## Tips
+
+- Paginanummers beginnen bij 1. Gebruik `1` voor de eerste pagina, niet `0`.
+- Gebruik [Pagina's verwijderen](./delete-pages) als je pagina's wilt verwijderen in plaats van extraheren: dat is de omgekeerde bewerking.
+- Als je pagina's visueel met miniaturen wilt selecteren, gebruik dan [PDF splitsen](./split-pdf) in de modus Visueel selecteren.
+
+## Gerelateerde tools
+
+- [PDF splitsen](./split-pdf)
+- [Pagina's verwijderen](./delete-pages)
+- [PDF samenvoegen](./merge-pdf)
diff --git a/docs/nl/tools/extract-tables.md b/docs/nl/tools/extract-tables.md
new file mode 100644
index 00000000..7e33b107
--- /dev/null
+++ b/docs/nl/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Tabellen extraheren
+description: Detecteer en extraheer tabellen uit PDF-documenten. Exporteer als CSV, JSON of Markdown, per tabel.
+---
+
+# Tabellen extraheren
+
+Detecteert alle tabellen in een PDF en laat je ze exporteren in het formaat van je keuze: CSV, JSON of Markdown. Elke tabel wordt afzonderlijk geëxtraheerd met metadata over pagina en positie. Mogelijk gemaakt door de tabeldetectie-engine van PyMuPDF.
+
+## Zo werkt het
+
+1. Upload een PDF door op het uploadvak te klikken of een bestand erheen te slepen.
+2. Kies je gewenste **exportformaat**: CSV, JSON of Markdown.
+3. Klik op **Extraheren** om de verwerking te starten.
+4. Als er één tabel is gevonden, wordt die als enkel bestand gedownload. Bij meerdere tabellen krijg je een ZIP-archief met één bestand per tabel.
+
+## Opties
+
+- **Exportformaat**: kies tussen:
+ - **CSV**: door komma's gescheiden waarden, met correcte aanhalingstekens voor velden met komma's, aanhalingstekens of regeleinden. Geschikt voor spreadsheets en databases.
+ - **JSON**: structuur van arrays in arrays, opgemaakt met inspringing van 2 spaties. Geschikt voor verwerking door programma's.
+ - **Markdown**: tabelformaat met verticale streepjes, weergegeven door PyMuPDF. Geschikt voor documentatie en README-bestanden.
+
+## Uitvoerformaat
+
+- **Eén tabel**: `filename_table.csv` (of `.json` / `.md`)
+- **Meerdere tabellen**: `filename_tables.zip` met bestanden met namen als `table_1_page3.csv`, `table_2_page5.csv`, enzovoort.
+
+## Toepassingen
+
+- Specifieke tabellen uit lange PDF-rapporten extraheren zonder de gegevens van het hele document op te halen.
+- Tabellen in Markdown-formaat ophalen om direct in GitHub-issues, wiki's of documentatie te plakken.
+- Gestructureerde JSON-gegevens uit PDF-tabellen halen voor API-integraties of scripts.
+- Tabellen in verschillende PDF-versies vergelijken door beide naar CSV te exporteren en de verschillen te bekijken.
+
+## Tips
+
+- Met deze tool heb je controle per tabel. Als je alle tabellen gewoon in één CSV wilt hebben, gebruik dan [PDF naar CSV](./pdf-to-csv). Voor een volledige Excel-werkmap gebruik je [PDF naar Excel](./pdf-to-excel).
+- Tabellen die over meerdere pagina's lopen, worden mogelijk per pagina als aparte tabel gedetecteerd. Je moet ze dan misschien handmatig samenvoegen.
+- Als er geen tabellen worden gedetecteerd, is de PDF mogelijk een gescande afbeelding. Voer er eerst OCR op uit om een tekstlaag toe te voegen.
+
+## Gerelateerde tools
+
+- [PDF naar CSV](./pdf-to-csv)
+- [PDF naar Excel](./pdf-to-excel)
+- [PDF naar tekst](./pdf-to-text)
diff --git a/docs/nl/tools/fb2-to-pdf.md b/docs/nl/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..7a06b1a5
--- /dev/null
+++ b/docs/nl/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 naar PDF
+description: Zet FictionBook (FB2) e-books om naar PDF in je browser. Gratis, privé, geen upload naar een server.
+---
+
+# FB2 naar PDF
+
+Zet FictionBook 2 (FB2) bestanden om naar PDF-documenten. FB2 is een op XML gebaseerd e-bookformaat dat populair is in Rusland en Oost-Europa. Op sommige platforms wordt het goed ondersteund, op andere is het vrijwel onbekend. Door het om te zetten naar PDF zijn je boeken overal leesbaar.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------------ | :------- | :------------------------- |
+| FictionBook 2 | `.fb2` | E-bookformaat op XML-basis |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep je FB2-bestanden erheen. Je kunt meerdere bestanden tegelijk selecteren.
+2. Bekijk de bestandslijst. Gebruik het prullenbakpictogram om bestanden te verwijderen, of **Meer bestanden toevoegen** om er meer bij te zetten.
+3. Klik op **Converteren naar PDF**. De PyMuPDF-engine leest de FB2 XML-structuur en geeft die weer als PDF-inhoud met pagina's.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere conversies worden gebundeld in `fb2-converted.zip`.
+
+## Opties
+
+Configuratie is niet nodig. De converter verwerkt de FB2 XML-structuur automatisch en behoudt hoofdstukeinden, opmaak en ingesloten afbeeldingen.
+
+## Toepassingen
+
+- FB2 e-books lezen op apparaten of apps die alleen PDF ondersteunen
+- Russischtalige literatuur afdrukken die in FB2-formaat wordt verspreid
+- Een FB2-bibliotheek archiveren in een formaat dat overal wordt ondersteund
+- Een boek delen met iemand wiens lezer FictionBook niet ondersteunt
+
+## Tips
+
+- FB2-bestanden zijn gewone XML, dus ze zijn meestal klein en worden snel geconverteerd, zelfs in de browser.
+- Als je FB2-bestanden zijn gecomprimeerd als `.fb2.zip`, pak ze dan eerst uit voordat je ze uploadt.
+
+## Gerelateerde tools
+
+- [EPUB naar PDF](./epub-to-pdf)
+- [MOBI naar PDF](./mobi-to-pdf)
+- [XML naar PDF](./xml-to-pdf)
diff --git a/docs/nl/tools/fix-page-size.md b/docs/nl/tools/fix-page-size.md
new file mode 100644
index 00000000..4d3028a3
--- /dev/null
+++ b/docs/nl/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Paginagrootte corrigeren
+description: Breng alle pagina's van een PDF terug naar één uniform formaat. Kies een standaard papierformaat of stel eigen afmetingen in.
+---
+
+# Paginagrootte corrigeren
+
+PDF's die uit meerdere bronnen zijn samengesteld hebben vaak pagina's van verschillend formaat: sommige Letter, sommige A4, sommige helemaal niet standaard. Deze tool dwingt elke pagina naar één doelformaat en schaalt de inhoud zo nodig passend of vullend.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. Kies een **Doelpaginaformaat** in de keuzelijst (A4, Letter, Legal, A3, A5, Tabloid of Aangepast).
+3. Kies een **Oriëntatie**: Automatisch behoudt de oorspronkelijke oriëntatie van elke pagina, of je dwingt Staand of Liggend af.
+4. Kies een modus voor **Inhoud schalen**: Passend (behoudt alle inhoud, kan marges toevoegen) of Vullend (vult de pagina, kan randen afsnijden).
+5. Stel optioneel een **Achtergrondkleur** in voor eventueel toegevoegde marges.
+6. Klik op **Paginaformaat corrigeren**.
+
+## Opties
+
+- **Standaardformaten**: A4, Letter, Legal, A3, A5, Tabloid
+- **Aangepaste afmetingen**: Voer breedte en hoogte in inches of millimeters in
+- **Oriëntatie**: Automatisch, Staand, Liggend
+- **Schaalmodus**: Passend of Vullend (bijsnijden)
+- **Achtergrondkleur**: Elke kleur voor de opvulling van marges
+
+## Toepassingen
+
+- Een samengevoegde PDF normaliseren waarvan de pagina's van verschillende scanners komen
+- Een US Letter-document omzetten naar A4 voor internationale verspreiding
+- Drukklare PDF's voorbereiden die een consistent afsnijformaat vereisen
+- Pagina's corrigeren die licht van de standaard afwijken (bijvoorbeeld 8,49 x 11,02 inch in plaats van 8,5 x 11)
+
+## Tips
+
+- Gebruik de modus Passend om zeker te zijn dat er geen inhoud verloren gaat. De modus Vullend ziet er netter uit, maar kan randen afsnijden.
+- Controleer het resultaat met de tool Pagina-afmetingen om te bevestigen dat elke pagina overeenkomt met het doelformaat.
+- Wit is de standaard achtergrondkleur. Kies een donkere kleur als je document donkere marges heeft.
+
+## Gerelateerde tools
+
+- [Pagina-afmetingen](./page-dimensions): controleer paginaformaten voor en na het corrigeren
+- [PDF comprimeren](./compress-pdf): verklein het bestand na het standaardiseren
+- [PDF bijsnijden](./crop-pdf): snijd pagina's handmatig bij in plaats van automatisch te schalen
diff --git a/docs/nl/tools/flatten-pdf.md b/docs/nl/tools/flatten-pdf.md
new file mode 100644
index 00000000..91ae2c52
--- /dev/null
+++ b/docs/nl/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: PDF platmaken
+description: Maak interactieve formulieren en aantekeningen plat tot statische inhoud. Formuliervelden worden niet-bewerkbaar en aantekeningen worden in de pagina ingebakken.
+---
+
+# PDF platmaken
+
+Platmaken voegt interactieve elementen, zoals formuliervelden, keuzelijsten, selectievakjes, aantekeningen, markeringen en plaknotities, rechtstreeks samen met de pagina-inhoud. Het uiterlijk blijft gelijk, maar niets is nog bewerkbaar of uitleesbaar. Het is het PDF-equivalent van een ingevuld formulier afdrukken en weer inscannen, alleen blijft de kwaliteit perfect.
+
+## Zo werkt het
+
+1. Upload een of meer PDF-bestanden.
+2. Klik op **PDF platmaken**.
+3. Eén bestand wordt direct gedownload. Meerdere bestanden leveren een ZIP-archief op.
+
+De tool gebruikt pdf-lib om formuliervelden plat te maken (via `form.flatten()`) en een aparte aantekeningenverwerker om aantekeningen in de paginastroom in te bakken. Beide bewerkingen gebeuren in één keer.
+
+## Wat wordt platgemaakt
+
+- **Formuliervelden**: Tekstvelden, selectievakjes, keuzerondjes, keuzelijsten, handtekeningvelden
+- **Aantekeningen**: Opmerkingen, markeringen, doorhalingen, onderstrepingen, plaknotities, stempels, inktaantekeningen
+- **Interactieve elementen**: Knoppen, actietriggers
+
+## Wat ongewijzigd blijft
+
+- Tekstinhoud (blijft selecteerbaar en doorzoekbaar)
+- Afbeeldingen en afbeeldingselementen
+- Pagina-indeling en afmetingen
+- Bladwijzers en inhoudsopgave
+- Hyperlinks (tenzij ze op aantekeningen zijn gebaseerd)
+
+## Toepassingen
+
+- Een ingevuld formulier vergrendelen zodat ontvangers de ingediende antwoorden niet kunnen wijzigen
+- Een PDF voorbereiden voor archivering waarbij interactieve elementen niet nodig zijn
+- Weergaveproblemen oplossen doordat aantekeningen in verschillende viewers anders worden getoond
+- Zorgen dat een ondertekend document na het plaatsen van de handtekening niet meer kan worden gewijzigd
+- De bestandsgrootte verkleinen door formulierveldedefinities en aantekeningobjecten te verwijderen
+
+## Tips
+
+- Maak pas plat als alle bewerkingen klaar zijn. Platmaken is niet ongedaan te maken.
+- Wil je platmaken en ook metadata, JavaScript en bijlagen verwijderen, gebruik dan de tool PDF opschonen: platmaken zit daar als optie in.
+- Sommige PDF's melden "geen formulier gevonden". Dat is normaal als het document alleen aantekeningen en geen formuliervelden heeft.
+
+## Gerelateerde tools
+
+- [PDF opschonen](./sanitize-pdf): formulieren platmaken plus metadata, scripts en meer verwijderen
+- [PDF rasteriseren](./rasterize-pdf): omzetten naar een PDF op afbeeldingsbasis voor maximaal platmaken
+- [Lettertype naar contour](./font-to-outline): lettertypen omzetten naar vectorpaden
+- [PDF versleutelen](./protect-pdf): beveilig de platgemaakte PDF met een wachtwoord
diff --git a/docs/nl/tools/font-to-outline.md b/docs/nl/tools/font-to-outline.md
new file mode 100644
index 00000000..35563328
--- /dev/null
+++ b/docs/nl/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Lettertype naar contouren
+description: Zet alle PDF-lettertypen om naar vectorcontouren voor consistente weergave op alle apparaten. Voorkomt problemen met ontbrekende lettertypen.
+---
+
+# Lettertype naar contouren
+
+Lettertypen naar contouren omzetten verandert elk teken van een lettertypeglyph in een vectorpad. De PDF is dan niet meer afhankelijk van geïnstalleerde lettertypen en wordt op elk apparaat, elk besturingssysteem en elke printer identiek weergegeven. Dit is een standaardstap in prepress-workflows.
+
+## Zo werkt het
+
+1. Upload een of meer PDF-bestanden.
+2. Klik op **Converteren naar contouren**.
+3. Ghostscript zet alle tekst om naar vectorpaden.
+4. Download het resultaat. Meerdere bestanden leveren een ZIP-archief op.
+
+Er zijn geen instellingen. De tool gebruikt Ghostscript (WebAssembly) om alle lettertypeverwijzingen in één keer om te zetten naar contourpaden.
+
+## Wat er verandert
+
+- Tekens worden vectorkrommen (bezierpaden)
+- Het insluiten van lettertypen is niet meer nodig: de PDF is op glyphniveau zelfvoorzienend
+- De bestandsgrootte kan toenemen, omdat vectorpaden meestal groter zijn dan lettertypeverwijzingen
+- Het uiterlijk blijft exact behouden
+
+## Wat je kwijtraakt
+
+- Tekst selecteren en kopiëren en plakken
+- Doorzoekbaarheid van tekst (Ctrl+F werkt niet meer)
+- De mogelijkheid om tekstinhoud te bewerken
+- Toegankelijkheid voor schermlezers
+
+## Toepassingen
+
+- PDF's sturen naar een drukkerij die lettertypen als contouren vereist
+- Documenten delen die aangepaste of gelicentieerde lettertypen gebruiken met mensen die die lettertypen niet hebben
+- Lettertypevervanging voorkomen die het uiterlijk van je document op andere systemen verandert
+- PDF's voorbereiden voor lasergraveer- of CNC-workflows die vectorinvoer vereisen
+- Zorgen dat een PDF met veel logo's op alle platforms goed wordt weergegeven
+
+## Tips
+
+- Bewaar je originele PDF. Omzetten naar contouren is onomkeerbaar: je kunt paden niet terugzetten naar bewerkbare tekst.
+- Moet de tekst doorzoekbaar blijven, gebruik dan liever de tool PDF rasteriseren met OCR als vervolgstap.
+- PDF's met contouren zijn meestal groter. Voer daarna PDF comprimeren uit als de bestandsgrootte belangrijk is.
+
+## Gerelateerde tools
+
+- [PDF platmaken](./flatten-pdf): maak formulieren en aantekeningen plat zonder lettertypen aan te raken
+- [PDF rasteriseren](./rasterize-pdf): omzetten naar een PDF op afbeeldingsbasis in plaats van vectorcontouren
+- [PDF comprimeren](./compress-pdf): verklein het bestand na het omzetten naar contouren
+- [PDF naar PDF/A](./pdf-to-pdfa): converteer voor archivering nadat de lettertypeonafhankelijkheid is gewaarborgd
diff --git a/docs/nl/tools/form-creator.md b/docs/nl/tools/form-creator.md
new file mode 100644
index 00000000..602184ae
--- /dev/null
+++ b/docs/nl/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: PDF-formulier aanmaken
+description: Bouw invulbare PDF-formulieren met tekstvelden, selectievakjes, keuzelijsten, keuzerondjes en meer via slepen en neerzetten.
+---
+
+# PDF-formulier aanmaken
+
+Ontwerp professionele invulbare PDF-formulieren vanaf nul of door velden toe te voegen aan een bestaande PDF. In de visuele editor sleep je formulierelementen, zoals tekstvelden, selectievakjes, keuzelijsten, keuzerondjes en handtekeningvelden, rechtstreeks op de paginavoorbeelden. Stel veldeigenschappen in, maak regels voor voorwaardelijke zichtbaarheid en exporteer een volledig interactief PDF-formulier.
+
+## Zo werkt het
+
+1. Upload een bestaande PDF **of** klik op **Lege PDF maken** om helemaal opnieuw te beginnen.
+2. Kies bij een lege PDF een paginaformaat (Letter, A4, A5, Legal, Tabloid, A3 of eigen afmetingen).
+3. De formuliereditor opent met een werkbalk met veldtypen en een voorbeeldgebied van de pagina.
+4. Kies een veldtype in de werkbalk en klik op de pagina om het te plaatsen.
+5. Sleep velden om ze te verplaatsen. Gebruik de formaathandvatten om de afmetingen aan te passen.
+6. Klik op een veld om het eigenschappenpaneel te openen, waar je de veldnaam, standaardwaarde, lettergrootte, uitlijning en meer instelt.
+7. Navigeer tussen pagina's met de paginabesturing.
+8. Klik op **Opslaan** om de voltooide invulbare PDF te downloaden.
+
+## Functies
+
+- Velden plaatsen met slepen en neerzetten, met visuele handvatten voor het aanpassen van het formaat
+- Veldtypen: tekstinvoer, tekst met meerdere regels, selectievakje, keuzelijst, keuzerondje, handtekening, datum, getal en streepjescode
+- Eigenschappenpaneel voor naam, label, standaardwaarde, lettergrootte, kleur, uitlijning en validatie van elk veld
+- Veldacties en regels voor voorwaardelijke zichtbaarheid (velden tonen of verbergen op basis van andere veldwaarden)
+- Paginanavigatie voor formulieren met meerdere pagina's
+- Extractie van bestaande velden: formuliervelden in geüploade PDF's worden automatisch gedetecteerd en geïmporteerd
+- Ondersteuning voor zowel geüploade PDF's als lege pagina's als formulierondergrond
+- Meerdere paginaformaatvoorinstellingen plus eigen afmetingen
+- Streepjescodes genereren met bwip-js
+- Beheer van groepen keuzerondjes
+
+## Opties
+
+**Voorinstellingen voor paginaformaat (voor lege PDF's):**
+
+- 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)
+- Aangepast (geef breedte en hoogte op)
+
+**Veldeigenschappen (verschillen per veldtype):**
+
+- Naam, label en plaatshoudertekst
+- Standaardwaarde
+- Lettertype, grootte en kleur
+- Tekstuitlijning (links, gecentreerd, rechts)
+- Schakelaar voor verplicht veld
+- Schakelaar voor alleen-lezen
+- Maximale lengte voor tekstvelden
+- Optielijst voor keuzelijsten en keuzerondjes
+- Acties voor voorwaardelijke zichtbaarheid
+
+## Toepassingen
+
+- Onboardingformulieren voor medewerkers bouwen met tekstvelden voor persoonlijke gegevens en selectievakjes voor het accepteren van beleid
+- Intakevragenlijsten voor klanten maken met keuzelijsten voor dienstselectie
+- Bestelformulieren ontwerpen met berekende velden en streepjescode-identificatie
+- Inspectiechecklists bouwen met keuzerondjes voor goed/fout-beoordelingen
+- Enquêteformulieren maken met voorwaardelijke vervolgvragen die verschijnen op basis van antwoorden
+
+## Tips
+
+- Als je een bestaande PDF uploadt, probeert de tool de aanwezige formuliervelden te extraheren, zodat je ze kunt bewerken of aanvullen.
+- Gebruik de groepsfunctie voor keuzerondjes om elkaar uitsluitende keuzes te maken. Velden in dezelfde groep delen een groepsnaam.
+- Test je formulier door het te downloaden en te openen in de [Formulier invullen](./form-filler)-tool om het gedrag van de velden te controleren.
+
+## Gerelateerde tools
+
+- [Formulier invullen](./form-filler)
+- [PDF ondertekenen](./sign-pdf)
+- [PDF-editor](./edit-pdf)
diff --git a/docs/nl/tools/form-filler.md b/docs/nl/tools/form-filler.md
new file mode 100644
index 00000000..c7419ed3
--- /dev/null
+++ b/docs/nl/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: PDF-formulier invullen
+description: Vul PDF-formulieren in, ook XFA-formulieren, rechtstreeks in je browser met een ingebouwde viewer.
+---
+
+# PDF-formulier invullen
+
+Open een PDF met formuliervelden en vul die direct in een ingebouwde viewer in. De tool ondersteunt zowel standaard AcroForm-velden als oudere XFA-formulieren (XML Forms Architecture). Als je het formulier hebt ingevuld, download je de ingevulde versie met één klik.
+
+## Zo werkt het
+
+1. Upload een PDF met formuliervelden.
+2. Het document opent in een geïntegreerde PDF-viewer die formuliervelden als interactieve invoer weergeeft.
+3. Klik op tekstvelden, selectievakjes, keuzelijsten en keuzerondjes om ze in te vullen.
+4. Klik op **Opslaan en ingevuld formulier downloaden** om de voltooide PDF te krijgen.
+
+## Functies
+
+- Ingebouwde PDF.js-viewer met volledige interactie met formuliervelden
+- Ondersteuning voor standaard AcroForm-velden (tekstinvoer, selectievakjes, keuzelijsten, keuzerondjes)
+- XFA-ondersteuning voor oudere formulieren op XML-basis
+- Automatisch aanpassen van het viewerformaat aan de paginaafmetingen
+- Bestandsweergave met naam en grootte
+
+## Opties
+
+Er zijn geen extra configuratieopties. Upload het formulier, vul het in en download het.
+
+## Toepassingen
+
+- Belastingformulieren, verzekeringsaanvragen of overheidspapieren invullen
+- Sollicitatieformulieren invullen die je als PDF-bijlage ontvangt
+- Onboardingformulieren voor leveranciers of leveranciersvragenlijsten invullen
+- Compliancechecklists afvinken met selectievakjes
+- Medische intakeformulieren invullen voor een afspraak
+
+## Tips
+
+- XFA-formulieren zijn een verouderd formaat dat maar door sommige PDF-viewers wordt ondersteund. Als je een XFA-PDF in Chrome of de meeste andere tools opent en lege pagina's ziet, ontbreekt daar XFA-ondersteuning. De Formulier invullen-tool van BentoPDF en Firefox verwerken XFA wel goed.
+- Gebruik voor PDF's zonder formuliervelden eerst de tool [PDF-formulier maken](./form-creator) om velden toe te voegen en vul ze daarna hier in.
+- De viewer past zijn formaat automatisch aan de paginaafmetingen van de PDF aan.
+
+## Gerelateerde tools
+
+- [PDF-formulier maken](./form-creator)
+- [PDF ondertekenen](./sign-pdf)
+- [PDF-editor](./edit-pdf)
diff --git a/docs/nl/tools/header-footer.md b/docs/nl/tools/header-footer.md
new file mode 100644
index 00000000..e076e257
--- /dev/null
+++ b/docs/nl/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Koptekst en voettekst
+description: Voeg aanpasbare koptekst en voettekst toe aan PDF-pagina's met dynamische variabelen voor paginanummers.
+---
+
+# Koptekst en voettekst
+
+Voeg tekst toe op zes posities op je PDF-pagina's: koptekst links, midden en rechts, en voettekst links, midden en rechts. De tool ondersteunt dynamische variabelen voor paginanummers en het totale aantal pagina's, zodat je sjablonen als "Pagina 3 van 10" kunt maken die per pagina automatisch worden bijgewerkt.
+
+## Zo werkt het
+
+1. Upload je PDF-bestand.
+2. Het optiepaneel verschijnt met opmaakinstellingen en zes tekstvelden.
+3. Voer je gewenste tekst in op een van de posities voor koptekst of voettekst.
+4. Gebruik de plaatshouders `{page}` en `{total}` voor dynamische paginanummering.
+5. Pas lettergrootte en letterkleur aan en beperk het eventueel tot een bepaald paginabereik.
+6. Klik op **Koptekst en voettekst toevoegen** om te verwerken en te downloaden.
+
+## Opties
+
+- **Paginabereik**: Beperk optioneel welke pagina's een koptekst en voettekst krijgen. Laat leeg om op alle pagina's toe te passen. Notatie: "1-3, 5" (bereiken gescheiden door komma's).
+- **Lettergrootte**: Tussen 6 en 24 punten. Standaard 10.
+- **Letterkleur**: Kies een willekeurige kleur met de kleurkiezer.
+- **Koptekst links / midden / rechts**: Tekstvelden voor de bovenkant van elke pagina.
+- **Voettekst links / midden / rechts**: Tekstvelden voor de onderkant van elke pagina.
+
+## Functies
+
+- Zes onafhankelijke tekstposities per pagina
+- Dynamische variabele `{page}` die het huidige paginanummer invoegt
+- Dynamische variabele `{total}` die het totale aantal pagina's invoegt
+- Filteren op paginabereik om specifieke pagina's te kiezen
+- Aanpasbare lettergrootte en kleur
+- Helvetica-lettertype voor een verzorgd, professioneel resultaat
+
+## Toepassingen
+
+- "Pagina {page} van {total}" toevoegen in het midden van de voettekst van een rapport
+- Een bedrijfsnaam links in de koptekst en een documentdatum rechts in de koptekst plaatsen
+- Vertrouwelijkheidsverklaringen toevoegen aan de voettekst van juridische documenten
+- Revisienummers van documenten stempelen op specifieke paginabereiken
+
+## Tips
+
+- Combineer `{page}` en `{total}` in één veld voor notaties als "Pagina {page} van {total}" of "{page}/{total}".
+- Je kunt de meeste velden leeg laten en alleen de posities invullen die je nodig hebt. Lege velden worden gewoon overgeslagen.
+- Voor complexere kopteksten met afbeeldingen of logo's kun je de tool [Watermerk toevoegen](./add-watermark) gebruiken, bovenaan de pagina geplaatst.
+
+## Gerelateerde tools
+
+- [Paginanummers](./page-numbers)
+- [Watermerk toevoegen](./add-watermark)
+- [Bates-nummering](./bates-numbering)
diff --git a/docs/nl/tools/heic-to-pdf.md b/docs/nl/tools/heic-to-pdf.md
new file mode 100644
index 00000000..2b5f01f3
--- /dev/null
+++ b/docs/nl/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC naar PDF
+description: Zet HEIC- en HEIF-afbeeldingen van iPhones en iPads om naar PDF, rechtstreeks in je browser.
+---
+
+# HEIC naar PDF
+
+Zet HEIC/HEIF-afbeeldingen om naar PDF. HEIC is sinds iOS 11 het standaard fotoformaat op iPhones en iPads. Met deze tool maak je van die foto's PDF's zonder desktopsoftware te installeren of bestanden naar een server te uploaden.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep je HEIC/HEIF-bestanden erheen.
+2. Bekijk de bestandslijst en verwijder ongewenste bestanden.
+3. Klik op **Converteren naar PDF**. Het resultaat wordt gedownload als `from_heic.pdf`.
+
+Elk HEIC-bestand wordt gedecodeerd met de bibliotheek heic2any, die het met 92% kwaliteit omzet naar PNG. De PNG wordt daarna met pdf-lib in de PDF ingesloten, met elke afbeelding op een eigen pagina op volledige resolutie.
+
+## Opties
+
+Deze tool heeft geen extra instellingen. HEIC-afbeeldingen worden met hoge kwaliteit (0.92) naar PNG omgezet voordat ze worden ingesloten.
+
+## Toepassingen
+
+- Een PDF maken van iPhone-foto's om bij te voegen aan een verzekeringsclaim of rapport
+- HEIC-foto's voor een woningadvertentie omzetten naar één afdrukbaar document
+- iPad-schermafbeeldingen (HEIF-formaat) omzetten naar een deelbare PDF
+- Vakantiefoto's voor een reisdagboek in één keer omzetten
+
+## Tips
+
+- HEIC-decodering gebeurt volledig in de browser met WebAssembly. De eerste conversie kan even duren terwijl de decoder wordt geladen.
+- Wil je HEIC combineren met andere afbeeldingsformaten (JPG, PNG, enz.), gebruik dan de tool [Afbeeldingen naar PDF](./image-to-pdf), die HEIC naast alle andere formaten aankan.
+- HEIC-bestanden van iPhones bevatten vaak EXIF-gegevens, waaronder GPS-coördinaten. De PDF-uitvoer neemt deze metadata niet over.
+
+## Gerelateerde tools
+
+- [Afbeeldingen naar PDF](./image-to-pdf)
+- [JPG naar PDF](./jpg-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
diff --git a/docs/nl/tools/image-to-pdf.md b/docs/nl/tools/image-to-pdf.md
new file mode 100644
index 00000000..beebcd7d
--- /dev/null
+++ b/docs/nl/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Afbeelding naar PDF
+description: Zet JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD en meer dan 10 andere afbeeldingsformaten om naar één PDF-bestand.
+---
+
+# Afbeelding naar PDF
+
+De universele converter van afbeeldingen naar PDF. Upload afbeeldingen in vrijwel elk formaat en combineer ze tot één PDF-document. Elke afbeelding krijgt een eigen pagina, met het formaat van het origineel.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Dit is de breedste formaatondersteuning van alle afbeeldingsconverters in BentoPDF. Heb je maar één specifiek formaat nodig, gebruik dan liever de bijbehorende aparte tool.
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep je afbeeldingsbestanden erheen. Je kunt meerdere bestanden tegelijk selecteren.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram, of klik op **Meer bestanden toevoegen** om extra afbeeldingen toe te voegen.
+3. Kies een **PDF-kwaliteit** in de keuzelijst.
+4. Klik op **Converteren naar PDF**. De tool verwerkt de afbeeldingen met de PyMuPDF-engine en downloadt het resultaat als `images_to_pdf.pdf`.
+
+## Opties
+
+**PDF-kwaliteit** bepaalt de beeldcompressie bij het insluiten van afbeeldingen in de PDF:
+
+- **Hoge kwaliteit**: minimale compressie, groter bestand. Het beste voor drukwerk of archivering.
+- **Gemiddelde kwaliteit** (standaard): gebalanceerde compressie. Geschikt voor de meeste doeleinden.
+- **Lage kwaliteit**: sterke compressie, kleinste bestand. Geschikt voor e-mail of snel delen.
+
+HEIC- en WebP-bestanden worden automatisch omgezet naar PNG voordat ze worden ingesloten. Dit gebeurt vanzelf en vergt geen extra stappen.
+
+## Toepassingen
+
+- Gescande bonnetjes of documenten van een telefooncamera combineren tot één PDF
+- Een fotoportfolio of lookbook maken van afbeeldingen in verschillende formaten
+- iPhone-foto's (HEIC) omzetten naar een deelbare PDF zonder desktopsoftware te installeren
+- Ontwerpmockups uit PSD-exports en schermafbeeldingen samenstellen tot een oplevering voor een klant
+- Een map met oudere afbeeldingsformaten (PNM, JXR, JP2) archiveren als één PDF
+
+## Tips
+
+- De volgorde van de afbeeldingen in de PDF komt overeen met de volgorde in de bestandslijst. Upload ze dus in de gewenste volgorde.
+- Kies Lage kwaliteit voor het kleinst mogelijke bestand. Het zichtbare verschil is bij scans met veel tekst vaak verwaarloosbaar.
+- Heb je maar één afbeeldingsformaat, dan geven de aparte converters (JPG naar PDF, PNG naar PDF, enz.) hetzelfde resultaat met een eenvoudigere interface.
+
+## Gerelateerde tools
+
+- [JPG naar PDF](./jpg-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
+- [HEIC naar PDF](./heic-to-pdf)
+- [WebP naar PDF](./webp-to-pdf)
diff --git a/docs/nl/tools/index.md b/docs/nl/tools/index.md
new file mode 100644
index 00000000..d94bf5f3
--- /dev/null
+++ b/docs/nl/tools/index.md
@@ -0,0 +1,183 @@
+# Overzicht van tools
+
+BentoPDF biedt **meer dan 130 tools** om met PDF's te werken. Alle tools draaien volledig in je browser, je bestanden verlaten je apparaat nooit.
+
+---
+
+## Bewerken en annoteren
+
+Wijzig, markeer en verbeter je PDF-documenten met een complete set bewerkingstools.
+
+
+
+- [**PDF-editor**](./edit-pdf): Annoteer, markeer, redigeer, geef commentaar, voeg vormen en afbeeldingen toe, zoek en bekijk PDF's.
+- [**Bladwijzers bewerken**](./bookmark): Voeg PDF-bladwijzers toe, bewerk, importeer, verwijder en extraheer ze.
+- [**Inhoudsopgave**](./table-of-contents): Genereer een inhoudsopgavepagina uit PDF-bladwijzers.
+- [**Paginanummers**](./page-numbers): Voeg paginanummers toe aan je document.
+- [**Paginalabels toevoegen**](./add-page-labels): Pas PDF-paginalabels toe met Romeinse cijfers, voorvoegsels en eigen beginwaarden.
+- [**Bates-nummering**](./bates-numbering): Voeg opeenvolgende Bates-nummers toe aan een of meer PDF-bestanden.
+- [**Watermerk toevoegen**](./add-watermark): Plaats tekst of een afbeelding over je PDF-pagina's.
+- [**Koptekst en voettekst**](./header-footer): Voeg tekst toe aan de boven- en onderkant van pagina's.
+- [**Kleuren omkeren**](./invert-colors): Maak een donkere modus-versie van je PDF.
+- [**Scannereffect**](./scanner-effect): Laat je PDF eruitzien als een gescand document.
+- [**Kleuren aanpassen**](./adjust-colors): Stel helderheid, contrast, verzadiging en meer fijn af.
+- [**Achtergrondkleur**](./background-color): Wijzig de achtergrondkleur van je PDF.
+- [**Tekstkleur wijzigen**](./text-color): Wijzig de kleur van tekst in je PDF.
+- [**PDF ondertekenen**](./sign-pdf): Teken, typ of upload je handtekening.
+- [**Stempels toevoegen**](./add-stamps): Voeg afbeeldingsstempels toe aan je PDF met de annotatiewerkbalk.
+- [**Aantekeningen verwijderen**](./remove-annotations): Verwijder opmerkingen, markeringen en links.
+- [**PDF bijsnijden**](./crop-pdf): Snijd de marges van elke pagina in je PDF bij.
+- [**PDF-formulier invullen**](./form-filler): Vul formulieren direct in de browser in. Ondersteunt ook XFA-formulieren.
+- [**PDF-formulier maken**](./form-creator): Maak invulbare PDF-formulieren met tekstvelden via slepen en neerzetten.
+- [**Lege pagina's verwijderen**](./remove-blank-pages): Detecteer en verwijder automatisch lege pagina's.
+
+
+
+---
+
+## Converteren naar PDF
+
+Zet afbeeldingen, documenten, e-books en andere bestandsformaten om naar PDF.
+
+
+
+- [**Afbeeldingen naar PDF**](./image-to-pdf): Zet JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP en meer om naar PDF.
+- [**JPG naar PDF**](./jpg-to-pdf): Maak een PDF van een of meer JPG-afbeeldingen.
+- [**PNG naar PDF**](./png-to-pdf): Maak een PDF van een of meer PNG-afbeeldingen.
+- [**WebP naar PDF**](./webp-to-pdf): Maak een PDF van een of meer WebP-afbeeldingen.
+- [**SVG naar PDF**](./svg-to-pdf): Maak een PDF van een of meer SVG-afbeeldingen.
+- [**BMP naar PDF**](./bmp-to-pdf): Maak een PDF van een of meer BMP-afbeeldingen.
+- [**HEIC naar PDF**](./heic-to-pdf): Maak een PDF van een of meer HEIC-afbeeldingen.
+- [**TIFF naar PDF**](./tiff-to-pdf): Maak een PDF van een of meer TIFF-afbeeldingen.
+- [**Tekst naar PDF**](./txt-to-pdf): Zet een tekstbestand om naar een PDF.
+- [**Markdown naar PDF**](./markdown-to-pdf): Zet Markdown om naar PDF met livevoorbeeld en syntaxisaccentuering.
+- [**JSON naar PDF**](./json-to-pdf): Zet JSON-bestanden om naar PDF.
+- [**ODT naar PDF**](./odt-to-pdf): Zet ODT-bestanden (OpenDocument Text) om naar PDF.
+- [**CSV naar PDF**](./csv-to-pdf): Zet CSV-spreadsheets om naar PDF.
+- [**RTF naar PDF**](./rtf-to-pdf): Zet RTF-documenten (Rich Text Format) om naar PDF.
+- [**Word naar PDF**](./word-to-pdf): Zet Word-documenten (DOCX, DOC, ODT) om naar PDF.
+- [**Excel naar PDF**](./excel-to-pdf): Zet Excel-spreadsheets (XLSX, XLS, ODS) om naar PDF.
+- [**PowerPoint naar PDF**](./powerpoint-to-pdf): Zet PowerPoint-presentaties (PPTX, PPT, ODP) om naar PDF.
+- [**XPS naar PDF**](./xps-to-pdf): Zet XPS/OXPS-documenten om naar PDF.
+- [**MOBI naar PDF**](./mobi-to-pdf): Zet MOBI e-books om naar PDF.
+- [**EPUB naar PDF**](./epub-to-pdf): Zet EPUB e-books om naar PDF.
+- [**FB2 naar PDF**](./fb2-to-pdf): Zet FictionBook (FB2) e-books om naar PDF.
+- [**CBZ naar PDF**](./cbz-to-pdf): Zet stripboekarchieven (CBZ/CBR) om naar PDF.
+- [**WPD naar PDF**](./wpd-to-pdf): Zet WordPerfect-documenten (WPD) om naar PDF.
+- [**WPS naar PDF**](./wps-to-pdf): Zet WPS Office-documenten om naar PDF.
+- [**XML naar PDF**](./xml-to-pdf): Zet XML-documenten om naar PDF.
+- [**ODG naar PDF**](./odg-to-pdf): Zet OpenDocument Graphics (ODG) om naar PDF.
+- [**ODS naar PDF**](./ods-to-pdf): Zet OpenDocument Spreadsheet (ODS) om naar PDF.
+- [**ODP naar PDF**](./odp-to-pdf): Zet OpenDocument Presentation (ODP) om naar PDF.
+- [**PUB naar PDF**](./pub-to-pdf): Zet Microsoft Publisher (PUB) om naar PDF.
+- [**VSD naar PDF**](./vsd-to-pdf): Zet Microsoft Visio (VSD, VSDX) om naar PDF.
+- [**PSD naar PDF**](./psd-to-pdf): Zet Adobe Photoshop-bestanden (PSD) om naar PDF.
+- [**E-mail naar PDF**](./email-to-pdf): Zet e-mailbestanden (EML, MSG) om naar PDF.
+
+
+
+---
+
+## Converteren vanuit PDF
+
+Haal inhoud uit PDF's en zet die om naar afbeeldingen, documenten en gegevensformaten.
+
+
+
+- [**PDF naar JPG**](./pdf-to-jpg): Zet elke PDF-pagina om naar een JPG-afbeelding.
+- [**PDF naar PNG**](./pdf-to-png): Zet elke PDF-pagina om naar een PNG-afbeelding.
+- [**PDF naar WebP**](./pdf-to-webp): Zet elke PDF-pagina om naar een WebP-afbeelding.
+- [**PDF naar BMP**](./pdf-to-bmp): Zet elke PDF-pagina om naar een BMP-afbeelding.
+- [**PDF naar TIFF**](./pdf-to-tiff): Zet elke PDF-pagina om naar een TIFF-afbeelding.
+- [**PDF naar CBZ**](./pdf-to-cbz): Zet een PDF om naar een CBZ (stripboekarchief) voor stripreaders en Calibre.
+- [**PDF naar SVG**](./pdf-to-svg): Zet elke PDF-pagina om naar een schaalbare vectorafbeelding.
+- [**PDF naar CSV**](./pdf-to-csv): Haal tabellen uit een PDF en zet ze om naar CSV.
+- [**PDF naar Excel**](./pdf-to-excel): Haal tabellen uit een PDF en zet ze om naar Excel (XLSX).
+- [**PDF naar grijstinten**](./pdf-to-greyscale): Zet alle kleuren om naar zwart-wit.
+- [**PDF naar JSON**](./pdf-to-json): Zet PDF-bestanden om naar JSON.
+- [**PDF naar Word**](./pdf-to-word): Zet PDF-bestanden om naar bewerkbare Word-documenten.
+- [**Afbeeldingen extraheren**](./extract-images): Haal alle ingesloten afbeeldingen uit je PDF-bestanden.
+- [**PDF naar Markdown**](./pdf-to-markdown): Zet PDF-tekst en tabellen om naar Markdown.
+- [**PDF voorbereiden voor AI**](./prepare-pdf-for-ai): Haal PDF-inhoud op als LlamaIndex JSON voor RAG/LLM-pipelines.
+- [**PDF naar tekst**](./pdf-to-text): Haal tekst uit PDF-bestanden en sla die op als platte tekst.
+- [**Tabellen extraheren**](./extract-tables): Haal tabellen uit PDF's als CSV, JSON of Markdown.
+
+
+
+---
+
+## Ordenen en beheren
+
+Herschik, combineer, splits en beheer je PDF-pagina's en -bestanden.
+
+
+
+- [**PDF-workflowbouwer**](./pdf-workflow): Bouw eigen PDF-verwerkingsketens met een visuele knooppunteneditor.
+- [**PDF-multitool**](./pdf-multi-tool): Volwaardige PDF-editor met paginabeheer.
+- [**PDF OCR**](./ocr-pdf): Maak een PDF doorzoekbaar en kopieerbaar.
+- [**PDF samenvoegen**](./merge-pdf): Combineer meerdere PDF's tot één bestand.
+- [**Pagina's afwisselen en mixen**](./alternate-merge): Voeg PDF's samen door pagina's van elke PDF af te wisselen.
+- [**Duplex samenvoegen**](./duplex-collate): Zet blokken voor- en achterzijdescans in de juiste paginavolgorde.
+- [**Ordenen en dupliceren**](./organize-pdf): Dupliceer, herschik en verwijder pagina's.
+- [**Bijlagen toevoegen**](./add-attachments): Sluit een of meer bestanden in je PDF in.
+- [**Bijlagen extraheren**](./extract-attachments): Haal alle ingesloten bestanden uit PDF('s) als ZIP.
+- [**Bijlagen bewerken**](./edit-attachments): Bekijk of verwijder bijlagen in je PDF.
+- [**PDF-lagen (OCG)**](./pdf-layers): Bekijk, schakel, voeg toe en verwijder OCG-lagen in je PDF.
+- [**PDF splitsen**](./split-pdf): Haal een paginabereik uit een PDF naar een nieuwe PDF.
+- [**Pagina's verdelen**](./divide-pages): Verdeel pagina's horizontaal of verticaal.
+- [**Pagina's extraheren**](./extract-pages): Sla een selectie pagina's op als nieuwe bestanden.
+- [**Pagina's verwijderen**](./delete-pages): Verwijder specifieke pagina's uit je document.
+- [**Lege pagina toevoegen**](./add-blank-page): Voeg een lege pagina toe waar je maar wilt in je PDF.
+- [**Pagina's omkeren**](./reverse-pages): Draai de volgorde van alle pagina's in je document om.
+- [**PDF roteren**](./rotate-pdf): Draai pagina's in stappen van 90 graden.
+- [**Roteren met eigen graden**](./rotate-custom): Draai pagina's met een willekeurige hoek.
+- [**N-up PDF**](./n-up-pdf): Plaats meerdere pagina's op één vel.
+- [**PDF-boekje**](./pdf-booklet): Herschik pagina's voor dubbelzijdig boekjesdrukwerk.
+- [**Combineren tot één pagina**](./combine-single-page): Plak alle pagina's aan elkaar tot één doorlopende rol.
+- [**Metadata bekijken**](./view-metadata): Bekijk de verborgen eigenschappen van je PDF.
+- [**Metadata bewerken**](./edit-metadata): Wijzig de auteur, titel en andere eigenschappen.
+- [**PDF's naar ZIP**](./pdf-to-zip): Verpak meerdere PDF-bestanden in een ZIP-archief.
+- [**PDF's vergelijken**](./compare-pdfs): Vergelijk twee PDF's naast elkaar.
+- [**PDF posteriseren**](./posterize-pdf): Splits een grote pagina in meerdere kleinere pagina's.
+
+
+
+---
+
+## Optimaliseren en herstellen
+
+Comprimeer, repareer en optimaliseer je PDF's voor betere prestaties en compatibiliteit.
+
+
+
+- [**PDF comprimeren**](./compress-pdf): Verklein de bestandsgrootte van je PDF.
+- [**PDF naar PDF/A**](./pdf-to-pdfa): Zet PDF om naar PDF/A voor langetermijnarchivering.
+- [**Paginaformaat corrigeren**](./fix-page-size): Breng alle pagina's naar een uniform formaat.
+- [**PDF lineariseren**](./linearize-pdf): Optimaliseer de PDF voor snel bekijken op het web.
+- [**Pagina-afmetingen**](./page-dimensions): Analyseer paginaformaat, oriëntatie en eenheden.
+- [**Beperkingen verwijderen**](./remove-restrictions): Verwijder wachtwoordbeveiliging en beveiligingsbeperkingen.
+- [**PDF repareren**](./repair-pdf): Herstel gegevens uit beschadigde of corrupte PDF-bestanden.
+- [**PDF rasteriseren**](./rasterize-pdf): Zet PDF om naar een PDF op afbeeldingsbasis. Maakt lagen plat en verwijdert selecteerbare tekst.
+- [**PDF rechtzetten**](./deskew-pdf): Zet scheve gescande pagina's automatisch recht met OpenCV.
+- [**Lettertype naar contour**](./font-to-outline): Zet alle lettertypen om naar vectorcontouren voor consistente weergave.
+
+
+
+---
+
+## PDF beveiligen
+
+Bescherm, versleutel en beheer de toegang tot je PDF-documenten.
+
+
+
+- [**PDF versleutelen**](./protect-pdf): Vergrendel je PDF met een wachtwoord.
+- [**PDF opschonen**](./sanitize-pdf): Verwijder metadata, aantekeningen, scripts en meer.
+- [**PDF ontsleutelen**](./unlock-pdf): Ontgrendel een PDF door de wachtwoordbeveiliging te verwijderen.
+- [**PDF platmaken**](./flatten-pdf): Maak formuliervelden en aantekeningen niet-bewerkbaar.
+- [**Metadata verwijderen**](./remove-metadata): Verwijder verborgen gegevens uit je PDF.
+- [**Rechten wijzigen**](./change-permissions): Stel gebruikersrechten voor een PDF in of wijzig ze.
+- [**Digitale handtekening**](./digital-sign-pdf): Voeg een cryptografische digitale handtekening toe met X.509-certificaten.
+- [**Handtekening valideren**](./validate-signature-pdf): Controleer digitale handtekeningen en bekijk certificaatgegevens.
+
+
diff --git a/docs/nl/tools/invert-colors.md b/docs/nl/tools/invert-colors.md
new file mode 100644
index 00000000..16ffe62a
--- /dev/null
+++ b/docs/nl/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Kleuren omkeren
+description: Keer alle kleuren in je PDF om en maak een donkere modus-versie van elk document.
+---
+
+# Kleuren omkeren
+
+Keer elke kleur in je PDF om naar het tegengestelde. Witte achtergronden worden zwart, zwarte tekst wordt wit en alle andere kleuren verschuiven naar hun complementaire waarden. Dit is de snelste manier om een "donkere modus"-versie van elke PDF te maken.
+
+## Zo werkt het
+
+1. Upload je PDF-bestand.
+2. Klik op **Kleuren omkeren** om te verwerken.
+3. De omgekeerde PDF wordt automatisch gedownload.
+
+Er zijn geen extra instellingen. De tool rendert elke pagina als afbeelding, keert alle pixelkleuren om en zet het resultaat weer samen tot een nieuwe PDF.
+
+## Functies
+
+- Kleuren omkeren met één klik voor alle pagina's
+- Verwerkt elke pagina in het document
+- Behoudt de oorspronkelijke paginaafmetingen en indeling
+- Werkt met elke PDF, ongeacht het type inhoud (tekst, afbeeldingen, gemengd)
+
+## Toepassingen
+
+- Donkere versies van studieboeken of handleidingen maken voor prettig lezen 's avonds
+- Contrastrijke versies van documenten voorbereiden voor toegankelijkheid
+- Gescande documenten omkeren die met verkeerde belichting zijn opgenomen
+- Negatieven maken van PDF's met veel afbeeldingen voor visuele analyse
+
+## Tips
+
+- Omdat de tool pagina's rastert om het effect toe te passen, is de uitvoer op afbeeldingen gebaseerd. Tekst is dan niet meer selecteerbaar of doorzoekbaar. Heb je na het omkeren doorzoekbare tekst nodig, haal het resultaat dan door een OCR-tool.
+- Gebruik voor fijnere kleurinstellingen (helderheid, contrast, verzadiging) liever de tool [Kleuren aanpassen](./adjust-colors).
+- Grote PDF's met veel pagina's kunnen langer duren, omdat elke pagina afzonderlijk wordt gerenderd en omgekeerd.
+
+## Gerelateerde tools
+
+- [Kleuren aanpassen](./adjust-colors)
+- [Achtergrondkleur](./background-color)
+- [Scannereffect](./scanner-effect)
diff --git a/docs/nl/tools/jpg-to-pdf.md b/docs/nl/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..f0c849ef
--- /dev/null
+++ b/docs/nl/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG naar PDF
+description: Zet een of meer JPG-, JPEG- en JPEG 2000-afbeeldingen om naar één PDF-bestand, rechtstreeks in je browser.
+---
+
+# JPG naar PDF
+
+Maak van JPG-afbeeldingen een nette PDF. Upload één bestand of meerdere JPG's tegelijk. Elke afbeelding wordt een pagina op volledige grootte in het uitvoerdocument.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep je JPG-bestanden erheen. Je kunt meerdere bestanden selecteren.
+2. Bekijk de geüploade bestanden. Gebruik het prullenbakpictogram om bestanden te verwijderen, of klik op **Meer bestanden toevoegen** om de lijst aan te vullen.
+3. Kies een **PDF-kwaliteit**.
+4. Klik op **Converteren naar PDF**. De tool comprimeert de afbeeldingen volgens je kwaliteitsinstelling, zet ze om met de PyMuPDF-engine en downloadt `from_jpgs.pdf`.
+
+## Opties
+
+**PDF-kwaliteit** bepaalt de compressie die op elke afbeelding wordt toegepast voordat die in de PDF wordt ingesloten:
+
+- **Hoge kwaliteit**: behoudt maximaal detail. Gebruik dit voor fotografie of drukwerk.
+- **Gemiddelde kwaliteit** (standaard): een goede balans tussen scherpte en bestandsgrootte.
+- **Lage kwaliteit**: sterke compressie voor de kleinste uitvoer.
+
+## Toepassingen
+
+- Gescande documenten die als JPG zijn opgeslagen omzetten naar één PDF voor indiening
+- Productfoto's bundelen in een catalogus voor klanten
+- Medische of satellietbeelden in JPEG 2000 omzetten naar een draagbare PDF
+- Een afdrukbaar fotoalbum maken van camera-exports
+
+## Tips
+
+- JPEG 2000-bestanden (`.jp2`, `.jpx`) worden volledig ondersteund, niet alleen standaard JPEG. Dat is handig voor medische beeldvorming en geodata.
+- Als je JPG's van een telefooncamera komen, levert Gemiddelde kwaliteit meestal een bestand op dat 40-60% kleiner is dan Hoge kwaliteit, zonder zichtbaar verschil op het scherm.
+
+## Gerelateerde tools
+
+- [Afbeeldingen naar PDF](./image-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
+- [WebP naar PDF](./webp-to-pdf)
diff --git a/docs/nl/tools/json-to-pdf.md b/docs/nl/tools/json-to-pdf.md
new file mode 100644
index 00000000..2e4759fa
--- /dev/null
+++ b/docs/nl/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON naar PDF
+description: Reconstrueer PDF-bestanden uit het JSON-formaat van BentoPDF. Zet JSON-exports terug om naar hun oorspronkelijke PDF-documenten.
+---
+
+# JSON naar PDF
+
+Reconstrueer PDF-documenten uit JSON-bestanden die eerder zijn gemaakt met de tool **PDF naar JSON** van BentoPDF. Dit is een tool voor heen-en-terug-conversie: ze neemt de gestructureerde JSON-weergave van een PDF en bouwt het oorspronkelijke document opnieuw op.
+
+::: warning
+Deze tool accepteert alleen JSON-bestanden die door de PDF naar JSON-converter van BentoPDF zijn gemaakt. Standaard JSON-bestanden uit API's, databases of andere tools worden niet ondersteund.
+:::
+
+## Ondersteunde formaten
+
+| Invoer | Beschrijving |
+| :------ | :----------------------------------------------------------------- |
+| `.json` | JSON-bestanden geëxporteerd met de tool PDF naar JSON van BentoPDF |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep een of meer JSON-bestanden erheen.
+2. De bestandslijst toont elk geselecteerd bestand met zijn grootte.
+3. Klik op **Converteren naar PDF**. De tool verwerkt alle bestanden met een Web Worker en de CPDF-engine.
+4. De uitvoer wordt gedownload als `jsons-to-pdf.zip`, met één PDF per JSON-invoerbestand.
+
+De conversie draait in een Web Worker op de achtergrond, dus de interface blijft soepel werken, ook met grote bestanden.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. De JSON-structuur bepaalt volledig de uitvoer-PDF.
+
+## Uitvoer
+
+Bij het converteren van meerdere JSON-bestanden worden de resultaten als ZIP-archief geleverd. Elke PDF heeft de naam van het bijbehorende JSON-bronbestand (bijvoorbeeld `report.json` wordt `report.pdf`).
+
+## Toepassingen
+
+- PDF's herstellen uit een back-up of archiefketen op JSON-basis
+- Een PDF via JSON laten gaan om te inspecteren en daarna weer naar PDF
+- Documenten opnieuw opbouwen na programmatische wijzigingen in de JSON-structuur
+- Controleren of een PDF naar JSON-export alle documentinhoud heeft vastgelegd door het terug om te zetten
+
+## Tips
+
+- Wil je willekeurige JSON-gegevens (zoals API-antwoorden of configuratiebestanden) omzetten naar een opgemaakte PDF, dan is de tool [Tekst naar PDF](./txt-to-pdf) een betere keuze. Plak de JSON als tekst en die wordt netjes opgemaakt weergegeven.
+- De CPDF WebAssembly-engine moet beschikbaar zijn om deze tool te laten werken. Zelfgehoste instanties hebben de CPDF WASM-bestanden nodig.
+
+## Gerelateerde tools
+
+- [Tekst naar PDF](./txt-to-pdf)
+- [Markdown naar PDF](./markdown-to-pdf)
+- [CSV naar PDF](./csv-to-pdf)
diff --git a/docs/nl/tools/linearize-pdf.md b/docs/nl/tools/linearize-pdf.md
new file mode 100644
index 00000000..d378352f
--- /dev/null
+++ b/docs/nl/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PDF lineariseren
+description: Optimaliseer PDF-bestanden voor snel bekijken op het web met progressief laden. Ook bekend als "Fast Web View"-optimalisatie.
+---
+
+# PDF lineariseren
+
+Lineariseren herstructureert een PDF zodat de eerste pagina kan worden getoond voordat het hele bestand is gedownload. Adobe noemt dit "Fast Web View". Als je PDF's op een website host of via een documentenportaal aanbiedt, voelt openen door lineariseren merkbaar sneller.
+
+## Zo werkt het
+
+1. Upload een of meer PDF-bestanden.
+2. Klik op **PDF('s) lineariseren**.
+3. Download de resultaten als ZIP-archief met alle gelineariseerde bestanden.
+
+Er zijn geen instellingen. De tool gebruikt de vlag `--linearize` van QPDF, die de interne structuur van de PDF herordent zonder de visuele inhoud te wijzigen.
+
+## Wat lineariseren doet
+
+- Herordent PDF-objecten zodat de gegevens van de eerste pagina aan het begin van het bestand staan
+- Voegt een lineariseringswoordenboek en hinttabellen toe, zodat viewers weten waar elke pagina staat
+- Maakt byte-range-verzoeken mogelijk: een browser kan alleen de eerste pagina ophalen zonder het hele bestand te downloaden
+- Ruimt de kruisverwijzingstabel op voor efficiënte willekeurige toegang
+
+## Functies
+
+- Meerdere PDF's in één keer verwerken
+- De uitvoer behoudt alle inhoud, lettertypen, afbeeldingen en interactieve elementen
+- Gebruikt QPDF (WebAssembly) voor betrouwbare, standaardconforme linearisering
+- Resultaten worden voor gemakkelijk downloaden in een ZIP verpakt
+
+## Toepassingen
+
+- PDF-rapporten hosten op een website waar gebruikers directe paginaweergave verwachten
+- PDF's insluiten in webapplicaties met viewers in de browser
+- PDF-catalogi of handleidingen publiceren die via trage mobiele verbindingen worden geopend
+- Documenten voorbereiden voor content delivery networks (CDN's) die byte-range-aanvragen ondersteunen
+
+## Tips
+
+- Lineariseer pas nadat alle andere bewerkingen klaar zijn. Elke latere wijziging (samenvoegen, pagina's toevoegen) heft de linearisering op.
+- Combineer met PDF comprimeren voor de kleinste en snelst ladende PDF's.
+- Lineariseren voegt een kleine hoeveelheid overhead toe aan de bestandsgrootte (meestal minder dan 1%).
+
+## Gerelateerde tools
+
+- [PDF comprimeren](./compress-pdf): verklein het bestand voordat je lineariseert
+- [PDF repareren](./repair-pdf): los structurele problemen op die lineariseren verhinderen
+- [Metadata verwijderen](./remove-metadata): verwijder metadata voordat je online publiceert
diff --git a/docs/nl/tools/markdown-to-pdf.md b/docs/nl/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..bddcbae8
--- /dev/null
+++ b/docs/nl/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown naar PDF
+description: Schrijf of plak Markdown en exporteer het als professioneel opgemaakte PDF met livevoorbeeld en syntaxisaccentuering.
+---
+
+# Markdown naar PDF
+
+Een volwaardige Markdown-editor met livevoorbeeld en PDF-export met één klik. Schrijf helemaal opnieuw, upload een bestaand `.md`-bestand of plak inhoud vanaf het klembord. De editor geeft je Markdown in realtime weer en exporteert een opgemaakte PDF met de ingebouwde afdrukengine van de browser.
+
+## Ondersteunde formaten
+
+| Invoer | Beschrijving |
+| :-------------- | :---------------------------- |
+| `.md`-bestanden | Uploaden met de knop Uploaden |
+| Directe invoer | Typ of plak in de editor |
+
+## Zo werkt het
+
+1. Open de tool Markdown naar PDF. De editor laadt met een gesplitste weergave: Markdown-bron links, weergegeven voorbeeld rechts.
+2. Schrijf je Markdown, plak die in of klik op **Uploaden** om een `.md`-bestand te laden.
+3. Schakel tussen lichte en donkere thema's met de themaschuif in de werkbalk.
+4. Klik op **PDF exporteren** (of druk op `Ctrl/Cmd + S`) om via het afdrukvenster van de browser een PDF te genereren.
+
+## Functies
+
+De editor ondersteunt een uitgebreide set Markdown-functies, meer dan alleen de basis:
+
+- **Standaard Markdown**: koppen, vet, cursief, links, afbeeldingen, lijsten, citaten, horizontale lijnen
+- **Codeblokken** met syntaxisaccentuering voor meer dan 15 talen (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash en meer)
+- **Mermaid-diagrammen**: stroomschema's, sequentiediagrammen, ER-diagrammen en andere Mermaid-diagramtypen worden direct in het voorbeeld weergegeven
+- **Tabellen** met standaard Markdown-tabelsyntaxis
+- **Takenlijsten** met selectievakjes
+- **Voetnoten**, **subscript**, **superscript**
+- **Definitielijsten**, **afkortingen**
+- Ondersteuning voor **emoji** (`:smile:` wordt als emoji weergegeven)
+- **Markeringen** (`==marked text==`) en **invoegingen** (`++inserted text++`)
+- **Automatische links**: gewone URL's worden omgezet in klikbare links
+- Genereren van een **inhoudsopgave**
+- **Ankerlinks** bij koppen
+
+## Toepassingen
+
+- Projectdocumentatie schrijven en een verzorgde PDF exporteren voor belanghebbenden
+- Technische rapporten maken met codevoorbeelden en Mermaid-architectuurdiagrammen
+- Een GitHub-README omzetten naar PDF voor offline gebruik of afdrukken
+- Een voorstel of specificatie opstellen met takenlijsten en tabellen
+- Een opgemaakte handout genereren uit collegeaantekeningen in Markdown
+
+## Tips
+
+- De PDF-uitvoer gebruikt de functie Afdrukken naar PDF van de browser. In Chrome kun je marges en schaal aanpassen in het afdrukvenster voordat je opslaat.
+- Mermaid-diagrammen worden in het voorbeeld weergegeven, maar hebben bij eerste gebruik soms even nodig om te starten.
+- Gebruik `Ctrl/Cmd + S` als sneltoets om te exporteren zonder naar de knop te hoeven grijpen.
+
+## Gerelateerde tools
+
+- [Tekst naar PDF](./txt-to-pdf)
+- [Word naar PDF](./word-to-pdf)
+- [JSON naar PDF](./json-to-pdf)
diff --git a/docs/nl/tools/merge-pdf.md b/docs/nl/tools/merge-pdf.md
new file mode 100644
index 00000000..549b9ceb
--- /dev/null
+++ b/docs/nl/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF samenvoegen
+description: Combineer meerdere PDF-bestanden tot één document met herschikken via slepen en neerzetten en controle op paginaniveau.
+---
+
+# PDF samenvoegen
+
+Combineer meerdere PDF-bestanden tot één document. Je kunt hele bestanden in een bepaalde volgorde samenvoegen, of overschakelen naar de Paginamodus voor gedetailleerde controle over afzonderlijke pagina's van elke geüploade PDF.
+
+## Zo werkt het
+
+1. Upload twee of meer PDF-bestanden door op het uploadgebied te klikken of ze erheen te slepen.
+2. Kies met de schakelaar bovenaan tussen **Bestandsmodus** en **Paginamodus**.
+3. Sleep in de Bestandsmodus bestanden om ze te herschikken en geef eventueel paginabereiken (bijvoorbeeld `1-3, 5`) op per bestand. Laat het bereik leeg om alle pagina's op te nemen.
+4. Sleep in de Paginamodus afzonderlijke paginaminiaturen om je exacte paginavolgorde op te bouwen.
+5. Klik op **PDF's samenvoegen** om alles in één bestand te combineren. De samengevoegde PDF wordt automatisch gedownload.
+
+## Functies
+
+- Twee samenvoegmodi: Bestandsmodus om snel hele bestanden te combineren, Paginamodus voor controle per pagina
+- Herschikken via slepen en neerzetten in beide modi met vloeiende animaties
+- Met de syntaxis voor paginabereiken (bijvoorbeeld `1-3, 5, 8-10`) kies je pagina's zonder naar de Paginamodus over te schakelen
+- Paginaminiaturen worden pas geladen als ze nodig zijn, zodat de interface soepel blijft, ook bij grote documenten
+- Geen limiet op het aantal bestanden of het totale aantal pagina's
+- Behoudt de oorspronkelijke PDF-kwaliteit zonder hercodering
+
+## Opties
+
+| Optie | Beschrijving |
+| ----------------- | -------------------------------------------------------------------------------------------------------- |
+| **Bestandsmodus** | Voeg hele bestanden samen in een eigen volgorde, met optionele paginabereikfilters per bestand |
+| **Paginamodus** | Visueel raster van alle pagina's van alle bestanden: sleep miniaturen om je exacte volgorde op te bouwen |
+| **Paginainvoer** | Tekstveld per bestand dat bereiken als `1-3, 5` accepteert om alleen specifieke pagina's op te nemen |
+
+## Toepassingen
+
+- Aparte hoofdstuk-PDF's combineren tot één boek of rapport
+- Een motivatiebrief en cv samenvoegen tot één sollicitatiedocument
+- Specifieke pagina's uit meerdere brondocumenten samenbrengen in één bestand
+- Gescande bonnetjes of facturen samenvoegen tot één archief-PDF
+- Een presentatiehandout maken van slides uit meerdere presentaties
+
+## Tips
+
+- Gebruik de Paginamodus als je pagina's van verschillende bestanden door elkaar wilt plaatsen in plaats van het ene bestand na het andere toe te voegen.
+- Je kunt na de eerste upload meer bestanden toevoegen met de knop **Meer bestanden toevoegen** zonder je huidige indeling kwijt te raken.
+- Paginabereiken beginnen bij 1, dus `1` verwijst naar de eerste pagina van dat bestand.
+
+## Gerelateerde tools
+
+- [PDF splitsen](./split-pdf)
+- [Ordenen en dupliceren](./organize-pdf)
+- [Pagina's afwisselen en mixen](./alternate-merge)
+- [Pagina's verwijderen](./delete-pages)
diff --git a/docs/nl/tools/mobi-to-pdf.md b/docs/nl/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..1aef9dc2
--- /dev/null
+++ b/docs/nl/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI naar PDF
+description: Zet MOBI e-bookbestanden om naar PDF, rechtstreeks in je browser. Gratis, privé, zonder bestandsuploads.
+---
+
+# MOBI naar PDF
+
+Zet Amazon Kindle MOBI e-books om naar PDF-documenten. MOBI-bestanden zijn gebonden aan Kindle-apparaten en -apps, waardoor ze elders lastig te lezen zijn. Door naar PDF om te zetten krijg je een draagbare versie die je op elk apparaat kunt openen of afdrukken.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------ | :------- | :-------------------------------- |
+| MOBI | `.mobi` | Kindle e-bookformaat (Mobipocket) |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep een of meer MOBI-bestanden erheen.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram, of gebruik **Meer bestanden toevoegen** om extra e-books toe te voegen.
+3. Klik op **Converteren naar PDF**. De PyMuPDF-engine leest de MOBI-structuur en geeft elke pagina weer als PDF-inhoud.
+4. Eén bestand wordt als PDF gedownload. Bij meerdere bestanden krijg je een ZIP-archief met de naam `mobi-converted.zip`.
+
+## Opties
+
+Er zijn geen extra instellingen nodig. De conversie behoudt de tekstinhoud, opmaak en ingesloten afbeeldingen van het oorspronkelijke MOBI-bestand.
+
+## Toepassingen
+
+- Op Kindle gekochte inhoud lezen op een e-reader zonder Kindle die alleen PDF ondersteunt
+- Hoofdstukken uit een e-book afdrukken voor offline studie of aantekeningen
+- Je persoonlijke e-bookbibliotheek archiveren in een universeel formaat
+- Fragmenten delen met iemand die de Kindle-app niet heeft
+
+## Tips
+
+- MOBI-bestanden met DRM-beveiliging kunnen niet worden geconverteerd. De tool werkt alleen met MOBI-bestanden zonder DRM.
+- Grote e-books met veel ingesloten afbeeldingen kunnen een paar seconden langer duren, omdat alles in de browser gebeurt.
+
+## Gerelateerde tools
+
+- [EPUB naar PDF](./epub-to-pdf)
+- [FB2 naar PDF](./fb2-to-pdf)
+- [CBZ naar PDF](./cbz-to-pdf)
diff --git a/docs/nl/tools/n-up-pdf.md b/docs/nl/tools/n-up-pdf.md
new file mode 100644
index 00000000..0d752232
--- /dev/null
+++ b/docs/nl/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: N-up PDF
+description: Plaats meerdere PDF-pagina's in een rasterindeling op één vel voor compact afdrukken.
+---
+
+# N-up PDF
+
+Plaats meerdere pagina's in een rasterindeling op één vel. Dit vermindert het aantal afgedrukte pagina's door 2, 4, 6, 8, 9 of 16 pagina's per vel te plaatsen. De tool regelt het schalen, de positionering en het optioneel instellen van het paginaformaat.
+
+## Zo werkt het
+
+1. Upload een PDF-bestand.
+2. Kies het aantal pagina's per vel (de "N"-waarde): 2, 4, 6, 8, 9 of 16.
+3. Kies het uitvoerpaginaformaat (standaard A4) en de oriëntatie.
+4. Stel optioneel de tussenruimte, randkleur en achtergrondkleur in.
+5. Klik op de verwerkingsknop. De tool schaalt elke pagina en plaatst ze naast elkaar op nieuwe vellen.
+
+## Functies
+
+- Rasterindelingen: 2-up, 4-up, 6-up, 8-up, 9-up en 16-up
+- Instelbaar uitvoerpaginaformaat en oriëntatie
+- Optionele tussenruimte tussen de pagina's
+- Instellingen voor achtergrond- en randkleur
+- Behoudt de beeldverhouding van de oorspronkelijke pagina's bij het schalen
+
+## Opties
+
+| Optie | Beschrijving |
+| -------------------- | --------------------------------------------------------------------- |
+| **Pagina's per vel** | Aantal oorspronkelijke pagina's per uitvoerpagina (2, 4, 6, 8, 9, 16) |
+| **Paginaformaat** | Formaat van het uitvoervel (A4, Letter, Legal, enz.) |
+| **Oriëntatie** | Staand of liggend voor het uitvoervel |
+| **Tussenruimte** | Ruimte in punten tussen de pagina's |
+| **Achtergrondkleur** | Vulkleur voor de achtergrond van het uitvoervel |
+| **Randkleur** | Kleur voor de randen rond elke pagina |
+
+## Toepassingen
+
+- Handouts afdrukken met 4 slides per pagina om papier te besparen
+- Studieoverzichten maken met meerdere naslagpagina's op één vel
+- Compacte documentarchieven maken om weg te leggen
+- Miniatuuroverzichten van een lang document genereren
+
+## Tips
+
+- Liggend werkt vaak beter voor 2-up-indelingen, terwijl staand meestal het beste is voor 4-up en hoger.
+- Meer tussenruimte verbetert de leesbaarheid, maar verkleint de beschikbare ruimte voor elke pagina.
+- Voor de omgekeerde bewerking (één pagina splitsen in meerdere) zie [PDF posteriseren](./posterize-pdf).
+
+## Gerelateerde tools
+
+- [PDF posteriseren](./posterize-pdf)
+- [PDF-boekje](./pdf-booklet)
+- [Combineren tot één pagina](./combine-single-page)
diff --git a/docs/nl/tools/ocr-pdf.md b/docs/nl/tools/ocr-pdf.md
new file mode 100644
index 00000000..ab98f21b
--- /dev/null
+++ b/docs/nl/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF OCR
+description: Maak gescande PDF's doorzoekbaar en kopieerbaar met Tesseract OCR, met ondersteuning voor meerdere talen en tekenfiltering.
+---
+
+# PDF OCR
+
+Maak van gescande documenten doorzoekbare, kopieerbare PDF's. De tool gebruikt Tesseract OCR om tekst in afbeeldingen te herkennen en legt een onzichtbare tekstlaag over de oorspronkelijke pagina's, zodat het uiterlijk behouden blijft en de inhoud volledig doorzoekbaar wordt.
+
+## Zo werkt het
+
+1. Upload een gescande PDF of een PDF op afbeeldingsbasis.
+2. Kies een of meer talen uit het document in de doorzoekbare talenlijst.
+3. Pas optioneel de geavanceerde instellingen aan (resolutie, binarisatie, whitelist).
+4. Klik op **OCR starten** en volg de voortgang in de realtime voortgangsbalk.
+5. Bekijk na afloop de geëxtraheerde tekst en download de doorzoekbare PDF of een gewoon `.txt`-bestand.
+
+## Functies
+
+- OCR in meerdere talen met een doorzoekbare taalkiezer
+- Onzichtbare tekstlaag behoudt het oorspronkelijke uiterlijk van het document
+- Realtime voortgangsbalk en logweergave tijdens het verwerken
+- Resultaten downloaden als doorzoekbare PDF of als tekstbestand
+- Geëxtraheerde tekst direct naar het klembord kopiëren
+- Drie resolutieniveaus om snelheid en nauwkeurigheid af te wegen
+
+## Opties
+
+| Instelling | Waarden | Standaard | Doel |
+| --------------------------------- | ------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------- |
+| **Resolutie** | Standaard (192 DPI), Hoog (288 DPI), Ultra (384 DPI) | Hoog | Hogere resolutie verbetert de nauwkeurigheid bij kleine tekst, maar duurt langer |
+| **Afbeelding binariseren** | Aan / Uit | Uit | Verbetert het contrast van nette scans door om te zetten naar zwart-wit |
+| **Voorinstelling tekenwhitelist** | Geen, Alfanumeriek, Getallen + valuta, Alleen letters, Alleen getallen, Factuur, Formulieren, Aangepast | Geen | Beperkt de herkende tekens om de nauwkeurigheid voor specifieke documenttypen te verbeteren |
+| **Tekenwhitelist** | Vrije tekst | Leeg | Handmatige tekenset wanneer de voorinstelling op Aangepast staat |
+
+## Toepassingen
+
+- Gescande contracten en facturen doorzoekbaar maken zodat je er met Ctrl+F in kunt zoeken
+- Tekst halen uit gefotografeerde documenten of oude papieren archieven
+- Bonnetjes verwerken met de voorinstelling Factuur om bedragen en datums nauwkeurig vast te leggen
+- Toegankelijke PDF's maken van scans die alleen uit afbeeldingen bestaan, voor naleving van eisen
+- Tekstinhoud in bulk halen uit gescande boeken of handleidingen
+
+## Tips
+
+- Kies meerdere talen als je document gemengde talen bevat (bijvoorbeeld Engelse koppen met Japanse lopende tekst).
+- Gebruik de binarisatie-optie voor documenten met vervaagde tekst of weinig contrast: dit kan de herkenning flink verbeteren.
+- De whitelist-voorinstellingen Factuur en Formulieren verminderen valse herkenningen bij gestructureerde documenten sterk doordat irrelevante tekenvormen worden genegeerd.
+
+## Gerelateerde tools
+
+- [Tabellen extraheren](./extract-tables)
+- [PDF samenvoegen](./merge-pdf)
+- [PDF comprimeren](./compress-pdf)
diff --git a/docs/nl/tools/odg-to-pdf.md b/docs/nl/tools/odg-to-pdf.md
new file mode 100644
index 00000000..6037fbf9
--- /dev/null
+++ b/docs/nl/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG naar PDF
+description: Zet LibreOffice Draw-bestanden (ODG) om naar PDF in je browser. Gratis, zonder upload, volledig privé.
+---
+
+# ODG naar PDF
+
+Zet OpenDocument Graphics-bestanden om naar PDF. ODG is het eigen formaat van LibreOffice Draw en wordt gebruikt voor diagrammen, stroomschema's en vectorillustraties. Door naar PDF om te zetten zijn deze tekeningen gemakkelijk te delen, af te drukken en in andere documenten in te sluiten.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :-------------------- | :------- | :------------------------------------------- |
+| OpenDocument Graphics | `.odg` | LibreOffice Draw / OpenOffice Draw-bestanden |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep je ODG-bestanden erheen. Je kunt meerdere bestanden tegelijk toevoegen.
+2. Bekijk de bestandslijst. Verwijder bestanden met het prullenbakpictogram, of klik op **Meer bestanden toevoegen** om meer tekeningen toe te voegen.
+3. Klik op **Converteren naar PDF**. Een engine op basis van LibreOffice laadt in de browser en converteert elk ODG-bestand, met behoud van vectorafbeeldingen, vormen en tekst.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden leveren een ZIP-archief op met de naam `odg-to-pdf.zip`.
+
+## Opties
+
+Er zijn geen extra instellingen nodig. De conversie behoudt de oorspronkelijke paginaafmetingen, vormen, verbindingslijnen en tekstvakken uit de ODG-bron.
+
+## Toepassingen
+
+- LibreOffice Draw-diagrammen delen met klanten die LibreOffice niet hebben geïnstalleerd
+- Stroomschema's en netwerkdiagrammen afdrukken die in Draw zijn gemaakt
+- ODG-illustraties als ingesloten PDF opnemen in een rapport of presentatie
+- Technische tekeningen archiveren in een formaat dat tientallen jaren leesbaar blijft
+
+## Tips
+
+- Vectorelementen blijven vectoren in de PDF-uitvoer, dus het resultaat schaalt netjes naar elk afdrukformaat.
+- De LibreOffice-engine heeft bij eerste gebruik even nodig om te starten. Conversies daarna in dezelfde sessie gaan sneller.
+
+## Gerelateerde tools
+
+- [ODS naar PDF](./ods-to-pdf)
+- [ODP naar PDF](./odp-to-pdf)
+- [VSD naar PDF](./vsd-to-pdf)
diff --git a/docs/nl/tools/odp-to-pdf.md b/docs/nl/tools/odp-to-pdf.md
new file mode 100644
index 00000000..5326267b
--- /dev/null
+++ b/docs/nl/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP naar PDF
+description: Zet LibreOffice Impress-presentaties (ODP) om naar PDF in je browser. Gratis, privé, zonder upload.
+---
+
+# ODP naar PDF
+
+Zet OpenDocument Presentation-bestanden om naar PDF. ODP is het eigen formaat van LibreOffice Impress en een standaardexport uit Google Slides. Presentaties omzetten naar PDF betekent dat iedereen ze kan bekijken zonder presentatiesoftware, en de slides worden netjes afgedrukt.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------------------------ | :------- | :----------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / Google Slides-export |
+
+## Zo werkt het
+
+1. Klik op het uploadgebied of sleep je ODP-bestanden erheen. Je kunt meerdere presentaties tegelijk selecteren.
+2. Bekijk de bestandslijst. Verwijder bestanden met het prullenbakpictogram, of gebruik **Meer bestanden toevoegen** om extra presentaties toe te voegen.
+3. Klik op **Converteren naar PDF**. De engine op basis van LibreOffice verwerkt elke presentatie en maakt een PDF waarin elke slide een pagina wordt.
+4. Eén bestand wordt als PDF gedownload. Meerdere bestanden worden geleverd in een ZIP-archief met de naam `odp-to-pdf.zip`.
+
+## Opties
+
+Er zijn geen instellingen. Elke slide wordt weergegeven op zijn oorspronkelijke afmetingen, met behoud van tekst, afbeeldingen, vormen en slideachtergronden.
+
+## Toepassingen
+
+- Een presentatie als handout-PDF onder het publiek verspreiden
+- Google Slides-exports delen met mensen die liever PDF dan ODP gebruiken
+- Conferentiepresentaties en colleges archiveren in een alleen-lezenformaat
+- Slidepresentaties afdrukken voor workshops op locatie
+
+## Tips
+
+- Slideovergangen en animaties zijn alleen visuele functies en gaan niet mee naar PDF, maar alle statische inhoud wordt correct weergegeven.
+- Sprekersnotities zijn niet opgenomen in de PDF-uitvoer. Heb je notities nodig, exporteer ze dan apart vanuit je presentatiesoftware.
+- Net als de andere tools op basis van LibreOffice wordt de engine bij eerste gebruik geladen en blijft die voor de sessie in de cache.
+
+## Gerelateerde tools
+
+- [ODG naar PDF](./odg-to-pdf)
+- [ODS naar PDF](./ods-to-pdf)
+- [PUB naar PDF](./pub-to-pdf)
diff --git a/docs/nl/tools/ods-to-pdf.md b/docs/nl/tools/ods-to-pdf.md
new file mode 100644
index 00000000..ebebe5c8
--- /dev/null
+++ b/docs/nl/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS naar PDF
+description: Zet LibreOffice Calc-spreadsheets (ODS) in je browser om naar PDF. Gratis, privé, zonder aanmelding.
+---
+
+# ODS naar PDF
+
+Zet OpenDocument Spreadsheet-bestanden om naar PDF. ODS is het eigen formaat van LibreOffice Calc en een veelgebruikte export uit Google Sheets. Deze tool zet je spreadsheetgegevens, opmaak en grafieken om in een gepagineerde PDF die je kunt afdrukken of delen.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :----------------------- | :------- | :------------------------------------------ |
+| OpenDocument Spreadsheet | `.ods` | LibreOffice Calc / export uit Google Sheets |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je ODS-bestanden erheen. Meerdere bestanden worden ondersteund.
+2. Controleer de bestandslijst. Gebruik het prullenbakpictogram om bestanden te verwijderen, of klik op **Meer bestanden toevoegen** om de reeks uit te breiden.
+3. Klik op **Converteren naar PDF**. De op LibreOffice gebaseerde engine wordt in de browser geladen en zet elke spreadsheet om in PDF-pagina's.
+4. Een enkele spreadsheet wordt gedownload als PDF. Meerdere bestanden worden gebundeld in `ods-to-pdf.zip`.
+
+## Opties
+
+Er is geen configuratie nodig. De converter past de bestaande afdrukindeling, celopmaak en kolombreedtes van de spreadsheet toe op de PDF-uitvoer.
+
+## Toepassingen
+
+- Een budget of rapport uit LibreOffice Calc delen met iemand die alleen PDF's accepteert
+- Een als ODS gedownloade export uit Google Sheets afdrukken
+- Financiële gegevens archiveren in een niet-bewerkbaar formaat
+- Formulieren of urenstaten op ODS-basis indienen als documenten met vaste opmaak
+
+## Tips
+
+- Als je spreadsheet meerdere bladen heeft, worden alle bladen in de PDF opgenomen.
+- Zeer brede spreadsheets kunnen horizontaal over meerdere PDF-pagina's lopen. Pas de kolombreedtes in het bronbestand aan voordat je converteert als de indeling belangrijk is.
+- De LibreOffice-engine wordt bij het eerste gebruik geïnitialiseerd. Volgende conversies in dezelfde sessie gaan sneller.
+
+## Gerelateerde tools
+
+- [ODG naar PDF](./odg-to-pdf)
+- [ODP naar PDF](./odp-to-pdf)
+- [XML naar PDF](./xml-to-pdf)
diff --git a/docs/nl/tools/odt-to-pdf.md b/docs/nl/tools/odt-to-pdf.md
new file mode 100644
index 00000000..c6372e64
--- /dev/null
+++ b/docs/nl/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT naar PDF
+description: Zet OpenDocument Text-bestanden (ODT) in je browser om naar PDF met een engine op basis van LibreOffice.
+---
+
+# ODT naar PDF
+
+Zet OpenDocument Text-bestanden om naar PDF. ODT is het eigen formaat van LibreOffice Writer, Apache OpenOffice en andere open-source tekstverwerkers. Deze tool gebruikt een LibreOffice-engine in de browser voor nauwkeurige conversies die opmaak, tabellen, afbeeldingen en stijlen behouden.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :---------------- | :-------- |
+| OpenDocument Text | `.odt` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep een of meer ODT-bestanden erheen.
+2. Controleer de bestandslijst. Voeg meer bestanden toe of verwijder ongewenste bestanden.
+3. Klik op **Converteren naar PDF**. De LibreOffice-engine wordt geïnitialiseerd (een voortgangsindicator toont de laadstatus), waarna elk bestand wordt geconverteerd.
+4. Een enkel bestand wordt direct als PDF gedownload. Meerdere bestanden worden gebundeld in `odt-converted.zip`.
+
+## Opties
+
+Deze tool heeft geen extra configuratie. De conversie behoudt de opmaak van het oorspronkelijke document zo goed mogelijk.
+
+## Uitvoer
+
+| Aantal invoerbestanden | Uitvoer |
+| :--------------------- | :-------------------------------------------------------- |
+| 1 bestand | Eén PDF-download (bijv. `document.pdf`) |
+| 2+ bestanden | ZIP-archief (`odt-converted.zip`) met één PDF per bestand |
+
+## Toepassingen
+
+- LibreOffice Writer-documenten omzetten naar PDF om te delen met Microsoft Office-gebruikers
+- Afdrukklare PDF's maken van wetenschappelijke artikelen in OpenDocument-formaat
+- Een map met ODT-sjablonen in één keer omzetten naar PDF's voor distributie
+- PDF's genereren uit ODT-bestanden die door geautomatiseerde documentsystemen zijn gemaakt
+
+## Tips
+
+- De LibreOffice-engine wordt bij het eerste gebruik geladen en bewaard voor volgende conversies. Het eerste laden duurt enkele seconden, daarna gaan conversies snel.
+- Complexe documenten met ingebedde OLE-objecten of ongebruikelijke lettertypen kunnen iets anders worden weergegeven dan in LibreOffice op de desktop. Test met een voorbeeld voordat je een hele reeks converteert.
+- Gebruik voor Word-documenten (`.doc`, `.docx`) liever de tool [Word naar PDF](./word-to-pdf), die ook de LibreOffice-engine gebruikt maar Microsoft-formaten rechtstreeks accepteert.
+
+## Gerelateerde tools
+
+- [Word naar PDF](./word-to-pdf)
+- [RTF naar PDF](./rtf-to-pdf)
+- [Tekst naar PDF](./txt-to-pdf)
diff --git a/docs/nl/tools/organize-pdf.md b/docs/nl/tools/organize-pdf.md
new file mode 100644
index 00000000..9e64291c
--- /dev/null
+++ b/docs/nl/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Dupliceren & Organiseren
+description: Wijzig de volgorde van PDF-pagina's, dupliceer en verwijder ze met miniaturen die je kunt slepen en een eigen invoer voor de paginavolgorde.
+---
+
+# Dupliceren & Organiseren
+
+Herschik, dupliceer en verwijder pagina's van een PDF met een visuele sleep-en-neerzetinterface. Elke pagina verschijnt als miniatuur die je kunt verplaatsen, klonen of verwijderen voordat je het resultaat als nieuw bestand opslaat.
+
+## Hoe het werkt
+
+1. Upload één PDF-bestand.
+2. De tool toont een raster met miniaturen van elke pagina.
+3. Sleep miniaturen om pagina's te herschikken, klik op de groene dupliceerknop om een pagina te klonen, of klik op de rode verwijderknop om er een te verwijderen.
+4. Je kunt ook een eigen paginavolgorde invoeren in het tekstveld (bijv. `3, 1, 2, 4`) en op **Toepassen** klikken om alle pagina's in één keer te herschikken.
+5. Klik op de verwerkknop om de gereorganiseerde PDF te maken en te downloaden.
+
+## Functies
+
+- Pagina's herschikken met slepen en neerzetten, met geanimeerde overgangen
+- Dupliceer- en verwijderknoppen per pagina
+- Eigen invoer voor de paginavolgorde voor nauwkeurig herschikken
+- Paginanummers die na elke wijziging automatisch worden bijgewerkt
+- Voorkomt dat de laatste resterende pagina wordt verwijderd
+
+## Toepassingen
+
+- Een verkeerd geplaatste pagina in een rapport naar de juiste plek verplaatsen
+- Een formulierpagina dupliceren zodat je meerdere blanco exemplaren in één bestand hebt
+- Concept- of plaatshouderpagina's verwijderen voordat je een document verspreidt
+- De paginavolgorde omkeren of door elkaar halen om af te drukken
+- Een eigen paginavolgorde samenstellen zonder losse bestanden opnieuw samen te voegen
+
+## Tips
+
+- Het veld voor de eigen paginavolgorde verwacht oorspronkelijke paginanummers gescheiden door komma's. Elke pagina moet precies één keer voorkomen: geen weglatingen of dubbelen.
+- Na het dupliceren van een pagina verwijzen beide kopieën naar dezelfde oorspronkelijke pagina-index. Elke kopie kun je los van de andere herschikken.
+- Voor bulkbewerkingen over meerdere bestanden of geavanceerdere werkwijzen kun je beter de [PDF-multitool](./pdf-multi-tool) gebruiken.
+
+## Gerelateerde tools
+
+- [PDF samenvoegen](./merge-pdf)
+- [Pagina's verwijderen](./delete-pages)
+- [PDF-multitool](./pdf-multi-tool)
+- [Paginavolgorde omkeren](./reverse-pages)
diff --git a/docs/nl/tools/page-dimensions.md b/docs/nl/tools/page-dimensions.md
new file mode 100644
index 00000000..37c16fa7
--- /dev/null
+++ b/docs/nl/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Paginaafmetingen
+description: Analyseer paginaformaten, oriëntaties, beeldverhoudingen en rotatie van PDF's. Herken documenten met gemengde formaten en exporteer de gegevens naar CSV.
+---
+
+# Paginaafmetingen
+
+Een diagnosetool die elke pagina van je PDF leest en de exacte afmetingen, oriëntatie, standaardformaatnaam, beeldverhouding, oppervlakte en rotatie weergeeft. Handig om pagina's met gemengde formaten op te sporen vóór het afdrukken, of om de eigenschappen van een ontvangen PDF vast te leggen.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand. De analyse start automatisch, er hoeft geen knop te worden ingedrukt.
+2. Een overzichtspaneel toont het totaal aantal pagina's, het aantal unieke paginaformaten en of het document gemengde formaten bevat.
+3. Bekijk de volledige resultatentabel met details per pagina.
+4. Schakel de weergave-eenheden om tussen punten, inches, millimeters of pixels.
+5. Klik op **Exporteren naar CSV** om de gegevens op te slaan.
+
+## Gerapporteerde velden
+
+| Kolom | Beschrijving |
+| ---------------- | ------------------------------------------------------- |
+| Pagina # | Opeenvolgend paginanummer |
+| Afmetingen | Breedte x hoogte in de gekozen eenheid |
+| Standaardformaat | Gevonden naam (A4, Letter, enz.) of "Aangepast" |
+| Oriëntatie | Staand of liggend |
+| Beeldverhouding | Verhouding tussen breedte en hoogte als decimaal |
+| Oppervlakte | Paginaoppervlakte in de gekozen eenheid in het kwadraat |
+| Rotatie | Paginarotatie in graden |
+
+## Functies
+
+- Automatische herkenning van standaard papierformaten (A3, A4, A5, Letter, Legal, Tabloid en meer)
+- Waarschuwing bij documenten met gemengde formaten, met een overzicht van welke formaten voorkomen en hoeveel pagina's elk gebruikt
+- Eenheden omrekenen tussen punten, inches, millimeters en pixels (bij 96 PPI)
+- CSV-export voor gebruik in spreadsheets of documentatiesystemen
+
+## Toepassingen
+
+- Controleren of alle pagina's A4 zijn voordat je een document naar een drukkerij stuurt
+- Uitzoeken waarom een samengevoegde PDF op bepaalde pagina's met onverwachte marges wordt afgedrukt
+- De paginaindeling van een groot PDF-archief vastleggen voor metadata
+- Geroteerde pagina's opsporen die gecorrigeerd moeten worden
+
+## Tips
+
+- Als het overzicht "Gemengde formaten" toont, gebruik dan de tool Paginagrootte Fiksen om te standaardiseren voordat je afdrukt.
+- Het rotatieveld helpt pagina's te herkennen die correct worden weergegeven maar een rotatiekenmerk hebben dat niet nul is, wat in sommige werkwijzen problemen kan geven.
+
+## Gerelateerde tools
+
+- [Paginagrootte corrigeren](./fix-page-size): pagina's standaardiseren na het opsporen van gemengde formaten
+- [PDF comprimeren](./compress-pdf): de PDF optimaliseren nadat paginaproblemen zijn opgelost
+- [PDF roteren](./rotate-pdf): geroteerde pagina's corrigeren
diff --git a/docs/nl/tools/page-numbers.md b/docs/nl/tools/page-numbers.md
new file mode 100644
index 00000000..c5f053da
--- /dev/null
+++ b/docs/nl/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Paginanummers
+description: Voeg aanpasbare paginanummers toe op elke positie van je PDF-pagina's, met instelbaar lettertype, formaat en kleur.
+---
+
+# Paginanummers
+
+Voeg zichtbare paginanummers toe aan elke pagina van je PDF. Jij kiest de positie, notatie, lettergrootte en kleur, de rest doet de tool.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. Stel de paginanummers in via het optiepaneel dat verschijnt.
+3. Klik op **Paginanummers toevoegen** om te verwerken.
+4. De genummerde PDF wordt automatisch gedownload.
+
+## Opties
+
+- **Positie**: kies waar de paginanummers verschijnen: onder midden, linksonder, rechtsonder, boven midden, linksboven of rechtsboven.
+- **Notatie**: kies tussen eenvoudige nummering (1, 2, 3...) of de notatie "pagina X van Y" (1 / 5, 2 / 5...).
+- **Lettergrootte**: stel de grootte van de tekst van het paginanummer in. Standaard 12.
+- **Kleur**: kies met de kleurkiezer een willekeurige kleur voor de tekst van het paginanummer.
+
+## Functies
+
+- Zes positieopties die alle hoeken en middenposities dekken
+- Twee nummeringsnotaties: eenvoudig opeenvolgend of "pagina X van Y"
+- Aanpasbare lettergrootte van 6 tot 72 punten
+- Volledige kleurkiezer voor de tekstkleur
+- Automatische marge-afhandeling die de nummers binnen veilige zones houdt, ongeacht het paginaformaat
+
+## Toepassingen
+
+- Documenten voorbereiden voor druk die zichtbare paginaverwijzingen nodig hebben
+- Paginanummers toevoegen aan een samengevoegde PDF uit meerdere bronbestanden
+- Handouts van presentaties nummeren voordat je ze verspreidt
+- Opeenvolgende nummering toevoegen aan juridische documenten of contracten
+
+## Tips
+
+- De notatie "pagina X van Y" is handig voor documenten waarbij lezers de totale lengte moeten weten, zoals voorstellen of rapporten.
+- Als je verschillende nummeringsstijlen nodig hebt voor verschillende secties (zoals Romeinse cijfers voor voorwerk), gebruik dan de tool [Paginalabels toevoegen](./add-page-labels).
+
+## Gerelateerde tools
+
+- [Paginalabels toevoegen](./add-page-labels)
+- [Bates-nummering](./bates-numbering)
+- [Koptekst en voettekst](./header-footer)
diff --git a/docs/nl/tools/pdf-booklet.md b/docs/nl/tools/pdf-booklet.md
new file mode 100644
index 00000000..0ca67d58
--- /dev/null
+++ b/docs/nl/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: PDF-boekje
+description: Herschik PDF-pagina's in boekjesvolgorde (nietjesband) om te vouwen en te nieten tot een fysiek boekje.
+---
+
+# PDF-boekje
+
+Herschik de pagina's van een PDF in de volgorde voor een boekje. Als je dubbelzijdig afdrukt en de vellen doormidden vouwt, staan de pagina's in de juiste leesvolgorde. Dit is de indeling voor boekjes met nietjesband en zines.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Stel het boekje in: uitvoerpaginaformaat en oriëntatie.
+3. Klik op **Voorbeeld genereren** om te zien hoe de pagina's op elk vel worden geplaatst.
+4. Bekijk het voorbeeld, dat elk fysiek vel toont met de voor- en achterzijde.
+5. Klik op **Downloaden** om de PDF in boekjesvolgorde op te slaan.
+
+## Functies
+
+- Automatisch herordenen van pagina's voor nietjesband
+- Instelbaar uitvoerpaginaformaat
+- Visueel voorbeeld van de boekjesindeling vóór het downloaden
+- Verwerkt een oneven aantal pagina's door waar nodig blanco pagina's in te voegen
+- Schaalt de bronpagina's naar het formaat van het boekjesvel
+
+## Toepassingen
+
+- Afdrukbare boekjes of zines maken van een gewone PDF
+- Congresprogramma's of evenementgidsen voorbereiden voor intern afdrukken
+- Gevouwen wenskaarten of kleine catalogi maken
+- Dichtbundels of kleine uitgaven voorbereiden om met de hand te binden
+
+## Tips
+
+- Het aantal pagina's van je bron-PDF is idealiter een veelvoud van 4 voor een net boekje. Is dat niet zo, dan worden automatisch blanco pagina's toegevoegd om het laatste vel te vullen.
+- Druk de uitvoer dubbelzijdig af met de printerinstelling "omslaan over korte zijde", vouw dan alle vellen samen en niet ze op de rug.
+- Als je alleen meerdere pagina's op één vel wilt plaatsen zonder boekjesvolgorde, gebruik dan [N-up PDF](./n-up-pdf).
+
+## Gerelateerde tools
+
+- [N-up PDF](./n-up-pdf)
+- [PDF roteren](./rotate-pdf)
+- [Blanco pagina toevoegen](./add-blank-page)
diff --git a/docs/nl/tools/pdf-layers.md b/docs/nl/tools/pdf-layers.md
new file mode 100644
index 00000000..bb3280f6
--- /dev/null
+++ b/docs/nl/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: PDF OCG-lagen
+description: Bekijk, schakel, voeg toe en verwijder Optional Content Group-lagen (OCG) in een PDF-document.
+---
+
+# PDF OCG-lagen
+
+Beheer de Optional Content Groups (OCG), vaak "lagen" genoemd, in een PDF. Je kunt de zichtbaarheid van lagen schakelen, nieuwe lagen toevoegen (ook geneste onderliggende lagen), lagen verwijderen en de gewijzigde PDF opslaan.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Klik op de verwerkknop om het document met de PyMuPDF-engine te laden.
+3. De tool toont alle bestaande lagen met hun zichtbaarheid, vergrendelingsstatus en nestinghiërarchie.
+4. Schakel de selectievakjes om lagen te tonen of te verbergen. Vergrendelde lagen kunnen niet worden geschakeld.
+5. Voeg nieuwe lagen op het hoogste niveau toe door een naam te typen en op de toevoegknop te klikken, of voeg onderliggende lagen toe onder een bestaande bovenliggende laag.
+6. Verwijder lagen die je niet meer nodig hebt.
+7. Klik op **Opslaan** om de gewijzigde PDF met je laagwijzigingen te downloaden.
+
+## Functies
+
+- Toont de laaghiërarchie met de juiste inspringing voor geneste lagen
+- Zichtbaarheid van lagen aan of uit schakelen
+- Indicator voor vergrendelde lagen voorkomt onbedoelde wijzigingen
+- Lagen op het hoogste niveau of onderliggende lagen toevoegen met eigen namen
+- Afzonderlijke lagen verwijderen
+- Slaat alle wijzigingen op in een nieuw PDF-bestand
+
+## Toepassingen
+
+- De zichtbaarheid van markeringslagen in architectuur- of engineeringtekeningen schakelen
+- Nieuwe annotatielagen toevoegen aan een ontwerpdocument met meerdere lagen
+- Verouderde lagen uit een sjabloon verwijderen voordat je het verspreidt
+- Nagaan welke lagen er in een complexe PDF van een derde zitten
+
+## Tips
+
+- Als de PDF geen lagen heeft, toont de tool een lege weergave met een uitnodiging om er een toe te voegen. Niet alle PDF's gebruiken OCG-lagen: ze komen het meest voor in CAD-exports en ontwerpbestanden.
+- Onderliggende lagen worden visueel ingesprongen onder hun bovenliggende laag. Je kunt lagen op elke diepte nesten.
+- Vergrendelde lagen worden getoond met een slotpictogram en hun selectievakjes zijn uitgeschakeld. Deze vergrendelingen zijn ingesteld door de maker van de PDF.
+
+## Gerelateerde tools
+
+- [Metadata weergeven](./view-metadata)
+- [Metadata bewerken](./edit-metadata)
+- [Dupliceren en organiseren](./organize-pdf)
diff --git a/docs/nl/tools/pdf-multi-tool.md b/docs/nl/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..fe93bc24
--- /dev/null
+++ b/docs/nl/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: PDF-multitool
+description: Een alles-in-één paginabeheerder om PDF-pagina's samen te voegen, te splitsen, te roteren, te dupliceren, te verwijderen, te herschikken en van formaat te veranderen.
+---
+
+# PDF-multitool
+
+Een gezamenlijke werkruimte voor elke bewerking op paginaniveau. Upload een of meer PDF's en werk met al hun pagina's in één visueel raster. Roteer, herschik, dupliceer en verwijder pagina's, voeg PDF's, afbeeldingen en blanco pagina's in, nummer opnieuw, wijzig het formaat en splits het resultaat, allemaal zonder de tool te verlaten.
+
+## Hoe het werkt
+
+1. Klik op **Bestanden selecteren** of sleep bestanden naar het uploadgebied. Meerdere bestanden worden ondersteund en ze worden samengevoegd in de volgorde waarin je ze uploadt.
+2. Alle pagina's verschijnen met miniaturen in een scrollbaar raster.
+3. Klik op een pagina om die te selecteren. Gebruik Shift-klik voor een reeks en Cmd/Ctrl-klik om losse pagina's aan de selectie toe te voegen of eruit te halen.
+4. Gebruik de werkbalk of klik met de rechtermuisknop op een pagina voor paginabewerkingen.
+5. Klik op **PDF exporteren** om het eindresultaat te downloaden.
+
+## Functies
+
+- **Samenvoegen**: upload meerdere PDF's en afbeeldingen en ze worden automatisch tot één document gecombineerd
+- **Herschikken**: sleep pagina's om de volgorde te wijzigen, of keer de volgorde van het hele document om
+- **Roteren**: roteer geselecteerde pagina's naar links of rechts in stappen van 90 graden
+- **Dupliceren**: kopieer geselecteerde pagina's en plaats de kopieën er direct achter
+- **Verwijderen**: verwijder de geselecteerde pagina's
+- **Invoegen**: voeg pagina's toe uit een andere PDF of afbeelding, een blanco pagina of pagina's van het klembord, of wissel de pagina's van een tweede PDF af met de huidige
+- **Vervangen**: vervang een pagina door de eerste pagina van een andere PDF
+- **Knippen, kopiëren en plakken**: verplaats of kopieer pagina's binnen het document
+- **Extraheren**: download de geselecteerde pagina's als PDF of als afbeeldingen
+- **Paginanummers**: stel paginalabels in zoals i, ii, iii of A-1, A-2 voor een reeks pagina's
+- **Paginaformaat**: pas pagina's aan aan een standaard papierformaat of een eigen formaat
+- **Splitsen**: verdeel het document op paginabereik, in oneven en even pagina's, per pagina, op bladwijzers, per N pagina's of op bestandsgrootte
+- **Ongedaan maken / Opnieuw**: elke paginabewerking kun je ongedaan maken en opnieuw uitvoeren
+- Herstelt beschadigde PDF's automatisch vóór het laden
+
+## Sneltoetsen
+
+| Actie | Sneltoets |
+| -------------------------- | ----------------------------- |
+| Rechtsom / linksom roteren | R / Shift+R |
+| Alles selecteren | Cmd/Ctrl+A |
+| Knippen, kopiëren, plakken | Cmd/Ctrl+X, C, V |
+| Dupliceren | Cmd/Ctrl+D |
+| Verwijderen | Delete of Backspace |
+| Ongedaan maken / Opnieuw | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Selectie verplaatsen | Pijltjestoetsen, Home, End |
+
+## Toepassingen
+
+- Een eigen document samenstellen uit pagina's van meerdere bron-PDF's
+- Een gescand document opschonen door blanco pagina's te verwijderen, zijwaarts gescande pagina's te roteren en secties te herschikken
+- Een grote PDF bij hoofdstukgrenzen splitsen met behulp van de bladwijzers
+- Snel bewerken op paginaniveau zonder een volledige PDF-editor nodig te hebben
+
+## Tips
+
+- De geschiedenis voor ongedaan maken en opnieuw volgt elke paginabewerking. Gebruik die gerust: je kunt je werk niet per ongeluk vernietigen.
+- Gebruik **Insert > From File** of sleep op elk moment meer PDF's of afbeeldingen naar het paginaraster om ze aan het document toe te voegen.
+- Voor eenvoudige taken met samenvoegen of splitsen zijn de aparte tools [PDF samenvoegen](./merge-pdf) of [PDF splitsen](./split-pdf) misschien sneller. De Multi-tool komt tot zijn recht wanneer je in één sessie meerdere bewerkingen nodig hebt.
+
+## Gerelateerde tools
+
+- [PDF samenvoegen](./merge-pdf)
+- [PDF splitsen](./split-pdf)
+- [Dupliceren en organiseren](./organize-pdf)
+- [PDF roteren](./rotate-pdf)
diff --git a/docs/nl/tools/pdf-to-bmp.md b/docs/nl/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..578a47fc
--- /dev/null
+++ b/docs/nl/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF naar BMP
+description: Zet PDF-pagina's om naar ongecomprimeerde BMP-afbeeldingen. Handig voor verouderde systemen en drukwerkprocessen die bitmapinvoer vereisen.
+---
+
+# PDF naar BMP
+
+Zet elke pagina van een PDF om in een BMP-afbeelding (Bitmap). BMP is een ongecomprimeerd formaat, dus de uitvoer is pixelperfect zonder kwaliteitsverlies, maar de bestanden zijn groot.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Klik op **Converteren** om het bestand te verwerken.
+3. Een enkel `.bmp`-bestand of een ZIP-archief wordt automatisch gedownload.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Pagina's worden met een vaste schaal van 2x weergegeven, wat afbeeldingen oplevert met ongeveer dubbele afmetingen van de oorspronkelijke PDF-pagina.
+
+## Uitvoerformaat
+
+- **Eén pagina**: `filename.bmp`
+- **Meerdere pagina's**: `filename_bmps.zip` met `page_1.bmp`, `page_2.bmp`, enz.
+
+## Toepassingen
+
+- PDF-pagina's aanleveren aan verouderde systemen of apparaten die alleen BMP accepteren.
+- Ongecomprimeerde afbeeldingen voorbereiden voor specifieke drukwerkprocessen.
+- Bitmapuitvoer gebruiken als invoer voor beeldverwerkingstools die ruwe pixelgegevens nodig hebben.
+
+## Tips
+
+- BMP-bestanden zijn erg groot omdat ze ruwe pixelgegevens zonder compressie opslaan. Voor de meeste toepassingen geeft [PDF naar PNG](./pdf-to-png) verliesvrije kwaliteit met veel kleinere bestanden.
+- Als je doelsysteem PNG of TIFF accepteert, geef dan de voorkeur aan die formaten om schijfruimte te besparen.
+
+## Gerelateerde tools
+
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar TIFF](./pdf-to-tiff)
+- [PDF naar JPG](./pdf-to-jpg)
diff --git a/docs/nl/tools/pdf-to-cbz.md b/docs/nl/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..273f9b8c
--- /dev/null
+++ b/docs/nl/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF naar CBZ
+description: Zet een PDF om naar een CBZ-bestand (Comic Book Archive) voor stripreaders zoals Komga, Kavita, CDisplayEx en Calibre.
+---
+
+# PDF naar CBZ
+
+Zet een PDF om naar een CBZ-bestand (Comic Book ZIP), het standaardformaat voor digitale strips en manga. Elke PDF-pagina wordt een afbeelding in het archief. De tool genereert metadata in drie formaten voor maximale compatibiliteit: ComicInfo.xml, metadata.opf en ComicBookInfo JSON.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Kies afbeeldingsformaat, kwaliteit, schaal en optionele metadata.
+3. Klik op **Converteren** om het CBZ-bestand te genereren.
+4. Het `.cbz`-bestand wordt automatisch gedownload.
+
+## Opties
+
+| Optie | Waarden | Standaard | Beschrijving |
+| ------------------ | --------------- | --------- | ---------------------------------------------------------------------------------------------- |
+| Afbeeldingsformaat | JPEG, PNG, WebP | JPEG | JPEG voor kleurenstrips, PNG voor verliesvrije zwart-wit manga, WebP voor de beste compressie. |
+| Kwaliteit | 50–100% | 85% | Bepaalt de JPEG/WebP-compressie. Verborgen voor PNG (altijd verliesvrij). |
+| Schaal | 1.0x–4.0x | 2.0x | Een hogere schaal geeft scherpere afbeeldingen voor schermen met hoge resolutie. |
+| Grijswaarden | Aan/Uit | Uit | Zet pagina's om naar grijswaarden. Verkleint het bestand bij zwart-wit inhoud. |
+| Manga-modus | Aan/Uit | Uit | Stelt in de metadata de leesrichting van rechts naar links in. |
+| Metadata opnemen | Aan/Uit | Aan | Sluit ComicInfo.xml, metadata.opf en ComicBookInfo JSON in. |
+
+## Metadatavelden
+
+Als metadata is ingeschakeld, kun je invullen:
+
+- **Titel**: automatisch herkend uit de PDF-bestandsnaam.
+- **Serie**: de naam van de serie (bijv. "Naruto").
+- **Nummer (#)**: deelnummer binnen de serie.
+- **Volume (Vol.)**: volumenummer.
+- **Auteur(s)**: naam van de schrijver of maker.
+- **Uitgever**: uitgeverij.
+- **Labels / Genre**: tags gescheiden door komma's (bijv. "Actie, Avontuur").
+- **Publicatiejaar**: jaar van publicatie (1900–2100).
+- **Beoordeling**: beoordeling door de community van 0 tot 5.
+
+## Metadatacompatibiliteit
+
+De tool schrijft metadata in drie formaten zodat elke reader ze kan vinden:
+
+| Formaat | Locatie | Ondersteund door |
+| ------------------ | ------------------- | ------------------------------------------- |
+| ComicInfo.xml | Bestand in de ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Bestand in de ZIP | Calibre |
+| ComicBookInfo JSON | ZIP-opmerkingenveld | Calibre (terugvaloptie) |
+
+## Uitvoerformaat
+
+- `filename.cbz`: een ZIP-archief met genummerde pagina-afbeeldingen en metadatabestanden.
+
+Pagina-afbeeldingen krijgen namen met nullen aangevuld (`01.jpg`, `02.jpg`, enz.) zodat readers ze in de juiste volgorde tonen.
+
+## Toepassingen
+
+- Manga- of strip-PDF's omzetten voor gebruik met stripreaders.
+- Een digitale stripbibliotheek opbouwen in Komga, Kavita of Calibre.
+- Gescande stripboeken omzetten naar een formaat dat prettig leest in een reader.
+- Strips delen in een formaat dat leesrichting en metadata behoudt.
+
+## Tips
+
+- Gebruik **JPEG** voor kleurenstrips en **PNG** voor zwart-wit manga: PNG comprimeert zwart-wit inhoud heel efficiënt.
+- Schakel **Grijswaarden** in voor manga om de bestandsgrootte aanzienlijk te verkleinen.
+- Vul de velden **Serie** en **Nummer** in zodat bibliotheekbeheerders (Komga, Calibre) je verzameling automatisch kunnen ordenen.
+- **WebP** biedt de beste compressie, maar oudere stripreaders ondersteunen het mogelijk niet.
+
+## Gerelateerde tools
+
+- [PDF naar JPG](./pdf-to-jpg)
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar TIFF](./pdf-to-tiff)
+- [Afbeeldingen extraheren](./extract-images)
diff --git a/docs/nl/tools/pdf-to-csv.md b/docs/nl/tools/pdf-to-csv.md
new file mode 100644
index 00000000..676f0df9
--- /dev/null
+++ b/docs/nl/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF naar CSV
+description: Haal tabellen uit PDF-documenten en exporteer ze als één CSV-bestand. Verwerkt PDF's met meerdere pagina's met automatische tabeldetectie.
+---
+
+# PDF naar CSV
+
+Haalt tabellen uit een PDF en exporteert ze als CSV-bestand. De tool doorzoekt elke pagina op tabelgegevens met de tabeldetectie-engine van PyMuPDF en schrijft alle gevonden rijen naar één door komma's gescheiden uitvoer.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Klik op **Converteren** om de tabelextractie te starten.
+3. De tool scant elke pagina en herkent tabellen automatisch.
+4. Een `.csv`-bestand met alle geëxtraheerde tabelgegevens wordt gedownload.
+
+Tabellen van verschillende pagina's worden in de uitvoer gescheiden door lege rijen. Cellen met komma's, aanhalingstekens of regeleinden worden correct ge-escaped volgens RFC 4180.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Alle tabellen in het document worden geëxtraheerd en gecombineerd in één CSV.
+
+## Uitvoerformaat
+
+- Eén `filename.csv`-bestand met alle gedetecteerde tabellen.
+
+## Toepassingen
+
+- Financiële gegevens uit PDF-bankafschriften of facturen in een spreadsheet halen.
+- Prijstabellen uit offertes van leveranciers extraheren om te vergelijken.
+- Tabelgegevens uit PDF-onderzoeksartikelen omzetten naar een formaat dat geschikt is voor analysetools.
+- Gegevens uit oude PDF-rapporten migreren naar databases.
+
+## Tips
+
+- Als er geen tabellen worden gevonden, toont de tool de melding "Geen tabellen gevonden". Meestal betekent dit dat de PDF een tekstindeling gebruikt die op een tabel lijkt maar niet als echte tabel is opgebouwd.
+- Voor meer controle over afzonderlijke tabellen gebruik je [PDF-tabellen extraheren](./extract-tables), waarmee je kunt kiezen tussen CSV, JSON en Markdown als uitvoerformaat.
+- Als je de gegevens in Excel-formaat wilt, met aparte bladen per tabel, gebruik dan [PDF naar Excel](./pdf-to-excel).
+
+## Gerelateerde tools
+
+- [PDF naar Excel](./pdf-to-excel)
+- [PDF-tabellen extraheren](./extract-tables)
+- [PDF naar tekst](./pdf-to-text)
diff --git a/docs/nl/tools/pdf-to-excel.md b/docs/nl/tools/pdf-to-excel.md
new file mode 100644
index 00000000..92462236
--- /dev/null
+++ b/docs/nl/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF naar Excel
+description: Haal tabellen uit PDF-documenten naar een Excel-spreadsheet. Elke tabel krijgt een eigen werkblad met paginaverwijzing.
+---
+
+# PDF naar Excel
+
+Haalt tabellen uit een PDF en slaat ze op als Excel-spreadsheet (`.xlsx`). Elke gedetecteerde tabel komt op een eigen werkblad, met het tabelnummer en de bronpagina als label. Gebruikt PyMuPDF voor tabeldetectie en de SheetJS-bibliotheek voor het maken van Excel-bestanden.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Klik op **Converteren** om de tabelextractie te starten.
+3. De tool scant elke pagina op tabellen en bouwt daarna een Excel-werkmap.
+4. Een `.xlsx`-bestand met één blad per tabel wordt gedownload.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Alle gedetecteerde tabellen worden automatisch geëxtraheerd.
+
+## Uitvoerformaat
+
+- Eén `filename.xlsx`-bestand.
+- **Eén tabel**: een enkel werkblad met de naam "Table".
+- **Meerdere tabellen**: werkbladen met de namen "Table 1 (Page 3)", "Table 2 (Page 5)", enz. Bladnamen worden afgekapt tot 31 tekens (de limiet van Excel).
+
+## Toepassingen
+
+- PDF-financiële rapporten omzetten naar bewerkbare spreadsheets voor verdere analyse.
+- Voorraad- of ordertabellen uit PDF's van leveranciers halen.
+- Gestructureerde gegevens uit PDF-formulieren of catalogi naar Excel halen om te sorteren en te filteren.
+- Tabelgegevens uit PDF's archiveren in een formaat waarmee niet-technische collega's kunnen werken.
+
+## Tips
+
+- Als de tool "Geen tabellen gevonden" meldt, gebruikt de PDF waarschijnlijk een vrije tekstindeling in plaats van gestructureerde tabellen. Probeer [PDF naar tekst](./pdf-to-text) om in plaats daarvan de ruwe inhoud te pakken.
+- Voor een eenvoudiger plat formaat gebruik je [PDF naar CSV](./pdf-to-csv). Voor downloads per tabel in meerdere formaten gebruik je [PDF-tabellen extraheren](./extract-tables).
+- Bekijk de bladnamen om te zien van welke pagina elke tabel afkomstig is.
+
+## Gerelateerde tools
+
+- [PDF naar CSV](./pdf-to-csv)
+- [PDF-tabellen extraheren](./extract-tables)
+- [PDF naar tekst](./pdf-to-text)
diff --git a/docs/nl/tools/pdf-to-greyscale.md b/docs/nl/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..b2b87dcb
--- /dev/null
+++ b/docs/nl/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF naar grijswaarden
+description: Zet een kleuren-PDF om naar een versie in grijswaarden (zwart-wit). Maakt een nieuwe PDF waarin alle kleur van elke pagina is verwijderd.
+---
+
+# PDF naar grijswaarden
+
+Zet een kleuren-PDF om naar een versie in grijswaarden. Elke pagina wordt weergegeven, ontdaan van kleurverzadiging en als JPEG-afbeelding opnieuw ingebed in een nieuwe PDF. De uitvoer behoudt de oorspronkelijke paginaafmetingen.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Klik op **Converteren** om het bestand te verwerken.
+3. Een nieuwe `greyscale.pdf` wordt gedownload met alle pagina's omgezet naar zwart-wit.
+
+Achter de schermen wordt elke pagina op schaal 2x weergegeven, gaan de pixelgegevens door een grijswaardenfilter en worden ze opnieuw gecodeerd als JPEG met 90% kwaliteit en in een nieuw PDF-document geplaatst.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. De omzetting naar grijswaarden gebruikt een standaard luminantieformule en de JPEG-kwaliteit staat vast op 90%.
+
+## Uitvoerformaat
+
+- Eén `greyscale.pdf`-bestand met alle pagina's als JPEG-afbeeldingen in grijswaarden.
+
+## Toepassingen
+
+- Documenten voorbereiden voor zwart-wit afdrukken om kleurinkt te besparen.
+- Voldoen aan indieningsvereisten voor juridische of overheidsdocumenten waarvoor grijswaarden verplicht zijn.
+- De bestandsgrootte verkleinen van PDF's met veel kleur (JPEG-afbeeldingen in grijswaarden zijn kleiner dan kleurenafbeeldingen).
+- Een consistente visuele stijl creëren voor documenten met gemengde kleuren- en zwart-witpagina's.
+
+## Tips
+
+- Omdat elke pagina wordt gerasterd en als JPEG opnieuw wordt ingebed, is de uitvoer afbeeldingsgebaseerd. Tekst uit de oorspronkelijke PDF is dan niet meer selecteerbaar of doorzoekbaar. Als je daarna doorzoekbare tekst nodig hebt, haal de uitvoer dan door de OCR-tool.
+- Voor meer controle over kleuraanpassingen (helderheid, contrast, verzadiging) kun je de tool Kleuren aanpassen of het Grijswaarden-knooppunt in de [PDF-workflowbouwer](./pdf-workflow) bekijken.
+
+## Gerelateerde tools
+
+- [PDF naar JPG](./pdf-to-jpg)
+- [PDF naar PNG](./pdf-to-png)
+- [PDF-workflowbouwer](./pdf-workflow)
diff --git a/docs/nl/tools/pdf-to-jpg.md b/docs/nl/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..a52401dd
--- /dev/null
+++ b/docs/nl/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF naar JPG
+description: Zet PDF-pagina's om naar JPG-afbeeldingen met instelbare kwaliteit. PDF's van één pagina worden direct gedownload, PDF's met meerdere pagina's als ZIP.
+---
+
+# PDF naar JPG
+
+Zet elke pagina van een PDF om in een JPG-afbeelding. Documenten van één pagina worden gedownload als los `.jpg`-bestand. PDF's met meerdere pagina's leveren een ZIP-archief op met één JPG per pagina.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen. De tool toont de bestandsnaam, de bestandsgrootte en het aantal pagina's.
+2. Pas de schuifregelaar **Kwaliteit** aan om de JPG-compressie te bepalen.
+3. Klik op **Converteren** om de verwerking te starten.
+4. Het resultaat wordt automatisch gedownload: een enkele JPG voor PDF's van één pagina, of een ZIP-bestand voor documenten met meerdere pagina's.
+
+## Opties
+
+- **Kwaliteit**: een schuifregelaar van 0% tot 100% (standaard 90%). Hogere waarden geven scherpere afbeeldingen met grotere bestanden. Lagere waarden comprimeren sterker.
+
+Pagina's worden intern op schaal 2x weergegeven, dus de uitvoerresolutie is het dubbele van de PDF-paginaafmetingen. Een standaard pagina van Letter-formaat levert een afbeelding op van ongeveer 1.224 x 1.584 pixels.
+
+## Uitvoerformaat
+
+- **Eén pagina**: `filename.jpg`
+- **Meerdere pagina's**: `filename_jpgs.zip` met `page_1.jpg`, `page_2.jpg`, enz.
+
+## Toepassingen
+
+- Voorbeeldminiaturen genereren voor een documentbeheersysteem.
+- Een pagina uit een rapport delen in een chat of e-mail die geen PDF ondersteunt.
+- Afbeeldingen maken van diagrammen of illustraties uit PDF's.
+- Gescande documenten archiveren als afzonderlijke afbeeldingen.
+
+## Tips
+
+- Gebruik voor verliesvrije uitvoer liever [PDF naar PNG](./pdf-to-png).
+- Een kwaliteitsinstelling van 80-90% biedt een goede balans tussen bestandsgrootte en beeldkwaliteit.
+- Als je per pagina een specifiek formaat nodig hebt, bekijk dan de [PDF-workflowbouwer](./pdf-workflow), die een uitvoerknooppunt PDF naar afbeeldingen heeft.
+
+## Gerelateerde tools
+
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar WebP](./pdf-to-webp)
+- [PDF naar BMP](./pdf-to-bmp)
+- [PDF naar TIFF](./pdf-to-tiff)
diff --git a/docs/nl/tools/pdf-to-json.md b/docs/nl/tools/pdf-to-json.md
new file mode 100644
index 00000000..cef5b6e4
--- /dev/null
+++ b/docs/nl/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF naar JSON
+description: Zet PDF-bestanden om naar gestructureerd JSON-formaat met CPDF. Exporteert de interne structuur van de PDF als machineleesbare JSON-gegevens.
+---
+
+# PDF naar JSON
+
+Zet een of meer PDF-bestanden om naar JSON-formaat. De tool gebruikt CPDF (Coherent PDF) om de interne structuur van elke PDF te serialiseren naar een machineleesbare JSON-weergave. De uitvoer wordt altijd als ZIP-archief geleverd.
+
+## Hoe het werkt
+
+1. Selecteer een of meer PDF-bestanden met de bestandskiezer.
+2. Klik op **Converteren** om de verwerking te starten. De conversie draait in een webworker op de achtergrond.
+3. Een ZIP-archief wordt gedownload met één JSON-bestand voor elke invoer-PDF.
+
+De statusbalk toont de voortgang van de conversie en het maken van de ZIP.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Elke PDF wordt omgezet naar de volledige JSON-weergave.
+
+## Uitvoerformaat
+
+- Een `pdfs-to-json.zip`-bestand met `filename.json` voor elke invoer-PDF.
+
+De JSON-uitvoer geeft de interne objectstructuur van de PDF weer, inclusief paginabomen, lettertypeverwijzingen, metadata en inhoudsstromen.
+
+## Toepassingen
+
+- De interne structuur van een PDF inspecteren voor foutopsporing of validatie.
+- Gestructureerde metadata en pagina-eigenschappen programmatisch extraheren.
+- PDF-structuurgegevens aanleveren aan eigen verwerkingsketens.
+- PDF-documenten controleren op naleving door hun objectbomen te analyseren.
+
+## Tips
+
+- Deze tool geeft de ruwe PDF-objectstructuur weer, niet de geëxtraheerde tekstinhoud. Als je paginatekst in JSON-formaat nodig hebt, gebruik dan [PDF voorbereiden voor AI](./prepare-pdf-for-ai).
+- Voor het extraheren van platte tekst is [PDF naar tekst](./pdf-to-text) eenvoudiger.
+- Grote PDF's met complexe structuren geven zeer grote JSON-bestanden.
+
+## Gerelateerde tools
+
+- [PDF naar tekst](./pdf-to-text)
+- [PDF voorbereiden voor AI](./prepare-pdf-for-ai)
+- [PDF-tabellen extraheren](./extract-tables)
diff --git a/docs/nl/tools/pdf-to-markdown.md b/docs/nl/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..c73878df
--- /dev/null
+++ b/docs/nl/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF naar Markdown
+description: Zet PDF-documenten om naar Markdown met optionele extractie van afbeeldingen. Ondersteunt het converteren van meerdere bestanden tegelijk.
+---
+
+# PDF naar Markdown
+
+Zet PDF-bestanden om naar Markdown (`.md`), met behoud van koppen, alinea's, lijsten en basisopmaak. Haalt optioneel ingebedde afbeeldingen eruit en neemt ze op. Ondersteunt enkele en gebundelde conversie. Gebruikt PyMuPDF.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF's door op het neerzetgebied te klikken of bestanden erheen te slepen.
+2. Schakel optioneel **Afbeeldingen opnemen** in om geëxtraheerde afbeeldingen in de Markdown-uitvoer in te sluiten.
+3. Klik op **Converteren** om de verwerking te starten.
+4. Een enkel bestand wordt gedownload als `filename.md`. Meerdere bestanden geven een `markdown-files.zip`.
+
+## Opties
+
+- **Afbeeldingen opnemen**: als dit is aangevinkt, worden ingebedde afbeeldingen uit de PDF geëxtraheerd en in de Markdown-uitvoer opgenomen. Als het niet is aangevinkt, wordt alleen de tekstinhoud omgezet.
+
+## Uitvoerformaat
+
+- **Eén bestand**: `filename.md`
+- **Meerdere bestanden**: `markdown-files.zip` met één `.md` per invoer-PDF.
+
+## Toepassingen
+
+- PDF-documentatie omzetten naar Markdown voor een generator voor statische sites zoals VitePress, Hugo of Jekyll.
+- PDF-onderzoeksartikelen omzetten naar bewerkbare Markdown voor notitie-apps zoals Obsidian.
+- Oude PDF-kennisbanken migreren naar een tekstformaat dat bij Git past.
+- Gestructureerde inhoud uit PDF-e-books halen om opnieuw op te maken.
+
+## Tips
+
+- De optie Afbeeldingen opnemen is handig als de PDF diagrammen of figuren bevat die essentieel zijn voor de inhoud. Schakel haar uit voor tekstrijke documenten om de uitvoer overzichtelijk te houden.
+- Complexe indelingen met zijbalken, voetnoten of tekst in meerdere kolommen kunnen onvolmaakte Markdown opleveren. Controleer de uitvoer en pas hem zo nodig aan.
+- Gebruik voor ruwe tekst zonder opmaak liever [PDF naar tekst](./pdf-to-text).
+
+## Gerelateerde tools
+
+- [PDF naar tekst](./pdf-to-text)
+- [PDF naar Word](./pdf-to-word)
+- [PDF voorbereiden voor AI](./prepare-pdf-for-ai)
diff --git a/docs/nl/tools/pdf-to-pdfa.md b/docs/nl/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..47f7bd3d
--- /dev/null
+++ b/docs/nl/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF naar PDF/A
+description: Zet standaard PDF's om naar PDF/A-formaat voor langdurige archivering. Ondersteunt de conformiteitsniveaus PDF/A-1b, PDF/A-2b en PDF/A-3b.
+---
+
+# PDF naar PDF/A
+
+PDF/A is een door ISO gestandaardiseerde subset van PDF, bedoeld voor langdurige digitale bewaring. Deze tool zet je standaard PDF's om naar PDF/A-conforme documenten met Ghostscript dat rechtstreeks in je browser draait.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF-bestanden.
+2. Kies een **PDF/A-versie** in de keuzelijst.
+3. Schakel optioneel **PDF vooraf platmaken** in voor complexe bestanden waarbij de normale conversie mislukt.
+4. Klik op **Converteren naar PDF/A**. Meerdere bestanden geven een ZIP-archief.
+
+## PDF/A-versies
+
+| Versie | Beperkingen | Het best voor |
+| ------------ | -------------------------------------------- | ---------------------------------------------------- |
+| **PDF/A-1b** | Strengst. Geen transparantie, geen lagen. | Maximale compatibiliteit met oudere archiefsystemen |
+| **PDF/A-2b** | Staat transparantie en JPEG2000 toe. | Archivering voor algemeen gebruik (aanbevolen) |
+| **PDF/A-3b** | Staat ingebedde bijlagen in elk formaat toe. | Documenten archiveren met bronbestanden met gegevens |
+
+PDF/A-2b is standaard geselecteerd en voldoet voor de overgrote meerderheid van archiveringsbehoeften.
+
+## Optie Vooraf platmaken
+
+Sommige PDF's bevatten kenmerken die een zuivere PDF/A-conversie verhinderen: ongebruikelijke lettertypecoderingen, complexe transparantiestapels of beschadigde interne structuren. Als je **Vooraf platmaken** inschakelt, wordt de PDF vóór de conversie op 300 DPI gerasterd. Dat garandeert conformiteit, ten koste van tekst die niet meer selecteerbaar is. Gebruik het als terugvaloptie wanneer de standaardconversie fouten geeft.
+
+Vooraf platmaken vereist de PyMuPDF WASM-engine.
+
+## Toepassingen
+
+- Voldoen aan archiveringseisen van overheden of de rechtspraak (in veel rechtsgebieden is PDF/A verplicht voor processtukken)
+- Documenten indienen bij institutionele repositories of digitale bibliotheken
+- Bedrijfsgegevens bewaren waarvan de oorspronkelijke software over tien jaar mogelijk niet meer bestaat
+- Facturen voorbereiden voor e-facturatiestandaarden die PDF/A-3b met XML-bijlagen vereisen
+
+## Tips
+
+- Probeer de conversie eerst zonder vooraf platmaken. Schakel het alleen in als je een foutmelding krijgt.
+- PDF/A sluit alle lettertypen in, dus uitvoerbestanden zijn vaak groter dan de originelen.
+- Valideer de uitvoer in een speciale PDF/A-validator als strikte conformiteit vereist is voor je werkwijze.
+
+## Gerelateerde tools
+
+- [PDF comprimeren](./compress-pdf): verklein het bestand na de conversie
+- [PDF platmaken](./flatten-pdf): maak formulieren plat voordat je naar PDF/A converteert
+- [Metadata verwijderen](./remove-metadata): verwijder metadata vóór archivering
diff --git a/docs/nl/tools/pdf-to-png.md b/docs/nl/tools/pdf-to-png.md
new file mode 100644
index 00000000..b697442b
--- /dev/null
+++ b/docs/nl/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF naar PNG
+description: Zet PDF-pagina's om naar verliesvrije PNG-afbeeldingen met instelbare schaal. Ideaal voor schermafbeeldingen van hoge kwaliteit en transparante achtergronden.
+---
+
+# PDF naar PNG
+
+Zet elke pagina van een PDF om in een PNG-afbeelding. PNG gebruikt verliesvrije compressie, dus de uitvoer behoudt elk detail van de oorspronkelijke pagina. PDF's van één pagina worden gedownload als `.png`-bestand, PDF's met meerdere pagina's geven een ZIP.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Stel de schuifregelaar **Schaal** in om de uitvoerresolutie te bepalen.
+3. Klik op **Converteren** om de verwerking te starten.
+4. Een enkele PNG of een ZIP-archief wordt automatisch gedownload.
+
+## Opties
+
+- **Schaal**: van 1.0x tot 3.0x (standaard 2.0x). Bij 2.0x wordt een standaard pagina van Letter-formaat weergegeven met ongeveer 1.224 x 1.584 pixels. Hogere schaalwaarden geven grotere, scherpere afbeeldingen ten koste van bestandsgrootte en verwerkingstijd.
+
+## Uitvoerformaat
+
+- **Eén pagina**: `filename.png`
+- **Meerdere pagina's**: `filename_pngs.zip` met `page_1.png`, `page_2.png`, enz.
+
+## Toepassingen
+
+- Schermafbeeldingen van hoge kwaliteit van PDF-pagina's maken voor presentaties.
+- Grafieken of diagrammen extraheren die scherpe randen en geen compressieartefacten nodig hebben.
+- Materiaal voor webdesign voorbereiden vanuit PDF-mockups.
+- Verliesvrije paginabeelden maken voor OCR-voorbewerking.
+
+## Tips
+
+- PNG-bestanden zijn aanzienlijk groter dan JPG. Als bestandsgrootte belangrijker is dan perfecte kwaliteit, gebruik dan [PDF naar JPG](./pdf-to-jpg) of [PDF naar WebP](./pdf-to-webp).
+- Bij schaal 1.0x komt de uitvoer overeen met de oorspronkelijke resolutie van de PDF. Ga naar 3.0x voor exports in drukkwaliteit.
+
+## Gerelateerde tools
+
+- [PDF naar JPG](./pdf-to-jpg)
+- [PDF naar WebP](./pdf-to-webp)
+- [PDF naar SVG](./pdf-to-svg)
diff --git a/docs/nl/tools/pdf-to-svg.md b/docs/nl/tools/pdf-to-svg.md
new file mode 100644
index 00000000..b54a9afe
--- /dev/null
+++ b/docs/nl/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF naar SVG
+description: Zet PDF-pagina's om naar schaalbare SVG-vectorafbeeldingen. Behoudt tekst en vormen als vectorpaden voor oneindig schalen.
+---
+
+# PDF naar SVG
+
+Zet elke pagina van een PDF om in een SVG-bestand (Scalable Vector Graphics). In tegenstelling tot rasterformaten behoudt SVG vectorpaden, tekst en vormen, zodat de uitvoer op elke grootte kan worden geschaald zonder pixelvorming. Gebruikt PyMuPDF.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF's door op het neerzetgebied te klikken of bestanden erheen te slepen. Je kunt meerdere bestanden toevoegen en ze afzonderlijk beheren.
+2. Klik op **Converteren** om alle geüploade bestanden te verwerken.
+3. Conversies van één bestand met één pagina worden gedownload als los `.svg`-bestand. Al het andere wordt gedownload als ZIP-archief.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Elke pagina wordt naar SVG omgezet met de eigen vectorexport van PyMuPDF.
+
+## Uitvoerformaat
+
+- **Eén bestand, één pagina**: `filename.svg`
+- **Eén bestand, meerdere pagina's**: `filename_svg.zip` met `page_1.svg`, `page_2.svg`, enz.
+- **Meerdere bestanden**: `pdf_to_svg.zip` met bestanden geordend op de naam van het brondocument.
+
+## Toepassingen
+
+- Vectordiagrammen, grafieken of illustraties uit PDF-rapporten halen voor gebruik op webpagina's.
+- De inhoud van PDF-pagina's bewerken in een vectoreditor zoals Inkscape of Illustrator.
+- Schaalbare paginavoorbeelden insluiten in responsieve webapplicaties.
+- Logo's of afbeeldingen uit PDF-brochures halen met behoud van scherpe randen.
+
+## Tips
+
+- SVG werkt het best met PDF's die vectorinhoud bevatten. Gescande documenten of PDF's met veel afbeeldingen geven grote SVG-bestanden met ingebedde rastergegevens.
+- Gebruik voor rasteruitvoer van PDF's met veel afbeeldingen liever [PDF naar PNG](./pdf-to-png) of [PDF naar JPG](./pdf-to-jpg).
+- Deze tool ondersteunt gebundelde conversie: upload meerdere PDF's tegelijk om ze allemaal in één keer om te zetten.
+
+## Gerelateerde tools
+
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar JPG](./pdf-to-jpg)
+- [PDF naar Markdown](./pdf-to-markdown)
diff --git a/docs/nl/tools/pdf-to-text.md b/docs/nl/tools/pdf-to-text.md
new file mode 100644
index 00000000..6f44412d
--- /dev/null
+++ b/docs/nl/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF naar tekst
+description: Haal platte tekst uit PDF-bestanden. Ondersteunt het in één keer extraheren van meerdere PDF's, met TXT-bestanden als uitvoer.
+---
+
+# PDF naar tekst
+
+Haalt alle tekstinhoud uit PDF-bestanden en slaat die op als gewone `.txt`-bestanden. Ondersteunt gebundelde verwerking: upload meerdere PDF's en haal de tekst van elk in één bewerking eruit. Gebruikt PyMuPDF.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF's door op het neerzetgebied te klikken of bestanden erheen te slepen. Beheer je bestandslijst met de knoppen Meer toevoegen en Wissen.
+2. Klik op **Extraheren** om de verwerking te starten.
+3. Een enkel bestand wordt gedownload als `filename.txt`. Meerdere bestanden geven een `pdf-to-text.zip`-archief.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Alle tekstinhoud van elke pagina wordt in leesvolgorde geëxtraheerd.
+
+## Uitvoerformaat
+
+- **Eén bestand**: `filename.txt`
+- **Meerdere bestanden**: `pdf-to-text.zip` met één `.txt` per invoer-PDF.
+
+## Toepassingen
+
+- Lopende tekst uit PDF-rapporten halen voor volledige tekstindexering.
+- PDF-e-books of artikelen omzetten naar platte tekst om te lezen op e-inkapparaten.
+- Tekst uit contracten of juridische documenten halen voor trefwoordanalyse.
+- Opmaak uit PDF's verwijderen om schone tekst te krijgen voor gegevensverwerkingsscripts.
+- Een tekstcorpus samenstellen uit PDF-archieven voor natuurlijke taalverwerking.
+
+## Tips
+
+- Gescande PDF's (alleen afbeeldingen) geven lege tekstbestanden omdat er geen tekstlaag is om te extraheren. Haal gescande documenten eerst door OCR.
+- De uitvoer behoudt de leesvolgorde zoals PyMuPDF die interpreteert, wat over het algemeen van links naar rechts en van boven naar beneden loopt. Indelingen met meerdere kolommen kunnen door elkaar lopende tekst geven.
+- Probeer voor gestructureerde uitvoer met koppen en opmaak [PDF naar Markdown](./pdf-to-markdown). Gebruik voor AI-klare gestructureerde JSON [PDF voorbereiden voor AI](./prepare-pdf-for-ai).
+
+## Gerelateerde tools
+
+- [PDF naar Markdown](./pdf-to-markdown)
+- [PDF voorbereiden voor AI](./prepare-pdf-for-ai)
+- [PDF naar Word](./pdf-to-word)
diff --git a/docs/nl/tools/pdf-to-tiff.md b/docs/nl/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..03ebb36c
--- /dev/null
+++ b/docs/nl/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF naar TIFF
+description: Zet PDF-pagina's om naar TIFF-afbeeldingen, veel gebruikt in drukwerk-, fax- en archiefprocessen. Valt terug op PNG als het coderen mislukt.
+---
+
+# PDF naar TIFF
+
+Zet elke pagina van een PDF om in een TIFF-afbeelding. TIFF is het standaardformaat voor drukwerkproductie, faxsystemen en documentarchivering. De tool gebruikt PackBits-compressie voor TIFF-codering en valt terug op PNG als het coderen van een pagina mislukt.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Klik op **Converteren** om het bestand te verwerken.
+3. Een enkel TIFF-bestand of een ZIP-archief wordt automatisch gedownload.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Pagina's worden met een vaste schaal van 2x weergegeven.
+
+## Uitvoerformaat
+
+- **Eén pagina**: `filename.tiff`
+- **Meerdere pagina's**: `filename_tiffs.zip` met `page_1.tiff`, `page_2.tiff`, enz.
+
+Als het TIFF-coderen van een bepaalde pagina mislukt (door compressieproblemen), wordt die pagina in plaats daarvan als `.png`-bestand opgeslagen. De ZIP bevat dan een mix van TIFF- en PNG-bestanden.
+
+## Toepassingen
+
+- Documenten indienen bij overheidsinstanties of juridische systemen die het TIFF-formaat vereisen.
+- Pagina's voorbereiden voor faxverzending via digitale faxdiensten.
+- Gescande documenten archiveren in een breed ondersteund verliesvrij formaat.
+- Pagina's aanleveren aan documentbeheersystemen voor bedrijven.
+
+## Tips
+
+- TIFF-bestanden zijn groot. Als je alleen verliesvrije kwaliteit nodig hebt voor web of scherm, is [PDF naar PNG](./pdf-to-png) een betere keuze.
+- Controleer de inhoud van de ZIP als sommige pagina's de PNG-terugval nodig hadden: misschien wil je die apart converteren.
+
+## Gerelateerde tools
+
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar BMP](./pdf-to-bmp)
+- [PDF naar JPG](./pdf-to-jpg)
diff --git a/docs/nl/tools/pdf-to-webp.md b/docs/nl/tools/pdf-to-webp.md
new file mode 100644
index 00000000..a01b764a
--- /dev/null
+++ b/docs/nl/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF naar WebP
+description: Zet PDF-pagina's om naar WebP-afbeeldingen met instelbare kwaliteit. Kleinere bestanden dan JPG bij vergelijkbare beeldkwaliteit.
+---
+
+# PDF naar WebP
+
+Zet elke pagina van een PDF om in een WebP-afbeelding. WebP geeft bij dezelfde waargenomen kwaliteit doorgaans 25-35% kleinere bestanden dan JPG, wat het een sterke keuze maakt voor gebruik op het web.
+
+## Hoe het werkt
+
+1. Upload een PDF door op het neerzetgebied te klikken of een bestand erheen te slepen.
+2. Pas de schuifregelaar **Kwaliteit** aan.
+3. Klik op **Converteren** om het bestand te verwerken.
+4. Een enkel `.webp`-bestand of een ZIP-archief wordt automatisch gedownload.
+
+## Opties
+
+- **Kwaliteit**: een schuifregelaar van 0% tot 100% (standaard 85%). Bepaalt het niveau van verlieslatende compressie. Hogere waarden behouden meer detail.
+
+Pagina's worden intern op schaal 2x weergegeven, wat afbeeldingen oplevert met ongeveer dubbele afmetingen van de oorspronkelijke PDF.
+
+## Uitvoerformaat
+
+- **Eén pagina**: `filename.webp`
+- **Meerdere pagina's**: `filename_webps.zip` met `page_1.webp`, `page_2.webp`, enz.
+
+## Toepassingen
+
+- Paginavoorbeelden voorbereiden voor websites waar bandbreedte telt.
+- Lichte afbeeldingsversies van flyers of brochures maken voor sociale media.
+- Documenten met meerdere pagina's in één keer omzetten naar een voor het web geoptimaliseerde set afbeeldingen.
+
+## Tips
+
+- WebP wordt ondersteund in alle moderne browsers. Gebruik voor compatibiliteit met oudere systemen [PDF naar JPG](./pdf-to-jpg) als terugvaloptie.
+- Een kwaliteit van 80-85% is op het scherm meestal niet van het origineel te onderscheiden en houdt de bestanden toch klein.
+
+## Gerelateerde tools
+
+- [PDF naar JPG](./pdf-to-jpg)
+- [PDF naar PNG](./pdf-to-png)
+- [PDF naar BMP](./pdf-to-bmp)
diff --git a/docs/nl/tools/pdf-to-word.md b/docs/nl/tools/pdf-to-word.md
new file mode 100644
index 00000000..8e3ce2b8
--- /dev/null
+++ b/docs/nl/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF naar Word
+description: Zet PDF-bestanden om naar bewerkbare Word-documenten (DOCX). Ondersteunt het in één keer converteren van meerdere PDF's.
+---
+
+# PDF naar Word
+
+Zet PDF-bestanden om naar bewerkbare Word-documenten (`.docx`). De tool gebruikt PyMuPDF om de inhoud van het document te reconstrueren, met behoud van tekst, basisopmaak en indeling. Ondersteunt enkele en gebundelde conversie.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF's door op het neerzetgebied te klikken of bestanden erheen te slepen. Je kunt meer bestanden toevoegen of afzonderlijke bestanden uit de lijst verwijderen.
+2. Klik op **Converteren** om de verwerking te starten.
+3. Een enkel bestand wordt gedownload als `filename.docx`. Meerdere bestanden worden gebundeld in `converted-documents.zip`.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Elke PDF wordt naar DOCX omgezet met de ingebouwde conversie-engine van PyMuPDF.
+
+## Uitvoerformaat
+
+- **Eén bestand**: `filename.docx`
+- **Meerdere bestanden**: `converted-documents.zip` met één `.docx` per invoer-PDF.
+
+## Toepassingen
+
+- Tekst bewerken in een ontvangen PDF die je moet aanpassen.
+- Gearchiveerde PDF-rapporten omzetten naar een formaat dat collega's kunnen bewerken in Microsoft Word of Google Docs.
+- Inhoud uit PDF-contracten of voorstellen naar Word halen om wijzigingen bij te houden.
+- Oude PDF-documentatie migreren naar een bewerkbaar formaat.
+
+## Tips
+
+- Complexe indelingen met tekst in meerdere kolommen, ingebedde formulieren of veel afbeeldingen worden mogelijk niet perfect omgezet. Controleer de uitvoer en pas de opmaak aan in je tekstverwerker.
+- Gescande PDF's (alleen afbeeldingen) geven lege of minimale DOCX-bestanden. Haal ze eerst door OCR om een tekstlaag toe te voegen.
+- De bundelmodus is efficiënt om hele mappen met PDF's te converteren: upload ze allemaal tegelijk.
+
+## Gerelateerde tools
+
+- [PDF naar tekst](./pdf-to-text)
+- [PDF naar Markdown](./pdf-to-markdown)
+- [PDF-workflowbouwer](./pdf-workflow)
diff --git a/docs/nl/tools/pdf-to-zip.md b/docs/nl/tools/pdf-to-zip.md
new file mode 100644
index 00000000..33092195
--- /dev/null
+++ b/docs/nl/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF's naar ZIP
+description: Verpak meerdere PDF-bestanden in één ZIP-archief om ze gemakkelijk te delen en op te slaan.
+---
+
+# PDF's naar ZIP
+
+Bundel meerdere PDF-bestanden in één ZIP-archief. Dit is een eenvoudige verpakkingstool: de PDF's zelf worden niet geconverteerd, gecomprimeerd of gewijzigd.
+
+## Hoe het werkt
+
+1. Upload meerdere PDF-bestanden via het neerzetgebied.
+2. Bekijk de lijst met bestanden. Verwijder de bestanden die je er niet in wilt hebben.
+3. Klik op de verwerkknop.
+4. Een ZIP-archief met alle geüploade PDF's wordt direct gedownload.
+
+## Functies
+
+- Accepteert een willekeurig aantal PDF-bestanden
+- Bestanden per stuk verwijderen voordat het archief wordt gemaakt
+- Behoudt de oorspronkelijke bestandsnamen in de ZIP
+- Geen wijziging van de PDF-inhoud: bestanden worden ongewijzigd verpakt
+- Toont de bestandsnaam en grootte van elke geüploade PDF
+
+## Toepassingen
+
+- Een reeks facturen of bonnetjes bundelen als e-mailbijlage
+- Projectopleveringen (meerdere PDF-rapporten) verpakken voor overdracht
+- Eén download maken voor een verzameling formulieren of sjablonen
+- Een reeks documenten archiveren in één gecomprimeerd bestand
+
+## Tips
+
+- De ZIP gebruikt de oorspronkelijke PDF-bestandsnamen. Als je bestanden met dezelfde naam hebt, hernoem ze dan vóór het uploaden om conflicten te voorkomen.
+- Deze tool comprimeert de PDF's zelf niet. Om de bestandsgrootte te verkleinen, haal je ze eerst door PDF Comprimeren en verpak je ze daarna met deze tool.
+
+## Gerelateerde tools
+
+- [PDF samenvoegen](./merge-pdf)
+- [PDF splitsen](./split-pdf)
+- [PDF comprimeren](./compress-pdf)
diff --git a/docs/nl/tools/pdf-workflow.md b/docs/nl/tools/pdf-workflow.md
new file mode 100644
index 00000000..6fc91098
--- /dev/null
+++ b/docs/nl/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: PDF-workflowbouwer
+description: Bouw visueel eigen PDF-verwerkingsketens door knooppunten op een canvas te verbinden. Koppel bewerkingen als samenvoegen, comprimeren, watermerk en exporteren.
+---
+
+# PDF-workflowbouwer
+
+Met de workflowbouwer koppel je meerdere PDF-bewerkingen aan elkaar tot één geautomatiseerde keten. In plaats van tools een voor een uit te voeren, verbind je een visuele graaf van knooppunten (invoer, verwerking, uitvoer) en voer je alles uit met één klik. Je bestanden verlaten de browser nooit.
+
+## Hoe het werkt
+
+De interface bestaat uit drie panelen: een **knooppuntenwerkset** links, het **canvas** in het midden en een **instellingenpaneel** rechts dat verschijnt wanneer je een knooppunt selecteert.
+
+1. **Voeg knooppunten toe** door ze in de linkerzijbalk aan te klikken, of sleep ze rechtstreeks op het canvas. Gebruik de zoekbalk bovenaan de werkset om op naam te filteren.
+2. **Verbind knooppunten** door te slepen van een uitvoeraansluiting (onderkant van een knooppunt) naar een invoeraansluiting (bovenkant van een ander knooppunt). Verbindingen lopen van boven naar beneden.
+3. **Configureer instellingen** door op een knooppunt te klikken om het instellingenpaneel rechts te openen. Elk type knooppunt heeft eigen opties (paginabereiken, kwaliteitsschuifregelaars, wachtwoorden, enz.).
+4. **Voer het werkproces uit** door in de werkbalk op de knop **Uitvoeren** te klikken. De engine voert de knooppunten uit in topologische volgorde en verwerkt ze een voor een. Een statusbalk onderaan toont de voortgang.
+5. **Download de resultaten**: het afsluitende knooppunt Downloaden slaat de uiteindelijke PDF op (of een ZIP als er meerdere bestanden ontstaan).
+
+## Categorieën knooppunten
+
+Knooppunten zijn ingedeeld in zes categorieën, elk met een eigen kleur op het canvas:
+
+- **Invoer** (blauw): PDF-invoer, afbeeldingsinvoer, Word/Excel/PowerPoint naar PDF en meer dan 15 andere formaatconverters die bestanden in de keten brengen.
+- **Bewerken & Annoteren** (indigo): Bijsnijden, Grijswaarden, Kleuren Omkeren, Watermerk, Paginanummers, Koptekst & Voettekst, Scannereffect, Kleuren Aanpassen, Achtergrondkleur, Blanco pagina's Verwijderen, Annotaties Verwijderen.
+- **Organiseren & Beheren** (violet): Samenvoegen, Splitsen, Pagina's Extraheren, Roteren, Pagina's Verwijderen, Omkeren, Blanco pagina Toevoegen, Pagina's Opdelen, N+, Paginagrootte Fiksen, Combineren tot Enkele pagina, Boekje, PDF-Poster, Metadata Bewerken, Inhoudsopgave, OCR.
+- **Optimaliseren & Repareren** (amber): Comprimeren, Rasteren, Lineariseren, Rechttrekken, PDF naar PDF/A, Lettertype naar Contour, Repareren.
+- **PDF Beveiligen** (rozerood): Versleutelen, Ontgrendelen, Opschonen, Platmaken, Digitale handtekening, Redigeren.
+- **Uitvoer** (blauwgroen): Downloaden (herkent automatisch een enkele PDF of ZIP), PDF naar afbeeldingen, PDF naar Text, PDF naar DOCX, PDF naar XLSX, PDF naar CSV, PDF naar SVG, PDF naar Markdown, Afbeeldingen extraheren.
+
+## Werkprocessen opslaan en laden
+
+De werkbalk biedt vier opties voor bewaren:
+
+- **Opslaan**: slaat het huidige werkproces op als benoemd sjabloon in de lokale opslag van je browser. Je kunt meerdere sjablonen opslaan.
+- **Laden**: opent een venster met alle opgeslagen sjablonen. Klik op Laden om er een te herstellen, of verwijder sjablonen die je niet meer nodig hebt.
+- **Exporteren**: downloadt het werkproces als `.json`-bestand zodat je het kunt delen of er een back-up van kunt maken.
+- **Importeren**: laadt een `.json`-werkprocesbestand van schijf en herstelt alle knooppunten, posities en verbindingen.
+
+Sjablonen blijven tussen sessies bewaard in de lokale opslag. Geëxporteerde JSON-bestanden zijn overdraagbaar tussen browsers en machines.
+
+## Uitvoeringsmodel
+
+De engine bouwt een afhankelijkheidsgraaf op uit je verbindingen en voert knooppunten uit in topologische volgorde. Als een knooppunt faalt, stopt de uitvoering en wordt het falende knooppunt rood gemarkeerd. Enkele regels om te onthouden:
+
+- Elk werkproces heeft minstens één **Invoer**-knooppunt en één **Uitvoer**-knooppunt nodig.
+- De engine detecteert circulaire afhankelijkheden en blokkeert de uitvoering met een foutmelding.
+- Het knooppunt **Versleutelen** moet de laatste verwerkingsstap vóór het uitvoerknooppunt zijn. Eerder plaatsen geeft een validatiewaarschuwing, omdat volgende knooppunten niet met versleutelde gegevens kunnen werken.
+- Met een wachtwoord beveiligde PDF's vragen tijdens de uitvoering om een wachtwoord.
+- Invoer met meerdere PDF's wordt ondersteund: het knooppunt Samenvoegen kan ze combineren, of knooppunten voor gebundelde verwerking verwerken elke PDF afzonderlijk.
+
+## Typen aansluitingen
+
+Verbindingen gebruiken getypeerde aansluitingen om ongeldige koppelingen te voorkomen:
+
+- **PDF** (indigo): één PDF-document.
+- **MultiPDF** (amber): meerdere gebundelde PDF-documenten.
+- **Afbeelding** (groen): een afbeeldingsblob.
+
+## Opties
+
+Elk knooppunt heeft een eigen configuratie die je opent via het instellingenpaneel rechts. Veelvoorkomende patronen zijn:
+
+- **Paginabereiken** bij de knooppunten Splitsen, Pagina's Extraheren en Pagina's Verwijderen
+- **Kwaliteitsschuifregelaars** bij uitvoerknooppunten voor afbeeldingsconversie
+- **Wachtwoordvelden** bij de knooppunten Versleutelen en Ontgrendelen
+- **Tekstinvoer** voor Watermerk, Koptekst & Voettekst en Metadata Bewerken
+- **Rotatiehoeken** bij het knooppunt Roteren
+- **Compressieniveau** bij het knooppunt Comprimeren
+- **Keuze van OCR-taal** bij het knooppunt OCR
+
+## Toepassingen
+
+- **Keten voor factuurverwerking**: PDF-invoer -> OCR -> PDF-tabellen Extraheren -> Downloaden als CSV.
+- **Standaardisatie van rapporten**: Word naar PDF -> Paginagrootte Fiksen -> Paginanummers toevoegen -> Watermerk -> Comprimeren -> Downloaden.
+- **Voorbereiding voor archivering**: PDF-invoer -> Repareren -> Platmaken -> Opschonen -> PDF naar PDF/A -> Downloaden.
+- **Afbeeldingen in bulk extraheren**: PDF-invoer (meerdere bestanden) -> Afbeeldingen extraheren -> ZIP downloaden.
+- **Afdrukklare boekjes**: PDF-invoer -> Boekje -> Bijsnijden -> Comprimeren -> Downloaden.
+- **Beveiligde verspreiding**: PDF-invoer -> Redigeren -> Annotaties Verwijderen -> Versleutelen -> Downloaden.
+
+## Tips
+
+- Gebruik **Delete** of **Backspace** om het geselecteerde knooppunt van het canvas te verwijderen.
+- Klik op de knop **X** in de statusbalk van een knooppunt om het rechtstreeks te verwijderen.
+- Verschuif het canvas door op lege ruimte te klikken en te slepen. De cursor verandert tijdens het verschuiven in een grijppictogram.
+- Gebruik op mobiel de knop **+** in de werkbalk om de knooppuntenwerkset te tonen of te verbergen.
+- Als je werkproces meerdere uitvoerbestanden oplevert, bundelt het knooppunt Downloaden ze automatisch in een ZIP.
+- Begin eenvoudig: bouw en test een keten van twee knooppunten voordat je complexiteit toevoegt.
+
+## Gerelateerde tools
+
+- [PDF naar tekst](./pdf-to-text)
+- [PDF naar Excel](./pdf-to-excel)
+- [Afbeeldingen extraheren](./extract-images)
+- [PDF naar Markdown](./pdf-to-markdown)
diff --git a/docs/nl/tools/png-to-pdf.md b/docs/nl/tools/png-to-pdf.md
new file mode 100644
index 00000000..3fc960af
--- /dev/null
+++ b/docs/nl/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG naar PDF
+description: Zet een of meer PNG-afbeeldingen om naar een PDF-document met instelbare kwaliteit, volledig in je browser.
+---
+
+# PNG naar PDF
+
+Zet PNG-afbeeldingen om naar PDF met behoud van hun volledige resolutie. Elke PNG wordt een eigen pagina, afgestemd op de afmetingen van de oorspronkelijke afbeelding. Transparantie wordt automatisch afgehandeld.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------- |
+| PNG | `.png` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep PNG-bestanden erheen. Je kunt er meerdere tegelijk selecteren.
+2. Beheer de bestandslijst: verwijder ongewenste bestanden of voeg er meer toe.
+3. Kies een niveau voor **PDF-kwaliteit** in de keuzelijst.
+4. Klik op **Converteren naar PDF**. De uitvoer wordt gedownload als `from_jpgs.pdf`.
+
+De tool gebruikt pdf-lib om elke afbeelding rechtstreeks in te sluiten. Als een PNG niet native kan worden ingesloten (bijv. door een ongebruikelijk kleurprofiel), valt de tool terug op opnieuw weergeven via een canvas als JPEG.
+
+## Opties
+
+**PDF-kwaliteit** bepaalt de compressie die vóór het insluiten wordt toegepast:
+
+- **Hoge kwaliteit**: minimale compressie, grootste bestand.
+- **Gemiddelde kwaliteit** (standaard): goede balans tussen grootte en helderheid.
+- **Lage kwaliteit**: maximale compressie, kleinste uitvoer.
+
+## Toepassingen
+
+- Schermafbeeldingen omzetten naar een PDF met meerdere pagina's voor bugrapporten of documentatie
+- UI-ontwerpexports verpakken in één bestand ter beoordeling
+- Diagramexports (draw.io, Excalidraw) omzetten naar een deelbare PDF
+- Een reeks grafiekafbeeldingen samenvoegen tot een rapport
+
+## Tips
+
+- PNG-bestanden met transparantie krijgen een witte achtergrond in de PDF. Als je een andere achtergrond nodig hebt, bewerk de afbeeldingen dan vooraf.
+- Bij schermafbeeldingen en diagrammen met scherpe randen en tekst voorkomt Hoge kwaliteit JPEG-compressieartefacten. Gemiddeld of Laag kan intern naar JPEG omzetten.
+
+## Gerelateerde tools
+
+- [Afbeelding naar PDF](./image-to-pdf)
+- [JPG naar PDF](./jpg-to-pdf)
+- [SVG naar PDF](./svg-to-pdf)
diff --git a/docs/nl/tools/posterize-pdf.md b/docs/nl/tools/posterize-pdf.md
new file mode 100644
index 00000000..ec7122df
--- /dev/null
+++ b/docs/nl/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF-poster
+description: Splits PDF-pagina's op in een raster van kleinere pagina's voor grootformaat afdrukken over meerdere vellen.
+---
+
+# PDF-poster
+
+Verdeel elke pagina van een PDF in een raster van kleinere deelpagina's. Hiermee druk je één pagina af over meerdere vellen papier, die je aan elkaar legt tot een grote poster of banner.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Stel het aantal **rijen** en **kolommen** in om het raster te bepalen (bijvoorbeeld 2 rijen x 2 kolommen splitst elke pagina in 4 deelpagina's).
+3. Geef optioneel een paginabereik op om te beperken welke pagina's worden opgedeeld.
+4. Het voorbeeld toont een rasteroverlay op de huidige pagina, zodat je de sneden kunt zien.
+5. Blader door de pagina's om de overlay op andere pagina's te controleren.
+6. Klik op de verwerkknop. Elke rastercel wordt een eigen pagina in de uitvoer-PDF.
+
+## Functies
+
+- Instelbaar aantal rijen en kolommen voor flexibele rastergroottes
+- Live voorbeeld met rasteroverlay die precies laat zien waar pagina's worden verdeeld
+- Paginabereikfilter om alleen specifieke pagina's op te delen
+- Pagina voor pagina bladeren in het voorbeeld
+- Gecachete paginamomentopnamen voor snel bladeren
+- Gestippelde rode rasterlijnen markeren duidelijk de snijgrenzen
+
+## Opties
+
+| Optie | Beschrijving |
+| ---------------- | ------------------------------------------------------ |
+| **Rijen** | Aantal horizontale verdelingen (standaard: 1) |
+| **Kolommen** | Aantal verticale verdelingen (standaard: 1) |
+| **Paginabereik** | Welke pagina's worden opgedeeld (leeg = alle pagina's) |
+
+## Toepassingen
+
+- Een PDF op postergrootte afdrukken over standaard A4- of Letter-vellen om aan een muur te monteren
+- Grote banners maken van een ontwerp van één pagina
+- Te grote technische tekeningen opsplitsen in afdrukbare delen
+- Grootformaat afdrukken zonder toegang tot een breedformaatprinter
+
+## Tips
+
+- Een raster van 2x2 maakt van één pagina 4 pagina's. Een raster van 3x3 maakt er 9. Kies het raster op basis van hoe groot het samengestelde eindresultaat moet worden.
+- Met de voorbeeldoverlay controleer je of belangrijke inhoud niet op een snijlijn valt. Pas indien nodig rijen en kolommen aan.
+- Voor de omgekeerde bewerking (meerdere pagina's op één vel plaatsen) gebruik je [N-up PDF](./n-up-pdf).
+
+## Gerelateerde tools
+
+- [N-up PDF](./n-up-pdf)
+- [Pagina's opdelen](./divide-pages)
+- [PDF splitsen](./split-pdf)
diff --git a/docs/nl/tools/powerpoint-to-pdf.md b/docs/nl/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..314db2b4
--- /dev/null
+++ b/docs/nl/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint naar PDF
+description: Zet PowerPoint-presentaties (PPT, PPTX) en ODP-bestanden om naar PDF met behoud van de opmaak van de dia's.
+---
+
+# PowerPoint naar PDF
+
+Zet presentatiebestanden om naar PDF. Elke dia wordt een pagina in het uitvoerdocument, met tekst, afbeeldingen, vormen en overgangen weergegeven via een LibreOffice-engine in de browser. Ondersteunt zowel moderne als oudere PowerPoint-formaten, plus het OpenDocument Presentation-formaat.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------------------------ | :-------- |
+| PowerPoint (modern) | `.pptx` |
+| PowerPoint (ouder) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je presentatiebestanden erheen.
+2. Bekijk de bestandslijst. Voeg meer bestanden toe of verwijder ze naar wens.
+3. Klik op **Converteren naar PDF**. De LibreOffice-engine wordt bij het eerste gebruik geladen en converteert daarna elk bestand.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden worden samengevoegd in `powerpoint-converted.zip`.
+
+## Opties
+
+Deze tool heeft geen extra instellingen. Dia's worden weergegeven op hun oorspronkelijke afmetingen.
+
+## Uitvoer
+
+| Aantal bestanden | Uitvoer |
+| :--------------- | :------------------------------------------------------------------ |
+| 1 bestand | Eén PDF-download (oorspronkelijke bestandsnaam met extensie `.pdf`) |
+| 2+ bestanden | ZIP-archief (`powerpoint-converted.zip`) met één PDF per bestand |
+
+## Toepassingen
+
+- Een presentatie naar PDF omzetten voordat je die deelt met een publiek dat mogelijk geen PowerPoint heeft
+- Een afdrukbare handout van een diaserie maken voor een congres of workshop
+- Presentaties archiveren in een formaat dat op elk apparaat identiek wordt weergegeven
+- Een bibliotheek ODP-presentaties van LibreOffice Impress in bulk naar PDF converteren
+- Een PDF-versie van een pitchdeck maken als e-mailbijlage
+
+## Tips
+
+- Diaanimaties en overgangen worden niet in de PDF weergegeven. Elke dia wordt vastgelegd als statische pagina.
+- Ingesloten video's verschijnen niet in de uitvoer. Vervang ze indien nodig door een schermafbeelding of tijdelijke afbeelding.
+- Spreekopmerkingen worden niet meegenomen in de standaard PDF-export. Heb je ze nodig, exporteer dan eerst vanuit de eigen weergave "Notities afdrukken" van PowerPoint.
+- De LibreOffice-engine wordt na het eerste laden gecachet, dus een tweede presentatie in dezelfde sessie wordt veel sneller geconverteerd.
+
+## Gerelateerde tools
+
+- [Word naar PDF](./word-to-pdf)
+- [Excel naar PDF](./excel-to-pdf)
+- [Afbeelding naar PDF](./image-to-pdf)
diff --git a/docs/nl/tools/prepare-pdf-for-ai.md b/docs/nl/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..6736ea24
--- /dev/null
+++ b/docs/nl/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: PDF voorbereiden voor AI
+description: Haal PDF-inhoud op als gestructureerde JSON, geoptimaliseerd voor LLM's en AI-pijplijnen zoals LlamaIndex. Ondersteunt batchverwerking.
+---
+
+# PDF voorbereiden voor AI
+
+Haalt inhoud uit PDF-bestanden en structureert die als JSON, geoptimaliseerd voor invoer in grote taalmodellen (LLM's) en AI-frameworks zoals LlamaIndex. De inhoud van elke pagina wordt opgehaald en georganiseerd in een gestructureerd formaat, klaar voor RAG-pijplijnen, chatbots of semantische zoeksystemen.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF's door op het sleepgebied te klikken of bestanden erheen te slepen.
+2. Klik op **Extraheren** om de verwerking te starten.
+3. Eén bestand wordt gedownload als `filename_llm.json`. Meerdere bestanden leveren een `pdf-for-ai.zip`-archief op.
+
+De tool gebruikt de LlamaIndex-integratie van PyMuPDF om inhoud per pagina met metadata op te halen. De uitvoer kan direct in AI-frameworks worden geladen.
+
+## Opties
+
+Deze tool heeft geen instelbare opties. Alle pagina's worden opgehaald met volledige tekst en metadata.
+
+## Uitvoerformaat
+
+- **Eén bestand**: `filename_llm.json`
+- **Meerdere bestanden**: `pdf-for-ai.zip` met één `_llm.json` per invoer-PDF.
+
+De JSON-uitvoer volgt het LlamaIndex-documentschema met tekstinhoud per pagina en metadatavelden.
+
+## Toepassingen
+
+- PDF-documenten voorbereiden voor retrieval-augmented generation (RAG)-pijplijnen.
+- Een doorzoekbare kennisbank opbouwen uit PDF-archieven voor een AI-chatbot.
+- PDF-rapporten invoeren in op LLM's gebaseerde analyseprocessen.
+- Onderzoeksartikelen voorverwerken voor semantisch zoeken en vraag-en-antwoordsystemen.
+- Gestructureerde trainingsdata maken uit verzamelingen PDF-documenten.
+
+## Tips
+
+- Voor platte tekstextractie zonder AI-specifieke opmaak gebruik je [PDF naar tekst](./pdf-to-text).
+- Voor Markdown-uitvoer die koppen en structuur behoudt gebruik je [PDF naar Markdown](./pdf-to-markdown).
+- Gescande PDF's leveren lege of minimale uitvoer op. Voer ze eerst door OCR om een tekstlaag toe te voegen voordat je ze extraheert.
+
+## Gerelateerde tools
+
+- [PDF naar tekst](./pdf-to-text)
+- [PDF naar Markdown](./pdf-to-markdown)
+- [PDF naar JSON](./pdf-to-json)
diff --git a/docs/nl/tools/protect-pdf.md b/docs/nl/tools/protect-pdf.md
new file mode 100644
index 00000000..cb1cc68b
--- /dev/null
+++ b/docs/nl/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: PDF beveiligen
+description: Beveilig PDF-bestanden met een wachtwoord en 256-bit AES-versleuteling. Stel gebruikers- en eigenaarswachtwoorden in met instelbare gebruiksbeperkingen.
+---
+
+# PDF beveiligen
+
+Vergrendel je PDF met een wachtwoord, zodat alleen bevoegde personen het bestand kunnen openen. BentoPDF gebruikt 256-bit AES-versleuteling (dezelfde standaard als banken en overheidsinstanties), volledig in je browser toegepast via QPDF.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Voer een **gebruikerswachtwoord** in (verplicht). Dit wachtwoord hebben mensen nodig om het bestand te openen.
+3. Voer optioneel een **eigenaarswachtwoord** in. Als dit is ingesteld, krijgt de PDF gebruiksbeperkingen die afdrukken, bewerken, kopiëren en annoteren voorkomen.
+4. Klik op **PDF versleutelen**.
+5. Download het versleutelde bestand.
+
+## Wachtwoordtypen
+
+### Gebruikerswachtwoord (verplicht)
+
+Het gebruikerswachtwoord typen ontvangers om de PDF te openen. Zonder dit wachtwoord is het document volledig ontoegankelijk. Elke versleutelde PDF moet er een hebben.
+
+### Eigenaarswachtwoord (optioneel)
+
+Het eigenaarswachtwoord bepaalt wat een bevoegde gebruiker kan doen nadat het bestand is geopend. Als je een afwijkend eigenaarswachtwoord instelt, past BentoPDF automatisch de strengste set beperkingen toe:
+
+- Wijzigen uitgeschakeld
+- Extraheren/kopiëren uitgeschakeld
+- Afdrukken uitgeschakeld
+- Annoteren uitgeschakeld
+- Formulieren invullen uitgeschakeld
+- Documentsamenstelling uitgeschakeld
+
+Als je het eigenaarswachtwoord leeg laat, wordt de PDF wel versleuteld (het gebruikerswachtwoord is nog steeds nodig om te openen), maar zijn er geen gebruiksbeperkingen na het openen.
+
+## Versleutelingsdetails
+
+- **Algoritme**: AES-256 (256-bit Advanced Encryption Standard)
+- **Sleutellengte**: 256 bits
+- **Standaard**: PDF 2.0-versleuteling (QPDF-implementatie)
+
+AES-256 is met de huidige technologie rekenkundig onhaalbaar te kraken met brute kracht. De beveiliging van je versleutelde PDF hangt volledig af van de sterkte van je wachtwoord.
+
+## Toepassingen
+
+- Vertrouwelijke financiële rapporten beschermen voordat je ze e-mailt
+- Juridische documenten beveiligen die met de wederpartij worden gedeeld
+- Een wachtwoord toevoegen aan medische dossiers of persoonsgegevens
+- Betaalde content (e-books, rapporten) verspreiden met toegangscontrole
+- Voldoen aan gegevensbeschermingsbeleid dat versleuteling van opgeslagen gegevens vereist
+
+## Tips
+
+- Gebruik een sterk, uniek wachtwoord. Een wachtzin van 12+ tekens met hoofdletters, kleine letters, cijfers en symbolen is ideaal.
+- Deel het wachtwoord via een apart kanaal (telefoon, sms), nooit in dezelfde e-mail als de PDF.
+- Als je alleen acties wilt beperken (niet afdrukken, niet kopiëren) zonder dat een wachtwoord nodig is om te openen, gebruik dan de tool Rechten Aanpassen.
+
+## Gerelateerde tools
+
+- [PDF ontgrendelen](./unlock-pdf): verwijder de versleuteling als je het wachtwoord kent
+- [Rechten aanpassen](./change-permissions): wijzig specifieke gebruiksbeperkingen
+- [Beperkingen verwijderen](./remove-restrictions): haal alle beveiliging uit een PDF
+- [PDF opschonen](./sanitize-pdf): verwijder verborgen inhoud voordat je versleutelt
diff --git a/docs/nl/tools/psd-to-pdf.md b/docs/nl/tools/psd-to-pdf.md
new file mode 100644
index 00000000..15a9d658
--- /dev/null
+++ b/docs/nl/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD naar PDF
+description: Zet Photoshop-bestanden (PSD) om naar PDF in je browser. Gratis, privé, geen Adobe-software nodig.
+---
+
+# PSD naar PDF
+
+Zet Adobe Photoshop PSD-bestanden om naar PDF-documenten. PSD is het eigen formaat van Photoshop en om het te openen is normaal gesproken dure Adobe-software nodig. Deze tool geeft de samengevoegde afbeelding van je PSD-bestand weer als PDF-pagina op volledige resolutie.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :-------------- | :------- | :------------------------------------- |
+| Adobe Photoshop | `.psd` | Geeft de samengevoegde afbeelding weer |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je PSD-bestanden erheen. Meerdere bestanden worden ondersteund.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram of gebruik **Meer bestanden toevoegen** om er meer toe te voegen.
+3. Klik op **Converteren naar PDF**. De PyMuPDF-engine leest het PSD-bestand en sluit de samengevoegde afbeelding op de oorspronkelijke resolutie in een PDF-pagina in.
+4. Eén PSD levert één PDF op. Als je meerdere PSD-bestanden uploadt, worden ze gecombineerd tot één PDF met meerdere pagina's met de naam `psd_to_pdf.pdf`, waarbij elke PSD één pagina wordt.
+
+## Opties
+
+Er zijn geen instellingen nodig. De converter gebruikt de samengevoegde afbeeldingsgegevens uit het PSD-bestand.
+
+## Toepassingen
+
+- Photoshop-ontwerpen bekijken zonder Photoshop te openen
+- Ontwerpproeven sturen naar klanten zonder Adobe Creative Suite
+- Artwork met hoge resolutie afdrukken vanuit PSD-bestanden
+- Een PDF-portfolio maken van meerdere PSD-ontwerpbestanden, waarbij elk een pagina in één document wordt
+
+## Tips
+
+- De conversie geeft de samengevoegde weergave van de PSD weer. Afzonderlijke lagen, aanpassingslagen en laageffecten blijven niet als aparte elementen in de PDF behouden.
+- Meerdere PSD-bestanden worden samengevoegd tot één PDF met meerdere pagina's in plaats van afzonderlijke PDF's. Dat is handig voor portfolio's of lookbooks.
+- PSD-bestanden met zeer hoge resolutie (printbestanden van 300+ DPI) leveren grote PDF's op. De tool behoudt de volledige resolutie.
+
+## Gerelateerde tools
+
+- [Afbeelding naar PDF](./image-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
+- [VSD naar PDF](./vsd-to-pdf)
diff --git a/docs/nl/tools/pub-to-pdf.md b/docs/nl/tools/pub-to-pdf.md
new file mode 100644
index 00000000..cce3e0f3
--- /dev/null
+++ b/docs/nl/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB naar PDF
+description: Zet Microsoft Publisher-bestanden (PUB) om naar PDF in je browser. Gratis, privé, geen software nodig.
+---
+
+# PUB naar PDF
+
+Zet Microsoft Publisher-bestanden om naar PDF. Publisher is een desktoppublishingprogramma dat bij sommige edities van Microsoft Office zit, maar de meeste mensen hebben het niet geïnstalleerd. Met deze tool kan iedereen PUB-bestanden direct in de browser naar PDF converteren, zonder Microsoft-software.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------------------ | :------- | :--------------------------- |
+| Microsoft Publisher | `.pub` | Desktoppublishing-documenten |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je PUB-bestanden erheen. Je kunt meerdere bestanden tegelijk uploaden.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram of klik op **Meer bestanden toevoegen** om er meer toe te voegen.
+3. Klik op **Converteren naar PDF**. Een op LibreOffice gebaseerde engine wordt in de browser geladen en converteert elk PUB-bestand, met behoud van lay-out, afbeeldingen en tekstvakken.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden worden geleverd in een ZIP-archief met de naam `pub-to-pdf.zip`.
+
+## Opties
+
+Er is geen extra configuratie nodig. De converter regelt de PUB-lay-outengine automatisch.
+
+## Toepassingen
+
+- Een PUB-flyer of nieuwsbrief van een klant openen zonder Microsoft Publisher te kopen
+- Kerkbulletins, evenementprogramma's of schoolnieuwsbrieven omzetten die in Publisher zijn gemaakt
+- Marketingmateriaal uit Publisher archiveren in een universeel toegankelijk formaat
+- PUB-bestanden afdrukken op een systeem zonder Publisher
+
+## Tips
+
+- Complexe Publisher-lay-outs met gelaagde tekstvakken en nauwkeurige positionering kunnen tijdens de conversie licht verschuiven. Controleer de uitvoer als exacte positionering belangrijk is.
+- De LibreOffice-engine wordt eenmaal per sessie geïnitialiseerd. De eerste conversie duurt langer, de volgende zijn sneller.
+- Voor de meest getrouwe conversie van Publisher-bestanden moeten eventuele aangepaste lettertypen uit het origineel standaard systeemlettertypen zijn.
+
+## Gerelateerde tools
+
+- [VSD naar PDF](./vsd-to-pdf)
+- [ODP naar PDF](./odp-to-pdf)
diff --git a/docs/nl/tools/rasterize-pdf.md b/docs/nl/tools/rasterize-pdf.md
new file mode 100644
index 00000000..26ab7fac
--- /dev/null
+++ b/docs/nl/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF rasteren
+description: Zet PDF-pagina's om naar een afbeeldingsgebaseerde PDF. Voeg alle lagen samen, verwijder selecteerbare tekst en bepaal DPI en afbeeldingsformaat.
+---
+
+# PDF rasteren
+
+Rasteren zet elke pagina van een PDF om in een afbeelding en voegt die afbeeldingen weer samen tot een PDF. Het resultaat ziet er identiek uit als het origineel, maar bevat geen selecteerbare tekst, geen interactieve elementen en geen bewerkbare lagen. Het is in feite een fotokopie van hoge kwaliteit.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF-bestanden.
+2. Stel de **DPI** (resolutie) in voor de gerasterde uitvoer.
+3. Kies een **afbeeldingsformaat**: PNG voor verliesvrije kwaliteit of JPEG voor kleinere bestanden.
+4. Vink optioneel **Converteren naar grijswaarden** aan.
+5. Klik op **PDF rasteren**. Meerdere bestanden worden als ZIP gedownload.
+
+## Opties
+
+| Instelling | Waarden | Standaard |
+| ---------------------- | --------------------------------- | --------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Afbeeldingsformaat** | PNG (verliesvrij), JPEG (kleiner) | PNG |
+| **Grijswaarden** | Aan/Uit | Uit |
+
+## DPI-richtlijnen
+
+- **72**: alleen voor weergave op het scherm, kleinste bestandsgrootte
+- **150**: goede balans voor algemeen gebruik
+- **200**: scherpere tekst, gemiddelde bestandsgrootte
+- **300**: uitvoer van afdrukkwaliteit
+- **600**: hoogwaardige archivering of professioneel afdrukken
+
+## Toepassingen
+
+- Tekstextractie voorkomen bij vertrouwelijke documenten voordat je ze deelt
+- Problemen met ontbrekende lettertypen voorkomen door tekst om te zetten in pixels
+- Een "platte" versie maken van een PDF met complexe lagen of transparantie die in verschillende viewers anders wordt weergegeven
+- Een PDF voorbereiden voor een systeem dat alleen afbeeldingsinvoer accepteert
+- Verborgen inhoud (zoals bijgehouden wijzigingen of formuliergegevens) verwijderen door de PDF tot pure afbeeldingen terug te brengen
+
+## Tips
+
+- 150 DPI met PNG is een solide standaard. Ga alleen hoger als je afdrukuitvoer nodig hebt of moet inzoomen op fijne details.
+- JPEG levert merkbaar kleinere bestanden op, maar geeft compressieartefacten op scherpe tekstranden.
+- Rasteren is onomkeerbaar: bewaar je originele PDF als je later bewerkbare tekst nodig kunt hebben.
+
+## Gerelateerde tools
+
+- [PDF comprimeren](./compress-pdf): verklein de bestandsgrootte van de gerasterde PDF
+- [PDF rechttrekken](./deskew-pdf): trek pagina's recht voordat je gescande documenten rastert
+- [Lettertype naar contouren](./font-to-outline): zet lettertypen om in vectorpaden als je schaalbaarheid wilt behouden
+- [PDF platmaken](./flatten-pdf): maak formulieren plat zonder ze naar afbeeldingen om te zetten
diff --git a/docs/nl/tools/remove-annotations.md b/docs/nl/tools/remove-annotations.md
new file mode 100644
index 00000000..4e79765c
--- /dev/null
+++ b/docs/nl/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Annotaties verwijderen
+description: Verwijder met één klik alle opmerkingen, markeringen, links en andere annotaties uit je PDF.
+---
+
+# Annotaties verwijderen
+
+Maak je PDF schoon door alle annotaties te verwijderen: opmerkingen, markeringen, plaknotities, tekstopmaak, links, stempels en alle andere annotatieobjecten in het document. De onderliggende pagina-inhoud (tekst, afbeeldingen, graphics) blijft ongewijzigd.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. De tool detecteert het aantal pagina's van het document en toont bestandsinformatie.
+3. Klik op **Annotaties verwijderen** om te verwerken.
+4. De opgeschoonde PDF wordt automatisch gedownload, zonder annotaties.
+
+## Functies
+
+- Verwijdert alle annotatietypen: opmerkingen, markeringen, onderstrepingen, doorhalingen, plaknotities, stempels, links en formulieropmaak
+- Werkt op elke pagina in het document
+- Behoudt alle inhoud die geen annotatie is (tekst, afbeeldingen, vectorgraphics, formuliervelden)
+- Toont het aantal pagina's en de bestandsgrootte voor de verwerking
+
+## Toepassingen
+
+- Een document opschonen voor de definitieve verspreiding na een beoordelingsronde waarin meerdere reviewers opmerkingen hebben toegevoegd
+- Markeringen en plaknotities verwijderen uit een gedeelde studiegids
+- Linkannotaties verwijderen uit een document voordat je het archiveert
+- Een "schone" versie maken van een juridisch document dat tijdens onderhandelingen veel annotaties kreeg
+- Opmerkingen van reviewers verwijderen uit een manuscript voordat het naar de drukker gaat
+
+## Tips
+
+- Deze tool verwijdert annotaties op het niveau van de PDF-structuur, dus het resultaat behoudt selecteerbare tekst en de oorspronkelijke kwaliteit. Er komt geen rasteren aan te pas.
+- Als je alleen specifieke annotaties wilt verwijderen in plaats van alle, gebruik dan de [PDF bewerken](./edit-pdf) om afzonderlijke annotaties gericht te verwijderen.
+- Annotaties in platgemaakte PDF's (waarin annotaties zijn samengevoegd met de pagina-inhoud) kunnen niet worden verwijderd, omdat het geen aparte objecten meer zijn.
+
+## Gerelateerde tools
+
+- [PDF bewerken](./edit-pdf)
+- [Watermerk toevoegen](./add-watermark)
+- [PDF ondertekenen](./sign-pdf)
diff --git a/docs/nl/tools/remove-blank-pages.md b/docs/nl/tools/remove-blank-pages.md
new file mode 100644
index 00000000..4f2e0a80
--- /dev/null
+++ b/docs/nl/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Blanco pagina's verwijderen
+description: Detecteer en verwijder automatisch blanco of bijna blanco pagina's uit je PDF met instelbare gevoeligheid.
+---
+
+# Blanco pagina's verwijderen
+
+Scan je PDF op blanco of bijna blanco pagina's en verwijder ze automatisch. De tool rendert elke pagina en analyseert de pixelinhoud om te bepalen of die blanco is. Daarna bevestig je welke pagina's worden verwijderd voordat de verwerking start.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. Pas de schuifregelaar **Gevoeligheid** aan om te bepalen hoe strikt "blanco" wordt gedefinieerd.
+3. Klik op **Blanco pagina's detecteren** om het document te scannen.
+4. De tool toont miniaturen van gedetecteerde blanco pagina's, zodat je ze kunt controleren.
+5. Bevestig de selectie en download de opgeschoonde PDF zonder blanco pagina's.
+
+## Opties
+
+- **Gevoeligheid**: een schuifregelaar van 0% tot 100% (standaard 80%). Hogere waarden zijn strenger en markeren alleen pagina's die volledig of bijna wit zijn. Lagere waarden zijn toleranter en vangen ook pagina's met minimale inhoud, zoals één stipje of een vaag watermerk.
+
+## Functies
+
+- Analyse op pixelniveau van elke pagina om blanco inhoud te detecteren
+- Instelbare gevoeligheid voor fijnafstemming van de detectie
+- Miniatuurvoorbeeld van gedetecteerde blanco pagina's voor handmatige controle
+- Behoudt alle niet-blanco pagina's precies zoals ze zijn
+- Verwerkt documenten van elke grootte of elk aantal pagina's
+- Voortgangsinformatie tijdens het scannen
+
+## Toepassingen
+
+- Gescande documenten opschonen waarbij de scanner lege achterkanten van enkelzijdige originelen heeft vastgelegd
+- Scheidingspagina's verwijderen uit in bulk gescande documentbatches
+- Blanco pagina's verwijderen die door documentbeheersystemen zijn toegevoegd
+- PDF's opschonen die uit tekstverwerkers zijn geëxporteerd en soms blanco pagina's aan het einde bevatten
+- De bestandsgrootte verkleinen door onnodige lege pagina's te verwijderen
+
+## Tips
+
+- Begin met de standaardgevoeligheid van 80% en pas die daarna aan. Als de tool pagina's mist die er voor jou blanco uitzien, verlaag dan de gevoeligheid. Als hij pagina's markeert met lichte inhoud die je wilt houden, verhoog je die.
+- De tool rendert elke pagina om de inhoud te analyseren, dus de verwerkingstijd schaalt met het aantal pagina's. Bij zeer grote documenten kun je een korte wachttijd verwachten.
+- Controleer de gedetecteerde blanco pagina's in het miniatuurvoorbeeld voordat je de verwijdering bevestigt. Pagina's met vage kopteksten, voetteksten of watermerken kunnen worden gemarkeerd, afhankelijk van de gevoeligheid.
+
+## Gerelateerde tools
+
+- [PDF bijsnijden](./crop-pdf)
+- [PDF bewerken](./edit-pdf)
+- [Paginanummers](./page-numbers)
diff --git a/docs/nl/tools/remove-metadata.md b/docs/nl/tools/remove-metadata.md
new file mode 100644
index 00000000..ebbdfa03
--- /dev/null
+++ b/docs/nl/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Metadata verwijderen
+description: Verwijder alle verborgen metadata uit PDF-bestanden, waaronder auteur, titel, aanmaakdatum, producent, XMP-gegevens en document-ID's.
+---
+
+# Metadata verwijderen
+
+Elke PDF bevat metadata die kan onthullen wie het bestand heeft gemaakt, welke software is gebruikt, wanneer het voor het laatst is gewijzigd en meer. Deze tool verwijdert dat alles: het infowoordenboek, XMP-metadatastreams, document-ID's en toepassingsspecifieke gegevens. Het resultaat is een schoon document zonder spoor van de herkomst.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Klik op **Metadata verwijderen**.
+3. Download het opgeschoonde bestand.
+
+Er zijn geen opties om in te stellen. De tool is bewust grondig: hij wist alles.
+
+## Wat wordt verwijderd
+
+- **Velden van het infowoordenboek**: titel, auteur, onderwerp, trefwoorden, maker, producent, aanmaakdatum, wijzigingsdatum
+- **XMP-metadatastream**: het op XML gebaseerde metadatablok in de documentcatalogus
+- **Document-ID's**: unieke identificatiecodes in de PDF-trailer waarmee een document tussen systemen kan worden gevolgd
+- **PieceInfo**: toepassingsspecifieke metadata die door programma's als Illustrator of InDesign wordt toegevoegd
+
+## Wat blijft
+
+- Alle zichtbare pagina-inhoud (tekst, afbeeldingen, graphics)
+- Formuliervelden en annotaties
+- Bladwijzers en links
+- De documentstructuur zelf
+
+## Toepassingen
+
+- Je naam en organisatie uit een document verwijderen voordat je het anoniem publiceert
+- Aanmaaktijdstempels verwijderen die verraden wanneer een document is opgesteld
+- Producentstrings opschonen die je PDF-softwarestack verraden
+- Documenten voorbereiden voor officiële indieningen die PDF's zonder metadata vereisen
+- Sporen van de bewerkingsgeschiedenis verwijderen voordat je een document extern deelt
+
+## Tips
+
+- Gebruik eerst de tool Metadata Weergeven om precies te zien welke metadata je PDF bevat voordat je die verwijdert.
+- Als je naast metadata ook JavaScript, annotaties en ingesloten bestanden wilt verwijderen, gebruik dan PDF Opschonen voor een grondigere schoonmaak.
+- Het verwijderen van metadata is permanent. Bewaar je origineel als je die gegevens later nog nodig kunt hebben.
+
+## Gerelateerde tools
+
+- [PDF opschonen](./sanitize-pdf): verwijder metadata plus scripts, bijlagen en meer
+- [PDF versleutelen](./protect-pdf): beveilig de opgeschoonde PDF met een wachtwoord
+- [PDF comprimeren](./compress-pdf): het verwijderen van metadata kan het bestand iets verkleinen, comprimeer voor meer besparing
diff --git a/docs/nl/tools/remove-restrictions.md b/docs/nl/tools/remove-restrictions.md
new file mode 100644
index 00000000..452f8f82
--- /dev/null
+++ b/docs/nl/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Beperkingen verwijderen
+description: Verwijder wachtwoordbeveiliging, afdrukbeperkingen, bewerkingsvergrendelingen en kopieerbeperkingen uit PDF-bestanden.
+---
+
+# Beperkingen verwijderen
+
+PDF's kunnen twee soorten wachtwoorden hebben: een gebruikerswachtwoord (nodig om het bestand te openen) en een eigenaarswachtwoord (bepaalt wat je ermee mag doen). Deze tool verwijdert beide, samen met alle bijbehorende beperkingen: afdrukken, bewerken, kopiëren en annotatievergrendelingen.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Als de PDF een eigenaarswachtwoord heeft, voer je dat in bij het veld **Eigenaarswachtwoord**. Laat het leeg als de PDF alleen gebruiksbeperkingen zonder wachtwoord heeft.
+3. Klik op **Beperkingen verwijderen**.
+4. Download de PDF zonder beperkingen.
+
+De tool gebruikt de vlaggen `--decrypt` en `--remove-restrictions` van QPDF om een schone kopie zonder beperkingen te maken.
+
+## Wat wordt verwijderd
+
+- Wachtwoordbeveiliging (zowel gebruikers- als eigenaarswachtwoorden)
+- Afdrukbeperkingen
+- Bewerkingsbeperkingen
+- Beperkingen op het kopiëren van tekst en afbeeldingen
+- Beperkingen op annotaties en opmerkingen
+- Alle andere beveiligingsbeperkingen die in de PDF zijn vastgelegd
+
+## Toepassingen
+
+- Een PDF ontgrendelen die van jou is, maar waarvan je het wachtwoord jaren geleden hebt ingesteld
+- Afdrukbeperkingen verwijderen uit een document waartoe je legitiem toegang hebt
+- Kopiëren en plakken mogelijk maken in naslagmateriaal om aantekeningen te maken
+- PDF's voorbereiden voor toegankelijkheidstools die geen beperkte documenten aankunnen
+
+## Tips
+
+- Je moet het eigenaarswachtwoord kennen als er een is ingesteld. Deze tool kraakt of brute-forcet geen wachtwoorden.
+- Als je het bestand versleuteld wilt houden maar specifieke rechten wilt wijzigen, gebruik dan de tool Rechten Aanpassen.
+- Het uitvoerbestand heeft geen enkele versleuteling: iedereen die het ontvangt kan het vrij openen.
+
+## Gerelateerde tools
+
+- [PDF ontgrendelen](./unlock-pdf): ontgrendel een PDF als je het gebruikerswachtwoord kent
+- [PDF versleutelen](./protect-pdf): pas de versleuteling opnieuw toe met nieuwe instellingen
+- [Rechten aanpassen](./change-permissions): wijzig selectief welke acties zijn toegestaan
diff --git a/docs/nl/tools/repair-pdf.md b/docs/nl/tools/repair-pdf.md
new file mode 100644
index 00000000..5ba0c2db
--- /dev/null
+++ b/docs/nl/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: PDF repareren
+description: Herstel gegevens uit corrupte of beschadigde PDF-bestanden met de reparatie-engine van QPDF. Ondersteunt batchverwerking.
+---
+
+# PDF repareren
+
+Als een PDF niet opent, onleesbare inhoud toont of fouten veroorzaakt in je viewer, probeert deze tool de interne structuur opnieuw op te bouwen. Hij gebruikt de reparatie-engine van QPDF, die gegevens kan herstellen bij veel soorten corruptie: kapotte kruisverwijzingstabellen, afgekapte streams, ongeldige objectverwijzingen en meer.
+
+## Hoe het werkt
+
+1. Upload een of meer beschadigde PDF-bestanden.
+2. Klik op **PDF repareren**.
+3. Eén gerepareerd bestand wordt direct gedownload. Meerdere bestanden leveren een ZIP-archief op.
+
+De tool voert elk bestand door QPDF met de vlag `--decrypt`, waardoor QPDF de volledige PDF-structuur leest en herschrijft en herstelbare problemen onderweg oplost.
+
+## Functies
+
+- Batchreparatie van meerdere PDF's in één bewerking
+- Automatische detectie van herstelbare en onherstelbare bestanden
+- Succes- en foutmelding per bestand bij verwerking van meerdere bestanden
+- Gebruikt QPDF (WebAssembly), een beproefde bibliotheek voor PDF-transformaties
+
+## Wat het kan oplossen
+
+- Kapotte of ontbrekende kruisverwijzingstabellen
+- Afgekapte bestandseinden door onvolledige downloads
+- Ongeldige objectnummering en streamlengtes
+- Kleine structurele inconsistenties door foutieve PDF-generatoren
+- Versleutelingsartefacten van mislukte pogingen tot ontsleuteling
+
+## Wat het niet kan oplossen
+
+- Ernstig afgekapte bestanden waarin het grootste deel van de inhoud ontbreekt
+- PDF's die zijn versleuteld met een wachtwoord dat je niet hebt
+- Bestanden die eigenlijk geen PDF zijn (verkeerde bestandsextensie)
+- Afbeeldingscorruptie in de PDF (de structuur wordt hersteld, maar pixelgegevens worden niet opnieuw gegenereerd)
+
+## Toepassingen
+
+- Een PDF herstellen na een mislukte e-maildownload
+- Bestanden openen die door oudere of niet-standaard PDF-generatoren zijn gemaakt
+- PDF's repareren die in de ene viewer werken maar in de andere niet
+- Beschadigde archiefdocumenten voorbereiden voor langdurige opslag
+
+## Tips
+
+- Als de reparatie mislukt, probeer het bestand dan eerst in een browser te openen. Browsers hebben eigen herstellogica en kunnen genoeg inhoud weergeven om opnieuw op te slaan.
+- Als een versleutelde PDF de reparatie niet doorstaat, probeer dan eerst PDF ontgrendelen en repareer daarna de ontgrendelde uitvoer.
+
+## Gerelateerde tools
+
+- [PDF comprimeren](./compress-pdf): maak de structuur van de gerepareerde PDF verder schoon
+- [PDF lineariseren](./linearize-pdf): optimaliseer het gerepareerde bestand voor weblevering
+- [PDF platmaken](./flatten-pdf): maak formulieren plat die mogelijk beschadigd zijn
diff --git a/docs/nl/tools/reverse-pages.md b/docs/nl/tools/reverse-pages.md
new file mode 100644
index 00000000..cb6451f4
--- /dev/null
+++ b/docs/nl/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Paginavolgorde omkeren
+description: Keer de paginavolgorde van een of meer PDF-bestanden om, zodat de laatste pagina de eerste wordt.
+---
+
+# Paginavolgorde omkeren
+
+Keer de paginavolgorde van een PDF om, zodat de laatste pagina de eerste wordt, de voorlaatste de tweede, enzovoort. Ondersteunt batchverwerking van meerdere bestanden tegelijk.
+
+## Hoe het werkt
+
+1. Upload een of meer PDF-bestanden.
+2. Klik op de verwerkknop.
+3. Elk bestand wordt afzonderlijk omgekeerd. Als je meerdere bestanden hebt geüpload, is de uitvoer een ZIP-archief met alle omgekeerde PDF's.
+4. Eén bestand wordt direct gedownload als omgekeerde PDF.
+
+## Functies
+
+- Batchverwerking: keer meerdere PDF's om in één bewerking
+- Eén uitvoerbestand voor één PDF, ZIP-uitvoer voor meerdere
+- Verwijderknoppen per bestand voor de verwerking
+- Behoudt alle pagina-inhoud en opmaak
+
+## Toepassingen
+
+- Een document corrigeren dat in omgekeerde volgorde is gescand
+- Een presentatie-PDF voorbereiden om van achteren naar voren te lezen
+- De paginavolgorde omkeren voor afdrukprocessen waarbij pagina's omgekeerd worden ingevoerd
+- Een document herstellen waarvan de pagina's per ongeluk achterstevoren zijn samengesteld
+
+## Tips
+
+- Elk bestand in een batch wordt afzonderlijk omgekeerd: de bestanden zelf worden niet ten opzichte van elkaar herschikt.
+- Voor gedetailleerdere herordening van pagina's (niet alleen volledig omkeren) gebruik je [Dupliceren en organiseren](./organize-pdf).
+
+## Gerelateerde tools
+
+- [Dupliceren en organiseren](./organize-pdf)
+- [PDF roteren](./rotate-pdf)
+- [PDF-multitool](./pdf-multi-tool)
diff --git a/docs/nl/tools/rotate-custom.md b/docs/nl/tools/rotate-custom.md
new file mode 100644
index 00000000..ab5a92be
--- /dev/null
+++ b/docs/nl/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Roteren met aangepaste hoek
+description: Roteer PDF-pagina's met elke hoek, met gradeninvoer per pagina en batchrotatiebesturing.
+---
+
+# Roteren met aangepaste hoek
+
+Roteer PDF-pagina's met een willekeurige hoek, niet alleen in stappen van 90 graden. Elke pagina heeft een eigen hoekinvoer, en met de batchbesturing pas je in één keer dezelfde hoek toe op alle pagina's.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand. Van elke pagina worden miniaturen weergegeven.
+2. Elke pagina heeft een numeriek invoerveld met de huidige rotatiehoek.
+3. Typ een willekeurige gradenwaarde (positief of negatief) om een specifieke pagina te roteren, of gebruik de links/rechts-knoppen per pagina voor snelle aanpassingen van 90 graden.
+4. Gebruik de invoer **batchhoek** bovenaan om één uniforme rotatie voor alle pagina's in te stellen.
+5. Klik op de verwerkknop om de geroteerde PDF te genereren.
+
+## Functies
+
+- Vrije gradeninvoer per pagina (elke geheel getal)
+- Batchhoekbesturing om dezelfde rotatie op elke pagina in te stellen
+- Realtime voorbeeld van de rotatie in miniaturen
+- Snelknoppen per pagina voor stappen van 90 graden
+- Miniaturen worden pas geladen wanneer nodig, voor goede prestaties bij grote documenten
+
+## Toepassingen
+
+- Enigszins scheve scans met een paar graden corrigeren
+- Pagina's roteren om aan een niet-standaard oriëntatievereiste te voldoen
+- Nauwkeurige rotaties toepassen op afzonderlijke pagina's in een document met gemengde inhoud
+- Paginahoeken verfijnen na een eerste bulkrotatie
+
+## Tips
+
+- Positieve waarden roteren met de klok mee, negatieve waarden tegen de klok in.
+- Het veld voor de batchhoek overschrijft alle hoeken per pagina wanneer het wordt toegepast. Stel afzonderlijke aanpassingen in na de batchbewerking als dat nodig is.
+- Voor standaardrotaties van 90/180/270 graden met een eenvoudigere interface gebruik je [PDF roteren](./rotate-pdf).
+
+## Gerelateerde tools
+
+- [PDF roteren](./rotate-pdf)
+- [PDF-multitool](./pdf-multi-tool)
+- [Dupliceren en organiseren](./organize-pdf)
diff --git a/docs/nl/tools/rotate-pdf.md b/docs/nl/tools/rotate-pdf.md
new file mode 100644
index 00000000..b534bfc9
--- /dev/null
+++ b/docs/nl/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PDF roteren
+description: Roteer afzonderlijke pagina's of alle pagina's in een PDF in stappen van 90 graden met een visuele miniatuurinterface.
+---
+
+# PDF roteren
+
+Roteer pagina's in een PDF 90 graden met de klok mee of ertegenin. De tool toont miniatuurvoorbeelden van elke pagina, zodat je ze afzonderlijk kunt roteren of een bulkrotatie op het hele document kunt toepassen.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand. Miniaturen van elke pagina worden in een raster weergegeven.
+2. Gebruik de links/rechts-rotatieknoppen onder elke paginaminiatuur om die specifieke pagina te roteren.
+3. Gebruik de bulkrotatiebesturing bovenaan om alle pagina's tegelijk te roteren.
+4. Het miniatuurvoorbeeld wordt in realtime bijgewerkt om de rotatie te tonen.
+5. Klik op de verwerkknop om de geroteerde PDF op te slaan.
+
+## Functies
+
+- Rotatie per pagina in stappen van 90 graden (links of rechts)
+- Bulkrotatie voor alle pagina's tegelijk
+- Realtime miniatuurvoorbeeld met geanimeerde rotatieovergangen
+- Miniaturen worden pas geladen wanneer nodig, voor vlotte prestaties bij grote documenten
+- Behoudt de oorspronkelijke pagina-inhoud en kwaliteit
+
+## Toepassingen
+
+- Zijwaarts of ondersteboven gescande pagina's corrigeren
+- Liggende pagina's naar staande oriëntatie roteren (of andersom)
+- Een document met gemengde oriëntatie corrigeren waarin sommige pagina's onder de verkeerde hoek zijn gescand
+- Een document voorbereiden voor een specifieke weergaveoriëntatie
+
+## Tips
+
+- Rotaties zijn cumulatief. Twee keer op de knop met de klok mee klikken geeft een rotatie van 180 graden.
+- Voor rotaties die geen veelvoud van 90 graden zijn (bijvoorbeeld 45 graden om een licht scheve scan te corrigeren) gebruik je [Roteren met aangepaste hoek](./rotate-custom).
+- De bulkrotatiebesturing werkt op alle pagina's, niet alleen op geselecteerde. Deze tool heeft geen selectiemechanisme. Gebruik daarvoor de [PDF-multitool](./pdf-multi-tool).
+
+## Gerelateerde tools
+
+- [Roteren met aangepaste hoek](./rotate-custom)
+- [PDF-multitool](./pdf-multi-tool)
+- [Dupliceren en organiseren](./organize-pdf)
diff --git a/docs/nl/tools/rtf-to-pdf.md b/docs/nl/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..eefa2093
--- /dev/null
+++ b/docs/nl/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF naar PDF
+description: Zet Rich Text Format-bestanden (RTF) om naar PDF in je browser met een engine op basis van LibreOffice.
+---
+
+# RTF naar PDF
+
+Zet Rich Text Format-documenten om naar PDF. RTF is een platformonafhankelijk documentformaat dat vrijwel elke tekstverwerker ondersteunt. Deze tool gebruikt een LibreOffice-engine in de browser om RTF-bestanden met behoud van opmaak weer te geven: vet, cursief, tabellen en ingesloten afbeeldingen komen allemaal mee in de PDF.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies | MIME-types |
+| :------ | :-------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep een of meer RTF-bestanden erheen.
+2. Bekijk de bestandslijst. Voeg meer bestanden toe of verwijder ze naar wens.
+3. Klik op **Converteren naar PDF**. De LibreOffice-engine wordt bij het eerste gebruik geïnitialiseerd en verwerkt daarna elk bestand.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden worden geleverd als `rtf-converted.zip`.
+
+## Opties
+
+Deze tool heeft geen extra instellingen. De conversie behoudt de oorspronkelijke RTF-opmaak.
+
+## Uitvoer
+
+| Aantal bestanden | Uitvoer |
+| :--------------- | :-------------------------------------------------------- |
+| 1 bestand | Eén PDF-download (bijvoorbeeld `letter.pdf`) |
+| 2+ bestanden | ZIP-archief (`rtf-converted.zip`) met één PDF per bestand |
+
+## Toepassingen
+
+- Oude RTF-documenten van oudere tekstverwerkers omzetten naar moderne PDF's
+- RTF-e-mailsjablonen omzetten naar PDF-voorbeelden
+- RTF-uitvoer van juridische of medische softwaresystemen verwerken
+- RTF-bestanden uit een documentbeheersysteem in bulk naar PDF converteren voor archivering
+
+## Tips
+
+- De LibreOffice-engine wordt eenmaal geladen en gecachet. De eerste conversie in een sessie duurt een paar seconden langer, de volgende zijn sneller.
+- RTF-bestanden met ingesloten OLE-objecten worden mogelijk niet alle perfect weergegeven. Platte tekst, afbeeldingen en standaardopmaak worden betrouwbaar geconverteerd.
+- Als je RTF-bestanden met Microsoft Word zijn gemaakt, kun je ze ook direct converteren met de tool [Word naar PDF](./word-to-pdf), die RTF naast DOC en DOCX accepteert.
+
+## Gerelateerde tools
+
+- [Word naar PDF](./word-to-pdf)
+- [ODT naar PDF](./odt-to-pdf)
+- [Tekst naar PDF](./txt-to-pdf)
diff --git a/docs/nl/tools/sanitize-pdf.md b/docs/nl/tools/sanitize-pdf.md
new file mode 100644
index 00000000..0f9b9bd6
--- /dev/null
+++ b/docs/nl/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: PDF opschonen
+description: Verwijder verborgen en mogelijk gevaarlijke inhoud uit PDF's, waaronder metadata, JavaScript, ingesloten bestanden, annotaties en lagen.
+---
+
+# PDF opschonen
+
+PDF's kunnen veel meer bevatten dan je op het scherm ziet. Verborgen metadata, ingesloten JavaScript, bestandsbijlagen, formuliergegevens en laaginformatie kunnen gevoelige gegevens lekken of beveiligingsrisico's vormen. Opschonen verwijdert dit alles en laat een schoon document over dat veilig openbaar gedeeld kan worden.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. Selecteer in de checklist welke elementen moeten worden verwijderd.
+3. Klik op **PDF opschonen**.
+4. Download het opgeschoonde bestand.
+
+## Opschoonopties
+
+Alle opties staan standaard aan. Haal het vinkje weg bij opties die je wilt behouden.
+
+| Optie | Wat het verwijdert |
+| ------------------------------------ | -------------------------------------------------------------------------------- |
+| **Formulieren platmaken** | Zet interactieve formuliervelden om in statische inhoud |
+| **Metadata verwijderen** | Verwijdert auteur, titel, aanmaakdatum, software-info en XMP-gegevens |
+| **Annotaties verwijderen** | Verwijdert opmerkingen, markeringen, plaknotities en opmaak |
+| **JavaScript verwijderen** | Verwijdert ingesloten scripts die bij het openen kunnen worden uitgevoerd |
+| **Ingesloten bestanden verwijderen** | Verwijdert bestandsbijlagen die in de PDF zijn ingesloten |
+| **Lagen verwijderen (OCG)** | Voegt optionele inhoudsgroepen samen tot één laag |
+| **Links verwijderen** | Verwijdert hyperlinks en URL-verwijzingen |
+| **Structuurboom verwijderen** | Verwijdert de documentstructuur die voor toegankelijkheidstagging wordt gebruikt |
+| **MarkInfo verwijderen** | Verwijdert informatie over gemarkeerde inhoud |
+| **Lettertypen verwijderen** | Verwijdert ingesloten lettertypegegevens (met voorzichtigheid gebruiken) |
+
+## Toepassingen
+
+- Een PDF voorbereiden voor openbare publicatie door interne metadata (auteursnamen, softwareversies, bewerkingsgeschiedenis) te verwijderen
+- JavaScript verwijderen uit een PDF van een onvertrouwde bron voordat je die opent
+- Een PDF opschonen voordat je die naar een klant stuurt die geen ingesloten opmerkingen of namen van formuliervelden hoeft te zien
+- Verborgen lagen verwijderen uit een architectuurtekening voordat je de definitieve versie deelt
+- Voldoen aan eisen voor gegevensminimalisatie volgens privacywetgeving
+
+## Tips
+
+- Laat "Lettertypen verwijderen" uitgevinkt, tenzij je zeker weet dat de PDF daarna nog correct wordt weergegeven. Het verwijderen van lettertypen kan tekst in sommige viewers onzichtbaar maken.
+- Als je alleen metadata wilt verwijderen, is de speciale tool Metadata Verwijderen sneller en gerichter.
+- Opschonen is onomkeerbaar. Bewaar je originele bestand.
+
+## Gerelateerde tools
+
+- [Metadata verwijderen](./remove-metadata): verwijder alleen metadata zonder andere inhoud aan te raken
+- [PDF platmaken](./flatten-pdf): maak specifiek formulieren en annotaties plat
+- [PDF versleutelen](./protect-pdf): voeg wachtwoordbeveiliging toe na het opschonen
+- [PDF rasteren](./rasterize-pdf): de nucleaire optie, zet om naar afbeeldingen om alle verborgen inhoud te elimineren
diff --git a/docs/nl/tools/scanner-effect.md b/docs/nl/tools/scanner-effect.md
new file mode 100644
index 00000000..147ccc75
--- /dev/null
+++ b/docs/nl/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Scannereffect
+description: Laat je PDF eruitzien als een gescand document met instelbare ruis, rotatie, vervaging en papierveroudering.
+---
+
+# Scannereffect
+
+Verander een schone digitale PDF in iets dat eruitziet alsof het uit een flatbedscanner komt. De tool past instelbare ruis, lichte rotatie, vervaging, helderheidsverschuivingen en optionele vergeling toe om de imperfecties van een fysieke scan te simuleren.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. De editor opent met een live voorbeeld van de eerste pagina naast een instellingenpaneel.
+3. Pas de parameters van het scaneffect aan met de schuifregelaars en schakelaars.
+4. Het voorbeeld wordt in realtime bijgewerkt terwijl je instellingen wijzigt.
+5. Klik op **Toepassen** om alle pagina's te verwerken en het resultaat te downloaden.
+
+## Opties
+
+- **Kleurruimte (schakelaar voor grijswaarden)**: zet de uitvoer om naar grijswaarden voor een klassieke zwart-witscan.
+- **Rand**: voeg een subtiele donkere rand rond de paginarand toe om artefacten van scannerranden na te bootsen.
+- **Roteren**: pas een lichte rotatie toe (-5 tot +5 graden) om scheef ingevoerd papier te simuleren.
+- **Rotatievariatie**: voeg willekeurige variatie aan de rotatiehoek toe, zodat elke pagina iets anders scheef staat.
+- **Helderheid**: verschuif de algehele helderheid omhoog of omlaag.
+- **Contrast**: pas het contrast aan om variaties in tonerkwaliteit te simuleren.
+- **Vervagen**: pas Gaussiaanse vervaging toe om tekstranden zachter te maken, zoals bij een scan van lage kwaliteit.
+- **Ruis**: voeg willekeurige pixelruis toe om korrel van de scannersensor te simuleren. Hogere waarden geven een korreliger resultaat.
+- **Vergeeld**: voeg een warme gele tint toe om verouderd of gerecycled papier te simuleren.
+- **Resolutie**: stel de DPI van de uitvoer in. Lagere waarden geven een meer gepixeld, scanachtig uiterlijk.
+- **Resetten**: zet alle instellingen terug naar de standaardwaarden.
+
+## Functies
+
+- Realtime voorbeeld dat wordt bijgewerkt terwijl je elke parameter aanpast
+- Willekeurige rotatievariatie per pagina voor realistische afwisseling
+- Tien onafhankelijk instelbare parameters
+- Grijswaardenmodus voor authentieke zwart-witscanuitvoer
+- Resolutiebesturing van faxkwaliteit met lage DPI tot archiefkwaliteit met hoge DPI
+
+## Toepassingen
+
+- Digitaal gemaakte documenten eruit laten zien alsof ze zijn gescand en afgedrukt
+- Fysieke documentveroudering simuleren voor het nabootsen van historische documenten
+- OCR-software testen met verslechterde scankwaliteit
+- Documenten maken die aansluiten bij de visuele stijl van bestaande gescande archieven
+
+## Tips
+
+- Begin met subtiele waarden. Een ruisniveau van 10-20, een lichte rotatie van 0,5 graad en minimale vervaging geven al een overtuigende scanlook.
+- Combineer de grijswaardenmodus met lichte vergeling voor een "kopie van een kopie"-effect.
+- Lagere resolutie-instellingen (100-150 DPI) geven het meest realistische uiterlijk van een faxapparaat.
+
+## Gerelateerde tools
+
+- [Kleuren omkeren](./invert-colors)
+- [Kleuren aanpassen](./adjust-colors)
+- [Achtergrondkleur](./background-color)
diff --git a/docs/nl/tools/sign-pdf.md b/docs/nl/tools/sign-pdf.md
new file mode 100644
index 00000000..572779cb
--- /dev/null
+++ b/docs/nl/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: PDF ondertekenen
+description: Teken, typ of upload een handtekening en plaats die op je PDF-pagina's met een geïntegreerde viewer.
+---
+
+# PDF ondertekenen
+
+Voeg je handtekening toe aan elk PDF-document. De tool bevat een volledige PDF-viewer met ingebouwde handtekeningtools waarmee je een handtekening uit de vrije hand kunt tekenen, je naam in een handtekeninglettertype kunt typen of een afbeelding van een handtekening kunt uploaden. Plaats handtekeningen op elke pagina en pas het formaat aan, en sla daarna het ondertekende document op.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. Het document opent in een geïntegreerde PDF-viewer met annotatietools.
+3. Gebruik de handtekeningtool van de viewer om je handtekening te maken door te tekenen, te typen of een afbeelding te uploaden.
+4. Klik op de pagina waar je de handtekening wilt plaatsen en pas het formaat en de positie aan.
+5. Vink optioneel **PDF platmaken** aan om de handtekening permanent in het document in te sluiten.
+6. Klik op **Opslaan en ondertekende PDF downloaden** om je ondertekende bestand te krijgen.
+
+## Opties
+
+- **PDF platmaken**: als dit is aangevinkt, wordt de handtekening permanent in de pagina-inhoud ingesloten. Dit voorkomt dat anderen de handtekening verplaatsen of verwijderen. Als het niet is aangevinkt, blijft de handtekening een annotatie die in compatibele viewers kan worden bewerkt.
+
+## Functies
+
+- Drie manieren om een handtekening te maken: tekenen uit de vrije hand, getypte tekst of geüploade afbeelding
+- Geïntegreerde PDF-viewer voor nauwkeurige plaatsing
+- Slepen om handtekeningen op elke pagina te positioneren en het formaat aan te passen
+- Optioneel platmaken om handtekeningen permanent in te sluiten
+- Ondersteuning voor meerdere handtekeningen in hetzelfde document
+
+## Toepassingen
+
+- Contracten, overeenkomsten of goedkeuringsformulieren ondertekenen voordat je ze terugstuurt
+- Je handtekening toevoegen aan belastingdocumenten, verzekeringsclaims of overheidsformulieren
+- Paraafjes plaatsen op afzonderlijke pagina's van een overeenkomst met meerdere pagina's
+- NDA's of HR-documenten ondertekenen die als PDF-bijlage binnenkomen
+
+## Tips
+
+- Schakel platmaken in als je de ondertekende PDF stuurt naar iemand die je handtekening niet mag kunnen verwijderen of verplaatsen.
+- Voor juridisch bindende digitale handtekeningen met verificatie op basis van certificaten biedt BentoPDF ook een aparte tool Digitale handtekening.
+- Upload een PNG-afbeelding van je handtekening met een transparante achtergrond voor het schoonste resultaat.
+
+## Gerelateerde tools
+
+- [PDF bewerken](./edit-pdf)
+- [Stempels toevoegen](./add-stamps)
+- [PDF-formulier invullen](./form-filler)
diff --git a/docs/nl/tools/split-pdf.md b/docs/nl/tools/split-pdf.md
new file mode 100644
index 00000000..62fdd810
--- /dev/null
+++ b/docs/nl/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: PDF splitsen
+description: Splits een PDF in kleinere bestanden op paginabereik, visuele selectie, bladwijzers, even/oneven pagina's of vaste intervallen.
+---
+
+# PDF splitsen
+
+Verdeel een PDF in kleinere documenten met een van de zes splitsmodi. Van eenvoudige paginabereiken tot splitsen op basis van bladwijzers: deze tool dekt elk scenario om een document te verdelen.
+
+## Hoe het werkt
+
+1. Upload één PDF-bestand.
+2. Kies een splitsmodus in de keuzelijst.
+3. Configureer de opties van de modus (paginabereiken, selecties, enzovoort).
+4. Klik op de verwerkknop.
+5. Het resultaat wordt gedownload als één PDF of als ZIP-archief, afhankelijk van de modus en instellingen.
+
+## Splitsmodi
+
+| Modus | Beschrijving |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Bereik** | Voer paginabereiken in zoals `1-3, 5, 8-10`. Meerdere bereiken leveren aparte PDF's in een ZIP op. Eén bereik levert één PDF op. |
+| **Visuele selectie** | Blader door paginaminiaturen en klik om de gewenste pagina's te selecteren. Geselecteerde pagina's worden geëxtraheerd naar een nieuwe PDF. |
+| **Even / Oneven** | Extraheer alleen even of alleen oneven pagina's. |
+| **Alle pagina's** | Splits elke pagina in een eigen PDF-bestand, gedownload als ZIP. |
+| **Bladwijzers** | Splits op de grenzen van bladwijzers. Kies het bladwijzerniveau om te bepalen waar wordt gesplitst. |
+| **Elke N pagina's** | Splits in blokken van N pagina's (bijvoorbeeld elke 5 pagina's). Het laatste blok kan minder pagina's hebben. |
+
+## Functies
+
+- Zes verschillende splitsmodi die vrijwel elk gebruiksscenario dekken
+- Visuele paginaselectie met miniaturen die pas worden geladen wanneer nodig
+- Splitsen op bladwijzers met niveaufiltering
+- ZIP-uitvoer als optie voor de modi Bereik en Visuele selectie
+- Verwerkt paginabereiken met gemengde syntaxis (`1-3, 5, 8-10`)
+- Waarschuwing wanneer splitsen per N pagina's ongelijke blokken oplevert
+
+## Toepassingen
+
+- Een specifiek hoofdstuk of onderdeel uit een groot document halen
+- Oneven en even pagina's scheiden voor dubbelzijdig afdrukken
+- Een boek-PDF op de grenzen van bladwijzers opdelen in afzonderlijke hoofdstukbestanden
+- Specifieke pagina's (zoals een handtekeningpagina) uit een contract isoleren
+- Een samengesteld rapport splitsen in bestanden per onderdeel voor distributie
+
+## Tips
+
+- Meerdere paginabereiken gescheiden door komma's (bijvoorbeeld `1-5, 10-15, 20-25`) leveren aparte PDF's op, één per bereik, gebundeld in een ZIP.
+- De modus Bladwijzers vereist dat de PDF daadwerkelijk bladwijzers bevat. Als er geen worden gevonden, krijg je een foutmelding.
+- Met het selectievakje "Downloaden als ZIP" in de modi Bereik en Visuele selectie krijg je afzonderlijke PDF's per pagina in plaats van één gecombineerd bestand.
+
+## Gerelateerde tools
+
+- [PDF samenvoegen](./merge-pdf)
+- [Pagina's extraheren](./extract-pages)
+- [Pagina's verwijderen](./delete-pages)
+- [PDF-multitool](./pdf-multi-tool)
diff --git a/docs/nl/tools/svg-to-pdf.md b/docs/nl/tools/svg-to-pdf.md
new file mode 100644
index 00000000..d4c39a50
--- /dev/null
+++ b/docs/nl/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG naar PDF
+description: Zet SVG-vectorafbeeldingen om naar PDF met kwaliteitsinstelling, volledig in je browser.
+---
+
+# SVG naar PDF
+
+Zet Scalable Vector Graphics-bestanden (SVG) om naar PDF. De tool rastert elke SVG via de renderengine van de browser en sluit het resultaat in op de oorspronkelijke resolutie. Handig om vectorpictogrammen, diagrammen en illustraties om te zetten in draagbare documenten.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------- |
+| SVG | `.svg` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep een of meer SVG-bestanden erheen.
+2. Bekijk en beheer de bestandslijst.
+3. Kies een niveau voor **PDF-kwaliteit**.
+4. Klik op **Converteren naar PDF**. Het resultaat wordt gedownload als `from_svgs.pdf`.
+
+Elke SVG wordt als tekst gelezen, op een canvas weergegeven met de eigen breedte en hoogte (standaard 800x600 als er geen afmetingen zijn opgegeven) en geëxporteerd als PNG. Die PNG wordt vervolgens met pdf-lib in de PDF ingesloten. Transparante gebieden worden met een witte achtergrond gevuld.
+
+## Opties
+
+**PDF-kwaliteit** bepaalt de compressie na het rasteren:
+
+- **Hoge kwaliteit**: het dichtst bij de oorspronkelijke weergave.
+- **Gemiddelde kwaliteit** (standaard): goede balans.
+- **Lage kwaliteit**: kleinste bestand, enig detailverlies.
+
+## Toepassingen
+
+- Architectuur- of technische diagrammen van SVG omzetten naar een drukklare PDF
+- Pictogramsets bundelen in een naslag-PDF voor een designsysteem
+- Datavisualisaties (D3.js, exports van grafiekbibliotheken) omzetten in rapportklare PDF's
+- Afdrukbare versies maken van infographics op basis van SVG
+
+## Tips
+
+- SVG-bestanden zonder expliciete attributen `width` en `height` worden weergegeven op 800x600 pixels. Stel voor het beste resultaat de afmetingen in de SVG-bron in voordat je converteert.
+- Complexe SVG's met verwijzingen naar externe lettertypen of gekoppelde afbeeldingen worden mogelijk niet perfect weergegeven. Sluit alle assets in de SVG zelf in voor betrouwbare uitvoer.
+- Omdat de SVG wordt gerasterd, bevat de PDF een bitmapafbeelding in plaats van vectorpaden. Voor echte vector-PDF-uitvoer is een speciale vectortool nodig.
+
+## Gerelateerde tools
+
+- [Afbeelding naar PDF](./image-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
+- [BMP naar PDF](./bmp-to-pdf)
diff --git a/docs/nl/tools/table-of-contents.md b/docs/nl/tools/table-of-contents.md
new file mode 100644
index 00000000..6505148f
--- /dev/null
+++ b/docs/nl/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Inhoudsopgave
+description: Genereer een opgemaakte inhoudsopgavepagina op basis van de bestaande bladwijzers van je PDF.
+---
+
+# Inhoudsopgave
+
+Deze tool leest de bladwijzers (overzichten) in je PDF en genereert een opgemaakte inhoudsopgavepagina die vooraan in het document wordt geplaatst. Als je PDF al bladwijzers heeft maar geen zichtbare inhoudsopgave, maakt deze tool er automatisch een.
+
+## Hoe het werkt
+
+1. Upload een PDF met bladwijzers.
+2. Pas de titel, de lettergrootte en het lettertype van de inhoudsopgave aan.
+3. Vink optioneel **Bladwijzer voor inhoudsopgavepagina toevoegen** aan om de inhoudsopgave zelf in de bladwijzerstructuur op te nemen.
+4. Klik op **Inhoudsopgave genereren** om het bestand te verwerken.
+5. De bijgewerkte PDF wordt automatisch gedownload, met de inhoudsopgavepagina vooraan ingevoegd.
+
+## Opties
+
+- **Titel van inhoudsopgave**: de kop bovenaan de gegenereerde pagina. Standaard "Inhoudsopgave".
+- **Lettergrootte**: kies van 10pt tot 72pt. De standaard is 12pt.
+- **Lettertype**: kies uit varianten van Times Roman, Helvetica of Courier (normaal, vet, cursief, vet cursief). Standaard Helvetica.
+- **Bladwijzer voor inhoudsopgavepagina toevoegen**: als dit is aangevinkt, wordt een bladwijzer voor de inhoudsopgavepagina zelf aan de overzichtsboom van de PDF toegevoegd.
+
+## Functies
+
+- Leest de volledige bladwijzerhiërarchie uit de PDF
+- Genereert een netjes opgemaakte inhoudsopgavepagina met paginaverwijzingen
+- Ondersteunt geneste bladwijzerniveaus met inspringing
+- Keuze uit 12 ingebouwde PDF-lettertypen
+- Optionele bladwijzer die naar de inhoudsopgavepagina zelf verwijst
+
+## Toepassingen
+
+- Een afdrukbare inhoudsopgave toevoegen aan e-books of rapporten die alleen digitale bladwijzers hebben
+- Een inhoudsopgave maken voor een samengevoegd document na het combineren van meerdere PDF's
+- Een verwijspagina genereren voor lange technische handleidingen
+- Documenten voorbereiden voor druk waarbij een zichtbare inhoudsopgave wordt verwacht
+
+## Tips
+
+- Als je PDF geen bladwijzers heeft, gebruik dan eerst de tool [Bladwijzers bewerken](./bookmark) om ze te maken en kom daarna hier terug om de inhoudsopgave te genereren.
+- Voor grote documenten verbetert een grotere lettergrootte zoals 14pt of 16pt de leesbaarheid.
+
+## Gerelateerde tools
+
+- [Bladwijzers bewerken](./bookmark)
+- [Paginanummers](./page-numbers)
+- [Koptekst en voettekst](./header-footer)
diff --git a/docs/nl/tools/text-color.md b/docs/nl/tools/text-color.md
new file mode 100644
index 00000000..2ecbb32f
--- /dev/null
+++ b/docs/nl/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Tekstkleur
+description: Wijzig de kleur van alle tekst in je PDF naar een kleur naar keuze.
+---
+
+# Tekstkleur
+
+Vervang de kleur van tekst in je hele PDF. De tool herkent tekstgebieden op elke pagina en geeft ze de gekozen kleur, met behoud van de documentlay-out en de inhoud die geen tekst is.
+
+## Hoe het werkt
+
+1. Upload je PDF-bestand.
+2. Kies een nieuwe tekstkleur met de kleurkiezer. De standaard is blauw (#0000FF).
+3. Klik op **Tekstkleur** om te verwerken.
+4. De opnieuw ingekleurde PDF wordt automatisch gedownload. Een voortgangsindicator toont welke pagina wordt verwerkt.
+
+## Opties
+
+- **Nieuwe tekstkleur**: een kleurkiezer om de vervangende kleur voor alle tekst in het document te selecteren.
+
+## Functies
+
+- Kleurt tekst op elke pagina van het document opnieuw
+- Verwerking per pagina met voortgangsinformatie
+- Kleurkiezer met volledige ondersteuning voor hexkleuren
+- Behoudt de paginalay-out en elementen die geen tekst zijn
+
+## Toepassingen
+
+- Zwarte tekst wijzigen in donkerblauw voor een zachter, moderner uiterlijk van het document
+- Tekst opnieuw inkleuren volgens huisstijlrichtlijnen voordat je documenten verspreidt
+- Tekst naar een specifieke kleur omzetten voor naleving van toegankelijkheidseisen
+- Tekst zichtbaar maken tegen een nieuw toegepaste achtergrondkleur
+
+## Tips
+
+- Deze tool rendert pagina's op 2x schaal voor kwaliteit en bouwt daarna de PDF opnieuw op. De uitvoer is afbeeldingsgebaseerd, dus tekst is niet meer selecteerbaar of doorzoekbaar.
+- Voor documenten waarvan je selecteerbare tekst wilt behouden, kun je de PDF beter direct bewerken met de [PDF bewerken](./edit-pdf).
+- De verwerkingstijd neemt toe met het aantal pagina's, omdat elke pagina afzonderlijk wordt gerenderd.
+
+## Gerelateerde tools
+
+- [Achtergrondkleur](./background-color)
+- [Kleuren omkeren](./invert-colors)
+- [Kleuren aanpassen](./adjust-colors)
diff --git a/docs/nl/tools/tiff-to-pdf.md b/docs/nl/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..d6ef9c88
--- /dev/null
+++ b/docs/nl/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF naar PDF
+description: Zet TIFF-afbeeldingen met een of meer pagina's om naar PDF in je browser, met volledige ondersteuning voor pagina's.
+---
+
+# TIFF naar PDF
+
+Zet TIFF-bestanden om naar PDF, ook TIFF's met meerdere pagina's. Elke pagina (of "IFD") in een TIFF-bestand wordt een aparte pagina in de uitvoer-PDF. Dit is vooral handig voor gescande documenten, faxen en medische beelden die vaak als TIFF met meerdere pagina's worden opgeslagen.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je TIFF-bestanden erheen.
+2. Bekijk de bestandslijst en beheer die naar wens.
+3. Klik op **Converteren naar PDF**. Het resultaat wordt gedownload als `from_tiff.pdf`.
+
+De tool decodeert elk TIFF-bestand met een JavaScript-TIFF-decoder en haalt de ruwe RGBA-pixelgegevens van elke pagina op. Elke pagina wordt op een canvas weergegeven, als PNG geëxporteerd en in de PDF ingesloten. De paginaafmetingen komen overeen met de oorspronkelijke TIFF-pagina's.
+
+## Opties
+
+Deze tool biedt geen extra kwaliteitsinstellingen. Afbeeldingen worden ingesloten op hun oorspronkelijke resolutie.
+
+## Toepassingen
+
+- Faxdocumenten met meerdere pagina's (TIFF-F) omzetten naar een draagbaarder PDF-formaat
+- Gescande documentarchieven die als TIFF zijn opgeslagen omzetten in doorzoekbare PDF's (combineer daarna met de OCR-tool)
+- Medische beeldbestanden verwerken (pathologiepreparaten, radiologie-exports) die TIFF gebruiken
+- GIS- of satellietbeelden in TIFF omzetten in deelbare documenten
+
+## Tips
+
+- TIFF's met meerdere pagina's worden volledig ondersteund. Een TIFF van 10 pagina's levert een PDF van 10 pagina's op. Je hoeft de TIFF niet eerst te splitsen.
+- Zeer grote TIFF-bestanden (honderden megabytes) kunnen langer duren omdat het hele bestand in het browsergeheugen moet worden gedecodeerd.
+- Als je OCR op de resulterende PDF nodig hebt, voer je die na de conversie door de tool [PDF OCR](./ocr-pdf).
+
+## Gerelateerde tools
+
+- [Afbeelding naar PDF](./image-to-pdf)
+- [BMP naar PDF](./bmp-to-pdf)
+- [JPG naar PDF](./jpg-to-pdf)
diff --git a/docs/nl/tools/txt-to-pdf.md b/docs/nl/tools/txt-to-pdf.md
new file mode 100644
index 00000000..1e1a6858
--- /dev/null
+++ b/docs/nl/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Tekst naar PDF
+description: Zet platte tekstbestanden of getypte tekst om naar PDF met aangepaste lettertypen, kleuren en paginaformaten.
+---
+
+# Tekst naar PDF
+
+Zet platte tekst om in een opgemaakte PDF. Je kunt `.txt`-bestanden uploaden of direct typen in de ingebouwde teksteditor. De tool ondersteunt meerdere lettertypen, aangepaste tekstkleuren en een breed scala aan paginaformaten: van A0 tot A10, plus US Letter, Legal en Tabloid.
+
+## Ondersteunde formaten
+
+| Invoer | Extensies |
+| :-------------------- | :----------------------- |
+| Platte tekstbestanden | `.txt` |
+| Directe tekstinvoer | Typ of plak in de editor |
+
+## Hoe het werkt
+
+1. Kies je invoermodus met de schakelaar bovenaan: **Bestanden uploaden** of **Tekst typen**.
+2. Bij uploaden sleep je een of meer `.txt`-bestanden erheen of klik je om ze te selecteren. Bij typen voer je je tekst direct in het tekstvak in.
+3. Configureer de opmaakopties: lettertype, lettergrootte, tekstkleur en paginaformaat.
+4. Klik op **PDF maken**. De uitvoer wordt gedownload als `text_to_pdf.pdf`.
+
+Bij het uploaden van meerdere bestanden worden de inhouden aaneengevoegd met lege regels ertussen.
+
+## Opties
+
+| Optie | Waarden | Standaard |
+| :---------------- | :------------------------------------------------------------------------------------ | :-------------- |
+| **Lettertype** | Helvetica (schreefloos), Tiro (met schreef), Courier (monospace), Times (met schreef) | Helvetica |
+| **Lettergrootte** | 6 -- 72 pt | 12 |
+| **Tekstkleur** | Elke kleur via kleurkiezer | Zwart (#000000) |
+| **Paginaformaat** | ISO A0--A10, B0--B10, C0--C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+RTL-talen (Arabisch, Hebreeuws, Perzisch, Urdu) worden automatisch herkend. Als RTL-tekst wordt gevonden, schakelen de tekstrichting en uitlijning dienovereenkomstig om.
+
+## Toepassingen
+
+- Codefragmenten of logbestanden omzetten in een afdrukbare PDF met het lettertype Courier
+- Snel een PDF maken van ter plekke getypte vergadernotities
+- Een manuscript in platte tekst opmaken met een specifiek lettertype en paginaformaat voor inzending
+- Een PDF-versie maken van een README of changelog voor offline distributie
+
+## Tips
+
+- Gebruik de modus **Tekst typen** als je snel klembordinhoud wilt converteren zonder het eerst als bestand op te slaan.
+- Courier (monospace) is de beste keuze voor code, logs of elke inhoud waarbij uitlijning van kolommen telt.
+- De paginamarges zijn vast ingesteld op 72 punten (1 inch) aan alle kanten.
+
+## Gerelateerde tools
+
+- [Markdown naar PDF](./markdown-to-pdf)
+- [CSV naar PDF](./csv-to-pdf)
+- [Word naar PDF](./word-to-pdf)
diff --git a/docs/nl/tools/unlock-pdf.md b/docs/nl/tools/unlock-pdf.md
new file mode 100644
index 00000000..4fb70d59
--- /dev/null
+++ b/docs/nl/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: PDF ontgrendelen
+description: Verwijder wachtwoordbeveiliging van versleutelde PDF's. Ondersteunt het ontsleutelen van meerdere bestanden met één wachtwoord.
+---
+
+# PDF ontgrendelen
+
+Als je het wachtwoord van een versleutelde PDF hebt, verwijdert deze tool de versleuteling volledig. Je krijgt een ontgrendelde kopie die iedereen zonder wachtwoord kan openen. Meerdere PDF's met hetzelfde wachtwoord ontsleutel je in één keer.
+
+## Hoe het werkt
+
+1. Upload een of meer versleutelde PDF-bestanden.
+2. Voer het **wachtwoord** in waarmee de bestanden zijn beveiligd.
+3. Klik op **PDF ontsleutelen**.
+4. Een enkel bestand wordt direct gedownload. Bij meerdere bestanden krijg je een ZIP-archief met alle ontgrendelde PDF's.
+
+## Functies
+
+- Ontsleutelen van losse bestanden en van reeksen
+- Werkt met zowel gebruikerswachtwoorden als eigenaarswachtwoorden
+- Levert een volledig onversleutelde uitvoer zonder overgebleven beperkingen
+- Duidelijke foutmeldingen bij onjuiste wachtwoorden of beschadigde bestanden
+- Succes of mislukking per bestand bij reeksverwerking
+
+## Verschil met Beperkingen verwijderen
+
+**PDF ontsleutelen** vereist het wachtwoord en verwijdert alle versleuteling. **Beperkingen verwijderen** richt zich op gebruiksbeperkingen (afdrukken, kopiëren, bewerken) en heeft mogelijk geen wachtwoord nodig als alleen een eigenaarswachtwoord is ingesteld. Gebruik Ontsleutelen als de PDF zonder wachtwoord helemaal niet opent.
+
+## Toepassingen
+
+- PDF's die je eerder hebt versleuteld definitief ontgrendelen als het wachtwoord niet meer nodig is
+- Versleuteling verwijderen van een reeks gearchiveerde documenten voor eenvoudiger toegang op de lange termijn
+- Met een wachtwoord beveiligde PDF's voorbereiden voor een documentbeheersysteem dat geen versleutelde bestanden ondersteunt
+- PDF's ontgrendelen voordat je ze samenvoegt met andere documenten (veel samenvoegtools kunnen versleutelde invoer niet verwerken)
+
+## Tips
+
+- Het wachtwoordveld geldt voor alle geüploade bestanden. Hebben je PDF's verschillende wachtwoorden, verwerk ze dan in aparte reeksen.
+- Krijg je de melding "Onjuist wachtwoord", controleer dan op spaties aan het eind of op Caps Lock.
+- Na het ontsleutelen heeft de uitvoer geen enkele beveiliging meer. Versleutel opnieuw met PDF versleutelen als je een nieuw wachtwoord wilt instellen.
+
+## Gerelateerde tools
+
+- [PDF versleutelen](./protect-pdf): versleutel opnieuw met een nieuw wachtwoord
+- [Beperkingen verwijderen](./remove-restrictions): verwijder gebruiksbeperkingen zonder volledig te ontsleutelen
+- [Rechten aanpassen](./change-permissions): wijzig specifieke rechten van een versleutelde PDF
diff --git a/docs/nl/tools/validate-signature-pdf.md b/docs/nl/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..06e62cd5
--- /dev/null
+++ b/docs/nl/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Handtekening valideren
+description: Controleer digitale handtekeningen in PDF-bestanden. Controleer de geldigheid van certificaten, de identiteit van de ondertekenaar, de integriteit van het document en de status van de vertrouwensketen.
+---
+
+# Handtekening valideren
+
+Upload een ondertekende PDF en deze tool haalt elke digitale handtekening eruit, identificeert de ondertekenaar, controleert de geldigheid van het certificaat en meldt of het document na het ondertekenen is gewijzigd. Je kunt ook een vertrouwd certificaat opgeven om de handtekeningketen te controleren.
+
+## Hoe het werkt
+
+1. Upload een ondertekend PDF-bestand. De validatie start automatisch.
+2. De tool toont een samenvatting: het aantal gevonden handtekeningen en hoeveel daarvan geldig zijn.
+3. Elke handtekening krijgt een gedetailleerde kaart met naam van de ondertekenaar, uitgever, datums en status.
+4. Upload optioneel een **vertrouwd certificaat** (.pem, .crt, .cer, .der) om de handtekening te controleren tegen een specifiek vertrouwensanker. De hervalidatie start automatisch.
+
+## Wat er wordt gecontroleerd
+
+### Handtekening uitlezen
+
+De tool haalt PKCS#7-handtekeningobjecten uit de PDF, decodeert de ASN.1-structuur en leest het X.509-certificaat van de ondertekenaar uit, samen met eventuele certificaatketens die in de handtekening zijn ingebed.
+
+### Geldigheid van het certificaat
+
+- **Vervaldatum**: valt het certificaat nu binnen de geldigheidsperiode?
+- **Zelfondertekend**: is het certificaat zijn eigen uitgever?
+- **Vertrouwensketen**: leidt het certificaat van de ondertekenaar, als een vertrouwd certificaat is opgegeven, terug naar dat certificaat?
+
+### Cryptografische controle
+
+- De tool reconstrueert de bytes die door de `/ByteRange` van de handtekening worden gedekt, berekent er een hash van met het algoritme dat de ondertekenaar heeft opgegeven en vergelijkt het resultaat met het attribuut `messageDigest` in de handtekening.
+- Daarna serialiseert de tool de ondertekende attributen opnieuw als een DER SET en controleert de handtekening met de publieke sleutel van het certificaat van de ondertekenaar.
+- **Een handtekening wordt alleen als geldig gemeld als al deze controles slagen.** Als de PDF-bytes na het ondertekenen zijn gewijzigd, of de ingebedde handtekening niet bij de sleutel van de ondertekenaar past, toont de status "Ongeldig: cryptografische controle mislukt" met de specifieke reden.
+
+#### Ondersteunde handtekeningalgoritmen
+
+| Algoritme | Controlepad |
+| ----------------------- | -------------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, met Web Crypto als terugval |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` na conversie van DER naar IEEE P1363-handtekening |
+
+Gebruikt een handtekening een algoritme buiten deze lijst (bijvoorbeeld Ed25519, SM2 of RSA met een ongebruikelijke digest-OID), dan toont de kaart in geel **"Niet geverifieerd: niet-ondersteund handtekeningalgoritme"**, samen met de specifieke OID of reden. Dit is een bewust onderscheid in drie statussen:
+
+- **Geldig**: de handtekening is cryptografisch geverifieerd met de publieke sleutel van de ondertekenaar.
+- **Ongeldig**: de controle is uitgevoerd en gaf een negatief resultaat (bytes gewijzigd, sleutel komt niet overeen).
+- **Niet geverifieerd**: de tool kon voor dit algoritme geen controle uitvoeren. De certificaatmetadata wordt nog steeds getoond, maar beschouw de handtekening als "onbekend" en controleer hem met Adobe Acrobat of `openssl cms -verify`.
+
+### Onveilige digest-algoritmen
+
+- Handtekeningen met **MD5 of SHA-1** worden als ongeldig afgewezen en gemarkeerd met de status "Onveilige digest". Voor beide algoritmen zijn collision-aanvallen gepubliceerd, dus een handtekening over een SHA-1- of MD5-hash biedt geen garantie voor integriteit.
+- SHA-224, SHA-256, SHA-384 en SHA-512 worden allemaal geaccepteerd.
+
+### Dekking van het document
+
+- **Volledige dekking**: de handtekening dekt het hele PDF-bestand, dus er zijn na het ondertekenen geen bytes toegevoegd of gewijzigd.
+- **Gedeeltelijke dekking**: de handtekening dekt slechts een deel van het bestand. Dit kan erop wijzen dat er na het ondertekenen wijzigingen zijn aangebracht (niet per se kwaadwillend, want incrementeel opslaan geeft gedeeltelijke dekking).
+
+## Handtekeningdetails
+
+Elke handtekeningkaart toont:
+
+- **Ondertekend door**: algemene naam, organisatie en e-mailadres uit het certificaat van de ondertekenaar
+- **Uitgever**: de certificeringsinstantie die het certificaat van de ondertekenaar heeft uitgegeven
+- **Ondertekend op**: het tijdstempel dat in de handtekening is ingebed
+- **Geldig vanaf / Geldig tot**: de geldigheidsperiode van het certificaat
+- **Reden**: waarom het document is ondertekend (indien opgegeven)
+- **Locatie**: waar het is ondertekend (indien opgegeven)
+- **Dekkingsstatus**: volledig of gedeeltelijk
+- **Vertrouwensbadge**: vertrouwd of niet in de vertrouwensketen (alleen als een eigen certificaat is opgegeven)
+
+### Technische details
+
+Klap het gedeelte met technische details uit voor:
+
+- Serienummer van het certificaat van de ondertekenaar
+- Digest-algoritme (SHA-256, SHA-512, enz.)
+- Handtekeningalgoritme (RSA met SHA-256, ECDSA met SHA-256, enz.)
+- Foutmeldingen voor ongeldige handtekeningen
+
+## Toepassingen
+
+- Een digitaal ondertekend contract controleren voordat je mede-ondertekent
+- Ondertekende documenten controleren om te bevestigen dat er niet mee is geknoeid
+- Nagaan of een certificaat is verlopen sinds het document is ondertekend
+- Handtekeningen valideren tegen het basiscertificaat van je organisatie
+- De ondertekeningsdetails van overheids- of juridische documenten inspecteren
+
+## Tips
+
+- Een zelfondertekend certificaat betekent niet dat de handtekening ongeldig is. Het betekent dat de identiteit van de ondertekenaar niet via een vertrouwde derde partij kan worden geverifieerd. Dit komt vaak voor bij interne documenten.
+- Gedeeltelijke dekking wijst niet altijd op knoeien. Veel PDF-workflows voegen incrementele updates toe (zoals een tweede handtekening) die gedeeltelijke dekking veroorzaken.
+- Upload het basis- of tussencertificaat van je organisatie als vertrouwd certificaat om de vertrouwensketen te laten controleren.
+
+## Gerelateerde tools
+
+- [Digitale handtekening](./digital-sign-pdf): onderteken PDF's met je eigen certificaat
+- [PDF platmaken](./flatten-pdf): maak een PDF plat voor het ondertekenen om wijzigingen na de handtekening te voorkomen
+- [Metadata verwijderen](./remove-metadata): maak een PDF schoon voordat je een handtekening toevoegt
diff --git a/docs/nl/tools/view-metadata.md b/docs/nl/tools/view-metadata.md
new file mode 100644
index 00000000..c1d915b6
--- /dev/null
+++ b/docs/nl/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Metadata weergeven
+description: Bekijk alle metadata-eigenschappen van een PDF, waaronder documentinformatie, XMP-gegevens en structurele details.
+---
+
+# Metadata weergeven
+
+Bekijk de verborgen eigenschappen die in een PDF-bestand zijn ingebed. De tool toont documentinformatie (titel, auteur, datums), XMP-metadata, paginaafmetingen en andere structurele gegevens in een leesbaar formaat.
+
+## Hoe het werkt
+
+1. Upload een PDF-bestand.
+2. De tool leest het bestand direct in en toont alle beschikbare metadata in overzichtelijke secties.
+3. Bekijk het documentinfo-woordenboek, de XMP-metadataboom en de structurele eigenschappen.
+4. Een verwerkingsstap is niet nodig: de metadata verschijnt zodra het bestand is geladen.
+
+## Functies
+
+- Toont de standaardvelden van de documentinformatie: titel, auteur, onderwerp, trefwoorden, maker, producent
+- Toont aanmaak- en wijzigingsdatums in een leesbare notatie
+- Leest de volledige XMP-metadataboom in en toont die, inclusief geneste naamruimten
+- Zet het PDF-datumformaat (`D:20240101120000Z`) om naar leesbare datums
+- Ingedeeld in inklapbare secties voor eenvoudige navigatie
+
+## Metadatasecties
+
+| Sectie | Inhoud |
+| ------------------------- | -------------------------------------------------------------------------------------- |
+| **Documentinformatie** | Titel, auteur, onderwerp, trefwoorden, maker, producent, aanmaakdatum, wijzigingsdatum |
+| **XMP-metadata** | Volledige XML-metadataboom met Dublin Core-, XAP-, PDF- en eigen naamruimten |
+| **Documenteigenschappen** | Aantal pagina's, PDF-versie, bestandsgrootte, versleutelingsstatus |
+
+## Toepassingen
+
+- Nagaan wie een PDF heeft gemaakt en wanneer hij voor het laatst is gewijzigd
+- Controleren of de metadata goed is ingesteld voordat je een document publiceert
+- PDF's controleren op privacy door te kijken welke persoonlijke gegevens erin zijn ingebed
+- Onderzoeken welke software een PDF heeft gemaakt of gewijzigd (via het veld Producent)
+- XMP-metadata bekijken voor naleving van digitaal assetbeheer
+
+## Tips
+
+- PDF-datumstrings die met `D:` beginnen, worden automatisch omgezet naar de notatie van je lokale tijdzone.
+- Als metadatavelden leeg lijken, heeft de maker van de PDF ze simpelweg niet ingesteld. Niet alle PDF's bevatten uitgebreide metadata.
+- Gebruik [Metadata bewerken](./edit-metadata) om metadata te wijzigen nadat je die hebt bekeken. Gebruik Metadata verwijderen om alles te wissen.
+
+## Gerelateerde tools
+
+- [Metadata bewerken](./edit-metadata)
+- [PDF OCG-lagen](./pdf-layers)
+- [PDF's vergelijken](./compare-pdfs)
diff --git a/docs/nl/tools/vsd-to-pdf.md b/docs/nl/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..5c6a644d
--- /dev/null
+++ b/docs/nl/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD naar PDF
+description: Zet Microsoft Visio-diagrammen (VSD/VSDX) in je browser om naar PDF. Gratis, privé, geen Visio nodig.
+---
+
+# VSD naar PDF
+
+Zet Microsoft Visio-diagrammen om naar PDF zonder Visio te installeren. VSD- en VSDX-bestanden bevatten stroomdiagrammen, organogrammen, netwerkdiagrammen en plattegronden die de meeste mensen niet kunnen openen. Deze tool maakt er nette PDF's van die op elk apparaat te bekijken zijn.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :----------- | :------- | :--------------------------------------------- |
+| Visio binair | `.vsd` | Verouderd Visio-formaat (Visio 2003 en eerder) |
+| Visio XML | `.vsdx` | Modern Visio-formaat (Visio 2013+) |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je VSD- of VSDX-bestanden erheen. Beide formaten kunnen in één reeks door elkaar staan.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram, of gebruik **Meer bestanden toevoegen** om meer diagrammen toe te voegen.
+3. Klik op **Converteren naar PDF**. De op LibreOffice gebaseerde engine wordt in de browser geladen en zet elk diagram om naar een PDF, met behoud van vormen, connectoren, labels en pagina-indeling.
+4. Een enkel diagram wordt direct als PDF gedownload. Bij meerdere bestanden krijg je een ZIP-archief met de naam `vsd-to-pdf.zip`.
+
+## Opties
+
+Er is geen configuratie nodig. De converter respecteert het oorspronkelijke paginaformaat en de oriëntatie van het Visio-document.
+
+## Toepassingen
+
+- Visio-diagrammen van een collega bekijken als je geen Visio-licentie hebt
+- Netwerk- of architectuurdiagrammen als PDF in projectdocumentatie opnemen
+- Organogrammen of processchema's afdrukken als handout voor vergaderingen
+- Oude VSD-bestanden van eerdere Visio-versies archiveren in een toekomstbestendig formaat
+
+## Tips
+
+- Visio-documenten met meerdere pagina's leveren PDF's met meerdere pagina's op, waarbij elke Visio-pagina overeenkomt met een PDF-pagina.
+- VSDX-bestanden (het moderne, op XML gebaseerde formaat) worden over het algemeen nauwkeuriger omgezet dan oudere binaire VSD-bestanden.
+- De LibreOffice-engine wordt eenmaal per sessie geladen. Verwacht een korte wachttijd bij de eerste conversie en snellere resultaten bij volgende bestanden.
+
+## Gerelateerde tools
+
+- [ODG naar PDF](./odg-to-pdf)
+- [PUB naar PDF](./pub-to-pdf)
+- [PSD naar PDF](./psd-to-pdf)
diff --git a/docs/nl/tools/webp-to-pdf.md b/docs/nl/tools/webp-to-pdf.md
new file mode 100644
index 00000000..134540ef
--- /dev/null
+++ b/docs/nl/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP naar PDF
+description: Zet WebP-afbeeldingen rechtstreeks in je browser om naar PDF, met instelbare compressiekwaliteit.
+---
+
+# WebP naar PDF
+
+Zet het WebP-afbeeldingsformaat van Google om naar PDF. Dit is vooral handig als je afbeeldingen van het web hebt gedownload die in WebP staan en je ze in een breder geaccepteerd formaat nodig hebt om af te drukken of te delen.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :------ | :-------- |
+| WebP | `.webp` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je WebP-bestanden erheen.
+2. Bekijk de bestandslijst en verwijder bestanden die je niet nodig hebt.
+3. Kies een niveau voor **PDF-kwaliteit**.
+4. Klik op **Converteren naar PDF**. De uitvoer wordt gedownload als `from_webps.pdf`.
+
+Intern wordt elke WebP-afbeelding gedecodeerd via de canvas-API van de browser en daarna met pdf-lib in de PDF ingebed. Dit betekent dat de conversie werkt in elke browser die WebP-decodering ondersteunt (alle moderne browsers doen dat).
+
+## Opties
+
+**PDF-kwaliteit** bepaalt de compressie bij het inbedden van afbeeldingen:
+
+- **Hoge kwaliteit**: behoudt de meeste details.
+- **Gemiddelde kwaliteit** (standaard): gebalanceerde uitvoer.
+- **Lage kwaliteit**: kleinste bestandsgrootte.
+
+## Toepassingen
+
+- Van het web gedownloade afbeeldingen die als WebP zijn opgeslagen omzetten naar een afdrukbare PDF
+- WebP-schermafbeeldingen uit Chrome of Edge bundelen in documentatie
+- Een PDF-portfolio maken van afbeeldingen die door ontwerptools standaard als WebP zijn geëxporteerd
+- WebP-afbeeldingen archiveren in een breder leesbaar formaat
+
+## Tips
+
+- WebP wordt intern naar PNG gedecodeerd voordat het in de PDF wordt ingebed, dus lossless WebP-afbeeldingen behouden hun kwaliteit bij de instelling Hoog.
+- Heb je een mix van WebP en andere afbeeldingsformaten, gebruik dan de tool [Afbeelding naar PDF](./image-to-pdf): die accepteert alles in één keer.
+
+## Gerelateerde tools
+
+- [Afbeelding naar PDF](./image-to-pdf)
+- [PNG naar PDF](./png-to-pdf)
+- [JPG naar PDF](./jpg-to-pdf)
diff --git a/docs/nl/tools/word-to-pdf.md b/docs/nl/tools/word-to-pdf.md
new file mode 100644
index 00000000..cd8e3e3f
--- /dev/null
+++ b/docs/nl/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word naar PDF
+description: Zet Word-documenten (DOC, DOCX), ODT- en RTF-bestanden in je browser om naar PDF met behoud van de volledige opmaak.
+---
+
+# Word naar PDF
+
+Zet Microsoft Word-documenten en compatibele formaten om naar PDF. De tool gebruikt een LibreOffice-engine in de browser die DOC-, DOCX-, ODT- en RTF-bestanden verwerkt en opmaak, tabellen, afbeeldingen, kopteksten, voetteksten en stijlen in de uitvoer behoudt.
+
+## Ondersteunde formaten
+
+| Formaat | Extensies |
+| :---------------- | :-------- |
+| Word (modern) | `.docx` |
+| Word (verouderd) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je Word-documenten erheen. Je kunt meerdere bestanden tegelijk selecteren.
+2. Bekijk en beheer de bestandslijst.
+3. Klik op **Converteren naar PDF**. De LibreOffice-engine wordt bij het eerste gebruik geladen (een voortgangsindicator toont de status van de initialisatie), daarna wordt elk bestand omgezet.
+4. Een enkel bestand wordt direct als PDF gedownload. Meerdere bestanden worden samengebundeld in `word-converted.zip`.
+
+## Opties
+
+Deze tool heeft geen extra instellingen. De LibreOffice-engine maakt de uitvoer met het standaard PDF-exportprofiel.
+
+## Uitvoer
+
+| Aantal bestanden | Uitvoer |
+| :--------------- | :--------------------------------------------------------------------- |
+| 1 bestand | Enkele PDF-download (oorspronkelijke bestandsnaam met extensie `.pdf`) |
+| 2+ bestanden | ZIP-archief (`word-converted.zip`) met één PDF per bestand |
+
+## Toepassingen
+
+- Een cv of sollicitatiebrief van DOCX naar PDF omzetten voordat je solliciteert
+- Een reeks contracten of offertes in één keer naar PDF omzetten voor oplevering aan een klant
+- Oude `.doc`-bestanden omzetten naar moderne PDF's voor archivering op de lange termijn
+- Gezamenlijke documenten uit Google Docs (geëxporteerd als DOCX) naar PDF omzetten
+- Drukklare PDF's maken van Word-sjablonen die bij geautomatiseerde documentgeneratie worden gebruikt
+
+## Tips
+
+- De LibreOffice-engine wordt eenmaal per sessie gedownload en in de cache bewaard. Verwacht een paar seconden laadtijd bij de eerste conversie, daarna gaat het veel sneller.
+- Complexe opmaak (macro's, ActiveX-besturingselementen, geavanceerde SmartArt) wordt mogelijk niet perfect omgezet. Standaard documentelementen (tekst, tabellen, afbeeldingen, kopteksten, voetnoten) worden betrouwbaar omgezet.
+- Omdat deze tool ook ODT en RTF accepteert, kun je hem gebruiken als alles-in-één converter voor alle tekstverwerkingsformaten.
+
+## Gerelateerde tools
+
+- [ODT naar PDF](./odt-to-pdf)
+- [RTF naar PDF](./rtf-to-pdf)
+- [Excel naar PDF](./excel-to-pdf)
+- [PowerPoint naar PDF](./powerpoint-to-pdf)
diff --git a/docs/nl/tools/wpd-to-pdf.md b/docs/nl/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..b573be96
--- /dev/null
+++ b/docs/nl/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD naar PDF
+description: Zet WordPerfect-documenten (WPD) in je browser met LibreOffice om naar PDF. Gratis en privé.
+---
+
+# WPD naar PDF
+
+Zet Corel WordPerfect-documenten om naar PDF-bestanden. WPD was ooit het dominante tekstverwerkingsformaat bij advocatenkantoren en overheidsinstanties. Heb je oude WordPerfect-bestanden die moderne software niet wil openen, dan maakt deze tool er weer standaard PDF's van.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :---------- | :------- | :----------------------------------- |
+| WordPerfect | `.wpd` | Alle belangrijke WordPerfect-versies |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je WPD-bestanden erheen. Je kunt meerdere bestanden tegelijk selecteren.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram, of gebruik **Meer bestanden toevoegen** om meer documenten toe te voegen.
+3. Klik op **Converteren naar PDF**. De tool laadt een op LibreOffice gebaseerde conversie-engine in je browser, die het WPD-formaat uitleest en PDF uitvoert.
+4. Een enkel bestand wordt direct als PDF gedownload. Bij reeksconversies krijg je een ZIP-archief met de naam `wpd-to-pdf.zip`.
+
+## Opties
+
+Er is geen configuratie nodig. De LibreOffice-engine verwerkt de WPD-opmaak, lettertypen en indeling automatisch.
+
+## Toepassingen
+
+- Tientallen jaren oude juridische documenten openen die in WordPerfect zijn geschreven
+- Gearchiveerde overheidsdossiers van WPD omzetten naar een modern formaat
+- Een oude WordPerfect-documentbibliotheek migreren naar PDF voor opslag op de lange termijn
+- WPD-bestanden delen met ontvangers die Corel WordPerfect niet hebben geïnstalleerd
+
+## Tips
+
+- De LibreOffice-engine wordt bij het eerste gebruik geladen, wat even duurt. Volgende conversies in dezelfde sessie gaan sneller.
+- Complexe WPD-macro's en reveal codes blijven niet behouden, maar de visuele indeling, de tekstinhoud en de basisopmaak komen wel mee naar de PDF.
+
+## Gerelateerde tools
+
+- [WPS naar PDF](./wps-to-pdf)
+- [ODG naar PDF](./odg-to-pdf)
diff --git a/docs/nl/tools/wps-to-pdf.md b/docs/nl/tools/wps-to-pdf.md
new file mode 100644
index 00000000..d50fe89c
--- /dev/null
+++ b/docs/nl/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS naar PDF
+description: Zet Microsoft Works-documenten (WPS) in je browser om naar PDF. Gratis, zonder aanmelding en volledig privé.
+---
+
+# WPS naar PDF
+
+Zet tekstverwerkerbestanden van Microsoft Works om naar PDF. Microsoft Works werd eind jaren 90 en in de jaren 2000 met consumenten-pc's meegeleverd, en veel WPS-bestanden staan nog op oude harde schijven en in e-mailarchieven. Deze tool opent ze in de browser en maakt er nette PDF's van.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :-------------- | :------- | :------------------------------------------ |
+| Microsoft Works | `.wps` | Tekstverwerkerbestanden van Microsoft Works |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je WPS-bestanden erheen. Meerdere bestanden worden geaccepteerd.
+2. Bekijk de bestandslijst. Gebruik het prullenbakpictogram om losse bestanden te verwijderen, of klik op **Meer bestanden toevoegen** om je reeks uit te breiden.
+3. Klik op **Converteren naar PDF**. Een op LibreOffice gebaseerde engine wordt in de browser geladen en zet elk WPS-document om naar PDF.
+4. Eén bestand wordt direct als PDF gedownload. Meerdere bestanden worden gebundeld in een ZIP-archief met de naam `wps-to-pdf.zip`.
+
+## Opties
+
+Er zijn geen extra instellingen nodig. De converter verwerkt tekst, basisopmaak en ingebedde afbeeldingen uit het WPS-bestand.
+
+## Toepassingen
+
+- Oude school- of werkdocumenten terughalen die in het Microsoft Works-formaat zijn opgeslagen
+- WPS-bijlagen in e-mails openen als je Microsoft Works niet hebt geïnstalleerd
+- Een archief met WPS-bestanden omzetten voor migratie naar een modern documentsysteem
+- Oude documenten afdrukken die huidige tekstverwerkers niet kunnen openen
+
+## Tips
+
+- Verwar `.wps`-bestanden van Microsoft Works niet met bestanden van WPS Office. Deze tool is specifiek bedoeld voor het oudere Microsoft Works-formaat.
+- De LibreOffice-engine heeft even tijd nodig om bij het eerste gebruik te laden. Eenmaal geladen gaan extra conversies in dezelfde sessie sneller.
+
+## Gerelateerde tools
+
+- [WPD naar PDF](./wpd-to-pdf)
+- [PUB naar PDF](./pub-to-pdf)
diff --git a/docs/nl/tools/xml-to-pdf.md b/docs/nl/tools/xml-to-pdf.md
new file mode 100644
index 00000000..44f5aa0e
--- /dev/null
+++ b/docs/nl/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML naar PDF
+description: Zet XML-bestanden in je browser om naar gestructureerde PDF-documenten. Gratis, privé, geen verwerking op een server.
+---
+
+# XML naar PDF
+
+Zet XML-gegevensbestanden om naar leesbare, gestructureerde PDF-documenten. Ruwe XML is krachtig maar voor mensen lastig te lezen. Deze tool leest de XML-boom in, herkent terugkerende gegevensstructuren en toont ze als opgemaakte tabellen en secties in een liggende A4-PDF.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------ | :------- | :--------------------------- |
+| XML | `.xml` | Elk goedgevormd XML-document |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je XML-bestanden erheen. Meerdere bestanden kunnen in één reeks worden verwerkt.
+2. Bekijk de bestandslijst. Verwijder ongewenste bestanden met het prullenbakpictogram, of klik op **Meer bestanden toevoegen** om er meer toe te voegen.
+3. Klik op **Converteren naar PDF**. De tool leest de XML-structuur in met de ingebouwde DOMParser van de browser, analyseert de gegevenshiërarchie en zet die met jsPDF en auto-table-opmaak om naar een PDF.
+4. Een enkel bestand wordt als PDF gedownload. Meerdere conversies worden gebundeld in `xml-to-pdf.zip`.
+
+## Opties
+
+Handmatige configuratie is niet nodig. De converter herkent de XML-structuur automatisch en kiest passende tabelindelingen. De uitvoer gebruikt een liggende A4-oriëntatie voor brede gegevenssets.
+
+## Toepassingen
+
+- XML-gegevensexports uit databases of API's omzetten naar afdrukbare rapporten
+- Leesbare samenvattingen maken van XML-configuratiebestanden
+- XML-facturen of transactielogboeken omzetten naar PDF's voor de administratie
+- XML-sitemaps of RSS-feeds leesbaar maken in documentvorm
+
+## Tips
+
+- De XML moet goedgevormd zijn. Als de parser syntaxisfouten tegenkomt, mislukt de conversie met een duidelijke foutmelding die naar het probleem wijst.
+- Diep geneste XML-structuren worden afgevlakt tot tabellen. De beste resultaten krijg je als de gegevens terugkerende elementen op hetzelfde niveau hebben met consistente onderliggende elementen.
+- Tijdens de conversie verschijnen voortgangsmeldingen voor elke fase: lezen, inlezen, analyseren en renderen.
+
+## Gerelateerde tools
+
+- [FB2 naar PDF](./fb2-to-pdf)
+- [XPS naar PDF](./xps-to-pdf)
+- [E-mail naar PDF](./email-to-pdf)
diff --git a/docs/nl/tools/xps-to-pdf.md b/docs/nl/tools/xps-to-pdf.md
new file mode 100644
index 00000000..31402977
--- /dev/null
+++ b/docs/nl/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS naar PDF
+description: Zet XPS- en OXPS-documenten in je browser om naar PDF. Geen upload, geen aanmelding, volledig privé.
+---
+
+# XPS naar PDF
+
+Zet Microsoft XPS- en OXPS-documenten om naar standaard PDF-bestanden. XPS (XML Paper Specification) was het antwoord van Microsoft op PDF, maar de ondersteuning ervan is op steeds meer platforms verdwenen. Deze tool maakt die documenten weer voor iedereen leesbaar.
+
+## Ondersteunde formaten
+
+| Formaat | Extensie | Opmerkingen |
+| :------ | :------- | :------------------------------------------------- |
+| XPS | `.xps` | Oorspronkelijk Microsoft XPS-formaat |
+| OXPS | `.oxps` | Open XPS, de variant volgens de ECMA-388-standaard |
+
+## Hoe het werkt
+
+1. Klik op het uploadgebied of sleep je XPS-/OXPS-bestanden erheen. Je kunt meerdere bestanden tegelijk selecteren.
+2. Bekijk de bestandslijst. Verwijder losse bestanden met het prullenbakpictogram, of klik op **Meer bestanden toevoegen** om extra documenten toe te voegen.
+3. Klik op **Converteren naar PDF**. De PyMuPDF-engine verwerkt elk document lokaal in je browser.
+4. Een enkel bestand wordt direct als PDF gedownload. Meerdere bestanden worden gebundeld in een ZIP-archief met de naam `xps-converted.zip`.
+
+## Opties
+
+Deze tool voert een directe formaatconversie uit zonder extra configuratie. De uitvoer behoudt de oorspronkelijke paginaafmetingen, vectorafbeeldingen, lettertypen en afbeeldingen uit de XPS-bron.
+
+## Toepassingen
+
+- XPS-bestanden openen die je van oudere Windows-systemen hebt gekregen waar het XPS-printerstuurprogramma de standaard was
+- OXPS-documenten uit Windows 10/11 omzetten om te delen met macOS- of Linux-gebruikers
+- Oude XPS-bestanden archiveren in een breder ondersteund formaat
+- XPS-documenten van overheden of bedrijven toegankelijk maken voor externe ontvangers
+
+## Tips
+
+- Zowel `.xps`- als `.oxps`-extensies worden automatisch herkend, dus je kunt ze in dezelfde reeks combineren.
+- Is het oorspronkelijke XPS-bestand gemaakt met een printerstuurprogramma met hoge resolutie, dan behoudt de resulterende PDF die kwaliteit. Er vindt geen herbemonstering plaats.
+
+## Gerelateerde tools
+
+- [Word naar PDF](./word-to-pdf)
+- [XML naar PDF](./xml-to-pdf)
diff --git a/docs/pl/contributing.md b/docs/pl/contributing.md
new file mode 100644
index 00000000..ef173324
--- /dev/null
+++ b/docs/pl/contributing.md
@@ -0,0 +1,136 @@
+# Współtworzenie
+
+Dziękujemy za zainteresowanie współtworzeniem BentoPDF! Ten przewodnik pomoże Ci zacząć.
+
+## Pierwsze kroki
+
+### Wymagania wstępne
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Konfiguracja
+
+```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
+```
+
+## Struktura projektu
+
+```
+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
+```
+
+## Dodawanie nowego narzędzia
+
+### Krok 1: Utwórz plik z logiką
+
+Utwórz `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
+});
+```
+
+### Krok 2: Utwórz stronę HTML
+
+Utwórz `src/pages/your-tool.html` według istniejących szablonów narzędzi.
+
+### Krok 3: Zarejestruj narzędzie
+
+Dodaj do `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.',
+}
+```
+
+### Krok 4: Dodaj do konfiguracji budowania
+
+Dodaj stronę do `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Krok 5: Dodaj tłumaczenia
+
+Dodaj wpisy do wszystkich plików językowych w `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Styl kodu
+
+- Używaj TypeScript w całym nowym kodzie
+- Trzymaj się istniejących wzorców, aby zachować spójność
+- Uruchom `npm run format` przed zatwierdzeniem zmian
+- Bez komentarzy w kodzie produkcyjnym (komentarze są usuwane podczas budowania)
+
+## Proces Pull Requestów
+
+1. Utwórz gałąź funkcji: `git checkout -b feature/your-feature`
+2. Wprowadź zmiany
+3. Dokładnie przetestuj: `npm run build`
+4. Wyślij PR z czytelnym opisem
+
+## Tłumaczenia
+
+Zobacz [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md), aby dowiedzieć się, jak dodawać nowe języki.
+
+## Umowa licencyjna współtwórcy
+
+Zanim Twój PR zostanie scalony, musisz podpisać naszą umowę CLA:
+
+- [Indywidualna CLA (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [Korporacyjna CLA (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Pomoc
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Społeczność na Discordzie](https://discord.gg/Bgq3Ay3f2w)
+
+## Licencja
+
+BentoPDF jest dostępny na dwóch licencjach:
+
+- **AGPL-3.0** dla projektów open source, w których publicznie udostępniasz cały kod źródłowy
+- **Licencja komercyjna** dla aplikacji własnościowych i zamkniętych: [Kup licencję dożywotnią za 79 USD](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Współtworząc projekt, zgadzasz się, że Twój wkład będzie objęty tymi warunkami licencji.
diff --git a/docs/pl/getting-started.md b/docs/pl/getting-started.md
new file mode 100644
index 00000000..f9a828d5
--- /dev/null
+++ b/docs/pl/getting-started.md
@@ -0,0 +1,80 @@
+# Pierwsze kroki
+
+Witaj w BentoPDF! Ten przewodnik pomoże Ci szybko zacząć.
+
+## Czym jest BentoPDF?
+
+BentoPDF to darmowy zestaw narzędzi PDF o otwartym kodzie, stworzony z myślą o prywatności, który działa **w całości w przeglądarce**. Twoje pliki nigdy nie opuszczają urządzenia: całe przetwarzanie odbywa się lokalnie dzięki technologii WebAssembly (WASM).
+
+## Szybki start
+
+### Opcja 1: Użyj wersji hostowanej
+
+Odwiedź [bentopdf.com](https://www.bentopdf.com), aby od razu korzystać z BentoPDF, bez instalacji.
+
+### Opcja 2: Samodzielny hosting z Dockerem
+
+> [!IMPORTANT]
+> Konwersja plików Office wymaga `SharedArrayBuffer`, a do tego potrzebne są oba nagłówki:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - bezpieczny kontekst
+>
+> `http://localhost` działa do testów lokalnych, ponieważ przeglądarki traktują adres pętli zwrotnej jako zaufany. `http://192.168.x.x` i inne adresy LAN zwykle nie są traktowane jako zaufane, więc konwersje Word/Excel/PowerPoint będą wymagały HTTPS przy dostępie z innych urządzeń w sieci.
+
+```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 jest dostępny w dwóch wersjach: **wersja do samodzielnego hostingu** (`bentopdf-simple`, użyta powyżej) do wdrożeń wewnętrznych, zespołowych i organizacyjnych oraz **wersja komercyjna** (`bentopdf:latest`), używana przez samo bentopdf.com i przez posiadaczy licencji komercyjnej z publicznymi wdrożeniami. Obie zawierają te same narzędzia PDF, a wersja komercyjna dodaje sekcję hero, FAQ, opinie i stopkę z bentopdf.com. W razie wątpliwości użyj wersji do samodzielnego hostingu.
+
+Następnie otwórz `http://localhost:3000` w przeglądarce.
+
+> [!NOTE]
+> Jeśli przygotowujesz wdrożenie OCR w środowisku odciętym od sieci (air-gapped), oprócz workera Tesseract, środowiska uruchomieniowego i plików traineddata musisz hostować wewnętrznie także czcionki warstwy tekstowej OCR. Pełna konfiguracja jest opisana w [Samodzielny hosting](/pl/self-hosting/), wraz z `VITE_OCR_FONT_BASE_URL` i dołączonym katalogiem `ocr-fonts/`.
+
+### Opcja 3: Zbuduj ze źródeł
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Funkcje w skrócie
+
+| Kategoria | Narzędzia |
+| ---------------------- | ----------------------------------------------------------------------------------- |
+| **Konwersja do PDF** | Word, Excel, PowerPoint, obrazy, Markdown, EPUB, MOBI i więcej |
+| **Konwersja z PDF** | JPG, PNG, tekst, Excel, SVG i więcej |
+| **Edycja i adnotacje** | Podpisywanie, zakreślanie, redagowanie, wypełnianie formularzy, dodawanie pieczątek |
+| **Organizacja** | Łączenie, dzielenie, obracanie, usuwanie stron, zmiana kolejności |
+| **Optymalizacja** | Kompresja, naprawa, spłaszczanie, OCR |
+| **Bezpieczeństwo** | Szyfrowanie, odszyfrowywanie, usuwanie ograniczeń |
+
+## Obsługiwane przeglądarki
+
+BentoPDF działa najlepiej w nowoczesnych przeglądarkach:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Dalsze kroki
+
+- [Poznaj wszystkie narzędzia](/pl/tools/)
+- [Hostuj BentoPDF samodzielnie](/pl/self-hosting/)
+- [Współtwórz projekt](/pl/contributing)
diff --git a/docs/pl/index.md b/docs/pl/index.md
new file mode 100644
index 00000000..773ee029
--- /dev/null
+++ b/docs/pl/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Darmowe narzędzia PDF o otwartym kodzie'
+ tagline: Przetwarzaj pliki PDF w całości w przeglądarce. Bez wysyłania na serwer. Bez serwerów. Pełna prywatność.
+ actions:
+ - theme: brand
+ text: Zacznij
+ link: /pl/getting-started
+ - theme: alt
+ text: Zobacz narzędzia
+ link: /pl/tools/
+ - theme: alt
+ text: Własny hosting
+ link: /pl/self-hosting/
+ - theme: alt
+ text: Licencja komercyjna
+ link: /pl/licensing
+
+features:
+ - icon: 🔒
+ title: W 100% prywatnie
+ details: Twoje pliki nigdy nie opuszczają urządzenia. Całe przetwarzanie odbywa się lokalnie w przeglądarce dzięki WebAssembly.
+ - icon: ⚡
+ title: Szybko i za darmo
+ details: Bez rejestracji, bez limitów, bez znaków wodnych. Przetwarzaj dowolną liczbę plików PDF za darmo, na zawsze.
+ - icon: 🛠️
+ title: Ponad 50 narzędzi
+ details: Konwertuj, edytuj, łącz, dziel, kompresuj, podpisuj, rozpoznawaj tekst (OCR) i więcej. Wszystko, czego potrzebujesz, w jednym miejscu.
+
+ - icon: 🌐
+ title: Własny hosting
+ details: Wdrażaj na własnej infrastrukturze. Docker, Vercel, Netlify, AWS lub w pełni odcięte od sieci środowiska z własnymi workerami OCR, danymi językowymi i czcionkami warstwy tekstowej.
+---
+
+## OCR offline
+
+Jeśli hostujesz BentoPDF samodzielnie w środowisku odciętym od sieci lub offline, OCR potrzebuje czegoś więcej niż worker Tesseract i pliki traineddata. Aby uzyskać przeszukiwalny plik PDF, czcionki warstwy tekstowej OCR muszą być serwowane wewnętrznie.
+Pełna konfiguracja, w tym `VITE_OCR_FONT_BASE_URL`, dołączony katalog `ocr-fonts/` i zaktualizowany proces dla środowisk air-gapped, jest w [Samodzielny hosting](/pl/self-hosting/).
diff --git a/docs/pl/licensing.md b/docs/pl/licensing.md
new file mode 100644
index 00000000..b40f5ab0
--- /dev/null
+++ b/docs/pl/licensing.md
@@ -0,0 +1,110 @@
+# 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](/pl/self-hosting/#konfiguracja-wasm-komponenty-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/pl/self-hosting/apache.md b/docs/pl/self-hosting/apache.md
new file mode 100644
index 00000000..06066744
--- /dev/null
+++ b/docs/pl/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Wdrożenie z Apache
+
+Hostuj BentoPDF za pomocą serwera Apache HTTP Server.
+
+## Wymagania wstępne
+
+- Apache 2.4+
+- Włączony mod_rewrite
+- Certyfikat SSL (zalecany)
+
+## Krok 1: Zbuduj projekt
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Aby dostosować branding, ustaw zmienne środowiskowe przed budowaniem:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Krok 2: Skopiuj pliki
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Krok 3: Konfiguracja Apache
+
+Utwórz `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Krok 4: .htaccess do routingu
+
+Utwórz `/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
+```
+
+## Krok 5: Włącz wymagane moduły
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Krok 6: Włącz witrynę
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Wdrożenie w podkatalogu
+
+Aby hostować pod adresem `/pdf/`:
+
+1. Zbuduj z bazowym adresem URL:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Zaktualizuj `.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
+```
+
+## Rozwiązywanie problemów
+
+### Błędy 404 dla WASM
+
+Upewnij się, że typ MIME jest skonfigurowany:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Podpisywanie PDF lub wypełnianie formularzy pokazuje pustą przeglądarkę (błąd MIME `.mjs`)
+
+Jeśli konsola przeglądarki pokazuje:
+
+```
+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.
+```
+
+…a żądanie, które się nie powiodło, kończy się na `.mjs`, w konfiguracji Apache brakuje mapowania `.mjs → application/javascript`. Dołączona przeglądarka PDF zawiera moduły ES z rozszerzeniem `.mjs`, a standardowy plik `mime.types` w Apache domyślnie ich nie obejmuje.
+
+Dodaj do VirtualHost lub `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Następnie przeładuj Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Aby to potwierdzić: w narzędziach deweloperskich przeglądarki → karta Network znajdź nieudane żądanie `.mjs` i sprawdź nagłówek odpowiedzi `Content-Type`. Powinien mieć wartość `application/javascript`, a nie `application/octet-stream`.
+
+### Rewrite nie działa
+
+Sprawdź, czy mod_rewrite jest włączony:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Konwersja Word/ODT/Excel do PDF nie działa
+
+LibreOffice WASM wymaga `SharedArrayBuffer`, a do tego potrzebne są te nagłówki:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Potrzebny jest też bezpieczny kontekst. `http://localhost` działa do testów lokalnych, ale `http://192.168.x.x` i inne adresy LAN zwykle wymagają HTTPS. Jeśli nagłówki są obecne, a `window.crossOriginIsolated` nadal ma wartość `false`, sprawdź, czy strona nie jest otwierana przez zwykłe HTTP z adresu innego niż pętla zwrotna.
+
+Wstępnie skompresowane pliki `.wasm.gz` i `.data.gz` wymagają też poprawnego `Content-Encoding`:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Upewnij się, że `mod_headers` jest włączony: `sudo a2enmod headers`
+
+### Odmowa dostępu
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/pl/self-hosting/aws.md b/docs/pl/self-hosting/aws.md
new file mode 100644
index 00000000..e2baab61
--- /dev/null
+++ b/docs/pl/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Wdrożenie na AWS S3 + CloudFront
+
+Hostuj BentoPDF na AWS, aby uzyskać maksymalną kontrolę i skalowalność.
+
+## Architektura
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Krok 1: Utwórz bucket S3
+
+```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
+```
+
+## Krok 2: Zbuduj i wyślij
+
+```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
+```
+
+## Krok 3: Utwórz dystrybucję CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Albo użyj konsoli AWS:
+
+1. Przejdź do CloudFront → Create distribution
+2. Origin domain: wybierz swój bucket S3
+3. Włącz „Origin Access Control”
+4. Default root object: `index.html`
+5. Utwórz dystrybucję
+
+## Krok 3b: Polityka nagłówków odpowiedzi (wymagana dla LibreOffice WASM)
+
+Konwersje oparte na LibreOffice (Word, Excel, PowerPoint do PDF) wymagają `SharedArrayBuffer`, a to wymaga określonych nagłówków odpowiedzi. Utwórz politykę nagłówków odpowiedzi CloudFront (Response Headers Policy):
+
+1. Przejdź do CloudFront → Policies → Response headers
+2. Utwórz własną politykę z tymi nagłówkami:
+
+| Nagłówek | Wartość |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Dołącz politykę do domyślnego zachowania pamięci podręcznej (default cache behavior) swojej dystrybucji
+
+Albo przez 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}
+ ]
+ }
+ }'
+```
+
+## Krok 3c: Metadane S3 dla wstępnie skompresowanych plików WASM
+
+Pliki LibreOffice WASM są wstępnie skompresowane (`.wasm.gz`, `.data.gz`). Ustaw poprawny Content-Type i Content-Encoding, aby przeglądarki je rozpakowywały:
+
+```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 Ważne
+Bez polityki nagłówków odpowiedzi `SharedArrayBuffer` jest niedostępny, a konwersje LibreOffice WASM zawieszą się na ok. 55%. Bez poprawnego Content-Encoding dla plików `.gz` przeglądarka otrzymuje surowe bajty gzip i kompilacja WASM kończy się błędem.
+:::
+
+## Krok 4: Polityka bucketu S3
+
+Zezwól CloudFront na dostęp do bucketu:
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Krok 5: Własne strony błędów
+
+Skonfiguruj 404 tak, aby zwracał `index.html` na potrzeby routingu SPA:
+
+1. CloudFront → Error pages
+2. Utwórz własną odpowiedź błędu:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Szacunkowe koszty
+
+| Zasób | Szacunkowy koszt |
+| --------------------------- | ---------------- |
+| Magazyn S3 (~500MB) | ~$0.01/mies. |
+| CloudFront (1TB transferu) | ~$85/mies. |
+| CloudFront (10GB transferu) | ~$0.85/mies. |
+
+::: tip
+Użyj S3 Intelligent Tiering, aby obniżyć koszty plików rzadko używanych.
+:::
+
+## Automatyzacja z 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"
+ }
+}
+```
diff --git a/docs/pl/self-hosting/cloudflare.md b/docs/pl/self-hosting/cloudflare.md
new file mode 100644
index 00000000..d60eb62b
--- /dev/null
+++ b/docs/pl/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Wdrożenie na Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) oferuje szybki, globalny hosting stron statycznych z nielimitowaną przepustowością.
+
+## Szybkie wdrożenie
+
+1. Przejdź do [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Kliknij „Create a project”
+3. Połącz swoje repozytorium GitHub
+
+## Konfiguracja budowania
+
+| Ustawienie | Wartość |
+| ------------------- | --------------- |
+| Framework preset | Brak |
+| Polecenie budowania | `npm run build` |
+| Katalog wyjściowy | `dist` |
+| Katalog główny | `/` |
+
+## Zmienne środowiskowe
+
+Dodaj je w Settings → Environment variables:
+
+| Zmienna | Wartość |
+| ----------------------- | ------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (opcjonalnie) |
+| `VITE_BRAND_NAME` | Własna nazwa marki (opcjonalnie) |
+| `VITE_BRAND_LOGO` | Ścieżka logo względem `public/` (opcjonalnie) |
+| `VITE_FOOTER_TEXT` | Własny tekst stopki/praw autorskich (opcjonalnie) |
+| `VITE_DEFAULT_LANGUAGE` | Domyślny język interfejsu, np. `fr` (opcjonalnie) |
+
+## Plik konfiguracji
+
+Utwórz `_headers` w folderze `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 Ważne
+Nagłówki `Cross-Origin-Embedder-Policy` i `Cross-Origin-Opener-Policy` są wymagane do konwersji Word/ODT/Excel/PowerPoint do PDF. Bez nich `SharedArrayBuffer` jest niedostępny, a silnik LibreOffice WASM nie zainicjuje się.
+:::
+
+Utwórz `_redirects` na potrzeby routingu SPA:
+
+```
+/* /index.html 200
+```
+
+## Własna domena
+
+1. Przejdź do swojego projektu Pages
+2. Kliknij „Custom domains”
+3. Dodaj swoją domenę
+4. Cloudflare automatycznie skonfiguruje DNS, jeśli domena jest w Cloudflare
+
+## Zalety
+
+- **Darmowa, nielimitowana przepustowość**
+- **Globalny CDN** z ponad 300 lokalizacjami brzegowymi
+- **Automatyczne HTTPS**
+- **Wdrożenia podglądowe** dla pull requestów
+- **Szybkie budowanie**
+
+## Rozwiązywanie problemów
+
+### Wysyłanie dużych plików
+
+Cloudflare Pages obsługuje pliki do 25 MB. Moduły WASM powinny się zmieścić, ale jeśli natrafisz na limity, rozważ:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Limity rozmiaru Workera
+
+Jeśli używasz Cloudflare Workers do zaawansowanego routingu, pamiętaj o limicie 1 MB w planach darmowych.
+
+## Worker proxy CORS (dla podpisów cyfrowych)
+
+Narzędzie podpisu cyfrowego wymaga proxy CORS do pobierania łańcuchów certyfikatów. Wdróż dołączony worker:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Funkcje bezpieczeństwa
+
+| Funkcja | Opis |
+| ------------------------- | ------------------------------------- |
+| **Ograniczenia URL** | Dozwolone tylko adresy certyfikatów |
+| **Limit rozmiaru pliku** | Maks. 10MB na żądanie |
+| **Limit żądań** | 60 żądań/IP/min (wymaga KV) |
+| **Blokada prywatnych IP** | Blokuje localhost i adresy wewnętrzne |
+
+### Włącz limit żądań
+
+```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
+```
+
+### Zbuduj z adresem URL proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Albo z Dockerem:
+
+```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 .
+```
+
+> **Uwaga:** Konfigurację podpisu HMAC znajdziesz w [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required).
diff --git a/docs/pl/self-hosting/cors-proxy.md b/docs/pl/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..a1bd6d14
--- /dev/null
+++ b/docs/pl/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# Proxy CORS do pobierania certyfikatów
+
+Narzędzie podpisu cyfrowego używa proxy CORS do pobierania certyfikatów wystawców z zewnętrznych urzędów certyfikacji (CA). Jest to konieczne, ponieważ wiele serwerów CA nie dołącza nagłówków CORS do odpowiedzi, co uniemożliwia bezpośrednie pobieranie z poziomu przeglądarki.
+
+Ponadto wiele serwerów CA udostępnia certyfikaty przez zwykłe HTTP. Gdy Twoja instancja BentoPDF jest hostowana przez HTTPS, przeglądarki blokują takie żądania HTTP (zasada mixed content). Proxy CORS rozwiązuje oba problemy, kierując żądania przez punkt końcowy HTTPS z odpowiednimi nagłówkami.
+
+## Jak to działa
+
+Podczas podpisywania pliku PDF certyfikatem:
+
+1. Biblioteka `zgapdfsigner` próbuje zbudować pełny łańcuch certyfikatów
+2. Pobiera certyfikaty wystawców z adresów URL zapisanych w rozszerzeniu AIA (Authority Information Access) Twojego certyfikatu
+3. Te żądania są kierowane przez proxy CORS, które dodaje wymagane nagłówki `Access-Control-Allow-Origin`
+4. Proxy zwraca dane certyfikatu do przeglądarki
+
+## Samodzielny hosting proxy CORS
+
+Jeśli hostujesz BentoPDF samodzielnie, musisz wdrożyć własne proxy CORS, aby podpisy cyfrowe działały z certyfikatami wymagającymi pobrania łańcucha.
+
+### Opcja 1: Cloudflare Workers (zalecana)
+
+1. **Zainstaluj Wrangler CLI**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Zaloguj się do Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Sklonuj BentoPDF i zaktualizuj dozwolone źródła**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Otwórz `cors-proxy-worker.js` i zmień tablicę `ALLOWED_ORIGINS` na swoją domenę:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Ważne
+ Bez tej zmiany proxy odrzuci wszystkie żądania z Twojej witryny z błędem **403 Forbidden**. Domyślnie dozwolone są tylko żądania z `bentopdf.com`.
+ :::
+
+4. **Wdróż proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Zapisz adres URL swojego workera (np. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Zbuduj BentoPDF ponownie z adresem URL proxy**:
+
+ Jeśli używasz Dockera:
+
+ ```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 .
+ ```
+
+ Jeśli budujesz ze źródeł:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Opcja 2: Własne proxy backendowe
+
+Możesz też utworzyć własny punkt końcowy proxy. Wymagania:
+
+1. Przyjmuj żądania GET z parametrem zapytania `url`
+2. Pobieraj adres URL ze swojego serwera (po stronie serwera nie ma ograniczeń CORS)
+3. Zwracaj odpowiedź z tymi nagłówkami:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Przykładowa implementacja w 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' });
+ }
+});
+```
+
+## Kwestie bezpieczeństwa
+
+Dołączony Cloudflare Worker ma kilka zabezpieczeń:
+
+| Funkcja | Opis |
+| ------------------------------- | ---------------------------------------------------------------------------------------------- |
+| **Walidacja źródła** | Zezwala tylko na żądania z domen z listy `ALLOWED_ORIGINS` |
+| **Ograniczenia URL** | Zezwala tylko na adresy certyfikatów (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blokada prywatnych IP** | Blokuje prywatne zakresy IPv4/IPv6, link-local, loopback, adresy dziesiętne i metadane chmury |
+| **Bezpieczeństwo Content-Type** | Zwraca tylko bezpieczne typy MIME certyfikatów, blokuje wstrzykiwanie content-type z upstreamu |
+| **Limit rozmiaru pliku** | Strumieniuje odpowiedź z limitem 10MB, przerywa pobieranie w trakcie po jego przekroczeniu |
+| **Limit żądań** | 60 żądań na minutę na IP lub IPv6 /64 (wymaga KV, przy błędach KV przepuszcza ruch) |
+| **Podpisy HMAC** | Opcjonalne podpisywanie po stronie klienta (zniechęca do przypadkowych nadużyć) |
+
+### DNS rebinding (hosting poza Cloudflare)
+
+Worker odrzuca każdy adres URL, który wskazuje na prywatny lub wewnętrzny adres IP. Nie może użyć stałej listy dozwolonych hostów, ponieważ adresy łańcucha certyfikatów wskazują na dowolne CA, które wystawiło certyfikat (FNMT, korporacyjne CA itd.), więc miejsca docelowe nie są znane z góry. Zostaje małe okno na rebinding: osoba zarządzająca DNS własnej domeny mogłaby podać publiczny adres IP przy sprawdzaniu bezpieczeństwa, a chwilę później prywatny przy właściwym żądaniu.
+
+W Cloudflare nie da się tego wykorzystać: Workers nie mają dostępu do prywatnych adresów IP ani do punktu metadanych `169.254.169.254`, więc rebinding trafia w pustkę. Nie dawaj tylko workerowi drogi do środka: nie podłączaj Tunnel, Service ani powiązania z siecią prywatną (potrzebuje wyłącznie `RATE_LIMIT_KV`).
+
+Jeśli uruchamiasz to poza Cloudflare (workerd, Node itp.) wewnątrz VPC, środowisko _może_ docierać do adresów wewnętrznych. Postaw przed nim zaporę ruchu wychodzącego i zablokuj zakresy prywatne: `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` oraz ich odpowiedniki IPv6. Kod aplikacji nie wymusi tego poza Cloudflare.
+
+## Wyłączanie proxy
+
+Jeśli nie chcesz używać proxy CORS, ustaw zmienną środowiskową na pusty ciąg:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Uwaga**: Bez proxy podpisywanie certyfikatami wymagającymi zewnętrznego pobrania łańcucha (jak FNMT lub niektóre korporacyjne CA) zakończy się błędem „Failed to fetch”.
+
+## Rozwiązywanie problemów
+
+### "Signing error: TypeError: Failed to fetch"
+
+Zwykle oznacza to jedno z poniższych:
+
+1. **Nie skonfigurowano proxy CORS**: ustaw `VITE_CORS_PROXY_URL` i zbuduj ponownie
+2. **Zablokowana zawartość mieszana**: Twoja witryna używa HTTPS, a adres wystawcy certyfikatu to HTTP. Proxy CORS to rozwiązuje.
+3. **Proxy CORS odrzuca Twoje źródło**: sprawdź, czy Twoja domena jest w tablicy `ALLOWED_ORIGINS` w `cors-proxy-worker.js`
+
+### Błąd "403 Forbidden" z proxy
+
+Twojej domeny nie ma na liście `ALLOWED_ORIGINS`. Edytuj `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Następnie wdróż ponownie: `npx wrangler deploy`
+
+### Testowanie proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certyfikaty działające bez proxy
+
+Niektóre certyfikaty zawierają pełny łańcuch w pliku P12/PFX i nie wymagają zewnętrznego pobierania:
+
+- Certyfikaty z podpisem własnym
+- Niektóre komercyjne CA dołączające certyfikaty pośrednie
+- Certyfikaty, w których ręcznie złożyłeś pełny łańcuch
diff --git a/docs/pl/self-hosting/docker.md b/docs/pl/self-hosting/docker.md
new file mode 100644
index 00000000..68fc33f6
--- /dev/null
+++ b/docs/pl/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Wdrożenie z Dockerem / Podmanem
+
+Najłatwiejszy sposób samodzielnego hostingu BentoPDF w środowisku produkcyjnym.
+
+> [!IMPORTANT]
+> **Wymagane nagłówki do konwersji plików Office**
+>
+> Narzędzia oparte na LibreOffice (konwersja Word, Excel, PowerPoint) wymagają tych nagłówków HTTP do obsługi `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Strona musi być też serwowana z bezpiecznego kontekstu. `http://localhost` działa do testów lokalnych, ale `http://192.168.x.x` i inne adresy LAN zwykle go nie spełniają, więc konwersja Office przez zwykłe HTTP nie zadziała, nawet jeśli nagłówki są obecne.
+>
+> Oficjalne obrazy kontenerów zawierają te nagłówki. Jeśli używasz reverse proxy (Traefik, Caddy itp.), upewnij się, że nagłówki są zachowywane lub dodawane, i używaj HTTPS przy dostępie spoza pętli zwrotnej.
+
+> [!TIP]
+> **Użytkownicy Podmana:** Wszystkie polecenia `docker` działają z Podmanem po zastąpieniu `docker` przez `podman` i `docker-compose` przez `podman-compose`.
+
+## Szybki start
+
+> [!TIP]
+> BentoPDF jest dostępny w dwóch wersjach:
+>
+> - **Wersja do samodzielnego hostingu**: `ghcr.io/alam00000/bentopdf-simple:latest`. Wszystkie narzędzia PDF, **bez** warstwy marketingowej (bez hero, FAQ, opinii i stopki). Użyj jej do wdrożeń wewnętrznych, zespołowych i organizacyjnych. To **nie** jest okrojona wersja „lite”.
+> - **Wersja komercyjna**: `ghcr.io/alam00000/bentopdf:latest`. Pełna witryna marketingowa, używana przez samo bentopdf.com i przez posiadaczy licencji komercyjnej z publicznymi wdrożeniami.
+>
+> W razie wątpliwości pobierz wersję do samodzielnego hostingu.
+
+```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
+
+Utwórz `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
+```
+
+Uruchom:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Zbuduj własny obraz
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Zbuduj i uruchom:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Zmienne środowiskowe
+
+| Zmienna | Opis | Domyślnie |
+| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Zbuduj wariant do samodzielnego hostingu (ukrywa warstwę marketingową bentopdf.com: hero, FAQ, opinie, stopkę). Wszystkie narzędzia PDF pozostają. | `false` |
+| `BASE_URL` | Wdrożenie w podkatalogu | `/` |
+| `VITE_WASM_PYMUPDF_URL` | Adres URL modułu PyMuPDF WASM | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | Adres URL modułu Ghostscript WASM | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | Adres URL modułu CoherentPDF WASM | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | Adres URL skryptu workera OCR | _(puste; domyślny CDN Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Katalog środowiska uruchomieniowego OCR | _(puste; domyślny CDN Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Katalog traineddata OCR | _(puste; domyślny CDN Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Języki OCR rozdzielone przecinkami, widoczne w interfejsie | _(puste; pełny katalog)_ |
+| `VITE_OCR_FONT_BASE_URL` | Katalog czcionek warstwy tekstowej OCR | _(puste; zdalne adresy czcionek Noto)_ |
+| `VITE_DEFAULT_LANGUAGE` | Domyślny język interfejsu | `en` |
+| `VITE_BRAND_NAME` | Własna nazwa marki | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Ścieżka logo względem `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Własny tekst stopki/praw autorskich | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | Identyfikatory narzędzi do ukrycia, rozdzielone przecinkami | _(puste; wszystkie narzędzia włączone)_ |
+| `DISABLE_GITHUB_STARS` | Pomija pobieranie liczby gwiazdek GitHub przy ładowaniu strony i usuwa `api.github.com` z CSP. Buildy Simple Mode zawsze to pomijają. | `false` |
+| `SITE_URL` | Publiczny adres URL zapisywany w linkach canonical, hreflang i mapy witryny. Zostaw domyślny, chyba że chcesz, aby wyszukiwarki traktowały Twoje wdrożenie jako osobną witrynę. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Przy własnym `SITE_URL` każda strona jest oznaczana jako `noindex`, aby Twoja kopia nie konkurowała z bentopdf.com w wynikach wyszukiwania. Ustaw `true`, aby pozwolić wyszukiwarkom ją indeksować. | `false` |
+| `COMPRESSION_MODE` | Wstępnie skompresowane kopie zapisywane obok każdego pliku: `o` brak, `g` `.gz` (serwowane przez nginx w obrazie), `b` `.br`, `all` obie. Nginx w obrazie nie obsługuje `.br`. | `o` |
+
+Adresy URL modułów WASM są wstępnie skonfigurowane z domyślnymi CDN, więc wszystkie zaawansowane funkcje działają od razu. Zmień je w środowiskach odciętych od sieci lub przy samodzielnym hostingu.
+
+### Wyszukiwarki
+
+Domyślnie każda strona wskazuje wyszukiwarkom bentopdf.com jako oryginał, więc Twoje wdrożenie nie jest widoczne jako duplikat. W prywatnej lub wewnętrznej instancji nie musisz niczego zmieniać.
+
+- **Całkowicie ukryj swoją instancję w wynikach wyszukiwania:** uruchom kontener z `-e ROBOTS_NOINDEX=true`. Wystarczy restart, bez ponownego budowania.
+- **Uczyń swoją instancję osobną witryną w wynikach wyszukiwania:** zbuduj z `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Bez `ALLOW_INDEXING=true` własny `SITE_URL` oznacza każdą stronę jako `noindex`.
+
+### Content-Security-Policy
+
+Obraz nginx zawiera egzekwowany nagłówek `Content-Security-Policy`. Dyrektywy CSP `script-src`, `connect-src` i `font-src` są **generowane podczas budowania** na podstawie powyższych zmiennych URL `VITE_*`: wszystkie hosty przekazane przez `--build-arg` są automatycznie dodawane do polityki.
+
+W rezultacie:
+
+- Jeśli podczas budowania zmienisz `VITE_CORS_PROXY_URL` lub `VITE_WASM_*_URL`, CSP automatycznie zezwoli na te źródła, bez dodatkowej konfiguracji.
+- Dla adresów na `cdn.jsdelivr.net` `script-src` zezwala tylko na dokładny folder pakietu z wersją, na przykład `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, a nie na cały CDN. jsDelivr udostępnia każdy publiczny pakiet npm i repozytorium GitHub, więc zezwolenie na cały host pozwoliłoby uruchomić którykolwiek z nich w Twojej instancji. Adresy na każdym innym hoście są dozwolone według źródła (origin).
+- Jeśli własne adresy WASM ustawisz _w czasie działania_ na stronie Ustawienia zaawansowane w aplikacji, te źródła **nie** są w CSP i przeglądarka zablokuje pobieranie z nich. Dotyczy to także innej wersji tego samego pakietu na `cdn.jsdelivr.net`, ponieważ dozwolona jest tylko wersja ustawiona podczas budowania. Konfiguracja w czasie działania służy do eksperymentów; dla trwałych własnych adresów ustaw odpowiedni argument budowania `VITE_*`.
+- We wdrożeniach odciętych od sieci, które zmieniają wszystkie trzy wartości `VITE_WASM_*_URL`, foldery pakietów `cdn.jsdelivr.net` są też usuwane z CSP (każda wartość domyślna jest zastępowana, a nie uzupełniana). Domyślne adresy Tesseract OCR na `cdn.jsdelivr.net` zostają w polityce, dopóki nie ustawisz także trzech wartości `VITE_TESSERACT_*`. Podobnie ustawienie `VITE_CORS_PROXY_URL` zastępuje publiczną wartość domyślną `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+CSP zawiera `'unsafe-eval'` w `script-src`, ponieważ środowisko LibreOffice WASM (używane przez narzędzia konwersji Word/Excel/PowerPoint) i biblioteka obrazów wasm-vips (używana przez PDF do TIFF) kompilują wewnętrzny kod dispatch przez `new Function()`. Usunięcie tej wartości zepsułoby te narzędzia. Jeśli budujesz w `SIMPLE_MODE` (bez LibreOffice) i nie potrzebujesz PDF do TIFF, możesz ręcznie edytować wygenerowany `security-headers.conf`, aby usunąć `'unsafe-eval'` i uzyskać ostrzejszą politykę.
+
+W przypadku OCR zostaw zmienne `VITE_TESSERACT_*` puste, aby używać domyślnych zasobów online, albo ustaw wszystkie trzy razem dla OCR hostowanego samodzielnie lub offline. Częściowe nadpisania OCR są odrzucane, ponieważ worker, środowisko uruchomieniowe i katalog traineddata muszą do siebie pasować. Aby uzyskać w pełni offline przeszukiwalny plik PDF, ustaw też `VITE_OCR_FONT_BASE_URL`, aby czcionki warstwy tekstowej OCR były ładowane z Twojego wewnętrznego serwera, a nie z publicznych adresów czcionek Noto.
+
+`VITE_DEFAULT_LANGUAGE` ustawia język interfejsu dla nowych odwiedzających. Obsługiwane wartości: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Użytkownicy nadal mogą zmienić język: to zmienia tylko wartość domyślną.
+
+Przykład:
+
+```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
+```
+
+### Własny branding
+
+Zastąp domyślne logo, nazwę i tekst stopki BentoPDF własnymi. Umieść plik logo w folderze `public/` (lub użyj istniejącego obrazu), a następnie przekaż zmienne brandingu podczas budowania:
+
+```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 .
+```
+
+Branding działa zarówno w trybie pełnym, jak i w Simple Mode i można go łączyć ze wszystkimi innymi opcjami czasu budowania.
+
+### Wyłączanie wybranych narzędzi
+
+Ukryj narzędzia w interfejsie ze względu na wymogi zgodności lub bezpieczeństwa. Wyłączone narzędzia są usuwane ze strony głównej, wyników wyszukiwania, skrótów klawiszowych i kreatora przepływów pracy. Bezpośredni dostęp przez adres URL pokazuje stronę „narzędzie niedostępne”.
+
+Identyfikatory narzędzi to adres URL strony bez `.html`. Na przykład jeśli narzędzie znajduje się pod `bentopdf.com/edit-pdf.html`, jego identyfikator to `edit-pdf`.
+
+#### Jak znaleźć identyfikatory narzędzi
+
+Najłatwiej: otwórz dowolne narzędzie w BentoPDF i spójrz na adres URL. Ostatnia część ścieżki (bez `.html`) to identyfikator narzędzia.
+
+
+Pełna lista identyfikatorów narzędzi
+
+**Edycja i adnotacje:** `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`
+
+**Konwersja do 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`
+
+**Konwersja z 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`
+
+**Organizacja i zarządzanie:** `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`
+
+**Optymalizacja i naprawa:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Bezpieczeństwo:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Opcja 1: Podczas budowania (argument budowania Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Lista wyłączonych narzędzi jest wbudowywana w pakiet JavaScript. Zmiana wymaga ponownego zbudowania.
+
+#### Opcja 2: W czasie działania (config.json)
+
+Zamontuj plik `config.json` w serwowanym katalogu, bez ponownego budowania:
+
+```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
+```
+
+Albo z 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
+```
+
+Obie metody można łączyć: listy są scalane. Jeśli narzędzie występuje w którejkolwiek, jest wyłączone.
+
+#### Wyłączanie funkcji edytora
+
+Możesz też wyłączyć wybrane funkcje wewnątrz edytora PDF (np. redagowanie, adnotacje, formularze) bez wyłączania całego edytora. Dodaj `editorDisabledCategories` do swojego `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Pełna lista kategorii edytora
+
+**Powiększenie:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Adnotacje:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Kształty:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Pomiary:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formularze:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Redagowanie:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Dokument:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Strona:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Narzędzia:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Zaznaczenie:** `selection`, `selection-copy`
+
+**Historia:** `history`, `history-undo`, `history-redo`
+
+
+
+Kategorie są hierarchiczne: wyłączenie kategorii nadrzędnej (np. `annotation`) wyłącza wszystkie jej podkategorie.
+
+### Wyłączanie licznika gwiazdek GitHub
+
+Pasek nawigacji pokazuje aktualną liczbę gwiazdek GitHub, pobieraną z `api.github.com` przy ładowaniu strony. To jedyne zewnętrzne żądanie, które nie obsługuje funkcji PDF. Wyłącz je podczas budowania, aby usunąć kod pobierania z pakietu i `api.github.com` z Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Buildy Simple Mode (`bentopdf-simple`) zawsze pomijają licznik gwiazdek: ta flaga jest potrzebna tylko w wersji komercyjnej lub własnych pełnych buildach.
+
+### Własne adresy WASM (środowiska odcięte od sieci / samodzielny hosting)
+
+> [!IMPORTANT]
+> Adresy WASM są wbudowywane w JavaScript **podczas budowania**. Pliki WASM pobiera **przeglądarka użytkownika** w czasie działania: Docker nie pobiera ich podczas budowania. W sieciach odciętych od internetu musisz hostować pliki WASM na wewnętrznym serwerze dostępnym dla przeglądarek.
+
+**Pełny proces dla środowiska odciętego od sieci:**
+
+```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
+```
+
+Użyj kodów wypisanych przez `bash scripts/prepare-airgap.sh --list-ocr-languages` lub wyszukaj po nazwie za pomocą `bash scripts/prepare-airgap.sh --search-ocr-language ` dla `--ocr-languages`. Gdy budujesz z ograniczonym podzbiorem OCR, przekaż te same kody do `VITE_TESSERACT_AVAILABLE_LANGUAGES`, aby aplikacja pokazywała tylko dołączone języki. Dla pełnego OCR offline hostuj też dołączony katalog `ocr-fonts/` i wskaż go w `VITE_OCR_FONT_BASE_URL`.
+
+Ustaw zmienną na pusty ciąg, aby wyłączyć dany moduł (użytkownicy muszą wtedy skonfigurować go ręcznie w Ustawieniach zaawansowanych).
+
+## Własny port
+
+Domyślnie BentoPDF nasłuchuje na porcie `8080` wewnątrz kontenera. Aby to zmienić, ustaw zmienną środowiskową `PORT` w czasie uruchamiania:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Zmienna | Opis | Domyślnie |
+| ------- | ------------------------------------- | --------- |
+| `PORT` | Port nasłuchiwania Nginx w kontenerze | `8080` |
+
+Działa to zarówno ze standardowym Dockerfile, jak i z wersją nonroot.
+
+## Własny identyfikator użytkownika (PUID/PGID)
+
+Dla środowisk wymagających uruchamiania jako konkretny użytkownik inny niż root (urządzenia NAS, Kubernetes z kontekstami bezpieczeństwa, zasady organizacji) BentoPDF udostępnia osobny Dockerfile z obsługą PUID/PGID w stylu LSIO.
+
+### Budowanie i uruchamianie
+
+```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
+```
+
+### Zmienne środowiskowe
+
+| Zmienna | Opis | Domyślnie |
+| -------------- | -------------------------------------------- | --------- |
+| `PUID` | Identyfikator użytkownika, jako który działa | `1000` |
+| `PGID` | Identyfikator grupy, jako która działa | `1000` |
+| `PORT` | Port nasłuchiwania Nginx | `8080` |
+| `DISABLE_IPV6` | Wyłącz nasłuchiwanie 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
+```
+
+### Jak to działa
+
+Kontener startuje jako root, tworzy użytkownika o podanym PUID/PGID, dostosowuje własność wszystkich katalogów z możliwością zapisu, a następnie obniża uprawnienia za pomocą `su-exec`. Proces nginx działa w całości jako wskazany użytkownik.
+
+> [!NOTE]
+> Standardowy `Dockerfile` używa `nginx-unprivileged` (UID 101) i jest zalecany w większości wdrożeń. Używaj `Dockerfile.nonroot` tylko wtedy, gdy potrzebujesz konkretnego UID/GID.
+
+> [!WARNING]
+> PUID/PGID nie mogą mieć wartości `0` (root). Punkt wejścia waliduje dane i kończy się błędem przy nieprawidłowych wartościach.
+
+## Z Traefik (reverse proxy)
+
+```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
+```
+
+## Z Caddy (reverse proxy)
+
+```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:
+```
+
+Plik Caddyfile:
+
+```
+pdf.example.com {
+ reverse_proxy bentopdf:8080
+ header Cross-Origin-Opener-Policy "same-origin"
+ header Cross-Origin-Embedder-Policy "require-corp"
+}
+```
+
+## Limity zasobów
+
+```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 (integracja z systemd)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) pozwala uruchamiać kontenery Podman jako usługi systemd. To idealne rozwiązanie dla wdrożeń produkcyjnych w systemach Linux.
+
+### Podstawowa konfiguracja Quadlet
+
+Utwórz plik jednostki kontenera w `~/.config/containers/systemd/bentopdf.container` (użytkownik) lub `/etc/containers/systemd/bentopdf.container` (system):
+
+```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
+```
+
+### Włączanie i uruchamianie
+
+```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]
+> Dla wdrożenia ogólnosystemowego użyj `systemctl` bez flagi `--user` i umieść plik w `/etc/containers/systemd/`.
+
+### Quadlet z kontrolą stanu
+
+```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
+```
+
+### Automatyczna aktualizacja z Quadlet
+
+Podman może automatycznie aktualizować kontenery, gdy pojawią się nowe obrazy:
+
+```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
+```
+
+### Konfiguracja sieci Quadlet
+
+Aby skonfigurować własną sieć, utwórz plik sieci `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Następnie odwołaj się do niego w pliku kontenera:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Aktualizacja
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/pl/self-hosting/hostinger.md b/docs/pl/self-hosting/hostinger.md
new file mode 100644
index 00000000..42770427
--- /dev/null
+++ b/docs/pl/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Wdrożenie na Hostinger
+
+[Hostinger](https://hostinger.com) to popularny dostawca hostingu współdzielonego. Ten przewodnik opisuje wdrożenie BentoPDF na hostingu współdzielonym Hostinger.
+
+## Wymagania wstępne
+
+- Plan hostingowy Hostinger z dostępem do menedżera plików
+- Node.js zainstalowany lokalnie do budowania
+
+## Krok 1: Zbuduj projekt
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Zbudowane pliki znajdą się w folderze `dist`.
+
+## Krok 2: Wyślij na Hostinger
+
+### Wdrożenie w domenie głównej
+
+1. Zaloguj się na swoje konto Hostinger
+2. Przejdź do **File Manager** → **public_html**
+3. **Usuń** istniejące pliki (w razie potrzeby zrób kopię zapasową)
+4. **Wyślij** całą zawartość lokalnego folderu `dist` do `public_html`
+
+### Wdrożenie w podkatalogu
+
+Jeśli wdrażasz do podkatalogu (np. `yourdomain.com/pdf-tools/`):
+
+1. Zbuduj z poprawnym bazowym adresem URL:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Utwórz folder w Hostinger:
+ - Przejdź do **File Manager** → **public_html**
+ - Utwórz nowy folder: `pdf-tools`
+3. Wyślij całą zawartość `dist` do `public_html/pdf-tools/`
+
+## Krok 3: Utwórz plik .htaccess
+
+Utwórz plik `.htaccess` w katalogu głównym folderu wdrożenia (`public_html` lub `public_html/pdf-tools/`):
+
+::: warning Ważne
+Przy wdrożeniu w podkatalogu zmień `RewriteBase /` na `RewriteBase /pdf-tools/` (lub nazwę swojego folderu).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Przykład .htaccess dla podkatalogu
+
+Dla `yourdomain.com/pdf-tools/` zaktualizuj te linie:
+
+```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
+```
+
+## Rozwiązywanie problemów
+
+### Pliki WASM się nie ładują
+
+Upewnij się, że typy MIME są poprawnie ustawione w `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Narzędzia LibreOffice nie działają
+
+Nagłówki bezpieczeństwa są kluczowe dla SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Jeśli nagłówki nie są stosowane, skontaktuj się z pomocą techniczną Hostinger, aby włączyła `mod_headers`.
+
+### Błędy 404 po odświeżeniu strony
+
+Upewnij się, że reguła rozszerzenia `.html` i trasy językowe są poprawnie skonfigurowane. BentoPDF używa statycznych plików HTML, a nie routingu 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]
+```
+
+### Limity wysyłania plików
+
+Hostinger może mieć limity rozmiaru plików. Jeśli wysyłanie zbiorcze zawodzi, wyślij pliki WASM osobno.
diff --git a/docs/pl/self-hosting/index.md b/docs/pl/self-hosting/index.md
new file mode 100644
index 00000000..a596ac0d
--- /dev/null
+++ b/docs/pl/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Przewodnik self-hostingu
+
+BentoPDF można hostować na własnej infrastrukturze. Ten przewodnik omawia różne opcje wdrożenia.
+
+## Szybki start z Docker / Podman
+
+Najszybszy sposób na self-hosting BentoPDF:
+
+> [!TIP]
+> BentoPDF jest dostępny w dwóch wersjach:
+>
+> - **Wersja Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Wszystkie narzędzia PDF, **bez** elementów marketingowych (bez hero, FAQ, opinii, stopki). Użyj jej do wdrożeń wewnętrznych, zespołowych i w organizacjach. To **nie** jest okrojona wersja "lite".
+> - **Wersja komercyjna**: `ghcr.io/alam00000/bentopdf:latest`. Pełna strona marketingowa, używana przez samo bentopdf.com i przez posiadaczy licencji komercyjnej uruchamiających publiczne wdrożenia.
+>
+> W razie wątpliwości: pobierz wersję Self-Hosted.
+
+> [!IMPORTANT]
+> Konwersja plików Office wymaga `SharedArrayBuffer`, co oznacza, że aplikacja musi być jednocześnie odizolowana cross-origin i serwowana z bezpiecznego kontekstu. Oficjalny obraz już wysyła wymagane nagłówki COOP/COEP, ale przeglądarki nadal wyłączają `SharedArrayBuffer` na zwykłych adresach HTTP w sieci lokalnej, takich jak `http://192.168.x.x`.
+>
+> Używaj `http://localhost` tylko do testów na tym samym urządzeniu. Jeśli użytkownicy łączą się z BentoPDF przez adres IP w sieci LAN lub nazwę hosta, zakończ połączenie przez 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
+```
+
+Lub z 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)
+
+Uruchom BentoPDF jako usługę systemd. Utwórz `~/.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
+```
+
+Pełną dokumentację Quadlet znajdziesz w [przewodniku wdrożenia Docker](/pl/self-hosting/docker).
+
+## Budowanie ze źródeł
+
+```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
+```
+
+## Opcje konfiguracji
+
+### Wersja Self-Hosted (Simple Mode)
+
+Wersja Self-Hosted (obraz `bentopdf-simple`, zwana też Simple Mode) jest **funkcjonalnie identyczna** z wersją komercyjną: każde narzędzie PDF jest obecne i działa tak samo. Ukrywa tylko elementy marketingowe, które mają sens wyłącznie na samym bentopdf.com lub w komercyjnym, publicznym wdrożeniu. **To nie jest okrojona wersja "lite".**
+
+**Co ukrywa wersja Self-Hosted** (tylko kosmetycznie, żadne funkcje PDF nie są usuwane):
+
+- Pasek nawigacji, sekcja hero, sekcja funkcji, FAQ, opinie, stopka
+- Zmienia tytuł strony na "Narzędzia PDF"
+
+**Co zachowuje wersja Self-Hosted** (wszystko, co faktycznie pracuje na PDF):
+
+- Każde narzędzie PDF (łączenie, dzielenie, edycja, podpisywanie, OCR, konwersja Office itd.)
+- Obsługa własnego brandingu, cała konfiguracja czasu budowania i działania
+
+Wersja komercyjna (`ghcr.io/alam00000/bentopdf:latest`) napędza samo bentopdf.com i jest używana przez posiadaczy licencji komercyjnej uruchamiających publiczne wdrożenia. Dodaje hero, FAQ, opinie i stopkę, które nie miałyby sensu w narzędziu wewnętrznym.
+
+Jeśli hostujesz BentoPDF dla swojego zespołu, organizacji lub jako narzędzie wewnętrzne, pobierz wersję Self-Hosted:
+
+```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
+```
+
+Szczegóły znajdziesz w [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md).
+
+### Wersja komercyjna (publiczne wdrożenia z własną marką)
+
+Wersja komercyjna (obraz `bentopdf`, bez sufiksu `-simple`) napędza samo bentopdf.com. Zawiera pełną stronę marketingową (hero, funkcje, FAQ, opinie, stopka) oraz każde narzędzie PDF. Użyj tej wersji, gdy chcesz **wdrożyć BentoPDF jako publiczną usługę PDF pod własną marką**, na przykład:
+
+- Uruchamiasz BentoPDF jako hostowaną usługę SaaS dla użytkowników końcowych na własnej domenie
+- Chcesz doświadczenia strony docelowej (sekcje marketingowe + narzędzia), a nie samą powierzchnię narzędzi
+- Jesteś posiadaczem licencji komercyjnej i osadzasz BentoPDF w komercyjnym produkcie
+
+**Uruchom bez zmian** (z brandingiem BentoPDF, przydatne do podglądu buildu):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Zbuduj z własną marką** (typowy przepływ komercyjny):
+
+```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
+```
+
+Każda inna opcja czasu budowania (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, nadpisania adresów WASM itd.) działa tak samo jak w wersji Self-Hosted.
+
+::: warning Licencjonowanie
+Uruchamianie wersji komercyjnej jest dozwolone w ramach jednej z dwóch opcji licencyjnych BentoPDF:
+
+- **AGPL-3.0** (darmowa): dozwolone, jeśli Twoje wdrożenie publikuje cały kod źródłowy na licencji AGPL, w tym modyfikacje brandingu i otaczającą logikę biznesową.
+- **Licencja komercyjna** (79 USD dożywotnio): wymagana dla wdrożeń z zamkniętym kodem / własnościowych, w których nie udostępniasz otwarcie forka brandingu ani kodu biznesowego.
+
+Pełne porównanie znajdziesz na [stronie Licencjonowanie](https://www.bentopdf.com/licensing). Moduły WASM na licencji AGPL (PyMuPDF, Ghostscript, CoherentPDF) ładują się z CDN w czasie działania, więc nie trafiają do Twojego obrazu i nie zmieniają Twojej sytuacji licencyjnej.
+:::
+
+### Base URL
+
+Wdrożenie w podkatalogu:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Własny branding
+
+Zastąp domyślne logo BentoPDF, nazwę i tekst stopki własnymi podczas budowania:
+
+| Zmienna | Opis | Domyślnie |
+| ------------------ | ----------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nazwa marki w nagłówku i stopce | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Ścieżka do logo względem `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Własny tekst stopki/praw autorskich | `© 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
+```
+
+Lub przez 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 .
+```
+
+Branding działa zarówno w trybie pełnym, jak i Simple Mode, i można go łączyć ze wszystkimi innymi opcjami czasu budowania (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Wyłączanie wybranych narzędzi
+
+Ukryj wybrane narzędzia ze względów zgodności lub bezpieczeństwa. Wyłączone narzędzia są usuwane ze strony głównej, wyszukiwarki, skrótów, kreatora przepływów i bezpośredniego dostępu przez URL.
+
+Identyfikatory narzędzi to adres strony bez `.html`. Otwórz dowolne narzędzie i spójrz na adres URL (np. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Czas budowania** (wbudowane w bundle):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Czas działania** (bez przebudowywania, zamontuj `config.json`):
+
+```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
+```
+
+Obie metody można łączyć, a listy są scalane.
+
+Możesz też wyłączyć wybrane funkcje w Edytorze PDF (np. redakcję) bez wyłączania całego narzędzia, dodając `editorDisabledCategories` do `config.json`. Pełną listę kategorii znajdziesz w [przewodniku Docker](/pl/self-hosting/docker#wyłaczanie-funkcji-edytora).
+
+## Przewodniki wdrożenia
+
+Wybierz swoją platformę:
+
+- [Vercel](/pl/self-hosting/vercel)
+- [Netlify](/pl/self-hosting/netlify)
+- [Cloudflare Pages](/pl/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/pl/self-hosting/aws)
+- [Hostinger](/pl/self-hosting/hostinger)
+- [Nginx](/pl/self-hosting/nginx)
+- [Apache](/pl/self-hosting/apache)
+- [Docker](/pl/self-hosting/docker)
+- [Kubernetes](/pl/self-hosting/kubernetes)
+- [CORS Proxy](/pl/self-hosting/cors-proxy) - wymagany dla podpisów cyfrowych
+
+## Typowe problemy
+
+### Konwersja Word / ODT / Excel / PowerPoint na PDF zawiesza się (SharedArrayBuffer niedostępny)
+
+**Objaw**: konwersje dokumentów oparte na LibreOffice (Word, ODT, Excel, PowerPoint na PDF) zawieszają się na ok. 55% lub nie startują. Konsola przeglądarki może pokazywać:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…albo `window.crossOriginIsolated` zwraca `false`, albo kompilacja WASM zgłasza `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Przyczyna**: LibreOffice WASM wymaga `SharedArrayBuffer`, który przeglądarka włącza tylko wtedy, gdy strona jest **odizolowana cross-origin** ORAZ serwowana z **bezpiecznego kontekstu**. Oznacza to, że muszą być spełnione dwa warunki:
+
+1. Każda odpowiedź zawiera oba nagłówki:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. Strona jest serwowana z `https://...` lub `http://localhost`. Zwykły HTTP na adresie IP w sieci LAN (np. `http://192.168.x.x`) NIE jest uznawany za bezpieczny, a przeglądarki wyłączają tam `SharedArrayBuffer`.
+
+Niezgodność `00 61 73 6d / 1f 8b 08 08` to osobny podobjaw: wstępnie skompresowane pliki `.wasm.gz` / `.data.gz` nie mają nagłówka odpowiedzi `Content-Encoding: gzip`, więc przeglądarka dostaje surowe bajty gzip zamiast rozpakowanego WASM.
+
+**Rozwiązanie**: dokładną konfigurację znajdziesz w przewodniku dla swojej platformy:
+
+- [Nginx →](/pl/self-hosting/nginx#podpisz-pdf-lub-wypełnianie-formularzy-pdf-pokazuje-pusty-podglad-bład-mime-mjs)
+- [Apache →](/pl/self-hosting/apache#podpisywanie-pdf-lub-wypełnianie-formularzy-pokazuje-pusta-przegladarke-bład-mime-mjs)
+- [AWS S3 + CloudFront →](/pl/self-hosting/aws#krok-3b-polityka-nagłowkow-odpowiedzi-wymagana-dla-libreoffice-wasm)
+- [Cloudflare Pages →](/pl/self-hosting/cloudflare#plik-konfiguracji) (plik `_headers`)
+- [Netlify →](/pl/self-hosting/netlify#konwersja-word-odt-excel-na-pdf-zawiesza-sie-na-55) (`netlify.toml`)
+- [Vercel →](/pl/self-hosting/vercel#konwersja-word-odt-excel-na-pdf-nie-działa) (`vercel.json`)
+- [Hostinger →](/pl/self-hosting/hostinger#narzedzia-libreoffice-nie-działaja) (`.htaccess`)
+- [Kubernetes →](/pl/self-hosting/kubernetes#błedy-typu-mime-dla-mjs-pusty-iframe-podpisz-pdf-wypełnianie-formularzy-pdf)
+- **Docker**: obsługiwane automatycznie przez wbudowaną konfigurację nginx, nie trzeba nic robić.
+
+**Weryfikacja**: otwórz konsolę DevTools na dowolnej stronie BentoPDF i uruchom:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Jeśli strona działa przez HTTPS lub `http://localhost` ORAZ oba nagłówki COEP/COOP są obecne w każdej odpowiedzi, oba testy przejdą. Jeśli jesteś na `http://192.168.x.x` lub innym adresie HTTP spoza pętli zwrotnej, zakończ połączenie przez HTTPS. Nie ma rozwiązania opartego wyłącznie na nagłówkach.
+
+### Pliki `.mjs` serwowane jako `application/octet-stream`
+
+**Objaw**: Podpisz PDF / Wypełnianie formularzy PDF / niektóre inne narzędzia pokazują pusty podgląd lub nie ładują się. Konsola przeglądarki zgłasza:
+
+> `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.`
+
+**Przyczyna**: Twój serwer WWW lub reverse proxy nie ma mapowania typu MIME dla plików `.mjs` (wbudowana przeglądarka PDF dostarcza moduły ES z tym rozszerzeniem). Wiele standardowych konfiguracji serwerów domyślnie używa `application/octet-stream` dla nierozpoznanych rozszerzeń, a przeglądarki odmawiają wykonania takich plików jako modułów ES.
+
+**Rozwiązanie**: dokładny fragment znajdziesz w przewodniku dla swojej platformy:
+
+- [Nginx →](/pl/self-hosting/nginx#podpisz-pdf-lub-wypełnianie-formularzy-pdf-pokazuje-pusty-podglad-bład-mime-mjs)
+- [Apache →](/pl/self-hosting/apache#podpisywanie-pdf-lub-wypełnianie-formularzy-pokazuje-pusta-przegladarke-bład-mime-mjs)
+- [AWS S3 + CloudFront →](/pl/self-hosting/aws#krok-2-zbuduj-i-wyslij) (zobacz `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/pl/self-hosting/kubernetes#błedy-typu-mime-dla-mjs-pusty-iframe-podpisz-pdf-wypełnianie-formularzy-pdf)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: obsługiwane automatycznie, nie trzeba nic robić.
+
+**Weryfikacja**: otwórz DevTools → karta Network, znajdź nieudane żądanie `.mjs` i sprawdź nagłówek odpowiedzi `Content-Type`. Powinien mieć wartość `application/javascript`. Jeśli nadal jest `application/octet-stream`, zewnętrzny reverse proxy lub CDN może ponownie wykrywać typ, więc sprawdź każdą warstwę w łańcuchu serwowania.
+
+## Konfiguracja WASM (komponenty AGPL)
+
+BentoPDF **nie dołącza** bibliotek przetwarzania na licencji AGPL do swojego kodu źródłowego, ale **wstępnie konfiguruje adresy CDN**, więc wszystkie funkcje działają od razu, bez ręcznej konfiguracji.
+
+::: tip Domyślnie bez konfiguracji
+Od wersji v2.0.0 moduły WASM są wstępnie skonfigurowane do ładowania z CDN jsDelivr przez zmienne środowiskowe. Wszystkie zaawansowane funkcje działają od razu, bez żadnej konfiguracji użytkownika.
+:::
+
+| Komponent | Licencja | Funkcje |
+| --------------- | -------- | --------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Konwersja EPUB/MOBI/FB2/XPS, wyodrębnianie obrazów i tabel |
+| **Ghostscript** | AGPL-3.0 | Konwersja do PDF/A, kompresja, prostowanie skanów, rasteryzacja |
+| **CoherentPDF** | AGPL-3.0 | Spis treści, załączniki, łączenie PDF z zakładkami |
+
+### Domyślne zmienne środowiskowe
+
+Są ustawione w `.env.production` i wbudowane w build:
+
+```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=
+```
+
+### Nadpisywanie adresów WASM
+
+Możesz nadpisać wartości domyślne podczas budowania dla własnych wdrożeń:
+
+```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
+```
+
+Aby całkowicie wyłączyć moduł (wymagając ręcznej konfiguracji przez użytkownika w Ustawieniach zaawansowanych), ustaw jego zmienną na pusty ciąg.
+
+Dla OCR albo zostaw wszystkie zmienne `VITE_TESSERACT_*` puste i korzystaj z domyślnych zasobów online, albo ustaw razem adresy worker/core/lang dla self-hostowanego/offline OCR. Jeśli dołączasz tylko wybrane języki OCR, ustaw też `VITE_TESSERACT_AVAILABLE_LANGUAGES` na te same kody oddzielone przecinkami, aby interfejs oferował tylko zainstalowane języki, a nieobsługiwane wybory kończyły się opisowym błędem. Dla w pełni offline'owego wyniku przeszukiwalnego PDF ustaw też `VITE_OCR_FONT_BASE_URL` na wewnętrzny katalog serwujący dołączone czcionki OCR.
+
+Użytkownicy mogą też w dowolnej chwili nadpisać te wartości w **Ustawieniach zaawansowanych** w interfejsie. Nadpisania zapisane w przeglądarce mają pierwszeństwo przed domyślnymi wartościami środowiska.
+
+### Wdrożenie w sieci izolowanej / offline
+
+Dla sieci bez dostępu do internetu (administracja, ochrona zdrowia, finanse itd.). Adresy WASM są wbudowane w JavaScript podczas **budowania**, a same pliki WASM pobiera **przeglądarka użytkownika** w czasie działania. Dlatego wszystko trzeba przygotować na maszynie z internetem, a potem przenieść do izolowanej sieci.
+
+#### Skrypt automatyczny (zalecany)
+
+Dołączony skrypt `prepare-airgap.sh` automatyzuje cały proces: pobiera pakiety WASM, buduje obraz Docker i tworzy samodzielny pakiet ze skryptem instalacyjnym.
+
+```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
+```
+
+Powstaje katalog pakietu:
+
+```
+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
+```
+
+Przenieś pakiet do izolowanej sieci przez USB, wewnętrzne repozytorium artefaktów lub zatwierdzoną metodę. Następnie uruchom dołączony skrypt instalacyjny:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Skrypt instalacyjny wczytuje obraz Docker, wypakowuje pliki WASM i opcjonalnie uruchamia kontener.
+
+**Opcje skryptu:**
+
+| Flaga | Opis | Domyślnie |
+| ------------------------------ | -------------------------------------------------------- | -------------------------------- |
+| `--wasm-base-url ` | Gdzie pliki WASM będą hostowane wewnętrznie | _(wymagane, pytanie jeśli brak)_ |
+| `--image-name ` | Tag obrazu Docker | `bentopdf` |
+| `--output-dir ` | Katalog wyjściowy pakietu | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Włącz Simple Mode | wyłączone |
+| `--base-url ` | Bazowy URL podkatalogu (np. `/pdf/`) | `/` |
+| `--language ` | Domyślny język interfejsu (np. `fr`, `de`) | _(brak)_ |
+| `--brand-name ` | Własna nazwa marki | _(brak)_ |
+| `--brand-logo ` | Ścieżka do logo względem `public/` | _(brak)_ |
+| `--footer-text ` | Własny tekst stopki | _(brak)_ |
+| `--ocr-languages ` | Języki OCR do dołączenia, oddzielone przecinkami | `eng` |
+| `--list-ocr-languages` | Wypisz obsługiwane kody i nazwy OCR, a następnie zakończ | wyłączone |
+| `--search-ocr-language ` | Szukaj kodów OCR po nazwie lub skrócie | wyłączone |
+| `--dockerfile ` | Używany Dockerfile | `Dockerfile` |
+| `--skip-docker` | Pomiń budowanie i eksport Docker | wyłączone |
+| `--skip-wasm` | Pomiń pobieranie WASM (użyj istniejących plików `.tgz`) | wyłączone |
+
+Interaktywny monit akceptuje też `list`, aby wypisać pełną listę obsługiwanych kodów Tesseract, oraz `search `, aby znaleźć dopasowania, np. `search german` lub `search chi`.
+
+::: warning Wymóg tego samego źródła
+Pliki WASM muszą być serwowane z **tego samego źródła (origin)** co aplikacja BentoPDF. Web Workery używają `importScripts()`, które nie może ładować skryptów cross-origin. Na przykład, jeśli BentoPDF działa pod `https://internal.example.com`, bazowy adres WASM powinien być również `https://internal.example.com/wasm`.
+:::
+
+#### Kroki ręczne
+
+
+Jeśli wolisz zrobić to ręcznie, bez skryptu
+
+**Krok 1: Pobierz pakiety WASM i OCR** (na maszynie z internetem)
+
+```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
+```
+
+**Krok 2: Zbuduj obraz Docker z wewnętrznymi adresami**
+
+```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 .
+```
+
+**Krok 3: Wyeksportuj obraz Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Krok 4: Przenieś do izolowanej sieci**
+
+Skopiuj przez USB, wewnętrzne repozytorium artefaktów lub zatwierdzoną metodę transferu:
+
+- `bentopdf.tar`: obraz Docker
+- Pięć pakietów `.tgz` WASM/OCR z kroku 1
+- Katalog `tesseract-langdata/` z kroku 1
+- Katalog `ocr-fonts/` z kroku 1
+
+**Krok 5: Skonfiguruj wewnątrz izolowanej sieci**
+
+```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
+```
+
+Upewnij się, że pliki są dostępne pod adresami skonfigurowanymi w kroku 2, w tym `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` i `.../ocr/fonts`.
+
+
+
+::: info Budujesz ze źródeł zamiast w Dockerze?
+Ustaw zmienne w `.env.production` przed uruchomieniem `npm run build`:
+
+```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
+```
+
+:::
+
+### Hostowanie własnego proxy WASM
+
+Jeśli musisz serwować pliki WASM na licencji AGPL z odpowiednimi nagłówkami CORS, możesz wdrożyć proste proxy. Przykładową implementację znajdziesz w [przewodniku Cloudflare WASM Proxy](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md).
+
+::: tip Dlaczego osobno?
+To rozdzielenie zapewnia:
+
+- Jasną zgodność prawną dla użytkowników komercyjnych
+- Rdzeń BentoPDF pozostaje na podwójnej licencji (AGPL-3.0 / komercyjna)
+- Pliki WASM są ładowane w czasie działania, a nie dołączane do źródeł
+ :::
+
+## Wymagania systemowe
+
+| Wymaganie | Minimum |
+| --------- | ----------------------------------- |
+| Miejsce | ok. 100 MB (rdzeń bez modułów AGPL) |
+| RAM | 512 MB |
+| CPU | Dowolny nowoczesny procesor |
+
+::: tip
+BentoPDF to statyczna strona, więc nie jest potrzebna baza danych ani serwer backendowy!
+:::
diff --git a/docs/pl/self-hosting/kubernetes.md b/docs/pl/self-hosting/kubernetes.md
new file mode 100644
index 00000000..42982a68
--- /dev/null
+++ b/docs/pl/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Wdrożenie na Kubernetes
+
+Kubernetes może być przesadą dla statycznej strony, ale świetnie sprawdzi się, jeśli standaryzujesz wszystko na Helm + GitOps.
+
+> [!IMPORTANT]
+> **Wymagane nagłówki dla konwersji plików Office**
+>
+> Narzędzia oparte na LibreOffice (konwersja Word, Excel, PowerPoint) wymagają tych nagłówków HTTP dla obsługi `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Oficjalne obrazy nginx BentoPDF zawierają te nagłówki. W Kubernetes **kontrolery Ingress/Gateway także są reverse proxy**, więc upewnij się, że nagłówki są zachowywane (lub dodaj je na brzegu).
+
+## Wymagania wstępne
+
+- Klaster Kubernetes
+- Helm v3
+- Obraz nginx BentoPDF (np. `ghcr.io/alam00000/bentopdf:`) serwujący na **porcie 8080**
+
+## Wdrożenie z Helm
+
+### Instalacja z tego repozytorium (lokalny chart)
+
+```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
+```
+
+### Instalacja z GHCR (chart OCI)
+
+Jeśli chart jest opublikowany w GHCR jako artefakt OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Udostępnianie
+
+### Port-forward (szybki test)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (opcjonalnie)
+
+Włącz Ingress (przykład dla nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (opcjonalnie)
+
+Ten chart obsługuje Gateway API `Gateway` + `HTTPRoute`.
+
+Przykład (operator 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
+```
+
+## Upewnianie się, że nagłówki SharedArrayBuffer nadal działają (Ingress/Gateway)
+
+### Co "powinno" się dziać
+
+Konfiguracja nginx BentoPDF ustawia wymagane nagłówki odpowiedzi. Większość kontrolerów Ingress/Gateway **przekazuje nagłówki odpowiedzi z upstreamu bez zmian**.
+
+### Co może to zepsuć
+
+- Polityka kontrolera lub brzegu, która **nadpisuje** lub **usuwa** nagłówki odpowiedzi
+- Middleware "security headers", które ustawia inne wartości COOP/COEP
+
+### Jak sprawdzić
+
+Uruchom to na swoim publicznym adresie:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Powinieneś zobaczyć:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Jeśli Twój kontroler Ingress ich nie zachowuje
+
+Dodaj nagłówki na brzegu (zależnie od kontrolera). Przykład dla **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;
+```
+
+## Błędy typu MIME dla `.mjs` (pusty iframe Podpisz PDF / Wypełnianie formularzy PDF)
+
+Jeśli konsola przeglądarki pokazuje `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` przy żądaniu `.mjs`, kontroler Ingress/Gateway przed nginx BentoPDF zastępuje nagłówek `Content-Type` z upstreamu wartością `application/octet-stream`.
+
+Nginx w obrazie BentoPDF już serwuje `.mjs` jako `application/javascript`. Rozwiązaniem jest powstrzymanie kontrolera przed usuwaniem lub zastępowaniem tego nagłówka. Dla nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Możesz też użyć filtra `ResponseHeaderModifier` w Gateway API, aby ustawić `Content-Type: application/javascript` dla ścieżek `.mjs`. Zweryfikuj w DevTools → karta Network: nieudane żądanie `.mjs` powinno teraz pokazywać `content-type: application/javascript`.
+
+### Jeśli używasz Gateway API i chcesz wymusić dodanie nagłówków
+
+Gateway API obsługuje filtr `ResponseHeaderModifier`. Możesz go dołączyć w `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
+```
+
+Obsługa konkretnych filtrów zależy od Twojego kontrolera Gateway. Jeśli filtr jest ignorowany, dodaj nagłówki na warstwie brzegu/kontrolera.
+
+## Wyłączanie wybranych narzędzi
+
+Użyj ConfigMap, aby wyłączyć narzędzia w czasie działania, bez przebudowywania obrazu:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Zamontuj go w serwowanym katalogu:
+
+```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
+```
+
+Identyfikatory narzędzi to adres strony bez `.html`. Otwórz dowolne narzędzie i spójrz na adres URL (np. `edit-pdf`, `merge-pdf`, `compress-pdf`). Wyłączone narzędzia są ukryte na stronie głównej, w wyszukiwarce, skrótach, kreatorze przepływów i przy bezpośrednim dostępie przez URL. Pełną listę opcji znajdziesz w [przewodniku Docker](/pl/self-hosting/docker#wyłaczanie-wybranych-narzedzi).
diff --git a/docs/pl/self-hosting/netlify.md b/docs/pl/self-hosting/netlify.md
new file mode 100644
index 00000000..bdeb0632
--- /dev/null
+++ b/docs/pl/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Wdrożenie na Netlify
+
+[Netlify](https://netlify.com) zapewnia świetny hosting statycznych stron z hojnym darmowym planem.
+
+## Wdrożenie jednym kliknięciem
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Wdrożenie ręczne
+
+### Krok 1: Połącz repozytorium
+
+1. Zaloguj się do [Netlify](https://app.netlify.com)
+2. Kliknij "Add new site" → "Import an existing project"
+3. Połącz swoje konto GitHub
+4. Wybierz swój fork BentoPDF
+
+### Krok 2: Skonfiguruj ustawienia budowania
+
+| Ustawienie | Wartość |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### Krok 3: Wdróż
+
+Kliknij "Deploy site" i poczekaj na zakończenie budowania.
+
+## Plik konfiguracyjny
+
+Utwórz `netlify.toml` w katalogu głównym projektu:
+
+```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 Ważne
+Nagłówki `Cross-Origin-Embedder-Policy` i `Cross-Origin-Opener-Policy` są wymagane do konwersji Word/ODT/Excel/PowerPoint na PDF. Bez nich `SharedArrayBuffer` jest niedostępny, a silnik LibreOffice WASM nie uruchomi się.
+
+Nagłówki `Content-Encoding: gzip` przy plikach `.wasm.gz` i `.data.gz` informują przeglądarkę, że ma je automatycznie rozpakować. Bez nich przeglądarka otrzymuje surowe bajty gzip, a kompilacja WASM kończy się błędem.
+:::
+
+## Zmienne środowiskowe
+
+Ustaw je w Site settings → Environment variables:
+
+| Zmienna | Opis |
+| ----------------------- | ------------------------------------------------------------- |
+| `SIMPLE_MODE` | Ustaw na `true` dla minimalnego builda |
+| `VITE_BRAND_NAME` | Własna nazwa marki (zastępuje "BentoPDF") |
+| `VITE_BRAND_LOGO` | Ścieżka do logo względem `public/` (np. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Własny tekst stopki/praw autorskich |
+| `VITE_DEFAULT_LANGUAGE` | Domyślny język interfejsu (np. `fr`, `de`, `es`) |
+
+## Własna domena
+
+1. Przejdź do Site settings → Domain management
+2. Kliknij "Add custom domain"
+3. Postępuj zgodnie z instrukcjami konfiguracji DNS
+
+## Duże pliki multimedialne
+
+Dla dużych plików WASM rozważ włączenie [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Rozwiązywanie problemów
+
+### Konwersja Word/ODT/Excel na PDF zawiesza się na 55%
+
+Jeśli konwersje dokumentów zawieszają się na 55%, otwórz konsolę DevTools i sprawdź:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Jeśli `crossOriginIsolated` ma wartość `false`, nagłówki COEP/COOP z Twojego `netlify.toml` nie są stosowane. Upewnij się, że plik jest w katalogu głównym projektu, i wdróż ponownie.
+
+Jeśli w konsoli widzisz `expected magic word 00 61 73 6d, found 1f 8b 08 08`, pliki `.wasm.gz` nie mają nagłówków `Content-Encoding: gzip`. Upewnij się, że bloki `[[headers]]` dla `soffice.wasm.gz` i `soffice.data.gz` znajdują się w Twoim `netlify.toml`.
+
+### Budowanie kończy się błędem
+
+Sprawdź zgodność wersji Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Wolne pierwsze ładowanie
+
+Włącz optymalizację zasobów w Site settings → Build & deploy → Asset optimization.
diff --git a/docs/pl/self-hosting/nginx.md b/docs/pl/self-hosting/nginx.md
new file mode 100644
index 00000000..3d437664
--- /dev/null
+++ b/docs/pl/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Wdrożenie z Nginx
+
+Hostuj BentoPDF na własnym serwerze za pomocą Nginx.
+
+## Wymagania wstępne
+
+- Serwer Ubuntu/Debian
+- Zainstalowany Nginx
+- Certyfikat SSL (zalecany: Let's Encrypt)
+
+## Krok 1: Zbuduj projekt
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Aby dostosować branding, ustaw zmienne środowiskowe przed budowaniem:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Krok 2: Skopiuj pliki
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Krok 3: Konfiguracja Nginx
+
+Utwórz `/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;
+ }
+}
+```
+
+## Krok 4: Włącz witrynę
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Krok 5: SSL z Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Wdrożenie w podkatalogu
+
+Aby hostować pod `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Zbuduj z:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Dostrajanie wydajności
+
+Dodaj do `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;
+}
+```
+
+## Rozwiązywanie problemów
+
+### WASM się nie ładuje
+
+Upewnij się, że typ MIME jest ustawiony:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Podpisz PDF lub Wypełnianie formularzy PDF pokazuje pusty podgląd (błąd MIME `.mjs`)
+
+Jeśli konsola przeglądarki pokazuje:
+
+```
+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.
+```
+
+…a nieudane żądanie kończy się na `.mjs`, w Twoim nginx brakuje mapowania `.mjs → application/javascript`. Wbudowana przeglądarka PDF (używana przez Podpisz PDF, Wypełnianie formularzy PDF i kilka innych narzędzi) dostarcza moduły ES z rozszerzeniem `.mjs`, a standardowy `mime.types` w nginx domyślnie ich nie zawiera.
+
+Napraw to, dodając `mjs` do istniejącej linii `application/javascript` w `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> NIE dodawaj _drugiej_ linii `application/javascript`. Nginx parsuje `mime.types` linia po linii i działa tylko jedno mapowanie typu na rozszerzenie, więc druga linia jest w niektórych wersjach po cichu ignorowana. Edytuj istniejącą linię, dodając `mjs` obok `js`.
+
+Możesz też nadpisać to lokalnie w bloku server (bez edycji pliku globalnego):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Po zmianie przeładuj nginx:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Aby potwierdzić: w DevTools → karta Network znajdź nieudane żądanie `.mjs` i sprawdź nagłówek odpowiedzi `Content-Type`. Powinien mieć teraz wartość `application/javascript`, a nie `application/octet-stream`.
+
+### Konwersja Word/ODT/Excel na PDF nie działa
+
+LibreOffice WASM wymaga `SharedArrayBuffer`, a to wymaga nagłówków `Cross-Origin-Embedder-Policy` i `Cross-Origin-Opener-Policy`. Potrzebny jest też bezpieczny kontekst, więc `http://localhost` działa w lokalnych testach, ale `http://192.168.x.x` i inne adresy IP w sieci LAN zwykle wymagają HTTPS. Pamiętaj, że dyrektywy nginx `add_header` w bloku `location` **nadpisują** dyrektywy `add_header` z poziomu serwera, a nie łączą się z nimi. Każdy blok `location` z własnym `add_header` musi zawierać nagłówki COEP/COOP.
+
+Zweryfikuj poleceniem:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Jeśli przed nginx stoi reverse proxy, upewnij się, że zachowuje te nagłówki.
+
+### 502 Bad Gateway
+
+Sprawdź logi błędów Nginx:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/pl/self-hosting/vercel.md b/docs/pl/self-hosting/vercel.md
new file mode 100644
index 00000000..2346bda9
--- /dev/null
+++ b/docs/pl/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Wdrożenie na Vercel
+
+[Vercel](https://vercel.com) oferuje najprostszy sposób wdrażania statycznych stron.
+
+## Wdrożenie jednym kliknięciem
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Wdrożenie ręczne
+
+### Krok 1: Zrób fork repozytorium
+
+Zrób fork [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) na swoje konto GitHub.
+
+### Krok 2: Zaimportuj do Vercel
+
+1. Przejdź do [vercel.com/new](https://vercel.com/new)
+2. Wybierz swój fork repozytorium
+3. Skonfiguruj projekt:
+
+| Ustawienie | Wartość |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Krok 3: Zmienne środowiskowe (opcjonalnie)
+
+Dodaj je, jeśli są potrzebne:
+
+| Zmienna | Opis |
+| ----------------------- | ------------------------------------------------------------- |
+| `SIMPLE_MODE` | Ustaw na `true` dla minimalnego interfejsu |
+| `VITE_BRAND_NAME` | Własna nazwa marki (zastępuje "BentoPDF") |
+| `VITE_BRAND_LOGO` | Ścieżka do logo względem `public/` (np. `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Własny tekst stopki/praw autorskich |
+| `VITE_DEFAULT_LANGUAGE` | Domyślny język interfejsu (np. `fr`, `de`, `es`) |
+
+### Krok 4: Wdróż
+
+Kliknij "Deploy" i poczekaj na zakończenie budowania.
+
+## Własna domena
+
+1. Przejdź do ustawień projektu
+2. Otwórz "Domains"
+3. Dodaj swoją domenę
+4. Skonfiguruj DNS zgodnie z instrukcjami
+
+## Ograniczenia
+
+::: warning Duże pliki
+Funkcje serverless Vercel mają limit 50 MB. Ponieważ BentoPDF jest statyczną stroną, nie powinno to na Ciebie wpłynąć, ale moduły WASM są duże (łącznie ok. 100 MB). Upewnij się, że są serwowane z folderu `/public`.
+:::
+
+## Rozwiązywanie problemów
+
+### Przekroczenie czasu budowania
+
+Jeśli budowanie przekracza limit czasu, spróbuj:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### Błąd 404 po odświeżeniu
+
+Dodaj plik `vercel.json` dla routingu SPA:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Konwersja Word/ODT/Excel na PDF nie działa
+
+Konwersje LibreOffice WASM wymagają `SharedArrayBuffer`, a to wymaga tych nagłówków odpowiedzi na wszystkich stronach:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Wstępnie skompresowane pliki `.wasm.gz` i `.data.gz` potrzebują też nagłówka `Content-Encoding: gzip`, aby przeglądarka je rozpakowała.
+
+Dodaj je do swojego `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" }
+ ]
+ }
+ ]
+}
+```
+
+Aby to zweryfikować, otwórz konsolę DevTools i uruchom `console.log(window.crossOriginIsolated)`. Powinno zwrócić `true`.
diff --git a/docs/pl/tools/add-attachments.md b/docs/pl/tools/add-attachments.md
new file mode 100644
index 00000000..55c2222a
--- /dev/null
+++ b/docs/pl/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Dodaj załączniki
+description: Osadzaj pliki dowolnego typu w PDF na poziomie dokumentu lub dołączone do wybranych stron.
+---
+
+# Dodaj załączniki
+
+Osadź jeden lub więcej plików bezpośrednio w dokumencie PDF. Załączniki można dodać na poziomie dokumentu (widoczne w panelu załączników każdej przeglądarki PDF) lub powiązać z wybranymi stronami.
+
+## Jak to działa
+
+1. Wgraj plik PDF, do którego chcesz dołączyć pliki.
+2. W strefie upuszczania załączników wybierz pliki do osadzenia (dowolnego typu).
+3. Wybierz poziom załącznika: **Dokument** (domyślnie) lub **Strona**.
+4. Jeśli wybierzesz poziom strony, wpisz zakres stron (np. `1-3` lub `5`).
+5. Kliknij przycisk przetwarzania. Zmodyfikowany PDF zostanie pobrany z osadzonymi plikami.
+
+## Funkcje
+
+- Załączaj pliki dowolnego typu: obrazy, arkusze kalkulacyjne, archiwa, pliki wykonywalne, cokolwiek
+- Umieszczanie załączników na poziomie dokumentu lub strony
+- Wiele plików w jednej operacji
+- Wyświetla nazwy i rozmiary wszystkich wybranych załączników
+- Wynik zachowuje oryginalną zawartość PDF z dodanymi osadzonymi plikami
+
+## Opcje
+
+| Opcja | Opis |
+| -------------------- | ---------------------------------------------------------------- |
+| **Poziom dokumentu** | Dołącza pliki do całego PDF, dostępne w panelu załączników |
+| **Poziom strony** | Dołącza pliki do wybranych stron, określonych przez zakres stron |
+
+## Przypadki użycia
+
+- Dołączanie danych źródłowych (pliki Excel, CSV) do raportu PDF
+- Załączanie oryginalnych plików obrazów do portfolio fotograficznego w PDF
+- Osadzanie dokumentów pomocniczych w umowie lub ofercie
+- Dodawanie materiałów uzupełniających do wybranych stron podręcznika szkoleniowego
+
+## Wskazówki
+
+- Załączniki na poziomie dokumentu są najszerzej obsługiwane przez przeglądarki PDF. Załączniki na poziomie strony mogą nie być widoczne we wszystkich przeglądarkach.
+- Nie ma limitu rozmiaru załączników, ale bardzo duże osadzone pliki proporcjonalnie zwiększą rozmiar PDF.
+
+## Powiązane narzędzia
+
+- [Wyodrębnij załączniki](./extract-attachments)
+- [Edytuj załączniki](./edit-attachments)
+- [Połącz PDF](./merge-pdf)
diff --git a/docs/pl/tools/add-blank-page.md b/docs/pl/tools/add-blank-page.md
new file mode 100644
index 00000000..70cc16ee
--- /dev/null
+++ b/docs/pl/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Dodaj pustą stronę
+description: Wstaw jedną lub więcej pustych stron w dowolnym miejscu dokumentu PDF.
+---
+
+# Dodaj pustą stronę
+
+Wstaw puste strony do PDF w wybranym miejscu. Sam decydujesz, gdzie trafią puste strony i ile ich dodać.
+
+## Jak to działa
+
+1. Wgraj plik PDF. Narzędzie wyświetli liczbę stron.
+2. Wpisz **pozycję**, w której mają zostać wstawione puste strony. Użyj `0`, aby wstawić na samym początku, lub łącznej liczby stron, aby dodać na końcu.
+3. Wpisz **liczbę** pustych stron do dodania (domyślnie 1).
+4. Kliknij przycisk przetwarzania. Zmodyfikowany PDF zostanie pobrany z wstawionymi pustymi stronami.
+
+## Funkcje
+
+- Wstawianie w dowolnym miejscu: na początku, w środku lub na końcu dokumentu
+- Dodawanie wielu pustych stron w jednej operacji
+- Podpowiedź pozycji aktualizuje się dynamicznie na podstawie liczby stron wgranego PDF
+- Puste strony w standardowym rozmiarze A4
+
+## Przypadki użycia
+
+- Dodawanie pustej strony rozdzielającej sekcje w złożonym dokumencie
+- Wstawianie pustych stron dla wyrównania przy druku dwustronnym
+- Dodawanie miejsca na odręczne notatki w drukowanym przewodniku do nauki
+- Dopełnianie dokumentu do wymaganej minimalnej liczby stron
+
+## Wskazówki
+
+- Pozycja `0` wstawia przed pierwszą stroną. Pozycja równa łącznej liczbie stron dodaje po ostatniej stronie.
+- Jeśli chcesz wstawić zawartość (a nie tylko puste strony) w określonym miejscu, użyj [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool), aby wstawić inny PDF po wybranej stronie.
+
+## Powiązane narzędzia
+
+- [Duplikuj i organizuj](./organize-pdf)
+- [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool)
+- [Połącz PDF](./merge-pdf)
diff --git a/docs/pl/tools/add-page-labels.md b/docs/pl/tools/add-page-labels.md
new file mode 100644
index 00000000..8b049bc1
--- /dev/null
+++ b/docs/pl/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Dodaj etykiety stron
+description: Dodawaj etykiety stron PDF z cyframi rzymskimi, prefiksami literowymi, własną numeracją i wieloma regułami na dokument.
+---
+
+# Dodaj etykiety stron
+
+Etykiety stron określają, jak numery stron są wyświetlane w przeglądarkach PDF (numer widoczny na pasku narzędzi, a nie wydrukowany na stronie). To narzędzie pozwala przypisać różne schematy etykietowania różnym zakresom stron: cyfry rzymskie dla części wstępnej, liczby dziesiętne dla treści głównej, aneksy oznaczone literami i więcej.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Pojawi się panel opcji z jedną domyślną regułą etykiet.
+3. Skonfiguruj każdą regułę: zakres stron, styl, opcjonalny prefiks i wartość początkowa.
+4. Kliknij **Dodaj regułę**, aby utworzyć kolejne reguły dla różnych sekcji.
+5. Kliknij **Dodaj etykiety stron**, aby zastosować wszystkie reguły i pobrać wynik.
+
+## Opcje
+
+Każda reguła etykiet ma te ustawienia:
+
+- **Zakres stron**: strony, których dotyczy reguła. Zostaw puste dla wszystkich stron. Obsługuje zakresy takie jak `1-4`, `7`, `odd` lub `1-9,30-40`.
+- **Styl etykiety**: dziesiętne arabskie, małe cyfry rzymskie (i, ii, iii), wielkie cyfry rzymskie (I, II, III), małe litery (a, b, c), wielkie litery (A, B, C) lub brak etykiety (tylko prefiks).
+- **Prefiks etykiety**: opcjonalny tekst dodawany przed każdą etykietą, np. "A-", aby uzyskać etykiety A-1, A-2, A-3.
+- **Wartość początkowa**: liczba, od której zaczyna się numeracja. Domyślnie 1. Ustaw 0 dla numeracji od zera.
+- **Kontynuuj numerację w rozłącznych zakresach**: włącz, gdy reguła obejmuje strony nieciągłe (jak `1-9,30-40` lub `odd`), a chcesz, by numeracja biegła dalej po kolei.
+- **Usuń istniejące etykiety stron**: domyślnie zaznaczone. Czyści wszelkie poprzednie etykiety przed zastosowaniem nowych reguł.
+
+## Funkcje
+
+- Wiele reguł etykiet na dokument dla złożonych schematów numeracji
+- Sześć stylów etykiet obejmujących wszystkie standardowe systemy numeracji
+- Własny prefiks do etykietowania według sekcji
+- Obsługa rozłącznych zakresów z numeracją ciągłą
+- Możliwość zachowania lub usunięcia istniejących etykiet
+
+## Przypadki użycia
+
+- Ustawianie etykiet cyframi rzymskimi (i, ii, iii) dla przedmowy książki i dziesiętnych dla tekstu głównego
+- Etykietowanie stron aneksów prefiksami literowymi, takimi jak "A-1", "A-2", "B-1", "B-2"
+- Poprawianie etykiet stron w zeskanowanym dokumencie, w którym fizyczne numery stron nie zgadzają się z kolejnością stron PDF
+- Dodawanie numeracji od zera w dokumentach technicznych
+
+## Wskazówki
+
+- Etykiety stron to metadane, które przeglądarki PDF wyświetlają na pasku nawigacji. Nie są drukowane na samej stronie. Dla widocznych numerów użyj narzędzia [Numery stron](./page-numbers).
+- To narzędzie wymaga skonfigurowania CoherentPDF (CPDF) w ustawieniach WASM. Jeśli nie jest skonfigurowany, zostaniesz poproszony o konfigurację.
+
+## Powiązane narzędzia
+
+- [Numery stron](./page-numbers)
+- [Numeracja Batesa](./bates-numbering)
+- [Edytuj zakładki](./bookmark)
diff --git a/docs/pl/tools/add-stamps.md b/docs/pl/tools/add-stamps.md
new file mode 100644
index 00000000..a28427aa
--- /dev/null
+++ b/docs/pl/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Dodaj pieczątki
+description: Dodawaj pieczątki z obrazów do stron PDF za pomocą zintegrowanego paska adnotacji z podpisem użytkownika.
+---
+
+# Dodaj pieczątki
+
+Umieszczaj pieczątki z obrazów na stronach PDF za pomocą wbudowanej przeglądarki z paskiem adnotacji pieczątek. Pieczątki mogą zawierać Twoje imię i nazwisko jako autorstwo, co przydaje się w procesach zatwierdzania, recenzji i oznaczania dokumentów.
+
+## Jak to działa
+
+1. Wpisz swoje imię i nazwisko w polu **Nazwa użytkownika pieczątki**. Ta nazwa pojawi się na tworzonych przez Ciebie pieczątkach.
+2. Wgraj plik PDF, klikając lub przeciągając go do strefy upuszczania.
+3. Otworzy się edytor pieczątek z załadowanym dokumentem w przeglądarce.
+4. Użyj narzędzia pieczątki z obrazu na pasku narzędzi, aby wybrać i umieścić pieczątki na dowolnej stronie.
+5. Ustaw pozycję i zmień rozmiar pieczątek według potrzeb.
+6. Kliknij **Zapisz PDF z pieczątkami**, aby pobrać wynik.
+
+## Funkcje
+
+- Zintegrowana przeglądarka PDF z paskiem adnotacji dla pieczątek
+- Podpis użytkownika na tworzonych pieczątkach
+- Umieszczanie pieczątek z obrazów na dowolnej stronie
+- Pozycjonowanie i zmiana rozmiaru metodą przeciągnij i upuść
+- Automatyczne dopasowanie rozmiaru przeglądarki do proporcji strony
+- Wyświetlanie nazwy i rozmiaru pliku
+
+## Przypadki użycia
+
+- Dodawanie pieczątek "ZATWIERDZONO" lub "ZRECENZOWANO" z obrazów do dokumentów w procesie recenzji
+- Umieszczanie obrazów pieczęci firmowej lub notarialnej na oficjalnych dokumentach
+- Oznaczanie stron pieczątkami "OTRZYMANO" z imieniem i nazwiskiem recenzenta
+- Dodawanie pieczątek kontroli jakości do raportów z inspekcji
+
+## Wskazówki
+
+- Ustaw nazwę użytkownika pieczątki przed wgraniem PDF. Nazwa jest osadzana w metadanych pieczątki.
+- Przeglądarka dopasowuje wysokość do proporcji pierwszej strony PDF, aby zapewnić optymalny podgląd.
+- Jeśli zamiast pieczątek z obrazów potrzebujesz znaków wodnych z tekstem, użyj narzędzia [Dodaj znak wodny](./add-watermark).
+
+## Powiązane narzędzia
+
+- [Podpisz PDF](./sign-pdf)
+- [Dodaj znak wodny](./add-watermark)
+- [Edytor PDF](./edit-pdf)
diff --git a/docs/pl/tools/add-watermark.md b/docs/pl/tools/add-watermark.md
new file mode 100644
index 00000000..0846b7f3
--- /dev/null
+++ b/docs/pl/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Dodaj znak wodny
+description: Nanoś tekstowe lub obrazowe znaki wodne na strony PDF w wizualnym edytorze przeciągnij i upuść z podglądem na żywo.
+---
+
+# Dodaj znak wodny
+
+Dodawaj tekstowe lub obrazowe znaki wodne do stron PDF za pomocą wizualnego edytora. Możesz ustawić pozycję znaku wodnego, przeciągając go bezpośrednio na podglądzie, zmieniać rozmiar uchwytami w rogach oraz konfigurować krycie, obrót, czcionkę i kolor. Każda strona może mieć własną pozycję znaku wodnego albo możesz zastosować ten sam znak wodny do wszystkich stron naraz.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Otworzy się edytor z podglądem pierwszej strony na żywo i przeciągalną nakładką znaku wodnego.
+3. Wybierz tryb znaku wodnego **Tekst** lub **Obraz** przyciskami przełącznika.
+4. Skonfiguruj ustawienia znaku wodnego w panelu bocznym.
+5. Przeciągnij znak wodny na podglądzie dokładnie tam, gdzie chcesz. Użyj uchwytów w rogach, aby zmienić rozmiar.
+6. Przechodź między stronami, aby ustawić znaki wodne dla poszczególnych stron, lub pozostaw zaznaczone **Zastosuj do wszystkich stron**.
+7. Kliknij **Dodaj znak wodny**, aby przetworzyć i pobrać.
+
+## Opcje
+
+**Ustawienia tekstowego znaku wodnego:**
+
+- **Tekst**: tekst znaku wodnego (np. "POUFNE", "WERSJA ROBOCZA").
+- **Rozmiar czcionki**: od 10 do 200 punktów. Domyślnie 72.
+- **Kolor**: dowolny kolor z próbnika kolorów.
+- **Krycie**: steruj przezroczystością od całkowicie przezroczystego do w pełni kryjącego.
+- **Obrót**: obracaj tekst znaku wodnego od -180 do 180 stopni.
+
+**Ustawienia obrazowego znaku wodnego:**
+
+- **Wgranie obrazu**: wgraj plik PNG, JPG lub inny obraz, który posłuży jako znak wodny.
+- **Krycie**: steruj przezroczystością obrazu.
+- **Skala**: zmieniaj rozmiar obrazowego znaku wodnego.
+
+**Ustawienia układu:**
+
+- **Pojedynczy**: jeden znak wodny na stronę, ustawiany przeciąganiem lub gotowymi pozycjami.
+- **Kafelki**: powtarza znak wodny na całej stronie w ukośnej siatce zgodnej z kątem obrotu, dzięki czemu znak pokrywa dokument od krawędzi do krawędzi.
+- **Odstęp poziomy**: odstęp między kafelkami wzdłuż kierunku tekstu, jako procent szerokości znaku wodnego (tylko tryb kafelków).
+- **Odstęp pionowy**: odstęp między rzędami kafelków, jako procent wysokości znaku wodnego (tylko tryb kafelków).
+
+**Ustawienia ogólne:**
+
+- **Zastosuj do wszystkich stron**: gdy zaznaczone, ten sam znak wodny trafia na każdą stronę. Odznacz, aby ustawić osobne znaki wodne dla poszczególnych stron.
+- **Zakres stron**: określ, które strony dostaną znak wodny (np. "1-3, 5, 7-9" lub "all").
+
+## Funkcje
+
+- Wizualne pozycjonowanie metodą przeciągnij i upuść na podglądzie PDF na żywo
+- Znak wodny ze zmianą rozmiaru uchwytami w rogach
+- Tryby tekstowego i obrazowego znaku wodnego
+- Układ pojedynczy lub kafelkowy (powtarzany) na całej stronie z regulowanym odstępem
+- Znak wodny dla poszczególnych stron lub globalny
+- Nawigacja strona po stronie w podglądzie
+- Sterowanie kryciem i obrotem
+- Filtrowanie według zakresu stron
+
+## Przypadki użycia
+
+- Oznaczanie dokumentów roboczych napisem "WERSJA ROBOCZA" przed rozesłaniem do recenzji
+- Dodawanie znaków wodnych "POUFNE" do wrażliwych raportów finansowych
+- Brandowanie dokumentów obrazowym znakiem wodnym z logo firmy
+- Nanoszenie napisu "PRÓBKA" na dokumentację produktów udostępnianą potencjalnym klientom
+- Dodawanie informacji o prawach autorskich do rozpowszechnianych materiałów PDF
+
+## Wskazówki
+
+- Dla ukośnych znaków wodnych na całej stronie ustaw obrót około 45 stopni i zwiększ rozmiar czcionki.
+- Tryb kafelków znacznie utrudnia ponowne wykorzystanie dokumentu po przycięciu, ponieważ usunięcie jednego znaku wciąż zostawia dziesiątki kolejnych. Zmniejsz krycie przy kafelkowaniu, aby tekst pod spodem pozostał czytelny.
+- Obrazowe znaki wodne z przezroczystym tłem (format PNG) wtapiają się w treść dokumentu bardziej naturalnie.
+- Jeśli potrzebujesz innego tekstu znaku wodnego na różnych stronach, odznacz "Zastosuj do wszystkich stron" i przechodź strona po stronie.
+
+## Powiązane narzędzia
+
+- [Nagłówek i Stopka](./header-footer)
+- [Dodaj pieczątki](./add-stamps)
+- [Numeracja Batesa](./bates-numbering)
+- [Podpisz PDF](./sign-pdf)
diff --git a/docs/pl/tools/adjust-colors.md b/docs/pl/tools/adjust-colors.md
new file mode 100644
index 00000000..9a9a4eb7
--- /dev/null
+++ b/docs/pl/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Dostosuj kolory
+description: Dopracuj jasność, kontrast, nasycenie, odcień, temperaturę, tint, gamma i sepię w swoim PDF.
+---
+
+# Dostosuj kolory
+
+Pełny zestaw narzędzi do korekcji kolorów w PDF. Reguluj osiem niezależnych parametrów (jasność, kontrast, nasycenie, przesunięcie odcienia, temperaturę, tint, gamma i sepię) z podglądem na żywo aktualizowanym przy każdym ruchu suwaka.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Otworzy się edytor z podglądem pierwszej strony i panelem ustawień kolorów.
+3. Przesuwaj suwaki, aby dostosować każdy parametr koloru. Podgląd aktualizuje się w czasie rzeczywistym.
+4. Kliknij **Resetuj**, aby przywrócić wszystkie suwaki do pozycji domyślnych.
+5. Kliknij **Zastosuj**, aby przetworzyć wszystkie strony i pobrać dostosowany PDF.
+
+## Opcje
+
+- **Jasność**: rozjaśnij lub przyciemnij całą stronę (od -100 do +100).
+- **Kontrast**: zwiększ lub zmniejsz różnicę między jasnymi i ciemnymi obszarami (od -100 do +100).
+- **Nasycenie**: wzmocnij lub osłab intensywność kolorów (od -100 do +100). Ustawienie -100 daje skalę szarości.
+- **Przesunięcie odcienia**: obróć koło kolorów, aby jednolicie przesunąć wszystkie kolory.
+- **Temperatura**: przesuń kolory w stronę cieplejszych (żółty/pomarańczowy) lub chłodniejszych (niebieski).
+- **Odcień (Tint)**: dodaj zielony lub magentowy odcień.
+- **Gamma**: dostosuj jasność półcieni za pomocą krzywej gamma. Wartości poniżej 1.0 przyciemniają półcienie, a powyżej 1.0 je rozjaśniają.
+- **Sepia**: zastosuj klasyczny efekt sepii. Wyższe wartości dają mocniejszy brązowy odcień.
+
+## Funkcje
+
+- Osiem niezależnie regulowanych parametrów koloru
+- Podgląd na żywo reagujący natychmiast na zmiany suwaków
+- Przycisk resetu do szybkiego powrotu do ustawień domyślnych
+- Przetwarza wszystkie strony dokumentu
+- Działa z dowolną zawartością PDF (tekst, obrazy, grafika)
+
+## Przypadki użycia
+
+- Rozjaśnianie ciemnego skanu lub korygowanie prześwietlonych stron
+- Odbarwianie kolorowego dokumentu, aby zmniejszyć zużycie tuszu przed drukiem
+- Nakładanie sepii dla antycznego wyglądu certyfikatów lub dyplomów
+- Korygowanie temperatury barwowej zdjęć osadzonych w PDF
+- Zwiększanie kontrastu wyblakłych lub niskiej jakości zeskanowanych dokumentów
+
+## Wskazówki
+
+- Aby szybko uzyskać skalę szarości, przeciągnij suwak nasycenia do końca na -100.
+- Suwak gamma jest szczególnie przydatny do poprawy czytelności zeskanowanych dokumentów, w których półcienie są zbyt ciemne lub zbyt jasne.
+- Podobnie jak inne narzędzia efektów obrazu, to narzędzie rasteryzuje każdą stronę. Wynik będzie oparty na obrazach, więc tekst nie będzie zaznaczalny.
+
+## Powiązane narzędzia
+
+- [Odwróć kolory](./invert-colors)
+- [Efekt skanera](./scanner-effect)
+- [Kolor tła](./background-color)
diff --git a/docs/pl/tools/alternate-merge.md b/docs/pl/tools/alternate-merge.md
new file mode 100644
index 00000000..e9da1418
--- /dev/null
+++ b/docs/pl/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Naprzemienne i mieszane strony
+description: Łącz pliki PDF, przeplatając strony z każdego pliku w naprzemiennej kolejności, z zachowaniem zakładek.
+---
+
+# Naprzemienne i mieszane strony
+
+Przeplataj strony z wielu plików PDF tak, aby strony występowały naprzemiennie między dokumentami. To narzędzie wybierzesz, gdy zwykłe łączenie dokleiłoby pliki jeden za drugim, a potrzebujesz strony 1 z pliku A, potem strony 1 z pliku B, potem strony 2 z pliku A i tak dalej.
+
+## Jak to działa
+
+1. Wgraj co najmniej dwa pliki PDF za pomocą strefy upuszczania.
+2. Narzędzie wyświetli każdy plik z liczbą stron i rozmiarem.
+3. Przeciągaj uchwyty, aby zmienić kolejność, czyj plik zaczyna sekwencję przeplatania.
+4. Kliknij **Wymieszaj strony**, aby utworzyć przeplatany wynik.
+5. Wynik zostanie pobrany jako `alternated-mixed.pdf`.
+
+## Funkcje
+
+- Przeplata strony z dowolnej liczby plików PDF (minimum dwa)
+- Zmiana kolejności plików metodą przeciągnij i upuść, aby sterować priorytetem przeplatania
+- Zachowuje zakładki z dokumentów źródłowych
+- Wyświetla liczbę stron i rozmiar każdego wgranego pliku
+- Przetwarza w dedykowanym web workerze, dzięki czemu interfejs pozostaje responsywny
+
+## Przypadki użycia
+
+- Składanie skanów dwustronnych, gdy strony nieparzyste i parzyste zeskanowano osobno
+- Łączenie arkuszy z pytaniami z kluczami odpowiedzi, tak by po każdym pytaniu następowała odpowiedź
+- Łączenie dokumentów w dwóch językach strona po stronie (np. angielski po jednej stronie, tłumaczenie na następnej)
+- Przeplatanie skanów awersu i rewersu z skanera jednostronnego
+
+## Wskazówki
+
+- Jeśli źródłowe pliki PDF mają różną liczbę stron, strony krótszego dokumentu skończą się pierwsze, a pozostałe strony dłuższego pojawią się na końcu.
+- Kolejność plików ma znaczenie: pierwszy plik na liście wnosi pierwszą stronę wyniku. W razie potrzeby przeciągnij, aby zmienić kolejność.
+
+## Powiązane narzędzia
+
+- [Połącz PDF](./merge-pdf)
+- [Duplikuj i organizuj](./organize-pdf)
+- [Podziel PDF](./split-pdf)
diff --git a/docs/pl/tools/background-color.md b/docs/pl/tools/background-color.md
new file mode 100644
index 00000000..43299098
--- /dev/null
+++ b/docs/pl/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Kolor tła
+description: Zmień kolor tła każdej strony PDF, zachowując całą zawartość na wierzchu.
+---
+
+# Kolor tła
+
+Ustaw jednolity kolor tła pod całą istniejącą zawartością PDF. Narzędzie tworzy kolorowy prostokąt na każdej stronie i nakłada na niego oryginalną zawartość, dzięki czemu tekst, obrazy i grafika pozostają w pełni widoczne na nowym tle.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Wybierz kolor tła za pomocą próbnika kolorów. Domyślny to jasnożółty (#FFFFCC).
+3. Kliknij **Zmień kolor tła**, aby przetworzyć.
+4. Zaktualizowany PDF pobierze się automatycznie.
+
+## Opcje
+
+- **Kolor tła**: standardowy próbnik do wyboru dowolnego jednolitego koloru. Domyślnie jasnożółty.
+
+## Funkcje
+
+- Stosuje jednolity kolor tła na każdej stronie
+- Zachowuje całą oryginalną zawartość (tekst, obrazy, grafikę wektorową) nad kolorową warstwą
+- Zachowuje oryginalne wymiary stron
+- Działa z dokumentami o dowolnej liczbie stron
+
+## Przypadki użycia
+
+- Dodawanie jasnokremowego lub kości słoniowej tła, aby dokumenty wyglądały łagodniej, jak papier
+- Kodowanie kolorami zestawów dokumentów przez nakładanie różnych kolorów tła dla różnych kategorii
+- Tworzenie wizualnie odmiennych wersji tego samego dokumentu dla różnych odbiorców
+- Dodawanie jasnego odcienia tła, aby poprawić czytelność przy wyświetlaniu dokumentów na ekranie
+
+## Wskazówki
+
+- Najlepiej sprawdzają się jasne, stonowane kolory. Bardzo ciemne tło może utrudniać czytanie tekstu, chyba że tekst jest już jasny.
+- Jeśli chcesz zmienić zarówno tło, jak i kolor tekstu, najpierw zastosuj kolor tła, a potem użyj [Zmień kolor tekstu](./text-color) na wyniku.
+- To narzędzie działa na poziomie struktury PDF (bez rasteryzacji), więc tekst pozostaje zaznaczalny i przeszukiwalny w wyniku.
+
+## Powiązane narzędzia
+
+- [Zmień kolor tekstu](./text-color)
+- [Odwróć kolory](./invert-colors)
+- [Dostosuj kolory](./adjust-colors)
diff --git a/docs/pl/tools/bates-numbering.md b/docs/pl/tools/bates-numbering.md
new file mode 100644
index 00000000..84da6536
--- /dev/null
+++ b/docs/pl/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Numeracja Batesa
+description: Nanoś numery Batesa na jeden lub wiele plików PDF z konfigurowalnymi szablonami, dopełnieniem, czcionkami i pozycją.
+---
+
+# Numeracja Batesa
+
+Numeracja Batesa nanosi kolejne identyfikatory na każdą stronę Twoich plików PDF. To standardowa metoda oznaczania dokumentów w postępowaniach prawnych, audytach i procesach zgodności. To narzędzie obsługuje wiele plików, konfigurowalne szablony i tworzy osobno ponumerowane pliki PDF lub jedno archiwum ZIP.
+
+## Jak to działa
+
+1. Wgraj jeden lub więcej plików PDF. Możesz przeciągnąć wiele plików naraz.
+2. Wybierz gotowy styl lub utwórz własny szablon.
+3. Skonfiguruj pozycję, czcionkę, rozmiar, kolor i numery początkowe.
+4. Kliknij **Zastosuj numery Batesa**, aby przetworzyć.
+5. Pojedynczy plik pobierze się bezpośrednio. Wiele plików pobierze się jako archiwum ZIP.
+
+## Opcje
+
+- **Gotowy styl**: wybierz jeden z wbudowanych formatów:
+ - Exhibit + Case + Bates + Page (np. "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (bez numeru strony)
+ - Case + Bates
+ - Tylko numer Batesa (np. "000001")
+ - Własny (napisz własny szablon)
+- **Dostosuj styl**: ciąg szablonu z symbolami zastępczymi: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Dopełnienie numeru Batesa**: liczba cyfr (od 3 do 6) dla numerów Batesa dopełnionych zerami. Widoczne tylko w trybie własnym.
+- **Pozycja**: nagłówek lub stopka, lewo, środek lub prawo.
+- **Numer Batesa zaczyna się od**: pierwszy numer Batesa. Domyślnie 1. Numeracja jest kontynuowana między plikami.
+- **Licznik plików zaczyna się od**: numer początkowy dla symbolu `[FILE]`.
+- **Czcionka**: Helvetica, Times New Roman lub Courier.
+- **Rozmiar czcionki**: rozmiar nanoszonego tekstu.
+- **Kolor**: próbnik koloru dla tekstu numeru Batesa.
+
+## Funkcje
+
+- Podgląd na żywo pokazujący, jak numery Batesa pojawią się we wszystkich wgranych plikach
+- Obsługa wielu plików z ciągłą numeracją między dokumentami
+- Zmiana kolejności plików metodą przeciągnij i upuść, aby sterować sekwencją numeracji
+- Sześć opcji pozycji (nagłówek/stopka, lewo/środek/prawo)
+- Adaptacyjne obliczanie marginesów uwzględniające różne rozmiary stron
+- Wynik ZIP dla partii wielu plików
+- Symbole zastępcze w szablonie dla maksymalnej elastyczności
+
+## Przypadki użycia
+
+- Numerowanie dokumentów ujawnienia w sporach sądowych kolejnymi numerami dowodów
+- Numerowanie pakietów dowodów z audytu obejmujących dziesiątki plików
+- Nanoszenie numerów referencyjnych na dokumentację zgodności
+- Etykietowanie załączników do zgłoszeń patentowych identyfikatorami przypisanymi do sprawy
+
+## Wskazówki
+
+- Przeciągnij pliki na liście, aby zmienić ich kolejność przed przetwarzaniem. Sekwencja numeracji Batesa podąża za tą kolejnością.
+- Użyj symbolu `[FILENAME]`, aby dołączyć oryginalną nazwę pliku do nanoszonego tekstu, co pomaga powiązać strony z dokumentami źródłowymi.
+- Pole podglądu aktualizuje się w czasie rzeczywistym przy zmianie ustawień, więc możesz sprawdzić format przed przetwarzaniem.
+
+## Powiązane narzędzia
+
+- [Numery stron](./page-numbers)
+- [Dodaj etykiety stron](./add-page-labels)
+- [Nagłówek i Stopka](./header-footer)
diff --git a/docs/pl/tools/bmp-to-pdf.md b/docs/pl/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..04c6b694
--- /dev/null
+++ b/docs/pl/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP na PDF
+description: Konwertuj obrazy bitmapowe BMP na PDF bezpośrednio w przeglądarce, bez wysyłania na żaden serwer.
+---
+
+# BMP na PDF
+
+Konwertuj pliki Windows Bitmap (BMP) na PDF. BMP to nieskompresowany format obrazu, wciąż spotykany w starszych systemach, obrazowaniu medycznym i skanerach przemysłowych. To narzędzie konwertuje je do PDF bez potrzeby instalowania czegokolwiek.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :----------- |
+| BMP | `.bmp` |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść pliki BMP.
+2. Przejrzyj listę plików. Dodaj więcej plików lub usuń niechciane.
+3. Kliknij **Konwertuj na PDF**. Wynik pobierze się jako `from_bmps.pdf`.
+
+Każdy BMP jest rysowany na canvas, eksportowany jako PNG, a następnie osadzany w PDF za pomocą pdf-lib. Rozmiar strony odpowiada wymiarom oryginalnego obrazu.
+
+## Opcje
+
+To narzędzie nie udostępnia dodatkowych ustawień jakości. Obrazy są osadzane w oryginalnej rozdzielczości jako bezstratny PNG w PDF.
+
+## Przypadki użycia
+
+- Konwertowanie starszych zeskanowanych dokumentów zapisanych jako BMP na archiwalne pliki PDF
+- Zamiana zrzutów ekranu BMP z dawnych aplikacji Windows na dokumenty do udostępniania
+- Przetwarzanie wyników ze skanerów medycznych lub przemysłowych, które domyślnie zapisują BMP
+- Migracja starych archiwów obrazów do bardziej przenośnego formatu
+
+## Wskazówki
+
+- Pliki BMP są nieskompresowane, więc zwykle są duże. Powstały PDF będzie znacznie mniejszy, ponieważ obrazy są wewnętrznie ponownie kodowane jako PNG.
+- Jeśli masz pliki BMP razem z innymi formatami obrazów, użyj narzędzia [Obrazy do PDF](./image-to-pdf), aby przekonwertować wszystko w jednej partii.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [PNG na PDF](./png-to-pdf)
+- [TIFF na PDF](./tiff-to-pdf)
diff --git a/docs/pl/tools/bookmark.md b/docs/pl/tools/bookmark.md
new file mode 100644
index 00000000..297e8c8a
--- /dev/null
+++ b/docs/pl/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Edytuj zakładki
+description: Dodawaj, edytuj, importuj, eksportuj i usuwaj zakładki PDF w edytorze wizualnym z obsługą CSV i JSON.
+---
+
+# Edytuj zakładki
+
+Edytor zakładek daje pełną kontrolę nad zakładkami nawigacyjnymi PDF (nazywanymi też konspektem). Możesz dodawać nowe zakładki, edytować istniejące, zmieniać hierarchię oraz importować i eksportować dane zakładek w formatach CSV i JSON.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając lub przeciągając go do strefy upuszczania.
+2. Opcjonalnie zaznacz **Automatycznie wyodrębnij istniejące zakładki**, aby wczytać bieżące drzewo zakładek dokumentu.
+3. Edytor otworzy się w widoku podzielonym: przeglądarka PDF po lewej, panel zakładek po prawej.
+4. Wpisz tytuł zakładki i kliknij **Dodaj do strony**, aby utworzyć zakładkę wskazującą bieżącą stronę.
+5. Użyj przycisków na pasku narzędzi, aby zmieniać kolejność, stylizować lub usuwać zakładki.
+6. Kliknij **Zapisz PDF z zakładkami**, aby pobrać zaktualizowany plik.
+
+## Funkcje
+
+- Wizualna przeglądarka PDF z nawigacją po stronach, sterowaniem powiększeniem i polem przejścia do strony
+- Dodawanie zakładek do dowolnej strony jednym kliknięciem
+- Kliknięcie bezpośrednio na PDF, aby ustawić dokładne miejsce docelowe zakładki (tryb wskazywania)
+- Zagnieżdżona hierarchia zakładek ze zmianą kolejności przez przeciąganie
+- Operacje zbiorcze: zaznacz wiele zakładek, aby zmienić kolor, styl lub usunąć je naraz
+- Wyszukiwanie zakładek do szybkiego znajdowania wpisów w dużych drzewach
+- Cofanie i ponawianie wszystkich zmian
+- Import zakładek z plików CSV (tytuł, strona, poziom) lub JSON
+- Eksport zakładek do CSV lub JSON w celu edycji zewnętrznej
+- Stylizacja zakładek: kolor (czerwony, niebieski, zielony, żółty, fioletowy) i styl czcionki (pogrubiony, kursywa, pogrubiona kursywa)
+- Szybka nawigacja: przewijanie stron klawiszami Page Up/Page Down
+
+## Opcje
+
+- **Automatycznie wyodrębnij istniejące zakładki**: po zaznaczeniu narzędzie odczytuje i wyświetla bieżące zakładki PDF po wczytaniu.
+- **Tryb wsadowy**: przełącz, aby zaznaczyć wiele zakładek i zastosować zbiorczo kolor, styl lub usuwanie.
+- **Rozwiń/zwiń wszystko**: szybko pokazuje lub ukrywa zagnieżdżone zakładki podrzędne.
+
+## Zastosowania
+
+- Dodawanie spisu treści do podręcznika lub instrukcji bez zakładek
+- Przebudowa zakładek w zeskanowanym dokumencie po OCR
+- Eksport zakładek do CSV, edycja w arkuszu kalkulacyjnym i ponowny import
+- Porządkowanie automatycznie wygenerowanych zakładek z błędnymi odwołaniami do stron
+- Dodawanie kolorowych zakładek oznaczających ważne sekcje w piśmie prawnym
+
+## Wskazówki
+
+- Użyj importu CSV do masowego tworzenia zakładek. Format jest prosty: `title,page,level`, gdzie poziom 1 oznacza najwyższy poziom.
+- Tryb wskazywania pozwala kliknąć dokładne miejsce na stronie PDF jako cel zakładki, co jest precyzyjniejsze niż samo wskazanie numeru strony.
+- Wyeksportuj zakładki przed większymi zmianami, aby mieć kopię zapasową.
+
+## Powiązane narzędzia
+
+- [Spis treści](./table-of-contents)
+- [Edytor PDF](./edit-pdf)
+- [Dodaj etykiety stron](./add-page-labels)
diff --git a/docs/pl/tools/cbz-to-pdf.md b/docs/pl/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..0664129f
--- /dev/null
+++ b/docs/pl/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ na PDF
+description: Konwertuj archiwa komiksów CBZ i CBR na PDF w przeglądarce. Za darmo, prywatnie, bez wysyłania plików.
+---
+
+# CBZ na PDF
+
+Zamień archiwa komiksów na pliki PDF. CBZ i CBR to standardowe formaty komiksów cyfrowych: są to po prostu archiwa ZIP lub RAR wypełnione obrazami. To narzędzie wyodrębnia każdą stronę, zachowuje kolejność czytania i tworzy czysty PDF, w którym każdy obraz staje się stroną w pełnym rozmiarze.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----- | :----------- | :------------------------------------------------------------------- |
+| CBZ | `.cbz` | Archiwum komiksu oparte na ZIP (przetwarzane lokalnie przez pdf-lib) |
+| CBR | `.cbr` | Archiwum komiksu oparte na RAR (przetwarzane przez silnik PyMuPDF) |
+
+Konwerter CBZ rozpoznaje obrazy JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC i JXL w archiwum. Niestandardowe formaty są automatycznie konwertowane do PNG przed osadzeniem.
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki CBZ lub CBR. W jednej partii możesz mieszać oba formaty.
+2. Przejrzyj listę plików. Usuń zbędne lub kliknij **Dodaj więcej plików**, aby dodać kolejne.
+3. Kliknij **Konwertuj na PDF**. W przypadku plików CBZ narzędzie rozpakowuje archiwum, sortuje pliki obrazów po nazwie w porządku naturalnym, wykrywa rzeczywisty format każdego obrazu i osadza je w PDF za pomocą pdf-lib. Pliki CBR są zamiast tego przetwarzane przez silnik PyMuPDF.
+4. Pojedynczy plik pobiera się jako PDF. Wiele plików daje archiwum ZIP o nazwie `comic-converted.zip`.
+
+## Opcje
+
+Nie jest wymagana żadna konfiguracja. Każdy obraz staje się stroną dopasowaną do oryginalnych wymiarów, więc rozkładówki pozostają szerokie, a pojedyncze strony wąskie.
+
+## Zastosowania
+
+- Czytanie komiksów na tablecie lub w aplikacji na telefonie, która obsługuje PDF, ale nie CBZ/CBR
+- Drukowanie wybranych stron komiksu cyfrowego
+- Archiwizacja kolekcji komiksów w formacie, który otworzy każda przeglądarka plików
+- Udostępnianie komiksu osobie, która nie ma dedykowanego czytnika komiksów
+
+## Wskazówki
+
+- Obrazy w archiwum są sortowane w porządku naturalnym (więc `page2.jpg` jest przed `page10.jpg`). Nazywaj pliki ze spójną numeracją, aby kolejność stron była prawidłowa.
+- Konwerter wykrywa formaty obrazów po sygnaturach binarnych, a nie po rozszerzeniach plików. PNG omyłkowo nazwany `.jpg` zostanie osadzony poprawnie.
+- Pliki CBZ są przetwarzane w całości w przeglądarce bez ładowania silnika PyMuPDF, więc konwertują się szybciej niż pliki CBR.
+
+## Powiązane narzędzia
+
+- [EPUB na PDF](./epub-to-pdf)
+- [MOBI na PDF](./mobi-to-pdf)
+- [Obrazy do PDF](./image-to-pdf)
diff --git a/docs/pl/tools/change-permissions.md b/docs/pl/tools/change-permissions.md
new file mode 100644
index 00000000..f86c5527
--- /dev/null
+++ b/docs/pl/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Zmień uprawnienia
+description: Ustaw lub zmień uprawnienia PDF dotyczące drukowania, kopiowania, edycji i adnotacji. Używa 256-bitowego szyfrowania AES.
+---
+
+# Zmień uprawnienia
+
+Precyzyjnie określ, co odbiorcy mogą robić z Twoim PDF. W przeciwieństwie do podstawowego szyfrowania, które tylko blokuje plik hasłem, to narzędzie pozwala selektywnie zezwalać na drukowanie, kopiowanie, edycję, dodawanie adnotacji, wypełnianie formularzy, składanie dokumentu i wyodrębnianie stron lub je blokować, a wszystko egzekwowane przez 256-bitowe szyfrowanie AES.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Jeśli PDF jest już zaszyfrowany, wpisz **Aktualne hasło**.
+3. Ustaw **Nowe hasło użytkownika** (wymagane do otwarcia) i/lub **Nowe hasło właściciela** (kontroluje uprawnienia).
+4. Włączaj i wyłączaj poszczególne uprawnienia za pomocą pól wyboru.
+5. Kliknij **Zmień uprawnienia**.
+6. Pobierz zaktualizowany PDF.
+
+Jeśli oba pola nowych haseł zostawisz puste, narzędzie całkowicie odszyfruje PDF, usuwając całe szyfrowanie i wszystkie ograniczenia.
+
+## Kontrola uprawnień
+
+| Uprawnienie | Co kontroluje |
+| ------------------------------------ | ----------------------------------------------------- |
+| **Zezwól na drukowanie** | Czy dokument można drukować |
+| **Zezwól na kopiowanie** | Czy tekst i obrazy można zaznaczać i kopiować |
+| **Zezwól na modyfikowanie** | Czy treść dokumentu można edytować |
+| **Zezwól na adnotacje** | Czy można dodawać komentarze, zakreślenia i pieczątki |
+| **Zezwól na wypełnianie formularzy** | Czy można wypełniać interaktywne pola formularzy |
+| **Zezwól na składanie dokumentu** | Czy można wstawiać, usuwać lub obracać strony |
+| **Zezwól na wyodrębnianie stron** | Czy można wyodrębniać pojedyncze strony |
+
+Wszystkie uprawnienia wymagają hasła właściciela, aby były egzekwowane. Bez hasła właściciela flagi uprawnień są ignorowane przez większość czytników PDF.
+
+## Jak działają uprawnienia w PDF
+
+Uprawnienia PDF są częścią specyfikacji szyfrowania. Są zapisane jako flagi bitowe w słowniku szyfrowania i egzekwowane przez zgodne czytniki PDF. Kluczowa różnica:
+
+- **Hasło użytkownika**: wymagane do w ogóle otwarcia pliku.
+- **Hasło właściciela**: wymagane do zmiany uprawnień lub usunięcia ograniczeń. Bez niego flagi uprawnień określają, jakie operacje może wykonywać użytkownik.
+
+Jeśli ustawisz tylko hasło właściciela (bez hasła użytkownika), każdy może otworzyć plik, ale ma dostęp tylko do dozwolonych operacji. Jeśli ustawisz oba, plik wymaga hasła do otwarcia, a po uwierzytelnieniu obowiązują ograniczenia.
+
+## Zastosowania
+
+- Rozpowszechnianie raportu, który można przeglądać i drukować, ale nie edytować ani kopiować
+- Udostępnianie wzoru umowy, który odbiorcy mogą wypełnić, ale nie zmodyfikować
+- Publikowanie katalogu PDF z wyłączonym kopiowaniem obrazów
+- Zezwalanie na adnotacje w wersji roboczej do recenzji przy jednoczesnym blokowaniu zmian strukturalnych
+
+## Wskazówki
+
+- Aby ochrona była skuteczna, zawsze ustawiaj hasło właściciela. Uprawnień bez hasła właściciela nie da się egzekwować.
+- Niektóre zewnętrzne narzędzia PDF ignorują flagi uprawnień. Dla silniejszej ochrony rozważ rasteryzację PDF lub użycie DRM.
+- Użyj tego narzędzia, aby zaktualizować stare pliki PDF zaszyfrowane RC4 do AES-256.
+
+## Powiązane narzędzia
+
+- [Szyfruj PDF](./protect-pdf): proste zabezpieczenie hasłem bez szczegółowych uprawnień
+- [Odszyfruj PDF](./unlock-pdf): całkowite usunięcie szyfrowania
+- [Usuń restrykcje](./remove-restrictions): usuń wszystkie ograniczenia, gdy znasz hasło właściciela
diff --git a/docs/pl/tools/combine-single-page.md b/docs/pl/tools/combine-single-page.md
new file mode 100644
index 00000000..0368c343
--- /dev/null
+++ b/docs/pl/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Połącz w jedną stronę
+description: Zszyj wszystkie strony PDF w jedną ciągłą stronę przewijaną w pionie lub w poziomie.
+---
+
+# Połącz w jedną stronę
+
+Połącz wszystkie strony PDF w jedną, długą stronę. Strony są zszywane w pionie (jak zwój) lub w poziomie (obok siebie), dając w wyniku jedną ciągłą stronę.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Wybierz kierunek układu: **Pionowo** (strony jedna pod drugą) lub **Poziomo** (strony obok siebie).
+3. Ustaw odstęp między stronami w punktach.
+4. Wybierz kolor tła dla przerw między stronami.
+5. Opcjonalnie włącz separatory (cienkie linie między stronami) i skonfiguruj ich grubość i kolor.
+6. Kliknij przycisk przetwarzania. Wynikiem jest jednostronicowy PDF.
+
+## Funkcje
+
+- Zszywanie stron w pionie lub w poziomie
+- Konfigurowalny odstęp między stronami
+- Wybór koloru tła obszarów między stronami
+- Opcjonalne linie separatorów z regulowaną grubością i kolorem
+- Renderuje każdą oryginalną stronę w pełnej rozdzielczości na połączonym płótnie
+
+## Opcje
+
+| Opcja | Opis |
+| -------------------------- | --------------------------------------------------- |
+| **Orientacja** | Pionowo (jedna pod drugą) lub poziomo (obok siebie) |
+| **Odstęp między stronami** | Przerwa między stronami w punktach |
+| **Kolor tła** | Kolor obszaru między stronami |
+| **Dodaj separator** | Włącza cienkie linie między stronami |
+| **Grubość separatora** | Grubość linii w punktach |
+| **Kolor separatora** | Kolor linii separatorów |
+
+## Zastosowania
+
+- Tworzenie jednego długiego obrazu z wielostronicowego szkieletu lub makiety projektu
+- Generowanie ciągłego, przewijanego widoku dokumentu do osadzenia w sieci
+- Zszywanie wielostronicowego komiksu lub storyboardu w jeden pasek
+- Tworzenie panoramicznego widoku kolejnych stron do recenzji
+
+## Wskazówki
+
+- Układ pionowy najlepiej sprawdza się w dokumentach ze stronami pionowymi. Poziomy jest lepszy dla treści w orientacji poziomej.
+- Duże dokumenty z wieloma stronami dadzą bardzo wysoki lub szeroki wynik. Niektóre przeglądarki PDF mogą mieć problem z ekstremalnie dużymi pojedynczymi stronami.
+- Dodanie separatorów w kontrastowym kolorze ułatwia zobaczenie, gdzie kończy się jedna oryginalna strona, a zaczyna następna.
+
+## Powiązane narzędzia
+
+- [PDF N-Up](./n-up-pdf)
+- [Połącz PDF](./merge-pdf)
+- [Podziel strony](./divide-pages)
diff --git a/docs/pl/tools/compare-pdfs.md b/docs/pl/tools/compare-pdfs.md
new file mode 100644
index 00000000..a488e022
--- /dev/null
+++ b/docs/pl/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Porównaj PDF
+description: Porównaj dwa dokumenty PDF obok siebie lub w trybie nakładki, ze szczegółowym wykrywaniem i kategoryzacją zmian.
+---
+
+# Porównaj PDF
+
+Prześlij dwa pliki PDF i zobacz dokładnie, co się między nimi zmieniło. Narzędzie inteligentnie łączy strony w pary, wykrywa różnice w tekście, obrazach, adnotacjach, nagłówkach i formatowaniu oraz przedstawia je w widoku obok siebie lub w nakładce.
+
+## Jak to działa
+
+1. Prześlij dwa pliki PDF: oryginał (po lewej) i wersję poprawioną (po prawej).
+2. Narzędzie łączy strony obu dokumentów w pary na podstawie sygnatur treści.
+3. Wybierz tryb widoku: **Obok siebie** lub **Nakładka**.
+4. Przechodź między parami stron za pomocą kontrolek stronicowania.
+5. Różnice są podświetlane i kategoryzowane. Użyj panelu filtrów, aby skupić się na wybranych typach zmian.
+6. Opcjonalnie wyeksportuj porównanie jako raport PDF.
+
+## Funkcje
+
+- Automatyczne parowanie stron na podstawie podobieństwa treści
+- Widoki porównania obok siebie i w nakładce
+- Kategoryzacja zmian: tekst, obraz, nagłówek/stopka, adnotacja, formatowanie, tło
+- Przełączniki filtrów dla każdej kategorii, aby pokazywać lub ukrywać wybrane typy zmian
+- Wyszukiwanie zmian w tekście z filtrowaniem zapytaniem
+- Obsługa OCR do porównywania zeskanowanych dokumentów
+- Kontrolki powiększenia do dokładnej inspekcji
+- Zsynchronizowane przewijanie paneli w trybie obok siebie
+- Eksport wyników porównania jako PDF
+
+## Opcje
+
+| Opcja | Opis |
+| -------------------- | ----------------------------------------------------------------------------------------- |
+| **Tryb widoku** | Obok siebie lub nakładka |
+| **OCR** | Włącz/wyłącz OCR do porównywania zeskanowanych dokumentów |
+| **Język OCR** | Język wyodrębniania tekstu przez OCR |
+| **Filtry kategorii** | Przełącz widoczność zmian tekstu, obrazów, nagłówka/stopki, adnotacji, formatowania i tła |
+| **Zakres zmian** | W trybie nakładki przełącza między wszystkimi zmianami a samą treścią |
+| **Powiększenie** | Dostosuj poziom powiększenia do dokładnej inspekcji |
+
+## Zastosowania
+
+- Przeglądanie poprawek umowy, aby znaleźć dokładnie to, co zmieniło się między wersjami
+- Porównywanie makiet projektów, aby sprawdzić, czy eksporty PDF odpowiadają oczekiwaniom
+- Audyt zmian w dokumentach w branżach regulowanych, gdzie każda edycja musi być śledzona
+- Weryfikacja, czy proces konwersji PDF dokładnie zachował oryginalną treść
+- Sprawdzanie dokumentów tłumaczeń względem źródła pod kątem zmian układu
+
+## Wskazówki
+
+- Widok nakładki układa oba dokumenty jeden na drugim, dzięki czemu różnice przestrzenne (przesunięte elementy, zmienione rozmiary obrazów) są od razu widoczne.
+- Włącz OCR, porównując zeskanowane dokumenty bez warstwy tekstowej. Silnik porównania wyodrębni tekst z obrazów stron.
+- Używaj filtrów kategorii, aby skupić się na tym, co ważne. Na przykład ukryj zmiany formatowania, gdy zależy Ci tylko na różnicach w treści tekstu.
+
+## Powiązane narzędzia
+
+- [Wyświetl metadane](./view-metadata)
+- [OCR PDF](./ocr-pdf)
+- [Połącz PDF](./merge-pdf)
diff --git a/docs/pl/tools/compress-pdf.md b/docs/pl/tools/compress-pdf.md
new file mode 100644
index 00000000..15d1deae
--- /dev/null
+++ b/docs/pl/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Kompresuj PDF
+description: Zmniejsz rozmiar pliku PDF nawet o 90% dzięki silnikowi Hyper Compress. Obsługuje docelowe rozmiary plików, przetwarzanie wsadowe i własne ustawienia jakości.
+---
+
+# Kompresuj PDF
+
+Zmniejsz pliki PDF bez ich niszczenia. Kompresuj PDF działa na [Hyper Compress](https://www.bentopdf.com/hyper-compress), własnym silniku kompresji BentoPDF. Ponownie kompresuje obrazy, tworzy podzbiory i scala czcionki oraz usuwa zbędny balast, taki jak osadzone miniatury i prywatne dane aplikacji. PDF pozostaje w pełni funkcjonalny: tekst można nadal zaznaczać, a linki i pola formularzy działają.
+
+Hyper Compress jest skompilowany do WebAssembly i dostarczany z BentoPDF, więc kompresja działa offline i we wdrożeniach odciętych od sieci, bez dodatkowej konfiguracji.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając do niej pliki.
+2. Wybierz **Poziom kompresji**: Niski, Średni, Wysoki lub Bezstratny.
+3. Opcjonalnie wpisz **Docelowy rozmiar pliku** lub rozwiń **Ustawienia niestandardowe**, aby uzyskać szczegółową kontrolę, w tym **Konwertuj na odcienie szarości**.
+4. Kliknij **Kompresuj PDF**. W przypadku wielu plików otrzymasz jedno pobranie ZIP.
+
+## Dokumenty specjalne
+
+- **Podpisane cyfrowo pliki PDF** są zwracane bez zmian, ponieważ każda zmiana unieważniłaby podpis. Włącz **Zastąp ochronę treści** w Ustawieniach niestandardowych, aby usunąć podpisy i skompresować plik. Widoczny podpis pozostaje na stronie, ale plik nie jest już podpisany.
+- **Pliki PDF/A** tracą po kompresji oznaczenie PDF/A, aby plik nigdy nie deklarował zgodności, której już nie spełnia. Włącz **Zachowaj PDF/A** w Ustawieniach niestandardowych, aby zamiast tego zachować zgodność pliku.
+- **Pliki PDF chronione hasłem** mają pole hasła na karcie pliku. Wpisz tam hasło, a Hyper Compress sam otworzy plik, bez osobnego kroku odblokowania. Przy dwóch lub więcej zablokowanych plikach jedno wspólne pole odblokowuje każdy plik z tym samym hasłem. Skompresowana kopia nie ma hasła; użyj [Szyfruj PDF](./protect-pdf), aby dodać je ponownie.
+- **Skany bez warstwy tekstowej** można jeszcze bardziej zmniejszyć za pomocą **Rasteryzuj strony** w Ustawieniach niestandardowych, co zastępuje każdą stronę jednym zoptymalizowanym obrazem. Opcja jest pomijana dla każdego dokumentu z zaznaczalnym tekstem, w tym dla skanów po OCR, chyba że włączono **Zastąp ochronę treści**. Wtedy strony z tekstem też stają się obrazami, więc tekst przestaje być zaznaczalny, a linki przestają działać.
+
+## Poziomy kompresji
+
+| Poziom | Jakość obrazu | Maks. rozdzielczość | Najlepsze do |
+| -------------- | ----------------- | ------------------- | -------------------------------------- |
+| **Niski** | 80 | 200 DPI | Zachowania jakości wizualnej |
+| **Średni** | 50 | 150 DPI | Codziennych dokumentów |
+| **Wysoki** | 20 | 72 DPI | Załączników e-mail, wysyłania do sieci |
+| **Bezstratny** | Obrazy nietknięte | Bez zmian | Kopii archiwalnych |
+
+Poziom Wysoki usuwa też osadzenie 14 standardowych czcionek PDF oraz ich odpowiedników, takich jak Arial, gdy jest to bezpieczne.
+
+## Docelowy rozmiar pliku
+
+Wpisz rozmiar w KB lub MB, a Hyper Compress poszuka najlepszej jakości obrazu, która jeszcze się mieści, zaczynając od wybranego poziomu. Jeśli dokument nie może być aż tak mały, otrzymasz najmniejszą możliwą wersję oraz komunikat o tym. Dedykowane strony, takie jak [Kompresuj PDF do 1MB](https://www.bentopdf.com/compress-pdf-to-1mb), otwierają się z już wypełnionym celem.
+
+## Ustawienia niestandardowe
+
+Rozwiń panel Ustawienia niestandardowe, aby bezpośrednio dostosować Hyper Compress. Wybór poziomu kompresji resetuje te ustawienia do wartości tego poziomu, a edycja któregokolwiek z nich przełącza poziom na Niestandardowy.
+
+- **Zastąp ochronę treści**: domyślnie Hyper Compress pozostawia podpisane pliki PDF nietknięte i nie rasteryzuje stron z tekstem. Włączenie tej opcji omija oba zabezpieczenia. Pozostaje włączona po zmianie poziomu.
+
+- **Obrazy**: jakość obrazu, maksymalna rozdzielczość, wymuszone ponowne próbkowanie, redukcja kolorów, przycinanie niewidocznych obszarów obrazów, usuwanie obrazów alternatywnych, upraszczanie profili kolorów, JPEG 2000 i tryb bezstratny
+- **Czcionki**: tworzenie podzbiorów, scalanie duplikatów oraz usuwanie osadzenia standardowych czcionek i ich odpowiedników
+- **Treść**: spłaszczanie adnotacji, pól formularzy lub linków
+- **Czyszczenie**: usuwanie miniatur, danych aplikacji, wątków artykułów, informacji o przechwytywaniu stron WWW, drzewa struktury lub intencji wyjściowych
+- **Rasteryzacja**: zastępowanie stron obrazami, dla skanów składających się wyłącznie z obrazów; pomijana, gdy dokument ma zaznaczalny tekst
+- **Wyjście**: Zachowaj PDF/A oraz kompresja Brotli dla czytników PDF 2.0, które ją obsługują
+
+## Zastosowania
+
+- Zmniejszenie 50-megabajtowego raportu poniżej limitu załącznika e-mail
+- Zmieszczenie skanu w ścisłym limicie wysyłania portalu dzięki docelowemu rozmiarowi pliku
+- Optymalizacja PDF marketingowych pod szybsze pobieranie ze strony
+- Archiwizacja dużych zbiorów dokumentów, gdy liczą się koszty przechowywania
+- Zmniejszenie zużycia danych mobilnych przy udostępnianiu PDF w komunikatorach
+
+## Wskazówki
+
+- Zacznij od poziomu Średni. Jeśli wynik jest nadal za duży, ustaw docelowy rozmiar pliku lub przejdź na Wysoki.
+- Dla skanu bez warstwy tekstowej włącz Rasteryzuj strony w Ustawieniach niestandardowych.
+- Konwertuj na odcienie szarości, w Ustawieniach niestandardowych, może zmniejszyć rozmiar dokumentów z dużą ilością kolorów.
+
+## Powiązane narzędzia
+
+- [Linearyzuj PDF](./linearize-pdf): zoptymalizuj skompresowany PDF pod szybkie wyświetlanie w sieci
+- [Rasteryzuj PDF](./rasterize-pdf): zamień strony na obrazy w określonym DPI, także strony z tekstem
+- [Napraw PDF](./repair-pdf): napraw PDF uszkodzony podczas kompresji gdzie indziej
+- [Usuń metadane](./remove-metadata): usuń ukryte dane dla prywatności
diff --git a/docs/pl/tools/crop-pdf.md b/docs/pl/tools/crop-pdf.md
new file mode 100644
index 00000000..95e0a1bb
--- /dev/null
+++ b/docs/pl/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Przytnij PDF
+description: Wizualnie przycinaj strony PDF, rysując obszar przycięcia na każdej stronie w edytorze opartym na Cropper.js.
+---
+
+# Przytnij PDF
+
+Przytnij marginesy stron PDF w wizualnym interfejsie przycinania. Narysuj prostokąt przycięcia bezpośrednio na każdej stronie, wyświetl podgląd wyniku i zastosuj przycięcie. Możesz ustawić różne obszary przycięcia dla różnych stron lub zastosować to samo przycięcie do całego dokumentu.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Otworzy się edytor przycinania z pierwszą stroną i przeciąganą nakładką przycięcia.
+3. Dostosuj prostokąt przycięcia, przeciągając jego krawędzie lub rogi.
+4. Użyj przycisków nawigacji po stronach, aby przechodzić między stronami i ustawiać obszary przycięcia dla każdej z nich.
+5. Kliknij **Przytnij**, aby zastosować przycięcie i pobrać wynik.
+
+## Funkcje
+
+- Wizualny edytor przycinania oparty na Cropper.js z uchwytami do precyzyjnych korekt
+- Nawigacja strona po stronie do ustawiania indywidualnych obszarów przycięcia
+- Zapamiętuje ustawienia przycięcia dla każdej strony, więc możesz zdefiniować różne przycięcia dla różnych stron
+- Podgląd na żywo wybranego obszaru przycięcia
+- Obsługuje pliki PDF o dowolnym rozmiarze i orientacji stron
+
+## Zastosowania
+
+- Usuwanie szerokich marginesów ze zeskanowanych dokumentów, aby skupić się na obszarze treści
+- Usuwanie znaczników cięcia lub pasowania z plików PDF do przygotowalni
+- Przycinanie slajdów wykładowych, aby usunąć obszar notatek prelegenta
+- Usuwanie nagłówków lub stopek ze wszystkich stron przed udostępnieniem fragmentu dokumentu
+- Zmiana rozmiaru stron do określonego wyświetlacza lub układu wydruku
+
+## Wskazówki
+
+- Nakładkę przycięcia można dowolnie zmieniać i przesuwać. Przeciągaj rogi, aby zmieniać rozmiar proporcjonalnie, lub krawędzie, aby dostosować tylko jedną oś.
+- Jeśli każda strona wymaga tego samego przycięcia, ustaw je na pierwszej stronie: narzędzie zapamiętuje obszar przycięcia podczas przechodzenia między stronami.
+- Jeśli chcesz ujednolicić rozmiary stron zamiast wizualnie przycinać, lepszym wyborem może być narzędzie Napraw rozmiar strony.
+
+## Powiązane narzędzia
+
+- [Edytor PDF](./edit-pdf)
+- [Numery stron](./page-numbers)
+- [Usuń puste strony](./remove-blank-pages)
diff --git a/docs/pl/tools/csv-to-pdf.md b/docs/pl/tools/csv-to-pdf.md
new file mode 100644
index 00000000..9cfb2793
--- /dev/null
+++ b/docs/pl/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV na PDF
+description: Konwertuj arkusze CSV na sformatowane tabele PDF bezpośrednio w przeglądarce.
+---
+
+# CSV na PDF
+
+Zamień pliki CSV na czyste, sformatowane dokumenty PDF. Każdy plik CSV jest parsowany i renderowany jako tabela w wynikowym PDF. Przydaje się, gdy chcesz wydrukować lub udostępnić dane tabelaryczne bez wymagania od odbiorcy oprogramowania do arkuszy kalkulacyjnych.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :----------- |
+| CSV | `.csv` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść jeden lub więcej plików CSV.
+2. Przejrzyj listę plików. Dodaj kolejne pliki lub usuń niechciane.
+3. Kliknij **Konwertuj na PDF**. Wskaźnik postępu pokazuje stan konwersji.
+4. Pojedynczy plik pobiera się bezpośrednio jako PDF. Wiele plików jest pakowanych do `csv-converted.zip`.
+
+## Opcje
+
+To narzędzie nie ma dodatkowej konfiguracji. Plik CSV jest automatycznie parsowany i formatowany jako tabela.
+
+## Wynik
+
+| Liczba plików wejściowych | Wynik |
+| :------------------------ | :------------------------------------------------------------ |
+| 1 plik | Pobranie jednego PDF (np. `data.pdf`) |
+| 2+ pliki | Archiwum ZIP (`csv-converted.zip`) z jednym PDF na każdy plik |
+
+## Zastosowania
+
+- Konwersja wyeksportowanych raportów z bazy danych na drukowalne tabele PDF
+- Udostępnianie danych finansowych lub list inwentarzowych osobom bez Excela
+- Tworzenie wersji PDF plików dziennika CSV do dokumentacji zgodności
+- Drukowanie list adresowych, arkuszy ocen i innych danych tabelarycznych zapisanych jako CSV
+
+## Wskazówki
+
+- Aby uzyskać najlepsze wyniki, upewnij się, że plik CSV używa standardowych separatorów w postaci przecinków. Narzędzie stosuje powszechne konwencje parsowania CSV.
+- Jeśli plik CSV ma wiele kolumn, tabela może zostać ściśnięta, aby zmieścić się na szerokości strony. Rozważ podzielenie szerokich zbiorów danych na kilka plików.
+- Dla plików Excel (`.xls`, `.xlsx`) użyj narzędzia [Excel na PDF](./excel-to-pdf), które zachowuje formatowanie arkusza i wiele arkuszy.
+
+## Powiązane narzędzia
+
+- [Excel na PDF](./excel-to-pdf)
+- [Tekst na PDF](./txt-to-pdf)
+- [JSON na PDF](./json-to-pdf)
diff --git a/docs/pl/tools/delete-pages.md b/docs/pl/tools/delete-pages.md
new file mode 100644
index 00000000..77c9c078
--- /dev/null
+++ b/docs/pl/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Usuń strony
+description: Usuń wybrane strony z PDF według numeru strony, zakresu lub wizualnego wyboru miniatur.
+---
+
+# Usuń strony
+
+Usuń niechciane strony z dokumentu PDF. Określ strony do usunięcia, wpisując numery stron lub zakresy, albo kliknij bezpośrednio miniatury stron, aby oznaczyć je do usunięcia.
+
+## Jak to działa
+
+1. Prześlij plik PDF. Narzędzie renderuje miniatury podglądu każdej strony.
+2. Wpisz strony do usunięcia w polu tekstowym, używając składni zakresów (np. `2, 5-8`), lub klikaj miniatury, aby je przełączać.
+3. Oznaczone strony są wizualnie podświetlone, abyś mógł potwierdzić wybór.
+4. Kliknij przycisk przetwarzania. Zostanie utworzony nowy PDF bez wybranych stron.
+
+## Funkcje
+
+- Wybór stron tekstem ze składnią zakresów (`2, 5-8, 12`)
+- Wizualna siatka miniatur do usuwania przez kliknięcie
+- Podgląd na żywo z podświetleniem stron oznaczonych do usunięcia
+- Walidacja danych wejściowych względem rzeczywistej liczby stron
+- Zachowuje wszystkie nieusunięte strony w oryginalnej kolejności
+
+## Zastosowania
+
+- Usuwanie pustych lub wypełniających stron ze zeskanowanego dokumentu
+- Usuwanie stron tytułowych lub załączników przed udostępnieniem dokumentu
+- Czyszczenie stron roboczych przypadkowo pozostawionych w końcowym PDF
+- Usuwanie stron z wrażliwymi informacjami przed dystrybucją
+
+## Wskazówki
+
+- Usunięcie stron nie wpływa na treść ani formatowanie pozostałych stron. Wynik jest wierną kopią oryginału pomniejszoną o usunięte strony.
+- Jeśli chcesz zachować tylko wybrane strony zamiast usuwać wybrane, lepszym wyborem jest [Wyodrębnij strony](./extract-pages).
+- Widok miniatur ładuje się leniwie, więc duże dokumenty pozostają responsywne.
+
+## Powiązane narzędzia
+
+- [Wyodrębnij strony](./extract-pages)
+- [Duplikuj i organizuj](./organize-pdf)
+- [Podziel PDF](./split-pdf)
diff --git a/docs/pl/tools/deskew-pdf.md b/docs/pl/tools/deskew-pdf.md
new file mode 100644
index 00000000..3948d029
--- /dev/null
+++ b/docs/pl/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Wyprostuj PDF
+description: Automatycznie prostuj przekrzywione strony w zeskanowanych plikach PDF dzięki wykrywaniu pochylenia OpenCV. Regulowany próg i ustawienia DPI.
+---
+
+# Wyprostuj PDF
+
+Zeskanowane dokumenty rzadko są idealnie proste. Nawet niewielkie przekrzywienie pogarsza dokładność OCR i sprawia, że wydruk wygląda niedbale. To narzędzie używa algorytmów przetwarzania obrazu OpenCV, aby wykryć kąt pochylenia każdej strony i obrócić ją z powrotem do poziomu.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej zeskanowanych plików PDF.
+2. Ustaw **Próg pochylenia**: strony z wykrytym pochyleniem poniżej tej wartości pozostają nietknięte.
+3. Wybierz **Jakość przetwarzania (DPI)**: wyższe DPI poprawia dokładność wykrywania, ale trwa dłużej.
+4. Kliknij **Wyprostuj PDF**.
+5. Po przetworzeniu panel wyników pokazuje wykryty kąt każdej strony i informację, czy została skorygowana.
+
+## Opcje
+
+| Ustawienie | Wartości | Domyślnie |
+| --------------------- | -------------------------- | --------- |
+| **Próg pochylenia** | 0,1, 0,5, 1,0, 2,0 stopnia | 0,5 |
+| **DPI przetwarzania** | 100, 150, 200, 300 | 150 |
+
+## Jak działa wykrywanie pochylenia
+
+Narzędzie renderuje każdą stronę do obrazu w wybranym DPI, a następnie używa OpenCV do wykrycia dominujących kątów linii w treści. Jeśli wykryte pochylenie przekracza próg, strona jest obracana o kąt przeciwny, aby ją wyprostować. Strony poniżej progu są przekazywane bez zmian.
+
+## Zastosowania
+
+- Porządkowanie hurtowo skanowanych umów lub dokumentów prawnych
+- Przygotowanie zeskanowanych paragonów lub faktur do przetwarzania OCR
+- Prostowanie stron ze skanera płaskiego przy niespójnym układaniu papieru
+- Poprawa jakości wizualnej zdigitalizowanych materiałów archiwalnych
+
+## Wskazówki
+
+- Obniż próg do 0,1 stopnia, jeśli potrzebujesz idealnego wyrównania do OCR.
+- 150 DPI jest szybkie i dokładne dla większości dokumentów. Użyj 300 DPI dla bardzo małego tekstu lub stron z drobnymi detalami.
+- Prostowanie działa najlepiej na dokumentach z wyraźnymi poziomymi liniami tekstu. Może sobie nie radzić ze stronami złożonymi głównie z obrazów lub ukośnych elementów projektu.
+
+## Powiązane narzędzia
+
+- [Rasteryzuj PDF](./rasterize-pdf): zamień wyprostowany wynik na płaski PDF oparty na obrazach
+- [Kompresuj PDF](./compress-pdf): zmniejsz rozmiar pliku po prostowaniu
+- [Napraw PDF](./repair-pdf): napraw problemy strukturalne w zeskanowanych plikach PDF
diff --git a/docs/pl/tools/digital-sign-pdf.md b/docs/pl/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..f9950b5f
--- /dev/null
+++ b/docs/pl/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Podpis cyfrowy
+description: Dodawaj kryptograficzne podpisy cyfrowe do plików PDF za pomocą certyfikatów X.509. Obsługuje formaty PKCS#12 i PEM oraz opcje widocznego podpisu.
+---
+
+# Podpis cyfrowy
+
+Podpis cyfrowy to kryptograficzny dowód, że konkretna osoba podpisała dokument i że dokument nie został zmieniony od tego czasu. W przeciwieństwie do narysowanego podpisu (który jest tylko obrazem) podpis cyfrowy używa certyfikatów X.509 i standardów PKCS#7, aby zapewnić weryfikowalną autentyczność i integralność.
+
+BentoPDF nakłada podpisy cyfrowe w całości w Twojej przeglądarce. Twój klucz prywatny nigdy nie opuszcza urządzenia.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Prześlij plik certyfikatu (.pfx, .p12 lub .pem).
+3. Wpisz hasło certyfikatu, aby go odblokować. Narzędzie wyświetli podmiot certyfikatu, wystawcę i okres ważności.
+4. Opcjonalnie skonfiguruj metadane podpisu (powód, lokalizacja, dane kontaktowe).
+5. Opcjonalnie włącz **widoczny podpis** z dostosowaniem pozycji, rozmiaru, obrazu i tekstu.
+6. Kliknij **Podpisz PDF**.
+
+## Obsługiwane formaty certyfikatów
+
+| Format | Rozszerzenia | Opis |
+| ----------- | ------------ | ------------------------------------------------------------------------------------------------------------------ |
+| **PKCS#12** | .pfx, .p12 | Standardowy w branży pakiet zawierający klucz prywatny i łańcuch certyfikatów. Najpopularniejszy format. |
+| **PEM** | .pem | Format tekstowy. Musi zawierać certyfikat i klucz prywatny w jednym pliku. Obsługuje zaszyfrowane klucze prywatne. |
+
+## Opcje widocznego podpisu
+
+Po włączeniu na stronie PDF renderowany jest widoczny blok podpisu:
+
+- **Pozycja**: współrzędne X/Y oraz szerokość/wysokość w punktach
+- **Strona**: pierwsza strona, ostatnia strona, wszystkie strony lub konkretny numer strony
+- **Obraz**: prześlij obraz PNG, JPG lub WebP (Twój odręczny podpis, pieczęć firmy itp.)
+- **Tekst**: własny tekst z konfigurowalnym kolorem i rozmiarem czcionki. Jeśli nie podano obrazu ani tekstu, narzędzie automatycznie generuje tekst z nazwy pospolitej certyfikatu (common name) i bieżącej daty.
+
+## Metadane podpisu
+
+- **Powód**: dlaczego dokument został podpisany (np. "Zatwierdzono", "Przejrzano")
+- **Lokalizacja**: gdzie odbyło się podpisywanie (np. "Nowy Jork, NY")
+- **Dane kontaktowe**: jak skontaktować się z podpisującym (np. adres e-mail)
+
+## Uwaga o połączeniu z internetem
+
+Podpisywanie może wymagać połączenia z internetem. Biblioteka podpisująca pobiera łańcuch certyfikatów z adresów URL zapisanych w rozszerzeniu Authority Information Access (AIA) Twojego certyfikatu. Jeśli te serwery są nieosiągalne, podpisywanie nie powiedzie się dla certyfikatów wymagających walidacji łańcucha.
+
+## Zastosowania
+
+- Podpisywanie umów, ofert i porozumień prawnie wiążącymi podpisami cyfrowymi
+- Poświadczanie oficjalnych dokumentów w procesach wymagających uwierzytelniania opartego na PKI
+- Podpisywanie faktur PDF dla zgodności z przepisami (wiele krajów UE wymaga podpisanych cyfrowo e-faktur)
+- Dodawanie organizacyjnego zatwierdzenia do rysunków technicznych lub dokumentów jakościowych
+
+## Wskazówki
+
+- Certyfikaty samopodpisane nadają się do testów, ale w Adobe Reader pokażą ostrzeżenia. W dokumentach produkcyjnych używaj certyfikatu od zaufanego urzędu certyfikacji.
+- Widoczny podpis jest wyłącznie wizualny. Podpis kryptograficzny jest osadzany niezależnie od tego, czy widoczny blok jest włączony.
+- Zweryfikuj podpisany PDF narzędziem Zweryfikuj podpis PDF, aby potwierdzić, że podpis jest nienaruszony.
+
+## Powiązane narzędzia
+
+- [Zweryfikuj podpis PDF](./validate-signature-pdf): weryfikuj podpisy cyfrowe w podpisanych plikach PDF
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz formularze przed podpisaniem, aby zapobiec modyfikacjom
+- [Szyfruj PDF](./protect-pdf): dodaj ochronę hasłem na wierzch podpisu cyfrowego
+- [Usuń metadane](./remove-metadata): usuń metadane przed podpisaniem
diff --git a/docs/pl/tools/divide-pages.md b/docs/pl/tools/divide-pages.md
new file mode 100644
index 00000000..c7ceadc3
--- /dev/null
+++ b/docs/pl/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Podziel strony
+description: Dziel strony PDF w poziomie lub w pionie na mniejsze podstrony.
+---
+
+# Podziel strony
+
+Przetnij pojedyncze strony PDF na połowy, dzieląc je w poziomie lub w pionie. Przydaje się, gdy jedna strona zawiera treść, którą należy rozdzielić na osobne strony, na przykład układ dwukolumnowy zeskanowany jako jedna szeroka strona.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Wybierz kierunek podziału: **Pionowo** (połowy lewa/prawa) lub **Poziomo** (połowy górna/dolna).
+3. Opcjonalnie podaj zakres stron, aby ograniczyć, które strony zostaną podzielone. Zostaw puste, aby podzielić wszystkie strony.
+4. Kliknij przycisk przetwarzania, aby wygenerować podzielony PDF.
+
+## Funkcje
+
+- Podział pionowy: dzieli każdą stronę na lewą i prawą połowę
+- Podział poziomy: dzieli każdą stronę na górną i dolną połowę
+- Filtr zakresu stron do selektywnego dzielenia wybranych stron
+- Strony spoza zakresu są przekazywane bez zmian
+- Zachowuje jakość treści bez ponownego renderowania
+
+## Zastosowania
+
+- Rozdzielanie zeskanowanych stron typu two-up (np. skan książki z lewą i prawą stroną na jednej kartce)
+- Dzielenie poziomego PDF z treścią obok siebie na osobne strony pionowe
+- Dzielenie wysokich infografik lub plakatów na osobne sekcje górną i dolną
+- Przygotowanie dokumentów szerokoformatowych do druku na standardowym papierze
+
+## Wskazówki
+
+- Jeśli treść na stronach jest rozłożona nierówno, podział i tak następuje w dokładnym środku. Do podziałów asymetrycznych rozważ zamiast tego [Przytnij PDF](./crop-pdf).
+- Połącz to narzędzie z [Obróć PDF](./rotate-pdf), jeśli strony wymagają obrotu przed podziałem lub po nim.
+
+## Powiązane narzędzia
+
+- [Podziel PDF](./split-pdf)
+- [Przytnij PDF](./crop-pdf)
+- [PDF N-Up](./n-up-pdf)
+- [Plakatowanie PDF](./posterize-pdf)
diff --git a/docs/pl/tools/duplex-collate.md b/docs/pl/tools/duplex-collate.md
new file mode 100644
index 00000000..4f676cef
--- /dev/null
+++ b/docs/pl/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Sortowanie skanu dwustronnego
+description: Zmień kolejność skanów dwustronnych PDF, w których strony przednie i tylne są w osobnych blokach, na właściwą kolejność przód/tył.
+---
+
+# Sortowanie skanu dwustronnego
+
+Sortowanie skanu dwustronnego jest przeznaczone do skanowania z podajnika ADF, gdzie jeden PDF zawiera dwa bloki stron:
+
+- najpierw wszystkie przednie strony
+- potem wszystkie tylne strony
+
+Zamiast ręcznie dzielić i składać plik, to narzędzie przeplata oba bloki w naturalną kolejność czytania: przód1, tył1, przód2, tył2 i tak dalej.
+
+## Jak to działa
+
+1. Prześlij jeden PDF utworzony ze skanowania dwustronnego stosu.
+2. Ustaw punkt podziału, w którym kończy się blok przodów.
+3. Wybierz obsługę bloku tyłów:
+ - **Odwróć blok tyłów** (częste, gdy stos jest odwracany przed skanowaniem tyłów)
+ - **Zachowaj blok tyłów bez zmian**
+4. Kliknij **Scal PDF**, aby pobrać wynik w nowej kolejności.
+
+## Opcje
+
+- **Automatyczne wykrycie podziału (połowa)**: ustawia punkt podziału na `ceil(totalPages / 2)`.
+- **Ostrzeżenie o nieparzystej liczbie stron**: ostrzega, gdy łączna liczba stron jest nieparzysta (często oznacza niezgodność skanu).
+- **Potwierdzenie nierównych bloków**: prosi o potwierdzenie, gdy rozmiary bloków przodów i tyłów się różnią.
+- **Eksport grupowany**: dzieli scalony wynik na osobne pliki PDF według liczby stron oryginalnego dokumentu i pobiera je jako ZIP.
+
+## Zachowanie wyniku
+
+- **Domyślnie**: jeden wynikowy PDF (jeden PDF na wejściu, jeden PDF na wyjściu).
+- **Tryb grupowany**: wynik jest dzielony na części według podanej liczby stron na dokument; jeśli powstanie kilka części, są pobierane jako jeden ZIP, w przeciwnym razie pobierany jest pojedynczy PDF.
+
+Jeśli rozmiary bloków są nierówne, sparowane strony są scalane najpierw, a pozostałe niesparowane strony są dołączane na końcu.
+
+## Typowe zastosowania
+
+- Przywracanie kolejności po skanowaniu stosu dwustronnych formularzy w dwóch przebiegach.
+- Odtwarzanie kompletów przód/tył ze skanerów biurowych, które zwracają najpierw wszystkie przody, a potem wszystkie tyły.
+- Obróbka końcowa skanów archiwalnych przed podziałem na pliki dla poszczególnych dokumentów.
+
+## Wskazówki
+
+- Większość partii dwustronnych powinna mieć parzystą łączną liczbę stron.
+- Jeśli tyły wyglądają na odwrócone, przełącz między **Odwróć blok tyłów** a **Zachowaj blok tyłów bez zmian**.
+- Dla dwustronicowych oryginałów (przód + tył) użyj eksportu grupowanego z `2` stronami na dokument.
+
+## Powiązane narzędzia
+
+- [Naprzemienne i mieszane strony](./alternate-merge)
+- [Podziel PDF](./split-pdf)
+- [Połącz PDF](./merge-pdf)
+- [Duplikuj i organizuj](./organize-pdf)
diff --git a/docs/pl/tools/edit-attachments.md b/docs/pl/tools/edit-attachments.md
new file mode 100644
index 00000000..9c4d63a4
--- /dev/null
+++ b/docs/pl/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Edytuj załączniki
+description: Przeglądaj i selektywnie usuwaj pliki załączników osadzone w dokumencie PDF.
+---
+
+# Edytuj załączniki
+
+Sprawdzaj załączniki wewnątrz PDF i zarządzaj nimi. Narzędzie wyświetla każdy osadzony plik wraz z nazwą i poziomem załącznika, a następnie pozwala oznaczyć pojedyncze załączniki do usunięcia lub usunąć wszystkie naraz.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Narzędzie automatycznie skanuje załączniki i wyświetla je na liście.
+3. Każdy załącznik pokazuje nazwę pliku i informację, czy jest załącznikiem na poziomie dokumentu, czy strony.
+4. Kliknij ikonę kosza obok załącznika, aby oznaczyć go do usunięcia (kliknij ponownie, aby cofnąć oznaczenie).
+5. Użyj przycisku **Usuń wszystkie załączniki**, aby zaznaczyć wszystko naraz, lub **Odznacz wszystko**, aby wyczyścić zaznaczenia.
+6. Kliknij przycisk przetwarzania, aby zapisać nowy PDF bez wybranych załączników.
+
+## Funkcje
+
+- Wyświetla wszystkie załączniki na poziomie dokumentu i strony
+- Usuwanie pojedyncze lub zbiorcze
+- Włączanie i wyłączanie zaznaczenia przed zatwierdzeniem zmian
+- Wizualne przekreślenie i zmiana przezroczystości elementów oznaczonych do usunięcia
+- Pobiera zmodyfikowany PDF bez wybranych załączników
+
+## Zastosowania
+
+- Usuwanie nieaktualnych lub błędnych plików osadzonych w dokumencie przed jego rozpowszechnieniem
+- Usuwanie wrażliwych załączników (dane finansowe, dane osobowe) z PDF przed udostępnieniem
+- Zmniejszanie rozmiaru PDF przez usunięcie dużych osadzonych plików, które nie są już potrzebne
+- Audyt osadzonej zawartości i porządkowanie dokumentu przed archiwizacją
+
+## Wskazówki
+
+- Załączniki oznaczone do usunięcia są pokazywane z wizualnym przekreśleniem. Możesz je przywrócić przed przetwarzaniem, jeśli zmienisz zdanie.
+- Jeśli nie znaleziono żadnych załączników, narzędzie wyświetla wyraźny komunikat "Nie znaleziono załączników": PDF po prostu nie zawiera osadzonych plików.
+
+## Powiązane narzędzia
+
+- [Dodaj załączniki](./add-attachments)
+- [Wyodrębnij załączniki](./extract-attachments)
+- [Wyświetl metadane](./view-metadata)
diff --git a/docs/pl/tools/edit-metadata.md b/docs/pl/tools/edit-metadata.md
new file mode 100644
index 00000000..4236cc57
--- /dev/null
+++ b/docs/pl/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Edytuj metadane
+description: Przeglądaj i zmieniaj pola metadanych PDF, w tym tytuł, autora, słowa kluczowe, daty i właściwości niestandardowe.
+---
+
+# Edytuj metadane
+
+Edytuj metadane osadzone w pliku PDF. Narzędzie wstępnie wypełnia formularz istniejącymi metadanymi dokumentu, pozwala zmienić dowolne pole i zapisuje zmiany w nowym PDF.
+
+## Jak to działa
+
+1. Prześlij plik PDF. Narzędzie odczytuje jego bieżące metadane i wypełnia formularz.
+2. Edytuj dowolne ze standardowych pól: Tytuł, Autor, Temat, Słowa kluczowe, Twórca, Producent.
+3. Dostosuj Datę utworzenia i Datę modyfikacji za pomocą selektorów daty i godziny.
+4. Dodaj własne pola metadanych, klikając przycisk dodawania i wpisując parę klucz-wartość.
+5. Kliknij przycisk przetwarzania, aby zapisać zmodyfikowany PDF.
+
+## Funkcje
+
+- Wstępnie wypełnia wszystkie istniejące metadane z przesłanego PDF
+- Pola standardowe: Tytuł, Autor, Temat, Słowa kluczowe, Twórca, Producent
+- Selektory daty i godziny dla Daty utworzenia i Daty modyfikacji
+- Własne pola metadanych klucz-wartość dla dowolnych właściwości
+- Zapisuje zmiany bezpośrednio w słowniku informacji o dokumencie PDF
+
+## Edytowalne pola
+
+| Pole | Opis |
+| ----------------------- | -------------------------------------------------------------- |
+| **Tytuł** | Tytuł dokumentu wyświetlany w czytnikach PDF |
+| **Autor** | Osoba lub organizacja, która utworzyła dokument |
+| **Temat** | Krótki opis tematu dokumentu |
+| **Słowa kluczowe** | Terminy oddzielone przecinkami do wyszukiwania i kategoryzacji |
+| **Twórca** | Aplikacja, która pierwotnie utworzyła treść |
+| **Producent** | Aplikacja, która wygenerowała PDF |
+| **Data utworzenia** | Kiedy dokument został pierwotnie utworzony |
+| **Data modyfikacji** | Kiedy dokument został ostatnio zmodyfikowany |
+| **Pola niestandardowe** | Wszelkie dodatkowe pary klucz-wartość, które zdefiniujesz |
+
+## Zastosowania
+
+- Ustawienie właściwego tytułu i autora przed publikacją dokumentu
+- Dodawanie słów kluczowych, aby poprawić wyszukiwalność w systemach zarządzania dokumentami
+- Aktualizacja daty modyfikacji, aby odzwierciedlała bieżącą wersję
+- Dodawanie własnych pól metadanych, takich jak Dział, ID projektu lub Klasyfikacja
+- Czyszczenie metadanych pozostawionych przez oryginalne oprogramowanie autorskie
+
+## Wskazówki
+
+- Pola niestandardowe są zapisywane bezpośrednio w słowniku informacji PDF. Niektóre czytniki PDF mogą ich nie wyświetlać, ale są zachowane w pliku.
+- Zostaw pole puste, aby usunąć je z metadanych. Przycisk przetwarzania zapisuje wszystko, co jest w formularzu.
+- Aby wyświetlić metadane bez edycji, użyj [Wyświetl metadane](./view-metadata). Aby całkowicie usunąć wszystkie metadane, użyj Usuń metadane.
+
+## Powiązane narzędzia
+
+- [Wyświetl metadane](./view-metadata)
+- [Warstwy PDF (OCG)](./pdf-layers)
+- [Kompresuj PDF](./compress-pdf)
diff --git a/docs/pl/tools/edit-pdf.md b/docs/pl/tools/edit-pdf.md
new file mode 100644
index 00000000..4d821e4c
--- /dev/null
+++ b/docs/pl/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Edytor PDF
+description: Dodawaj adnotacje, zakreślaj, redaguj (zaczerniaj), dodawaj kształty i obrazy, wyszukuj i przeglądaj pliki PDF bezpośrednio w przeglądarce.
+---
+
+# Edytor PDF
+
+Edytor PDF w BentoPDF pozwala dodawać adnotacje, zakreślać, redagować (zaczerniać), komentować, dodawać kształty i obrazy oraz przeszukiwać pliki PDF. Ładuje w pełni funkcjonalny edytor bezpośrednio w przeglądarce, bez wysyłania plików na serwer.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając do niej plik.
+2. Wbudowany edytor PDF otworzy się automatycznie z załadowanym dokumentem.
+3. Użyj paska narzędzi, aby dodawać adnotacje, zakreślać, redagować, dodawać tekst, rysować kształty lub wstawiać obrazy.
+4. Kliknij **Pobierz edytowany PDF**, aby zapisać zmiany.
+
+## Funkcje
+
+- Pełny pasek narzędzi adnotacji z zakreślaniem, podkreślaniem, przekreślaniem i rysowaniem odręcznym
+- Wstawianie tekstu i komentowanie
+- Narzędzia redakcji, które trwale usuwają oznaczoną treść po zastosowaniu redakcji. Jeśli jakieś oznaczenia nie zostały zastosowane po kliknięciu **Pobierz edytowany PDF**, edytor zaproponuje ich wcześniejsze zastosowanie.
+- Narzędzia kształtów: prostokąty, okręgi, linie i strzałki
+- Wstawianie obrazów na strony PDF
+- Wbudowane wyszukiwanie tekstu w dokumencie
+- Obsługa wielu dokumentów z kartami (do 10 jednocześnie otwartych dokumentów)
+- Wczytywanie plików przez przeciągnij i upuść
+
+## Zastosowania
+
+- Przeglądanie umów i oznaczanie zmian zakreśleniami i komentarzami
+- Redagowanie poufnych informacji, takich jak numery PESEL lub dane finansowe, przed udostępnieniem
+- Dodawanie adnotacji do planów architektonicznych lub rysunków technicznych
+- Wstawianie logo firmy lub pieczątek na strony dokumentu
+- Przeszukiwanie długich dokumentów prawnych w poszukiwaniu określonych terminów
+
+## Wskazówki
+
+- Możesz otworzyć wiele plików PDF naraz i przełączać się między nimi za pomocą paska kart u góry edytora.
+- Edytor zachowuje oryginalną strukturę PDF, więc czcionki, układy i pola formularzy pozostają nienaruszone.
+- Oznaczenie tekstu lub obszaru do redakcji niczego nie usuwa, dopóki redakcja nie zostanie zastosowana. Gdy redagujesz zaznaczony tekst, jego kopie we właściwościach pliku, zakładkach, komentarzach i załącznikach są również usuwane z pobranego pliku, chyba że plik jest zaszyfrowany.
+- Do zbiorczego dodawania znaków wodnych lub numeracji stron użyj dedykowanych narzędzi, które dają większą kontrolę nad formatowaniem.
+
+## Powiązane narzędzia
+
+- [Dodaj znak wodny](./add-watermark)
+- [Podpisz PDF](./sign-pdf)
+- [Dodaj pieczątki](./add-stamps)
+- [Usuń adnotacje](./remove-annotations)
diff --git a/docs/pl/tools/email-to-pdf.md b/docs/pl/tools/email-to-pdf.md
new file mode 100644
index 00000000..f85c29ec
--- /dev/null
+++ b/docs/pl/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: E-mail na PDF
+description: Konwertuj pliki e-mail EML i MSG na PDF w przeglądarce. Zachowuje nagłówki, treść i listę załączników.
+---
+
+# E-mail na PDF
+
+Zamień zapisane pliki e-mail na czyste, nadające się do druku pliki PDF. Narzędzie parsuje pliki EML i MSG, wyodrębnia całą wiadomość (nagłówki, treść i metadane załączników) i renderuje wszystko w uporządkowany PDF. Przydaje się do e-discovery, prowadzenia dokumentacji lub zwykłego wydrukowania ważnego e-maila.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----- | :----------- | :------------------------------------------------------------------------- |
+| EML | `.eml` | Standardowy format e-mail MIME (eksportowany z większości klientów poczty) |
+| MSG | `.msg` | Własnościowy format Microsoft Outlook |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki EML lub MSG. W jednej partii możesz mieszać oba formaty.
+2. Przejrzyj listę plików. Usuń niechciane pozycje ikoną kosza lub kliknij **Dodaj więcej plików**, aby dołączyć kolejne e-maile.
+3. Skonfiguruj opcje konwersji (patrz niżej).
+4. Kliknij **Konwertuj na PDF**. Narzędzie parsuje każdy e-mail, renderuje treść jako stylizowany HTML i konwertuje ją na PDF przez silnik PyMuPDF.
+5. Pojedynczy e-mail pobiera się bezpośrednio jako PDF. Wiele e-maili jest pakowanych do `emails-converted.zip`.
+
+## Opcje
+
+| Opcja | Domyślnie | Opis |
+| :--------------------------- | :-------- | :---------------------------------------------------------------------------------------- |
+| **Rozmiar strony** | A4 | Wybierz wymiary strony: A4, Letter lub Legal. |
+| **Dołącz DW i UDW** | Włączone | Po włączeniu listy odbiorców DW i UDW pojawiają się w sekcji nagłówka e-maila w PDF. |
+| **Dołącz listę załączników** | Włączone | Po włączeniu w PDF pojawia się lista załączników e-maila (z nazwami plików i rozmiarami). |
+
+## Zastosowania
+
+- Archiwizacja ważnej korespondencji biznesowej jako PDF na potrzeby zgodności lub audytu
+- Drukowanie wątków e-mail na potrzeby postępowań prawnych lub wniosków o ujawnienie dokumentów
+- Tworzenie trwałego zapisu potwierdzeń zamówień, paragonów lub umów otrzymanych e-mailem
+- Tworzenie kopii zapasowych plików MSG z Outlooka w formacie, który nie wymaga Outlooka do odczytu
+- Dokumentowanie kontaktów z obsługą klienta na podstawie wyeksportowanych plików EML
+
+## Wskazówki
+
+- Obsługiwane są zarówno pliki EML (używane przez Thunderbirda, Apple Mail i większość klientów poczty), jak i pliki MSG z Outlooka. Wyeksportuj e-maile z klienta poczty i upuść je bezpośrednio w narzędziu.
+- E-maile w formacie HTML zachowują swoją stylizację w PDF. E-maile w czystym tekście są renderowane z czytelnym, przejrzystym formatowaniem.
+- Lista załączników pokazuje nazwy plików i rozmiary, ale nie osadza samych plików załączników w PDF.
+
+## Powiązane narzędzia
+
+- [XML na PDF](./xml-to-pdf)
+- [XPS na PDF](./xps-to-pdf)
diff --git a/docs/pl/tools/epub-to-pdf.md b/docs/pl/tools/epub-to-pdf.md
new file mode 100644
index 00000000..a97dc428
--- /dev/null
+++ b/docs/pl/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB na PDF
+description: Konwertuj e-booki EPUB na PDF w przeglądarce. Za darmo, bez wysyłania plików, konwersja z myślą o prywatności.
+---
+
+# EPUB na PDF
+
+Konwertuj e-booki EPUB na pliki PDF bez opuszczania przeglądarki. EPUB to otwarty standard książek cyfrowych, ale czasem potrzebny jest PDF o stałym układzie do druku, dodawania adnotacji lub udostępniania osobom bez czytnika e-booków.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----- | :----------- | :-------------------- |
+| EPUB | `.epub` | Pliki EPUB 2 i EPUB 3 |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki EPUB. Obsługiwane jest zaznaczanie wielu plików.
+2. Przejrzyj przesłane pliki. Usuń niechciane pozycje ikoną kosza lub kliknij **Dodaj więcej plików**, aby rozszerzyć partię.
+3. Kliknij **Konwertuj na PDF**. Silnik PyMuPDF renderuje zawartość EPUB (tekst, obrazy i formatowanie) do podzielonego na strony PDF.
+4. Pojedynczy plik EPUB pobiera się bezpośrednio jako PDF. Wiele plików jest pakowanych do archiwum ZIP o nazwie `epub-converted.zip`.
+
+## Opcje
+
+Konwersja działa z rozsądnymi ustawieniami domyślnymi i nie wymaga konfiguracji. Tekst jest układany na nowo w standardowych wymiarach strony, a osadzone czcionki i obrazy są przenoszone do PDF.
+
+## Zastosowania
+
+- Drukowanie e-booka bez DRM do czytania z dala od ekranów
+- Przesyłanie manuskryptu EPUB jako PDF o stałym układzie do recenzji
+- Archiwizacja książek cyfrowych w formacie, który otworzy natywnie każdy system operacyjny
+- Udostępnienie rozdziału współpracownikowi, który nie ma czytnika EPUB
+- Konwersja dokumentacji technicznej dystrybuowanej jako EPUB na pliki PDF z możliwością adnotacji
+
+## Wskazówki
+
+- Funkcje EPUB 3, takie jak osadzone audio i wideo, nie zostaną przeniesione do PDF, ale cały tekst, obrazy i tabele konwertują się poprawnie.
+- Aby uzyskać najlepsze wyniki z mocno stylizowanymi plikami EPUB, sprawdź kilka pierwszych stron wyniku, aby potwierdzić wierność układu.
+
+## Powiązane narzędzia
+
+- [MOBI na PDF](./mobi-to-pdf)
+- [FB2 na PDF](./fb2-to-pdf)
+- [CBZ na PDF](./cbz-to-pdf)
diff --git a/docs/pl/tools/excel-to-pdf.md b/docs/pl/tools/excel-to-pdf.md
new file mode 100644
index 00000000..d3e67b16
--- /dev/null
+++ b/docs/pl/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel na PDF
+description: Konwertuj arkusze Excel (XLS, XLSX), ODS i pliki CSV na PDF z zachowaniem formatowania.
+---
+
+# Excel na PDF
+
+Konwertuj pliki arkuszy kalkulacyjnych na PDF. Narzędzie obsługuje nowoczesne pliki Excel, starszy format XLS, arkusze OpenDocument, a nawet CSV, wszystko renderowane przez działający w przeglądarce silnik LibreOffice, który zachowuje formatowanie komórek, formuły (jako obliczone wartości), wykresy i układy wielu arkuszy.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :------------------ | :----------- |
+| Excel (nowoczesny) | `.xlsx` |
+| Excel (starszy) | `.xls` |
+| Arkusz OpenDocument | `.ods` |
+| CSV | `.csv` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki arkuszy kalkulacyjnych.
+2. Przejrzyj listę plików. Dodaj kolejne pliki lub usuń niechciane.
+3. Kliknij **Konwertuj na PDF**. Silnik LibreOffice inicjalizuje się przy pierwszym użyciu, a następnie przetwarza każdy plik.
+4. Pojedynczy plik pobiera się bezpośrednio jako PDF. Wiele plików jest dostarczanych jako `excel-converted.zip`.
+
+## Opcje
+
+To narzędzie nie ma dodatkowej konfiguracji. Silnik LibreOffice określa układ strony, skalowanie i obszar wydruku na podstawie wbudowanych ustawień arkusza.
+
+## Wynik
+
+| Liczba plików wejściowych | Wynik |
+| :------------------------ | :------------------------------------------------------------------- |
+| 1 plik | Pobranie jednego PDF (oryginalna nazwa pliku z rozszerzeniem `.pdf`) |
+| 2+ pliki | Archiwum ZIP (`excel-converted.zip`) z jednym PDF na każdy plik |
+
+## Zastosowania
+
+- Konwersja raportów finansowych lub budżetów z Excela na PDF do dystrybucji
+- Tworzenie gotowych do druku plików PDF z arkuszy inwentarza lub katalogu produktów
+- Udostępnianie wyników analizy danych interesariuszom, którzy nie mają zainstalowanego Excela
+- Archiwizacja raportów kwartalnych w formacie bez możliwości edycji
+- Konwersja plików ODS z LibreOffice Calc na PDF
+
+## Wskazówki
+
+- Wykresy osadzone w arkuszu są renderowane w PDF. Przed konwersją upewnij się, że wyglądają poprawnie w pliku źródłowym.
+- Jeśli arkusz ma wiele arkuszy (kart), wszystkie są uwzględniane w wynikowym PDF.
+- Dla prostych danych CSV bez formatowania narzędzie [CSV na PDF](./csv-to-pdf) zapewnia lżejszą konwersję. Użyj Excel na PDF, gdy potrzebujesz zachować formatowanie, wykresy lub wiele arkuszy.
+
+## Powiązane narzędzia
+
+- [CSV na PDF](./csv-to-pdf)
+- [Word na PDF](./word-to-pdf)
+- [PowerPoint na PDF](./powerpoint-to-pdf)
diff --git a/docs/pl/tools/extract-attachments.md b/docs/pl/tools/extract-attachments.md
new file mode 100644
index 00000000..f003eeb2
--- /dev/null
+++ b/docs/pl/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Wyodrębnij załączniki
+description: Wyodrębnij wszystkie osadzone pliki załączników z jednego lub wielu plików PDF i pobierz je jako archiwum ZIP.
+---
+
+# Wyodrębnij załączniki
+
+Wyciągnij każdy osadzony załącznik z jednego lub wielu plików PDF. Wszystkie wyodrębnione pliki są pakowane do jednego archiwum ZIP do pobrania.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF zawierających osadzone załączniki.
+2. Kliknij **Wyodrębnij załączniki**.
+3. Narzędzie skanuje każdy PDF pod kątem załączników na poziomie dokumentu i strony.
+4. Wszystkie znalezione pliki są pakowane do archiwum ZIP i pobierane automatycznie.
+5. Komunikat o stanie potwierdza, ile załączników znaleziono i jaki jest ich łączny rozmiar.
+
+## Funkcje
+
+- Wyodrębnianie wsadowe z wielu plików PDF naraz
+- Wyodrębnia załączniki na poziomie dokumentu i strony
+- Zwraca jeden plik ZIP ze wszystkimi wyodrębnionymi plikami
+- Wyświetla łączną liczbę załączników i łączny rozmiar plików
+- Czytelne komunikaty, jeśli nie znaleziono załączników
+
+## Zastosowania
+
+- Odzyskiwanie plików danych osadzonych w raporcie PDF
+- Wyciąganie zasobów graficznych z portfolio lub dokumentu specyfikacji
+- Wyodrębnianie materiałów dodatkowych z plików PDF szkoleniowych lub dotyczących zgodności
+- Audyt plików osadzonych w partii plików PDF
+
+## Wskazówki
+
+- Jeśli narzędzie zgłasza brak załączników, PDF może zawierać osadzone obrazy lub dane formularzy, które nie są załącznikami plikowymi. Dla osadzonych obrazów użyj [Wyodrębnij obrazy](./extract-images).
+- Przy przetwarzaniu wielu plików PDF wszystkie załączniki ze wszystkich plików trafiają do jednego ZIP. Nazwy plików są zachowywane z oryginalnych osadzeń.
+
+## Powiązane narzędzia
+
+- [Dodaj załączniki](./add-attachments)
+- [Edytuj załączniki](./edit-attachments)
+- [Wyodrębnij obrazy](./extract-images)
diff --git a/docs/pl/tools/extract-images.md b/docs/pl/tools/extract-images.md
new file mode 100644
index 00000000..c47a7478
--- /dev/null
+++ b/docs/pl/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Wyodrębnij obrazy
+description: Wyodrębnij wszystkie osadzone obrazy z plików PDF. Przeglądaj je w siatce i pobieraj pojedynczo lub jako archiwum ZIP.
+---
+
+# Wyodrębnij obrazy
+
+Wyciąga wszystkie osadzone obrazy z jednego lub wielu plików PDF. Wyodrębnione obrazy są wyświetlane w siatce podglądu, gdzie możesz pobierać je pojedynczo lub wszystkie naraz jako ZIP. Działa na PyMuPDF.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając na nią pliki. W razie potrzeby dodaj więcej plików lub usuń pojedyncze.
+2. Kliknij **Wyodrębnij**, aby rozpocząć przetwarzanie.
+3. Narzędzie skanuje każdą stronę każdego przesłanego PDF, znajdując i wyodrębniając osadzone obrazy.
+4. Wyodrębnione obrazy pojawiają się w siatce z miniaturami. Każdy obraz ma przycisk pobierania.
+5. Kliknij **Pobierz wszystko**, aby zapisać całość jako archiwum ZIP.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Wszystkie osadzone obrazy są wyodrębniane w natywnym formacie (zwykle PNG, JPEG lub w formacie użytym przy osadzaniu obrazu w PDF).
+
+## Format wyniku
+
+- Obrazy są wyświetlane w siatce podglądu pod nazwami `image_1.png`, `image_2.jpg` itd.
+- **Pobierz wszystko** tworzy `extracted-images.zip` ze wszystkimi obrazami.
+- Pojedyncze obrazy można pobierać po jednym z siatki.
+
+## Zastosowania
+
+- Odzyskiwanie zdjęć lub grafik z PDF do ponownego użycia w innym projekcie.
+- Wyodrębnianie zdjęć produktów z katalogu PDF do oferty w sklepie internetowym.
+- Wyciąganie diagramów z dokumentacji technicznej do prezentacji.
+- Audyt obrazów osadzonych w dokumencie przed jego udostępnieniem.
+
+## Wskazówki
+
+- Narzędzie wyodrębnia obrazy dokładnie tak, jak są zapisane w PDF. Nie renderuje stron jako obrazów. Do tego użyj [PDF na PNG](./pdf-to-png) lub [PDF na JPG](./pdf-to-jpg).
+- Jeśli narzędzie zgłasza "Nie znaleziono obrazów", PDF może używać grafiki wektorowej zamiast osadzonych obrazów rastrowych lub może być zeskanowanym dokumentem, w którym cała strona jest jednym dużym obrazem.
+- Przetwarzanie wsadowe działa na wielu plikach PDF. Wszystkie obrazy ze wszystkich plików są łączone w jedną siatkę i jeden ZIP.
+
+## Powiązane narzędzia
+
+- [PDF na PNG](./pdf-to-png)
+- [PDF na JPG](./pdf-to-jpg)
+- [Kreator przepływów PDF](./pdf-workflow)
diff --git a/docs/pl/tools/extract-pages.md b/docs/pl/tools/extract-pages.md
new file mode 100644
index 00000000..62a95c78
--- /dev/null
+++ b/docs/pl/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Wyodrębnij strony
+description: Zapisz wybrany zakres stron z PDF jako nowy dokument.
+---
+
+# Wyodrębnij strony
+
+Wyciągnij zestaw stron z PDF i zapisz je jako nowy plik. Podaj dokładnie, które strony chcesz, używając składni zakresów, a narzędzie utworzy czysty PDF zawierający tylko te strony.
+
+## Jak to działa
+
+1. Prześlij plik PDF. Narzędzie wyświetla nazwę pliku, rozmiar i łączną liczbę stron.
+2. Wpisz strony do wyodrębnienia, używając składni zakresów (np. `1-5`, `3, 7, 10-12`).
+3. Opcjonalnie wybierz pobieranie każdego zakresu jako osobnego PDF w archiwum ZIP.
+4. Kliknij przycisk przetwarzania. Wyodrębnione strony zostaną pobrane jako nowy PDF (lub ZIP).
+
+## Funkcje
+
+- Elastyczna składnia zakresów stron: pojedyncze strony, zakresy lub kombinacje oddzielone przecinkami
+- Wyświetla łączną liczbę stron po przesłaniu dla łatwego odniesienia
+- Możliwość zwrócenia jednego połączonego PDF lub osobnych plików w ZIP
+- Zachowuje oryginalną treść i formatowanie stron
+
+## Zastosowania
+
+- Wyciąganie streszczenia dla zarządu (kilka pierwszych stron) z długiego raportu
+- Wyodrębnianie pojedynczego rozdziału z podręcznika w PDF
+- Zapisywanie wybranych stron z pakietu formularzy jako samodzielnych dokumentów
+- Tworzenie przykładowego dokumentu z wybranych stron większego pliku
+
+## Wskazówki
+
+- Numery stron liczone są od 1. Użyj `1` dla pierwszej strony, nie `0`.
+- Do usuwania stron zamiast ich wyodrębniania użyj [Usuń strony](./delete-pages): to operacja odwrotna.
+- Jeśli potrzebujesz wizualnego wyboru stron z miniaturami, użyj [Podziel PDF](./split-pdf) w trybie Wizualny wybór.
+
+## Powiązane narzędzia
+
+- [Podziel PDF](./split-pdf)
+- [Usuń strony](./delete-pages)
+- [Połącz PDF](./merge-pdf)
diff --git a/docs/pl/tools/extract-tables.md b/docs/pl/tools/extract-tables.md
new file mode 100644
index 00000000..d7539e0f
--- /dev/null
+++ b/docs/pl/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Wyodrębnij tabele PDF
+description: Wykrywaj i wyodrębniaj tabele z dokumentów PDF. Eksportuj jako CSV, JSON lub Markdown z dokładnością do pojedynczej tabeli.
+---
+
+# Wyodrębnij tabele PDF
+
+Wykrywa wszystkie tabele w PDF i pozwala wyeksportować je w wybranym formacie: CSV, JSON lub Markdown. Każda tabela jest wyodrębniana osobno wraz z metadanymi strony i położenia. Działa na silniku wykrywania tabel PyMuPDF.
+
+## Jak to działa
+
+1. Prześlij PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Wybierz preferowany **format eksportu**: CSV, JSON lub Markdown.
+3. Kliknij **Wyodrębnij**, aby rozpocząć przetwarzanie.
+4. Jeśli znaleziono jedną tabelę, pobiera się ją jako pojedynczy plik. Wiele tabel daje archiwum ZIP z jednym plikiem na tabelę.
+
+## Opcje
+
+- **Format eksportu**: wybierz spośród:
+ - **CSV**: wartości oddzielone przecinkami z prawidłowym cytowaniem pól zawierających przecinki, cudzysłowy lub znaki nowej linii. Odpowiedni dla arkuszy kalkulacyjnych i baz danych.
+ - **JSON**: struktura tablicy tablic, sformatowana z wcięciem 2 spacji. Odpowiedni do przetwarzania programowego.
+ - **Markdown**: format tabeli rozdzielanej znakami pionowej kreski, renderowany przez PyMuPDF. Odpowiedni dla dokumentacji i plików README.
+
+## Format wyniku
+
+- **Pojedyncza tabela**: `filename_table.csv` (lub `.json` / `.md`)
+- **Wiele tabel**: `filename_tables.zip` zawierający pliki o nazwach `table_1_page3.csv`, `table_2_page5.csv` itd.
+
+## Zastosowania
+
+- Wyodrębnianie wybranych tabel z długich raportów PDF bez pobierania danych z całego dokumentu.
+- Uzyskiwanie tabel w formacie Markdown do wklejania bezpośrednio w zgłoszenia GitHub, wiki lub dokumentację.
+- Pobieranie ustrukturyzowanych danych JSON z tabel PDF do integracji API lub skryptów.
+- Porównywanie tabel między różnymi wersjami PDF przez wyeksportowanie obu do CSV i porównanie różnic.
+
+## Wskazówki
+
+- To narzędzie daje kontrolę nad każdą tabelą osobno. Jeśli chcesz po prostu wrzucić wszystkie tabele do jednego pliku CSV, użyj [PDF na CSV](./pdf-to-csv). Dla pełnego skoroszytu Excel użyj [PDF na Excel](./pdf-to-excel).
+- Tabele obejmujące wiele stron mogą zostać wykryte jako osobne tabele na każdej stronie. Może być konieczne ręczne ich połączenie.
+- Jeśli nie wykryto żadnych tabel, PDF może być zeskanowanym obrazem. Najpierw uruchom na nim OCR, aby dodać warstwę tekstową.
+
+## Powiązane narzędzia
+
+- [PDF na CSV](./pdf-to-csv)
+- [PDF na Excel](./pdf-to-excel)
+- [PDF na Tekst](./pdf-to-text)
diff --git a/docs/pl/tools/fb2-to-pdf.md b/docs/pl/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..d722681d
--- /dev/null
+++ b/docs/pl/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 na PDF
+description: Konwertuj e-booki FictionBook (FB2) na PDF w przeglądarce. Za darmo, prywatnie, bez wysyłania na serwer.
+---
+
+# FB2 na PDF
+
+Konwertuj pliki FictionBook 2 (FB2) na dokumenty PDF. FB2 to oparty na XML format e-booków, popularny w Rosji i Europie Wschodniej. Na jednych platformach jest dobrze obsługiwany, a na innych praktycznie nieznany, więc konwersja do PDF sprawia, że książki da się czytać wszędzie.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :------------ | :----------- | :---------------------------- |
+| FictionBook 2 | `.fb2` | Format e-booków oparty na XML |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki FB2. Możesz wybrać wiele plików naraz.
+2. Sprawdź listę plików. Ikoną kosza usuniesz pojedyncze pozycje, a przyciskiem **Dodaj więcej plików** dodasz kolejne.
+3. Kliknij **Konwertuj na PDF**. Silnik PyMuPDF analizuje strukturę XML pliku FB2 i renderuje ją jako stronicowaną zawartość PDF.
+4. Pojedynczy plik pobierze się bezpośrednio jako PDF. Wiele konwersji zostanie spakowanych do `fb2-converted.zip`.
+
+## Opcje
+
+Nie jest potrzebna żadna konfiguracja. Konwerter automatycznie obsługuje strukturę XML FB2, zachowując podziały rozdziałów, formatowanie i osadzone obrazy.
+
+## Zastosowania
+
+- Czytanie e-booków FB2 na urządzeniach lub w aplikacjach, które obsługują tylko PDF
+- Drukowanie literatury rosyjskojęzycznej rozpowszechnianej w formacie FB2
+- Archiwizowanie biblioteki FB2 w powszechnie obsługiwanym formacie
+- Udostępnianie książki osobie, której czytnik nie obsługuje FictionBook
+
+## Wskazówki
+
+- Pliki FB2 to zwykły XML, więc zwykle są małe i konwertują się szybko nawet w przeglądarce.
+- Jeśli pliki FB2 są skompresowane jako `.fb2.zip`, najpierw je rozpakuj, a dopiero potem prześlij.
+
+## Powiązane narzędzia
+
+- [EPUB na PDF](./epub-to-pdf)
+- [MOBI na PDF](./mobi-to-pdf)
+- [XML na PDF](./xml-to-pdf)
diff --git a/docs/pl/tools/fix-page-size.md b/docs/pl/tools/fix-page-size.md
new file mode 100644
index 00000000..20a9ad28
--- /dev/null
+++ b/docs/pl/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Napraw rozmiar strony
+description: Ujednolić wszystkie strony PDF do jednego rozmiaru. Wybierz standardowy format papieru lub ustaw własne wymiary.
+---
+
+# Napraw rozmiar strony
+
+PDF-y złożone z wielu źródeł często mają strony o różnych rozmiarach: jedne w formacie Letter, inne A4, a jeszcze inne zupełnie niestandardowe. To narzędzie wymusza jeden docelowy rozmiar dla każdej strony, skalując zawartość tak, aby pasowała lub wypełniała stronę.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Wybierz **Docelowy rozmiar strony** z listy rozwijanej (A4, Letter, Legal, A3, A5, Tabloid lub Niestandardowy).
+3. Wybierz **Orientację**: Auto zachowuje oryginalną orientację każdej strony, ale możesz też wymusić pionową lub poziomą.
+4. Wybierz tryb **Skalowania zawartości**: Dopasuj (zachowuje całą zawartość, może dodać marginesy) lub Wypełnij (wypełnia stronę, może przyciąć krawędzie).
+5. Opcjonalnie ustaw **Kolor tła** dla dodanych marginesów.
+6. Kliknij **Napraw rozmiar strony**.
+
+## Opcje
+
+- **Standardowe rozmiary**: A4, Letter, Legal, A3, A5, Tabloid
+- **Własne wymiary**: Podaj szerokość i wysokość w calach lub milimetrach
+- **Orientacja**: Auto, pionowa, pozioma
+- **Tryb skalowania**: Dopasuj lub Wypełnij (z przycięciem)
+- **Kolor tła**: Dowolny kolor wypełnienia marginesów
+
+## Zastosowania
+
+- Ujednolicanie połączonego PDF-a, którego strony pochodziły z różnych skanerów
+- Konwersja dokumentu w formacie US Letter na A4 na potrzeby międzynarodowej dystrybucji
+- Przygotowanie PDF-ów do druku, które wymagają stałego rozmiaru po przycięciu
+- Naprawa stron o lekko niestandardowych wymiarach (np. 8,49 x 11,02 cala zamiast 8,5 x 11)
+
+## Wskazówki
+
+- Użyj trybu Dopasuj, aby mieć pewność, że żadna zawartość nie zginie. Tryb Wypełnij wygląda czyściej, ale może przyciąć krawędzie.
+- Sprawdź wynik narzędziem Wymiary strony, aby upewnić się, że każda strona odpowiada rozmiarowi docelowemu.
+- Domyślny kolor tła to biały. Przełącz na ciemny, jeśli dokument ma ciemne marginesy.
+
+## Powiązane narzędzia
+
+- [Wymiary strony](./page-dimensions): sprawdź rozmiary stron przed naprawą i po niej
+- [Kompresuj PDF](./compress-pdf): zmniejsz rozmiar pliku po ujednoliceniu
+- [Przytnij PDF](./crop-pdf): przytnij strony ręcznie zamiast skalować automatycznie
diff --git a/docs/pl/tools/flatten-pdf.md b/docs/pl/tools/flatten-pdf.md
new file mode 100644
index 00000000..304925cc
--- /dev/null
+++ b/docs/pl/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Spłaszcz PDF
+description: Spłaszcz interaktywne formularze i adnotacje do statycznej zawartości. Pola formularza przestają być edytowalne, a adnotacje zostają wtopione w stronę.
+---
+
+# Spłaszcz PDF
+
+Spłaszczanie wtapia elementy interaktywne (pola formularzy, listy rozwijane, pola wyboru, adnotacje, podświetlenia, karteczki) bezpośrednio w zawartość strony. Wygląd pozostaje taki sam, ale nic nie da się już edytować ani wyodrębnić. To odpowiednik wydrukowania wypełnionego formularza i zeskanowania go z powrotem, tyle że jakość pozostaje idealna.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF.
+2. Kliknij **Spłaszcz PDF**.
+3. Pojedynczy plik pobierze się bezpośrednio. Wiele plików da archiwum ZIP.
+
+Narzędzie używa pdf-lib do spłaszczania pól formularzy (przez `form.flatten()`) oraz dedykowanego mechanizmu do wtapiania adnotacji w strumień strony. Obie operacje odbywają się w jednym przebiegu.
+
+## Co zostaje spłaszczone
+
+- **Pola formularzy**: pola tekstowe, pola wyboru, przyciski opcji, listy rozwijane, pola podpisu
+- **Adnotacje**: komentarze, podświetlenia, przekreślenia, podkreślenia, karteczki, pieczątki, adnotacje odręczne
+- **Elementy interaktywne**: przyciski, wyzwalacze akcji
+
+## Co pozostaje bez zmian
+
+- Zawartość tekstowa (nadal można ją zaznaczać i przeszukiwać)
+- Obrazy i grafiki
+- Układ i wymiary stron
+- Zakładki i spis treści
+- Hiperłącza (chyba że są oparte na adnotacjach)
+
+## Zastosowania
+
+- Zablokowanie wypełnionego formularza, aby odbiorcy nie mogli zmienić przesłanych odpowiedzi
+- Przygotowanie PDF-a do archiwizacji, gdzie elementy interaktywne są zbędne
+- Naprawa problemów z wyświetlaniem, gdy adnotacje renderują się inaczej w różnych przeglądarkach PDF
+- Upewnienie się, że podpisanego dokumentu nie da się zmodyfikować po złożeniu podpisu
+- Zmniejszenie rozmiaru pliku przez usunięcie definicji pól formularzy i obiektów adnotacji
+
+## Wskazówki
+
+- Spłaszczaj dopiero po zakończeniu wszystkich edycji. Nie da się cofnąć spłaszczenia PDF-a.
+- Jeśli oprócz spłaszczenia chcesz usunąć metadane, JavaScript i załączniki, użyj zamiast tego narzędzia Sanityzuj PDF, które ma spłaszczanie wśród swoich opcji.
+- Niektóre PDF-y zgłaszają "nie znaleziono formularza". To normalne, jeśli dokument ma tylko adnotacje i nie ma pól formularza.
+
+## Powiązane narzędzia
+
+- [Sanityzuj PDF](./sanitize-pdf): spłaszcz formularze i usuń metadane, skrypty i więcej
+- [Rasteryzuj PDF](./rasterize-pdf): zamień na PDF oparty na obrazach, aby spłaszczyć maksymalnie
+- [Czcionka na krzywe](./font-to-outline): zamień czcionki na ścieżki wektorowe
+- [Szyfruj PDF](./protect-pdf): zablokuj spłaszczony PDF hasłem
diff --git a/docs/pl/tools/font-to-outline.md b/docs/pl/tools/font-to-outline.md
new file mode 100644
index 00000000..bdbc1a44
--- /dev/null
+++ b/docs/pl/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Czcionka na krzywe
+description: Zamień wszystkie czcionki PDF na kontury wektorowe, aby dokument wyglądał tak samo na każdym urządzeniu. Eliminuje problemy z zależnością od czcionek.
+---
+
+# Czcionka na krzywe
+
+Zamiana czcionek na krzywe przekształca każdy znak tekstu z glifu opartego na czcionce w ścieżkę wektorową. PDF przestaje zależeć od zainstalowanych czcionek: wygląda identycznie na każdym urządzeniu, w każdym systemie operacyjnym i na każdej drukarce. To standardowy krok w pracy przedprodukcyjnej (prepress).
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF.
+2. Kliknij **Konwertuj na krzywe**.
+3. Ghostscript zamienia cały tekst na ścieżki wektorowe.
+4. Pobierz wynik. Wiele plików da archiwum ZIP.
+
+Nie ma żadnych ustawień do skonfigurowania. Narzędzie używa Ghostscript (WebAssembly), aby w jednym przebiegu zamienić wszystkie odwołania do czcionek na ścieżki konturowe.
+
+## Co się zmienia
+
+- Znaki tekstu stają się krzywymi wektorowymi (ścieżkami béziera)
+- Osadzanie czcionek nie jest już potrzebne, a PDF jest samowystarczalny na poziomie glifów
+- Rozmiar pliku może wzrosnąć, ponieważ ścieżki wektorowe są zwykle większe niż odwołania do czcionek
+- Wygląd wizualny zostaje zachowany co do joty
+
+## Co tracisz
+
+- Zaznaczanie tekstu i kopiowanie
+- Możliwość przeszukiwania tekstu (Ctrl+F przestaje działać)
+- Możliwość edycji treści tekstu
+- Dostępność dla czytników ekranu
+
+## Zastosowania
+
+- Wysyłanie PDF-ów do drukarni, która wymaga czcionek zamienionych na krzywe
+- Udostępnianie dokumentów z własnymi lub licencjonowanymi czcionkami osobom, które ich nie mają
+- Zapobieganie podmianie czcionek, która zmienia wygląd dokumentu w innych systemach
+- Przygotowanie PDF-ów do grawerowania laserowego lub cięcia CNC, które wymagają wejścia wektorowego
+- Zapewnienie, że PDF z wieloma logotypami wyświetla się poprawnie na wszystkich platformach
+
+## Wskazówki
+
+- Zachowaj oryginalny PDF. Zamiana na krzywe jest nieodwracalna, nie da się zamienić ścieżek z powrotem na edytowalny tekst.
+- Jeśli tekst ma pozostać przeszukiwalny, rozważ zamiast tego narzędzie Rasteryzuj PDF, a następnie OCR.
+- PDF-y z krzywymi bywają większe. Jeśli rozmiar pliku ma znaczenie, uruchom potem Kompresuj PDF.
+
+## Powiązane narzędzia
+
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz formularze i adnotacje bez ruszania czcionek
+- [Rasteryzuj PDF](./rasterize-pdf): zamień na PDF oparty na obrazach zamiast konturów wektorowych
+- [Kompresuj PDF](./compress-pdf): zmniejsz rozmiar pliku po zamianie na krzywe
+- [PDF na PDF/A](./pdf-to-pdfa): konwertuj do archiwizacji po zapewnieniu niezależności od czcionek
diff --git a/docs/pl/tools/form-creator.md b/docs/pl/tools/form-creator.md
new file mode 100644
index 00000000..14f07650
--- /dev/null
+++ b/docs/pl/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Utwórz formularz PDF
+description: Twórz wypełnialne formularze PDF z polami tekstowymi, polami wyboru, listami rozwijanymi, przyciskami opcji i innymi elementami, przeciągając je i upuszczając.
+---
+
+# Utwórz formularz PDF
+
+Projektuj profesjonalne, wypełnialne formularze PDF od zera lub dodając pola do istniejącego PDF-a. Edytor wizualny pozwala przeciągać i upuszczać elementy formularza (pola tekstowe, pola wyboru, listy rozwijane, przyciski opcji, pola podpisu i inne) bezpośrednio na podglądy stron. Skonfiguruj właściwości pól, ustaw reguły warunkowej widoczności i wyeksportuj w pełni interaktywny formularz PDF.
+
+## Jak to działa
+
+1. Prześlij istniejący PDF **lub** kliknij **Utwórz pusty PDF**, aby zacząć od zera.
+2. Jeśli tworzysz pusty PDF, wybierz rozmiar strony (Letter, A4, A5, Legal, Tabloid, A3 lub własne wymiary).
+3. Otworzy się edytor formularzy z paskiem narzędzi z typami pól i obszarem podglądu strony.
+4. Wybierz typ pola na pasku narzędzi, a następnie kliknij stronę, aby je umieścić.
+5. Przeciągaj pola, aby zmienić ich położenie. Uchwytami zmiany rozmiaru dostosuj wymiary.
+6. Kliknij pole, aby otworzyć panel właściwości, w którym ustawisz nazwę pola, wartość domyślną, rozmiar czcionki, wyrównanie i więcej.
+7. Przechodź między stronami za pomocą kontrolek stron.
+8. Kliknij **Zapisz**, aby pobrać gotowy, wypełnialny PDF.
+
+## Funkcje
+
+- Umieszczanie pól metodą przeciągnij i upuść, z uchwytami do zmiany rozmiaru
+- Typy pól: pole tekstowe, wielowierszowe pole tekstowe, pole wyboru, lista rozwijana, przycisk opcji, podpis, data, liczba i kod kreskowy
+- Panel właściwości do konfigurowania nazwy, etykiety, wartości domyślnej, rozmiaru czcionki, koloru, wyrównania i walidacji każdego pola
+- Akcje pól i reguły warunkowej widoczności (pokazywanie lub ukrywanie pól na podstawie wartości innych pól)
+- Nawigacja po stronach w formularzach wielostronicowych
+- Wyodrębnianie istniejących pól: automatycznie wykrywa i importuje pola formularza z przesłanych PDF-ów
+- Obsługa zarówno przesłanych PDF-ów, jak i pustych stron jako podkładu formularza
+- Wiele gotowych rozmiarów stron oraz własne wymiary
+- Generowanie kodów kreskowych oparte na bwip-js
+- Zarządzanie grupami przycisków opcji
+
+## Opcje
+
+**Gotowe rozmiary stron (dla pustych PDF-ów):**
+
+- Letter (8,5" x 11")
+- A4 (210 mm x 297 mm)
+- A5 (148 mm x 210 mm)
+- Legal (8,5" x 14")
+- Tabloid (11" x 17")
+- A3 (297 mm x 420 mm)
+- Własny (podaj szerokość i wysokość)
+
+**Właściwości pól (zależą od typu pola):**
+
+- Nazwa, etykieta i tekst zastępczy
+- Wartość domyślna
+- Rodzina, rozmiar i kolor czcionki
+- Wyrównanie tekstu (do lewej, do środka, do prawej)
+- Przełącznik pola wymaganego
+- Przełącznik tylko do odczytu
+- Maksymalna długość pól tekstowych
+- Lista opcji dla list rozwijanych i przycisków opcji
+- Akcje warunkowej widoczności
+
+## Zastosowania
+
+- Budowanie formularzy wdrożeniowych dla pracowników z polami tekstowymi na dane osobowe i polami wyboru do potwierdzenia zapoznania się z zasadami
+- Tworzenie kwestionariuszy przyjęcia klienta z listami rozwijanymi do wyboru usługi
+- Projektowanie formularzy zamówień z polami obliczanymi i identyfikatorami w postaci kodów kreskowych
+- Budowanie list kontrolnych inspekcji z przyciskami opcji do ocen zaliczone/niezaliczone
+- Tworzenie ankiet z warunkowymi pytaniami uzupełniającymi, które pojawiają się zależnie od odpowiedzi
+
+## Wskazówki
+
+- Jeśli prześlesz istniejący PDF, narzędzie spróbuje wyodrębnić obecne w nim pola formularza, abyś mógł je edytować lub dodawać kolejne.
+- Użyj grupy przycisków opcji, aby tworzyć wzajemnie wykluczające się wybory. Pola w tej samej grupie opcji mają wspólną nazwę grupy.
+- Przetestuj formularz, pobierając go i otwierając w narzędziu [Wypełnianie formularzy PDF](./form-filler), aby sprawdzić zachowanie pól.
+
+## Powiązane narzędzia
+
+- [Wypełnianie formularzy PDF](./form-filler)
+- [Podpisz PDF](./sign-pdf)
+- [Edytor PDF](./edit-pdf)
diff --git a/docs/pl/tools/form-filler.md b/docs/pl/tools/form-filler.md
new file mode 100644
index 00000000..5f981a3e
--- /dev/null
+++ b/docs/pl/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Wypełnianie formularzy PDF
+description: Wypełniaj formularze PDF, także formularze XFA, bezpośrednio w przeglądarce za pomocą wbudowanej przeglądarki.
+---
+
+# Wypełnianie formularzy PDF
+
+Otwórz PDF z polami formularza i wypełnij go bezpośrednio we wbudowanej przeglądarce. Narzędzie obsługuje zarówno standardowe pola AcroForm, jak i starsze formularze XFA (XML Forms Architecture). Po wypełnieniu formularza pobierz gotową wersję jednym kliknięciem.
+
+## Jak to działa
+
+1. Prześlij PDF zawierający pola formularza.
+2. Dokument otworzy się w zintegrowanej przeglądarce PDF, która renderuje pola formularza jako interaktywne elementy.
+3. Klikaj pola tekstowe, pola wyboru, listy rozwijane i przyciski opcji, aby je wypełnić.
+4. Kliknij **Zapisz i pobierz wypełniony formularz**, aby otrzymać gotowy PDF.
+
+## Funkcje
+
+- Wbudowana przeglądarka PDF.js z pełną obsługą interakcji z polami formularza
+- Obsługa standardowych pól AcroForm (pola tekstowe, pola wyboru, listy rozwijane, przyciski opcji)
+- Obsługa formularzy XFA, czyli starszych formularzy opartych na XML
+- Automatyczne dopasowanie rozmiaru przeglądarki do wymiarów strony
+- Wyświetlanie nazwy i rozmiaru pliku
+
+## Opcje
+
+Nie ma dodatkowych opcji konfiguracji. Prześlij formularz, wypełnij go i pobierz.
+
+## Zastosowania
+
+- Wypełnianie formularzy podatkowych, wniosków ubezpieczeniowych i dokumentów urzędowych
+- Wypełnianie formularzy aplikacyjnych otrzymanych jako załączniki PDF
+- Wypełnianie formularzy wdrożeniowych dostawców i kwestionariuszy dla dostawców
+- Potwierdzanie list kontrolnych zgodności za pomocą pól wyboru
+- Wypełnianie formularzy medycznych przed wizytą
+
+## Wskazówki
+
+- XFA to starszy format obsługiwany tylko przez niektóre przeglądarki PDF. Jeśli otworzysz PDF z XFA w Chrome lub w większości innych narzędzi i zobaczysz puste strony, oznacza to, że te przeglądarki nie obsługują XFA. Wypełnianie formularzy w BentoPDF i Firefox obsługują XFA poprawnie.
+- W przypadku PDF-ów bez istniejących pól formularza najpierw dodaj pola narzędziem [Utwórz formularz PDF](./form-creator), a potem wypełnij je tutaj.
+- Przeglądarka automatycznie dopasowuje swój rozmiar do wymiarów strony PDF.
+
+## Powiązane narzędzia
+
+- [Utwórz formularz PDF](./form-creator)
+- [Podpisz PDF](./sign-pdf)
+- [Edytor PDF](./edit-pdf)
diff --git a/docs/pl/tools/header-footer.md b/docs/pl/tools/header-footer.md
new file mode 100644
index 00000000..f944de0f
--- /dev/null
+++ b/docs/pl/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Nagłówek i stopka
+description: Dodawaj własny tekst nagłówka i stopki na stronach PDF z dynamicznymi zmiennymi numeru strony.
+---
+
+# Nagłówek i stopka
+
+Dodaj tekst w sześciu miejscach na stronach PDF: nagłówek po lewej, nagłówek na środku, nagłówek po prawej, stopka po lewej, stopka na środku i stopka po prawej. Narzędzie obsługuje dynamiczne zmienne numeru strony i łącznej liczby stron, więc możesz tworzyć szablony typu "Strona 3 z 10", które aktualizują się automatycznie na każdej stronie.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Pojawi się panel opcji z kontrolkami formatowania i sześcioma polami tekstowymi.
+3. Wpisz żądany tekst w dowolnym miejscu nagłówka lub stopki.
+4. Użyj symboli zastępczych `{page}` i `{total}` do dynamicznej numeracji stron.
+5. Dostosuj rozmiar i kolor czcionki oraz opcjonalnie ogranicz zakres do określonych stron.
+6. Kliknij **Dodaj nagłówek i stopkę**, aby przetworzyć i pobrać plik.
+
+## Opcje
+
+- **Zakres stron**: opcjonalnie ogranicz, które strony dostają nagłówki i stopki. Zostaw puste, aby zastosować do wszystkich stron. Format: "1-3, 5" (zakresy oddzielone przecinkami).
+- **Rozmiar czcionki**: od 6 do 24 punktów. Domyślnie 10.
+- **Kolor czcionki**: wybierz dowolny kolor selektorem kolorów.
+- **Nagłówek po lewej / na środku / po prawej**: pola tekstowe dla górnej części każdej strony.
+- **Stopka po lewej / na środku / po prawej**: pola tekstowe dla dolnej części każdej strony.
+
+## Funkcje
+
+- Sześć niezależnych miejsc na tekst na każdej stronie
+- Dynamiczna zmienna `{page}` wstawiająca numer bieżącej strony
+- Dynamiczna zmienna `{total}` wstawiająca łączną liczbę stron
+- Filtrowanie zakresu stron, aby objąć tylko wybrane strony
+- Własny rozmiar i kolor czcionki
+- Czcionka Helvetica dla czystego, profesjonalnego wyglądu
+
+## Zastosowania
+
+- Dodanie "Strona {page} z {total}" na środku stopki raportu
+- Umieszczenie nazwy firmy w nagłówku po lewej i daty dokumentu w nagłówku po prawej
+- Dodawanie klauzul poufności w stopce dokumentów prawnych
+- Oznaczanie numerów rewizji dokumentu na wybranych zakresach stron
+
+## Wskazówki
+
+- Połącz `{page}` i `{total}` w jednym polu, aby uzyskać formaty takie jak "Strona {page} z {total}" lub "{page}/{total}".
+- Większość pól możesz zostawić pustych i wypełnić tylko potrzebne miejsca. Puste pola są po prostu pomijane.
+- W przypadku bardziej złożonych nagłówków z obrazami lub logo rozważ użycie narzędzia [Dodaj znak wodny](./add-watermark) ustawionego u góry strony.
+
+## Powiązane narzędzia
+
+- [Numery stron](./page-numbers)
+- [Dodaj znak wodny](./add-watermark)
+- [Numeracja Batesa](./bates-numbering)
diff --git a/docs/pl/tools/heic-to-pdf.md b/docs/pl/tools/heic-to-pdf.md
new file mode 100644
index 00000000..97f57ab1
--- /dev/null
+++ b/docs/pl/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC na PDF
+description: Konwertuj obrazy HEIC i HEIF z iPhone'ów i iPadów na PDF bezpośrednio w przeglądarce.
+---
+
+# HEIC na PDF
+
+Konwertuj obrazy HEIC/HEIF na PDF. HEIC to domyślny format zdjęć na iPhone'ach i iPadach od iOS 11. To narzędzie pozwala zamienić te zdjęcia w PDF-y bez instalowania programów na komputerze i bez wysyłania plików na serwer.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :----------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki HEIC/HEIF.
+2. Sprawdź listę plików i usuń niepotrzebne.
+3. Kliknij **Konwertuj na PDF**. Wynik zostanie pobrany jako `from_heic.pdf`.
+
+Każdy plik HEIC jest dekodowany biblioteką heic2any, która konwertuje go do PNG w jakości 92%. Następnie PNG jest osadzany w PDF za pomocą pdf-lib, a każdy obraz trafia na osobną stronę w pełnej rozdzielczości.
+
+## Opcje
+
+To narzędzie nie udostępnia dodatkowych ustawień. Obrazy HEIC są przed osadzeniem konwertowane do PNG w wysokiej jakości (0,92).
+
+## Zastosowania
+
+- Tworzenie PDF-a ze zdjęć z iPhone'a do załączenia do zgłoszenia ubezpieczeniowego lub raportu
+- Zamiana zdjęć HEIC z oferty nieruchomości w jeden dokument do wydruku
+- Zamiana zrzutów ekranu z iPada (format HEIF) w PDF do udostępnienia
+- Zbiorcza konwersja zdjęć z wakacji do dziennika podróży
+
+## Wskazówki
+
+- Dekodowanie HEIC odbywa się w całości w przeglądarce przy użyciu WebAssembly. Pierwsza konwersja może chwilę potrwać, gdy ładuje się dekoder.
+- Jeśli chcesz połączyć HEIC z innymi formatami obrazów (JPG, PNG itd.), użyj narzędzia [Obrazy do PDF](./image-to-pdf), które obsługuje HEIC razem ze wszystkimi innymi formatami.
+- Pliki HEIC z iPhone'ów często zawierają dane EXIF, w tym współrzędne GPS. Wynikowy PDF nie przenosi tych metadanych.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [JPG na PDF](./jpg-to-pdf)
+- [PNG na PDF](./png-to-pdf)
diff --git a/docs/pl/tools/image-to-pdf.md b/docs/pl/tools/image-to-pdf.md
new file mode 100644
index 00000000..b8d5d56b
--- /dev/null
+++ b/docs/pl/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Obrazy do PDF
+description: Konwertuj JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD i ponad 10 innych formatów obrazów w jeden plik PDF.
+---
+
+# Obrazy do PDF
+
+Uniwersalny konwerter obrazów na PDF. Prześlij obrazy w praktycznie dowolnym formacie i połącz je w jeden dokument PDF. Każdy obraz trafia na osobną stronę, o rozmiarze odpowiadającym oryginalnym wymiarom.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+To najszersza obsługa formatów spośród wszystkich konwerterów obrazów w BentoPDF. Jeśli potrzebujesz tylko jednego konkretnego formatu, użyj zamiast tego dedykowanego narzędzia.
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki obrazów. Możesz wybrać wiele plików naraz.
+2. Sprawdź listę plików. Usuń niepotrzebne ikoną kosza lub kliknij **Dodaj więcej plików**, aby dołączyć kolejne obrazy.
+3. Wybierz poziom **Jakości PDF** z listy rozwijanej.
+4. Kliknij **Konwertuj na PDF**. Narzędzie przetwarza obrazy silnikiem PyMuPDF i pobiera wynik jako `images_to_pdf.pdf`.
+
+## Opcje
+
+**Jakość PDF** określa kompresję obrazów stosowaną podczas osadzania ich w PDF:
+
+- **Wysoka jakość**: minimalna kompresja, większy plik. Najlepsza do druku lub archiwizacji.
+- **Średnia jakość** (domyślnie): zrównoważona kompresja. Dobra do większości zastosowań.
+- **Niska jakość**: agresywna kompresja, najmniejszy plik. Nadaje się do e-maila lub szybkiego udostępniania.
+
+Pliki HEIC i WebP są przed osadzeniem automatycznie konwertowane do PNG. Dzieje się to w tle i nie wymaga żadnych dodatkowych kroków.
+
+## Zastosowania
+
+- Łączenie zeskanowanych paragonów lub dokumentów z aparatu telefonu w jeden PDF
+- Tworzenie portfolio zdjęć lub lookbooka z obrazów w różnych formatach
+- Konwersja zdjęć z iPhone'a (HEIC) na PDF do udostępnienia bez instalowania programów na komputerze
+- Składanie makiet projektów z eksportów PSD i zrzutów ekranu w materiał dla klienta
+- Archiwizowanie folderu starszych formatów obrazów (PNM, JXR, JP2) jako jednego PDF-a
+
+## Wskazówki
+
+- Kolejność obrazów w PDF odpowiada ich kolejności na liście plików. Prześlij je w żądanej sekwencji.
+- Aby uzyskać jak najmniejszy plik, wybierz niską jakość. Różnica wizualna jest często pomijalna w skanach z dużą ilością tekstu.
+- Jeśli masz tylko jeden format obrazów, dedykowane konwertery (JPG na PDF, PNG na PDF itd.) dają ten sam wynik w prostszym interfejsie.
+
+## Powiązane narzędzia
+
+- [JPG na PDF](./jpg-to-pdf)
+- [PNG na PDF](./png-to-pdf)
+- [HEIC na PDF](./heic-to-pdf)
+- [WebP na PDF](./webp-to-pdf)
diff --git a/docs/pl/tools/index.md b/docs/pl/tools/index.md
new file mode 100644
index 00000000..55a606f4
--- /dev/null
+++ b/docs/pl/tools/index.md
@@ -0,0 +1,183 @@
+# Przegląd narzędzi
+
+BentoPDF oferuje **ponad 130 narzędzi** do pracy z PDF-ami. Wszystkie narzędzia działają w całości w przeglądarce: Twoje pliki nigdy nie opuszczają urządzenia.
+
+---
+
+## Edycja i adnotacje
+
+Modyfikuj, oznaczaj i ulepszaj dokumenty PDF za pomocą pełnego zestawu narzędzi do edycji.
+
+
+
+- [**Edytor PDF**](./edit-pdf): dodawaj adnotacje, podświetlenia, zaczernienia, komentarze, kształty i obrazy, przeszukuj i przeglądaj PDF-y.
+- [**Edytuj zakładki**](./bookmark): dodawaj, edytuj, importuj, usuwaj i wyodrębniaj zakładki PDF.
+- [**Spis treści**](./table-of-contents): wygeneruj stronę spisu treści z zakładek PDF.
+- [**Numery stron**](./page-numbers): wstaw numery stron do dokumentu.
+- [**Dodaj etykiety stron**](./add-page-labels): zastosuj etykiety stron PDF z cyframi rzymskimi, prefiksami i własnym początkiem numeracji.
+- [**Numeracja Batesa**](./bates-numbering): dodaj kolejne numery Batesa w jednym lub wielu plikach PDF.
+- [**Dodaj znak wodny**](./add-watermark): nałóż tekst lub obraz na strony PDF.
+- [**Nagłówek i Stopka**](./header-footer): dodaj tekst u góry i u dołu stron.
+- [**Odwróć kolory**](./invert-colors): stwórz wersję PDF-a w trybie ciemnym.
+- [**Efekt skanera**](./scanner-effect): spraw, by PDF wyglądał jak zeskanowany dokument.
+- [**Dostosuj kolory**](./adjust-colors): dopracuj jasność, kontrast, nasycenie i więcej.
+- [**Kolor tła**](./background-color): zmień kolor tła PDF-a.
+- [**Zmień kolor tekstu**](./text-color): zmień kolor tekstu w PDF-ie.
+- [**Podpisz PDF**](./sign-pdf): narysuj, wpisz lub prześlij swój podpis.
+- [**Dodaj pieczątki**](./add-stamps): dodaj pieczątki graficzne do PDF-a za pomocą paska narzędzi adnotacji.
+- [**Usuń adnotacje**](./remove-annotations): usuń komentarze, podświetlenia i linki.
+- [**Przytnij PDF**](./crop-pdf): przytnij marginesy każdej strony PDF-a.
+- [**Wypełnianie formularzy PDF**](./form-filler): wypełniaj formularze bezpośrednio w przeglądarce. Obsługuje też formularze XFA.
+- [**Utwórz formularz PDF**](./form-creator): twórz wypełnialne formularze PDF z polami tekstowymi przeciąganymi i upuszczanymi na stronę.
+- [**Usuń puste strony**](./remove-blank-pages): automatycznie wykrywaj i usuwaj puste strony.
+
+
+
+---
+
+## Konwersja na PDF
+
+Zamieniaj obrazy, dokumenty, e-booki i inne formaty plików na PDF.
+
+
+
+- [**Obrazy do PDF**](./image-to-pdf): konwertuj JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP i inne na PDF.
+- [**JPG na PDF**](./jpg-to-pdf): utwórz PDF z jednego lub więcej obrazów JPG.
+- [**PNG na PDF**](./png-to-pdf): utwórz PDF z jednego lub więcej obrazów PNG.
+- [**WebP na PDF**](./webp-to-pdf): utwórz PDF z jednego lub więcej obrazów WebP.
+- [**SVG na PDF**](./svg-to-pdf): utwórz PDF z jednego lub więcej obrazów SVG.
+- [**BMP na PDF**](./bmp-to-pdf): utwórz PDF z jednego lub więcej obrazów BMP.
+- [**HEIC na PDF**](./heic-to-pdf): utwórz PDF z jednego lub więcej obrazów HEIC.
+- [**TIFF na PDF**](./tiff-to-pdf): utwórz PDF z jednego lub więcej obrazów TIFF.
+- [**Tekst na PDF**](./txt-to-pdf): zamień zwykły plik tekstowy na PDF.
+- [**Markdown na PDF**](./markdown-to-pdf): konwertuj Markdown na PDF z podglądem na żywo i podświetlaniem składni.
+- [**JSON na PDF**](./json-to-pdf): konwertuj pliki JSON na format PDF.
+- [**ODT na PDF**](./odt-to-pdf): konwertuj pliki ODT (OpenDocument Text) na PDF.
+- [**CSV na PDF**](./csv-to-pdf): konwertuj arkusze CSV na PDF.
+- [**RTF na PDF**](./rtf-to-pdf): konwertuj dokumenty RTF (Rich Text Format) na PDF.
+- [**Word na PDF**](./word-to-pdf): konwertuj dokumenty Word (DOCX, DOC, ODT) na PDF.
+- [**Excel na PDF**](./excel-to-pdf): konwertuj arkusze Excel (XLSX, XLS, ODS) na PDF.
+- [**PowerPoint na PDF**](./powerpoint-to-pdf): konwertuj prezentacje PowerPoint (PPTX, PPT, ODP) na PDF.
+- [**XPS na PDF**](./xps-to-pdf): konwertuj dokumenty XPS/OXPS na PDF.
+- [**MOBI na PDF**](./mobi-to-pdf): konwertuj e-booki MOBI na PDF.
+- [**EPUB na PDF**](./epub-to-pdf): konwertuj e-booki EPUB na PDF.
+- [**FB2 na PDF**](./fb2-to-pdf): konwertuj e-booki FictionBook (FB2) na PDF.
+- [**CBZ na PDF**](./cbz-to-pdf): konwertuj archiwa komiksów (CBZ/CBR) na PDF.
+- [**WPD na PDF**](./wpd-to-pdf): konwertuj dokumenty WordPerfect (WPD) na PDF.
+- [**WPS na PDF**](./wps-to-pdf): konwertuj dokumenty WPS Office na PDF.
+- [**XML na PDF**](./xml-to-pdf): konwertuj dokumenty XML na PDF.
+- [**ODG na PDF**](./odg-to-pdf): konwertuj OpenDocument Graphics (ODG) na PDF.
+- [**ODS na PDF**](./ods-to-pdf): konwertuj OpenDocument Spreadsheet (ODS) na PDF.
+- [**ODP na PDF**](./odp-to-pdf): konwertuj OpenDocument Presentation (ODP) na PDF.
+- [**PUB na PDF**](./pub-to-pdf): konwertuj Microsoft Publisher (PUB) na PDF.
+- [**VSD na PDF**](./vsd-to-pdf): konwertuj Microsoft Visio (VSD, VSDX) na PDF.
+- [**PSD na PDF**](./psd-to-pdf): konwertuj pliki Adobe Photoshop (PSD) na PDF.
+- [**E-mail na PDF**](./email-to-pdf): konwertuj pliki e-mail (EML, MSG) na format PDF.
+
+
+
+---
+
+## Konwersja z PDF
+
+Wyodrębniaj zawartość PDF-ów do obrazów, dokumentów i formatów danych.
+
+
+
+- [**PDF na JPG**](./pdf-to-jpg): zamień każdą stronę PDF na obraz JPG.
+- [**PDF na PNG**](./pdf-to-png): zamień każdą stronę PDF na obraz PNG.
+- [**PDF na WebP**](./pdf-to-webp): zamień każdą stronę PDF na obraz WebP.
+- [**PDF na BMP**](./pdf-to-bmp): zamień każdą stronę PDF na obraz BMP.
+- [**PDF na TIFF**](./pdf-to-tiff): zamień każdą stronę PDF na obraz TIFF.
+- [**PDF na CBZ**](./pdf-to-cbz): zamień PDF na CBZ (archiwum komiksów) dla czytników komiksów i Calibre.
+- [**PDF na SVG**](./pdf-to-svg): zamień każdą stronę PDF na skalowalną grafikę wektorową.
+- [**PDF na CSV**](./pdf-to-csv): wyodrębnij tabele z PDF i zamień na format CSV.
+- [**PDF na Excel**](./pdf-to-excel): wyodrębnij tabele z PDF i zamień na Excel (XLSX).
+- [**PDF na odcienie szarości**](./pdf-to-greyscale): zamień wszystkie kolory na czerń i biel.
+- [**PDF na JSON**](./pdf-to-json): konwertuj pliki PDF na format JSON.
+- [**PDF na Word**](./pdf-to-word): konwertuj pliki PDF na edytowalne dokumenty Word.
+- [**Wyodrębnij obrazy**](./extract-images): wyodrębnij wszystkie osadzone obrazy z plików PDF.
+- [**PDF na Markdown**](./pdf-to-markdown): konwertuj tekst i tabele PDF na format Markdown.
+- [**Przygotuj PDF dla AI**](./prepare-pdf-for-ai): wyodrębnij zawartość PDF jako JSON LlamaIndex dla potoków RAG/LLM.
+- [**PDF na Tekst**](./pdf-to-text): wyodrębnij tekst z plików PDF i zapisz jako zwykły tekst.
+- [**Wyodrębnij tabele PDF**](./extract-tables): wyodrębnij tabele z PDF-ów jako CSV, JSON lub Markdown.
+
+
+
+---
+
+## Organizacja i zarządzanie
+
+Zmieniaj kolejność, łącz, dziel i zarządzaj stronami i plikami PDF.
+
+
+
+- [**Kreator przepływów PDF**](./pdf-workflow): twórz własne potoki przetwarzania PDF w wizualnym edytorze węzłów.
+- [**Wielofunkcyjne narzędzie PDF**](./pdf-multi-tool): w pełni funkcjonalny edytor PDF z zarządzaniem stronami.
+- [**OCR PDF**](./ocr-pdf): spraw, by PDF był przeszukiwalny i kopiowalny.
+- [**Połącz PDF**](./merge-pdf): połącz wiele PDF-ów w jeden plik.
+- [**Naprzemienne i mieszane strony**](./alternate-merge): łącz PDF-y, przeplatając strony z każdego z nich.
+- [**Sortowanie skanu dwustronnego**](./duplex-collate): ułóż bloki skanów przodu i tyłu w poprawnej kolejności stron.
+- [**Duplikuj i organizuj**](./organize-pdf): duplikuj, zmieniaj kolejność i usuwaj strony.
+- [**Dodaj załączniki**](./add-attachments): osadź jeden lub więcej plików w PDF-ie.
+- [**Wyodrębnij załączniki**](./extract-attachments): wyodrębnij wszystkie osadzone pliki z PDF-ów jako ZIP.
+- [**Edytuj załączniki**](./edit-attachments): wyświetl lub usuń załączniki w PDF-ie.
+- [**Warstwy PDF (OCG)**](./pdf-layers): wyświetlaj, przełączaj, dodawaj i usuwaj warstwy OCG w PDF-ie.
+- [**Podziel PDF**](./split-pdf): wyodrębnij zakres stron do nowego PDF-a.
+- [**Podziel strony**](./divide-pages): dziel strony poziomo lub pionowo.
+- [**Wyodrębnij strony**](./extract-pages): zapisz wybrane strony jako nowe pliki.
+- [**Usuń strony**](./delete-pages): usuń wybrane strony z dokumentu.
+- [**Dodaj pustą stronę**](./add-blank-page): wstaw pustą stronę w dowolnym miejscu PDF-a.
+- [**Odwróć strony**](./reverse-pages): odwróć kolejność wszystkich stron dokumentu.
+- [**Obróć PDF**](./rotate-pdf): obracaj strony co 90 stopni.
+- [**Obróć o niestandardowy kąt**](./rotate-custom): obracaj strony o dowolny kąt.
+- [**PDF N-Up**](./n-up-pdf): ułóż wiele stron na jednym arkuszu.
+- [**Broszura PDF**](./pdf-booklet): przestaw strony do dwustronnego druku broszury.
+- [**Połącz w jedną stronę**](./combine-single-page): zszyj wszystkie strony w jedną ciągłą przewijaną stronę.
+- [**Wyświetl metadane**](./view-metadata): sprawdź ukryte właściwości PDF-a.
+- [**Edytuj metadane**](./edit-metadata): zmień autora, tytuł i inne właściwości.
+- [**PDF na ZIP**](./pdf-to-zip): spakuj wiele plików PDF do archiwum ZIP.
+- [**Porównaj PDF**](./compare-pdfs): porównaj dwa PDF-y obok siebie.
+- [**Plakatowanie PDF**](./posterize-pdf): podziel dużą stronę na wiele mniejszych stron.
+
+
+
+---
+
+## Optymalizacja i naprawa
+
+Kompresuj, naprawiaj i optymalizuj PDF-y pod kątem wydajności i zgodności.
+
+
+
+- [**Kompresuj PDF**](./compress-pdf): zmniejsz rozmiar pliku PDF.
+- [**PDF na PDF/A**](./pdf-to-pdfa): konwertuj PDF na PDF/A do długoterminowej archiwizacji.
+- [**Napraw rozmiar strony**](./fix-page-size): ujednolić wszystkie strony do jednego rozmiaru.
+- [**Linearyzuj PDF**](./linearize-pdf): zoptymalizuj PDF pod kątem szybkiego wyświetlania w sieci.
+- [**Wymiary strony**](./page-dimensions): analizuj rozmiar strony, orientację i jednostki.
+- [**Usuń restrykcje**](./remove-restrictions): usuń ochronę hasłem i ograniczenia zabezpieczeń.
+- [**Napraw PDF**](./repair-pdf): odzyskaj dane z uszkodzonych plików PDF.
+- [**Rasteryzuj PDF**](./rasterize-pdf): zamień PDF na PDF oparty na obrazach. Spłaszcza warstwy i usuwa zaznaczalny tekst.
+- [**Wyprostuj PDF**](./deskew-pdf): automatycznie prostuj przekrzywione zeskanowane strony za pomocą OpenCV.
+- [**Czcionka na krzywe**](./font-to-outline): zamień wszystkie czcionki na kontury wektorowe dla spójnego renderowania.
+
+
+
+---
+
+## Zabezpieczanie PDF
+
+Chroń, szyfruj i kontroluj dostęp do dokumentów PDF.
+
+
+
+- [**Szyfruj PDF**](./protect-pdf): zablokuj PDF, dodając hasło.
+- [**Sanityzuj PDF**](./sanitize-pdf): usuń metadane, adnotacje, skrypty i więcej.
+- [**Odszyfruj PDF**](./unlock-pdf): odblokuj PDF, usuwając ochronę hasłem.
+- [**Spłaszcz PDF**](./flatten-pdf): spraw, by pola formularzy i adnotacje nie były edytowalne.
+- [**Usuń metadane**](./remove-metadata): usuń ukryte dane z PDF-a.
+- [**Zmień uprawnienia**](./change-permissions): ustaw lub zmień uprawnienia użytkownika w PDF-ie.
+- [**Podpis cyfrowy PDF**](./digital-sign-pdf): dodaj kryptograficzny podpis cyfrowy z użyciem certyfikatów X.509.
+- [**Zweryfikuj podpis PDF**](./validate-signature-pdf): weryfikuj podpisy cyfrowe i wyświetlaj szczegóły certyfikatu.
+
+
diff --git a/docs/pl/tools/invert-colors.md b/docs/pl/tools/invert-colors.md
new file mode 100644
index 00000000..d6011b66
--- /dev/null
+++ b/docs/pl/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Odwróć kolory
+description: Odwróć wszystkie kolory w PDF, aby stworzyć ciemną wersję dowolnego dokumentu.
+---
+
+# Odwróć kolory
+
+Zamień każdy kolor w PDF na jego odwrotność. Białe tła stają się czarne, czarny tekst staje się biały, a wszystkie pozostałe kolory przechodzą na wartości dopełniające. To najszybszy sposób na stworzenie wersji "w trybie ciemnym" dowolnego PDF-a.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Kliknij **Odwróć kolory**, aby przetworzyć.
+3. Odwrócony PDF zostanie pobrany automatycznie.
+
+Nie ma dodatkowych ustawień. Narzędzie renderuje każdą stronę jako obraz, odwraca kolory wszystkich pikseli i składa wynik w nowy PDF.
+
+## Funkcje
+
+- Odwracanie kolorów wszystkich stron jednym kliknięciem
+- Przetwarzanie każdej strony dokumentu
+- Zachowanie oryginalnych wymiarów i układu stron
+- Działa z dowolnym PDF-em, niezależnie od typu zawartości (tekst, obrazy, mieszana)
+
+## Zastosowania
+
+- Tworzenie wersji w trybie ciemnym podręczników lub instrukcji do wygodnego czytania wieczorem
+- Przygotowywanie wysokokontrastowych wersji dokumentów na potrzeby dostępności
+- Odwracanie zeskanowanych dokumentów, które zostały zeskanowane z błędną ekspozycją
+- Generowanie negatywów PDF-ów z dużą ilością obrazów do analizy wizualnej
+
+## Wskazówki
+
+- Ponieważ narzędzie rasteryzuje strony, aby zastosować efekt, wynik jest oparty na obrazach. Tekst nie będzie już zaznaczalny ani przeszukiwalny. Jeśli po odwróceniu potrzebujesz przeszukiwalnego tekstu, przepuść wynik przez narzędzie OCR.
+- Do bardziej szczegółowych korekt kolorów (jasność, kontrast, nasycenie) użyj zamiast tego narzędzia [Dostosuj kolory](./adjust-colors).
+- Duże PDF-y z wieloma stronami mogą być przetwarzane dłużej, ponieważ każda strona jest osobno renderowana i odwracana.
+
+## Powiązane narzędzia
+
+- [Dostosuj kolory](./adjust-colors)
+- [Kolor tła](./background-color)
+- [Efekt skanera](./scanner-effect)
diff --git a/docs/pl/tools/jpg-to-pdf.md b/docs/pl/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..d45a715c
--- /dev/null
+++ b/docs/pl/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG na PDF
+description: Konwertuj jeden lub więcej obrazów JPG, JPEG i JPEG 2000 w jeden plik PDF bezpośrednio w przeglądarce.
+---
+
+# JPG na PDF
+
+Zamień obrazy JPG w czysty PDF. Prześlij jeden plik lub wiele JPG-ów naraz: każdy obraz staje się pełnowymiarową stroną dokumentu wynikowego.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki JPG. Możesz wybrać wiele plików.
+2. Sprawdź przesłane pliki. Ikoną kosza usuniesz pojedyncze pliki, a przyciskiem **Dodaj więcej plików** dopiszesz kolejne do listy.
+3. Wybierz poziom **Jakości PDF**.
+4. Kliknij **Konwertuj na PDF**. Narzędzie kompresuje obrazy zgodnie z wybraną jakością, konwertuje je silnikiem PyMuPDF i pobiera plik `from_jpgs.pdf`.
+
+## Opcje
+
+**Jakość PDF** reguluje kompresję stosowaną do każdego obrazu przed osadzeniem w PDF:
+
+- **Wysoka jakość**: zachowuje maksimum szczegółów. Użyj do fotografii lub druku.
+- **Średnia jakość** (domyślnie): dobra równowaga między wyrazistością a rozmiarem pliku.
+- **Niska jakość**: agresywna kompresja dla najmniejszego pliku wynikowego.
+
+## Zastosowania
+
+- Konwersja zeskanowanych dokumentów zapisanych jako JPG w jeden PDF do złożenia
+- Pakowanie zdjęć produktów w katalog dla klientów
+- Zamiana obrazów medycznych lub satelitarnych JPEG 2000 w przenośny PDF
+- Tworzenie albumu zdjęć do druku z eksportów z aparatu
+
+## Wskazówki
+
+- Pliki JPEG 2000 (`.jp2`, `.jpx`) są w pełni obsługiwane, nie tylko standardowy JPEG. Przydaje się to w obrazowaniu medycznym i danych geoprzestrzennych.
+- Jeśli Twoje JPG-i pochodzą z aparatu telefonu, jakość średnia zwykle daje plik o 40-60% mniejszy niż wysoka, bez widocznej różnicy na ekranie.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [PNG na PDF](./png-to-pdf)
+- [WebP na PDF](./webp-to-pdf)
diff --git a/docs/pl/tools/json-to-pdf.md b/docs/pl/tools/json-to-pdf.md
new file mode 100644
index 00000000..faa008c4
--- /dev/null
+++ b/docs/pl/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON na PDF
+description: Odtwarzaj pliki PDF z formatu JSON używanego przez BentoPDF. Konwertuj eksporty JSON z powrotem na oryginalne dokumenty PDF.
+---
+
+# JSON na PDF
+
+Odtwarzaj dokumenty PDF z plików JSON utworzonych wcześniej narzędziem **PDF na JSON** w BentoPDF. To narzędzie do konwersji w obie strony: bierze ustrukturyzowaną reprezentację JSON dokumentu PDF i odbudowuje oryginalny dokument.
+
+::: warning
+To narzędzie przyjmuje tylko pliki JSON utworzone przez konwerter PDF na JSON w BentoPDF. Standardowe pliki JSON z API, baz danych lub innych narzędzi nie są obsługiwane.
+:::
+
+## Obsługiwane formaty
+
+| Wejście | Opis |
+| :------ | :---------------------------------------------------------- |
+| `.json` | Pliki JSON wyeksportowane narzędziem PDF na JSON z BentoPDF |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść jeden lub więcej plików JSON.
+2. Lista plików pokazuje każdy wybrany plik wraz z jego rozmiarem.
+3. Kliknij **Konwertuj na PDF**. Narzędzie przetwarza wszystkie pliki za pomocą Web Workera i silnika CPDF.
+4. Wynik zostanie pobrany jako `jsons-to-pdf.zip`, zawierający po jednym PDF-ie na każdy plik JSON.
+
+Konwersja działa w tle w Web Workerze, więc interfejs pozostaje responsywny nawet przy dużych plikach.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Struktura JSON w pełni określa wynikowy PDF.
+
+## Wynik
+
+Przy konwersji wielu plików JSON wyniki są dostarczane jako archiwum ZIP. Każdy PDF ma nazwę pliku źródłowego JSON (np. `report.json` zmienia się w `report.pdf`).
+
+## Zastosowania
+
+- Odtwarzanie PDF-ów z kopii zapasowej lub archiwum opartego na JSON
+- Przepuszczenie PDF-a przez JSON w celu inspekcji, a potem z powrotem do PDF
+- Odbudowa dokumentów po programowych modyfikacjach struktury JSON
+- Sprawdzenie, czy eksport PDF na JSON uchwycił całą zawartość dokumentu, przez przekonwertowanie go z powrotem
+
+## Wskazówki
+
+- Jeśli chcesz zamienić dowolne dane JSON (np. odpowiedzi API lub pliki konfiguracyjne) na sformatowany PDF, lepiej sprawdzi się narzędzie [Tekst na PDF](./txt-to-pdf). Wklej JSON jako tekst, a zostanie wyrenderowany z odpowiednim formatowaniem.
+- Aby to narzędzie działało, silnik CPDF WebAssembly musi być dostępny. Instancje self-hosted wymagają skonfigurowanych plików CPDF WASM.
+
+## Powiązane narzędzia
+
+- [Tekst na PDF](./txt-to-pdf)
+- [Markdown na PDF](./markdown-to-pdf)
+- [CSV na PDF](./csv-to-pdf)
diff --git a/docs/pl/tools/linearize-pdf.md b/docs/pl/tools/linearize-pdf.md
new file mode 100644
index 00000000..e1e143ed
--- /dev/null
+++ b/docs/pl/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Linearyzuj PDF
+description: Optymalizuj pliki PDF pod kątem szybkiego wyświetlania w sieci dzięki stopniowemu ładowaniu. Znane też jako optymalizacja "Szybki podgląd w sieci Web".
+---
+
+# Linearyzuj PDF
+
+Linearyzacja zmienia strukturę PDF-a tak, aby pierwszą stronę można było wyświetlić, zanim cały plik zostanie pobrany. Adobe nazywa to "Szybkim podglądem w sieci Web". Jeśli udostępniasz PDF-y na stronie internetowej lub przez portal dokumentów, linearyzacja sprawia, że otwierają się wyraźnie szybciej.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF.
+2. Kliknij **Linearyzuj PDF-y**.
+3. Pobierz wyniki jako archiwum ZIP zawierające wszystkie zlinearyzowane pliki.
+
+Nie ma ustawień do skonfigurowania. Narzędzie używa flagi `--linearize` programu QPDF, która porządkuje wewnętrzną strukturę PDF-a bez zmiany jego zawartości wizualnej.
+
+## Co robi linearyzacja
+
+- Zmienia kolejność obiektów PDF tak, aby dane pierwszej strony znalazły się na początku pliku
+- Dodaje słownik linearyzacji i tablice wskazówek, aby przeglądarki wiedziały, gdzie znaleźć każdą stronę
+- Umożliwia żądania zakresów bajtów: przeglądarka może pobrać tylko pierwszą stronę bez pobierania całego pliku
+- Porządkuje tablicę odwołań krzyżowych dla wydajnego dostępu swobodnego
+
+## Funkcje
+
+- Wsadowe przetwarzanie wielu PDF-ów w jednej operacji
+- Wynik zachowuje całą zawartość, czcionki, obrazy i elementy interaktywne
+- Używa QPDF (WebAssembly) do niezawodnej linearyzacji zgodnej ze standardami
+- Wyniki są pakowane do ZIP dla wygodnego pobrania
+
+## Zastosowania
+
+- Udostępnianie raportów PDF na stronie, gdzie użytkownicy oczekują natychmiastowego wyświetlenia strony
+- Osadzanie PDF-ów w aplikacjach webowych z przeglądarkami w przeglądarce
+- Publikowanie katalogów lub instrukcji PDF dostępnych przez wolne łącza mobilne
+- Przygotowanie dokumentów dla sieci dostarczania treści (CDN), które obsługują zakresy bajtów
+
+## Wskazówki
+
+- Linearyzuj po zakończeniu wszystkich innych edycji. Każda późniejsza modyfikacja (łączenie, dodawanie stron) zepsuje linearyzację.
+- Połącz z narzędziem Kompresuj PDF, aby uzyskać najmniejsze i najszybciej ładujące się PDF-y.
+- Linearyzacja dodaje niewielki narzut do rozmiaru pliku (zwykle poniżej 1%).
+
+## Powiązane narzędzia
+
+- [Kompresuj PDF](./compress-pdf): zmniejsz rozmiar pliku przed linearyzacją
+- [Napraw PDF](./repair-pdf): napraw problemy strukturalne uniemożliwiające linearyzację
+- [Usuń metadane](./remove-metadata): usuń metadane przed publikacją w sieci
diff --git a/docs/pl/tools/markdown-to-pdf.md b/docs/pl/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..a7470265
--- /dev/null
+++ b/docs/pl/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown na PDF
+description: Pisz lub wklej Markdown i wyeksportuj go jako profesjonalnie sformatowany PDF z podglądem na żywo i podświetlaniem składni.
+---
+
+# Markdown na PDF
+
+W pełni funkcjonalny edytor Markdown z podglądem na żywo i eksportem do PDF jednym kliknięciem. Pisz od zera, prześlij istniejący plik `.md` lub wklej treść ze schowka. Edytor renderuje Markdown w czasie rzeczywistym i eksportuje sformatowany PDF za pomocą wbudowanego silnika drukowania przeglądarki.
+
+## Obsługiwane formaty
+
+| Wejście | Opis |
+| :------------------------ | :---------------------------- |
+| Pliki `.md` | Prześlij przyciskiem Prześlij |
+| Bezpośrednie wprowadzanie | Wpisz lub wklej w edytorze |
+
+## Jak to działa
+
+1. Otwórz narzędzie Markdown na PDF. Edytor ładuje się z widokiem podzielonym: źródło Markdown po lewej, wyrenderowany podgląd po prawej.
+2. Napisz Markdown, wklej go lub kliknij **Prześlij**, aby wczytać plik `.md`.
+3. Przełączaj motyw jasny i ciemny suwakiem motywu na pasku narzędzi.
+4. Kliknij **Eksportuj PDF** (lub naciśnij `Ctrl/Cmd + S`), aby wygenerować PDF przez okno drukowania przeglądarki.
+
+## Funkcje
+
+Edytor obsługuje szeroki zestaw funkcji Markdown wykraczający poza podstawy:
+
+- **Standardowy Markdown**: nagłówki, pogrubienie, kursywa, linki, obrazy, listy, cytaty, linie poziome
+- **Bloki kodu** z podświetlaniem składni dla ponad 15 języków (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash i inne)
+- **Diagramy Mermaid**: schematy blokowe, diagramy sekwencji, diagramy ER i inne typy wykresów Mermaid renderują się bezpośrednio w podglądzie
+- **Tabele** w standardowej składni tabel Markdown
+- **Listy zadań** z polami wyboru
+- **Przypisy**, **indeks dolny**, **indeks górny**
+- **Listy definicji**, **skróty**
+- Obsługa **emoji** (`:smile:` renderuje się jako emoji)
+- **Wyróżnienia** (`==marked text==`) i **wstawienia** (`++inserted text++`)
+- **Automatyczne linki**: zwykłe adresy URL są zamieniane na klikalne linki
+- Generowanie **spisu treści**
+- **Linki kotwic** w nagłówkach
+
+## Zastosowania
+
+- Pisanie dokumentacji projektu i eksport dopracowanego PDF-a dla interesariuszy
+- Tworzenie raportów technicznych z przykładami kodu i diagramami architektury Mermaid
+- Konwersja README z GitHub do PDF na potrzeby użycia offline lub druku
+- Przygotowywanie propozycji lub specyfikacji z listami zadań i tabelami
+- Generowanie stylizowanych materiałów dla uczestników z notatek z wykładu napisanych w Markdown
+
+## Wskazówki
+
+- PDF powstaje za pomocą funkcji drukowania do PDF w przeglądarce. W Chrome możesz dostosować marginesy i skalę w oknie drukowania przed zapisem.
+- Diagramy Mermaid renderują się w podglądzie, ale przy pierwszym użyciu może minąć chwila, zanim się zainicjalizują.
+- Użyj skrótu `Ctrl/Cmd + S`, aby wyeksportować bez sięgania po przycisk.
+
+## Powiązane narzędzia
+
+- [Tekst na PDF](./txt-to-pdf)
+- [Word na PDF](./word-to-pdf)
+- [JSON na PDF](./json-to-pdf)
diff --git a/docs/pl/tools/merge-pdf.md b/docs/pl/tools/merge-pdf.md
new file mode 100644
index 00000000..50b838d1
--- /dev/null
+++ b/docs/pl/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Połącz PDF
+description: Połącz wiele plików PDF w jeden dokument z zmianą kolejności metodą przeciągnij i upuść oraz kontrolą na poziomie stron.
+---
+
+# Połącz PDF
+
+Połącz wiele plików PDF w jeden dokument. Możesz scalać całe pliki w wybranej kolejności albo przełączyć się na Tryb stron, aby mieć szczegółową kontrolę nad pojedynczymi stronami z każdego przesłanego PDF-a.
+
+## Jak to działa
+
+1. Prześlij dwa lub więcej plików PDF, klikając strefę upuszczania lub przeciągając je do niej.
+2. Wybierz między **Trybem plików** a **Trybem stron** przełącznikiem u góry.
+3. W Trybie plików przeciągaj pliki, aby zmienić ich kolejność, i opcjonalnie podaj zakresy stron (np. `1-3, 5`) dla każdego pliku. Zostaw zakres pusty, aby uwzględnić wszystkie strony.
+4. W Trybie stron przeciągaj miniatury pojedynczych stron, aby ułożyć dokładną sekwencję stron.
+5. Kliknij **Połącz PDF-y**, aby połączyć wszystko w jeden plik. Połączony PDF zostanie pobrany automatycznie.
+
+## Funkcje
+
+- Dwa tryby łączenia: Tryb plików do szybkiego łączenia całych plików, Tryb stron do kontroli nad każdą stroną
+- Zmiana kolejności metodą przeciągnij i upuść w obu trybach, z płynnymi animacjami
+- Składnia zakresów stron (np. `1-3, 5, 8-10`) pozwala wybierać strony bez przełączania na Tryb stron
+- Miniatury stron ładowane na żądanie utrzymują responsywność interfejsu nawet przy dużych dokumentach
+- Brak limitu liczby plików ani łącznej liczby stron
+- Zachowuje oryginalną jakość PDF bez ponownego kodowania
+
+## Opcje
+
+| Opcja | Opis |
+| --------------- | ---------------------------------------------------------------------------------------------------------- |
+| **Tryb plików** | Łącz całe pliki w wybranej kolejności, z opcjonalnymi filtrami zakresu stron dla każdego pliku |
+| **Tryb stron** | Wizualna siatka wszystkich stron ze wszystkich plików: przeciągaj miniatury, aby ułożyć dokładną sekwencję |
+| **Pole stron** | Pole tekstowe dla każdego pliku przyjmujące zakresy jak `1-3, 5`, aby uwzględnić tylko wybrane strony |
+
+## Zastosowania
+
+- Łączenie osobnych PDF-ów z rozdziałami w jedną książkę lub raport
+- Łączenie listu motywacyjnego i CV w jeden dokument aplikacyjny
+- Pobieranie wybranych stron z wielu dokumentów źródłowych do jednego pliku zbiorczego
+- Składanie zeskanowanych paragonów lub faktur w jeden PDF archiwalny
+- Tworzenie materiałów do prezentacji ze slajdów z wielu pokazów
+
+## Wskazówki
+
+- Użyj Trybu stron, gdy chcesz przeplatać strony z różnych plików zamiast dopisywać jeden plik po drugim.
+- Możesz dodać więcej plików po pierwszym przesłaniu przyciskiem **Dodaj więcej plików**, bez utraty bieżącego układu.
+- Zakresy stron są numerowane od 1, więc `1` oznacza pierwszą stronę danego pliku.
+
+## Powiązane narzędzia
+
+- [Podziel PDF](./split-pdf)
+- [Duplikuj i organizuj](./organize-pdf)
+- [Naprzemienne i mieszane strony](./alternate-merge)
+- [Usuń strony](./delete-pages)
diff --git a/docs/pl/tools/mobi-to-pdf.md b/docs/pl/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..07f19c47
--- /dev/null
+++ b/docs/pl/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI na PDF
+description: Konwertuj e-booki MOBI na PDF bezpośrednio w przeglądarce. Za darmo, prywatnie, bez wysyłania plików.
+---
+
+# MOBI na PDF
+
+Konwertuj e-booki Amazon Kindle MOBI na dokumenty PDF. Pliki MOBI są związane z urządzeniami i aplikacjami Kindle, przez co trudno je czytać gdzie indziej. Konwersja do PDF daje przenośną wersję, którą otworzysz na dowolnym urządzeniu lub wydrukujesz.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----- | :----------- | :---------------------------------- |
+| MOBI | `.mobi` | Format e-booków Kindle (Mobipocket) |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść jeden lub więcej plików MOBI.
+2. Sprawdź listę plików. Usuń niepotrzebne ikoną kosza lub użyj **Dodaj więcej plików**, aby dołączyć kolejne e-booki.
+3. Kliknij **Konwertuj na PDF**. Silnik PyMuPDF analizuje strukturę MOBI i renderuje każdą stronę jako zawartość PDF.
+4. Pojedynczy plik zostanie pobrany jako PDF. Przy konwersji wielu plików otrzymasz archiwum ZIP o nazwie `mobi-converted.zip`.
+
+## Opcje
+
+Nie są potrzebne żadne dodatkowe ustawienia. Konwersja zachowuje treść tekstową, formatowanie i osadzone obrazy z oryginalnego pliku MOBI.
+
+## Zastosowania
+
+- Czytanie treści kupionych w Kindle na czytniku innym niż Kindle, który obsługuje tylko PDF
+- Drukowanie rozdziałów e-booka do nauki lub adnotacji offline
+- Archiwizowanie osobistej biblioteki e-booków w uniwersalnym formacie
+- Udostępnianie fragmentów osobie, która nie ma aplikacji Kindle
+
+## Wskazówki
+
+- Plików MOBI chronionych DRM nie można konwertować. Narzędzie działa tylko z plikami MOBI bez DRM.
+- Duże e-booki z wieloma osadzonymi obrazami mogą być przetwarzane o kilka sekund dłużej, ponieważ wszystko dzieje się w przeglądarce.
+
+## Powiązane narzędzia
+
+- [EPUB na PDF](./epub-to-pdf)
+- [FB2 na PDF](./fb2-to-pdf)
+- [CBZ na PDF](./cbz-to-pdf)
diff --git a/docs/pl/tools/n-up-pdf.md b/docs/pl/tools/n-up-pdf.md
new file mode 100644
index 00000000..727de7c1
--- /dev/null
+++ b/docs/pl/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF N-Up
+description: Ułóż wiele stron PDF na jednym arkuszu w siatce, aby drukować oszczędnie.
+---
+
+# PDF N-Up
+
+Umieść wiele stron na jednym arkuszu w układzie siatki. Zmniejsza to liczbę drukowanych stron, mieszcząc 2, 4, 6, 8, 9 lub 16 stron na arkusz. Narzędzie zajmuje się skalowaniem, pozycjonowaniem i opcjonalną konfiguracją rozmiaru strony.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Wybierz liczbę stron na arkusz (wartość "N"): 2, 4, 6, 8, 9 lub 16.
+3. Wybierz rozmiar strony wyjściowej (domyślnie A4) i orientację.
+4. Opcjonalnie skonfiguruj odstępy, kolor obramowania i kolor tła.
+5. Kliknij przycisk przetwarzania. Narzędzie skaluje każdą stronę i układa je na nowych arkuszach.
+
+## Funkcje
+
+- Układy siatki: 2-up, 4-up, 6-up, 8-up, 9-up i 16-up
+- Konfigurowalny rozmiar i orientacja strony wyjściowej
+- Opcjonalne odstępy między ułożonymi stronami
+- Ustawienia koloru tła i obramowania
+- Zachowuje proporcje oryginalnych stron podczas skalowania do dopasowania
+
+## Opcje
+
+| Opcja | Opis |
+| --------------------- | ------------------------------------------------------------------------------------------- |
+| **Stron na arkusz** | Liczba oryginalnych stron mieszczących się na każdej stronie wyjściowej (2, 4, 6, 8, 9, 16) |
+| **Rozmiar strony** | Rozmiar arkusza wyjściowego (A4, Letter, Legal itd.) |
+| **Orientacja** | Pionowa lub pozioma dla arkusza wyjściowego |
+| **Odstępy** | Przerwa w punktach między ułożonymi stronami |
+| **Kolor tła** | Kolor wypełnienia tła arkusza wyjściowego |
+| **Kolor obramowania** | Kolor obramowań wokół każdej ułożonej strony |
+
+## Zastosowania
+
+- Drukowanie materiałów z 4 slajdami na stronie, aby oszczędzać papier
+- Tworzenie arkuszy do nauki z wieloma stronami referencyjnymi na jednym arkuszu
+- Wytwarzanie zwartych archiwów dokumentów do segregowania
+- Generowanie arkuszy z miniaturami przeglądowymi długiego dokumentu
+
+## Wskazówki
+
+- Orientacja pozioma często lepiej sprawdza się w układach 2-up, a pionowa zwykle najlepiej w układach 4-up i większych.
+- Zwiększenie odstępów poprawia czytelność, ale zmniejsza dostępny obszar dla każdej ułożonej strony.
+- Operację odwrotną (podział jednej strony na wiele) znajdziesz w narzędziu [Plakatowanie PDF](./posterize-pdf).
+
+## Powiązane narzędzia
+
+- [Plakatowanie PDF](./posterize-pdf)
+- [Broszura PDF](./pdf-booklet)
+- [Połącz w jedną stronę](./combine-single-page)
diff --git a/docs/pl/tools/ocr-pdf.md b/docs/pl/tools/ocr-pdf.md
new file mode 100644
index 00000000..003a2c49
--- /dev/null
+++ b/docs/pl/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR PDF
+description: Spraw, by zeskanowane PDF-y były przeszukiwalne i kopiowalne dzięki Tesseract OCR z obsługą wielu języków i filtrowaniem znaków.
+---
+
+# OCR PDF
+
+Zamień zeskanowane dokumenty w przeszukiwalne, kopiowalne PDF-y. Narzędzie używa Tesseract OCR do rozpoznawania tekstu na obrazach i nakłada niewidoczną warstwę tekstową na oryginalne strony, zachowując ich wygląd i czyniąc zawartość w pełni przeszukiwalną.
+
+## Jak to działa
+
+1. Prześlij zeskanowany PDF lub PDF oparty na obrazach.
+2. Wybierz z przeszukiwalnej listy jeden lub więcej języków występujących w dokumencie.
+3. Opcjonalnie dostosuj ustawienia zaawansowane (rozdzielczość, binaryzacja, biała lista).
+4. Kliknij **Rozpocznij OCR** i śledź postęp na pasku postępu w czasie rzeczywistym.
+5. Po zakończeniu przejrzyj wyodrębniony tekst, a następnie pobierz przeszukiwalny PDF lub zwykły plik `.txt`.
+
+## Funkcje
+
+- OCR w wielu językach z przeszukiwalnym selektorem języka
+- Niewidoczna warstwa tekstowa zachowuje oryginalny wygląd dokumentu
+- Pasek postępu i dziennik w czasie rzeczywistym podczas przetwarzania
+- Pobieranie wyników jako przeszukiwalny PDF lub zwykły plik tekstowy
+- Kopiowanie wyodrębnionego tekstu bezpośrednio do schowka
+- Trzy poziomy rozdzielczości do balansowania szybkości i dokładności
+
+## Opcje
+
+| Ustawienie | Wartości | Domyślnie | Cel |
+| ----------------------------- | ---------------------------------------------------------------------------------------------- | --------- | -------------------------------------------------------------------------------------- |
+| **Rozdzielczość** | Standardowa (192 DPI), Wysoka (288 DPI), Ultra (384 DPI) | Wysoka | Wyższa rozdzielczość poprawia dokładność przy małym tekście, ale trwa dłużej |
+| **Binaryzacja obrazu** | Włączona / Wyłączona | Wyłączona | Zwiększa kontrast czystych skanów przez konwersję do czerni i bieli |
+| **Gotowa biała lista znaków** | Brak, Alfanumeryczne, Liczby + waluta, Tylko litery, Tylko liczby, Faktura, Formularze, Własna | Brak | Ogranicza rozpoznawane znaki, aby poprawić dokładność dla określonych typów dokumentów |
+| **Biała lista znaków** | Dowolny tekst | Pusta | Ręczny zestaw znaków, gdy gotowa lista jest ustawiona na Własna |
+
+## Zastosowania
+
+- Uczynienie zeskanowanych umów i faktur przeszukiwalnymi, aby móc je przeglądać przez Ctrl+F
+- Wyodrębnianie tekstu z sfotografowanych dokumentów lub starych papierowych zapisów
+- Przetwarzanie paragonów z gotową listą Faktura, aby dokładnie wychwycić kwoty i daty
+- Tworzenie dostępnych PDF-ów ze skanów zawierających tylko obrazy, aby spełnić wymogi zgodności
+- Zbiorcze wyodrębnianie tekstu ze zeskanowanych książek lub instrukcji
+
+## Wskazówki
+
+- Wybierz kilka języków, jeśli dokument zawiera treść w mieszanych językach (np. angielskie nagłówki z japońskim tekstem głównym).
+- Użyj binaryzacji dla dokumentów z wyblakłym lub niskokontrastowym tekstem: może znacząco poprawić dokładność rozpoznawania.
+- Gotowe listy Faktura i Formularze radykalnie zmniejszają liczbę fałszywych trafień w dokumentach ustrukturyzowanych, ignorując nieistotne kształty znaków.
+
+## Powiązane narzędzia
+
+- [Wyodrębnij tabele PDF](./extract-tables)
+- [Połącz PDF](./merge-pdf)
+- [Kompresuj PDF](./compress-pdf)
diff --git a/docs/pl/tools/odg-to-pdf.md b/docs/pl/tools/odg-to-pdf.md
new file mode 100644
index 00000000..8a9b8aca
--- /dev/null
+++ b/docs/pl/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG na PDF
+description: Konwertuj pliki LibreOffice Draw (ODG) na PDF w przeglądarce. Za darmo, bez wysyłania, w pełni prywatnie.
+---
+
+# ODG na PDF
+
+Konwertuj pliki OpenDocument Graphics na PDF. ODG to natywny format LibreOffice Draw, używany do diagramów, schematów blokowych i ilustracji wektorowych. Konwersja do PDF ułatwia udostępnianie, drukowanie i osadzanie tych rysunków w innych dokumentach.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :-------------------- | :----------- | :--------------------------------------- |
+| OpenDocument Graphics | `.odg` | Pliki LibreOffice Draw / OpenOffice Draw |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki ODG. Możesz dodać wiele plików naraz.
+2. Sprawdź listę plików. Usuń pojedyncze pozycje ikoną kosza lub kliknij **Dodaj więcej plików**, aby dodać kolejne rysunki.
+3. Kliknij **Konwertuj na PDF**. Silnik oparty na LibreOffice ładuje się w przeglądarce i konwertuje każdy plik ODG, zachowując grafikę wektorową, kształty i tekst.
+4. Pojedynczy plik zostanie pobrany bezpośrednio jako PDF. Wiele plików da archiwum ZIP o nazwie `odg-to-pdf.zip`.
+
+## Opcje
+
+Nie są wymagane żadne dodatkowe ustawienia. Konwersja zachowuje oryginalne wymiary strony, kształty, łączniki i pola tekstowe ze źródła ODG.
+
+## Zastosowania
+
+- Udostępnianie diagramów LibreOffice Draw klientom, którzy nie mają zainstalowanego LibreOffice
+- Drukowanie schematów blokowych i diagramów sieciowych utworzonych w Draw
+- Dołączanie ilustracji ODG do raportu lub prezentacji jako osadzonych PDF-ów
+- Archiwizowanie rysunków technicznych w formacie, który pozostanie czytelny przez dziesięciolecia
+
+## Wskazówki
+
+- Elementy wektorowe pozostają wektorami w wynikowym PDF-ie, więc wynik skaluje się czysto do dowolnego rozmiaru wydruku.
+- Silnik LibreOffice potrzebuje chwili na inicjalizację przy pierwszym użyciu. Kolejne konwersje w tej samej sesji są szybsze.
+
+## Powiązane narzędzia
+
+- [ODS na PDF](./ods-to-pdf)
+- [ODP na PDF](./odp-to-pdf)
+- [VSD na PDF](./vsd-to-pdf)
diff --git a/docs/pl/tools/odp-to-pdf.md b/docs/pl/tools/odp-to-pdf.md
new file mode 100644
index 00000000..7f33a60b
--- /dev/null
+++ b/docs/pl/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP na PDF
+description: Konwertuj prezentacje LibreOffice Impress (ODP) na PDF w przeglądarce. Za darmo, prywatnie, bez wysyłania.
+---
+
+# ODP na PDF
+
+Konwertuj pliki OpenDocument Presentation na PDF. ODP to natywny format LibreOffice Impress i standardowy eksport z Prezentacji Google. Zamiana prezentacji na PDF-y sprawia, że każdy może je obejrzeć bez programu do prezentacji, a slajdy drukują się czysto.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :------------------------ | :----------- | :------------------------------------------------- |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / eksport z Prezentacji Google |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki ODP. Możesz wybrać wiele prezentacji naraz.
+2. Sprawdź listę plików. Usuń pozycje ikoną kosza lub użyj **Dodaj więcej plików**, aby dołączyć kolejne prezentacje.
+3. Kliknij **Konwertuj na PDF**. Silnik oparty na LibreOffice przetwarza każdą prezentację i tworzy PDF, w którym każdy slajd staje się stroną.
+4. Pojedynczy plik zostanie pobrany jako PDF. Wiele plików jest dostarczanych w archiwum ZIP o nazwie `odp-to-pdf.zip`.
+
+## Opcje
+
+Nie ma ustawień do skonfigurowania. Każdy slajd jest renderowany w oryginalnych wymiarach, z zachowaniem tekstu, obrazów, kształtów i teł slajdów.
+
+## Zastosowania
+
+- Rozdawanie prezentacji odbiorcom jako PDF z materiałami
+- Udostępnianie eksportów z Prezentacji Google osobom, które wolą PDF od ODP
+- Archiwizowanie wystąpień konferencyjnych i wykładów w formacie tylko do odczytu
+- Drukowanie pokazów slajdów na warsztaty stacjonarne
+
+## Wskazówki
+
+- Przejścia i animacje slajdów to funkcje wyłącznie wizualne, które nie przechodzą do PDF, ale cała statyczna zawartość renderuje się poprawnie.
+- Notatki prelegenta nie są dołączane do wynikowego PDF-a. Jeśli potrzebujesz notatek, wyeksportuj je osobno z programu do prezentacji.
+- Tak jak inne narzędzia oparte na LibreOffice, silnik ładuje się przy pierwszym użyciu i pozostaje w pamięci podręcznej na czas sesji.
+
+## Powiązane narzędzia
+
+- [ODG na PDF](./odg-to-pdf)
+- [ODS na PDF](./ods-to-pdf)
+- [PUB na PDF](./pub-to-pdf)
diff --git a/docs/pl/tools/ods-to-pdf.md b/docs/pl/tools/ods-to-pdf.md
new file mode 100644
index 00000000..8da353e9
--- /dev/null
+++ b/docs/pl/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS na PDF
+description: Konwertuj arkusze LibreOffice Calc (ODS) na PDF w przeglądarce. Za darmo, prywatnie, bez rejestracji.
+---
+
+# ODS na PDF
+
+Konwertuj pliki OpenDocument Spreadsheet na PDF. ODS to natywny format LibreOffice Calc i częsty format eksportu z Arkuszy Google. To narzędzie renderuje dane, formatowanie i wykresy z arkusza do podzielonego na strony pliku PDF, który możesz wydrukować lub udostępnić.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----------------------- | :----------- | :------------------------------------------ |
+| OpenDocument Spreadsheet | `.ods` | Eksport z LibreOffice Calc / Arkuszy Google |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki ODS. Obsługiwanych jest wiele plików.
+2. Przejrzyj listę plików. Użyj ikony kosza, aby usunąć pliki, lub kliknij **Dodaj więcej plików**, aby powiększyć partię.
+3. Kliknij **Konwertuj na PDF**. Silnik oparty na LibreOffice ładuje się w przeglądarce i renderuje każdy arkusz do stron PDF.
+4. Pojedynczy arkusz pobiera się jako PDF. Wiele plików jest pakowanych do `ods-to-pdf.zip`.
+
+## Opcje
+
+Nie jest wymagana żadna konfiguracja. Konwerter stosuje w pliku PDF istniejący układ wydruku arkusza, formatowanie komórek i szerokości kolumn.
+
+## Przypadki użycia
+
+- Udostępnianie budżetu lub raportu z LibreOffice Calc osobie, która przyjmuje tylko pliki PDF
+- Drukowanie eksportu z Arkuszy Google pobranego jako ODS
+- Archiwizowanie dokumentów finansowych w formie, której nie można edytować
+- Przesyłanie formularzy lub ewidencji czasu pracy opartych na ODS jako dokumentów o stałym układzie
+
+## Wskazówki
+
+- Jeśli arkusz zawiera wiele arkuszy, wszystkie trafią do pliku PDF.
+- Bardzo szerokie arkusze mogą być rozłożone poziomo na kilka stron PDF. Jeśli układ jest ważny, przed konwersją rozważ dostosowanie szerokości kolumn w pliku źródłowym.
+- Silnik LibreOffice inicjalizuje się przy pierwszym użyciu. Kolejne konwersje w tej samej sesji są szybsze.
+
+## Powiązane narzędzia
+
+- [ODG na PDF](./odg-to-pdf)
+- [ODP na PDF](./odp-to-pdf)
+- [XML na PDF](./xml-to-pdf)
diff --git a/docs/pl/tools/odt-to-pdf.md b/docs/pl/tools/odt-to-pdf.md
new file mode 100644
index 00000000..67a4da39
--- /dev/null
+++ b/docs/pl/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT na PDF
+description: Konwertuj pliki OpenDocument Text (ODT) na PDF w przeglądarce za pomocą silnika opartego na LibreOffice.
+---
+
+# ODT na PDF
+
+Konwertuj pliki OpenDocument Text na PDF. ODT to natywny format LibreOffice Writer, Apache OpenOffice i innych otwartych edytorów tekstu. To narzędzie używa działającego w przeglądarce silnika LibreOffice, aby uzyskać dokładne konwersje zachowujące formatowanie, tabele, obrazy i style.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :---------------- | :----------- |
+| OpenDocument Text | `.odt` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść jeden lub więcej plików ODT.
+2. Przejrzyj listę plików. Dodaj kolejne pliki lub usuń niepotrzebne.
+3. Kliknij **Konwertuj na PDF**. Silnik LibreOffice inicjalizuje się (wskaźnik postępu pokazuje stan ładowania), a następnie każdy plik jest konwertowany.
+4. Pojedynczy plik pobiera się bezpośrednio jako PDF. Wiele plików jest pakowanych do `odt-converted.zip`.
+
+## Opcje
+
+To narzędzie nie ma dodatkowej konfiguracji. Konwersja zachowuje formatowanie oryginalnego dokumentu możliwie wiernie.
+
+## Wynik
+
+| Liczba plików | Wynik |
+| :------------ | :---------------------------------------------------------------- |
+| 1 plik | Pobranie pojedynczego PDF (np. `document.pdf`) |
+| 2+ plików | Archiwum ZIP (`odt-converted.zip`) z jednym PDF dla każdego pliku |
+
+## Przypadki użycia
+
+- Konwertowanie dokumentów z LibreOffice Writer na PDF w celu udostępnienia użytkownikom Microsoft Office
+- Tworzenie gotowych do druku plików PDF z prac naukowych napisanych w formacie OpenDocument
+- Zbiorcza konwersja folderu szablonów ODT na pliki PDF do dystrybucji
+- Generowanie plików PDF z plików ODT tworzonych przez zautomatyzowane systemy generowania dokumentów
+
+## Wskazówki
+
+- Silnik LibreOffice ładuje się przy pierwszym użyciu i jest buforowany dla kolejnych konwersji. Pierwsze ładowanie trwa kilka sekund, potem konwersje są szybkie.
+- Złożone dokumenty z osadzonymi obiektami OLE lub nietypowymi czcionkami mogą wyglądać nieco inaczej niż w LibreOffice na komputerze. Przed konwersją zbiorczą przetestuj próbkę.
+- W przypadku dokumentów Word (`.doc`, `.docx`) użyj zamiast tego narzędzia [Word na PDF](./word-to-pdf), które również korzysta z silnika LibreOffice, ale bezpośrednio przyjmuje formaty Microsoft.
+
+## Powiązane narzędzia
+
+- [Word na PDF](./word-to-pdf)
+- [RTF na PDF](./rtf-to-pdf)
+- [Tekst na PDF](./txt-to-pdf)
diff --git a/docs/pl/tools/organize-pdf.md b/docs/pl/tools/organize-pdf.md
new file mode 100644
index 00000000..9479bf9d
--- /dev/null
+++ b/docs/pl/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplikuj i organizuj
+description: Zmieniaj kolejność, duplikuj i usuwaj strony PDF za pomocą miniatur przeciąganych myszą oraz własnej kolejności stron.
+---
+
+# Duplikuj i organizuj
+
+Zmieniaj układ, duplikuj i usuwaj strony PDF w wizualnym interfejsie z przeciąganiem. Każda strona jest miniaturą, którą możesz przesunąć, sklonować lub usunąć przed zapisaniem wyniku jako nowego pliku.
+
+## Jak to działa
+
+1. Prześlij pojedynczy plik PDF.
+2. Narzędzie renderuje siatkę miniatur pokazującą każdą stronę.
+3. Przeciągaj miniatury, aby zmienić kolejność stron, kliknij zielony przycisk duplikowania, aby sklonować stronę, lub czerwony przycisk usuwania, aby ją usunąć.
+4. Możesz też wpisać własną kolejność stron w polu tekstowym (np. `3, 1, 2, 4`) i kliknąć **Zastosuj**, aby przestawić wszystkie strony naraz.
+5. Kliknij przycisk przetwarzania, aby zbudować i pobrać przeorganizowany plik PDF.
+
+## Funkcje
+
+- Zmiana kolejności stron przez przeciąganie z animowanymi przejściami
+- Przyciski duplikowania i usuwania przy każdej stronie
+- Pole własnej kolejności stron do precyzyjnego przestawiania
+- Numery stron aktualizujące się automatycznie po każdej zmianie
+- Blokada usunięcia ostatniej pozostałej strony
+
+## Przypadki użycia
+
+- Przeniesienie źle umieszczonej strony na właściwe miejsce w raporcie
+- Zduplikowanie strony formularza, aby mieć wiele pustych kopii w jednym pliku
+- Usunięcie stron roboczych lub zastępczych przed dystrybucją dokumentu
+- Odwrócenie lub przetasowanie kolejności stron na potrzeby przygotowania do druku
+- Zbudowanie własnej sekwencji stron bez ponownego łączenia osobnych plików
+
+## Wskazówki
+
+- Pole własnej kolejności stron oczekuje oryginalnych numerów stron oddzielonych przecinkami. Musi zawierać każdą stronę dokładnie raz, bez pominięć i duplikatów.
+- Po zduplikowaniu strony obie kopie odwołują się do tego samego oryginalnego indeksu strony. Zmiana kolejności każdej z kopii działa niezależnie.
+- Do operacji zbiorczych na wielu plikach lub bardziej zaawansowanych przepływów rozważ zamiast tego [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool).
+
+## Powiązane narzędzia
+
+- [Połącz PDF](./merge-pdf)
+- [Usuń strony](./delete-pages)
+- [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool)
+- [Odwróć strony](./reverse-pages)
diff --git a/docs/pl/tools/page-dimensions.md b/docs/pl/tools/page-dimensions.md
new file mode 100644
index 00000000..50cdc137
--- /dev/null
+++ b/docs/pl/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Wymiary strony
+description: Analizuj rozmiary stron PDF, orientację, proporcje i obrót. Wykrywaj dokumenty z mieszanymi rozmiarami i eksportuj dane do CSV.
+---
+
+# Wymiary strony
+
+Narzędzie diagnostyczne, które odczytuje każdą stronę PDF i podaje jej dokładne wymiary, orientację, nazwę standardowego rozmiaru, proporcje, powierzchnię i obrót. Przydatne do wychwytywania stron o różnych rozmiarach przed drukiem lub do udokumentowania właściwości otrzymanego pliku PDF.
+
+## Jak to działa
+
+1. Prześlij plik PDF. Analiza rusza automatycznie, bez przycisku.
+2. Panel podsumowania pokazuje łączną liczbę stron, liczbę unikalnych rozmiarów stron oraz informację, czy dokument ma mieszane rozmiary.
+3. Przeglądaj pełną tabelę wyników ze szczegółami dla każdej strony.
+4. Przełączaj jednostki wyświetlania między punktami, calami, milimetrami i pikselami.
+5. Kliknij **Eksportuj do CSV**, aby zapisać dane.
+
+## Raportowane pola
+
+| Kolumna | Opis |
+| ------------------- | ------------------------------------------------------- |
+| Nr strony | Kolejny numer strony |
+| Wymiary | Szerokość x Wysokość w wybranej jednostce |
+| Standardowy rozmiar | Dopasowana nazwa (A4, Letter itp.) lub "Niestandardowy" |
+| Orientacja | Pionowa lub pozioma |
+| Proporcje | Stosunek szerokości do wysokości jako liczba dziesiętna |
+| Powierzchnia | Powierzchnia strony w wybranej jednostce do kwadratu |
+| Obrót | Obrót strony w stopniach |
+
+## Funkcje
+
+- Automatyczne wykrywanie standardowych rozmiarów papieru (A3, A4, A5, Letter, Legal, Tabloid i innych)
+- Ostrzeżenie o mieszanych rozmiarach z zestawieniem, jakie rozmiary występują i ile stron z nich korzysta
+- Przeliczanie jednostek między punktami, calami, milimetrami i pikselami (przy 96 PPI)
+- Eksport do CSV do użycia w arkuszach kalkulacyjnych lub systemach dokumentacji
+
+## Przypadki użycia
+
+- Sprawdzenie, czy wszystkie strony mają format A4, przed wysłaniem dokumentu do drukarni
+- Diagnozowanie, dlaczego połączony PDF drukuje się z nieoczekiwanymi marginesami na niektórych stronach
+- Dokumentowanie układu stron dużego archiwum PDF na potrzeby rekordów metadanych
+- Wskazywanie obróconych stron wymagających korekty
+
+## Wskazówki
+
+- Jeśli podsumowanie pokazuje "Różne rozmiary", użyj narzędzia Napraw rozmiar strony, aby ujednolicić rozmiary przed drukiem.
+- Pole obrotu pomaga zidentyfikować strony, które wyświetlają się poprawnie, ale mają niezerowy atrybut obrotu, co może powodować problemy w niektórych przepływach pracy.
+
+## Powiązane narzędzia
+
+- [Napraw rozmiar strony](./fix-page-size): ujednolicenie stron po wykryciu mieszanych rozmiarów
+- [Kompresuj PDF](./compress-pdf): optymalizacja PDF po naprawie problemów ze stronami
+- [Obróć PDF](./rotate-pdf): korekta obróconych stron
diff --git a/docs/pl/tools/page-numbers.md b/docs/pl/tools/page-numbers.md
new file mode 100644
index 00000000..2eecce93
--- /dev/null
+++ b/docs/pl/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Numery stron
+description: Dodaj konfigurowalne numery stron w dowolnym miejscu stron PDF z wybraną czcionką, rozmiarem i kolorem.
+---
+
+# Numery stron
+
+Dodaj widoczne numery stron do każdej strony PDF. Wybierasz pozycję, format, rozmiar czcionki i kolor, a resztą zajmuje się narzędzie.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Skonfiguruj ustawienia numerów stron w panelu opcji, który się pojawi.
+3. Kliknij **Dodaj numery stron**, aby przetworzyć plik.
+4. PDF z numerami pobiera się automatycznie.
+
+## Opcje
+
+- **Pozycja**: wybierz, gdzie pojawią się numery stron: u dołu pośrodku, u dołu po lewej, u dołu po prawej, u góry pośrodku, u góry po lewej lub u góry po prawej.
+- **Format**: wybierz prostą numerację (1, 2, 3...) lub format "strona X z Y" (1 / 5, 2 / 5...).
+- **Rozmiar czcionki**: ustaw rozmiar tekstu numeru strony. Domyślnie 12.
+- **Kolor**: wybierz dowolny kolor tekstu numeru strony za pomocą próbnika kolorów.
+
+## Funkcje
+
+- Sześć opcji pozycji obejmujących wszystkie rogi i pozycje środkowe
+- Dwa formaty numeracji: prosty kolejny lub "strona X z Y"
+- Konfigurowalny rozmiar czcionki od 6 do 72 punktów
+- Pełny próbnik kolorów dla tekstu
+- Automatyczna obsługa marginesów, która utrzymuje numery w bezpiecznych obszarach niezależnie od rozmiaru strony
+
+## Przypadki użycia
+
+- Przygotowywanie dokumentów do druku, które wymagają widocznych odniesień do stron
+- Dodawanie numerów stron do połączonego PDF utworzonego z wielu plików źródłowych
+- Numerowanie materiałów z prezentacji przed ich rozdaniem
+- Dodawanie kolejnej numeracji do dokumentów prawnych lub umów
+
+## Wskazówki
+
+- Format "strona X z Y" jest przydatny w dokumentach, w których czytelnicy powinni znać całkowitą długość, np. w ofertach lub raportach.
+- Jeśli potrzebujesz różnych stylów numeracji dla różnych sekcji (np. cyfr rzymskich dla części wstępnej), użyj zamiast tego narzędzia [Dodaj etykiety stron](./add-page-labels).
+
+## Powiązane narzędzia
+
+- [Dodaj etykiety stron](./add-page-labels)
+- [Numeracja Batesa](./bates-numbering)
+- [Nagłówek i Stopka](./header-footer)
diff --git a/docs/pl/tools/pdf-booklet.md b/docs/pl/tools/pdf-booklet.md
new file mode 100644
index 00000000..1cc36f95
--- /dev/null
+++ b/docs/pl/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Broszura PDF
+description: Przestaw strony PDF w kolejność broszury (szytej zszywkami), aby złożyć i zszyć ją w fizyczną broszurę.
+---
+
+# Broszura PDF
+
+Przestaw strony PDF w kolejność impozycji broszury. Po wydrukowaniu dwustronnym i złożeniu na pół strony będą w prawidłowej kolejności czytania. To układ używany w broszurach szytych zszywkami i zinach.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Skonfiguruj ustawienia broszury: rozmiar i orientację strony wyjściowej.
+3. Kliknij **Generuj podgląd**, aby zobaczyć, jak strony zostaną ułożone na każdym arkuszu.
+4. Przejrzyj podgląd, który pokazuje każdy fizyczny arkusz wraz z przypisaniem stron na awersie i rewersie.
+5. Kliknij **Pobierz**, aby zapisać PDF z impozycją broszury.
+
+## Funkcje
+
+- Automatyczna zmiana kolejności stron do oprawy szytej zszywkami
+- Konfigurowalny rozmiar strony wyjściowej
+- Wizualny podgląd układu broszury przed pobraniem
+- Obsługa nieparzystej liczby stron przez wstawianie pustych stron tam, gdzie trzeba
+- Skalowanie stron źródłowych do rozmiaru arkusza broszury
+
+## Przypadki użycia
+
+- Tworzenie drukowalnych broszur lub zinów ze zwykłego PDF
+- Przygotowywanie programów konferencji lub przewodników po wydarzeniach do druku we własnym zakresie
+- Wykonywanie składanych kartek okolicznościowych lub małych katalogów
+- Tworzenie tomików poezji lub zbiorów do ręcznej oprawy
+
+## Wskazówki
+
+- Liczba stron źródłowego PDF powinna być najlepiej wielokrotnością 4, aby broszura wyszła czysto. Jeśli tak nie jest, puste strony są dodawane automatycznie, aby uzupełnić ostatni arkusz.
+- Drukuj wynik dwustronnie z ustawieniem drukarki "odwracanie wzdłuż krótszej krawędzi", następnie złóż wszystkie arkusze razem i zszyj na grzbiecie.
+- Do samego umieszczania wielu stron na jednym arkuszu bez kolejności broszury użyj zamiast tego [PDF N-Up](./n-up-pdf).
+
+## Powiązane narzędzia
+
+- [PDF N-Up](./n-up-pdf)
+- [Obróć PDF](./rotate-pdf)
+- [Dodaj pustą stronę](./add-blank-page)
diff --git a/docs/pl/tools/pdf-layers.md b/docs/pl/tools/pdf-layers.md
new file mode 100644
index 00000000..26cfda55
--- /dev/null
+++ b/docs/pl/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Warstwy PDF (OCG)
+description: Wyświetlaj, przełączaj, dodawaj i usuwaj warstwy Optional Content Group (OCG) w dokumencie PDF.
+---
+
+# Warstwy PDF (OCG)
+
+Zarządzaj grupami treści opcjonalnej (Optional Content Groups, OCG), zwanymi potocznie "warstwami", wewnątrz pliku PDF. Możesz przełączać widoczność warstw, dodawać nowe warstwy (także zagnieżdżone warstwy podrzędne), usuwać warstwy i zapisywać zmodyfikowany PDF.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Kliknij przycisk przetwarzania, aby załadować dokument za pomocą silnika PyMuPDF.
+3. Narzędzie wyświetla wszystkie istniejące warstwy wraz ze stanem widoczności, blokadą i hierarchią zagnieżdżenia.
+4. Zaznaczaj pola wyboru, aby pokazać lub ukryć warstwy. Zablokowanych warstw nie można przełączać.
+5. Dodawaj nowe warstwy najwyższego poziomu, wpisując nazwę i klikając przycisk dodawania, lub dodawaj warstwy podrzędne pod istniejącą warstwą nadrzędną.
+6. Usuń warstwy, których już nie potrzebujesz.
+7. Kliknij **Zapisz**, aby pobrać zmodyfikowany PDF z zastosowanymi zmianami warstw.
+
+## Funkcje
+
+- Wyświetla hierarchię warstw z odpowiednimi wcięciami dla warstw zagnieżdżonych
+- Włączanie i wyłączanie widoczności warstwy
+- Wskaźnik zablokowanej warstwy zapobiega przypadkowym zmianom
+- Dodawanie warstw najwyższego poziomu lub podrzędnych z własnymi nazwami
+- Usuwanie pojedynczych warstw
+- Zapisuje wszystkie zmiany w nowym pliku PDF
+
+## Przypadki użycia
+
+- Przełączanie widoczności warstw oznaczeń w rysunkach architektonicznych lub inżynierskich
+- Dodawanie nowych warstw adnotacji do wielowarstwowego dokumentu projektowego
+- Usuwanie przestarzałych warstw z szablonu przed jego dystrybucją
+- Sprawdzanie, jakie warstwy istnieją w złożonym PDF otrzymanym od strony trzeciej
+
+## Wskazówki
+
+- Jeśli PDF nie ma warstw, narzędzie pokazuje pusty stan z propozycją dodania warstwy. Nie wszystkie pliki PDF używają warstw OCG, są one najczęstsze w eksportach CAD i plikach projektowych.
+- Warstwy podrzędne są wizualnie wcięte pod warstwą nadrzędną. Warstwy można zagnieżdżać na dowolną głębokość.
+- Zablokowane warstwy są wyświetlane z ikoną kłódki, a ich pola wyboru są wyłączone. Te blokady ustawia twórca pliku PDF.
+
+## Powiązane narzędzia
+
+- [Wyświetl metadane](./view-metadata)
+- [Edytuj metadane](./edit-metadata)
+- [Duplikuj i organizuj](./organize-pdf)
diff --git a/docs/pl/tools/pdf-multi-tool.md b/docs/pl/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..fc80e029
--- /dev/null
+++ b/docs/pl/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Wielofunkcyjne narzędzie PDF
+description: Uniwersalny menedżer stron do łączenia, dzielenia, obracania, duplikowania, usuwania, zmiany kolejności i zmiany rozmiaru stron PDF.
+---
+
+# Wielofunkcyjne narzędzie PDF
+
+Jedno miejsce pracy dla każdej operacji na stronach PDF. Prześlij jeden lub więcej plików PDF i pracuj na wszystkich ich stronach w jednej wizualnej siatce. Obracaj, zmieniaj kolejność, duplikuj i usuwaj strony, wstawiaj pliki PDF, obrazy i puste strony, zmieniaj numerację i rozmiar stron oraz dziel wynik, a wszystko bez opuszczania narzędzia.
+
+## Jak to działa
+
+1. Kliknij **Wybierz pliki** lub przeciągnij pliki na obszar przesyłania. Obsługiwanych jest wiele plików, a łączą się one w kolejności przesłania.
+2. Wszystkie strony pojawiają się w przewijanej siatce z miniaturami.
+3. Kliknij stronę, aby ją zaznaczyć. Kliknij z wciśniętym Shift, aby zaznaczyć zakres, lub z wciśniętym Cmd/Ctrl, aby dodać albo usunąć z zaznaczenia pojedyncze strony.
+4. Użyj paska narzędzi lub kliknij stronę prawym przyciskiem myszy, aby wybrać działania na stronach.
+5. Kliknij **Eksportuj PDF**, aby pobrać końcowy wynik.
+
+## Funkcje
+
+- **Łączenie**: prześlij wiele plików PDF i obrazów, a automatycznie połączą się w jeden dokument
+- **Zmiana kolejności**: przeciągaj i upuszczaj strony, aby zmienić ich kolejność, lub odwróć kolejność całego dokumentu
+- **Obracanie**: obracaj zaznaczone strony w lewo lub w prawo co 90 stopni
+- **Duplikowanie**: skopiuj zaznaczone strony i umieść kopie zaraz za nimi
+- **Usuwanie**: usuń zaznaczone strony
+- **Wstawianie**: dodaj strony z innego pliku PDF lub obrazu, pustą stronę albo strony ze schowka lub przeplataj strony drugiego pliku PDF z bieżącymi
+- **Zastępowanie**: zamień stronę na pierwszą stronę innego pliku PDF
+- **Wycinanie, kopiowanie i wklejanie**: przenoś lub kopiuj strony w obrębie dokumentu
+- **Wyodrębnianie**: pobierz zaznaczone strony jako PDF lub jako obrazy
+- **Numery stron**: ustaw etykiety stron, takie jak i, ii, iii lub A-1, A-2, dla zakresu stron
+- **Rozmiar strony**: dopasuj strony do standardowego formatu papieru lub własnego rozmiaru
+- **Podział**: podziel dokument według zakresów stron, na strony nieparzyste i parzyste, na pojedyncze strony, według zakładek, co N stron lub według rozmiaru pliku
+- **Cofnij / Ponów**: każdą operację na stronach można cofnąć i ponowić
+- Automatycznie naprawia uszkodzone pliki PDF przed załadowaniem
+
+## Skróty klawiszowe
+
+| Działanie | Skrót |
+| ---------------------- | ----------------------------- |
+| Obróć w prawo / w lewo | R / Shift+R |
+| Zaznacz wszystko | Cmd/Ctrl+A |
+| Wytnij, kopiuj, wklej | Cmd/Ctrl+X, C, V |
+| Duplikuj | Cmd/Ctrl+D |
+| Usuń | Delete lub Backspace |
+| Cofnij / Ponów | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Przesuń zaznaczenie | Klawisze strzałek, Home, End |
+
+## Przypadki użycia
+
+- Budowanie własnego dokumentu ze stron z wielu źródłowych plików PDF
+- Porządkowanie zeskanowanego dokumentu przez usuwanie pustych stron, obracanie skanów ułożonych bokiem i zmianę kolejności sekcji
+- Dzielenie dużego PDF na granicach rozdziałów za pomocą jego zakładek
+- Szybka edycja na poziomie stron bez potrzeby używania pełnego edytora PDF
+
+## Wskazówki
+
+- Historia cofania i ponawiania śledzi każdą operację na stronach. Korzystaj z niej swobodnie, nie możesz przypadkowo zniszczyć swojej pracy.
+- Użyj **Insert > From File** lub w dowolnym momencie upuść kolejne pliki PDF albo obrazy na siatkę stron, aby dodać je do dokumentu.
+- Do prostych zadań łączenia lub dzielenia dedykowane narzędzia [Połącz PDF](./merge-pdf) lub [Podziel PDF](./split-pdf) mogą być szybsze. Wielofunkcyjne narzędzie sprawdza się, gdy potrzebujesz wielu operacji w jednej sesji.
+
+## Powiązane narzędzia
+
+- [Połącz PDF](./merge-pdf)
+- [Podziel PDF](./split-pdf)
+- [Duplikuj i organizuj](./organize-pdf)
+- [Obróć PDF](./rotate-pdf)
diff --git a/docs/pl/tools/pdf-to-bmp.md b/docs/pl/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..ce36db6b
--- /dev/null
+++ b/docs/pl/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF na BMP
+description: Konwertuj strony PDF na nieskompresowane obrazy BMP. Przydatne w starszych systemach i procesach drukarskich wymagających bitmap.
+---
+
+# PDF na BMP
+
+Konwertuje każdą stronę PDF na obraz BMP (bitmapa). BMP to format nieskompresowany, więc wynik jest dokładny co do piksela i bez utraty jakości, ale pliki są duże.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Kliknij **Konwertuj**, aby przetworzyć plik.
+3. Pojedynczy plik `.bmp` lub archiwum ZIP pobiera się automatycznie.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Strony są renderowane w stałej skali 2x, co daje obrazy o wymiarach w przybliżeniu dwukrotnie większych niż natywne wymiary strony PDF.
+
+## Format wyjściowy
+
+- **Jedna strona**: `filename.bmp`
+- **Wiele stron**: `filename_bmps.zip` zawierający `page_1.bmp`, `page_2.bmp` itd.
+
+## Przypadki użycia
+
+- Przekazywanie stron PDF do starszych systemów lub urządzeń, które przyjmują tylko BMP.
+- Przygotowywanie nieskompresowanych obrazów do określonych procesów drukarskich.
+- Używanie wyniku bitmapowego jako wejścia do narzędzi do przetwarzania obrazów, które wymagają surowych danych pikseli.
+
+## Wskazówki
+
+- Pliki BMP są bardzo duże, ponieważ przechowują surowe dane pikseli bez kompresji. W większości zastosowań [PDF na PNG](./pdf-to-png) daje jakość bez strat i znacznie mniejsze pliki.
+- Jeśli system docelowy przyjmuje PNG lub TIFF, wybierz te formaty, aby oszczędzić miejsce na dysku.
+
+## Powiązane narzędzia
+
+- [PDF na PNG](./pdf-to-png)
+- [PDF na TIFF](./pdf-to-tiff)
+- [PDF na JPG](./pdf-to-jpg)
diff --git a/docs/pl/tools/pdf-to-cbz.md b/docs/pl/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..05ca7dc5
--- /dev/null
+++ b/docs/pl/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF na CBZ
+description: Konwertuj PDF na plik CBZ (Comic Book Archive) dla czytników komiksów, takich jak Komga, Kavita, CDisplayEx i Calibre.
+---
+
+# PDF na CBZ
+
+Konwertuje PDF na plik CBZ (Comic Book ZIP), standardowy format cyfrowych komiksów i mangi. Każda strona PDF staje się obrazem w archiwum. Narzędzie generuje metadane w trzech formatach dla maksymalnej zgodności: ComicInfo.xml, metadata.opf i ComicBookInfo JSON.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Wybierz format obrazu, jakość, skalę i opcjonalne metadane.
+3. Kliknij **Konwertuj**, aby wygenerować plik CBZ.
+4. Plik `.cbz` pobiera się automatycznie.
+
+## Opcje
+
+| Opcja | Wartości | Domyślnie | Opis |
+| --------------- | --------------- | --------- | --------------------------------------------------------------------------------------------------- |
+| Format obrazu | JPEG, PNG, WebP | JPEG | JPEG dla kolorowych komiksów, PNG dla czarno-białej mangi bez strat, WebP dla najlepszej kompresji. |
+| Jakość | 50–100% | 85% | Steruje kompresją JPEG/WebP. Ukryta dla PNG (zawsze bez strat). |
+| Skala | 1.0x–4.0x | 2.0x | Wyższa skala daje ostrzejsze obrazy na ekranach o wysokiej rozdzielczości. |
+| Skala szarości | Wł./Wył. | Wył. | Konwertuje strony na skalę szarości. Zmniejsza rozmiar pliku dla treści czarno-białych. |
+| Tryb mangi | Wł./Wył. | Wył. | Ustawia w metadanych kierunek czytania od prawej do lewej. |
+| Dołącz metadane | Wł./Wył. | Wł. | Osadza ComicInfo.xml, metadata.opf i ComicBookInfo JSON. |
+
+## Pola metadanych
+
+Gdy metadane są włączone, możesz wypełnić:
+
+- **Tytuł**: wykrywany automatycznie z nazwy pliku PDF.
+- **Seria**: nazwa serii (np. "Naruto").
+- **Numer (#)**: numer wydania w serii.
+- **Tom (Vol.)**: numer tomu.
+- **Autor(zy)**: nazwa scenarzysty lub twórcy.
+- **Wydawca**: firma wydawnicza.
+- **Tagi / Gatunek**: tagi oddzielone przecinkami (np. "Akcja, Przygoda").
+- **Rok wydania**: rok publikacji (1900–2100).
+- **Ocena**: ocena społeczności od 0 do 5.
+
+## Zgodność metadanych
+
+Narzędzie zapisuje metadane w trzech formatach, aby każdy czytnik mógł je znaleźć:
+
+| Format | Lokalizacja | Obsługiwany przez |
+| ------------------ | ------------------- | ------------------------------------------- |
+| ComicInfo.xml | Plik wewnątrz ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Plik wewnątrz ZIP | Calibre |
+| ComicBookInfo JSON | Pole komentarza ZIP | Calibre (zapasowo) |
+
+## Format wyjściowy
+
+- `filename.cbz`: archiwum ZIP zawierające ponumerowane obrazy stron i pliki metadanych.
+
+Obrazy stron mają nazwy z numerami uzupełnionymi zerami (`01.jpg`, `02.jpg` itd.), aby czytniki wyświetlały je we właściwej kolejności.
+
+## Przypadki użycia
+
+- Konwertowanie PDF z mangą lub komiksami do użytku w czytnikach komiksów.
+- Budowanie cyfrowej biblioteki komiksów w Komga, Kavita lub Calibre.
+- Konwertowanie zeskanowanych komiksów do formatu przyjaznego czytnikom.
+- Udostępnianie komiksów w formacie zachowującym kierunek czytania i metadane.
+
+## Wskazówki
+
+- Użyj **JPEG** dla kolorowych komiksów i **PNG** dla czarno-białej mangi, ponieważ PNG bardzo efektywnie kompresuje treści czarno-białe.
+- Włącz **Skalę szarości** dla mangi, aby znacząco zmniejszyć rozmiar pliku.
+- Wypełnij pola **Seria** i **Numer**, aby menedżery bibliotek (Komga, Calibre) mogły automatycznie uporządkować Twoją kolekcję.
+- **WebP** oferuje najlepszą kompresję, ale starsze czytniki komiksów mogą go nie obsługiwać.
+
+## Powiązane narzędzia
+
+- [PDF na JPG](./pdf-to-jpg)
+- [PDF na PNG](./pdf-to-png)
+- [PDF na TIFF](./pdf-to-tiff)
+- [Wyodrębnij obrazy](./extract-images)
diff --git a/docs/pl/tools/pdf-to-csv.md b/docs/pl/tools/pdf-to-csv.md
new file mode 100644
index 00000000..c1e55f1f
--- /dev/null
+++ b/docs/pl/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF na CSV
+description: Wyodrębnij tabele z dokumentów PDF i wyeksportuj je do jednego pliku CSV. Obsługuje wielostronicowe PDF z automatycznym wykrywaniem tabel.
+---
+
+# PDF na CSV
+
+Wyodrębnia tabele z PDF i eksportuje je jako plik CSV. Narzędzie skanuje każdą stronę w poszukiwaniu danych tabelarycznych za pomocą silnika wykrywania tabel PyMuPDF, a następnie zapisuje wszystkie znalezione wiersze w jednym wyniku rozdzielanym przecinkami.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Kliknij **Konwertuj**, aby rozpocząć wyodrębnianie tabel.
+3. Narzędzie skanuje każdą stronę i automatycznie identyfikuje tabele.
+4. Plik `.csv` pobiera się ze wszystkimi wyodrębnionymi danymi tabel.
+
+Tabele z różnych stron są oddzielone w wyniku pustymi wierszami. Komórki zawierające przecinki, cudzysłowy lub nowe wiersze są prawidłowo poprzedzane znakami ucieczki zgodnie z RFC 4180.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Wszystkie tabele znalezione w dokumencie są wyodrębniane i łączone w jeden plik CSV.
+
+## Format wyjściowy
+
+- Pojedynczy plik `filename.csv` zawierający wszystkie wykryte tabele.
+
+## Przypadki użycia
+
+- Przenoszenie danych finansowych z wyciągów bankowych lub faktur w PDF do arkusza kalkulacyjnego.
+- Wyodrębnianie tabel cenowych z ofert dostawców w celu porównania.
+- Konwertowanie tabelarycznych danych badawczych z artykułów PDF do formatu odpowiedniego dla narzędzi analitycznych.
+- Migrowanie danych ze starszych raportów PDF do baz danych.
+
+## Wskazówki
+
+- Jeśli nie znaleziono tabel, narzędzie wyświetla komunikat "Nie znaleziono tabel". Zwykle oznacza to, że PDF używa układu tekstu, który wygląda jak tabela, ale nie jest zbudowany jako prawdziwa tabela.
+- Aby mieć większą kontrolę nad pojedynczymi tabelami, użyj [Wyodrębnij tabele PDF](./extract-tables), które pozwala wybrać format wyjściowy CSV, JSON lub Markdown.
+- Jeśli potrzebujesz danych w formacie Excel z osobnymi arkuszami dla każdej tabeli, użyj [PDF na Excel](./pdf-to-excel).
+
+## Powiązane narzędzia
+
+- [PDF na Excel](./pdf-to-excel)
+- [Wyodrębnij tabele PDF](./extract-tables)
+- [PDF na Tekst](./pdf-to-text)
diff --git a/docs/pl/tools/pdf-to-excel.md b/docs/pl/tools/pdf-to-excel.md
new file mode 100644
index 00000000..357495f2
--- /dev/null
+++ b/docs/pl/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF na Excel
+description: Wyodrębnij tabele z dokumentów PDF do arkusza Excel. Każda tabela trafia do osobnego arkusza z odwołaniem do strony.
+---
+
+# PDF na Excel
+
+Wyodrębnia tabele z PDF i zapisuje je jako arkusz kalkulacyjny Excel (`.xlsx`). Każda wykryta tabela trafia do osobnego arkusza, oznaczonego numerem tabeli i stroną źródłową. Wykorzystuje PyMuPDF do wykrywania tabel i bibliotekę SheetJS do generowania plików Excel.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Kliknij **Konwertuj**, aby rozpocząć wyodrębnianie tabel.
+3. Narzędzie skanuje każdą stronę w poszukiwaniu tabel, a następnie buduje skoroszyt Excel.
+4. Plik `.xlsx` pobiera się z jednym arkuszem na tabelę.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Wszystkie wykryte tabele są wyodrębniane automatycznie.
+
+## Format wyjściowy
+
+- Pojedynczy plik `filename.xlsx`.
+- **Jedna tabela**: jeden arkusz o nazwie "Table".
+- **Wiele tabel**: arkusze o nazwach "Table 1 (Page 3)", "Table 2 (Page 5)" itd. Nazwy arkuszy są skracane do 31 znaków (limit Excela).
+
+## Przypadki użycia
+
+- Konwertowanie raportów finansowych w PDF na edytowalne arkusze do dalszej analizy.
+- Wyodrębnianie tabel zapasów lub zamówień z plików PDF od dostawców.
+- Przenoszenie danych strukturalnych z formularzy lub katalogów PDF do Excela w celu sortowania i filtrowania.
+- Archiwizowanie tabelarycznych danych z PDF w formacie, z którym mogą pracować mniej techniczni współpracownicy.
+
+## Wskazówki
+
+- Jeśli narzędzie zgłasza "Nie znaleziono tabel", PDF prawdopodobnie używa swobodnego układu tekstu zamiast uporządkowanych tabel. Spróbuj zamiast tego [PDF na Tekst](./pdf-to-text), aby pobrać surową zawartość.
+- Dla prostszego płaskiego formatu użyj [PDF na CSV](./pdf-to-csv). Do pobierania poszczególnych tabel w wielu formatach użyj [Wyodrębnij tabele PDF](./extract-tables).
+- Sprawdź nazwy arkuszy, aby zidentyfikować, z której strony pochodzi każda tabela.
+
+## Powiązane narzędzia
+
+- [PDF na CSV](./pdf-to-csv)
+- [Wyodrębnij tabele PDF](./extract-tables)
+- [PDF na Tekst](./pdf-to-text)
diff --git a/docs/pl/tools/pdf-to-greyscale.md b/docs/pl/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..1468edb1
--- /dev/null
+++ b/docs/pl/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF na odcienie szarości
+description: Konwertuj kolorowy PDF na wersję w odcieniach szarości (czarno-białą). Tworzy nowy PDF ze wszystkimi kolorami usuniętymi z każdej strony.
+---
+
+# PDF na odcienie szarości
+
+Konwertuje kolorowy PDF na wersję w odcieniach szarości. Każda strona jest renderowana, pozbawiana nasycenia i osadzana ponownie jako obraz JPEG w nowym PDF. Wynik zachowuje oryginalne wymiary stron.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Kliknij **Konwertuj**, aby przetworzyć plik.
+3. Nowy plik `greyscale.pdf` pobiera się ze wszystkimi stronami przekonwertowanymi na czarno-białe.
+
+Pod spodem każda strona jest renderowana w skali 2x, dane pikseli przechodzą przez filtr odcieni szarości, następnie są ponownie kodowane jako JPEG o jakości 90% i umieszczane w nowym dokumencie PDF.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Konwersja do odcieni szarości używa standardowego wzoru luminancji, a jakość JPEG jest stała i wynosi 90%.
+
+## Format wyjściowy
+
+- Pojedynczy plik `greyscale.pdf` zawierający wszystkie strony jako obrazy JPEG w odcieniach szarości.
+
+## Przypadki użycia
+
+- Przygotowywanie dokumentów do druku czarno-białego, aby oszczędzić na kolorowym tuszu.
+- Spełnianie wymogów dotyczących składania dokumentów prawnych lub urzędowych, które wymagają odcieni szarości.
+- Zmniejszanie rozmiaru plików PDF z dużą ilością koloru (obrazy JPEG w odcieniach szarości są mniejsze niż kolorowe).
+- Tworzenie spójnego stylu wizualnego dokumentów z mieszanymi stronami kolorowymi i czarno-białymi.
+
+## Wskazówki
+
+- Ponieważ każda strona jest rasteryzowana i osadzana ponownie jako JPEG, wynik jest oparty na obrazach. Tekst z oryginalnego PDF nie będzie już zaznaczalny ani przeszukiwalny. Jeśli potrzebujesz potem przeszukiwalnego tekstu, przepuść wynik przez narzędzie OCR.
+- Aby mieć większą kontrolę nad korektą kolorów (jasność, kontrast, nasycenie), skorzystaj z narzędzia Dostosuj kolory lub węzła Greyscale w [Kreator przepływów PDF](./pdf-workflow).
+
+## Powiązane narzędzia
+
+- [PDF na JPG](./pdf-to-jpg)
+- [PDF na PNG](./pdf-to-png)
+- [Kreator przepływów PDF](./pdf-workflow)
diff --git a/docs/pl/tools/pdf-to-jpg.md b/docs/pl/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..a4163a2e
--- /dev/null
+++ b/docs/pl/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF na JPG
+description: Konwertuj strony PDF na obrazy JPG z regulowaną jakością. Jednostronicowe PDF pobierają się bezpośrednio, wielostronicowe jako ZIP.
+---
+
+# PDF na JPG
+
+Konwertuje każdą stronę PDF na obraz JPG. Dokumenty jednostronicowe pobierają się jako samodzielny plik `.jpg`. Wielostronicowe pliki PDF dają archiwum ZIP z jednym plikiem JPG na stronę.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik. Narzędzie wyświetla nazwę pliku, jego rozmiar i liczbę stron.
+2. Dostosuj suwak **Jakość**, aby sterować kompresją JPG.
+3. Kliknij **Konwertuj**, aby rozpocząć przetwarzanie.
+4. Wynik pobiera się automatycznie: pojedynczy JPG dla jednostronicowych PDF lub plik ZIP dla dokumentów wielostronicowych.
+
+## Opcje
+
+- **Jakość**: suwak od 0% do 100% (domyślnie 90%). Wyższe wartości dają ostrzejsze obrazy i większe pliki. Niższe wartości kompresują mocniej.
+
+Strony są wewnętrznie renderowane w skali 2x, więc rozdzielczość wyniku jest dwukrotnie większa niż wymiary strony PDF. Standardowa strona w formacie Letter daje obraz o rozmiarze około 1 224 x 1 584 pikseli.
+
+## Format wyjściowy
+
+- **Jedna strona**: `filename.jpg`
+- **Wiele stron**: `filename_jpgs.zip` zawierający `page_1.jpg`, `page_2.jpg` itd.
+
+## Przypadki użycia
+
+- Generowanie miniatur podglądu dla systemu zarządzania dokumentami.
+- Udostępnianie strony z raportu w czacie lub e-mailu, które nie obsługują PDF.
+- Tworzenie zasobów graficznych z diagramów lub ilustracji w PDF.
+- Archiwizowanie zeskanowanych dokumentów jako pojedynczych obrazów.
+
+## Wskazówki
+
+- Aby uzyskać wynik bez strat, użyj zamiast tego [PDF na PNG](./pdf-to-png).
+- Ustawienie jakości 80-90% daje dobry kompromis między rozmiarem pliku a wiernością obrazu.
+- Jeśli potrzebujesz określonego formatu dla każdej strony, rozważ [Kreator przepływów PDF](./pdf-workflow), który ma węzeł wyjściowy PDF na obrazy.
+
+## Powiązane narzędzia
+
+- [PDF na PNG](./pdf-to-png)
+- [PDF na WebP](./pdf-to-webp)
+- [PDF na BMP](./pdf-to-bmp)
+- [PDF na TIFF](./pdf-to-tiff)
diff --git a/docs/pl/tools/pdf-to-json.md b/docs/pl/tools/pdf-to-json.md
new file mode 100644
index 00000000..b0e9918e
--- /dev/null
+++ b/docs/pl/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF na JSON
+description: Konwertuj pliki PDF na ustrukturyzowany format JSON za pomocą CPDF. Eksportuje wewnętrzną strukturę PDF jako dane JSON czytelne dla maszyn.
+---
+
+# PDF na JSON
+
+Konwertuje jeden lub więcej plików PDF na format JSON. Narzędzie używa CPDF (Coherent PDF) do serializacji wewnętrznej struktury każdego PDF do czytelnej dla maszyn reprezentacji JSON. Wynik jest zawsze dostarczany jako archiwum ZIP.
+
+## Jak to działa
+
+1. Wybierz jeden lub więcej plików PDF za pomocą selektora plików.
+2. Kliknij **Konwertuj**, aby rozpocząć przetwarzanie. Konwersja działa w tle w web workerze.
+3. Pobiera się archiwum ZIP zawierające jeden plik JSON dla każdego wejściowego PDF.
+
+Pasek stanu pokazuje postęp etapów konwersji i tworzenia archiwum ZIP.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Każdy PDF jest konwertowany do pełnej reprezentacji JSON.
+
+## Format wyjściowy
+
+- Plik `pdfs-to-json.zip` zawierający `filename.json` dla każdego wejściowego PDF.
+
+Wynik JSON przedstawia wewnętrzną strukturę obiektów PDF, w tym drzewa stron, odwołania do czcionek, metadane i strumienie zawartości.
+
+## Przypadki użycia
+
+- Sprawdzanie wewnętrznej struktury PDF w celu debugowania lub walidacji.
+- Programowe wyodrębnianie ustrukturyzowanych metadanych i właściwości stron.
+- Przekazywanie danych o strukturze PDF do własnych potoków przetwarzania.
+- Audytowanie dokumentów PDF pod kątem zgodności przez analizę ich drzew obiektów.
+
+## Wskazówki
+
+- To narzędzie zwraca surową strukturę obiektów PDF, a nie wyodrębniony tekst. Jeśli potrzebujesz tekstu stron w formacie JSON, użyj zamiast tego [Przygotuj PDF dla AI](./prepare-pdf-for-ai).
+- Do zwykłego wyodrębniania tekstu prostszy jest [PDF na Tekst](./pdf-to-text).
+- Duże pliki PDF o złożonej strukturze dają bardzo duże pliki JSON.
+
+## Powiązane narzędzia
+
+- [PDF na Tekst](./pdf-to-text)
+- [Przygotuj PDF dla AI](./prepare-pdf-for-ai)
+- [Wyodrębnij tabele PDF](./extract-tables)
diff --git a/docs/pl/tools/pdf-to-markdown.md b/docs/pl/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..8f6c6686
--- /dev/null
+++ b/docs/pl/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF na Markdown
+description: Konwertuj dokumenty PDF na format Markdown z opcjonalnym wyodrębnianiem obrazów. Obsługuje zbiorczą konwersję wielu plików.
+---
+
+# PDF na Markdown
+
+Konwertuje pliki PDF na format Markdown (`.md`), zachowując nagłówki, akapity, listy i podstawowe formatowanie. Opcjonalnie wyodrębnia i dołącza osadzone obrazy. Obsługuje konwersję pojedynczą i zbiorczą. Wykorzystuje PyMuPDF.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając na nią pliki.
+2. Opcjonalnie przełącz **Dołącz obrazy**, aby osadzić wyodrębnione obrazy w wyniku Markdown.
+3. Kliknij **Konwertuj**, aby rozpocząć przetwarzanie.
+4. Pojedynczy plik pobiera się jako `filename.md`. Wiele plików daje `markdown-files.zip`.
+
+## Opcje
+
+- **Dołącz obrazy**: po zaznaczeniu osadzone obrazy z PDF są wyodrębniane i przywoływane w wyniku Markdown. Po odznaczeniu konwertowana jest tylko treść tekstowa.
+
+## Format wyjściowy
+
+- **Jeden plik**: `filename.md`
+- **Wiele plików**: `markdown-files.zip` zawierający jeden plik `.md` dla każdego wejściowego PDF.
+
+## Przypadki użycia
+
+- Konwertowanie dokumentacji PDF na Markdown dla generatora stron statycznych, takiego jak VitePress, Hugo lub Jekyll.
+- Zamienianie artykułów naukowych w PDF na edytowalny Markdown dla aplikacji do notatek, takich jak Obsidian.
+- Migrowanie starszych baz wiedzy w PDF do formatu tekstowego przyjaznego dla Gita.
+- Wyodrębnianie ustrukturyzowanej treści z e-booków PDF w celu ponownego sformatowania.
+
+## Wskazówki
+
+- Opcja Dołącz obrazy jest przydatna, gdy PDF zawiera diagramy lub rysunki istotne dla treści. Wyłącz ją dla dokumentów z dużą ilością tekstu, aby wynik był czysty.
+- Złożone układy z paskami bocznymi, przypisami lub tekstem w wielu kolumnach mogą dawać niedoskonały Markdown. Przejrzyj wynik i w razie potrzeby popraw.
+- Aby uzyskać surowy tekst bez formatowania, użyj zamiast tego [PDF na Tekst](./pdf-to-text).
+
+## Powiązane narzędzia
+
+- [PDF na Tekst](./pdf-to-text)
+- [PDF na Word](./pdf-to-word)
+- [Przygotuj PDF dla AI](./prepare-pdf-for-ai)
diff --git a/docs/pl/tools/pdf-to-pdfa.md b/docs/pl/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..8e743276
--- /dev/null
+++ b/docs/pl/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF na PDF/A
+description: Konwertuj standardowe pliki PDF na format PDF/A do długoterminowej archiwizacji. Obsługuje poziomy zgodności PDF/A-1b, PDF/A-2b i PDF/A-3b.
+---
+
+# PDF na PDF/A
+
+PDF/A to ustandaryzowany przez ISO podzbiór PDF zaprojektowany do długoterminowego przechowywania cyfrowego. To narzędzie konwertuje standardowe pliki PDF na dokumenty zgodne z PDF/A za pomocą Ghostscript działającego bezpośrednio w przeglądarce.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF.
+2. Wybierz **Wersję PDF/A** z listy rozwijanej.
+3. Opcjonalnie włącz **Wstępne spłaszczenie PDF** dla złożonych plików, w których zwykła konwersja kończy się błędem.
+4. Kliknij **Konwertuj na PDF/A**. Wiele plików daje archiwum ZIP.
+
+## Wersje PDF/A
+
+| Wersja | Ograniczenia | Najlepsze do |
+| ------------ | -------------------------------------------------------- | --------------------------------------------------------- |
+| **PDF/A-1b** | Najbardziej restrykcyjna. Bez przezroczystości i warstw. | Maksymalnej zgodności ze starszymi systemami archiwizacji |
+| **PDF/A-2b** | Dopuszcza przezroczystość i JPEG2000. | Archiwizacji ogólnego przeznaczenia (zalecana) |
+| **PDF/A-3b** | Dopuszcza osadzone załączniki w dowolnym formacie. | Archiwizacji dokumentów wraz z plikami danych źródłowych |
+
+PDF/A-2b jest wybrana domyślnie i sprawdza się w zdecydowanej większości zastosowań archiwizacyjnych.
+
+## Opcja wstępnego spłaszczenia
+
+Niektóre pliki PDF zawierają elementy uniemożliwiające czystą konwersję do PDF/A: nietypowe kodowania czcionek, złożone stosy przezroczystości lub uszkodzone struktury wewnętrzne. Włączenie opcji **Wstępne spłaszczenie** rasteryzuje PDF w 300 DPI przed konwersją, co gwarantuje zgodność kosztem tego, że tekst przestaje być zaznaczalny. Użyj jej jako rozwiązania awaryjnego, gdy standardowa konwersja zgłasza błędy.
+
+Wstępne spłaszczenie wymaga silnika PyMuPDF WASM.
+
+## Przypadki użycia
+
+- Spełnianie wymogów archiwizacyjnych urzędów lub sądów (w wielu jurysdykcjach PDF/A jest obowiązkowy w dokumentach sądowych)
+- Składanie dokumentów do repozytoriów instytucjonalnych lub bibliotek cyfrowych
+- Zachowywanie dokumentów biznesowych, dla których oryginalne oprogramowanie może nie istnieć za dziesięć lat
+- Przygotowywanie faktur zgodnie ze standardami e-fakturowania wymagającymi PDF/A-3b z załącznikami XML
+
+## Wskazówki
+
+- Najpierw spróbuj konwersji bez wstępnego spłaszczenia. Włącz je tylko wtedy, gdy pojawi się błąd.
+- PDF/A osadza wszystkie czcionki, więc pliki wynikowe są często większe niż oryginały.
+- Jeśli w Twoim procesie wymagana jest ścisła zgodność, zweryfikuj wynik w dedykowanym walidatorze PDF/A.
+
+## Powiązane narzędzia
+
+- [Kompresuj PDF](./compress-pdf): zmniejsz rozmiar pliku po konwersji
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz formularze przed konwersją do PDF/A
+- [Usuń metadane](./remove-metadata): usuń metadane przed archiwizacją
diff --git a/docs/pl/tools/pdf-to-png.md b/docs/pl/tools/pdf-to-png.md
new file mode 100644
index 00000000..73873c28
--- /dev/null
+++ b/docs/pl/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF na PNG
+description: Konwertuj strony PDF na obrazy PNG bez strat z regulowaną skalą. Idealne do wysokiej jakości zrzutów i przezroczystych teł.
+---
+
+# PDF na PNG
+
+Konwertuje każdą stronę PDF na obraz PNG. PNG używa kompresji bezstratnej, więc wynik zachowuje każdy szczegół oryginalnej strony. Jednostronicowe PDF pobierają się jako plik `.png`, wielostronicowe jako ZIP.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Ustaw suwak **Skala**, aby sterować rozdzielczością wyniku.
+3. Kliknij **Konwertuj**, aby rozpocząć przetwarzanie.
+4. Pojedynczy plik PNG lub archiwum ZIP pobiera się automatycznie.
+
+## Opcje
+
+- **Skala**: od 1.0x do 3.0x (domyślnie 2.0x). Przy 2.0x standardowa strona w formacie Letter jest renderowana w rozmiarze około 1 224 x 1 584 pikseli. Wyższe wartości skali dają większe, ostrzejsze obrazy kosztem rozmiaru pliku i czasu przetwarzania.
+
+## Format wyjściowy
+
+- **Jedna strona**: `filename.png`
+- **Wiele stron**: `filename_pngs.zip` zawierający `page_1.png`, `page_2.png` itd.
+
+## Przypadki użycia
+
+- Wykonywanie wysokiej wierności zrzutów stron PDF do prezentacji.
+- Wyodrębnianie wykresów lub diagramów, które wymagają wyraźnych krawędzi i braku artefaktów kompresji.
+- Przygotowywanie zasobów do projektowania stron WWW z makiet w PDF.
+- Tworzenie obrazów stron bez strat do wstępnego przetwarzania OCR.
+
+## Wskazówki
+
+- Pliki PNG są znacznie większe niż JPG. Jeśli rozmiar pliku jest ważniejszy niż idealna jakość, użyj [PDF na JPG](./pdf-to-jpg) lub [PDF na WebP](./pdf-to-webp).
+- Przy skali 1.0x wynik odpowiada natywnej rozdzielczości PDF. Zwiększ do 3.0x dla eksportów w jakości do druku.
+
+## Powiązane narzędzia
+
+- [PDF na JPG](./pdf-to-jpg)
+- [PDF na WebP](./pdf-to-webp)
+- [PDF na SVG](./pdf-to-svg)
diff --git a/docs/pl/tools/pdf-to-svg.md b/docs/pl/tools/pdf-to-svg.md
new file mode 100644
index 00000000..5e767473
--- /dev/null
+++ b/docs/pl/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF na SVG
+description: Konwertuj strony PDF na skalowalną grafikę wektorową SVG. Zachowuje tekst i kształty jako ścieżki wektorowe do nieograniczonego skalowania.
+---
+
+# PDF na SVG
+
+Konwertuje każdą stronę PDF na plik SVG (Scalable Vector Graphics). W przeciwieństwie do formatów rastrowych SVG zachowuje ścieżki wektorowe, tekst i kształty, więc wynik skaluje się do dowolnego rozmiaru bez pikselizacji. Wykorzystuje PyMuPDF.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając na nią pliki. Możesz dodać wiele plików i zarządzać nimi pojedynczo.
+2. Kliknij **Konwertuj**, aby przetworzyć wszystkie przesłane pliki.
+3. Konwersje pojedynczego jednostronicowego pliku pobierają się jako samodzielny `.svg`. Wszystko inne pobiera się jako archiwum ZIP.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Każda strona jest konwertowana na SVG za pomocą natywnego eksportu wektorowego PyMuPDF.
+
+## Format wyjściowy
+
+- **Jeden plik, jedna strona**: `filename.svg`
+- **Jeden plik, wiele stron**: `filename_svg.zip` zawierający `page_1.svg`, `page_2.svg` itd.
+- **Wiele plików**: `pdf_to_svg.zip` z plikami uporządkowanymi według nazwy dokumentu źródłowego.
+
+## Przypadki użycia
+
+- Wyodrębnianie wektorowych diagramów, wykresów lub ilustracji z raportów PDF do użycia na stronach WWW.
+- Edytowanie zawartości stron PDF w edytorze wektorowym, takim jak Inkscape lub Illustrator.
+- Osadzanie skalowalnych podglądów stron w responsywnych aplikacjach webowych.
+- Wyodrębnianie logo lub grafik z broszur PDF z zachowaniem ostrych krawędzi.
+
+## Wskazówki
+
+- SVG działa najlepiej z plikami PDF zawierającymi treści wektorowe. Zeskanowane dokumenty lub PDF z dużą liczbą obrazów dadzą duże pliki SVG z osadzonymi danymi rastrowymi.
+- Dla rastrowego wyniku z PDF bogatych w obrazy użyj zamiast tego [PDF na PNG](./pdf-to-png) lub [PDF na JPG](./pdf-to-jpg).
+- To narzędzie obsługuje konwersję zbiorczą: prześlij wiele plików PDF naraz, aby przekonwertować je wszystkie jednym przebiegiem.
+
+## Powiązane narzędzia
+
+- [PDF na PNG](./pdf-to-png)
+- [PDF na JPG](./pdf-to-jpg)
+- [PDF na Markdown](./pdf-to-markdown)
diff --git a/docs/pl/tools/pdf-to-text.md b/docs/pl/tools/pdf-to-text.md
new file mode 100644
index 00000000..de63eb16
--- /dev/null
+++ b/docs/pl/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF na tekst
+description: Wyodrębnij zwykły tekst z plików PDF. Obsługuje zbiorcze wyodrębnianie z wielu plików PDF z wynikiem w plikach TXT.
+---
+
+# PDF na tekst
+
+Wyodrębnia całą zawartość tekstową z plików PDF i zapisuje ją jako zwykłe pliki `.txt`. Obsługuje przetwarzanie zbiorcze: prześlij wiele plików PDF i wyodrębnij tekst każdego z nich w jednej operacji. Wykorzystuje PyMuPDF.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając na nią pliki. Zarządzaj listą plików za pomocą przycisków Dodaj więcej i Wyczyść.
+2. Kliknij **Wyodrębnij**, aby rozpocząć przetwarzanie.
+3. Pojedynczy plik pobiera się jako `filename.txt`. Wiele plików daje archiwum `pdf-to-text.zip`.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Cały tekst jest wyodrębniany z każdej strony w kolejności czytania.
+
+## Format wyjściowy
+
+- **Jeden plik**: `filename.txt`
+- **Wiele plików**: `pdf-to-text.zip` zawierający jeden plik `.txt` dla każdego wejściowego PDF.
+
+## Przypadki użycia
+
+- Wyodrębnianie tekstu głównego z raportów PDF do indeksowania pełnotekstowego.
+- Konwertowanie e-booków lub artykułów PDF na zwykły tekst do czytania na urządzeniach z e-papierem.
+- Pobieranie tekstu z umów lub dokumentów prawnych do analizy słów kluczowych.
+- Usuwanie formatowania z plików PDF, aby uzyskać czysty tekst dla skryptów przetwarzania danych.
+- Przygotowywanie korpusu tekstowego z archiwów PDF do przetwarzania języka naturalnego.
+
+## Wskazówki
+
+- Zeskanowane pliki PDF (tylko obraz) dadzą puste pliki tekstowe, ponieważ nie ma warstwy tekstowej do wyodrębnienia. Najpierw przepuść zeskanowane dokumenty przez OCR.
+- Wynik zachowuje kolejność czytania zinterpretowaną przez PyMuPDF, która zazwyczaj biegnie od lewej do prawej i z góry na dół. Układy wielokolumnowe mogą dać przeplatany tekst.
+- Aby uzyskać ustrukturyzowany wynik z nagłówkami i formatowaniem, wypróbuj [PDF na Markdown](./pdf-to-markdown). Dla ustrukturyzowanego JSON gotowego dla AI użyj [Przygotuj PDF dla AI](./prepare-pdf-for-ai).
+
+## Powiązane narzędzia
+
+- [PDF na Markdown](./pdf-to-markdown)
+- [Przygotuj PDF dla AI](./prepare-pdf-for-ai)
+- [PDF na Word](./pdf-to-word)
diff --git a/docs/pl/tools/pdf-to-tiff.md b/docs/pl/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..a38e93db
--- /dev/null
+++ b/docs/pl/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF na TIFF
+description: Konwertuj strony PDF na obrazy TIFF, powszechnie używane w druku, faksie i archiwizacji. W razie błędu kodowania wraca do PNG.
+---
+
+# PDF na TIFF
+
+Konwertuje każdą stronę PDF na obraz TIFF. TIFF to standardowy format w produkcji poligraficznej, systemach faksowych i archiwizacji dokumentów. Narzędzie używa kompresji PackBits do kodowania TIFF i wraca do PNG, jeśli kodowanie strony się nie powiedzie.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Kliknij **Konwertuj**, aby przetworzyć plik.
+3. Pojedynczy plik TIFF lub archiwum ZIP pobiera się automatycznie.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Strony są renderowane w stałej skali 2x.
+
+## Format wyjściowy
+
+- **Jedna strona**: `filename.tiff`
+- **Wiele stron**: `filename_tiffs.zip` zawierający `page_1.tiff`, `page_2.tiff` itd.
+
+Jeśli kodowanie TIFF dla danej strony się nie powiedzie (z powodu problemów z kompresją), ta strona zostanie zapisana jako plik `.png`. W takim przypadku ZIP będzie zawierał mieszankę plików TIFF i PNG.
+
+## Przypadki użycia
+
+- Składanie dokumentów w urzędach lub systemach prawnych, które wymagają formatu TIFF.
+- Przygotowywanie stron do wysyłki faksem przez cyfrowe usługi faksowe.
+- Archiwizowanie zeskanowanych dokumentów w powszechnie obsługiwanym formacie bezstratnym.
+- Przekazywanie stron do korporacyjnych systemów zarządzania dokumentami.
+
+## Wskazówki
+
+- Pliki TIFF są duże. Jeśli jakość bez strat potrzebna jest tylko do użytku w sieci lub na ekranie, lepszym wyborem jest [PDF na PNG](./pdf-to-png).
+- Sprawdź zawartość ZIP, jeśli niektóre strony wymagały zapasowego formatu PNG, bo możesz chcieć przekonwertować je osobno.
+
+## Powiązane narzędzia
+
+- [PDF na PNG](./pdf-to-png)
+- [PDF na BMP](./pdf-to-bmp)
+- [PDF na JPG](./pdf-to-jpg)
diff --git a/docs/pl/tools/pdf-to-webp.md b/docs/pl/tools/pdf-to-webp.md
new file mode 100644
index 00000000..aca8b288
--- /dev/null
+++ b/docs/pl/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF na WebP
+description: Konwertuj strony PDF na obrazy WebP z regulowaną jakością. Mniejsze pliki niż JPG przy porównywalnej jakości obrazu.
+---
+
+# PDF na WebP
+
+Konwertuje każdą stronę PDF na obraz WebP. WebP zwykle daje pliki o 25-35% mniejsze niż JPG przy tej samej postrzeganej jakości, co czyni go dobrym wyborem do użytku w sieci.
+
+## Jak to działa
+
+1. Prześlij plik PDF, klikając strefę upuszczania lub przeciągając na nią plik.
+2. Dostosuj suwak **Jakość**.
+3. Kliknij **Konwertuj**, aby przetworzyć plik.
+4. Pojedynczy plik `.webp` lub archiwum ZIP pobiera się automatycznie.
+
+## Opcje
+
+- **Jakość**: suwak od 0% do 100% (domyślnie 85%). Steruje poziomem kompresji stratnej. Wyższe wartości zachowują więcej szczegółów.
+
+Strony są wewnętrznie renderowane w skali 2x, co daje obrazy o wymiarach mniej więcej dwukrotnie większych niż natywne wymiary PDF.
+
+## Format wyjściowy
+
+- **Jedna strona**: `filename.webp`
+- **Wiele stron**: `filename_webps.zip` zawierający `page_1.webp`, `page_2.webp` itd.
+
+## Przypadki użycia
+
+- Przygotowywanie podglądów stron dla witryn, gdzie liczy się przepustowość.
+- Generowanie lekkich wersji obrazkowych ulotek lub broszur do mediów społecznościowych.
+- Zbiorcza konwersja wielostronicowych dokumentów na zestaw obrazów zoptymalizowanych dla sieci.
+
+## Wskazówki
+
+- WebP jest obsługiwany we wszystkich nowoczesnych przeglądarkach. Dla zgodności ze starszymi środowiskami użyj [PDF na JPG](./pdf-to-jpg).
+- Jakość 80-85% jest zwykle nieodróżnialna od oryginału na ekranie, a pliki pozostają małe.
+
+## Powiązane narzędzia
+
+- [PDF na JPG](./pdf-to-jpg)
+- [PDF na PNG](./pdf-to-png)
+- [PDF na BMP](./pdf-to-bmp)
diff --git a/docs/pl/tools/pdf-to-word.md b/docs/pl/tools/pdf-to-word.md
new file mode 100644
index 00000000..f19b29d8
--- /dev/null
+++ b/docs/pl/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF na Word
+description: Konwertuj pliki PDF na edytowalne dokumenty Word (DOCX). Obsługuje zbiorczą konwersję wielu plików PDF naraz.
+---
+
+# PDF na Word
+
+Konwertuje pliki PDF na edytowalne dokumenty Word (`.docx`). Narzędzie używa PyMuPDF do odtworzenia zawartości dokumentu, zachowując tekst, podstawowe formatowanie i układ. Obsługuje konwersję pojedynczą i zbiorczą.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając na nią pliki. Możesz dodać więcej plików lub usunąć pojedyncze z listy.
+2. Kliknij **Konwertuj**, aby rozpocząć przetwarzanie.
+3. Pojedynczy plik pobiera się jako `filename.docx`. Wiele plików jest pakowanych do `converted-documents.zip`.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Każdy PDF jest konwertowany na DOCX za pomocą wbudowanego silnika konwersji PyMuPDF.
+
+## Format wyjściowy
+
+- **Jeden plik**: `filename.docx`
+- **Wiele plików**: `converted-documents.zip` zawierający jeden plik `.docx` dla każdego wejściowego PDF.
+
+## Przypadki użycia
+
+- Edytowanie tekstu w otrzymanym pliku PDF, który trzeba zmodyfikować.
+- Konwertowanie zarchiwizowanych raportów PDF do formatu, który współpracownicy mogą edytować w Microsoft Word lub Dokumentach Google.
+- Przenoszenie treści z umów lub ofert w PDF do Worda w celu nanoszenia poprawek.
+- Migrowanie starszej dokumentacji PDF do formatu edytowalnego.
+
+## Wskazówki
+
+- Złożone układy z tekstem w wielu kolumnach, osadzonymi formularzami lub dużą ilością grafiki mogą nie przekonwertować się idealnie. Przejrzyj wynik i dostosuj formatowanie w edytorze tekstu.
+- Zeskanowane pliki PDF (tylko obraz) dadzą puste lub minimalne pliki DOCX. Najpierw przepuść je przez OCR, aby dodać warstwę tekstową.
+- Tryb zbiorczy jest wydajny przy konwertowaniu całych folderów plików PDF: prześlij je wszystkie naraz.
+
+## Powiązane narzędzia
+
+- [PDF na Tekst](./pdf-to-text)
+- [PDF na Markdown](./pdf-to-markdown)
+- [Kreator przepływów PDF](./pdf-workflow)
diff --git a/docs/pl/tools/pdf-to-zip.md b/docs/pl/tools/pdf-to-zip.md
new file mode 100644
index 00000000..5f7cb586
--- /dev/null
+++ b/docs/pl/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDF na ZIP
+description: Spakuj wiele plików PDF w jedno archiwum ZIP, aby łatwo je udostępniać i przechowywać.
+---
+
+# PDF na ZIP
+
+Spakuj wiele plików PDF w jedno archiwum ZIP. To proste narzędzie do pakowania: bez konwersji, kompresji ani modyfikacji samych plików PDF.
+
+## Jak to działa
+
+1. Prześlij wiele plików PDF za pomocą strefy upuszczania.
+2. Przejrzyj listę plików. Usuń te, których nie chcesz dołączać.
+3. Kliknij przycisk przetwarzania.
+4. Archiwum ZIP zawierające wszystkie przesłane pliki PDF pobiera się natychmiast.
+
+## Funkcje
+
+- Przyjmuje dowolną liczbę plików PDF
+- Usuwanie pojedynczych plików przed utworzeniem archiwum
+- Zachowuje oryginalne nazwy plików wewnątrz ZIP
+- Brak modyfikacji zawartości PDF: pliki są pakowane bez zmian
+- Wyświetla nazwę i rozmiar każdego przesłanego pliku PDF
+
+## Przypadki użycia
+
+- Pakowanie zestawu faktur lub paragonów jako załącznika e-mail
+- Pakowanie rezultatów projektu (wielu raportów PDF) do przekazania
+- Tworzenie jednego pliku do pobrania dla kolekcji formularzy lub szablonów
+- Archiwizowanie partii dokumentów w jednym skompresowanym pliku
+
+## Wskazówki
+
+- Archiwum ZIP używa oryginalnych nazw plików PDF. Jeśli masz pliki o tej samej nazwie, zmień je przed przesłaniem, aby uniknąć konfliktów.
+- To narzędzie nie kompresuje samych plików PDF. Aby zmniejszyć rozmiar, najpierw przepuść je przez Kompresuj PDF, a potem spakuj tym narzędziem.
+
+## Powiązane narzędzia
+
+- [Połącz PDF](./merge-pdf)
+- [Podziel PDF](./split-pdf)
+- [Kompresuj PDF](./compress-pdf)
diff --git a/docs/pl/tools/pdf-workflow.md b/docs/pl/tools/pdf-workflow.md
new file mode 100644
index 00000000..44e53299
--- /dev/null
+++ b/docs/pl/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Kreator przepływów PDF
+description: Buduj własne potoki przetwarzania PDF wizualnie, łącząc węzły na kanwie. Łącz operacje takie jak scalanie, kompresja, znak wodny i eksport.
+---
+
+# Kreator przepływów PDF
+
+Kreator przepływów pozwala połączyć wiele operacji na PDF w jeden zautomatyzowany potok. Zamiast uruchamiać narzędzia po kolei, łączysz wizualny graf węzłów (wejście, przetwarzanie, wyjście) i wykonujesz wszystko jednym kliknięciem. Twoje pliki nigdy nie opuszczają przeglądarki.
+
+## Jak to działa
+
+Interfejs jest podzielony na trzy panele: **przybornik węzłów** po lewej, **kanwę** pośrodku i **panel ustawień** po prawej, który pojawia się po zaznaczeniu węzła.
+
+1. **Dodawaj węzły**, klikając je na lewym pasku bocznym lub przeciągając bezpośrednio na kanwę. Użyj paska wyszukiwania u góry przybornika, aby filtrować według nazwy.
+2. **Łącz węzły**, przeciągając z gniazda wyjściowego (dół węzła) do gniazda wejściowego (góra innego węzła). Połączenia biegną od góry do dołu.
+3. **Konfiguruj ustawienia**, klikając węzeł, aby otworzyć jego panel ustawień po prawej. Każdy typ węzła ma własne opcje (zakresy stron, suwaki jakości, hasła itd.).
+4. **Uruchom przepływ**, klikając przycisk **Uruchom** na pasku narzędzi. Silnik wykonuje węzły w porządku topologicznym, przetwarzając każdy po kolei. Pasek stanu na dole śledzi postęp.
+5. **Pobierz wyniki**: końcowy węzeł Pobierz zapisuje końcowy PDF (lub ZIP, jeśli powstaje wiele plików).
+
+## Kategorie węzłów
+
+Węzły są podzielone na sześć kategorii, każda oznaczona kolorem na kanwie:
+
+- **Wejście** (niebieski): Wejście PDF, Wejście obrazów, Word/Excel/PowerPoint na PDF oraz ponad 15 innych konwerterów formatów, które dostarczają pliki do potoku.
+- **Edycja i adnotacje** (indygo): Przytnij, Greyscale, Odwróć kolory, Znak wodny, Numery stron, Nagłówek i Stopka, Efekt skanera, Dostosuj kolory, Kolor tła, Usuń puste strony, Usuń adnotacje.
+- **Organizacja i zarządzanie** (fiolet): Połącz, Podziel, Wyodrębnij strony, Obróć, Usuń strony, Odwróć, Dodaj pustą stronę, Podziel strony, N-Up, Napraw rozmiar strony, Połącz w jedną stronę, Broszura, Plakatowanie, Edytuj metadane, Spis treści, OCR.
+- **Optymalizacja i naprawa** (bursztyn): Kompresuj, Rasteryzuj, Linearyzuj, Wyprostuj, PDF na PDF/A, Czcionka na krzywe, Napraw.
+- **Zabezpieczanie PDF** (róż): Szyfruj, Odszyfruj, Sanityzuj, Spłaszcz, Podpis cyfrowy, Redaguj.
+- **Wyjście** (morski): Pobierz (automatycznie wykrywa pojedynczy PDF lub ZIP), PDF na obrazy, PDF na tekst, PDF na DOCX, PDF na XLSX, PDF na CSV, PDF na SVG, PDF na Markdown, Wyodrębnij obrazy.
+
+## Zapisywanie i wczytywanie przepływów
+
+Pasek narzędzi udostępnia cztery opcje trwałego zapisu:
+
+- **Zapisz**: zapisuje bieżący przepływ jako nazwany szablon w pamięci lokalnej przeglądarki. Możesz zapisać wiele szablonów.
+- **Wczytaj**: otwiera okno z listą wszystkich zapisanych szablonów. Kliknij Wczytaj, aby przywrócić szablon, lub usuń te, których już nie potrzebujesz.
+- **Eksportuj**: pobiera przepływ jako plik `.json`, aby można go było udostępnić lub zachować jako kopię zapasową.
+- **Importuj**: wczytuje z dysku plik przepływu `.json`, przywracając wszystkie węzły, pozycje i połączenia.
+
+Szablony są zachowywane między sesjami w pamięci lokalnej. Wyeksportowane pliki JSON są przenośne między przeglądarkami i urządzeniami.
+
+## Model wykonania
+
+Silnik buduje graf zależności z Twoich połączeń i wykonuje węzły w porządku topologicznym. Jeśli którykolwiek węzeł zawiedzie, wykonanie zostaje wstrzymane, a niepowodzenie oznaczone na czerwono. Kilka zasad, o których warto pamiętać:
+
+- Każdy przepływ potrzebuje co najmniej jednego węzła **Wejście** i jednego węzła **Wyjście**.
+- Silnik wykrywa zależności cykliczne i blokuje wykonanie z błędem.
+- Węzeł **Szyfruj** musi być ostatnim krokiem przetwarzania przed węzłem wyjściowym. Umieszczenie go wcześniej wywoła ostrzeżenie walidacji, ponieważ kolejne węzły nie mogą operować na zaszyfrowanych danych.
+- Pliki PDF chronione hasłem proszą o hasło podczas wykonania.
+- Obsługiwane są wejścia z wieloma plikami PDF: węzeł Połącz może je scalić, a węzły przetwarzania zbiorczego przetworzą każdy PDF osobno.
+
+## Typy gniazd
+
+Połączenia używają typowanych gniazd, aby zapobiegać nieprawidłowemu łączeniu:
+
+- **PDF** (indygo): pojedynczy dokument PDF.
+- **MultiPDF** (bursztyn): wiele dokumentów PDF zebranych razem.
+- **Image** (zielony): obraz binarny.
+
+## Opcje
+
+Każdy węzeł ma własną konfigurację dostępną w prawym panelu ustawień. Typowe wzorce to:
+
+- **Zakresy stron** w węzłach Podziel, Wyodrębnij strony, Usuń strony
+- **Suwaki jakości** w węzłach wyjściowych konwersji obrazów
+- **Pola haseł** w węzłach Szyfruj i Odszyfruj
+- **Pola tekstowe** dla Znaku wodnego, Nagłówka i Stopki, Edycji metadanych
+- **Kąty obrotu** w węźle Obróć
+- **Poziom kompresji** w węźle Kompresuj
+- **Wybór języka OCR** w węźle OCR
+
+## Przypadki użycia
+
+- **Potok przetwarzania faktur**: Wejście PDF -> OCR -> Wyodrębnij tabele -> Pobierz jako CSV.
+- **Standaryzacja raportów**: Word na PDF -> Napraw rozmiar strony -> Dodaj numery stron -> Znak wodny -> Kompresuj -> Pobierz.
+- **Przygotowanie do archiwizacji**: Wejście PDF -> Napraw -> Spłaszcz -> Sanityzuj -> PDF na PDF/A -> Pobierz.
+- **Zbiorcze wyodrębnianie obrazów**: Wejście PDF (wiele plików) -> Wyodrębnij obrazy -> Pobierz ZIP.
+- **Broszury gotowe do druku**: Wejście PDF -> Broszura -> Przytnij -> Kompresuj -> Pobierz.
+- **Bezpieczna dystrybucja**: Wejście PDF -> Redaguj -> Usuń adnotacje -> Szyfruj -> Pobierz.
+
+## Wskazówki
+
+- Użyj klawisza **Delete** lub **Backspace**, aby usunąć zaznaczony węzeł z kanwy.
+- Kliknij przycisk **X** na pasku stanu węzła, aby usunąć go bezpośrednio.
+- Przesuwaj kanwę, klikając i przeciągając puste miejsce. Podczas przesuwania kursor zmienia się w ikonę chwytania.
+- Na urządzeniach mobilnych użyj przycisku **+** na pasku narzędzi, aby przełączyć przybornik węzłów.
+- Jeśli przepływ tworzy wiele plików wyjściowych, węzeł Pobierz automatycznie pakuje je do ZIP.
+- Zacznij prosto: zbuduj i przetestuj potok z dwóch węzłów, zanim dodasz złożoność.
+
+## Powiązane narzędzia
+
+- [PDF na Tekst](./pdf-to-text)
+- [PDF na Excel](./pdf-to-excel)
+- [Wyodrębnij obrazy](./extract-images)
+- [PDF na Markdown](./pdf-to-markdown)
diff --git a/docs/pl/tools/png-to-pdf.md b/docs/pl/tools/png-to-pdf.md
new file mode 100644
index 00000000..6b70c5f6
--- /dev/null
+++ b/docs/pl/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG na PDF
+description: Konwertuj jeden lub więcej obrazów PNG na dokument PDF z regulowaną jakością, w całości w przeglądarce.
+---
+
+# PNG na PDF
+
+Konwertuj obrazy PNG na PDF z zachowaniem pełnej rozdzielczości. Każdy plik PNG staje się osobną stroną, dopasowaną do wymiarów oryginalnego obrazu. Przezroczystość jest obsługiwana automatycznie.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :----------- |
+| PNG | `.png` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki PNG. Możesz wybrać kilka naraz.
+2. Zarządzaj listą plików: usuń niepotrzebne lub dodaj kolejne.
+3. Wybierz poziom **Jakości PDF** z listy rozwijanej.
+4. Kliknij **Konwertuj na PDF**. Wynik pobiera się jako `from_jpgs.pdf`.
+
+Narzędzie używa pdf-lib do bezpośredniego osadzania każdego obrazu. Jeśli PNG nie może zostać osadzony natywnie (np. z powodu nietypowego profilu kolorów), narzędzie wraca do ponownego renderowania przez canvas jako JPEG.
+
+## Opcje
+
+**Jakość PDF** steruje kompresją stosowaną przed osadzeniem:
+
+- **Wysoka jakość**: minimalna kompresja, największy rozmiar pliku.
+- **Średnia jakość** (domyślnie): dobry kompromis między rozmiarem a wyrazistością.
+- **Niska jakość**: maksymalna kompresja, najmniejszy wynik.
+
+## Przypadki użycia
+
+- Konwertowanie zrzutów ekranu na wielostronicowy PDF do zgłoszeń błędów lub dokumentacji
+- Pakowanie eksportów projektów interfejsu w jeden plik do recenzji
+- Zamienianie eksportów diagramów (draw.io, Excalidraw) w PDF do udostępniania
+- Składanie zestawu obrazów wykresów w raport
+
+## Wskazówki
+
+- Pliki PNG z przezroczystością dostają w PDF białe tło. Jeśli potrzebujesz innego tła, edytuj obrazy wcześniej.
+- Dla zrzutów ekranu i diagramów z ostrymi krawędziami i tekstem wysoka jakość pozwala uniknąć artefaktów kompresji JPEG. Średnia lub niska może wewnętrznie konwertować do JPEG.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [JPG na PDF](./jpg-to-pdf)
+- [SVG na PDF](./svg-to-pdf)
diff --git a/docs/pl/tools/posterize-pdf.md b/docs/pl/tools/posterize-pdf.md
new file mode 100644
index 00000000..e29da746
--- /dev/null
+++ b/docs/pl/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Plakatowanie PDF
+description: Podziel strony PDF na siatkę mniejszych stron, aby wydrukować duży format na wielu arkuszach.
+---
+
+# Plakatowanie PDF
+
+Podziel każdą stronę PDF na siatkę mniejszych podstron. To narzędzie do drukowania jednej strony na wielu arkuszach papieru, które następnie składasz razem w duży plakat lub baner.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Ustaw liczbę **wierszy** i **kolumn**, aby określić siatkę (np. 2 wiersze x 2 kolumny dzielą każdą stronę na 4 podstrony).
+3. Opcjonalnie podaj zakres stron, aby ograniczyć plakatowanie do wybranych stron.
+4. Podgląd pokazuje nakładkę siatki na bieżącej stronie, dzięki czemu widzisz, gdzie nastąpią cięcia.
+5. Przechodź między stronami, aby sprawdzić nakładkę na innych stronach.
+6. Kliknij przycisk przetwarzania. Każda komórka siatki staje się osobną stroną w wynikowym PDF.
+
+## Funkcje
+
+- Konfigurowalna liczba wierszy i kolumn dla elastycznych rozmiarów siatki
+- Podgląd na żywo z nakładką siatki pokazującą dokładnie, gdzie strony zostaną podzielone
+- Filtr zakresu stron do plakatowania tylko wybranych stron
+- Nawigacja strona po stronie w podglądzie
+- Buforowane migawki stron dla szybkiej nawigacji w podglądzie
+- Czerwone przerywane linie siatki wyraźnie oznaczają granice cięć
+
+## Opcje
+
+| Opcja | Opis |
+| ---------------- | ----------------------------------------------------------- |
+| **Wiersze** | Liczba podziałów poziomych (domyślnie: 1) |
+| **Kolumny** | Liczba podziałów pionowych (domyślnie: 1) |
+| **Zakres stron** | Które strony poddać plakatowaniu (puste = wszystkie strony) |
+
+## Zastosowania
+
+- Drukowanie PDF o rozmiarze plakatu na standardowych arkuszach A4 lub Letter, które złożysz na ścianie
+- Tworzenie dużych banerów z jednostronicowego projektu PDF
+- Dzielenie wielkoformatowych rysunków technicznych na drukowalne kafelki
+- Drukowanie wielkoformatowe bez dostępu do drukarki szerokoformatowej
+
+## Wskazówki
+
+- Siatka 2x2 zamienia jedną stronę w 4 strony. Siatka 3x3 zamienia jedną stronę w 9. Zaplanuj siatkę zależnie od tego, jak duży ma być końcowy złożony wydruk.
+- Nakładka w podglądzie pomaga sprawdzić, czy ważna treść nie wypada na linii cięcia. W razie potrzeby zmień wiersze/kolumny.
+- Do operacji odwrotnej (umieszczenia wielu stron na jednym arkuszu) użyj narzędzia [PDF N-Up](./n-up-pdf).
+
+## Powiązane narzędzia
+
+- [PDF N-Up](./n-up-pdf)
+- [Podziel strony](./divide-pages)
+- [Podziel PDF](./split-pdf)
diff --git a/docs/pl/tools/powerpoint-to-pdf.md b/docs/pl/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..0bd018c6
--- /dev/null
+++ b/docs/pl/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint na PDF
+description: Konwertuj prezentacje PowerPoint (PPT, PPTX) i pliki ODP na PDF z zachowaniem formatowania slajdów.
+---
+
+# PowerPoint na PDF
+
+Konwertuj pliki prezentacji na PDF. Każdy slajd staje się stroną w dokumencie wynikowym, a tekst, obrazy, kształty i przejścia są renderowane przez działający w przeglądarce silnik LibreOffice. Obsługiwane są zarówno nowe, jak i starsze formaty PowerPoint oraz format OpenDocument Presentation.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :------------------------ | :----------- |
+| PowerPoint (nowy) | `.pptx` |
+| PowerPoint (starszy) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść pliki prezentacji.
+2. Przejrzyj listę plików. Dodaj kolejne lub usuń zbędne.
+3. Kliknij **Konwertuj na PDF**. Silnik LibreOffice ładuje się przy pierwszym użyciu, a następnie konwertuje każdy plik.
+4. Pojedynczy plik pobiera się bezpośrednio jako PDF. Wiele plików jest pakowanych do `powerpoint-converted.zip`.
+
+## Opcje
+
+To narzędzie nie ma dodatkowych ustawień. Slajdy są renderowane w swoich natywnych wymiarach.
+
+## Wynik
+
+| Liczba plików | Wynik |
+| :------------ | :------------------------------------------------------------------------ |
+| 1 plik | Pobranie pojedynczego PDF (oryginalna nazwa pliku z rozszerzeniem `.pdf`) |
+| 2+ pliki | Archiwum ZIP (`powerpoint-converted.zip`) zawierające jeden PDF na plik |
+
+## Zastosowania
+
+- Konwersja prezentacji na PDF przed udostępnieniem odbiorcom, którzy mogą nie mieć PowerPointa
+- Tworzenie drukowalnej wersji slajdów jako materiału na konferencję lub warsztaty
+- Archiwizowanie prezentacji w formacie wyglądającym identycznie na każdym urządzeniu
+- Wsadowa konwersja biblioteki prezentacji ODP z LibreOffice Impress na PDF
+- Przygotowanie wersji PDF prezentacji dla inwestorów jako załącznika do e-maila
+
+## Wskazówki
+
+- Animacje i przejścia slajdów nie są odwzorowywane w PDF. Każdy slajd jest zapisywany jako statyczna strona.
+- Osadzone filmy nie pojawią się w wyniku. W razie potrzeby zastąp je zrzutem ekranu lub obrazem zastępczym.
+- Notatki prelegenta nie są uwzględniane w domyślnym eksporcie PDF. Jeśli potrzebujesz notatek, najpierw wyeksportuj plik z natywnego widoku "Drukuj notatki" w PowerPoincie.
+- Silnik LibreOffice jest buforowany po pierwszym załadowaniu, więc konwersja drugiej prezentacji w tej samej sesji jest znacznie szybsza.
+
+## Powiązane narzędzia
+
+- [Word na PDF](./word-to-pdf)
+- [Excel na PDF](./excel-to-pdf)
+- [Obrazy do PDF](./image-to-pdf)
diff --git a/docs/pl/tools/prepare-pdf-for-ai.md b/docs/pl/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..f920490c
--- /dev/null
+++ b/docs/pl/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Przygotuj PDF dla AI
+description: Wyodrębnij zawartość PDF do ustrukturyzowanego JSON zoptymalizowanego dla LLM i potoków AI, takich jak LlamaIndex. Obsługuje przetwarzanie wsadowe.
+---
+
+# Przygotuj PDF dla AI
+
+Wyodrębnia zawartość plików PDF i strukturyzuje ją jako JSON zoptymalizowany pod kątem wczytywania przez duże modele językowe (LLM) i frameworki AI, takie jak LlamaIndex. Zawartość każdej strony jest wyodrębniana i porządkowana w ustrukturyzowanym formacie gotowym dla potoków RAG, chatbotów lub systemów wyszukiwania semantycznego.
+
+## Jak to działa
+
+1. Wgraj jeden lub więcej plików PDF, klikając strefę upuszczania lub przeciągając na nią pliki.
+2. Kliknij **Wyodrębnij**, aby rozpocząć przetwarzanie.
+3. Pojedynczy plik pobiera się jako `filename_llm.json`. Wiele plików daje archiwum `pdf-for-ai.zip`.
+
+Narzędzie korzysta z integracji PyMuPDF z LlamaIndex, aby wyodrębnić zawartość na poziomie stron wraz z metadanymi, tworząc wynik, który można bezpośrednio wczytać do frameworków AI.
+
+## Opcje
+
+To narzędzie nie ma konfigurowalnych opcji. Wszystkie strony są wyodrębniane z pełnym tekstem i metadanymi.
+
+## Format wyniku
+
+- **Pojedynczy plik**: `filename_llm.json`
+- **Wiele plików**: `pdf-for-ai.zip` zawierający jeden `_llm.json` na każdy wejściowy PDF.
+
+Wynik JSON jest zgodny ze schematem dokumentu LlamaIndex, z tekstem poszczególnych stron i polami metadanych.
+
+## Zastosowania
+
+- Przygotowywanie dokumentów PDF dla potoków generowania wspomaganego wyszukiwaniem (RAG).
+- Budowanie przeszukiwalnej bazy wiedzy z archiwów PDF dla chatbota AI.
+- Przekazywanie raportów PDF do przepływów analizy opartych na LLM.
+- Wstępne przetwarzanie prac naukowych dla systemów wyszukiwania semantycznego i odpowiadania na pytania.
+- Tworzenie ustrukturyzowanych danych treningowych z kolekcji dokumentów PDF.
+
+## Wskazówki
+
+- Do zwykłego wyodrębniania tekstu bez formatowania pod AI użyj [PDF na Tekst](./pdf-to-text).
+- Do wyniku w Markdown zachowującego nagłówki i strukturę użyj [PDF na Markdown](./pdf-to-markdown).
+- Zeskanowane pliki PDF dadzą pusty lub minimalny wynik. Najpierw uruchom na nich OCR, aby dodać warstwę tekstową przed wyodrębnieniem.
+
+## Powiązane narzędzia
+
+- [PDF na Tekst](./pdf-to-text)
+- [PDF na Markdown](./pdf-to-markdown)
+- [PDF na JSON](./pdf-to-json)
diff --git a/docs/pl/tools/protect-pdf.md b/docs/pl/tools/protect-pdf.md
new file mode 100644
index 00000000..af62c8dc
--- /dev/null
+++ b/docs/pl/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Zabezpiecz PDF
+description: Zabezpiecz pliki PDF hasłem za pomocą 256-bitowego szyfrowania AES. Ustaw hasła użytkownika i właściciela z konfigurowalnymi ograniczeniami użycia.
+---
+
+# Zabezpiecz PDF
+
+Zablokuj PDF hasłem, aby otworzyć go mogły tylko upoważnione osoby. BentoPDF używa 256-bitowego szyfrowania AES, tego samego standardu, którego używają banki i agencje rządowe, stosowanego w całości w przeglądarce przez QPDF.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Wpisz **hasło użytkownika** (wymagane). To hasło, którego potrzebują osoby otwierające plik.
+3. Opcjonalnie wpisz **hasło właściciela**. Po jego ustawieniu PDF zyskuje ograniczenia użycia, które blokują drukowanie, edycję, kopiowanie i adnotacje.
+4. Kliknij **Szyfruj PDF**.
+5. Pobierz zaszyfrowany plik.
+
+## Rodzaje haseł
+
+### Hasło użytkownika (wymagane)
+
+Hasło użytkownika to to, co odbiorcy wpisują, aby otworzyć PDF. Bez niego dokument jest całkowicie niedostępny. Każdy zaszyfrowany PDF musi je mieć.
+
+### Hasło właściciela (opcjonalne)
+
+Hasło właściciela kontroluje, co upoważniony użytkownik może zrobić po otwarciu pliku. Gdy ustawisz odrębne hasło właściciela, BentoPDF automatycznie stosuje najsurowszy zestaw ograniczeń:
+
+- Modyfikacja wyłączona
+- Wyodrębnianie/kopiowanie wyłączone
+- Drukowanie wyłączone
+- Adnotacje wyłączone
+- Wypełnianie formularzy wyłączone
+- Składanie dokumentu wyłączone
+
+Jeśli pozostawisz hasło właściciela puste, PDF jest zaszyfrowany (nadal wymaga hasła użytkownika do otwarcia), ale po otwarciu nie ma ograniczeń użycia.
+
+## Szczegóły szyfrowania
+
+- **Algorytm**: AES-256 (256-bitowy Advanced Encryption Standard)
+- **Długość klucza**: 256 bitów
+- **Standard**: szyfrowanie PDF 2.0 (implementacja QPDF)
+
+Złamanie AES-256 metodą siłową jest przy obecnej technologii obliczeniowo niewykonalne. Bezpieczeństwo zaszyfrowanego PDF zależy wyłącznie od siły hasła.
+
+## Zastosowania
+
+- Ochrona poufnych raportów finansowych przed wysłaniem e-mailem
+- Zabezpieczanie dokumentów prawnych udostępnianych drugiej stronie sporu
+- Dodawanie hasła do dokumentacji medycznej lub danych osobowych
+- Dystrybucja płatnych treści (e-booków, raportów) z kontrolą dostępu
+- Zgodność z politykami ochrony danych wymagającymi szyfrowania danych w spoczynku
+
+## Wskazówki
+
+- Użyj silnego, unikalnego hasła. Idealna jest fraza hasła z co najmniej 12 znaków, z wielkimi i małymi literami, cyframi i symbolami.
+- Przekaż hasło innym kanałem (telefon, SMS), nigdy w tym samym e-mailu co PDF.
+- Jeśli chcesz tylko ograniczyć działania (bez drukowania, bez kopiowania) bez wymagania hasła do otwarcia, użyj zamiast tego narzędzia Zmień uprawnienia.
+
+## Powiązane narzędzia
+
+- [Odszyfruj PDF](./unlock-pdf): usuń szyfrowanie, gdy znasz hasło
+- [Zmień uprawnienia](./change-permissions): zmień wybrane ograniczenia użycia
+- [Usuń restrykcje](./remove-restrictions): usuń wszystkie zabezpieczenia z PDF
+- [Sanityzuj PDF](./sanitize-pdf): usuń ukrytą zawartość przed szyfrowaniem
diff --git a/docs/pl/tools/psd-to-pdf.md b/docs/pl/tools/psd-to-pdf.md
new file mode 100644
index 00000000..18d92e5d
--- /dev/null
+++ b/docs/pl/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD na PDF
+description: Konwertuj pliki Photoshop (PSD) na PDF w przeglądarce. Za darmo, prywatnie, bez oprogramowania Adobe.
+---
+
+# PSD na PDF
+
+Konwertuj pliki Adobe Photoshop PSD na dokumenty PDF. PSD to natywny format Photoshopa, a jego otwarcie zwykle wymaga drogiego oprogramowania Adobe. To narzędzie renderuje spłaszczony obraz złożony z pliku PSD jako stronę PDF w pełnej rozdzielczości.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :-------------- | :----------- | :---------------------------------- |
+| Adobe Photoshop | `.psd` | Renderuje spłaszczony obraz złożony |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść pliki PSD. Obsługiwanych jest wiele plików.
+2. Przejrzyj listę plików. Usuń niechciane pliki ikoną kosza lub użyj **Dodaj więcej plików**, aby dodać kolejne.
+3. Kliknij **Konwertuj na PDF**. Silnik PyMuPDF odczytuje plik PSD i osadza obraz złożony na stronie PDF w oryginalnej rozdzielczości.
+4. Pojedynczy PSD daje jeden PDF. Gdy wgrasz wiele plików PSD, zostaną połączone w jeden wielostronicowy PDF o nazwie `psd_to_pdf.pdf`, w którym każdy PSD stanowi jedną stronę.
+
+## Opcje
+
+Nie są potrzebne żadne ustawienia. Konwerter używa spłaszczonych danych obrazu z pliku PSD.
+
+## Zastosowania
+
+- Podgląd projektów Photoshopa bez otwierania Photoshopa
+- Wysyłanie wersji roboczych projektów klientom, którzy nie mają Adobe Creative Suite
+- Drukowanie grafik w wysokiej rozdzielczości z plików PSD
+- Tworzenie portfolio PDF z wielu plików projektów PSD, gdzie każdy staje się stroną jednego dokumentu
+
+## Wskazówki
+
+- Konwersja renderuje złożony (spłaszczony) widok PSD. Poszczególne warstwy, warstwy dopasowania i efekty warstw nie są zachowywane jako osobne elementy w PDF.
+- Wiele plików PSD jest łączonych w jeden wielostronicowy PDF zamiast osobnych plików PDF. Przydaje się to do budowania portfolio lub lookbooków.
+- Pliki PSD o bardzo wysokiej rozdzielczości (pliki do druku 300+ DPI) dadzą duże pliki PDF. Narzędzie zachowuje pełną rozdzielczość.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [PNG na PDF](./png-to-pdf)
+- [VSD na PDF](./vsd-to-pdf)
diff --git a/docs/pl/tools/pub-to-pdf.md b/docs/pl/tools/pub-to-pdf.md
new file mode 100644
index 00000000..776a8307
--- /dev/null
+++ b/docs/pl/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB na PDF
+description: Konwertuj pliki Microsoft Publisher (PUB) na PDF w przeglądarce. Za darmo, prywatnie, bez instalowania oprogramowania.
+---
+
+# PUB na PDF
+
+Konwertuj pliki Microsoft Publisher na PDF. Publisher to program do składu dołączany do niektórych wydań Microsoft Office, ale większość osób go nie ma. To narzędzie pozwala każdemu konwertować pliki PUB na PDF bezpośrednio w przeglądarce, bez oprogramowania Microsoftu.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :------------------ | :----------- | :---------------------- |
+| Microsoft Publisher | `.pub` | Dokumenty do składu DTP |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść pliki PUB. Można wgrać wiele plików naraz.
+2. Przejrzyj listę plików. Usuń niechciane pliki ikoną kosza lub kliknij **Dodaj więcej plików**, aby dodać kolejne.
+3. Kliknij **Konwertuj na PDF**. Silnik oparty na LibreOffice ładuje się w przeglądarce i konwertuje każdy plik PUB, zachowując układ, obrazy i pola tekstowe.
+4. Pojedynczy plik pobiera się bezpośrednio jako PDF. Wiele plików jest dostarczanych w archiwum ZIP o nazwie `pub-to-pdf.zip`.
+
+## Opcje
+
+Nie jest potrzebna dodatkowa konfiguracja. Konwerter automatycznie obsługuje układ PUB.
+
+## Zastosowania
+
+- Otwieranie ulotki lub biuletynu PUB od klienta bez kupowania Microsoft Publisher
+- Konwersja biuletynów parafialnych, programów wydarzeń lub szkolnych gazetek utworzonych w Publisherze
+- Archiwizowanie materiałów marketingowych z Publishera w powszechnie dostępnym formacie
+- Drukowanie plików PUB w systemie bez zainstalowanego Publishera
+
+## Wskazówki
+
+- Złożone układy Publishera z nakładającymi się polami tekstowymi i precyzyjnym pozycjonowaniem mogą nieco się przesunąć podczas konwersji. Sprawdź wynik, jeśli dokładne położenie jest krytyczne.
+- Silnik LibreOffice inicjalizuje się raz na sesję. Pierwsza konwersja trwa dłużej, kolejne są szybsze.
+- Aby konwersja plików Publishera była jak najwierniejsza, upewnij się, że niestandardowe czcionki użyte w oryginale są standardowymi czcionkami systemowymi.
+
+## Powiązane narzędzia
+
+- [VSD na PDF](./vsd-to-pdf)
+- [ODP na PDF](./odp-to-pdf)
diff --git a/docs/pl/tools/rasterize-pdf.md b/docs/pl/tools/rasterize-pdf.md
new file mode 100644
index 00000000..e715959e
--- /dev/null
+++ b/docs/pl/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasteryzuj PDF
+description: Konwertuj strony PDF na PDF oparty na obrazach. Spłaszcz wszystkie warstwy, usuń zaznaczalny tekst i kontroluj DPI oraz format obrazu.
+---
+
+# Rasteryzuj PDF
+
+Rasteryzacja zamienia każdą stronę PDF w obraz i składa te obrazy z powrotem w PDF. Wynik wygląda identycznie jak oryginał, ale nie zawiera zaznaczalnego tekstu, elementów interaktywnych ani edytowalnych warstw. To w praktyce wysokiej jakości fotokopia.
+
+## Jak to działa
+
+1. Wgraj jeden lub więcej plików PDF.
+2. Ustaw **DPI** (rozdzielczość) wyniku rasteryzacji.
+3. Wybierz **format obrazu**: PNG dla jakości bezstratnej lub JPEG dla mniejszych plików.
+4. Opcjonalnie zaznacz **Konwertuj na odcienie szarości**.
+5. Kliknij **Rasteryzuj PDF**. Wiele plików pobiera się jako ZIP.
+
+## Opcje
+
+| Ustawienie | Wartości | Domyślnie |
+| --------------------- | --------------------------------- | --------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Format obrazu** | PNG (bezstratny), JPEG (mniejszy) | PNG |
+| **Odcienie szarości** | Wł./Wył. | Wył. |
+
+## Wskazówki dotyczące DPI
+
+- **72**: tylko do oglądania na ekranie, najmniejszy rozmiar pliku
+- **150**: dobry kompromis do ogólnego użytku
+- **200**: wyraźniejszy tekst, umiarkowany rozmiar pliku
+- **300**: jakość do druku
+- **600**: wysokiej jakości archiwizacja lub druk profesjonalny
+
+## Zastosowania
+
+- Uniemożliwienie wyodrębnienia tekstu z poufnych dokumentów przed udostępnieniem
+- Eliminowanie problemów z zależnością od czcionek przez zamianę tekstu na piksele
+- Tworzenie "płaskiej" wersji PDF ze złożonymi warstwami lub przezroczystością, które wyglądają inaczej w różnych przeglądarkach
+- Przygotowanie PDF dla systemu, który przyjmuje tylko dane wejściowe w postaci obrazów
+- Usuwanie ukrytej zawartości (jak śledzone zmiany lub dane formularzy) przez sprowadzenie PDF do samych obrazów
+
+## Wskazówki
+
+- 150 DPI w PNG to solidne ustawienie domyślne. Wybieraj więcej tylko do druku lub gdy musisz powiększać drobne szczegóły.
+- JPEG daje wyraźnie mniejsze pliki, ale wprowadza artefakty kompresji na ostrych krawędziach tekstu.
+- Rasteryzacja jest nieodwracalna, więc zachowaj oryginalny PDF, jeśli możesz później potrzebować edytowalnego tekstu.
+
+## Powiązane narzędzia
+
+- [Kompresuj PDF](./compress-pdf): zmniejsz rozmiar zrasteryzowanego PDF
+- [Wyprostuj PDF](./deskew-pdf): wyprostuj strony przed rasteryzacją zeskanowanych dokumentów
+- [Czcionka na krzywe](./font-to-outline): zamień czcionki na ścieżki wektorowe, jeśli chcesz zachować skalowalność
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz formularze bez konwersji na obrazy
diff --git a/docs/pl/tools/remove-annotations.md b/docs/pl/tools/remove-annotations.md
new file mode 100644
index 00000000..54dad9e6
--- /dev/null
+++ b/docs/pl/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Usuń adnotacje
+description: Usuń z PDF wszystkie komentarze, wyróżnienia, łącza i inne adnotacje jednym kliknięciem.
+---
+
+# Usuń adnotacje
+
+Oczyść PDF, usuwając wszystkie adnotacje: komentarze, wyróżnienia, karteczki, znaczniki tekstu, łącza, pieczęcie i wszelkie inne obiekty adnotacji osadzone w dokumencie. Treść stron (tekst, obrazy, grafika) pozostaje nietknięta.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Narzędzie wykrywa liczbę stron dokumentu i wyświetla informacje o pliku.
+3. Kliknij **Usuń adnotacje**, aby przetworzyć.
+4. Oczyszczony PDF pobiera się automatycznie, bez żadnych adnotacji.
+
+## Funkcje
+
+- Usuwa wszystkie typy adnotacji: komentarze, wyróżnienia, podkreślenia, przekreślenia, karteczki, pieczęcie, łącza i znaczniki formularzy
+- Działa na każdej stronie dokumentu
+- Zachowuje całą zawartość inną niż adnotacje (tekst, obrazy, grafikę wektorową, pola formularzy)
+- Wyświetla liczbę stron i rozmiar pliku przed przetwarzaniem
+
+## Zastosowania
+
+- Porządkowanie dokumentu przed ostateczną dystrybucją po cyklu recenzji, w którym wiele osób dodało komentarze
+- Usuwanie wyróżnień i karteczek z udostępnionego materiału do nauki
+- Usuwanie adnotacji łączy z dokumentu przed archiwizacją
+- Przygotowanie "czystej" wersji dokumentu prawnego, który był mocno adnotowany podczas negocjacji
+- Usuwanie komentarzy recenzentów z manuskryptu przed wysłaniem do druku
+
+## Wskazówki
+
+- To narzędzie usuwa adnotacje na poziomie struktury PDF, więc wynik zachowuje zaznaczalny tekst i oryginalną jakość, bez rasteryzacji.
+- Jeśli chcesz usunąć tylko wybrane adnotacje zamiast wszystkich, użyj [Edytora PDF](./edit-pdf), aby selektywnie usuwać pojedyncze adnotacje.
+- Adnotacji w spłaszczonych plikach PDF (gdzie adnotacje zostały scalone z treścią strony) nie można usunąć, ponieważ nie są już osobnymi obiektami.
+
+## Powiązane narzędzia
+
+- [Edytor PDF](./edit-pdf)
+- [Dodaj znak wodny](./add-watermark)
+- [Podpisz PDF](./sign-pdf)
diff --git a/docs/pl/tools/remove-blank-pages.md b/docs/pl/tools/remove-blank-pages.md
new file mode 100644
index 00000000..f6fb8ba7
--- /dev/null
+++ b/docs/pl/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Usuń puste strony
+description: Automatycznie wykrywaj i usuwaj puste lub prawie puste strony z PDF z regulowaną czułością.
+---
+
+# Usuń puste strony
+
+Przeskanuj PDF w poszukiwaniu pustych lub prawie pustych stron i usuń je automatycznie. Narzędzie renderuje każdą stronę i analizuje zawartość pikseli, aby ustalić, czy jest pusta, a następnie pozwala potwierdzić, które strony usunąć, przed przetwarzaniem.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Dostosuj suwak **Czułość**, aby określić, jak ściśle definiowana jest "pustość".
+3. Kliknij **Wykryj puste strony**, aby przeskanować dokument.
+4. Narzędzie pokazuje miniatury wykrytych pustych stron do przejrzenia.
+5. Potwierdź wybór i pobierz oczyszczony PDF bez pustych stron.
+
+## Opcje
+
+- **Czułość**: suwak od 0% do 100% (domyślnie 80%). Wyższe wartości są bardziej rygorystyczne i oznaczają tylko strony całkowicie lub prawie białe. Niższe wartości są bardziej tolerancyjne i wychwytują strony z minimalną zawartością, jak pojedyncza kropka lub blady znak wodny.
+
+## Funkcje
+
+- Analiza każdej strony na poziomie pikseli w celu wykrycia pustej zawartości
+- Regulowany suwak czułości do precyzyjnego dostrojenia wykrywania
+- Podgląd miniatur wykrytych pustych stron do ręcznej weryfikacji
+- Zachowuje wszystkie niepuste strony dokładnie w niezmienionej postaci
+- Obsługuje dokumenty o dowolnym rozmiarze i liczbie stron
+- Informacja o postępie podczas skanowania
+
+## Zastosowania
+
+- Porządkowanie zeskanowanych dokumentów, w których skaner uchwycił puste odwrotki jednostronnych oryginałów
+- Usuwanie stron rozdzielających z masowo skanowanych partii dokumentów
+- Usuwanie pustych stron wstawianych przez systemy zarządzania dokumentami
+- Porządkowanie PDF eksportowanych z edytorów tekstu, które czasem dodają puste strony na końcu
+- Zmniejszanie rozmiaru pliku przez usunięcie niepotrzebnych pustych stron
+
+## Wskazówki
+
+- Zacznij od domyślnej czułości 80% i dostosowuj ją stąd. Jeśli narzędzie pomija strony, które wyglądają na puste, obniż czułość. Jeśli oznacza strony z lekką zawartością, którą chcesz zachować, podnieś ją.
+- Narzędzie renderuje każdą stronę, aby przeanalizować jej zawartość, więc czas przetwarzania rośnie wraz z liczbą stron. Przy bardzo dużych dokumentach spodziewaj się krótkiego oczekiwania.
+- Przejrzyj wykryte puste strony w podglądzie miniatur przed potwierdzeniem usunięcia. Strony z bladymi nagłówkami, stopkami lub znakami wodnymi mogą zostać oznaczone, zależnie od ustawień czułości.
+
+## Powiązane narzędzia
+
+- [Przytnij PDF](./crop-pdf)
+- [Edytor PDF](./edit-pdf)
+- [Numery stron](./page-numbers)
diff --git a/docs/pl/tools/remove-metadata.md b/docs/pl/tools/remove-metadata.md
new file mode 100644
index 00000000..7b56266d
--- /dev/null
+++ b/docs/pl/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Usuń metadane
+description: Usuń wszystkie ukryte metadane z plików PDF, w tym autora, tytuł, datę utworzenia, producenta, dane XMP i identyfikatory dokumentu.
+---
+
+# Usuń metadane
+
+Każdy PDF zawiera metadane, które mogą ujawniać, kto go utworzył, jakiego oprogramowania użyto, kiedy ostatnio go zmodyfikowano i nie tylko. To narzędzie usuwa to wszystko: słownik informacji, strumienie metadanych XMP, identyfikatory dokumentu i dane specyficzne dla aplikacji, pozostawiając czysty dokument bez śladu pochodzenia.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Kliknij **Usuń metadane**.
+3. Pobierz oczyszczony plik.
+
+Brak opcji do skonfigurowania. Narzędzie jest z założenia dokładne: czyści wszystko.
+
+## Co zostaje usunięte
+
+- **Pola słownika informacji**: tytuł, autor, temat, słowa kluczowe, twórca, producent, data utworzenia, data modyfikacji
+- **Strumień metadanych XMP**: blok metadanych oparty na XML, przechowywany w katalogu dokumentu
+- **Identyfikatory dokumentu**: unikalne identyfikatory w trailerze PDF, które mogą służyć do śledzenia dokumentu między systemami
+- **PieceInfo**: metadane specyficzne dla aplikacji, dodawane przez programy takie jak Illustrator czy InDesign
+
+## Co zostaje
+
+- Cała widoczna zawartość stron (tekst, obrazy, grafika)
+- Pola formularzy i adnotacje
+- Zakładki i łącza
+- Sama struktura dokumentu
+
+## Zastosowania
+
+- Usuwanie imienia i nazwy organizacji z dokumentu przed anonimową publikacją
+- Usuwanie znaczników czasu utworzenia, które ujawniają, kiedy dokument przygotowano
+- Czyszczenie ciągów producenta, które identyfikują stos oprogramowania PDF
+- Przygotowanie dokumentów do zgłoszeń regulacyjnych wymagających PDF bez metadanych
+- Usuwanie śladów historii edycji przed udostępnieniem dokumentu na zewnątrz
+
+## Wskazówki
+
+- Najpierw użyj narzędzia Wyświetl metadane, aby zobaczyć dokładnie, jakie metadane zawiera Twój PDF, zanim je usuniesz.
+- Jeśli musisz usunąć metadane _oraz_ JavaScript, adnotacje i osadzone pliki, użyj Sanityzuj PDF dla dokładniejszego czyszczenia.
+- Usunięcie metadanych jest trwałe. Zachowaj oryginał, jeśli możesz później potrzebować tych danych.
+
+## Powiązane narzędzia
+
+- [Sanityzuj PDF](./sanitize-pdf): usuń metadane oraz skrypty, załączniki i więcej
+- [Szyfruj PDF](./protect-pdf): zabezpiecz oczyszczony PDF hasłem
+- [Kompresuj PDF](./compress-pdf): usunięcie metadanych może nieznacznie zmniejszyć rozmiar pliku; skompresuj, aby zaoszczędzić więcej
diff --git a/docs/pl/tools/remove-restrictions.md b/docs/pl/tools/remove-restrictions.md
new file mode 100644
index 00000000..b1ebd570
--- /dev/null
+++ b/docs/pl/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Usuń restrykcje
+description: Usuń ochronę hasłem, ograniczenia drukowania, blokady edycji i limity kopiowania z plików PDF.
+---
+
+# Usuń restrykcje
+
+PDF może mieć dwa rodzaje haseł: hasło użytkownika (wymagane do otwarcia pliku) i hasło właściciela (określa, co można z nim robić). To narzędzie usuwa oba, wraz ze wszystkimi powiązanymi ograniczeniami: blokadami drukowania, edycji, kopiowania i adnotacji.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Jeśli PDF ma hasło właściciela, wpisz je w polu **Hasło właściciela**. Pozostaw puste, jeśli PDF ma tylko ograniczenia użycia bez hasła.
+3. Kliknij **Usuń restrykcje**.
+4. Pobierz PDF bez ograniczeń.
+
+Narzędzie używa flag QPDF `--decrypt` i `--remove-restrictions`, aby utworzyć czystą kopię bez ograniczeń.
+
+## Co zostaje usunięte
+
+- Ochrona hasłem (zarówno hasło użytkownika, jak i właściciela)
+- Ograniczenia drukowania
+- Ograniczenia edycji
+- Ograniczenia kopiowania tekstu i obrazów
+- Ograniczenia adnotacji i komentowania
+- Wszystkie inne ograniczenia bezpieczeństwa zapisane w PDF
+
+## Zastosowania
+
+- Odblokowanie własnego PDF, którego hasło ustawiono lata temu
+- Usuwanie ograniczeń drukowania z dokumentu, do którego masz legalny dostęp
+- Włączenie kopiowania i wklejania w materiałach źródłowych do robienia notatek
+- Przygotowanie plików PDF dla narzędzi dostępności, które nie radzą sobie z dokumentami z ograniczeniami
+
+## Wskazówki
+
+- Jeśli hasło właściciela jest ustawione, musisz je znać. To narzędzie nie łamie ani nie zgaduje haseł.
+- Jeśli chcesz zachować szyfrowanie pliku, ale zmienić wybrane uprawnienia, użyj zamiast tego narzędzia Zmień uprawnienia.
+- Plik wynikowy nie ma żadnego szyfrowania, więc każdy, kto go otrzyma, może go swobodnie otworzyć.
+
+## Powiązane narzędzia
+
+- [Odszyfruj PDF](./unlock-pdf): odblokuj PDF, gdy znasz hasło użytkownika
+- [Szyfruj PDF](./protect-pdf): zastosuj ponownie szyfrowanie z nowymi ustawieniami
+- [Zmień uprawnienia](./change-permissions): selektywnie zmień, które działania są dozwolone
diff --git a/docs/pl/tools/repair-pdf.md b/docs/pl/tools/repair-pdf.md
new file mode 100644
index 00000000..50cd1a31
--- /dev/null
+++ b/docs/pl/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Napraw PDF
+description: Odzyskaj dane z uszkodzonych plików PDF za pomocą silnika naprawy QPDF. Obsługuje przetwarzanie wsadowe.
+---
+
+# Napraw PDF
+
+Gdy PDF nie chce się otworzyć, wyświetla zniekształconą zawartość lub powoduje błędy w przeglądarce, to narzędzie próbuje odbudować jego wewnętrzną strukturę. Używa silnika naprawy QPDF, który potrafi odzyskać dane po wielu rodzajach uszkodzeń: zepsutych tablicach odwołań krzyżowych, ściętych strumieniach, nieprawidłowych odwołaniach do obiektów i innych.
+
+## Jak to działa
+
+1. Wgraj jeden lub więcej uszkodzonych plików PDF.
+2. Kliknij **Napraw PDF**.
+3. Pojedynczy naprawiony plik pobiera się bezpośrednio. Wiele plików daje archiwum ZIP.
+
+Narzędzie przepuszcza każdy plik przez QPDF z flagą `--decrypt`, która wymusza odczytanie i ponowne zapisanie całej struktury PDF, naprawiając po drodze możliwe do odzyskania problemy.
+
+## Funkcje
+
+- Wsadowa naprawa wielu plików PDF w jednej operacji
+- Automatyczne rozpoznawanie plików możliwych i niemożliwych do odzyskania
+- Raport sukcesu/porażki dla każdego pliku przy przetwarzaniu wielu plików
+- Używa QPDF (WebAssembly), sprawdzonej biblioteki do przekształcania PDF
+
+## Co może naprawić
+
+- Zepsute lub brakujące tablice odwołań krzyżowych
+- Ucięte końcówki plików po niekompletnych pobraniach
+- Nieprawidłowe numerowanie obiektów i długości strumieni
+- Drobne niespójności strukturalne z błędnych generatorów PDF
+- Artefakty szyfrowania po nieudanych próbach odszyfrowania
+
+## Czego nie może naprawić
+
+- Mocno ściętych plików, w których brakuje większości danych
+- Plików PDF zaszyfrowanych hasłem, którego nie masz
+- Plików, które w rzeczywistości nie są PDF (złe rozszerzenie)
+- Uszkodzeń obrazów w PDF (struktura zostanie naprawiona, ale dane pikseli nie są odtwarzane)
+
+## Zastosowania
+
+- Odzyskanie PDF po nieudanym pobraniu z e-maila
+- Otwieranie plików utworzonych przez starsze lub niestandardowe generatory PDF
+- Naprawa plików PDF, które działają w jednej przeglądarce, a w innej nie
+- Przygotowanie uszkodzonych dokumentów archiwalnych do długoterminowego przechowywania
+
+## Wskazówki
+
+- Jeśli naprawa się nie powiedzie, spróbuj najpierw otworzyć plik w przeglądarce internetowej. Przeglądarki mają własną logikę odzyskiwania i mogą wyrenderować wystarczająco dużo zawartości, by zapisać plik ponownie.
+- W przypadku zaszyfrowanych plików PDF, których naprawa się nie udaje, najpierw użyj Odszyfruj PDF, a potem napraw odszyfrowany wynik.
+
+## Powiązane narzędzia
+
+- [Kompresuj PDF](./compress-pdf): dodatkowo uporządkuj strukturę naprawionego PDF
+- [Linearyzuj PDF](./linearize-pdf): zoptymalizuj naprawiony plik do dostarczania przez sieć
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz formularze, które mogły zostać uszkodzone
diff --git a/docs/pl/tools/reverse-pages.md b/docs/pl/tools/reverse-pages.md
new file mode 100644
index 00000000..2aa644a3
--- /dev/null
+++ b/docs/pl/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Odwróć strony
+description: Odwróć kolejność stron w jednym lub wielu plikach PDF, tak aby ostatnia strona stała się pierwszą.
+---
+
+# Odwróć strony
+
+Odwróć kolejność stron w PDF, tak aby ostatnia strona stała się pierwszą, przedostatnia drugą i tak dalej. Obsługuje wsadowe przetwarzanie wielu plików naraz.
+
+## Jak to działa
+
+1. Wgraj jeden lub więcej plików PDF.
+2. Kliknij przycisk przetwarzania.
+3. Każdy plik jest odwracany niezależnie. Jeśli wgrano wiele plików, wynikiem jest archiwum ZIP zawierające wszystkie odwrócone pliki PDF.
+4. Pojedynczy plik pobiera się bezpośrednio jako odwrócony PDF.
+
+## Funkcje
+
+- Przetwarzanie wsadowe: odwracanie wielu plików PDF w jednej operacji
+- Wynik w postaci pojedynczego pliku dla jednego PDF, ZIP dla wielu
+- Przyciski usuwania poszczególnych plików przed przetwarzaniem
+- Zachowuje całą zawartość stron i formatowanie
+
+## Zastosowania
+
+- Naprawa dokumentu zeskanowanego w odwrotnej kolejności
+- Przygotowanie prezentacji PDF do czytania od tyłu do przodu
+- Odwrócenie kolejności stron dla procesów drukowania, które podają strony od tyłu
+- Poprawienie dokumentu, w którym strony przypadkowo złożono od końca
+
+## Wskazówki
+
+- Każdy plik w partii jest odwracany niezależnie, a same pliki nie zmieniają kolejności względem siebie.
+- Do bardziej szczegółowej zmiany kolejności stron (nie tylko pełnego odwrócenia) użyj [Duplikuj i organizuj](./organize-pdf).
+
+## Powiązane narzędzia
+
+- [Duplikuj i organizuj](./organize-pdf)
+- [Obróć PDF](./rotate-pdf)
+- [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool)
diff --git a/docs/pl/tools/rotate-custom.md b/docs/pl/tools/rotate-custom.md
new file mode 100644
index 00000000..065e87d9
--- /dev/null
+++ b/docs/pl/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Obróć o niestandardowy kąt
+description: Obracaj strony PDF o dowolny kąt dzięki polom kąta dla każdej strony i zbiorczemu sterowaniu obrotem.
+---
+
+# Obróć o niestandardowy kąt
+
+Obracaj strony PDF o dowolny kąt, nie tylko o wielokrotności 90 stopni. Każda strona ma własne pole kąta, a jednym kątem możesz objąć wszystkie strony naraz za pomocą kontrolki zbiorczej.
+
+## Jak to działa
+
+1. Wgraj plik PDF. Miniatury renderują się dla każdej strony.
+2. Każda strona ma pole liczbowe pokazujące jej bieżący kąt obrotu.
+3. Wpisz dowolną wartość w stopniach (dodatnią lub ujemną), aby obrócić daną stronę, lub użyj przycisków w lewo/w prawo przy stronie do szybkich obrotów o 90 stopni.
+4. Użyj pola **kąta zbiorczego** u góry, aby ustawić jednakowy obrót dla wszystkich stron.
+5. Kliknij przycisk przetwarzania, aby wygenerować obrócony PDF.
+
+## Funkcje
+
+- Dowolna wartość w stopniach dla każdej strony (dowolna liczba całkowita)
+- Zbiorcza kontrolka kąta do ustawienia tego samego obrotu na każdej stronie
+- Podgląd obrotu w miniaturach w czasie rzeczywistym
+- Przyciski szybkiego obrotu o 90 stopni dla każdej strony
+- Miniatury ładowane leniwie dla wydajności przy dużych dokumentach
+
+## Zastosowania
+
+- Poprawianie lekko przechylonych skanów o kilka stopni
+- Obracanie stron zgodnie z niestandardowym wymogiem orientacji
+- Stosowanie precyzyjnych obrotów do poszczególnych stron w dokumencie o mieszanej zawartości
+- Dostrajanie kątów stron po wstępnym obrocie zbiorczym
+
+## Wskazówki
+
+- Wartości dodatnie obracają zgodnie z ruchem wskazówek zegara, ujemne przeciwnie.
+- Pole kąta zbiorczego po zastosowaniu nadpisuje wszystkie kąty poszczególnych stron. W razie potrzeby ustaw indywidualne korekty po operacji zbiorczej.
+- Do standardowych obrotów o 90/180/270 stopni z prostszym interfejsem użyj [Obróć PDF](./rotate-pdf).
+
+## Powiązane narzędzia
+
+- [Obróć PDF](./rotate-pdf)
+- [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool)
+- [Duplikuj i organizuj](./organize-pdf)
diff --git a/docs/pl/tools/rotate-pdf.md b/docs/pl/tools/rotate-pdf.md
new file mode 100644
index 00000000..ea9dfad8
--- /dev/null
+++ b/docs/pl/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Obróć PDF
+description: Obracaj pojedyncze strony lub wszystkie strony PDF co 90 stopni za pomocą wizualnego interfejsu miniatur.
+---
+
+# Obróć PDF
+
+Obracaj strony PDF o 90 stopni zgodnie z ruchem wskazówek zegara lub przeciwnie. Narzędzie pokazuje podglądy miniatur każdej strony, pozwalając obracać je pojedynczo lub zastosować obrót zbiorczy do całego dokumentu.
+
+## Jak to działa
+
+1. Wgraj plik PDF. Miniatury wszystkich stron renderują się w siatce.
+2. Użyj przycisków obrotu w lewo/w prawo pod miniaturą strony, aby obrócić tę konkretną stronę.
+3. Użyj kontrolek obrotu zbiorczego u góry, aby obrócić wszystkie strony naraz.
+4. Podgląd miniatur aktualizuje się w czasie rzeczywistym, pokazując obrót.
+5. Kliknij przycisk przetwarzania, aby zapisać obrócony PDF.
+
+## Funkcje
+
+- Obrót poszczególnych stron co 90 stopni (w lewo lub w prawo)
+- Obrót zbiorczy wszystkich stron jednocześnie
+- Podgląd miniatur w czasie rzeczywistym z animowanymi przejściami obrotu
+- Miniatury ładowane leniwie dla płynnego działania przy dużych dokumentach
+- Zachowuje oryginalną zawartość i jakość stron
+
+## Zastosowania
+
+- Naprawa zeskanowanych stron ułożonych bokiem lub do góry nogami
+- Obracanie stron poziomych do orientacji pionowej (lub odwrotnie)
+- Poprawianie dokumentu o mieszanej orientacji, w którym niektóre strony zeskanowano pod złym kątem
+- Przygotowanie dokumentu do określonej orientacji wyświetlania
+
+## Wskazówki
+
+- Obroty kumulują się. Dwukrotne kliknięcie przycisku w prawo daje obrót o 180 stopni.
+- Do obrotów innych niż 90 stopni (np. 45 stopni, aby poprawić lekko przechylony skan) użyj zamiast tego [Obróć o niestandardowy kąt](./rotate-custom).
+- Kontrolki obrotu zbiorczego działają na wszystkie strony, nie tylko na wybrane. To narzędzie nie ma mechanizmu zaznaczania. Do tego użyj [Wielofunkcyjnego narzędzia PDF](./pdf-multi-tool).
+
+## Powiązane narzędzia
+
+- [Obróć o niestandardowy kąt](./rotate-custom)
+- [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool)
+- [Duplikuj i organizuj](./organize-pdf)
diff --git a/docs/pl/tools/rtf-to-pdf.md b/docs/pl/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..d184c645
--- /dev/null
+++ b/docs/pl/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF na PDF
+description: Konwertuj pliki Rich Text Format (RTF) na PDF w przeglądarce za pomocą silnika opartego na LibreOffice.
+---
+
+# RTF na PDF
+
+Konwertuj dokumenty Rich Text Format na PDF. RTF to wieloplatformowy format dokumentów obsługiwany przez praktycznie każdy edytor tekstu. To narzędzie używa działającego w przeglądarce silnika LibreOffice do renderowania plików RTF z zachowaniem formatowania: pogrubienie, kursywa, tabele i osadzone obrazy trafiają do PDF.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia | Typy MIME |
+| :----- | :----------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść jeden lub więcej plików RTF.
+2. Przejrzyj listę plików. Dodaj kolejne lub usuń zbędne.
+3. Kliknij **Konwertuj na PDF**. Silnik LibreOffice inicjalizuje się przy pierwszym użyciu, a następnie przetwarza każdy plik.
+4. Pojedynczy plik pobiera się bezpośrednio jako PDF. Wiele plików jest dostarczanych jako `rtf-converted.zip`.
+
+## Opcje
+
+To narzędzie nie ma dodatkowych ustawień. Konwersja zachowuje oryginalne formatowanie RTF.
+
+## Wynik
+
+| Liczba plików | Wynik |
+| :------------ | :--------------------------------------------------------------- |
+| 1 plik | Pobranie pojedynczego PDF (np. `letter.pdf`) |
+| 2+ pliki | Archiwum ZIP (`rtf-converted.zip`) zawierające jeden PDF na plik |
+
+## Zastosowania
+
+- Konwersja starszych dokumentów RTF z dawnych edytorów tekstu na nowoczesne PDF
+- Zamiana szablonów e-maili RTF na podglądy PDF
+- Przetwarzanie wyników RTF z oprogramowania prawniczego lub medycznego
+- Wsadowa konwersja plików RTF z systemu zarządzania dokumentami na PDF do archiwizacji
+
+## Wskazówki
+
+- Silnik LibreOffice jest ładowany raz i buforowany. Pierwsza konwersja w sesji trwa kilka sekund dłużej, kolejne są szybsze.
+- Pliki RTF z osadzonymi obiektami OLE mogą nie renderować wszystkich obiektów idealnie. Zwykły tekst, obrazy i standardowe formatowanie konwertują się niezawodnie.
+- Jeśli pliki RTF utworzono w Microsoft Word, możesz też skonwertować je bezpośrednio narzędziem [Word na PDF](./word-to-pdf), które przyjmuje RTF obok DOC i DOCX.
+
+## Powiązane narzędzia
+
+- [Word na PDF](./word-to-pdf)
+- [ODT na PDF](./odt-to-pdf)
+- [Tekst na PDF](./txt-to-pdf)
diff --git a/docs/pl/tools/sanitize-pdf.md b/docs/pl/tools/sanitize-pdf.md
new file mode 100644
index 00000000..5c8c389c
--- /dev/null
+++ b/docs/pl/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Sanityzuj PDF
+description: Usuń ukrytą i potencjalnie niebezpieczną zawartość z plików PDF, w tym metadane, JavaScript, osadzone pliki, adnotacje i warstwy.
+---
+
+# Sanityzuj PDF
+
+PDF może zawierać znacznie więcej, niż widać na ekranie. Ukryte metadane, osadzony JavaScript, załączniki, dane formularzy i informacje o warstwach mogą ujawniać wrażliwe dane lub stwarzać zagrożenia. Sanityzacja usuwa to wszystko, zostawiając czysty dokument bezpieczny do publicznego udostępnienia.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Wybierz z listy, które elementy usunąć.
+3. Kliknij **Sanityzuj PDF**.
+4. Pobierz oczyszczony plik.
+
+## Opcje sanityzacji
+
+Wszystkie opcje są domyślnie włączone. Odznacz te, które chcesz zachować.
+
+| Opcja | Co usuwa |
+| ------------------------- | ---------------------------------------------------------------------------- |
+| **Spłaszcz formularze** | Zamienia interaktywne pola formularzy na statyczną zawartość |
+| **Usuń metadane** | Usuwa autora, tytuł, datę utworzenia, informacje o oprogramowaniu i dane XMP |
+| **Usuń adnotacje** | Usuwa komentarze, wyróżnienia, karteczki i znaczniki |
+| **Usuń JavaScript** | Eliminuje osadzone skrypty, które mogłyby uruchomić się przy otwarciu |
+| **Usuń osadzone pliki** | Usuwa załączniki osadzone w PDF |
+| **Usuń warstwy (OCG)** | Spłaszcza grupy zawartości opcjonalnej do jednej warstwy |
+| **Usuń łącza** | Usuwa hiperłącza i odwołania do adresów URL |
+| **Usuń drzewo struktury** | Usuwa strukturę dokumentu używaną do tagowania dostępności |
+| **Usuń MarkInfo** | Usuwa informacje o oznaczonej zawartości |
+| **Usuń czcionki** | Usuwa osadzone dane czcionek (używaj ostrożnie) |
+
+## Zastosowania
+
+- Przygotowanie PDF do publicznego wydania przez usunięcie wewnętrznych metadanych (nazwisk autorów, wersji oprogramowania, historii edycji)
+- Usunięcie JavaScriptu z PDF otrzymanego z niezaufanego źródła przed jego otwarciem
+- Oczyszczenie PDF przed wysłaniem klientowi, który nie powinien widzieć osadzonych komentarzy ani nazw pól formularzy
+- Usunięcie ukrytych warstw z rysunku architektonicznego przed udostępnieniem wersji końcowej
+- Zgodność z wymogami minimalizacji danych wynikającymi z przepisów o ochronie prywatności
+
+## Wskazówki
+
+- Pozostaw opcję "Usuń czcionki" odznaczoną, chyba że masz pewność, że PDF nadal wyrenderuje się poprawnie. Usunięcie czcionek może sprawić, że tekst będzie niewidoczny w niektórych przeglądarkach.
+- Jeśli potrzebujesz tylko usunąć metadane, dedykowane narzędzie Usuń metadane jest szybsze i bardziej wyspecjalizowane.
+- Sanityzacja jest nieodwracalna. Zachowaj oryginalny plik.
+
+## Powiązane narzędzia
+
+- [Usuń metadane](./remove-metadata): usuń tylko metadane, nie dotykając pozostałej zawartości
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz konkretnie formularze i adnotacje
+- [Szyfruj PDF](./protect-pdf): dodaj ochronę hasłem po sanityzacji
+- [Rasteryzuj PDF](./rasterize-pdf): opcja ostateczna, konwersja na obrazy eliminująca całą ukrytą zawartość
diff --git a/docs/pl/tools/scanner-effect.md b/docs/pl/tools/scanner-effect.md
new file mode 100644
index 00000000..b1bb7bad
--- /dev/null
+++ b/docs/pl/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Efekt skanera
+description: Spraw, by PDF wyglądał jak zeskanowany dokument, z regulowanym szumem, obrotem, rozmyciem i efektami starzenia papieru.
+---
+
+# Efekt skanera
+
+Zamień czysty cyfrowy PDF w coś, co wygląda, jakby wyszło ze skanera płaskiego. Narzędzie stosuje konfigurowalny szum, lekki obrót, rozmycie, zmiany jasności i opcjonalne zażółcenie, aby symulować niedoskonałości fizycznego skanu.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Edytor otwiera się z podglądem na żywo pierwszej strony obok panelu ustawień.
+3. Dostosuj parametry efektu skanowania za pomocą suwaków i przełączników.
+4. Podgląd aktualizuje się w czasie rzeczywistym podczas zmiany ustawień.
+5. Kliknij **Zastosuj**, aby przetworzyć wszystkie strony i pobrać wynik.
+
+## Opcje
+
+- **Przestrzeń barw (przełącznik odcieni szarości)**: konwertuje wynik na odcienie szarości dla klasycznego czarno-białego skanu.
+- **Obramowanie**: dodaje subtelne ciemne obramowanie wokół krawędzi strony, imitując artefakty brzegowe skanera.
+- **Obrót**: stosuje lekki obrót (od -5 do +5 stopni), symulując krzywe podanie papieru.
+- **Zmienność obrotu**: dodaje losową zmienność kąta obrotu, tak aby każda strona była przechylona nieco inaczej.
+- **Jasność**: przesuwa ogólną jasność w górę lub w dół.
+- **Kontrast**: reguluje kontrast, symulując różnice w jakości tonera.
+- **Rozmycie**: stosuje rozmycie Gaussa, aby zmiękczyć krawędzie tekstu jak w skanie niskiej jakości.
+- **Szum**: dodaje losowy szum pikseli, symulując ziarno czujnika skanera. Wyższe wartości dają bardziej ziarnisty efekt.
+- **Zażółcenie**: dodaje ciepły żółty odcień, symulując stary lub z recyklingu papier.
+- **Rozdzielczość**: ustawia DPI wyniku. Niższe wartości dają bardziej spikselowany, skanopodobny wygląd.
+- **Resetuj**: przywraca wszystkie ustawienia domyślne.
+
+## Funkcje
+
+- Podgląd w czasie rzeczywistym, aktualizowany przy każdej zmianie parametru
+- Losowa zmienność obrotu dla każdej strony, dla realistycznych różnic
+- Dziesięć niezależnie regulowanych parametrów
+- Tryb odcieni szarości dla autentycznego czarno-białego skanu
+- Kontrola rozdzielczości od jakości faksu o niskim DPI po jakość archiwalną o wysokim DPI
+
+## Zastosowania
+
+- Sprawianie, by cyfrowo utworzone dokumenty wyglądały, jakby zostały zeskanowane i wydrukowane
+- Symulowanie fizycznego starzenia dokumentów przy odtwarzaniu dokumentów historycznych
+- Testowanie oprogramowania OCR na skanach o pogorszonej jakości
+- Tworzenie dokumentów pasujących stylem do istniejących zeskanowanych archiwów
+
+## Wskazówki
+
+- Zacznij od subtelnych wartości. Szum na poziomie 10-20, lekki obrót o 0,5 stopnia i minimalne rozmycie dają już przekonujący wygląd skanu.
+- Połącz tryb odcieni szarości z lekkim zażółceniem, aby uzyskać efekt "kserokopii kserokopii".
+- Niższe ustawienia rozdzielczości (100-150 DPI) dają najbardziej realistyczny wygląd faksu.
+
+## Powiązane narzędzia
+
+- [Odwróć kolory](./invert-colors)
+- [Dostosuj kolory](./adjust-colors)
+- [Kolor tła](./background-color)
diff --git a/docs/pl/tools/sign-pdf.md b/docs/pl/tools/sign-pdf.md
new file mode 100644
index 00000000..95738670
--- /dev/null
+++ b/docs/pl/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Podpisz PDF
+description: Narysuj, wpisz lub wgraj podpis i umieść go na stronach PDF za pomocą zintegrowanej przeglądarki.
+---
+
+# Podpisz PDF
+
+Dodaj swój podpis do dowolnego dokumentu PDF. Narzędzie osadza pełną przeglądarkę PDF z wbudowanymi narzędziami podpisu, w której możesz narysować podpis odręcznie, wpisać imię i nazwisko czcionką podpisową lub wgrać obraz podpisu. Umieść podpis na dowolnej stronie, zmień jego rozmiar, a następnie zapisz podpisany dokument.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Dokument otwiera się w zintegrowanej przeglądarce PDF z narzędziami adnotacji.
+3. Użyj narzędzia podpisu w przeglądarce, aby utworzyć podpis przez rysowanie, wpisanie lub wgranie obrazu.
+4. Kliknij miejsce na stronie, w którym chcesz umieścić podpis, i dostosuj jego rozmiar oraz położenie.
+5. Opcjonalnie zaznacz **Spłaszcz PDF**, aby trwale osadzić podpis w dokumencie.
+6. Kliknij **Zapisz i pobierz podpisany PDF**, aby otrzymać podpisany plik.
+
+## Opcje
+
+- **Spłaszcz PDF**: po zaznaczeniu podpis jest trwale osadzany w zawartości strony. Zapobiega to przesunięciu lub usunięciu podpisu przez inne osoby. Gdy opcja jest odznaczona, podpis pozostaje adnotacją, którą można edytować w zgodnych przeglądarkach.
+
+## Funkcje
+
+- Trzy metody tworzenia podpisu: rysowanie odręczne, wpisany tekst lub wgrany obraz
+- Zintegrowana przeglądarka PDF do dokładnego umieszczania
+- Przeciąganie w celu ustawienia położenia i zmiany rozmiaru podpisów na dowolnej stronie
+- Opcjonalne spłaszczanie do trwałego osadzenia podpisów
+- Obsługa wielu podpisów w tym samym dokumencie
+
+## Zastosowania
+
+- Podpisywanie umów, porozumień lub formularzy zatwierdzeń przed odesłaniem
+- Dodawanie podpisu do dokumentów podatkowych, wniosków ubezpieczeniowych lub formularzy urzędowych
+- Umieszczanie parafek na poszczególnych stronach wielostronicowej umowy
+- Podpisywanie NDA lub dokumentów kadrowych, które przychodzą jako załączniki PDF
+
+## Wskazówki
+
+- Włącz spłaszczanie, jeśli wysyłasz podpisany PDF komuś, kto nie powinien móc usunąć ani przesunąć Twojego podpisu.
+- Do prawnie wiążących podpisów cyfrowych z weryfikacją opartą na certyfikatach BentoPDF oferuje również osobne narzędzie Podpis cyfrowy PDF.
+- Wgraj obraz podpisu w PNG z przezroczystym tłem, aby uzyskać najczystszy wynik.
+
+## Powiązane narzędzia
+
+- [Edytor PDF](./edit-pdf)
+- [Dodaj pieczątki](./add-stamps)
+- [Wypełnianie formularzy PDF](./form-filler)
diff --git a/docs/pl/tools/split-pdf.md b/docs/pl/tools/split-pdf.md
new file mode 100644
index 00000000..40cf7ea1
--- /dev/null
+++ b/docs/pl/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Podziel PDF
+description: Podziel PDF na mniejsze pliki według zakresu stron, wyboru wizualnego, zakładek, stron parzystych/nieparzystych lub stałych odstępów.
+---
+
+# Podziel PDF
+
+Podziel PDF na mniejsze dokumenty w jednym z sześciu trybów dzielenia. Od prostych zakresów stron po dzielenie według zakładek, to narzędzie obsługuje każdy scenariusz podziału dokumentu.
+
+## Jak to działa
+
+1. Wgraj pojedynczy plik PDF.
+2. Wybierz tryb podziału z listy rozwijanej.
+3. Skonfiguruj opcje specyficzne dla trybu (zakresy stron, wybór itp.).
+4. Kliknij przycisk przetwarzania.
+5. Wynik pobiera się jako pojedynczy PDF lub archiwum ZIP, zależnie od trybu i ustawień.
+
+## Tryby podziału
+
+| Tryb | Opis |
+| -------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
+| **Zakres** | Wpisz zakresy stron, np. `1-3, 5, 8-10`. Wiele zakresów daje osobne pliki PDF w ZIP. Pojedynczy zakres daje jeden PDF. |
+| **Wybór wizualny** | Przeglądaj miniatury stron i klikaj, aby wybrać potrzebne strony. Wybrane strony są wyodrębniane do nowego PDF. |
+| **Parzyste / nieparzyste** | Wyodrębnij tylko strony parzyste lub nieparzyste. |
+| **Wszystkie strony** | Podziel każdą stronę na osobny plik PDF, pobierany jako ZIP. |
+| **Zakładki** | Podziel na granicach zakładek. Wybierz poziom zakładek, aby kontrolować, gdzie następują podziały. |
+| **Co N stron** | Podziel na fragmenty po N stron (np. co 5 stron). Ostatni fragment może mieć mniej stron. |
+
+## Funkcje
+
+- Sześć odrębnych trybów dzielenia obejmujących praktycznie każde zastosowanie
+- Wizualny wybór stron z miniaturami ładowanymi leniwie
+- Dzielenie według zakładek z filtrowaniem poziomów
+- Opcja wyniku ZIP w trybach zakresu i wyboru wizualnego
+- Obsługa zakresów stron o mieszanej składni (`1-3, 5, 8-10`)
+- Ostrzeżenie, gdy podział co N stron daje nierówne fragmenty
+
+## Zastosowania
+
+- Wyodrębnienie konkretnego rozdziału lub sekcji z dużego dokumentu
+- Rozdzielenie stron nieparzystych i parzystych na potrzeby druku dwustronnego
+- Rozbicie PDF książki na pliki poszczególnych rozdziałów na granicach zakładek
+- Wyodrębnienie wybranych stron (np. strony z podpisem) z umowy
+- Podział zbiorczego raportu na pliki poszczególnych sekcji do dystrybucji
+
+## Wskazówki
+
+- Wiele zakresów stron oddzielonych przecinkami (np. `1-5, 10-15, 20-25`) daje osobne pliki PDF, po jednym na zakres, spakowane w ZIP.
+- Tryb podziału według zakładek wymaga, aby PDF faktycznie zawierał zakładki. Jeśli ich nie ma, zobaczysz komunikat o błędzie.
+- Pole wyboru "Pobierz jako ZIP" w trybach Zakres i Wybór wizualny pozwala otrzymać osobne pliki PDF dla każdej strony zamiast pliku połączonego.
+
+## Powiązane narzędzia
+
+- [Połącz PDF](./merge-pdf)
+- [Wyodrębnij strony](./extract-pages)
+- [Usuń strony](./delete-pages)
+- [Wielofunkcyjne narzędzie PDF](./pdf-multi-tool)
diff --git a/docs/pl/tools/svg-to-pdf.md b/docs/pl/tools/svg-to-pdf.md
new file mode 100644
index 00000000..de53b1a4
--- /dev/null
+++ b/docs/pl/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG na PDF
+description: Konwertuj grafiki wektorowe SVG na PDF z kontrolą jakości, w całości w przeglądarce.
+---
+
+# SVG na PDF
+
+Konwertuj pliki Scalable Vector Graphics (SVG) na PDF. Narzędzie rasteryzuje każdy SVG za pomocą silnika renderowania przeglądarki, a następnie osadza wynik w jego natywnej rozdzielczości. Przydatne do zamiany ikon wektorowych, diagramów i ilustracji w przenośne dokumenty.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :----------- |
+| SVG | `.svg` |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść jeden lub więcej plików SVG.
+2. Przejrzyj listę plików i zarządzaj nią.
+3. Wybierz poziom **jakości PDF**.
+4. Kliknij **Konwertuj na PDF**. Wynik pobiera się jako `from_svgs.pdf`.
+
+Każdy SVG jest odczytywany jako tekst, renderowany na kanwie w swojej wewnętrznej szerokości i wysokości (domyślnie 800x600, jeśli nie podano wymiarów) i eksportowany jako PNG. Ten PNG jest następnie osadzany w PDF za pomocą pdf-lib. Przezroczyste obszary są wypełniane białym tłem.
+
+## Opcje
+
+**Jakość PDF** kontroluje kompresję po rasteryzacji:
+
+- **Wysoka jakość**: najbliższa oryginalnemu renderowaniu.
+- **Średnia jakość** (domyślnie): dobry kompromis.
+- **Niska jakość**: najmniejszy plik, pewna utrata szczegółów.
+
+## Zastosowania
+
+- Konwersja diagramów architektonicznych lub inżynieryjnych z SVG na PDF gotowy do druku
+- Pakowanie zestawów ikon w referencyjny PDF dla systemu projektowego
+- Zamiana wizualizacji danych (D3.js, eksporty bibliotek wykresów) na PDF gotowe do raportu
+- Tworzenie drukowalnych wersji infografik opartych na SVG
+
+## Wskazówki
+
+- Pliki SVG bez jawnych atrybutów `width` i `height` renderują się w 800x600 pikseli. Aby uzyskać najlepsze wyniki, ustaw wymiary w źródle SVG przed konwersją.
+- Złożone pliki SVG z zewnętrznymi odwołaniami do czcionek lub połączonymi obrazami mogą nie renderować się idealnie. Osadź wszystkie zasoby w SVG, aby uzyskać niezawodny wynik.
+- Ponieważ SVG jest rasteryzowany, PDF będzie zawierał obraz bitmapowy zamiast ścieżek wektorowych. Do prawdziwie wektorowego PDF potrzebne jest dedykowane narzędzie wektorowe.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [PNG na PDF](./png-to-pdf)
+- [BMP na PDF](./bmp-to-pdf)
diff --git a/docs/pl/tools/table-of-contents.md b/docs/pl/tools/table-of-contents.md
new file mode 100644
index 00000000..1ee7f7c2
--- /dev/null
+++ b/docs/pl/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Spis treści
+description: Wygeneruj sformatowaną stronę spisu treści na podstawie istniejących zakładek PDF.
+---
+
+# Spis treści
+
+To narzędzie odczytuje zakładki (konspekty) w PDF i generuje sformatowaną stronę spisu treści, która jest dodawana na początku dokumentu. Jeśli Twój PDF ma już zakładki, ale brakuje w nim widocznej strony spisu treści, to narzędzie tworzy ją automatycznie.
+
+## Jak to działa
+
+1. Wgraj PDF zawierający zakładki.
+2. Dostosuj tytuł spisu treści, rozmiar czcionki i rodzinę czcionek.
+3. Opcjonalnie zaznacz **Dodaj zakładkę dla strony spisu treści**, aby uwzględnić sam spis w drzewie zakładek.
+4. Kliknij **Generuj spis treści**, aby przetworzyć plik.
+5. Zaktualizowany PDF pobiera się automatycznie, ze stroną spisu treści wstawioną na początku.
+
+## Opcje
+
+- **Tytuł spisu treści**: nagłówek wyświetlany na górze wygenerowanej strony. Domyślnie "Spis treści".
+- **Rozmiar czcionki**: wybierz od 10 pt do 72 pt. Domyślnie 12 pt.
+- **Rodzina czcionek**: wybierz spośród wariantów Times Roman, Helvetica lub Courier (zwykły, pogrubiony, kursywa, pogrubiona kursywa). Domyślnie Helvetica.
+- **Dodaj zakładkę dla strony spisu treści**: po zaznaczeniu do drzewa konspektu PDF dodawany jest wpis zakładki dla samej strony spisu.
+
+## Funkcje
+
+- Odczytuje pełną hierarchię zakładek z PDF
+- Generuje czysto sformatowaną stronę spisu z odwołaniami do numerów stron
+- Obsługuje zagnieżdżone poziomy zakładek z wcięciami
+- Wybór spośród 12 wbudowanych czcionek PDF
+- Opcjonalna zakładka odwołująca się do samej strony spisu
+
+## Zastosowania
+
+- Dodanie drukowalnego spisu treści do e-booków lub raportów, które mają tylko cyfrowe zakładki
+- Utworzenie spisu treści dla połączonego dokumentu po scaleniu wielu plików PDF
+- Generowanie strony referencyjnej dla długich podręczników technicznych
+- Przygotowanie dokumentów do druku, w których oczekiwany jest widoczny spis treści
+
+## Wskazówki
+
+- Jeśli Twój PDF nie ma zakładek, najpierw użyj narzędzia [Edytuj zakładki](./bookmark), aby je utworzyć, a potem wróć tutaj wygenerować spis treści.
+- Przy dużych dokumentach większy rozmiar czcionki, jak 14 pt lub 16 pt, poprawia czytelność.
+
+## Powiązane narzędzia
+
+- [Edytuj zakładki](./bookmark)
+- [Numery stron](./page-numbers)
+- [Nagłówek i Stopka](./header-footer)
diff --git a/docs/pl/tools/text-color.md b/docs/pl/tools/text-color.md
new file mode 100644
index 00000000..3c47fc5e
--- /dev/null
+++ b/docs/pl/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Zmień kolor tekstu
+description: Zmień kolor całego tekstu w PDF na dowolnie wybrany kolor.
+---
+
+# Zmień kolor tekstu
+
+Zastąp kolor tekstu w całym PDF. Narzędzie rozpoznaje obszary tekstu na każdej stronie i przekolorowuje je na wybrany kolor, zachowując układ dokumentu i elementy nietekstowe.
+
+## Jak to działa
+
+1. Wgraj plik PDF.
+2. Wybierz nowy kolor tekstu za pomocą selektora kolorów. Domyślny to niebieski (#0000FF).
+3. Kliknij **Zmień kolor tekstu**, aby przetworzyć.
+4. Przekolorowany PDF pobiera się automatycznie. Wskaźnik postępu pokazuje, która strona jest przetwarzana.
+
+## Opcje
+
+- **Nowy kolor tekstu**: selektor koloru do wyboru koloru zastępującego dla całego tekstu w dokumencie.
+
+## Funkcje
+
+- Przekolorowuje tekst na każdej stronie dokumentu
+- Przetwarzanie strona po stronie z informacją o postępie
+- Selektor kolorów z pełną obsługą kolorów szesnastkowych
+- Zachowuje układ strony i elementy nietekstowe
+
+## Zastosowania
+
+- Zmiana czarnego tekstu na ciemnoniebieski dla łagodniejszego, bardziej nowoczesnego wyglądu dokumentu
+- Przekolorowanie tekstu zgodnie z wytycznymi marki przed dystrybucją dokumentów
+- Zamiana tekstu na określony kolor ze względu na zgodność z wymogami dostępności
+- Uczynienie tekstu widocznym na nowo zastosowanym kolorze tła
+
+## Wskazówki
+
+- To narzędzie renderuje strony w skali 2x dla jakości, a następnie odbudowuje PDF. Wynik jest oparty na obrazach, więc tekst nie będzie już zaznaczalny ani wyszukiwalny.
+- W przypadku dokumentów, w których musisz zachować zaznaczalny tekst, rozważ bezpośrednią edycję PDF w [Edytorze PDF](./edit-pdf).
+- Czas przetwarzania rośnie wraz z liczbą stron, ponieważ każda strona jest renderowana osobno.
+
+## Powiązane narzędzia
+
+- [Kolor tła](./background-color)
+- [Odwróć kolory](./invert-colors)
+- [Dostosuj kolory](./adjust-colors)
diff --git a/docs/pl/tools/tiff-to-pdf.md b/docs/pl/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..2eb703be
--- /dev/null
+++ b/docs/pl/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF na PDF
+description: Konwertuj jedno- i wielostronicowe obrazy TIFF na format PDF w przeglądarce z pełną obsługą stron.
+---
+
+# TIFF na PDF
+
+Konwertuj pliki TIFF na PDF, w tym wielostronicowe TIFF. Każda strona (lub "IFD") w pliku TIFF staje się osobną stroną w wynikowym PDF. Jest to szczególnie przydatne dla zeskanowanych dokumentów, faksów i obrazów medycznych, które często są przechowywane jako wielostronicowe pliki TIFF.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Jak to działa
+
+1. Kliknij obszar wgrywania lub przeciągnij i upuść pliki TIFF.
+2. Przejrzyj listę plików i zarządzaj nią według potrzeb.
+3. Kliknij **Konwertuj na PDF**. Wynik pobiera się jako `from_tiff.pdf`.
+
+Narzędzie dekoduje każdy plik TIFF za pomocą dekodera TIFF w JavaScript, wyodrębniając surowe dane pikseli RGBA każdej strony. Każda strona jest renderowana na kanwie, eksportowana jako PNG i osadzana w PDF. Wymiary stron odpowiadają oryginalnym stronom TIFF.
+
+## Opcje
+
+To narzędzie nie udostępnia dodatkowych ustawień jakości. Obrazy są osadzane w natywnej rozdzielczości.
+
+## Zastosowania
+
+- Konwersja wielostronicowych dokumentów faksowych (TIFF-F) na bardziej przenośny format PDF
+- Zamiana archiwów zeskanowanych dokumentów przechowywanych jako TIFF na przeszukiwalne PDF (następnie połącz z narzędziem OCR)
+- Przetwarzanie plików obrazowania medycznego (preparaty patologiczne, eksporty radiologiczne), które używają TIFF
+- Konwersja plików TIFF z danymi GIS lub obrazami satelitarnymi na dokumenty do udostępniania
+
+## Wskazówki
+
+- Wielostronicowe pliki TIFF są w pełni obsługiwane. 10-stronicowy TIFF da 10-stronicowy PDF. Nie musisz najpierw dzielić pliku TIFF.
+- Bardzo duże pliki TIFF (setki megabajtów) mogą przetwarzać się dłużej, ponieważ cały plik musi zostać zdekodowany w pamięci przeglądarki.
+- Jeśli potrzebujesz OCR na powstałym PDF, uruchom po konwersji narzędzie [OCR PDF](./ocr-pdf).
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [BMP na PDF](./bmp-to-pdf)
+- [JPG na PDF](./jpg-to-pdf)
diff --git a/docs/pl/tools/txt-to-pdf.md b/docs/pl/tools/txt-to-pdf.md
new file mode 100644
index 00000000..8bc7f381
--- /dev/null
+++ b/docs/pl/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Tekst na PDF
+description: Konwertuj zwykłe pliki tekstowe lub wpisany tekst na PDF z własnymi czcionkami, kolorami i rozmiarami stron.
+---
+
+# Tekst na PDF
+
+Konwertuj zwykły tekst na sformatowany PDF. Możesz wgrać pliki `.txt` lub wpisywać bezpośrednio we wbudowanym edytorze tekstu. Narzędzie obsługuje wiele czcionek, własne kolory tekstu i szeroki wybór rozmiarów stron: od A0 do A10, a także US Letter, Legal i Tabloid.
+
+## Obsługiwane formaty
+
+| Dane wejściowe | Rozszerzenia |
+| :-------------------- | :------------------------- |
+| Zwykłe pliki tekstowe | `.txt` |
+| Bezpośrednie wpisanie | Wpisz lub wklej w edytorze |
+
+## Jak to działa
+
+1. Wybierz tryb wprowadzania przełącznikiem u góry: **Wgraj pliki** lub **Wpisz tekst**.
+2. Jeśli wgrywasz, przeciągnij i upuść lub kliknij, aby wybrać jeden lub więcej plików `.txt`. Jeśli wpisujesz, wprowadź tekst bezpośrednio w polu tekstowym.
+3. Skonfiguruj opcje formatowania: rodzinę czcionek, rozmiar czcionki, kolor tekstu i rozmiar strony.
+4. Kliknij **Utwórz PDF**. Wynik pobiera się jako `text_to_pdf.pdf`.
+
+Przy wgrywaniu wielu plików ich zawartość jest łączona z pustymi wierszami między nimi.
+
+## Opcje
+
+| Opcja | Wartości | Domyślnie |
+| :------------------- | :----------------------------------------------------------------------------------------- | :--------------- |
+| **Rodzina czcionek** | Helvetica (bezszeryfowa), Tiro (szeryfowa), Courier (stałej szerokości), Times (szeryfowa) | Helvetica |
+| **Rozmiar czcionki** | 6 -- 72 pt | 12 |
+| **Kolor tekstu** | Dowolny kolor z selektora | Czarny (#000000) |
+| **Rozmiar strony** | ISO A0--A10, B0--B10, C0--C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Języki pisane od prawej do lewej (arabski, hebrajski, perski, urdu) są wykrywane automatycznie. Po wykryciu tekstu RTL kierunek tekstu i wyrównanie zmieniają się odpowiednio.
+
+## Zastosowania
+
+- Konwersja fragmentów kodu lub plików dziennika na drukowalny PDF czcionką Courier
+- Szybkie utworzenie PDF z notatek ze spotkania wpisanych na bieżąco
+- Formatowanie manuskryptu w zwykłym tekście określoną czcionką i rozmiarem strony do zgłoszenia
+- Przygotowanie wersji PDF pliku README lub dziennika zmian do dystrybucji offline
+
+## Wskazówki
+
+- Użyj trybu **Wpisz tekst**, gdy chcesz szybko skonwertować zawartość schowka bez wcześniejszego zapisywania jej jako pliku.
+- Courier (stałej szerokości) to najlepszy wybór czcionki dla kodu, dzienników lub dowolnej zawartości, w której ważne jest wyrównanie kolumn.
+- Marginesy strony są stałe i wynoszą 72 punkty (1 cal) z każdej strony.
+
+## Powiązane narzędzia
+
+- [Markdown na PDF](./markdown-to-pdf)
+- [CSV na PDF](./csv-to-pdf)
+- [Word na PDF](./word-to-pdf)
diff --git a/docs/pl/tools/unlock-pdf.md b/docs/pl/tools/unlock-pdf.md
new file mode 100644
index 00000000..f5de1159
--- /dev/null
+++ b/docs/pl/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Odblokuj PDF
+description: Usuń ochronę hasłem z zaszyfrowanych plików PDF. Obsługuje wsadowe odszyfrowanie wielu plików jednym hasłem.
+---
+
+# Odblokuj PDF
+
+Jeśli znasz hasło do zaszyfrowanego pliku PDF, to narzędzie całkowicie usuwa szyfrowanie i tworzy odblokowaną kopię, którą każdy może otworzyć bez podawania hasła. Obsługuje wsadowe odszyfrowanie, gdy wiele plików PDF ma to samo hasło.
+
+## Jak to działa
+
+1. Prześlij jeden lub więcej zaszyfrowanych plików PDF.
+2. Wpisz **hasło** użyte do ochrony plików.
+3. Kliknij **Odszyfruj PDF**.
+4. Pojedynczy plik zostanie pobrany bezpośrednio. Wiele plików da archiwum ZIP ze wszystkimi odblokowanymi plikami PDF.
+
+## Funkcje
+
+- Odszyfrowanie pojedynczych plików i wsadowe
+- Obsługa haseł użytkownika i haseł właściciela
+- Całkowicie niezaszyfrowany wynik bez pozostałych ograniczeń
+- Czytelne komunikaty o błędach przy niepoprawnym haśle lub uszkodzonych plikach
+- Śledzenie powodzenia lub niepowodzenia dla każdego pliku w trybie wsadowym
+
+## Czym różni się od usuwania ograniczeń
+
+**Odszyfruj PDF** wymaga hasła i usuwa całe szyfrowanie. **Usuń ograniczenia** dotyczy ograniczeń użycia (drukowanie, kopiowanie, edycja) i może nie wymagać hasła, jeśli ustawiono tylko hasło właściciela. Użyj odszyfrowania, gdy plik PDF w ogóle nie otwiera się bez hasła.
+
+## Zastosowania
+
+- Trwałe odblokowanie plików PDF zaszyfrowanych wcześniej, gdy hasło nie jest już potrzebne
+- Usunięcie szyfrowania z partii zarchiwizowanych dokumentów dla łatwiejszego długoterminowego dostępu
+- Przygotowanie plików PDF chronionych hasłem dla systemu zarządzania dokumentami, który nie obsługuje plików zaszyfrowanych
+- Odblokowanie plików PDF przed połączeniem z innymi dokumentami (wiele narzędzi do łączenia nie przetwarza zaszyfrowanych danych)
+
+## Wskazówki
+
+- Pole hasła dotyczy wszystkich przesłanych plików. Jeśli pliki PDF mają różne hasła, przetwarzaj je w osobnych partiach.
+- Jeśli pojawi się błąd "Nieprawidłowe hasło", sprawdź, czy nie ma spacji na końcu i czy nie jest włączony Caps Lock.
+- Po odszyfrowaniu wynik nie ma żadnych zabezpieczeń. Jeśli chcesz ustawić nowe hasło, zaszyfruj plik ponownie za pomocą Szyfruj PDF.
+
+## Powiązane narzędzia
+
+- [Szyfruj PDF](./protect-pdf): ponowne zaszyfrowanie nowym hasłem
+- [Usuń ograniczenia](./remove-restrictions): usunięcie ograniczeń użycia bez pełnego odszyfrowania
+- [Zmień uprawnienia](./change-permissions): zmiana wybranych uprawnień zaszyfrowanego pliku PDF
diff --git a/docs/pl/tools/validate-signature-pdf.md b/docs/pl/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..8b653b6d
--- /dev/null
+++ b/docs/pl/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Zweryfikuj podpis
+description: Weryfikuj podpisy cyfrowe w plikach PDF. Sprawdź ważność certyfikatu, tożsamość podpisującego, integralność dokumentu i status łańcucha zaufania.
+---
+
+# Zweryfikuj podpis
+
+Prześlij podpisany plik PDF, a narzędzie wyodrębni każdy podpis cyfrowy, zidentyfikuje podpisującego, sprawdzi ważność certyfikatu i poinformuje, czy dokument został zmodyfikowany po podpisaniu. Możesz też podać zaufany certyfikat, aby zweryfikować łańcuch podpisu.
+
+## Jak to działa
+
+1. Prześlij podpisany plik PDF. Weryfikacja rozpocznie się automatycznie.
+2. Narzędzie wyświetli podsumowanie: liczbę znalezionych podpisów i ile z nich jest ważnych.
+3. Każdy podpis ma osobną kartę ze szczegółami: podpisujący, wystawca, daty i status.
+4. Opcjonalnie prześlij **zaufany certyfikat** (.pem, .crt, .cer, .der), aby zweryfikować podpis względem konkretnego punktu zaufania. Ponowna weryfikacja uruchomi się automatycznie.
+
+## Co jest sprawdzane
+
+### Analiza podpisu
+
+Narzędzie wyodrębnia z pliku PDF obiekty podpisu PKCS#7, dekoduje strukturę ASN.1 i pobiera certyfikat X.509 podpisującego wraz z ewentualnym łańcuchem certyfikatów osadzonym w podpisie.
+
+### Ważność certyfikatu
+
+- **Wygaśnięcie**: czy certyfikat mieści się obecnie w okresie ważności?
+- **Wykrywanie samopodpisanych**: czy certyfikat jest własnym wystawcą?
+- **Łańcuch zaufania**: gdy podano zaufany certyfikat, czy certyfikat podpisującego prowadzi do niego łańcuchem?
+
+### Weryfikacja kryptograficzna
+
+- Narzędzie odtwarza bajty objęte `/ByteRange` podpisu, haszuje je algorytmem zadeklarowanym przez podpisującego i porównuje wynik z atrybutem `messageDigest` wewnątrz podpisu.
+- Następnie ponownie serializuje podpisane atrybuty jako DER SET i weryfikuje podpis kluczem publicznym certyfikatu podpisującego.
+- **Podpis jest uznawany za ważny tylko wtedy, gdy wszystkie te kroki zakończą się powodzeniem.** Jeśli bajty pliku PDF zmieniono po podpisaniu lub osadzony podpis nie pasuje do klucza podpisującego, status pokaże "Nieprawidłowy: weryfikacja kryptograficzna nie powiodła się" wraz z konkretnym powodem.
+
+#### Obsługiwane algorytmy podpisu
+
+| Algorytm | Ścieżka weryfikacji |
+| ----------------------- | -------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, z awaryjnym użyciem Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` po konwersji podpisu DER → IEEE P1363 |
+
+Jeśli podpis używa algorytmu spoza tej listy (na przykład Ed25519, SM2 lub RSA z nietypowym OID skrótu), karta pokazuje na żółto **"Niezweryfikowany: nieobsługiwany algorytm podpisu"** wraz z konkretnym OID lub powodem. To celowe rozróżnienie trzech stanów:
+
+- **Prawidłowy**: podpis został kryptograficznie zweryfikowany kluczem publicznym podpisującego.
+- **Nieprawidłowy**: weryfikacja się odbyła i dała wynik negatywny (zmienione bajty, niezgodność klucza).
+- **Niezweryfikowany**: narzędzie nie mogło przeprowadzić weryfikacji dla tego algorytmu. Metadane certyfikatu są nadal wyświetlane, ale podpis należy traktować jako "nieznany" i zweryfikować go w Adobe Acrobat lub za pomocą `openssl cms -verify`.
+
+### Niebezpieczne algorytmy skrótu
+
+- Podpisy używające **MD5 lub SHA-1** są odrzucane jako nieważne i oznaczane statusem "Niebezpieczny skrót". Oba algorytmy mają opublikowane ataki kolizyjne, więc podpis złożony na skrócie SHA-1 lub MD5 nie gwarantuje integralności.
+- SHA-224, SHA-256, SHA-384 i SHA-512 są akceptowane.
+
+### Zakres pokrycia dokumentu
+
+- **Pełne pokrycie**: podpis obejmuje cały plik PDF, czyli po podpisaniu nie dodano ani nie zmieniono żadnych bajtów.
+- **Częściowe pokrycie**: podpis obejmuje tylko część pliku. Może to oznaczać modyfikacje po podpisaniu (niekoniecznie złośliwe, bo zapisy przyrostowe dają częściowe pokrycie).
+
+## Szczegóły podpisu
+
+Każda karta podpisu pokazuje:
+
+- **Podpisał**: nazwę zwykłą, organizację i adres e-mail z certyfikatu podpisującego
+- **Wystawca**: urząd certyfikacji, który wystawił certyfikat podpisującego
+- **Data podpisu**: znacznik czasu osadzony w podpisie
+- **Ważny od / Ważny do**: okres ważności certyfikatu
+- **Powód**: powód podpisania dokumentu (jeśli podano)
+- **Lokalizacja**: miejsce podpisania (jeśli podano)
+- **Status pokrycia**: pełne lub częściowe
+- **Odznaka zaufania**: zaufany lub spoza łańcucha zaufania (tylko gdy podano własny certyfikat)
+
+### Szczegóły techniczne
+
+Rozwiń sekcję szczegółów technicznych, aby zobaczyć:
+
+- Numer seryjny certyfikatu podpisującego
+- Algorytm skrótu (SHA-256, SHA-512 itd.)
+- Algorytm podpisu (RSA z SHA-256, ECDSA z SHA-256 itd.)
+- Komunikaty o błędach dla nieważnych podpisów
+
+## Zastosowania
+
+- Weryfikacja podpisanej cyfrowo umowy przed kontrasygnatą
+- Audyt podpisanych dokumentów w celu potwierdzenia, że nie zostały zmienione
+- Sprawdzenie, czy certyfikat wygasł od czasu podpisania dokumentu
+- Weryfikacja podpisów względem certyfikatu głównego Twojej organizacji
+- Sprawdzanie szczegółów podpisu w dokumentach urzędowych lub prawnych
+
+## Wskazówki
+
+- Certyfikat samopodpisany nie oznacza, że podpis jest nieważny. Oznacza, że tożsamości podpisującego nie można potwierdzić przez zaufaną stronę trzecią. To częste w dokumentach wewnętrznych.
+- Częściowe pokrycie nie zawsze oznacza manipulację. Wiele procesów PDF dodaje aktualizacje przyrostowe (jak drugi podpis), które dają częściowe pokrycie.
+- Prześlij certyfikat główny lub pośredni swojej organizacji jako zaufany certyfikat, aby uzyskać weryfikację łańcucha zaufania.
+
+## Powiązane narzędzia
+
+- [Podpis cyfrowy PDF](./digital-sign-pdf): podpisz pliki PDF własnym certyfikatem
+- [Spłaszcz PDF](./flatten-pdf): spłaszcz plik PDF przed podpisaniem, aby zapobiec modyfikacjom po podpisie
+- [Usuń metadane](./remove-metadata): wyczyść plik PDF przed złożeniem podpisu
diff --git a/docs/pl/tools/view-metadata.md b/docs/pl/tools/view-metadata.md
new file mode 100644
index 00000000..528b10c6
--- /dev/null
+++ b/docs/pl/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Wyświetl metadane
+description: Sprawdź wszystkie właściwości metadanych pliku PDF, w tym informacje o dokumencie, dane XMP i szczegóły strukturalne.
+---
+
+# Wyświetl metadane
+
+Sprawdź ukryte właściwości osadzone w pliku PDF. Narzędzie wyświetla informacje o dokumencie (tytuł, autor, daty), metadane XMP, wymiary stron i inne dane strukturalne w czytelnej formie.
+
+## Jak to działa
+
+1. Prześlij plik PDF.
+2. Narzędzie od razu analizuje plik i wyświetla wszystkie dostępne metadane w uporządkowanych sekcjach.
+3. Przejrzyj słownik informacji o dokumencie, drzewo metadanych XMP i właściwości strukturalne.
+4. Nie jest potrzebny żaden krok przetwarzania: metadane są wyświetlane zaraz po wczytaniu pliku.
+
+## Funkcje
+
+- Wyświetla standardowe pola informacji o dokumencie: Title, Author, Subject, Keywords, Creator, Producer
+- Pokazuje daty utworzenia i modyfikacji w czytelnym formacie
+- Analizuje i wyświetla pełne drzewo metadanych XMP z zagnieżdżonymi przestrzeniami nazw
+- Konwertuje format daty PDF (`D:20240101120000Z`) na czytelne daty
+- Uporządkowane w zwijane sekcje dla łatwej nawigacji
+
+## Sekcje metadanych
+
+| Sekcja | Zawartość |
+| --------------------------- | ------------------------------------------------------------------------------------- |
+| **Informacje o dokumencie** | Title, Author, Subject, Keywords, Creator, Producer, Creation Date, Modification Date |
+| **Metadane XMP** | Pełne drzewo metadanych XML z przestrzeniami nazw Dublin Core, XAP, PDF i własnymi |
+| **Właściwości dokumentu** | Liczba stron, wersja PDF, rozmiar pliku, status szyfrowania |
+
+## Zastosowania
+
+- Sprawdzenie, kto jest autorem pliku PDF i kiedy był ostatnio modyfikowany
+- Weryfikacja, czy metadane zostały poprawnie ustawione przed publikacją dokumentu
+- Audyt plików PDF pod kątem prywatności, czyli sprawdzenie, jakie dane osobowe są osadzone
+- Ustalenie, jakiego oprogramowania użyto do utworzenia lub zmodyfikowania pliku PDF (pole Producer)
+- Przegląd metadanych XMP pod kątem zgodności z zarządzaniem zasobami cyfrowymi
+
+## Wskazówki
+
+- Ciągi dat PDF zaczynające się od `D:` są automatycznie konwertowane na format Twojej strefy czasowej.
+- Jeśli pola metadanych są puste, twórca pliku PDF po prostu ich nie ustawił. Nie wszystkie pliki PDF zawierają bogate metadane.
+- Aby zmodyfikować metadane po sprawdzeniu, użyj [Edytuj metadane](./edit-metadata). Aby usunąć je całkowicie, użyj Usuń metadane.
+
+## Powiązane narzędzia
+
+- [Edytuj metadane](./edit-metadata)
+- [Warstwy PDF (OCG)](./pdf-layers)
+- [Porównaj PDF](./compare-pdfs)
diff --git a/docs/pl/tools/vsd-to-pdf.md b/docs/pl/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..3be3b80d
--- /dev/null
+++ b/docs/pl/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD na PDF
+description: Konwertuj diagramy Microsoft Visio (VSD/VSDX) na PDF w przeglądarce. Za darmo, prywatnie, bez Visio.
+---
+
+# VSD na PDF
+
+Konwertuj diagramy Microsoft Visio na PDF bez instalowania Visio. Pliki VSD i VSDX zawierają schematy blokowe, schematy organizacyjne, diagramy sieciowe i plany pięter, których większość osób nie może otworzyć. To narzędzie renderuje je jako czytelne pliki PDF, które można oglądać na dowolnym urządzeniu.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----------- | :----------- | :----------------------------------------------- |
+| Visio Binary | `.vsd` | Starszy format Visio (Visio 2003 i wcześniejsze) |
+| Visio XML | `.vsdx` | Nowoczesny format Visio (Visio 2013+) |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki VSD lub VSDX. W jednej partii można mieszać oba formaty.
+2. Przejrzyj listę plików. Usuń niechciane pozycje ikoną kosza lub użyj **Dodaj więcej plików**, aby dodać kolejne diagramy.
+3. Kliknij **Konwertuj na PDF**. Silnik oparty na LibreOffice ładuje się w przeglądarce i renderuje każdy diagram do PDF, zachowując kształty, łączniki, etykiety i układ strony.
+4. Pojedynczy diagram jest pobierany bezpośrednio jako PDF. Wiele plików da archiwum ZIP o nazwie `vsd-to-pdf.zip`.
+
+## Opcje
+
+Nie jest wymagana żadna konfiguracja. Konwerter respektuje oryginalny rozmiar i orientację strony z dokumentu Visio.
+
+## Zastosowania
+
+- Przeglądanie diagramów Visio od współpracownika, gdy nie masz licencji Visio
+- Dołączanie diagramów sieciowych lub architektury do dokumentacji projektu jako PDF
+- Drukowanie schematów organizacyjnych lub procesów jako materiałów na spotkania
+- Archiwizacja starych plików VSD ze starszych wersji Visio w formacie odpornym na przyszłość
+
+## Wskazówki
+
+- Wielostronicowe dokumenty Visio dają wielostronicowe pliki PDF, a każda strona Visio odpowiada stronie PDF.
+- Pliki VSDX (nowoczesny format oparty na XML) zwykle konwertują się wierniej niż starsze binarne pliki VSD.
+- Silnik LibreOffice ładuje się raz na sesję. Przy pierwszej konwersji należy się spodziewać krótkiego oczekiwania, a kolejne pliki będą przetwarzane szybciej.
+
+## Powiązane narzędzia
+
+- [ODG na PDF](./odg-to-pdf)
+- [PUB na PDF](./pub-to-pdf)
+- [PSD na PDF](./psd-to-pdf)
diff --git a/docs/pl/tools/webp-to-pdf.md b/docs/pl/tools/webp-to-pdf.md
new file mode 100644
index 00000000..41dd4854
--- /dev/null
+++ b/docs/pl/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP na PDF
+description: Konwertuj obrazy WebP na PDF bezpośrednio w przeglądarce z regulowaną jakością kompresji.
+---
+
+# WebP na PDF
+
+Konwertuj format obrazów WebP od Google na PDF. Jest to szczególnie przydatne, gdy pobrane z sieci obrazy są w formacie WebP, a potrzebujesz ich w bardziej uniwersalnym formacie do druku lub udostępniania.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :----- | :----------- |
+| WebP | `.webp` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki WebP.
+2. Przejrzyj listę plików i usuń te, których nie potrzebujesz.
+3. Wybierz poziom **Jakość PDF**.
+4. Kliknij **Konwertuj na PDF**. Wynik zostanie pobrany jako `from_webps.pdf`.
+
+Wewnątrz każdy obraz WebP jest dekodowany przez API canvas przeglądarki, a następnie osadzany w PDF za pomocą pdf-lib. Dzięki temu konwersja działa w każdej przeglądarce obsługującej dekodowanie WebP (wszystkie nowoczesne ją mają).
+
+## Opcje
+
+**Jakość PDF** steruje kompresją podczas osadzania obrazów:
+
+- **Wysoka jakość**: zachowuje najwięcej szczegółów.
+- **Średnia jakość** (domyślnie): zrównoważony wynik.
+- **Niska jakość**: najmniejszy rozmiar pliku.
+
+## Zastosowania
+
+- Konwersja obrazów pobranych z sieci i zapisanych jako WebP na PDF do wydruku
+- Pakowanie zrzutów ekranu WebP z Chrome lub Edge do dokumentacji
+- Tworzenie portfolio PDF z obrazów eksportowanych z narzędzi graficznych, które domyślnie używają WebP
+- Archiwizacja obrazów WebP w bardziej uniwersalnie czytelnym formacie
+
+## Wskazówki
+
+- WebP jest wewnętrznie dekodowany do PNG przed osadzeniem w PDF, więc obrazy WebP bezstratne zachowują jakość przy ustawieniu Wysoka.
+- Jeśli masz mieszankę WebP i innych formatów obrazów, użyj zamiast tego narzędzia [Obrazy do PDF](./image-to-pdf), które przyjmuje wszystko naraz.
+
+## Powiązane narzędzia
+
+- [Obrazy do PDF](./image-to-pdf)
+- [PNG na PDF](./png-to-pdf)
+- [JPG na PDF](./jpg-to-pdf)
diff --git a/docs/pl/tools/word-to-pdf.md b/docs/pl/tools/word-to-pdf.md
new file mode 100644
index 00000000..9e616877
--- /dev/null
+++ b/docs/pl/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word na PDF
+description: Konwertuj dokumenty Word (DOC, DOCX), ODT i RTF na PDF w przeglądarce z pełnym zachowaniem formatowania.
+---
+
+# Word na PDF
+
+Konwertuj dokumenty Microsoft Word i zgodne formaty na PDF. Narzędzie używa działającego w przeglądarce silnika LibreOffice, który obsługuje pliki DOC, DOCX, ODT i RTF, zachowując w wyniku formatowanie, tabele, obrazy, nagłówki, stopki i style.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenia |
+| :---------------- | :----------- |
+| Word (nowoczesny) | `.docx` |
+| Word (starszy) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść dokumenty Word. Można wybrać wiele plików naraz.
+2. Przejrzyj listę plików i zarządzaj nią.
+3. Kliknij **Konwertuj na PDF**. Silnik LibreOffice ładuje się przy pierwszym użyciu (wskaźnik postępu pokazuje stan inicjalizacji), a następnie każdy plik jest konwertowany.
+4. Pojedynczy plik jest pobierany bezpośrednio jako PDF. Wiele plików jest pakowanych do `word-converted.zip`.
+
+## Opcje
+
+To narzędzie nie ma dodatkowych ustawień. Silnik LibreOffice tworzy wynik przy użyciu domyślnego profilu eksportu PDF.
+
+## Wynik
+
+| Liczba plików | Wynik |
+| :------------ | :------------------------------------------------------------------- |
+| 1 plik | Pobranie jednego PDF (oryginalna nazwa pliku z rozszerzeniem `.pdf`) |
+| 2+ plików | Archiwum ZIP (`word-converted.zip`) z jednym PDF dla każdego pliku |
+
+## Zastosowania
+
+- Konwersja CV lub listu motywacyjnego z DOCX na PDF przed wysłaniem aplikacji
+- Wsadowa konwersja zestawu umów lub ofert na PDF do dostarczenia klientowi
+- Zamiana starszych plików `.doc` na nowoczesne pliki PDF do długoterminowej archiwizacji
+- Konwersja dokumentów współdzielonych z Dokumentów Google (eksportowanych jako DOCX) na PDF
+- Tworzenie gotowych do druku plików PDF z szablonów Word używanych w automatycznym generowaniu dokumentów
+
+## Wskazówki
+
+- Silnik LibreOffice jest pobierany raz na sesję i buforowany. Przy pierwszej konwersji należy się spodziewać kilku sekund ładowania, a kolejne będą znacznie szybsze.
+- Złożone formatowanie (makra, kontrolki ActiveX, zaawansowane SmartArt) może nie zostać przekonwertowane idealnie. Standardowe elementy dokumentu (tekst, tabele, obrazy, nagłówki, przypisy) konwertują się niezawodnie.
+- Ponieważ to narzędzie przyjmuje także ODT i RTF, możesz używać go jako uniwersalnego konwertera wszystkich formatów edytorów tekstu.
+
+## Powiązane narzędzia
+
+- [ODT na PDF](./odt-to-pdf)
+- [RTF na PDF](./rtf-to-pdf)
+- [Excel na PDF](./excel-to-pdf)
+- [PowerPoint na PDF](./powerpoint-to-pdf)
diff --git a/docs/pl/tools/wpd-to-pdf.md b/docs/pl/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..e1d8530b
--- /dev/null
+++ b/docs/pl/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD na PDF
+description: Konwertuj dokumenty WordPerfect (WPD) na PDF w przeglądarce za pomocą LibreOffice. Za darmo i prywatnie.
+---
+
+# WPD na PDF
+
+Konwertuj dokumenty Corel WordPerfect na pliki PDF. WPD był kiedyś dominującym formatem edytorów tekstu w kancelariach prawnych i urzędach. Jeśli masz stare pliki WordPerfect, których współczesne oprogramowanie nie chce otworzyć, to narzędzie przywróci je do życia jako standardowe pliki PDF.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :---------- | :----------- | :---------------------------------- |
+| WordPerfect | `.wpd` | Wszystkie główne wersje WordPerfect |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki WPD. Można wybrać wiele plików naraz.
+2. Przejrzyj listę plików. Usuń niechciane pliki ikoną kosza lub użyj **Dodaj więcej plików**, aby dodać kolejne dokumenty.
+3. Kliknij **Konwertuj na PDF**. Narzędzie ładuje w przeglądarce silnik konwersji oparty na LibreOffice, który analizuje format WPD i tworzy PDF.
+4. Pojedynczy plik jest pobierany bezpośrednio jako PDF. Konwersje wsadowe dają archiwum ZIP o nazwie `wpd-to-pdf.zip`.
+
+## Opcje
+
+Nie jest wymagana żadna konfiguracja. Silnik LibreOffice automatycznie obsługuje formatowanie, czcionki i układ WPD.
+
+## Zastosowania
+
+- Otwieranie wieloletnich dokumentów prawnych napisanych w WordPerfect
+- Konwersja zarchiwizowanych dokumentów urzędowych z WPD na nowoczesny format
+- Migracja starej biblioteki dokumentów WordPerfect do PDF w celu długoterminowego przechowywania
+- Udostępnianie plików WPD odbiorcom, którzy nie mają zainstalowanego Corel WordPerfect
+
+## Wskazówki
+
+- Silnik LibreOffice ładuje się przy pierwszym użyciu, co chwilę trwa. Kolejne konwersje w tej samej sesji są szybsze.
+- Złożone makra WPD i kody ujawniania nie są zachowywane, ale układ wizualny, treść tekstowa i podstawowe formatowanie są przenoszone do PDF.
+
+## Powiązane narzędzia
+
+- [WPS na PDF](./wps-to-pdf)
+- [ODG na PDF](./odg-to-pdf)
diff --git a/docs/pl/tools/wps-to-pdf.md b/docs/pl/tools/wps-to-pdf.md
new file mode 100644
index 00000000..3fa90e0c
--- /dev/null
+++ b/docs/pl/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS na PDF
+description: Konwertuj dokumenty Microsoft Works (WPS) na PDF w przeglądarce. Za darmo, bez rejestracji, w pełni prywatnie.
+---
+
+# WPS na PDF
+
+Konwertuj pliki edytora tekstu Microsoft Works na PDF. Microsoft Works był dołączany do komputerów konsumenckich pod koniec lat 90. i w latach 2000., a wiele plików WPS nadal leży na starych dyskach i w archiwach poczty. To narzędzie otwiera je w przeglądarce i tworzy czytelne pliki PDF.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :-------------- | :----------- | :------------------------------------- |
+| Microsoft Works | `.wps` | Pliki edytora tekstu z Microsoft Works |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki WPS. Można dodać wiele plików.
+2. Przejrzyj listę plików. Użyj ikony kosza, aby usunąć pojedyncze pliki, lub kliknij **Dodaj więcej plików**, aby powiększyć partię.
+3. Kliknij **Konwertuj na PDF**. Silnik oparty na LibreOffice ładuje się w przeglądarce i konwertuje każdy dokument WPS na PDF.
+4. Jeden plik jest pobierany bezpośrednio jako PDF. Wiele plików jest pakowanych do archiwum ZIP o nazwie `wps-to-pdf.zip`.
+
+## Opcje
+
+Nie są potrzebne żadne dodatkowe ustawienia. Konwerter obsługuje tekst, podstawowe formatowanie i osadzone obrazy z pliku WPS.
+
+## Zastosowania
+
+- Odzyskiwanie starych dokumentów szkolnych lub służbowych zapisanych w formacie Microsoft Works
+- Otwieranie załączników WPS w wiadomościach e-mail, gdy nie masz zainstalowanego Microsoft Works
+- Konwersja archiwum plików WPS w celu migracji do nowoczesnego systemu dokumentów
+- Drukowanie starych dokumentów, których obecne edytory tekstu nie potrafią otworzyć
+
+## Wskazówki
+
+- Nie myl plików Microsoft Works `.wps` z plikami WPS Office. To narzędzie jest przeznaczone wyłącznie dla starszego formatu Microsoft Works.
+- Silnik LibreOffice ładuje się chwilę przy pierwszym użyciu. Po załadowaniu kolejne konwersje w tej samej sesji działają szybciej.
+
+## Powiązane narzędzia
+
+- [WPD na PDF](./wpd-to-pdf)
+- [PUB na PDF](./pub-to-pdf)
diff --git a/docs/pl/tools/xml-to-pdf.md b/docs/pl/tools/xml-to-pdf.md
new file mode 100644
index 00000000..1b99226d
--- /dev/null
+++ b/docs/pl/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML na PDF
+description: Konwertuj pliki XML na uporządkowane dokumenty PDF w przeglądarce. Za darmo, prywatnie, bez przetwarzania na serwerze.
+---
+
+# XML na PDF
+
+Konwertuj pliki danych XML na czytelne, uporządkowane dokumenty PDF. Surowy XML jest potężny, ale trudny do czytania dla ludzi. To narzędzie analizuje drzewo XML, rozpoznaje powtarzające się struktury danych i renderuje je jako sformatowane tabele i sekcje w pliku PDF A4 w orientacji poziomej.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----- | :----------- | :------------------------------- |
+| XML | `.xml` | Dowolny poprawnie sformowany XML |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki XML. W jednej partii można przetworzyć wiele plików.
+2. Przejrzyj listę plików. Usuń niechciane pliki ikoną kosza lub kliknij **Dodaj więcej plików**, aby dodać kolejne.
+3. Kliknij **Konwertuj na PDF**. Narzędzie analizuje strukturę XML za pomocą wbudowanego w przeglądarkę DOMParser, analizuje hierarchię danych i renderuje ją do PDF przy użyciu jsPDF z formatowaniem auto-table.
+4. Pojedynczy plik jest pobierany jako PDF. Wiele konwersji jest pakowanych do `xml-to-pdf.zip`.
+
+## Opcje
+
+Nie jest wymagana ręczna konfiguracja. Konwerter automatycznie wykrywa strukturę XML i dobiera odpowiednie układy tabel. Wynik ma orientację poziomą A4, aby pomieścić szerokie zestawy danych.
+
+## Zastosowania
+
+- Zamiana eksportów danych XML z baz danych lub API na raporty do druku
+- Tworzenie czytelnych podsumowań z plików konfiguracyjnych XML
+- Konwersja faktur lub dzienników transakcji opartych na XML na PDF do celów ewidencji
+- Udostępnianie map witryny XML lub kanałów RSS w czytelnej formie dokumentu
+
+## Wskazówki
+
+- XML musi być poprawnie sformowany. Jeśli parser napotka błędy składni, konwersja zakończy się opisowym komunikatem wskazującym problem.
+- Głęboko zagnieżdżone struktury XML są spłaszczane do tabel. Najlepsze wyniki daje, gdy dane mają powtarzające się elementy sąsiednie o spójnych elementach potomnych.
+- Podczas konwersji pojawiają się komunikaty o postępie dla każdej fazy: odczyt, analiza składni, analiza struktury i renderowanie.
+
+## Powiązane narzędzia
+
+- [FB2 na PDF](./fb2-to-pdf)
+- [XPS na PDF](./xps-to-pdf)
+- [E-mail na PDF](./email-to-pdf)
diff --git a/docs/pl/tools/xps-to-pdf.md b/docs/pl/tools/xps-to-pdf.md
new file mode 100644
index 00000000..70bcc539
--- /dev/null
+++ b/docs/pl/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS na PDF
+description: Konwertuj dokumenty XPS i OXPS na format PDF w przeglądarce. Bez wysyłania, bez rejestracji, w pełni prywatnie.
+---
+
+# XPS na PDF
+
+Konwertuj dokumenty Microsoft XPS i OXPS na standardowe pliki PDF. XPS (XML Paper Specification) był odpowiedzią Microsoftu na PDF, ale jego obsługa na różnych platformach zanikła. To narzędzie sprawia, że takie dokumenty znów można czytać wszędzie.
+
+## Obsługiwane formaty
+
+| Format | Rozszerzenie | Uwagi |
+| :----- | :----------- | :---------------------------------------------- |
+| XPS | `.xps` | Oryginalny format Microsoft XPS |
+| OXPS | `.oxps` | Open XPS, wariant zgodny ze standardem ECMA-388 |
+
+## Jak to działa
+
+1. Kliknij obszar przesyłania lub przeciągnij i upuść pliki XPS/OXPS. Można wybrać wiele plików naraz.
+2. Przejrzyj listę plików. Usuń pojedyncze pliki ikoną kosza lub kliknij **Dodaj więcej plików**, aby dołączyć kolejne dokumenty.
+3. Kliknij **Konwertuj na PDF**. Silnik PyMuPDF przetwarza każdy dokument lokalnie w przeglądarce.
+4. Pojedynczy plik jest pobierany bezpośrednio jako PDF. Wiele plików jest pakowanych do archiwum ZIP o nazwie `xps-converted.zip`.
+
+## Opcje
+
+To narzędzie wykonuje bezpośrednią konwersję formatu bez dodatkowej konfiguracji. Wynik zachowuje oryginalne wymiary stron, grafikę wektorową, czcionki i obrazy ze źródła XPS.
+
+## Zastosowania
+
+- Otwieranie plików XPS otrzymanych ze starszych systemów Windows, w których domyślnym sterownikiem drukowania był XPS
+- Konwersja dokumentów OXPS z Windows 10/11 w celu udostępnienia ich użytkownikom macOS lub Linuksa
+- Archiwizacja starych plików XPS w szerzej obsługiwanym formacie
+- Udostępnianie dokumentów urzędowych lub firmowych opartych na XPS odbiorcom zewnętrznym
+
+## Wskazówki
+
+- Rozszerzenia `.xps` i `.oxps` są obsługiwane automatycznie, więc można je mieszać w jednej partii.
+- Jeśli oryginalny plik XPS powstał ze sterownika drukowania o wysokiej rozdzielczości, wynikowy PDF zachowuje tę jakość. Nie następuje żadne ponowne próbkowanie.
+
+## Powiązane narzędzia
+
+- [Word na PDF](./word-to-pdf)
+- [XML na PDF](./xml-to-pdf)
diff --git a/docs/pt/contributing.md b/docs/pt/contributing.md
new file mode 100644
index 00000000..ab24882e
--- /dev/null
+++ b/docs/pt/contributing.md
@@ -0,0 +1,136 @@
+# Contribuindo
+
+Obrigado pelo seu interesse em contribuir com o BentoPDF! Este guia vai ajudar você a começar.
+
+## Primeiros Passos
+
+### Pré-requisitos
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Configuração
+
+```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
+```
+
+## Estrutura do Projeto
+
+```
+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
+```
+
+## Adicionando uma Nova Ferramenta
+
+### Passo 1: Crie o Arquivo de Lógica
+
+Crie `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
+});
+```
+
+### Passo 2: Crie a Página HTML
+
+Crie `src/pages/your-tool.html` seguindo os modelos de ferramentas existentes.
+
+### Passo 3: Registre a Ferramenta
+
+Adicione em `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.',
+}
+```
+
+### Passo 4: Adicione à Configuração de Build
+
+Adicione a página ao `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Passo 5: Adicione as Traduções
+
+Adicione entradas a todos os arquivos de idioma em `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Estilo de Código
+
+- Use TypeScript para todo código novo
+- Siga os padrões existentes para manter a consistência
+- Execute `npm run format` antes de fazer commit
+- Sem comentários no código de produção (os comentários são removidos durante o build)
+
+## Processo de Pull Request
+
+1. Crie uma branch de funcionalidade: `git checkout -b feature/your-feature`
+2. Faça suas alterações
+3. Teste com cuidado: `npm run build`
+4. Envie um PR com uma descrição clara
+
+## Tradução
+
+Veja [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md) para adicionar novos idiomas.
+
+## Contrato de Licença de Contribuidor
+
+Antes que seu PR possa ser mesclado, você precisará assinar nosso CLA:
+
+- [CLA Individual (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [CLA Corporativo (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Obtendo Ajuda
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Comunidade no Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Licença
+
+O BentoPDF tem licenciamento duplo:
+
+- **AGPL-3.0** para projetos de código aberto em que você compartilha todo o seu código-fonte publicamente
+- **Licença Comercial** para aplicações proprietárias/de código fechado - [Obtenha a Licença Vitalícia por $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Ao contribuir, você concorda que suas contribuições serão licenciadas sob esses termos.
diff --git a/docs/pt/getting-started.md b/docs/pt/getting-started.md
new file mode 100644
index 00000000..dcea4cbb
--- /dev/null
+++ b/docs/pt/getting-started.md
@@ -0,0 +1,80 @@
+# Primeiros Passos
+
+Bem-vindo ao BentoPDF! Este guia vai ajudar você a começar rapidamente.
+
+## O que é o BentoPDF?
+
+O BentoPDF é um kit de ferramentas PDF gratuito, de código aberto e focado em privacidade, que funciona **inteiramente no seu navegador**. Seus arquivos nunca saem do seu dispositivo: todo o processamento acontece localmente com a tecnologia WebAssembly (WASM).
+
+## Início Rápido
+
+### Opção 1: Use a Versão Hospedada
+
+Acesse [bentopdf.com](https://www.bentopdf.com) para usar o BentoPDF na hora, sem instalação.
+
+### Opção 2: Hospede por Conta Própria com Docker
+
+> [!IMPORTANT]
+> A conversão de arquivos do Office requer `SharedArrayBuffer`, que exige ambos:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - um contexto seguro
+>
+> `http://localhost` funciona para testes locais porque os navegadores tratam o loopback como confiável. `http://192.168.x.x` ou outros IPs de rede local normalmente não funcionam, então as conversões de Word/Excel/PowerPoint exigirão HTTPS quando acessadas de outros dispositivos da sua rede.
+
+```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]
+> O BentoPDF vem em duas versões: a **versão Self-Hosted** (`bentopdf-simple`, usada acima) para implantações internas, de equipes e organizações, e a **versão Comercial** (`bentopdf:latest`), usada pelo próprio bentopdf.com e por titulares de licença comercial que mantêm implantações públicas. Ambas incluem as mesmas ferramentas de PDF: a versão Comercial adiciona o hero, o FAQ, os depoimentos e o rodapé do bentopdf.com. Em caso de dúvida, use a versão Self-Hosted.
+
+Depois, abra `http://localhost:3000` no seu navegador.
+
+> [!NOTE]
+> Se você está preparando uma implantação de OCR isolada da internet (air-gapped), é preciso hospedar internamente as fontes da camada de texto do OCR, além do worker do Tesseract, do runtime principal e dos arquivos traineddata. A configuração completa está documentada em [Self-Hosting](/pt/self-hosting/), incluindo `VITE_OCR_FONT_BASE_URL` e o diretório `ocr-fonts/` incluído.
+
+### Opção 3: Compile a Partir do Código-Fonte
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Recursos em Resumo
+
+| Categoria | Ferramentas |
+| ---------------------- | --------------------------------------------------------------------- |
+| **Converter para PDF** | Word, Excel, PowerPoint, Imagens, Markdown, EPUB, MOBI e mais |
+| **Converter de PDF** | JPG, PNG, Texto, Excel, SVG e mais |
+| **Editar e Anotar** | Assinar, Destacar, Redigir, Preencher Formulários, Adicionar Carimbos |
+| **Organizar** | Mesclar, Dividir, Girar, Excluir Páginas, Reordenar |
+| **Otimizar** | Comprimir, Reparar, Nivelar, OCR |
+| **Segurança** | Criptografar, Descriptografar, Remover Restrições |
+
+## Suporte a Navegadores
+
+O BentoPDF funciona melhor em navegadores modernos:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Próximos Passos
+
+- [Explore todas as ferramentas](/pt/tools/)
+- [Hospede o BentoPDF por conta própria](/pt/self-hosting/)
+- [Contribua com o projeto](/pt/contributing)
diff --git a/docs/pt/index.md b/docs/pt/index.md
new file mode 100644
index 00000000..88365d91
--- /dev/null
+++ b/docs/pt/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Ferramentas PDF Gratuitas e de Código Aberto'
+ tagline: Processe PDFs inteiramente no seu navegador. Sem uploads. Sem servidores. Privacidade total.
+ actions:
+ - theme: brand
+ text: Começar
+ link: /pt/getting-started
+ - theme: alt
+ text: Ver Ferramentas
+ link: /pt/tools/
+ - theme: alt
+ text: Hospedar por Conta Própria
+ link: /pt/self-hosting/
+ - theme: alt
+ text: Licença Comercial
+ link: /pt/licensing
+
+features:
+ - icon: 🔒
+ title: 100% Privado
+ details: Seus arquivos nunca saem do seu dispositivo. Todo o processamento acontece localmente no seu navegador usando WebAssembly.
+ - icon: ⚡
+ title: Rápido e Gratuito
+ details: Sem cadastros, sem limites, sem marcas d'água. Processe PDFs ilimitados de graça, para sempre.
+ - icon: 🛠️
+ title: Mais de 50 Ferramentas
+ details: Converta, edite, mescle, divida, comprima, assine, aplique OCR e muito mais. Tudo o que você precisa em um só lugar.
+
+ - icon: 🌐
+ title: Hospedável por Conta Própria
+ details: Implante na sua própria infraestrutura. Docker, Vercel, Netlify, AWS ou ambientes totalmente isolados da internet, com workers de OCR, dados de idioma e fontes da camada de texto hospedados por você.
+---
+
+## OCR Offline
+
+Se você hospeda o BentoPDF por conta própria em um ambiente isolado da internet ou offline, o OCR precisa de mais do que o worker do Tesseract e os arquivos traineddata. A saída de PDF pesquisável também exige que as fontes da camada de texto do OCR sejam servidas internamente.
+Veja [Self-Hosting](/pt/self-hosting/) para a configuração completa, incluindo `VITE_OCR_FONT_BASE_URL`, o diretório `ocr-fonts/` incluído e o fluxo de trabalho air-gapped atualizado.
diff --git a/docs/pt/licensing.md b/docs/pt/licensing.md
new file mode 100644
index 00000000..d6f0e87e
--- /dev/null
+++ b/docs/pt/licensing.md
@@ -0,0 +1,110 @@
+# 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](/pt/self-hosting/#configuracao-do-wasm-componentes-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/pt/self-hosting/apache.md b/docs/pt/self-hosting/apache.md
new file mode 100644
index 00000000..b8cbc256
--- /dev/null
+++ b/docs/pt/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Implantação com Apache
+
+Hospede o BentoPDF usando o Apache HTTP Server.
+
+## Pré-requisitos
+
+- Apache 2.4+
+- mod_rewrite habilitado
+- Certificado SSL (recomendado)
+
+## Passo 1: Compile o Projeto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Para personalizar a marca, defina variáveis de ambiente antes de compilar:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Passo 2: Copie os Arquivos
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Passo 3: Configuração do Apache
+
+Crie `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Passo 4: .htaccess para Roteamento
+
+Crie `/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
+```
+
+## Passo 5: Habilite os Módulos Necessários
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Passo 6: Habilite o Site
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Implantação em Subdiretório
+
+Para hospedar em `/pdf/`:
+
+1. Compile com a URL base:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Atualize o `.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
+```
+
+## Solução de Problemas
+
+### Erros 404 de WASM
+
+Verifique se o tipo MIME está configurado:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Assinar PDF ou Preencher Formulários Mostra um Visualizador em Branco (erro de MIME `.mjs`)
+
+Se o console do navegador mostrar:
+
+```
+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.
+```
+
+…e a requisição com falha termina em `.mjs`, falta na sua configuração do Apache o mapeamento `.mjs → application/javascript`. O visualizador de PDF incluído usa arquivos de módulo ES com extensão `.mjs`, e o `mime.types` padrão do Apache não os inclui por padrão.
+
+Adicione ao seu VirtualHost ou `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Depois, recarregue o Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Para confirmar: no DevTools do navegador, na aba Network, encontre a requisição `.mjs` com falha e verifique o cabeçalho de resposta `Content-Type`. Ele deve ser `application/javascript`, e não `application/octet-stream`.
+
+### Rewrite Não Funciona
+
+Verifique se o mod_rewrite está habilitado:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Word/ODT/Excel para PDF Não Funciona
+
+O LibreOffice WASM requer `SharedArrayBuffer`, que exige estes cabeçalhos:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Ele também exige um contexto seguro. `http://localhost` funciona para testes locais, mas `http://192.168.x.x` ou outros IPs de rede local normalmente exigem HTTPS. Se os cabeçalhos estiverem presentes, mas `window.crossOriginIsolated` ainda for `false`, verifique se a página está sendo aberta por HTTP simples em uma origem que não seja loopback.
+
+Os arquivos pré-comprimidos `.wasm.gz` e `.data.gz` também precisam do `Content-Encoding` correto:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Verifique se o `mod_headers` está habilitado: `sudo a2enmod headers`
+
+### Permissão Negada
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/pt/self-hosting/aws.md b/docs/pt/self-hosting/aws.md
new file mode 100644
index 00000000..9bbfe7fe
--- /dev/null
+++ b/docs/pt/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Implantação na AWS S3 + CloudFront
+
+Hospede o BentoPDF na AWS para ter o máximo de controle e escalabilidade.
+
+## Arquitetura
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Passo 1: Crie o Bucket S3
+
+```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
+```
+
+## Passo 2: Compile e Envie
+
+```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
+```
+
+## Passo 3: Crie a Distribuição do CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Ou use o Console da AWS:
+
+1. Vá para CloudFront → Create distribution
+2. Origin domain: selecione seu bucket S3
+3. Ative "Origin Access Control"
+4. Default root object: `index.html`
+5. Crie a distribuição
+
+## Passo 3b: Política de Cabeçalhos de Resposta (Necessária para o LibreOffice WASM)
+
+As conversões baseadas no LibreOffice (Word, Excel e PowerPoint para PDF) exigem `SharedArrayBuffer`, que precisa de cabeçalhos de resposta específicos. Crie uma Response Headers Policy no CloudFront:
+
+1. Vá para CloudFront → Policies → Response headers
+2. Crie uma política personalizada com estes cabeçalhos:
+
+| Cabeçalho | Valor |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Anexe a política ao comportamento de cache padrão da sua distribuição
+
+Ou pela 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}
+ ]
+ }
+ }'
+```
+
+## Passo 3c: Metadados do S3 para Arquivos WASM Pré-Comprimidos
+
+Os arquivos WASM do LibreOffice são pré-comprimidos (`.wasm.gz`, `.data.gz`). Defina o Content-Type e o Content-Encoding corretos para que os navegadores os descomprimam:
+
+```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 Importante
+Sem a política de cabeçalhos de resposta, o `SharedArrayBuffer` fica indisponível e as conversões do LibreOffice WASM travam em ~55%. Sem o Content-Encoding correto nos arquivos `.gz`, o navegador recebe bytes gzip brutos e a compilação do WASM falha.
+:::
+
+## Passo 4: Política do Bucket S3
+
+Permita que o CloudFront acesse o 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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Passo 5: Páginas de Erro Personalizadas
+
+Configure o 404 para retornar `index.html` no roteamento SPA:
+
+1. CloudFront → Error pages
+2. Crie uma resposta de erro personalizada:
+ - Código de erro HTTP: 404
+ - Caminho da página de resposta: `/index.html`
+ - Código de resposta HTTP: 200
+
+## Estimativa de Custos
+
+| Recurso | Custo Estimado |
+| ---------------------------------- | -------------- |
+| Armazenamento S3 (~500MB) | ~$0,01/mês |
+| CloudFront (1TB de transferência) | ~$85/mês |
+| CloudFront (10GB de transferência) | ~$0,85/mês |
+
+::: tip
+Use o S3 Intelligent Tiering para otimizar custos de arquivos acessados com pouca frequência.
+:::
+
+## Automação com 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"
+ }
+}
+```
diff --git a/docs/pt/self-hosting/cloudflare.md b/docs/pt/self-hosting/cloudflare.md
new file mode 100644
index 00000000..461166cf
--- /dev/null
+++ b/docs/pt/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Implantação no Cloudflare Pages
+
+O [Cloudflare Pages](https://pages.cloudflare.com) oferece hospedagem estática rápida e global com largura de banda ilimitada.
+
+## Implantação Rápida
+
+1. Acesse o [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Clique em "Create a project"
+3. Conecte seu repositório do GitHub
+
+## Configuração de Build
+
+| Configuração | Valor |
+| ---------------------- | --------------- |
+| Framework preset | Nenhum |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Variáveis de Ambiente
+
+Adicione estas em Settings → Environment variables:
+
+| Variável | Valor |
+| ----------------------- | --------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (opcional) |
+| `VITE_BRAND_NAME` | Nome de marca personalizado (opcional) |
+| `VITE_BRAND_LOGO` | Caminho do logotipo relativo a `public/` (opcional) |
+| `VITE_FOOTER_TEXT` | Texto personalizado de rodapé/copyright (opcional) |
+| `VITE_DEFAULT_LANGUAGE` | Idioma padrão da interface, p. ex. `fr` (opcional) |
+
+## Arquivo de Configuração
+
+Crie `_headers` na sua pasta `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 Importante
+Os cabeçalhos `Cross-Origin-Embedder-Policy` e `Cross-Origin-Opener-Policy` são necessários para as conversões de Word/ODT/Excel/PowerPoint para PDF. Sem eles, o `SharedArrayBuffer` fica indisponível e o mecanismo LibreOffice WASM não consegue inicializar.
+:::
+
+Crie `_redirects` para o roteamento SPA:
+
+```
+/* /index.html 200
+```
+
+## Domínio Personalizado
+
+1. Acesse seu projeto no Pages
+2. Clique em "Custom domains"
+3. Adicione seu domínio
+4. O Cloudflare configura o DNS automaticamente se o domínio estiver no Cloudflare
+
+## Vantagens
+
+- **Largura de banda ilimitada e gratuita**
+- **CDN global** com mais de 300 locais de borda
+- **HTTPS automático**
+- **Implantações de pré-visualização** para pull requests
+- **Builds rápidos**
+
+## Solução de Problemas
+
+### Upload de Arquivos Grandes
+
+O Cloudflare Pages aceita arquivos de até 25 MB. Os módulos WASM devem funcionar bem, mas se você atingir os limites, considere:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Limites de Tamanho do Worker
+
+Se você usa o Cloudflare Workers para roteamento avançado, observe o limite de 1 MB nos planos gratuitos.
+
+## Worker de Proxy CORS (para Assinaturas Digitais)
+
+A ferramenta de Assinatura Digital exige um proxy CORS para buscar cadeias de certificados. Implante o worker incluído:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Recursos de Segurança
+
+| Recurso | Descrição |
+| -------------------------------- | -------------------------------------- |
+| **Restrições de URL** | Apenas URLs de certificados permitidas |
+| **Limite de Tamanho de Arquivo** | Máx. 10MB por requisição |
+| **Limitação de Taxa** | 60 req/IP/min (requer KV) |
+| **Bloqueio de IP Privado** | Bloqueia localhost e IPs internos |
+
+### Ativar Limitação de Taxa
+
+```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
+```
+
+### Compile com a URL do Proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Ou com 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 .
+```
+
+> **Observação:** Veja o [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required) para configurar a assinatura HMAC.
diff --git a/docs/pt/self-hosting/cors-proxy.md b/docs/pt/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..5475cc91
--- /dev/null
+++ b/docs/pt/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# Proxy CORS para Buscar Certificados
+
+A ferramenta de assinatura digital usa um proxy CORS para buscar certificados de emissores em Autoridades Certificadoras (CAs) externas. Isso é necessário porque muitos servidores de CA não incluem cabeçalhos CORS nas respostas, o que impede a busca direta pelo navegador.
+
+Além disso, muitos servidores de CA entregam certificados por HTTP simples. Quando sua instância do BentoPDF é hospedada em HTTPS, os navegadores bloqueiam essas requisições HTTP (política de conteúdo misto). O proxy CORS resolve os dois problemas encaminhando as requisições por um endpoint HTTPS com os cabeçalhos corretos.
+
+## Como Funciona
+
+Ao assinar um PDF com um certificado:
+
+1. A biblioteca `zgapdfsigner` tenta montar uma cadeia de certificados completa
+2. Ela busca os certificados dos emissores em URLs incorporadas na extensão AIA (Authority Information Access) do seu certificado
+3. Essas requisições passam por um proxy CORS que adiciona os cabeçalhos `Access-Control-Allow-Origin` necessários
+4. O proxy devolve os dados do certificado ao navegador
+
+## Hospedando o Proxy CORS por Conta Própria
+
+Se você hospeda o BentoPDF por conta própria, precisará implantar seu próprio proxy CORS para que as assinaturas digitais funcionem com certificados que exigem busca da cadeia.
+
+### Opção 1: Cloudflare Workers (Recomendado)
+
+1. **Instale a CLI do Wrangler**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Faça login no Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Clone o BentoPDF e atualize as origens permitidas**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Abra `cors-proxy-worker.js` e altere o array `ALLOWED_ORIGINS` para o seu domínio:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Importante
+ Sem essa alteração, o proxy rejeitará todas as requisições do seu site com um erro **403 Forbidden**. O padrão só permite requisições de `bentopdf.com`.
+ :::
+
+4. **Implante o proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Anote a URL do seu worker (p. ex., `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Recompile o BentoPDF com a URL do proxy**:
+
+ Se estiver usando 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 .
+ ```
+
+ Se estiver compilando a partir do código-fonte:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Opção 2: Proxy de Backend Personalizado
+
+Você também pode criar seu próprio endpoint de proxy. Os requisitos são:
+
+1. Aceitar requisições GET com um parâmetro de consulta `url`
+2. Buscar a URL a partir do seu servidor (sem restrições de CORS no lado do servidor)
+3. Devolver a resposta com estes cabeçalhos:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Exemplo de implementação com 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' });
+ }
+});
+```
+
+## Considerações de Segurança
+
+O Cloudflare Worker incluído tem várias medidas de segurança:
+
+| Recurso | Descrição |
+| -------------------------------- | ------------------------------------------------------------------------------------------------- |
+| **Validação de Origem** | Só permite requisições de domínios listados em `ALLOWED_ORIGINS` |
+| **Restrições de URL** | Só permite URLs de certificados (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Bloqueio de IP Privado** | Bloqueia faixas privadas IPv4/IPv6, link-local, loopback, IPs decimais e metadados de nuvem |
+| **Segurança de Content-Type** | Só devolve tipos MIME de certificado seguros e bloqueia injeção de content-type vinda do upstream |
+| **Limite de Tamanho de Arquivo** | Transmite a resposta com limite de 10MB e interrompe o download se for excedido |
+| **Limitação de Taxa** | 60 requisições por minuto por IP ou IPv6 /64 (requer KV, libera o acesso se o KV falhar) |
+| **Assinaturas HMAC** | Assinatura opcional no cliente (desestimula abuso casual) |
+
+### DNS rebinding (hospedagem própria fora do Cloudflare)
+
+O worker rejeita qualquer URL que resolva para um IP privado ou interno. Ele não pode usar uma lista fixa de hosts permitidos, pois as URLs da cadeia de certificados apontam para a CA que emitiu o certificado (FNMT, CAs corporativas e assim por diante), então os destinos não são conhecidos de antemão. Isso deixa uma pequena janela de rebinding: quem controla o DNS do próprio domínio poderia devolver um IP público na verificação de segurança e um IP privado na requisição real, logo em seguida.
+
+No Cloudflare isso não é explorável: os Workers não alcançam IPs privados nem o endpoint de metadados `169.254.169.254`, então um rebind não chega a lugar nenhum. Apenas não dê ao worker um caminho de entrada: não anexe um Tunnel, Service ou binding de rede privada (ele só precisa de `RATE_LIMIT_KV`).
+
+Se você executa isso fora do Cloudflare (workerd, Node e similares) dentro de uma VPC, o runtime _consegue_ alcançar IPs internos. Coloque um firewall de saída na frente dele e bloqueie as faixas privadas: `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` e seus equivalentes IPv6. O código da aplicação não consegue impor isso fora do Cloudflare.
+
+## Desativando o Proxy
+
+Se você não quer usar um proxy CORS, defina a variável de ambiente como uma string vazia:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Observação**: Sem o proxy, a assinatura com certificados que exigem busca externa da cadeia (como FNMT ou algumas CAs corporativas) falhará com o erro "Failed to fetch".
+
+## Solução de Problemas
+
+### "Signing error: TypeError: Failed to fetch"
+
+Isso geralmente significa uma destas situações:
+
+1. **Nenhum proxy CORS configurado**: defina `VITE_CORS_PROXY_URL` e recompile
+2. **Conteúdo misto bloqueado**: seu site usa HTTPS, mas a URL do emissor do certificado usa HTTP. O proxy CORS resolve isso.
+3. **Proxy CORS rejeitando sua origem**: verifique se o seu domínio está no array `ALLOWED_ORIGINS` em `cors-proxy-worker.js`
+
+### "403 Forbidden" vindo do proxy
+
+Seu domínio não está na lista `ALLOWED_ORIGINS`. Edite `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Depois, implante novamente: `npx wrangler deploy`
+
+### Testando o proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certificados que Funcionam Sem Proxy
+
+Alguns certificados incluem a cadeia completa no arquivo P12/PFX e não exigem busca externa:
+
+- Certificados autoassinados
+- Algumas CAs comerciais que incluem certificados intermediários
+- Certificados que você montou manualmente com a cadeia completa
diff --git a/docs/pt/self-hosting/docker.md b/docs/pt/self-hosting/docker.md
new file mode 100644
index 00000000..819313a7
--- /dev/null
+++ b/docs/pt/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Implantação com Docker / Podman
+
+A maneira mais fácil de hospedar o BentoPDF por conta própria em um ambiente de produção.
+
+> [!IMPORTANT]
+> **Cabeçalhos Necessários para a Conversão de Arquivos do Office**
+>
+> As ferramentas baseadas no LibreOffice (conversão de Word, Excel e PowerPoint) exigem estes cabeçalhos HTTP para dar suporte a `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> A página também precisa ser servida em um contexto seguro. `http://localhost` funciona para testes locais, mas `http://192.168.x.x` ou outros IPs de rede local normalmente não se qualificam, então a conversão do Office por HTTP simples falhará mesmo com os cabeçalhos presentes.
+>
+> As imagens de contêiner oficiais já incluem esses cabeçalhos. Se você usa um proxy reverso (Traefik, Caddy etc.), garanta que esses cabeçalhos sejam preservados ou adicionados, e use HTTPS para acessos que não sejam de loopback.
+
+> [!TIP]
+> **Usuários do Podman:** todos os comandos `docker` funcionam com o Podman substituindo `docker` por `podman` e `docker-compose` por `podman-compose`.
+
+## Início Rápido
+
+> [!TIP]
+> O BentoPDF vem em duas versões:
+>
+> - **Versão Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Todas as ferramentas de PDF, **sem** a parte de marketing (sem hero, FAQ, depoimentos nem rodapé). Use para implantações internas, de equipes e organizações. **Não** é uma versão "lite" com menos recursos.
+> - **Versão Comercial**: `ghcr.io/alam00000/bentopdf:latest`. O site de marketing completo, usado pelo próprio bentopdf.com e por titulares de licença comercial que mantêm implantações públicas.
+>
+> Em caso de dúvida: baixe a versão Self-Hosted.
+
+```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
+
+Crie o `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
+```
+
+Execute:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Crie Sua Própria Imagem
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Compile e execute:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Variáveis de Ambiente
+
+| Variável | Descrição | Padrão |
+| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Compila a variante Self-Hosted (oculta a parte de marketing do bentopdf.com: hero, FAQ, depoimentos e rodapé). Todas as ferramentas de PDF permanecem. | `false` |
+| `BASE_URL` | Implantar em subdiretório | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL do módulo WASM do PyMuPDF | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL do módulo WASM do Ghostscript | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL do módulo WASM do CoherentPDF | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL do script do worker de OCR | _(vazio; usa a CDN padrão do Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Diretório do runtime principal do OCR | _(vazio; usa a CDN padrão do Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Diretório traineddata do OCR | _(vazio; usa a CDN padrão do Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Idiomas de OCR separados por vírgula exibidos na interface | _(vazio; mostra o catálogo completo)_ |
+| `VITE_OCR_FONT_BASE_URL` | Diretório de fontes da camada de texto do OCR | _(vazio; usa as URLs remotas de fontes Noto)_ |
+| `VITE_DEFAULT_LANGUAGE` | Idioma padrão da interface | `en` |
+| `VITE_BRAND_NAME` | Nome de marca personalizado | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Caminho do logotipo relativo a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Texto personalizado de rodapé/copyright | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | IDs de ferramentas separados por vírgula a ocultar | _(vazio; todas as ferramentas ativadas)_ |
+| `DISABLE_GITHUB_STARS` | Pula a busca da contagem de estrelas do GitHub ao carregar a página e remove `api.github.com` da CSP. As versões Simple Mode sempre a dispensam. | `false` |
+| `SITE_URL` | URL pública gravada nos links canonical, hreflang e sitemap. Mantenha o padrão, a menos que queira que os mecanismos de busca tratem sua implantação como um site próprio. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | Com um `SITE_URL` personalizado, todas as páginas são marcadas como `noindex` para que sua cópia não concorra com o bentopdf.com nos resultados de busca. Defina como `true` para permitir a indexação pelos mecanismos de busca. | `false` |
+| `COMPRESSION_MODE` | Cópias pré-comprimidas salvas ao lado de cada arquivo: `o` nenhuma, `g` `.gz` (servidas pelo nginx da imagem), `b` `.br`, `all` ambas. O nginx da imagem não consegue servir `.br`. | `o` |
+
+As URLs dos módulos WASM vêm pré-configuradas com padrões de CDN, então todos os recursos avançados funcionam sem configuração. Substitua-as em implantações isoladas da internet (air-gapped) ou hospedadas por conta própria.
+
+### Mecanismos de busca
+
+Por padrão, cada página indica aos mecanismos de busca o bentopdf.com como original, para que sua implantação não apareça como duplicada. Você não precisa mudar nada em uma instância privada ou interna.
+
+- **Manter sua instância fora dos resultados de busca:** execute o contêiner com `-e ROBOTS_NOINDEX=true`. Isso exige apenas uma reinicialização, não uma recompilação.
+- **Fazer da sua instância um site próprio nos resultados de busca:** compile com `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Sem `ALLOW_INDEXING=true`, um `SITE_URL` personalizado marca todas as páginas como `noindex`.
+
+### Content-Security-Policy
+
+A imagem do nginx vem com um cabeçalho `Content-Security-Policy` em modo de aplicação. As diretivas `script-src`, `connect-src` e `font-src` da CSP são **geradas em tempo de build** a partir das variáveis de URL `VITE_*` acima: os hosts que você passar via `--build-arg` são adicionados automaticamente à política.
+
+Como resultado:
+
+- Se você substituir `VITE_CORS_PROXY_URL` ou `VITE_WASM_*_URL` em tempo de build, a CSP permite essas origens automaticamente, sem configuração extra.
+- Para URLs em `cdn.jsdelivr.net`, o `script-src` permite apenas a pasta exata do pacote com versão, por exemplo `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, e não a CDN inteira. O jsDelivr serve qualquer pacote npm público ou repositório do GitHub, então permitir o host inteiro deixaria qualquer um deles rodar na sua instância. URLs em qualquer outro host são permitidas por origem.
+- Se você configurar URLs WASM personalizadas em _tempo de execução_ pela página de Configurações Avançadas do app, essas origens **não** estarão na CSP e o navegador bloqueará as requisições a elas. Isso vale também para uma versão diferente do mesmo pacote em `cdn.jsdelivr.net`, pois só a versão definida em tempo de build é permitida. A configuração em tempo de execução serve para experimentação; para URLs personalizadas permanentes, defina o build arg `VITE_*` correspondente.
+- Em implantações air-gapped que substituem os três valores `VITE_WASM_*_URL`, essas pastas de pacote de `cdn.jsdelivr.net` também são removidas da CSP (cada padrão é substituído, não acrescentado). Os padrões do Tesseract OCR em `cdn.jsdelivr.net` permanecem na política até que você defina também os três valores `VITE_TESSERACT_*`. Da mesma forma, definir `VITE_CORS_PROXY_URL` substitui o padrão público `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+A CSP inclui `'unsafe-eval'` no `script-src` porque o runtime do LibreOffice WASM (usado pelas ferramentas de conversão de Word/Excel/PowerPoint) e a biblioteca de imagens wasm-vips (usada em PDF para TIFF) compilam código interno de despacho via `new Function()`. Removê-lo quebraria essas ferramentas. Se você compila em `SIMPLE_MODE` (sem LibreOffice) e não precisa de PDF para TIFF, pode editar manualmente o `security-headers.conf` gerado para remover `'unsafe-eval'` e obter uma política mais restrita.
+
+Para o OCR, deixe as variáveis `VITE_TESSERACT_*` vazias para usar os recursos online padrão, ou defina as três juntas para OCR hospedado por conta própria/offline. Substituições parciais do OCR são rejeitadas porque o worker, o runtime principal e o diretório traineddata precisam corresponder. Para uma saída de PDF pesquisável totalmente offline, defina também `VITE_OCR_FONT_BASE_URL`, de modo que as fontes da camada de texto do OCR sejam carregadas do seu servidor interno e não das URLs públicas de fontes Noto.
+
+`VITE_DEFAULT_LANGUAGE` define o idioma da interface para quem visita pela primeira vez. Valores aceitos: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Os usuários ainda podem trocar de idioma; isso só muda o padrão.
+
+Exemplo:
+
+```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
+```
+
+### Marca Personalizada
+
+Substitua o logotipo, o nome e o texto de rodapé padrão do BentoPDF pelos seus. Coloque seu arquivo de logotipo na pasta `public/` (ou use uma imagem existente) e passe as variáveis de marca em tempo de build:
+
+```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 .
+```
+
+A marca personalizada funciona tanto no modo completo quanto no Simple Mode, e pode ser combinada com todas as outras opções de build.
+
+### Desativando Ferramentas Específicas
+
+Oculte ferramentas da interface por requisitos de conformidade ou segurança. As ferramentas desativadas são removidas da página inicial, dos resultados de busca, dos atalhos de teclado e do construtor de fluxos de trabalho. O acesso direto pela URL mostra uma página de "ferramenta indisponível".
+
+Os IDs das ferramentas são a URL da página sem `.html`. Por exemplo, se a ferramenta está em `bentopdf.com/edit-pdf.html`, o ID é `edit-pdf`.
+
+#### Encontrando os IDs das Ferramentas
+
+O jeito mais fácil: abra qualquer ferramenta no BentoPDF e olhe a URL. A última parte do caminho (sem `.html`) é o ID da ferramenta.
+
+
+Lista completa de IDs das ferramentas
+
+**Editar e Anotar:** `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`
+
+**Converter para 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`
+
+**Converter de 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`
+
+**Organizar e Gerenciar:** `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`
+
+**Otimizar e Reparar:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Segurança:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Opção 1: Em tempo de build (build arg do Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Isso embute a lista de desativadas no bundle JavaScript. Mudar exige uma recompilação.
+
+#### Opção 2: Em tempo de execução (config.json)
+
+Monte um arquivo `config.json` no diretório servido, sem precisar recompilar:
+
+```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
+```
+
+Ou com 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
+```
+
+Os dois métodos podem ser combinados: as listas são mescladas. Se uma ferramenta aparecer em qualquer uma delas, ela é desativada.
+
+#### Desativando Recursos do Editor
+
+Você também pode desativar recursos específicos dentro do Editor de PDF (p. ex., redação, anotações, formulários) sem desativar a ferramenta de edição inteira. Adicione `editorDisabledCategories` ao seu `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Lista completa de categorias do editor
+
+**Zoom:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Anotação:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Formas:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Medição:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formulário:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Redação:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Documento:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Página:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Painel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Ferramentas:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Seleção:** `selection`, `selection-copy`
+
+**Histórico:** `history`, `history-undo`, `history-redo`
+
+
+
+As categorias são hierárquicas: desativar uma categoria pai (p. ex., `annotation`) desativa todas as suas filhas.
+
+### Desativando o Contador de Estrelas do GitHub
+
+A barra de navegação mostra a contagem de estrelas do GitHub em tempo real, buscada em `api.github.com` ao carregar a página. É a única requisição externa que não atende a um recurso de PDF. Desative-a em tempo de build para remover o código de busca do bundle e tirar `api.github.com` da Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+As versões Simple Mode (`bentopdf-simple`) sempre dispensam o contador de estrelas; essa opção só é necessária na versão Comercial ou em builds completos personalizados.
+
+### URLs WASM Personalizadas (Air-Gapped / Hospedagem Própria)
+
+> [!IMPORTANT]
+> As URLs WASM são embutidas no JavaScript em **tempo de build**. Os arquivos WASM são baixados pelo **navegador do usuário** em tempo de execução: o Docker não os baixa durante o build. Em redes air-gapped, você precisa hospedar os arquivos WASM em um servidor interno que os navegadores consigam alcançar.
+
+**Fluxo de trabalho air-gapped completo:**
+
+```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
+```
+
+Use os códigos exibidos por `bash scripts/prepare-airgap.sh --list-ocr-languages`, ou busque pelo nome com `bash scripts/prepare-airgap.sh --search-ocr-language `, em `--ocr-languages`. Ao compilar com um subconjunto restrito de OCR, passe os mesmos códigos para `VITE_TESSERACT_AVAILABLE_LANGUAGES` para que o app mostre apenas os idiomas incluídos. Para uma saída de OCR totalmente offline, hospede também o diretório `ocr-fonts/` incluído e aponte `VITE_OCR_FONT_BASE_URL` para ele.
+
+Defina uma variável como string vazia para desativar esse módulo (os usuários precisarão configurar manualmente em Configurações Avançadas).
+
+## Porta Personalizada
+
+Por padrão, o BentoPDF escuta na porta `8080` dentro do contêiner. Para mudar isso, defina a variável de ambiente `PORT` em tempo de execução:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Variável | Descrição | Padrão |
+| -------- | ------------------------------------- | ------ |
+| `PORT` | Porta de escuta do Nginx no contêiner | `8080` |
+
+Isso funciona tanto com o Dockerfile padrão quanto com o nonroot.
+
+## ID de Usuário Personalizado (PUID/PGID)
+
+Para ambientes que exigem execução como um usuário específico que não seja root (dispositivos NAS, Kubernetes com contextos de segurança, políticas organizacionais), o BentoPDF oferece um Dockerfile separado com suporte a PUID/PGID no estilo LSIO.
+
+### Compile e Execute
+
+```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
+```
+
+### Variáveis de Ambiente
+
+| Variável | Descrição | Padrão |
+| -------------- | ------------------------- | ------- |
+| `PUID` | ID do usuário de execução | `1000` |
+| `PGID` | ID do grupo de execução | `1000` |
+| `PORT` | Porta de escuta do Nginx | `8080` |
+| `DISABLE_IPV6` | Desativar o listener 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
+```
+
+### Como Funciona
+
+O contêiner inicia como root, cria um usuário com o PUID/PGID especificado, ajusta a propriedade de todos os diretórios graváveis e depois reduz os privilégios usando `su-exec`. O processo do nginx roda inteiramente como o usuário que você especificou.
+
+> [!NOTE]
+> O `Dockerfile` padrão usa `nginx-unprivileged` (UID 101) e é recomendado para a maioria das implantações. Use o `Dockerfile.nonroot` apenas quando precisar de um UID/GID específico.
+
+> [!WARNING]
+> PUID/PGID não podem ser `0` (root). O entrypoint valida as entradas e encerra com erro para valores inválidos.
+
+## Com Traefik (Proxy Reverso)
+
+```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
+```
+
+## Com Caddy (Proxy Reverso)
+
+```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"
+}
+```
+
+## Limites de Recursos
+
+```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 (Integração com Systemd)
+
+O [Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) permite executar contêineres do Podman como serviços do systemd. É ideal para implantações de produção em sistemas Linux.
+
+### Configuração Básica do Quadlet
+
+Crie um arquivo de unidade de contêiner em `~/.config/containers/systemd/bentopdf.container` (usuário) ou `/etc/containers/systemd/bentopdf.container` (sistema):
+
+```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
+```
+
+### Habilite e Inicie
+
+```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]
+> Para implantação em todo o sistema, use `systemctl` sem a flag `--user` e coloque o arquivo em `/etc/containers/systemd/`.
+
+### Quadlet com Health Check
+
+```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
+```
+
+### Atualização Automática com Quadlet
+
+O Podman pode atualizar contêineres automaticamente quando houver novas imagens disponíveis:
+
+```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
+```
+
+### Configuração de Rede do Quadlet
+
+Para uma configuração de rede personalizada, crie um arquivo de rede `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Depois, referencie-o no seu arquivo de contêiner:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Atualizando
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/pt/self-hosting/hostinger.md b/docs/pt/self-hosting/hostinger.md
new file mode 100644
index 00000000..29b74087
--- /dev/null
+++ b/docs/pt/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Implantação na Hostinger
+
+A [Hostinger](https://hostinger.com) é um provedor popular de hospedagem compartilhada. Este guia explica como implantar o BentoPDF na hospedagem compartilhada da Hostinger.
+
+## Pré-requisitos
+
+- Plano de hospedagem da Hostinger com acesso ao gerenciador de arquivos
+- Node.js instalado localmente para compilar
+
+## Passo 1: Compile o Projeto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Os arquivos compilados ficarão na pasta `dist`.
+
+## Passo 2: Envie para a Hostinger
+
+### Implantação no Domínio Raiz
+
+1. Entre na sua conta da Hostinger
+2. Vá para **File Manager** → **public_html**
+3. **Exclua** os arquivos existentes (faça backup, se necessário)
+4. **Envie** todo o conteúdo da sua pasta local `dist` para `public_html`
+
+### Implantação em Subdiretório
+
+Se for implantar em um subdiretório (p. ex., `yourdomain.com/pdf-tools/`):
+
+1. Compile com a URL base correta:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Crie a pasta na Hostinger:
+ - Vá para **File Manager** → **public_html**
+ - Crie uma nova pasta: `pdf-tools`
+3. Envie todo o conteúdo de `dist` para `public_html/pdf-tools/`
+
+## Passo 3: Crie o Arquivo .htaccess
+
+Crie um arquivo `.htaccess` na raiz da sua pasta de implantação (`public_html` ou `public_html/pdf-tools/`):
+
+::: warning Importante
+Para implantação em subdiretório, altere `RewriteBase /` para `RewriteBase /pdf-tools/` (ou o nome da sua pasta).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Exemplo de .htaccess para Subdiretório
+
+Para `yourdomain.com/pdf-tools/`, atualize estas linhas:
+
+```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
+```
+
+## Solução de Problemas
+
+### Arquivos WASM Não Carregam
+
+Verifique se os tipos MIME estão definidos corretamente no `.htaccess`:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Ferramentas do LibreOffice Não Funcionam
+
+Os cabeçalhos de segurança são essenciais para o SharedArrayBuffer:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Se os cabeçalhos não estiverem sendo aplicados, entre em contato com o suporte da Hostinger para habilitar o `mod_headers`.
+
+### Erros 404 ao Atualizar a Página
+
+Verifique se a regra da extensão `.html` e as rotas de idioma estão configuradas corretamente. O BentoPDF usa arquivos HTML estáticos, não roteamento 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]
+```
+
+### Limites de Upload de Arquivos
+
+A Hostinger pode ter limites de tamanho de arquivo. Envie os arquivos WASM separadamente se o upload em massa falhar.
diff --git a/docs/pt/self-hosting/index.md b/docs/pt/self-hosting/index.md
new file mode 100644
index 00000000..da6c1e68
--- /dev/null
+++ b/docs/pt/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Guia de Auto-Hospedagem
+
+O BentoPDF pode ser auto-hospedado na sua própria infraestrutura. Este guia cobre várias opções de implantação.
+
+## Início Rápido com Docker / Podman
+
+A forma mais rápida de auto-hospedar o BentoPDF:
+
+> [!TIP]
+> O BentoPDF é distribuído em duas versões:
+>
+> - **Versão Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Todas as ferramentas de PDF, **sem** os elementos de marketing (sem hero, FAQ, depoimentos nem rodapé). Use esta para implantações internas, de equipe ou de organização. **Não** é uma versão "lite" com menos recursos.
+> - **Versão Commercial**: `ghcr.io/alam00000/bentopdf:latest`. O site de marketing completo, usado pelo próprio bentopdf.com e por detentores de licença comercial que executam implantações voltadas ao público.
+>
+> Na dúvida: use a versão Self-Hosted.
+
+> [!IMPORTANT]
+> A conversão de arquivos do Office exige `SharedArrayBuffer`, o que significa que o aplicativo precisa estar isolado de origem cruzada (cross-origin isolated) e ser servido a partir de um contexto seguro. A imagem oficial já envia os cabeçalhos COOP/COEP necessários, mas os navegadores ainda desativam o `SharedArrayBuffer` em origens HTTP simples da rede local, como `http://192.168.x.x`.
+>
+> Use `http://localhost` apenas para testes no mesmo dispositivo. Se os usuários acessarem o BentoPDF por um IP ou nome de host da rede local, termine a conexão com 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
+```
+
+Ou com 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)
+
+Execute o BentoPDF como um serviço do systemd. Crie `~/.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
+```
+
+Veja o [guia de implantação com Docker](/pt/self-hosting/docker) para a documentação completa do Quadlet.
+
+## Compilando a Partir do Código-Fonte
+
+```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
+```
+
+## Opções de Configuração
+
+### Versão Self-Hosted (Simple Mode)
+
+A versão Self-Hosted (a imagem `bentopdf-simple`, também chamada de Simple Mode) é **funcionalmente idêntica** à versão Commercial: todas as ferramentas de PDF estão presentes e se comportam da mesma forma. Ela apenas oculta os elementos de marketing que só fazem sentido no próprio bentopdf.com ou em uma implantação comercial voltada ao público. **Não é uma versão "lite" nem com menos recursos.**
+
+**O que a versão Self-Hosted oculta** (apenas visual, nenhum recurso de PDF é removido):
+
+- Barra de navegação, seção hero, seção de recursos, FAQ, depoimentos, rodapé
+- Altera o título da página para "Ferramentas PDF"
+
+**O que a versão Self-Hosted mantém** (tudo o que de fato trabalha com PDF):
+
+- Todas as ferramentas de PDF (mesclar, dividir, editar, assinar, OCR, conversão do Office etc.)
+- Suporte a marca personalizada e toda a configuração em tempo de compilação e de execução
+
+A versão Commercial (`ghcr.io/alam00000/bentopdf:latest`) é a que alimenta o próprio bentopdf.com e é usada por detentores de licença comercial que executam implantações voltadas ao público. Ela acrescenta o hero, o FAQ, os depoimentos e o rodapé, que não fariam sentido em uma ferramenta interna.
+
+Se você está auto-hospedando o BentoPDF para sua equipe, sua organização ou como ferramenta interna, use a versão Self-Hosted:
+
+```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
+```
+
+Veja [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md) para mais detalhes.
+
+### Versão Commercial (implantações voltadas ao público com sua própria marca)
+
+A versão Commercial (a imagem `bentopdf`, sem o sufixo `-simple`) é a que alimenta o próprio bentopdf.com. Ela inclui o site de marketing completo (hero, recursos, FAQ, depoimentos, rodapé) além de todas as ferramentas de PDF. Use esta versão quando quiser **implantar o BentoPDF como um serviço de PDF voltado ao público, sob sua própria marca**, por exemplo:
+
+- Você executa o BentoPDF como um SaaS hospedado para usuários finais no seu próprio domínio
+- Você quer a experiência de landing page (seções de marketing + ferramentas), e não apenas a interface básica das ferramentas
+- Você é detentor de licença comercial e incorpora o BentoPDF em um produto comercial
+
+**Execute como está** (com a marca BentoPDF, útil para visualizar a versão):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Compile com a sua própria marca** (o fluxo comercial típico):
+
+```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
+```
+
+Todas as outras opções de tempo de compilação (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, substituições de URL do WASM etc.) funcionam da mesma forma que na versão Self-Hosted.
+
+::: warning Licenciamento
+Executar a versão Commercial é permitido sob qualquer uma das duas opções de licença do BentoPDF:
+
+- **AGPL-3.0** (gratuita): permitida se a sua implantação publicar todo o seu código-fonte sob AGPL, incluindo quaisquer modificações de marca e a lógica de negócio associada.
+- **Licença comercial** ($79 vitalícia): necessária para implantações proprietárias ou de código fechado, em que você não abre o código do seu fork de marca nem do seu código de negócio.
+
+Veja a [página de Licenciamento](https://www.bentopdf.com/licensing) para a comparação completa. Os módulos WASM licenciados sob AGPL (PyMuPDF, Ghostscript, CoherentPDF) são carregados de uma CDN em tempo de execução, portanto não entram na sua imagem e não alteram a sua situação de licenciamento.
+:::
+
+### URL Base
+
+Implante em um subdiretório:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Marca Personalizada
+
+Substitua o logotipo, o nome e o texto de rodapé padrão do BentoPDF pelos seus em tempo de compilação:
+
+| Variável | Descrição | Padrão |
+| ------------------ | ----------------------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Nome da marca exibido no cabeçalho e no rodapé | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Caminho do logotipo relativo a `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Texto personalizado de rodapé/direitos autorais | `© 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
+```
+
+Ou via 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 .
+```
+
+A marca personalizada funciona tanto no modo completo quanto no Simple Mode e pode ser combinada com todas as outras opções de tempo de compilação (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Desativando Ferramentas Específicas
+
+Oculte ferramentas individuais por conformidade ou segurança. As ferramentas desativadas são removidas da página inicial, da busca, dos atalhos, do construtor de fluxos e do acesso direto por URL.
+
+Os IDs das ferramentas são a URL da página sem `.html`: abra qualquer ferramenta e veja a URL (ex.: `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Em tempo de compilação** (incorporado ao pacote):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Em tempo de execução** (sem recompilar, monte um `config.json`):
+
+```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
+```
+
+Os dois métodos podem ser combinados: as listas são mescladas.
+
+Você também pode desativar recursos específicos dentro do Editor de PDF (ex.: redação) sem desativar a ferramenta inteira, adicionando `editorDisabledCategories` ao `config.json`. Veja o [guia do Docker](/pt/self-hosting/docker#desativando-recursos-do-editor) para a lista completa de categorias.
+
+## Guias de Implantação
+
+Escolha sua plataforma:
+
+- [Vercel](/pt/self-hosting/vercel)
+- [Netlify](/pt/self-hosting/netlify)
+- [Cloudflare Pages](/pt/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/pt/self-hosting/aws)
+- [Hostinger](/pt/self-hosting/hostinger)
+- [Nginx](/pt/self-hosting/nginx)
+- [Apache](/pt/self-hosting/apache)
+- [Docker](/pt/self-hosting/docker)
+- [Kubernetes](/pt/self-hosting/kubernetes)
+- [CORS Proxy](/pt/self-hosting/cors-proxy): necessário para assinaturas digitais
+
+## Problemas Comuns
+
+### Word / ODT / Excel / PowerPoint para PDF Trava (SharedArrayBuffer Indisponível)
+
+**Sintoma**: as conversões de documentos baseadas em LibreOffice (Word, ODT, Excel, PowerPoint para PDF) travam em ~55% ou não iniciam. O console do navegador pode mostrar:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…ou `window.crossOriginIsolated` retorna `false`, ou a compilação do WASM informa `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Causa**: o LibreOffice WASM exige `SharedArrayBuffer`, que o navegador só habilita quando a página está **isolada de origem cruzada (cross-origin isolated)** E é servida a partir de um **contexto seguro**. Isso significa que duas condições precisam ser verdadeiras:
+
+1. Toda resposta inclui ambos os cabeçalhos:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. A página é servida a partir de `https://...` ou `http://localhost`. HTTP simples em um IP da rede local (ex.: `http://192.168.x.x`) NÃO conta como seguro: os navegadores desativam o `SharedArrayBuffer` nesse caso.
+
+A divergência `00 61 73 6d / 1f 8b 08 08` é um subsintoma separado: os arquivos pré-comprimidos `.wasm.gz` / `.data.gz` estão sem o cabeçalho de resposta `Content-Encoding: gzip`, então o navegador recebe bytes gzip brutos em vez do WASM descompactado.
+
+**Correção**: veja o guia de implantação da sua plataforma para a configuração exata:
+
+- [Nginx →](/pt/self-hosting/nginx#conversao-de-word-odt-excel-para-pdf-nao-funciona)
+- [Apache →](/pt/self-hosting/apache#word-odt-excel-para-pdf-nao-funciona)
+- [AWS S3 + CloudFront →](/pt/self-hosting/aws#passo-3b-politica-de-cabecalhos-de-resposta-necessaria-para-o-libreoffice-wasm)
+- [Cloudflare Pages →](/pt/self-hosting/cloudflare#arquivo-de-configuracao) (arquivo `_headers`)
+- [Netlify →](/pt/self-hosting/netlify#conversao-de-word-odt-excel-para-pdf-travada-em-55) (`netlify.toml`)
+- [Vercel →](/pt/self-hosting/vercel#conversao-de-word-odt-excel-para-pdf-nao-funciona) (`vercel.json`)
+- [Hostinger →](/pt/self-hosting/hostinger#ferramentas-do-libreoffice-nao-funcionam) (`.htaccess`)
+- [Kubernetes →](/pt/self-hosting/kubernetes#garantindo-que-os-cabecalhos-do-sharedarraybuffer-continuem-funcionando-ingress-gateway)
+- **Docker**: tratado automaticamente pela configuração nginx incluída, sem necessidade de ação.
+
+**Verificação**: abra o Console do DevTools em qualquer página do BentoPDF e execute:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Se a página for HTTPS ou `http://localhost` E ambos os cabeçalhos COEP/COOP estiverem presentes em todas as respostas, as duas verificações passam. Se você estiver em `http://192.168.x.x` ou outra origem HTTP que não seja de loopback, termine a conexão com HTTPS: não existe correção apenas por cabeçalhos.
+
+### Arquivos `.mjs` Servidos como `application/octet-stream`
+
+**Sintoma**: Sign PDF / Form Filler / algumas outras ferramentas mostram um visualizador em branco ou não carregam. O console do navegador informa:
+
+> `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.`
+
+**Causa**: seu servidor web ou proxy reverso não tem um mapeamento de tipo MIME para arquivos `.mjs` (o visualizador de PDF incluído traz módulos ES com essa extensão). Muitas configurações padrão de servidor usam `application/octet-stream` para extensões desconhecidas, e os navegadores se recusam a executá-las como módulos ES.
+
+**Correção**: veja o guia de implantação da sua plataforma para o trecho exato:
+
+- [Nginx →](/pt/self-hosting/nginx#sign-pdf-ou-form-filler-mostra-um-visualizador-em-branco-erro-de-mime-de-mjs)
+- [Apache →](/pt/self-hosting/apache#assinar-pdf-ou-preencher-formularios-mostra-um-visualizador-em-branco-erro-de-mime-mjs)
+- [AWS S3 + CloudFront →](/pt/self-hosting/aws#passo-2-compile-e-envie) (veja `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/pt/self-hosting/kubernetes#erros-de-tipo-mime-de-mjs-iframe-em-branco-no-sign-pdf-form-filler)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: tratados automaticamente, sem necessidade de ação.
+
+**Verificação**: abra o DevTools → aba Network, encontre a requisição `.mjs` com falha e verifique o cabeçalho de resposta `Content-Type`. Ele deve ser `application/javascript`. Se ainda for `application/octet-stream`, um proxy reverso ou CDN externo pode estar reinterpretando o tipo: verifique cada camada da sua cadeia de entrega.
+
+## Configuração do WASM (Componentes AGPL)
+
+O BentoPDF **não inclui** bibliotecas de processamento licenciadas sob AGPL em seu código-fonte, mas **pré-configura URLs de CDN** para que todos os recursos funcionem de imediato, sem configuração manual.
+
+::: tip Zero Configuração por Padrão
+A partir da v2.0.0, os módulos WASM vêm pré-configurados para carregar da CDN do jsDelivr por meio de variáveis de ambiente. Todos os recursos avançados funcionam imediatamente, sem nenhuma configuração do usuário.
+:::
+
+| Componente | Licença | Recursos |
+| --------------- | -------- | ------------------------------------------------------------------------ |
+| **PyMuPDF** | AGPL-3.0 | Conversão de EPUB/MOBI/FB2/XPS, extração de imagens, extração de tabelas |
+| **Ghostscript** | AGPL-3.0 | Conversão para PDF/A, compressão, correção de inclinação, rasterização |
+| **CoherentPDF** | AGPL-3.0 | Índice, anexos, mesclagem de PDF com marcadores |
+
+### Variáveis de Ambiente Padrão
+
+Estas são definidas em `.env.production` e incorporadas à compilação:
+
+```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=
+```
+
+### Substituindo as URLs do WASM
+
+Você pode substituir os padrões em tempo de compilação para implantações personalizadas:
+
+```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
+```
+
+Para desativar um módulo por completo (exigindo configuração manual do usuário em Configurações Avançadas), defina sua variável como uma string vazia.
+
+Para OCR, deixe todas as variáveis `VITE_TESSERACT_*` vazias e mantenha os recursos online padrão, ou defina juntas as URLs de worker/core/lang para OCR auto-hospedado/offline. Se você incluir apenas idiomas de OCR específicos, defina também `VITE_TESSERACT_AVAILABLE_LANGUAGES` com os mesmos códigos separados por vírgula, para que a interface ofereça só os idiomas instalados e seleções não compatíveis falhem com um erro descritivo. Para uma saída de PDF pesquisável totalmente offline, defina também `VITE_OCR_FONT_BASE_URL` com o diretório interno que serve as fontes de OCR incluídas.
+
+Os usuários também podem substituir esses padrões a qualquer momento em **Configurações Avançadas** na interface: as substituições do usuário armazenadas no navegador têm prioridade sobre os padrões do ambiente.
+
+### Implantação Air-Gapped / Offline
+
+Para redes sem acesso à internet (governo, saúde, setor financeiro etc.). As URLs do WASM são incorporadas ao JavaScript em **tempo de compilação**, e os arquivos WASM em si são baixados pelo **navegador do usuário** em tempo de execução. Portanto, você precisa preparar tudo em uma máquina com internet e depois transferir para a rede isolada.
+
+#### Script Automatizado (Recomendado)
+
+O script incluído `prepare-airgap.sh` automatiza todo o processo: baixa os pacotes WASM, compila a imagem Docker e produz um pacote autocontido com um script de configuração.
+
+```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
+```
+
+Isso produz um diretório de pacote:
+
+```
+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
+```
+
+Transfira o pacote para a rede isolada por USB, repositório interno de artefatos ou outro método aprovado. Em seguida, execute o script de configuração incluído:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+O script de configuração carrega a imagem Docker, extrai os arquivos WASM e, opcionalmente, inicia o contêiner.
+
+**Opções do script:**
+
+| Flag | Descrição | Padrão |
+| ------------------------------ | ----------------------------------------------------------------- | -------------------------------------- |
+| `--wasm-base-url ` | Onde os WASMs serão hospedados internamente | _(obrigatório, solicitado se ausente)_ |
+| `--image-name ` | Tag da imagem Docker | `bentopdf` |
+| `--output-dir ` | Diretório de saída do pacote | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Ativa o Simple Mode | desativado |
+| `--base-url ` | URL base do subdiretório (ex.: `/pdf/`) | `/` |
+| `--language ` | Idioma padrão da interface (ex.: `fr`, `de`) | _(nenhum)_ |
+| `--brand-name ` | Nome de marca personalizado | _(nenhum)_ |
+| `--brand-logo ` | Caminho do logotipo relativo a `public/` | _(nenhum)_ |
+| `--footer-text ` | Texto de rodapé personalizado | _(nenhum)_ |
+| `--ocr-languages ` | Idiomas de OCR a incluir, separados por vírgula | `eng` |
+| `--list-ocr-languages` | Exibe os códigos e nomes de OCR compatíveis e sai | desativado |
+| `--search-ocr-language ` | Busca códigos de OCR por nome ou abreviação | desativado |
+| `--dockerfile ` | Dockerfile a usar | `Dockerfile` |
+| `--skip-docker` | Pula a compilação e exportação do Docker | desativado |
+| `--skip-wasm` | Pula o download do WASM (reutiliza os arquivos `.tgz` existentes) | desativado |
+
+O prompt interativo também aceita `list` para exibir a lista completa de códigos do Tesseract compatíveis e `search ` para encontrar correspondências, como `search german` ou `search chi`.
+
+::: warning Requisito de Mesma Origem
+Os arquivos WASM devem ser servidos da **mesma origem** do aplicativo BentoPDF. Os Web Workers usam `importScripts()`, que não consegue carregar scripts de outra origem. Por exemplo, se o BentoPDF roda em `https://internal.example.com`, a URL base do WASM também deve ser `https://internal.example.com/wasm`.
+:::
+
+#### Passos Manuais
+
+
+Se você prefere fazer manualmente, sem o script
+
+**Passo 1: Baixe os pacotes WASM e de OCR** (em uma máquina com internet)
+
+```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
+```
+
+**Passo 2: Compile a imagem Docker com as URLs internas**
+
+```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 .
+```
+
+**Passo 3: Exporte a imagem Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Passo 4: Transfira para a rede isolada**
+
+Copie por USB, repositório interno de artefatos ou outro método de transferência aprovado:
+
+- `bentopdf.tar`: a imagem Docker
+- Os cinco pacotes `.tgz` de WASM/OCR do Passo 1
+- O diretório `tesseract-langdata/` do Passo 1
+- O diretório `ocr-fonts/` do Passo 1
+
+**Passo 5: Configure dentro da rede isolada**
+
+```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
+```
+
+Garanta que os arquivos estejam acessíveis nas URLs que você configurou no Passo 2, incluindo `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` e `.../ocr/fonts`.
+
+
+
+::: info Compilando a partir do código-fonte em vez de usar Docker?
+Defina as variáveis em `.env.production` antes de executar `npm run build`:
+
+```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
+```
+
+:::
+
+### Hospedando Seu Próprio Proxy WASM
+
+Se você precisa servir arquivos WASM AGPL com cabeçalhos CORS adequados, pode implantar um proxy simples. Veja o [guia do Cloudflare WASM Proxy](https://github.com/alam00000/bentopdf/blob/main/cloudflare/WASM-PROXY.md) para um exemplo de implementação.
+
+::: tip Por Que Separar?
+Essa separação garante:
+
+- Conformidade legal clara para usuários comerciais
+- O núcleo do BentoPDF permanece sob sua licença dupla (AGPL-3.0 / Commercial)
+- Os arquivos WASM são carregados em tempo de execução, e não incluídos no código-fonte
+ :::
+
+## Requisitos do Sistema
+
+| Requisito | Mínimo |
+| ------------- | --------------------------------- |
+| Armazenamento | ~100 MB (núcleo sem módulos AGPL) |
+| RAM | 512 MB |
+| CPU | Qualquer processador moderno |
+
+::: tip
+O BentoPDF é um site estático: não é necessário banco de dados nem servidor de back-end!
+:::
diff --git a/docs/pt/self-hosting/kubernetes.md b/docs/pt/self-hosting/kubernetes.md
new file mode 100644
index 00000000..09ced076
--- /dev/null
+++ b/docs/pt/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Implantar com Kubernetes
+
+O Kubernetes pode ser exagero para um site estático, mas pode ser uma ótima opção se você já padroniza em Helm + GitOps.
+
+> [!IMPORTANT]
+> **Cabeçalhos Necessários para a Conversão de Arquivos do Office**
+>
+> As ferramentas baseadas em LibreOffice (conversão de Word, Excel, PowerPoint) exigem estes cabeçalhos HTTP para o suporte a `SharedArrayBuffer`:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> As imagens nginx oficiais do BentoPDF incluem esses cabeçalhos. No Kubernetes, **os controladores de Ingress/Gateway também são proxies reversos**, então garanta que esses cabeçalhos sejam preservados (ou adicione-os na borda).
+
+## Pré-requisitos
+
+- Cluster Kubernetes
+- Helm v3
+- Uma imagem nginx do BentoPDF (ex.: `ghcr.io/alam00000/bentopdf:`) que atenda na **porta 8080**
+
+## Implantar com Helm
+
+### Instalar a partir deste repositório (chart local)
+
+```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
+```
+
+### Instalar a partir do GHCR (chart OCI)
+
+Se o chart for publicado no GHCR como um artefato OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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
+```
+
+## Exponha o Serviço
+
+### Port-forward (teste rápido)
+
+```bash
+kubectl -n bentopdf port-forward deploy/bentopdf 8080:8080
+```
+
+### Ingress (opcional)
+
+Ative o Ingress (exemplo para nginx-ingress):
+
+```yaml
+ingress:
+ enabled: true
+ className: nginx
+ hosts:
+ - host: pdf.example.com
+ paths:
+ - path: /
+ pathType: Prefix
+```
+
+### Gateway API (opcional)
+
+Este chart oferece suporte a `Gateway` + `HTTPRoute` da Gateway API.
+
+Exemplo (operador 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
+```
+
+## Garantindo que os cabeçalhos do SharedArrayBuffer continuem funcionando (Ingress/Gateway)
+
+### O que "deveria" acontecer
+
+A configuração do nginx do BentoPDF define os cabeçalhos de resposta necessários. A maioria dos controladores de Ingress/Gateway **repassa os cabeçalhos de resposta do upstream sem alterá-los**.
+
+### O que pode quebrar isso
+
+- Uma política do controlador/borda que **sobrescreve** ou **remove** cabeçalhos de resposta
+- Um middleware de "cabeçalhos de segurança" que define valores diferentes de COOP/COEP
+
+### Como verificar
+
+Execute isto no seu endpoint público:
+
+```bash
+curl -I https://pdf.example.com/ | egrep -i 'cross-origin-opener-policy|cross-origin-embedder-policy'
+```
+
+Você deve ver:
+
+- `Cross-Origin-Opener-Policy: same-origin`
+- `Cross-Origin-Embedder-Policy: require-corp`
+
+### Se o seu controlador de Ingress não os preservar
+
+Adicione os cabeçalhos na borda (específico de cada controlador). Exemplo para o **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;
+```
+
+## Erros de tipo MIME de `.mjs` (iframe em branco no Sign PDF / Form Filler)
+
+Se o console do navegador mostrar `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` em uma requisição `.mjs`, um controlador de Ingress/Gateway na frente do nginx do BentoPDF está substituindo o cabeçalho `Content-Type` do upstream por `application/octet-stream`.
+
+O nginx da imagem do BentoPDF já serve `.mjs` como `application/javascript`. A correção é impedir que o controlador o remova ou substitua. Para o nginx-ingress:
+
+```yaml
+ingress:
+ annotations:
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ location ~* \.mjs$ {
+ types {} default_type application/javascript;
+ }
+```
+
+Ou use um filtro `ResponseHeaderModifier` na Gateway API para definir `Content-Type: application/javascript` nos caminhos `.mjs`. Verifique no DevTools → aba Network: a requisição `.mjs` que falhou agora deve mostrar `content-type: application/javascript`.
+
+### Se você usa a Gateway API e quer forçar a adição de cabeçalhos
+
+A Gateway API oferece suporte a um filtro `ResponseHeaderModifier`. Você pode anexá-lo em `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
+```
+
+O suporte a filtros específicos depende do seu controlador Gateway; se um filtro for ignorado, adicione os cabeçalhos na camada de borda/controlador.
+
+## Desativando Ferramentas Específicas
+
+Use um ConfigMap para desativar ferramentas em tempo de execução, sem recompilar a imagem:
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bentopdf-config
+ namespace: bentopdf
+data:
+ config.json: |
+ {
+ "disabledTools": ["edit-pdf", "sign-pdf", "encrypt-pdf"]
+ }
+```
+
+Monte-o no diretório servido:
+
+```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
+```
+
+Os IDs das ferramentas são a URL da página sem `.html`: abra qualquer ferramenta e veja a URL (ex.: `edit-pdf`, `merge-pdf`, `compress-pdf`). As ferramentas desativadas ficam ocultas na página inicial, na busca, nos atalhos, no construtor de fluxos e no acesso direto por URL. Veja o [guia do Docker](/pt/self-hosting/docker#desativando-ferramentas-especificas) para a lista completa de opções.
diff --git a/docs/pt/self-hosting/netlify.md b/docs/pt/self-hosting/netlify.md
new file mode 100644
index 00000000..648e4a1e
--- /dev/null
+++ b/docs/pt/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Implantar no Netlify
+
+O [Netlify](https://netlify.com) oferece uma excelente hospedagem de sites estáticos, com um plano gratuito generoso.
+
+## Implantação com Um Clique
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Implantação Manual
+
+### Passo 1: Conecte o Repositório
+
+1. Faça login no [Netlify](https://app.netlify.com)
+2. Clique em "Add new site" → "Import an existing project"
+3. Conecte sua conta do GitHub
+4. Selecione seu fork do BentoPDF
+
+### Passo 2: Configure as Opções de Compilação
+
+| Configuração | Valor |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### Passo 3: Implante
+
+Clique em "Deploy site" e aguarde a compilação.
+
+## Arquivo de Configuração
+
+Crie o `netlify.toml` na raiz do seu projeto:
+
+```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 Importante
+Os cabeçalhos `Cross-Origin-Embedder-Policy` e `Cross-Origin-Opener-Policy` são necessários para as conversões de Word/ODT/Excel/PowerPoint para PDF. Sem eles, o `SharedArrayBuffer` fica indisponível e o mecanismo LibreOffice WASM não consegue inicializar.
+
+Os cabeçalhos `Content-Encoding: gzip` nos arquivos `.wasm.gz` e `.data.gz` instruem o navegador a descompactá-los automaticamente. Sem eles, o navegador recebe bytes gzip brutos e a compilação do WASM falha.
+:::
+
+## Variáveis de Ambiente
+
+Defina estas em Site settings → Environment variables:
+
+| Variável | Descrição |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Defina como `true` para uma compilação mínima |
+| `VITE_BRAND_NAME` | Nome de marca personalizado (substitui "BentoPDF") |
+| `VITE_BRAND_LOGO` | Caminho do logotipo relativo a `public/` (ex.: `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Texto personalizado de rodapé/direitos autorais |
+| `VITE_DEFAULT_LANGUAGE` | Idioma padrão da interface (ex.: `fr`, `de`, `es`) |
+
+## Domínio Personalizado
+
+1. Acesse Site settings → Domain management
+2. Clique em "Add custom domain"
+3. Siga as instruções de configuração de DNS
+
+## Large Media
+
+Para arquivos WASM grandes, considere ativar o [Netlify Large Media](https://docs.netlify.com/large-media/overview/):
+
+```bash
+netlify lm:setup
+git lfs track "*.wasm"
+```
+
+## Solução de Problemas
+
+### Conversão de Word/ODT/Excel para PDF Travada em 55%
+
+Se as conversões de documentos travarem em 55%, abra o Console do DevTools e verifique:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Se `crossOriginIsolated` for `false`, os cabeçalhos COEP/COOP do seu `netlify.toml` não estão sendo aplicados. Confirme que o arquivo está na raiz do projeto e implante novamente.
+
+Se você vir `expected magic word 00 61 73 6d, found 1f 8b 08 08` no console, os arquivos `.wasm.gz` estão sem os cabeçalhos `Content-Encoding: gzip`. Confirme que os blocos `[[headers]]` de `soffice.wasm.gz` e `soffice.data.gz` estão no seu `netlify.toml`.
+
+### A Compilação Falha
+
+Verifique a compatibilidade da versão do Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Carregamento Inicial Lento
+
+Ative a otimização de ativos em Site settings → Build & deploy → Asset optimization.
diff --git a/docs/pt/self-hosting/nginx.md b/docs/pt/self-hosting/nginx.md
new file mode 100644
index 00000000..2aa1b67d
--- /dev/null
+++ b/docs/pt/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Implantar com Nginx
+
+Hospede o BentoPDF no seu próprio servidor usando o Nginx.
+
+## Pré-requisitos
+
+- Servidor Ubuntu/Debian
+- Nginx instalado
+- Certificado SSL (recomendado: Let's Encrypt)
+
+## Passo 1: Compile o Projeto
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Para personalizar a marca, defina variáveis de ambiente antes de compilar:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Passo 2: Copie os Arquivos
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Passo 3: Configuração do Nginx
+
+Crie o arquivo `/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;
+ }
+}
+```
+
+## Passo 4: Ative o Site
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Passo 5: SSL com Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-nginx
+sudo certbot --nginx -d your-domain.com
+```
+
+## Implantação em Subdiretório
+
+Para hospedar em `/pdf/`:
+
+```nginx
+location /pdf/ {
+ alias /var/www/bentopdf/;
+ try_files $uri $uri/ /pdf/index.html;
+}
+```
+
+Compile com:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+## Ajuste de Desempenho
+
+Adicione ao `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;
+}
+```
+
+## Solução de Problemas
+
+### O WASM Não Carrega
+
+Confirme que o tipo MIME está definido:
+
+```nginx
+types {
+ application/wasm wasm;
+}
+```
+
+### Sign PDF ou Form Filler Mostra um Visualizador em Branco (erro de MIME de `.mjs`)
+
+Se o console do navegador mostrar:
+
+```
+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.
+```
+
+…e a requisição com falha terminar em `.mjs`, falta ao seu nginx o mapeamento `.mjs → application/javascript`. O visualizador de PDF incluído (usado por Sign PDF, Form Filler e algumas outras ferramentas) traz arquivos de módulo ES com extensão `.mjs`, e o `mime.types` padrão do nginx não os inclui por padrão.
+
+Corrija adicionando `mjs` à linha `application/javascript` existente em `/etc/nginx/mime.types`:
+
+```nginx
+application/javascript js mjs;
+```
+
+> NÃO acrescente uma _segunda_ linha `application/javascript`. O nginx lê o `mime.types` linha por linha e só um mapeamento de tipo para extensão vale, então uma segunda linha é ignorada silenciosamente em algumas versões. Edite a linha existente para adicionar `mjs` junto com `js`.
+
+Ou sobrescreva localmente dentro do seu bloco server (sem editar o arquivo global):
+
+```nginx
+types {
+ application/javascript js mjs;
+ application/wasm wasm;
+}
+```
+
+Recarregue o nginx após a alteração:
+
+```bash
+sudo nginx -t && sudo systemctl reload nginx
+```
+
+Para confirmar: no DevTools do navegador → aba Network, encontre a requisição `.mjs` com falha e verifique o cabeçalho de resposta `Content-Type`. Agora ele deve ser `application/javascript`, e não `application/octet-stream`.
+
+### Conversão de Word/ODT/Excel para PDF Não Funciona
+
+O LibreOffice WASM exige `SharedArrayBuffer`, que precisa dos cabeçalhos `Cross-Origin-Embedder-Policy` e `Cross-Origin-Opener-Policy`. Ele também precisa de um contexto seguro, então `http://localhost` funciona para testes locais, mas `http://192.168.x.x` ou outros IPs de rede local geralmente exigem HTTPS. Observe que as diretivas `add_header` de um bloco `location` **substituem** as diretivas `add_header` do nível do servidor, e não se combinam. Todo bloco `location` com seu próprio `add_header` deve incluir os cabeçalhos COEP/COOP.
+
+Verifique com:
+
+```bash
+curl -I https://your-domain.com/ | grep -i cross-origin
+```
+
+Se você usa um proxy reverso na frente do nginx, garanta que ele preserve esses cabeçalhos.
+
+### 502 Bad Gateway
+
+Verifique os logs de erro do Nginx:
+
+```bash
+sudo tail -f /var/log/nginx/error.log
+```
diff --git a/docs/pt/self-hosting/vercel.md b/docs/pt/self-hosting/vercel.md
new file mode 100644
index 00000000..551f8856
--- /dev/null
+++ b/docs/pt/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Implantar no Vercel
+
+O [Vercel](https://vercel.com) oferece a experiência de implantação mais simples para sites estáticos.
+
+## Implantação com Um Clique
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Implantação Manual
+
+### Passo 1: Faça um Fork do Repositório
+
+Faça um fork de [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) para sua conta do GitHub.
+
+### Passo 2: Importe no Vercel
+
+1. Acesse [vercel.com/new](https://vercel.com/new)
+2. Selecione seu repositório com o fork
+3. Configure o projeto:
+
+| Configuração | Valor |
+| ---------------- | --------------- |
+| Framework Preset | Vite |
+| Build Command | `npm run build` |
+| Output Directory | `dist` |
+| Install Command | `npm install` |
+
+### Passo 3: Variáveis de Ambiente (Opcional)
+
+Adicione estas se necessário:
+
+| Variável | Descrição |
+| ----------------------- | -------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Defina como `true` para uma interface mínima |
+| `VITE_BRAND_NAME` | Nome de marca personalizado (substitui "BentoPDF") |
+| `VITE_BRAND_LOGO` | Caminho do logotipo relativo a `public/` (ex.: `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Texto personalizado de rodapé/direitos autorais |
+| `VITE_DEFAULT_LANGUAGE` | Idioma padrão da interface (ex.: `fr`, `de`, `es`) |
+
+### Passo 4: Implante
+
+Clique em "Deploy" e aguarde a conclusão da compilação.
+
+## Domínio Personalizado
+
+1. Acesse as configurações do seu projeto
+2. Navegue até "Domains"
+3. Adicione seu domínio personalizado
+4. Configure o DNS conforme as instruções
+
+## Limitações
+
+::: warning Arquivos Grandes
+As funções serverless do Vercel têm um limite de 50MB. Como o BentoPDF é um site estático, isso não deve afetar você, mas os módulos WASM são grandes (~100MB no total). Garanta que eles sejam servidos a partir da pasta `/public`.
+:::
+
+## Solução de Problemas
+
+### Tempo Limite da Compilação
+
+Se a compilação exceder o tempo limite, tente:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### 404 ao Atualizar a Página
+
+Adicione um `vercel.json` para o roteamento de SPA:
+
+```json
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
+}
+```
+
+### Conversão de Word/ODT/Excel para PDF Não Funciona
+
+As conversões do LibreOffice WASM exigem `SharedArrayBuffer`, que precisa destes cabeçalhos de resposta em todas as páginas:
+
+- `Cross-Origin-Embedder-Policy: require-corp`
+- `Cross-Origin-Opener-Policy: same-origin`
+
+Os arquivos pré-comprimidos `.wasm.gz` e `.data.gz` também precisam de `Content-Encoding: gzip` para que o navegador os descompacte.
+
+Adicione isto ao seu `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" }
+ ]
+ }
+ ]
+}
+```
+
+Para verificar, abra o Console do DevTools e execute `console.log(window.crossOriginIsolated)`. Deve retornar `true`.
diff --git a/docs/pt/tools/add-attachments.md b/docs/pt/tools/add-attachments.md
new file mode 100644
index 00000000..60673867
--- /dev/null
+++ b/docs/pt/tools/add-attachments.md
@@ -0,0 +1,49 @@
+---
+title: Adicionar anexos
+description: Incorpore arquivos de qualquer tipo em um PDF no nível do documento ou anexados a páginas específicas.
+---
+
+# Adicionar anexos
+
+Incorpore um ou mais arquivos diretamente dentro de um documento PDF. Os anexos podem ser adicionados no nível do documento (visíveis no painel de anexos de qualquer leitor de PDF) ou vinculados a páginas específicas.
+
+## Como Funciona
+
+1. Envie o PDF ao qual você quer anexar arquivos.
+2. Use a área de soltar anexos para selecionar os arquivos que deseja incorporar (qualquer tipo de arquivo).
+3. Escolha o nível do anexo: **Documento** (padrão) ou **Página**.
+4. Se escolher o nível de Página, informe um intervalo de páginas (por exemplo, `1-3` ou `5`).
+5. Clique no botão de processar. O PDF modificado é baixado com seus arquivos incorporados.
+
+## Recursos
+
+- Anexe qualquer tipo de arquivo: imagens, planilhas, arquivos compactados, executáveis, o que for
+- Anexos no nível do documento ou da página
+- Vários arquivos podem ser anexados em uma única operação
+- Exibe os nomes e tamanhos de todos os anexos selecionados
+- A saída preserva o conteúdo original do PDF com os arquivos incorporados adicionados
+
+## Opções
+
+| Opção | Descrição |
+| ---------------------- | ------------------------------------------------------------------------------ |
+| **Nível do documento** | Anexa os arquivos ao PDF como um todo, acessíveis pelo painel de anexos |
+| **Nível da página** | Anexa os arquivos a páginas específicas, definidas por um intervalo de páginas |
+
+## Casos de Uso
+
+- Reunir dados de origem (arquivos Excel, CSVs) com um relatório em PDF
+- Anexar os arquivos de imagem originais a um PDF de portfólio fotográfico
+- Incorporar documentos de apoio em um contrato ou proposta
+- Adicionar materiais complementares a páginas específicas de um manual de treinamento
+
+## Dicas
+
+- Os anexos no nível do documento são os mais amplamente compatíveis entre leitores de PDF. Os anexos no nível da página podem não ser visíveis em todos os visualizadores.
+- Não há limite de tamanho para os anexos, mas arquivos incorporados muito grandes aumentam o tamanho do PDF proporcionalmente.
+
+## Ferramentas Relacionadas
+
+- [Extrair anexos](./extract-attachments)
+- [Editar anexos](./edit-attachments)
+- [Mesclar PDF](./merge-pdf)
diff --git a/docs/pt/tools/add-blank-page.md b/docs/pt/tools/add-blank-page.md
new file mode 100644
index 00000000..0e41719c
--- /dev/null
+++ b/docs/pt/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Adicionar página em branco
+description: Insira uma ou mais páginas em branco em qualquer posição de um documento PDF.
+---
+
+# Adicionar página em branco
+
+Insira páginas vazias em um PDF na posição que você especificar. Você controla onde as páginas em branco entram e quantas adicionar.
+
+## Como Funciona
+
+1. Envie um arquivo PDF. A ferramenta exibe o número de páginas.
+2. Informe a **posição** onde as páginas em branco devem ser inseridas. Use `0` para inserir no início, ou o total de páginas para adicionar ao final.
+3. Informe o **número** de páginas em branco a adicionar (o padrão é 1).
+4. Clique no botão de processar. O PDF modificado é baixado com as páginas em branco inseridas.
+
+## Recursos
+
+- Insira em qualquer posição: início, meio ou fim do documento
+- Adicione várias páginas em branco em uma só operação
+- A dica de posição é atualizada dinamicamente conforme o número de páginas do PDF enviado
+- Páginas em branco no tamanho A4 padrão
+
+## Casos de Uso
+
+- Adicionar uma página em branco separadora entre as seções de um documento compilado
+- Inserir páginas em branco para alinhar a impressão frente e verso
+- Deixar espaço para anotações manuscritas em um guia de estudo impresso
+- Completar um documento para atingir um número mínimo de páginas
+
+## Dicas
+
+- A posição `0` insere antes da primeira página. A posição igual ao total de páginas adiciona depois da última página.
+- Se você precisa inserir conteúdo (não apenas páginas em branco) em uma posição específica, use a [Multiferramenta PDF](./pdf-multi-tool) para inserir outro PDF após uma determinada página.
+
+## Ferramentas Relacionadas
+
+- [Organize & Duplicate](./organize-pdf)
+- [Multiferramenta PDF](./pdf-multi-tool)
+- [Mesclar PDF](./merge-pdf)
diff --git a/docs/pt/tools/add-page-labels.md b/docs/pt/tools/add-page-labels.md
new file mode 100644
index 00000000..21ce3580
--- /dev/null
+++ b/docs/pt/tools/add-page-labels.md
@@ -0,0 +1,53 @@
+---
+title: Adicionar rótulos de página
+description: Adicione rótulos de página ao PDF com algarismos romanos, prefixos de letras, numeração personalizada e várias regras por documento.
+---
+
+# Adicionar rótulos de página
+
+Os rótulos de página controlam como os números de página aparecem nos leitores de PDF (o número mostrado na barra de ferramentas, não impresso na página). Esta ferramenta permite atribuir esquemas de rotulagem diferentes a intervalos de páginas diferentes: algarismos romanos para as páginas iniciais, números decimais para o corpo, apêndices com letras e muito mais.
+
+## Como Funciona
+
+1. Envie seu arquivo PDF.
+2. O painel de opções aparece com uma regra de rótulo por padrão.
+3. Configure cada regra com um intervalo de páginas, estilo, prefixo opcional e valor inicial.
+4. Clique em **Adicionar Regra** para criar regras adicionais para outras seções.
+5. Clique em **Adicionar rótulos de página** para aplicar todas as regras e baixar o resultado.
+
+## Opções
+
+Cada regra de rótulo tem estas configurações:
+
+- **Intervalo de Páginas**: as páginas às quais a regra se aplica. Deixe vazio para todas as páginas. Aceita intervalos como `1-4`, `7`, `odd` ou `1-9,30-40`.
+- **Estilo do Rótulo**: Arábico decimal, Romano minúsculo (i, ii, iii), Romano maiúsculo (I, II, III), Letras minúsculas (a, b, c), Letras maiúsculas (A, B, C) ou Sem rótulo (somente prefixo).
+- **Prefixo do Rótulo**: texto opcional adicionado antes de cada rótulo, como "A-" para criar rótulos como A-1, A-2, A-3.
+- **Valor Inicial**: o número a partir do qual a contagem começa. O padrão é 1. Defina como 0 para numeração começando em zero.
+- **Continuar a numeração entre intervalos separados**: ative quando uma regra abranger páginas não contíguas (como `1-9,30-40` ou `odd`) e você quiser que a numeração continue em sequência.
+- **Remover rótulos de página existentes**: marcado por padrão. Apaga quaisquer rótulos anteriores antes de aplicar as novas regras.
+
+## Recursos
+
+- Várias regras de rótulo por documento para esquemas de numeração complexos
+- Seis estilos de rótulo que cobrem todos os sistemas de numeração padrão
+- Suporte a prefixo personalizado para rotulagem por seção
+- Suporte a intervalos separados com numeração progressiva
+- Opção de manter ou remover os rótulos existentes
+
+## Casos de Uso
+
+- Definir rótulos em algarismos romanos (i, ii, iii) para o prefácio de um livro e rótulos decimais para o texto principal
+- Rotular as páginas de apêndice com prefixos de letras como "A-1", "A-2", "B-1", "B-2"
+- Corrigir os rótulos de página em um documento digitalizado em que os números físicos das páginas não correspondem à ordem das páginas do PDF
+- Adicionar numeração iniciada em zero para documentos técnicos
+
+## Dicas
+
+- Os rótulos de página são metadados que os leitores de PDF exibem na barra de navegação. Eles não são impressos na página. Para números visíveis, use [Números de página](./page-numbers).
+- Esta ferramenta exige que o CoherentPDF (CPDF) esteja configurado nas suas Configurações de WASM. Se não estiver, você será solicitado a configurá-lo.
+
+## Ferramentas Relacionadas
+
+- [Números de página](./page-numbers)
+- [Numeração Bates](./bates-numbering)
+- [Editar marcadores](./bookmark)
diff --git a/docs/pt/tools/add-stamps.md b/docs/pt/tools/add-stamps.md
new file mode 100644
index 00000000..5af39fb3
--- /dev/null
+++ b/docs/pt/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Adicionar carimbos
+description: Adicione carimbos de imagem às páginas do PDF usando uma barra de ferramentas de anotação integrada com atribuição de nome de usuário.
+---
+
+# Adicionar carimbos
+
+Coloque carimbos de imagem nas páginas do seu PDF usando um visualizador incorporado com uma barra de ferramentas de anotação de carimbos. Os carimbos podem incluir seu nome para atribuição, o que é útil em fluxos de aprovação, processos de revisão e marcação de documentos.
+
+## Como Funciona
+
+1. Digite seu nome no campo **Nome de Usuário do Carimbo**. Esse nome aparecerá nos carimbos que você criar.
+2. Envie seu arquivo PDF clicando ou arrastando-o para a área de soltar.
+3. O editor de carimbos abre com o documento carregado em um visualizador.
+4. Use a ferramenta de carimbo de imagem da barra de ferramentas para selecionar e posicionar carimbos em qualquer página.
+5. Posicione e redimensione os carimbos conforme necessário.
+6. Clique em **Salvar PDF Carimbado** para baixar o resultado.
+
+## Recursos
+
+- Visualizador de PDF integrado com uma barra de ferramentas de anotação específica para carimbos
+- Atribuição de nome de usuário nos carimbos criados
+- Colocação de carimbos de imagem em qualquer página
+- Posicionamento e redimensionamento por arrastar e soltar
+- Dimensionamento automático do visualizador conforme a proporção da página
+- Exibição do arquivo com nome e tamanho
+
+## Casos de Uso
+
+- Adicionar carimbos de imagem "APROVADO" ou "REVISADO" a documentos em um fluxo de revisão
+- Colocar imagens de selo da empresa ou carimbo de cartório em documentos oficiais
+- Marcar páginas com carimbos "RECEBIDO" incluindo o nome do revisor
+- Adicionar carimbos de controle de qualidade a relatórios de inspeção
+
+## Dicas
+
+- Defina o nome de usuário do carimbo antes de enviar o PDF. O nome de usuário é incorporado nos metadados do carimbo.
+- O visualizador ajusta sua altura com base na proporção da primeira página do PDF para uma visualização ideal.
+- Para marcas d'água de texto em vez de carimbos de imagem, use a ferramenta [Adicionar marca d'água](./add-watermark).
+
+## Ferramentas Relacionadas
+
+- [Assinar PDF](./sign-pdf)
+- [Adicionar marca d'água](./add-watermark)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/pt/tools/add-watermark.md b/docs/pt/tools/add-watermark.md
new file mode 100644
index 00000000..d8dcefcb
--- /dev/null
+++ b/docs/pt/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Adicionar marca d'água
+description: Aplique marcas d'água de texto ou imagem nas páginas do PDF com um editor visual de arrastar e soltar e visualização ao vivo.
+---
+
+# Adicionar marca d'água
+
+Adicione marcas d'água de texto ou imagem às páginas do seu PDF usando um editor visual. Você pode posicionar a marca d'água arrastando-a diretamente na visualização, redimensioná-la pelas alças dos cantos e configurar opacidade, rotação, fonte e cor. Cada página pode ter sua própria posição de marca d'água, ou você pode aplicar a mesma marca a todas as páginas de uma vez.
+
+## Como Funciona
+
+1. Envie seu arquivo PDF.
+2. O editor abre com uma visualização ao vivo da primeira página e uma marca d'água arrastável sobreposta.
+3. Escolha entre o modo de marca d'água de **Texto** ou de **Imagem** usando os botões de alternância.
+4. Configure as opções da marca d'água no painel lateral.
+5. Arraste a marca d'água na visualização para posicioná-la exatamente onde quiser. Use as alças dos cantos para redimensionar.
+6. Navegue entre as páginas para definir marcas d'água por página, ou mantenha **Aplicar a todas as páginas** marcado.
+7. Clique em **Adicionar Marca d'Água** para processar e baixar.
+
+## Opções
+
+**Configurações da marca d'água de texto:**
+
+- **Texto**: o texto da marca d'água (por exemplo, "CONFIDENCIAL", "RASCUNHO").
+- **Tamanho da Fonte**: de 10 a 200 pontos. O padrão é 72.
+- **Cor**: qualquer cor pelo seletor de cores.
+- **Opacidade**: controle a transparência, de totalmente transparente a totalmente opaco.
+- **Rotação**: gire o texto da marca d'água de -180 a 180 graus.
+
+**Configurações da marca d'água de imagem:**
+
+- **Envio de Imagem**: envie um arquivo PNG, JPG ou outro formato de imagem para usar como marca d'água.
+- **Opacidade**: controle a transparência da imagem.
+- **Escala**: redimensione a marca d'água de imagem.
+
+**Configurações de layout:**
+
+- **Única**: uma marca d'água por página, posicionada por arrastar ou pelas predefinições de posição.
+- **Em mosaico**: repete a marca d'água por toda a página em uma grade diagonal que acompanha o ângulo de rotação, de modo que a marca cubra o documento de ponta a ponta.
+- **Espaçamento horizontal**: espaço entre os blocos ao longo da direção do texto, como porcentagem da largura da marca d'água (somente no modo mosaico).
+- **Espaçamento vertical**: espaço entre as linhas de blocos, como porcentagem da altura da marca d'água (somente no modo mosaico).
+
+**Configurações gerais:**
+
+- **Aplicar a todas as páginas**: quando marcado, a mesma marca d'água é aplicada a todas as páginas. Desmarque para definir marcas d'água individuais por página.
+- **Intervalo de Páginas**: especifique quais páginas recebem a marca d'água (por exemplo, "1-3, 5, 7-9" ou "all").
+
+## Recursos
+
+- Posicionamento visual por arrastar e soltar em uma visualização ao vivo do PDF
+- Marca d'água redimensionável com alças nos cantos
+- Modos de marca d'água de texto e de imagem
+- Layout único ou em mosaico (repetido) na página inteira, com espaçamento ajustável
+- Aplicação da marca d'água por página ou global
+- Navegação página a página na visualização
+- Controles de opacidade e rotação
+- Filtragem por intervalo de páginas
+
+## Casos de Uso
+
+- Marcar documentos em rascunho com "RASCUNHO" antes de circular para revisão
+- Adicionar marcas d'água "CONFIDENCIAL" a relatórios financeiros sensíveis
+- Personalizar documentos com uma marca d'água de imagem com o logotipo da empresa
+- Aplicar "AMOSTRA" em documentações de produtos compartilhadas com potenciais clientes
+- Adicionar avisos de direitos autorais a materiais em PDF distribuídos
+
+## Dicas
+
+- Para marcas d'água diagonais na página, defina uma rotação em torno de 45 graus e aumente o tamanho da fonte.
+- O modo mosaico torna o documento muito mais difícil de reaproveitar após um recorte, já que remover uma marca ainda deixa dezenas de outras. Reduza a opacidade ao usar mosaico para que o texto por baixo continue legível.
+- Marcas d'água de imagem com fundo transparente (formato PNG) se misturam de forma mais natural ao conteúdo do documento.
+- Se você precisa de textos de marca d'água diferentes em páginas diferentes, desmarque "Aplicar a todas as páginas" e navegue página por página.
+
+## Ferramentas Relacionadas
+
+- [Cabeçalho e rodapé](./header-footer)
+- [Adicionar carimbos](./add-stamps)
+- [Numeração Bates](./bates-numbering)
+- [Assinar PDF](./sign-pdf)
diff --git a/docs/pt/tools/adjust-colors.md b/docs/pt/tools/adjust-colors.md
new file mode 100644
index 00000000..547b8451
--- /dev/null
+++ b/docs/pt/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Ajustar cores
+description: Ajuste com precisão o brilho, contraste, saturação, matiz, temperatura, tonalidade, gama e sépia do seu PDF.
+---
+
+# Ajustar cores
+
+Um kit completo de correção de cor para PDFs. Ajuste oito parâmetros independentes (brilho, contraste, saturação, deslocamento de matiz, temperatura, tonalidade, gama e sépia) com uma visualização ao vivo que é atualizada conforme você move cada controle deslizante.
+
+## Como Funciona
+
+1. Envie seu arquivo PDF.
+2. O editor abre mostrando uma visualização da primeira página e um painel de configurações de cor.
+3. Mova os controles deslizantes para ajustar cada parâmetro de cor. A visualização é atualizada em tempo real.
+4. Clique em **Redefinir** para restaurar todos os controles às posições padrão.
+5. Clique em **Aplicar** para processar todas as páginas e baixar o PDF ajustado.
+
+## Opções
+
+- **Brilho**: clareia ou escurece a página inteira (-100 a +100).
+- **Contraste**: aumenta ou diminui a diferença entre áreas claras e escuras (-100 a +100).
+- **Saturação**: aumenta ou reduz a intensidade das cores (-100 a +100). Definir como -100 gera um resultado em tons de cinza.
+- **Deslocamento de Matiz**: gira a roda de cores para deslocar todas as cores uniformemente.
+- **Temperatura**: desloca as cores para mais quentes (amarelo/laranja) ou mais frias (azul).
+- **Tonalidade**: adiciona uma dominante verde ou magenta.
+- **Gama**: ajusta o brilho dos meios-tons usando uma curva de gama. Valores abaixo de 1,0 escurecem os meios-tons; valores acima de 1,0 os clareiam.
+- **Sépia**: aplica um efeito clássico de tom sépia. Valores mais altos produzem uma tonalidade marrom mais forte.
+
+## Recursos
+
+- Oito parâmetros de cor ajustáveis de forma independente
+- Visualização ao vivo que responde imediatamente às mudanças nos controles
+- Botão de redefinição para voltar rapidamente aos padrões
+- Processa todas as páginas do documento
+- Funciona com qualquer conteúdo de PDF (texto, imagens, gráficos)
+
+## Casos de Uso
+
+- Clarear uma digitalização escura ou corrigir páginas superexpostas
+- Dessaturar um documento colorido para reduzir o uso de tinta antes de imprimir
+- Aplicar um tom sépia para criar um visual antigo em certificados ou premiações
+- Corrigir a temperatura de cor de fotos incorporadas em um PDF
+- Aumentar o contraste de documentos digitalizados desbotados ou de baixa qualidade
+
+## Dicas
+
+- Para uma conversão rápida em tons de cinza, arraste o controle de saturação até -100.
+- O controle de gama é especialmente útil para melhorar a legibilidade de documentos digitalizados em que os meios-tons estão escuros ou claros demais.
+- Como as outras ferramentas de efeito de imagem, esta rasteriza cada página. A saída será baseada em imagem, então o texto não poderá ser selecionado.
+
+## Ferramentas Relacionadas
+
+- [Inverter cores](./invert-colors)
+- [Efeito scanner](./scanner-effect)
+- [Cor de fundo](./background-color)
diff --git a/docs/pt/tools/alternate-merge.md b/docs/pt/tools/alternate-merge.md
new file mode 100644
index 00000000..88b38cbd
--- /dev/null
+++ b/docs/pt/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Alternar e misturar páginas
+description: Mescle PDFs intercalando as páginas de cada arquivo em ordem alternada, com preservação dos marcadores.
+---
+
+# Alternar e misturar páginas
+
+Intercale as páginas de vários arquivos PDF para que as páginas se alternem entre os documentos. Esta é a ferramenta certa quando uma mesclagem comum apenas juntaria os arquivos um após o outro, mas você precisa da página 1 do Arquivo A, depois da página 1 do Arquivo B, depois da página 2 do Arquivo A, e assim por diante.
+
+## Como Funciona
+
+1. Envie pelo menos dois arquivos PDF usando a área de soltar.
+2. A ferramenta exibe cada arquivo com seu número de páginas e tamanho.
+3. Arraste as alças para reordenar qual arquivo tem as páginas primeiro na sequência de intercalação.
+4. Clique em **Misturar Páginas** para gerar a saída intercalada.
+5. O resultado é baixado como `alternated-mixed.pdf`.
+
+## Recursos
+
+- Intercala páginas de qualquer número de PDFs (mínimo de dois)
+- Reordenação dos arquivos por arrastar e soltar para controlar a prioridade da intercalação
+- Preserva os marcadores dos documentos de origem
+- Exibe o número de páginas e o tamanho de cada arquivo enviado
+- Processa em um web worker dedicado para manter a interface responsiva
+
+## Casos de Uso
+
+- Remontar digitalizações frente e verso em que as páginas ímpares e pares foram digitalizadas separadamente
+- Combinar folhas de perguntas com gabaritos, para que cada pergunta seja seguida da sua resposta
+- Mesclar documentos em dois idiomas página a página (por exemplo, inglês de um lado e a tradução no seguinte)
+- Intercalar digitalizações de frente e verso feitas em um scanner de face única
+
+## Dicas
+
+- Se os PDFs de origem tiverem números de páginas diferentes, as páginas do documento mais curto acabam primeiro e as páginas restantes do documento mais longo aparecem no final.
+- A ordem dos arquivos importa: o primeiro arquivo da lista fornece a primeira página da saída. Arraste para reorganizar, se necessário.
+
+## Ferramentas Relacionadas
+
+- [Mesclar PDF](./merge-pdf)
+- [Organize & Duplicate](./organize-pdf)
+- [Dividir PDF](./split-pdf)
diff --git a/docs/pt/tools/background-color.md b/docs/pt/tools/background-color.md
new file mode 100644
index 00000000..4892e4cc
--- /dev/null
+++ b/docs/pt/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Cor de fundo
+description: Altere a cor de fundo de todas as páginas do PDF preservando todo o conteúdo por cima.
+---
+
+# Cor de fundo
+
+Defina uma cor de fundo sólida atrás de todo o conteúdo existente do seu PDF. A ferramenta cria um retângulo colorido em cada página e coloca o conteúdo original por cima, de modo que texto, imagens e gráficos continuam totalmente visíveis sobre o novo fundo.
+
+## Como Funciona
+
+1. Envie seu arquivo PDF.
+2. Escolha uma cor de fundo no seletor de cores. O padrão é um amarelo claro (#FFFFCC).
+3. Clique em **Alterar Cor de Fundo** para processar.
+4. O PDF atualizado é baixado automaticamente.
+
+## Opções
+
+- **Cor de Fundo**: um seletor de cores padrão para escolher qualquer cor sólida. O padrão é amarelo claro.
+
+## Recursos
+
+- Aplica uma cor de fundo uniforme a todas as páginas
+- Preserva todo o conteúdo original (texto, imagens, gráficos vetoriais) por cima da camada colorida
+- Mantém as dimensões originais das páginas
+- Funciona com documentos de qualquer número de páginas
+
+## Casos de Uso
+
+- Adicionar um fundo creme ou marfim claro para dar aos documentos uma aparência mais suave, parecida com papel
+- Codificar conjuntos de documentos por cor, aplicando fundos diferentes a categorias diferentes
+- Criar versões visualmente distintas do mesmo documento para públicos diferentes
+- Adicionar uma leve tonalidade de fundo para melhorar a legibilidade ao projetar documentos na tela
+
+## Dicas
+
+- Cores claras e suaves funcionam melhor. Um fundo muito escuro pode dificultar a leitura do texto, a menos que o texto já seja claro.
+- Se quiser mudar tanto a cor de fundo quanto a do texto, aplique primeiro a cor de fundo e depois use [Alterar cor do texto](./text-color) no resultado.
+- Esta ferramenta trabalha no nível estrutural do PDF (sem rasterização), então o texto continua selecionável e pesquisável na saída.
+
+## Ferramentas Relacionadas
+
+- [Alterar cor do texto](./text-color)
+- [Inverter cores](./invert-colors)
+- [Ajustar cores](./adjust-colors)
diff --git a/docs/pt/tools/bates-numbering.md b/docs/pt/tools/bates-numbering.md
new file mode 100644
index 00000000..5ab2a7a3
--- /dev/null
+++ b/docs/pt/tools/bates-numbering.md
@@ -0,0 +1,62 @@
+---
+title: Numeração Bates
+description: Aplique números Bates a um ou vários PDFs com modelos, preenchimento, fontes e posicionamento personalizáveis.
+---
+
+# Numeração Bates
+
+A numeração Bates carimba identificadores sequenciais em cada página dos seus PDFs. É o método padrão para rotular documentos em processos judiciais, auditorias e fluxos de conformidade. Esta ferramenta aceita vários arquivos, modelos personalizáveis e gera PDFs numerados individualmente ou um único arquivo ZIP.
+
+## Como Funciona
+
+1. Envie um ou mais arquivos PDF. Você pode arrastar vários arquivos de uma vez.
+2. Escolha uma predefinição de estilo ou crie um modelo personalizado.
+3. Configure a posição, a fonte, o tamanho, a cor e os números iniciais.
+4. Clique em **Aplicar Números Bates** para processar.
+5. Um único arquivo é baixado diretamente. Vários arquivos são baixados como um arquivo ZIP.
+
+## Opções
+
+- **Predefinição de Estilo**: escolha entre os formatos integrados:
+ - Exhibit + Case + Bates + Page (por exemplo, "Exhibit 1 Case XYZ 000001 Page 1")
+ - Exhibit + Case + Bates (sem número de página)
+ - Case + Bates
+ - Somente Número Bates (por exemplo, "000001")
+ - Personalizado (escreva seu próprio modelo)
+- **Personalizar Estilo**: uma string de modelo com marcadores: `[BATES]`, `[PAGE]`, `[FILE]`, `[FILENAME]`.
+- **Preenchimento Bates**: número de dígitos (3 a 6) para números Bates preenchidos com zeros. Visível apenas no modo personalizado.
+- **Posição**: Cabeçalho ou Rodapé, Esquerda, Centro ou Direita.
+- **Bates Começa em**: o primeiro número Bates. O padrão é 1. A numeração continua entre os arquivos.
+- **Contador de Arquivos Começa em**: o número inicial do marcador `[FILE]`.
+- **Fonte**: Helvetica, Times New Roman ou Courier.
+- **Tamanho da Fonte**: tamanho do texto carimbado.
+- **Cor**: seletor de cores para o texto do número Bates.
+
+## Recursos
+
+- Visualização ao vivo mostrando como os números Bates aparecerão em todos os arquivos enviados
+- Suporte a vários arquivos com numeração contínua entre os documentos
+- Reordenação de arquivos por arrastar e soltar para controlar a sequência de numeração
+- Seis opções de posição (cabeçalho/rodapé, esquerda/centro/direita)
+- Cálculo adaptativo de margens que respeita tamanhos de página diferentes
+- Saída em ZIP para lotes com vários arquivos
+- Marcadores de modelo para máxima flexibilidade
+
+## Casos de Uso
+
+- Carimbar documentos de produção de provas em litígios com números sequenciais de exibição
+- Numerar pacotes de evidências de auditoria que abrangem dezenas de arquivos
+- Aplicar números de referência regulatórios em documentação de conformidade
+- Rotular anexos de pedidos de patente com identificadores específicos de cada caso
+
+## Dicas
+
+- Arraste os arquivos na lista para reordená-los antes de processar. A sequência de numeração Bates segue essa ordem.
+- Use o marcador `[FILENAME]` para incluir o nome do arquivo original no carimbo, o que ajuda a rastrear as páginas até os documentos de origem.
+- A caixa de visualização é atualizada em tempo real conforme você altera as configurações, para que você confira o formato antes de processar.
+
+## Ferramentas Relacionadas
+
+- [Números de página](./page-numbers)
+- [Adicionar rótulos de página](./add-page-labels)
+- [Cabeçalho e rodapé](./header-footer)
diff --git a/docs/pt/tools/bmp-to-pdf.md b/docs/pt/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..b4c0114d
--- /dev/null
+++ b/docs/pt/tools/bmp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: BMP para PDF
+description: Converta imagens bitmap BMP para o formato PDF diretamente no navegador, sem enviar nada a nenhum servidor.
+---
+
+# BMP para PDF
+
+Converta arquivos Windows Bitmap (BMP) em PDF. O BMP é um formato de imagem sem compressão ainda encontrado em sistemas legados, imagens médicas e scanners industriais. Esta ferramenta os converte em PDF sem precisar instalar nada.
+
+## Formatos Compatíveis
+
+| Formato | Extensões |
+| :------ | :-------- |
+| BMP | `.bmp` |
+
+## Como Funciona
+
+1. Clique na área de envio ou arraste e solte seus arquivos BMP.
+2. Revise a lista de arquivos. Adicione mais arquivos ou remova os indesejados.
+3. Clique em **Converter para PDF**. A saída é baixada como `from_bmps.pdf`.
+
+Cada BMP é desenhado em um canvas, exportado como PNG e depois incorporado ao PDF usando pdf-lib. O tamanho da página corresponde às dimensões originais da imagem.
+
+## Opções
+
+Esta ferramenta não expõe configurações adicionais de qualidade. As imagens são incorporadas na resolução original, como PNG sem perdas, dentro do PDF.
+
+## Casos de Uso
+
+- Converter documentos digitalizados legados armazenados como BMP em PDFs de arquivamento
+- Transformar capturas de tela BMP de aplicativos mais antigos do Windows em documentos compartilháveis
+- Processar a saída de scanners médicos ou industriais que usam BMP por padrão
+- Migrar arquivos de imagens antigos para um formato mais portátil
+
+## Dicas
+
+- Os arquivos BMP não têm compressão, por isso tendem a ser grandes. O PDF resultante será bem menor, pois as imagens são recodificadas internamente como PNG.
+- Se você tem arquivos BMP junto com outros formatos de imagem, use a ferramenta [Imagens para PDF](./image-to-pdf) para converter tudo em um único lote.
+
+## Ferramentas Relacionadas
+
+- [Imagens para PDF](./image-to-pdf)
+- [PNG para PDF](./png-to-pdf)
+- [TIFF para PDF](./tiff-to-pdf)
diff --git a/docs/pt/tools/bookmark.md b/docs/pt/tools/bookmark.md
new file mode 100644
index 00000000..5c3c4a97
--- /dev/null
+++ b/docs/pt/tools/bookmark.md
@@ -0,0 +1,57 @@
+---
+title: Editar marcadores
+description: Adicione, edite, importe, exporte e exclua favoritos de PDF com um editor visual e suporte a CSV/JSON.
+---
+
+# Editar marcadores
+
+O editor de favoritos oferece controle total sobre os favoritos de navegação do PDF (também chamados de estrutura de tópicos). Você pode adicionar novos favoritos, editar os existentes, reorganizar a hierarquia e importar ou exportar os dados em formatos CSV e JSON.
+
+## Como funciona
+
+1. Envie seu PDF clicando ou arrastando um arquivo para a área de soltar.
+2. Se quiser, marque **Extrair favoritos existentes automaticamente** para carregar a árvore de favoritos atual do documento.
+3. O editor abre em visualização dividida: visualizador de PDF à esquerda e painel de favoritos à direita.
+4. Digite o título de um favorito e clique em **Adicionar à página** para criar um novo favorito apontando para a página atual.
+5. Use os botões da barra de ferramentas para reorganizar, estilizar ou excluir favoritos.
+6. Clique em **Salvar PDF com favoritos** para baixar o arquivo atualizado.
+
+## Recursos
+
+- Visualizador de PDF com navegação de páginas, controles de zoom e campo para ir a uma página
+- Adicione favoritos a qualquer página com um único clique
+- Clique diretamente no PDF para definir um destino preciso do favorito (modo de seleção)
+- Hierarquia de favoritos aninhados com reordenação por arrastar e soltar
+- Operações em lote: selecione vários favoritos para alterar a cor, o estilo ou excluir de uma vez
+- Busca de favoritos para encontrar rapidamente itens em árvores grandes
+- Suporte a desfazer e refazer para todas as alterações
+- Importe favoritos de arquivos CSV (título, página, nível) ou JSON
+- Exporte favoritos para CSV ou JSON para edição externa
+- Estilo dos favoritos: cor (vermelho, azul, verde, amarelo, roxo) e estilo da fonte (negrito, itálico, negrito itálico)
+- Navegação rápida: percorra as páginas com as teclas Page Up/Page Down
+
+## Opções
+
+- **Extrair favoritos existentes automaticamente**: quando marcada, a ferramenta lê e exibe os favoritos atuais do PDF ao carregar.
+- **Modo em lote**: ative para selecionar vários favoritos e aplicar alterações de cor, estilo ou exclusão em massa.
+- **Expandir/Recolher tudo**: mostre ou oculte rapidamente os favoritos filhos.
+
+## Casos de uso
+
+- Adicionar um sumário a um livro didático ou manual que não tem favoritos
+- Reestruturar os favoritos de um documento digitalizado após o processamento de OCR
+- Exportar favoritos para CSV, editá-los em uma planilha e importá-los novamente
+- Limpar favoritos gerados automaticamente que têm referências de página incorretas
+- Adicionar favoritos coloridos para marcar seções importantes em uma petição jurídica
+
+## Dicas
+
+- Use a importação de CSV para criar favoritos em massa. O formato é simples: `title,page,level`, em que o nível 1 é o nível superior.
+- O modo de seleção permite clicar em um ponto exato da página do PDF para definir o destino do favorito, o que é mais preciso do que apenas indicar o número da página.
+- Exporte seus favoritos antes de fazer grandes alterações para ter um backup.
+
+## Ferramentas relacionadas
+
+- [Sumário](./table-of-contents)
+- [Editor de PDF](./edit-pdf)
+- [Adicionar rótulos de página](./add-page-labels)
diff --git a/docs/pt/tools/cbz-to-pdf.md b/docs/pt/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..14577913
--- /dev/null
+++ b/docs/pt/tools/cbz-to-pdf.md
@@ -0,0 +1,47 @@
+---
+title: CBZ para PDF
+description: Converta arquivos de quadrinhos CBZ e CBR em PDF no seu navegador. Grátis, privado, sem upload.
+---
+
+# CBZ para PDF
+
+Transforme arquivos de quadrinhos em PDFs. CBZ e CBR são os formatos padrão para quadrinhos digitais: são apenas arquivos ZIP ou RAR cheios de imagens. Esta ferramenta extrai cada página, preserva a ordem de leitura e gera um PDF limpo em que cada imagem vira uma página em tamanho real.
+
+## Formatos compatíveis
+
+| Formato | Extensão | Observações |
+| :------ | :------- | :----------------------------------------------------------------------- |
+| CBZ | `.cbz` | Arquivo de quadrinhos baseado em ZIP (processado localmente com pdf-lib) |
+| CBR | `.cbr` | Arquivo de quadrinhos baseado em RAR (processado pelo mecanismo PyMuPDF) |
+
+O conversor de CBZ reconhece imagens JPEG, PNG, GIF, BMP, WebP, AVIF, TIFF, HEIC e JXL dentro do arquivo. Formatos não padrão são convertidos automaticamente para PNG antes de serem incorporados.
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos CBZ ou CBR. Você pode misturar os dois formatos em um único lote.
+2. Revise os arquivos listados. Remova os que não precisa ou clique em **Adicionar mais arquivos** para incluir outros.
+3. Clique em **Converter para PDF**. Para arquivos CBZ, a ferramenta descompacta o arquivo, ordena as imagens pelo nome em ordem natural, detecta o formato real de cada imagem e as incorpora em um PDF usando pdf-lib. Os arquivos CBR são processados pelo mecanismo PyMuPDF.
+4. Um único arquivo é baixado como PDF. Vários arquivos geram um arquivo ZIP chamado `comic-converted.zip`.
+
+## Opções
+
+Nenhuma configuração é necessária. Cada imagem vira uma página com o mesmo tamanho original, então páginas duplas continuam largas e páginas simples continuam estreitas.
+
+## Casos de uso
+
+- Ler quadrinhos em um tablet ou aplicativo de celular que aceita PDF, mas não CBZ/CBR
+- Imprimir páginas específicas de um quadrinho digital
+- Arquivar uma coleção de quadrinhos em um formato que qualquer leitor de arquivos consegue abrir
+- Compartilhar um quadrinho com alguém que não tem um leitor de quadrinhos dedicado
+
+## Dicas
+
+- As imagens dentro do arquivo são ordenadas em ordem natural (assim `page2.jpg` vem antes de `page10.jpg`). Nomeie seus arquivos com numeração consistente para obter a sequência correta de páginas.
+- O conversor detecta os formatos de imagem pelas assinaturas binárias, não pelas extensões. Um PNG nomeado por engano como `.jpg` ainda será incorporado corretamente.
+- Os arquivos CBZ são processados inteiramente no navegador, sem carregar o mecanismo PyMuPDF, então são convertidos mais rápido que os arquivos CBR.
+
+## Ferramentas relacionadas
+
+- [EPUB para PDF](./epub-to-pdf)
+- [MOBI para PDF](./mobi-to-pdf)
+- [Imagem para PDF](./image-to-pdf)
diff --git a/docs/pt/tools/change-permissions.md b/docs/pt/tools/change-permissions.md
new file mode 100644
index 00000000..e808964c
--- /dev/null
+++ b/docs/pt/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Alterar permissões
+description: Defina ou modifique as permissões de uso do PDF para impressão, cópia, edição e anotações. Usa criptografia AES de 256 bits.
+---
+
+# Alterar permissões
+
+Ajuste com precisão o que os destinatários podem fazer com seu PDF. Ao contrário da criptografia básica, que apenas tranca o arquivo com uma senha, esta ferramenta permite permitir ou negar seletivamente impressão, cópia, edição, anotações, preenchimento de formulários, montagem do documento e extração de páginas, tudo garantido pela criptografia AES de 256 bits.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Se o PDF já estiver criptografado, digite a **Senha atual**.
+3. Defina uma **Nova senha de usuário** (necessária para abrir) e/ou uma **Nova senha de proprietário** (controla as permissões).
+4. Ative ou desative cada permissão usando as caixas de seleção.
+5. Clique em **Alterar permissões**.
+6. Baixe o PDF atualizado.
+
+Se você deixar os dois campos de nova senha vazios, a ferramenta descriptografa o PDF por completo, removendo toda a criptografia e as restrições.
+
+## Controles de permissão
+
+| Permissão | O que controla |
+| ----------------------------------------- | ------------------------------------------------------------ |
+| **Permitir impressão** | Se o documento pode ser impresso |
+| **Permitir cópia** | Se texto e imagens podem ser selecionados e copiados |
+| **Permitir modificação** | Se o conteúdo do documento pode ser editado |
+| **Permitir anotações** | Se comentários, destaques e carimbos podem ser adicionados |
+| **Permitir preenchimento de formulários** | Se os campos interativos de formulário podem ser preenchidos |
+| **Permitir montagem do documento** | Se páginas podem ser inseridas, excluídas ou giradas |
+| **Permitir extração de páginas** | Se páginas individuais podem ser extraídas |
+
+Todas as permissões exigem uma senha de proprietário para serem aplicadas. Sem uma senha de proprietário, os indicadores de permissão são ignorados pela maioria dos leitores de PDF.
+
+## Como as permissões funcionam no PDF
+
+As permissões do PDF fazem parte da especificação de criptografia. Elas são armazenadas como indicadores de bits no dicionário de criptografia e aplicadas por leitores de PDF compatíveis. A diferença principal:
+
+- **Senha de usuário**: necessária para abrir o arquivo.
+- **Senha de proprietário**: necessária para alterar permissões ou remover restrições. Sem ela, os indicadores de permissão controlam quais operações o usuário pode realizar.
+
+Se você definir apenas uma senha de proprietário (sem senha de usuário), qualquer pessoa pode abrir o arquivo, mas fica restrita às operações permitidas. Se definir as duas, o arquivo exige uma senha para abrir e fica restrito após a autenticação.
+
+## Casos de uso
+
+- Distribuir um relatório que pode ser visualizado e impresso, mas não editado nem copiado
+- Compartilhar um modelo de contrato que os destinatários podem preencher, mas não modificar
+- Publicar um catálogo em PDF em que a cópia de imagens está desativada
+- Permitir anotações em um rascunho de revisão e impedir alterações estruturais
+
+## Dicas
+
+- Para ser eficaz, sempre defina uma senha de proprietário. Permissões sem senha de proprietário não podem ser aplicadas.
+- Algumas ferramentas de PDF de terceiros ignoram os indicadores de permissão. Para uma proteção mais forte, considere rasterizar o PDF ou usar DRM.
+- Use esta ferramenta para atualizar PDFs antigos criptografados com RC4 para AES-256.
+
+## Ferramentas relacionadas
+
+- [Criptografar PDF](./protect-pdf): proteção simples por senha, sem permissões detalhadas
+- [Descriptografar PDF](./unlock-pdf): remove a criptografia por completo
+- [Remover Restrições](./remove-restrictions): elimina todas as restrições quando você tem a senha de proprietário
diff --git a/docs/pt/tools/combine-single-page.md b/docs/pt/tools/combine-single-page.md
new file mode 100644
index 00000000..1206257a
--- /dev/null
+++ b/docs/pt/tools/combine-single-page.md
@@ -0,0 +1,55 @@
+---
+title: Combinar em página única
+description: Una todas as páginas de um PDF em uma única rolagem contínua, vertical ou horizontal.
+---
+
+# Combinar em página única
+
+Junte todas as páginas de um PDF em uma única página longa. As páginas são unidas na vertical (como um rolo) ou na horizontal (lado a lado), gerando uma página contínua na saída.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Escolha a direção do layout: **Vertical** (páginas empilhadas de cima para baixo) ou **Horizontal** (páginas lado a lado).
+3. Defina o espaçamento entre as páginas em pontos.
+4. Escolha uma cor de fundo para os espaços entre as páginas.
+5. Se quiser, ative os separadores (linhas finas entre as páginas) e configure a espessura e a cor.
+6. Clique no botão de processar. A saída é um PDF de uma única página.
+
+## Recursos
+
+- União de páginas na vertical ou na horizontal
+- Espaçamento configurável entre as páginas
+- Seletor de cor de fundo para as áreas de espaço
+- Linhas separadoras opcionais com espessura e cor ajustáveis
+- Renderiza cada página original em resolução total no canvas combinado
+
+## Opções
+
+| Opção | Descrição |
+| --------------------------- | ------------------------------------------------ |
+| **Orientação** | Vertical (empilhado) ou Horizontal (lado a lado) |
+| **Espaçamento das páginas** | Espaço entre as páginas em pontos |
+| **Cor de fundo** | Cor da área entre as páginas |
+| **Adicionar separador** | Ativa linhas finas entre as páginas |
+| **Espessura do separador** | Espessura da linha em pontos |
+| **Cor do separador** | Cor das linhas separadoras |
+
+## Casos de uso
+
+- Criar uma única imagem longa a partir de um wireframe ou protótipo de design com várias páginas
+- Gerar uma visualização contínua e rolável de um documento para incorporar na web
+- Unir um quadrinho ou storyboard de várias páginas em uma única tira
+- Produzir uma visão panorâmica de páginas sequenciais para revisão
+
+## Dicas
+
+- A orientação vertical funciona melhor para documentos com páginas em retrato. A horizontal é melhor para conteúdo em paisagem.
+- Documentos grandes com muitas páginas geram uma saída muito alta ou muito larga. Alguns visualizadores de PDF podem ter dificuldade com páginas únicas extremamente grandes.
+- Adicionar separadores com uma cor contrastante facilita ver onde termina uma página original e começa a próxima.
+
+## Ferramentas relacionadas
+
+- [PDF N-Up](./n-up-pdf)
+- [Mesclar PDF](./merge-pdf)
+- [Dividir Páginas](./divide-pages)
diff --git a/docs/pt/tools/compare-pdfs.md b/docs/pt/tools/compare-pdfs.md
new file mode 100644
index 00000000..e70ce6b7
--- /dev/null
+++ b/docs/pt/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Comparar PDFs
+description: Compare dois documentos PDF lado a lado ou em modo de sobreposição, com detecção e categorização detalhadas das alterações.
+---
+
+# Comparar PDFs
+
+Envie dois PDFs e veja exatamente o que mudou entre eles. A ferramenta emparelha as páginas de forma inteligente, detecta diferenças em texto, imagens, anotações, cabeçalhos e formatação, e as apresenta em uma visualização lado a lado ou em sobreposição.
+
+## Como funciona
+
+1. Envie dois arquivos PDF: o original (à esquerda) e a versão revisada (à direita).
+2. A ferramenta emparelha as páginas dos dois documentos usando assinaturas de conteúdo.
+3. Selecione um modo de visualização: **Lado a lado** ou **Sobreposição**.
+4. Navegue entre os pares de páginas com os controles de paginação.
+5. As diferenças são destacadas e categorizadas. Use o painel de filtros para focar em tipos específicos de alteração.
+6. Se quiser, exporte a comparação como um relatório em PDF.
+
+## Recursos
+
+- Emparelhamento automático de páginas com base na similaridade de conteúdo
+- Visualizações de comparação lado a lado e em sobreposição
+- Categorização das alterações: texto, imagem, cabeçalho/rodapé, anotação, formatação, plano de fundo
+- Filtros por categoria para mostrar ou ocultar tipos específicos de alteração
+- Busca de alterações de texto com filtro por consulta
+- Suporte a OCR para comparar documentos digitalizados
+- Controles de zoom para inspeção detalhada
+- Rolagem sincronizada entre os painéis no modo lado a lado
+- Exportação dos resultados da comparação como PDF
+
+## Opções
+
+| Opção | Descrição |
+| ------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| **Modo de visualização** | Lado a lado ou Sobreposição |
+| **OCR** | Ativa/desativa o OCR para comparar documentos digitalizados |
+| **Idioma do OCR** | Idioma para a extração de texto por OCR |
+| **Filtros de categoria** | Alterna a visibilidade das alterações de texto, imagem, cabeçalho/rodapé, anotação, formatação e plano de fundo |
+| **Escopo das alterações** | No modo de sobreposição, alterna entre todas as alterações ou somente o conteúdo |
+| **Zoom** | Ajusta o nível de ampliação para inspeção detalhada |
+
+## Casos de uso
+
+- Revisar versões de um contrato para encontrar exatamente o que mudou entre elas
+- Comparar protótipos de design para verificar se as exportações em PDF correspondem ao esperado
+- Auditar alterações em documentos de setores regulados, em que toda edição precisa ser rastreada
+- Verificar se um processo de conversão de PDF preservou o conteúdo original com precisão
+- Conferir documentos traduzidos com o original para detectar mudanças de layout
+
+## Dicas
+
+- A sobreposição empilha os dois documentos um sobre o outro, tornando imediatamente visíveis as diferenças espaciais (elementos deslocados, imagens redimensionadas).
+- Ative o OCR ao comparar documentos digitalizados que não têm camada de texto. O mecanismo de comparação extrairá o texto das imagens das páginas.
+- Use os filtros de categoria para focar no que importa. Por exemplo, oculte as alterações de formatação quando só se importar com as diferenças no conteúdo do texto.
+
+## Ferramentas relacionadas
+
+- [Ver Metadados](./view-metadata)
+- [OCR para PDF](./ocr-pdf)
+- [Mesclar PDF](./merge-pdf)
diff --git a/docs/pt/tools/compress-pdf.md b/docs/pt/tools/compress-pdf.md
new file mode 100644
index 00000000..6bc62b59
--- /dev/null
+++ b/docs/pt/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Comprimir PDF
+description: Reduza o tamanho do PDF em até 90% com o mecanismo Hyper Compress. Aceita tamanhos de arquivo alvo, processamento em lote e configurações de qualidade personalizadas.
+---
+
+# Comprimir PDF
+
+Reduza o tamanho dos seus PDFs sem estragá-los. O Comprimir PDF usa o [Hyper Compress](https://www.bentopdf.com/hyper-compress), o mecanismo de compressão próprio do BentoPDF. Ele recomprime imagens, cria subconjuntos e mescla fontes, e remove peso morto, como miniaturas incorporadas e dados privados de aplicativos. O PDF continua totalmente funcional: o texto permanece selecionável, e links e campos de formulário continuam funcionando.
+
+O Hyper Compress é compilado para WebAssembly e acompanha o BentoPDF, então a compressão funciona offline e em implantações isoladas da internet, sem configuração extra.
+
+## Como funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando os arquivos.
+2. Escolha um **Nível de compressão**: Baixo, Médio, Alto ou Sem perdas.
+3. Se quiser, informe um **Tamanho de arquivo alvo** ou expanda as **Configurações personalizadas** para um controle mais detalhado, incluindo **Converter para tons de cinza**.
+4. Clique em **Comprimir PDF**. Para vários arquivos, você recebe um único download em ZIP.
+
+## Documentos especiais
+
+- **PDFs assinados digitalmente** são devolvidos sem alterações, porque qualquer mudança invalidaria a assinatura. Ative **Ignorar proteção de conteúdo** nas Configurações personalizadas para remover as assinaturas e comprimi-los; a assinatura visível permanece na página, mas o arquivo deixa de estar assinado.
+- **Arquivos PDF/A** perdem o selo PDF/A após a compressão, para que o arquivo nunca afirme uma conformidade que não cumpre mais. Ative **Preservar PDF/A** nas Configurações personalizadas para manter o arquivo em conformidade.
+- **PDFs protegidos por senha** ganham um campo de senha no cartão do arquivo. Digite a senha ali e o Hyper Compress abre o arquivo por conta própria, sem uma etapa separada de desbloqueio. Com dois ou mais arquivos bloqueados, um único campo compartilhado desbloqueia todos os arquivos que usam a mesma senha. A cópia comprimida não tem senha; use [Criptografar PDF](./protect-pdf) para adicionar uma novamente.
+- **Digitalizações sem camada de texto** podem encolher ainda mais com **Rasterizar páginas** nas Configurações personalizadas, que substitui cada página por uma imagem otimizada. A opção é ignorada em qualquer documento com texto selecionável, incluindo digitalizações com OCR, a menos que **Ignorar proteção de conteúdo** esteja ativado. Nesse caso, páginas com texto também viram imagens, então o texto deixa de ser selecionável e os links param de funcionar.
+
+## Níveis de compressão
+
+| Nível | Qualidade da imagem | Resolução máxima | Ideal para |
+| -------------- | ------------------- | ---------------- | ------------------------------------ |
+| **Baixo** | 80 | 200 DPI | Preservar a qualidade visual |
+| **Médio** | 50 | 150 DPI | Documentos do dia a dia |
+| **Alto** | 20 | 72 DPI | Anexos de e-mail, uploads para a web |
+| **Sem perdas** | Imagens intactas | Inalterada | Cópias de arquivamento |
+
+O nível Alto também remove a incorporação das 14 fontes padrão do PDF, além de fontes semelhantes, como a Arial, quando isso é seguro.
+
+## Tamanho de arquivo alvo
+
+Informe um tamanho em KB ou MB e o Hyper Compress busca a melhor qualidade de imagem que ainda caiba, partindo do nível escolhido. Se o documento não puder ficar tão pequeno, você recebe a menor versão possível e uma mensagem avisando. As páginas dedicadas, como [Comprimir PDF para 1MB](https://www.bentopdf.com/compress-pdf-to-1mb), abrem com o alvo já preenchido.
+
+## Configurações personalizadas
+
+Expanda o painel de Configurações personalizadas para ajustar o Hyper Compress diretamente. Escolher um nível de compressão restaura esses valores para os do nível, e editar qualquer um deles muda o nível para Personalizado.
+
+- **Ignorar proteção de conteúdo**: por padrão, o Hyper Compress não mexe em PDFs assinados e não rasteriza páginas que têm texto. Ativar esta opção ignora as duas regras. Ela continua ativada quando você muda o nível.
+
+- **Imagens**: qualidade da imagem, resolução máxima, reamostragem forçada, redução de cores, recorte de áreas invisíveis de imagens, remoção de imagens alternativas, simplificação de perfis de cor, JPEG 2000 e modo sem perdas
+- **Fontes**: criação de subconjuntos, mesclagem de duplicatas e remoção da incorporação de fontes padrão e suas semelhantes
+- **Conteúdo**: achatar anotações, campos de formulário ou links
+- **Limpeza**: remoção de miniaturas, dados de aplicativos, threads de artigos, informações de captura da web, árvore de estrutura ou intenções de saída
+- **Rasterizar**: substituir páginas por imagens, para digitalizações somente de imagem; ignorado quando o documento tem texto selecionável
+- **Saída**: Preservar PDF/A e compressão Brotli para leitores de PDF 2.0 que a suportam
+
+## Casos de uso
+
+- Fazer um relatório de 50 MB caber no limite de anexos de e-mail
+- Colocar uma digitalização abaixo do limite rígido de upload de um portal usando um tamanho de arquivo alvo
+- Otimizar PDFs de marketing para downloads mais rápidos no site
+- Arquivar grandes conjuntos de documentos em que o custo de armazenamento importa
+- Reduzir o uso de dados móveis ao compartilhar PDFs em aplicativos de mensagens
+
+## Dicas
+
+- Comece pelo Médio. Se o resultado ainda for grande demais, defina um tamanho de arquivo alvo ou suba para o Alto.
+- Para uma digitalização sem camada de texto, ative Rasterizar páginas nas Configurações personalizadas.
+- Converter para tons de cinza, nas Configurações personalizadas, pode reduzir o tamanho de documentos com muitas cores.
+
+## Ferramentas relacionadas
+
+- [Linearizar PDF](./linearize-pdf): otimize o PDF comprimido para visualização rápida na web
+- [Rasterizar PDF](./rasterize-pdf): converta páginas em imagens com um DPI específico, inclusive páginas com texto
+- [Reparar PDF](./repair-pdf): corrija um PDF que quebrou durante a compressão em outro lugar
+- [Remover Metadados](./remove-metadata): elimine dados ocultos para maior privacidade
diff --git a/docs/pt/tools/crop-pdf.md b/docs/pt/tools/crop-pdf.md
new file mode 100644
index 00000000..213e6da7
--- /dev/null
+++ b/docs/pt/tools/crop-pdf.md
@@ -0,0 +1,44 @@
+---
+title: Cortar PDF
+description: Corte visualmente as páginas do PDF desenhando uma região de corte em cada página com um editor baseado em Cropper.js.
+---
+
+# Cortar PDF
+
+Apare as margens das páginas do PDF com uma interface visual de corte. Desenhe um retângulo de corte diretamente em cada página, visualize o resultado e aplique o corte. Você pode definir regiões de corte diferentes para páginas diferentes ou aplicar o mesmo corte ao documento inteiro.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. O editor de corte abre, mostrando a primeira página com uma sobreposição de corte arrastável.
+3. Ajuste o retângulo de corte arrastando suas bordas ou cantos.
+4. Use os botões de navegação de páginas para passar entre as páginas e definir a região de corte de cada uma.
+5. Clique em **Cortar** para aplicar o corte e baixar o resultado.
+
+## Recursos
+
+- Editor de corte visual baseado em Cropper.js, com alças para ajuste preciso
+- Navegação página a página para definir regiões de corte individuais
+- Guarda as configurações de corte por página, para que você defina cortes diferentes em páginas diferentes
+- Pré-visualização ao vivo da área de corte selecionada
+- Compatível com PDFs de qualquer tamanho de página ou orientação
+
+## Casos de uso
+
+- Remover margens largas de documentos digitalizados para focar na área de conteúdo
+- Aparar marcas de corte ou de registro de impressora em PDFs de pré-impressão
+- Cortar slides de aula para remover a área de notas do apresentador
+- Remover cabeçalhos ou rodapés de todas as páginas antes de compartilhar um trecho de documento
+- Redimensionar páginas para caber em uma tela ou layout de impressão específico
+
+## Dicas
+
+- A sobreposição de corte pode ser redimensionada e reposicionada livremente. Arraste os cantos para redimensionar proporcionalmente ou as bordas para ajustar um só eixo.
+- Para documentos em que todas as páginas precisam do mesmo corte, defina-o na primeira página: a ferramenta lembra a região de corte conforme você navega pelas páginas.
+- Se você precisa padronizar os tamanhos das páginas em vez de cortar visualmente, a ferramenta Ajustar Tamanho da Página pode ser mais adequada.
+
+## Ferramentas relacionadas
+
+- [Editor de PDF](./edit-pdf)
+- [Números de Página](./page-numbers)
+- [Remover Páginas em Branco](./remove-blank-pages)
diff --git a/docs/pt/tools/csv-to-pdf.md b/docs/pt/tools/csv-to-pdf.md
new file mode 100644
index 00000000..a882eae4
--- /dev/null
+++ b/docs/pt/tools/csv-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: CSV para PDF
+description: Converta planilhas CSV em tabelas PDF formatadas diretamente no seu navegador.
+---
+
+# CSV para PDF
+
+Transforme arquivos CSV em documentos PDF limpos e formatados. Cada CSV é analisado e renderizado como uma tabela no PDF de saída. É útil quando você precisa imprimir ou compartilhar dados tabulares sem exigir que o destinatário tenha um programa de planilhas.
+
+## Formatos compatíveis
+
+| Formato | Extensões |
+| :------ | :-------- |
+| CSV | `.csv` |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte um ou mais arquivos CSV.
+2. Revise a lista de arquivos. Adicione mais arquivos ou remova os indesejados.
+3. Clique em **Converter para PDF**. Um indicador de progresso mostra o andamento da conversão.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são empacotados em `csv-converted.zip`.
+
+## Opções
+
+Esta ferramenta não tem configurações adicionais. O CSV é analisado e formatado automaticamente como uma tabela.
+
+## Saída
+
+| Quantidade de entrada | Saída |
+| :-------------------- | :------------------------------------------------------------ |
+| 1 arquivo | Download de um único PDF (por exemplo, `data.pdf`) |
+| 2 ou mais arquivos | Arquivo ZIP (`csv-converted.zip`) contendo um PDF por arquivo |
+
+## Casos de uso
+
+- Converter relatórios exportados de bancos de dados em tabelas PDF imprimíveis
+- Compartilhar dados financeiros ou listas de estoque com pessoas que não têm o Excel
+- Criar versões em PDF de arquivos de log CSV para documentação de conformidade
+- Imprimir listas de endereços, planilhas de notas ou quaisquer dados tabulares armazenados em CSV
+
+## Dicas
+
+- Para obter os melhores resultados, garanta que seu CSV use delimitadores de vírgula padrão. A ferramenta segue as convenções comuns de análise de CSV.
+- Se o seu CSV tem muitas colunas, a tabela pode ser comprimida para caber na largura da página. Considere dividir conjuntos de dados largos em vários arquivos.
+- Para arquivos do Excel (`.xls`, `.xlsx`), use a ferramenta [Excel para PDF](./excel-to-pdf), que preserva a formatação da planilha e várias planilhas.
+
+## Ferramentas relacionadas
+
+- [Excel para PDF](./excel-to-pdf)
+- [Texto para PDF](./txt-to-pdf)
+- [JSON para PDF](./json-to-pdf)
diff --git a/docs/pt/tools/delete-pages.md b/docs/pt/tools/delete-pages.md
new file mode 100644
index 00000000..ed7c6f60
--- /dev/null
+++ b/docs/pt/tools/delete-pages.md
@@ -0,0 +1,42 @@
+---
+title: Excluir páginas
+description: Remova páginas específicas de um PDF por número, intervalo ou seleção visual de miniaturas.
+---
+
+# Excluir páginas
+
+Remova páginas indesejadas de um documento PDF. Indique as páginas a excluir digitando números de página ou intervalos, ou clique diretamente nas miniaturas para marcá-las para remoção.
+
+## Como funciona
+
+1. Envie um arquivo PDF. A ferramenta renderiza miniaturas de todas as páginas.
+2. Digite as páginas a excluir no campo de texto usando a sintaxe de intervalos (por exemplo, `2, 5-8`) ou clique nas miniaturas para alternar a seleção.
+3. As páginas marcadas ficam destacadas para você confirmar a seleção.
+4. Clique no botão de processar. Um novo PDF é criado sem as páginas selecionadas.
+
+## Recursos
+
+- Seleção de páginas por texto com sintaxe de intervalos (`2, 5-8, 12`)
+- Grade visual de miniaturas para excluir com um clique
+- Destaque em tempo real das páginas marcadas para exclusão
+- Validação da entrada em relação ao número real de páginas
+- Mantém todas as páginas não excluídas na ordem original
+
+## Casos de uso
+
+- Remover páginas em branco ou de preenchimento de um documento digitalizado
+- Retirar capas ou apêndices antes de compartilhar um documento
+- Limpar páginas de rascunho deixadas por engano em um PDF final
+- Remover páginas com informações sensíveis antes da distribuição
+
+## Dicas
+
+- Excluir páginas não afeta o conteúdo nem a formatação das páginas restantes. A saída é uma cópia fiel do original sem as páginas removidas.
+- Se você quer manter apenas páginas específicas em vez de remover algumas, [Extrair Páginas](./extract-pages) é a melhor opção.
+- A visualização de miniaturas carrega sob demanda, então documentos grandes continuam responsivos.
+
+## Ferramentas relacionadas
+
+- [Extrair Páginas](./extract-pages)
+- [Duplicar e Organizar](./organize-pdf)
+- [Dividir PDF](./split-pdf)
diff --git a/docs/pt/tools/deskew-pdf.md b/docs/pt/tools/deskew-pdf.md
new file mode 100644
index 00000000..1a5b1232
--- /dev/null
+++ b/docs/pt/tools/deskew-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Desinclinar PDF
+description: Endireite automaticamente páginas inclinadas em PDFs digitalizados usando a detecção de inclinação do OpenCV. Limite e DPI ajustáveis.
+---
+
+# Desinclinar PDF
+
+Documentos digitalizados raramente ficam perfeitamente retos. Mesmo uma leve inclinação deixa o OCR menos preciso e a impressão com aspecto desleixado. Esta ferramenta usa os algoritmos de processamento de imagem do OpenCV para detectar o ângulo de inclinação de cada página e girá-la de volta ao nível.
+
+## Como funciona
+
+1. Envie um ou mais PDFs digitalizados.
+2. Defina o **Limite de inclinação**: páginas com inclinação detectada abaixo desse valor não são alteradas.
+3. Escolha a **Qualidade de processamento (DPI)**: um DPI maior melhora a precisão da detecção, mas demora mais.
+4. Clique em **Desinclinar PDF**.
+5. Após o processamento, um painel de resultados mostra o ângulo detectado em cada página e se ela foi corrigida.
+
+## Opções
+
+| Configuração | Valores | Padrão |
+| ------------------------ | ------------------------ | ------ |
+| **Limite de inclinação** | 0,1, 0,5, 1,0, 2,0 graus | 0,5 |
+| **DPI de processamento** | 100, 150, 200, 300 | 150 |
+
+## Como funciona a detecção de inclinação
+
+A ferramenta renderiza cada página como imagem no DPI selecionado e usa o OpenCV para detectar os ângulos dominantes das linhas no conteúdo. Se a inclinação detectada exceder o limite, a página é girada no ângulo inverso para ficar reta. Páginas abaixo do limite passam sem alterações.
+
+## Casos de uso
+
+- Limpar contratos ou documentos jurídicos digitalizados em lote
+- Preparar recibos ou notas fiscais digitalizados para o processamento de OCR
+- Endireitar páginas de um scanner de mesa com posicionamento irregular do papel
+- Melhorar a qualidade visual de materiais de arquivo digitalizados
+
+## Dicas
+
+- Reduza o limite para 0,1 grau se precisar de alinhamento perfeito ao pixel para o OCR.
+- 150 DPI é rápido e preciso para a maioria dos documentos. Use 300 DPI para textos muito pequenos ou páginas com detalhes finos.
+- O desinclinar funciona melhor em documentos com linhas de texto horizontais nítidas. Pode ter dificuldade com páginas que são majoritariamente imagens ou elementos de design diagonais.
+
+## Ferramentas relacionadas
+
+- [Rasterizar PDF](./rasterize-pdf): converta a saída desinclinada em um PDF plano baseado em imagens
+- [Comprimir PDF](./compress-pdf): reduza o tamanho do arquivo após desinclinar
+- [Reparar PDF](./repair-pdf): corrija problemas estruturais em PDFs digitalizados
diff --git a/docs/pt/tools/digital-sign-pdf.md b/docs/pt/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..0b772094
--- /dev/null
+++ b/docs/pt/tools/digital-sign-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Assinatura Digital
+description: Adicione assinaturas digitais criptográficas a PDFs usando certificados X.509. Aceita os formatos PKCS#12 e PEM, com opções de assinatura visível.
+---
+
+# Assinatura Digital
+
+Uma assinatura digital é uma prova criptográfica de que uma pessoa específica assinou um documento e de que ele não foi alterado desde então. Ao contrário de uma assinatura desenhada (que é apenas uma imagem), a assinatura digital usa certificados X.509 e padrões PKCS#7 para oferecer autenticidade e integridade verificáveis.
+
+O BentoPDF aplica assinaturas digitais inteiramente no seu navegador. Sua chave privada nunca sai do seu dispositivo.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Envie o arquivo do seu certificado (.pfx, .p12 ou .pem).
+3. Digite a senha do certificado para desbloqueá-lo. A ferramenta exibe o titular, o emissor e o período de validade do certificado.
+4. Se quiser, configure os metadados da assinatura (motivo, local, informações de contato).
+5. Se quiser, ative uma **assinatura visível** com personalização de posição, tamanho, imagem e texto.
+6. Clique em **Assinar PDF**.
+
+## Formatos de certificado compatíveis
+
+| Formato | Extensões | Descrição |
+| ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------ |
+| **PKCS#12** | .pfx, .p12 | Pacote padrão do setor contendo a chave privada e a cadeia de certificados. Formato mais comum. |
+| **PEM** | .pem | Formato baseado em texto. Deve conter o certificado e a chave privada no mesmo arquivo. Aceita chaves privadas criptografadas. |
+
+## Opções de assinatura visível
+
+Quando ativado, um bloco de assinatura visível é renderizado na página do PDF:
+
+- **Posição**: coordenadas X/Y e largura/altura em pontos
+- **Página**: primeira página, última página, todas as páginas ou um número de página específico
+- **Imagem**: envie uma imagem PNG, JPG ou WebP (sua assinatura manuscrita, selo da empresa etc.)
+- **Texto**: texto personalizado com cor e tamanho de fonte configuráveis. Se nenhuma imagem ou texto for fornecido, a ferramenta gera automaticamente um texto a partir do nome comum do certificado e da data atual.
+
+## Metadados da assinatura
+
+- **Motivo**: por que o documento foi assinado (por exemplo, "Aprovado", "Revisado")
+- **Local**: onde a assinatura ocorreu (por exemplo, "São Paulo, SP")
+- **Informações de contato**: como falar com o signatário (por exemplo, endereço de e-mail)
+
+## Nota sobre conexão com a internet
+
+A assinatura pode exigir conexão com a internet. A biblioteca de assinatura busca a cadeia de certificados em URLs incorporadas na extensão Authority Information Access (AIA) do seu certificado. Se esses servidores estiverem inacessíveis, a assinatura falhará para certificados que exigem validação da cadeia.
+
+## Casos de uso
+
+- Assinar contratos, propostas e acordos com assinaturas digitais juridicamente vinculantes
+- Certificar documentos oficiais em fluxos de trabalho que exigem autenticação baseada em PKI
+- Assinar notas fiscais em PDF para conformidade regulatória (muitos países da UE exigem faturas eletrônicas assinadas digitalmente)
+- Adicionar aprovação organizacional a desenhos de engenharia ou documentos de qualidade
+
+## Dicas
+
+- Certificados autoassinados servem para testes, mas exibem avisos no Adobe Reader. Use um certificado de uma Autoridade Certificadora confiável para documentos em produção.
+- A assinatura visível é puramente visual. A assinatura criptográfica é incorporada independentemente de o bloco visível estar ativado.
+- Verifique seu PDF assinado com a ferramenta Validar Assinatura PDF para confirmar que a assinatura está intacta.
+
+## Ferramentas relacionadas
+
+- [Validar Assinatura PDF](./validate-signature-pdf): verifique assinaturas digitais em PDFs assinados
+- [Achatar PDF (Flatten)](./flatten-pdf): achate formulários antes de assinar para impedir modificações
+- [Criptografar PDF](./protect-pdf): adicione proteção por senha além da assinatura digital
+- [Remover Metadados](./remove-metadata): elimine metadados antes de assinar
diff --git a/docs/pt/tools/divide-pages.md b/docs/pt/tools/divide-pages.md
new file mode 100644
index 00000000..53ea4262
--- /dev/null
+++ b/docs/pt/tools/divide-pages.md
@@ -0,0 +1,42 @@
+---
+title: Dividir páginas
+description: Divida páginas de PDF na horizontal ou na vertical em subpáginas menores.
+---
+
+# Dividir páginas
+
+Corte páginas individuais de um PDF ao meio, dividindo-as na horizontal ou na vertical. É útil quando uma única página contém conteúdo que deveria ficar em páginas separadas, por exemplo, um layout de duas colunas digitalizado como uma página larga.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Selecione a direção da divisão: **Vertical** (metades esquerda/direita) ou **Horizontal** (metades superior/inferior).
+3. Se quiser, informe um intervalo de páginas para limitar quais páginas serão divididas. Deixe em branco para dividir todas.
+4. Clique no botão de processar para gerar o PDF dividido.
+
+## Recursos
+
+- Divisão vertical: divide cada página em metades esquerda e direita
+- Divisão horizontal: divide cada página em metades superior e inferior
+- Filtro de intervalo de páginas para dividir apenas páginas específicas
+- As páginas não selecionadas passam sem alterações
+- Preserva a qualidade do conteúdo sem renderizar novamente
+
+## Casos de uso
+
+- Separar páginas digitalizadas em duas por folha (por exemplo, a digitalização de um livro com páginas esquerda e direita na mesma folha)
+- Dividir um PDF em paisagem com conteúdo lado a lado em páginas individuais em retrato
+- Dividir infográficos ou pôsteres altos em seções superior e inferior separadas
+- Preparar documentos de formato largo para impressão em papel padrão
+
+## Dicas
+
+- Se suas páginas têm conteúdo distribuído de forma desigual, a divisão ainda ocorre exatamente no ponto médio. Para divisões assimétricas, use [Cortar PDF](./crop-pdf).
+- Combine esta ferramenta com [Girar PDF](./rotate-pdf) se suas páginas precisarem ser giradas antes ou depois da divisão.
+
+## Ferramentas relacionadas
+
+- [Dividir PDF](./split-pdf)
+- [Cortar PDF](./crop-pdf)
+- [PDF N-Up](./n-up-pdf)
+- [Posterizar PDF](./posterize-pdf)
diff --git a/docs/pt/tools/duplex-collate.md b/docs/pt/tools/duplex-collate.md
new file mode 100644
index 00000000..a7626660
--- /dev/null
+++ b/docs/pt/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Intercalar digitalização frente e verso
+description: Reordene PDFs de digitalização frente e verso que têm as páginas da frente e do verso em blocos separados, colocando-os na ordem correta.
+---
+
+# Intercalar digitalização frente e verso
+
+O Intercalar digitalização frente e verso foi pensado para fluxos de digitalização com alimentador automático (ADF) em que um PDF contém dois blocos de páginas:
+
+- todas as frentes primeiro
+- todos os versos depois
+
+Em vez de dividir e remontar manualmente, esta ferramenta intercala os dois blocos na ordem natural de leitura: frente1, verso1, frente2, verso2 e assim por diante.
+
+## Como funciona
+
+1. Envie um único PDF criado a partir da digitalização de uma pilha frente e verso.
+2. Defina o ponto de divisão onde termina o bloco das frentes.
+3. Escolha como tratar o bloco dos versos:
+ - **Inverter bloco dos versos** (comum quando a pilha é virada antes de digitalizar os versos)
+ - **Manter bloco dos versos como está**
+4. Clique em **Intercalar PDF** para baixar o resultado reordenado.
+
+## Opções
+
+- **Detectar divisão automaticamente (metade)**: define o ponto de divisão como `ceil(totalPages / 2)`.
+- **Aviso de página ímpar**: avisa quando o total de páginas é ímpar (geralmente indica um erro de digitalização).
+- **Confirmação de blocos desiguais**: pede confirmação quando os tamanhos dos blocos de frente e verso são diferentes.
+- **Exportação agrupada**: divide a saída intercalada em PDFs separados com base na quantidade de páginas do documento original e baixa tudo como ZIP.
+
+## Comportamento da saída
+
+- **Padrão**: um PDF de saída (um PDF de entrada gera um PDF de saída).
+- **Modo agrupado**: a saída é dividida conforme o valor de páginas por documento; se forem produzidos vários grupos, eles são baixados em um único ZIP; caso contrário, um único PDF é baixado.
+
+Se os blocos tiverem tamanhos desiguais, as páginas pareadas são intercaladas primeiro e as páginas restantes sem par são adicionadas ao final.
+
+## Casos de uso comuns
+
+- Restaurar a ordem depois de digitalizar uma pilha de formulários frente e verso em duas passagens.
+- Remontar pacotes de frente e verso de scanners de escritório que geram todas as frentes e depois todos os versos.
+- Pós-processar digitalizações de arquivo antes de dividi-las em arquivos por documento.
+
+## Dicas
+
+- A maioria dos lotes frente e verso deve ter um número par de páginas.
+- Se os versos aparecerem invertidos na saída, alterne entre **Inverter bloco dos versos** e **Manter bloco dos versos como está**.
+- Para originais de 2 páginas (frente e verso), use a exportação agrupada com `2` páginas por documento.
+
+## Ferramentas relacionadas
+
+- [Alternar e Misturar Páginas](./alternate-merge)
+- [Dividir PDF](./split-pdf)
+- [Mesclar PDF](./merge-pdf)
+- [Duplicar e Organizar](./organize-pdf)
diff --git a/docs/pt/tools/edit-attachments.md b/docs/pt/tools/edit-attachments.md
new file mode 100644
index 00000000..80953dc5
--- /dev/null
+++ b/docs/pt/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Editar anexos
+description: Visualize e remova seletivamente os arquivos anexados incorporados em um documento PDF.
+---
+
+# Editar anexos
+
+Inspecione e gerencie os arquivos anexados dentro de um PDF. A ferramenta lista cada arquivo incorporado com seu nome e nível de anexo, e permite marcar anexos individuais para remoção ou removê-los todos de uma vez.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. A ferramenta procura os anexos automaticamente e os exibe em uma lista.
+3. Cada anexo mostra o nome do arquivo e se é um anexo de nível de documento ou de nível de página.
+4. Clique no ícone de lixeira ao lado de um anexo para marcá-lo para remoção (clique novamente para desmarcar).
+5. Use o botão **Remover todos os anexos** para selecionar tudo de uma vez ou **Desmarcar tudo** para limpar suas seleções.
+6. Clique no botão de processar para salvar um novo PDF sem os anexos selecionados.
+
+## Recursos
+
+- Lista todos os anexos de nível de documento e de nível de página
+- Remoção de anexos individual ou em massa
+- Alterne a seleção antes de confirmar as alterações
+- Texto riscado e opacidade reduzida nos itens marcados para remoção
+- Baixa o PDF modificado sem os anexos selecionados
+
+## Casos de uso
+
+- Remover arquivos desatualizados ou incorretos incorporados em um documento antes de redistribuí-lo
+- Retirar anexos sensíveis (dados financeiros, informações pessoais) de um PDF antes de compartilhá-lo
+- Reduzir o tamanho do PDF removendo arquivos incorporados grandes que não são mais necessários
+- Auditar o conteúdo incorporado e limpar um documento antes de arquivá-lo
+
+## Dicas
+
+- Os anexos marcados para remoção aparecem riscados. Você pode desfazer a marcação antes de processar, se mudar de ideia.
+- Se nenhum anexo for encontrado, a ferramenta exibe a mensagem "Nenhum anexo encontrado", ou seja, o PDF simplesmente não contém arquivos incorporados.
+
+## Ferramentas relacionadas
+
+- [Adicionar Anexos](./add-attachments)
+- [Extrair Anexos](./extract-attachments)
+- [Ver Metadados](./view-metadata)
diff --git a/docs/pt/tools/edit-metadata.md b/docs/pt/tools/edit-metadata.md
new file mode 100644
index 00000000..725a9e17
--- /dev/null
+++ b/docs/pt/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Editar metadados
+description: Visualize e modifique campos de metadados do PDF, incluindo título, autor, palavras-chave, datas e propriedades personalizadas.
+---
+
+# Editar metadados
+
+Edite os metadados incorporados em um arquivo PDF. A ferramenta preenche um formulário com os metadados existentes do documento, permite modificar qualquer campo e salva as alterações em um novo PDF.
+
+## Como funciona
+
+1. Envie um arquivo PDF. A ferramenta lê os metadados atuais e preenche o formulário.
+2. Edite qualquer um dos campos padrão: Título, Autor, Assunto, Palavras-chave, Criador, Produtor.
+3. Ajuste a Data de criação e a Data de modificação usando os seletores de data e hora.
+4. Adicione campos de metadados personalizados clicando no botão de adicionar e informando um par chave-valor.
+5. Clique no botão de processar para salvar o PDF modificado.
+
+## Recursos
+
+- Preenche todos os metadados existentes do PDF enviado
+- Campos padrão: Título, Autor, Assunto, Palavras-chave, Criador, Produtor
+- Seletores de data e hora para Data de criação e Data de modificação
+- Campos personalizados de chave-valor para propriedades arbitrárias
+- Salva as alterações diretamente no dicionário de informações do documento PDF
+
+## Campos editáveis
+
+| Campo | Descrição |
+| ------------------------- | ------------------------------------------------------- |
+| **Título** | O título do documento exibido nos leitores de PDF |
+| **Autor** | A pessoa ou organização que criou o documento |
+| **Assunto** | Uma breve descrição do tema do documento |
+| **Palavras-chave** | Termos separados por vírgula para busca e categorização |
+| **Criador** | O aplicativo que criou o conteúdo originalmente |
+| **Produtor** | O aplicativo que gerou o PDF |
+| **Data de criação** | Quando o documento foi criado originalmente |
+| **Data de modificação** | Quando o documento foi modificado pela última vez |
+| **Campos personalizados** | Quaisquer pares chave-valor adicionais que você definir |
+
+## Casos de uso
+
+- Definir um título e um autor adequados antes de publicar um documento
+- Adicionar palavras-chave para melhorar a capacidade de busca em sistemas de gestão de documentos
+- Atualizar a data de modificação para refletir a revisão atual
+- Adicionar campos de metadados personalizados, como Departamento, ID do projeto ou Classificação
+- Limpar metadados deixados pelo software de criação original
+
+## Dicas
+
+- Os campos personalizados são gravados diretamente no dicionário de informações do PDF. Alguns leitores de PDF podem não exibir campos personalizados, mas eles são preservados no arquivo.
+- Deixe um campo em branco para apagá-lo dos metadados. O botão de processar salva o que estiver no formulário.
+- Para ver os metadados sem editar, use [Ver Metadados](./view-metadata). Para remover todos os metadados, use Remover Metadados.
+
+## Ferramentas relacionadas
+
+- [Ver Metadados](./view-metadata)
+- [Camadas PDF (OCG)](./pdf-layers)
+- [Comprimir PDF](./compress-pdf)
diff --git a/docs/pt/tools/edit-pdf.md b/docs/pt/tools/edit-pdf.md
new file mode 100644
index 00000000..44ee074b
--- /dev/null
+++ b/docs/pt/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Editor de PDF
+description: Anote, destaque, oculte informações, adicione formas e imagens, pesquise e visualize PDFs diretamente no navegador.
+---
+
+# Editor de PDF
+
+O Editor de PDF do BentoPDF permite anotar, destacar, redigir (ocultar informações), comentar, adicionar formas e imagens e pesquisar em seus PDFs. Ele carrega um editor completo diretamente no navegador, sem uploads para servidores.
+
+## Como funciona
+
+1. Envie seu PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. O editor de PDF incorporado abre automaticamente com seu documento carregado.
+3. Use a barra de ferramentas para anotar, destacar, redigir, adicionar texto, desenhar formas ou inserir imagens.
+4. Clique em **Baixar PDF editado** para salvar suas alterações.
+
+## Recursos
+
+- Barra de anotações completa com destaque, sublinhado, tachado e desenho à mão livre
+- Inserção de texto e comentários
+- Ferramentas de redação que removem permanentemente o conteúdo marcado depois que você aplica a redação. Se houver marcações não aplicadas quando você clicar em **Baixar PDF editado**, o editor oferece aplicá-las antes.
+- Ferramentas de formas para retângulos, círculos, linhas e setas
+- Inserção de imagens nas páginas do PDF
+- Pesquisa de texto integrada em todo o documento
+- Suporte a vários documentos com abas (até 10 documentos abertos ao mesmo tempo)
+- Carregamento de arquivos por arrastar e soltar
+
+## Casos de uso
+
+- Revisar contratos e marcar alterações com destaques e comentários
+- Redigir informações confidenciais, como números de CPF ou dados financeiros, antes de compartilhar
+- Adicionar anotações a plantas arquitetônicas ou desenhos de engenharia
+- Inserir logotipos ou carimbos da empresa nas páginas de um documento
+- Pesquisar termos específicos em documentos jurídicos extensos
+
+## Dicas
+
+- Você pode abrir vários PDFs ao mesmo tempo e alternar entre eles usando a barra de abas no topo do editor.
+- O editor preserva a estrutura original do PDF, então fontes, layouts e campos de formulário permanecem intactos.
+- Marcar um texto ou uma área para redação não remove nada até que a redação seja aplicada. Quando você redige um texto selecionado, as cópias dele nas propriedades, favoritos, comentários e anexos do arquivo também são removidas do download, a menos que o arquivo esteja criptografado.
+- Para marca d'água ou numeração de páginas em lote, use as ferramentas dedicadas, que oferecem mais controle sobre a formatação.
+
+## Ferramentas relacionadas
+
+- [Adicionar Marca d'Água](./add-watermark)
+- [Assinar PDF](./sign-pdf)
+- [Adicionar Carimbos](./add-stamps)
+- [Remover Anotações](./remove-annotations)
diff --git a/docs/pt/tools/email-to-pdf.md b/docs/pt/tools/email-to-pdf.md
new file mode 100644
index 00000000..ea4a0292
--- /dev/null
+++ b/docs/pt/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: E-mail para PDF
+description: Converta arquivos de e-mail EML e MSG em PDF no seu navegador. Preserva cabeçalhos, corpo e lista de anexos.
+---
+
+# E-mail para PDF
+
+Converta e-mails salvos em PDFs limpos e imprimíveis. A ferramenta analisa arquivos EML e MSG, extrai a mensagem completa (cabeçalhos, conteúdo do corpo e metadados dos anexos) e renderiza tudo em um PDF estruturado. Útil para descoberta jurídica, arquivamento de registros ou simplesmente para imprimir um e-mail importante.
+
+## Formatos compatíveis
+
+| Formato | Extensão | Observações |
+| :------ | :------- | :---------------------------------------------------------------------------- |
+| EML | `.eml` | Formato MIME padrão de e-mail (exportado pela maioria dos clientes de e-mail) |
+| MSG | `.msg` | Formato proprietário do Microsoft Outlook |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos EML ou MSG. Você pode misturar os dois formatos em um único lote.
+2. Revise a lista de arquivos. Remova entradas indesejadas com o ícone de lixeira ou clique em **Adicionar mais arquivos** para incluir mais e-mails.
+3. Configure as opções de conversão (veja abaixo).
+4. Clique em **Converter para PDF**. A ferramenta analisa cada e-mail, renderiza o conteúdo como HTML estilizado e o converte em PDF pelo mecanismo PyMuPDF.
+5. Um único e-mail é baixado diretamente como PDF. Vários e-mails são empacotados em `emails-converted.zip`.
+
+## Opções
+
+| Opção | Padrão | Descrição |
+| :-------------------------- | :------ | :------------------------------------------------------------------------------------------------------ |
+| **Tamanho da página** | A4 | Escolha entre as dimensões de página A4, Carta (Letter) ou Ofício (Legal). |
+| **Incluir Cc e Cco** | Ativado | Quando ativado, as listas de destinatários em Cc e Cco aparecem na seção de cabeçalho do e-mail no PDF. |
+| **Incluir lista de anexos** | Ativado | Quando ativado, uma lista dos arquivos anexados ao e-mail (com nomes e tamanhos) aparece no PDF. |
+
+## Casos de uso
+
+- Arquivar correspondências comerciais importantes em PDF para conformidade ou auditoria
+- Imprimir cadeias de e-mails para processos judiciais ou pedidos de descoberta
+- Criar um registro permanente de confirmações de pedido, recibos ou contratos recebidos por e-mail
+- Fazer backup de arquivos MSG do Outlook em um formato que não exige o Outlook para ser lido
+- Documentar interações de suporte ao cliente a partir de arquivos EML exportados
+
+## Dicas
+
+- Tanto arquivos EML (usados pelo Thunderbird, Apple Mail e a maioria dos clientes de e-mail) quanto arquivos MSG do Outlook são compatíveis. Exporte os e-mails do seu cliente de e-mail e solte-os diretamente na ferramenta.
+- E-mails em formato HTML mantêm o estilo no PDF. E-mails em texto simples são renderizados com uma formatação limpa e legível.
+- A lista de anexos mostra nomes e tamanhos de arquivos, mas não incorpora os arquivos anexados no PDF.
+
+## Ferramentas relacionadas
+
+- [XML para PDF](./xml-to-pdf)
+- [XPS para PDF](./xps-to-pdf)
diff --git a/docs/pt/tools/epub-to-pdf.md b/docs/pt/tools/epub-to-pdf.md
new file mode 100644
index 00000000..f810da7b
--- /dev/null
+++ b/docs/pt/tools/epub-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: EPUB para PDF
+description: Converta ebooks EPUB em PDF no seu navegador. Grátis, sem upload, com conversão focada na privacidade.
+---
+
+# EPUB para PDF
+
+Converta ebooks EPUB em arquivos PDF sem sair do navegador. O EPUB é o padrão aberto para livros digitais, mas às vezes você precisa de um PDF de layout fixo para imprimir, anotar ou compartilhar com pessoas que não têm um leitor de ebooks.
+
+## Formatos compatíveis
+
+| Formato | Extensão | Observações |
+| :------ | :------- | :----------------------- |
+| EPUB | `.epub` | Arquivos EPUB 2 e EPUB 3 |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos EPUB. A seleção múltipla é compatível.
+2. Revise os arquivos enviados. Remova entradas indesejadas com o ícone de lixeira ou clique em **Adicionar mais arquivos** para ampliar o lote.
+3. Clique em **Converter para PDF**. O mecanismo PyMuPDF renderiza o conteúdo do EPUB (texto, imagens e formatação) em uma saída PDF paginada.
+4. Um único EPUB é baixado diretamente como PDF. Vários arquivos são empacotados em um arquivo ZIP chamado `epub-converted.zip`.
+
+## Opções
+
+A conversão roda com padrões sensatos e sem configuração obrigatória. O texto é reorganizado nas dimensões de página padrão, e as fontes e imagens incorporadas são levadas para o PDF.
+
+## Casos de uso
+
+- Imprimir um ebook sem DRM para ler longe das telas
+- Enviar um manuscrito em EPUB como PDF de layout fixo para revisão
+- Arquivar livros digitais em um formato que todo sistema operacional abre nativamente
+- Compartilhar um capítulo com um colega que não tem um leitor de EPUB
+- Converter documentação técnica distribuída em EPUB em PDFs que podem ser anotados
+
+## Dicas
+
+- Recursos do EPUB 3, como áudio e vídeo incorporados, não são levados para o PDF, mas todo o texto, imagens e tabelas são convertidos sem problemas.
+- Para obter os melhores resultados com EPUBs muito estilizados, confira as primeiras páginas da saída para confirmar a fidelidade do layout.
+
+## Ferramentas relacionadas
+
+- [MOBI para PDF](./mobi-to-pdf)
+- [FB2 para PDF](./fb2-to-pdf)
+- [CBZ para PDF](./cbz-to-pdf)
diff --git a/docs/pt/tools/excel-to-pdf.md b/docs/pt/tools/excel-to-pdf.md
new file mode 100644
index 00000000..fb17a960
--- /dev/null
+++ b/docs/pt/tools/excel-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: Excel para PDF
+description: Converta planilhas do Excel (XLS, XLSX), ODS e arquivos CSV em PDF com a formatação preservada.
+---
+
+# Excel para PDF
+
+Converta arquivos de planilha em PDF. A ferramenta lida com arquivos modernos do Excel, o formato legado XLS, planilhas OpenDocument e até CSV, tudo renderizado por um mecanismo LibreOffice no navegador que preserva a formatação das células, as fórmulas (como valores calculados), os gráficos e os layouts de várias planilhas.
+
+## Formatos compatíveis
+
+| Formato | Extensões |
+| :-------------------- | :-------- |
+| Excel (moderno) | `.xlsx` |
+| Excel (legado) | `.xls` |
+| Planilha OpenDocument | `.ods` |
+| CSV | `.csv` |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos de planilha.
+2. Revise a lista de arquivos. Adicione mais arquivos ou remova os indesejados.
+3. Clique em **Converter para PDF**. O mecanismo LibreOffice é inicializado no primeiro uso e depois processa cada arquivo.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são entregues como `excel-converted.zip`.
+
+## Opções
+
+Esta ferramenta não tem configurações adicionais. O mecanismo LibreOffice determina o layout da página, a escala e a área de impressão com base nas configurações internas da planilha.
+
+## Saída
+
+| Quantidade de entrada | Saída |
+| :-------------------- | :---------------------------------------------------------------------- |
+| 1 arquivo | Download de um único PDF (nome original do arquivo com extensão `.pdf`) |
+| 2 ou mais arquivos | Arquivo ZIP (`excel-converted.zip`) contendo um PDF por arquivo |
+
+## Casos de uso
+
+- Converter relatórios financeiros ou orçamentos do Excel em PDF para distribuição
+- Criar PDFs prontos para impressão a partir de planilhas de estoque ou de catálogo de produtos
+- Compartilhar resultados de análises de dados com partes interessadas que não têm o Excel instalado
+- Arquivar relatórios trimestrais em um formato não editável
+- Converter arquivos ODS do LibreOffice Calc em PDF
+
+## Dicas
+
+- Os gráficos incorporados na planilha são renderizados no PDF. Confira se eles estão corretos no arquivo de origem antes de converter.
+- Se a sua planilha tem várias planilhas (abas), todas são incluídas na saída em PDF.
+- Para dados CSV simples sem formatação, a ferramenta [CSV para PDF](./csv-to-pdf) oferece uma conversão mais leve. Use Excel para PDF quando precisar preservar formatação, gráficos ou várias planilhas.
+
+## Ferramentas relacionadas
+
+- [CSV para PDF](./csv-to-pdf)
+- [Word para PDF](./word-to-pdf)
+- [PowerPoint para PDF](./powerpoint-to-pdf)
diff --git a/docs/pt/tools/extract-attachments.md b/docs/pt/tools/extract-attachments.md
new file mode 100644
index 00000000..2c1cc9fa
--- /dev/null
+++ b/docs/pt/tools/extract-attachments.md
@@ -0,0 +1,42 @@
+---
+title: Extrair anexos
+description: Extraia todos os arquivos anexados incorporados em um ou mais PDFs e baixe-os como um arquivo ZIP.
+---
+
+# Extrair anexos
+
+Retire todos os anexos incorporados de um ou mais arquivos PDF. Todos os arquivos extraídos são reunidos em um único arquivo ZIP para download.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF que contenham anexos incorporados.
+2. Clique em **Extrair Anexos**.
+3. A ferramenta procura anexos de nível de documento e de nível de página em cada PDF.
+4. Todos os arquivos encontrados são empacotados em um arquivo ZIP e baixados automaticamente.
+5. Uma mensagem de status confirma quantos anexos foram encontrados e o tamanho total.
+
+## Recursos
+
+- Extração em lote de vários PDFs de uma só vez
+- Extrai anexos de nível de documento e de nível de página
+- Gera um único arquivo ZIP contendo todos os arquivos extraídos
+- Exibe a contagem total de anexos e o tamanho combinado dos arquivos
+- Mensagens de status claras se nenhum anexo for encontrado
+
+## Casos de uso
+
+- Recuperar arquivos de dados incorporados em um PDF de relatório
+- Retirar recursos de imagem de um portfólio ou de um documento de especificação
+- Extrair materiais complementares de PDFs de treinamento ou de conformidade
+- Auditar quais arquivos estão incorporados em um lote de PDFs
+
+## Dicas
+
+- Se a ferramenta informar que não há anexos, o PDF pode conter imagens incorporadas ou dados de formulário, que não são anexos de arquivo. Use [Extrair Imagens](./extract-images) para imagens incorporadas.
+- Ao processar vários PDFs, todos os anexos de todos os arquivos vão para um único ZIP. Os nomes dos arquivos são preservados como nas incorporações originais.
+
+## Ferramentas relacionadas
+
+- [Adicionar Anexos](./add-attachments)
+- [Editar Anexos](./edit-attachments)
+- [Extrair Imagens](./extract-images)
diff --git a/docs/pt/tools/extract-images.md b/docs/pt/tools/extract-images.md
new file mode 100644
index 00000000..41900e39
--- /dev/null
+++ b/docs/pt/tools/extract-images.md
@@ -0,0 +1,45 @@
+---
+title: Extrair imagens
+description: Extraia todas as imagens incorporadas de arquivos PDF. Visualize-as em uma grade e baixe individualmente ou como um arquivo ZIP.
+---
+
+# Extrair imagens
+
+Retira todas as imagens incorporadas de um ou mais arquivos PDF. As imagens extraídas são exibidas em uma grade de pré-visualização, onde você pode baixá-las individualmente ou pegar tudo de uma vez em um ZIP. Desenvolvido com PyMuPDF.
+
+## Como funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando os arquivos para ela. Adicione mais arquivos ou remova alguns individualmente, conforme necessário.
+2. Clique em **Extrair** para iniciar o processamento.
+3. A ferramenta examina todas as páginas de todos os PDFs enviados, encontrando e extraindo as imagens incorporadas.
+4. As imagens extraídas aparecem em uma grade com miniaturas. Cada imagem tem um botão de download.
+5. Clique em **Baixar tudo** para salvar tudo como um arquivo ZIP.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Todas as imagens incorporadas são extraídas no formato original (normalmente PNG, JPEG ou o formato usado quando a imagem foi incorporada ao PDF).
+
+## Formato de saída
+
+- As imagens aparecem na grade de pré-visualização com nomes como `image_1.png`, `image_2.jpg` etc.
+- **Baixar tudo** gera `extracted-images.zip` contendo todas as imagens.
+- As imagens individuais podem ser baixadas uma a uma pela grade.
+
+## Casos de uso
+
+- Recuperar fotos ou gráficos de um PDF para reutilizar em outro projeto.
+- Extrair imagens de produtos de um PDF de catálogo para um anúncio de e-commerce.
+- Retirar diagramas de documentações técnicas para usar em apresentações.
+- Auditar quais imagens estão incorporadas em um documento antes de compartilhá-lo.
+
+## Dicas
+
+- A ferramenta extrai as imagens exatamente como estão armazenadas no PDF. Ela não renderiza as páginas como imagens; para isso, use [PDF para PNG](./pdf-to-png) ou [PDF para JPG](./pdf-to-jpg).
+- Se a ferramenta informar "Nenhuma imagem encontrada", o PDF pode usar gráficos vetoriais em vez de imagens raster incorporadas, ou pode ser um documento digitalizado em que a página inteira é uma única imagem grande.
+- O processamento em lote funciona com vários PDFs. Todas as imagens de todos os arquivos são combinadas em uma única grade e em um único ZIP.
+
+## Ferramentas relacionadas
+
+- [PDF para PNG](./pdf-to-png)
+- [PDF para JPG](./pdf-to-jpg)
+- [Construtor de Fluxo de Trabalho PDF](./pdf-workflow)
diff --git a/docs/pt/tools/extract-pages.md b/docs/pt/tools/extract-pages.md
new file mode 100644
index 00000000..ee5a4a3c
--- /dev/null
+++ b/docs/pt/tools/extract-pages.md
@@ -0,0 +1,41 @@
+---
+title: Extrair páginas
+description: Salve um intervalo específico de páginas de um PDF como um novo documento.
+---
+
+# Extrair páginas
+
+Retire um conjunto de páginas de um PDF e salve-as como um novo arquivo. Indique exatamente quais páginas você quer usando a sintaxe de intervalos, e a ferramenta cria um PDF limpo contendo apenas essas páginas.
+
+## Como funciona
+
+1. Envie um arquivo PDF. A ferramenta exibe o nome do arquivo, o tamanho e o total de páginas.
+2. Digite as páginas que deseja extrair usando a sintaxe de intervalos (por exemplo, `1-5`, `3, 7, 10-12`).
+3. Se quiser, escolha baixar cada intervalo como um PDF separado em um arquivo ZIP.
+4. Clique no botão de processar. As páginas extraídas são baixadas como um novo PDF (ou ZIP).
+
+## Recursos
+
+- Sintaxe flexível de intervalos de páginas: páginas individuais, intervalos ou combinações separadas por vírgula
+- Exibe o total de páginas após o upload para facilitar a consulta
+- Opção de gerar um único PDF combinado ou arquivos separados em um ZIP
+- Preserva o conteúdo e a formatação originais das páginas
+
+## Casos de uso
+
+- Retirar o resumo executivo (as primeiras páginas) de um relatório extenso
+- Extrair um único capítulo de um PDF de livro didático
+- Salvar páginas específicas de um pacote de formulários como documentos independentes
+- Criar um documento de amostra a partir de páginas selecionadas de um arquivo maior
+
+## Dicas
+
+- Os números de página começam em 1. Use `1` para a primeira página, não `0`.
+- Para remover páginas em vez de extraí-las, use [Excluir Páginas](./delete-pages), que é a operação inversa.
+- Se você precisa de seleção visual de páginas com miniaturas, use [Dividir PDF](./split-pdf) no modo de Seleção visual.
+
+## Ferramentas relacionadas
+
+- [Dividir PDF](./split-pdf)
+- [Excluir Páginas](./delete-pages)
+- [Mesclar PDF](./merge-pdf)
diff --git a/docs/pt/tools/extract-tables.md b/docs/pt/tools/extract-tables.md
new file mode 100644
index 00000000..f01fbc5a
--- /dev/null
+++ b/docs/pt/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Extrair Tabelas
+description: Detecte e extraia tabelas de documentos PDF. Exporte como CSV, JSON ou Markdown com granularidade por tabela.
+---
+
+# Extrair Tabelas
+
+Detecta todas as tabelas de um PDF e permite exportá-las no formato que você escolher: CSV, JSON ou Markdown. Cada tabela é extraída individualmente com metadados de página e posição. Desenvolvido com o mecanismo de detecção de tabelas do PyMuPDF.
+
+## Como funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Selecione o **formato de exportação** de sua preferência: CSV, JSON ou Markdown.
+3. Clique em **Extrair** para iniciar o processamento.
+4. Se uma tabela for encontrada, ela é baixada como um único arquivo. Várias tabelas geram um arquivo ZIP com um arquivo por tabela.
+
+## Opções
+
+- **Formato de exportação**: escolha entre:
+ - **CSV**: valores separados por vírgula, com aspas adequadas em campos que contêm vírgulas, aspas ou quebras de linha. Adequado para planilhas e bancos de dados.
+ - **JSON**: estrutura de arrays de arrays, formatada com indentação de 2 espaços. Adequado para consumo programático.
+ - **Markdown**: formato de tabela delimitado por barras verticais, renderizado pelo PyMuPDF. Adequado para documentação e arquivos README.
+
+## Formato de saída
+
+- **Uma tabela**: `filename_table.csv` (ou `.json` / `.md`)
+- **Várias tabelas**: `filename_tables.zip` contendo arquivos nomeados `table_1_page3.csv`, `table_2_page5.csv` etc.
+
+## Casos de uso
+
+- Extrair tabelas específicas de relatórios PDF extensos sem puxar os dados do documento inteiro.
+- Obter tabelas em formato Markdown para colar diretamente em issues do GitHub, wikis ou documentação.
+- Retirar dados JSON estruturados de tabelas de PDF para integrações de API ou scripts.
+- Comparar tabelas entre diferentes versões de PDF exportando ambas para CSV e comparando as diferenças.
+
+## Dicas
+
+- Esta ferramenta dá controle por tabela. Se você só quer todas as tabelas reunidas em um único CSV, use [PDF para CSV](./pdf-to-csv). Para uma pasta de trabalho completa do Excel, use [PDF para Excel](./pdf-to-excel).
+- Tabelas que abrangem várias páginas podem ser detectadas como tabelas separadas por página. Talvez seja necessário concatená-las manualmente.
+- Se nenhuma tabela for detectada, o PDF pode ser uma imagem digitalizada. Passe-o antes pelo OCR para adicionar uma camada de texto.
+
+## Ferramentas relacionadas
+
+- [PDF para CSV](./pdf-to-csv)
+- [PDF para Excel](./pdf-to-excel)
+- [PDF para Texto](./pdf-to-text)
diff --git a/docs/pt/tools/fb2-to-pdf.md b/docs/pt/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..6058e316
--- /dev/null
+++ b/docs/pt/tools/fb2-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: FB2 para PDF
+description: Converta e-books FictionBook (FB2) em PDF no seu navegador. Grátis, privado, sem envio para servidor.
+---
+
+# FB2 para PDF
+
+Converta arquivos FictionBook 2 (FB2) em documentos PDF. O FB2 é um formato de e-book baseado em XML, popular na Rússia e no Leste Europeu. Embora seja bem suportado em algumas plataformas, é praticamente desconhecido em outras. Converter para PDF torna seus livros legíveis em qualquer lugar.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :------------ | :------- | :----------------------- |
+| FictionBook 2 | `.fb2` | Formato de e-book em XML |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos FB2. É possível selecionar vários arquivos de uma vez.
+2. Revise a lista de arquivos. Use o ícone da lixeira para remover itens individuais, ou **Adicionar mais arquivos** para incluir outros.
+3. Clique em **Converter para PDF**. O mecanismo PyMuPDF analisa a estrutura XML do FB2 e a renderiza como conteúdo paginado em PDF.
+4. Um único arquivo é baixado diretamente como PDF. Várias conversões são reunidas em `fb2-converted.zip`.
+
+## Opções
+
+Nenhuma configuração é necessária. O conversor trata a estrutura XML do FB2 automaticamente, preservando quebras de capítulo, formatação e imagens incorporadas.
+
+## Casos de uso
+
+- Ler e-books FB2 em dispositivos ou aplicativos que só aceitam PDF
+- Imprimir literatura em russo distribuída em formato FB2
+- Arquivar uma biblioteca FB2 em um formato universalmente suportado
+- Compartilhar um livro com alguém cujo leitor não suporta FictionBook
+
+## Dicas
+
+- Arquivos FB2 são XML puro, por isso costumam ser pequenos e converter rapidamente, mesmo no navegador.
+- Se seus arquivos FB2 estiverem compactados como `.fb2.zip`, extraia-os antes de enviar.
+
+## Ferramentas relacionadas
+
+- [EPUB para PDF](./epub-to-pdf)
+- [MOBI para PDF](./mobi-to-pdf)
+- [XML para PDF](./xml-to-pdf)
diff --git a/docs/pt/tools/fix-page-size.md b/docs/pt/tools/fix-page-size.md
new file mode 100644
index 00000000..31123650
--- /dev/null
+++ b/docs/pt/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Ajustar tamanho da página
+description: Padronize todas as páginas de um PDF para um tamanho uniforme. Escolha entre tamanhos de papel padrão ou defina dimensões personalizadas.
+---
+
+# Ajustar tamanho da página
+
+PDFs montados a partir de várias fontes costumam acabar com tamanhos de página diferentes: alguns em Carta, outros em A4, outros completamente fora do padrão. Esta ferramenta força todas as páginas a um único tamanho de destino, redimensionando o conteúdo para caber ou preencher conforme necessário.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Selecione um **Tamanho da Página de Destino** na lista (A4, Carta, Ofício, A3, A5, Tabloide ou Personalizado).
+3. Escolha uma **Orientação**: Automática mantém a orientação original de cada página, ou você pode forçar Retrato ou Paisagem.
+4. Escolha um modo de **Escala do Conteúdo**: Ajustar (preserva todo o conteúdo, pode adicionar margens) ou Preencher (preenche a página, pode cortar as bordas).
+5. Opcionalmente, defina uma **Cor de Fundo** para as margens adicionadas.
+6. Clique em **Ajustar Tamanho da Página**.
+
+## Opções
+
+- **Tamanhos padrão**: A4, Carta, Ofício, A3, A5, Tabloide
+- **Dimensões personalizadas**: Informe largura e altura em polegadas ou milímetros
+- **Orientação**: Automática, Retrato, Paisagem
+- **Modo de escala**: Ajustar ou Preencher (Cortar)
+- **Cor de fundo**: Qualquer cor para o preenchimento das margens
+
+## Casos de uso
+
+- Normalizar um PDF mesclado em que as páginas vieram de scanners diferentes
+- Converter um documento Carta dos EUA para A4 para distribuição internacional
+- Preparar PDFs prontos para impressão que exigem um tamanho de corte consistente
+- Corrigir páginas ligeiramente fora do padrão (por exemplo, 8,49 x 11,02 polegadas em vez de 8,5 x 11)
+
+## Dicas
+
+- Use o modo Ajustar para garantir que nenhum conteúdo seja perdido. O modo Preencher fica mais limpo, mas pode cortar as bordas.
+- Verifique o resultado com a ferramenta Dimensões da Página para confirmar que todas as páginas correspondem ao tamanho de destino.
+- Branco é a cor de fundo padrão; troque para uma cor escura se o seu documento tiver margens escuras.
+
+## Ferramentas relacionadas
+
+- [Dimensões da Página](./page-dimensions): inspecione os tamanhos das páginas antes e depois do ajuste
+- [Comprimir PDF](./compress-pdf): reduza o tamanho do arquivo após a padronização
+- [Cortar PDF](./crop-pdf): corte as páginas manualmente em vez de redimensionar automaticamente
diff --git a/docs/pt/tools/flatten-pdf.md b/docs/pt/tools/flatten-pdf.md
new file mode 100644
index 00000000..c3009418
--- /dev/null
+++ b/docs/pt/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Achatar PDF
+description: Achate formulários interativos e anotações em conteúdo estático. Torna os campos do formulário não editáveis e incorpora as anotações à página.
+---
+
+# Achatar PDF
+
+Achatar (flatten) mescla elementos interativos (campos de formulário, listas suspensas, caixas de seleção, anotações, destaques, notas adesivas) diretamente no conteúdo da página. A aparência visual permanece a mesma, mas nada mais é editável ou extraível. É o equivalente em PDF a imprimir um formulário preenchido e digitalizá-lo de volta, só que com a qualidade perfeita.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF.
+2. Clique em **Achatar PDF**.
+3. Um único arquivo é baixado diretamente. Vários arquivos geram um arquivo ZIP.
+
+A ferramenta usa o pdf-lib para achatar os campos de formulário (via `form.flatten()`) e um achatador de anotações dedicado para incorporar as anotações ao fluxo da página. Ambas as operações acontecem em uma única passagem.
+
+## O que é achatado
+
+- **Campos de formulário**: Campos de texto, caixas de seleção, botões de opção, listas suspensas, campos de assinatura
+- **Anotações**: Comentários, destaques, tachado, sublinhado, notas adesivas, carimbos, anotações de tinta
+- **Elementos interativos**: Botões, gatilhos de ação
+
+## O que permanece inalterado
+
+- Conteúdo de texto (continua selecionável e pesquisável)
+- Imagens e gráficos
+- Layout e dimensões da página
+- Marcadores e sumário
+- Hiperlinks (exceto os baseados em anotações)
+
+## Casos de uso
+
+- Bloquear um formulário preenchido para que os destinatários não alterem as respostas enviadas
+- Preparar um PDF para arquivamento, onde elementos interativos são desnecessários
+- Corrigir problemas de exibição causados por anotações renderizadas de forma diferente em cada visualizador
+- Garantir que um documento assinado não possa ser modificado após a aplicação da assinatura
+- Reduzir o tamanho do arquivo eliminando definições de campos de formulário e objetos de anotação
+
+## Dicas
+
+- Achate depois de concluir todas as edições. Não há como desfazer o achatamento de um PDF.
+- Se você precisa achatar e também remover metadados, JavaScript e anexos, use a ferramenta Sanitizar PDF, que inclui o achatamento como uma de suas opções.
+- Alguns PDFs informam "nenhum formulário encontrado". Isso é normal se o documento tem apenas anotações e nenhum campo de formulário.
+
+## Ferramentas relacionadas
+
+- [Sanitizar PDF](./sanitize-pdf): achate formulários e remova metadados, scripts e mais
+- [Rasterizar PDF](./rasterize-pdf): converta para PDF baseado em imagem para o máximo de achatamento
+- [Fonte para Contorno](./font-to-outline): converta fontes em caminhos vetoriais
+- [Criptografar PDF](./protect-pdf): proteja o PDF achatado com uma senha
diff --git a/docs/pt/tools/font-to-outline.md b/docs/pt/tools/font-to-outline.md
new file mode 100644
index 00000000..dd01dcd4
--- /dev/null
+++ b/docs/pt/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Fonte para contorno
+description: Converta todas as fontes do PDF em contornos vetoriais para uma renderização consistente em todos os dispositivos. Elimina problemas de dependência de fontes.
+---
+
+# Fonte para contorno
+
+Converter fontes em contornos transforma cada caractere de texto de um glifo baseado em fonte em um caminho vetorial. O PDF deixa de depender de qualquer fonte instalada e é renderizado de forma idêntica em todos os dispositivos, sistemas operacionais e impressoras. Esta é uma etapa padrão em fluxos de pré-impressão.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF.
+2. Clique em **Converter em Contornos**.
+3. O Ghostscript converte todo o texto em caminhos vetoriais.
+4. Baixe o resultado. Vários arquivos geram um arquivo ZIP.
+
+Não há configurações a ajustar. A ferramenta usa o Ghostscript (WebAssembly) para converter todas as referências de fontes em caminhos contornados em uma única passagem.
+
+## O que muda
+
+- Os caracteres de texto se tornam curvas vetoriais (caminhos bézier)
+- A incorporação de fontes deixa de ser necessária: o PDF fica autossuficiente no nível do glifo
+- O tamanho do arquivo pode aumentar, pois caminhos vetoriais costumam ser maiores que referências de fontes
+- A aparência visual é preservada exatamente
+
+## O que você perde
+
+- Seleção e cópia de texto
+- Pesquisa de texto (Ctrl+F deixa de funcionar)
+- A capacidade de editar o conteúdo do texto
+- Acessibilidade para leitores de tela
+
+## Casos de uso
+
+- Enviar PDFs para uma gráfica que exige fontes em contorno
+- Compartilhar documentos que usam fontes personalizadas ou licenciadas com pessoas que não têm essas fontes
+- Evitar a substituição de fontes que muda a aparência do documento em outros sistemas
+- Preparar PDFs para gravação a laser ou corte CNC que exigem entrada vetorial
+- Garantir que um PDF com muitos logotipos seja exibido corretamente em todas as plataformas
+
+## Dicas
+
+- Guarde o PDF original. O contorno é irreversível: não é possível converter os caminhos de volta em texto editável.
+- Se você precisa que o texto continue pesquisável, considere usar a ferramenta Rasterizar PDF seguida de OCR.
+- PDFs contornados tendem a ser maiores. Execute Comprimir PDF depois, se o tamanho do arquivo importar.
+
+## Ferramentas relacionadas
+
+- [Achatar PDF](./flatten-pdf): achate formulários e anotações sem mexer nas fontes
+- [Rasterizar PDF](./rasterize-pdf): converta para PDF baseado em imagem em vez de contornos vetoriais
+- [Comprimir PDF](./compress-pdf): reduza o tamanho do arquivo após o contorno
+- [PDF para PDF/A](./pdf-to-pdfa): converta para arquivamento depois de garantir a independência de fontes
diff --git a/docs/pt/tools/form-creator.md b/docs/pt/tools/form-creator.md
new file mode 100644
index 00000000..04d9c59e
--- /dev/null
+++ b/docs/pt/tools/form-creator.md
@@ -0,0 +1,76 @@
+---
+title: Criar formulário PDF
+description: Crie formulários PDF preenchíveis com campos de texto, caixas de seleção, listas suspensas, botões de opção e mais, arrastando e soltando.
+---
+
+# Criar formulário PDF
+
+Projete formulários PDF preenchíveis profissionais do zero ou adicionando campos a um PDF existente. O editor visual permite arrastar e soltar elementos de formulário (campos de texto, caixas de seleção, listas suspensas, botões de opção, campos de assinatura e mais) diretamente nas prévias das páginas. Configure as propriedades dos campos, defina regras de visibilidade condicional e exporte um formulário PDF totalmente interativo.
+
+## Como funciona
+
+1. Envie um PDF existente **ou** clique em **Criar PDF em Branco** para começar do zero.
+2. Se estiver criando um PDF em branco, selecione um tamanho de página (Carta, A4, A5, Ofício, Tabloide, A3 ou dimensões personalizadas).
+3. O editor de formulários abre com uma barra de ferramentas de tipos de campo e uma área de prévia da página.
+4. Selecione um tipo de campo na barra de ferramentas e clique na página para posicioná-lo.
+5. Arraste os campos para reposicioná-los. Use as alças de redimensionamento para ajustar as dimensões.
+6. Clique em um campo para abrir o painel de propriedades, onde você pode definir o nome do campo, valor padrão, tamanho da fonte, alinhamento e mais.
+7. Navegue entre as páginas usando os controles de página.
+8. Clique em **Salvar** para baixar o PDF preenchível finalizado.
+
+## Recursos
+
+- Posicionamento de campos por arrastar e soltar, com alças visuais para redimensionar
+- Tipos de campo: entrada de texto, texto de várias linhas, caixa de seleção, lista suspensa, botão de opção, assinatura, data, número e código de barras
+- Painel de propriedades para configurar o nome, rótulo, valor padrão, tamanho da fonte, cor, alinhamento e validação de cada campo
+- Ações de campo e regras de visibilidade condicional (mostrar/ocultar campos com base nos valores de outros campos)
+- Navegação de páginas para formulários de várias páginas
+- Extração de campos existentes: detecta e importa automaticamente os campos de formulário de PDFs enviados
+- Suporte a PDFs enviados e a páginas em branco como tela do formulário
+- Vários tamanhos de página predefinidos, além de dimensões personalizadas
+- Geração de códigos de barras com bwip-js
+- Gerenciamento de grupos de botões de opção
+
+## Opções
+
+**Tamanhos de página predefinidos (para PDFs em branco):**
+
+- Carta (8,5" x 11")
+- A4 (210mm x 297mm)
+- A5 (148mm x 210mm)
+- Ofício (8,5" x 14")
+- Tabloide (11" x 17")
+- A3 (297mm x 420mm)
+- Personalizado (informe largura e altura)
+
+**Propriedades do campo (variam conforme o tipo de campo):**
+
+- Nome, rótulo e texto de espaço reservado
+- Valor padrão
+- Família, tamanho e cor da fonte
+- Alinhamento do texto (esquerda, centro, direita)
+- Alternância de campo obrigatório
+- Alternância de somente leitura
+- Comprimento máximo para campos de texto
+- Lista de opções para listas suspensas e botões de opção
+- Ações de visibilidade condicional
+
+## Casos de uso
+
+- Criar formulários de integração de funcionários com campos de texto para dados pessoais e caixas de seleção para ciência das políticas
+- Criar questionários de admissão de clientes com listas suspensas para escolha de serviço
+- Projetar formulários de pedido com campos calculados e identificadores em código de barras
+- Criar checklists de inspeção com botões de opção para avaliações de aprovado/reprovado
+- Criar formulários de pesquisa com perguntas de acompanhamento condicionais que aparecem conforme as respostas
+
+## Dicas
+
+- Se você enviar um PDF existente, a ferramenta tentará extrair os campos de formulário já presentes, permitindo editá-los ou adicionar novos.
+- Use o recurso de grupo de botões de opção para criar seleções mutuamente exclusivas. Campos do mesmo grupo compartilham um nome de grupo.
+- Teste seu formulário baixando-o e abrindo-o no [Preenchedor de Formulários](./form-filler) para verificar o comportamento dos campos.
+
+## Ferramentas relacionadas
+
+- [Preenchedor de Formulários](./form-filler)
+- [Assinar PDF](./sign-pdf)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/pt/tools/form-filler.md b/docs/pt/tools/form-filler.md
new file mode 100644
index 00000000..012d4cd0
--- /dev/null
+++ b/docs/pt/tools/form-filler.md
@@ -0,0 +1,47 @@
+---
+title: Preenchimento de formulário PDF
+description: Preencha formulários PDF, incluindo formulários XFA, diretamente no navegador com um visualizador incorporado.
+---
+
+# Preenchimento de formulário PDF
+
+Abra um PDF com campos de formulário e preencha-o diretamente em um visualizador incorporado. A ferramenta suporta tanto campos AcroForm padrão quanto formulários XFA (XML Forms Architecture) legados. Depois de concluir o formulário, baixe a versão preenchida com um único clique.
+
+## Como funciona
+
+1. Envie um PDF que contenha campos de formulário.
+2. O documento abre em um visualizador de PDF integrado que renderiza os campos como entradas interativas.
+3. Clique nos campos de texto, caixas de seleção, listas suspensas e botões de opção para preenchê-los.
+4. Clique em **Salvar e Baixar Formulário Preenchido** para obter o PDF concluído.
+
+## Recursos
+
+- Visualizador PDF.js incorporado com interação completa com os campos do formulário
+- Suporte a campos AcroForm padrão (campos de texto, caixas de seleção, listas suspensas, botões de opção)
+- Suporte a formulários XFA para formulários legados baseados em XML
+- Dimensionamento automático do visualizador com base nas dimensões da página
+- Exibição do arquivo com nome e tamanho
+
+## Opções
+
+Não há opções de configuração adicionais. Envie o formulário, preencha e baixe.
+
+## Casos de uso
+
+- Preencher declarações de impostos, pedidos de seguro ou documentos governamentais
+- Preencher formulários de candidatura a vagas recebidos como anexos PDF
+- Preencher formulários de cadastro de fornecedores ou questionários de fornecedores
+- Aprovar checklists de conformidade com campos de caixa de seleção
+- Preencher fichas médicas antes de uma consulta
+
+## Dicas
+
+- Formulários XFA são um formato legado suportado apenas por alguns visualizadores de PDF. Se você abrir um PDF XFA no Chrome ou na maioria das outras ferramentas e vir páginas em branco, é porque esses visualizadores não têm suporte a XFA. O Preenchedor de Formulários do BentoPDF e o Firefox tratam XFA corretamente.
+- Para PDFs sem campos de formulário, use a ferramenta [Criar Formulário PDF](./form-creator) para adicionar campos primeiro e depois preenchê-los aqui.
+- O visualizador ajusta automaticamente seu tamanho às dimensões das páginas do PDF.
+
+## Ferramentas relacionadas
+
+- [Criar Formulário PDF](./form-creator)
+- [Assinar PDF](./sign-pdf)
+- [Editor de PDF](./edit-pdf)
diff --git a/docs/pt/tools/header-footer.md b/docs/pt/tools/header-footer.md
new file mode 100644
index 00000000..600f68d0
--- /dev/null
+++ b/docs/pt/tools/header-footer.md
@@ -0,0 +1,53 @@
+---
+title: Cabeçalho e rodapé
+description: Adicione texto personalizável de cabeçalho e rodapé às páginas do PDF com variáveis dinâmicas de número de página.
+---
+
+# Cabeçalho e rodapé
+
+Adicione texto em seis posições das páginas do PDF: cabeçalho à esquerda, ao centro e à direita, e rodapé à esquerda, ao centro e à direita. A ferramenta suporta variáveis dinâmicas para o número da página e o total de páginas, para que você crie modelos como "Página 3 de 10" que se atualizam automaticamente em cada página.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. O painel de opções aparece com os controles de formatação e seis campos de texto.
+3. Digite o texto desejado em qualquer uma das posições de cabeçalho/rodapé.
+4. Use os marcadores `{page}` e `{total}` para numeração dinâmica de páginas.
+5. Ajuste o tamanho e a cor da fonte e, se quiser, limite a um intervalo de páginas específico.
+6. Clique em **Adicionar Cabeçalho e Rodapé** para processar e baixar.
+
+## Opções
+
+- **Intervalo de páginas**: Limite, se quiser, quais páginas recebem cabeçalho e rodapé. Deixe vazio para aplicar a todas as páginas. Formato: "1-3, 5" (intervalos separados por vírgula).
+- **Tamanho da fonte**: Entre 6 e 24 pontos. O padrão é 10.
+- **Cor da fonte**: Escolha qualquer cor com o seletor de cores.
+- **Cabeçalho esquerda / centro / direita**: Campos de texto para o topo de cada página.
+- **Rodapé esquerda / centro / direita**: Campos de texto para a parte inferior de cada página.
+
+## Recursos
+
+- Seis posições de texto independentes por página
+- Variável dinâmica `{page}` que insere o número da página atual
+- Variável dinâmica `{total}` que insere o total de páginas
+- Filtro de intervalo de páginas para atingir páginas específicas
+- Tamanho e cor da fonte personalizáveis
+- Fonte Helvetica para um resultado limpo e profissional
+
+## Casos de uso
+
+- Adicionar "Página {page} de {total}" ao centro do rodapé de um relatório
+- Colocar o nome da empresa no cabeçalho à esquerda e a data do documento no cabeçalho à direita
+- Adicionar avisos de confidencialidade ao rodapé de documentos jurídicos
+- Carimbar números de revisão do documento em intervalos de páginas específicos
+
+## Dicas
+
+- Combine `{page}` e `{total}` em um único campo para formatos como "Página {page} de {total}" ou "{page}/{total}".
+- Você pode deixar a maioria dos campos vazios e preencher apenas as posições de que precisa. Campos vazios são simplesmente ignorados.
+- Para cabeçalhos mais complexos com imagens ou logotipos, considere usar a ferramenta [Adicionar Marca d'Água](./add-watermark) posicionada no topo da página.
+
+## Ferramentas relacionadas
+
+- [Números de Página](./page-numbers)
+- [Adicionar Marca d'Água](./add-watermark)
+- [Numeração Bates](./bates-numbering)
diff --git a/docs/pt/tools/heic-to-pdf.md b/docs/pt/tools/heic-to-pdf.md
new file mode 100644
index 00000000..e42c690e
--- /dev/null
+++ b/docs/pt/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC para PDF
+description: Converta imagens HEIC e HEIF de iPhones e iPads para PDF diretamente no navegador.
+---
+
+# HEIC para PDF
+
+Converta imagens HEIC/HEIF em PDF. O HEIC é o formato de foto padrão em iPhones e iPads desde o iOS 11. Esta ferramenta permite transformar essas fotos em PDFs sem instalar nenhum software de desktop e sem enviar arquivos para um servidor.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :------ | :-------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos HEIC/HEIF.
+2. Revise a lista de arquivos e remova os indesejados.
+3. Clique em **Converter para PDF**. O resultado é baixado como `from_heic.pdf`.
+
+Cada arquivo HEIC é decodificado com a biblioteca heic2any, que o converte para PNG com 92% de qualidade. O PNG é então incorporado ao PDF com o pdf-lib, com cada imagem em sua própria página, em resolução total.
+
+## Opções
+
+Esta ferramenta não expõe configurações adicionais. As imagens HEIC são convertidas em alta qualidade (0,92) para PNG antes de serem incorporadas.
+
+## Casos de uso
+
+- Criar um PDF a partir de fotos do iPhone para anexar a um pedido de seguro ou relatório
+- Converter fotos HEIC de um anúncio imobiliário em um único documento imprimível
+- Transformar capturas de tela do iPad (formato HEIF) em um PDF compartilhável
+- Converter em lote fotos de férias para um diário de viagem
+
+## Dicas
+
+- A decodificação de HEIC acontece inteiramente no navegador, usando WebAssembly. A primeira conversão pode demorar um pouco enquanto o decodificador é carregado.
+- Se você precisa misturar HEIC com outros formatos de imagem (JPG, PNG etc.), use a ferramenta [Imagens para PDF](./image-to-pdf), que trata HEIC junto com todos os outros formatos.
+- Arquivos HEIC de iPhones costumam conter dados EXIF, incluindo coordenadas de GPS. O PDF gerado não carrega esses metadados.
+
+## Ferramentas relacionadas
+
+- [Imagens para PDF](./image-to-pdf)
+- [JPG para PDF](./jpg-to-pdf)
+- [PNG para PDF](./png-to-pdf)
diff --git a/docs/pt/tools/image-to-pdf.md b/docs/pt/tools/image-to-pdf.md
new file mode 100644
index 00000000..b00559b7
--- /dev/null
+++ b/docs/pt/tools/image-to-pdf.md
@@ -0,0 +1,65 @@
+---
+title: Imagens para PDF
+description: Converta JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP, PSD e mais de 10 outros formatos de imagem em um único arquivo PDF.
+---
+
+# Imagens para PDF
+
+O conversor universal de imagem para PDF. Envie imagens em praticamente qualquer formato e combine-as em um único documento PDF. Cada imagem ocupa sua própria página, com o tamanho das dimensões originais.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :-------------- | :------------------------------------- |
+| 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` |
+
+Este é o suporte a formatos mais amplo entre todos os conversores de imagem do BentoPDF. Se você precisa de apenas um formato específico, use uma das ferramentas dedicadas.
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos de imagem. Você pode selecionar vários arquivos de uma vez.
+2. Revise a lista de arquivos. Remova os indesejados com o ícone da lixeira ou clique em **Adicionar mais arquivos** para incluir outras imagens.
+3. Escolha um nível de **Qualidade do PDF** na lista.
+4. Clique em **Converter para PDF**. A ferramenta processa as imagens com o mecanismo PyMuPDF e baixa o resultado como `images_to_pdf.pdf`.
+
+## Opções
+
+A **Qualidade do PDF** controla a compressão aplicada às imagens ao incorporá-las no PDF:
+
+- **Alta qualidade**: compressão mínima, arquivo maior. Ideal para impressão ou arquivamento.
+- **Qualidade média** (padrão): compressão equilibrada. Boa para a maioria dos casos.
+- **Baixa qualidade**: compressão agressiva, menor tamanho de arquivo. Adequada para e-mail ou compartilhamento rápido.
+
+Arquivos HEIC e WebP são convertidos automaticamente em PNG antes de serem incorporados. Isso acontece de forma transparente e não exige nenhuma etapa extra.
+
+## Casos de uso
+
+- Combinar recibos ou documentos digitalizados com a câmera do celular em um único PDF
+- Criar um portfólio de fotos ou um lookbook a partir de imagens em formatos mistos
+- Converter fotos do iPhone (HEIC) em um PDF compartilhável sem instalar software de desktop
+- Reunir mockups de design a partir de exportações PSD e capturas de tela em uma entrega para o cliente
+- Arquivar uma pasta de formatos de imagem antigos (PNM, JXR, JP2) como um único PDF
+
+## Dicas
+
+- A ordem das imagens no PDF segue a ordem em que aparecem na lista de arquivos. Envie-as na sequência desejada.
+- Para o menor tamanho de arquivo possível, escolha Baixa qualidade. A diferença visual costuma ser insignificante em digitalizações com muito texto.
+- Se você tem apenas um formato de imagem, os conversores dedicados (JPG para PDF, PNG para PDF etc.) oferecem o mesmo resultado com uma interface mais simples.
+
+## Ferramentas relacionadas
+
+- [JPG para PDF](./jpg-to-pdf)
+- [PNG para PDF](./png-to-pdf)
+- [HEIC para PDF](./heic-to-pdf)
+- [WebP para PDF](./webp-to-pdf)
diff --git a/docs/pt/tools/index.md b/docs/pt/tools/index.md
new file mode 100644
index 00000000..87d4c229
--- /dev/null
+++ b/docs/pt/tools/index.md
@@ -0,0 +1,183 @@
+# Referência de Ferramentas
+
+O BentoPDF oferece **mais de 130 ferramentas** para trabalhar com PDFs. Todas as ferramentas rodam inteiramente no seu navegador: seus arquivos nunca saem do seu dispositivo.
+
+---
+
+## Editar e Anotar
+
+Modifique, marque e aprimore seus documentos PDF com um conjunto completo de ferramentas de edição.
+
+
+
+- [**Editor de PDF**](./edit-pdf): Anote, destaque, oculte, comente, adicione formas/imagens, pesquise e visualize PDFs.
+- [**Editar Marcadores**](./bookmark): Adicione, edite, importe, exclua e extraia marcadores de PDF.
+- [**Sumário**](./table-of-contents): Gere uma página de sumário a partir dos marcadores do PDF.
+- [**Números de Página**](./page-numbers): Insira números de página no seu documento.
+- [**Adicionar Rótulos de Página**](./add-page-labels): Aplique rótulos de página do PDF com algarismos romanos, prefixos e inícios personalizados.
+- [**Numeração Bates**](./bates-numbering): Adicione números Bates sequenciais em um ou mais arquivos PDF.
+- [**Adicionar Marca d'Água**](./add-watermark): Carimbe texto ou uma imagem sobre as páginas do PDF.
+- [**Cabeçalho e Rodapé**](./header-footer): Adicione texto no topo e na parte inferior das páginas.
+- [**Inverter Cores**](./invert-colors): Crie uma versão em modo escuro do seu PDF.
+- [**Efeito de Scanner**](./scanner-effect): Faça seu PDF parecer um documento digitalizado.
+- [**Ajustar Cores**](./adjust-colors): Ajuste com precisão brilho, contraste, saturação e mais.
+- [**Cor de Fundo**](./background-color): Altere a cor de fundo do seu PDF.
+- [**Alterar Cor do Texto**](./text-color): Altere a cor do texto no seu PDF.
+- [**Assinar PDF**](./sign-pdf): Desenhe, digite ou envie sua assinatura.
+- [**Adicionar Carimbos**](./add-stamps): Adicione carimbos de imagem ao seu PDF usando a barra de ferramentas de anotação.
+- [**Remover Anotações**](./remove-annotations): Remova comentários, destaques e links.
+- [**Cortar PDF**](./crop-pdf): Apare as margens de todas as páginas do seu PDF.
+- [**Preenchedor de Formulários PDF**](./form-filler): Preencha formulários diretamente no navegador. Também suporta formulários XFA.
+- [**Criar Formulário PDF**](./form-creator): Crie formulários PDF preenchíveis com campos de texto por arrastar e soltar.
+- [**Remover Páginas em Branco**](./remove-blank-pages): Detecte e exclua páginas em branco automaticamente.
+
+
+
+---
+
+## Converter para PDF
+
+Transforme imagens, documentos, e-books e outros formatos de arquivo em PDF.
+
+
+
+- [**Imagens para PDF**](./image-to-pdf): Converta JPG, PNG, BMP, GIF, TIFF, SVG, HEIC, WebP e mais para PDF.
+- [**JPG para PDF**](./jpg-to-pdf): Crie um PDF a partir de uma ou mais imagens JPG.
+- [**PNG para PDF**](./png-to-pdf): Crie um PDF a partir de uma ou mais imagens PNG.
+- [**WebP para PDF**](./webp-to-pdf): Crie um PDF a partir de uma ou mais imagens WebP.
+- [**SVG para PDF**](./svg-to-pdf): Crie um PDF a partir de uma ou mais imagens SVG.
+- [**BMP para PDF**](./bmp-to-pdf): Crie um PDF a partir de uma ou mais imagens BMP.
+- [**HEIC para PDF**](./heic-to-pdf): Crie um PDF a partir de uma ou mais imagens HEIC.
+- [**TIFF para PDF**](./tiff-to-pdf): Crie um PDF a partir de uma ou mais imagens TIFF.
+- [**Texto para PDF**](./txt-to-pdf): Converta um arquivo de texto simples em PDF.
+- [**Markdown para PDF**](./markdown-to-pdf): Converta Markdown em PDF com prévia ao vivo e destaque de sintaxe.
+- [**JSON para PDF**](./json-to-pdf): Converta arquivos JSON para o formato PDF.
+- [**ODT para PDF**](./odt-to-pdf): Converta arquivos ODT (OpenDocument Text) em PDF.
+- [**CSV para PDF**](./csv-to-pdf): Converta planilhas CSV em PDF.
+- [**RTF para PDF**](./rtf-to-pdf): Converta documentos RTF (Rich Text Format) em PDF.
+- [**Word para PDF**](./word-to-pdf): Converta documentos do Word (DOCX, DOC, ODT) em PDF.
+- [**Excel para PDF**](./excel-to-pdf): Converta planilhas do Excel (XLSX, XLS, ODS) em PDF.
+- [**PowerPoint para PDF**](./powerpoint-to-pdf): Converta apresentações do PowerPoint (PPTX, PPT, ODP) em PDF.
+- [**XPS para PDF**](./xps-to-pdf): Converta documentos XPS/OXPS em PDF.
+- [**MOBI para PDF**](./mobi-to-pdf): Converta e-books MOBI em PDF.
+- [**EPUB para PDF**](./epub-to-pdf): Converta e-books EPUB em PDF.
+- [**FB2 para PDF**](./fb2-to-pdf): Converta e-books FictionBook (FB2) em PDF.
+- [**CBZ para PDF**](./cbz-to-pdf): Converta arquivos de quadrinhos (CBZ/CBR) em PDF.
+- [**WPD para PDF**](./wpd-to-pdf): Converta documentos WordPerfect (WPD) em PDF.
+- [**WPS para PDF**](./wps-to-pdf): Converta documentos do WPS Office em PDF.
+- [**XML para PDF**](./xml-to-pdf): Converta documentos XML em PDF.
+- [**ODG para PDF**](./odg-to-pdf): Converta OpenDocument Graphics (ODG) em PDF.
+- [**ODS para PDF**](./ods-to-pdf): Converta OpenDocument Spreadsheet (ODS) em PDF.
+- [**ODP para PDF**](./odp-to-pdf): Converta OpenDocument Presentation (ODP) em PDF.
+- [**PUB para PDF**](./pub-to-pdf): Converta Microsoft Publisher (PUB) em PDF.
+- [**VSD para PDF**](./vsd-to-pdf): Converta Microsoft Visio (VSD, VSDX) em PDF.
+- [**PSD para PDF**](./psd-to-pdf): Converta arquivos do Adobe Photoshop (PSD) em PDF.
+- [**E-mail para PDF**](./email-to-pdf): Converta arquivos de e-mail (EML, MSG) para o formato PDF.
+
+
+
+---
+
+## Converter de PDF
+
+Extraia conteúdo de PDFs para imagens, documentos e formatos de dados.
+
+
+
+- [**PDF para JPG**](./pdf-to-jpg): Converta cada página do PDF em uma imagem JPG.
+- [**PDF para PNG**](./pdf-to-png): Converta cada página do PDF em uma imagem PNG.
+- [**PDF para WebP**](./pdf-to-webp): Converta cada página do PDF em uma imagem WebP.
+- [**PDF para BMP**](./pdf-to-bmp): Converta cada página do PDF em uma imagem BMP.
+- [**PDF para TIFF**](./pdf-to-tiff): Converta cada página do PDF em uma imagem TIFF.
+- [**PDF para CBZ**](./pdf-to-cbz): Converta um PDF em CBZ (arquivo de quadrinhos) para leitores de quadrinhos e Calibre.
+- [**PDF para SVG**](./pdf-to-svg): Converta cada página do PDF em um gráfico vetorial escalável.
+- [**PDF para CSV**](./pdf-to-csv): Extraia tabelas do PDF e converta para o formato CSV.
+- [**PDF para Excel**](./pdf-to-excel): Extraia tabelas do PDF e converta para Excel (XLSX).
+- [**PDF para Escala de Cinza**](./pdf-to-greyscale): Converta todas as cores em preto e branco.
+- [**PDF para JSON**](./pdf-to-json): Converta arquivos PDF para o formato JSON.
+- [**PDF para Word**](./pdf-to-word): Converta arquivos PDF em documentos do Word editáveis.
+- [**Extrair Imagens**](./extract-images): Extraia todas as imagens incorporadas dos seus arquivos PDF.
+- [**PDF para Markdown**](./pdf-to-markdown): Converta texto e tabelas do PDF para o formato Markdown.
+- [**Preparar PDF para IA**](./prepare-pdf-for-ai): Extraia o conteúdo do PDF como JSON do LlamaIndex para pipelines de RAG/LLM.
+- [**PDF para Texto**](./pdf-to-text): Extraia texto de arquivos PDF e salve como texto simples.
+- [**Extrair Tabelas**](./extract-tables): Extraia tabelas de PDFs como CSV, JSON ou Markdown.
+
+
+
+---
+
+## Organizar e Gerenciar
+
+Reorganize, combine, divida e gerencie as páginas e os arquivos dos seus PDFs.
+
+
+
+- [**Construtor de Fluxo de PDF**](./pdf-workflow): Crie pipelines personalizados de processamento de PDF com um editor visual de nós.
+- [**Multiferramenta PDF**](./pdf-multi-tool): Editor de PDF completo com gerenciamento de páginas.
+- [**OCR para PDF**](./ocr-pdf): Torne um PDF pesquisável e copiável.
+- [**Mesclar PDF**](./merge-pdf): Combine vários PDFs em um único arquivo.
+- [**Alternar e Misturar Páginas**](./alternate-merge): Mescle PDFs alternando páginas de cada PDF.
+- [**Intercalação Duplex**](./duplex-collate): Reordene blocos de digitalização frente e verso na sequência correta de páginas.
+- [**Organizar e Duplicar**](./organize-pdf): Duplique, reordene e exclua páginas.
+- [**Adicionar Anexos**](./add-attachments): Incorpore um ou mais arquivos ao seu PDF.
+- [**Extrair Anexos**](./extract-attachments): Extraia todos os arquivos incorporados de PDFs como um ZIP.
+- [**Editar Anexos**](./edit-attachments): Veja ou remova anexos do seu PDF.
+- [**Camadas de PDF (OCG)**](./pdf-layers): Veja, alterne, adicione e exclua camadas OCG no seu PDF.
+- [**Dividir PDF**](./split-pdf): Extraia um intervalo de páginas para um novo PDF.
+- [**Dividir Páginas**](./divide-pages): Divida páginas na horizontal ou na vertical.
+- [**Extrair Páginas**](./extract-pages): Salve uma seleção de páginas como novos arquivos.
+- [**Excluir Páginas**](./delete-pages): Remova páginas específicas do seu documento.
+- [**Adicionar Página em Branco**](./add-blank-page): Insira uma página vazia em qualquer lugar do seu PDF.
+- [**Inverter Ordem das Páginas**](./reverse-pages): Inverta a ordem de todas as páginas do seu documento.
+- [**Girar PDF**](./rotate-pdf): Gire páginas em incrementos de 90 graus.
+- [**Girar por Graus Personalizados**](./rotate-custom): Gire páginas por qualquer ângulo personalizado.
+- [**PDF N-Up**](./n-up-pdf): Organize várias páginas em uma única folha.
+- [**Livreto PDF**](./pdf-booklet): Reorganize as páginas para impressão de livreto frente e verso.
+- [**Combinar em Página Única**](./combine-single-page): Una todas as páginas em uma única rolagem contínua.
+- [**Ver Metadados**](./view-metadata): Inspecione as propriedades ocultas do seu PDF.
+- [**Editar Metadados**](./edit-metadata): Altere o autor, o título e outras propriedades.
+- [**PDFs para ZIP**](./pdf-to-zip): Empacote vários arquivos PDF em um arquivo ZIP.
+- [**Comparar PDFs**](./compare-pdfs): Compare dois PDFs lado a lado.
+- [**Posterizar PDF**](./posterize-pdf): Divida uma página grande em várias páginas menores.
+
+
+
+---
+
+## Otimizar e Reparar
+
+Comprima, corrija e otimize seus PDFs para melhor desempenho e compatibilidade.
+
+
+
+- [**Comprimir PDF**](./compress-pdf): Reduza o tamanho do arquivo do seu PDF.
+- [**PDF para PDF/A**](./pdf-to-pdfa): Converta PDF para PDF/A para arquivamento de longo prazo.
+- [**Ajustar Tamanho da Página**](./fix-page-size): Padronize todas as páginas para um tamanho uniforme.
+- [**Linearizar PDF**](./linearize-pdf): Otimize o PDF para visualização rápida na web.
+- [**Dimensões da Página**](./page-dimensions): Analise tamanho, orientação e unidades da página.
+- [**Remover Restrições**](./remove-restrictions): Remova a proteção por senha e as restrições de segurança.
+- [**Reparar PDF**](./repair-pdf): Recupere dados de arquivos PDF corrompidos ou danificados.
+- [**Rasterizar PDF**](./rasterize-pdf): Converta PDF em PDF baseado em imagem. Achata camadas e remove o texto selecionável.
+- [**Corrigir Inclinação do PDF**](./deskew-pdf): Endireite automaticamente páginas digitalizadas inclinadas usando OpenCV.
+- [**Fonte para Contorno**](./font-to-outline): Converta todas as fontes em contornos vetoriais para uma renderização consistente.
+
+
+
+---
+
+## Proteger PDF
+
+Proteja, criptografe e controle o acesso aos seus documentos PDF.
+
+
+
+- [**Criptografar PDF**](./protect-pdf): Bloqueie seu PDF adicionando uma senha.
+- [**Sanitizar PDF**](./sanitize-pdf): Remova metadados, anotações, scripts e mais.
+- [**Descriptografar PDF**](./unlock-pdf): Desbloqueie o PDF removendo a proteção por senha.
+- [**Achatar PDF**](./flatten-pdf): Torne campos de formulário e anotações não editáveis.
+- [**Remover Metadados**](./remove-metadata): Remova dados ocultos do seu PDF.
+- [**Alterar Permissões**](./change-permissions): Defina ou altere as permissões de usuário em um PDF.
+- [**Assinatura Digital**](./digital-sign-pdf): Adicione uma assinatura digital criptográfica usando certificados X.509.
+- [**Validar Assinatura**](./validate-signature-pdf): Verifique assinaturas digitais e veja os detalhes do certificado.
+
+
diff --git a/docs/pt/tools/invert-colors.md b/docs/pt/tools/invert-colors.md
new file mode 100644
index 00000000..bd7a865e
--- /dev/null
+++ b/docs/pt/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Inverter cores
+description: Inverta todas as cores do seu PDF para criar uma versão em modo escuro de qualquer documento.
+---
+
+# Inverter cores
+
+Troque cada cor do seu PDF pela sua inversa. Fundos brancos ficam pretos, texto preto fica branco e todas as outras cores passam para seus valores complementares. É a forma mais rápida de criar uma versão "modo escuro" de qualquer PDF.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. Clique em **Inverter Cores** para processar.
+3. O PDF invertido é baixado automaticamente.
+
+Não há configurações adicionais. A ferramenta renderiza cada página como imagem, inverte as cores de todos os pixels e remonta o resultado em um novo PDF.
+
+## Recursos
+
+- Inversão de cores com um clique em todas as páginas
+- Processa todas as páginas do documento
+- Mantém as dimensões e o layout originais da página
+- Funciona com qualquer PDF, independentemente do tipo de conteúdo (texto, imagens, misto)
+
+## Casos de uso
+
+- Criar versões em modo escuro de livros didáticos ou manuais para leitura confortável à noite
+- Preparar versões de alto contraste de documentos para fins de acessibilidade
+- Inverter documentos digitalizados que foram capturados com exposição incorreta
+- Gerar versões em negativo de PDFs com muitas imagens para análise visual
+
+## Dicas
+
+- Como a ferramenta rasteriza as páginas para aplicar o efeito, o resultado é baseado em imagem. O texto deixa de ser selecionável e pesquisável. Se você precisa de texto pesquisável após a inversão, passe o resultado por uma ferramenta de OCR.
+- Para ajustes de cor mais detalhados (brilho, contraste, saturação), use a ferramenta [Ajustar Cores](./adjust-colors).
+- PDFs grandes com muitas páginas podem levar mais tempo, pois cada página é renderizada e invertida individualmente.
+
+## Ferramentas relacionadas
+
+- [Ajustar Cores](./adjust-colors)
+- [Cor de Fundo](./background-color)
+- [Efeito de Scanner](./scanner-effect)
diff --git a/docs/pt/tools/jpg-to-pdf.md b/docs/pt/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..65f5bb07
--- /dev/null
+++ b/docs/pt/tools/jpg-to-pdf.md
@@ -0,0 +1,48 @@
+---
+title: JPG para PDF
+description: Converta uma ou mais imagens JPG, JPEG e JPEG 2000 em um único arquivo PDF diretamente no navegador.
+---
+
+# JPG para PDF
+
+Transforme imagens JPG em um PDF limpo. Envie um arquivo ou vários JPGs de uma vez: cada imagem se torna uma página em tamanho total no documento de saída.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :-------- | :-------------- |
+| JPEG | `.jpg`, `.jpeg` |
+| JPEG 2000 | `.jp2`, `.jpx` |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos JPG. A seleção múltipla é suportada.
+2. Revise os arquivos enviados. Use o ícone da lixeira para remover arquivos individuais ou clique em **Adicionar mais arquivos** para acrescentar à lista.
+3. Selecione um nível de **Qualidade do PDF**.
+4. Clique em **Converter para PDF**. A ferramenta comprime as imagens conforme a qualidade escolhida, converte-as com o mecanismo PyMuPDF e baixa `from_jpgs.pdf`.
+
+## Opções
+
+A **Qualidade do PDF** ajusta a compressão aplicada a cada imagem antes de ela ser incorporada ao PDF:
+
+- **Alta qualidade**: preserva o máximo de detalhes. Use para fotografia ou impressão.
+- **Qualidade média** (padrão): um bom equilíbrio entre nitidez e tamanho de arquivo.
+- **Baixa qualidade**: compressão agressiva para o menor resultado possível.
+
+## Casos de uso
+
+- Converter documentos digitalizados salvos como JPG em um único PDF para envio
+- Reunir fotos de produtos em um catálogo para clientes
+- Transformar imagens médicas ou de satélite em JPEG 2000 em um PDF portátil
+- Criar um álbum de fotos imprimível a partir de exportações da câmera
+
+## Dicas
+
+- Arquivos JPEG 2000 (`.jp2`, `.jpx`) são totalmente suportados, não apenas o JPEG padrão. Isso é útil para imagens médicas e dados geoespaciais.
+- Se seus JPGs vêm da câmera de um celular, a qualidade Média costuma gerar um arquivo 40-60% menor que a Alta, sem diferença visível na tela.
+
+## Ferramentas relacionadas
+
+- [Imagens para PDF](./image-to-pdf)
+- [PNG para PDF](./png-to-pdf)
+- [WebP para PDF](./webp-to-pdf)
diff --git a/docs/pt/tools/json-to-pdf.md b/docs/pt/tools/json-to-pdf.md
new file mode 100644
index 00000000..1d8f897f
--- /dev/null
+++ b/docs/pt/tools/json-to-pdf.md
@@ -0,0 +1,53 @@
+---
+title: JSON para PDF
+description: Reconstrua arquivos PDF a partir do formato JSON do BentoPDF. Converta exportações JSON de volta aos documentos PDF originais.
+---
+
+# JSON para PDF
+
+Reconstrua documentos PDF a partir de arquivos JSON criados anteriormente pela ferramenta **PDF para JSON** do BentoPDF. É uma ferramenta de conversão de ida e volta: ela pega a representação estruturada em JSON de um PDF e reconstrói o documento original.
+
+::: warning
+Esta ferramenta aceita apenas arquivos JSON produzidos pelo conversor PDF para JSON do BentoPDF. Arquivos JSON comuns de APIs, bancos de dados ou outras ferramentas não são suportados.
+:::
+
+## Formatos suportados
+
+| Entrada | Descrição |
+| :------ | :----------------------------------------------------------------- |
+| `.json` | Arquivos JSON exportados pela ferramenta PDF para JSON do BentoPDF |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte um ou mais arquivos JSON.
+2. A lista de arquivos mostra cada arquivo selecionado com seu tamanho.
+3. Clique em **Converter para PDF**. A ferramenta processa todos os arquivos com um Web Worker e o mecanismo CPDF.
+4. O resultado é baixado como `jsons-to-pdf.zip`, contendo um PDF para cada arquivo JSON de entrada.
+
+A conversão roda em um Web Worker em segundo plano, então a interface continua responsiva mesmo com arquivos grandes.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. A estrutura do JSON determina totalmente o PDF de saída.
+
+## Saída
+
+Ao converter vários arquivos JSON, os resultados são entregues em um arquivo ZIP. Cada PDF recebe o nome do arquivo JSON de origem (por exemplo, `report.json` vira `report.pdf`).
+
+## Casos de uso
+
+- Restaurar PDFs a partir de um backup ou pipeline de arquivamento baseado em JSON
+- Fazer o caminho de ida e volta de um PDF por JSON para inspeção e depois de volta para PDF
+- Reconstruir documentos após modificações programáticas na estrutura JSON
+- Verificar se uma exportação de PDF para JSON capturou todo o conteúdo do documento, convertendo-a de volta
+
+## Dicas
+
+- Se você precisa converter dados JSON arbitrários (como respostas de API ou arquivos de configuração) em um PDF formatado, a ferramenta [Texto para PDF](./txt-to-pdf) é mais adequada. Cole o JSON como texto e ele será renderizado com a formatação correta.
+- O mecanismo WebAssembly CPDF precisa estar disponível para esta ferramenta funcionar. Instâncias auto-hospedadas precisam ter os arquivos WASM do CPDF configurados.
+
+## Ferramentas relacionadas
+
+- [Texto para PDF](./txt-to-pdf)
+- [Markdown para PDF](./markdown-to-pdf)
+- [CSV para PDF](./csv-to-pdf)
diff --git a/docs/pt/tools/linearize-pdf.md b/docs/pt/tools/linearize-pdf.md
new file mode 100644
index 00000000..d8257c45
--- /dev/null
+++ b/docs/pt/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Linearizar PDF
+description: Otimize arquivos PDF para visualização rápida na web com carregamento progressivo. Também conhecido como otimização "Fast Web View".
+---
+
+# Linearizar PDF
+
+A linearização reestrutura um PDF para que a primeira página possa ser exibida antes de o arquivo inteiro ser baixado. A Adobe chama isso de "Fast Web View". Se você hospeda PDFs em um site ou os serve por um portal de documentos, a linearização faz com que eles abram de forma bem mais rápida.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF.
+2. Clique em **Linearizar PDF(s)**.
+3. Baixe os resultados como um arquivo ZIP contendo todos os arquivos linearizados.
+
+Não há configurações a ajustar. A ferramenta usa a opção `--linearize` do QPDF, que reorganiza a estrutura interna do PDF sem alterar seu conteúdo visual.
+
+## O que a linearização faz
+
+- Reordena os objetos do PDF para que os dados da primeira página fiquem no início do arquivo
+- Adiciona um dicionário de linearização e tabelas de dicas para que os visualizadores saibam onde encontrar cada página
+- Habilita requisições por intervalo de bytes: o navegador pode buscar apenas a primeira página sem baixar o arquivo inteiro
+- Limpa a tabela de referências cruzadas para acesso aleatório eficiente
+
+## Recursos
+
+- Processamento em lote de vários PDFs em uma única operação
+- A saída preserva todo o conteúdo, fontes, imagens e elementos interativos
+- Usa o QPDF (WebAssembly) para uma linearização confiável e compatível com os padrões
+- Os resultados são empacotados em um ZIP para facilitar o download
+
+## Casos de uso
+
+- Hospedar relatórios em PDF em um site em que os usuários esperam exibição instantânea da página
+- Incorporar PDFs em aplicações web com visualizadores no navegador
+- Publicar catálogos ou manuais em PDF acessados por conexões móveis lentas
+- Preparar documentos para redes de distribuição de conteúdo (CDNs) que suportam entrega por intervalo de bytes
+
+## Dicas
+
+- Linearize depois de concluir todas as outras edições. Qualquer modificação posterior (mesclar, adicionar páginas) quebra a linearização.
+- Combine com Comprimir PDF para obter os PDFs menores e mais rápidos de carregar possíveis.
+- A linearização adiciona uma pequena sobrecarga ao tamanho do arquivo (normalmente menos de 1%).
+
+## Ferramentas relacionadas
+
+- [Comprimir PDF](./compress-pdf): reduza o tamanho do arquivo antes de linearizar
+- [Reparar PDF](./repair-pdf): corrija problemas estruturais que impedem a linearização
+- [Remover Metadados](./remove-metadata): remova metadados antes de publicar online
diff --git a/docs/pt/tools/markdown-to-pdf.md b/docs/pt/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..796d00b8
--- /dev/null
+++ b/docs/pt/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown para PDF
+description: Escreva ou cole Markdown e exporte como um PDF formatado profissionalmente, com prévia ao vivo e destaque de sintaxe.
+---
+
+# Markdown para PDF
+
+Um editor Markdown completo com prévia ao vivo e exportação para PDF com um clique. Escreva do zero, envie um arquivo `.md` existente ou cole o conteúdo da área de transferência. O editor renderiza seu Markdown em tempo real e exporta um PDF estilizado usando o mecanismo de impressão nativo do navegador.
+
+## Formatos suportados
+
+| Entrada | Descrição |
+| :------------- | :----------------------- |
+| Arquivos `.md` | Envie pelo botão Enviar |
+| Entrada direta | Digite ou cole no editor |
+
+## Como funciona
+
+1. Abra a ferramenta Markdown para PDF. O editor carrega com visualização dividida: o código Markdown à esquerda e a prévia renderizada à direita.
+2. Escreva seu Markdown, cole-o ou clique em **Enviar** para carregar um arquivo `.md`.
+3. Alterne entre os temas claro e escuro usando o controle deslizante de tema na barra de ferramentas.
+4. Clique em **Exportar PDF** (ou pressione `Ctrl/Cmd + S`) para gerar um PDF pela caixa de diálogo de impressão do navegador.
+
+## Recursos
+
+O editor suporta um amplo conjunto de recursos de Markdown além do básico:
+
+- **Markdown padrão**: títulos, negrito, itálico, links, imagens, listas, citações, linhas horizontais
+- **Blocos de código** com destaque de sintaxe para mais de 15 linguagens (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash e mais)
+- **Diagramas Mermaid**: fluxogramas, diagramas de sequência, diagramas ER e outros tipos de gráficos Mermaid são renderizados diretamente na prévia
+- **Tabelas** com a sintaxe padrão de tabelas do Markdown
+- **Listas de tarefas** com caixas de seleção
+- **Notas de rodapé**, **subscrito**, **sobrescrito**
+- **Listas de definição**, **abreviações**
+- Suporte a **emoji** (`:smile:` é renderizado como o emoji)
+- **Destaques** (`==marked text==`) e **inserções** (`++inserted text++`)
+- **URLs com link automático**: URLs simples são convertidas em links clicáveis
+- Geração de **sumário**
+- **Links de âncora** nos títulos
+
+## Casos de uso
+
+- Escrever documentação de projeto e exportar um PDF bem acabado para as partes interessadas
+- Criar relatórios técnicos com exemplos de código e diagramas de arquitetura em Mermaid
+- Converter um README do GitHub em PDF para uso offline ou impressão
+- Redigir uma proposta ou especificação com listas de tarefas e tabelas
+- Gerar um material de apoio estilizado a partir de anotações de aula escritas em Markdown
+
+## Dicas
+
+- A saída em PDF usa a função de imprimir como PDF do navegador. No Chrome, você pode personalizar margens e escala na caixa de diálogo de impressão antes de salvar.
+- Os diagramas Mermaid são renderizados na prévia, mas podem levar um instante para inicializar no primeiro uso.
+- Use `Ctrl/Cmd + S` como atalho de teclado para exportar sem precisar procurar o botão.
+
+## Ferramentas relacionadas
+
+- [Texto para PDF](./txt-to-pdf)
+- [Word para PDF](./word-to-pdf)
+- [JSON para PDF](./json-to-pdf)
diff --git a/docs/pt/tools/merge-pdf.md b/docs/pt/tools/merge-pdf.md
new file mode 100644
index 00000000..2e9fea5e
--- /dev/null
+++ b/docs/pt/tools/merge-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Mesclar PDF
+description: Combine vários arquivos PDF em um único documento, com reordenação por arrastar e soltar e controle no nível de página.
+---
+
+# Mesclar PDF
+
+Combine vários arquivos PDF em um único documento. Você pode mesclar arquivos inteiros em uma ordem específica ou alternar para o Modo Página para ter controle detalhado sobre cada página de todos os PDFs enviados.
+
+## Como funciona
+
+1. Envie dois ou mais arquivos PDF clicando na área de soltar ou arrastando-os para ela.
+2. Escolha entre **Modo Arquivo** e **Modo Página** usando o seletor no topo.
+3. No Modo Arquivo, arraste os arquivos para reordená-los e, se quiser, especifique intervalos de páginas (por exemplo, `1-3, 5`) para cada um. Deixe o intervalo em branco para incluir todas as páginas.
+4. No Modo Página, arraste e solte miniaturas de páginas individuais para montar a sequência exata de páginas.
+5. Clique em **Mesclar PDFs** para combinar tudo em um único arquivo. O PDF mesclado é baixado automaticamente.
+
+## Recursos
+
+- Dois modos de mesclagem: Modo Arquivo para combinar arquivos inteiros rapidamente, Modo Página para controle página a página
+- Reordenação por arrastar e soltar nos dois modos, com animações suaves
+- A sintaxe de intervalo de páginas (por exemplo, `1-3, 5, 8-10`) permite escolher páginas sem mudar para o Modo Página
+- Miniaturas de páginas carregadas sob demanda mantêm a interface responsiva mesmo com documentos grandes
+- Sem limite de número de arquivos ou de total de páginas
+- Preserva a qualidade original do PDF, sem recodificação
+
+## Opções
+
+| Opção | Descrição |
+| -------------------- | -------------------------------------------------------------------------------------------------------------- |
+| **Modo Arquivo** | Mescle arquivos inteiros em uma ordem personalizada, com filtros opcionais de intervalo de páginas por arquivo |
+| **Modo Página** | Grade visual de todas as páginas de todos os arquivos: arraste as miniaturas para montar a sequência exata |
+| **Campo de páginas** | Campo de texto por arquivo que aceita intervalos como `1-3, 5` para incluir apenas páginas específicas |
+
+## Casos de uso
+
+- Combinar PDFs de capítulos separados em um único livro ou relatório
+- Mesclar uma carta de apresentação e um currículo em um único documento de candidatura
+- Reunir páginas específicas de vários documentos de origem em um arquivo consolidado
+- Montar recibos ou faturas digitalizados em um único PDF de arquivo
+- Criar um material de apoio de apresentação com slides de vários conjuntos
+
+## Dicas
+
+- Use o Modo Página quando precisar intercalar páginas de arquivos diferentes em vez de anexar um arquivo após o outro.
+- Você pode adicionar mais arquivos após o envio inicial com o botão **Adicionar mais arquivos**, sem perder a organização atual.
+- Os intervalos de páginas começam em 1, então `1` se refere à primeira página daquele arquivo.
+
+## Ferramentas relacionadas
+
+- [Dividir PDF](./split-pdf)
+- [Organizar e Duplicar](./organize-pdf)
+- [Alternar e Misturar Páginas](./alternate-merge)
+- [Excluir Páginas](./delete-pages)
diff --git a/docs/pt/tools/mobi-to-pdf.md b/docs/pt/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..aa2cbaf1
--- /dev/null
+++ b/docs/pt/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI para PDF
+description: Converta e-books MOBI em PDF diretamente no navegador. Grátis, privado, sem envio de arquivos.
+---
+
+# MOBI para PDF
+
+Converta e-books MOBI da Amazon Kindle em documentos PDF. Arquivos MOBI estão ligados a dispositivos e aplicativos Kindle, o que dificulta lê-los em outros lugares. Converter para PDF dá a você uma versão portátil que pode ser aberta em qualquer dispositivo ou impressa.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :------ | :------- | :------------------------------------ |
+| MOBI | `.mobi` | Formato de e-book Kindle (Mobipocket) |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte um ou mais arquivos MOBI.
+2. Revise a lista de arquivos. Remova os indesejados com o ícone da lixeira ou use **Adicionar mais arquivos** para incluir outros e-books.
+3. Clique em **Converter para PDF**. O mecanismo PyMuPDF analisa a estrutura do MOBI e renderiza cada página como conteúdo PDF.
+4. Um único arquivo é baixado como PDF. Ao converter vários arquivos, você recebe um arquivo ZIP chamado `mobi-converted.zip`.
+
+## Opções
+
+Nenhuma configuração adicional é necessária. A conversão preserva o conteúdo de texto, a formatação e as imagens incorporadas do arquivo MOBI original.
+
+## Casos de uso
+
+- Ler conteúdo comprado no Kindle em um leitor de e-books que não seja Kindle e só suporte PDF
+- Imprimir capítulos de um e-book para estudo ou anotações offline
+- Arquivar sua biblioteca pessoal de e-books em um formato universal
+- Compartilhar trechos com alguém que não tem o aplicativo Kindle instalado
+
+## Dicas
+
+- Arquivos MOBI protegidos por DRM não podem ser convertidos. A ferramenta funciona apenas com arquivos MOBI sem DRM.
+- E-books grandes com muitas imagens incorporadas podem levar alguns segundos a mais para processar, já que tudo acontece no navegador.
+
+## Ferramentas relacionadas
+
+- [EPUB para PDF](./epub-to-pdf)
+- [FB2 para PDF](./fb2-to-pdf)
+- [CBZ para PDF](./cbz-to-pdf)
diff --git a/docs/pt/tools/n-up-pdf.md b/docs/pt/tools/n-up-pdf.md
new file mode 100644
index 00000000..d3435e9e
--- /dev/null
+++ b/docs/pt/tools/n-up-pdf.md
@@ -0,0 +1,54 @@
+---
+title: PDF N-Up
+description: Organize várias páginas de PDF em uma única folha em uma grade, para impressão compacta.
+---
+
+# PDF N-Up
+
+Coloque várias páginas em uma única folha em uma disposição de grade. Isso reduz o número de páginas impressas ao encaixar 2, 4, 6, 8, 9 ou 16 páginas por folha. A ferramenta cuida do dimensionamento, do posicionamento e da configuração opcional do tamanho da página.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Selecione o número de páginas por folha (o valor "N"): 2, 4, 6, 8, 9 ou 16.
+3. Escolha o tamanho da página de saída (o padrão é A4) e a orientação.
+4. Se quiser, configure o espaçamento, a cor da borda e a cor de fundo.
+5. Clique no botão de processar. A ferramenta redimensiona cada página e as organiza em novas folhas.
+
+## Recursos
+
+- Layouts em grade: 2-up, 4-up, 6-up, 8-up, 9-up e 16-up
+- Tamanho e orientação da página de saída configuráveis
+- Espaçamento opcional entre as páginas
+- Configurações de cor de fundo e de borda
+- Mantém a proporção das páginas originais ao redimensioná-las para caber
+
+## Opções
+
+| Opção | Descrição |
+| --------------------- | ---------------------------------------------------------------------------------- |
+| **Páginas por folha** | Número de páginas originais a encaixar em cada página de saída (2, 4, 6, 8, 9, 16) |
+| **Tamanho da página** | Tamanho da folha de saída (A4, Carta, Ofício etc.) |
+| **Orientação** | Retrato ou Paisagem para a folha de saída |
+| **Espaçamento** | Espaço em pontos entre as páginas |
+| **Cor de fundo** | Cor de preenchimento do fundo da folha de saída |
+| **Cor da borda** | Cor das bordas ao redor de cada página |
+
+## Casos de uso
+
+- Imprimir materiais de apoio com 4 slides por página para economizar papel
+- Criar folhas de estudo com várias páginas de referência em uma única folha
+- Produzir arquivos de documentos compactos para arquivamento
+- Gerar folhas de visão geral em miniatura de um documento longo
+
+## Dicas
+
+- A orientação paisagem costuma funcionar melhor para layouts 2-up, enquanto retrato geralmente é a melhor para 4-up ou mais.
+- Aumentar o espaçamento melhora a legibilidade, mas reduz a área disponível para cada página.
+- Para a operação inversa (dividir uma página em várias), veja [Posterizar PDF](./posterize-pdf).
+
+## Ferramentas relacionadas
+
+- [Posterizar PDF](./posterize-pdf)
+- [Livreto PDF](./pdf-booklet)
+- [Combinar em Página Única](./combine-single-page)
diff --git a/docs/pt/tools/ocr-pdf.md b/docs/pt/tools/ocr-pdf.md
new file mode 100644
index 00000000..b5c96d67
--- /dev/null
+++ b/docs/pt/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: OCR em PDF
+description: Torne PDFs digitalizados pesquisáveis e copiáveis usando o Tesseract OCR, com suporte a vários idiomas e filtragem de caracteres.
+---
+
+# OCR em PDF
+
+Transforme documentos digitalizados em PDFs pesquisáveis e copiáveis. A ferramenta usa o Tesseract OCR para reconhecer o texto nas imagens e sobrepõe uma camada de texto invisível sobre as páginas originais, preservando a aparência visual e tornando o conteúdo totalmente pesquisável.
+
+## Como funciona
+
+1. Envie um PDF digitalizado ou baseado em imagem.
+2. Selecione um ou mais idiomas presentes no documento na lista de idiomas pesquisável.
+3. Se quiser, ajuste as configurações avançadas (resolução, binarização, lista de permissão).
+4. Clique em **Iniciar OCR** e acompanhe o progresso na barra de progresso em tempo real.
+5. Ao terminar, revise o texto extraído e baixe o PDF pesquisável ou um arquivo `.txt` simples.
+
+## Recursos
+
+- OCR em vários idiomas com um seletor de idiomas pesquisável
+- A camada de texto invisível preserva a aparência original do documento
+- Barra de progresso em tempo real e saída de log durante o processamento
+- Baixe os resultados como PDF pesquisável ou arquivo de texto simples
+- Copie o texto extraído diretamente para a área de transferência
+- Três níveis de resolução para equilibrar velocidade e precisão
+
+## Opções
+
+| Configuração | Valores | Padrão | Finalidade |
+| --------------------------------------- | ----------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------ |
+| **Resolução** | Padrão (192 DPI), Alta (288 DPI), Ultra (384 DPI) | Alta | Resolução maior melhora a precisão em textos pequenos, mas leva mais tempo |
+| **Binarizar imagem** | Ligado / Desligado | Desligado | Melhora o contraste em digitalizações limpas, convertendo para preto e branco |
+| **Predefinição da lista de caracteres** | Nenhuma, Alfanumérica, Números + Moeda, Somente letras, Somente números, Fatura, Formulários, Personalizada | Nenhuma | Restringe os caracteres reconhecidos para melhorar a precisão em tipos específicos de documentos |
+| **Lista de caracteres permitidos** | Texto livre | Vazio | Conjunto de caracteres manual quando a predefinição é Personalizada |
+
+## Casos de uso
+
+- Tornar contratos e faturas digitalizados pesquisáveis para usar Ctrl+F neles
+- Extrair texto de documentos fotografados ou de registros antigos em papel
+- Processar recibos com a predefinição Fatura para capturar com precisão valores e datas
+- Criar PDFs acessíveis a partir de digitalizações somente de imagem para atender requisitos de conformidade
+- Extrair em lote o conteúdo de texto de livros ou manuais digitalizados
+
+## Dicas
+
+- Selecione vários idiomas se o seu documento tiver conteúdo em idiomas mistos (por exemplo, títulos em inglês com corpo de texto em japonês).
+- Use a opção de binarização em documentos com texto desbotado ou de baixo contraste: ela pode melhorar bastante a precisão do reconhecimento.
+- As predefinições Fatura e Formulários reduzem drasticamente os falsos positivos em documentos estruturados, ignorando formas de caracteres irrelevantes.
+
+## Ferramentas relacionadas
+
+- [Extrair Tabelas](./extract-tables)
+- [Mesclar PDF](./merge-pdf)
+- [Comprimir PDF](./compress-pdf)
diff --git a/docs/pt/tools/odg-to-pdf.md b/docs/pt/tools/odg-to-pdf.md
new file mode 100644
index 00000000..52a0bde8
--- /dev/null
+++ b/docs/pt/tools/odg-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: ODG para PDF
+description: Converta arquivos do LibreOffice Draw (ODG) em PDF no navegador. Grátis, sem upload, totalmente privado.
+---
+
+# ODG para PDF
+
+Converta arquivos OpenDocument Graphics em PDF. O ODG é o formato nativo do LibreOffice Draw e é usado para diagramas, fluxogramas e ilustrações vetoriais. Converter para PDF facilita compartilhar, imprimir e incorporar esses desenhos em outros documentos.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :-------------------- | :------- | :--------------------------------------------- |
+| OpenDocument Graphics | `.odg` | Arquivos do LibreOffice Draw / OpenOffice Draw |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos ODG. Vários arquivos podem ser adicionados de uma vez.
+2. Revise a lista de arquivos. Remova itens individuais com o ícone da lixeira ou clique em **Adicionar mais arquivos** para incluir mais desenhos.
+3. Clique em **Converter para PDF**. Um mecanismo baseado no LibreOffice é carregado no navegador e converte cada arquivo ODG, preservando gráficos vetoriais, formas e texto.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos geram um arquivo ZIP chamado `odg-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração adicional é necessária. A conversão preserva as dimensões originais da página, formas, conectores e caixas de texto do ODG de origem.
+
+## Casos de uso
+
+- Compartilhar diagramas do LibreOffice Draw com clientes que não têm o LibreOffice instalado
+- Imprimir fluxogramas e diagramas de rede criados no Draw
+- Incluir ilustrações ODG em um relatório ou apresentação como PDFs incorporados
+- Arquivar desenhos técnicos em um formato que continuará legível por décadas
+
+## Dicas
+
+- Os elementos vetoriais continuam vetoriais no PDF, então o resultado escala sem perda para qualquer tamanho de impressão.
+- O mecanismo do LibreOffice leva um momento para inicializar no primeiro uso. As conversões seguintes na mesma sessão são mais rápidas.
+
+## Ferramentas relacionadas
+
+- [ODS para PDF](./ods-to-pdf)
+- [ODP para PDF](./odp-to-pdf)
+- [VSD para PDF](./vsd-to-pdf)
diff --git a/docs/pt/tools/odp-to-pdf.md b/docs/pt/tools/odp-to-pdf.md
new file mode 100644
index 00000000..0e2920ad
--- /dev/null
+++ b/docs/pt/tools/odp-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODP para PDF
+description: Converta apresentações do LibreOffice Impress (ODP) em PDF no navegador. Grátis, privado, sem upload.
+---
+
+# ODP para PDF
+
+Converta arquivos OpenDocument Presentation em PDF. O ODP é o formato nativo do LibreOffice Impress e uma exportação padrão do Google Slides. Transformar apresentações em PDFs permite que qualquer pessoa as veja sem software de apresentação, e os slides são impressos de forma limpa.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :------------------------ | :------- | :------------------------------------------------ |
+| OpenDocument Presentation | `.odp` | LibreOffice Impress / exportação do Google Slides |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos ODP. Você pode selecionar várias apresentações de uma vez.
+2. Revise a lista de arquivos. Remova itens com o ícone da lixeira ou use **Adicionar mais arquivos** para incluir outras apresentações.
+3. Clique em **Converter para PDF**. O mecanismo baseado no LibreOffice processa cada apresentação e produz um PDF em que cada slide vira uma página.
+4. Um único arquivo é baixado como PDF. Vários arquivos são entregues em um arquivo ZIP chamado `odp-to-pdf.zip`.
+
+## Opções
+
+Sem configurações. Cada slide é renderizado em suas dimensões originais, preservando texto, imagens, formas e planos de fundo dos slides.
+
+## Casos de uso
+
+- Distribuir uma apresentação ao público como PDF de apoio
+- Compartilhar exportações do Google Slides com pessoas que preferem PDF a ODP
+- Arquivar palestras e aulas em um formato somente leitura
+- Imprimir apresentações para workshops presenciais
+
+## Dicas
+
+- Transições e animações de slides são recursos apenas visuais que não passam para o PDF, mas todo o conteúdo estático é renderizado corretamente.
+- As notas do apresentador não são incluídas no PDF. Se você precisa das notas, exporte-as separadamente pelo seu software de apresentação.
+- Como as outras ferramentas baseadas no LibreOffice, o mecanismo é carregado no primeiro uso e fica em cache durante a sessão.
+
+## Ferramentas relacionadas
+
+- [ODG para PDF](./odg-to-pdf)
+- [ODS para PDF](./ods-to-pdf)
+- [PUB para PDF](./pub-to-pdf)
diff --git a/docs/pt/tools/ods-to-pdf.md b/docs/pt/tools/ods-to-pdf.md
new file mode 100644
index 00000000..e755f026
--- /dev/null
+++ b/docs/pt/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS para PDF
+description: Converta planilhas do LibreOffice Calc (ODS) em PDF no seu navegador. Grátis, privado, sem cadastro.
+---
+
+# ODS para PDF
+
+Converta arquivos OpenDocument Spreadsheet em PDF. ODS é o formato nativo do LibreOffice Calc e uma exportação comum do Google Sheets. Esta ferramenta renderiza os dados, a formatação e os gráficos da sua planilha em um PDF paginado que você pode imprimir ou compartilhar.
+
+## Formatos Suportados
+
+| Formato | Extensão | Observações |
+| :----------------------- | :------- | :--------------------------------------------- |
+| OpenDocument Spreadsheet | `.ods` | Exportação do LibreOffice Calc / Google Sheets |
+
+## Como Funciona
+
+1. Clique na área de envio ou arraste e solte seus arquivos ODS. Vários arquivos são suportados.
+2. Revise a lista de arquivos. Use o ícone de lixeira para remover arquivos ou clique em **Adicionar Mais Arquivos** para ampliar o lote.
+3. Clique em **Converter para PDF**. O mecanismo baseado no LibreOffice é carregado no navegador e renderiza cada planilha em páginas PDF.
+4. Uma única planilha é baixada como PDF. Vários arquivos são empacotados em `ods-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração é necessária. O conversor aplica ao PDF o layout de impressão, a formatação das células e a largura das colunas já existentes na planilha.
+
+## Casos de Uso
+
+- Compartilhar um orçamento ou relatório do LibreOffice Calc com alguém que só aceita PDFs
+- Imprimir uma exportação do Google Sheets baixada como ODS
+- Arquivar registros financeiros em um formato não editável
+- Enviar formulários ou folhas de ponto em ODS como documentos de layout fixo
+
+## Dicas
+
+- Se a planilha tiver várias abas, todas elas são incluídas no PDF.
+- Planilhas muito largas podem se estender por várias páginas PDF na horizontal. Se o layout for importante, ajuste a largura das colunas no arquivo original antes de converter.
+- O mecanismo do LibreOffice é inicializado no primeiro uso. As conversões seguintes na mesma sessão são mais rápidas.
+
+## Ferramentas Relacionadas
+
+- [ODG para PDF](./odg-to-pdf)
+- [ODP para PDF](./odp-to-pdf)
+- [XML para PDF](./xml-to-pdf)
diff --git a/docs/pt/tools/odt-to-pdf.md b/docs/pt/tools/odt-to-pdf.md
new file mode 100644
index 00000000..04aab3c6
--- /dev/null
+++ b/docs/pt/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT para PDF
+description: Converta arquivos OpenDocument Text (ODT) para PDF no seu navegador usando um mecanismo baseado no LibreOffice.
+---
+
+# ODT para PDF
+
+Converta arquivos OpenDocument Text em PDF. ODT é o formato nativo do LibreOffice Writer, do Apache OpenOffice e de outros processadores de texto de código aberto. Esta ferramenta usa um mecanismo LibreOffice no navegador para produzir conversões precisas, que preservam formatação, tabelas, imagens e estilos.
+
+## Formatos Suportados
+
+| Formato | Extensões |
+| :---------------- | :-------- |
+| OpenDocument Text | `.odt` |
+
+## Como Funciona
+
+1. Clique na área de envio ou arraste e solte um ou mais arquivos ODT.
+2. Revise a lista de arquivos. Adicione mais arquivos ou remova os indesejados.
+3. Clique em **Converter para PDF**. O mecanismo do LibreOffice é inicializado (um indicador de progresso mostra o status do carregamento) e então cada arquivo é convertido.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são empacotados em `odt-converted.zip`.
+
+## Opções
+
+Esta ferramenta não tem configurações adicionais. A conversão preserva o máximo possível a formatação do documento original.
+
+## Saída
+
+| Qtd. de Entrada | Saída |
+| :-------------- | :------------------------------------------------------------- |
+| 1 arquivo | Download de um único PDF (ex.: `document.pdf`) |
+| 2+ arquivos | Arquivo ZIP (`odt-converted.zip`) com um PDF para cada arquivo |
+
+## Casos de Uso
+
+- Converter documentos do LibreOffice Writer em PDF para compartilhar com usuários do Microsoft Office
+- Gerar PDFs prontos para impressão a partir de trabalhos acadêmicos escritos em formato OpenDocument
+- Converter em lote uma pasta de modelos ODT em PDFs para distribuição
+- Gerar PDFs a partir de arquivos ODT criados por sistemas automatizados de geração de documentos
+
+## Dicas
+
+- O mecanismo do LibreOffice é carregado no primeiro uso e fica em cache para as próximas conversões. O carregamento inicial leva alguns segundos; depois disso, as conversões são rápidas.
+- Documentos complexos com objetos OLE incorporados ou fontes incomuns podem ser renderizados de forma ligeiramente diferente do LibreOffice para desktop. Teste com um exemplo antes de converter em lote.
+- Para documentos do Word (`.doc`, `.docx`), use a ferramenta [Word para PDF](./word-to-pdf), que também usa o mecanismo do LibreOffice, mas aceita os formatos da Microsoft diretamente.
+
+## Ferramentas Relacionadas
+
+- [Word para PDF](./word-to-pdf)
+- [RTF para PDF](./rtf-to-pdf)
+- [Texto para PDF](./txt-to-pdf)
diff --git a/docs/pt/tools/organize-pdf.md b/docs/pt/tools/organize-pdf.md
new file mode 100644
index 00000000..c834f929
--- /dev/null
+++ b/docs/pt/tools/organize-pdf.md
@@ -0,0 +1,45 @@
+---
+title: Duplicar e Organizar
+description: Reordene, duplique e exclua páginas de PDF com miniaturas de arrastar e soltar e ordem de páginas personalizada.
+---
+
+# Duplicar e Organizar
+
+Reorganize, duplique e remova páginas de um PDF usando uma interface visual de arrastar e soltar. Cada página aparece como uma miniatura que você pode mover, clonar ou excluir antes de salvar o resultado como um novo arquivo.
+
+## Como Funciona
+
+1. Envie um único arquivo PDF.
+2. A ferramenta renderiza uma grade de miniaturas com todas as páginas.
+3. Arraste as miniaturas para reordenar as páginas, clique no botão verde de duplicar para clonar uma página ou no botão vermelho de excluir para removê-la.
+4. Se preferir, digite uma ordem de páginas personalizada no campo de texto (ex.: `3, 1, 2, 4`) e clique em **Aplicar** para reorganizar todas as páginas de uma vez.
+5. Clique no botão de processar para gerar e baixar o PDF reorganizado.
+
+## Recursos
+
+- Reordenação de páginas por arrastar e soltar com transições animadas
+- Botões de duplicar e excluir em cada página
+- Campo de ordem de páginas personalizada para reorganização precisa
+- Números de página que se atualizam automaticamente a cada alteração
+- Impede a exclusão da última página restante
+
+## Casos de Uso
+
+- Mover uma página fora do lugar para a posição correta em um relatório
+- Duplicar a página de um formulário para ter várias cópias em branco em um só arquivo
+- Remover páginas de rascunho ou de preenchimento antes de distribuir um documento
+- Inverter ou embaralhar a ordem das páginas para preparar a impressão
+- Montar uma sequência de páginas personalizada sem precisar mesclar arquivos separados novamente
+
+## Dicas
+
+- O campo de ordem personalizada espera os números das páginas originais separados por vírgula. Ele deve incluir cada página exatamente uma vez, sem omissões nem duplicatas.
+- Depois de duplicar uma página, as duas cópias referenciam o mesmo índice de página original. Reordenar qualquer uma das cópias funciona de forma independente.
+- Para operações em lote com vários arquivos ou fluxos mais avançados, considere usar a [Multiferramenta PDF](./pdf-multi-tool).
+
+## Ferramentas Relacionadas
+
+- [Mesclar PDF](./merge-pdf)
+- [Excluir Páginas](./delete-pages)
+- [Multiferramenta PDF](./pdf-multi-tool)
+- [Inverter Páginas](./reverse-pages)
diff --git a/docs/pt/tools/page-dimensions.md b/docs/pt/tools/page-dimensions.md
new file mode 100644
index 00000000..d9951b46
--- /dev/null
+++ b/docs/pt/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Dimensões da página
+description: Analise tamanhos, orientações, proporções e rotação das páginas de um PDF. Detecte documentos com tamanhos mistos e exporte os dados para CSV.
+---
+
+# Dimensões da página
+
+Uma ferramenta de diagnóstico que lê cada página do seu PDF e informa suas dimensões exatas, orientação, nome do tamanho padrão, proporção, área e rotação. É útil para identificar páginas de tamanhos diferentes antes da impressão ou para documentar as propriedades de um PDF recebido.
+
+## Como Funciona
+
+1. Envie um arquivo PDF. A análise começa automaticamente, sem botão para clicar.
+2. Um painel de resumo mostra o total de páginas, o número de tamanhos de página distintos e se o documento tem tamanhos mistos.
+3. Navegue pela tabela completa de resultados com os detalhes de cada página.
+4. Alterne a unidade de exibição entre Pontos, Polegadas, Milímetros ou Pixels.
+5. Clique em **Exportar para CSV** para salvar os dados.
+
+## Campos Informados
+
+| Coluna | Descrição |
+| -------------- | -------------------------------------------------------- |
+| Nº da página | Número sequencial da página |
+| Dimensões | Largura x Altura na unidade selecionada |
+| Tamanho padrão | Nome correspondente (A4, Letter etc.) ou "Personalizado" |
+| Orientação | Retrato ou Paisagem |
+| Proporção | Razão entre largura e altura em formato decimal |
+| Área | Área da página na unidade selecionada ao quadrado |
+| Rotação | Rotação da página em graus |
+
+## Recursos
+
+- Detecção automática de tamanhos de papel padrão (A3, A4, A5, Letter, Legal, Tabloid e mais)
+- Aviso de documento com tamanhos mistos, com o detalhamento de quais tamanhos aparecem e quantas páginas usam cada um
+- Conversão de unidades entre pontos, polegadas, milímetros e pixels (a 96 PPI)
+- Exportação para CSV para uso em planilhas ou sistemas de documentação
+
+## Casos de Uso
+
+- Verificar se todas as páginas são A4 antes de enviar um documento a uma gráfica
+- Descobrir por que um PDF mesclado é impresso com margens inesperadas em certas páginas
+- Documentar o layout de páginas de um grande arquivo de PDFs para registros de metadados
+- Identificar páginas giradas que precisam de correção
+
+## Dicas
+
+- Se o resumo mostrar "Tamanhos Mistos", use a ferramenta Ajustar Tamanho da Página para padronizar antes de imprimir.
+- O campo de rotação ajuda a identificar páginas que são exibidas corretamente, mas têm um atributo de rotação diferente de zero, o que pode causar problemas em alguns fluxos de trabalho.
+
+## Ferramentas Relacionadas
+
+- [Ajustar Tamanho da Página](./fix-page-size): padronize as páginas depois de identificar tamanhos mistos
+- [Comprimir PDF](./compress-pdf): otimize o PDF depois de corrigir os problemas de página
+- [Girar PDF](./rotate-pdf): corrija páginas giradas
diff --git a/docs/pt/tools/page-numbers.md b/docs/pt/tools/page-numbers.md
new file mode 100644
index 00000000..a1d78df4
--- /dev/null
+++ b/docs/pt/tools/page-numbers.md
@@ -0,0 +1,48 @@
+---
+title: Números de página
+description: Adicione números de página personalizáveis em qualquer posição das páginas do seu PDF, com fonte, tamanho e cor configuráveis.
+---
+
+# Números de página
+
+Adicione números de página visíveis a todas as páginas do seu PDF. Você escolhe a posição, o formato, o tamanho da fonte e a cor, e a ferramenta cuida do resto.
+
+## Como Funciona
+
+1. Envie seu arquivo PDF.
+2. Configure os ajustes de numeração no painel de opções que aparece.
+3. Clique em **Adicionar Números de Página** para processar.
+4. O PDF numerado é baixado automaticamente.
+
+## Opções
+
+- **Posição**: escolha onde os números de página aparecem: Inferior Centro, Inferior Esquerda, Inferior Direita, Superior Centro, Superior Esquerda ou Superior Direita.
+- **Formato**: selecione entre numeração simples (1, 2, 3...) ou o formato "página X de Y" (1 / 5, 2 / 5...).
+- **Tamanho da Fonte**: defina o tamanho do texto do número de página. O padrão é 12.
+- **Cor**: escolha qualquer cor para o texto do número de página usando o seletor de cores.
+
+## Recursos
+
+- Seis opções de posição, cobrindo todos os cantos e o centro
+- Dois formatos de numeração: sequencial simples ou "página X de Y"
+- Tamanho de fonte personalizável de 6 a 72 pontos
+- Seletor de cores completo para o texto
+- Tratamento automático de margens que mantém os números em áreas seguras, independentemente do tamanho da página
+
+## Casos de Uso
+
+- Preparar para impressão documentos que precisam de referências de página visíveis
+- Adicionar números de página a um PDF mesclado a partir de vários arquivos de origem
+- Numerar materiais de apresentação antes de distribuí-los
+- Adicionar numeração sequencial a documentos jurídicos ou contratos
+
+## Dicas
+
+- O formato "página X de Y" é útil em documentos nos quais os leitores precisam saber a extensão total, como propostas ou relatórios.
+- Se você precisar de estilos de numeração diferentes para seções diferentes (como algarismos romanos para a parte inicial), use a ferramenta [Adicionar rótulos de página](./add-page-labels).
+
+## Ferramentas Relacionadas
+
+- [Adicionar rótulos de página](./add-page-labels)
+- [Numeração Bates](./bates-numbering)
+- [Cabeçalho e Rodapé](./header-footer)
diff --git a/docs/pt/tools/pdf-booklet.md b/docs/pt/tools/pdf-booklet.md
new file mode 100644
index 00000000..56c4ea42
--- /dev/null
+++ b/docs/pt/tools/pdf-booklet.md
@@ -0,0 +1,43 @@
+---
+title: Livreto PDF
+description: Reorganize as páginas do PDF na ordem de livreto (grampo no meio) para dobrar e grampear em um livreto físico.
+---
+
+# Livreto PDF
+
+Reorganize as páginas de um PDF na ordem de imposição de livreto. Quando impresso frente e verso e dobrado ao meio, o documento terá as páginas na sequência de leitura correta. Esse é o layout usado em livretos grampeados no meio e em zines.
+
+## Como Funciona
+
+1. Envie um arquivo PDF.
+2. Defina as configurações do livreto: tamanho e orientação da página de saída.
+3. Clique em **Gerar Prévia** para ver como as páginas serão organizadas em cada folha.
+4. Revise a prévia, que mostra cada folha física com as páginas da frente e do verso.
+5. Clique em **Baixar** para salvar o PDF com a imposição de livreto.
+
+## Recursos
+
+- Reordenação automática de páginas para encadernação com grampo no meio
+- Tamanho de página de saída configurável
+- Prévia visual do layout do livreto antes de baixar
+- Trata contagens ímpares de páginas inserindo páginas em branco quando necessário
+- Ajusta a escala das páginas de origem ao tamanho da folha do livreto
+
+## Casos de Uso
+
+- Criar livretos ou zines imprimíveis a partir de um PDF comum
+- Preparar programas de conferências ou guias de eventos para impressão interna
+- Fazer cartões de felicitações dobrados ou pequenos catálogos
+- Produzir plaquetes ou coletâneas de poesia para encadernação artesanal
+
+## Dicas
+
+- O ideal é que o número de páginas do PDF de origem seja múltiplo de 4 para obter um livreto limpo. Se não for, páginas em branco são adicionadas automaticamente para completar a última folha.
+- Imprima o resultado frente e verso, com a opção "virar pela borda curta" da impressora, depois dobre todas as folhas juntas e grampeie na lombada.
+- Para apenas colocar várias páginas em uma folha, sem a ordem de livreto, use o [PDF N-Up](./n-up-pdf).
+
+## Ferramentas Relacionadas
+
+- [PDF N-Up](./n-up-pdf)
+- [Girar PDF](./rotate-pdf)
+- [Adicionar Página em Branco](./add-blank-page)
diff --git a/docs/pt/tools/pdf-layers.md b/docs/pt/tools/pdf-layers.md
new file mode 100644
index 00000000..a4fe7203
--- /dev/null
+++ b/docs/pt/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Camadas OCG do PDF
+description: Visualize, alterne, adicione e exclua camadas de Grupo de Conteúdo Opcional (OCG) em um documento PDF.
+---
+
+# Camadas OCG do PDF
+
+Gerencie os Grupos de Conteúdo Opcional (OCG), comumente chamados de "camadas", dentro de um PDF. Você pode alternar a visibilidade das camadas, adicionar novas camadas (inclusive camadas filhas aninhadas), excluir camadas e salvar o PDF modificado.
+
+## Como Funciona
+
+1. Envie um arquivo PDF.
+2. Clique no botão de processar para carregar o documento com o mecanismo PyMuPDF.
+3. A ferramenta exibe todas as camadas existentes com o estado de visibilidade, o status de bloqueio e a hierarquia de aninhamento.
+4. Use as caixas de seleção para mostrar ou ocultar camadas. Camadas bloqueadas não podem ser alternadas.
+5. Adicione novas camadas de nível superior digitando um nome e clicando no botão de adicionar, ou adicione camadas filhas sob uma camada pai existente.
+6. Exclua as camadas de que não precisa mais.
+7. Clique em **Salvar** para baixar o PDF modificado com as alterações de camadas aplicadas.
+
+## Recursos
+
+- Exibe a hierarquia de camadas com recuo adequado para camadas aninhadas
+- Ativa ou desativa a visibilidade das camadas
+- Indicador de camada bloqueada que evita alterações acidentais
+- Adiciona camadas de nível superior ou filhas com nomes personalizados
+- Exclui camadas individuais
+- Salva todas as alterações em um novo arquivo PDF
+
+## Casos de Uso
+
+- Alternar a visibilidade de camadas de marcação em desenhos de arquitetura ou engenharia
+- Adicionar novas camadas de anotação a um documento de design com várias camadas
+- Remover camadas obsoletas de um modelo antes de distribuí-lo
+- Inspecionar quais camadas existem em um PDF complexo recebido de terceiros
+
+## Dicas
+
+- Se o PDF não tiver camadas, a ferramenta mostra um estado vazio com um convite para adicionar uma. Nem todos os PDFs usam camadas OCG, que são mais comuns em exportações de CAD e arquivos de design.
+- As camadas filhas aparecem recuadas sob a camada pai. Você pode aninhar camadas em qualquer profundidade.
+- As camadas bloqueadas são exibidas com um ícone de cadeado e suas caixas de seleção ficam desativadas. Esses bloqueios são definidos pelo criador do PDF.
+
+## Ferramentas Relacionadas
+
+- [Ver Metadados](./view-metadata)
+- [Editar Metadados](./edit-metadata)
+- [Duplicar e Organizar](./organize-pdf)
diff --git a/docs/pt/tools/pdf-multi-tool.md b/docs/pt/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..5f5e65cb
--- /dev/null
+++ b/docs/pt/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: Multiferramenta PDF
+description: Um organizador de páginas completo para mesclar, dividir, girar, duplicar, excluir, reordenar e redimensionar páginas de PDF.
+---
+
+# Multiferramenta PDF
+
+Um espaço de trabalho unificado para todas as operações de PDF em nível de página. Envie um ou mais PDFs e trabalhe com todas as páginas em uma única grade visual. Gire, reordene, duplique e exclua páginas, insira PDFs, imagens e páginas em branco, renumere, redimensione e divida o resultado, tudo sem sair da ferramenta.
+
+## Como Funciona
+
+1. Clique em **Selecionar Arquivos** ou arraste arquivos para a área de envio. Vários arquivos são suportados e eles são mesclados na ordem de envio.
+2. Todas as páginas aparecem em uma grade rolável com miniaturas.
+3. Clique em uma página para selecioná-la. Use Shift+clique para selecionar um intervalo e Cmd/Ctrl+clique para adicionar ou remover páginas individuais da seleção.
+4. Use a barra de ferramentas do organizador ou clique com o botão direito em uma página para ver as ações de página.
+5. Clique em **Exportar PDF** para baixar o resultado final.
+
+## Recursos
+
+- **Mesclar**: envie vários PDFs e imagens e eles são combinados automaticamente em um único documento
+- **Reordenar**: arraste e solte páginas para reorganizar a sequência ou inverta a ordem do documento inteiro
+- **Girar**: gire as páginas selecionadas para a esquerda ou para a direita em incrementos de 90 graus
+- **Duplicar**: copie as páginas selecionadas e coloque as cópias logo depois delas
+- **Excluir**: remova as páginas selecionadas
+- **Inserir**: adicione páginas de outro PDF ou imagem, uma página em branco ou páginas da área de transferência, ou intercale as páginas de um segundo PDF com as atuais
+- **Substituir**: troque uma página pela primeira página de outro PDF
+- **Recortar, copiar e colar**: mova ou copie páginas dentro do documento
+- **Extrair**: baixe as páginas selecionadas como PDF ou como imagens
+- **Números de Página**: defina rótulos de página como i, ii, iii ou A-1, A-2 para um intervalo de páginas
+- **Tamanho da Página**: ajuste as páginas a um tamanho de papel padrão ou a um tamanho personalizado
+- **Dividir**: divida o documento por intervalos de páginas, páginas ímpares e pares, cada página, marcadores, a cada N páginas ou tamanho de arquivo
+- **Desfazer / Refazer**: toda operação de página pode ser desfeita e refeita
+- Repara automaticamente PDFs corrompidos antes de carregá-los
+
+## Atalhos de Teclado
+
+| Ação | Atalho |
+| ------------------------------- | ----------------------------- |
+| Girar para a direita / esquerda | R / Shift+R |
+| Selecionar tudo | Cmd/Ctrl+A |
+| Recortar, copiar, colar | Cmd/Ctrl+X, C, V |
+| Duplicar | Cmd/Ctrl+D |
+| Excluir | Delete ou Backspace |
+| Desfazer / Refazer | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Mover a seleção | Teclas de seta, Home, End |
+
+## Casos de Uso
+
+- Montar um documento personalizado com páginas de vários PDFs de origem
+- Limpar um documento digitalizado excluindo páginas em branco, girando digitalizações de lado e reordenando seções
+- Dividir um PDF grande nos limites dos capítulos usando os marcadores do próprio arquivo
+- Fazer edições rápidas em nível de página sem precisar de um editor de PDF completo
+
+## Dicas
+
+- O histórico de desfazer/refazer registra cada operação de página. Use-o à vontade, pois você não consegue destruir seu trabalho por acidente.
+- Use **Insert > From File** ou solte mais PDFs ou imagens na grade de páginas a qualquer momento para adicioná-los ao documento.
+- Para tarefas simples de mesclar ou dividir, as ferramentas dedicadas [Mesclar PDF](./merge-pdf) ou [Dividir PDF](./split-pdf) podem ser mais rápidas. A Multiferramenta brilha quando você precisa de várias operações em uma só sessão.
+
+## Ferramentas Relacionadas
+
+- [Mesclar PDF](./merge-pdf)
+- [Dividir PDF](./split-pdf)
+- [Duplicar e Organizar](./organize-pdf)
+- [Girar PDF](./rotate-pdf)
diff --git a/docs/pt/tools/pdf-to-bmp.md b/docs/pt/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..801f3e94
--- /dev/null
+++ b/docs/pt/tools/pdf-to-bmp.md
@@ -0,0 +1,40 @@
+---
+title: PDF para BMP
+description: Converta páginas de PDF em imagens BMP sem compressão. Útil para sistemas legados e fluxos de impressão que exigem bitmap.
+---
+
+# PDF para BMP
+
+Converte cada página de um PDF em uma imagem BMP (Bitmap). BMP é um formato sem compressão, então a saída é perfeita em pixels, sem perda de qualidade, mas os arquivos são grandes.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Clique em **Converter** para processar o arquivo.
+3. Um único arquivo `.bmp` ou um arquivo ZIP é baixado automaticamente.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. As páginas são renderizadas em escala fixa de 2x, produzindo imagens com aproximadamente o dobro das dimensões nativas da página do PDF.
+
+## Formato de Saída
+
+- **Página única**: `filename.bmp`
+- **Várias páginas**: `filename_bmps.zip` contendo `page_1.bmp`, `page_2.bmp` etc.
+
+## Casos de Uso
+
+- Alimentar sistemas ou equipamentos legados que só aceitam BMP com páginas de PDF.
+- Preparar imagens sem compressão para fluxos de impressão específicos.
+- Usar a saída em bitmap como entrada para ferramentas de processamento de imagem que exigem dados de pixels brutos.
+
+## Dicas
+
+- Os arquivos BMP são muito grandes porque armazenam dados de pixels brutos sem compressão. Para a maioria dos usos, o [PDF para PNG](./pdf-to-png) oferece qualidade sem perdas com arquivos bem menores.
+- Se o sistema de destino aceitar PNG ou TIFF, prefira esses formatos para economizar espaço em disco.
+
+## Ferramentas Relacionadas
+
+- [PDF para PNG](./pdf-to-png)
+- [PDF para TIFF](./pdf-to-tiff)
+- [PDF para JPG](./pdf-to-jpg)
diff --git a/docs/pt/tools/pdf-to-cbz.md b/docs/pt/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..4e3c4650
--- /dev/null
+++ b/docs/pt/tools/pdf-to-cbz.md
@@ -0,0 +1,77 @@
+---
+title: PDF para CBZ
+description: Converta um PDF em um arquivo CBZ (Comic Book Archive) para leitores de quadrinhos como Komga, Kavita, CDisplayEx e Calibre.
+---
+
+# PDF para CBZ
+
+Converte um PDF em um arquivo CBZ (Comic Book ZIP), o formato padrão para quadrinhos e mangás digitais. Cada página do PDF vira uma imagem dentro do arquivo. A ferramenta gera metadados em três formatos para máxima compatibilidade: ComicInfo.xml, metadata.opf e ComicBookInfo JSON.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Escolha o formato da imagem, a qualidade, a escala e os metadados opcionais.
+3. Clique em **Converter** para gerar o arquivo CBZ.
+4. O arquivo `.cbz` é baixado automaticamente.
+
+## Opções
+
+| Opção | Valores | Padrão | Descrição |
+| ----------------- | ---------------- | --------- | --------------------------------------------------------------------------------------------- |
+| Formato da Imagem | JPEG, PNG, WebP | JPEG | JPEG para quadrinhos coloridos, PNG para mangá P&B sem perdas, WebP para a melhor compressão. |
+| Qualidade | 50–100% | 85% | Controla a compressão JPEG/WebP. Oculta para PNG (sempre sem perdas). |
+| Escala | 1.0x–4.0x | 2.0x | Escalas maiores produzem imagens mais nítidas para telas de alta resolução. |
+| Tons de cinza | Ligado/Desligado | Desligado | Converte as páginas para tons de cinza. Reduz o tamanho do arquivo em conteúdo P&B. |
+| Modo mangá | Ligado/Desligado | Desligado | Define a direção de leitura da direita para a esquerda nos metadados. |
+| Incluir metadados | Ligado/Desligado | Ligado | Incorpora ComicInfo.xml, metadata.opf e ComicBookInfo JSON. |
+
+## Campos de Metadados
+
+Quando os metadados estão ativados, você pode preencher:
+
+- **Título**: detectado automaticamente a partir do nome do arquivo PDF.
+- **Série**: o nome da série (ex.: "Naruto").
+- **Número (#)**: número da edição dentro da série.
+- **Volume (Vol.)**: número do volume.
+- **Autor(es)**: nome do roteirista ou criador.
+- **Editora**: empresa responsável pela publicação.
+- **Tags / Gênero**: tags separadas por vírgula (ex.: "Ação, Aventura").
+- **Ano de Publicação**: ano da publicação (1900–2100).
+- **Avaliação**: avaliação da comunidade de 0 a 5.
+
+## Compatibilidade de Metadados
+
+A ferramenta grava os metadados em três formatos para que todo leitor consiga encontrá-los:
+
+| Formato | Local | Suportado por |
+| ------------------ | -------------------------- | ------------------------------------------- |
+| ComicInfo.xml | Arquivo dentro do ZIP | Komga, Kavita, CDisplayEx, Mylar, ComicRack |
+| metadata.opf | Arquivo dentro do ZIP | Calibre |
+| ComicBookInfo JSON | Campo de comentário do ZIP | Calibre (alternativa) |
+
+## Formato de Saída
+
+- `filename.cbz`: um arquivo ZIP contendo as imagens das páginas numeradas e os arquivos de metadados.
+
+As imagens das páginas são nomeadas com números preenchidos com zeros (`01.jpg`, `02.jpg` etc.) para que os leitores as exibam na ordem correta.
+
+## Casos de Uso
+
+- Converter PDFs de mangá ou quadrinhos para uso com leitores de quadrinhos.
+- Montar uma biblioteca digital de quadrinhos no Komga, Kavita ou Calibre.
+- Converter quadrinhos digitalizados em um formato amigável para leitores.
+- Compartilhar quadrinhos em um formato que preserva a direção de leitura e os metadados.
+
+## Dicas
+
+- Use **JPEG** para quadrinhos coloridos e **PNG** para mangás em preto e branco: o PNG comprime conteúdo P&B com muita eficiência.
+- Ative **Tons de cinza** para mangás para reduzir bastante o tamanho do arquivo.
+- Preencha os campos **Série** e **Número** para que gerenciadores de biblioteca (Komga, Calibre) organizem sua coleção automaticamente.
+- O **WebP** oferece a melhor compressão, mas leitores de quadrinhos mais antigos podem não suportá-lo.
+
+## Ferramentas Relacionadas
+
+- [PDF para JPG](./pdf-to-jpg)
+- [PDF para PNG](./pdf-to-png)
+- [PDF para TIFF](./pdf-to-tiff)
+- [Extrair Imagens](./extract-images)
diff --git a/docs/pt/tools/pdf-to-csv.md b/docs/pt/tools/pdf-to-csv.md
new file mode 100644
index 00000000..3261b0fb
--- /dev/null
+++ b/docs/pt/tools/pdf-to-csv.md
@@ -0,0 +1,44 @@
+---
+title: PDF para CSV
+description: Extraia tabelas de documentos PDF e exporte-as como um único arquivo CSV. Trata PDFs com várias páginas com detecção automática de tabelas.
+---
+
+# PDF para CSV
+
+Extrai tabelas de um PDF e as exporta como um arquivo CSV. A ferramenta varre cada página em busca de dados tabulares usando o mecanismo de detecção de tabelas do PyMuPDF e grava todas as linhas encontradas em uma única saída separada por vírgulas.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Clique em **Converter** para iniciar a extração de tabelas.
+3. A ferramenta varre cada página e identifica as tabelas automaticamente.
+4. Um arquivo `.csv` é baixado com todos os dados das tabelas extraídas.
+
+As tabelas de páginas diferentes são separadas por linhas em branco na saída. Células que contêm vírgulas, aspas ou quebras de linha são escapadas corretamente, seguindo a RFC 4180.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Todas as tabelas encontradas no documento são extraídas e combinadas em um único CSV.
+
+## Formato de Saída
+
+- Um único arquivo `filename.csv` contendo todas as tabelas detectadas.
+
+## Casos de Uso
+
+- Levar dados financeiros de extratos bancários ou faturas em PDF para uma planilha.
+- Extrair tabelas de preços de orçamentos de fornecedores para comparação.
+- Converter dados tabulares de pesquisas em artigos PDF para um formato adequado a ferramentas de análise.
+- Migrar dados de relatórios PDF legados para bancos de dados.
+
+## Dicas
+
+- Se nenhuma tabela for encontrada, a ferramenta exibe a mensagem "Nenhuma Tabela Encontrada". Isso normalmente significa que o PDF usa um layout de texto que parece tabular, mas não está estruturado como uma tabela de verdade.
+- Para ter mais controle sobre cada tabela, use [Extrair Tabelas PDF](./extract-tables), que permite escolher entre os formatos de saída CSV, JSON e Markdown.
+- Se você precisar dos dados em formato Excel, com uma planilha separada para cada tabela, use [PDF para Excel](./pdf-to-excel).
+
+## Ferramentas Relacionadas
+
+- [PDF para Excel](./pdf-to-excel)
+- [Extrair Tabelas PDF](./extract-tables)
+- [PDF para Texto](./pdf-to-text)
diff --git a/docs/pt/tools/pdf-to-excel.md b/docs/pt/tools/pdf-to-excel.md
new file mode 100644
index 00000000..9c44b948
--- /dev/null
+++ b/docs/pt/tools/pdf-to-excel.md
@@ -0,0 +1,44 @@
+---
+title: PDF para Excel
+description: Extraia tabelas de documentos PDF para uma planilha do Excel. Cada tabela ganha sua própria planilha com a referência da página.
+---
+
+# PDF para Excel
+
+Extrai tabelas de um PDF e as salva como uma planilha do Excel (`.xlsx`). Cada tabela detectada é colocada em sua própria planilha, identificada pelo número da tabela e pela página de origem. Usa o PyMuPDF para detectar as tabelas e a biblioteca SheetJS para gerar o Excel.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Clique em **Converter** para iniciar a extração de tabelas.
+3. A ferramenta varre todas as páginas em busca de tabelas e depois monta uma pasta de trabalho do Excel.
+4. Um arquivo `.xlsx` é baixado com uma planilha por tabela.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Todas as tabelas detectadas são extraídas automaticamente.
+
+## Formato de Saída
+
+- Um único arquivo `filename.xlsx`.
+- **Uma tabela**: uma única planilha chamada "Table".
+- **Várias tabelas**: planilhas chamadas "Table 1 (Page 3)", "Table 2 (Page 5)" etc. Os nomes das planilhas são truncados em 31 caracteres (o limite do Excel).
+
+## Casos de Uso
+
+- Converter relatórios financeiros em PDF em planilhas editáveis para análises posteriores.
+- Extrair tabelas de estoque ou de pedidos de PDFs de fornecedores.
+- Levar dados estruturados de formulários ou catálogos em PDF para o Excel para classificar e filtrar.
+- Arquivar dados tabulares de PDFs em um formato com o qual colegas não técnicos consigam trabalhar.
+
+## Dicas
+
+- Se a ferramenta informar "Nenhuma Tabela Encontrada", o PDF provavelmente usa um layout de texto livre em vez de tabelas estruturadas. Experimente [PDF para Texto](./pdf-to-text) para obter o conteúdo bruto.
+- Para um formato mais simples e plano, use [PDF para CSV](./pdf-to-csv). Para downloads por tabela em vários formatos, use [Extrair Tabelas PDF](./extract-tables).
+- Confira os nomes das planilhas para identificar de qual página cada tabela veio.
+
+## Ferramentas Relacionadas
+
+- [PDF para CSV](./pdf-to-csv)
+- [Extrair Tabelas PDF](./extract-tables)
+- [PDF para Texto](./pdf-to-text)
diff --git a/docs/pt/tools/pdf-to-greyscale.md b/docs/pt/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..7bb7e478
--- /dev/null
+++ b/docs/pt/tools/pdf-to-greyscale.md
@@ -0,0 +1,42 @@
+---
+title: PDF para tons de cinza
+description: Converta um PDF colorido em uma versão em tons de cinza (preto e branco). Gera um novo PDF sem nenhuma cor em todas as páginas.
+---
+
+# PDF para tons de cinza
+
+Converte um PDF colorido em uma versão em tons de cinza. Cada página é renderizada, dessaturada e reincorporada como imagem JPEG em um novo PDF. A saída preserva as dimensões originais das páginas.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Clique em **Converter** para processar o arquivo.
+3. Um novo `greyscale.pdf` é baixado com todas as páginas convertidas para preto e branco.
+
+Nos bastidores, cada página é renderizada em escala 2x, os dados de pixels passam por um filtro de tons de cinza e depois são recodificados como JPEG com 90% de qualidade e colocados em um novo documento PDF.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. A conversão para tons de cinza usa uma fórmula de luminância padrão e a qualidade do JPEG é fixa em 90%.
+
+## Formato de Saída
+
+- Um único arquivo `greyscale.pdf` com todas as páginas como imagens JPEG em tons de cinza.
+
+## Casos de Uso
+
+- Preparar documentos para impressão em preto e branco e economizar tinta colorida.
+- Atender a exigências de envio de documentos jurídicos ou governamentais que determinam tons de cinza.
+- Reduzir o tamanho de PDFs com muitas cores (imagens JPEG em tons de cinza são menores que as coloridas).
+- Criar um estilo visual consistente em documentos com páginas coloridas e P&B misturadas.
+
+## Dicas
+
+- Como cada página é rasterizada e reincorporada como JPEG, a saída é baseada em imagens. O texto do PDF original deixa de poder ser selecionado ou pesquisado. Se você precisar de texto pesquisável depois, passe o resultado pela ferramenta de OCR.
+- Para ter mais controle sobre os ajustes de cor (brilho, contraste, saturação), veja a ferramenta Ajustar Cores ou o nó Tons de Cinza no [Construtor de fluxo de trabalho PDF](./pdf-workflow).
+
+## Ferramentas Relacionadas
+
+- [PDF para JPG](./pdf-to-jpg)
+- [PDF para PNG](./pdf-to-png)
+- [Construtor de fluxo de trabalho PDF](./pdf-workflow)
diff --git a/docs/pt/tools/pdf-to-jpg.md b/docs/pt/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..a57d14d3
--- /dev/null
+++ b/docs/pt/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF para JPG
+description: Converta páginas de PDF em imagens JPG com qualidade ajustável. PDFs de uma página são baixados diretamente; PDFs de várias páginas são exportados como ZIP.
+---
+
+# PDF para JPG
+
+Converte cada página de um PDF em uma imagem JPG. Documentos de uma página são baixados como um arquivo `.jpg` independente. PDFs de várias páginas geram um arquivo ZIP com um JPG por página.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela. A ferramenta exibe o nome do arquivo, o tamanho e o número de páginas.
+2. Ajuste o controle deslizante de **Qualidade** para definir a compressão do JPG.
+3. Clique em **Converter** para iniciar o processamento.
+4. O resultado é baixado automaticamente: um único JPG para PDFs de uma página ou um arquivo ZIP para documentos de várias páginas.
+
+## Opções
+
+- **Qualidade**: um controle deslizante de 0% a 100% (padrão 90%). Valores mais altos produzem imagens mais nítidas, com arquivos maiores. Valores mais baixos comprimem de forma mais agressiva.
+
+Internamente, as páginas são renderizadas em escala 2x, então a resolução de saída é o dobro das dimensões da página do PDF. Uma página padrão em tamanho Carta gera uma imagem de cerca de 1.224 x 1.584 pixels.
+
+## Formato de Saída
+
+- **Página única**: `filename.jpg`
+- **Várias páginas**: `filename_jpgs.zip` contendo `page_1.jpg`, `page_2.jpg` etc.
+
+## Casos de Uso
+
+- Gerar miniaturas de pré-visualização para um sistema de gerenciamento de documentos.
+- Compartilhar uma página de um relatório em um chat ou e-mail que não aceita PDF.
+- Criar recursos de imagem a partir de diagramas ou ilustrações em PDF.
+- Arquivar documentos digitalizados como imagens individuais.
+
+## Dicas
+
+- Para uma saída sem perdas, use o [PDF para PNG](./pdf-to-png).
+- Uma qualidade entre 80 e 90% oferece um bom equilíbrio entre tamanho do arquivo e fidelidade visual.
+- Se você precisar de um formato específico por página, considere o [Construtor de fluxo de trabalho PDF](./pdf-workflow), que tem um nó de saída PDF para Imagens.
+
+## Ferramentas Relacionadas
+
+- [PDF para PNG](./pdf-to-png)
+- [PDF para WebP](./pdf-to-webp)
+- [PDF para BMP](./pdf-to-bmp)
+- [PDF para TIFF](./pdf-to-tiff)
diff --git a/docs/pt/tools/pdf-to-json.md b/docs/pt/tools/pdf-to-json.md
new file mode 100644
index 00000000..2e461c08
--- /dev/null
+++ b/docs/pt/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF para JSON
+description: Converta arquivos PDF em formato JSON estruturado usando o CPDF. Exporta a estrutura interna do PDF como dados JSON legíveis por máquina.
+---
+
+# PDF para JSON
+
+Converte um ou mais arquivos PDF em formato JSON. A ferramenta usa o CPDF (Coherent PDF) para serializar a estrutura interna de cada PDF em uma representação JSON legível por máquina. A saída é sempre entregue como um arquivo ZIP.
+
+## Como Funciona
+
+1. Selecione um ou mais arquivos PDF usando o seletor de arquivos.
+2. Clique em **Converter** para iniciar o processamento. A conversão é executada em um web worker em segundo plano.
+3. Um arquivo ZIP é baixado com um arquivo JSON para cada PDF de entrada.
+
+A barra de status mostra o progresso das etapas de conversão e de criação do ZIP.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Cada PDF é convertido para sua representação JSON completa.
+
+## Formato de Saída
+
+- Um arquivo `pdfs-to-json.zip` contendo `filename.json` para cada PDF de entrada.
+
+A saída JSON representa a estrutura interna de objetos do PDF, incluindo árvores de páginas, referências de fontes, metadados e fluxos de conteúdo.
+
+## Casos de Uso
+
+- Inspecionar a estrutura interna de um PDF para depuração ou validação.
+- Extrair metadados estruturados e propriedades de página de forma programática.
+- Alimentar pipelines de processamento personalizados com dados da estrutura do PDF.
+- Auditar documentos PDF quanto à conformidade analisando suas árvores de objetos.
+
+## Dicas
+
+- Esta ferramenta gera a estrutura bruta de objetos do PDF, não o conteúdo de texto extraído. Se você precisar do texto das páginas em formato JSON, use [Preparar PDF para IA](./prepare-pdf-for-ai).
+- Para extração de texto simples, [PDF para Texto](./pdf-to-text) é mais direto.
+- PDFs grandes com estruturas complexas geram arquivos JSON muito grandes.
+
+## Ferramentas Relacionadas
+
+- [PDF para Texto](./pdf-to-text)
+- [Preparar PDF para IA](./prepare-pdf-for-ai)
+- [Extrair Tabelas PDF](./extract-tables)
diff --git a/docs/pt/tools/pdf-to-markdown.md b/docs/pt/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..41b2c295
--- /dev/null
+++ b/docs/pt/tools/pdf-to-markdown.md
@@ -0,0 +1,43 @@
+---
+title: PDF para Markdown
+description: Converta documentos PDF para o formato Markdown, com extração opcional de imagens. Suporta conversão em lote de vários arquivos.
+---
+
+# PDF para Markdown
+
+Converte arquivos PDF para o formato Markdown (`.md`), preservando títulos, parágrafos, listas e a formatação básica. Opcionalmente, extrai e inclui as imagens incorporadas. Suporta conversão individual e em lote. Usa o PyMuPDF.
+
+## Como Funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando arquivos para ela.
+2. Se quiser, ative **Incluir Imagens** para incorporar as imagens extraídas na saída em Markdown.
+3. Clique em **Converter** para iniciar o processamento.
+4. Um único arquivo é baixado como `filename.md`. Vários arquivos geram um `markdown-files.zip`.
+
+## Opções
+
+- **Incluir Imagens**: quando marcada, as imagens incorporadas no PDF são extraídas e referenciadas na saída em Markdown. Quando desmarcada, apenas o conteúdo de texto é convertido.
+
+## Formato de Saída
+
+- **Arquivo único**: `filename.md`
+- **Vários arquivos**: `markdown-files.zip` contendo um `.md` para cada PDF de entrada.
+
+## Casos de Uso
+
+- Converter documentação em PDF para Markdown para um gerador de sites estáticos como VitePress, Hugo ou Jekyll.
+- Transformar artigos científicos em PDF em Markdown editável para aplicativos de anotações como o Obsidian.
+- Migrar bases de conhecimento legadas em PDF para um formato de texto compatível com o Git.
+- Extrair conteúdo estruturado de e-books em PDF para reformatação.
+
+## Dicas
+
+- A opção Incluir Imagens é útil quando o PDF contém diagramas ou figuras essenciais ao conteúdo. Desative-a em documentos com muito texto para manter a saída limpa.
+- Layouts complexos com barras laterais, notas de rodapé ou texto em várias colunas podem gerar um Markdown imperfeito. Revise e ajuste a saída conforme necessário.
+- Para texto bruto, sem nenhuma formatação, use [PDF para Texto](./pdf-to-text).
+
+## Ferramentas Relacionadas
+
+- [PDF para Texto](./pdf-to-text)
+- [PDF para Word](./pdf-to-word)
+- [Preparar PDF para IA](./prepare-pdf-for-ai)
diff --git a/docs/pt/tools/pdf-to-pdfa.md b/docs/pt/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..bd81fff7
--- /dev/null
+++ b/docs/pt/tools/pdf-to-pdfa.md
@@ -0,0 +1,50 @@
+---
+title: PDF para PDF/A
+description: Converta PDFs comuns para o formato PDF/A para arquivamento de longo prazo. Suporta os níveis de conformidade PDF/A-1b, PDF/A-2b e PDF/A-3b.
+---
+
+# PDF para PDF/A
+
+PDF/A é um subconjunto do PDF padronizado pela ISO e projetado para a preservação digital de longo prazo. Esta ferramenta converte seus PDFs comuns em documentos compatíveis com PDF/A usando o Ghostscript, executado diretamente no seu navegador.
+
+## Como Funciona
+
+1. Envie um ou mais arquivos PDF.
+2. Selecione uma **Versão do PDF/A** na lista suspensa.
+3. Se quiser, ative **Pré-achatar PDF** para arquivos complexos que falham na conversão normal.
+4. Clique em **Converter para PDF/A**. Vários arquivos geram um arquivo ZIP.
+
+## Versões do PDF/A
+
+| Versão | Restrições | Ideal Para |
+| ------------ | ------------------------------------------------ | ---------------------------------------------------------------- |
+| **PDF/A-1b** | A mais rígida. Sem transparência, sem camadas. | Máxima compatibilidade com sistemas de arquivamento mais antigos |
+| **PDF/A-2b** | Permite transparência e JPEG2000. | Arquivamento de uso geral (recomendado) |
+| **PDF/A-3b** | Permite anexos incorporados de qualquer formato. | Arquivar documentos com arquivos de dados de origem |
+
+O PDF/A-2b vem selecionado por padrão e atende à grande maioria das necessidades de arquivamento.
+
+## Opção de Pré-achatar
+
+Alguns PDFs contêm recursos que impedem uma conversão limpa para PDF/A: codificações de fonte incomuns, pilhas de transparência complexas ou estruturas internas danificadas. Ativar **Pré-achatar** rasteriza o PDF a 300 DPI antes da conversão, o que garante a conformidade ao custo de tornar o texto não selecionável. Use-a como alternativa quando a conversão padrão gerar erros.
+
+O pré-achatamento requer o mecanismo PyMuPDF WASM.
+
+## Casos de Uso
+
+- Atender a exigências de arquivamento governamentais ou jurídicas (muitas jurisdições exigem PDF/A em peças processuais)
+- Enviar documentos a repositórios institucionais ou bibliotecas digitais
+- Preservar registros empresariais cujo software original talvez não exista daqui a dez anos
+- Preparar faturas para padrões de faturamento eletrônico que exigem PDF/A-3b com anexos XML
+
+## Dicas
+
+- Tente primeiro a conversão sem pré-achatar. Ative-a apenas se ocorrer um erro.
+- O PDF/A incorpora todas as fontes, então os arquivos de saída costumam ser maiores que os originais.
+- Valide a saída em um validador de PDF/A dedicado se o seu fluxo exigir conformidade estrita.
+
+## Ferramentas Relacionadas
+
+- [Comprimir PDF](./compress-pdf): reduza o tamanho do arquivo depois da conversão
+- [Achatar PDF (Flatten)](./flatten-pdf): achate os formulários antes de converter para PDF/A
+- [Remover Metadados](./remove-metadata): remova os metadados antes de arquivar
diff --git a/docs/pt/tools/pdf-to-png.md b/docs/pt/tools/pdf-to-png.md
new file mode 100644
index 00000000..daf8017b
--- /dev/null
+++ b/docs/pt/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF para PNG
+description: Converta páginas de PDF em imagens PNG sem perdas, com escala ajustável. Ideal para capturas de tela de alta qualidade e fundos transparentes.
+---
+
+# PDF para PNG
+
+Converte cada página de um PDF em uma imagem PNG. O PNG usa compressão sem perdas, então a saída preserva todos os detalhes da página original. PDFs de uma página são baixados como um arquivo `.png`; PDFs de várias páginas geram um ZIP.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Ajuste o controle deslizante de **Escala** para definir a resolução de saída.
+3. Clique em **Converter** para iniciar o processamento.
+4. Um único PNG ou um arquivo ZIP é baixado automaticamente.
+
+## Opções
+
+- **Escala**: varia de 1.0x a 3.0x (padrão 2.0x). Em 2.0x, uma página padrão em tamanho Carta é renderizada com cerca de 1.224 x 1.584 pixels. Escalas maiores produzem imagens maiores e mais nítidas, ao custo de tamanho de arquivo e tempo de processamento.
+
+## Formato de Saída
+
+- **Página única**: `filename.png`
+- **Várias páginas**: `filename_pngs.zip` contendo `page_1.png`, `page_2.png` etc.
+
+## Casos de Uso
+
+- Capturar imagens de alta fidelidade de páginas de PDF para apresentações.
+- Extrair gráficos ou diagramas que precisam de bordas nítidas e sem artefatos de compressão.
+- Preparar recursos para web design a partir de protótipos em PDF.
+- Criar imagens de página sem perdas para pré-processamento de OCR.
+
+## Dicas
+
+- Os arquivos PNG são bem maiores que os JPG. Se o tamanho do arquivo importa mais que a qualidade perfeita, use [PDF para JPG](./pdf-to-jpg) ou [PDF para WebP](./pdf-to-webp).
+- Na escala 1.0x, a saída corresponde à resolução nativa do PDF. Use 3.0x para exportações com qualidade de impressão.
+
+## Ferramentas Relacionadas
+
+- [PDF para JPG](./pdf-to-jpg)
+- [PDF para WebP](./pdf-to-webp)
+- [PDF para SVG](./pdf-to-svg)
diff --git a/docs/pt/tools/pdf-to-svg.md b/docs/pt/tools/pdf-to-svg.md
new file mode 100644
index 00000000..71e32c35
--- /dev/null
+++ b/docs/pt/tools/pdf-to-svg.md
@@ -0,0 +1,43 @@
+---
+title: PDF para SVG
+description: Converta páginas de PDF em gráficos vetoriais SVG escaláveis. Preserva texto e formas como caminhos vetoriais para escala infinita.
+---
+
+# PDF para SVG
+
+Converte cada página de um PDF em um arquivo SVG (Scalable Vector Graphics). Ao contrário dos formatos raster, o SVG preserva caminhos vetoriais, texto e formas, de modo que a saída pode ser ampliada a qualquer tamanho sem pixelização. Usa o PyMuPDF.
+
+## Como Funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando arquivos para ela. Você pode adicionar vários arquivos e gerenciá-los individualmente.
+2. Clique em **Converter** para processar todos os arquivos enviados.
+3. Conversões de um único arquivo com uma única página são baixadas como um `.svg` independente. Todo o resto é baixado como um arquivo ZIP.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Cada página é convertida em SVG usando a exportação vetorial nativa do PyMuPDF.
+
+## Formato de Saída
+
+- **Um arquivo, uma página**: `filename.svg`
+- **Um arquivo, várias páginas**: `filename_svg.zip` contendo `page_1.svg`, `page_2.svg` etc.
+- **Vários arquivos**: `pdf_to_svg.zip` com os arquivos organizados pelo nome do documento de origem.
+
+## Casos de Uso
+
+- Extrair diagramas vetoriais, gráficos ou ilustrações de relatórios em PDF para usar em páginas web.
+- Editar o conteúdo de páginas de PDF em um editor vetorial como o Inkscape ou o Illustrator.
+- Incorporar pré-visualizações escaláveis de páginas em aplicativos web responsivos.
+- Extrair logotipos ou gráficos de folhetos em PDF preservando bordas nítidas.
+
+## Dicas
+
+- O SVG funciona melhor com PDFs que contêm conteúdo vetorial. Documentos digitalizados ou PDFs com muitas imagens geram arquivos SVG grandes, com dados raster incorporados.
+- Para saída raster de PDFs com muitas imagens, use [PDF para PNG](./pdf-to-png) ou [PDF para JPG](./pdf-to-jpg).
+- Esta ferramenta suporta conversão em lote: envie vários PDFs de uma vez para convertê-los todos em uma única execução.
+
+## Ferramentas Relacionadas
+
+- [PDF para PNG](./pdf-to-png)
+- [PDF para JPG](./pdf-to-jpg)
+- [PDF para Markdown](./pdf-to-markdown)
diff --git a/docs/pt/tools/pdf-to-text.md b/docs/pt/tools/pdf-to-text.md
new file mode 100644
index 00000000..af863edd
--- /dev/null
+++ b/docs/pt/tools/pdf-to-text.md
@@ -0,0 +1,43 @@
+---
+title: PDF para texto
+description: Extraia o conteúdo de texto simples de arquivos PDF. Suporta extração em lote de vários PDFs com saída em arquivos TXT.
+---
+
+# PDF para texto
+
+Extrai todo o conteúdo de texto de arquivos PDF e o salva como arquivos `.txt` simples. Suporta processamento em lote: envie vários PDFs e tenha o texto de cada um extraído em uma única operação. Usa o PyMuPDF.
+
+## Como Funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando arquivos para ela. Gerencie sua lista de arquivos com os botões Adicionar Mais e Limpar.
+2. Clique em **Extrair** para iniciar o processamento.
+3. Um único arquivo é baixado como `filename.txt`. Vários arquivos geram um arquivo `pdf-to-text.zip`.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Todo o conteúdo de texto é extraído de todas as páginas na ordem de leitura.
+
+## Formato de Saída
+
+- **Arquivo único**: `filename.txt`
+- **Vários arquivos**: `pdf-to-text.zip` contendo um `.txt` para cada PDF de entrada.
+
+## Casos de Uso
+
+- Extrair o texto principal de relatórios em PDF para indexação de pesquisa de texto completo.
+- Converter e-books ou artigos em PDF para texto simples para ler em dispositivos de tinta eletrônica.
+- Extrair texto de contratos ou documentos jurídicos para análise de palavras-chave.
+- Remover a formatação de PDFs para obter texto limpo para scripts de processamento de dados.
+- Preparar um corpus de texto a partir de arquivos PDF para processamento de linguagem natural.
+
+## Dicas
+
+- PDFs digitalizados (apenas imagem) geram arquivos de texto vazios, pois não há camada de texto para extrair. Passe primeiro os documentos digitalizados por OCR.
+- A saída preserva a ordem de leitura como interpretada pelo PyMuPDF, que em geral segue da esquerda para a direita e de cima para baixo. Layouts de várias colunas podem gerar texto intercalado.
+- Para uma saída estruturada com títulos e formatação, experimente [PDF para Markdown](./pdf-to-markdown). Para JSON estruturado pronto para IA, use [Preparar PDF para IA](./prepare-pdf-for-ai).
+
+## Ferramentas Relacionadas
+
+- [PDF para Markdown](./pdf-to-markdown)
+- [Preparar PDF para IA](./prepare-pdf-for-ai)
+- [PDF para Word](./pdf-to-word)
diff --git a/docs/pt/tools/pdf-to-tiff.md b/docs/pt/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..bc164884
--- /dev/null
+++ b/docs/pt/tools/pdf-to-tiff.md
@@ -0,0 +1,43 @@
+---
+title: PDF para TIFF
+description: Converta páginas de PDF em imagens TIFF, muito usadas em fluxos de impressão, fax e arquivamento. Usa PNG como alternativa se a codificação falhar.
+---
+
+# PDF para TIFF
+
+Converte cada página de um PDF em uma imagem TIFF. O TIFF é o formato padrão para produção gráfica, sistemas de fax e arquivamento de documentos. A ferramenta usa a compressão PackBits para codificar o TIFF e recorre ao PNG caso uma página não possa ser codificada.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Clique em **Converter** para processar o arquivo.
+3. Um único arquivo TIFF ou um arquivo ZIP é baixado automaticamente.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. As páginas são renderizadas em escala fixa de 2x.
+
+## Formato de Saída
+
+- **Página única**: `filename.tiff`
+- **Várias páginas**: `filename_tiffs.zip` contendo `page_1.tiff`, `page_2.tiff` etc.
+
+Se a codificação TIFF falhar em uma página específica (por problemas de compressão), essa página é salva como um arquivo `.png`. Nesse caso, o ZIP conterá uma mistura de arquivos TIFF e PNG.
+
+## Casos de Uso
+
+- Enviar documentos a órgãos governamentais ou sistemas jurídicos que exigem o formato TIFF.
+- Preparar páginas para transmissão por fax em serviços de fax digital.
+- Arquivar documentos digitalizados em um formato sem perdas amplamente suportado.
+- Alimentar sistemas corporativos de gerenciamento de documentos com as páginas.
+
+## Dicas
+
+- Os arquivos TIFF são grandes. Se você só precisa de qualidade sem perdas para uso na web ou na tela, [PDF para PNG](./pdf-to-png) é uma escolha melhor.
+- Confira o conteúdo do ZIP se algumas páginas precisaram da alternativa em PNG: talvez você queira convertê-las separadamente.
+
+## Ferramentas Relacionadas
+
+- [PDF para PNG](./pdf-to-png)
+- [PDF para BMP](./pdf-to-bmp)
+- [PDF para JPG](./pdf-to-jpg)
diff --git a/docs/pt/tools/pdf-to-webp.md b/docs/pt/tools/pdf-to-webp.md
new file mode 100644
index 00000000..2ba884f2
--- /dev/null
+++ b/docs/pt/tools/pdf-to-webp.md
@@ -0,0 +1,43 @@
+---
+title: PDF para WebP
+description: Converta páginas de PDF em imagens WebP com qualidade ajustável. Arquivos menores que o JPG com qualidade visual comparável.
+---
+
+# PDF para WebP
+
+Converte cada página de um PDF em uma imagem WebP. O WebP costuma gerar arquivos 25-35% menores que o JPG com a mesma qualidade percebida, o que o torna uma ótima escolha para uso na web.
+
+## Como Funciona
+
+1. Envie um PDF clicando na área de soltar ou arrastando um arquivo para ela.
+2. Ajuste o controle deslizante de **Qualidade**.
+3. Clique em **Converter** para processar o arquivo.
+4. Um único arquivo `.webp` ou um arquivo ZIP é baixado automaticamente.
+
+## Opções
+
+- **Qualidade**: um controle deslizante de 0% a 100% (padrão 85%). Controla o nível de compressão com perdas. Valores mais altos retêm mais detalhes.
+
+Internamente, as páginas são renderizadas em escala 2x, gerando imagens com aproximadamente o dobro das dimensões nativas do PDF.
+
+## Formato de Saída
+
+- **Página única**: `filename.webp`
+- **Várias páginas**: `filename_webps.zip` contendo `page_1.webp`, `page_2.webp` etc.
+
+## Casos de Uso
+
+- Preparar pré-visualizações de páginas para sites em que a largura de banda importa.
+- Gerar versões de imagem leves de panfletos ou folhetos para redes sociais.
+- Converter em lote documentos de várias páginas em um conjunto de imagens otimizado para a web.
+
+## Dicas
+
+- O WebP é suportado em todos os navegadores modernos. Para compatibilidade com navegadores antigos, use [PDF para JPG](./pdf-to-jpg) como alternativa.
+- Uma qualidade de 80-85% costuma ser indistinguível do original na tela, mantendo os arquivos pequenos.
+
+## Ferramentas Relacionadas
+
+- [PDF para JPG](./pdf-to-jpg)
+- [PDF para PNG](./pdf-to-png)
+- [PDF para BMP](./pdf-to-bmp)
diff --git a/docs/pt/tools/pdf-to-word.md b/docs/pt/tools/pdf-to-word.md
new file mode 100644
index 00000000..4f3ef04e
--- /dev/null
+++ b/docs/pt/tools/pdf-to-word.md
@@ -0,0 +1,42 @@
+---
+title: PDF para Word
+description: Converta arquivos PDF em documentos editáveis do Word (DOCX). Suporta conversão em lote de vários PDFs de uma só vez.
+---
+
+# PDF para Word
+
+Converte arquivos PDF em documentos editáveis do Word (`.docx`). A ferramenta usa o PyMuPDF para reconstruir o conteúdo do documento, preservando o texto, a formatação básica e o layout. Suporta conversão individual e em lote.
+
+## Como Funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando arquivos para ela. Você pode adicionar mais arquivos ou remover arquivos individuais da lista.
+2. Clique em **Converter** para iniciar o processamento.
+3. Um único arquivo é baixado como `filename.docx`. Vários arquivos são empacotados em `converted-documents.zip`.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Cada PDF é convertido em DOCX usando o mecanismo de conversão integrado do PyMuPDF.
+
+## Formato de Saída
+
+- **Arquivo único**: `filename.docx`
+- **Vários arquivos**: `converted-documents.zip` contendo um `.docx` para cada PDF de entrada.
+
+## Casos de Uso
+
+- Editar o texto de um PDF que você recebeu e precisa modificar.
+- Converter relatórios arquivados em PDF para um formato que colegas possam editar no Microsoft Word ou no Google Docs.
+- Levar o conteúdo de contratos ou propostas em PDF para o Word para fazer revisões.
+- Migrar documentação legada em PDF para um formato editável.
+
+## Dicas
+
+- Layouts complexos com texto em várias colunas, formulários incorporados ou muitos gráficos podem não ser convertidos perfeitamente. Revise a saída e ajuste a formatação no seu processador de texto.
+- PDFs digitalizados (apenas imagem) geram arquivos DOCX vazios ou quase vazios. Passe-os primeiro por OCR para adicionar uma camada de texto.
+- O modo em lote é eficiente para converter pastas inteiras de PDFs: envie todos de uma vez.
+
+## Ferramentas Relacionadas
+
+- [PDF para Texto](./pdf-to-text)
+- [PDF para Markdown](./pdf-to-markdown)
+- [Construtor de fluxo de trabalho PDF](./pdf-workflow)
diff --git a/docs/pt/tools/pdf-to-zip.md b/docs/pt/tools/pdf-to-zip.md
new file mode 100644
index 00000000..b1d01bc4
--- /dev/null
+++ b/docs/pt/tools/pdf-to-zip.md
@@ -0,0 +1,41 @@
+---
+title: PDFs para ZIP
+description: Empacote vários arquivos PDF em um único arquivo ZIP para facilitar o compartilhamento e o armazenamento.
+---
+
+# PDFs para ZIP
+
+Reúna vários arquivos PDF em um único arquivo ZIP. É uma ferramenta de empacotamento simples: não há conversão, compressão nem modificação dos próprios PDFs.
+
+## Como Funciona
+
+1. Envie vários arquivos PDF usando a área de soltar.
+2. Revise a lista de arquivos. Remova os que você não quer incluir.
+3. Clique no botão de processar.
+4. Um arquivo ZIP com todos os PDFs enviados é baixado imediatamente.
+
+## Recursos
+
+- Aceita qualquer quantidade de arquivos PDF
+- Remoção individual de arquivos antes de criar o arquivo ZIP
+- Preserva os nomes originais dos arquivos dentro do ZIP
+- Nenhuma modificação no conteúdo dos PDFs: os arquivos são empacotados como estão
+- Exibe o nome e o tamanho de cada PDF enviado
+
+## Casos de Uso
+
+- Reunir um conjunto de faturas ou recibos para anexar a um e-mail
+- Empacotar entregas de um projeto (vários relatórios em PDF) para a passagem de bastão
+- Criar um único download para uma coleção de formulários ou modelos
+- Arquivar um lote de documentos em um único arquivo compactado
+
+## Dicas
+
+- O arquivo ZIP usa os nomes originais dos PDFs. Se houver arquivos com o mesmo nome, renomeie-os antes de enviar para evitar conflitos.
+- Esta ferramenta não comprime os próprios PDFs. Para reduzir o tamanho dos arquivos, passe-os primeiro por Comprimir PDF e depois empacote com esta ferramenta.
+
+## Ferramentas Relacionadas
+
+- [Mesclar PDF](./merge-pdf)
+- [Dividir PDF](./split-pdf)
+- [Comprimir PDF](./compress-pdf)
diff --git a/docs/pt/tools/pdf-workflow.md b/docs/pt/tools/pdf-workflow.md
new file mode 100644
index 00000000..e442fc36
--- /dev/null
+++ b/docs/pt/tools/pdf-workflow.md
@@ -0,0 +1,95 @@
+---
+title: Construtor de fluxo de trabalho PDF
+description: Crie pipelines personalizados de processamento de PDF de forma visual, conectando nós em um canvas. Encadeie operações como mesclar, comprimir, marca d'água e exportar.
+---
+
+# Construtor de fluxo de trabalho PDF
+
+O Construtor de fluxo de trabalho permite encadear várias operações de PDF em um único pipeline automatizado. Em vez de executar as ferramentas uma de cada vez, você monta um grafo visual de nós (entrada, processamento, saída) e executa tudo com um clique. Seus arquivos nunca saem do navegador.
+
+## Como Funciona
+
+A interface é dividida em três painéis: uma **caixa de nós** à esquerda, o **canvas** no centro e um **painel de configurações** à direita, que aparece ao selecionar um nó.
+
+1. **Adicione nós** clicando neles na barra lateral esquerda ou arrastando-os diretamente para o canvas. Use a barra de pesquisa no topo da caixa de nós para filtrar por nome.
+2. **Conecte os nós** arrastando de um soquete de saída (parte de baixo de um nó) até um soquete de entrada (parte de cima de outro nó). As conexões fluem de cima para baixo.
+3. **Defina as configurações** clicando em um nó para abrir seu painel de configurações à direita. Cada tipo de nó tem suas próprias opções (intervalos de páginas, controles de qualidade, senhas etc.).
+4. **Execute o fluxo de trabalho** clicando no botão **Executar** na barra de ferramentas. O mecanismo executa os nós em ordem topológica, processando um de cada vez em sequência. Uma barra de status na parte inferior acompanha o progresso.
+5. **Baixe os resultados**: o nó Download, no final, salva o PDF final (ou um ZIP, se vários arquivos forem produzidos).
+
+## Categorias de Nós
+
+Os nós são organizados em seis categorias, cada uma com uma cor no canvas:
+
+- **Entrada** (azul): Entrada PDF, Entrada de imagem, Word/Excel/PowerPoint para PDF e mais de 15 outros conversores de formato que alimentam o pipeline com arquivos.
+- **Editar e Anotar** (índigo): Recortar, Tons de Cinza, Inverter Cores, Marca d'água, Números de Página, Cabeçalho e Rodapé, Efeito de Scanner, Ajustar Cores, Cor de Fundo, Remover Páginas em Branco, Remover Anotações.
+- **Organizar e Gerenciar** (violeta): Mesclar, Dividir, Extrair Páginas, Girar, Excluir Páginas, Inverter, Adicionar Página em Branco, Dividir Páginas, N-Up, Ajustar Tamanho da Página, Combinar em Página Única, Livreto, Posterizar, Editar Metadados, Índice, OCR.
+- **Otimizar e Reparar** (âmbar): Comprimir, Rasterizar, Linearizar, Desinclinar, PDF para PDF/A, Fonte em Contorno, Reparar.
+- **Proteger PDF** (rosa): Criptografar, Descriptografar, Higienizar, Achatar, Assinar Digitalmente, Redigir.
+- **Saída** (verde-azulado): Download (detecta automaticamente PDF único ou ZIP), PDF para Imagens, PDF para Texto, PDF para DOCX, PDF para XLSX, PDF para CSV, PDF para SVG, PDF para Markdown, Extrair Imagens.
+
+## Salvando e Carregando Fluxos de Trabalho
+
+A barra de ferramentas oferece quatro opções de persistência:
+
+- **Salvar**: armazena o fluxo de trabalho atual como um modelo nomeado no armazenamento local do navegador. Você pode salvar vários modelos.
+- **Carregar**: abre uma janela com todos os modelos salvos. Clique em Carregar para restaurar um deles ou exclua os modelos de que não precisa mais.
+- **Exportar**: baixa o fluxo de trabalho como um arquivo `.json` para você compartilhá-lo ou fazer um backup.
+- **Importar**: carrega um arquivo de fluxo de trabalho `.json` do disco, restaurando todos os nós, posições e conexões.
+
+Os modelos persistem entre sessões no armazenamento local. Os arquivos JSON exportados são portáteis entre navegadores e máquinas.
+
+## Modelo de Execução
+
+O mecanismo cria um grafo de dependências a partir das suas conexões e executa os nós em ordem topológica. Se algum nó falhar, a execução é interrompida e o nó com falha é marcado em vermelho. Algumas regras a ter em mente:
+
+- Todo fluxo de trabalho precisa de pelo menos um nó de **Entrada** e um nó de **Saída**.
+- O mecanismo detecta dependências circulares e bloqueia a execução com um erro.
+- O nó **Criptografar** deve ser a última etapa de processamento antes do nó de saída. Colocá-lo antes dispara um aviso de validação, pois os nós seguintes não conseguem operar com dados criptografados.
+- PDFs protegidos por senha pedem a senha durante a execução.
+- Entradas com vários PDFs são suportadas: o nó Mesclar pode combiná-los, ou os nós de processamento em lote processarão cada PDF individualmente.
+
+## Tipos de Soquete
+
+As conexões usam soquetes tipados para evitar ligações inválidas:
+
+- **PDF** (índigo): um único documento PDF.
+- **MultiPDF** (âmbar): vários documentos PDF agrupados.
+- **Image** (verde): um blob de imagem.
+
+## Opções
+
+Cada nó tem sua própria configuração, acessível pelo painel de configurações à direita. Alguns padrões comuns:
+
+- **Intervalos de páginas** nos nós Dividir, Extrair Páginas e Excluir Páginas
+- **Controles de qualidade** nos nós de saída de conversão para imagem
+- **Campos de senha** nos nós Criptografar e Descriptografar
+- **Campos de texto** para Marca d'água, Cabeçalho e Rodapé e Editar Metadados
+- **Ângulos de rotação** no nó Girar
+- **Nível de compressão** no nó Comprimir
+- **Seleção de idioma do OCR** no nó OCR
+
+## Casos de Uso
+
+- **Pipeline de processamento de faturas**: Entrada PDF -> OCR -> Extrair Tabelas -> Download como CSV.
+- **Padronização de relatórios**: Word para PDF -> Ajustar Tamanho da Página -> Adicionar Números de Página -> Marca d'água -> Comprimir -> Download.
+- **Preparação para arquivamento**: Entrada PDF -> Reparar -> Achatar -> Higienizar -> PDF para PDF/A -> Download.
+- **Extração de imagens em lote**: Entrada PDF (vários arquivos) -> Extrair Imagens -> Download do ZIP.
+- **Livretos prontos para impressão**: Entrada PDF -> Livreto -> Recortar -> Comprimir -> Download.
+- **Distribuição segura**: Entrada PDF -> Redigir -> Remover Anotações -> Criptografar -> Download.
+
+## Dicas
+
+- Use **Delete** ou **Backspace** para remover do canvas o nó selecionado.
+- Clique no botão **X** na barra de status de um nó para excluí-lo diretamente.
+- Mova o canvas clicando e arrastando em um espaço vazio. O cursor muda para um ícone de mão enquanto você move.
+- No celular, use o botão **+** na barra de ferramentas para alternar a caixa de nós.
+- Se o fluxo de trabalho produzir vários arquivos de saída, o nó Download os agrupa automaticamente em um ZIP.
+- Comece de forma simples: monte e teste um pipeline de dois nós antes de aumentar a complexidade.
+
+## Ferramentas Relacionadas
+
+- [PDF para Texto](./pdf-to-text)
+- [PDF para Excel](./pdf-to-excel)
+- [Extrair Imagens](./extract-images)
+- [PDF para Markdown](./pdf-to-markdown)
diff --git a/docs/pt/tools/png-to-pdf.md b/docs/pt/tools/png-to-pdf.md
new file mode 100644
index 00000000..051cc663
--- /dev/null
+++ b/docs/pt/tools/png-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: PNG para PDF
+description: Converta uma ou mais imagens PNG em um documento PDF com qualidade ajustável, inteiramente no seu navegador.
+---
+
+# PNG para PDF
+
+Converta imagens PNG em PDF preservando a resolução total. Cada PNG vira uma página própria, com o tamanho igual ao das dimensões originais da imagem. A transparência é tratada automaticamente.
+
+## Formatos Suportados
+
+| Formato | Extensões |
+| :------ | :-------- |
+| PNG | `.png` |
+
+## Como Funciona
+
+1. Clique na área de envio ou arraste e solte arquivos PNG. Você pode selecionar vários de uma vez.
+2. Gerencie a lista de arquivos: remova os indesejados ou adicione mais.
+3. Escolha um nível de **Qualidade do PDF** na lista suspensa.
+4. Clique em **Converter para PDF**. A saída é baixada como `from_jpgs.pdf`.
+
+A ferramenta usa o pdf-lib para incorporar cada imagem diretamente. Se um PNG não puder ser incorporado de forma nativa (por exemplo, por causa de um perfil de cor incomum), ele é renderizado novamente em um canvas como JPEG.
+
+## Opções
+
+A **Qualidade do PDF** controla a compressão aplicada antes da incorporação:
+
+- **Alta Qualidade**: compressão mínima, maior tamanho de arquivo.
+- **Qualidade Média** (padrão): bom equilíbrio entre tamanho e nitidez.
+- **Baixa Qualidade**: compressão máxima, menor saída.
+
+## Casos de Uso
+
+- Converter capturas de tela em um PDF de várias páginas para relatórios de bugs ou documentação
+- Empacotar exportações de design de interface em um único arquivo para revisão
+- Transformar exportações de diagramas (draw.io, Excalidraw) em um PDF compartilhável
+- Reunir um conjunto de imagens de gráficos em um relatório
+
+## Dicas
+
+- Arquivos PNG com transparência recebem um fundo branco no PDF. Se você precisar de outro fundo, edite as imagens antes.
+- Para capturas de tela e diagramas com bordas nítidas e texto, a qualidade Alta evita artefatos de compressão JPEG. Média ou Baixa podem converter para JPEG internamente.
+
+## Ferramentas Relacionadas
+
+- [Imagem para PDF](./image-to-pdf)
+- [JPG para PDF](./jpg-to-pdf)
+- [SVG para PDF](./svg-to-pdf)
diff --git a/docs/pt/tools/posterize-pdf.md b/docs/pt/tools/posterize-pdf.md
new file mode 100644
index 00000000..f118aa1d
--- /dev/null
+++ b/docs/pt/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Posterizar PDF
+description: Divida as páginas do PDF em uma grade de páginas menores para impressão em grande formato em várias folhas.
+---
+
+# Posterizar PDF
+
+Divida cada página de um PDF em uma grade de subpáginas menores. Esta é a ferramenta para imprimir uma única página em várias folhas de papel, que você depois junta para formar um pôster ou banner grande.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Defina o número de **linhas** e **colunas** da grade (por exemplo, 2 linhas x 2 colunas divide cada página em 4 subpáginas).
+3. Opcionalmente, informe um intervalo de páginas para limitar quais páginas serão posterizadas.
+4. A tela de pré-visualização mostra uma grade sobre a página atual para você visualizar os cortes.
+5. Navegue entre as páginas para conferir a grade em páginas diferentes.
+6. Clique no botão de processar. Cada célula da grade vira uma página própria no PDF de saída.
+
+## Recursos
+
+- Número de linhas e colunas configurável para grades flexíveis
+- Pré-visualização ao vivo com a grade mostrando exatamente onde as páginas serão divididas
+- Filtro de intervalo de páginas para posterizar apenas páginas específicas
+- Navegação página a página na pré-visualização
+- Capturas de página em cache para navegação rápida na pré-visualização
+- Linhas tracejadas vermelhas marcam claramente os limites de corte
+
+## Opções
+
+| Opção | Descrição |
+| ------------------------ | --------------------------------------------------- |
+| **Linhas** | Número de divisões horizontais (padrão: 1) |
+| **Colunas** | Número de divisões verticais (padrão: 1) |
+| **Intervalo de páginas** | Quais páginas posterizar (vazio = todas as páginas) |
+
+## Casos de uso
+
+- Imprimir um PDF do tamanho de um pôster em folhas A4 ou Carta comuns para montar na parede
+- Criar banners grandes a partir de um design de uma única página
+- Dividir desenhos técnicos grandes em blocos imprimíveis
+- Fazer impressões em grande formato sem acesso a uma impressora de grande formato
+
+## Dicas
+
+- Uma grade 2x2 transforma uma página em 4 páginas. Uma grade 3x3 transforma uma página em 9. Planeje a grade conforme o tamanho final que você quer na montagem.
+- A grade na pré-visualização ajuda a verificar se conteúdo importante não cai em uma linha de corte. Ajuste linhas/colunas se necessário.
+- Para a operação inversa (colocar várias páginas em uma folha), use [PDF N-Up](./n-up-pdf).
+
+## Ferramentas relacionadas
+
+- [PDF N-Up](./n-up-pdf)
+- [Dividir Páginas](./divide-pages)
+- [Dividir PDF](./split-pdf)
diff --git a/docs/pt/tools/powerpoint-to-pdf.md b/docs/pt/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..578d396e
--- /dev/null
+++ b/docs/pt/tools/powerpoint-to-pdf.md
@@ -0,0 +1,55 @@
+---
+title: PowerPoint para PDF
+description: Converta apresentações do PowerPoint (PPT, PPTX) e arquivos ODP em PDF mantendo a formatação dos slides.
+---
+
+# PowerPoint para PDF
+
+Converta arquivos de apresentação em PDF. Cada slide vira uma página no documento de saída, com texto, imagens, formas e transições renderizados por um mecanismo LibreOffice no navegador. Suporta formatos modernos e legados do PowerPoint, além do formato OpenDocument Presentation.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :------------------------ | :-------- |
+| PowerPoint (moderno) | `.pptx` |
+| PowerPoint (legado) | `.ppt` |
+| OpenDocument Presentation | `.odp` |
+
+## Como funciona
+
+1. Clique na área de envio ou arraste e solte seus arquivos de apresentação.
+2. Revise a lista de arquivos. Adicione mais ou remova conforme necessário.
+3. Clique em **Converter para PDF**. O mecanismo LibreOffice é carregado no primeiro uso e depois converte cada arquivo.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são empacotados em `powerpoint-converted.zip`.
+
+## Opções
+
+Esta ferramenta não tem configurações adicionais. Os slides são renderizados em suas dimensões originais.
+
+## Saída
+
+| Quantidade de entrada | Saída |
+| :-------------------- | :-------------------------------------------------------------- |
+| 1 arquivo | Download de um único PDF (nome original com extensão `.pdf`) |
+| 2+ arquivos | Arquivo ZIP (`powerpoint-converted.zip`) com um PDF por arquivo |
+
+## Casos de uso
+
+- Converter uma apresentação em PDF antes de compartilhar com um público que pode não ter o PowerPoint
+- Criar uma versão imprimível de uma apresentação para uma conferência ou workshop
+- Arquivar apresentações em um formato que é exibido de forma idêntica em qualquer dispositivo
+- Converter em lote uma biblioteca de apresentações ODP do LibreOffice Impress em PDF
+- Gerar uma versão em PDF de um pitch deck para enviar por e-mail
+
+## Dicas
+
+- Animações e transições de slides não são representadas no PDF. Cada slide é capturado como uma página estática.
+- Vídeos incorporados não aparecem na saída. Substitua-os por uma captura de tela ou imagem de substituição, se necessário.
+- As notas do apresentador não são incluídas na exportação padrão para PDF. Se precisar das notas, considere exportar antes pela visualização nativa "Imprimir Notas" do PowerPoint.
+- O mecanismo LibreOffice fica em cache após o primeiro carregamento, então converter uma segunda apresentação na mesma sessão é muito mais rápido.
+
+## Ferramentas relacionadas
+
+- [Word para PDF](./word-to-pdf)
+- [Excel para PDF](./excel-to-pdf)
+- [Imagem para PDF](./image-to-pdf)
diff --git a/docs/pt/tools/prepare-pdf-for-ai.md b/docs/pt/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..07d1a0e6
--- /dev/null
+++ b/docs/pt/tools/prepare-pdf-for-ai.md
@@ -0,0 +1,47 @@
+---
+title: Preparar PDF para IA
+description: Extraia o conteúdo do PDF para JSON estruturado, otimizado para LLMs e pipelines de IA como o LlamaIndex. Suporta processamento em lote.
+---
+
+# Preparar PDF para IA
+
+Extrai o conteúdo de arquivos PDF e o estrutura como JSON otimizado para ingestão por modelos de linguagem (LLMs) e frameworks de IA como o LlamaIndex. O conteúdo de cada página é extraído e organizado em um formato estruturado, pronto para pipelines RAG, chatbots ou sistemas de busca semântica.
+
+## Como funciona
+
+1. Envie um ou mais PDFs clicando na área de soltar ou arrastando os arquivos para ela.
+2. Clique em **Extrair** para iniciar o processamento.
+3. Um único arquivo é baixado como `filename_llm.json`. Vários arquivos geram um arquivo `pdf-for-ai.zip`.
+
+A ferramenta usa a integração do PyMuPDF com o LlamaIndex para extrair o conteúdo por página com metadados, produzindo uma saída que pode ser carregada diretamente em frameworks de IA.
+
+## Opções
+
+Esta ferramenta não tem opções configuráveis. Todas as páginas são extraídas com texto completo e metadados.
+
+## Formato de saída
+
+- **Um arquivo**: `filename_llm.json`
+- **Vários arquivos**: `pdf-for-ai.zip` contendo um `_llm.json` por PDF de entrada.
+
+A saída JSON segue o esquema de documento do LlamaIndex, com o texto de cada página e campos de metadados.
+
+## Casos de uso
+
+- Preparar documentos PDF para pipelines de geração aumentada por recuperação (RAG).
+- Criar uma base de conhecimento pesquisável a partir de arquivos PDF para um chatbot de IA.
+- Alimentar relatórios em PDF em fluxos de análise baseados em LLM.
+- Pré-processar artigos científicos para busca semântica e sistemas de perguntas e respostas.
+- Criar dados de treinamento estruturados a partir de coleções de documentos PDF.
+
+## Dicas
+
+- Para extração de texto simples, sem formatação específica para IA, use [PDF para Texto](./pdf-to-text).
+- Para uma saída em Markdown que preserve títulos e estrutura, use [PDF para Markdown](./pdf-to-markdown).
+- PDFs digitalizados produzem saída vazia ou mínima. Passe-os antes por OCR para adicionar uma camada de texto antes da extração.
+
+## Ferramentas relacionadas
+
+- [PDF para Texto](./pdf-to-text)
+- [PDF para Markdown](./pdf-to-markdown)
+- [PDF para JSON](./pdf-to-json)
diff --git a/docs/pt/tools/protect-pdf.md b/docs/pt/tools/protect-pdf.md
new file mode 100644
index 00000000..489bbd9d
--- /dev/null
+++ b/docs/pt/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Proteger PDF
+description: Proteja arquivos PDF com senha usando criptografia AES de 256 bits. Defina senhas de usuário e de proprietário com restrições de uso configuráveis.
+---
+
+# Proteger PDF
+
+Bloqueie seu PDF com uma senha para que só pessoas autorizadas possam abri-lo. O BentoPDF usa criptografia AES de 256 bits, o mesmo padrão usado por bancos e órgãos governamentais, aplicada inteiramente no seu navegador via QPDF.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Digite uma **Senha de usuário** (obrigatória). É a senha que as pessoas precisarão para abrir o arquivo.
+3. Opcionalmente, digite uma **Senha de proprietário**. Quando definida, o PDF ganha restrições de uso que impedem imprimir, editar, copiar e anotar.
+4. Clique em **Criptografar PDF**.
+5. Baixe o arquivo criptografado.
+
+## Tipos de senha
+
+### Senha de usuário (obrigatória)
+
+A senha de usuário é o que os destinatários digitam para abrir o PDF. Sem ela, o documento fica totalmente inacessível. Todo PDF criptografado precisa de uma.
+
+### Senha de proprietário (opcional)
+
+A senha de proprietário controla o que um usuário autorizado pode fazer depois de abrir o arquivo. Quando você define uma senha de proprietário diferente, o BentoPDF aplica automaticamente o conjunto de restrições mais rígido:
+
+- Modificação desativada
+- Extração/cópia desativada
+- Impressão desativada
+- Anotação desativada
+- Preenchimento de formulários desativado
+- Montagem de documento desativada
+
+Se você deixar a senha de proprietário em branco, o PDF é criptografado (ainda exige a senha de usuário para abrir), mas não tem restrições de uso depois de aberto.
+
+## Detalhes da criptografia
+
+- **Algoritmo**: AES-256 (Advanced Encryption Standard de 256 bits)
+- **Tamanho da chave**: 256 bits
+- **Padrão**: criptografia PDF 2.0 (implementação do QPDF)
+
+Com a tecnologia atual, é computacionalmente inviável quebrar o AES-256 por força bruta. A segurança do seu PDF criptografado depende inteiramente da força da sua senha.
+
+## Casos de uso
+
+- Proteger relatórios financeiros confidenciais antes de enviá-los por e-mail
+- Proteger documentos jurídicos compartilhados com a parte contrária
+- Adicionar senha a prontuários médicos ou informações de identificação pessoal
+- Distribuir conteúdo pago (e-books, relatórios) com controle de acesso
+- Cumprir políticas de proteção de dados que exigem criptografia em repouso
+
+## Dicas
+
+- Use uma senha forte e exclusiva. Uma frase-senha de 12 ou mais caracteres com maiúsculas, minúsculas, números e símbolos é o ideal.
+- Compartilhe a senha por um canal separado (telefone, mensagem de texto), nunca no mesmo e-mail do PDF.
+- Se você só precisa restringir ações (sem imprimir, sem copiar) sem exigir senha para abrir, use a ferramenta Alterar Permissões.
+
+## Ferramentas relacionadas
+
+- [Descriptografar PDF](./unlock-pdf): remova a criptografia quando você souber a senha
+- [Alterar Permissões](./change-permissions): modifique restrições de uso específicas
+- [Remover Restrições](./remove-restrictions): remova toda a segurança de um PDF
+- [Sanitizar PDF](./sanitize-pdf): remova conteúdo oculto antes de criptografar
diff --git a/docs/pt/tools/psd-to-pdf.md b/docs/pt/tools/psd-to-pdf.md
new file mode 100644
index 00000000..b1b0cb58
--- /dev/null
+++ b/docs/pt/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD para PDF
+description: Converta arquivos do Photoshop (PSD) em PDF no seu navegador. Grátis, privado, sem precisar de software da Adobe.
+---
+
+# PSD para PDF
+
+Converta arquivos PSD do Adobe Photoshop em documentos PDF. O PSD é o formato nativo do Photoshop, e abri-lo normalmente exige um software caro da Adobe. Esta ferramenta renderiza o composto achatado do seu arquivo PSD como uma página PDF em resolução total.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :-------------- | :------- | :----------------------------------- |
+| Adobe Photoshop | `.psd` | Renderiza a imagem composta achatada |
+
+## Como funciona
+
+1. Clique na área de envio ou arraste e solte seus arquivos PSD. Vários arquivos são suportados.
+2. Revise a lista de arquivos. Remova arquivos indesejados com o ícone de lixeira ou use **Adicionar mais arquivos** para incluir outros.
+3. Clique em **Converter para PDF**. O mecanismo PyMuPDF lê o arquivo PSD e incorpora a imagem composta em uma página PDF na resolução original.
+4. Um único PSD gera um PDF. Quando você envia vários arquivos PSD, eles são combinados em um único PDF de várias páginas chamado `psd_to_pdf.pdf`, com cada PSD virando uma página.
+
+## Opções
+
+Nenhuma configuração é necessária. O conversor usa os dados da imagem achatada do arquivo PSD.
+
+## Casos de uso
+
+- Visualizar designs do Photoshop sem abrir o Photoshop
+- Enviar provas de design a clientes que não têm o Adobe Creative Suite
+- Imprimir artes em alta resolução a partir de arquivos PSD
+- Criar um portfólio em PDF a partir de vários arquivos de design PSD: cada um vira uma página em um único documento
+
+## Dicas
+
+- A conversão renderiza a visualização composta (achatada) do PSD. Camadas individuais, camadas de ajuste e efeitos de camada não são preservados como elementos separados no PDF.
+- Vários arquivos PSD são mesclados em um PDF de várias páginas, em vez de PDFs individuais. Isso é útil para montar portfólios ou lookbooks.
+- Arquivos PSD de resolução muito alta (arquivos de impressão de 300+ DPI) geram PDFs grandes. A ferramenta preserva a resolução total.
+
+## Ferramentas relacionadas
+
+- [Imagem para PDF](./image-to-pdf)
+- [PNG para PDF](./png-to-pdf)
+- [VSD para PDF](./vsd-to-pdf)
diff --git a/docs/pt/tools/pub-to-pdf.md b/docs/pt/tools/pub-to-pdf.md
new file mode 100644
index 00000000..5648a02c
--- /dev/null
+++ b/docs/pt/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB para PDF
+description: Converta arquivos do Microsoft Publisher (PUB) em PDF no seu navegador. Grátis, privado, sem precisar de software.
+---
+
+# PUB para PDF
+
+Converta arquivos do Microsoft Publisher em PDF. O Publisher é uma ferramenta de editoração eletrônica incluída em algumas edições do Microsoft Office, mas a maioria das pessoas não o tem instalado. Esta ferramenta permite que qualquer pessoa converta arquivos PUB em PDF direto no navegador, sem nenhum software da Microsoft.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :------------------ | :------- | :---------------------------------- |
+| Microsoft Publisher | `.pub` | Documentos de editoração eletrônica |
+
+## Como funciona
+
+1. Clique na área de envio ou arraste e solte seus arquivos PUB. Vários arquivos podem ser enviados de uma vez.
+2. Revise a lista de arquivos. Remova arquivos indesejados com o ícone de lixeira ou clique em **Adicionar mais arquivos** para incluir outros.
+3. Clique em **Converter para PDF**. Um mecanismo baseado em LibreOffice é carregado no navegador e converte cada arquivo PUB, preservando layout, imagens e caixas de texto.
+4. Um arquivo é baixado diretamente como PDF. Vários arquivos são entregues em um arquivo ZIP chamado `pub-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração adicional é necessária. O conversor cuida do mecanismo de layout do PUB automaticamente.
+
+## Casos de uso
+
+- Abrir um folheto ou boletim em PUB de um cliente sem comprar o Microsoft Publisher
+- Converter boletins de igrejas, programas de eventos ou jornais escolares criados no Publisher
+- Arquivar materiais de marketing do Publisher em um formato acessível a todos
+- Imprimir arquivos PUB em um sistema que não tem o Publisher instalado
+
+## Dicas
+
+- Layouts complexos do Publisher, com caixas de texto sobrepostas e posicionamento preciso, podem se deslocar um pouco durante a conversão. Revise a saída se o posicionamento exato for crítico.
+- O mecanismo LibreOffice é inicializado uma vez por sessão. A primeira conversão demora mais; as seguintes são mais rápidas.
+- Para uma conversão mais fiel de arquivos do Publisher, garanta que as fontes personalizadas usadas no original sejam fontes padrão do sistema.
+
+## Ferramentas relacionadas
+
+- [VSD para PDF](./vsd-to-pdf)
+- [ODP para PDF](./odp-to-pdf)
diff --git a/docs/pt/tools/rasterize-pdf.md b/docs/pt/tools/rasterize-pdf.md
new file mode 100644
index 00000000..4d05318c
--- /dev/null
+++ b/docs/pt/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Rasterizar PDF
+description: Converta páginas de PDF em PDF baseado em imagem. Achate todas as camadas, remova texto selecionável e controle o DPI e o formato da imagem.
+---
+
+# Rasterizar PDF
+
+A rasterização converte cada página de um PDF em uma imagem e remonta essas imagens em um PDF. O resultado é idêntico ao original, mas não tem texto selecionável, elementos interativos nem camadas editáveis. É, na prática, uma fotocópia de alta qualidade.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF.
+2. Defina o **DPI** (resolução) da saída rasterizada.
+3. Escolha um **Formato da imagem**: PNG para qualidade sem perdas ou JPEG para arquivos menores.
+4. Opcionalmente, marque **Converter para tons de cinza**.
+5. Clique em **Rasterizar PDF**. Vários arquivos são baixados em um ZIP.
+
+## Opções
+
+| Configuração | Valores | Padrão |
+| --------------------- | ------------------------------ | --------- |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Formato da imagem** | PNG (sem perdas), JPEG (menor) | PNG |
+| **Tons de cinza** | Ligado/Desligado | Desligado |
+
+## Orientações de DPI
+
+- **72**: apenas visualização em tela, menor tamanho de arquivo
+- **150**: bom equilíbrio para uso geral
+- **200**: texto mais nítido, tamanho de arquivo moderado
+- **300**: saída com qualidade de impressão
+- **600**: arquivamento de alta qualidade ou impressão profissional
+
+## Casos de uso
+
+- Impedir a extração de texto de documentos confidenciais antes de compartilhar
+- Eliminar problemas de dependência de fontes convertendo o texto em pixels
+- Criar uma versão "plana" de um PDF com camadas complexas ou transparência que é exibida de forma diferente em cada leitor
+- Preparar um PDF para um sistema que só aceita entrada baseada em imagem
+- Remover conteúdo oculto (como alterações controladas ou dados de formulário) reduzindo o PDF a imagens puras
+
+## Dicas
+
+- 150 DPI em PNG é um bom padrão. Só aumente se precisar de saída para impressão ou de zoom em detalhes finos.
+- O JPEG produz arquivos visivelmente menores, mas introduz artefatos de compressão nas bordas nítidas do texto.
+- A rasterização é irreversível: guarde o PDF original caso precise de texto editável depois.
+
+## Ferramentas relacionadas
+
+- [Comprimir PDF](./compress-pdf): reduza o tamanho do PDF rasterizado
+- [Desinclinar PDF](./deskew-pdf): endireite as páginas antes de rasterizar documentos digitalizados
+- [Fonte para Contorno](./font-to-outline): converta fontes em caminhos vetoriais se quiser manter a escalabilidade
+- [Achatar PDF (Flatten)](./flatten-pdf): achate formulários sem converter em imagens
diff --git a/docs/pt/tools/remove-annotations.md b/docs/pt/tools/remove-annotations.md
new file mode 100644
index 00000000..2c1efb37
--- /dev/null
+++ b/docs/pt/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Remover anotações
+description: Remova todos os comentários, destaques, links e outras anotações do seu PDF com um clique.
+---
+
+# Remover anotações
+
+Limpe seu PDF removendo todas as anotações: comentários, destaques, notas adesivas, marcações de texto, links, carimbos e qualquer outro objeto de anotação incorporado ao documento. O conteúdo da página (texto, imagens, gráficos) permanece intacto.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. A ferramenta detecta o número de páginas do documento e exibe as informações do arquivo.
+3. Clique em **Remover Anotações** para processar.
+4. O PDF limpo é baixado automaticamente, sem nenhuma anotação.
+
+## Recursos
+
+- Remove todos os tipos de anotação: comentários, destaques, sublinhados, tachados, notas adesivas, carimbos, links e marcações de formulário
+- Atua em todas as páginas do documento
+- Preserva todo o conteúdo que não é anotação (texto, imagens, gráficos vetoriais, campos de formulário)
+- Exibe a contagem de páginas e o tamanho do arquivo antes de processar
+
+## Casos de uso
+
+- Limpar um documento antes da distribuição final, depois de uma rodada de revisão em que vários revisores adicionaram comentários
+- Remover destaques e notas adesivas de um material de estudo compartilhado
+- Remover anotações de link de um documento antes de arquivá-lo
+- Preparar uma versão "limpa" de um documento jurídico muito anotado durante a negociação
+- Remover comentários de revisores de um manuscrito antes de enviá-lo para impressão
+
+## Dicas
+
+- Esta ferramenta remove as anotações no nível da estrutura do PDF, então o resultado mantém o texto selecionável e a qualidade original, sem rasterização.
+- Se você quiser remover apenas anotações específicas, e não todas, use o [Editor de PDF](./edit-pdf) para excluir anotações individualmente.
+- Anotações em PDFs achatados (em que as anotações foram mescladas ao conteúdo da página) não podem ser removidas, pois deixaram de ser objetos separados.
+
+## Ferramentas relacionadas
+
+- [Editor de PDF](./edit-pdf)
+- [Adicionar Marca d'Água](./add-watermark)
+- [Assinar PDF](./sign-pdf)
diff --git a/docs/pt/tools/remove-blank-pages.md b/docs/pt/tools/remove-blank-pages.md
new file mode 100644
index 00000000..a079d0ac
--- /dev/null
+++ b/docs/pt/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Remover páginas em branco
+description: Detecte e remova automaticamente páginas em branco ou quase em branco do seu PDF, com sensibilidade ajustável.
+---
+
+# Remover páginas em branco
+
+Analise seu PDF em busca de páginas em branco ou quase em branco e remova-as automaticamente. A ferramenta renderiza cada página e analisa o conteúdo dos pixels para determinar se está em branco, e depois deixa você confirmar quais páginas remover antes de processar.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. Ajuste o controle deslizante de **Sensibilidade** para definir o rigor com que "em branco" é definido.
+3. Clique em **Detectar Páginas em Branco** para analisar o documento.
+4. A ferramenta mostra miniaturas das páginas em branco detectadas para você revisar.
+5. Confirme a seleção e baixe o PDF limpo, sem as páginas em branco.
+
+## Opções
+
+- **Sensibilidade**: um controle deslizante de 0% a 100% (padrão 80%). Valores mais altos são mais rigorosos e só marcam páginas completamente ou quase brancas. Valores mais baixos são mais permissivos e pegam páginas com conteúdo mínimo, como um único ponto ou uma marca d'água discreta.
+
+## Recursos
+
+- Análise em nível de pixel de cada página para detectar conteúdo em branco
+- Controle deslizante de sensibilidade ajustável para refinar a detecção
+- Pré-visualização em miniatura das páginas em branco detectadas para verificação manual
+- Preserva todas as páginas que não estão em branco exatamente como estão
+- Lida com documentos de qualquer tamanho ou número de páginas
+- Indicação de progresso durante a análise
+
+## Casos de uso
+
+- Limpar documentos digitalizados em que o scanner capturou versos vazios de originais de face única
+- Remover páginas separadoras de lotes de documentos digitalizados em massa
+- Remover páginas em branco inseridas por sistemas de gerenciamento de documentos
+- Limpar PDFs exportados de processadores de texto que às vezes incluem páginas em branco no final
+- Reduzir o tamanho do arquivo removendo páginas vazias desnecessárias
+
+## Dicas
+
+- Comece com a sensibilidade padrão de 80% e ajuste a partir daí. Se a ferramenta deixar passar páginas que parecem em branco para você, diminua a sensibilidade. Se ela marcar páginas com conteúdo leve que você quer manter, aumente.
+- A ferramenta renderiza cada página para analisar o conteúdo, então o tempo de processamento cresce com o número de páginas. Em documentos muito grandes, espere uma pequena espera.
+- Revise as páginas em branco detectadas na pré-visualização em miniatura antes de confirmar a remoção. Páginas com cabeçalhos, rodapés ou marcas d'água discretos podem ser marcadas, dependendo da sensibilidade.
+
+## Ferramentas relacionadas
+
+- [Cortar PDF](./crop-pdf)
+- [Editor de PDF](./edit-pdf)
+- [Números de Página](./page-numbers)
diff --git a/docs/pt/tools/remove-metadata.md b/docs/pt/tools/remove-metadata.md
new file mode 100644
index 00000000..70ef86a5
--- /dev/null
+++ b/docs/pt/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Remover metadados
+description: Remova todos os metadados ocultos de arquivos PDF, incluindo autor, título, data de criação, produtor, dados XMP e IDs do documento.
+---
+
+# Remover metadados
+
+Todo PDF carrega metadados que podem revelar quem o criou, qual software foi usado, quando foi modificado pela última vez e mais. Esta ferramenta remove tudo isso (o dicionário de informações, os fluxos de metadados XMP, os IDs do documento e os dados específicos de aplicativos), deixando um documento limpo, sem nenhum rastro de sua origem.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Clique em **Remover Metadados**.
+3. Baixe o arquivo limpo.
+
+Não há opções para configurar. A ferramenta é completa por design: ela limpa tudo.
+
+## O que é removido
+
+- **Campos do dicionário de informações**: Título, Autor, Assunto, Palavras-chave, Criador, Produtor, data de criação, data de modificação
+- **Fluxo de metadados XMP**: o bloco de metadados baseado em XML armazenado no catálogo do documento
+- **IDs do documento**: identificadores exclusivos no trailer do PDF que podem ser usados para rastrear um documento entre sistemas
+- **PieceInfo**: metadados específicos de aplicativos adicionados por programas como Illustrator ou InDesign
+
+## O que permanece
+
+- Todo o conteúdo visível da página (texto, imagens, gráficos)
+- Campos de formulário e anotações
+- Favoritos e links
+- A própria estrutura do documento
+
+## Casos de uso
+
+- Remover seu nome e sua organização de um documento antes de publicá-lo anonimamente
+- Remover carimbos de data de criação que revelam quando um documento foi preparado
+- Limpar strings de produtor que identificam o software de PDF que você usa
+- Preparar documentos para envios regulatórios que exigem PDFs sem metadados
+- Remover rastros do histórico de edição antes de compartilhar um documento externamente
+
+## Dicas
+
+- Use primeiro a ferramenta Ver Metadados para ver exatamente quais metadados seu PDF contém antes de removê-los.
+- Se você precisa remover metadados _e_ JavaScript, anotações e arquivos incorporados, use Sanitizar PDF para uma limpeza mais completa.
+- A remoção de metadados é permanente. Guarde o original caso precise desses dados depois.
+
+## Ferramentas relacionadas
+
+- [Sanitizar PDF](./sanitize-pdf): remova metadados, além de scripts, anexos e mais
+- [Criptografar PDF](./protect-pdf): proteja o PDF limpo com uma senha
+- [Comprimir PDF](./compress-pdf): remover metadados pode reduzir levemente o tamanho do arquivo; comprima para economizar mais
diff --git a/docs/pt/tools/remove-restrictions.md b/docs/pt/tools/remove-restrictions.md
new file mode 100644
index 00000000..91f69428
--- /dev/null
+++ b/docs/pt/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Remover restrições
+description: Remova a proteção por senha, restrições de impressão, bloqueios de edição e limites de cópia de arquivos PDF.
+---
+
+# Remover restrições
+
+Os PDFs podem ter dois tipos de senha: uma senha de usuário (necessária para abrir o arquivo) e uma senha de proprietário (controla o que você pode fazer com ele). Esta ferramenta remove ambas, junto com todas as restrições associadas: bloqueios de impressão, edição, cópia e anotação.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Se o PDF tiver uma senha de proprietário, digite-a no campo **Senha de proprietário**. Deixe em branco se o PDF tiver apenas restrições de uso sem senha.
+3. Clique em **Remover Restrições**.
+4. Baixe o PDF sem restrições.
+
+A ferramenta usa as flags `--decrypt` e `--remove-restrictions` do QPDF para produzir uma cópia limpa e sem restrições.
+
+## O que é removido
+
+- Proteção por senha (senhas de usuário e de proprietário)
+- Restrições de impressão
+- Restrições de edição
+- Restrições de cópia de texto e imagens
+- Restrições de anotação e comentários
+- Todas as outras limitações de segurança codificadas no PDF
+
+## Casos de uso
+
+- Desbloquear um PDF seu cuja senha você definiu anos atrás
+- Remover restrições de impressão de um documento ao qual você tem acesso legítimo
+- Permitir copiar e colar em materiais de referência para anotações
+- Preparar PDFs para ferramentas de acessibilidade que não lidam com documentos restritos
+
+## Dicas
+
+- Você precisa saber a senha de proprietário, se houver uma. Esta ferramenta não quebra nem tenta adivinhar senhas por força bruta.
+- Se você precisa manter o arquivo criptografado, mas alterar permissões específicas, use a ferramenta Alterar Permissões.
+- O arquivo de saída não tem nenhuma criptografia: qualquer pessoa que o receber pode abri-lo livremente.
+
+## Ferramentas relacionadas
+
+- [Descriptografar PDF](./unlock-pdf): desbloqueie um PDF quando você souber a senha de usuário
+- [Criptografar PDF](./protect-pdf): aplique a criptografia novamente com novas configurações
+- [Alterar Permissões](./change-permissions): modifique seletivamente quais ações são permitidas
diff --git a/docs/pt/tools/repair-pdf.md b/docs/pt/tools/repair-pdf.md
new file mode 100644
index 00000000..b529b9e5
--- /dev/null
+++ b/docs/pt/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Reparar PDF
+description: Recupere dados de arquivos PDF corrompidos ou danificados usando o mecanismo de reparo do QPDF. Suporta processamento em lote.
+---
+
+# Reparar PDF
+
+Quando um PDF se recusa a abrir, exibe conteúdo embaralhado ou gera erros no seu leitor, esta ferramenta tenta reconstruir sua estrutura interna. Ela usa o mecanismo de reparo do QPDF, que consegue recuperar dados de muitos tipos de corrupção: tabelas de referência cruzada quebradas, fluxos truncados, referências de objeto inválidas e mais.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF danificados.
+2. Clique em **Reparar PDF**.
+3. Um único arquivo reparado é baixado diretamente. Vários arquivos geram um arquivo ZIP.
+
+A ferramenta passa cada arquivo pelo QPDF com a flag `--decrypt`, que força o QPDF a ler e reescrever toda a estrutura do PDF, corrigindo no caminho os problemas recuperáveis.
+
+## Recursos
+
+- Reparo em lote de vários PDFs em uma única operação
+- Detecção automática de arquivos recuperáveis e irrecuperáveis
+- Relatório de sucesso/falha por arquivo ao processar vários arquivos
+- Usa o QPDF (WebAssembly), uma biblioteca de transformação de PDF testada em campo
+
+## O que ela pode corrigir
+
+- Tabelas de referência cruzada quebradas ou ausentes
+- Finais de arquivo truncados por downloads incompletos
+- Numeração de objetos e comprimentos de fluxo inválidos
+- Pequenas inconsistências estruturais de geradores de PDF com bugs
+- Artefatos de criptografia de tentativas de descriptografia que falharam
+
+## O que ela não pode corrigir
+
+- Arquivos muito truncados, em que a maior parte dos dados de conteúdo está ausente
+- PDFs criptografados com uma senha que você não tem
+- Arquivos que na verdade não são PDFs (extensão de arquivo errada)
+- Corrupção de imagem dentro do PDF (a estrutura é corrigida, mas os dados de pixels não são regenerados)
+
+## Casos de uso
+
+- Recuperar um PDF de um download de e-mail que falhou
+- Abrir arquivos produzidos por geradores de PDF legados ou fora do padrão
+- Corrigir PDFs que funcionam em um leitor, mas não em outro
+- Preparar documentos de arquivo danificados para armazenamento de longo prazo
+
+## Dicas
+
+- Se o reparo falhar, tente abrir o arquivo primeiro em um navegador: os navegadores têm sua própria lógica de recuperação e podem renderizar conteúdo suficiente para salvá-lo de novo.
+- Para PDFs criptografados em que o reparo falha, tente primeiro Descriptografar PDF e depois repare a saída descriptografada.
+
+## Ferramentas relacionadas
+
+- [Comprimir PDF](./compress-pdf): limpe ainda mais a estrutura do PDF reparado
+- [Linearizar PDF](./linearize-pdf): otimize o arquivo reparado para entrega na web
+- [Achatar PDF (Flatten)](./flatten-pdf): achate formulários que possam ter sido danificados
diff --git a/docs/pt/tools/reverse-pages.md b/docs/pt/tools/reverse-pages.md
new file mode 100644
index 00000000..21c2fccb
--- /dev/null
+++ b/docs/pt/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Inverter ordem das páginas
+description: Inverta a ordem das páginas de um ou mais arquivos PDF para que a última página se torne a primeira.
+---
+
+# Inverter ordem das páginas
+
+Inverta a ordem das páginas de um PDF para que a última página se torne a primeira, a penúltima se torne a segunda, e assim por diante. Suporta o processamento em lote de vários arquivos de uma vez.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF.
+2. Clique no botão de processar.
+3. Cada arquivo é invertido de forma independente. Se você enviou vários arquivos, a saída é um arquivo ZIP com todos os PDFs invertidos.
+4. Um único arquivo é baixado diretamente como PDF invertido.
+
+## Recursos
+
+- Processamento em lote: inverta vários PDFs em uma única operação
+- Saída de um único arquivo para um PDF, saída em ZIP para vários
+- Botões de remoção por arquivo antes de processar
+- Preserva todo o conteúdo e a formatação das páginas
+
+## Casos de uso
+
+- Corrigir um documento que foi digitalizado em ordem inversa
+- Preparar um PDF de apresentação para ser lido de trás para frente
+- Inverter a ordem das páginas em fluxos de impressão específicos que alimentam as páginas ao contrário
+- Corrigir um documento cujas páginas foram montadas ao contrário por engano
+
+## Dicas
+
+- Cada arquivo de um lote é invertido de forma independente: os arquivos em si não são reordenados entre si.
+- Para uma reordenação de páginas mais detalhada (não apenas uma inversão completa), use [Duplicar e Organizar](./organize-pdf).
+
+## Ferramentas relacionadas
+
+- [Duplicar e Organizar](./organize-pdf)
+- [Girar PDF](./rotate-pdf)
+- [Multiferramenta PDF](./pdf-multi-tool)
diff --git a/docs/pt/tools/rotate-custom.md b/docs/pt/tools/rotate-custom.md
new file mode 100644
index 00000000..f0188caa
--- /dev/null
+++ b/docs/pt/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Girar em graus personalizados
+description: Rotacione páginas de PDF em qualquer ângulo, com campos de graus por página e controles de rotação em lote.
+---
+
+# Girar em graus personalizados
+
+Rotacione páginas de PDF em qualquer ângulo, não apenas em múltiplos de 90 graus. Cada página tem seu próprio campo de ângulo, e você pode aplicar um único ângulo a todas as páginas de uma vez com o controle em lote.
+
+## Como funciona
+
+1. Envie um arquivo PDF. As miniaturas são renderizadas para cada página.
+2. Cada página tem um campo numérico que mostra seu ângulo de rotação atual.
+3. Digite qualquer valor em graus (positivo ou negativo) para rotacionar uma página específica, ou use os botões esquerda/direita de cada página para ajustes rápidos de 90 graus.
+4. Use o campo de **ângulo em lote** no topo para definir uma rotação uniforme para todas as páginas.
+5. Clique no botão de processar para gerar o PDF rotacionado.
+
+## Recursos
+
+- Entrada livre de graus por página (qualquer valor inteiro)
+- Controle de ângulo em lote para definir a mesma rotação em todas as páginas
+- Pré-visualização da rotação em tempo real nas miniaturas
+- Botões de rotação rápida por página em incrementos de 90 graus
+- Miniaturas carregadas sob demanda para desempenho em documentos grandes
+
+## Casos de uso
+
+- Corrigir digitalizações levemente inclinadas em alguns graus
+- Rotacionar páginas para atender a um requisito de orientação fora do padrão
+- Aplicar rotações precisas a páginas individuais em um documento de conteúdo misto
+- Ajustar os ângulos das páginas após uma rotação em massa inicial
+
+## Dicas
+
+- Valores positivos rotacionam no sentido horário, valores negativos rotacionam no sentido anti-horário.
+- O campo de ângulo em lote sobrescreve todos os ângulos por página quando aplicado. Faça os ajustes individuais depois da operação em lote, se necessário.
+- Para rotações padrão de 90/180/270 graus com uma interface mais simples, use [Girar PDF](./rotate-pdf).
+
+## Ferramentas relacionadas
+
+- [Girar PDF](./rotate-pdf)
+- [Multiferramenta PDF](./pdf-multi-tool)
+- [Duplicar e Organizar](./organize-pdf)
diff --git a/docs/pt/tools/rotate-pdf.md b/docs/pt/tools/rotate-pdf.md
new file mode 100644
index 00000000..2c6a14f7
--- /dev/null
+++ b/docs/pt/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Girar PDF
+description: Gire páginas individuais ou todas as páginas de um PDF em incrementos de 90 graus com uma interface visual de miniaturas.
+---
+
+# Girar PDF
+
+Gire as páginas de um PDF em 90 graus no sentido horário ou anti-horário. A ferramenta mostra miniaturas de todas as páginas, permitindo girá-las individualmente ou aplicar uma rotação em massa a todo o documento.
+
+## Como funciona
+
+1. Envie um arquivo PDF. As miniaturas de todas as páginas são renderizadas em uma grade.
+2. Use os botões de rotação esquerda/direita abaixo da miniatura de cada página para girar aquela página específica.
+3. Use os controles de rotação em massa no topo para girar todas as páginas de uma vez.
+4. A pré-visualização das miniaturas é atualizada em tempo real para mostrar a rotação.
+5. Clique no botão de processar para salvar o PDF girado.
+
+## Recursos
+
+- Rotação por página em incrementos de 90 graus (esquerda ou direita)
+- Rotação em massa de todas as páginas simultaneamente
+- Pré-visualização das miniaturas em tempo real com transições de rotação animadas
+- Miniaturas carregadas sob demanda para um desempenho fluido em documentos grandes
+- Preserva o conteúdo e a qualidade originais das páginas
+
+## Casos de uso
+
+- Corrigir páginas digitalizadas de lado ou de cabeça para baixo
+- Girar páginas em paisagem para retrato (ou vice-versa)
+- Corrigir um documento de orientação mista em que algumas páginas foram digitalizadas no ângulo errado
+- Preparar um documento para uma orientação de exibição específica
+
+## Dicas
+
+- As rotações são cumulativas. Clicar duas vezes no botão horário aplica uma rotação de 180 graus.
+- Para rotações que não sejam de 90 graus (por exemplo, 45 graus para corrigir uma digitalização levemente inclinada), use [Rotacionar em Graus Customizáveis](./rotate-custom).
+- Os controles de rotação em massa afetam todas as páginas, não apenas as selecionadas. Não há mecanismo de seleção nesta ferramenta; para isso, use a [Multiferramenta PDF](./pdf-multi-tool).
+
+## Ferramentas relacionadas
+
+- [Rotacionar em Graus Customizáveis](./rotate-custom)
+- [Multiferramenta PDF](./pdf-multi-tool)
+- [Duplicar e Organizar](./organize-pdf)
diff --git a/docs/pt/tools/rtf-to-pdf.md b/docs/pt/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..dc7f50e4
--- /dev/null
+++ b/docs/pt/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF para PDF
+description: Converta arquivos Rich Text Format (RTF) em PDF no seu navegador usando um mecanismo baseado em LibreOffice.
+---
+
+# RTF para PDF
+
+Converta documentos Rich Text Format em PDF. O RTF é um formato de documento multiplataforma suportado por praticamente todo processador de texto. Esta ferramenta usa um mecanismo LibreOffice no navegador para renderizar arquivos RTF com a formatação intacta: negrito, itálico, tabelas e imagens incorporadas são todos mantidos no PDF.
+
+## Formatos suportados
+
+| Formato | Extensões | Tipos MIME |
+| :------ | :-------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Como funciona
+
+1. Clique na área de envio ou arraste e solte um ou mais arquivos RTF.
+2. Revise a lista de arquivos. Adicione mais ou remova conforme necessário.
+3. Clique em **Converter para PDF**. O mecanismo LibreOffice é inicializado no primeiro uso e depois processa cada arquivo.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são entregues como `rtf-converted.zip`.
+
+## Opções
+
+Esta ferramenta não tem configurações adicionais. A conversão preserva a formatação original do RTF.
+
+## Saída
+
+| Quantidade de entrada | Saída |
+| :-------------------- | :------------------------------------------------------- |
+| 1 arquivo | Download de um único PDF (por exemplo, `letter.pdf`) |
+| 2+ arquivos | Arquivo ZIP (`rtf-converted.zip`) com um PDF por arquivo |
+
+## Casos de uso
+
+- Converter documentos RTF legados de processadores de texto antigos em PDFs modernos
+- Transformar modelos de e-mail em RTF em pré-visualizações em PDF
+- Processar saídas em RTF de sistemas de software jurídicos ou médicos
+- Converter em lote arquivos RTF de um sistema de gerenciamento de documentos em PDF para arquivamento
+
+## Dicas
+
+- O mecanismo LibreOffice é carregado uma vez e fica em cache. A primeira conversão em uma sessão leva alguns segundos a mais; as seguintes são mais rápidas.
+- Arquivos RTF com objetos OLE incorporados podem não renderizar todos os objetos perfeitamente. Texto simples, imagens e formatação padrão são convertidos de forma confiável.
+- Se seus arquivos RTF foram criados pelo Microsoft Word, você também pode convertê-los diretamente com a ferramenta [Word para PDF](./word-to-pdf), que aceita RTF junto com DOC e DOCX.
+
+## Ferramentas relacionadas
+
+- [Word para PDF](./word-to-pdf)
+- [ODT para PDF](./odt-to-pdf)
+- [Texto para PDF](./txt-to-pdf)
diff --git a/docs/pt/tools/sanitize-pdf.md b/docs/pt/tools/sanitize-pdf.md
new file mode 100644
index 00000000..f55b62e0
--- /dev/null
+++ b/docs/pt/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Sanitizar PDF
+description: Remova conteúdo oculto e potencialmente perigoso de PDFs, incluindo metadados, JavaScript, arquivos incorporados, anotações e camadas.
+---
+
+# Sanitizar PDF
+
+Os PDFs podem carregar muito mais do que você vê na tela. Metadados ocultos, JavaScript incorporado, anexos, dados de formulário e informações de camadas podem vazar dados sensíveis ou representar riscos de segurança. A sanitização remove tudo isso, deixando você com um documento limpo e seguro para compartilhar publicamente.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. Selecione na lista quais elementos remover.
+3. Clique em **Sanitizar PDF**.
+4. Baixe o arquivo limpo.
+
+## Opções de sanitização
+
+Todas as opções vêm ativadas por padrão. Desmarque as que você quiser preservar.
+
+| Opção | O que remove |
+| --------------------------------- | -------------------------------------------------------------------------- |
+| **Achatar Formulários** | Converte campos de formulário interativos em conteúdo estático |
+| **Remover Metadados** | Remove autor, título, data de criação, informações do software e dados XMP |
+| **Remover Anotações** | Exclui comentários, destaques, notas adesivas e marcações |
+| **Remover JavaScript** | Elimina scripts incorporados que poderiam ser executados ao abrir |
+| **Remover Arquivos Incorporados** | Remove anexos incorporados ao PDF |
+| **Remover Camadas (OCG)** | Achata os grupos de conteúdo opcional em uma única camada |
+| **Remover Links** | Remove hiperlinks e referências de URL |
+| **Remover Árvore de Estrutura** | Remove a estrutura do documento usada para marcação de acessibilidade |
+| **Remover MarkInfo** | Remove as informações de conteúdo marcado |
+| **Remover Fontes** | Remove os dados de fontes incorporadas (use com cuidado) |
+
+## Casos de uso
+
+- Preparar um PDF para publicação removendo metadados internos (nomes de autores, versões de software, histórico de edição)
+- Remover JavaScript de um PDF recebido de uma fonte não confiável antes de abri-lo
+- Limpar um PDF antes de enviá-lo a um cliente que não deve ver comentários incorporados ou nomes de campos de formulário
+- Remover camadas ocultas de um desenho arquitetônico antes de compartilhar a versão final
+- Cumprir requisitos de minimização de dados previstos em regulamentos de privacidade
+
+## Dicas
+
+- Deixe "Remover Fontes" desmarcado, a menos que você tenha certeza de que o PDF ainda será exibido corretamente. Remover fontes pode tornar o texto invisível em alguns leitores.
+- Se você só precisa remover metadados, a ferramenta dedicada Remover Metadados é mais rápida e mais focada.
+- A sanitização é irreversível. Guarde seu arquivo original.
+
+## Ferramentas relacionadas
+
+- [Remover Metadados](./remove-metadata): remova apenas os metadados sem mexer no restante do conteúdo
+- [Achatar PDF (Flatten)](./flatten-pdf): achate especificamente formulários e anotações
+- [Criptografar PDF](./protect-pdf): adicione proteção por senha depois de sanitizar
+- [Rasterizar PDF](./rasterize-pdf): a opção radical, converter em imagens para eliminar todo o conteúdo oculto
diff --git a/docs/pt/tools/scanner-effect.md b/docs/pt/tools/scanner-effect.md
new file mode 100644
index 00000000..35c2b7ef
--- /dev/null
+++ b/docs/pt/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Efeito scanner
+description: Faça seu PDF parecer um documento digitalizado, com efeitos ajustáveis de ruído, rotação, desfoque e envelhecimento do papel.
+---
+
+# Efeito scanner
+
+Transforme um PDF digital limpo em algo que parece ter saído de um scanner de mesa. A ferramenta aplica ruído configurável, leve rotação, desfoque, variações de brilho e amarelamento opcional para simular as imperfeições de uma digitalização física.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. O editor abre com uma pré-visualização ao vivo da primeira página ao lado de um painel de configurações.
+3. Ajuste os parâmetros do efeito de digitalização com os controles deslizantes e as chaves.
+4. A pré-visualização é atualizada em tempo real conforme você altera as configurações.
+5. Clique em **Aplicar** para processar todas as páginas e baixar o resultado.
+
+## Opções
+
+- **Espaço de cor (chave de tons de cinza)**: converta a saída para tons de cinza para o visual clássico de digitalização em preto e branco.
+- **Borda**: adicione uma borda escura sutil nas bordas da página para imitar os artefatos de borda do scanner.
+- **Rotação**: aplique uma leve rotação (-5 a +5 graus) para simular a alimentação desalinhada do papel.
+- **Variação da rotação**: adicione variação aleatória ao ângulo de rotação para que cada página se incline de forma um pouco diferente.
+- **Brilho**: aumente ou diminua o brilho geral.
+- **Contraste**: ajuste o contraste para simular variações na qualidade do toner.
+- **Desfoque**: aplique desfoque gaussiano para suavizar as bordas do texto como em uma digitalização de baixa qualidade.
+- **Ruído**: adicione ruído aleatório de pixels para simular o granulado do sensor do scanner. Valores mais altos produzem resultados mais granulados.
+- **Amarelado**: adicione um tom amarelo quente para simular papel envelhecido ou reciclado.
+- **Resolução**: defina o DPI de saída. Valores mais baixos criam uma aparência mais pixelada, típica de digitalização.
+- **Redefinir**: restaure todas as configurações para os valores padrão.
+
+## Recursos
+
+- Pré-visualização em tempo real que é atualizada conforme você ajusta cada parâmetro
+- Variação aleatória de rotação por página para uma variação realista
+- Dez parâmetros ajustáveis de forma independente
+- Modo tons de cinza para uma saída autêntica de digitalização em preto e branco
+- Controle de resolução, da qualidade de fax de baixo DPI à qualidade de arquivo de alto DPI
+
+## Casos de uso
+
+- Fazer documentos criados digitalmente parecerem ter sido impressos e digitalizados
+- Simular o envelhecimento de documentos físicos para recriação de documentos históricos
+- Testar softwares de OCR contra digitalizações de qualidade degradada
+- Produzir documentos que combinem com o estilo visual de arquivos digitalizados existentes
+
+## Dicas
+
+- Comece com valores sutis. Um nível de ruído de 10-20, uma leve rotação de 0,5 grau e desfoque mínimo já produzem uma aparência convincente de digitalização.
+- Combine o modo tons de cinza com um leve amarelamento para um efeito de "fotocópia de uma fotocópia".
+- Resoluções mais baixas (100-150 DPI) criam a aparência mais realista de máquina de fax.
+
+## Ferramentas relacionadas
+
+- [Inverter Cores](./invert-colors)
+- [Ajustar Cores](./adjust-colors)
+- [Cor de Fundo](./background-color)
diff --git a/docs/pt/tools/sign-pdf.md b/docs/pt/tools/sign-pdf.md
new file mode 100644
index 00000000..681d0e00
--- /dev/null
+++ b/docs/pt/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Assinar PDF
+description: Desenhe, digite ou envie uma assinatura e posicione-a nas páginas do seu PDF com um visualizador integrado.
+---
+
+# Assinar PDF
+
+Adicione sua assinatura a qualquer documento PDF. A ferramenta incorpora um visualizador de PDF completo com ferramentas de assinatura integradas, onde você pode desenhar uma assinatura à mão livre, digitar seu nome em uma fonte de assinatura ou enviar uma imagem de assinatura. Posicione e redimensione as assinaturas em qualquer página e depois salve o documento assinado.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. O documento abre em um visualizador de PDF integrado com ferramentas de anotação.
+3. Use a ferramenta de assinatura do visualizador para criar sua assinatura desenhando, digitando ou enviando uma imagem.
+4. Clique na página onde quer posicionar a assinatura e ajuste o tamanho e a posição.
+5. Opcionalmente, marque **Achatar PDF** para incorporar a assinatura de forma permanente ao documento.
+6. Clique em **Salvar e baixar PDF assinado** para obter seu arquivo assinado.
+
+## Opções
+
+- **Achatar PDF**: quando marcada, a assinatura é incorporada de forma permanente ao conteúdo da página. Isso impede que a assinatura seja movida ou excluída por outras pessoas. Quando desmarcada, a assinatura continua sendo uma anotação que pode ser editada em visualizadores compatíveis.
+
+## Recursos
+
+- Três métodos para criar a assinatura: desenho à mão livre, texto digitado ou imagem enviada
+- Visualizador de PDF integrado para um posicionamento preciso
+- Arraste para posicionar e redimensionar assinaturas em qualquer página
+- Achatamento opcional para incorporar as assinaturas de forma permanente
+- Suporte a várias assinaturas no mesmo documento
+
+## Casos de uso
+
+- Assinar contratos, acordos ou formulários de aprovação antes de devolvê-los
+- Adicionar sua assinatura a documentos fiscais, pedidos de seguro ou formulários governamentais
+- Colocar rubricas em páginas individuais de um acordo de várias páginas
+- Assinar NDAs ou documentos de RH que chegam como anexos em PDF
+
+## Dicas
+
+- Ative o achatamento se for enviar o PDF assinado para alguém que não deve poder remover ou reposicionar sua assinatura.
+- Para assinaturas digitais com validade jurídica e verificação baseada em certificado, o BentoPDF também oferece uma ferramenta separada de Assinatura Digital.
+- Envie uma imagem de assinatura em PNG com fundo transparente para obter o resultado mais limpo.
+
+## Ferramentas relacionadas
+
+- [Editor de PDF](./edit-pdf)
+- [Adicionar Carimbos](./add-stamps)
+- [Preenchimento de Formulário](./form-filler)
diff --git a/docs/pt/tools/split-pdf.md b/docs/pt/tools/split-pdf.md
new file mode 100644
index 00000000..3cfe408f
--- /dev/null
+++ b/docs/pt/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Dividir PDF
+description: Divida um PDF em arquivos menores por intervalo de páginas, seleção visual, favoritos, páginas pares/ímpares ou intervalos fixos.
+---
+
+# Dividir PDF
+
+Divida um PDF em documentos menores usando um dos seis modos de divisão. De simples intervalos de páginas a divisão baseada em favoritos, esta ferramenta atende a todos os cenários de divisão de um documento.
+
+## Como funciona
+
+1. Envie um único arquivo PDF.
+2. Escolha um modo de divisão no menu suspenso.
+3. Configure as opções específicas do modo (intervalos de páginas, seleções etc.).
+4. Clique no botão de processar.
+5. O resultado é baixado como um único PDF ou como um arquivo ZIP, dependendo do modo e das configurações.
+
+## Modos de divisão
+
+| Modo | Descrição |
+| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
+| **Intervalo** | Digite intervalos de páginas como `1-3, 5, 8-10`. Vários intervalos geram PDFs separados em um ZIP. Um único intervalo gera um PDF. |
+| **Seleção visual** | Navegue pelas miniaturas das páginas e clique para selecionar as que você quer. As páginas selecionadas são extraídas para um novo PDF. |
+| **Pares / Ímpares** | Extraia apenas as páginas de número par ou ímpar. |
+| **Todas as páginas** | Divida cada página em seu próprio arquivo PDF, baixado em um ZIP. |
+| **Favoritos** | Divida nos limites dos favoritos. Escolha o nível do favorito para controlar onde ocorrem as divisões. |
+| **A cada N páginas** | Divida em blocos de N páginas cada (por exemplo, a cada 5 páginas). O último bloco pode ter menos páginas. |
+
+## Recursos
+
+- Seis modos de divisão distintos, cobrindo praticamente todos os casos de uso
+- Seletor visual de páginas com miniaturas carregadas sob demanda
+- Divisão baseada em favoritos com filtro por nível
+- Opção de saída em ZIP para os modos de intervalo e visual
+- Aceita intervalos de páginas com sintaxe mista (`1-3, 5, 8-10`)
+- Aviso quando as divisões de N páginas resultam em blocos desiguais
+
+## Casos de uso
+
+- Extrair um capítulo ou seção específica de um documento grande
+- Separar páginas ímpares e pares para fluxos de impressão frente e verso
+- Dividir um PDF de livro em arquivos de capítulos individuais nos limites dos favoritos
+- Isolar páginas específicas (como a página de assinatura) de um contrato
+- Dividir um relatório compilado em arquivos por seção para distribuição
+
+## Dicas
+
+- Vários intervalos de páginas separados por vírgulas (por exemplo, `1-5, 10-15, 20-25`) geram PDFs separados, um por intervalo, reunidos em um ZIP.
+- O modo de divisão por favoritos exige que o PDF realmente contenha favoritos. Se nenhum for encontrado, você verá uma mensagem de erro.
+- A caixa "Baixar como ZIP" nos modos Intervalo e Seleção visual permite obter PDFs individuais por página em vez de um arquivo combinado.
+
+## Ferramentas relacionadas
+
+- [Mesclar PDF](./merge-pdf)
+- [Extrair Páginas](./extract-pages)
+- [Excluir Páginas](./delete-pages)
+- [Multiferramenta PDF](./pdf-multi-tool)
diff --git a/docs/pt/tools/svg-to-pdf.md b/docs/pt/tools/svg-to-pdf.md
new file mode 100644
index 00000000..19eeeb10
--- /dev/null
+++ b/docs/pt/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG para PDF
+description: Converta gráficos vetoriais SVG em PDF com controle de qualidade, inteiramente no seu navegador.
+---
+
+# SVG para PDF
+
+Converta arquivos Scalable Vector Graphics (SVG) em PDF. A ferramenta rasteriza cada SVG pelo mecanismo de renderização do navegador e depois incorpora o resultado em sua resolução nativa. É útil para transformar ícones vetoriais, diagramas e ilustrações em documentos portáteis.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :------ | :-------- |
+| SVG | `.svg` |
+
+## Como funciona
+
+1. Clique na área de envio ou arraste e solte um ou mais arquivos SVG.
+2. Revise e gerencie a lista de arquivos.
+3. Escolha um nível de **Qualidade do PDF**.
+4. Clique em **Converter para PDF**. O resultado é baixado como `from_svgs.pdf`.
+
+Cada SVG é lido como texto, renderizado em um canvas com sua largura e altura intrínsecas (usando 800x600 por padrão se nenhuma dimensão for especificada) e exportado como PNG. Esse PNG é então incorporado ao PDF usando o pdf-lib. As áreas transparentes são preenchidas com um fundo branco.
+
+## Opções
+
+A **Qualidade do PDF** controla a compressão após a rasterização:
+
+- **Alta qualidade**: o mais próximo da renderização original.
+- **Qualidade média** (padrão): bom equilíbrio.
+- **Baixa qualidade**: menor arquivo, com alguma perda de detalhes.
+
+## Casos de uso
+
+- Converter diagramas de arquitetura ou engenharia de SVG em um PDF pronto para impressão
+- Reunir conjuntos de ícones em um PDF de referência para um sistema de design
+- Transformar visualizações de dados (D3.js, exportações de bibliotecas de gráficos) em PDFs prontos para relatórios
+- Criar versões imprimíveis de infográficos baseados em SVG
+
+## Dicas
+
+- Arquivos SVG sem os atributos `width` e `height` explícitos são renderizados em 800x600 pixels. Para obter os melhores resultados, defina as dimensões no código-fonte do SVG antes de converter.
+- SVGs complexos com referências externas a fontes ou imagens vinculadas podem não ser renderizados perfeitamente. Incorpore todos os recursos no SVG para uma saída confiável.
+- Como o SVG é rasterizado, o PDF conterá uma imagem bitmap em vez de caminhos vetoriais. Para uma saída em PDF realmente vetorial, é necessária uma ferramenta vetorial dedicada.
+
+## Ferramentas relacionadas
+
+- [Imagem para PDF](./image-to-pdf)
+- [PNG para PDF](./png-to-pdf)
+- [BMP para PDF](./bmp-to-pdf)
diff --git a/docs/pt/tools/table-of-contents.md b/docs/pt/tools/table-of-contents.md
new file mode 100644
index 00000000..60780c77
--- /dev/null
+++ b/docs/pt/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Sumário
+description: Gere uma página de sumário formatada a partir dos favoritos existentes no seu PDF.
+---
+
+# Sumário
+
+Esta ferramenta lê os favoritos (estrutura de tópicos) do seu PDF e gera uma página de sumário formatada que é inserida no início do documento. Se o seu PDF já tem favoritos, mas não tem uma página de sumário visível, esta ferramenta cria uma automaticamente.
+
+## Como funciona
+
+1. Envie um PDF que contenha favoritos.
+2. Personalize o título do sumário, o tamanho da fonte e a família da fonte.
+3. Opcionalmente, marque **Adicionar favorito para a página do sumário** para incluir o próprio sumário na árvore de favoritos.
+4. Clique em **Gerar Sumário** para processar o arquivo.
+5. O PDF atualizado é baixado automaticamente, com a página do sumário inserida no início.
+
+## Opções
+
+- **Título do sumário**: o título exibido no topo da página gerada. O padrão é "Sumário".
+- **Tamanho da fonte**: escolha de 10pt a 72pt. O padrão é 12pt.
+- **Família da fonte**: escolha entre as variantes Times Roman, Helvetica ou Courier (regular, negrito, itálico, negrito itálico). O padrão é Helvetica.
+- **Adicionar favorito para a página do sumário**: quando marcada, uma entrada de favorito para a própria página do sumário é adicionada à árvore de tópicos do PDF.
+
+## Recursos
+
+- Lê toda a hierarquia de favoritos do PDF
+- Gera uma página de sumário bem formatada, com referências de números de página
+- Suporta níveis aninhados de favoritos com recuo
+- Escolha entre 12 fontes PDF integradas
+- Favorito opcional que aponta para a própria página do sumário
+
+## Casos de uso
+
+- Adicionar um sumário imprimível a e-books ou relatórios que só têm favoritos digitais
+- Criar um sumário para um documento mesclado depois de combinar vários PDFs
+- Gerar uma página de referência para manuais técnicos longos
+- Preparar documentos para impressão em que se espera um sumário visível
+
+## Dicas
+
+- Se o seu PDF não tem favoritos, use primeiro a ferramenta [Editar Favoritos](./bookmark) para criá-los e depois volte aqui para gerar o sumário.
+- Para documentos grandes, um tamanho de fonte maior, como 14pt ou 16pt, melhora a legibilidade.
+
+## Ferramentas relacionadas
+
+- [Editar Favoritos](./bookmark)
+- [Números de Página](./page-numbers)
+- [Cabeçalho e Rodapé](./header-footer)
diff --git a/docs/pt/tools/text-color.md b/docs/pt/tools/text-color.md
new file mode 100644
index 00000000..77bf8ef8
--- /dev/null
+++ b/docs/pt/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Alterar cor do texto
+description: Altere a cor de todo o texto do seu PDF para qualquer cor que você escolher.
+---
+
+# Alterar cor do texto
+
+Substitua a cor do texto em todo o seu PDF. A ferramenta identifica as regiões de texto em cada página e as recolore com a cor escolhida, preservando o layout do documento e o conteúdo que não é texto.
+
+## Como funciona
+
+1. Envie seu arquivo PDF.
+2. Escolha uma nova cor de texto no seletor de cores. O padrão é azul (#0000FF).
+3. Clique em **Alterar Cor do Texto** para processar.
+4. O PDF recolorido é baixado automaticamente. Um indicador de progresso mostra qual página está sendo processada.
+
+## Opções
+
+- **Nova cor do texto**: um seletor de cores para escolher a cor de substituição de todo o texto do documento.
+
+## Recursos
+
+- Recolore o texto de todas as páginas do documento
+- Processamento página a página com indicação de progresso
+- Seletor de cores com suporte completo a cores hexadecimais
+- Preserva o layout da página e os elementos que não são texto
+
+## Casos de uso
+
+- Mudar texto preto para azul-escuro, para uma aparência de documento mais suave e moderna
+- Recolorir o texto para seguir as diretrizes da marca antes de distribuir documentos
+- Converter o texto para uma cor específica para atender à conformidade de acessibilidade
+- Tornar o texto visível sobre uma cor de fundo recém-aplicada
+
+## Dicas
+
+- Esta ferramenta renderiza as páginas em escala 2x para manter a qualidade e depois reconstrói o PDF. A saída é baseada em imagem, então o texto não poderá mais ser selecionado nem pesquisado.
+- Para documentos em que você precisa manter o texto selecionável, considere editar o PDF diretamente com o [Editor de PDF](./edit-pdf).
+- O tempo de processamento aumenta com o número de páginas, pois cada página é renderizada individualmente.
+
+## Ferramentas relacionadas
+
+- [Cor de Fundo](./background-color)
+- [Inverter Cores](./invert-colors)
+- [Ajustar Cores](./adjust-colors)
diff --git a/docs/pt/tools/tiff-to-pdf.md b/docs/pt/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..beac059a
--- /dev/null
+++ b/docs/pt/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF para PDF
+description: Converta imagens TIFF de uma ou várias páginas para o formato PDF no seu navegador, com suporte completo a páginas.
+---
+
+# TIFF para PDF
+
+Converta arquivos TIFF em PDF, incluindo TIFFs de várias páginas. Cada página (ou "IFD") de um arquivo TIFF vira uma página separada no PDF de saída. Isso é especialmente útil para documentos digitalizados, faxes e imagens médicas, que costumam ser armazenados como TIFFs de várias páginas.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :------ | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Como funciona
+
+1. Clique na área de envio ou arraste e solte seus arquivos TIFF.
+2. Revise a lista de arquivos e gerencie-a conforme necessário.
+3. Clique em **Converter para PDF**. O resultado é baixado como `from_tiff.pdf`.
+
+A ferramenta decodifica cada arquivo TIFF usando um decodificador TIFF em JavaScript, extraindo os dados brutos de pixels RGBA de cada página. Cada página é renderizada em um canvas, exportada como PNG e incorporada ao PDF. As dimensões das páginas correspondem às das páginas originais do TIFF.
+
+## Opções
+
+Esta ferramenta não expõe configurações adicionais de qualidade. As imagens são incorporadas em sua resolução nativa.
+
+## Casos de uso
+
+- Converter documentos de fax de várias páginas (TIFF-F) em um formato PDF mais portátil
+- Transformar arquivos de documentos digitalizados armazenados como TIFF em PDFs pesquisáveis (combine depois com a ferramenta de OCR)
+- Processar arquivos de imagem médica (lâminas de patologia, exportações de radiologia) que usam TIFF
+- Converter arquivos TIFF de GIS ou imagens de satélite em documentos compartilháveis
+
+## Dicas
+
+- TIFFs de várias páginas são totalmente suportados. Um TIFF de 10 páginas gera um PDF de 10 páginas. Você não precisa dividir o TIFF antes.
+- Arquivos TIFF muito grandes (centenas de megabytes) podem demorar mais para processar, pois o arquivo inteiro precisa ser decodificado na memória do navegador.
+- Se você precisa de OCR no PDF resultante, passe-o pela ferramenta [OCR para PDF](./ocr-pdf) após a conversão.
+
+## Ferramentas relacionadas
+
+- [Imagem para PDF](./image-to-pdf)
+- [BMP para PDF](./bmp-to-pdf)
+- [JPG para PDF](./jpg-to-pdf)
diff --git a/docs/pt/tools/txt-to-pdf.md b/docs/pt/tools/txt-to-pdf.md
new file mode 100644
index 00000000..05c4d65b
--- /dev/null
+++ b/docs/pt/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Texto para PDF
+description: Converta arquivos de texto simples ou texto digitado em PDF com fontes, cores e tamanhos de página personalizados.
+---
+
+# Texto para PDF
+
+Converta texto simples em um PDF formatado. Você pode enviar arquivos `.txt` ou digitar diretamente no editor de texto integrado. A ferramenta suporta várias fontes, cores de texto personalizadas e uma ampla variedade de tamanhos de página, de A0 a A10, além de US Letter, Legal e Tabloid.
+
+## Formatos suportados
+
+| Entrada | Extensões |
+| :------------------------ | :----------------------- |
+| Arquivos de texto simples | `.txt` |
+| Entrada direta de texto | Digite ou cole no editor |
+
+## Como funciona
+
+1. Escolha o modo de entrada usando a chave no topo: **Enviar arquivos** ou **Digitar texto**.
+2. Se for enviar, arraste e solte ou clique para selecionar um ou mais arquivos `.txt`. Se for digitar, insira o texto diretamente na área de texto.
+3. Configure as opções de formatação: família da fonte, tamanho da fonte, cor do texto e tamanho da página.
+4. Clique em **Criar PDF**. A saída é baixada como `text_to_pdf.pdf`.
+
+Ao enviar vários arquivos, o conteúdo deles é concatenado, com linhas em branco entre eles.
+
+## Opções
+
+| Opção | Valores | Padrão |
+| :-------------------- | :-------------------------------------------------------------------------------- | :-------------- |
+| **Família da fonte** | Helvetica (sem serifa), Tiro (serifada), Courier (monoespaçada), Times (serifada) | Helvetica |
+| **Tamanho da fonte** | 6 a 72 pt | 12 |
+| **Cor do texto** | Qualquer cor pelo seletor de cores | Preto (#000000) |
+| **Tamanho da página** | ISO A0 a A10, B0 a B10, C0 a C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Idiomas RTL (árabe, hebraico, persa, urdu) são detectados automaticamente. Quando texto RTL é encontrado, a direção e o alinhamento do texto mudam de acordo.
+
+## Casos de uso
+
+- Converter trechos de código ou arquivos de log em um PDF imprimível com a fonte Courier
+- Criar rapidamente um PDF a partir de anotações de reunião digitadas na hora
+- Formatar um manuscrito em texto simples com uma fonte e um tamanho de página específicos para envio
+- Produzir uma versão em PDF de um README ou changelog para distribuição offline
+
+## Dicas
+
+- Use o modo **Digitar texto** quando quiser converter rapidamente o conteúdo da área de transferência sem salvá-lo antes como arquivo.
+- Courier (monoespaçada) é a melhor escolha de fonte para código, logs ou qualquer conteúdo em que o alinhamento das colunas importe.
+- As margens da página são fixas em 72 pontos (1 polegada) em todos os lados.
+
+## Ferramentas relacionadas
+
+- [Markdown para PDF](./markdown-to-pdf)
+- [CSV para PDF](./csv-to-pdf)
+- [Word para PDF](./word-to-pdf)
diff --git a/docs/pt/tools/unlock-pdf.md b/docs/pt/tools/unlock-pdf.md
new file mode 100644
index 00000000..f284c093
--- /dev/null
+++ b/docs/pt/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Desbloquear PDF
+description: Remova a proteção por senha de PDFs criptografados. Suporta descriptografia em lote com uma única senha para vários arquivos.
+---
+
+# Desbloquear PDF
+
+Se você tem a senha de um PDF criptografado, esta ferramenta remove a criptografia por completo e gera uma cópia desbloqueada que qualquer pessoa pode abrir sem credenciais. Ela suporta descriptografia em lote quando vários PDFs compartilham a mesma senha.
+
+## Como funciona
+
+1. Envie um ou mais arquivos PDF criptografados.
+2. Digite a **senha** usada para proteger os arquivos.
+3. Clique em **Descriptografar PDF**.
+4. Um único arquivo é baixado diretamente. Vários arquivos geram um arquivo ZIP com todos os PDFs desbloqueados.
+
+## Recursos
+
+- Descriptografia de um único arquivo e em lote
+- Funciona com senhas de usuário e senhas de proprietário
+- Gera uma saída totalmente sem criptografia e sem restrições residuais
+- Relatório de erros claro para senhas incorretas ou arquivos corrompidos
+- Acompanhamento de sucesso/falha por arquivo no modo em lote
+
+## Diferença em relação a Remover Restrições
+
+**Descriptografar PDF** exige a senha e remove toda a criptografia. **Remover Restrições** atua sobre as restrições de uso (impressão, cópia, edição) e pode não exigir senha se apenas uma senha de proprietário foi definida. Use Descriptografar quando o PDF não abre de jeito nenhum sem senha.
+
+## Casos de uso
+
+- Desbloquear de forma permanente PDFs que você criptografou antes, quando a senha não é mais necessária
+- Remover a criptografia de um lote de documentos arquivados para facilitar o acesso a longo prazo
+- Preparar PDFs protegidos por senha para um sistema de gerenciamento de documentos que não suporta arquivos criptografados
+- Desbloquear PDFs antes de mesclá-los com outros documentos (muitas ferramentas de mesclagem não processam arquivos criptografados)
+
+## Dicas
+
+- O campo de senha vale para todos os arquivos enviados. Se seus PDFs têm senhas diferentes, processe-os em lotes separados.
+- Se aparecer o erro "Senha incorreta", verifique se há espaços no final ou se o Caps Lock está ativado.
+- Após a descriptografia, a saída não tem nenhuma segurança. Criptografe novamente com Criptografar PDF se precisar aplicar uma nova senha.
+
+## Ferramentas relacionadas
+
+- [Criptografar PDF](./protect-pdf): aplique a criptografia novamente com uma nova senha
+- [Remover Restrições](./remove-restrictions): remova restrições de uso sem descriptografar totalmente
+- [Alterar Permissões](./change-permissions): modifique permissões específicas de um PDF criptografado
diff --git a/docs/pt/tools/validate-signature-pdf.md b/docs/pt/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..a34b6153
--- /dev/null
+++ b/docs/pt/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Validar Assinatura
+description: Verifique assinaturas digitais em arquivos PDF. Confira a validade do certificado, a identidade do signatário, a integridade do documento e o status da cadeia de confiança.
+---
+
+# Validar Assinatura
+
+Envie um PDF assinado e esta ferramenta extrai todas as assinaturas digitais, identifica o signatário, verifica a validade do certificado e informa se o documento foi modificado após a assinatura. Você também pode fornecer um certificado confiável para verificar a cadeia da assinatura.
+
+## Como funciona
+
+1. Envie um arquivo PDF assinado. A validação começa automaticamente.
+2. A ferramenta exibe um resumo: número de assinaturas encontradas e quantas são válidas.
+3. Cada assinatura recebe um cartão detalhado com nome do signatário, emissor, datas e status.
+4. Opcionalmente, envie um **certificado confiável** (.pem, .crt, .cer, .der) para verificar a assinatura em relação a uma âncora de confiança específica. A revalidação é executada automaticamente.
+
+## O que é verificado
+
+### Análise da assinatura
+
+A ferramenta extrai os objetos de assinatura PKCS#7 do PDF, decodifica a estrutura ASN.1 e obtém o certificado X.509 do signatário, junto com qualquer cadeia de certificados incorporada na assinatura.
+
+### Validade do certificado
+
+- **Expiração**: o certificado está dentro do período de validade no momento?
+- **Detecção de autoassinatura**: o certificado é o próprio emissor?
+- **Cadeia de confiança**: quando um certificado confiável é fornecido, o certificado do signatário remonta a ele?
+
+### Verificação criptográfica
+
+- A ferramenta reconstrói os bytes cobertos pelo `/ByteRange` da assinatura, calcula o hash deles com o algoritmo declarado pelo signatário e compara o resultado com o atributo `messageDigest` dentro da assinatura.
+- Em seguida, ela reserializa os atributos assinados como um SET DER e verifica a assinatura com a chave pública do certificado do signatário.
+- **Uma assinatura só é considerada válida quando todas essas verificações passam.** Se os bytes do PDF foram modificados após a assinatura, ou se a assinatura incorporada não corresponde à chave do signatário, o status mostra "Inválido: falha na verificação criptográfica" com o motivo específico.
+
+#### Algoritmos de assinatura suportados
+
+| Algoritmo | Caminho de verificação |
+| ----------------------- | ------------------------------------------------------------------------------------------ |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, com fallback para Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` após a conversão da assinatura DER → IEEE P1363 |
+
+Se uma assinatura usa um algoritmo fora dessa lista (por exemplo Ed25519, SM2 ou RSA com um OID de digest incomum), o cartão mostra **"Não verificada: algoritmo de assinatura não compatível"** em amarelo, junto com o OID ou o motivo específico. Trata-se de uma distinção deliberada em três estados:
+
+- **Válida**: assinatura verificada criptograficamente com a chave pública do signatário.
+- **Inválida**: a verificação foi executada e deu resultado negativo (bytes alterados, chave incompatível).
+- **Não verificada**: a ferramenta não conseguiu executar a verificação para esse algoritmo. Os metadados do certificado continuam sendo exibidos, mas você deve tratar a assinatura como "desconhecida" e verificá-la com o Adobe Acrobat ou `openssl cms -verify`.
+
+### Algoritmos de digest inseguros
+
+- Assinaturas que usam **MD5 ou SHA-1** são rejeitadas como inválidas e sinalizadas com o status "Resumo inseguro". Ambos os algoritmos têm ataques de colisão publicados, então uma assinatura sobre um hash SHA-1 ou MD5 não oferece garantia de integridade.
+- SHA-224, SHA-256, SHA-384 e SHA-512 são todos aceitos.
+
+### Cobertura do documento
+
+- **Cobertura total**: a assinatura cobre todo o arquivo PDF, ou seja, nenhum byte foi adicionado ou alterado após a assinatura.
+- **Cobertura parcial**: a assinatura cobre apenas parte do arquivo. Isso pode indicar que houve modificações após a assinatura (não necessariamente maliciosas: salvamentos incrementais produzem cobertura parcial).
+
+## Detalhes da assinatura
+
+Cada cartão de assinatura mostra:
+
+- **Assinado por**: nome comum, organização e e-mail do certificado do signatário
+- **Emissor**: a autoridade certificadora que emitiu o certificado do signatário
+- **Assinado em**: o carimbo de data e hora incorporado na assinatura
+- **Válido de / Válido até**: o período de validade do certificado
+- **Motivo**: por que o documento foi assinado (se informado)
+- **Local**: onde foi assinado (se informado)
+- **Status de cobertura**: total ou parcial
+- **Selo de confiança**: confiável ou fora da cadeia de confiança (somente quando um certificado personalizado é fornecido)
+
+### Detalhes técnicos
+
+Expanda a seção de detalhes técnicos para ver:
+
+- Número de série do certificado do signatário
+- Algoritmo de digest (SHA-256, SHA-512 etc.)
+- Algoritmo de assinatura (RSA com SHA-256, ECDSA com SHA-256 etc.)
+- Mensagens de erro para assinaturas inválidas
+
+## Casos de uso
+
+- Verificar um contrato assinado digitalmente antes de assinar em seguida
+- Auditar documentos assinados para confirmar que não foram adulterados
+- Conferir se um certificado expirou desde que o documento foi assinado
+- Validar assinaturas com o certificado raiz da sua organização
+- Inspecionar os detalhes de assinatura de documentos governamentais ou jurídicos
+
+## Dicas
+
+- Um certificado autoassinado não significa que a assinatura é inválida: significa que a identidade do signatário não pode ser verificada por meio de um terceiro confiável. Isso é comum em documentos internos.
+- A cobertura parcial nem sempre indica adulteração. Muitos fluxos de trabalho de PDF adicionam atualizações incrementais (como uma segunda assinatura) que criam cobertura parcial.
+- Envie o certificado raiz ou intermediário da sua organização como certificado confiável para obter a verificação da cadeia de confiança.
+
+## Ferramentas relacionadas
+
+- [Assinatura Digital PDF](./digital-sign-pdf): assine PDFs com seu próprio certificado
+- [Achatar PDF (Flatten)](./flatten-pdf): achate um PDF antes de assinar para evitar modificações após a assinatura
+- [Remover Metadados](./remove-metadata): limpe um PDF antes de aplicar uma assinatura
diff --git a/docs/pt/tools/view-metadata.md b/docs/pt/tools/view-metadata.md
new file mode 100644
index 00000000..74220264
--- /dev/null
+++ b/docs/pt/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Ver metadados
+description: Inspecione todas as propriedades de metadados de um PDF, incluindo informações do documento, dados XMP e detalhes estruturais.
+---
+
+# Ver metadados
+
+Examine as propriedades ocultas incorporadas em um arquivo PDF. A ferramenta exibe as informações do documento (título, autor, datas), metadados XMP, dimensões das páginas e outros dados estruturais em um formato legível.
+
+## Como funciona
+
+1. Envie um arquivo PDF.
+2. A ferramenta analisa o arquivo imediatamente e exibe todos os metadados disponíveis em seções organizadas.
+3. Revise o dicionário de informações do documento, a árvore de metadados XMP e as propriedades estruturais.
+4. Nenhuma etapa de processamento é necessária: os metadados são exibidos assim que o arquivo é carregado.
+
+## Recursos
+
+- Exibe os campos padrão de informações do documento: Title, Author, Subject, Keywords, Creator, Producer
+- Mostra as datas de criação e modificação em formato legível
+- Analisa e renderiza a árvore completa de metadados XMP com namespaces aninhados
+- Converte o formato de data do PDF (`D:20240101120000Z`) em datas legíveis
+- Organizado em seções recolhíveis para facilitar a navegação
+
+## Seções de metadados
+
+| Seção | Conteúdo |
+| ----------------------------- | ------------------------------------------------------------------------------------------------- |
+| **Informações do Documento** | Title, Author, Subject, Keywords, Creator, Producer, Creation Date, Modification Date |
+| **Metadados XMP** | Árvore completa de metadados baseada em XML com Dublin Core, XAP, PDF e namespaces personalizados |
+| **Propriedades do Documento** | Número de páginas, versão do PDF, tamanho do arquivo, status de criptografia |
+
+## Casos de uso
+
+- Verificar quem criou um PDF e quando foi modificado pela última vez
+- Confirmar que os metadados foram definidos corretamente antes de publicar um documento
+- Auditar PDFs quanto à privacidade, verificando quais informações pessoais estão incorporadas
+- Investigar o software usado para criar ou modificar um PDF (pelo campo Producer)
+- Revisar metadados XMP para conformidade na gestão de ativos digitais
+
+## Dicas
+
+- Strings de data do PDF que começam com `D:` são convertidas automaticamente para o formato do seu fuso horário local.
+- Se campos de metadados aparecem vazios, o criador do PDF simplesmente não os definiu. Nem todos os PDFs contêm metadados completos.
+- Para modificar os metadados depois de inspecioná-los, use [Editar Metadados](./edit-metadata). Para removê-los por completo, use Remover Metadados.
+
+## Ferramentas relacionadas
+
+- [Editar Metadados](./edit-metadata)
+- [Camadas OCG do PDF](./pdf-layers)
+- [Comparar PDFs](./compare-pdfs)
diff --git a/docs/pt/tools/vsd-to-pdf.md b/docs/pt/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..02d01812
--- /dev/null
+++ b/docs/pt/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD para PDF
+description: Converta diagramas do Microsoft Visio (VSD/VSDX) em PDF no seu navegador. Grátis, privado, sem precisar do Visio.
+---
+
+# VSD para PDF
+
+Converta diagramas do Microsoft Visio em PDF sem instalar o Visio. Arquivos VSD e VSDX contêm fluxogramas, organogramas, diagramas de rede e plantas baixas que a maioria das pessoas não consegue abrir. Esta ferramenta os renderiza como PDFs limpos, que podem ser vistos em qualquer dispositivo.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :----------- | :------- | :--------------------------------------------- |
+| Visio Binary | `.vsd` | Formato Visio legado (Visio 2003 e anteriores) |
+| Visio XML | `.vsdx` | Formato Visio moderno (Visio 2013+) |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos VSD ou VSDX. Os dois formatos podem ser misturados em um mesmo lote.
+2. Revise a lista de arquivos. Remova entradas indesejadas com o ícone de lixeira ou use **Adicionar Mais Arquivos** para incluir mais diagramas.
+3. Clique em **Converter para PDF**. O mecanismo baseado em LibreOffice é carregado no navegador e renderiza cada diagrama em um PDF, preservando formas, conectores, rótulos e layout da página.
+4. Um único diagrama é baixado diretamente como PDF. Vários arquivos geram um arquivo ZIP chamado `vsd-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração é necessária. O conversor respeita o tamanho e a orientação originais da página do documento Visio.
+
+## Casos de uso
+
+- Revisar diagramas do Visio enviados por um colega quando você não tem licença do Visio
+- Incluir diagramas de rede ou de arquitetura na documentação de projetos como PDFs
+- Imprimir organogramas ou fluxos de processo como material de reunião
+- Arquivar arquivos VSD legados de versões antigas do Visio em um formato com futuro garantido
+
+## Dicas
+
+- Documentos Visio de várias páginas geram PDFs de várias páginas, com cada página do Visio correspondendo a uma página do PDF.
+- Arquivos VSDX (o formato moderno baseado em XML) geralmente são convertidos com maior fidelidade que os arquivos binários VSD mais antigos.
+- O mecanismo LibreOffice é carregado uma vez por sessão. Espere uma breve espera na primeira conversão, com resultados mais rápidos nos arquivos seguintes.
+
+## Ferramentas relacionadas
+
+- [ODG para PDF](./odg-to-pdf)
+- [PUB para PDF](./pub-to-pdf)
+- [PSD para PDF](./psd-to-pdf)
diff --git a/docs/pt/tools/webp-to-pdf.md b/docs/pt/tools/webp-to-pdf.md
new file mode 100644
index 00000000..9bdb0337
--- /dev/null
+++ b/docs/pt/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP para PDF
+description: Converta imagens WebP em PDF diretamente no seu navegador, com qualidade de compressão ajustável.
+---
+
+# WebP para PDF
+
+Converta o formato de imagem WebP, do Google, em PDF. É especialmente útil quando você baixou imagens da web em WebP e precisa delas em um formato mais amplamente aceito para impressão ou compartilhamento.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :------ | :-------- |
+| WebP | `.webp` |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos WebP.
+2. Revise a lista de arquivos e remova os que você não precisa.
+3. Selecione um nível de **Qualidade do PDF**.
+4. Clique em **Converter para PDF**. A saída é baixada como `from_webps.pdf`.
+
+Internamente, cada imagem WebP é decodificada pela API canvas do navegador e depois incorporada ao PDF usando pdf-lib. Isso significa que a conversão funciona em qualquer navegador que suporte a decodificação de WebP (todos os navegadores modernos suportam).
+
+## Opções
+
+A **Qualidade do PDF** controla a compressão ao incorporar as imagens:
+
+- **Alta Qualidade**: preserva o máximo de detalhes.
+- **Qualidade Média** (padrão): saída equilibrada.
+- **Baixa Qualidade**: menor tamanho de arquivo.
+
+## Casos de uso
+
+- Converter imagens baixadas da web e salvas como WebP em um PDF imprimível
+- Reunir capturas de tela WebP do Chrome ou do Edge em uma documentação
+- Criar um portfólio em PDF a partir de imagens exportadas por ferramentas de design que usam WebP por padrão
+- Arquivar imagens WebP em um formato legível de forma mais universal
+
+## Dicas
+
+- O WebP é decodificado para PNG internamente antes de ser incorporado ao PDF, então imagens WebP sem perdas mantêm a qualidade na configuração Alta.
+- Se você tem uma mistura de WebP e outros formatos de imagem, use a ferramenta [Imagem para PDF](./image-to-pdf), que aceita tudo de uma vez.
+
+## Ferramentas relacionadas
+
+- [Imagem para PDF](./image-to-pdf)
+- [PNG para PDF](./png-to-pdf)
+- [JPG para PDF](./jpg-to-pdf)
diff --git a/docs/pt/tools/word-to-pdf.md b/docs/pt/tools/word-to-pdf.md
new file mode 100644
index 00000000..0b6dca2c
--- /dev/null
+++ b/docs/pt/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word para PDF
+description: Converta documentos Word (DOC, DOCX), ODT e RTF em PDF no seu navegador, preservando toda a formatação.
+---
+
+# Word para PDF
+
+Converta documentos do Microsoft Word e formatos compatíveis em PDF. A ferramenta usa um mecanismo LibreOffice executado no navegador, que lida com arquivos DOC, DOCX, ODT e RTF e preserva formatação, tabelas, imagens, cabeçalhos, rodapés e estilos na saída.
+
+## Formatos suportados
+
+| Formato | Extensões |
+| :---------------- | :-------- |
+| Word (moderno) | `.docx` |
+| Word (legado) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus documentos Word. Vários arquivos podem ser selecionados de uma vez.
+2. Revise e gerencie a lista de arquivos.
+3. Clique em **Converter para PDF**. O mecanismo LibreOffice é carregado no primeiro uso (um indicador de progresso mostra o status da inicialização) e depois cada arquivo é convertido.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são empacotados em `word-converted.zip`.
+
+## Opções
+
+Esta ferramenta não tem configurações adicionais. O mecanismo LibreOffice gera a saída usando seu perfil padrão de exportação para PDF.
+
+## Saída
+
+| Quantidade de entrada | Saída |
+| :-------------------- | :---------------------------------------------------------------------- |
+| 1 arquivo | Download de um único PDF (nome original do arquivo com extensão `.pdf`) |
+| 2+ arquivos | Arquivo ZIP (`word-converted.zip`) com um PDF por arquivo |
+
+## Casos de uso
+
+- Converter um currículo ou uma carta de apresentação de DOCX para PDF antes de enviar uma candidatura
+- Converter em lote um conjunto de contratos ou propostas em PDF para entregar a um cliente
+- Transformar arquivos `.doc` legados em PDFs modernos para arquivamento de longo prazo
+- Converter documentos colaborativos do Google Docs (exportados como DOCX) em PDF
+- Produzir PDFs prontos para impressão a partir de modelos do Word usados na geração automatizada de documentos
+
+## Dicas
+
+- O mecanismo LibreOffice é baixado uma vez por sessão e fica em cache. Espere alguns segundos de carregamento na primeira conversão, com as conversões seguintes bem mais rápidas.
+- Formatação complexa (macros, controles ActiveX, SmartArt avançado) pode não ser convertida perfeitamente. Elementos padrão de documento (texto, tabelas, imagens, cabeçalhos, notas de rodapé) são convertidos com confiabilidade.
+- Como esta ferramenta também aceita ODT e RTF, você pode usá-la como conversor único para todos os formatos de processamento de texto.
+
+## Ferramentas relacionadas
+
+- [ODT para PDF](./odt-to-pdf)
+- [RTF para PDF](./rtf-to-pdf)
+- [Excel para PDF](./excel-to-pdf)
+- [PowerPoint para PDF](./powerpoint-to-pdf)
diff --git a/docs/pt/tools/wpd-to-pdf.md b/docs/pt/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..fd4e48cd
--- /dev/null
+++ b/docs/pt/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD para PDF
+description: Converta documentos WordPerfect (WPD) em PDF no seu navegador usando o LibreOffice. Grátis e privado.
+---
+
+# WPD para PDF
+
+Converta documentos do Corel WordPerfect em arquivos PDF. O WPD já foi o formato de processamento de texto dominante em escritórios de advocacia e órgãos públicos. Se você tem arquivos antigos do WordPerfect que os programas modernos se recusam a abrir, esta ferramenta os traz de volta à vida como PDFs padrão.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :---------- | :------- | :----------------------------------------- |
+| WordPerfect | `.wpd` | Todas as principais versões do WordPerfect |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos WPD. Vários arquivos podem ser selecionados de uma vez.
+2. Revise a lista de arquivos. Remova arquivos indesejados com o ícone de lixeira ou use **Adicionar Mais Arquivos** para incluir mais documentos.
+3. Clique em **Converter para PDF**. A ferramenta carrega no navegador um mecanismo de conversão baseado em LibreOffice, que analisa o formato WPD e gera o PDF.
+4. Um único arquivo é baixado diretamente como PDF. Conversões em lote geram um arquivo ZIP chamado `wpd-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração é necessária. O mecanismo LibreOffice cuida automaticamente da formatação, das fontes e do layout do WPD.
+
+## Casos de uso
+
+- Abrir documentos jurídicos de décadas atrás escritos em WordPerfect
+- Converter registros governamentais arquivados de WPD para um formato moderno
+- Migrar uma biblioteca de documentos WordPerfect legados para PDF para armazenamento de longo prazo
+- Compartilhar arquivos WPD com destinatários que não têm o Corel WordPerfect instalado
+
+## Dicas
+
+- O mecanismo LibreOffice é carregado no primeiro uso, o que leva um momento. As conversões seguintes na mesma sessão são mais rápidas.
+- Macros complexas do WPD e reveal codes não são preservados, mas o layout visual, o conteúdo do texto e a formatação básica são mantidos no PDF.
+
+## Ferramentas relacionadas
+
+- [WPS para PDF](./wps-to-pdf)
+- [ODG para PDF](./odg-to-pdf)
diff --git a/docs/pt/tools/wps-to-pdf.md b/docs/pt/tools/wps-to-pdf.md
new file mode 100644
index 00000000..a62c2153
--- /dev/null
+++ b/docs/pt/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS para PDF
+description: Converta documentos do Microsoft Works (WPS) em PDF no seu navegador. Grátis, sem cadastro e totalmente privado.
+---
+
+# WPS para PDF
+
+Converta arquivos do processador de texto Microsoft Works em PDF. O Microsoft Works vinha instalado em PCs domésticos no fim dos anos 1990 e nos anos 2000, e muitos arquivos WPS ainda estão em discos rígidos antigos e arquivos de e-mail. Esta ferramenta os abre no navegador e gera PDFs limpos.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :-------------- | :------- | :-------------------------------------------------- |
+| Microsoft Works | `.wps` | Arquivos do processador de texto do Microsoft Works |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos WPS. Vários arquivos são aceitos.
+2. Revise a lista de arquivos. Use o ícone de lixeira para remover arquivos individuais ou clique em **Adicionar Mais Arquivos** para ampliar o lote.
+3. Clique em **Converter para PDF**. Um mecanismo baseado em LibreOffice é carregado no navegador e converte cada documento WPS em PDF.
+4. Um arquivo é baixado diretamente como PDF. Vários arquivos são reunidos em um arquivo ZIP chamado `wps-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração adicional é necessária. O conversor trata o texto, a formatação básica e as imagens incorporadas do arquivo WPS.
+
+## Casos de uso
+
+- Recuperar documentos antigos da escola ou do trabalho salvos no formato Microsoft Works
+- Abrir anexos WPS de e-mail quando você não tem o Microsoft Works instalado
+- Converter um acervo de arquivos WPS para migrar para um sistema de documentos moderno
+- Imprimir documentos legados que os processadores de texto atuais não conseguem abrir
+
+## Dicas
+
+- Não confunda os arquivos `.wps` do Microsoft Works com os arquivos do WPS Office. Esta ferramenta é específica para o formato mais antigo do Microsoft Works.
+- O mecanismo LibreOffice leva um momento para carregar no primeiro uso. Depois de carregado, as conversões seguintes na mesma sessão são mais rápidas.
+
+## Ferramentas relacionadas
+
+- [WPD para PDF](./wpd-to-pdf)
+- [PUB para PDF](./pub-to-pdf)
diff --git a/docs/pt/tools/xml-to-pdf.md b/docs/pt/tools/xml-to-pdf.md
new file mode 100644
index 00000000..874650e0
--- /dev/null
+++ b/docs/pt/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML para PDF
+description: Converta arquivos XML em documentos PDF estruturados no seu navegador. Grátis, privado, sem processamento em servidor.
+---
+
+# XML para PDF
+
+Converta arquivos de dados XML em documentos PDF legíveis e estruturados. O XML bruto é poderoso, mas difícil de ler para humanos. Esta ferramenta analisa a árvore XML, identifica estruturas de dados repetitivas e as renderiza como tabelas e seções formatadas em um PDF A4 na horizontal.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :------ | :------- | :--------------------------------- |
+| XML | `.xml` | Qualquer documento XML bem formado |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos XML. Vários arquivos podem ser processados em um único lote.
+2. Revise a lista de arquivos. Remova arquivos indesejados com o ícone de lixeira ou clique em **Adicionar Mais Arquivos** para incluir mais.
+3. Clique em **Converter para PDF**. A ferramenta analisa a estrutura XML com o DOMParser nativo do navegador, examina a hierarquia dos dados e a renderiza em um PDF usando jsPDF com formatação de tabelas automática.
+4. Um único arquivo é baixado como PDF. Várias conversões são empacotadas em `xml-to-pdf.zip`.
+
+## Opções
+
+Nenhuma configuração manual é necessária. O conversor detecta automaticamente a estrutura XML e escolhe layouts de tabela apropriados. A saída usa orientação A4 na horizontal para acomodar conjuntos de dados largos.
+
+## Casos de uso
+
+- Transformar exportações de dados XML de bancos de dados ou APIs em relatórios imprimíveis
+- Criar resumos legíveis a partir de arquivos de configuração XML
+- Converter notas fiscais ou logs de transações em XML para PDFs de arquivo
+- Tornar sitemaps XML ou feeds RSS legíveis em formato de documento
+
+## Dicas
+
+- O XML precisa estar bem formado. Se o analisador encontrar erros de sintaxe, a conversão falha com uma mensagem de erro descritiva apontando o problema.
+- Estruturas XML muito aninhadas são achatadas em tabelas. Para melhores resultados, os dados devem ter elementos irmãos repetidos com elementos filhos consistentes.
+- Atualizações de progresso aparecem durante a conversão, mostrando cada fase: leitura, análise, avaliação e renderização.
+
+## Ferramentas relacionadas
+
+- [FB2 para PDF](./fb2-to-pdf)
+- [XPS para PDF](./xps-to-pdf)
+- [Email para PDF](./email-to-pdf)
diff --git a/docs/pt/tools/xps-to-pdf.md b/docs/pt/tools/xps-to-pdf.md
new file mode 100644
index 00000000..444112cb
--- /dev/null
+++ b/docs/pt/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS para PDF
+description: Converta documentos XPS e OXPS em PDF no seu navegador. Sem upload, sem cadastro, totalmente privado.
+---
+
+# XPS para PDF
+
+Converta documentos Microsoft XPS e OXPS em arquivos PDF padrão. O XPS (XML Paper Specification) foi a resposta da Microsoft ao PDF, mas o suporte a ele diminuiu em várias plataformas. Esta ferramenta torna esses documentos legíveis universalmente de novo.
+
+## Formatos suportados
+
+| Formato | Extensão | Observações |
+| :------ | :------- | :-------------------------------------- |
+| XPS | `.xps` | Formato XPS original da Microsoft |
+| OXPS | `.oxps` | Open XPS, a variante do padrão ECMA-388 |
+
+## Como funciona
+
+1. Clique na área de upload ou arraste e solte seus arquivos XPS/OXPS. Você pode selecionar vários arquivos de uma vez.
+2. Revise a lista de arquivos. Remova arquivos individuais com o ícone de lixeira ou clique em **Adicionar Mais Arquivos** para acrescentar documentos.
+3. Clique em **Converter para PDF**. O mecanismo PyMuPDF processa cada documento localmente no seu navegador.
+4. Um único arquivo é baixado diretamente como PDF. Vários arquivos são reunidos em um arquivo ZIP chamado `xps-converted.zip`.
+
+## Opções
+
+Esta ferramenta faz uma conversão direta de formato, sem configuração adicional. A saída preserva as dimensões originais da página, os gráficos vetoriais, as fontes e as imagens da origem XPS.
+
+## Casos de uso
+
+- Abrir arquivos XPS recebidos de sistemas Windows mais antigos que usavam o driver de impressão XPS por padrão
+- Converter documentos OXPS do Windows 10/11 para compartilhar com usuários de macOS ou Linux
+- Arquivar arquivos XPS legados em um formato com suporte mais amplo
+- Tornar documentos governamentais ou corporativos baseados em XPS acessíveis a destinatários externos
+
+## Dicas
+
+- As extensões `.xps` e `.oxps` são tratadas automaticamente: você pode misturá-las no mesmo lote.
+- Se o arquivo XPS original foi criado com um driver de impressão de alta resolução, o PDF resultante mantém essa qualidade. Não há reamostragem.
+
+## Ferramentas relacionadas
+
+- [Word para PDF](./word-to-pdf)
+- [XML para PDF](./xml-to-pdf)
diff --git a/docs/ru/contributing.md b/docs/ru/contributing.md
new file mode 100644
index 00000000..c778c8c9
--- /dev/null
+++ b/docs/ru/contributing.md
@@ -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
+```
+
+## Добавление нового инструмента
+
+### Шаг 1: создайте файл логики
+
+Создайте `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
+});
+```
+
+### Шаг 2: создайте HTML-страницу
+
+Создайте `src/pages/your-tool.html` по образцу существующих шаблонов инструментов.
+
+### Шаг 3: зарегистрируйте инструмент
+
+Добавьте в `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.',
+}
+```
+
+### Шаг 4: добавьте в конфигурацию сборки
+
+Добавьте страницу в `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Шаг 5: добавьте переводы
+
+Добавьте записи во все файлы локалей в `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Стиль кода
+
+- Используйте TypeScript для всего нового кода
+- Следуйте существующим шаблонам для единообразия
+- Запускайте `npm run format` перед коммитом
+- Без комментариев в рабочем коде (комментарии удаляются при сборке)
+
+## Процесс отправки 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)
+
+## Помощь
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Сообщество в Discord](https://discord.gg/Bgq3Ay3f2w)
+
+## Лицензия
+
+BentoPDF распространяется по двойной лицензии:
+
+- **AGPL-3.0** для проектов с открытым исходным кодом, где вы публикуете весь свой исходный код
+- **Коммерческая лицензия** для проприетарных приложений с закрытым кодом: [Получить бессрочную лицензию за $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Участвуя в разработке, вы соглашаетесь, что ваш вклад будет лицензирован на этих условиях.
diff --git a/docs/ru/getting-started.md b/docs/ru/getting-started.md
new file mode 100644
index 00000000..08988e42
--- /dev/null
+++ b/docs/ru/getting-started.md
@@ -0,0 +1,80 @@
+# Начало работы
+
+Добро пожаловать в BentoPDF! Это руководство поможет вам быстро начать работу.
+
+## Что такое BentoPDF?
+
+BentoPDF: бесплатный набор PDF-инструментов с открытым исходным кодом и упором на приватность, который работает **целиком в вашем браузере**. Ваши файлы никогда не покидают устройство: вся обработка выполняется локально с помощью WebAssembly (WASM).
+
+## Быстрый старт
+
+### Вариант 1: размещённая версия
+
+Откройте [bentopdf.com](https://www.bentopdf.com) и пользуйтесь BentoPDF сразу, без установки.
+
+### Вариант 2: самостоятельный хостинг в Docker
+
+> [!IMPORTANT]
+> Для конвертации файлов Office нужен `SharedArrayBuffer`, а для него требуется всё перечисленное:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - безопасный контекст
+>
+> `http://localhost` подходит для локального тестирования, так как браузеры считают loopback доверенным. `http://192.168.x.x` и другие адреса локальной сети обычно не считаются, поэтому для конвертации 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 выпускается в двух сборках: **Self-Hosted** (`bentopdf-simple`, используется выше) для внутренних, командных и корпоративных развёртываний и **Commercial** (`bentopdf:latest`), которую использует сам bentopdf.com и владельцы коммерческой лицензии для публичных развёртываний. В обеих одинаковые PDF-инструменты, а Commercial добавляет главный экран, FAQ, отзывы и подвал bentopdf.com. Если сомневаетесь, берите сборку Self-Hosted.
+
+Затем откройте `http://localhost:3000` в браузере.
+
+> [!NOTE]
+> Если вы готовите изолированное (air-gapped) развёртывание OCR, помимо воркера Tesseract, основного рантайма и файлов traineddata нужно разместить внутри сети и шрифты текстового слоя OCR. Полная настройка описана в разделе [Самостоятельный хостинг](/ru/self-hosting/), включая `VITE_OCR_FONT_BASE_URL` и поставляемый каталог `ocr-fonts/`.
+
+### Вариант 3: сборка из исходников
+
+```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+
+
+## Дальнейшие шаги
+
+- [Изучите все инструменты](/ru/tools/)
+- [Разверните BentoPDF у себя](/ru/self-hosting/)
+- [Участвуйте в проекте](/ru/contributing)
diff --git a/docs/ru/index.md b/docs/ru/index.md
new file mode 100644
index 00000000..f5b99482
--- /dev/null
+++ b/docs/ru/index.md
@@ -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: /ru/getting-started
+ - theme: alt
+ text: Инструменты
+ link: /ru/tools/
+ - theme: alt
+ text: Свой хостинг
+ link: /ru/self-hosting/
+ - theme: alt
+ text: Коммерческая лицензия
+ link: /ru/licensing
+
+features:
+ - icon: 🔒
+ title: На 100% приватно
+ details: Ваши файлы не покидают устройство. Вся обработка выполняется локально в браузере с помощью WebAssembly.
+ - icon: ⚡
+ title: Быстро и бесплатно
+ details: Без регистрации, без ограничений, без водяных знаков. Обрабатывайте неограниченное число PDF бесплатно и навсегда.
+ - icon: 🛠️
+ title: Более 50 инструментов
+ details: Конвертация, правка, объединение, разделение, сжатие, подпись, OCR и многое другое. Всё нужное в одном месте.
+
+ - icon: 🌐
+ title: Можно развернуть у себя
+ details: 'Развёртывайте на своей инфраструктуре: Docker, Vercel, Netlify, AWS или полностью изолированные среды с собственными воркерами OCR, языковыми данными и шрифтами текстового слоя.'
+---
+
+## OCR офлайн
+
+Если вы размещаете BentoPDF у себя в изолированной или офлайн-среде, для OCR нужны не только воркер Tesseract и файлы traineddata. Чтобы получать PDF с возможностью поиска, шрифты текстового слоя OCR тоже должны раздаваться изнутри.
+Полную настройку, включая `VITE_OCR_FONT_BASE_URL`, поставляемый каталог `ocr-fonts/` и обновлённый процесс для изолированных сред, смотрите в разделе [Самостоятельный хостинг](/ru/self-hosting/).
diff --git a/docs/ru/licensing.md b/docs/ru/licensing.md
new file mode 100644
index 00000000..7b0e7b3c
--- /dev/null
+++ b/docs/ru/licensing.md
@@ -0,0 +1,110 @@
+# 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](/ru/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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/ru/self-hosting/apache.md b/docs/ru/self-hosting/apache.md
new file mode 100644
index 00000000..23213ea4
--- /dev/null
+++ b/docs/ru/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Развёртывание на Apache
+
+Размещение BentoPDF на Apache HTTP Server.
+
+## Требования
+
+- Apache 2.4+
+- Включённый mod_rewrite
+- SSL-сертификат (рекомендуется)
+
+## Шаг 1: соберите проект
+
+```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
+```
+
+## Шаг 2: скопируйте файлы
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Шаг 3: конфигурация Apache
+
+Создайте `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Шаг 4: .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
+```
+
+## Шаг 5: включите нужные модули
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Шаг 6: включите сайт
+
+```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
+```
+
+### Sign PDF или Form Filler показывают пустой просмотрщик (ошибка 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`.
+
+### Rewrite не работает
+
+Проверьте, что 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"
+```
+
+Также нужен безопасный контекст. `http://localhost` подходит для локального тестирования, а для `http://192.168.x.x` и других адресов локальной сети обычно требуется HTTPS. Если заголовки есть, но `window.crossOriginIsolated` по-прежнему `false`, проверьте, не открывается ли страница по обычному HTTP с адреса, отличного от loopback.
+
+Предварительно сжатым файлам `.wasm.gz` и `.data.gz` также нужен правильный `Content-Encoding`:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Убедитесь, что `mod_headers` включён: `sudo a2enmod headers`
+
+### Отказано в доступе
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/ru/self-hosting/aws.md b/docs/ru/self-hosting/aws.md
new file mode 100644
index 00000000..357ab7f9
--- /dev/null
+++ b/docs/ru/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Развёртывание на AWS S3 + CloudFront
+
+Размещение BentoPDF на AWS для максимального контроля и масштабируемости.
+
+## Архитектура
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Шаг 1: создайте S3-бакет
+
+```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
+```
+
+## Шаг 2: сборка и загрузка
+
+```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
+```
+
+## Шаг 3: создайте дистрибутив CloudFront
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Или воспользуйтесь консолью AWS:
+
+1. Откройте CloudFront → Create distribution
+2. Origin domain: выберите свой S3-бакет
+3. Включите "Origin Access Control"
+4. Default root object: `index.html`
+5. Создайте дистрибутив
+
+## Шаг 3b: политика заголовков ответа (обязательна для 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 вашего дистрибутива
+
+Или через 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}
+ ]
+ }
+ }'
+```
+
+## Шаг 3c: метаданные 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 зависнут примерно на 55%. Без правильного Content-Encoding у файлов `.gz` браузер получает необработанные байты gzip, и компиляция WASM завершается ошибкой.
+:::
+
+## Шаг 4: политика S3-бакета
+
+Разрешите CloudFront доступ к бакету:
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Шаг 5: собственные страницы ошибок
+
+Настройте возврат `index.html` при 404 для маршрутизации SPA:
+
+1. CloudFront → Error pages
+2. Создайте собственный ответ на ошибку:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Оценка стоимости
+
+| Ресурс | Ориентировочная стоимость |
+| -------------------------- | ------------------------- |
+| S3 Storage (~500MB) | ~$0.01/мес. |
+| CloudFront (1TB transfer) | ~$85/мес. |
+| CloudFront (10GB transfer) | ~$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"
+ }
+}
+```
diff --git a/docs/ru/self-hosting/cloudflare.md b/docs/ru/self-hosting/cloudflare.md
new file mode 100644
index 00000000..a0803963
--- /dev/null
+++ b/docs/ru/self-hosting/cloudflare.md
@@ -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 |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Переменные окружения
+
+Добавьте их в 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 автоматически настроит DNS, если домен находится в Cloudflare
+
+## Преимущества
+
+- **Бесплатный неограниченный трафик**
+- **Глобальная CDN** с более чем 300 узлами
+- **Автоматический HTTPS**
+- **Предпросмотр развёртываний** для pull request
+- **Быстрые сборки**
+
+## Устранение неполадок
+
+### Загрузка больших файлов
+
+Cloudflare Pages поддерживает файлы размером до 25 МБ. Модули WASM должны проходить, но если вы упрётесь в лимит, попробуйте:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Ограничения размера Worker
+
+Если вы используете Cloudflare Workers для сложной маршрутизации, учтите лимит 1 МБ на бесплатных тарифах.
+
+## CORS-прокси Worker (для цифровых подписей)
+
+Инструменту цифровой подписи нужен CORS-прокси для получения цепочек сертификатов. Разверните входящий в комплект worker:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Функции безопасности
+
+| Функция | Описание |
+| ------------------------- | ----------------------------------- |
+| **Ограничение URL** | Разрешены только URL сертификатов |
+| **Лимит размера файла** | Максимум 10 МБ на запрос |
+| **Ограничение частоты** | 60 запросов/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).
diff --git a/docs/ru/self-hosting/cors-proxy.md b/docs/ru/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..a421e684
--- /dev/null
+++ b/docs/ru/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS-прокси для получения сертификатов
+
+Инструмент цифровой подписи использует CORS-прокси для получения сертификатов издателей у внешних удостоверяющих центров (CA). Это нужно, потому что многие серверы CA не добавляют заголовки CORS в ответы, и браузер не может запросить сертификаты напрямую.
+
+Кроме того, многие серверы CA отдают сертификаты по обычному HTTP. Если ваш экземпляр BentoPDF работает по HTTPS, браузеры блокируют такие HTTP-запросы (политика смешанного содержимого). CORS-прокси решает обе проблемы: запросы идут через HTTPS-endpoint с нужными заголовками.
+
+## Как это работает
+
+При подписании PDF сертификатом:
+
+1. Библиотека `zgapdfsigner` пытается построить полную цепочку сертификатов
+2. Она запрашивает сертификаты издателей по URL из расширения AIA (Authority Information Access) вашего сертификата
+3. Эти запросы идут через CORS-прокси, который добавляет нужные заголовки `Access-Control-Allow-Origin`
+4. Прокси возвращает данные сертификата в браузер
+
+## Собственный CORS-прокси
+
+Если вы размещаете BentoPDF у себя, для работы цифровых подписей с сертификатами, которым нужна загрузка цепочки, потребуется развернуть собственный CORS-прокси.
+
+### Вариант 1: 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
+ ```
+
+### Вариант 2: собственный серверный прокси
+
+Можно создать и собственный 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 источником |
+| **Лимит размера файла** | Передаёт ответ потоком с лимитом 10 МБ и прерывает загрузку при превышении |
+| **Ограничение частоты** | 60 запросов в минуту на IP или IPv6 /64 (нужен KV, при ошибках KV пропускает запросы) |
+| **Подписи HMAC** | Необязательная подпись на стороне клиента (сдерживает случайные злоупотребления) |
+
+### DNS rebinding (хостинг вне Cloudflare)
+
+Worker отклоняет любой URL, который разрешается в частный или внутренний IP. Фиксированный список разрешённых хостов использовать нельзя, так как URL цепочек сертификатов указывают на тот CA, который выдал сертификат (FNMT, корпоративные CA и так далее), и адреса заранее неизвестны. Поэтому остаётся небольшое окно для rebinding: тот, кто управляет DNS своего домена, может отдать проверке безопасности публичный IP, а настоящему запросу чуть позже частный.
+
+В Cloudflare это не эксплуатируется: Workers не могут обращаться к частным IP и endpoint метаданных `169.254.169.254`, поэтому rebind ни к чему не приведёт. Только не давайте worker доступа внутрь: не подключайте Tunnel, Service или привязку к частной сети (ему нужен лишь `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, которые включают промежуточные сертификаты
+- Сертификаты, для которых вы вручную собрали полную цепочку
diff --git a/docs/ru/self-hosting/docker.md b/docs/ru/self-hosting/docker.md
new file mode 100644
index 00000000..0617952d
--- /dev/null
+++ b/docs/ru/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Развёртывание с Docker / Podman
+
+Самый простой способ развернуть BentoPDF у себя в рабочей среде.
+
+> [!IMPORTANT]
+> **Обязательные заголовки для конвертации файлов Office**
+>
+> Инструментам на основе LibreOffice (конвертация Word, Excel, PowerPoint) для поддержки `SharedArrayBuffer` нужны такие HTTP-заголовки:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Страница также должна отдаваться из безопасного контекста. `http://localhost` подходит для локального тестирования, а `http://192.168.x.x` и другие адреса локальной сети обычно под это не подпадают, поэтому конвертация Office по обычному HTTP не сработает, даже если заголовки есть.
+>
+> Официальные образы контейнеров включают эти заголовки. Если вы используете обратный прокси (Traefik, Caddy и т. д.), убедитесь, что эти заголовки сохраняются или добавляются, и используйте HTTPS для доступа не через loopback.
+
+> [!TIP]
+> **Пользователям Podman:** все команды `docker` работают и с Podman, если заменить `docker` на `podman`, а `docker-compose` на `podman-compose`.
+
+## Быстрый старт
+
+> [!TIP]
+> BentoPDF выпускается в двух сборках:
+>
+> - **Сборка Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Все PDF-инструменты **без** маркетинговой обвязки (без главного экрана, FAQ, отзывов и подвала). Используйте её для внутренних, командных и корпоративных развёртываний. Это **не** урезанная «лёгкая» версия.
+> - **Сборка Commercial**: `ghcr.io/alam00000/bentopdf:latest`. Полный маркетинговый сайт, который использует сам bentopdf.com и владельцы коммерческой лицензии для публичных развёртываний.
+>
+> Если сомневаетесь, берите сборку Self-Hosted.
+
+```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
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Соберите и запустите:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Переменные окружения
+
+| Переменная | Описание | По умолчанию |
+| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Собрать вариант Self-Hosted (скрывает маркетинговую обвязку bentopdf.com: главный экран, FAQ, отзывы, подвал). Все 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 скрипта воркера 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` | ID инструментов через запятую, которые нужно скрыть | _(пусто; все инструменты включены)_ |
+| `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` |
+| `COMPRESSION_MODE` | Заранее сжатые копии рядом с каждым файлом: `o` нет, `g` `.gz` (их отдаёт nginx образа), `b` `.br`, `all` обе. Nginx образа не умеет отдавать `.br`. | `o` |
+
+URL модулей WASM заранее настроены на значения CDN по умолчанию, поэтому все расширенные функции работают сразу. Переопределите их для изолированных (air-gapped) или самостоятельно размещаемых развёртываний.
+
+### Поисковые системы
+
+По умолчанию каждая страница указывает поисковым системам на 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`. Директивы CSP `script-src`, `connect-src` и `font-src` **генерируются при сборке** из перечисленных выше переменных 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 на любых других хостах разрешаются по источнику (origin).
+- Если вы задаёте собственные URL WASM во _время работы_ на странице расширенных настроек приложения, эти источники **не** попадают в CSP, и браузер заблокирует запросы к ним. Это относится и к другой версии того же пакета на `cdn.jsdelivr.net`, так как разрешена только версия, заданная при сборке. Настройка во время работы предназначена для экспериментов; для постоянных собственных URL задайте соответствующий аргумент сборки `VITE_*`.
+- В изолированных развёртываниях, где переопределены все три значения `VITE_WASM_*_URL`, из CSP также удаляются эти папки пакетов `cdn.jsdelivr.net` (каждое значение по умолчанию заменяется, а не дополняется). Значения 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 на своём сервере или офлайн. Частичное переопределение отклоняется, потому что воркер, основной рантайм и каталог 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 показывается страница «инструмент недоступен».
+
+ID инструмента: URL страницы без `.html`. Например, если инструмент находится по адресу `bentopdf.com/edit-pdf.html`, его ID равен `edit-pdf`.
+
+#### Как найти ID инструментов
+
+Проще всего открыть любой инструмент в BentoPDF и посмотреть на URL. Последняя часть пути (без `.html`) и есть ID инструмента.
+
+
+Полный список ID инструментов
+
+**Правка и аннотации:** `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`
+
+
+
+#### Вариант 1: при сборке (аргумент сборки Docker)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Список отключённых инструментов встраивается в JavaScript-бандл. Для изменения нужна пересборка.
+
+#### Вариант 2: во время работы (config.json)
+
+Смонтируйте файл `config.json` в раздаваемый каталог, пересборка не нужна:
+
+```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"]
+}
+```
+
+
+Полный список категорий редактора
+
+**Масштаб:** `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`
+
+**Измерение:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Формы:** `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`, `organize`
+
+**Выделение:** `selection`, `selection-copy`
+
+**История:** `history`, `history-undo`, `history-redo`
+
+
+
+Категории иерархичны: отключение родительской (например, `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`) всегда пропускают счётчик звёзд: этот флаг нужен только для сборки Commercial или собственных полных сборок.
+
+### Собственные 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
+```
+
+Используйте коды, которые выводит `bash scripts/prepare-airgap.sh --list-ocr-languages`, или ищите по названию через `bash scripts/prepare-airgap.sh --search-ocr-language `, для `--ocr-languages`. Когда вы собираете с ограниченным набором языков 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` |
+
+Это работает и со стандартным, и с nonroot-Dockerfile.
+
+## Свой ID пользователя (PUID/PGID)
+
+Для сред, где нужен запуск от конкретного непривилегированного пользователя (NAS-устройства, Kubernetes с контекстами безопасности, организационные политики), 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` | ID пользователя для запуска | `1000` |
+| `PGID` | ID группы для запуска | `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) и рекомендуется для большинства развёртываний. Используйте `Dockerfile.nonroot` только когда нужен конкретный UID/GID.
+
+> [!WARNING]
+> PUID/PGID не могут быть равны `0` (root). Точка входа проверяет значения и завершится с ошибкой при недопустимых.
+
+## С 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. Это идеально подходит для рабочих развёртываний в 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
+```
diff --git a/docs/ru/self-hosting/hostinger.md b/docs/ru/self-hosting/hostinger.md
new file mode 100644
index 00000000..ba9b67f2
--- /dev/null
+++ b/docs/ru/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Развёртывание на Hostinger
+
+[Hostinger](https://hostinger.com) популярный провайдер виртуального хостинга. Это руководство описывает развёртывание BentoPDF на виртуальном хостинге Hostinger.
+
+## Требования
+
+- Тариф хостинга Hostinger с доступом к файловому менеджеру
+- Node.js, установленный локально для сборки
+
+## Шаг 1: соберите проект
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Готовые файлы будут в папке `dist`.
+
+## Шаг 2: загрузите на Hostinger
+
+### Развёртывание в корне домена
+
+1. Войдите в свой аккаунт Hostinger
+2. Откройте **File Manager** → **public_html**
+3. **Удалите** все существующие файлы (при необходимости сделайте резервную копию)
+4. **Загрузите** всё содержимое локальной папки `dist` в `public_html`
+
+### Развёртывание в подкаталоге
+
+Если вы развёртываете в подкаталог (например, `yourdomain.com/pdf-tools/`):
+
+1. Соберите проект с правильным базовым URL:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Создайте папку на Hostinger:
+ - Откройте **File Manager** → **public_html**
+ - Создайте новую папку: `pdf-tools`
+3. Загрузите всё содержимое `dist` в `public_html/pdf-tools/`
+
+## Шаг 3: создайте файл .htaccess
+
+Создайте файл `.htaccess` в корне папки развёртывания (`public_html` или `public_html/pdf-tools/`):
+
+::: warning Важно
+При развёртывании в подкаталог замените `RewriteBase /` на `RewriteBase /pdf-tools/` (или имя вашей папки).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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 отдельно.
diff --git a/docs/ru/self-hosting/index.md b/docs/ru/self-hosting/index.md
new file mode 100644
index 00000000..ca96cf76
--- /dev/null
+++ b/docs/ru/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Руководство по самостоятельному размещению
+
+BentoPDF можно разместить на собственной инфраструктуре. В этом руководстве описаны разные варианты развертывания.
+
+## Быстрый старт с Docker / Podman
+
+Самый быстрый способ разместить BentoPDF у себя:
+
+> [!TIP]
+> BentoPDF поставляется в двух сборках:
+>
+> - **Сборка для самостоятельного размещения**: `ghcr.io/alam00000/bentopdf-simple:latest`. Все инструменты PDF, **без** маркетингового оформления (без главного экрана, FAQ, отзывов и подвала). Используйте ее для внутренних развертываний в команде или организации. Это **не** урезанная «облегченная» версия.
+> - **Коммерческая сборка**: `ghcr.io/alam00000/bentopdf:latest`. Полный маркетинговый сайт, который использует сам bentopdf.com и держатели коммерческих лицензий для публичных развертываний.
+>
+> Если сомневаетесь, берите сборку для самостоятельного размещения.
+
+> [!IMPORTANT]
+> Для конвертации офисных файлов нужен `SharedArrayBuffer`, а значит, приложение должно быть изолировано между источниками (cross-origin isolated) и раздаваться из защищенного контекста. Официальный образ уже отправляет нужные заголовки COOP/COEP, но браузеры все равно отключают `SharedArrayBuffer` на обычных HTTP-адресах в локальной сети, например `http://192.168.x.x`.
+>
+> Используйте `http://localhost` только для проверки на одном устройстве. Если пользователи открывают BentoPDF по IP-адресу или имени хоста в локальной сети, настройте 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](/ru/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 не удаляются):
+
+- Панель навигации, главный экран, раздел возможностей, FAQ, отзывы, подвал
+- Заголовок страницы меняется на «Инструменты PDF»
+
+**Что сохраняет сборка для самостоятельного размещения** (все, что реально работает с PDF):
+
+- Все инструменты PDF (объединение, разделение, редактирование, подпись, OCR, конвертация офисных файлов и т. д.)
+- Поддержку собственного брендинга, всю конфигурацию на этапе сборки и во время работы
+
+Коммерческая сборка (`ghcr.io/alam00000/bentopdf:latest`) лежит в основе самого bentopdf.com, и ее используют держатели коммерческих лицензий для публичных развертываний. Она добавляет главный экран, FAQ, отзывы и подвал, которые не нужны во внутреннем инструменте.
+
+Если вы размещаете 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. Она включает полный маркетинговый сайт (главный экран, возможности, FAQ, отзывы, подвал) в дополнение ко всем инструментам PDF. Используйте эту сборку, когда хотите **развернуть 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, включая любые изменения брендинга и окружающую бизнес-логику.
+- **Коммерческая лицензия** (79 $ навсегда): требуется для закрытых и проприетарных развертываний, где вы не публикуете исходный код своего форка с брендингом или бизнес-код.
+
+Полное сравнение смотрите на [странице лицензирования](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`: откройте любой инструмент и посмотрите на адрес (например, `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Во время сборки** (вшивается в бандл):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Во время работы** (пересборка не нужна, смонтируйте `config.json`):
+
+```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
+```
+
+Оба способа можно сочетать: списки объединяются.
+
+Вы также можете отключить отдельные функции внутри редактора PDF (например, редактирование с удалением данных), не отключая инструмент целиком, добавив `editorDisabledCategories` в `config.json`. Полный список категорий смотрите в [руководстве по Docker](/ru/self-hosting/docker#отключение-функции-редактора).
+
+## Руководства по развертыванию
+
+Выберите платформу:
+
+- [Vercel](/ru/self-hosting/vercel)
+- [Netlify](/ru/self-hosting/netlify)
+- [Cloudflare Pages](/ru/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/ru/self-hosting/aws)
+- [Hostinger](/ru/self-hosting/hostinger)
+- [Nginx](/ru/self-hosting/nginx)
+- [Apache](/ru/self-hosting/apache)
+- [Docker](/ru/self-hosting/docker)
+- [Kubernetes](/ru/self-hosting/kubernetes)
+- [CORS-прокси](/ru/self-hosting/cors-proxy) - необходим для цифровых подписей
+
+## Частые проблемы
+
+### Конвертация Word / ODT / Excel / PowerPoint в PDF зависает (SharedArrayBuffer недоступен)
+
+**Симптом**: конвертация документов через LibreOffice (Word, ODT, Excel, PowerPoint в PDF) зависает примерно на 55% или не запускается. В консоли браузера может быть:
+
+> `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`, поэтому браузер получает необработанные байты gzip вместо распакованного WASM.
+
+**Решение**: точную конфигурацию смотрите в руководстве для вашей платформы:
+
+- [Nginx →](/ru/self-hosting/nginx#конвертация-word-odt-excel-в-pdf-не-работает)
+- [Apache →](/ru/self-hosting/apache#конвертация-word-odt-excel-в-pdf-не-работает)
+- [AWS S3 + CloudFront →](/ru/self-hosting/aws#шаг-3b-политика-заголовков-ответа-обязательна-для-libreoffice-wasm)
+- [Cloudflare Pages →](/ru/self-hosting/cloudflare#фаил-конфигурации) (файл `_headers`)
+- [Netlify →](/ru/self-hosting/netlify#конвертация-word-odt-excel-в-pdf-зависает-на-55) (`netlify.toml`)
+- [Vercel →](/ru/self-hosting/vercel#конвертация-word-odt-excel-в-pdf-не-работает) (`vercel.json`)
+- [Hostinger →](/ru/self-hosting/hostinger#инструменты-libreoffice-не-работают) (`.htaccess`)
+- [Kubernetes →](/ru/self-hosting/kubernetes#сохранение-заголовков-sharedarraybuffer-ingress-gateway)
+- **Docker**: обрабатывается автоматически встроенной конфигурацией nginx, никаких действий не требуется.
+
+**Проверка**: откройте консоль 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`
+
+**Симптом**: Sign PDF / Form Filler и некоторые другие инструменты показывают пустой просмотрщик или не загружаются. В консоли браузера:
+
+> `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 →](/ru/self-hosting/nginx#sign-pdf-или-form-filler-показывает-пустои-просмотрщик-ошибка-mime-для-mjs)
+- [Apache →](/ru/self-hosting/apache#sign-pdf-или-form-filler-показывают-пустои-просмотрщик-ошибка-mime-для-mjs)
+- [AWS S3 + CloudFront →](/ru/self-hosting/aws#шаг-2-сборка-и-загрузка) (см. `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/ru/self-hosting/kubernetes#ошибки-mime-типа-mjs-пустои-iframe-в-sign-pdf-form-filler)
+- **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 воркера, ядра и языковых данных вместе для автономного 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 ` | Где файлы WASM будут размещены внутри сети | _(обязателен, запрашивается, если не указан)_ |
+| `--image-name ` | Тег образа Docker | `bentopdf` |
+| `--output-dir ` | Директория для итогового пакета | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Включить Simple Mode | выкл. |
+| `--base-url ` | Базовый URL подкаталога (например, `/pdf/`) | `/` |
+| `--language ` | Язык интерфейса по умолчанию (например, `fr`, `de`) | _(нет)_ |
+| `--brand-name ` | Свое название бренда | _(нет)_ |
+| `--brand-logo ` | Путь к логотипу относительно `public/` | _(нет)_ |
+| `--footer-text ` | Свой текст подвала | _(нет)_ |
+| `--ocr-languages ` | Языки OCR для включения в пакет через запятую | `eng` |
+| `--list-ocr-languages` | Вывести поддерживаемые коды и названия OCR и выйти | выкл. |
+| `--search-ocr-language ` | Поиск кодов OCR по названию или сокращению | выкл. |
+| `--dockerfile ` | Используемый Dockerfile | `Dockerfile` |
+| `--skip-docker` | Пропустить сборку и экспорт Docker | выкл. |
+| `--skip-wasm` | Пропустить загрузку WASM (использовать имеющиеся файлы `.tgz`) | выкл. |
+
+Интерактивный режим также принимает `list`, чтобы вывести полный список поддерживаемых кодов Tesseract, и `search `, чтобы найти совпадения, например `search german` или `search chi`.
+
+::: warning Требование одного источника
+Файлы WASM должны раздаваться с **того же источника** (origin), что и приложение BentoPDF. Веб-воркеры используют `importScripts()`, который не может загружать скрипты с другого источника. Например, если BentoPDF работает на `https://internal.example.com`, базовый URL для WASM тоже должен быть `https://internal.example.com/wasm`.
+:::
+
+#### Ручные шаги
+
+
+Если вы предпочитаете выполнить все вручную, без скрипта
+
+**Шаг 1: Скачайте пакеты 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
+```
+
+**Шаг 2: Соберите образ 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 .
+```
+
+**Шаг 3: Экспортируйте образ Docker**
+
+```bash
+docker save bentopdf -o bentopdf.tar
+```
+
+**Шаг 4: Перенесите во внутреннюю изолированную сеть**
+
+Скопируйте через USB, внутренний репозиторий артефактов или другой разрешенный способ передачи:
+
+- `bentopdf.tar`: образ Docker
+- Пять пакетов `.tgz` WASM/OCR из шага 1
+- Директорию `tesseract-langdata/` из шага 1
+- Директорию `ocr-fonts/` из шага 1
+
+**Шаг 5: Настройте внутри изолированной сети**
+
+```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, настроенным на шаге 2, включая `.../ocr/worker.min.js`, `.../ocr/core`, `.../ocr/lang-data` и `.../ocr/fonts`.
+
+
+
+::: info Собираете из исходного кода, а не через Docker?
+Задайте переменные в `.env.production` перед запуском `npm run build`:
+
+```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 загружаются во время работы и не входят в исходный код
+ :::
+
+## Системные требования
+
+| Требование | Минимум |
+| ---------- | ------------------------------- |
+| Диск | ~100 МБ (ядро без модулей AGPL) |
+| ОЗУ | 512 МБ |
+| Процессор | Любой современный |
+
+::: tip
+BentoPDF является статическим сайтом: база данных и серверная часть не нужны!
+:::
diff --git a/docs/ru/self-hosting/kubernetes.md b/docs/ru/self-hosting/kubernetes.md
new file mode 100644
index 00000000..be5c4bd9
--- /dev/null
+++ b/docs/ru/self-hosting/kubernetes.md
@@ -0,0 +1,211 @@
+# Развертывание в Kubernetes
+
+Kubernetes может быть избыточен для статического сайта, но он хорошо подходит, если вы уже стандартизировали процессы на Helm и GitOps.
+
+> [!IMPORTANT]
+> **Обязательные заголовки для конвертации офисных файлов**
+>
+> Инструментам на основе LibreOffice (конвертация Word, Excel, PowerPoint) для поддержки `SharedArrayBuffer` нужны следующие HTTP-заголовки:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Официальные образы BentoPDF на nginx уже отправляют эти заголовки. В Kubernetes **контроллеры Ingress и Gateway тоже являются обратными прокси**, поэтому убедитесь, что заголовки сохраняются (или добавьте их на границе).
+
+## Требования
+
+- Кластер Kubernetes
+- Helm v3
+- Образ BentoPDF на nginx (например, `ghcr.io/alam00000/bentopdf:`), который работает на **порту 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)
+
+Если чарт опубликован в GHCR как артефакт OCI:
+
+```bash
+export GHCR_USERNAME=""
+
+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 в Sign PDF / Form Filler)
+
+Если в консоли браузера появляется `Failed to load module script: ... non-JavaScript MIME type "application/octet-stream"` для запроса `.mjs`, значит контроллер 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`. Проверьте на вкладке Network в DevTools: у неудавшегося запроса `.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"]
+ }
+```
+
+Смонтируйте его в раздаваемую директорию:
+
+```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`: откройте любой инструмент и посмотрите на адрес (например, `edit-pdf`, `merge-pdf`, `compress-pdf`). Отключенные инструменты скрыты с главной страницы, из поиска, быстрых клавиш, конструктора рабочих процессов и недоступны по прямому URL. Полный список параметров смотрите в [руководстве по Docker](/ru/self-hosting/docker#отключение-отдельных-инструментов).
diff --git a/docs/ru/self-hosting/netlify.md b/docs/ru/self-hosting/netlify.md
new file mode 100644
index 00000000..49c29260
--- /dev/null
+++ b/docs/ru/self-hosting/netlify.md
@@ -0,0 +1,139 @@
+# Развертывание в Netlify
+
+[Netlify](https://netlify.com) предлагает отличный хостинг статических сайтов с щедрым бесплатным тарифом.
+
+## Развертывание в один клик
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/alam00000/bentopdf)
+
+## Ручное развертывание
+
+### Шаг 1: Подключите репозиторий
+
+1. Войдите в [Netlify](https://app.netlify.com)
+2. Нажмите «Add new site» → «Import an existing project»
+3. Подключите свой аккаунт GitHub
+4. Выберите свой форк BentoPDF
+
+### Шаг 2: Настройте параметры сборки
+
+| Параметр | Значение |
+| ----------------- | --------------- |
+| Build command | `npm run build` |
+| Publish directory | `dist` |
+| Node version | 18+ |
+
+### Шаг 3: Разверните
+
+Нажмите «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 зависает на 55%
+
+Если конвертация документов зависает на 55%, откройте консоль 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`, у файлов `.wasm.gz` нет заголовков `Content-Encoding: gzip`. Убедитесь, что блоки `[[headers]]` для `soffice.wasm.gz` и `soffice.data.gz` есть в вашем `netlify.toml`.
+
+### Сборка завершается ошибкой
+
+Проверьте совместимость версии Node:
+
+```toml
+[build.environment]
+ NODE_VERSION = "20"
+```
+
+### Медленная первая загрузка
+
+Включите оптимизацию ресурсов в Site settings → Build & deploy → Asset optimization.
diff --git a/docs/ru/self-hosting/nginx.md b/docs/ru/self-hosting/nginx.md
new file mode 100644
index 00000000..fb965bc4
--- /dev/null
+++ b/docs/ru/self-hosting/nginx.md
@@ -0,0 +1,232 @@
+# Развертывание с Nginx
+
+Разместите BentoPDF на собственном сервере с помощью Nginx.
+
+## Требования
+
+- Сервер Ubuntu/Debian
+- Установленный Nginx
+- SSL-сертификат (рекомендуется Let's Encrypt)
+
+## Шаг 1: Соберите проект
+
+```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
+```
+
+## Шаг 2: Скопируйте файлы
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Шаг 3: Конфигурация 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;
+ }
+}
+```
+
+## Шаг 4: Включите сайт
+
+```bash
+sudo ln -s /etc/nginx/sites-available/bentopdf /etc/nginx/sites-enabled/
+sudo nginx -t
+sudo systemctl reload nginx
+```
+
+## Шаг 5: 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;
+}
+```
+
+### Sign PDF или Form Filler показывает пустой просмотрщик (ошибка 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 (его используют Sign PDF, Form Filler и несколько других инструментов) содержит файлы 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` и других адресов в локальной сети обычно требуется HTTPS. Учтите, что директивы `add_header` в блоке `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
+```
diff --git a/docs/ru/self-hosting/vercel.md b/docs/ru/self-hosting/vercel.md
new file mode 100644
index 00000000..a59bba7d
--- /dev/null
+++ b/docs/ru/self-hosting/vercel.md
@@ -0,0 +1,122 @@
+# Развертывание в Vercel
+
+[Vercel](https://vercel.com) предлагает самый простой способ развертывания статических сайтов.
+
+## Развертывание в один клик
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
+
+## Ручное развертывание
+
+### Шаг 1: Сделайте форк репозитория
+
+Сделайте форк [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) в свой аккаунт GitHub.
+
+### Шаг 2: Импортируйте в 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` |
+
+### Шаг 3: Переменные окружения (необязательно)
+
+Добавьте их при необходимости:
+
+| Переменная | Описание |
+| ----------------------- | ----------------------------------------------------------------------- |
+| `SIMPLE_MODE` | Укажите `true` для минимального интерфейса |
+| `VITE_BRAND_NAME` | Свое название бренда (заменяет «BentoPDF») |
+| `VITE_BRAND_LOGO` | Путь к логотипу относительно `public/` (например, `images/my-logo.svg`) |
+| `VITE_FOOTER_TEXT` | Свой текст подвала и авторских прав |
+| `VITE_DEFAULT_LANGUAGE` | Язык интерфейса по умолчанию (например, `fr`, `de`, `es`) |
+
+### Шаг 4: Разверните
+
+Нажмите «Deploy» и дождитесь завершения сборки.
+
+## Собственный домен
+
+1. Откройте настройки проекта
+2. Перейдите в раздел «Domains»
+3. Добавьте свой домен
+4. Настройте DNS по инструкции
+
+## Ограничения
+
+::: warning Большие файлы
+У serverless-функций Vercel есть ограничение в 50 МБ. Поскольку BentoPDF является статическим сайтом, это не должно вас затронуть, но модули WASM велики (около 100 МБ в сумме). Убедитесь, что они раздаются из папки `/public`.
+:::
+
+## Устранение неполадок
+
+### Тайм-аут сборки
+
+Если сборка завершается по тайм-ауту, попробуйте:
+
+```json
+// vercel.json
+{
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+}
+```
+
+### Ошибка 404 при обновлении страницы
+
+Добавьте `vercel.json` для маршрутизации SPA:
+
+```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" }
+ ]
+ }
+ ]
+}
+```
+
+Для проверки откройте консоль DevTools и выполните `console.log(window.crossOriginIsolated)`: должно вернуться `true`.
diff --git a/docs/ru/tools/add-attachments.md b/docs/ru/tools/add-attachments.md
new file mode 100644
index 00000000..453ba109
--- /dev/null
+++ b/docs/ru/tools/add-attachments.md
@@ -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)
diff --git a/docs/ru/tools/add-blank-page.md b/docs/ru/tools/add-blank-page.md
new file mode 100644
index 00000000..b2555e3d
--- /dev/null
+++ b/docs/ru/tools/add-blank-page.md
@@ -0,0 +1,40 @@
+---
+title: Добавление пустой страницы
+description: Вставляйте одну или несколько пустых страниц в любое место PDF-документа.
+---
+
+# Добавление пустой страницы
+
+Вставляйте пустые страницы в PDF в указанное место. Вы сами выбираете, куда поместить пустые страницы и сколько их добавить.
+
+## Как это работает
+
+1. Загрузите PDF-файл. Инструмент покажет количество страниц.
+2. Введите **позицию**, в которую нужно вставить пустые страницы. Укажите `0`, чтобы вставить в самое начало, или общее число страниц, чтобы добавить в конец.
+3. Введите **количество** добавляемых пустых страниц (по умолчанию 1).
+4. Нажмите кнопку обработки. Измененный PDF скачается со вставленными пустыми страницами.
+
+## Возможности
+
+- Вставка в любое место: в начало, середину или конец документа
+- Добавление нескольких пустых страниц за одну операцию
+- Подсказка по позиции динамически обновляется в зависимости от числа страниц загруженного PDF
+- Пустые страницы стандартного размера A4
+
+## Сценарии использования
+
+- Добавление пустой страницы-разделителя между разделами сводного документа
+- Вставка пустых страниц для правильной двусторонней печати
+- Добавление места для рукописных заметок в распечатанном учебном пособии
+- Дополнение документа до минимально необходимого числа страниц
+
+## Советы
+
+- Позиция `0` вставляет страницы перед первой. Позиция, равная общему числу страниц, добавляет их после последней.
+- Если нужно вставить в определенное место не просто пустые страницы, а содержимое, используйте [Мультиинструмент PDF](./pdf-multi-tool), чтобы вставить другой PDF после заданной страницы.
+
+## Похожие инструменты
+
+- [Упорядочивание и дублирование](./organize-pdf)
+- [Мультиинструмент PDF](./pdf-multi-tool)
+- [Объединение PDF](./merge-pdf)
diff --git a/docs/ru/tools/add-page-labels.md b/docs/ru/tools/add-page-labels.md
new file mode 100644
index 00000000..48d78c11
--- /dev/null
+++ b/docs/ru/tools/add-page-labels.md
@@ -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. Укажите 0 для нумерации с нуля.
+- **Продолжать нумерацию в несмежных диапазонах**: включите, если правило охватывает несмежные страницы (например, `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)
diff --git a/docs/ru/tools/add-stamps.md b/docs/ru/tools/add-stamps.md
new file mode 100644
index 00000000..909dcfb0
--- /dev/null
+++ b/docs/ru/tools/add-stamps.md
@@ -0,0 +1,45 @@
+---
+title: Добавление штампов
+description: Добавляйте штампы-изображения на страницы PDF с помощью встроенной панели аннотаций с указанием имени автора.
+---
+
+# Добавление штампов
+
+Размещайте штампы-изображения на страницах PDF во встроенном просмотрщике с панелью аннотаций для штампов. Штампы могут содержать ваше имя, что удобно для процессов согласования, проверки и маркировки документов.
+
+## Как это работает
+
+1. Введите свое имя в поле **Имя автора штампа**. Это имя будет указано на создаваемых штампах.
+2. Загрузите PDF-файл, нажав на зону загрузки или перетащив файл в нее.
+3. Откроется редактор штампов с загруженным документом в просмотрщике.
+4. С помощью инструмента штампа-изображения на панели выберите и разместите штампы на любой странице.
+5. При необходимости измените положение и размер штампов.
+6. Нажмите **Сохранить PDF со штампами**, чтобы скачать результат.
+
+## Возможности
+
+- Встроенный просмотрщик PDF с панелью аннотаций для штампов
+- Указание имени автора на созданных штампах
+- Размещение штампов-изображений на любой странице
+- Перетаскивание и изменение размера штампов
+- Автоматический подбор размера просмотрщика по пропорциям страницы
+- Отображение имени и размера файла
+
+## Сценарии использования
+
+- Добавление штампов «УТВЕРЖДЕНО» или «ПРОВЕРЕНО» в документы в процессе согласования
+- Размещение изображений печати компании или нотариуса на официальных документах
+- Отметка страниц штампами «ПОЛУЧЕНО» с именем проверяющего
+- Добавление штампов контроля качества в акты проверок
+
+## Советы
+
+- Задайте имя автора штампа до загрузки PDF. Имя встраивается в метаданные штампа.
+- Высота просмотрщика подстраивается под пропорции первой страницы PDF для удобного просмотра.
+- Для текстовых водяных знаков вместо штампов-изображений используйте инструмент [Добавление водяных знаков](./add-watermark).
+
+## Похожие инструменты
+
+- [Подпись PDF](./sign-pdf)
+- [Добавление водяных знаков](./add-watermark)
+- [Редактор PDF](./edit-pdf)
diff --git a/docs/ru/tools/add-watermark.md b/docs/ru/tools/add-watermark.md
new file mode 100644
index 00000000..1ac1983a
--- /dev/null
+++ b/docs/ru/tools/add-watermark.md
@@ -0,0 +1,79 @@
+---
+title: Добавление водяных знаков
+description: Накладывайте текстовые или графические водяные знаки на страницы PDF с помощью визуального редактора с перетаскиванием и предпросмотром в реальном времени.
+---
+
+# Добавление водяных знаков
+
+Добавляйте текстовые или графические водяные знаки на страницы PDF с помощью визуального редактора. Положение знака можно задать, перетащив его прямо на предпросмотре, размер меняется угловыми маркерами, а также настраиваются прозрачность, поворот, шрифт и цвет. У каждой страницы может быть свое положение знака, либо можно сразу применить один и тот же знак ко всем страницам.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Откроется редактор с предпросмотром первой страницы в реальном времени и перетаскиваемым водяным знаком.
+3. Выберите режим **Текст** или **Изображение** с помощью переключателей.
+4. Настройте параметры водяного знака на боковой панели.
+5. Перетащите знак на предпросмотре в нужное место. Для изменения размера используйте угловые маркеры.
+6. Переключайтесь между страницами, чтобы задать знаки для каждой страницы отдельно, либо оставьте включенным **Применить ко всем страницам**.
+7. Нажмите **Добавить водяной знак**, чтобы обработать файл и скачать результат.
+
+## Параметры
+
+**Параметры текстового водяного знака:**
+
+- **Текст**: текст знака (например, «КОНФИДЕНЦИАЛЬНО», «ЧЕРНОВИК»).
+- **Размер шрифта**: от 10 до 200 пунктов. По умолчанию 72.
+- **Цвет**: любой цвет через палитру.
+- **Прозрачность**: от полностью прозрачного до полностью непрозрачного.
+- **Поворот**: поворот текста знака от -180 до 180 градусов.
+
+**Параметры графического водяного знака:**
+
+- **Загрузка изображения**: загрузите PNG, JPG или другой файл изображения для использования в качестве знака.
+- **Прозрачность**: управление прозрачностью изображения.
+- **Масштаб**: изменение размера изображения-знака.
+
+**Параметры расположения:**
+
+- **Одиночный**: один знак на страницу, положение задается перетаскиванием или готовыми пресетами позиции.
+- **Мозаика**: повторяет знак по всей странице в диагональной сетке, которая следует углу поворота, поэтому знак покрывает документ от края до края.
+- **Горизонтальный интервал**: расстояние между плитками вдоль направления текста в процентах от ширины знака (только в режиме мозаики).
+- **Вертикальный интервал**: расстояние между рядами плиток в процентах от высоты знака (только в режиме мозаики).
+
+**Общие параметры:**
+
+- **Применить ко всем страницам**: если включено, один и тот же знак применяется к каждой странице. Отключите, чтобы задавать знаки для страниц по отдельности.
+- **Диапазон страниц**: укажите, на какие страницы наносится знак (например, «1-3, 5, 7-9» или «all»).
+
+## Возможности
+
+- Визуальное размещение перетаскиванием на предпросмотре PDF в реальном времени
+- Изменение размера знака угловыми маркерами
+- Текстовый и графический режимы водяных знаков
+- Одиночное или мозаичное (повторяющееся) расположение по всей странице с настраиваемыми интервалами
+- Применение к отдельным страницам или ко всему документу
+- Постраничная навигация в предпросмотре
+- Управление прозрачностью и поворотом
+- Фильтрация по диапазону страниц
+
+## Сценарии использования
+
+- Пометка черновиков словом «ЧЕРНОВИК» перед рассылкой на согласование
+- Добавление водяных знаков «КОНФИДЕНЦИАЛЬНО» в закрытые финансовые отчеты
+- Брендирование документов водяным знаком с логотипом компании
+- Нанесение отметки «ОБРАЗЕЦ» на документацию, которую показывают потенциальным клиентам
+- Добавление уведомлений об авторских правах в распространяемые PDF-материалы
+
+## Советы
+
+- Для диагональных водяных знаков по странице задайте поворот около 45 градусов и увеличьте размер шрифта.
+- Режим мозаики сильно затрудняет повторное использование документа после обрезки: даже если убрать один знак, останутся десятки других. При мозаичном расположении уменьшите непрозрачность, чтобы текст под знаками оставался читаемым.
+- Изображения-знаки с прозрачным фоном (формат PNG) естественнее сочетаются с содержимым документа.
+- Если на разных страницах нужен разный текст знака, отключите «Применить ко всем страницам» и переходите от страницы к странице.
+
+## Похожие инструменты
+
+- [Колонтитулы](./header-footer)
+- [Добавление штампов](./add-stamps)
+- [Bates-нумерация](./bates-numbering)
+- [Подпись PDF](./sign-pdf)
diff --git a/docs/ru/tools/adjust-colors.md b/docs/ru/tools/adjust-colors.md
new file mode 100644
index 00000000..2cefa001
--- /dev/null
+++ b/docs/ru/tools/adjust-colors.md
@@ -0,0 +1,55 @@
+---
+title: Настройка цвета
+description: Точно настраивайте яркость, контрастность, насыщенность, оттенок, температуру, тон, гамму и сепию в вашем PDF.
+---
+
+# Настройка цвета
+
+Полный набор инструментов цветокоррекции для PDF. Настраивайте восемь независимых параметров: яркость, контрастность, насыщенность, сдвиг оттенка, температуру, тон, гамму и сепию. Предпросмотр обновляется в реальном времени при движении каждого ползунка.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Откроется редактор с предпросмотром первой страницы и панелью настроек цвета.
+3. Двигайте ползунки, чтобы изменить каждый параметр цвета. Предпросмотр обновляется сразу.
+4. Нажмите **Сбросить**, чтобы вернуть все ползунки в исходное положение.
+5. Нажмите **Применить**, чтобы обработать все страницы и скачать скорректированный PDF.
+
+## Параметры
+
+- **Яркость**: осветление или затемнение всей страницы (от -100 до +100).
+- **Контрастность**: увеличение или уменьшение разницы между светлыми и темными областями (от -100 до +100).
+- **Насыщенность**: усиление или ослабление интенсивности цвета (от -100 до +100). При значении -100 получается изображение в оттенках серого.
+- **Сдвиг оттенка**: поворот цветового круга, равномерно сдвигающий все цвета.
+- **Температура**: сдвиг цветов в теплую (желтую или оранжевую) или холодную (синюю) сторону.
+- **Тон**: добавление зеленого или пурпурного оттенка.
+- **Гамма**: настройка яркости средних тонов по гамма-кривой. Значения меньше 1,0 затемняют средние тона, больше 1,0 осветляют их.
+- **Сепия**: классический эффект сепии. Чем выше значение, тем сильнее коричневый оттенок.
+
+## Возможности
+
+- Восемь независимо настраиваемых параметров цвета
+- Предпросмотр в реальном времени, мгновенно реагирующий на ползунки
+- Кнопка сброса для быстрого возврата к значениям по умолчанию
+- Обработка всех страниц документа
+- Работает с любым содержимым PDF (текст, изображения, графика)
+
+## Сценарии использования
+
+- Осветление темного скана или исправление переэкспонированных страниц
+- Снижение насыщенности цветного документа, чтобы сэкономить краску при печати
+- Применение сепии для старинного вида сертификатов или наград
+- Коррекция цветовой температуры фотографий, встроенных в PDF
+- Повышение контрастности выцветших или низкокачественных сканов
+
+## Советы
+
+- Для быстрого перевода в оттенки серого передвиньте ползунок насыщенности до -100.
+- Ползунок гаммы особенно полезен для улучшения читаемости сканов, у которых средние тона слишком темные или слишком светлые.
+- Как и другие инструменты с эффектами изображения, этот растрирует каждую страницу. Результат будет состоять из изображений, поэтому текст нельзя будет выделить.
+
+## Похожие инструменты
+
+- [Инвертирование цветов](./invert-colors)
+- [Эффект сканера](./scanner-effect)
+- [Цвет фона](./background-color)
diff --git a/docs/ru/tools/alternate-merge.md b/docs/ru/tools/alternate-merge.md
new file mode 100644
index 00000000..ff9abc1c
--- /dev/null
+++ b/docs/ru/tools/alternate-merge.md
@@ -0,0 +1,42 @@
+---
+title: Объединение документов с чередованием страниц
+description: Объединяйте PDF, чередуя страницы из каждого файла по очереди, с сохранением закладок.
+---
+
+# Объединение документов с чередованием страниц
+
+Чередуйте страницы нескольких PDF-файлов так, чтобы они шли по очереди из разных документов. Этот инструмент нужен, когда обычное объединение просто склеивает файлы один за другим, а вам требуется страница 1 файла A, затем страница 1 файла B, затем страница 2 файла A и так далее.
+
+## Как это работает
+
+1. Загрузите не менее двух PDF-файлов через зону загрузки.
+2. Инструмент покажет каждый файл с числом страниц и размером.
+3. Перетаскивайте маркеры, чтобы изменить, страницы какого файла идут первыми в последовательности чередования.
+4. Нажмите **Смешать страницы**, чтобы получить результат с чередованием.
+5. Результат скачается как `alternated-mixed.pdf`.
+
+## Возможности
+
+- Чередование страниц любого числа PDF (минимум два)
+- Изменение порядка файлов перетаскиванием для управления приоритетом чередования
+- Сохранение закладок исходных документов
+- Отображение числа страниц и размера каждого загруженного файла
+- Обработка в отдельном веб-воркере, чтобы интерфейс оставался отзывчивым
+
+## Сценарии использования
+
+- Сборка двусторонних сканов, когда нечетные и четные страницы сканировались отдельно
+- Объединение листов с вопросами и ответами, чтобы после каждого вопроса шел ответ
+- Постраничное объединение документов на двух языках (например, английский на одной странице, перевод на следующей)
+- Чередование лицевых и оборотных сканов, полученных на одностороннем сканере
+
+## Советы
+
+- Если в исходных PDF разное число страниц, страницы более короткого документа закончатся первыми, а оставшиеся страницы более длинного окажутся в конце.
+- Порядок файлов важен: первый файл в списке дает первую страницу результата. При необходимости перетащите файлы, чтобы изменить порядок.
+
+## Похожие инструменты
+
+- [Объединение PDF](./merge-pdf)
+- [Упорядочивание и дублирование](./organize-pdf)
+- [Разделение PDF](./split-pdf)
diff --git a/docs/ru/tools/background-color.md b/docs/ru/tools/background-color.md
new file mode 100644
index 00000000..bd6f5e72
--- /dev/null
+++ b/docs/ru/tools/background-color.md
@@ -0,0 +1,45 @@
+---
+title: Цвет фона
+description: Меняйте цвет фона на каждой странице PDF, сохраняя все содержимое поверх него.
+---
+
+# Цвет фона
+
+Задайте сплошной цвет фона за всем существующим содержимым PDF. Инструмент создает цветной прямоугольник на каждой странице и накладывает поверх него исходное содержимое, поэтому текст, изображения и графика остаются полностью видимыми на новом фоне.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Выберите цвет фона с помощью палитры. По умолчанию это светло-желтый (#FFFFCC).
+3. Нажмите **Изменить цвет фона**, чтобы начать обработку.
+4. Обновленный PDF скачается автоматически.
+
+## Параметры
+
+- **Цвет фона**: стандартная палитра для выбора любого сплошного цвета. По умолчанию светло-желтый.
+
+## Возможности
+
+- Единый цвет фона на каждой странице
+- Все исходное содержимое (текст, изображения, векторная графика) сохраняется поверх цветного слоя
+- Исходные размеры страниц сохраняются
+- Работает с документами с любым числом страниц
+
+## Сценарии использования
+
+- Светлый кремовый или цвета слоновой кости фон, чтобы документ выглядел мягче, как бумага
+- Цветовая маркировка наборов документов с разными фонами для разных категорий
+- Создание визуально различимых версий одного документа для разных аудиторий
+- Легкий оттенок фона для лучшей читаемости при показе документов на экране
+
+## Советы
+
+- Лучше всего подходят светлые приглушенные цвета. Очень темный фон затрудняет чтение текста, если только сам текст уже не светлый.
+- Если нужно изменить и фон, и цвет текста, сначала примените цвет фона, а затем используйте [Изменение цвета текста](./text-color) для результата.
+- Инструмент работает на структурном уровне PDF (без растрирования), поэтому текст в результате остается выделяемым и доступным для поиска.
+
+## Похожие инструменты
+
+- [Изменение цвета текста](./text-color)
+- [Инвертирование цветов](./invert-colors)
+- [Настройка цвета](./adjust-colors)
diff --git a/docs/ru/tools/bates-numbering.md b/docs/ru/tools/bates-numbering.md
new file mode 100644
index 00000000..0a19fdf0
--- /dev/null
+++ b/docs/ru/tools/bates-numbering.md
@@ -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-номера**: количество цифр (от 3 до 6) для Bates-номеров с ведущими нулями. Видно только в пользовательском режиме.
+- **Положение**: верхний или нижний колонтитул, слева, по центру или справа.
+- **Bates-нумерация начинается с**: первый Bates-номер. По умолчанию 1. Нумерация продолжается между файлами.
+- **Счетчик файлов начинается с**: начальное число для плейсхолдера `[FILE]`.
+- **Шрифт**: Helvetica, Times New Roman или Courier.
+- **Размер шрифта**: размер наносимого текста.
+- **Цвет**: палитра для цвета текста Bates-номера.
+
+## Возможности
+
+- Предпросмотр в реальном времени показывает, как Bates-номера будут выглядеть во всех загруженных файлах
+- Поддержка нескольких файлов со сквозной нумерацией между документами
+- Изменение порядка файлов перетаскиванием для управления последовательностью нумерации
+- Шесть вариантов положения (верх или низ, слева, по центру, справа)
+- Адаптивный расчет полей с учетом разных размеров страниц
+- Результат в ZIP для пакетной обработки нескольких файлов
+- Плейсхолдеры в шаблонах для максимальной гибкости
+
+## Сценарии использования
+
+- Нумерация документов раскрытия в судебном процессе последовательными номерами доказательств
+- Нумерация пакетов аудиторских доказательств, состоящих из десятков файлов
+- Нанесение регуляторных справочных номеров на документацию по комплаенсу
+- Маркировка приложений к патентной заявке идентификаторами конкретного дела
+
+## Советы
+
+- Перетащите файлы в списке, чтобы изменить их порядок перед обработкой. Последовательность Bates-номеров следует этому порядку.
+- Используйте плейсхолдер `[FILENAME]`, чтобы включить в штамп исходное имя файла: так проще отследить страницы до исходных документов.
+- Окно предпросмотра обновляется в реальном времени при изменении настроек, поэтому формат можно проверить до обработки.
+
+## Похожие инструменты
+
+- [Номера страниц](./page-numbers)
+- [Добавить метки страниц](./add-page-labels)
+- [Колонтитулы](./header-footer)
diff --git a/docs/ru/tools/bmp-to-pdf.md b/docs/ru/tools/bmp-to-pdf.md
new file mode 100644
index 00000000..89c089ee
--- /dev/null
+++ b/docs/ru/tools/bmp-to-pdf.md
@@ -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 с помощью pdf-lib. Размер страницы совпадает с размерами исходного изображения.
+
+## Параметры
+
+У этого инструмента нет дополнительных настроек качества. Изображения встраиваются в исходном разрешении как 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)
diff --git a/docs/ru/tools/bookmark.md b/docs/ru/tools/bookmark.md
new file mode 100644
index 00000000..274743da
--- /dev/null
+++ b/docs/ru/tools/bookmark.md
@@ -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.
+- **Пакетный режим**: включите, чтобы выбирать несколько закладок и применять к ним массовое изменение цвета, стиля или удаление.
+- **Развернуть всё / Свернуть всё**: быстро показывает или скрывает вложенные закладки.
+
+## Сценарии использования
+
+- Добавление оглавления в учебник или руководство, где нет закладок
+- Перестройка закладок в отсканированном документе после распознавания текста
+- Экспорт закладок в CSV, правка в электронной таблице и повторный импорт
+- Очистка автоматически созданных закладок с неверными ссылками на страницы
+- Цветные закладки для выделения важных разделов в юридическом документе
+
+## Советы
+
+- Для массового создания закладок используйте импорт CSV. Формат простой: `title,page,level`, где уровень 1 означает верхний уровень.
+- Режим выбора позволяет щелкнуть по точному месту на странице PDF и задать место назначения закладки, что точнее, чем указание только номера страницы.
+- Экспортируйте закладки перед крупными изменениями, чтобы иметь резервную копию.
+
+## Связанные инструменты
+
+- [Оглавление](./table-of-contents)
+- [Редактор PDF](./edit-pdf)
+- [Добавить метки страниц](./add-page-labels)
diff --git a/docs/ru/tools/cbz-to-pdf.md b/docs/ru/tools/cbz-to-pdf.md
new file mode 100644
index 00000000..168fb3fe
--- /dev/null
+++ b/docs/ru/tools/cbz-to-pdf.md
@@ -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 с помощью pdf-lib. Файлы 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)
diff --git a/docs/ru/tools/change-permissions.md b/docs/ru/tools/change-permissions.md
new file mode 100644
index 00000000..5d85e1bd
--- /dev/null
+++ b/docs/ru/tools/change-permissions.md
@@ -0,0 +1,61 @@
+---
+title: Изменение разрешений
+description: Задавайте или меняйте разрешения PDF на печать, копирование, редактирование и добавление аннотаций. Используется 256-битное шифрование AES.
+---
+
+# Изменение разрешений
+
+Гибко настройте, что получатели могут делать с вашим PDF. В отличие от обычного шифрования, которое просто закрывает файл паролем, этот инструмент позволяет выборочно разрешать или запрещать печать, копирование, редактирование, аннотирование, заполнение форм, сборку документа и извлечение страниц. Все ограничения обеспечиваются 256-битным шифрованием 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): удаление всех ограничений, если у вас есть пароль владельца
diff --git a/docs/ru/tools/combine-single-page.md b/docs/ru/tools/combine-single-page.md
new file mode 100644
index 00000000..a941d80a
--- /dev/null
+++ b/docs/ru/tools/combine-single-page.md
@@ -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)
diff --git a/docs/ru/tools/compare-pdfs.md b/docs/ru/tools/compare-pdfs.md
new file mode 100644
index 00000000..310b2051
--- /dev/null
+++ b/docs/ru/tools/compare-pdfs.md
@@ -0,0 +1,60 @@
+---
+title: Сравнение документов
+description: Сравнивайте два PDF-документа рядом или в режиме наложения с подробным выявлением и классификацией изменений.
+---
+
+# Сравнение документов
+
+Загрузите два PDF и узнайте, что именно изменилось. Инструмент интеллектуально сопоставляет страницы, находит различия в тексте, изображениях, аннотациях, колонтитулах и оформлении и показывает их рядом или в режиме наложения.
+
+## Как это работает
+
+1. Загрузите два PDF-файла: оригинал (слева) и исправленную версию (справа).
+2. Инструмент сопоставляет страницы документов по сигнатурам содержимого.
+3. Выберите режим просмотра: **Рядом** или **Наложение**.
+4. Переключайтесь между парами страниц с помощью элементов постраничной навигации.
+5. Различия выделяются и классифицируются. Панель фильтров помогает сосредоточиться на нужных типах изменений.
+6. При желании экспортируйте сравнение в виде PDF-отчета.
+
+## Возможности
+
+- Автоматическое сопоставление страниц по схожести содержимого
+- Режимы сравнения рядом и с наложением
+- Классификация изменений: текст, изображение, колонтитулы, аннотации, оформление, фон
+- Переключатели фильтров по категориям для показа или скрытия отдельных типов изменений
+- Поиск по изменениям текста с фильтрацией по запросу
+- Поддержка OCR для сравнения отсканированных документов
+- Масштабирование для детального просмотра
+- Синхронная прокрутка панелей в режиме рядом
+- Экспорт результатов сравнения в PDF
+
+## Параметры
+
+| Параметр | Описание |
+| --------------------- | ----------------------------------------------------------------------------------------------- |
+| **Режим просмотра** | Рядом или наложение |
+| **OCR** | Включает и отключает OCR для сравнения отсканированных документов |
+| **Язык OCR** | Язык для извлечения текста методом OCR |
+| **Фильтры категорий** | Переключает видимость изменений текста, изображений, колонтитулов, аннотаций, оформления и фона |
+| **Область изменений** | В режиме наложения: все изменения или только изменения содержимого |
+| **Масштаб** | Настройка масштаба для детального просмотра |
+
+## Сценарии использования
+
+- Проверка правок договора, чтобы увидеть, что именно изменилось между версиями
+- Сравнение макетов, чтобы убедиться, что экспорт в PDF соответствует ожиданиям
+- Аудит изменений документов в регулируемых отраслях, где нужно отслеживать каждую правку
+- Проверка того, что преобразование в PDF точно сохранило исходное содержимое
+- Сверка переводов документов с оригиналом на предмет изменений верстки
+
+## Советы
+
+- Режим наложения помещает оба документа друг на друга, поэтому пространственные различия (сдвинутые элементы, измененные размеры изображений) сразу заметны.
+- Включайте OCR при сравнении отсканированных документов без текстового слоя. Движок сравнения извлечет текст из изображений страниц.
+- Используйте фильтры категорий, чтобы сосредоточиться на важном. Например, скройте изменения оформления, если вас интересуют только различия в тексте.
+
+## Связанные инструменты
+
+- [Просмотр метаданных](./view-metadata)
+- [Распознавание текста в PDF](./ocr-pdf)
+- [Объединение PDF](./merge-pdf)
diff --git a/docs/ru/tools/compress-pdf.md b/docs/ru/tools/compress-pdf.md
new file mode 100644
index 00000000..c82a6ce3
--- /dev/null
+++ b/docs/ru/tools/compress-pdf.md
@@ -0,0 +1,73 @@
+---
+title: Сжатие PDF
+description: Уменьшайте размер PDF до 90% с помощью движка 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).
+- **Сканы без текстового слоя** можно сжать сильнее с помощью **Растеризовать страницы в изображения** в разделе «Пользовательские настройки», который заменяет каждую страницу одним оптимизированным изображением. Это пропускается для любого документа с выделяемым текстом, включая сканы с распознанным текстом, если не включено **Игнорировать защиту содержимого**. Тогда текстовые страницы тоже становятся изображениями, текст перестает выделяться, а ссылки перестают работать.
+
+## Уровни сжатия
+
+| Уровень | Качество изображений | Макс. разрешение | Лучше всего подходит для |
+| -------------- | ---------------------- | ---------------- | ------------------------------------ |
+| **Низкий** | 80 | 200 DPI | Сохранения визуального качества |
+| **Средний** | 50 | 150 DPI | Повседневных документов |
+| **Высокий** | 20 | 72 DPI | Вложений в письма, загрузки на сайты |
+| **Без потерь** | Изображения не тронуты | Без изменений | Архивных копий |
+
+Уровень «Высокий» также убирает встраивание 14 стандартных шрифтов PDF и похожих на них, например Arial, если это безопасно.
+
+## Целевой размер файла
+
+Введите размер в КБ или МБ, и Hyper Compress подберет наилучшее качество изображений, при котором файл все еще укладывается в этот размер, начиная с выбранного уровня. Если документ невозможно сжать до такого размера, вы получите самую маленькую версию, которую удалось создать, и сообщение об этом. Специальные страницы, например [Сжать PDF до 1MB](https://www.bentopdf.com/compress-pdf-to-1mb), открываются с уже заполненным целевым размером.
+
+## Пользовательские настройки
+
+Раскройте панель «Пользовательские настройки», чтобы напрямую настроить Hyper Compress. Выбор уровня сжатия сбрасывает эти параметры к значениям этого уровня, а изменение любого из них переключает уровень на «Пользовательский».
+
+- **Игнорировать защиту содержимого**: по умолчанию Hyper Compress не трогает подписанные PDF и не растеризует страницы с текстом. Включение отменяет оба ограничения. Параметр остается включенным при смене уровня.
+
+- **Изображения**: качество изображений, максимальное разрешение, принудительная передискретизация, сокращение цветов, обрезка невидимых областей изображений, удаление альтернативных изображений, упрощение цветовых профилей, JPEG 2000 и режим без потерь
+- **Шрифты**: создание подмножеств, объединение дубликатов и отмена встраивания стандартных шрифтов и похожих на них
+- **Содержимое**: сведение аннотаций, полей форм или ссылок
+- **Очистка**: удаление миниатюр, данных приложений, цепочек статей, информации о веб-захвате, дерева структуры или выходных намерений
+- **Растеризовать**: замена страниц изображениями для сканов, состоящих только из изображений; пропускается, если в документе есть выделяемый текст
+- **Вывод**: «Сохранить PDF/A» и сжатие Brotli для программ чтения PDF 2.0, которые его поддерживают
+
+## Сценарии использования
+
+- Уменьшение отчета в 50 МБ до лимита вложений электронной почты
+- Уменьшение скана до строгого лимита загрузки на портале с помощью целевого размера файла
+- Оптимизация маркетинговых PDF для более быстрой загрузки с сайта
+- Архивирование больших наборов документов, когда важна стоимость хранения
+- Снижение расхода мобильного трафика при отправке PDF через мессенджеры
+
+## Советы
+
+- Начните с уровня «Средний». Если результат все еще слишком большой, задайте целевой размер файла или перейдите на «Высокий».
+- Для скана без текстового слоя включите «Растеризовать страницы в изображения» в разделе «Пользовательские настройки».
+- Параметр «Конвертировать в оттенки серого» в разделе «Пользовательские настройки» может уменьшить размер документов с большим количеством цветных элементов.
+
+## Связанные инструменты
+
+- [Линеаризация документа](./linearize-pdf): оптимизируйте сжатый PDF для быстрого просмотра в вебе
+- [Растеризация документа](./rasterize-pdf): преобразование страниц в изображения с заданным DPI, включая страницы с текстом
+- [Восстановление документа](./repair-pdf): исправление PDF, поврежденного при сжатии в другом инструменте
+- [Удаление метаданных](./remove-metadata): удаление скрытых данных для конфиденциальности
diff --git a/docs/ru/tools/crop-pdf.md b/docs/ru/tools/crop-pdf.md
new file mode 100644
index 00000000..e622f32c
--- /dev/null
+++ b/docs/ru/tools/crop-pdf.md
@@ -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)
diff --git a/docs/ru/tools/csv-to-pdf.md b/docs/ru/tools/csv-to-pdf.md
new file mode 100644
index 00000000..2c2f8993
--- /dev/null
+++ b/docs/ru/tools/csv-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/delete-pages.md b/docs/ru/tools/delete-pages.md
new file mode 100644
index 00000000..a36a841f
--- /dev/null
+++ b/docs/ru/tools/delete-pages.md
@@ -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)
diff --git a/docs/ru/tools/deskew-pdf.md b/docs/ru/tools/deskew-pdf.md
new file mode 100644
index 00000000..8df0595c
--- /dev/null
+++ b/docs/ru/tools/deskew-pdf.md
@@ -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 находит преобладающие углы линий в содержимом. Если обнаруженный перекос превышает порог, страница поворачивается на обратный угол. Страницы ниже порога передаются без изменений.
+
+## Сценарии использования
+
+- Очистка пакетно отсканированных договоров и юридических документов
+- Подготовка отсканированных чеков и счетов к распознаванию текста
+- Выпрямление страниц с планшетного сканера при неровной укладке бумаги
+- Улучшение внешнего вида оцифрованных архивных материалов
+
+## Советы
+
+- Уменьшите порог до 0.1 градуса, если для OCR нужно попиксельное выравнивание.
+- 150 DPI быстро и точно подходит для большинства документов. Используйте 300 DPI для очень мелкого текста или страниц с тонкими деталями.
+- Выпрямление лучше всего работает с документами, где есть четкие горизонтальные строки текста. Страницы, состоящие в основном из изображений или диагональных элементов оформления, могут вызывать трудности.
+
+## Связанные инструменты
+
+- [Растеризация документа](./rasterize-pdf): преобразуйте выпрямленный результат в плоский PDF на основе изображений
+- [Сжатие PDF](./compress-pdf): уменьшите размер файла после выпрямления
+- [Восстановление документа](./repair-pdf): исправление структурных проблем в отсканированных PDF
diff --git a/docs/ru/tools/digital-sign-pdf.md b/docs/ru/tools/digital-sign-pdf.md
new file mode 100644
index 00000000..65136141
--- /dev/null
+++ b/docs/ru/tools/digital-sign-pdf.md
@@ -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 (рукописная подпись, печать компании и т. д.)
+- **Текст**: произвольный текст с настраиваемым цветом и размером шрифта. Если не заданы ни изображение, ни текст, инструмент автоматически создает текст из общего имени сертификата и текущей даты.
+
+## Метаданные подписи
+
+- **Причина**: зачем подписан документ (например, «Утверждено», «Проверено»)
+- **Место**: где происходило подписание (например, «Нью-Йорк»)
+- **Контактная информация**: как связаться с подписавшим (например, адрес электронной почты)
+
+## Примечание об интернет-соединении
+
+Для подписания может потребоваться подключение к интернету. Библиотека подписи загружает цепочку сертификатов по URL-адресам, указанным в расширении Authority Information Access (AIA) вашего сертификата. Если эти серверы недоступны, подписание не удастся для сертификатов, которым требуется проверка цепочки.
+
+## Сценарии использования
+
+- Подписание договоров, коммерческих предложений и соглашений юридически значимыми цифровыми подписями
+- Заверение официальных документов в процессах, где требуется аутентификация на основе PKI
+- Подписание PDF-счетов для соответствия требованиям регуляторов (во многих странах ЕС требуются электронные счета с цифровой подписью)
+- Добавление организационного утверждения к инженерным чертежам и документам по качеству
+
+## Советы
+
+- Самоподписанные сертификаты подходят для тестирования, но в Adobe Reader будут показывать предупреждения. Для рабочих документов используйте сертификат доверенного центра сертификации.
+- Видимая подпись является чисто визуальной. Криптографическая подпись встраивается независимо от того, включен ли видимый блок.
+- Проверьте подписанный PDF инструментом «Проверка подписи в PDF», чтобы убедиться, что подпись не повреждена.
+
+## Связанные инструменты
+
+- [Проверка подписи в PDF](./validate-signature-pdf): проверка цифровых подписей в подписанных PDF
+- [Сведение документа](./flatten-pdf): сведите формы перед подписанием, чтобы предотвратить изменения
+- [Защита PDF](./protect-pdf): добавьте защиту паролем поверх цифровой подписи
+- [Удаление метаданных](./remove-metadata): удалите метаданные перед подписанием
diff --git a/docs/ru/tools/divide-pages.md b/docs/ru/tools/divide-pages.md
new file mode 100644
index 00000000..b7e6e646
--- /dev/null
+++ b/docs/ru/tools/divide-pages.md
@@ -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)
+- [Постеризация документа](./posterize-pdf)
diff --git a/docs/ru/tools/duplex-collate.md b/docs/ru/tools/duplex-collate.md
new file mode 100644
index 00000000..9e36a247
--- /dev/null
+++ b/docs/ru/tools/duplex-collate.md
@@ -0,0 +1,55 @@
+---
+title: Сортировка двустороннего сканирования
+description: Приводите PDF двустороннего сканирования, где лицевые и оборотные страницы идут отдельными блоками, к правильному порядку лицевых и оборотных страниц.
+---
+
+# Сортировка двустороннего сканирования
+
+Этот инструмент предназначен для сценариев сканирования через автоподатчик (ADF), когда один PDF содержит два блока страниц:
+
+- сначала все лицевые стороны
+- затем все оборотные стороны
+
+Вместо ручного разделения и пересборки инструмент чередует два блока в естественном порядке чтения: лицевая 1, оборотная 1, лицевая 2, оборотная 2 и так далее.
+
+## Как это работает
+
+1. Загрузите один PDF, созданный сканированием стопки с двух сторон.
+2. Укажите точку разделения, где заканчивается блок лицевых сторон.
+3. Выберите обработку блока оборотных сторон:
+ - **Обратить блок оборотов** (обычно нужно, когда стопку переворачивают перед сканированием оборотов)
+ - **Оставить блок оборотов без изменений**
+4. Нажмите **Собрать PDF**, чтобы скачать результат с измененным порядком.
+
+## Параметры
+
+- **Определить разделение автоматически (половина)**: устанавливает точку разделения на `ceil(totalPages / 2)`.
+- **Предупреждение о нечетном числе страниц**: предупреждает, если общее число страниц нечетное (часто это признак несоответствия при сканировании).
+- **Подтверждение неравных блоков**: запрашивает подтверждение, если размеры блоков лицевых и оборотных сторон различаются.
+- **Экспорт группами**: делит результат на отдельные PDF по числу страниц исходного документа и скачивает их в виде ZIP.
+
+## Поведение результата
+
+- **По умолчанию**: один выходной PDF (один входной PDF дает один выходной PDF).
+- **Групповой режим**: результат делится на части по заданному числу страниц на документ; если получилось несколько частей, они скачиваются одним ZIP, иначе скачивается один PDF.
+
+Если размеры блоков различаются, сначала сопоставляются парные страницы, а оставшиеся непарные страницы добавляются в конец.
+
+## Типичные сценарии использования
+
+- Восстановление порядка после сканирования стопки двусторонних форм за два прохода.
+- Пересборка комплектов лицевых и оборотных страниц с офисных сканеров, которые выдают сначала все лицевые, затем все оборотные стороны.
+- Постобработка архивных сканов перед разделением на файлы по документам.
+
+## Советы
+
+- В большинстве двусторонних пакетов общее число страниц должно быть четным.
+- Если оборотные стороны оказались перевернутыми, переключитесь между **Обратить блок оборотов** и **Оставить блок оборотов без изменений**.
+- Для оригиналов из 2 страниц (лицевая и оборотная) используйте групповой экспорт с `2` страницами на документ.
+
+## Связанные инструменты
+
+- [Объединение документов с чередованием страниц](./alternate-merge)
+- [Разделение PDF](./split-pdf)
+- [Объединение PDF](./merge-pdf)
+- [Дублирование и организация](./organize-pdf)
diff --git a/docs/ru/tools/edit-attachments.md b/docs/ru/tools/edit-attachments.md
new file mode 100644
index 00000000..b5a56eef
--- /dev/null
+++ b/docs/ru/tools/edit-attachments.md
@@ -0,0 +1,43 @@
+---
+title: Редактирование вложений
+description: Просматривайте и выборочно удаляйте файлы, вложенные в PDF-документ.
+---
+
+# Редактирование вложений
+
+Просматривайте вложенные файлы PDF и управляйте ими. Инструмент перечисляет каждый встроенный файл с его именем и уровнем вложения, а затем позволяет отметить отдельные вложения для удаления или удалить их все сразу.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Инструмент автоматически ищет вложения и показывает их в списке.
+3. Для каждого вложения показаны имя файла и уровень: документа или страницы.
+4. Щелкните значок корзины рядом с вложением, чтобы отметить его для удаления (повторный щелчок снимает отметку).
+5. Кнопка **Удалить все вложения** выбирает все сразу, а **Снять выделение** снимает выбор.
+6. Нажмите кнопку обработки, чтобы сохранить новый PDF без выбранных вложений.
+
+## Возможности
+
+- Список всех вложений уровня документа и уровня страницы
+- Удаление отдельных вложений или всех сразу
+- Выбор можно включать и отключать до применения изменений
+- Отмеченные для удаления элементы зачеркиваются и становятся полупрозрачными
+- Скачивание измененного PDF без выбранных вложений
+
+## Сценарии использования
+
+- Удаление устаревших или неверных файлов, встроенных в документ, перед повторным распространением
+- Удаление конфиденциальных вложений (финансовые данные, личная информация) из PDF перед отправкой
+- Уменьшение размера PDF за счет удаления больших встроенных файлов, которые больше не нужны
+- Аудит встроенного содержимого и очистка документа перед архивацией
+
+## Советы
+
+- Вложения, отмеченные для удаления, показываются зачеркнутыми. Если вы передумали, можно снять отметку до обработки.
+- Если вложения не найдены, инструмент показывает сообщение «В этом PDF вложений не найдено»: в PDF просто нет встроенных файлов.
+
+## Связанные инструменты
+
+- [Добавление вложений](./add-attachments)
+- [Извлечение вложений](./extract-attachments)
+- [Просмотр метаданных](./view-metadata)
diff --git a/docs/ru/tools/edit-metadata.md b/docs/ru/tools/edit-metadata.md
new file mode 100644
index 00000000..09648bad
--- /dev/null
+++ b/docs/ru/tools/edit-metadata.md
@@ -0,0 +1,58 @@
+---
+title: Редактирование метаданных
+description: Просматривайте и изменяйте поля метаданных PDF, включая заголовок, автора, ключевые слова, даты и пользовательские свойства.
+---
+
+# Редактирование метаданных
+
+Редактируйте метаданные, встроенные в PDF-файл. Инструмент заполняет форму существующими метаданными документа, позволяет изменить любое поле и сохраняет изменения в новый PDF.
+
+## Как это работает
+
+1. Загрузите PDF-файл. Инструмент считает текущие метаданные и заполнит ими форму.
+2. Измените любое из стандартных полей: Название, Автор, Тема, Ключевые слова, Создатель, Производитель.
+3. Настройте поля «Дата создания» и «Дата изменения» с помощью выбора даты и времени.
+4. Добавьте пользовательские поля метаданных, нажав кнопку добавления и введя пару «ключ-значение».
+5. Нажмите кнопку обработки, чтобы сохранить измененный PDF.
+
+## Возможности
+
+- Автоматическое заполнение всех существующих метаданных из загруженного PDF
+- Стандартные поля: Название, Автор, Тема, Ключевые слова, Создатель, Производитель
+- Выбор даты и времени для полей «Дата создания» и «Дата изменения»
+- Пользовательские поля «ключ-значение» для произвольных свойств
+- Изменения сохраняются прямо в словарь информации о документе PDF
+
+## Редактируемые поля
+
+| Поле | Описание |
+| ------------------------- | ------------------------------------------------------------- |
+| **Название** | Заголовок документа, который показывают программы для PDF |
+| **Автор** | Человек или организация, создавшие документ |
+| **Тема** | Краткое описание темы документа |
+| **Ключевые слова** | Термины через запятую для поиска и классификации |
+| **Создатель** | Приложение, в котором было создано исходное содержимое |
+| **Производитель** | Приложение, создавшее PDF |
+| **Дата создания** | Когда документ был создан изначально |
+| **Дата изменения** | Когда документ последний раз изменялся |
+| **Пользовательские поля** | Любые дополнительные пары «ключ-значение», которые вы задаете |
+
+## Сценарии использования
+
+- Задание правильного заголовка и автора перед публикацией документа
+- Добавление ключевых слов для лучшего поиска в системах управления документами
+- Обновление даты изменения под текущую редакцию
+- Добавление пользовательских полей метаданных, например Department, Project ID или Classification
+- Очистка метаданных, оставленных исходной программой
+
+## Советы
+
+- Пользовательские поля записываются прямо в словарь информации PDF. Некоторые программы для PDF могут не показывать пользовательские поля, но в файле они сохраняются.
+- Оставьте поле пустым, чтобы убрать его из метаданных. Кнопка обработки сохраняет все, что находится в форме.
+- Чтобы просмотреть метаданные без редактирования, используйте [Просмотр метаданных](./view-metadata). Чтобы полностью удалить все метаданные, используйте «Удаление метаданных».
+
+## Связанные инструменты
+
+- [Просмотр метаданных](./view-metadata)
+- [PDF OCG](./pdf-layers)
+- [Сжатие PDF](./compress-pdf)
diff --git a/docs/ru/tools/edit-pdf.md b/docs/ru/tools/edit-pdf.md
new file mode 100644
index 00000000..585032be
--- /dev/null
+++ b/docs/ru/tools/edit-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Редактор PDF
+description: Аннотируйте, выделяйте, редактируйте (закрашивайте) содержимое, добавляйте фигуры и изображения, ищите и просматривайте PDF прямо в браузере.
+---
+
+# Редактор PDF
+
+Редактор PDF в BentoPDF позволяет аннотировать, выделять, закрашивать конфиденциальные данные, комментировать, добавлять фигуры и изображения и искать по PDF. Полнофункциональный редактор загружается прямо в браузере, без отправки файлов на сервер.
+
+## Как это работает
+
+1. Загрузите PDF, щелкнув по области загрузки или перетащив файл на нее.
+2. Встроенный редактор PDF автоматически откроется с вашим документом.
+3. С помощью панели инструментов аннотируйте, выделяйте, закрашивайте, добавляйте текст, рисуйте фигуры или вставляйте изображения.
+4. Нажмите **Скачать изменённый PDF**, чтобы сохранить изменения.
+
+## Возможности
+
+- Полная панель аннотаций: выделение, подчеркивание, зачеркивание и рисование от руки
+- Вставка текста и комментирование
+- Инструменты редактирования (redaction), которые безвозвратно удаляют отмеченное содержимое после применения. Если при нажатии **Скачать изменённый PDF** остались непримененные отметки, редактор предложит сначала применить их.
+- Фигуры: прямоугольники, окружности, линии и стрелки
+- Вставка изображений на страницы PDF
+- Встроенный текстовый поиск по документу
+- Поддержка нескольких документов во вкладках (до 10 документов одновременно)
+- Загрузка файлов перетаскиванием
+
+## Сценарии использования
+
+- Проверка договоров и пометка изменений выделениями и комментариями
+- Закрашивание конфиденциальной информации, например номеров социального страхования или финансовых данных, перед отправкой
+- Добавление аннотаций на архитектурные планы и инженерные чертежи
+- Вставка логотипов компании или штампов на страницы документа
+- Поиск определенных терминов в объемных юридических документах
+
+## Советы
+
+- Можно открыть несколько PDF одновременно и переключаться между ними с помощью панели вкладок вверху редактора.
+- Редактор сохраняет исходную структуру PDF, поэтому шрифты, макеты и поля форм остаются нетронутыми.
+- Пометка текста или области для закрашивания ничего не удаляет, пока закрашивание не применено. Когда вы закрашиваете выделенный текст, его копии в свойствах файла, закладках, комментариях и вложениях также удаляются из скачиваемого файла, если файл не зашифрован.
+- Для массового нанесения водяных знаков или нумерации страниц используйте специальные инструменты: у них больше возможностей форматирования.
+
+## Связанные инструменты
+
+- [Добавление водяных знаков](./add-watermark)
+- [Подписание PDF](./sign-pdf)
+- [Добавление штампов](./add-stamps)
+- [Удаление аннотаций](./remove-annotations)
diff --git a/docs/ru/tools/email-to-pdf.md b/docs/ru/tools/email-to-pdf.md
new file mode 100644
index 00000000..f74ef8a8
--- /dev/null
+++ b/docs/ru/tools/email-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: Email в PDF
+description: Преобразуйте файлы электронной почты EML и MSG в PDF прямо в браузере. Сохраняются заголовки, текст письма и список вложений.
+---
+
+# Email в PDF
+
+Превращайте сохраненные файлы электронной почты в аккуратные PDF для печати. Инструмент разбирает файлы EML и MSG, извлекает все письмо (заголовки, текст и сведения о вложениях) и отображает все это в структурированном PDF. Подходит для юридического раскрытия документов, ведения записей или просто печати важного письма.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :----- | :--------- | :------------------------------------------------------------------------------ |
+| EML | `.eml` | Стандартный формат писем MIME (экспортируется из большинства почтовых клиентов) |
+| MSG | `.msg` | Проприетарный формат Microsoft Outlook |
+
+## Как это работает
+
+1. Щелкните по области загрузки или перетащите в нее файлы EML или MSG. В одной партии можно смешивать оба формата.
+2. Проверьте список файлов. Удаляйте ненужные записи значком корзины или нажмите **Добавить еще файлы**, чтобы добавить еще письма.
+3. Настройте параметры преобразования (см. ниже).
+4. Нажмите **Преобразовать в PDF**. Инструмент разбирает каждое письмо, отображает содержимое как стилизованный HTML и преобразует его в PDF через движок PyMuPDF.
+5. Одно письмо скачивается сразу как PDF. Несколько писем упаковываются в `emails-converted.zip`.
+
+## Параметры
+
+| Параметр | По умолчанию | Описание |
+| :---------------------------------------------------------- | :----------- | :---------------------------------------------------------------------------------------- |
+| **Размер страницы** | A4 | Выберите размер страницы: A4, Letter или Legal. |
+| **Указывать получателей копии и скрытой копии в заголовке** | Вкл. | Если включено, списки получателей CC и BCC отображаются в разделе заголовка письма в PDF. |
+| **Добавить список вложений письма** | Вкл. | Если включено, в PDF появляется список вложенных файлов письма (с именами и размерами). |
+
+## Сценарии использования
+
+- Архивирование важной деловой переписки в PDF для соблюдения требований или аудита
+- Печать цепочек писем для судебных разбирательств или запросов на раскрытие документов
+- Создание постоянной записи подтверждений заказов, чеков и договоров, полученных по электронной почте
+- Резервное копирование файлов Outlook MSG в формате, для чтения которого не нужен Outlook
+- Документирование обращений в службу поддержки по экспортированным файлам EML
+
+## Советы
+
+- Поддерживаются и EML (используется в Thunderbird, Apple Mail и большинстве почтовых клиентов), и файлы Outlook MSG. Экспортируйте письма из почтового клиента и перетащите их прямо в инструмент.
+- Письма в формате HTML сохраняют оформление в PDF. Письма в виде обычного текста отображаются с аккуратным читаемым форматированием.
+- Список вложений показывает имена файлов и размеры, но не встраивает сами вложенные файлы в PDF.
+
+## Связанные инструменты
+
+- [XML в PDF](./xml-to-pdf)
+- [XPS в PDF](./xps-to-pdf)
diff --git a/docs/ru/tools/epub-to-pdf.md b/docs/ru/tools/epub-to-pdf.md
new file mode 100644
index 00000000..5ec32adc
--- /dev/null
+++ b/docs/ru/tools/epub-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/excel-to-pdf.md b/docs/ru/tools/excel-to-pdf.md
new file mode 100644
index 00000000..e3b83a36
--- /dev/null
+++ b/docs/ru/tools/excel-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/extract-attachments.md b/docs/ru/tools/extract-attachments.md
new file mode 100644
index 00000000..c0bbdad0
--- /dev/null
+++ b/docs/ru/tools/extract-attachments.md
@@ -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)
diff --git a/docs/ru/tools/extract-images.md b/docs/ru/tools/extract-images.md
new file mode 100644
index 00000000..37319b97
--- /dev/null
+++ b/docs/ru/tools/extract-images.md
@@ -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)
diff --git a/docs/ru/tools/extract-pages.md b/docs/ru/tools/extract-pages.md
new file mode 100644
index 00000000..e4762144
--- /dev/null
+++ b/docs/ru/tools/extract-pages.md
@@ -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)
diff --git a/docs/ru/tools/extract-tables.md b/docs/ru/tools/extract-tables.md
new file mode 100644
index 00000000..bb4f2498
--- /dev/null
+++ b/docs/ru/tools/extract-tables.md
@@ -0,0 +1,46 @@
+---
+title: Извлечение таблиц из PDF
+description: Находите и извлекайте таблицы из PDF-документов. Экспорт в CSV, JSON или Markdown с разбивкой по таблицам.
+---
+
+# Извлечение таблиц из PDF
+
+Находит все таблицы в PDF и позволяет экспортировать их в выбранном формате: CSV, JSON или Markdown. Каждая таблица извлекается отдельно с метаданными о странице и положении. Работает на движке обнаружения таблиц PyMuPDF.
+
+## Как это работает
+
+1. Загрузите PDF, щелкнув по области загрузки или перетащив на нее файл.
+2. Выберите нужный **формат экспорта**: CSV, JSON или Markdown.
+3. Нажмите **Извлечь таблицы**, чтобы начать обработку.
+4. Если найдена одна таблица, она скачивается одним файлом. Если таблиц несколько, создается ZIP-архив с отдельным файлом для каждой таблицы.
+
+## Параметры
+
+- **Формат экспорта**: выберите один из вариантов:
+ - **CSV**: значения через запятую с корректным заключением в кавычки полей, содержащих запятые, кавычки или переводы строк. Подходит для электронных таблиц и баз данных.
+ - **JSON**: структура «массив массивов» с форматированием и отступом в 2 пробела. Подходит для программной обработки.
+ - **Markdown**: формат таблицы с разделителями-вертикальными чертами, создаваемый PyMuPDF. Подходит для документации и файлов README.
+
+## Формат результата
+
+- **Одна таблица**: `filename_table.csv` (или `.json` / `.md`)
+- **Несколько таблиц**: `filename_tables.zip` с файлами `table_1_page3.csv`, `table_2_page5.csv` и так далее.
+
+## Сценарии использования
+
+- Извлечение отдельных таблиц из объемных PDF-отчетов без выгрузки данных всего документа.
+- Получение таблиц в формате Markdown для вставки прямо в задачи GitHub, вики и документацию.
+- Получение структурированных данных JSON из таблиц PDF для интеграций с API и скриптов.
+- Сравнение таблиц из разных версий PDF: экспортируйте обе версии в CSV и сравните их.
+
+## Советы
+
+- Этот инструмент дает контроль над каждой таблицей. Если нужно выгрузить все таблицы в один CSV, используйте [PDF в CSV](./pdf-to-csv). Для полной книги Excel используйте [PDF в Excel](./pdf-to-excel).
+- Таблицы, занимающие несколько страниц, могут быть определены как отдельные таблицы на каждой странице. Возможно, их придется объединить вручную.
+- Если таблицы не обнаружены, возможно, PDF является отсканированным изображением. Сначала выполните распознавание текста, чтобы добавить текстовый слой.
+
+## Связанные инструменты
+
+- [PDF в CSV](./pdf-to-csv)
+- [PDF в Excel](./pdf-to-excel)
+- [PDF в текст](./pdf-to-text)
diff --git a/docs/ru/tools/fb2-to-pdf.md b/docs/ru/tools/fb2-to-pdf.md
new file mode 100644
index 00000000..347aec26
--- /dev/null
+++ b/docs/ru/tools/fb2-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/fix-page-size.md b/docs/ru/tools/fix-page-size.md
new file mode 100644
index 00000000..d9fd0f78
--- /dev/null
+++ b/docs/ru/tools/fix-page-size.md
@@ -0,0 +1,44 @@
+---
+title: Редактор размера страниц
+description: Приведите все страницы PDF к единому размеру. Выберите стандартный формат бумаги или задайте свои размеры.
+---
+
+# Редактор размера страниц
+
+PDF, собранные из нескольких источников, часто содержат страницы разных размеров: одни Letter, другие A4, а третьи совсем нестандартные. Этот инструмент приводит каждую страницу к одному целевому размеру, масштабируя содержимое по размеру или с заполнением.
+
+## Как это работает
+
+1. Загрузите файл PDF.
+2. Выберите **Целевой размер страницы** в выпадающем списке (A4, Letter, Legal, A3, A5, Tabloid или Свой).
+3. Выберите **Ориентацию**: «Авто» сохраняет исходную ориентацию каждой страницы, а также можно принудительно задать книжную или альбомную.
+4. Выберите режим **Масштабирования содержимого**: «Вписать» (сохраняет всё содержимое, могут появиться поля) или «Заполнить» (заполняет страницу, края могут быть обрезаны).
+5. При желании задайте **Цвет фона** для добавленных полей.
+6. Нажмите **Исправить размер страниц**.
+
+## Параметры
+
+- **Стандартные размеры**: A4, Letter, Legal, A3, A5, Tabloid
+- **Свои размеры**: введите ширину и высоту в дюймах или миллиметрах
+- **Ориентация**: авто, книжная, альбомная
+- **Режим масштабирования**: вписать или заполнить (с обрезкой)
+- **Цвет фона**: любой цвет для заполнения полей
+
+## Сценарии использования
+
+- Выравнивание объединённого PDF, страницы которого получены с разных сканеров
+- Преобразование документа US Letter в A4 для международной рассылки
+- Подготовка PDF к печати, где нужен единый размер обреза
+- Исправление страниц, которые слегка отличаются от стандарта (например, 8,49 x 11,02 дюйма вместо 8,5 x 11)
+
+## Советы
+
+- Режим «Вписать» гарантирует, что содержимое не потеряется. Режим «Заполнить» выглядит аккуратнее, но может обрезать края.
+- Проверьте результат инструментом «Размеры страниц», чтобы убедиться, что все страницы соответствуют целевому размеру.
+- По умолчанию фон белый. Если у документа тёмные поля, выберите тёмный цвет.
+
+## Связанные инструменты
+
+- [Размеры страниц](./page-dimensions): проверьте размеры страниц до и после исправления
+- [Сжатие PDF](./compress-pdf): уменьшите размер файла после приведения к единому размеру
+- [Обрезка PDF](./crop-pdf): обрезайте страницы вручную вместо автоматического масштабирования
diff --git a/docs/ru/tools/flatten-pdf.md b/docs/ru/tools/flatten-pdf.md
new file mode 100644
index 00000000..62aa1bc0
--- /dev/null
+++ b/docs/ru/tools/flatten-pdf.md
@@ -0,0 +1,51 @@
+---
+title: Сведение документа
+description: Преобразуйте интерактивные формы и аннотации в статичное содержимое. Поля форм перестают быть редактируемыми, а аннотации встраиваются в страницу.
+---
+
+# Сведение документа
+
+Сведение встраивает интерактивные элементы (поля форм, выпадающие списки, флажки, аннотации, выделения, стикеры) прямо в содержимое страницы. Внешний вид остаётся прежним, но редактировать и извлекать эти элементы уже нельзя. Это аналог распечатки заполненной формы и повторного сканирования, только качество остаётся идеальным.
+
+## Как это работает
+
+1. Загрузите один или несколько файлов PDF.
+2. Нажмите **Свести PDF**.
+3. Один файл скачивается напрямую. Несколько файлов упаковываются в ZIP-архив.
+
+Инструмент использует pdf-lib для сведения полей форм (через `form.flatten()`) и отдельный механизм сведения аннотаций, который встраивает их в поток страницы. Обе операции выполняются за один проход.
+
+## Что сводится
+
+- **Поля форм**: текстовые поля, флажки, переключатели, выпадающие списки, поля подписи
+- **Аннотации**: комментарии, выделение, зачёркивание, подчёркивание, стикеры, штампы, рукописные аннотации
+- **Интерактивные элементы**: кнопки, триггеры действий
+
+## Что остаётся без изменений
+
+- Текст (его по-прежнему можно выделять и искать)
+- Изображения и графика
+- Макет и размеры страниц
+- Закладки и оглавление
+- Гиперссылки (если они не реализованы как аннотации)
+
+## Сценарии использования
+
+- Блокировка заполненной формы, чтобы получатели не могли изменить отправленные ответы
+- Подготовка PDF к архивированию, когда интерактивные элементы не нужны
+- Исправление проблем отображения, когда аннотации по-разному выглядят в разных программах просмотра
+- Защита подписанного документа от изменений после наложения подписи
+- Уменьшение размера файла за счёт удаления описаний полей форм и объектов аннотаций
+
+## Советы
+
+- Сводите документ после завершения всех правок. Отменить сведение PDF невозможно.
+- Если нужно не только свести документ, но и удалить метаданные, JavaScript и вложения, используйте инструмент «Санирование документа»: сведение есть среди его параметров.
+- Некоторые PDF сообщают «форма не найдена». Это нормально, если в документе есть только аннотации и нет полей форм.
+
+## Связанные инструменты
+
+- [Санирование документа](./sanitize-pdf): сведение форм, а также удаление метаданных, скриптов и многого другого
+- [Растеризация документа](./rasterize-pdf): преобразование в PDF на основе изображений для максимального сведения
+- [Шрифты в кривые](./font-to-outline): преобразование шрифтов в векторные контуры
+- [Защита PDF](./protect-pdf): защитите сведённый PDF паролем
diff --git a/docs/ru/tools/font-to-outline.md b/docs/ru/tools/font-to-outline.md
new file mode 100644
index 00000000..da93bf8f
--- /dev/null
+++ b/docs/ru/tools/font-to-outline.md
@@ -0,0 +1,52 @@
+---
+title: Шрифты в кривые
+description: Преобразуйте все шрифты PDF в векторные контуры для одинакового отображения на любых устройствах. Устраняет зависимость от шрифтов.
+---
+
+# Шрифты в кривые
+
+При преобразовании шрифтов в кривые каждый символ текста из глифа шрифта превращается в векторный контур. PDF перестаёт зависеть от установленных шрифтов и выглядит одинаково на любом устройстве, в любой операционной системе и на любом принтере. Это стандартный шаг в допечатной подготовке.
+
+## Как это работает
+
+1. Загрузите один или несколько файлов PDF.
+2. Нажмите **Преобразовать в кривые**.
+3. Ghostscript преобразует весь текст в векторные контуры.
+4. Скачайте результат. Несколько файлов упаковываются в ZIP-архив.
+
+Настраивать ничего не нужно. Инструмент использует Ghostscript (WebAssembly), чтобы за один проход превратить все ссылки на шрифты в контуры.
+
+## Что меняется
+
+- Символы текста становятся векторными кривыми (кривыми Безье)
+- Встраивать шрифты больше не нужно: PDF самодостаточен на уровне глифов
+- Размер файла может вырасти, так как векторные контуры обычно занимают больше места, чем ссылки на шрифты
+- Внешний вид сохраняется точно
+
+## Что вы теряете
+
+- Выделение и копирование текста
+- Поиск по тексту (Ctrl+F перестаёт работать)
+- Возможность редактировать текст
+- Доступность для программ чтения с экрана
+
+## Сценарии использования
+
+- Отправка PDF в типографию, которая требует шрифты в кривых
+- Передача документов с нестандартными или лицензионными шрифтами людям, у которых этих шрифтов нет
+- Защита от подмены шрифтов, из-за которой документ выглядит иначе на других системах
+- Подготовка PDF для лазерной гравировки или резки на станках с ЧПУ, где нужен векторный ввод
+- Корректное отображение PDF с большим количеством логотипов на всех платформах
+
+## Советы
+
+- Сохраните исходный PDF. Преобразование в кривые необратимо: контуры нельзя превратить обратно в редактируемый текст.
+- Если текст должен остаться доступным для поиска, лучше воспользуйтесь инструментом «Растеризация документа», а затем распознаванием текста.
+- PDF с кривыми обычно больше по размеру. Если размер важен, потом запустите «Сжатие PDF».
+
+## Связанные инструменты
+
+- [Сведение документа](./flatten-pdf): сведение форм и аннотаций без изменения шрифтов
+- [Растеризация документа](./rasterize-pdf): преобразование в PDF на основе изображений вместо векторных контуров
+- [Сжатие PDF](./compress-pdf): уменьшение размера файла после преобразования в кривые
+- [PDF в PDF/A](./pdf-to-pdfa): преобразование для архивирования после устранения зависимости от шрифтов
diff --git a/docs/ru/tools/form-creator.md b/docs/ru/tools/form-creator.md
new file mode 100644
index 00000000..8b3874cd
--- /dev/null
+++ b/docs/ru/tools/form-creator.md
@@ -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 (210 мм x 297 мм)
+- A5 (148 мм x 210 мм)
+- Legal (8,5" x 14")
+- Tabloid (11" x 17")
+- A3 (297 мм x 420 мм)
+- Свой (укажите ширину и высоту)
+
+**Свойства полей (зависят от типа поля):**
+
+- Имя, подпись и текст подсказки
+- Значение по умолчанию
+- Шрифт, размер и цвет
+- Выравнивание текста (по левому краю, по центру, по правому краю)
+- Переключатель обязательного поля
+- Переключатель «только чтение»
+- Максимальная длина текстовых полей
+- Список вариантов для выпадающих списков и переключателей
+- Действия условной видимости
+
+## Сценарии использования
+
+- Создание форм для приёма сотрудников с текстовыми полями для личных данных и флажками для подтверждения ознакомления с политикой
+- Создание анкет для клиентов с выпадающими списками для выбора услуги
+- Разработка бланков заказов с вычисляемыми полями и штрихкодами-идентификаторами
+- Создание контрольных листов для осмотра с переключателями для оценки «пройдено/не пройдено»
+- Создание опросов с условными уточняющими вопросами, которые появляются в зависимости от ответов
+
+## Советы
+
+- Если вы загрузите существующий PDF, инструмент попытается извлечь уже имеющиеся поля формы, и вы сможете их редактировать или дополнять.
+- Используйте группы переключателей, чтобы создавать взаимоисключающие варианты. Поля в одной группе переключателей имеют общее имя группы.
+- Проверьте форму: скачайте её и откройте в инструменте [Заполнение PDF-форм](./form-filler), чтобы убедиться, что поля работают правильно.
+
+## Связанные инструменты
+
+- [Заполнение PDF-форм](./form-filler)
+- [Подписание PDF](./sign-pdf)
+- [Редактор PDF](./edit-pdf)
diff --git a/docs/ru/tools/form-filler.md b/docs/ru/tools/form-filler.md
new file mode 100644
index 00000000..025435ba
--- /dev/null
+++ b/docs/ru/tools/form-filler.md
@@ -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. Заполнение PDF-форм в BentoPDF и Firefox корректно работают с XFA.
+- Если в PDF нет полей формы, сначала добавьте их инструментом [Создание PDF-форм](./form-creator), а затем заполните форму здесь.
+- Просмотрщик автоматически подстраивает свой размер под размеры страницы PDF.
+
+## Связанные инструменты
+
+- [Создание PDF-форм](./form-creator)
+- [Подписание PDF](./sign-pdf)
+- [Редактор PDF](./edit-pdf)
diff --git a/docs/ru/tools/header-footer.md b/docs/ru/tools/header-footer.md
new file mode 100644
index 00000000..b17f51a8
--- /dev/null
+++ b/docs/ru/tools/header-footer.md
@@ -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)
diff --git a/docs/ru/tools/heic-to-pdf.md b/docs/ru/tools/heic-to-pdf.md
new file mode 100644
index 00000000..adcfbd19
--- /dev/null
+++ b/docs/ru/tools/heic-to-pdf.md
@@ -0,0 +1,46 @@
+---
+title: HEIC в PDF
+description: Преобразуйте изображения HEIC и HEIF с iPhone и iPad в PDF прямо в браузере.
+---
+
+# HEIC в PDF
+
+Преобразуйте изображения HEIC/HEIF в PDF. HEIC - формат фотографий по умолчанию на iPhone и iPad начиная с iOS 11. Этот инструмент превращает такие фотографии в PDF без установки программ на компьютер и без загрузки файлов на сервер.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения |
+| :----- | :--------- |
+| HEIC | `.heic` |
+| HEIF | `.heif` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите в неё файлы HEIC/HEIF.
+2. Просмотрите список файлов и удалите ненужные.
+3. Нажмите **Преобразовать в PDF**. Результат скачивается как `from_heic.pdf`.
+
+Каждый файл HEIC декодируется библиотекой heic2any и преобразуется в PNG с качеством 92%. Затем PNG встраивается в PDF с помощью pdf-lib, и каждое изображение занимает отдельную страницу в полном разрешении.
+
+## Параметры
+
+У этого инструмента нет дополнительных настроек. Изображения HEIC перед встраиванием преобразуются в PNG с высоким качеством (0,92).
+
+## Сценарии использования
+
+- Создание PDF из фотографий с iPhone для страховой заявки или отчёта
+- Преобразование фотографий HEIC для объявления о недвижимости в один документ для печати
+- Превращение снимков экрана iPad (формат HEIF) в PDF, которым удобно делиться
+- Пакетное преобразование фотографий из отпуска для дневника путешествий
+
+## Советы
+
+- Декодирование HEIC целиком выполняется в браузере с помощью WebAssembly. Первое преобразование может занять некоторое время, пока загружается декодер.
+- Если нужно объединить HEIC с другими форматами изображений (JPG, PNG и др.), используйте инструмент [Изображения в PDF](./image-to-pdf), который работает с HEIC наравне со всеми остальными форматами.
+- Файлы HEIC с iPhone часто содержат данные EXIF, включая координаты GPS. В итоговый PDF эти метаданные не переносятся.
+
+## Связанные инструменты
+
+- [Изображения в PDF](./image-to-pdf)
+- [JPG в PDF](./jpg-to-pdf)
+- [PNG в PDF](./png-to-pdf)
diff --git a/docs/ru/tools/image-to-pdf.md b/docs/ru/tools/image-to-pdf.md
new file mode 100644
index 00000000..ecc61646
--- /dev/null
+++ b/docs/ru/tools/image-to-pdf.md
@@ -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
+- Создание портфолио или лукбука из изображений в разных форматах
+- Преобразование фотографий с iPhone (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)
diff --git a/docs/ru/tools/index.md b/docs/ru/tools/index.md
new file mode 100644
index 00000000..a574319e
--- /dev/null
+++ b/docs/ru/tools/index.md
@@ -0,0 +1,183 @@
+# Справочник инструментов
+
+BentoPDF предлагает **более 130 инструментов** для работы с PDF. Все инструменты работают целиком в вашем браузере: ваши файлы никогда не покидают устройство.
+
+---
+
+## Редактирование и аннотации
+
+Изменяйте, размечайте и улучшайте документы PDF с помощью полного набора инструментов редактирования.
+
+
+
+- [**Редактор 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): автоматический поиск и удаление пустых страниц.
+
+
+
+---
+
+## Преобразование в PDF
+
+Превращайте изображения, документы, электронные книги и файлы других форматов в PDF.
+
+
+
+- [**Изображения в 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.
+- [**Email в PDF**](./email-to-pdf): преобразование файлов электронной почты (EML, MSG) в формат PDF.
+
+
+
+---
+
+## Преобразование из PDF
+
+Извлекайте содержимое PDF в изображения, документы и форматы данных.
+
+
+
+- [**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 (архив комиксов) для программ чтения комиксов и 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.
+
+
+
+---
+
+## Организация и управление
+
+Переставляйте, объединяйте, разделяйте страницы и файлы PDF и управляйте ими.
+
+
+
+- [**Конструктор PDF-процессов**](./pdf-workflow): создание собственных конвейеров обработки PDF в визуальном редакторе узлов.
+- [**PDF мультиинструмент**](./pdf-multi-tool): полнофункциональный редактор PDF с управлением страницами.
+- [**Распознавание текста в PDF**](./ocr-pdf): сделайте PDF доступным для поиска и копирования.
+- [**Объединение PDF**](./merge-pdf): объединение нескольких PDF в один файл.
+- [**Объединение документов с чередованием страниц**](./alternate-merge): объединение PDF с чередованием страниц из каждого файла.
+- [**Сортировка двустороннего сканирования**](./duplex-collate): перестановка блоков лицевых и оборотных сканов в правильный порядок страниц.
+- [**Дублирование и организация**](./organize-pdf): дублирование, перестановка и удаление страниц.
+- [**Добавление вложений**](./add-attachments): встраивание одного или нескольких файлов в PDF.
+- [**Извлечение вложений**](./extract-attachments): извлечение всех встроенных файлов из PDF в ZIP-архив.
+- [**Редактирование вложений**](./edit-attachments): просмотр или удаление вложений в PDF.
+- [**PDF OCG**](./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-архив.
+- [**Сравнение документов**](./compare-pdfs): сравнение двух PDF рядом.
+- [**Постеризация документа**](./posterize-pdf): разделение большой страницы на несколько меньших.
+
+
+
+---
+
+## Оптимизация и восстановление
+
+Сжимайте, исправляйте и оптимизируйте PDF для лучшей производительности и совместимости.
+
+
+
+- [**Сжатие PDF**](./compress-pdf): уменьшение размера файла PDF.
+- [**PDF в PDF/A**](./pdf-to-pdfa): преобразование PDF в PDF/A для долгосрочного архивирования.
+- [**Редактор размера страниц**](./fix-page-size): приведение всех страниц к единому размеру.
+- [**Линеаризация документа**](./linearize-pdf): оптимизация PDF для быстрого просмотра в вебе.
+- [**Размеры страниц**](./page-dimensions): анализ размера, ориентации и единиц измерения страниц.
+- [**Снятие ограничений**](./remove-restrictions): снятие защиты паролем и ограничений безопасности.
+- [**Восстановление документа**](./repair-pdf): восстановление данных из повреждённых файлов PDF.
+- [**Растеризация документа**](./rasterize-pdf): преобразование PDF в PDF на основе изображений. Сведение слоёв и удаление выделяемого текста.
+- [**Выпрямление PDF**](./deskew-pdf): автоматическое выравнивание наклонённых отсканированных страниц с помощью OpenCV.
+- [**Шрифты в кривые**](./font-to-outline): преобразование всех шрифтов в векторные контуры для одинакового отображения.
+
+
+
+---
+
+## Защита PDF
+
+Защищайте, шифруйте PDF и управляйте доступом к документам.
+
+
+
+- [**Защита PDF**](./protect-pdf): защита PDF паролем.
+- [**Санирование документа**](./sanitize-pdf): удаление метаданных, аннотаций, скриптов и многого другого.
+- [**Разблокировка PDF**](./unlock-pdf): снятие защиты паролем с PDF.
+- [**Сведение документа**](./flatten-pdf): превращение полей форм и аннотаций в нередактируемые.
+- [**Удаление метаданных**](./remove-metadata): удаление скрытых данных из PDF.
+- [**Изменение разрешений**](./change-permissions): установка или изменение прав пользователей для PDF.
+- [**Цифровая подпись PDF**](./digital-sign-pdf): добавление криптографической цифровой подписи с сертификатами X.509.
+- [**Проверка подписи в PDF**](./validate-signature-pdf): проверка цифровых подписей и просмотр сведений о сертификате.
+
+
diff --git a/docs/ru/tools/invert-colors.md b/docs/ru/tools/invert-colors.md
new file mode 100644
index 00000000..9528e299
--- /dev/null
+++ b/docs/ru/tools/invert-colors.md
@@ -0,0 +1,42 @@
+---
+title: Инверсия цвета
+description: Инвертируйте все цвета PDF, чтобы получить тёмную версию любого документа.
+---
+
+# Инверсия цвета
+
+Замените каждый цвет в PDF на противоположный. Белый фон становится чёрным, чёрный текст белым, а все остальные цвета переходят в дополнительные. Это самый быстрый способ получить «тёмную тему» для любого PDF.
+
+## Как это работает
+
+1. Загрузите файл PDF.
+2. Нажмите **Инвертировать цвета** для обработки.
+3. Инвертированный PDF скачивается автоматически.
+
+Дополнительных настроек нет. Инструмент отображает каждую страницу как изображение, инвертирует цвета всех пикселей и собирает результат в новый PDF.
+
+## Возможности
+
+- Инверсия цвета всех страниц в одно нажатие
+- Обработка каждой страницы документа
+- Сохранение исходных размеров и макета страниц
+- Работает с любым PDF независимо от содержимого (текст, изображения, смешанное содержимое)
+
+## Сценарии использования
+
+- Создание тёмных версий учебников и руководств для комфортного чтения ночью
+- Подготовка высококонтрастных версий документов для доступности
+- Инверсия отсканированных документов, снятых с неправильной экспозицией
+- Создание негативов PDF с большим количеством изображений для визуального анализа
+
+## Советы
+
+- Чтобы применить эффект, инструмент растеризует страницы, поэтому результат состоит из изображений. Текст больше нельзя выделять и искать. Если после инверсии нужен текст с возможностью поиска, пропустите результат через инструмент распознавания текста.
+- Для более точной настройки цвета (яркость, контраст, насыщенность) используйте инструмент [Настройка цвета](./adjust-colors).
+- Большие PDF с множеством страниц могут обрабатываться дольше, так как каждая страница отображается и инвертируется отдельно.
+
+## Связанные инструменты
+
+- [Настройка цвета](./adjust-colors)
+- [Цвет фона](./background-color)
+- [Эффект сканера](./scanner-effect)
diff --git a/docs/ru/tools/jpg-to-pdf.md b/docs/ru/tools/jpg-to-pdf.md
new file mode 100644
index 00000000..2246c637
--- /dev/null
+++ b/docs/ru/tools/jpg-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/json-to-pdf.md b/docs/ru/tools/json-to-pdf.md
new file mode 100644
index 00000000..ec7ebb12
--- /dev/null
+++ b/docs/ru/tools/json-to-pdf.md
@@ -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` и содержит по одному PDF на каждый входной файл JSON.
+
+Преобразование выполняется в фоновом Web Worker, поэтому интерфейс остаётся отзывчивым даже с большими файлами.
+
+## Параметры
+
+У этого инструмента нет настраиваемых параметров. Итоговый PDF полностью определяется структурой JSON.
+
+## Результат
+
+При преобразовании нескольких файлов 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)
diff --git a/docs/ru/tools/linearize-pdf.md b/docs/ru/tools/linearize-pdf.md
new file mode 100644
index 00000000..f7643d99
--- /dev/null
+++ b/docs/ru/tools/linearize-pdf.md
@@ -0,0 +1,49 @@
+---
+title: Линеаризация документа
+description: Оптимизируйте файлы PDF для быстрого просмотра в вебе с постепенной загрузкой. Также известно как оптимизация «Быстрый просмотр в Интернете».
+---
+
+# Линеаризация документа
+
+Линеаризация перестраивает PDF так, чтобы первую страницу можно было показать до полной загрузки файла. В Adobe это называется «Быстрый просмотр в Интернете». Если вы размещаете 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): уменьшите размер файла перед линеаризацией
+- [Восстановление документа](./repair-pdf): исправьте структурные проблемы, мешающие линеаризации
+- [Удаление метаданных](./remove-metadata): удалите метаданные перед публикацией в интернете
diff --git a/docs/ru/tools/markdown-to-pdf.md b/docs/ru/tools/markdown-to-pdf.md
new file mode 100644
index 00000000..3327d06d
--- /dev/null
+++ b/docs/ru/tools/markdown-to-pdf.md
@@ -0,0 +1,59 @@
+---
+title: Markdown в PDF
+description: Пишите или вставляйте Markdown и экспортируйте его в профессионально оформленный PDF с живым предпросмотром и подсветкой синтаксиса.
+---
+
+# Markdown в PDF
+
+Полнофункциональный редактор Markdown с живым предпросмотром и экспортом в PDF одним нажатием. Пишите с нуля, загрузите готовый файл `.md` или вставьте содержимое из буфера обмена. Редактор отображает Markdown в реальном времени и экспортирует оформленный PDF с помощью встроенного механизма печати браузера.
+
+## Поддерживаемые форматы
+
+| Вход | Описание |
+| :---------- | :------------------------------ |
+| Файлы `.md` | Загрузка кнопкой «Загрузить» |
+| Прямой ввод | Введите или вставьте в редактор |
+
+## Как это работает
+
+1. Откройте инструмент Markdown в PDF. Редактор загрузится в режиме разделённого экрана: исходный Markdown слева, готовый предпросмотр справа.
+2. Напишите Markdown, вставьте его или нажмите **Загрузить**, чтобы открыть файл `.md`.
+3. Переключайтесь между светлой и тёмной темой ползунком темы на панели инструментов.
+4. Нажмите **Экспорт в PDF** (или `Ctrl/Cmd + S`), чтобы создать PDF через диалог печати браузера.
+
+## Возможности
+
+Редактор поддерживает широкий набор возможностей Markdown помимо базовых:
+
+- **Стандартный Markdown**: заголовки, полужирный, курсив, ссылки, изображения, списки, цитаты, горизонтальные линии
+- **Блоки кода** с подсветкой синтаксиса для более чем 15 языков (JavaScript, TypeScript, Python, Go, Rust, SQL, Java, C#, C++, YAML, Bash и другие)
+- **Диаграммы Mermaid**: блок-схемы, диаграммы последовательности, ER-диаграммы и другие типы диаграмм Mermaid отображаются прямо в предпросмотре
+- **Таблицы** со стандартным синтаксисом таблиц Markdown
+- **Списки задач** с флажками
+- **Сноски**, **подстрочные** и **надстрочные** символы
+- **Списки определений**, **аббревиатуры**
+- Поддержка **эмодзи** (`:smile:` отображается как эмодзи)
+- **Выделение** (`==marked text==`) и **вставки** (`++inserted text++`)
+- **Автоматические ссылки**: обычные 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)
diff --git a/docs/ru/tools/merge-pdf.md b/docs/ru/tools/merge-pdf.md
new file mode 100644
index 00000000..acaf488e
--- /dev/null
+++ b/docs/ru/tools/merge-pdf.md
@@ -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)
diff --git a/docs/ru/tools/mobi-to-pdf.md b/docs/ru/tools/mobi-to-pdf.md
new file mode 100644
index 00000000..8f42883e
--- /dev/null
+++ b/docs/ru/tools/mobi-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: MOBI в PDF
+description: Преобразуйте файлы электронных книг MOBI в PDF прямо в браузере. Бесплатно, приватно, без загрузки файлов.
+---
+
+# MOBI в PDF
+
+Преобразуйте электронные книги Amazon Kindle в формате MOBI в документы 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)
diff --git a/docs/ru/tools/n-up-pdf.md b/docs/ru/tools/n-up-pdf.md
new file mode 100644
index 00000000..49f317e5
--- /dev/null
+++ b/docs/ru/tools/n-up-pdf.md
@@ -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, 4, 6, 8, 9 и 16 страниц на листе
+- Настраиваемые размер и ориентация страницы результата
+- Необязательный интервал между страницами
+- Настройки цвета фона и границ
+- Сохраняет пропорции исходных страниц при масштабировании
+
+## Параметры
+
+| Параметр | Описание |
+| -------------------- | ------------------------------------------------------------------------ |
+| **Страниц на листе** | Число исходных страниц на каждой странице результата (2, 4, 6, 8, 9, 16) |
+| **Размер страницы** | Размер выходного листа (A4, Letter, Legal и другие) |
+| **Ориентация** | Книжная или альбомная для выходного листа |
+| **Интервал** | Промежуток между страницами в пунктах |
+| **Цвет фона** | Цвет заливки фона выходного листа |
+| **Цвет границы** | Цвет границ вокруг каждой страницы |
+
+## Сценарии использования
+
+- Печать раздаточных материалов по 4 слайда на странице для экономии бумаги
+- Создание шпаргалок с несколькими справочными страницами на одном листе
+- Подготовка компактных архивов документов для подшивки
+- Создание листов-обзоров с миниатюрами длинного документа
+
+## Советы
+
+- Альбомная ориентация часто лучше подходит для макета по 2 страницы, а книжная обычно лучше для 4 и более.
+- Увеличение интервала улучшает читаемость, но уменьшает область для каждой страницы.
+- Для обратной операции (разделения одной страницы на несколько) см. [Постеризация документа](./posterize-pdf).
+
+## Связанные инструменты
+
+- [Постеризация документа](./posterize-pdf)
+- [PDF-буклет](./pdf-booklet)
+- [Объединение в одну страницу](./combine-single-page)
diff --git a/docs/ru/tools/ocr-pdf.md b/docs/ru/tools/ocr-pdf.md
new file mode 100644
index 00000000..24c214c3
--- /dev/null
+++ b/docs/ru/tools/ocr-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Распознавание текста в PDF
+description: Сделайте отсканированные PDF доступными для поиска и копирования с помощью Tesseract OCR с поддержкой нескольких языков и фильтрацией символов.
+---
+
+# Распознавание текста в PDF
+
+Превращайте отсканированные документы в PDF с поиском и копированием текста. Инструмент использует Tesseract OCR, чтобы распознавать текст на изображениях, и накладывает поверх исходных страниц невидимый текстовый слой. Внешний вид страниц сохраняется, а содержимое становится полностью доступным для поиска.
+
+## Как это работает
+
+1. Загрузите отсканированный PDF или PDF на основе изображений.
+2. Выберите один или несколько языков документа в списке языков с поиском.
+3. При желании настройте расширенные параметры (разрешение, бинаризация, белый список).
+4. Нажмите **Начать распознавание** и следите за ходом выполнения на индикаторе прогресса.
+5. По завершении просмотрите извлечённый текст, затем скачайте PDF с поиском или обычный файл `.txt`.
+
+## Возможности
+
+- Распознавание на нескольких языках с выбором языка через поиск
+- Невидимый текстовый слой сохраняет исходный вид документа
+- Индикатор прогресса и журнал в реальном времени во время обработки
+- Скачивание результата как PDF с поиском или обычного текстового файла
+- Копирование извлечённого текста в буфер обмена
+- Три уровня разрешения для баланса между скоростью и точностью
+
+## Параметры
+
+| Настройка | Значения | По умолчанию | Назначение |
+| -------------------------------- | --------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------- |
+| **Разрешение** | Стандартное (192 DPI), Высокое (288 DPI), Максимальное (384 DPI) | Высокое | Более высокое разрешение повышает точность для мелкого текста, но работает дольше |
+| **Бинаризация изображения** | Вкл. / Выкл. | Выкл. | Повышает контраст чистых сканов, преобразуя их в чёрно-белые |
+| **Набор символов белого списка** | Нет, Буквы и цифры, Числа и валюта, Только буквы, Только цифры, Счёт, Формы, Свой | Нет | Ограничивает распознаваемые символы, чтобы повысить точность для определённых типов документов |
+| **Белый список символов** | Произвольный текст | Пусто | Ручной набор символов, если выбран набор «Свой» |
+
+## Сценарии использования
+
+- Превращение отсканированных договоров и счетов в документы с поиском, чтобы искать по ним через Ctrl+F
+- Извлечение текста из сфотографированных документов или старых бумажных записей
+- Обработка чеков с набором «Счёт» для точного распознавания сумм и дат
+- Создание доступных PDF из сканов, состоящих только из изображений, для соответствия требованиям
+- Пакетное извлечение текста из отсканированных книг или руководств
+
+## Советы
+
+- Выбирайте несколько языков, если документ содержит текст на разных языках (например, английские заголовки и основной текст на японском).
+- Используйте бинаризацию для документов с выцветшим или малоконтрастным текстом: она может заметно повысить точность распознавания.
+- Наборы белого списка «Счёт» и «Формы» значительно снижают число ложных срабатываний в структурированных документах, игнорируя лишние формы символов.
+
+## Связанные инструменты
+
+- [Извлечение таблиц из PDF](./extract-tables)
+- [Объединение PDF](./merge-pdf)
+- [Сжатие PDF](./compress-pdf)
diff --git a/docs/ru/tools/odg-to-pdf.md b/docs/ru/tools/odg-to-pdf.md
new file mode 100644
index 00000000..074db673
--- /dev/null
+++ b/docs/ru/tools/odg-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/odp-to-pdf.md b/docs/ru/tools/odp-to-pdf.md
new file mode 100644
index 00000000..109430a3
--- /dev/null
+++ b/docs/ru/tools/odp-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/ods-to-pdf.md b/docs/ru/tools/ods-to-pdf.md
new file mode 100644
index 00000000..3d2f4451
--- /dev/null
+++ b/docs/ru/tools/ods-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: ODS в PDF
+description: Конвертируйте таблицы LibreOffice Calc (ODS) в PDF прямо в браузере. Бесплатно, приватно, без регистрации.
+---
+
+# ODS в PDF
+
+Преобразуйте файлы OpenDocument Spreadsheet в PDF. ODS - родной формат LibreOffice Calc и частый вариант экспорта из Google Sheets. Инструмент выводит данные, форматирование и диаграммы таблицы в постраничный PDF, который можно распечатать или отправить.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :----------------------- | :--------- | :------------------------------------------ |
+| OpenDocument Spreadsheet | `.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)
diff --git a/docs/ru/tools/odt-to-pdf.md b/docs/ru/tools/odt-to-pdf.md
new file mode 100644
index 00000000..ae319abb
--- /dev/null
+++ b/docs/ru/tools/odt-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: ODT в PDF
+description: Конвертируйте файлы OpenDocument Text (ODT) в PDF в браузере с помощью движка на основе LibreOffice.
+---
+
+# ODT в PDF
+
+Преобразуйте файлы OpenDocument Text в PDF. ODT - родной формат LibreOffice Writer, Apache OpenOffice и других открытых текстовых редакторов. Инструмент использует браузерный движок LibreOffice и точно сохраняет форматирование, таблицы, изображения и стили.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения |
+| :---------------- | :--------- |
+| OpenDocument Text | `.odt` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите один или несколько ODT-файлов.
+2. Проверьте список файлов. Добавьте ещё или удалите лишние.
+3. Нажмите **Конвертировать в PDF**. Движок LibreOffice инициализируется (индикатор показывает ход загрузки), затем конвертируется каждый файл.
+4. Один файл скачивается сразу как PDF. Несколько файлов упаковываются в `odt-converted.zip`.
+
+## Параметры
+
+Дополнительных настроек нет. При конвертации форматирование исходного документа сохраняется максимально близко к оригиналу.
+
+## Результат
+
+| Количество файлов | Результат |
+| :---------------- | :--------------------------------------------------------- |
+| 1 файл | Скачивается один PDF (например, `document.pdf`) |
+| 2 и более | 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)
diff --git a/docs/ru/tools/organize-pdf.md b/docs/ru/tools/organize-pdf.md
new file mode 100644
index 00000000..c3d7c3bc
--- /dev/null
+++ b/docs/ru/tools/organize-pdf.md
@@ -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)
diff --git a/docs/ru/tools/page-dimensions.md b/docs/ru/tools/page-dimensions.md
new file mode 100644
index 00000000..88f319a8
--- /dev/null
+++ b/docs/ru/tools/page-dimensions.md
@@ -0,0 +1,53 @@
+---
+title: Размеры страниц
+description: Анализ размеров, ориентации, пропорций и поворота страниц PDF. Находит документы со страницами разного размера и экспортирует данные в CSV.
+---
+
+# Размеры страниц
+
+Диагностический инструмент, который читает каждую страницу PDF и показывает её точные размеры, ориентацию, название стандартного формата, пропорции, площадь и поворот. Полезен, чтобы найти страницы разного размера перед печатью или чтобы описать свойства полученного PDF.
+
+## Как это работает
+
+1. Загрузите PDF-файл. Анализ запускается автоматически, нажимать кнопку не нужно.
+2. В сводной панели показаны общее число страниц, число уникальных размеров и наличие страниц разного размера.
+3. Просмотрите полную таблицу с данными по каждой странице.
+4. Переключайте единицы измерения: пункты, дюймы, миллиметры или пиксели.
+5. Нажмите **Экспорт в CSV**, чтобы сохранить данные.
+
+## Поля отчёта
+
+| Столбец | Описание |
+| ------------------ | --------------------------------------------------- |
+| Страница № | Порядковый номер страницы |
+| Размеры | Ширина x высота в выбранных единицах |
+| Стандартный формат | Подходящее название (A4, Letter и т. д.) или "Свой" |
+| Ориентация | Книжная или альбомная |
+| Соотношение сторон | Отношение ширины к высоте в десятичном виде |
+| Площадь | Площадь страницы в квадратных выбранных единицах |
+| Rotation | Поворот страницы в градусах |
+
+## Возможности
+
+- Автоматическое определение стандартных форматов бумаги (A3, A4, A5, Letter, Legal, Tabloid и других)
+- Предупреждение о страницах разного размера с разбивкой по размерам и числу страниц каждого размера
+- Перевод между пунктами, дюймами, миллиметрами и пикселями (при 96 PPI)
+- Экспорт в CSV для электронных таблиц и систем документации
+
+## Сценарии использования
+
+- Убедиться, что все страницы имеют формат A4, перед отправкой документа в типографию
+- Выяснить, почему объединённый PDF печатается с неожиданными полями на некоторых страницах
+- Описать структуру страниц большого PDF-архива для записей метаданных
+- Найти повёрнутые страницы, которые нужно исправить
+
+## Советы
+
+- Если в сводке указано "Разные размеры", перед печатью приведите страницы к единому размеру с помощью инструмента "Редактор размера страниц".
+- Поле поворота помогает найти страницы, которые отображаются правильно, но имеют ненулевой атрибут поворота. В некоторых процессах это вызывает проблемы.
+
+## Связанные инструменты
+
+- [Редактор размера страниц](./fix-page-size): приведите страницы к единому размеру после обнаружения разных
+- [Сжатие PDF](./compress-pdf): оптимизируйте PDF после исправления страниц
+- [Поворот PDF](./rotate-pdf): исправьте повёрнутые страницы
diff --git a/docs/ru/tools/page-numbers.md b/docs/ru/tools/page-numbers.md
new file mode 100644
index 00000000..e27ae0c0
--- /dev/null
+++ b/docs/ru/tools/page-numbers.md
@@ -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)
diff --git a/docs/ru/tools/pdf-booklet.md b/docs/ru/tools/pdf-booklet.md
new file mode 100644
index 00000000..42e479b9
--- /dev/null
+++ b/docs/ru/tools/pdf-booklet.md
@@ -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)
diff --git a/docs/ru/tools/pdf-layers.md b/docs/ru/tools/pdf-layers.md
new file mode 100644
index 00000000..b3153198
--- /dev/null
+++ b/docs/ru/tools/pdf-layers.md
@@ -0,0 +1,46 @@
+---
+title: Слои PDF OCG
+description: Просматривайте, переключайте, добавляйте и удаляйте слои Optional Content Group (OCG) в PDF-документе.
+---
+
+# Слои PDF OCG
+
+Управляйте группами необязательного содержимого (Optional Content Groups, 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)
diff --git a/docs/ru/tools/pdf-multi-tool.md b/docs/ru/tools/pdf-multi-tool.md
new file mode 100644
index 00000000..c4b6f397
--- /dev/null
+++ b/docs/ru/tools/pdf-multi-tool.md
@@ -0,0 +1,65 @@
+---
+title: PDF мультиинструмент
+description: Универсальный менеджер страниц для объединения, разделения, поворота, дублирования, удаления, перестановки и изменения размера страниц PDF.
+---
+
+# PDF мультиинструмент
+
+Единое рабочее пространство для всех операций со страницами PDF. Загрузите один или несколько PDF и работайте со всеми страницами в одной визуальной сетке. Поворачивайте, переставляйте, дублируйте и удаляйте страницы, вставляйте PDF, изображения и пустые страницы, меняйте нумерацию и размер страниц и разделяйте результат, не выходя из инструмента.
+
+## Как это работает
+
+1. Нажмите **Выбрать файлы** или перетащите файлы в область загрузки. Можно выбрать несколько файлов, они объединяются в порядке загрузки.
+2. Все страницы появятся в прокручиваемой сетке с миниатюрами.
+3. Щёлкните страницу, чтобы выделить её. Щелчок с Shift выделяет диапазон, а щелчок с Cmd/Ctrl добавляет отдельные страницы к выделению или убирает их.
+4. Для действий со страницами используйте панель инструментов или щёлкните страницу правой кнопкой мыши.
+5. Нажмите **Экспортировать PDF**, чтобы скачать итог.
+
+## Возможности
+
+- **Объединить**: несколько загруженных PDF и изображений автоматически объединяются в один документ
+- **Изменить порядок**: перетаскивание страниц для изменения последовательности или обратный порядок для всего документа
+- **Повернуть**: поворот выбранных страниц влево или вправо с шагом 90 градусов
+- **Дублировать**: копирование выбранных страниц с размещением копий сразу после них
+- **Удалить**: удаление выбранных страниц
+- **Вставить**: добавление страниц из другого PDF или изображения, пустой страницы или страниц из буфера обмена, а также чередование страниц второго PDF с текущими
+- **Заменить**: замена страницы первой страницей другого PDF
+- **Вырезать, копировать и вставить**: перемещение или копирование страниц внутри документа
+- **Извлечь**: скачивание выбранных страниц в виде PDF или изображений
+- **Номера страниц**: метки страниц вида i, ii, iii или A-1, A-2 для диапазона страниц
+- **Размер страницы**: подгонка страниц под стандартный формат бумаги или произвольный размер
+- **Разделить**: разделение документа по диапазонам страниц, на нечётные и чётные страницы, постранично, по закладкам, каждые N страниц или по размеру файла
+- **Отменить / Вернуть**: любую операцию со страницами можно отменить и вернуть
+- Автоматическое восстановление повреждённых PDF перед загрузкой
+
+## Сочетания клавиш
+
+| Действие | Сочетание клавиш |
+| ------------------------------ | ------------------------------- |
+| Повернуть вправо / влево | R / Shift+R |
+| Выбрать все | Cmd/Ctrl+A |
+| Вырезать, копировать, вставить | Cmd/Ctrl+X, C, V |
+| Дублировать | Cmd/Ctrl+D |
+| Удалить | Delete или Backspace |
+| Отменить / Вернуть | Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z |
+| Переместить выделение | Клавиши со стрелками, Home, End |
+
+## Сценарии использования
+
+- Сборка своего документа из страниц нескольких исходных PDF
+- Очистка отсканированного документа: удаление пустых страниц, поворот боковых сканов, перестановка разделов
+- Разделение большого PDF по границам глав с помощью его закладок
+- Быстрое редактирование страниц без полноценного PDF-редактора
+
+## Советы
+
+- История отмены и повтора учитывает каждую операцию со страницами. Пользуйтесь ей свободно: случайно потерять работу нельзя.
+- Чтобы добавить файлы в документ, используйте **Insert > From File** или в любой момент перетащите дополнительные PDF или изображения на сетку страниц.
+- Для простого объединения или разделения быстрее могут оказаться отдельные инструменты [Объединение PDF](./merge-pdf) и [Разделение PDF](./split-pdf). Мультиинструмент выручает, когда за один сеанс нужно несколько операций.
+
+## Связанные инструменты
+
+- [Объединение PDF](./merge-pdf)
+- [Разделение PDF](./split-pdf)
+- [Дублирование и организация](./organize-pdf)
+- [Поворот PDF](./rotate-pdf)
diff --git a/docs/ru/tools/pdf-to-bmp.md b/docs/ru/tools/pdf-to-bmp.md
new file mode 100644
index 00000000..c32ddddb
--- /dev/null
+++ b/docs/ru/tools/pdf-to-bmp.md
@@ -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)
diff --git a/docs/ru/tools/pdf-to-cbz.md b/docs/ru/tools/pdf-to-cbz.md
new file mode 100644
index 00000000..94d04daa
--- /dev/null
+++ b/docs/ru/tools/pdf-to-cbz.md
@@ -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").
+- **Номер (#)**: номер выпуска в серии.
+- **Том**: номер тома.
+- **Автор(ы)**: имя автора или создателя.
+- **Издатель**: издательство.
+- **Теги / Жанр**: теги через запятую (например, "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)
diff --git a/docs/ru/tools/pdf-to-csv.md b/docs/ru/tools/pdf-to-csv.md
new file mode 100644
index 00000000..33ddb9b8
--- /dev/null
+++ b/docs/ru/tools/pdf-to-csv.md
@@ -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.
+
+## Параметры
+
+Настраиваемых параметров нет. Все найденные в документе таблицы извлекаются и объединяются в один CSV.
+
+## Формат результата
+
+- Один файл `filename.csv` со всеми найденными таблицами.
+
+## Сценарии использования
+
+- Перенос финансовых данных из банковских выписок и счетов в PDF в электронную таблицу.
+- Извлечение таблиц цен из предложений поставщиков для сравнения.
+- Преобразование табличных данных исследований из PDF в формат, удобный для анализа.
+- Перенос данных из старых PDF-отчётов в базы данных.
+
+## Советы
+
+- Если таблицы не найдены, инструмент покажет сообщение "Таблицы не найдены". Обычно это значит, что в PDF текст выглядит как таблица, но не является настоящей таблицей.
+- Для более тонкого контроля над отдельными таблицами используйте [Извлечение таблиц из PDF](./extract-tables), где можно выбрать формат CSV, JSON или Markdown.
+- Если данные нужны в Excel с отдельным листом для каждой таблицы, используйте [PDF в Excel](./pdf-to-excel).
+
+## Связанные инструменты
+
+- [PDF в Excel](./pdf-to-excel)
+- [Извлечение таблиц из PDF](./extract-tables)
+- [PDF в текст](./pdf-to-text)
diff --git a/docs/ru/tools/pdf-to-excel.md b/docs/ru/tools/pdf-to-excel.md
new file mode 100644
index 00000000..90b82082
--- /dev/null
+++ b/docs/ru/tools/pdf-to-excel.md
@@ -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). Для скачивания отдельных таблиц в разных форматах используйте [Извлечение таблиц из PDF](./extract-tables).
+- По названиям листов можно понять, с какой страницы взята каждая таблица.
+
+## Связанные инструменты
+
+- [PDF в CSV](./pdf-to-csv)
+- [Извлечение таблиц из PDF](./extract-tables)
+- [PDF в текст](./pdf-to-text)
diff --git a/docs/ru/tools/pdf-to-greyscale.md b/docs/ru/tools/pdf-to-greyscale.md
new file mode 100644
index 00000000..0e81fa72
--- /dev/null
+++ b/docs/ru/tools/pdf-to-greyscale.md
@@ -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)
diff --git a/docs/ru/tools/pdf-to-jpg.md b/docs/ru/tools/pdf-to-jpg.md
new file mode 100644
index 00000000..d5b69fdf
--- /dev/null
+++ b/docs/ru/tools/pdf-to-jpg.md
@@ -0,0 +1,46 @@
+---
+title: PDF в JPG
+description: Конвертируйте страницы PDF в изображения JPG с настройкой качества. Одностраничные 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)
diff --git a/docs/ru/tools/pdf-to-json.md b/docs/ru/tools/pdf-to-json.md
new file mode 100644
index 00000000..bd4f25d0
--- /dev/null
+++ b/docs/ru/tools/pdf-to-json.md
@@ -0,0 +1,45 @@
+---
+title: PDF в JSON
+description: Конвертируйте PDF-файлы в структурированный JSON с помощью CPDF. Экспортирует внутреннюю структуру PDF как машиночитаемые данные JSON.
+---
+
+# PDF в JSON
+
+Преобразует один или несколько PDF-файлов в формат JSON. Инструмент использует CPDF (Coherent PDF), чтобы сериализовать внутреннюю структуру каждого PDF в машиночитаемое представление JSON. Результат всегда выдаётся в виде ZIP-архива.
+
+## Как это работает
+
+1. Выберите один или несколько PDF-файлов через окно выбора файлов.
+2. Нажмите **Конвертировать в JSON**, чтобы начать обработку. Конвертация выполняется в фоновом веб-воркере.
+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)
+- [Извлечение таблиц из PDF](./extract-tables)
diff --git a/docs/ru/tools/pdf-to-markdown.md b/docs/ru/tools/pdf-to-markdown.md
new file mode 100644
index 00000000..228cfd09
--- /dev/null
+++ b/docs/ru/tools/pdf-to-markdown.md
@@ -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`.
+
+## Параметры
+
+- **Включить изображения как base64**: если включено, встроенные изображения из 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)
diff --git a/docs/ru/tools/pdf-to-pdfa.md b/docs/ru/tools/pdf-to-pdfa.md
new file mode 100644
index 00000000..7e5a3fac
--- /dev/null
+++ b/docs/ru/tools/pdf-to-pdfa.md
@@ -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 - стандартизированное ISO подмножество PDF, созданное для долговременного хранения цифровых документов. Инструмент преобразует обычные PDF в документы, соответствующие PDF/A, с помощью Ghostscript, который работает прямо в вашем браузере.
+
+## Как это работает
+
+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): уменьшите размер файла после конвертации
+- [Сведение документа](./flatten-pdf): сведите формы перед преобразованием в PDF/A
+- [Удаление метаданных](./remove-metadata): удалите метаданные перед архивированием
diff --git a/docs/ru/tools/pdf-to-png.md b/docs/ru/tools/pdf-to-png.md
new file mode 100644
index 00000000..9d8b4e7c
--- /dev/null
+++ b/docs/ru/tools/pdf-to-png.md
@@ -0,0 +1,42 @@
+---
+title: PDF в PNG
+description: Конвертируйте страницы PDF в изображения PNG без потерь с настройкой масштаба. Подходит для качественных скриншотов и прозрачных фонов.
+---
+
+# PDF в PNG
+
+Преобразует каждую страницу PDF в изображение PNG. PNG использует сжатие без потерь, поэтому результат сохраняет все детали исходной страницы. Одностраничные PDF скачиваются как файл `.png`, многостраничные дают 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)
diff --git a/docs/ru/tools/pdf-to-svg.md b/docs/ru/tools/pdf-to-svg.md
new file mode 100644
index 00000000..992f0f5d
--- /dev/null
+++ b/docs/ru/tools/pdf-to-svg.md
@@ -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-архив.
+
+## Параметры
+
+Настраиваемых параметров нет. Каждая страница преобразуется в SVG встроенным векторным экспортом PyMuPDF.
+
+## Формат результата
+
+- **Один файл, одна страница**: `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)
diff --git a/docs/ru/tools/pdf-to-text.md b/docs/ru/tools/pdf-to-text.md
new file mode 100644
index 00000000..dcc9a6f3
--- /dev/null
+++ b/docs/ru/tools/pdf-to-text.md
@@ -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)
diff --git a/docs/ru/tools/pdf-to-tiff.md b/docs/ru/tools/pdf-to-tiff.md
new file mode 100644
index 00000000..097d40ed
--- /dev/null
+++ b/docs/ru/tools/pdf-to-tiff.md
@@ -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).
+- Проверьте содержимое ZIP, если для некоторых страниц понадобился запасной PNG: возможно, их стоит сконвертировать отдельно.
+
+## Связанные инструменты
+
+- [PDF в PNG](./pdf-to-png)
+- [PDF в BMP](./pdf-to-bmp)
+- [PDF в JPG](./pdf-to-jpg)
diff --git a/docs/ru/tools/pdf-to-webp.md b/docs/ru/tools/pdf-to-webp.md
new file mode 100644
index 00000000..085c3c2c
--- /dev/null
+++ b/docs/ru/tools/pdf-to-webp.md
@@ -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)
diff --git a/docs/ru/tools/pdf-to-word.md b/docs/ru/tools/pdf-to-word.md
new file mode 100644
index 00000000..64d74088
--- /dev/null
+++ b/docs/ru/tools/pdf-to-word.md
@@ -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 преобразуется в DOCX встроенным движком конвертации PyMuPDF.
+
+## Формат результата
+
+- **Один файл**: `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)
diff --git a/docs/ru/tools/pdf-to-zip.md b/docs/ru/tools/pdf-to-zip.md
new file mode 100644
index 00000000..8ff13e0a
--- /dev/null
+++ b/docs/ru/tools/pdf-to-zip.md
@@ -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)
diff --git a/docs/ru/tools/pdf-workflow.md b/docs/ru/tools/pdf-workflow.md
new file mode 100644
index 00000000..64a838f0
--- /dev/null
+++ b/docs/ru/tools/pdf-workflow.md
@@ -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.
+- **Оптимизация и восстановление** (янтарный): Сжатие PDF, Растеризация документа, Линеаризация документа, Выпрямление PDF, PDF в PDF/A, Шрифты в кривые, Восстановление документа.
+- **Защита 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** в узле Распознавание текста в PDF
+
+## Сценарии использования
+
+- **Конвейер обработки счетов**: PDF-вход -> Распознавание текста в PDF -> Извлечение таблиц из PDF -> Скачать в формате CSV.
+- **Стандартизация отчётов**: Word в 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)
diff --git a/docs/ru/tools/png-to-pdf.md b/docs/ru/tools/png-to-pdf.md
new file mode 100644
index 00000000..1cef0ea7
--- /dev/null
+++ b/docs/ru/tools/png-to-pdf.md
@@ -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)
diff --git a/docs/ru/tools/posterize-pdf.md b/docs/ru/tools/posterize-pdf.md
new file mode 100644
index 00000000..06180c17
--- /dev/null
+++ b/docs/ru/tools/posterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Постеризация документа
+description: Разделение страниц PDF на сетку из более мелких страниц для печати крупного формата на нескольких листах.
+---
+
+# Постеризация документа
+
+Разделите каждую страницу PDF на сетку из более мелких страниц. Этот инструмент нужен, чтобы напечатать одну страницу на нескольких листах бумаги, а затем склеить их в большой плакат или баннер.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Задайте количество **строк** и **столбцов**, определяющих сетку (например, 2 строки x 2 столбца делят каждую страницу на 4 части).
+3. При желании укажите диапазон страниц, чтобы постеризировать только их.
+4. На холсте предпросмотра поверх текущей страницы показана сетка, так что линии разреза видны заранее.
+5. Переключайтесь между страницами, чтобы проверить сетку на разных страницах.
+6. Нажмите кнопку обработки. Каждая ячейка сетки станет отдельной страницей итогового PDF.
+
+## Возможности
+
+- Настраиваемое число строк и столбцов для сетки любого размера
+- Живой предпросмотр с сеткой, показывающей, где именно страницы будут разделены
+- Фильтр по диапазону страниц, чтобы постеризировать только нужные
+- Постраничная навигация в предпросмотре
+- Кэширование снимков страниц для быстрой навигации
+- Красные пунктирные линии сетки отчётливо обозначают границы разреза
+
+## Параметры
+
+| Параметр | Описание |
+| -------------------- | ----------------------------------------------------- |
+| **Строки** | Число горизонтальных делений (по умолчанию: 1) |
+| **Столбцы** | Число вертикальных делений (по умолчанию: 1) |
+| **Диапазон страниц** | Какие страницы постеризировать (пусто = все страницы) |
+
+## Сценарии использования
+
+- Печать PDF размером с плакат на стандартных листах A4 или Letter для сборки на стене
+- Создание больших баннеров из одностраничного PDF-макета
+- Разделение крупных технических чертежей на печатаемые фрагменты
+- Печать в большом формате без доступа к широкоформатному принтеру
+
+## Советы
+
+- Сетка 2x2 превращает одну страницу в 4, а сетка 3x3 в 9. Выбирайте сетку исходя из того, насколько большим должен получиться собранный результат.
+- Предпросмотр помогает убедиться, что важное содержимое не попадает на линию разреза. При необходимости измените число строк и столбцов.
+- Для обратной операции (размещение нескольких страниц на одном листе) используйте [N-Up PDF](./n-up-pdf).
+
+## Связанные инструменты
+
+- [N-Up PDF](./n-up-pdf)
+- [Разделение страниц](./divide-pages)
+- [Разделение PDF](./split-pdf)
diff --git a/docs/ru/tools/powerpoint-to-pdf.md b/docs/ru/tools/powerpoint-to-pdf.md
new file mode 100644
index 00000000..8bd4a5f8
--- /dev/null
+++ b/docs/ru/tools/powerpoint-to-pdf.md
@@ -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`.
+
+## Параметры
+
+У этого инструмента нет дополнительных настроек. Слайды отображаются в исходных размерах.
+
+## Результат
+
+| Количество файлов | Результат |
+| :---------------- | :----------------------------------------------------------------------- |
+| 1 файл | Один PDF (исходное имя файла с расширением `.pdf`) |
+| 2 и более | 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)
diff --git a/docs/ru/tools/prepare-pdf-for-ai.md b/docs/ru/tools/prepare-pdf-for-ai.md
new file mode 100644
index 00000000..21008ce2
--- /dev/null
+++ b/docs/ru/tools/prepare-pdf-for-ai.md
@@ -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 результат будет пустым или минимальным. Сначала пропустите их через распознавание текста, чтобы добавить текстовый слой.
+
+## Связанные инструменты
+
+- [PDF в текст](./pdf-to-text)
+- [PDF в Markdown](./pdf-to-markdown)
+- [PDF в JSON](./pdf-to-json)
diff --git a/docs/ru/tools/protect-pdf.md b/docs/ru/tools/protect-pdf.md
new file mode 100644
index 00000000..8ea0ab55
--- /dev/null
+++ b/docs/ru/tools/protect-pdf.md
@@ -0,0 +1,64 @@
+---
+title: Защита PDF
+description: Защитите PDF-файлы паролем с 256-битным шифрованием AES. Задайте пароли пользователя и владельца с настраиваемыми ограничениями.
+---
+
+# Защита PDF
+
+Закройте PDF паролем, чтобы открыть его могли только нужные люди. BentoPDF использует 256-битное шифрование AES, тот же стандарт, что применяют банки и госструктуры, и выполняет его целиком в вашем браузере через QPDF.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Введите **Пароль пользователя** (обязательно). Этот пароль потребуется, чтобы открыть файл.
+3. При желании введите **Пароль владельца**. Если он задан, на PDF накладываются ограничения: нельзя печатать, редактировать, копировать и аннотировать.
+4. Нажмите **Шифрование документа**.
+5. Скачайте зашифрованный файл.
+
+## Типы паролей
+
+### Пароль пользователя (обязательный)
+
+Пароль пользователя вводят получатели, чтобы открыть PDF. Без него документ полностью недоступен. У каждого зашифрованного PDF он должен быть.
+
+### Пароль владельца (необязательный)
+
+Пароль владельца определяет, что может делать авторизованный пользователь после открытия файла. Если вы задаёте отдельный пароль владельца, BentoPDF автоматически применяет самый строгий набор ограничений:
+
+- Изменение запрещено
+- Извлечение и копирование запрещены
+- Печать запрещена
+- Аннотирование запрещено
+- Заполнение форм запрещено
+- Сборка документа запрещена
+
+Если оставить пароль владельца пустым, PDF будет зашифрован (для открытия по-прежнему нужен пароль пользователя), но после открытия никаких ограничений не будет.
+
+## Подробности шифрования
+
+- **Алгоритм**: AES-256 (256-битный Advanced Encryption Standard)
+- **Длина ключа**: 256 бит
+- **Стандарт**: шифрование PDF 2.0 (реализация QPDF)
+
+Подобрать ключ AES-256 перебором на современных технологиях вычислительно невозможно. Защищённость зашифрованного PDF целиком зависит от надёжности пароля.
+
+## Сценарии использования
+
+- Защита конфиденциальных финансовых отчётов перед отправкой по почте
+- Защита юридических документов, передаваемых противной стороне
+- Установка пароля на медицинские записи и персональные данные
+- Распространение платного контента (электронные книги, отчёты) с контролем доступа
+- Соблюдение политик защиты данных, требующих шифрования при хранении
+
+## Советы
+
+- Используйте надёжный уникальный пароль. Идеальна парольная фраза от 12 символов с разным регистром, цифрами и символами.
+- Передавайте пароль отдельным каналом (звонок, SMS), а не в том же письме, что и PDF.
+- Если нужно только ограничить действия (без печати и копирования), не требуя пароля для открытия, используйте инструмент «Изменение разрешений».
+
+## Связанные инструменты
+
+- [Разблокировка PDF](./unlock-pdf): снять шифрование, если вы знаете пароль
+- [Изменение разрешений](./change-permissions): изменить отдельные ограничения использования
+- [Снятие ограничений](./remove-restrictions): удалить из PDF всю защиту
+- [Санирование документа](./sanitize-pdf): удалить скрытое содержимое перед шифрованием
diff --git a/docs/ru/tools/psd-to-pdf.md b/docs/ru/tools/psd-to-pdf.md
new file mode 100644
index 00000000..c1aadccf
--- /dev/null
+++ b/docs/ru/tools/psd-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: PSD в PDF
+description: Преобразуйте файлы Photoshop (PSD) в PDF прямо в браузере. Бесплатно, приватно, без программ Adobe.
+---
+
+# PSD в PDF
+
+Преобразуйте файлы Adobe Photoshop PSD в 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-файлы очень высокого разрешения (печатные файлы 300+ DPI) дадут большие PDF. Инструмент сохраняет полное разрешение.
+
+## Связанные инструменты
+
+- [Изображения в PDF](./image-to-pdf)
+- [PNG в PDF](./png-to-pdf)
+- [VSD в PDF](./vsd-to-pdf)
diff --git a/docs/ru/tools/pub-to-pdf.md b/docs/ru/tools/pub-to-pdf.md
new file mode 100644
index 00000000..15dbd928
--- /dev/null
+++ b/docs/ru/tools/pub-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: PUB в PDF
+description: Преобразуйте файлы Microsoft Publisher (PUB) в PDF прямо в браузере. Бесплатно, приватно, без установки программ.
+---
+
+# PUB в PDF
+
+Преобразуйте файлы Microsoft Publisher в PDF. Publisher это программа для настольной вёрстки, входящая в некоторые версии Microsoft Office, но у большинства людей она не установлена. Этот инструмент позволяет любому преобразовать PUB в PDF прямо в браузере, без программ Microsoft.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :------------------ | :--------- | :--------------------------- |
+| Microsoft Publisher | `.pub` | Документы настольной вёрстки |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите в неё PUB-файлы. Можно загрузить сразу несколько файлов.
+2. Просмотрите список файлов. Удалите лишние значком корзины или нажмите **Добавить еще файлы**, чтобы добавить новые.
+3. Нажмите **Преобразовать в PDF**. В браузере загружается движок на основе LibreOffice и преобразует каждый PUB-файл, сохраняя макет, изображения и текстовые блоки.
+4. Один файл скачивается сразу как PDF. Несколько файлов доставляются в ZIP-архиве `pub-to-pdf.zip`.
+
+## Параметры
+
+Дополнительная настройка не нужна. Конвертер сам обрабатывает макет PUB.
+
+## Сценарии использования
+
+- Открытие PUB-флаеров и бюллетеней от клиента без покупки Microsoft Publisher
+- Преобразование церковных бюллетеней, программ мероприятий и школьных газет, созданных в Publisher
+- Архивирование маркетинговых материалов из Publisher в универсально доступном формате
+- Печать PUB-файлов на системе, где Publisher не установлен
+
+## Советы
+
+- Сложные макеты Publisher с наложенными текстовыми блоками и точным позиционированием при преобразовании могут слегка сместиться. Если точность важна, проверьте результат.
+- Движок LibreOffice инициализируется один раз за сессию. Первое преобразование занимает больше времени, последующие быстрее.
+- Для наиболее точного преобразования убедитесь, что пользовательские шрифты из оригинала являются стандартными системными шрифтами.
+
+## Связанные инструменты
+
+- [VSD в PDF](./vsd-to-pdf)
+- [ODP в PDF](./odp-to-pdf)
diff --git a/docs/ru/tools/rasterize-pdf.md b/docs/ru/tools/rasterize-pdf.md
new file mode 100644
index 00000000..872f5470
--- /dev/null
+++ b/docs/ru/tools/rasterize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Растеризация документа
+description: Преобразуйте страницы PDF в PDF из изображений. Сведите все слои, уберите выделяемый текст и управляйте DPI и форматом изображения.
+---
+
+# Растеризация документа
+
+Растеризация превращает каждую страницу PDF в изображение и собирает эти изображения обратно в PDF. Результат выглядит так же, как оригинал, но в нём нет выделяемого текста, интерактивных элементов и редактируемых слоёв. По сути, это качественная фотокопия.
+
+## Как это работает
+
+1. Загрузите один или несколько PDF-файлов.
+2. Задайте **DPI** (разрешение) растеризованного результата.
+3. Выберите **Формат изображения**: PNG для качества без потерь или JPEG для файлов меньшего размера.
+4. При желании включите **Преобразовать в оттенки серого**.
+5. Нажмите **Растеризация документа**. Несколько файлов скачиваются в ZIP.
+
+## Параметры
+
+| Настройка | Значения | По умолчанию |
+| ---------------------- | -------------------------------------- | ------------ |
+| **DPI** | 72, 150, 200, 300, 600 | 150 |
+| **Формат изображения** | PNG (без потерь), JPEG (меньше размер) | PNG |
+| **Градации серого** | Вкл/Выкл | Выкл |
+
+## Рекомендации по DPI
+
+- **72**: только просмотр на экране, наименьший размер файла
+- **150**: хороший баланс для общего использования
+- **200**: более чёткий текст, умеренный размер файла
+- **300**: качество для печати
+- **600**: высокое качество для архива или профессиональной печати
+
+## Сценарии использования
+
+- Защита конфиденциальных документов от извлечения текста перед отправкой
+- Устранение проблем с зависимостью от шрифтов путём превращения текста в пиксели
+- Создание «плоской» версии PDF со сложными слоями или прозрачностью, которая по-разному отображается в разных программах просмотра
+- Подготовка PDF для системы, принимающей только изображения
+- Удаление скрытого содержимого (например, исправлений или данных форм) путём сведения PDF к чистым изображениям
+
+## Советы
+
+- 150 DPI и PNG это надёжный вариант по умолчанию. Повышайте разрешение, только если нужна печать или вам нужно приближать мелкие детали.
+- JPEG даёт заметно меньшие файлы, но добавляет артефакты сжатия на резких краях текста.
+- Растеризация необратима: сохраните исходный PDF, если позже понадобится редактируемый текст.
+
+## Связанные инструменты
+
+- [Сжатие PDF](./compress-pdf): уменьшить размер растеризованного PDF
+- [Выпрямление PDF](./deskew-pdf): выровнять страницы перед растеризацией отсканированных документов
+- [Шрифты в кривые](./font-to-outline): преобразовать шрифты в векторные контуры, если нужна масштабируемость
+- [Сведение документа](./flatten-pdf): свести формы без преобразования в изображения
diff --git a/docs/ru/tools/remove-annotations.md b/docs/ru/tools/remove-annotations.md
new file mode 100644
index 00000000..32dfea63
--- /dev/null
+++ b/docs/ru/tools/remove-annotations.md
@@ -0,0 +1,42 @@
+---
+title: Удаление аннотаций
+description: Удалите из PDF все комментарии, выделения, ссылки и другие аннотации одним щелчком.
+---
+
+# Удаление аннотаций
+
+Очистите PDF, удалив все аннотации: комментарии, выделения, стикеры, разметку текста, ссылки, штампы и любые другие объекты аннотаций в документе. Основное содержимое страниц (текст, изображения, графика) остаётся нетронутым.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Инструмент определяет число страниц документа и показывает сведения о файле.
+3. Нажмите **Удаление аннотаций** для обработки.
+4. Очищенный PDF скачивается автоматически, все аннотации удалены.
+
+## Возможности
+
+- Удаляет аннотации всех типов: комментарии, выделения, подчёркивания, зачёркивания, стикеры, штампы, ссылки и разметку форм
+- Обрабатывает каждую страницу документа
+- Сохраняет всё содержимое, не являющееся аннотациями (текст, изображения, векторную графику, поля форм)
+- Показывает число страниц и размер файла перед обработкой
+
+## Сценарии использования
+
+- Очистка документа перед окончательной рассылкой после рецензирования, в котором несколько рецензентов оставили комментарии
+- Удаление выделений и стикеров из общего учебного пособия
+- Удаление ссылок из документа перед архивированием
+- Подготовка «чистой» версии юридического документа, который активно размечали при согласовании
+- Удаление комментариев рецензентов из рукописи перед отправкой в печать
+
+## Советы
+
+- Инструмент удаляет аннотации на уровне структуры PDF, поэтому текст остаётся выделяемым, а качество исходным, без растеризации.
+- Если нужно удалить только отдельные аннотации, а не все, используйте [Редактор PDF](./edit-pdf) для выборочного удаления.
+- Аннотации в сведённых PDF (где они объединены с содержимым страницы) удалить нельзя, так как они уже не являются отдельными объектами.
+
+## Связанные инструменты
+
+- [Редактор PDF](./edit-pdf)
+- [Добавление водяных знаков](./add-watermark)
+- [Подписание PDF](./sign-pdf)
diff --git a/docs/ru/tools/remove-blank-pages.md b/docs/ru/tools/remove-blank-pages.md
new file mode 100644
index 00000000..f5f996c6
--- /dev/null
+++ b/docs/ru/tools/remove-blank-pages.md
@@ -0,0 +1,49 @@
+---
+title: Удаление пустых страниц
+description: Автоматически находите и удаляйте пустые и почти пустые страницы в PDF с настраиваемой чувствительностью.
+---
+
+# Удаление пустых страниц
+
+Просканируйте PDF на пустые и почти пустые страницы и удалите их автоматически. Инструмент отрисовывает каждую страницу и анализирует её пиксели, чтобы определить, пуста ли она, а затем позволяет подтвердить, какие страницы удалить.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Настройте ползунок **Чувствительность**, определяющий, насколько строго понимается «пустая» страница.
+3. Нажмите **Найти пустые страницы**, чтобы просканировать документ.
+4. Инструмент покажет миниатюры найденных пустых страниц для проверки.
+5. Подтвердите выбор и скачайте очищенный PDF без пустых страниц.
+
+## Параметры
+
+- **Чувствительность**: ползунок от 0% до 100% (по умолчанию 80%). Высокие значения строже и отмечают только полностью или почти белые страницы. Низкие значения мягче и находят страницы с минимальным содержимым, например с одной точкой или бледным водяным знаком.
+
+## Возможности
+
+- Попиксельный анализ каждой страницы для выявления пустого содержимого
+- Настраиваемый ползунок чувствительности для тонкой подстройки
+- Миниатюры найденных пустых страниц для ручной проверки
+- Все непустые страницы сохраняются без изменений
+- Работает с документами любого размера и числа страниц
+- Индикатор хода сканирования
+
+## Сценарии использования
+
+- Очистка отсканированных документов, в которых сканер захватил пустые оборотные стороны односторонних оригиналов
+- Удаление разделительных страниц из пакетов сканирования
+- Удаление пустых страниц, добавленных системами управления документами
+- Очистка PDF, экспортированных из текстовых редакторов, которые иногда добавляют пустые страницы в конце
+- Уменьшение размера файла за счёт удаления ненужных пустых страниц
+
+## Советы
+
+- Начните с чувствительности по умолчанию 80% и корректируйте от неё. Если инструмент пропускает страницы, которые вам кажутся пустыми, снизьте чувствительность. Если он отмечает страницы с лёгким содержимым, которое нужно сохранить, повысьте её.
+- Инструмент отрисовывает каждую страницу для анализа, поэтому время обработки растёт с числом страниц. Для очень больших документов придётся немного подождать.
+- Проверьте найденные пустые страницы в миниатюрах перед подтверждением удаления. Страницы с бледными колонтитулами или водяными знаками могут быть отмечены в зависимости от чувствительности.
+
+## Связанные инструменты
+
+- [Обрезка PDF](./crop-pdf)
+- [Редактор PDF](./edit-pdf)
+- [Нумерация страниц](./page-numbers)
diff --git a/docs/ru/tools/remove-metadata.md b/docs/ru/tools/remove-metadata.md
new file mode 100644
index 00000000..bf3c0821
--- /dev/null
+++ b/docs/ru/tools/remove-metadata.md
@@ -0,0 +1,50 @@
+---
+title: Удаление метаданных
+description: 'Удалите из PDF-файлов все скрытые метаданные: автора, название, дату создания, производителя, данные XMP и идентификаторы документа.'
+---
+
+# Удаление метаданных
+
+Каждый PDF содержит метаданные, которые могут раскрыть, кто его создал, какая программа использовалась, когда он последний раз изменялся и многое другое. Этот инструмент удаляет всё: словарь информации, потоки метаданных XMP, идентификаторы документа и данные конкретных приложений, оставляя чистый документ без следов происхождения.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Нажмите **Удаление метаданных**.
+3. Скачайте очищенный файл.
+
+Настраивать ничего не нужно. Инструмент сделан тщательным намеренно: он очищает всё.
+
+## Что удаляется
+
+- **Поля словаря информации**: название, автор, тема, ключевые слова, создатель, производитель, дата создания, дата изменения
+- **Поток метаданных XMP**: блок метаданных на основе XML, хранящийся в каталоге документа
+- **Идентификаторы документа**: уникальные идентификаторы в трейлере PDF, по которым документ можно отслеживать между системами
+- **PieceInfo**: метаданные конкретных приложений, добавляемые такими программами, как Illustrator или InDesign
+
+## Что остаётся
+
+- Всё видимое содержимое страниц (текст, изображения, графика)
+- Поля форм и аннотации
+- Закладки и ссылки
+- Сама структура документа
+
+## Сценарии использования
+
+- Удаление вашего имени и организации из документа перед анонимной публикацией
+- Удаление меток времени создания, которые показывают, когда документ готовился
+- Очистка строк производителя, по которым определяется ваш набор PDF-программ
+- Подготовка документов для регуляторных подач, требующих PDF без метаданных
+- Удаление следов истории правок перед отправкой документа вовне
+
+## Советы
+
+- Сначала воспользуйтесь инструментом «Просмотр метаданных», чтобы увидеть, какие именно метаданные содержит ваш PDF.
+- Если нужно удалить метаданные _и_ JavaScript, аннотации и встроенные файлы, используйте «Санирование документа» для более тщательной очистки.
+- Удаление метаданных необратимо. Сохраните оригинал, если эти данные могут понадобиться позже.
+
+## Связанные инструменты
+
+- [Санирование документа](./sanitize-pdf): удалить метаданные, а также скрипты, вложения и другое
+- [Защита PDF](./protect-pdf): защитить очищенный PDF паролем
+- [Сжатие PDF](./compress-pdf): удаление метаданных немного уменьшает размер файла, а сжатие даёт больше экономии
diff --git a/docs/ru/tools/remove-restrictions.md b/docs/ru/tools/remove-restrictions.md
new file mode 100644
index 00000000..94350cf9
--- /dev/null
+++ b/docs/ru/tools/remove-restrictions.md
@@ -0,0 +1,45 @@
+---
+title: Снятие ограничений
+description: Снимайте защиту паролем, запреты на печать, блокировку редактирования и ограничения копирования с PDF-файлов.
+---
+
+# Снятие ограничений
+
+PDF может иметь два типа паролей: пароль пользователя (нужен, чтобы открыть файл) и пароль владельца (определяет, что можно с ним делать). Этот инструмент убирает оба, вместе со всеми связанными ограничениями: запретами на печать, редактирование, копирование и аннотирование.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Если у PDF есть пароль владельца, введите его в поле **Пароль владельца**. Оставьте поле пустым, если у PDF только ограничения использования без пароля.
+3. Нажмите **Снятие ограничений**.
+4. Скачайте PDF без ограничений.
+
+Инструмент использует флаги QPDF `--decrypt` и `--remove-restrictions`, чтобы получить чистую копию без ограничений.
+
+## Что удаляется
+
+- Защита паролем (и пароль пользователя, и пароль владельца)
+- Ограничения печати
+- Ограничения редактирования
+- Ограничения копирования текста и изображений
+- Ограничения аннотирования и комментирования
+- Все прочие ограничения безопасности, закодированные в PDF
+
+## Сценарии использования
+
+- Разблокировка PDF, который принадлежит вам, но пароль к которому вы задали много лет назад
+- Снятие запрета на печать с документа, к которому у вас законный доступ
+- Включение копирования и вставки в справочных материалах для конспектирования
+- Подготовка PDF для средств доступности, не работающих с документами с ограничениями
+
+## Советы
+
+- Если пароль владельца задан, его нужно знать. Инструмент не взламывает и не подбирает пароли.
+- Если нужно оставить файл зашифрованным, но изменить отдельные разрешения, используйте инструмент «Изменение разрешений».
+- В итоговом файле шифрования нет совсем: любой, кто его получит, сможет свободно его открыть.
+
+## Связанные инструменты
+
+- [Разблокировка PDF](./unlock-pdf): разблокировать PDF, если вы знаете пароль пользователя
+- [Защита PDF](./protect-pdf): снова применить шифрование с новыми настройками
+- [Изменение разрешений](./change-permissions): выборочно менять, какие действия разрешены
diff --git a/docs/ru/tools/repair-pdf.md b/docs/ru/tools/repair-pdf.md
new file mode 100644
index 00000000..fedfb4dc
--- /dev/null
+++ b/docs/ru/tools/repair-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Восстановление документа
+description: Восстановление данных из повреждённых PDF-файлов с помощью движка восстановления QPDF. Поддерживает пакетную обработку.
+---
+
+# Восстановление документа
+
+Если PDF не открывается, показывает искажённое содержимое или вызывает ошибки в программе просмотра, этот инструмент пытается перестроить его внутреннюю структуру. Он использует движок восстановления QPDF, который умеет исправлять многие виды повреждений: сломанные таблицы перекрёстных ссылок, обрезанные потоки, недопустимые ссылки на объекты и другие.
+
+## Как это работает
+
+1. Загрузите один или несколько повреждённых PDF-файлов.
+2. Нажмите **Восстановление документа**.
+3. Один восстановленный файл скачивается сразу. Несколько файлов дают ZIP-архив.
+
+Инструмент пропускает каждый файл через QPDF с флагом `--decrypt`, что заставляет QPDF прочитать и полностью переписать структуру PDF, исправляя по пути все устранимые проблемы.
+
+## Возможности
+
+- Пакетное восстановление нескольких PDF за одну операцию
+- Автоматическое определение восстановимых и невосстановимых файлов
+- Отчёт об успехе или неудаче по каждому файлу при обработке нескольких файлов
+- Использует QPDF (WebAssembly), проверенную временем библиотеку преобразования PDF
+
+## Что можно исправить
+
+- Сломанные или отсутствующие таблицы перекрёстных ссылок
+- Обрезанные концы файлов из-за неполной загрузки
+- Неверную нумерацию объектов и длины потоков
+- Мелкие структурные несоответствия от ошибочных генераторов PDF
+- Артефакты шифрования после неудачных попыток расшифровки
+
+## Что исправить нельзя
+
+- Сильно обрезанные файлы, у которых отсутствует большая часть данных
+- PDF, зашифрованные паролем, которого у вас нет
+- Файлы, которые на самом деле не PDF (неверное расширение)
+- Повреждение изображений внутри PDF (структура исправляется, но пиксельные данные не воссоздаются)
+
+## Сценарии использования
+
+- Восстановление PDF после неудачной загрузки из почты
+- Открытие файлов, созданных устаревшими или нестандартными генераторами PDF
+- Исправление PDF, которые работают в одной программе просмотра, но не в другой
+- Подготовка повреждённых архивных документов к долгосрочному хранению
+
+## Советы
+
+- Если восстановление не удалось, попробуйте сначала открыть файл в браузере: у браузеров своя логика восстановления, и они могут отобразить достаточно содержимого, чтобы пересохранить файл.
+- Если зашифрованный PDF не удаётся восстановить, сначала примените «Разблокировка PDF», а затем восстановите расшифрованный результат.
+
+## Связанные инструменты
+
+- [Сжатие PDF](./compress-pdf): дополнительно очистить структуру восстановленного PDF
+- [Линеаризация документа](./linearize-pdf): оптимизировать восстановленный файл для веба
+- [Сведение документа](./flatten-pdf): свести формы, которые могли быть повреждены
diff --git a/docs/ru/tools/reverse-pages.md b/docs/ru/tools/reverse-pages.md
new file mode 100644
index 00000000..f2e3c1d7
--- /dev/null
+++ b/docs/ru/tools/reverse-pages.md
@@ -0,0 +1,40 @@
+---
+title: Обращение порядка страниц
+description: Переверните порядок страниц одного или нескольких PDF-файлов, чтобы последняя страница стала первой.
+---
+
+# Обращение порядка страниц
+
+Переверните порядок страниц PDF: последняя страница станет первой, предпоследняя второй и так далее. Поддерживается пакетная обработка нескольких файлов сразу.
+
+## Как это работает
+
+1. Загрузите один или несколько PDF-файлов.
+2. Нажмите кнопку обработки.
+3. Каждый файл обращается независимо. Если вы загрузили несколько файлов, результатом будет ZIP-архив со всеми обращёнными PDF.
+4. Один файл скачивается сразу как PDF с обращённым порядком страниц.
+
+## Возможности
+
+- Пакетная обработка: обращение нескольких PDF за одну операцию
+- Один PDF на выходе для одного файла, ZIP для нескольких
+- Кнопки удаления отдельных файлов перед обработкой
+- Всё содержимое страниц и форматирование сохраняются
+
+## Сценарии использования
+
+- Исправление документа, отсканированного в обратном порядке
+- Подготовка PDF-презентации для чтения с конца к началу
+- Обращение порядка страниц для печати, при которой страницы подаются в обратном порядке
+- Исправление документа, страницы которого случайно собрали задом наперёд
+
+## Советы
+
+- Каждый файл в пакете обращается независимо: сами файлы относительно друг друга не переставляются.
+- Для более гибкой перестановки страниц (не только полного обращения) используйте [Дублирование и организация](./organize-pdf).
+
+## Связанные инструменты
+
+- [Дублирование и организация](./organize-pdf)
+- [Поворот PDF](./rotate-pdf)
+- [PDF мультиинструмент](./pdf-multi-tool)
diff --git a/docs/ru/tools/rotate-custom.md b/docs/ru/tools/rotate-custom.md
new file mode 100644
index 00000000..55321fdf
--- /dev/null
+++ b/docs/ru/tools/rotate-custom.md
@@ -0,0 +1,43 @@
+---
+title: Поворот на заданное количество градусов
+description: Поворачивайте страницы PDF на любой угол с отдельным полем ввода градусов для каждой страницы и пакетным управлением.
+---
+
+# Поворот на заданное количество градусов
+
+Поворачивайте страницы PDF на произвольный угол, а не только кратный 90 градусам. У каждой страницы своё поле ввода угла, а с помощью пакетного элемента управления можно применить один угол сразу ко всем страницам.
+
+## Как это работает
+
+1. Загрузите PDF-файл. Для каждой страницы отображаются миниатюры.
+2. У каждой страницы есть числовое поле с текущим углом поворота.
+3. Введите любое значение в градусах (положительное или отрицательное), чтобы повернуть конкретную страницу, или используйте кнопки влево и вправо у каждой страницы для быстрых поворотов на 90 градусов.
+4. С помощью поля **пакетного угла** вверху задайте одинаковый поворот для всех страниц.
+5. Нажмите кнопку обработки, чтобы создать повёрнутый PDF.
+
+## Возможности
+
+- Свободный ввод градусов для каждой страницы (любое целое число)
+- Пакетное управление углом для одинакового поворота всех страниц
+- Предпросмотр поворота в миниатюрах в реальном времени
+- Кнопки быстрого поворота страницы с шагом 90 градусов
+- Отложенная загрузка миниатюр для быстрой работы с большими документами
+
+## Сценарии использования
+
+- Исправление слегка наклонённых сканов на несколько градусов
+- Поворот страниц под нестандартные требования к ориентации
+- Точные повороты отдельных страниц в документе со смешанным содержимым
+- Тонкая подстройка углов страниц после первоначального массового поворота
+
+## Советы
+
+- Положительные значения поворачивают по часовой стрелке, отрицательные против часовой.
+- Поле пакетного угла при применении перезаписывает углы всех страниц. При необходимости задавайте индивидуальные поправки после пакетной операции.
+- Для стандартных поворотов на 90, 180 и 270 градусов с более простым интерфейсом используйте [Поворот PDF](./rotate-pdf).
+
+## Связанные инструменты
+
+- [Поворот PDF](./rotate-pdf)
+- [PDF мультиинструмент](./pdf-multi-tool)
+- [Дублирование и организация](./organize-pdf)
diff --git a/docs/ru/tools/rotate-pdf.md b/docs/ru/tools/rotate-pdf.md
new file mode 100644
index 00000000..5afba587
--- /dev/null
+++ b/docs/ru/tools/rotate-pdf.md
@@ -0,0 +1,43 @@
+---
+title: Поворот PDF
+description: Поворачивайте отдельные или все страницы PDF с шагом 90 градусов в наглядном интерфейсе с миниатюрами.
+---
+
+# Поворот PDF
+
+Поворачивайте страницы PDF на 90 градусов по часовой стрелке или против неё. Инструмент показывает миниатюры всех страниц, позволяя поворачивать их по отдельности или сразу весь документ.
+
+## Как это работает
+
+1. Загрузите PDF-файл. Миниатюры всех страниц отображаются сеткой.
+2. Кнопками поворота влево и вправо под миниатюрой повернёте именно эту страницу.
+3. Элементами пакетного поворота вверху поверните все страницы сразу.
+4. Предпросмотр миниатюр обновляется в реальном времени и показывает поворот.
+5. Нажмите кнопку обработки, чтобы сохранить повёрнутый PDF.
+
+## Возможности
+
+- Поворот отдельных страниц с шагом 90 градусов (влево или вправо)
+- Пакетный поворот всех страниц одновременно
+- Предпросмотр миниатюр в реальном времени с анимацией поворота
+- Отложенная загрузка миниатюр для плавной работы с большими документами
+- Исходное содержимое и качество страниц сохраняются
+
+## Сценарии использования
+
+- Исправление отсканированных страниц, лежащих боком или вверх ногами
+- Поворот альбомных страниц в книжную ориентацию (или наоборот)
+- Исправление документа со смешанной ориентацией, где часть страниц отсканирована под неверным углом
+- Подготовка документа к определённой ориентации отображения
+
+## Советы
+
+- Повороты накапливаются. Двойной щелчок по кнопке по часовой стрелке даёт поворот на 180 градусов.
+- Для поворотов не на 90 градусов (например, на 45 градусов, чтобы выровнять слегка наклонённый скан) используйте [Поворот на заданное количество градусов](./rotate-custom).
+- Элементы пакетного поворота действуют на все страницы, а не только на выбранные. Выбора страниц в этом инструменте нет: для этого используйте [PDF мультиинструмент](./pdf-multi-tool).
+
+## Связанные инструменты
+
+- [Поворот на заданное количество градусов](./rotate-custom)
+- [PDF мультиинструмент](./pdf-multi-tool)
+- [Дублирование и организация](./organize-pdf)
diff --git a/docs/ru/tools/rtf-to-pdf.md b/docs/ru/tools/rtf-to-pdf.md
new file mode 100644
index 00000000..586a99dc
--- /dev/null
+++ b/docs/ru/tools/rtf-to-pdf.md
@@ -0,0 +1,51 @@
+---
+title: RTF в PDF
+description: Преобразуйте файлы Rich Text Format (RTF) в PDF в браузере с помощью движка на основе LibreOffice.
+---
+
+# RTF в PDF
+
+Преобразуйте документы Rich Text Format в PDF. RTF это кроссплатформенный формат документов, который поддерживает практически любой текстовый редактор. Инструмент использует LibreOffice, работающий в браузере, и отображает RTF-файлы с сохранением форматирования: полужирный и курсивный шрифт, таблицы и встроенные изображения переносятся в PDF.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения | Типы MIME |
+| :----- | :--------- | :---------------------------- |
+| RTF | `.rtf` | `text/rtf`, `application/rtf` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите в неё один или несколько RTF-файлов.
+2. Просмотрите список файлов. Добавьте ещё или удалите лишние.
+3. Нажмите **Конвертировать в PDF**. При первом использовании инициализируется движок LibreOffice, затем обрабатывается каждый файл.
+4. Один файл скачивается сразу как PDF. Несколько файлов доставляются как `rtf-converted.zip`.
+
+## Параметры
+
+У этого инструмента нет дополнительных настроек. Преобразование сохраняет исходное форматирование RTF.
+
+## Результат
+
+| Количество файлов | Результат |
+| :---------------- | :---------------------------------------------------------------- |
+| 1 файл | Один PDF (например, `letter.pdf`) |
+| 2 и более | ZIP-архив (`rtf-converted.zip`) с отдельным PDF для каждого файла |
+
+## Сценарии использования
+
+- Преобразование устаревших RTF-документов из старых текстовых редакторов в современные PDF
+- Превращение RTF-шаблонов писем в PDF-превью
+- Обработка RTF-вывода из юридических и медицинских программ
+- Пакетное преобразование RTF-файлов из системы управления документами в PDF для архива
+
+## Советы
+
+- Движок LibreOffice загружается один раз и кэшируется. Первое преобразование за сессию занимает на несколько секунд больше, последующие быстрее.
+- RTF-файлы со встроенными OLE-объектами могут отображаться не идеально. Простой текст, изображения и стандартное форматирование преобразуются надёжно.
+- Если ваши RTF-файлы созданы в Microsoft Word, их можно также преобразовать напрямую инструментом [Word в PDF](./word-to-pdf), который принимает RTF наряду с DOC и DOCX.
+
+## Связанные инструменты
+
+- [Word в PDF](./word-to-pdf)
+- [ODT в PDF](./odt-to-pdf)
+- [Текст в PDF](./txt-to-pdf)
diff --git a/docs/ru/tools/sanitize-pdf.md b/docs/ru/tools/sanitize-pdf.md
new file mode 100644
index 00000000..e40e1949
--- /dev/null
+++ b/docs/ru/tools/sanitize-pdf.md
@@ -0,0 +1,53 @@
+---
+title: Санирование документа
+description: 'Удалите из PDF скрытое и потенциально опасное содержимое: метаданные, JavaScript, встроенные файлы, аннотации и слои.'
+---
+
+# Санирование документа
+
+PDF может содержать гораздо больше, чем видно на экране. Скрытые метаданные, встроенный JavaScript, вложенные файлы, данные форм и сведения о слоях могут раскрыть конфиденциальную информацию или создать угрозу безопасности. Санирование убирает всё это и оставляет чистый документ, безопасный для публикации.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Отметьте в списке, какие элементы удалить.
+3. Нажмите **Санирование документа**.
+4. Скачайте очищенный файл.
+
+## Параметры санирования
+
+Все параметры включены по умолчанию. Снимите отметку с тех, что нужно сохранить.
+
+| Параметр | Что удаляется |
+| ----------------------------- | ------------------------------------------------------------------- |
+| **Свести формы** | Превращает интерактивные поля форм в статичное содержимое |
+| **Удалить метаданные** | Удаляет автора, название, дату создания, сведения о ПО и данные XMP |
+| **Удалить аннотации** | Удаляет комментарии, выделения, стикеры и разметку |
+| **Удалить JavaScript** | Убирает встроенные скрипты, которые могут выполниться при открытии |
+| **Удалить встроенные файлы** | Удаляет файлы, вложенные в PDF |
+| **Удалить слои (OCG)** | Сводит группы необязательного содержимого в один слой |
+| **Удалить ссылки** | Удаляет гиперссылки и ссылки на URL |
+| **Удалить дерево структуры** | Удаляет структуру документа, используемую для тегов доступности |
+| **Удалить MarkInfo** | Удаляет сведения о размеченном содержимом |
+| **Удалить встроенные шрифты** | Удаляет данные встроенных шрифтов (использовать с осторожностью) |
+
+## Сценарии использования
+
+- Подготовка PDF к публикации с удалением внутренних метаданных (имена авторов, версии ПО, история правок)
+- Удаление JavaScript из PDF, полученного из ненадёжного источника, перед открытием
+- Очистка PDF перед отправкой клиенту, который не должен видеть встроенные комментарии и имена полей форм
+- Удаление скрытых слоёв из архитектурного чертежа перед отправкой окончательной версии
+- Соблюдение требований минимизации данных по нормам о конфиденциальности
+
+## Советы
+
+- Не отмечайте «Удалить встроенные шрифты», если не уверены, что PDF по-прежнему будет отображаться правильно. Удаление шрифтов может сделать текст невидимым в некоторых программах просмотра.
+- Если нужно удалить только метаданные, быстрее и целенаправленнее воспользоваться отдельным инструментом «Удаление метаданных».
+- Санирование необратимо. Сохраните исходный файл.
+
+## Связанные инструменты
+
+- [Удаление метаданных](./remove-metadata): удалить только метаданные, не трогая остальное содержимое
+- [Сведение документа](./flatten-pdf): свести именно формы и аннотации
+- [Защита PDF](./protect-pdf): добавить защиту паролем после санирования
+- [Растеризация документа](./rasterize-pdf): радикальный вариант: преобразовать в изображения, чтобы убрать всё скрытое содержимое
diff --git a/docs/ru/tools/scanner-effect.md b/docs/ru/tools/scanner-effect.md
new file mode 100644
index 00000000..30dc861e
--- /dev/null
+++ b/docs/ru/tools/scanner-effect.md
@@ -0,0 +1,57 @@
+---
+title: Эффект сканера
+description: Придайте PDF вид отсканированного документа с настраиваемым шумом, поворотом, размытием и эффектом старения бумаги.
+---
+
+# Эффект сканера
+
+Превратите чистый цифровой PDF в документ, выглядящий так, будто он вышел из планшетного сканера. Инструмент применяет настраиваемый шум, лёгкий поворот, размытие, сдвиги яркости и необязательное пожелтение, имитируя несовершенства физического скана.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Откроется редактор с живым предпросмотром первой страницы и панелью настроек.
+3. Настройте параметры эффекта сканирования ползунками и переключателями.
+4. Предпросмотр обновляется в реальном времени при изменении настроек.
+5. Нажмите **Применить эффект сканера**, чтобы обработать все страницы и скачать результат.
+
+## Параметры
+
+- **Цветовое пространство (переключатель градаций серого)**: преобразует результат в градации серого для классического чёрно-белого скана.
+- **Граница**: добавляет едва заметную тёмную рамку по краям страницы, имитируя артефакты границ сканера.
+- **Поворот**: применяет лёгкий поворот (от -5 до +5 градусов), имитируя неровную подачу бумаги.
+- **Разброс поворота**: добавляет случайное отклонение угла, чтобы каждая страница наклонялась немного по-разному.
+- **Яркость**: сдвигает общую яркость вверх или вниз.
+- **Контраст**: регулирует контраст, имитируя различия в качестве тонера.
+- **Размытие**: применяет размытие по Гауссу, смягчая края текста, как у скана низкого качества.
+- **Шум**: добавляет случайный пиксельный шум, имитируя зернистость датчика сканера. Чем выше значение, тем зернистее результат.
+- **Желтоватость**: добавляет тёплый жёлтый оттенок, имитируя старую или переработанную бумагу.
+- **Разрешение**: задаёт DPI результата. Чем ниже значение, тем более пикселизированным и «сканированным» выглядит документ.
+- **Сброс**: возвращает все настройки к значениям по умолчанию.
+
+## Возможности
+
+- Предпросмотр в реальном времени, обновляющийся при изменении каждого параметра
+- Случайный разброс поворота для каждой страницы для реалистичного вида
+- Десять независимо настраиваемых параметров
+- Режим градаций серого для достоверного чёрно-белого скана
+- Управление разрешением от качества факса с низким DPI до архивного качества с высоким DPI
+
+## Сценарии использования
+
+- Придание цифровым документам вида отсканированных и напечатанных
+- Имитация старения физического документа для воссоздания исторических документов
+- Проверка программ распознавания текста на сканах ухудшенного качества
+- Создание документов, соответствующих визуальному стилю существующих архивов сканов
+
+## Советы
+
+- Начните с мягких значений. Уровня шума 10-20, лёгкого поворота в 0,5 градуса и минимального размытия уже достаточно для убедительного вида скана.
+- Сочетайте режим градаций серого с лёгким пожелтением для эффекта «ксерокопии с ксерокопии».
+- Низкие значения разрешения (100-150 DPI) дают наиболее реалистичный вид факса.
+
+## Связанные инструменты
+
+- [Инверсия цвета](./invert-colors)
+- [Настройка цвета](./adjust-colors)
+- [Цвет фона](./background-color)
diff --git a/docs/ru/tools/sign-pdf.md b/docs/ru/tools/sign-pdf.md
new file mode 100644
index 00000000..8a147364
--- /dev/null
+++ b/docs/ru/tools/sign-pdf.md
@@ -0,0 +1,48 @@
+---
+title: Подписание PDF
+description: Нарисуйте, напечатайте или загрузите подпись и разместите её на страницах PDF во встроенном просмотрщике.
+---
+
+# Подписание PDF
+
+Добавьте свою подпись в любой PDF-документ. Инструмент включает полноценный просмотрщик PDF со встроенными средствами подписи: можно нарисовать подпись от руки, набрать имя шрифтом-подписью или загрузить изображение подписи. Разместите подпись на любой странице, измените её размер и сохраните подписанный документ.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Документ откроется во встроенном просмотрщике PDF с инструментами аннотирования.
+3. С помощью инструмента подписи в просмотрщике создайте подпись: нарисуйте, напечатайте или загрузите изображение.
+4. Щёлкните на странице там, где нужна подпись, и настройте её размер и положение.
+5. При желании отметьте **Свести PDF**, чтобы навсегда встроить подпись в документ.
+6. Нажмите **Сохранить и скачать подписанный PDF**, чтобы получить подписанный файл.
+
+## Параметры
+
+- **Свести PDF**: если отмечено, подпись навсегда встраивается в содержимое страницы. Это не позволяет другим переместить или удалить подпись. Если не отмечено, подпись остаётся аннотацией, которую можно изменять в совместимых программах просмотра.
+
+## Возможности
+
+- Три способа создания подписи: рисование от руки, набранный текст или загруженное изображение
+- Встроенный просмотрщик PDF для точного размещения
+- Перетаскивание для позиционирования и изменения размера подписей на любой странице
+- Необязательное сведение для окончательного встраивания подписей
+- Поддержка нескольких подписей в одном документе
+
+## Сценарии использования
+
+- Подписание договоров, соглашений и форм согласования перед отправкой обратно
+- Добавление подписи в налоговые документы, страховые заявления и государственные формы
+- Постановка инициалов на отдельных страницах многостраничного соглашения
+- Подписание NDA и кадровых документов, приходящих во вложениях в формате PDF
+
+## Советы
+
+- Включите сведение, если отправляете подписанный PDF тому, кто не должен иметь возможности удалить или переместить вашу подпись.
+- Для юридически значимых цифровых подписей с проверкой по сертификату в BentoPDF есть отдельный инструмент «Цифровая подпись PDF».
+- Для наилучшего результата загрузите изображение подписи в формате PNG с прозрачным фоном.
+
+## Связанные инструменты
+
+- [Редактор PDF](./edit-pdf)
+- [Добавление штампов](./add-stamps)
+- [Заполнение PDF-форм](./form-filler)
diff --git a/docs/ru/tools/split-pdf.md b/docs/ru/tools/split-pdf.md
new file mode 100644
index 00000000..61114cf8
--- /dev/null
+++ b/docs/ru/tools/split-pdf.md
@@ -0,0 +1,57 @@
+---
+title: Разделение PDF
+description: Разделите PDF на файлы меньшего размера по диапазону страниц, визуальному выбору, закладкам, чётным и нечётным страницам или фиксированным интервалам.
+---
+
+# Разделение PDF
+
+Разбейте PDF на небольшие документы одним из шести режимов разделения. От простых диапазонов страниц до разделения по закладкам: инструмент подходит для любого сценария деления документа.
+
+## Как это работает
+
+1. Загрузите один PDF-файл.
+2. Выберите режим разделения в выпадающем списке.
+3. Настройте параметры выбранного режима (диапазоны страниц, выбор и т. д.).
+4. Нажмите кнопку обработки.
+5. Результат скачивается как один PDF или ZIP-архив в зависимости от режима и настроек.
+
+## Режимы разделения
+
+| Режим | Описание |
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
+| **Диапазон** | Введите диапазоны страниц, например `1-3, 5, 8-10`. Несколько диапазонов дают отдельные PDF в ZIP. Один диапазон даёт один PDF. |
+| **Визуальный выбор** | Просматривайте миниатюры страниц и щёлкайте по нужным. Выбранные страницы извлекаются в новый PDF. |
+| **Чётные / нечётные** | Извлекаются только чётные или только нечётные страницы. |
+| **Все страницы** | Каждая страница сохраняется как отдельный PDF-файл, всё скачивается в ZIP. |
+| **Закладки** | Разделение по границам закладок. Выберите уровень закладок, чтобы определить, где проходят разрезы. |
+| **Каждые N страниц** | Разделение на части по N страниц (например, каждые 5 страниц). В последней части может быть меньше страниц. |
+
+## Возможности
+
+- Шесть различных режимов разделения, охватывающих практически любой сценарий
+- Визуальный выбор страниц с отложенной загрузкой миниатюр
+- Разделение по закладкам с фильтрацией по уровню
+- Вывод в ZIP для режимов диапазона и визуального выбора
+- Поддержка диапазонов страниц со смешанным синтаксисом (`1-3, 5, 8-10`)
+- Предупреждение, если разделение по N страниц даёт части неравного размера
+
+## Сценарии использования
+
+- Извлечение определённой главы или раздела из большого документа
+- Разделение нечётных и чётных страниц для двусторонней печати
+- Разбиение PDF книги на файлы отдельных глав по границам закладок
+- Выделение отдельных страниц (например, страницы с подписями) из договора
+- Разделение сводного отчёта на файлы по разделам для рассылки
+
+## Советы
+
+- Несколько диапазонов страниц через запятую (например, `1-5, 10-15, 20-25`) дают отдельные PDF, по одному на диапазон, упакованные в ZIP.
+- Для режима закладок в PDF должны быть закладки. Если их нет, вы получите сообщение об ошибке.
+- Флажок «Скачать как ZIP» в режимах диапазона и визуального выбора позволяет получить отдельные PDF для каждой страницы вместо одного общего файла.
+
+## Связанные инструменты
+
+- [Объединение PDF](./merge-pdf)
+- [Извлечение страниц](./extract-pages)
+- [Удаление страниц](./delete-pages)
+- [PDF мультиинструмент](./pdf-multi-tool)
diff --git a/docs/ru/tools/svg-to-pdf.md b/docs/ru/tools/svg-to-pdf.md
new file mode 100644
index 00000000..a47d56b6
--- /dev/null
+++ b/docs/ru/tools/svg-to-pdf.md
@@ -0,0 +1,50 @@
+---
+title: SVG в PDF
+description: Преобразуйте векторную графику SVG в PDF с управлением качеством прямо в браузере.
+---
+
+# SVG в PDF
+
+Преобразуйте файлы Scalable Vector Graphics (SVG) в PDF. Инструмент растеризует каждый SVG средствами отрисовки браузера, а затем встраивает результат в исходном разрешении. Удобно для превращения векторных значков, диаграмм и иллюстраций в переносимые документы.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения |
+| :----- | :--------- |
+| SVG | `.svg` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите в неё один или несколько SVG-файлов.
+2. Просмотрите список файлов и при необходимости измените его.
+3. Выберите уровень **Качество PDF**.
+4. Нажмите **Конвертировать в PDF**. Результат скачивается как `from_svgs.pdf`.
+
+Каждый SVG читается как текст, отрисовывается на холсте в собственных ширине и высоте (по умолчанию 800x600, если размеры не указаны) и экспортируется в PNG. Затем этот PNG встраивается в PDF с помощью pdf-lib. Прозрачные области заливаются белым фоном.
+
+## Параметры
+
+**Качество PDF** управляет сжатием после растеризации:
+
+- **Высокое качество**: ближе всего к исходной отрисовке.
+- **Среднее качество** (по умолчанию): хороший баланс.
+- **Низкое качество**: наименьший файл, часть деталей теряется.
+
+## Сценарии использования
+
+- Преобразование архитектурных и инженерных схем из SVG в PDF, готовый к печати
+- Упаковка наборов значков в справочный PDF для дизайн-системы
+- Превращение визуализаций данных (D3.js, экспорт из библиотек диаграмм) в PDF для отчётов
+- Создание печатных версий инфографики на основе SVG
+
+## Советы
+
+- SVG-файлы без явных атрибутов `width` и `height` отрисовываются в размере 800x600 пикселей. Для лучшего результата задайте размеры в исходнике SVG перед преобразованием.
+- Сложные SVG с внешними ссылками на шрифты или связанными изображениями могут отображаться неидеально. Встройте все ресурсы в SVG для надёжного результата.
+- Поскольку SVG растеризуется, в PDF будет растровое изображение, а не векторные контуры. Для настоящего векторного PDF нужен специальный векторный инструмент.
+
+## Связанные инструменты
+
+- [Изображения в PDF](./image-to-pdf)
+- [PNG в PDF](./png-to-pdf)
+- [BMP в PDF](./bmp-to-pdf)
diff --git a/docs/ru/tools/table-of-contents.md b/docs/ru/tools/table-of-contents.md
new file mode 100644
index 00000000..7a6cc189
--- /dev/null
+++ b/docs/ru/tools/table-of-contents.md
@@ -0,0 +1,49 @@
+---
+title: Оглавление
+description: Создайте страницу с оформленным оглавлением на основе существующих закладок PDF.
+---
+
+# Оглавление
+
+Инструмент читает закладки (структуру) вашего PDF и создаёт страницу с оформленным оглавлением, которая добавляется в начало документа. Если в PDF уже есть закладки, но нет видимой страницы оглавления, инструмент создаст её автоматически.
+
+## Как это работает
+
+1. Загрузите PDF, содержащий закладки.
+2. Настройте заголовок оглавления, размер шрифта и семейство шрифтов.
+3. При желании отметьте **Добавить закладку для страницы оглавления**, чтобы включить само оглавление в дерево закладок.
+4. Нажмите **Создать оглавление**, чтобы обработать файл.
+5. Обновлённый PDF скачивается автоматически, страница оглавления вставлена в начало.
+
+## Параметры
+
+- **Заголовок оглавления**: заголовок вверху созданной страницы. По умолчанию «Оглавление».
+- **Размер шрифта**: от 10 pt до 72 pt. По умолчанию 12 pt.
+- **Семейство шрифтов**: Times Roman, Helvetica или Courier (обычный, полужирный, курсив, полужирный курсив). По умолчанию Helvetica.
+- **Добавить закладку для страницы оглавления**: если отмечено, в дерево структуры PDF добавляется закладка на саму страницу оглавления.
+
+## Возможности
+
+- Считывает всю иерархию закладок из PDF
+- Создаёт аккуратно оформленную страницу оглавления с номерами страниц
+- Поддерживает вложенные уровни закладок с отступами
+- Выбор из 12 встроенных шрифтов PDF
+- Необязательная закладка на саму страницу оглавления
+
+## Сценарии использования
+
+- Добавление печатного оглавления в электронные книги и отчёты, где есть только цифровые закладки
+- Создание оглавления для сводного документа после объединения нескольких PDF
+- Создание справочной страницы для длинных технических руководств
+- Подготовка документов к печати, где ожидается видимое оглавление
+
+## Советы
+
+- Если в PDF нет закладок, сначала создайте их инструментом [Редактирование закладок](./bookmark), а затем вернитесь сюда, чтобы создать оглавление.
+- Для больших документов больший размер шрифта, например 14 pt или 16 pt, улучшает читаемость.
+
+## Связанные инструменты
+
+- [Редактирование закладок](./bookmark)
+- [Нумерация страниц](./page-numbers)
+- [Колонтитулы](./header-footer)
diff --git a/docs/ru/tools/text-color.md b/docs/ru/tools/text-color.md
new file mode 100644
index 00000000..e8cbcaa5
--- /dev/null
+++ b/docs/ru/tools/text-color.md
@@ -0,0 +1,45 @@
+---
+title: Изменение цвета текста
+description: Измените цвет всего текста в PDF на любой выбранный вами цвет.
+---
+
+# Изменение цвета текста
+
+Замените цвет текста во всём PDF. Инструмент находит текстовые области на каждой странице и перекрашивает их в выбранный цвет, сохраняя макет документа и нетекстовое содержимое.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Выберите новый цвет текста в селекторе цвета. По умолчанию синий (#0000FF).
+3. Нажмите **Изменение цвета текста** для обработки.
+4. Перекрашенный PDF скачивается автоматически. Индикатор хода показывает, какая страница обрабатывается.
+
+## Параметры
+
+- **Новый цвет текста**: палитра для выбора цвета, которым будет заменён весь текст документа.
+
+## Возможности
+
+- Перекрашивает текст на каждой странице документа
+- Постраничная обработка с индикацией хода
+- Палитра с полной поддержкой шестнадцатеричных цветов
+- Сохраняет макет страницы и нетекстовые элементы
+
+## Сценарии использования
+
+- Замена чёрного текста на тёмно-синий для более мягкого и современного вида документа
+- Перекраска текста под фирменный стиль перед рассылкой документов
+- Преобразование текста в определённый цвет для соответствия требованиям доступности
+- Обеспечение видимости текста на вновь применённом цвете фона
+
+## Советы
+
+- Инструмент отрисовывает страницы в масштабе 2x для качества, а затем пересобирает PDF. Результат состоит из изображений, поэтому текст больше нельзя будет выделять и искать.
+- Если нужно сохранить выделяемый текст, лучше отредактируйте PDF напрямую в [Редактор PDF](./edit-pdf).
+- Время обработки растёт с числом страниц, так как каждая страница отрисовывается отдельно.
+
+## Связанные инструменты
+
+- [Цвет фона](./background-color)
+- [Инверсия цвета](./invert-colors)
+- [Настройка цвета](./adjust-colors)
diff --git a/docs/ru/tools/tiff-to-pdf.md b/docs/ru/tools/tiff-to-pdf.md
new file mode 100644
index 00000000..f94cf06e
--- /dev/null
+++ b/docs/ru/tools/tiff-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: TIFF в PDF
+description: Преобразуйте одно- и многостраничные изображения TIFF в PDF в браузере с полной поддержкой страниц.
+---
+
+# TIFF в PDF
+
+Преобразуйте файлы TIFF в PDF, включая многостраничные. Каждая страница (или «IFD») TIFF-файла становится отдельной страницей итогового PDF. Это особенно полезно для отсканированных документов, факсов и медицинских изображений, которые обычно хранятся в виде многостраничных TIFF.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения |
+| :----- | :-------------- |
+| TIFF | `.tiff`, `.tif` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите в неё TIFF-файлы.
+2. Просмотрите список файлов и при необходимости измените его.
+3. Нажмите **Конвертировать в PDF**. Результат скачивается как `from_tiff.pdf`.
+
+Инструмент декодирует каждый TIFF-файл с помощью JavaScript-декодера TIFF и извлекает необработанные пиксельные данные RGBA каждой страницы. Каждая страница отрисовывается на холсте, экспортируется в PNG и встраивается в PDF. Размеры страниц соответствуют исходным страницам TIFF.
+
+## Параметры
+
+У этого инструмента нет дополнительных настроек качества. Изображения встраиваются в исходном разрешении.
+
+## Сценарии использования
+
+- Преобразование многостраничных факсов (TIFF-F) в более переносимый формат PDF
+- Превращение архивов отсканированных документов в TIFF в PDF с возможностью поиска (затем объедините с инструментом распознавания текста)
+- Обработка файлов медицинской визуализации (патологические снимки, экспорт рентгенологии) в формате TIFF
+- Преобразование геоинформационных и спутниковых изображений TIFF в документы для обмена
+
+## Советы
+
+- Многостраничные TIFF поддерживаются полностью. TIFF из 10 страниц даст PDF из 10 страниц. Предварительно разделять TIFF не нужно.
+- Очень большие TIFF-файлы (сотни мегабайт) могут обрабатываться дольше, так как весь файл декодируется в памяти браузера.
+- Если нужно распознавание текста в итоговом PDF, после преобразования пропустите его через инструмент [Распознавание текста в PDF](./ocr-pdf).
+
+## Связанные инструменты
+
+- [Изображения в PDF](./image-to-pdf)
+- [BMP в PDF](./bmp-to-pdf)
+- [JPG в PDF](./jpg-to-pdf)
diff --git a/docs/ru/tools/txt-to-pdf.md b/docs/ru/tools/txt-to-pdf.md
new file mode 100644
index 00000000..103349b0
--- /dev/null
+++ b/docs/ru/tools/txt-to-pdf.md
@@ -0,0 +1,54 @@
+---
+title: Текст в PDF
+description: Преобразуйте обычные текстовые файлы или набранный текст в PDF с выбором шрифтов, цветов и размеров страницы.
+---
+
+# Текст в PDF
+
+Преобразуйте обычный текст в оформленный PDF. Можно загрузить файлы `.txt` или набрать текст прямо во встроенном редакторе. Поддерживаются несколько шрифтов, произвольные цвета текста и широкий набор размеров страниц: от A0 до A10, а также US Letter, Legal и Tabloid.
+
+## Поддерживаемые форматы
+
+| Ввод | Расширения |
+| :---------------------- | :------------------------------- |
+| Обычные текстовые файлы | `.txt` |
+| Прямой ввод текста | Наберите или вставьте в редактор |
+
+## Как это работает
+
+1. Выберите режим ввода переключателем вверху: **Загрузить файлы** или **Ввести текст**.
+2. При загрузке перетащите или выберите один или несколько файлов `.txt`. При наборе введите текст прямо в текстовое поле.
+3. Настройте параметры форматирования: семейство шрифтов, размер шрифта, цвет текста и размер страницы.
+4. Нажмите **Создать PDF**. Результат скачивается как `text_to_pdf.pdf`.
+
+При загрузке нескольких файлов их содержимое объединяется, между ними вставляются пустые строки.
+
+## Параметры
+
+| Параметр | Значения | По умолчанию |
+| :-------------------- | :--------------------------------------------------------------------------------------- | :--------------- |
+| **Семейство шрифтов** | Helvetica (без засечек), Tiro (с засечками), Courier (моноширинный), Times (с засечками) | Helvetica |
+| **Размер шрифта** | 6 -- 72 pt | 12 |
+| **Цвет текста** | Любой цвет через палитру | Чёрный (#000000) |
+| **Размер страницы** | ISO A0--A10, B0--B10, C0--C10, US Letter, Legal, Tabloid, Ledger, 11x17 | A4 |
+
+Языки с письмом справа налево (арабский, иврит, персидский, урду) определяются автоматически. Когда найден RTL-текст, направление текста и выравнивание переключаются соответственно.
+
+## Сценарии использования
+
+- Преобразование фрагментов кода и файлов журналов в печатный PDF шрифтом Courier
+- Быстрое создание PDF из заметок встречи, набранных на месте
+- Оформление текстовой рукописи определённым шрифтом и размером страницы для подачи
+- Создание PDF-версии README или журнала изменений для распространения офлайн
+
+## Советы
+
+- Используйте режим **Ввести текст**, когда нужно быстро преобразовать содержимое буфера обмена, не сохраняя его сначала в файл.
+- Courier (моноширинный) лучший выбор для кода, журналов и любого содержимого, где важно выравнивание по столбцам.
+- Поля страницы фиксированы: 72 пункта (1 дюйм) со всех сторон.
+
+## Связанные инструменты
+
+- [Markdown в PDF](./markdown-to-pdf)
+- [CSV в PDF](./csv-to-pdf)
+- [Word в PDF](./word-to-pdf)
diff --git a/docs/ru/tools/unlock-pdf.md b/docs/ru/tools/unlock-pdf.md
new file mode 100644
index 00000000..ef27d772
--- /dev/null
+++ b/docs/ru/tools/unlock-pdf.md
@@ -0,0 +1,46 @@
+---
+title: Разблокировка PDF
+description: Снимите защиту паролем с зашифрованных PDF. Поддерживается пакетная расшифровка нескольких файлов с одним паролем.
+---
+
+# Разблокировка PDF
+
+Если у вас есть пароль к зашифрованному PDF, этот инструмент полностью снимает шифрование и создаёт разблокированную копию, которую можно открыть без пароля. Если у нескольких PDF один и тот же пароль, их можно расшифровать пакетом.
+
+## Как это работает
+
+1. Загрузите один или несколько зашифрованных PDF-файлов.
+2. Введите **пароль**, которым защищены файлы.
+3. Нажмите **Расшифровка документа**.
+4. Один файл скачивается сразу. Если файлов несколько, вы получите ZIP-архив со всеми разблокированными PDF.
+
+## Возможности
+
+- Расшифровка одного файла и пакетная расшифровка
+- Работает как с паролями пользователя, так и с паролями владельца
+- Результат полностью не зашифрован и не содержит остаточных ограничений
+- Понятные сообщения об ошибках при неверном пароле или повреждённых файлах
+- Учёт успеха и ошибок по каждому файлу в пакетном режиме
+
+## Чем это отличается от снятия ограничений
+
+**Разблокировка PDF** требует пароль и снимает всё шифрование. **Снятие ограничений** убирает ограничения на использование (печать, копирование, редактирование) и может не требовать пароля, если задан только пароль владельца. Используйте расшифровку, когда PDF вообще не открывается без пароля.
+
+## Сценарии использования
+
+- Окончательно разблокировать PDF, которые вы зашифровали раньше, если пароль больше не нужен
+- Снять шифрование с пакета архивных документов для удобного долгосрочного доступа
+- Подготовить защищённые паролем PDF для системы документооборота, которая не поддерживает зашифрованные файлы
+- Разблокировать PDF перед объединением с другими документами (многие инструменты объединения не работают с зашифрованными файлами)
+
+## Советы
+
+- Поле пароля применяется ко всем загруженным файлам. Если у ваших PDF разные пароли, обрабатывайте их отдельными пакетами.
+- Если появляется ошибка «Неверный пароль», проверьте, нет ли лишних пробелов в конце и не включён ли Caps Lock.
+- После расшифровки файл остаётся без защиты. Если нужен новый пароль, зашифруйте файл снова через «Защита PDF».
+
+## Связанные инструменты
+
+- [Защита PDF](./protect-pdf): повторно зашифровать файл с новым паролем
+- [Снятие ограничений](./remove-restrictions): снять ограничения на использование без полной расшифровки
+- [Изменение разрешений](./change-permissions): изменить отдельные разрешения в зашифрованном PDF
diff --git a/docs/ru/tools/validate-signature-pdf.md b/docs/ru/tools/validate-signature-pdf.md
new file mode 100644
index 00000000..588eb1b4
--- /dev/null
+++ b/docs/ru/tools/validate-signature-pdf.md
@@ -0,0 +1,99 @@
+---
+title: Проверка подписи в PDF
+description: Проверьте цифровые подписи в PDF-файлах. Инструмент оценивает действительность сертификата, личность подписавшего, целостность документа и цепочку доверия.
+---
+
+# Проверка подписи в PDF
+
+Загрузите подписанный PDF, и инструмент извлечёт все цифровые подписи, определит подписавшего, проверит действительность сертификата и сообщит, изменялся ли документ после подписания. Можно также указать доверенный сертификат для проверки цепочки подписи.
+
+## Как это работает
+
+1. Загрузите подписанный PDF-файл. Проверка начнётся автоматически.
+2. Инструмент покажет сводку: сколько найдено подписей и сколько из них действительны.
+3. Для каждой подписи отображается карточка с именем подписавшего, издателем, датами и статусом.
+4. При желании загрузите **доверенный сертификат** (.pem, .crt, .cer, .der), чтобы проверить подпись относительно конкретного корня доверия. Повторная проверка запустится автоматически.
+
+## Что проверяется
+
+### Разбор подписи
+
+Инструмент извлекает из PDF объекты подписи PKCS#7, декодирует структуру ASN.1 и получает сертификат X.509 подписавшего вместе с цепочкой сертификатов, встроенной в подпись.
+
+### Действительность сертификата
+
+- **Срок действия**: находится ли сертификат сейчас в пределах срока действия?
+- **Определение самоподписанного сертификата**: является ли сертификат собственным издателем?
+- **Цепочка доверия**: если указан доверенный сертификат, восходит ли к нему сертификат подписавшего?
+
+### Криптографическая проверка
+
+- Инструмент восстанавливает байты, охваченные `/ByteRange` подписи, вычисляет их хеш алгоритмом, заявленным подписавшим, и сравнивает результат с атрибутом `messageDigest` внутри подписи.
+- Затем он повторно сериализует подписанные атрибуты как DER SET и проверяет подпись по открытому ключу сертификата подписавшего.
+- **Подпись считается действительной, только если пройдены все эти проверки.** Если байты PDF были изменены после подписания или встроенная подпись не соответствует ключу подписавшего, статус будет «Недействительна: криптографическая проверка не пройдена» с указанием конкретной причины.
+
+#### Поддерживаемые алгоритмы подписи
+
+| Алгоритм | Путь проверки |
+| ----------------------- | ---------------------------------------------------------------------------------------- |
+| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, с резервным вариантом через Web Crypto |
+| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
+| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` после преобразования подписи DER → IEEE P1363 |
+
+Если подпись использует алгоритм не из этого списка (например, Ed25519, SM2 или RSA с необычным OID дайджеста), карточка покажет жёлтым **«Не проверена: неподдерживаемый алгоритм подписи»** с конкретным OID или причиной. Это намеренное разделение на три состояния:
+
+- **Действительна**: подпись криптографически проверена по открытому ключу подписавшего.
+- **Недействительна**: проверка выполнена и дала отрицательный результат (байты изменены, ключ не совпадает).
+- **Не проверена**: инструмент не смог выполнить проверку для этого алгоритма. Данные сертификата по-прежнему показываются, но подпись следует считать «неизвестной» и проверить её в Adobe Acrobat или через `openssl cms -verify`.
+
+### Небезопасные алгоритмы дайджеста
+
+- Подписи с **MD5 или SHA-1** отклоняются как недействительные и помечаются статусом «Небезопасный хеш». Для обоих алгоритмов опубликованы атаки на коллизии, поэтому подпись по хешу SHA-1 или MD5 не гарантирует целостность.
+- SHA-224, SHA-256, SHA-384 и SHA-512 принимаются.
+
+### Охват документа
+
+- **Полное покрытие**: подпись охватывает весь PDF-файл, то есть после подписания байты не добавлялись и не менялись.
+- **Частичное покрытие**: подпись охватывает только часть файла. Это может указывать на изменения после подписания (не обязательно злонамеренные: инкрементальные сохранения дают частичный охват).
+
+## Сведения о подписи
+
+Каждая карточка подписи содержит:
+
+- **Подписано**: общее имя, организация и адрес электронной почты из сертификата подписавшего
+- **Издатель**: центр сертификации, выдавший сертификат подписавшего
+- **Дата подписания**: отметка времени, встроенная в подпись
+- **Действителен с / Действителен до**: срок действия сертификата
+- **Причина**: зачем документ был подписан (если указана)
+- **Место**: где он был подписан (если указано)
+- **Статус охвата**: полный или частичный
+- **Значок доверия**: доверенный или не входит в цепочку доверия (только если указан собственный сертификат)
+
+### Технические сведения
+
+Разверните раздел технических сведений, чтобы увидеть:
+
+- Серийный номер сертификата подписавшего
+- Алгоритм дайджеста (SHA-256, SHA-512 и т. д.)
+- Алгоритм подписи (RSA с SHA-256, ECDSA с SHA-256 и т. д.)
+- Сообщения об ошибках для недействительных подписей
+
+## Сценарии использования
+
+- Проверка подписанного цифровой подписью договора перед его встречным подписанием
+- Аудит подписанных документов, чтобы убедиться, что они не были подделаны
+- Проверка, не истёк ли сертификат с момента подписания документа
+- Проверка подписей по корневому сертификату вашей организации
+- Изучение сведений о подписи в государственных или юридических документах
+
+## Советы
+
+- Самоподписанный сертификат не означает, что подпись недействительна: он означает, что личность подписавшего нельзя подтвердить через доверенную третью сторону. Для внутренних документов это обычное дело.
+- Частичное покрытие не всегда говорит о подделке. Во многих процессах работы с PDF добавляются инкрементальные обновления (например, вторая подпись), которые создают частичный охват.
+- Загрузите корневой или промежуточный сертификат вашей организации как доверенный, чтобы получить проверку цепочки доверия.
+
+## Связанные инструменты
+
+- [Цифровая подпись PDF](./digital-sign-pdf): подписывайте PDF своим сертификатом
+- [Сведение документа](./flatten-pdf): сведите PDF перед подписанием, чтобы предотвратить изменения после подписи
+- [Удаление метаданных](./remove-metadata): очистите PDF перед добавлением подписи
diff --git a/docs/ru/tools/view-metadata.md b/docs/ru/tools/view-metadata.md
new file mode 100644
index 00000000..00eb9c96
--- /dev/null
+++ b/docs/ru/tools/view-metadata.md
@@ -0,0 +1,51 @@
+---
+title: Просмотр метаданных
+description: Изучите все свойства метаданных PDF, включая сведения о документе, данные XMP и структурные характеристики.
+---
+
+# Просмотр метаданных
+
+Изучите скрытые свойства, встроенные в PDF-файл. Инструмент показывает сведения о документе (название, автор, даты), метаданные XMP, размеры страниц и другие структурные данные в удобном виде.
+
+## Как это работает
+
+1. Загрузите PDF-файл.
+2. Инструмент сразу разбирает файл и показывает все доступные метаданные по разделам.
+3. Просмотрите словарь сведений о документе, дерево метаданных XMP и структурные свойства.
+4. Отдельный шаг обработки не нужен: метаданные отображаются сразу после загрузки файла.
+
+## Возможности
+
+- Показывает стандартные поля сведений о документе: название, автор, тема, ключевые слова, создатель, производитель
+- Показывает даты создания и изменения в читаемом формате
+- Разбирает и отображает полное дерево метаданных XMP с вложенными пространствами имён
+- Преобразует формат даты PDF (`D:20240101120000Z`) в читаемые даты
+- Разделы сворачиваются для удобной навигации
+
+## Разделы метаданных
+
+| Раздел | Содержимое |
+| ------------------------ | ------------------------------------------------------------------------------------------------------ |
+| **Сведения о документе** | Название, автор, тема, ключевые слова, создатель, производитель, дата создания, дата изменения |
+| **Метаданные XMP** | Полное дерево метаданных на основе XML с пространствами имён Dublin Core, XAP, PDF и пользовательскими |
+| **Свойства документа** | Число страниц, версия PDF, размер файла, статус шифрования |
+
+## Сценарии использования
+
+- Узнать, кто автор PDF и когда он был изменён в последний раз
+- Убедиться, что метаданные заданы правильно, перед публикацией документа
+- Проверить PDF на приватность: какие личные данные в них встроены
+- Выяснить, какая программа создала или изменила PDF (по полю Producer)
+- Проверить метаданные XMP на соответствие требованиям управления цифровыми активами
+
+## Советы
+
+- Строки дат PDF, начинающиеся с `D:`, автоматически преобразуются в формат вашего часового пояса.
+- Если поля метаданных пустые, значит, создатель PDF просто не задал их. Не во всех PDF есть подробные метаданные.
+- Чтобы изменить метаданные после просмотра, используйте [Редактирование метаданных](./edit-metadata). Чтобы удалить их полностью, используйте «Удаление метаданных».
+
+## Связанные инструменты
+
+- [Редактирование метаданных](./edit-metadata)
+- [Слои PDF OCG](./pdf-layers)
+- [Сравнение документов](./compare-pdfs)
diff --git a/docs/ru/tools/vsd-to-pdf.md b/docs/ru/tools/vsd-to-pdf.md
new file mode 100644
index 00000000..9ed412d2
--- /dev/null
+++ b/docs/ru/tools/vsd-to-pdf.md
@@ -0,0 +1,45 @@
+---
+title: VSD в PDF
+description: Конвертируйте диаграммы Microsoft Visio (VSD/VSDX) в PDF прямо в браузере. Бесплатно, конфиденциально, Visio не нужен.
+---
+
+# VSD в PDF
+
+Конвертируйте диаграммы Microsoft Visio в PDF без установки Visio. Файлы VSD и VSDX содержат блок-схемы, организационные структуры, схемы сетей и планы помещений, которые большинство людей не может открыть. Этот инструмент превращает их в аккуратные PDF, которые открываются на любом устройстве.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :----------- | :--------- | :-------------------------------------------- |
+| Visio Binary | `.vsd` | Устаревший формат Visio (Visio 2003 и старше) |
+| Visio XML | `.vsdx` | Современный формат Visio (Visio 2013+) |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите файлы VSD или VSDX. В одном пакете можно смешивать оба формата.
+2. Проверьте список файлов. Удалите ненужные записи значком корзины или нажмите **Добавить еще файлы**, чтобы добавить ещё диаграммы.
+3. Нажмите **Преобразовать в PDF**. Движок на основе LibreOffice загружается в браузере и преобразует каждую диаграмму в PDF, сохраняя фигуры, соединители, подписи и разметку страницы.
+4. Одна диаграмма скачивается сразу как PDF. Несколько файлов упаковываются в ZIP-архив `vsd-to-pdf.zip`.
+
+## Параметры
+
+Настройка не требуется. Конвертер сохраняет размер и ориентацию страницы из документа Visio.
+
+## Сценарии использования
+
+- Просмотр диаграмм Visio от коллеги, если у вас нет лицензии Visio
+- Добавление диаграмм сетей или архитектуры в проектную документацию в виде PDF
+- Печать организационных структур или схем процессов для раздаточных материалов на встречу
+- Архивирование старых файлов VSD из прежних версий Visio в формате, рассчитанном на будущее
+
+## Советы
+
+- Многостраничные документы Visio превращаются в многостраничные PDF: каждая страница Visio соответствует странице PDF.
+- Файлы VSDX (современный формат на основе XML) обычно конвертируются точнее, чем старые двоичные файлы VSD.
+- Движок LibreOffice загружается один раз за сеанс. При первой конвертации придётся немного подождать, последующие файлы обрабатываются быстрее.
+
+## Связанные инструменты
+
+- [ODG в PDF](./odg-to-pdf)
+- [PUB в PDF](./pub-to-pdf)
+- [PSD в PDF](./psd-to-pdf)
diff --git a/docs/ru/tools/webp-to-pdf.md b/docs/ru/tools/webp-to-pdf.md
new file mode 100644
index 00000000..66e2a21c
--- /dev/null
+++ b/docs/ru/tools/webp-to-pdf.md
@@ -0,0 +1,49 @@
+---
+title: WebP в PDF
+description: Конвертируйте изображения WebP в PDF прямо в браузере с настраиваемым качеством сжатия.
+---
+
+# WebP в PDF
+
+Конвертируйте изображения в формате Google WebP в PDF. Это особенно удобно, если вы скачали из интернета картинки в WebP и вам нужен более универсальный формат для печати или отправки.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения |
+| :----- | :--------- |
+| WebP | `.webp` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите файлы WebP.
+2. Проверьте список файлов и удалите лишние.
+3. Выберите уровень **Качество PDF**.
+4. Нажмите **Конвертировать в PDF**. Результат скачивается как `from_webps.pdf`.
+
+Внутри каждое изображение WebP декодируется через canvas API браузера, а затем встраивается в PDF с помощью pdf-lib. Поэтому конвертация работает в любом браузере с поддержкой декодирования WebP (это все современные браузеры).
+
+## Параметры
+
+**Качество PDF** задаёт степень сжатия при встраивании изображений:
+
+- **Высокое качество**: сохраняет максимум деталей.
+- **Среднее качество** (по умолчанию): сбалансированный результат.
+- **Низкое качество**: минимальный размер файла.
+
+## Сценарии использования
+
+- Превратить скачанные из интернета картинки WebP в PDF для печати
+- Собрать скриншоты WebP из Chrome или Edge в документацию
+- Создать PDF-портфолио из изображений, которые дизайнерские инструменты по умолчанию экспортируют в WebP
+- Архивировать изображения WebP в более универсально читаемом формате
+
+## Советы
+
+- Перед встраиванием в PDF WebP внутри декодируется в PNG, поэтому изображения WebP без потерь сохраняют качество при настройке High.
+- Если у вас смесь WebP и других форматов изображений, используйте инструмент [Изображения в PDF](./image-to-pdf): он принимает всё сразу.
+
+## Связанные инструменты
+
+- [Изображения в PDF](./image-to-pdf)
+- [PNG в PDF](./png-to-pdf)
+- [JPG в PDF](./jpg-to-pdf)
diff --git a/docs/ru/tools/word-to-pdf.md b/docs/ru/tools/word-to-pdf.md
new file mode 100644
index 00000000..95c04672
--- /dev/null
+++ b/docs/ru/tools/word-to-pdf.md
@@ -0,0 +1,56 @@
+---
+title: Word в PDF
+description: Конвертируйте документы Word (DOC, DOCX), ODT и RTF в PDF прямо в браузере с полным сохранением форматирования.
+---
+
+# Word в PDF
+
+Конвертируйте документы Microsoft Word и совместимые форматы в PDF. Инструмент использует движок LibreOffice, работающий в браузере, который обрабатывает файлы DOC, DOCX, ODT и RTF и сохраняет в результате форматирование, таблицы, изображения, колонтитулы и стили.
+
+## Поддерживаемые форматы
+
+| Формат | Расширения |
+| :----------------- | :--------- |
+| Word (современный) | `.docx` |
+| Word (устаревший) | `.doc` |
+| OpenDocument Text | `.odt` |
+| Rich Text Format | `.rtf` |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите документы Word. Можно выбрать сразу несколько файлов.
+2. Проверьте список файлов и при необходимости измените его.
+3. Нажмите **Преобразовать в PDF**. При первом использовании загружается движок LibreOffice (индикатор прогресса показывает состояние инициализации), после чего каждый файл конвертируется.
+4. Один файл скачивается сразу как PDF. Несколько файлов упаковываются в `word-converted.zip`.
+
+## Параметры
+
+Дополнительных настроек у этого инструмента нет. Движок LibreOffice создаёт результат с профилем экспорта в PDF по умолчанию.
+
+## Результат
+
+| Количество файлов | Результат |
+| :---------------- | :-------------------------------------------------------------- |
+| 1 файл | Скачивание одного PDF (исходное имя файла с расширением `.pdf`) |
+| 2 и больше | ZIP-архив (`word-converted.zip`) с одним PDF на каждый файл |
+
+## Сценарии использования
+
+- Конвертировать резюме или сопроводительное письмо из DOCX в PDF перед отправкой отклика на вакансию
+- Пакетно конвертировать набор договоров или предложений в PDF для передачи клиенту
+- Превратить старые файлы `.doc` в современные PDF для долгосрочного архива
+- Конвертировать документы совместной работы из Google Docs (экспортированные как DOCX) в PDF
+- Получать PDF, готовые к печати, из шаблонов Word, которые используются при автоматической генерации документов
+
+## Советы
+
+- Движок LibreOffice загружается один раз за сеанс и кэшируется. При первой конвертации придётся подождать несколько секунд, последующие выполняются намного быстрее.
+- Сложное форматирование (макросы, элементы ActiveX, продвинутые SmartArt) может конвертироваться неидеально. Стандартные элементы документа (текст, таблицы, изображения, колонтитулы, сноски) конвертируются надёжно.
+- Поскольку инструмент принимает также ODT и RTF, его можно использовать как универсальный конвертер для всех текстовых форматов.
+
+## Связанные инструменты
+
+- [ODT в PDF](./odt-to-pdf)
+- [RTF в PDF](./rtf-to-pdf)
+- [Excel в PDF](./excel-to-pdf)
+- [PowerPoint в PDF](./powerpoint-to-pdf)
diff --git a/docs/ru/tools/wpd-to-pdf.md b/docs/ru/tools/wpd-to-pdf.md
new file mode 100644
index 00000000..56071d34
--- /dev/null
+++ b/docs/ru/tools/wpd-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPD в PDF
+description: Конвертируйте документы WordPerfect (WPD) в PDF прямо в браузере с помощью LibreOffice. Бесплатно и конфиденциально.
+---
+
+# WPD в PDF
+
+Конвертируйте документы Corel WordPerfect в PDF-файлы. Когда-то WPD был основным форматом текстовых редакторов в юридических фирмах и государственных учреждениях. Если у вас остались старые файлы WordPerfect, которые современные программы не открывают, этот инструмент вернёт их к жизни в виде обычных PDF.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :---------- | :--------- | :------------------------------ |
+| WordPerfect | `.wpd` | Все основные версии WordPerfect |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите файлы WPD. Можно выбрать сразу несколько файлов.
+2. Проверьте список файлов. Удалите ненужные значком корзины или нажмите **Добавить еще файлы**, чтобы добавить документы.
+3. Нажмите **Преобразовать в PDF**. Инструмент загружает в браузере движок конвертации на основе LibreOffice, который разбирает формат WPD и выдаёт PDF.
+4. Один файл скачивается сразу как PDF. При пакетной конвертации создаётся ZIP-архив `wpd-to-pdf.zip`.
+
+## Параметры
+
+Настройка не требуется. Движок LibreOffice сам обрабатывает форматирование, шрифты и разметку WPD.
+
+## Сценарии использования
+
+- Открыть юридические документы десятилетней давности, написанные в WordPerfect
+- Конвертировать архивные государственные документы из WPD в современный формат
+- Перенести старую библиотеку документов WordPerfect в PDF для долгосрочного хранения
+- Отправить файлы WPD получателям, у которых не установлен Corel WordPerfect
+
+## Советы
+
+- Движок LibreOffice загружается при первом использовании, на это нужно некоторое время. Последующие конвертации в том же сеансе выполняются быстрее.
+- Сложные макросы WPD и коды Reveal Codes не сохраняются, но визуальная разметка, текст и базовое форматирование переносятся в PDF.
+
+## Связанные инструменты
+
+- [WPS в PDF](./wps-to-pdf)
+- [ODG в PDF](./odg-to-pdf)
diff --git a/docs/ru/tools/wps-to-pdf.md b/docs/ru/tools/wps-to-pdf.md
new file mode 100644
index 00000000..630734b9
--- /dev/null
+++ b/docs/ru/tools/wps-to-pdf.md
@@ -0,0 +1,42 @@
+---
+title: WPS в PDF
+description: Конвертируйте документы Microsoft Works (WPS) в PDF прямо в браузере. Бесплатно, без регистрации, полностью конфиденциально.
+---
+
+# WPS в PDF
+
+Конвертируйте файлы текстового редактора Microsoft Works в PDF. Microsoft Works шёл в комплекте с домашними компьютерами в конце 1990-х и 2000-х, и множество файлов WPS до сих пор лежит на старых жёстких дисках и в архивах почты. Этот инструмент открывает их в браузере и создаёт аккуратные PDF.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :-------------- | :--------- | :-------------------------------------------- |
+| Microsoft Works | `.wps` | Файлы текстового редактора из Microsoft Works |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите файлы WPS. Можно загружать несколько файлов.
+2. Проверьте список файлов. Значком корзины удаляйте отдельные файлы или нажмите **Добавить еще файлы**, чтобы расширить пакет.
+3. Нажмите **Преобразовать в PDF**. В браузере загружается движок на основе LibreOffice и конвертирует каждый документ WPS в PDF.
+4. Один файл скачивается сразу как PDF. Несколько файлов упаковываются в ZIP-архив `wps-to-pdf.zip`.
+
+## Параметры
+
+Дополнительные настройки не нужны. Конвертер обрабатывает текст, базовое форматирование и встроенные изображения из файла WPS.
+
+## Сценарии использования
+
+- Восстановить старые учебные или рабочие документы, сохранённые в формате Microsoft Works
+- Открыть вложения WPS из почты, если Microsoft Works не установлен
+- Конвертировать архив файлов WPS для переноса в современную систему документооборота
+- Распечатать старые документы, которые современные текстовые редакторы не открывают
+
+## Советы
+
+- Не путайте файлы Microsoft Works `.wps` с файлами WPS Office. Этот инструмент предназначен именно для старого формата Microsoft Works.
+- Движок LibreOffice загружается при первом использовании не мгновенно. После загрузки последующие конвертации в том же сеансе выполняются быстрее.
+
+## Связанные инструменты
+
+- [WPD в PDF](./wpd-to-pdf)
+- [PUB в PDF](./pub-to-pdf)
diff --git a/docs/ru/tools/xml-to-pdf.md b/docs/ru/tools/xml-to-pdf.md
new file mode 100644
index 00000000..85586230
--- /dev/null
+++ b/docs/ru/tools/xml-to-pdf.md
@@ -0,0 +1,44 @@
+---
+title: XML в PDF
+description: Конвертируйте файлы XML в структурированные PDF-документы прямо в браузере. Бесплатно, конфиденциально, без обработки на сервере.
+---
+
+# XML в PDF
+
+Конвертируйте файлы данных XML в читаемые структурированные PDF-документы. Исходный XML удобен для машин, но людям его читать трудно. Этот инструмент разбирает дерево XML, находит повторяющиеся структуры данных и отображает их как оформленные таблицы и разделы в PDF формата A4 с альбомной ориентацией.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :----- | :--------- | :------------------------------ |
+| XML | `.xml` | Любой корректно оформленный XML |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите файлы XML. В одном пакете можно обработать несколько файлов.
+2. Проверьте список файлов. Удалите ненужные значком корзины или нажмите **Добавить еще файлы**, чтобы добавить ещё.
+3. Нажмите **Преобразовать в PDF**. Инструмент разбирает структуру XML встроенным в браузер DOMParser, анализирует иерархию данных и отрисовывает её в PDF с помощью jsPDF с форматированием auto-table.
+4. Один файл скачивается как PDF. Несколько результатов упаковываются в `xml-to-pdf.zip`.
+
+## Параметры
+
+Ручная настройка не требуется. Конвертер сам определяет структуру XML и выбирает подходящую раскладку таблиц. Результат выводится в альбомной ориентации A4, чтобы поместились широкие наборы данных.
+
+## Сценарии использования
+
+- Превратить выгрузки данных XML из баз данных или API в отчёты для печати
+- Получить читаемые сводки из файлов конфигурации XML
+- Конвертировать счета или журналы транзакций в формате XML в PDF для хранения
+- Сделать карты сайта XML или ленты RSS читаемыми в виде документа
+
+## Советы
+
+- XML должен быть корректно оформлен. Если парсер встретит синтаксические ошибки, конвертация завершится сообщением об ошибке с указанием на проблему.
+- Глубоко вложенные структуры XML разворачиваются в таблицы. Лучший результат получается, если у данных есть повторяющиеся соседние элементы с одинаковым набором дочерних.
+- Во время конвертации отображаются обновления прогресса по каждому этапу: чтение, разбор, анализ и отрисовка.
+
+## Связанные инструменты
+
+- [FB2 в PDF](./fb2-to-pdf)
+- [XPS в PDF](./xps-to-pdf)
+- [Email в PDF](./email-to-pdf)
diff --git a/docs/ru/tools/xps-to-pdf.md b/docs/ru/tools/xps-to-pdf.md
new file mode 100644
index 00000000..77d32c10
--- /dev/null
+++ b/docs/ru/tools/xps-to-pdf.md
@@ -0,0 +1,43 @@
+---
+title: XPS в PDF
+description: Конвертируйте документы XPS и OXPS в PDF прямо в браузере. Без загрузки на сервер, без регистрации, полностью конфиденциально.
+---
+
+# XPS в PDF
+
+Конвертируйте документы Microsoft XPS и OXPS в обычные PDF-файлы. XPS (XML Paper Specification) был ответом Microsoft на PDF, но поддержка этого формата на разных платформах сошла на нет. Этот инструмент снова делает такие документы доступными для всех.
+
+## Поддерживаемые форматы
+
+| Формат | Расширение | Примечания |
+| :----- | :--------- | :----------------------------------- |
+| XPS | `.xps` | Исходный формат Microsoft XPS |
+| OXPS | `.oxps` | Open XPS, вариант стандарта ECMA-388 |
+
+## Как это работает
+
+1. Нажмите на область загрузки или перетащите файлы XPS/OXPS. Можно выбрать сразу несколько файлов.
+2. Проверьте список файлов. Удаляйте отдельные файлы значком корзины или нажмите **Добавить еще файлы**, чтобы добавить документы.
+3. Нажмите **Преобразовать в PDF**. Движок PyMuPDF обрабатывает каждый документ локально в вашем браузере.
+4. Один файл скачивается сразу как PDF. Несколько файлов упаковываются в ZIP-архив `xps-converted.zip`.
+
+## Параметры
+
+Этот инструмент выполняет прямую конвертацию формата без дополнительных настроек. Результат сохраняет исходные размеры страниц, векторную графику, шрифты и изображения из файла XPS.
+
+## Сценарии использования
+
+- Открыть файлы XPS, полученные из старых систем Windows, где драйвер печати XPS был выбран по умолчанию
+- Конвертировать документы OXPS из Windows 10/11 для отправки пользователям macOS или Linux
+- Архивировать старые файлы XPS в более широко поддерживаемом формате
+- Сделать документы государственных организаций и компаний в формате XPS доступными для внешних получателей
+
+## Советы
+
+- Расширения `.xps` и `.oxps` обрабатываются автоматически, поэтому их можно смешивать в одном пакете.
+- Если исходный файл XPS был создан драйвером печати с высоким разрешением, итоговый PDF сохраняет это качество. Передискретизации не происходит.
+
+## Связанные инструменты
+
+- [Word в PDF](./word-to-pdf)
+- [XML в PDF](./xml-to-pdf)
diff --git a/docs/self-hosting/docker.md b/docs/self-hosting/docker.md
index 3e19208a..8490982d 100644
--- a/docs/self-hosting/docker.md
+++ b/docs/self-hosting/docker.md
@@ -77,14 +77,19 @@ podman-compose up -d
# Dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
+ENV HUSKY=0
COPY package*.json ./
+COPY vendor ./vendor
RUN npm ci
COPY . .
RUN npm run build
FROM nginxinc/nginx-unprivileged:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
```
@@ -98,27 +103,37 @@ docker run -d -p 3000:8080 bentopdf:custom
## Environment Variables
-| Variable | Description | Default |
-| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
-| `SIMPLE_MODE` | Build the Self-Hosted variant (hides bentopdf.com marketing chrome — hero, FAQ, testimonials, footer). All PDF tools remain. | `false` |
-| `BASE_URL` | Deploy to subdirectory | `/` |
-| `VITE_WASM_PYMUPDF_URL` | PyMuPDF WASM module URL | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
-| `VITE_WASM_GS_URL` | Ghostscript WASM module URL | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
-| `VITE_WASM_CPDF_URL` | CoherentPDF WASM module URL | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
-| `VITE_TESSERACT_WORKER_URL` | OCR worker script URL | _(empty; use Tesseract.js default CDN)_ |
-| `VITE_TESSERACT_CORE_URL` | OCR core runtime directory | _(empty; use Tesseract.js default CDN)_ |
-| `VITE_TESSERACT_LANG_URL` | OCR traineddata directory | _(empty; use Tesseract.js default CDN)_ |
-| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Comma-separated OCR languages exposed in UI | _(empty; show full catalog)_ |
-| `VITE_OCR_FONT_BASE_URL` | OCR text-layer font directory | _(empty; use remote Noto font URLs)_ |
-| `VITE_DEFAULT_LANGUAGE` | Default UI language | `en` |
-| `VITE_BRAND_NAME` | Custom brand name | `BentoPDF` |
-| `VITE_BRAND_LOGO` | Logo path relative to `public/` | `images/favicon-no-bg.svg` |
-| `VITE_FOOTER_TEXT` | Custom footer/copyright text | `© 2026 BentoPDF. All rights reserved.` |
-| `DISABLE_TOOLS` | Comma-separated tool IDs to hide | _(empty; all tools enabled)_ |
-| `DISABLE_GITHUB_STARS` | Skip the GitHub star-count fetch on page load and drop `api.github.com` from the CSP. Simple Mode builds always skip it. | `false` |
+| Variable | Description | Default |
+| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Build the Self-Hosted variant (hides bentopdf.com marketing chrome — hero, FAQ, testimonials, footer). All PDF tools remain. | `false` |
+| `BASE_URL` | Deploy to subdirectory | `/` |
+| `VITE_WASM_PYMUPDF_URL` | PyMuPDF WASM module URL | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | Ghostscript WASM module URL | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | CoherentPDF WASM module URL | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | OCR worker script URL | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_CORE_URL` | OCR core runtime directory | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_LANG_URL` | OCR traineddata directory | _(empty; use Tesseract.js default CDN)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Comma-separated OCR languages exposed in UI | _(empty; show full catalog)_ |
+| `VITE_OCR_FONT_BASE_URL` | OCR text-layer font directory | _(empty; use remote Noto font URLs)_ |
+| `VITE_DEFAULT_LANGUAGE` | Default UI language | `en` |
+| `VITE_BRAND_NAME` | Custom brand name | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Logo path relative to `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Custom footer/copyright text | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | Comma-separated tool IDs to hide | _(empty; all tools enabled)_ |
+| `DISABLE_GITHUB_STARS` | Skip the GitHub star-count fetch on page load and drop `api.github.com` from the CSP. Simple Mode builds always skip it. | `false` |
+| `SITE_URL` | Public URL written into canonical, hreflang and sitemap links. Leave it at the default unless you want search engines to treat your deployment as its own site. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | With a custom `SITE_URL`, every page is marked `noindex` so your copy doesn't compete with bentopdf.com in search results. Set to `true` to let search engines index it. | `false` |
+| `COMPRESSION_MODE` | Precompressed copies to add: `o` none, `g` `.gz` (served by the image's nginx), `b` `.br`, `all` both. The image's nginx can't serve `.br`. | `o` |
WASM module URLs are pre-configured with CDN defaults — all advanced features work out of the box. Override these for air-gapped or self-hosted deployments.
+### Search engines
+
+By default, every page points search engines to bentopdf.com as the original, so your deployment doesn't show up as a duplicate. You don't need to change anything for a private or internal instance.
+
+- **Keep your instance out of search results entirely:** run the container with `-e ROBOTS_NOINDEX=true`. This only needs a restart, not a rebuild.
+- **Make your instance its own site in search results:** build with `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Without `ALLOW_INDEXING=true`, a custom `SITE_URL` marks every page `noindex`.
+
### Content-Security-Policy
The nginx image ships with an enforcing `Content-Security-Policy` header. The CSP's `script-src`, `connect-src`, and `font-src` directives are **generated at build time** from the `VITE_*` URL variables above — whatever hosts you pass via `--build-arg` are automatically added to the policy.
@@ -245,6 +260,8 @@ You can also disable specific features inside the PDF Editor (e.g., redaction, a
**Shapes:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+**Measurement:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
**Form:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
**Redaction:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
@@ -255,7 +272,7 @@ You can also disable specific features inside the PDF Editor (e.g., redaction, a
**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
-**Tools:** `tools`, `pan`, `pointer`, `capture`
+**Tools:** `tools`, `pan`, `pointer`, `capture`, `organize`
**Selection:** `selection`, `selection-copy`
diff --git a/docs/sk/contributing.md b/docs/sk/contributing.md
new file mode 100644
index 00000000..4a3a09e6
--- /dev/null
+++ b/docs/sk/contributing.md
@@ -0,0 +1,136 @@
+# Prispievanie
+
+Ďakujeme, že máte záujem prispievať do BentoPDF! Táto príručka vám pomôže začať.
+
+## Začíname
+
+### Predpoklady
+
+- Node.js 18+
+- npm 9+
+- Git
+
+### Nastavenie
+
+```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
+```
+
+## Štruktúra projektu
+
+```
+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
+```
+
+## Pridanie nového nástroja
+
+### Krok 1: Vytvorte súbor s logikou
+
+Vytvorte `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
+});
+```
+
+### Krok 2: Vytvorte HTML stránku
+
+Vytvorte `src/pages/your-tool.html` podľa existujúcich šablón nástrojov.
+
+### Krok 3: Zaregistrujte nástroj
+
+Pridajte do `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.',
+}
+```
+
+### Krok 4: Pridajte do konfigurácie buildu
+
+Pridajte stránku do `vite.config.ts`:
+
+```typescript
+'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),
+```
+
+### Krok 5: Pridajte preklady
+
+Pridajte záznamy do všetkých jazykových súborov v `public/locales/`:
+
+```json
+{
+ "yourTool": {
+ "name": "Your Tool",
+ "subtitle": "Description"
+ }
+}
+```
+
+## Štýl kódu
+
+- Pre všetok nový kód používajte TypeScript
+- Dodržiavajte existujúce vzory pre konzistentnosť
+- Pred odoslaním zmien spustite `npm run format`
+- Žiadne komentáre v produkčnom kóde (komentáre sa pri builde odstraňujú)
+
+## Postup pre pull request
+
+1. Vytvorte vetvu funkcie: `git checkout -b feature/your-feature`
+2. Vykonajte zmeny
+3. Dôkladne otestujte: `npm run build`
+4. Odošlite PR s jasným popisom
+
+## Preklady
+
+Pozrite si [TRANSLATION.md](https://github.com/alam00000/bentopdf/blob/main/TRANSLATION.md), kde nájdete postup pridania nových jazykov.
+
+## Licenčná zmluva prispievateľa
+
+Skôr než bude váš PR zlúčený, budete musieť podpísať našu CLA:
+
+- [Individuálna CLA (ICLA)](https://github.com/alam00000/bentopdf/blob/main/ICLA.md)
+- [Firemná CLA (CCLA)](https://github.com/alam00000/bentopdf/blob/main/CCLA.md)
+
+## Pomoc
+
+- [GitHub Issues](https://github.com/alam00000/bentopdf/issues)
+- [Komunita na Discorde](https://discord.gg/Bgq3Ay3f2w)
+
+## Licencia
+
+BentoPDF má duálnu licenciu:
+
+- **AGPL-3.0** pre open-source projekty, v ktorých verejne zdieľate celý zdrojový kód
+- **Komerčná licencia** pre proprietárne aplikácie so zatvoreným zdrojovým kódom - [Získajte doživotnú licenciu za $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)
+
+Prispievaním súhlasíte s tým, že vaše príspevky budú licencované za týchto podmienok.
diff --git a/docs/sk/getting-started.md b/docs/sk/getting-started.md
new file mode 100644
index 00000000..d047ad21
--- /dev/null
+++ b/docs/sk/getting-started.md
@@ -0,0 +1,80 @@
+# Začíname
+
+Vitajte v BentoPDF! Táto príručka vám pomôže rýchlo začať.
+
+## Čo je BentoPDF?
+
+BentoPDF je bezplatná open-source sada PDF nástrojov zameraná na súkromie, ktorá beží **celá vo vašom prehliadači**. Vaše súbory nikdy neopustia vaše zariadenie, všetko spracovanie prebieha lokálne pomocou technológie WebAssembly (WASM).
+
+## Rýchly štart
+
+### Možnosť 1: Použite hostovanú verziu
+
+Navštívte [bentopdf.com](https://www.bentopdf.com) a používajte BentoPDF okamžite, bez inštalácie.
+
+### Možnosť 2: Vlastný hosting pomocou Dockera
+
+> [!IMPORTANT]
+> Konverzia súborov Office vyžaduje `SharedArrayBuffer`, ktorý potrebuje obe nasledujúce hlavičky:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+> - zabezpečený kontext
+>
+> `http://localhost` funguje pri lokálnom testovaní, pretože prehliadače považujú loopback za dôveryhodný. `http://192.168.x.x` alebo iné adresy LAN zvyčajne nie, preto konverzie Wordu, Excelu a PowerPointu budú pri prístupe z iných zariadení vo vašej sieti vyžadovať 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 sa dodáva v dvoch zostaveniach: **Self-Hosted build** (`bentopdf-simple`, použitý vyššie) pre interné nasadenia v tímoch a organizáciách a **Commercial build** (`bentopdf:latest`), ktorý používa samotný bentopdf.com a držitelia komerčnej licencie s verejne dostupnými nasadeniami. Obe obsahujú rovnaké PDF nástroje, Commercial build navyše pridáva hero sekciu bentopdf.com, FAQ, referencie a pätičku. Ak si nie ste istí, použite Self-Hosted build.
+
+Potom otvorte `http://localhost:3000` vo svojom prehliadači.
+
+> [!NOTE]
+> Ak pripravujete nasadenie OCR v izolovanom prostredí (air-gapped), okrem workera Tesseract, jadra runtime a súborov traineddata musíte interne hostovať aj písma textovej vrstvy OCR. Úplný postup je zdokumentovaný v časti [Vlastný hosting](/sk/self-hosting/), vrátane `VITE_OCR_FONT_BASE_URL` a priloženého adresára `ocr-fonts/`.
+
+### Možnosť 3: Zostavenie zo zdrojového kódu
+
+```bash
+# Clone the repository
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+
+# Install dependencies
+npm install
+
+# Start development server
+npm run dev
+```
+
+## Funkcie v kocke
+
+| Kategória | Nástroje |
+| --------------------- | ---------------------------------------------------------------- |
+| **Konverzia do PDF** | Word, Excel, PowerPoint, obrázky, Markdown, EPUB, MOBI a ďalšie |
+| **Konverzia z PDF** | JPG, PNG, text, Excel, SVG a ďalšie |
+| **Úpravy a poznámky** | Podpis, zvýraznenie, začiernenie, vyplnenie formulárov, pečiatky |
+| **Organizácia** | Zlúčenie, rozdelenie, otočenie, odstránenie strán, zmena poradia |
+| **Optimalizácia** | Kompresia, oprava, zploštenie, OCR |
+| **Zabezpečenie** | Šifrovanie, dešifrovanie, odstránenie obmedzení |
+
+## Podpora prehliadačov
+
+BentoPDF funguje najlepšie v moderných prehliadačoch:
+
+- ✅ Chrome/Edge 90+
+- ✅ Firefox 90+
+- ✅ Safari 15+
+
+## Ďalšie kroky
+
+- [Preskúmajte všetky nástroje](/sk/tools/)
+- [Vlastný hosting BentoPDF](/sk/self-hosting/)
+- [Prispejte do projektu](/sk/contributing)
diff --git a/docs/sk/index.md b/docs/sk/index.md
new file mode 100644
index 00000000..5bbf0ed3
--- /dev/null
+++ b/docs/sk/index.md
@@ -0,0 +1,42 @@
+---
+# https://vitepress.dev/reference/default-theme-home-page
+layout: home
+
+hero:
+ name: 'BentoPDF'
+ text: 'Bezplatné open-source PDF nástroje'
+ tagline: Spracujte PDF úplne vo svojom prehliadači. Bez nahrávania. Bez serverov. Úplné súkromie.
+ actions:
+ - theme: brand
+ text: Začať
+ link: /sk/getting-started
+ - theme: alt
+ text: Zobraziť nástroje
+ link: /sk/tools/
+ - theme: alt
+ text: Vlastný hosting
+ link: /sk/self-hosting/
+ - theme: alt
+ text: Komerčná licencia
+ link: /sk/licensing
+
+features:
+ - icon: 🔒
+ title: 100% súkromné
+ details: Vaše súbory nikdy neopustia vaše zariadenie. Všetko spracovanie prebieha lokálne vo vašom prehliadači pomocou WebAssembly.
+ - icon: ⚡
+ title: Rýchle a zadarmo
+ details: Bez registrácií, bez limitov, bez vodoznakov. Spracujte neobmedzený počet PDF zadarmo, navždy.
+ - icon: 🛠️
+ title: Viac ako 50 nástrojov
+ details: Konvertujte, upravujte, zlučujte, rozdeľujte, komprimujte, podpisujte, použite OCR a ďalšie. Všetko, čo potrebujete, na jednom mieste.
+
+ - icon: 🌐
+ title: Možnosť vlastného hostingu
+ details: Nasaďte na vlastnej infraštruktúre. Docker, Vercel, Netlify, AWS alebo úplne izolované (air-gapped) prostredia s vlastnými OCR workermi, jazykovými dátami a písmami textovej vrstvy.
+---
+
+## Offline OCR
+
+Ak hostujete BentoPDF vo vlastnom izolovanom (air-gapped) alebo offline prostredí, OCR potrebuje viac než worker Tesseract a súbory traineddata. Výstup vo forme PDF s možnosťou vyhľadávania vyžaduje aj to, aby boli písma textovej vrstvy OCR poskytované interne.
+Úplný postup, vrátane `VITE_OCR_FONT_BASE_URL`, priloženého adresára `ocr-fonts/` a aktualizovaného postupu pre air-gap, nájdete v časti [Vlastný hosting](/sk/self-hosting/).
diff --git a/docs/sk/licensing.md b/docs/sk/licensing.md
new file mode 100644
index 00000000..44ae079f
--- /dev/null
+++ b/docs/sk/licensing.md
@@ -0,0 +1,110 @@
+# 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](/sk/self-hosting/#konfiguracia-wasm-komponenty-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) | ✅ |
+| Hyper Compress (bundled) | ✅ |
+| Commercial support | ✅ (via email) |
+| Priority feature requests | ✅ |
+
+## Bundled Components
+
+**Building on BentoPDF? Hyper Compress is included.** The BentoPDF commercial license includes [Hyper Compress](https://github.com/alam00000/bentopdf-hyper-compress) as a bundled component, so you don't need a separate Hyper Compress license to use it inside BentoPDF.
+
+You may use a bundled component only through BentoPDF's own tools, as part of the BentoPDF application you deploy, including your branded or modified version of BentoPDF. You may not:
+
+- call it from your own code through an API, SDK, command line, or headless or server process;
+- separate, repackage or sublicense it, or use it in other software;
+- offer a product or service whose main purpose is what the bundled component does, such as a compression-only app or website;
+- modify the bundled component itself.
+
+Any other use requires a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. [Kura](https://github.com/alam00000/bentopdf-kura) is not a bundled component and is always licensed separately, with [commercial licenses](https://www.bentopdf.com/kura#pricing) from $99/year.
+
+## 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.
+
+### Does the commercial license cover Hyper Compress or Kura?
+
+Hyper Compress, yes, when you use it through BentoPDF. It is included as a [bundled component](#bundled-components). Using the engine on its own, or inside other software, needs a separate [Hyper Compress license](https://www.bentopdf.com/hyper-compress#pricing), from $99/year. Kura is not included and is licensed separately, from [$99/year](https://www.bentopdf.com/kura#pricing).
+
+### 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.
diff --git a/docs/sk/self-hosting/apache.md b/docs/sk/self-hosting/apache.md
new file mode 100644
index 00000000..f2fe898d
--- /dev/null
+++ b/docs/sk/self-hosting/apache.md
@@ -0,0 +1,275 @@
+# Nasadenie s Apache
+
+Hosťujte BentoPDF pomocou Apache HTTP Server.
+
+## Predpoklady
+
+- Apache 2.4+
+- zapnutý mod_rewrite
+- SSL certifikát (odporúčané)
+
+## Krok 1: Zostavenie projektu
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Ak chcete prispôsobiť značku, pred zostavením nastavte premenné prostredia:
+
+```bash
+VITE_BRAND_NAME="AcmePDF" VITE_BRAND_LOGO="images/acme-logo.svg" npm run build
+```
+
+## Krok 2: Skopírovanie súborov
+
+```bash
+sudo mkdir -p /var/www/bentopdf
+sudo cp -r dist/* /var/www/bentopdf/
+sudo chown -R www-data:www-data /var/www/bentopdf
+```
+
+## Krok 3: Konfigurácia Apache
+
+Vytvorte `/etc/apache2/sites-available/bentopdf.conf`:
+
+```apache
+
+ ServerName your-domain.com
+ Redirect permanent / https://your-domain.com/
+
+
+
+ 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
+
+
+ Options -Indexes +FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+ # WASM MIME type
+ AddType application/wasm .wasm
+
+ # Prevent double-compression of pre-compressed files
+ SetEnvIfNoCase Request_URI "\.gz$" no-gzip
+
+ # Compression
+
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
+
+
+ # Cache headers
+
+ 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"
+
+
+ # 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+
+```
+
+## Krok 4: .htaccess pre smerovanie
+
+Vytvorte `/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
+```
+
+## Krok 5: Zapnutie potrebných modulov
+
+```bash
+sudo a2enmod rewrite
+sudo a2enmod ssl
+sudo a2enmod headers
+sudo a2enmod expires
+sudo a2enmod deflate
+```
+
+## Krok 6: Zapnutie stránky
+
+```bash
+sudo a2ensite bentopdf.conf
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+## Nasadenie do podadresára
+
+Hosťovanie na `/pdf/`:
+
+1. Zostavte so základnou URL:
+
+```bash
+BASE_URL=/pdf/ npm run build
+```
+
+2. Upravte `.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
+```
+
+## Riešenie problémov
+
+### Chyby 404 pri WASM
+
+Uistite sa, že je nastavený MIME typ:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Podpísať PDF alebo Vypĺňanie formulárov zobrazuje prázdny prehliadač (chyba MIME pri `.mjs`)
+
+Ak konzola prehliadača zobrazuje:
+
+```
+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.
+```
+
+…a zlyhávajúca požiadavka končí na `.mjs`, vo vašej konfigurácii Apache chýba mapovanie `.mjs → application/javascript`. Pribalený PDF prehliadač obsahuje súbory ES modulov s príponou `.mjs` a predvolený `mime.types` v Apache ich štandardne nezahŕňa.
+
+Pridajte do VirtualHost alebo `.htaccess`:
+
+```apache
+AddType application/javascript .mjs
+```
+
+Potom znovu načítajte Apache:
+
+```bash
+sudo apache2ctl configtest && sudo systemctl reload apache2
+```
+
+Overenie: v DevTools prehliadača → karta Network nájdite zlyhávajúcu požiadavku `.mjs` a skontrolujte hlavičku odpovede `Content-Type`. Teraz by mala byť `application/javascript`, nie `application/octet-stream`.
+
+### Prepisovanie nefunguje
+
+Skontrolujte, či je zapnutý mod_rewrite:
+
+```bash
+sudo a2enmod rewrite
+```
+
+### Prevod Word/ODT/Excel do PDF nefunguje
+
+LibreOffice WASM vyžaduje `SharedArrayBuffer`, ktorý potrebuje tieto hlavičky:
+
+```apache
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+Header always set Cross-Origin-Opener-Policy "same-origin"
+```
+
+Potrebuje aj zabezpečený kontext. `http://localhost` funguje na lokálne testovanie, ale `http://192.168.x.x` alebo iné IP adresy v LAN zvyčajne vyžadujú HTTPS. Ak sú hlavičky prítomné, no `window.crossOriginIsolated` je stále `false`, skontrolujte, či sa stránka neotvára cez obyčajné HTTP na inom pôvode ako loopback.
+
+Predkomprimované súbory `.wasm.gz` a `.data.gz` tiež potrebujú správne `Content-Encoding`:
+
+```apache
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+
+```
+
+Uistite sa, že je zapnutý `mod_headers`: `sudo a2enmod headers`
+
+### Prístup zamietnutý
+
+```bash
+sudo chown -R www-data:www-data /var/www/bentopdf
+sudo chmod -R 755 /var/www/bentopdf
+```
diff --git a/docs/sk/self-hosting/aws.md b/docs/sk/self-hosting/aws.md
new file mode 100644
index 00000000..857f1e68
--- /dev/null
+++ b/docs/sk/self-hosting/aws.md
@@ -0,0 +1,200 @@
+# Nasadenie na AWS S3 + CloudFront
+
+Hosťujte BentoPDF na AWS pre maximálnu kontrolu a škálovateľnosť.
+
+## Architektúra
+
+```
+User → CloudFront (CDN) → S3 (Static Files)
+```
+
+## Krok 1: Vytvorenie S3 bucketu
+
+```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
+```
+
+## Krok 2: Zostavenie a nahranie
+
+```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
+```
+
+## Krok 3: Vytvorenie CloudFront distribúcie
+
+```bash
+aws cloudfront create-distribution \
+ --origin-domain-name your-bentopdf-bucket.s3.amazonaws.com \
+ --default-root-object index.html
+```
+
+Alebo použite AWS Console:
+
+1. Prejdite do CloudFront → Create distribution
+2. Origin domain: vyberte svoj S3 bucket
+3. Zapnite „Origin Access Control“
+4. Default root object: `index.html`
+5. Vytvorte distribúciu
+
+## Krok 3b: Politika hlavičiek odpovede (potrebná pre LibreOffice WASM)
+
+Prevody založené na LibreOffice (Word, Excel, PowerPoint do PDF) vyžadujú `SharedArrayBuffer`, ktorý potrebuje konkrétne hlavičky odpovede. Vytvorte CloudFront Response Headers Policy:
+
+1. Prejdite do CloudFront → Policies → Response headers
+2. Vytvorte vlastnú politiku s týmito hlavičkami:
+
+| Hlavička | Hodnota |
+| ------------------------------ | -------------- |
+| `Cross-Origin-Embedder-Policy` | `require-corp` |
+| `Cross-Origin-Opener-Policy` | `same-origin` |
+| `Cross-Origin-Resource-Policy` | `cross-origin` |
+
+3. Pripojte politiku k predvolenému správaniu cache vašej distribúcie
+
+Alebo cez 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}
+ ]
+ }
+ }'
+```
+
+## Krok 3c: S3 metadáta pre predkomprimované WASM súbory
+
+Súbory LibreOffice WASM sú predkomprimované (`.wasm.gz`, `.data.gz`). Nastavte správne Content-Type a Content-Encoding, aby ich prehliadače dekomprimovali:
+
+```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 Dôležité
+Bez politiky hlavičiek odpovede nie je `SharedArrayBuffer` dostupný a prevody cez LibreOffice WASM sa zaseknú na ~55 %. Bez správneho Content-Encoding na súboroch `.gz` dostane prehliadač surové gzip bajty a kompilácia WASM zlyhá.
+:::
+
+## Krok 4: Politika S3 bucketu
+
+Povoľte CloudFront prístup k bucketu:
+
+```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"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Krok 5: Vlastné chybové stránky
+
+Nastavte, aby 404 vracala `index.html` pre smerovanie SPA:
+
+1. CloudFront → Error pages
+2. Vytvorte vlastnú chybovú odpoveď:
+ - HTTP error code: 404
+ - Response page path: `/index.html`
+ - HTTP response code: 200
+
+## Odhad nákladov
+
+| Zdroj | Odhadované náklady |
+| ------------------------- | ------------------ |
+| Úložisko S3 (~500MB) | ~$0.01/mesiac |
+| CloudFront (1TB prenosu) | ~$85/mesiac |
+| CloudFront (10GB prenosu) | ~$0.85/mesiac |
+
+::: tip
+Na optimalizáciu nákladov pri zriedka používaných súboroch použite S3 Intelligent Tiering.
+:::
+
+## Automatizácia s 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"
+ }
+}
+```
diff --git a/docs/sk/self-hosting/cloudflare.md b/docs/sk/self-hosting/cloudflare.md
new file mode 100644
index 00000000..04a12eca
--- /dev/null
+++ b/docs/sk/self-hosting/cloudflare.md
@@ -0,0 +1,154 @@
+# Nasadenie na Cloudflare Pages
+
+[Cloudflare Pages](https://pages.cloudflare.com) ponúka rýchly globálny hosting statických stránok s neobmedzeným prenosom dát.
+
+## Rýchle nasadenie
+
+1. Prejdite na [Cloudflare Pages](https://dash.cloudflare.com/?to=/:account/pages)
+2. Kliknite na „Create a project“
+3. Pripojte svoj GitHub repozitár
+
+## Konfigurácia zostavenia
+
+| Nastavenie | Hodnota |
+| ---------------------- | --------------- |
+| Framework preset | None |
+| Build command | `npm run build` |
+| Build output directory | `dist` |
+| Root directory | `/` |
+
+## Premenné prostredia
+
+Pridajte ich v Settings → Environment variables:
+
+| Premenná | Hodnota |
+| ----------------------- | -------------------------------------------------- |
+| `NODE_VERSION` | `18` |
+| `SIMPLE_MODE` | `false` (voliteľné) |
+| `VITE_BRAND_NAME` | Vlastný názov značky (voliteľné) |
+| `VITE_BRAND_LOGO` | Cesta k logu relatívne k `public/` (voliteľné) |
+| `VITE_FOOTER_TEXT` | Vlastný text päty/copyrightu (voliteľné) |
+| `VITE_DEFAULT_LANGUAGE` | Predvolený jazyk rozhrania, napr. `fr` (voliteľné) |
+
+## Konfiguračný súbor
+
+Vytvorte `_headers` v priečinku `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 Dôležité
+Hlavičky `Cross-Origin-Embedder-Policy` a `Cross-Origin-Opener-Policy` sú potrebné na prevody Word/ODT/Excel/PowerPoint do PDF. Bez nich nie je `SharedArrayBuffer` dostupný a engine LibreOffice WASM sa nepodarí inicializovať.
+:::
+
+Vytvorte `_redirects` pre smerovanie SPA:
+
+```
+/* /index.html 200
+```
+
+## Vlastná doména
+
+1. Prejdite do svojho projektu Pages
+2. Kliknite na „Custom domains“
+3. Pridajte svoju doménu
+4. Ak je doména na Cloudflare, Cloudflare automaticky nastaví DNS
+
+## Výhody
+
+- **Neobmedzený prenos dát zadarmo**
+- **Globálne CDN** s viac ako 300 okrajovými lokalitami
+- **Automatické HTTPS**
+- **Náhľadové nasadenia** pre pull requesty
+- **Rýchle zostavenia**
+
+## Riešenie problémov
+
+### Nahrávanie veľkých súborov
+
+Cloudflare Pages podporuje súbory do 25 MB. WASM moduly by mali byť v poriadku, no ak narazíte na limity, zvážte:
+
+```bash
+# Split large files during build
+npm run build
+```
+
+### Limity veľkosti Workera
+
+Ak používate Cloudflare Workers na pokročilé smerovanie, myslite na limit 1 MB v bezplatných plánoch.
+
+## CORS proxy Worker (pre digitálne podpisy)
+
+Nástroj Digitálny podpis potrebuje CORS proxy na získanie reťazcov certifikátov. Nasaďte priložený worker:
+
+```bash
+cd cloudflare
+npx wrangler login
+npx wrangler deploy
+```
+
+### Bezpečnostné funkcie
+
+| Funkcia | Popis |
+| ---------------------------- | -------------------------------- |
+| **Obmedzenia URL** | Povolené sú len URL certifikátov |
+| **Limit veľkosti súboru** | Max. 10MB na požiadavku |
+| **Obmedzenie frekvencie** | 60 pož./IP/min (vyžaduje KV) |
+| **Blokovanie súkromných IP** | Blokuje localhost a interné IP |
+
+### Zapnutie obmedzenia frekvencie
+
+```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
+```
+
+### Zostavenie s URL proxy
+
+```bash
+VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+```
+
+Alebo s 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 .
+```
+
+> **Poznámka:** Nastavenie HMAC podpisu nájdete v [README](https://github.com/alam00000/bentopdf#digital-signature-cors-proxy-required).
diff --git a/docs/sk/self-hosting/cors-proxy.md b/docs/sk/self-hosting/cors-proxy.md
new file mode 100644
index 00000000..dbef46d1
--- /dev/null
+++ b/docs/sk/self-hosting/cors-proxy.md
@@ -0,0 +1,180 @@
+# CORS proxy na získavanie certifikátov
+
+Nástroj na digitálny podpis používa CORS proxy na získavanie certifikátov vydavateľov od externých certifikačných autorít (CA). Je to potrebné, pretože mnohé servery CA vo svojich odpovediach neuvádzajú hlavičky CORS, čo bráni priamemu získaniu v prehliadači.
+
+Mnohé servery CA navyše poskytujú certifikáty cez obyčajné HTTP. Keď je vaša inštancia BentoPDF hosťovaná cez HTTPS, prehliadače tieto HTTP požiadavky blokujú (politika zmiešaného obsahu). CORS proxy rieši oba problémy tým, že požiadavky smeruje cez HTTPS endpoint so správnymi hlavičkami.
+
+## Ako to funguje
+
+Pri podpisovaní PDF certifikátom:
+
+1. Knižnica `zgapdfsigner` sa pokúsi zostaviť úplný reťazec certifikátov
+2. Získava certifikáty vydavateľov z URL vložených v rozšírení AIA (Authority Information Access) vášho certifikátu
+3. Tieto požiadavky idú cez CORS proxy, ktorá pridá potrebné hlavičky `Access-Control-Allow-Origin`
+4. Proxy vráti údaje certifikátu prehliadaču
+
+## Vlastné hosťovanie CORS proxy
+
+Ak BentoPDF hosťujete sami, musíte nasadiť vlastnú CORS proxy, aby digitálne podpisy fungovali s certifikátmi, ktoré vyžadujú získanie reťazca.
+
+### Možnosť 1: Cloudflare Workers (odporúčané)
+
+1. **Nainštalujte Wrangler CLI**:
+
+ ```bash
+ npm install -g wrangler
+ ```
+
+2. **Prihláste sa do Cloudflare**:
+
+ ```bash
+ wrangler login
+ ```
+
+3. **Naklonujte BentoPDF a upravte povolené pôvody**:
+
+ ```bash
+ git clone https://github.com/alam00000/bentopdf.git
+ cd bentopdf/cloudflare
+ ```
+
+ Otvorte `cors-proxy-worker.js` a zmeňte pole `ALLOWED_ORIGINS` na svoju doménu:
+
+ ```js
+ const ALLOWED_ORIGINS = [
+ 'https://your-domain.com',
+ 'https://www.your-domain.com',
+ ];
+ ```
+
+ ::: warning Dôležité
+ Bez tejto zmeny proxy odmietne všetky požiadavky z vašej stránky s chybou **403 Forbidden**. Predvolene povoľuje len požiadavky z `bentopdf.com`.
+ :::
+
+4. **Nasaďte proxy**:
+
+ ```bash
+ wrangler deploy
+ ```
+
+ Poznačte si URL svojho workera (napr. `https://bentopdf-cors-proxy.your-subdomain.workers.dev`).
+
+5. **Znovu zostavte BentoPDF s URL proxy**:
+
+ Ak používate 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 .
+ ```
+
+ Ak zostavujete zo zdrojového kódu:
+
+ ```bash
+ VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build
+ ```
+
+### Možnosť 2: Vlastná backendová proxy
+
+Môžete si vytvoriť aj vlastný proxy endpoint. Požiadavky sú:
+
+1. Prijíma GET požiadavky s parametrom dotazu `url`
+2. Získa URL zo servera (na strane servera neplatia obmedzenia CORS)
+3. Vráti odpoveď s týmito hlavičkami:
+ - `Access-Control-Allow-Origin: https://your-domain.com`
+ - `Access-Control-Allow-Methods: GET, OPTIONS`
+ - `X-Content-Type-Options: nosniff`
+
+Príklad implementácie v 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' });
+ }
+});
+```
+
+## Bezpečnostné hľadiská
+
+Priložený Cloudflare Worker má niekoľko bezpečnostných opatrení:
+
+| Funkcia | Popis |
+| ---------------------------- | ------------------------------------------------------------------------------------------- |
+| **Overenie pôvodu** | Povoľuje len požiadavky z domén uvedených v `ALLOWED_ORIGINS` |
+| **Obmedzenia URL** | Povoľuje len URL certifikátov (`.crt`, `.cer`, `.pem`, `/certs/`, `/ocsp`, `/crl`) |
+| **Blokovanie súkromných IP** | Blokuje súkromné rozsahy IPv4/IPv6, link-local, loopback, desiatkové IP a cloudové metadáta |
+| **Bezpečnosť Content-Type** | Vracia len bezpečné MIME typy certifikátov, blokuje vloženie content-type zo zdroja |
+| **Limit veľkosti súboru** | Streamuje odpoveď s limitom 10MB, pri prekročení preruší sťahovanie |
+| **Obmedzenie frekvencie** | 60 požiadaviek za minútu na IP alebo IPv6 /64 (vyžaduje KV, pri chybách KV prepúšťa) |
+| **HMAC podpisy** | Voliteľné podpisovanie na strane klienta (odrádza od bežného zneužitia) |
+
+### DNS rebinding (vlastné hosťovanie mimo Cloudflare)
+
+Worker odmietne každú URL, ktorá sa preloží na súkromnú alebo internú IP. Nemôže použiť pevný zoznam povolených hostiteľov, pretože URL reťazca certifikátov smerujú na CA, ktorá certifikát vydala (FNMT, firemné CA a podobne), takže ciele nie sú vopred známe. Zostáva tak malé okno pre rebinding: niekto, kto spravuje DNS svojej domény, môže bezpečnostnej kontrole vrátiť verejnú IP a o chvíľu neskôr skutočnej požiadavke súkromnú.
+
+Na Cloudflare sa to nedá zneužiť: Workers nedosiahnu súkromné IP ani metadátový endpoint `169.254.169.254`, takže rebind nikam nevedie. Len workerovi neotvárajte cestu dnu: nepripájajte Tunnel, Service ani väzbu na súkromnú sieť (potrebuje iba `RATE_LIMIT_KV`).
+
+Ak ho prevádzkujete mimo Cloudflare (workerd, Node a podobne) vo VPC, runtime _môže_ dosiahnuť interné IP. Predraďte mu firewall pre odchádzajúcu prevádzku a zablokujte súkromné rozsahy: `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` a ich IPv6 ekvivalenty. Mimo Cloudflare to kód aplikácie vynútiť nedokáže.
+
+## Vypnutie proxy
+
+Ak nechcete používať CORS proxy, nastavte premennú prostredia na prázdny reťazec:
+
+```
+VITE_CORS_PROXY_URL=
+```
+
+**Poznámka**: Bez proxy zlyhá podpisovanie certifikátmi, ktoré vyžadujú externé získanie reťazca (napríklad FNMT alebo niektoré firemné CA), s chybou „Failed to fetch“.
+
+## Riešenie problémov
+
+### "Signing error: TypeError: Failed to fetch"
+
+Zvyčajne to znamená jedno z toho:
+
+1. **Nie je nastavená CORS proxy**: nastavte `VITE_CORS_PROXY_URL` a znovu zostavte
+2. **Zablokovaný zmiešaný obsah**: vaša stránka je na HTTPS, ale URL vydavateľa certifikátu je HTTP. CORS proxy to rieši.
+3. **CORS proxy odmieta váš pôvod**: skontrolujte, či je vaša doména v poli `ALLOWED_ORIGINS` v `cors-proxy-worker.js`
+
+### "403 Forbidden" z proxy
+
+Vaša doména nie je v zozname `ALLOWED_ORIGINS`. Upravte `cors-proxy-worker.js`:
+
+```js
+const ALLOWED_ORIGINS = ['https://your-domain.com'];
+```
+
+Potom znovu nasaďte: `npx wrangler deploy`
+
+### Testovanie proxy
+
+```bash
+curl -H "Origin: https://your-domain.com" \
+ "https://your-proxy.workers.dev?url=http://www.cert.fnmt.es/certs/ACUSU.crt"
+```
+
+### Certifikáty, ktoré fungujú bez proxy
+
+Niektoré certifikáty obsahujú úplný reťazec v súbore P12/PFX a nevyžadujú externé získavanie:
+
+- Certifikáty podpísané samým sebou
+- Niektoré komerčné CA, ktoré pribaľujú medziľahlé certifikáty
+- Certifikáty, ktoré ste ručne zostavili s úplným reťazcom
diff --git a/docs/sk/self-hosting/docker.md b/docs/sk/self-hosting/docker.md
new file mode 100644
index 00000000..8f373348
--- /dev/null
+++ b/docs/sk/self-hosting/docker.md
@@ -0,0 +1,630 @@
+# Nasadenie s Docker / Podman
+
+Najjednoduchší spôsob, ako BentoPDF hosťovať sami v produkčnom prostredí.
+
+> [!IMPORTANT]
+> **Potrebné hlavičky pre prevod súborov Office**
+>
+> Nástroje založené na LibreOffice (prevod Word, Excel, PowerPoint) vyžadujú pre podporu `SharedArrayBuffer` tieto HTTP hlavičky:
+>
+> - `Cross-Origin-Opener-Policy: same-origin`
+> - `Cross-Origin-Embedder-Policy: require-corp`
+>
+> Stránka sa musí poskytovať aj v zabezpečenom kontexte. `http://localhost` funguje na lokálne testovanie, ale `http://192.168.x.x` ani iné IP adresy v LAN zvyčajne nevyhovujú, takže prevod Office cez obyčajné HTTP zlyhá, aj keď hlavičky existujú.
+>
+> Oficiálne obrazy kontajnerov tieto hlavičky obsahujú. Ak používate reverznú proxy (Traefik, Caddy a pod.), zaistite, aby sa hlavičky zachovali alebo pridali, a pre prístup mimo loopback používajte HTTPS.
+
+> [!TIP]
+> **Používatelia Podman:** Všetky príkazy `docker` fungujú s Podman, ak nahradíte `docker` za `podman` a `docker-compose` za `podman-compose`.
+
+## Rýchly štart
+
+> [!TIP]
+> BentoPDF sa dodáva v dvoch zostaveniach:
+>
+> - **Zostavenie Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Všetky PDF nástroje **bez** marketingových prvkov (bez úvodnej sekcie, FAQ, referencií a päty). Použite ho na interné, tímové a firemné nasadenia. **Nie je** to ochudobnená „lite“ verzia.
+> - **Komerčné zostavenie**: `ghcr.io/alam00000/bentopdf:latest`. Úplná marketingová stránka, ktorú používa samotné bentopdf.com a držitelia komerčnej licencie s verejnými nasadeniami.
+>
+> Ak si nie ste istí, stiahnite zostavenie Self-Hosted.
+
+```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
+
+Vytvorte `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
+```
+
+Spustite:
+
+```bash
+# Docker Compose
+docker compose up -d
+
+# Podman Compose
+podman-compose up -d
+```
+
+## Zostavenie vlastného obrazu
+
+```dockerfile
+# Dockerfile
+FROM node:20-alpine AS builder
+WORKDIR /app
+ENV HUSKY=0
+COPY package*.json ./
+COPY vendor ./vendor
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM nginxinc/nginx-unprivileged:alpine
+COPY --from=builder /app/dist /usr/share/nginx/html
+COPY --from=builder /app/security-headers.conf /etc/nginx/security-headers.conf
+COPY --from=builder /app/security-headers-docs.conf /etc/nginx/security-headers-docs.conf
+COPY nginx.conf /etc/nginx/nginx.conf
+RUN mkdir -p /etc/nginx/tmp
+EXPOSE 8080
+CMD ["nginx", "-g", "daemon off;"]
+```
+
+Zostavte a spustite:
+
+```bash
+docker build -t bentopdf:custom .
+docker run -d -p 3000:8080 bentopdf:custom
+```
+
+## Premenné prostredia
+
+| Premenná | Popis | Predvolené |
+| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `SIMPLE_MODE` | Zostaví variant Self-Hosted (skryje marketingové prvky bentopdf.com: úvodnú sekciu, FAQ, referencie, pätu). Všetky PDF nástroje zostanú. | `false` |
+| `BASE_URL` | Nasadenie do podadresára | `/` |
+| `VITE_WASM_PYMUPDF_URL` | URL modulu PyMuPDF WASM | `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/` |
+| `VITE_WASM_GS_URL` | URL modulu Ghostscript WASM | `https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/` |
+| `VITE_WASM_CPDF_URL` | URL modulu CoherentPDF WASM | `https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/` |
+| `VITE_TESSERACT_WORKER_URL` | URL skriptu OCR workera | _(prázdne; použije sa predvolené CDN Tesseract.js)_ |
+| `VITE_TESSERACT_CORE_URL` | Priečinok základného runtime OCR | _(prázdne; použije sa predvolené CDN Tesseract.js)_ |
+| `VITE_TESSERACT_LANG_URL` | Priečinok OCR traineddata | _(prázdne; použije sa predvolené CDN Tesseract.js)_ |
+| `VITE_TESSERACT_AVAILABLE_LANGUAGES` | Jazyky OCR zobrazené v rozhraní, oddelené čiarkou | _(prázdne; zobrazí sa celý katalóg)_ |
+| `VITE_OCR_FONT_BASE_URL` | Priečinok písiem textovej vrstvy OCR | _(prázdne; použijú sa vzdialené URL písiem Noto)_ |
+| `VITE_DEFAULT_LANGUAGE` | Predvolený jazyk rozhrania | `en` |
+| `VITE_BRAND_NAME` | Vlastný názov značky | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Cesta k logu relatívne k `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Vlastný text päty/copyrightu | `© 2026 BentoPDF. All rights reserved.` |
+| `DISABLE_TOOLS` | ID nástrojov na skrytie, oddelené čiarkou | _(prázdne; všetky nástroje zapnuté)_ |
+| `DISABLE_GITHUB_STARS` | Vynechá získanie počtu hviezdičiek GitHub pri načítaní stránky a odstráni `api.github.com` z CSP. Zostavenia Simple Mode ho vynechávajú vždy. | `false` |
+| `SITE_URL` | Verejná URL zapísaná do odkazov canonical, hreflang a sitemap. Nechajte predvolenú hodnotu, pokiaľ nechcete, aby vyhľadávače považovali vaše nasadenie za samostatnú stránku. | `https://www.bentopdf.com` |
+| `ALLOW_INDEXING` | S vlastnou `SITE_URL` je každá stránka označená `noindex`, aby vaša kópia nekonkurovala bentopdf.com vo výsledkoch vyhľadávania. Nastavte na `true`, ak ju majú vyhľadávače indexovať. | `false` |
+| `COMPRESSION_MODE` | Predkomprimované kópie uložené vedľa každého súboru: `o` žiadne, `g` `.gz` (servíruje ich nginx v obraze), `b` `.br`, `all` obe. Nginx v obraze nevie servírovať `.br`. | `o` |
+
+URL WASM modulov sú vopred nastavené na predvolené CDN, takže všetky pokročilé funkcie fungujú hneď. Pri izolovaných (air-gapped) alebo vlastných nasadeniach ich prepíšte.
+
+### Vyhľadávače
+
+Predvolene každá stránka označuje pre vyhľadávače bentopdf.com ako originál, takže sa vaše nasadenie nezobrazí ako duplikát. Pri súkromnej alebo internej inštancii nemusíte nič meniť.
+
+- **Úplne vylúčiť inštanciu z výsledkov vyhľadávania:** spustite kontajner s `-e ROBOTS_NOINDEX=true`. Stačí reštart, nie nové zostavenie.
+- **Zobrazovať inštanciu vo výsledkoch vyhľadávania ako samostatnú stránku:** zostavte s `--build-arg SITE_URL=https://your-domain.example --build-arg ALLOW_INDEXING=true`. Bez `ALLOW_INDEXING=true` vlastná `SITE_URL` označí každú stránku ako `noindex`.
+
+### Content-Security-Policy
+
+Obraz nginx obsahuje vynucovanú hlavičku `Content-Security-Policy`. Direktívy CSP `script-src`, `connect-src` a `font-src` sa **generujú pri zostavení** z vyššie uvedených URL premenných `VITE_*`, takže hostitelia, ktorých odovzdáte cez `--build-arg`, sa do politiky pridajú automaticky.
+
+Výsledok:
+
+- Ak pri zostavení prepíšete `VITE_CORS_PROXY_URL` alebo `VITE_WASM_*_URL`, CSP tieto pôvody automaticky povolí, bez ďalšej konfigurácie.
+- Pri URL na `cdn.jsdelivr.net` povoľuje `script-src` len presný priečinok balíka s verziou, napríklad `https://cdn.jsdelivr.net/npm/@bentopdf/pymupdf-wasm@0.11.16/`, nie celé CDN. jsDelivr poskytuje akýkoľvek verejný npm balík alebo GitHub repozitár, takže povolenie celého hostiteľa by umožnilo spustiť na vašej inštancii ktorýkoľvek z nich. URL na iných hostiteľoch sa povoľujú podľa pôvodu.
+- Ak nastavíte vlastné WASM URL _za behu_ na stránke Rozšírené nastavenia v aplikácii, tieto pôvody **nie sú** v CSP a prehliadač požiadavky na ne zablokuje. Platí to aj pre inú verziu toho istého balíka na `cdn.jsdelivr.net`, pretože povolená je len verzia nastavená pri zostavení. Konfigurácia za behu je určená na experimenty; pre trvalé vlastné URL nastavte zodpovedajúci build arg `VITE_*`.
+- Izolované nasadenia, ktoré prepíšu všetky tri hodnoty `VITE_WASM_*_URL`, majú tieto priečinky balíkov na `cdn.jsdelivr.net` z CSP odstránené (každá predvolená hodnota sa nahradí, nepridá). Predvolené hodnoty Tesseract OCR na `cdn.jsdelivr.net` zostávajú v politike, kým nenastavíte aj tri hodnoty `VITE_TESSERACT_*`. Podobne nastavenie `VITE_CORS_PROXY_URL` nahradí verejnú predvolenú `bentopdf-cors-proxy.bentopdf.workers.dev`.
+
+CSP obsahuje `'unsafe-eval'` v `script-src`, pretože runtime LibreOffice WASM (používaný nástrojmi na prevod Word/Excel/PowerPoint) a knižnica obrázkov wasm-vips (používaná pri PDF do TIFF) kompilujú interný kód cez `new Function()`. Jeho odstránenie by tieto nástroje pokazilo. Ak zostavujete v `SIMPLE_MODE` (bez LibreOffice) a nepotrebujete PDF do TIFF, môžete ručne upraviť vygenerovaný `security-headers.conf` a `'unsafe-eval'` odstrániť pre prísnejšiu politiku.
+
+Pre OCR nechajte premenné `VITE_TESSERACT_*` prázdne, ak chcete použiť predvolené online zdroje, alebo nastavte všetky tri naraz pre vlastné či offline OCR. Čiastočné prepísanie OCR sa odmietne, pretože worker, základný runtime a priečinok traineddata musia zodpovedať. Pre úplne offline prehľadávateľné PDF nastavte aj `VITE_OCR_FONT_BASE_URL`, aby sa písma textovej vrstvy OCR načítali z vášho interného servera namiesto verejných URL písiem Noto.
+
+`VITE_DEFAULT_LANGUAGE` nastavuje jazyk rozhrania pre nových návštevníkov. Podporované hodnoty: `en`, `ar`, `be`, `fr`, `de`, `es`, `zh`, `zh-TW`, `vi`, `tr`, `id`, `it`, `pt`, `nl`, `da`. Používatelia môžu jazyk stále prepnúť, mení sa len predvolená hodnota.
+
+Príklad:
+
+```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
+```
+
+### Vlastná značka
+
+Nahraďte predvolené logo, názov a text päty BentoPDF vlastnými. Vložte súbor loga do priečinka `public/` (alebo použite existujúci obrázok) a pri zostavení odovzdajte premenné značky:
+
+```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 .
+```
+
+Značka funguje v plnom režime aj v Simple Mode a dá sa kombinovať so všetkými ostatnými možnosťami zostavenia.
+
+### Vypnutie konkrétnych nástrojov
+
+Skryte nástroje z rozhrania kvôli požiadavkám na súlad alebo bezpečnosť. Vypnuté nástroje sa odstránia z domovskej stránky, výsledkov vyhľadávania, klávesových skratiek a tvorcu pracovných postupov. Priamy prístup cez URL zobrazí stránku „nástroj nie je dostupný“.
+
+ID nástroja je URL stránky bez `.html`. Napríklad ak je nástroj na `bentopdf.com/edit-pdf.html`, ID je `edit-pdf`.
+
+#### Zistenie ID nástrojov
+
+Najjednoduchšie: otvorte ľubovoľný nástroj v BentoPDF a pozrite sa na URL. Posledná časť cesty (bez `.html`) je ID nástroja.
+
+
+Úplný zoznam ID nástrojov
+
+**Úpravy a anotácie:** `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`
+
+**Prevod do 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`
+
+**Prevod z 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`
+
+**Organizácia a správa:** `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`
+
+**Optimalizácia a oprava:** `compress-pdf`, `pdf-to-pdfa`, `fix-page-size`, `linearize-pdf`, `remove-restrictions`, `repair-pdf`, `rasterize-pdf`, `deskew-pdf`, `font-to-outline`
+
+**Zabezpečenie:** `encrypt-pdf`, `sanitize-pdf`, `decrypt-pdf`, `flatten-pdf`, `remove-metadata`, `change-permissions`, `digital-sign-pdf`, `validate-signature-pdf`, `timestamp-pdf`
+
+
+
+#### Možnosť 1: Pri zostavení (Docker build arg)
+
+```bash
+docker build \
+ --build-arg DISABLE_TOOLS="edit-pdf,sign-pdf,encrypt-pdf" \
+ -t bentopdf .
+```
+
+Zoznam vypnutých nástrojov sa zapečie do JavaScript balíka. Zmena vyžaduje nové zostavenie.
+
+#### Možnosť 2: Za behu (config.json)
+
+Pripojte súbor `config.json` do poskytovaného priečinka, nové zostavenie netreba:
+
+```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
+```
+
+Alebo s 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
+```
+
+Obe metódy sa dajú kombinovať, zoznamy sa zlúčia. Ak je nástroj v ktoromkoľvek z nich, je vypnutý.
+
+#### Vypnutie funkcií editora
+
+Môžete vypnúť aj konkrétne funkcie v PDF editore (napr. začiernenie, anotácie, formuláre) bez vypnutia celého editora. Pridajte `editorDisabledCategories` do svojho `config.json`:
+
+```json
+{
+ "editorDisabledCategories": ["redaction", "annotation-stamp"]
+}
+```
+
+
+Úplný zoznam kategórií editora
+
+**Priblíženie:** `zoom`, `zoom-in`, `zoom-out`, `zoom-fit-page`, `zoom-fit-width`, `zoom-marquee`, `zoom-level`
+
+**Anotácie:** `annotation`, `annotation-markup`, `annotation-highlight`, `annotation-underline`, `annotation-strikeout`, `annotation-squiggly`, `annotation-ink`, `annotation-text`, `annotation-stamp`
+
+**Tvary:** `annotation-shape`, `annotation-rectangle`, `annotation-circle`, `annotation-line`, `annotation-arrow`, `annotation-polygon`, `annotation-polyline`
+
+**Meranie:** `annotation-measurement`, `mode-measure`, `annotation-distance`, `annotation-perimeter`, `annotation-area`
+
+**Formuláre:** `form`, `form-textfield`, `form-checkbox`, `form-radio`, `form-select`, `form-listbox`, `form-fill-mode`
+
+**Začiernenie:** `redaction`, `redaction-area`, `redaction-text`, `redaction-apply`, `redaction-clear`
+
+**Dokument:** `document`, `document-open`, `document-close`, `document-print`, `document-capture`, `document-export`, `document-fullscreen`, `document-protect`
+
+**Strana:** `page`, `spread`, `rotate`, `scroll`, `navigation`
+
+**Panel:** `panel`, `panel-sidebar`, `panel-search`, `panel-comment`
+
+**Nástroje:** `tools`, `pan`, `pointer`, `capture`, `organize`
+
+**Výber:** `selection`, `selection-copy`
+
+**História:** `history`, `history-undo`, `history-redo`
+
+
+
+Kategórie sú hierarchické: vypnutie nadradenej (napr. `annotation`) vypne všetky podradené.
+
+### Vypnutie počítadla hviezdičiek GitHub
+
+Navigačná lišta zobrazuje aktuálny počet hviezdičiek na GitHub, ktorý sa pri načítaní stránky získava z `api.github.com`. Je to jediná externá požiadavka, ktorá neslúži žiadnej PDF funkcii. Vypnite ju pri zostavení, čím sa kód požiadavky odstráni z balíka a `api.github.com` z Content-Security-Policy:
+
+```bash
+docker build --build-arg DISABLE_GITHUB_STARS=true -t bentopdf .
+```
+
+Zostavenia Simple Mode (`bentopdf-simple`) počítadlo hviezdičiek vždy vynechávajú, tento prepínač je potrebný len pri komerčnom zostavení alebo vlastných plných zostaveniach.
+
+### Vlastné WASM URL (izolované / vlastné hosťovanie)
+
+> [!IMPORTANT]
+> WASM URL sa zapečú do JavaScriptu **pri zostavení**. Súbory WASM sťahuje za behu **prehliadač používateľa**, Docker ich počas zostavenia nesťahuje. V izolovaných sieťach musíte súbory WASM hosťovať na internom serveri, ktorý je pre prehliadače dostupný.
+
+**Úplný postup pre izolované prostredie:**
+
+```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
+```
+
+Pre `--ocr-languages` použite kódy, ktoré vypíše `bash scripts/prepare-airgap.sh --list-ocr-languages`, alebo vyhľadávajte podľa názvu cez `bash scripts/prepare-airgap.sh --search-ocr-language `. Keď zostavujete s obmedzenou podmnožinou OCR, odovzdajte rovnaké kódy do `VITE_TESSERACT_AVAILABLE_LANGUAGES`, aby aplikácia zobrazovala len pribalené jazyky. Pre úplne offline výstup OCR hosťujte aj pribalený priečinok `ocr-fonts/` a nasmerujte naň `VITE_OCR_FONT_BASE_URL`.
+
+Nastavením premennej na prázdny reťazec daný modul vypnete (používatelia ho musia nastaviť ručne v Rozšírených nastaveniach).
+
+## Vlastný port
+
+Predvolene BentoPDF v kontajneri počúva na porte `8080`. Ak to chcete zmeniť, nastavte za behu premennú prostredia `PORT`:
+
+```bash
+docker run -p 3000:9090 -e PORT=9090 ghcr.io/alam00000/bentopdf-simple:latest
+```
+
+| Premenná | Popis | Predvolené |
+| -------- | ----------------------------------------- | ---------- |
+| `PORT` | Port, na ktorom nginx počúva v kontajneri | `8080` |
+
+Funguje to so štandardným aj s nonroot Dockerfile.
+
+## Vlastné ID používateľa (PUID/PGID)
+
+Pre prostredia, ktoré vyžadujú beh pod konkrétnym používateľom bez root práv (zariadenia NAS, Kubernetes s bezpečnostnými kontextmi, firemné politiky), BentoPDF poskytuje samostatný Dockerfile s podporou PUID/PGID v štýle LSIO.
+
+### Zostavenie a spustenie
+
+```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
+```
+
+### Premenné prostredia
+
+| Premenná | Popis | Predvolené |
+| -------------- | ---------------------------- | ---------- |
+| `PUID` | ID používateľa pre beh | `1000` |
+| `PGID` | ID skupiny pre beh | `1000` |
+| `PORT` | Port, na ktorom nginx počúva | `8080` |
+| `DISABLE_IPV6` | Vypne IPv6 listener | `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
+```
+
+### Ako to funguje
+
+Kontajner sa spustí ako root, vytvorí používateľa so zadaným PUID/PGID, upraví vlastníctvo všetkých zapisovateľných priečinkov a potom sa cez `su-exec` vzdá oprávnení. Proces nginx beží celý pod vami zadaným používateľom.
+
+> [!NOTE]
+> Štandardný `Dockerfile` používa `nginx-unprivileged` (UID 101) a odporúča sa pre väčšinu nasadení. `Dockerfile.nonroot` použite, len ak potrebujete konkrétne UID/GID.
+
+> [!WARNING]
+> PUID/PGID nemôže byť `0` (root). Vstupný bod overuje vstupy a pri neplatných hodnotách skončí s chybou.
+
+## S Traefik (reverzná proxy)
+
+```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
+```
+
+## S Caddy (reverzná proxy)
+
+```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"
+}
+```
+
+## Limity zdrojov
+
+```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 (integrácia so systemd)
+
+[Quadlet](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html) umožňuje spúšťať kontajnery Podman ako služby systemd. Je to ideálne pre produkčné nasadenia na systémoch Linux.
+
+### Základné nastavenie Quadlet
+
+Vytvorte súbor jednotky kontajnera v `~/.config/containers/systemd/bentopdf.container` (používateľ) alebo `/etc/containers/systemd/bentopdf.container` (systém):
+
+```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
+```
+
+### Zapnutie a spustenie
+
+```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]
+> Pri celosystémovom nasadení použite `systemctl` bez prepínača `--user` a súbor umiestnite do `/etc/containers/systemd/`.
+
+### Quadlet s kontrolou stavu
+
+```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
+```
+
+### Automatická aktualizácia s Quadlet
+
+Podman dokáže automaticky aktualizovať kontajnery, keď sú dostupné nové obrazy:
+
+```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
+```
+
+### Sieťová konfigurácia Quadlet
+
+Pre vlastnú sieťovú konfiguráciu vytvorte sieťový súbor `bentopdf.network`:
+
+```ini
+[Network]
+Subnet=10.89.0.0/24
+Gateway=10.89.0.1
+```
+
+Potom sa naň odkážte v súbore kontajnera:
+
+```ini
+[Container]
+Image=ghcr.io/alam00000/bentopdf-simple:latest
+ContainerName=bentopdf
+PublishPort=3000:8080
+Network=bentopdf.network
+```
+
+## Aktualizácia
+
+```bash
+# Pull latest image
+docker compose pull
+
+# Recreate container
+docker compose up -d
+```
diff --git a/docs/sk/self-hosting/hostinger.md b/docs/sk/self-hosting/hostinger.md
new file mode 100644
index 00000000..e2508e97
--- /dev/null
+++ b/docs/sk/self-hosting/hostinger.md
@@ -0,0 +1,266 @@
+# Nasadenie na Hostinger
+
+[Hostinger](https://hostinger.com) je obľúbený poskytovateľ zdieľaného hostingu. Tento návod popisuje nasadenie BentoPDF na zdieľaný hosting Hostinger.
+
+## Predpoklady
+
+- Hostingový plán Hostinger s prístupom k správcovi súborov
+- Lokálne nainštalovaný Node.js na zostavenie
+
+## Krok 1: Zostavenie projektu
+
+```bash
+git clone https://github.com/alam00000/bentopdf.git
+cd bentopdf
+npm install
+npm run build
+```
+
+Zostavené súbory budú v priečinku `dist`.
+
+## Krok 2: Nahranie na Hostinger
+
+### Nasadenie na koreňovú doménu
+
+1. Prihláste sa do svojho účtu Hostinger
+2. Prejdite do **File Manager** → **public_html**
+3. **Odstráňte** existujúce súbory (v prípade potreby si ich zálohujte)
+4. **Nahrajte** celý obsah lokálneho priečinka `dist` do `public_html`
+
+### Nasadenie do podadresára
+
+Pri nasadení do podadresára (napr. `yourdomain.com/pdf-tools/`):
+
+1. Zostavte so správnou základnou URL:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+2. Vytvorte priečinok v Hostinger:
+ - Prejdite do **File Manager** → **public_html**
+ - Vytvorte nový priečinok: `pdf-tools`
+3. Nahrajte celý obsah `dist` do `public_html/pdf-tools/`
+
+## Krok 3: Vytvorenie súboru .htaccess
+
+Vytvorte súbor `.htaccess` v koreni priečinka nasadenia (`public_html` alebo `public_html/pdf-tools/`):
+
+::: warning Dôležité
+Pri nasadení do podadresára zmeňte `RewriteBase /` na `RewriteBase /pdf-tools/` (alebo názov vášho priečinka).
+:::
+
+```apache
+RewriteEngine On
+RewriteBase /
+
+# ============================================
+# 1. SECURITY HEADERS (CRITICAL FOR WASM)
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 2. BROWSER CACHING
+# ============================================
+
+ 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"
+
+
+# ============================================
+# 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
+
+
+ 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
+
+
+# ============================================
+# 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
+
+ ForceType application/wasm
+ Header set Content-Encoding "gzip"
+ Header set Cross-Origin-Resource-Policy "cross-origin"
+ Header append Vary Accept-Encoding
+
+
+# Handle data.gz
+
+ ForceType application/octet-stream
+ Header set Content-Encoding "gzip"
+ Header append Vary Accept-Encoding
+
+
+# ============================================
+# 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
+```
+
+## Príklad .htaccess pre podadresár
+
+Pre `yourdomain.com/pdf-tools/` upravte tieto riadky:
+
+```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
+```
+
+## Riešenie problémov
+
+### Súbory WASM sa nenačítajú
+
+Uistite sa, že MIME typy sú v `.htaccess` správne nastavené:
+
+```apache
+AddType application/wasm .wasm
+```
+
+### Nástroje LibreOffice nefungujú
+
+Bezpečnostné hlavičky sú pre SharedArrayBuffer kľúčové:
+
+```apache
+Header always set Cross-Origin-Opener-Policy "same-origin"
+Header always set Cross-Origin-Embedder-Policy "require-corp"
+```
+
+Ak sa hlavičky neuplatňujú, požiadajte podporu Hostinger o zapnutie `mod_headers`.
+
+### Chyby 404 pri obnovení stránky
+
+Uistite sa, že pravidlo pre príponu `.html` a jazykové trasy sú správne nastavené. BentoPDF používa statické HTML súbory, nie smerovanie 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]
+```
+
+### Limity nahrávania súborov
+
+Hostinger môže mať limity veľkosti súborov. Ak hromadné nahrávanie zlyhá, nahrajte súbory WASM samostatne.
diff --git a/docs/sk/self-hosting/index.md b/docs/sk/self-hosting/index.md
new file mode 100644
index 00000000..40d1134d
--- /dev/null
+++ b/docs/sk/self-hosting/index.md
@@ -0,0 +1,538 @@
+# Príručka pre vlastný hosting
+
+BentoPDF môžete hostovať na vlastnej infraštruktúre. Táto príručka pokrýva rôzne možnosti nasadenia.
+
+## Rýchly štart s Docker / Podman
+
+Najrýchlejší spôsob, ako hostovať BentoPDF vo vlastnej réžii:
+
+> [!TIP]
+> BentoPDF sa dodáva v dvoch zostaveniach:
+>
+> - **Zostavenie Self-Hosted**: `ghcr.io/alam00000/bentopdf-simple:latest`. Všetky PDF nástroje, **bez** marketingových prvkov (bez úvodnej sekcie, FAQ, referencií a päty). Použite ho pre interné, tímové a organizačné nasadenia. **Nie je** to funkčne obmedzená verzia „lite“.
+> - **Komerčné zostavenie**: `ghcr.io/alam00000/bentopdf:latest`. Kompletný marketingový web, ktorý používa samotný bentopdf.com a držitelia komerčnej licencie pri verejných nasadeniach.
+>
+> Ak si nie ste istí, stiahnite zostavenie Self-Hosted.
+
+> [!IMPORTANT]
+> Konverzia súborov Office vyžaduje `SharedArrayBuffer`, čo znamená, že aplikácia musí byť izolovaná z hľadiska cross-origin a zároveň poskytovaná zo zabezpečeného kontextu. Oficiálny obraz už posiela potrebné hlavičky COOP/COEP, prehliadače však `SharedArrayBuffer` stále vypínajú na obyčajných HTTP pôvodoch v lokálnej sieti, ako je `http://192.168.x.x`.
+>
+> `http://localhost` používajte len na testovanie na tom istom zariadení. Ak používatelia pristupujú k BentoPDF cez IP adresu alebo názov hostiteľa v LAN, zabezpečte ho cez 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
+```
+
+Alebo pomocou 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)
+
+Spustite BentoPDF ako službu systemd. Vytvorte `~/.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
+```
+
+Kompletnú dokumentáciu ku Quadlet nájdete v [príručke nasadenia Docker](/sk/self-hosting/docker).
+
+## Zostavenie zo zdrojového kódu
+
+```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
+```
+
+## Možnosti konfigurácie
+
+### Zostavenie Self-Hosted (Simple Mode)
+
+Zostavenie Self-Hosted (obraz `bentopdf-simple`, nazývaný aj Simple Mode) je **funkčne identické** s komerčným zostavením: obsahuje všetky PDF nástroje a tie sa správajú rovnako. Iba skrýva marketingové prvky, ktoré dávajú zmysel len na samotnom bentopdf.com alebo pri komerčnom verejnom nasadení. **Nie je to funkčne obmedzená ani „lite“ verzia.**
+
+**Čo zostavenie Self-Hosted skrýva** (len kozmetické zmeny, žiadne PDF funkcie sa neodstraňujú):
+
+- Navigačnú lištu, úvodnú sekciu, sekciu funkcií, FAQ, referencie, pätu
+- Mení titulok stránky na „Nástroje PDF“
+
+**Čo zostavenie Self-Hosted zachováva** (všetko, čo skutočne pracuje s PDF):
+
+- Všetky PDF nástroje (spájanie, rozdeľovanie, úpravy, podpisovanie, OCR, konverzia Office atď.)
+- Podporu vlastnej značky, všetku konfiguráciu pri zostavení aj za behu
+
+Komerčné zostavenie (`ghcr.io/alam00000/bentopdf:latest`) poháňa samotný bentopdf.com a používajú ho držitelia komerčnej licencie pri verejných nasadeniach. Pridáva úvodnú sekciu, FAQ, referencie a pätu, ktoré by pri internom nástroji nedávali zmysel.
+
+Ak hostujete BentoPDF pre svoj tím, organizáciu alebo ako interný nástroj, stiahnite zostavenie Self-Hosted:
+
+```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
+```
+
+Všetky podrobnosti nájdete v [SIMPLE_MODE.md](https://github.com/alam00000/bentopdf/blob/main/SIMPLE_MODE.md).
+
+### Komerčné zostavenie (verejné nasadenia pod vlastnou značkou)
+
+Komerčné zostavenie (obraz `bentopdf`, bez prípony `-simple`) poháňa samotný bentopdf.com. Okrem všetkých PDF nástrojov obsahuje kompletný marketingový web (úvodná sekcia, funkcie, FAQ, referencie, päta). Toto zostavenie použite, keď chcete **nasadiť BentoPDF ako verejnú PDF službu pod vlastnou značkou**, napríklad:
+
+- Prevádzkujete BentoPDF ako hostovanú SaaS službu pre koncových používateľov na vlastnej doméne
+- Chcete zážitok úvodnej stránky (marketingové sekcie + nástroje), nie len samotné nástroje
+- Ste držiteľom komerčnej licencie a integrujete BentoPDF do komerčného produktu
+
+**Spustenie bez úprav** (so značkou BentoPDF, užitočné na náhľad zostavenia):
+
+```bash
+docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
+```
+
+**Zostavenie s vlastnou značkou** (typický komerčný postup):
+
+```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
+```
+
+Všetky ostatné možnosti pri zostavení (`BASE_URL`, `VITE_DEFAULT_LANGUAGE`, `DISABLE_TOOLS`, prepísanie URL pre WASM atď.) fungujú rovnako ako pri zostavení Self-Hosted.
+
+::: warning Licencovanie
+Prevádzka komerčného zostavenia je povolená v rámci ktorejkoľvek z dvoch licenčných možností BentoPDF:
+
+- **AGPL-3.0** (zadarmo): povolené, ak vaše nasadenie zverejní celý svoj zdrojový kód pod AGPL vrátane všetkých úprav značky a súvisiacej obchodnej logiky.
+- **Komerčná licencia** (79 $ doživotne): potrebná pre uzavreté / proprietárne nasadenia, kde nezverejňujete svoj fork so značkou ani obchodný kód.
+
+Úplné porovnanie nájdete na [stránke licencovania](https://www.bentopdf.com/licensing). WASM moduly pod licenciou AGPL (PyMuPDF, Ghostscript, CoherentPDF) sa načítavajú z CDN za behu, takže sa nedostanú do vášho obrazu a nemenia vašu licenčnú pozíciu.
+:::
+
+### Základná URL
+
+Nasadenie do podadresára:
+
+```bash
+BASE_URL=/pdf-tools/ npm run build
+```
+
+### Vlastná značka
+
+Pri zostavení nahraďte predvolené logo, názov a text päty BentoPDF vlastnými:
+
+| Premenná | Popis | Predvolené |
+| ------------------ | ----------------------------------- | --------------------------------------- |
+| `VITE_BRAND_NAME` | Názov značky v hlavičke a päte | `BentoPDF` |
+| `VITE_BRAND_LOGO` | Cesta k logu relatívne k `public/` | `images/favicon-no-bg.svg` |
+| `VITE_FOOTER_TEXT` | Vlastný text päty / autorských práv | `© 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
+```
+
+Alebo cez 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 .
+```
+
+Vlastná značka funguje v plnom režime aj v Simple Mode a dá sa kombinovať so všetkými ostatnými možnosťami pri zostavení (`BASE_URL`, `SIMPLE_MODE`, `VITE_DEFAULT_LANGUAGE`).
+
+### Vypnutie konkrétnych nástrojov
+
+Skryte jednotlivé nástroje z dôvodu súladu s predpismi alebo bezpečnosti. Vypnuté nástroje sa odstránia z domovskej stránky, vyhľadávania, skratiek, nástroja na tvorbu workflow aj z priameho prístupu cez URL.
+
+ID nástroja je URL stránky bez `.html`: otvorte ľubovoľný nástroj a pozrite sa na URL (napr. `edit-pdf`, `sign-pdf`, `encrypt-pdf`).
+
+**Pri zostavení** (zapečené do balíka):
+
+```bash
+DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
+```
+
+**Za behu** (bez nového zostavenia, stačí pripojiť `config.json`):
+
+```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
+```
+
+Obe metódy sa dajú kombinovať, zoznamy sa zlúčia.
+
+V PDF editore môžete vypnúť aj konkrétne funkcie (napr. redigovanie) bez vypnutia celého nástroja, a to pridaním `editorDisabledCategories` do `config.json`. Úplný zoznam kategórií nájdete v [príručke Docker](/sk/self-hosting/docker#vypnutie-funkcii-editora).
+
+## Príručky nasadenia
+
+Vyberte si platformu:
+
+- [Vercel](/sk/self-hosting/vercel)
+- [Netlify](/sk/self-hosting/netlify)
+- [Cloudflare Pages](/sk/self-hosting/cloudflare)
+- [AWS S3 + CloudFront](/sk/self-hosting/aws)
+- [Hostinger](/sk/self-hosting/hostinger)
+- [Nginx](/sk/self-hosting/nginx)
+- [Apache](/sk/self-hosting/apache)
+- [Docker](/sk/self-hosting/docker)
+- [Kubernetes](/sk/self-hosting/kubernetes)
+- [CORS proxy](/sk/self-hosting/cors-proxy) - Potrebný pre digitálne podpisy
+
+## Časté problémy
+
+### Konverzia Word / ODT / Excel / PowerPoint do PDF zamrzne (SharedArrayBuffer nie je dostupný)
+
+**Príznak**: Konverzie dokumentov založené na LibreOffice (Word, ODT, Excel, PowerPoint do PDF) zamrznú na ~55 % alebo sa vôbec nespustia. Konzola prehliadača môže zobraziť:
+
+> `ReferenceError: SharedArrayBuffer is not defined`
+
+…alebo `window.crossOriginIsolated` hlási `false`, alebo kompilácia WASM hlási `expected magic word 00 61 73 6d, found 1f 8b 08 08`.
+
+**Príčina**: LibreOffice WASM vyžaduje `SharedArrayBuffer`, ktorý prehliadač povolí, len keď je stránka **izolovaná z hľadiska cross-origin** A ZÁROVEŇ poskytovaná zo **zabezpečeného kontextu**. Musia teda platiť dve veci:
+
+1. Každá odpoveď obsahuje obe hlavičky:
+ - `Cross-Origin-Embedder-Policy: require-corp`
+ - `Cross-Origin-Opener-Policy: same-origin`
+2. Stránka sa poskytuje z `https://...` alebo `http://localhost`. Obyčajné HTTP na IP adrese v LAN (napr. `http://192.168.x.x`) sa NEPOVAŽUJE za zabezpečené, prehliadače tam `SharedArrayBuffer` vypínajú.
+
+Nezhoda `00 61 73 6d / 1f 8b 08 08` je samostatný čiastkový príznak: vopred skomprimovaným súborom `.wasm.gz` / `.data.gz` chýba hlavička odpovede `Content-Encoding: gzip`, takže prehliadač dostane surové gzip bajty namiesto dekomprimovaného WASM.
+
+**Riešenie**: presnú konfiguráciu nájdete v príručke nasadenia pre vašu platformu:
+
+- [Nginx →](/sk/self-hosting/nginx#konverzia-word-odt-excel-do-pdf-nefunguje)
+- [Apache →](/sk/self-hosting/apache#prevod-word-odt-excel-do-pdf-nefunguje)
+- [AWS S3 + CloudFront →](/sk/self-hosting/aws#krok-3b-politika-hlaviciek-odpovede-potrebna-pre-libreoffice-wasm)
+- [Cloudflare Pages →](/sk/self-hosting/cloudflare#konfiguracny-subor) (súbor `_headers`)
+- [Netlify →](/sk/self-hosting/netlify#konverzia-word-odt-excel-do-pdf-sa-zasekne-na-55) (`netlify.toml`)
+- [Vercel →](/sk/self-hosting/vercel#konverzia-word-odt-excel-do-pdf-nefunguje) (`vercel.json`)
+- [Hostinger →](/sk/self-hosting/hostinger#nastroje-libreoffice-nefunguju) (`.htaccess`)
+- [Kubernetes →](/sk/self-hosting/kubernetes#ako-zabezpecit-aby-hlavicky-sharedarraybuffer-stale-fungovali-ingress-gateway)
+- **Docker**: rieši sa automaticky pribalenou konfiguráciou nginx, nie je potrebný žiadny zásah.
+
+**Overenie**: otvorte konzolu DevTools na ľubovoľnej stránke BentoPDF a spustite:
+
+```js
+console.log(window.crossOriginIsolated); // should be true
+console.log(typeof SharedArrayBuffer); // should be "function"
+```
+
+Ak je stránka na HTTPS alebo `http://localhost` A ZÁROVEŇ sú na každej odpovedi prítomné obe hlavičky COEP/COOP, obe kontroly prejdú. Ak ste na `http://192.168.x.x` alebo inom HTTP pôvode mimo loopback, zabezpečte ho cez HTTPS, riešenie len pomocou hlavičiek neexistuje.
+
+### Súbory `.mjs` sa poskytujú ako `application/octet-stream`
+
+**Príznak**: Podpísať PDF / Vyplňovač formulárov / niektoré ďalšie nástroje zobrazia prázdny prehliadač alebo sa nenačítajú. Konzola prehliadača hlási:
+
+> `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.`
+
+**Príčina**: Váš webový server alebo reverzný proxy nemá mapovanie MIME typu pre súbory `.mjs` (pribalený PDF prehliadač dodáva ES moduly s touto príponou). Mnohé štandardné konfigurácie serverov používajú pre neznáme prípony predvolene `application/octet-stream` a prehliadače ich odmietnu spustiť ako ES moduly.
+
+**Riešenie**: presný úryvok nájdete v príručke nasadenia pre vašu platformu:
+
+- [Nginx →](/sk/self-hosting/nginx#podpisat-pdf-alebo-vyplnovac-formularov-zobrazuje-prazdny-prehliadac-chyba-mime-mjs)
+- [Apache →](/sk/self-hosting/apache#podpisat-pdf-alebo-vyplnanie-formularov-zobrazuje-prazdny-prehliadac-chyba-mime-pri-mjs)
+- [AWS S3 + CloudFront →](/sk/self-hosting/aws#krok-2-zostavenie-a-nahranie) (pozri `aws s3 cp ... --include "*.mjs"`)
+- [Kubernetes →](/sk/self-hosting/kubernetes#chyby-mime-typu-mjs-prazdny-iframe-v-podpisat-pdf-vyplnovac-formularov)
+- **Docker, Vercel, Netlify, Cloudflare Pages, Hostinger**: rieši sa automaticky, nie je potrebný žiadny zásah.
+
+**Overenie**: otvorte DevTools → kartu Network, nájdite zlyhávajúcu požiadavku `.mjs` a skontrolujte hlavičku odpovede `Content-Type`. Mala by byť `application/javascript`. Ak je stále `application/octet-stream`, typ môže znova určovať vonkajší reverzný proxy alebo CDN, skontrolujte každú vrstvu v reťazci.
+
+## Konfigurácia WASM (komponenty AGPL)
+
+BentoPDF **nepribaľuje** knižnice na spracovanie pod licenciou AGPL do svojho zdrojového kódu, ale **má predkonfigurované URL adresy CDN**, takže všetky funkcie fungujú hneď po inštalácii, bez ručného nastavovania.
+
+::: tip Predvolene bez konfigurácie
+Od verzie v2.0.0 sú WASM moduly predkonfigurované tak, aby sa načítavali z CDN jsDelivr cez premenné prostredia. Všetky pokročilé funkcie fungujú okamžite bez akejkoľvek konfigurácie zo strany používateľa.
+:::
+
+| Komponent | Licencia | Funkcie |
+| --------------- | -------- | ------------------------------------------------------------------- |
+| **PyMuPDF** | AGPL-3.0 | Konverzia EPUB/MOBI/FB2/XPS, extrakcia obrázkov, extrakcia tabuliek |
+| **Ghostscript** | AGPL-3.0 | Konverzia do PDF/A, kompresia, vyrovnanie, rasterizácia |
+| **CoherentPDF** | AGPL-3.0 | Obsah, prílohy, spájanie PDF so záložkami |
+
+### Predvolené premenné prostredia
+
+Sú nastavené v `.env.production` a zapečené do zostavenia:
+
+```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=
+```
+
+### Prepísanie URL adries WASM
+
+Pre vlastné nasadenia môžete predvolené hodnoty prepísať pri zostavení:
+
+```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
+```
+
+Ak chcete modul úplne vypnúť (vyžaduje ručnú konfiguráciu používateľom v Pokročilých nastaveniach), nastavte jeho premennú na prázdny reťazec.
+
+Pre OCR buď nechajte všetky premenné `VITE_TESSERACT_*` prázdne a ponechajte predvolené online zdroje, alebo nastavte URL pre worker/core/lang spolu pre vlastné hostované / offline OCR. Ak pribalíte len konkrétne jazyky OCR, nastavte aj `VITE_TESSERACT_AVAILABLE_LANGUAGES` na rovnaké kódy oddelené čiarkami, aby rozhranie ponúkalo len nainštalované jazyky a nepodporovaný výber zlyhal s popisnou chybou. Pre úplne offline výstup prehľadávateľného PDF nastavte aj `VITE_OCR_FONT_BASE_URL` na interný adresár, ktorý poskytuje pribalené OCR písma.
+
+Používatelia môžu tieto predvolené hodnoty kedykoľvek prepísať aj v **Pokročilých nastaveniach** v rozhraní: používateľské nastavenia uložené v prehliadači majú prednosť pred predvolenými hodnotami prostredia.
+
+### Nasadenie v izolovanej sieti (air-gapped) / offline
+
+Pre siete bez prístupu na internet (štátna správa, zdravotníctvo, financie atď.). URL adresy WASM sa zapečú do JavaScriptu **pri zostavení**, samotné WASM súbory sťahuje **prehliadač používateľa** za behu. Preto musíte všetko pripraviť na počítači s internetom a potom to preniesť do izolovanej siete.
+
+#### Automatizovaný skript (odporúčané)
+
+Priložený skript `prepare-airgap.sh` automatizuje celý proces: stiahne WASM balíky, zostaví Docker obraz a vytvorí samostatný balík s inštalačným skriptom.
+
+```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
+```
+
+Vznikne adresár s balíkom:
+
+```
+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
+```
+
+Preneste balík do izolovanej siete cez USB, interný repozitár artefaktov alebo schválenou metódou. Potom spustite priložený inštalačný skript:
+
+```bash
+cd bentopdf-airgap-bundle
+bash setup.sh
+```
+
+Inštalačný skript načíta Docker obraz, rozbalí WASM súbory a voliteľne spustí kontajner.
+
+**Možnosti skriptu:**
+
+| Prepínač | Popis | Predvolené |
+| ------------------------------ | ---------------------------------------------------- | --------------------------------- |
+| `--wasm-base-url ` | Kde budú WASM súbory interne hostované | _(povinné, ak chýba, vyžiada sa)_ |
+| `--image-name ` | Tag Docker obrazu | `bentopdf` |
+| `--output-dir ` | Výstupný adresár balíka | `./bentopdf-airgap-bundle` |
+| `--simple-mode` | Zapnúť Simple Mode | vypnuté |
+| `--base-url ` | Základná URL podadresára (napr. `/pdf/`) | `/` |
+| `--language ` | Predvolený jazyk rozhrania (napr. `fr`, `de`) | _(žiadne)_ |
+| `--brand-name ` | Vlastný názov značky | _(žiadne)_ |
+| `--brand-logo ` | Cesta k logu relatívne k `public/` | _(žiadne)_ |
+| `--footer-text ` | Vlastný text päty | _(žiadne)_ |
+| `--ocr-languages ` | Jazyky OCR na pribalenie, oddelené čiarkami | `eng` |
+| `--list-ocr-languages` | Vypíše podporované kódy a názvy OCR a skončí | vypnuté |
+| `--search-ocr-language ` | Vyhľadá kódy OCR podľa názvu alebo skratky | vypnuté |
+| `--dockerfile ` | Použitý Dockerfile | `Dockerfile` |
+| `--skip-docker` | Preskočiť zostavenie a export Docker obrazu | vypnuté |
+| `--skip-wasm` | Preskočiť sťahovanie WASM (použiť existujúce `.tgz`) | vypnuté |
+
+Interaktívna výzva prijíma aj `list` na vypísanie celého zoznamu podporovaných kódov Tesseract a `search