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

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

No files matched your search

+136
View File
@@ -0,0 +1,136 @@
# 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.
+80
View File
@@ -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)
+42
View File
@@ -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.
+92
View File
@@ -0,0 +1,92 @@
# Commercial License
BentoPDF is dual-licensed under **AGPL-3.0** (for open-source projects) and a **Commercial License** (for proprietary/closed-source applications).
::: tip Full Details
For complete licensing information, delivery details, AGPL component notices, and invoicing, visit our [Licensing Page](https://www.bentopdf.com/licensing).
:::
## Get a Commercial License
**[Get Lifetime License for $79](https://buy.polar.sh/polar_cl_ThDfffbl733x7oAodcIryCzhlO57ZtcWPq6HJ1qMChd)**. A one-time purchase that includes all future updates forever.
## When Do You Need a Commercial License?
| Use Case | License Required |
| ------------------------------------------- | ---------------------- |
| Open-source project with public source code | AGPL-3.0 (Free) |
| Internal company tool (not distributed) | AGPL-3.0 (Free) |
| Proprietary/closed-source application | **Commercial License** |
| SaaS product without source code disclosure | **Commercial License** |
| Redistributing without AGPL compliance | **Commercial License** |
## Delivery & Licensing Model
- **No license key is required or provided.** BentoPDF intentionally does not use license keys to streamline deployment and reduce operational friction for users.
- Upon purchase, users receive a ZIP archive containing the complete BentoPDF source code and binaries.
- The source code provided is identical to the code published in our public open-source repository.
**GitHub Repository:** [github.com/alam00000/bentopdf](https://github.com/alam00000/bentopdf)
## Important Notice on Third-Party Components
::: info AGPL Components — Pre-configured via CDN
BentoPDF **does not bundle** AGPL-licensed processing libraries in its source code. These components are loaded at runtime from CDN URLs that are **pre-configured by default** — all features work out of the box with zero setup.
| Component | License | Status |
| --------------- | -------- | ---------------------- |
| **PyMuPDF** | AGPL-3.0 | Pre-configured via CDN |
| **Ghostscript** | AGPL-3.0 | Pre-configured via CDN |
| **CoherentPDF** | AGPL-3.0 | Pre-configured via CDN |
WASM module URLs are configured via environment variables at build time (`.env.production`). The defaults point to jsDelivr CDN. For custom deployments (air-gapped, self-hosted), you can override via environment variables, Docker build args, or per-user via **Advanced Settings** in the UI.
See [Self-Hosting > WASM Configuration](/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) | ✅ |
| Commercial support | ✅ (via email) |
| Priority feature requests | ✅ |
## FAQ
### Do I need a license key to use BentoPDF?
No. BentoPDF does not use license keys. The commercial license grants you legal rights to use the software in proprietary applications.
### Can I use BentoPDF in my SaaS product?
Yes, with a commercial license. Without it, you must comply with AGPL-3.0, which requires you to make your full source code available to users.
### What about the AGPL components?
Components like CoherentPDF are licensed under AGPL v3 and remain under that license. The commercial license covers BentoPDF's own code but does not override third-party AGPL obligations.
### How do I get an invoice?
Polar emails your invoice automatically after purchase. For a VAT invoice, select "I'm purchasing as a business" at checkout. If you need anything else, email [contact@bentopdf.com](mailto:contact@bentopdf.com) with your purchase details.
+275
View File
@@ -0,0 +1,275 @@
# 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
<VirtualHost *:80>
ServerName your-domain.com
Redirect permanent / https://your-domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName your-domain.com
DocumentRoot /var/www/bentopdf
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/your-domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/your-domain.com/privkey.pem
<Directory /var/www/bentopdf>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# WASM MIME type
AddType application/wasm .wasm
# Prevent double-compression of pre-compressed files
SetEnvIfNoCase Request_URI "\.gz$" no-gzip
# Compression
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json application/wasm
</IfModule>
# Cache headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/wasm "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
</IfModule>
# Required headers for SharedArrayBuffer (LibreOffice WASM)
Header always set Cross-Origin-Embedder-Policy "require-corp"
Header always set Cross-Origin-Opener-Policy "same-origin"
Header always set Cross-Origin-Resource-Policy "cross-origin"
# Security headers
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
# Pre-compressed LibreOffice WASM files
<FilesMatch "soffice\.wasm\.gz$">
ForceType application/wasm
Header set Content-Encoding "gzip"
</FilesMatch>
<FilesMatch "soffice\.data\.gz$">
ForceType application/octet-stream
Header set Content-Encoding "gzip"
</FilesMatch>
</VirtualHost>
```
## 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
<FilesMatch "soffice\.wasm\.gz$">
ForceType application/wasm
Header set Content-Encoding "gzip"
</FilesMatch>
<FilesMatch "soffice\.data\.gz$">
ForceType application/octet-stream
Header set Content-Encoding "gzip"
</FilesMatch>
```
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
```
+200
View File
@@ -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"
}
}
```
+154
View File
@@ -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.
+180
View File
@@ -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
+622
View File
@@ -0,0 +1,622 @@
# 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
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginxinc/nginx-unprivileged:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
```
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` |
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.
<details>
<summary>Lista completa de IDs das ferramentas</summary>
**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`
</details>
#### 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"]
}
```
<details>
<summary>Lista completa de categorias do editor</summary>
**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`
**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`
**Seleção:** `selection`, `selection-copy`
**Histórico:** `history`, `history-undo`, `history-redo`
</details>
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 <term>`, 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
```
+266
View File
@@ -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)
# ============================================
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
# REQUIRED for soffice.js (SharedArrayBuffer)
Header always set Cross-Origin-Opener-Policy "same-origin"
Header always set Cross-Origin-Embedder-Policy "require-corp"
</IfModule>
# ============================================
# 2. BROWSER CACHING
# ============================================
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/wasm "access plus 1 year"
ExpiresByType application/gzip "access plus 1 year"
ExpiresByType text/html "access plus 0 seconds"
</IfModule>
# ============================================
# 3. COMPRESSION (STANDARD)
# ============================================
# Prevent server from double-compressing files
SetEnvIfNoCase Request_URI "\.gz$" no-gzip
SetEnvIfNoCase Request_URI "\.br$" no-gzip
SetEnvIfNoCase Request_URI "\.wasm$" no-gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE font/woff
AddOutputFilterByType DEFLATE font/ttf
</IfModule>
# ============================================
# 4. MIME TYPES & SPECIAL FILE HANDLING
# ============================================
AddType application/javascript .js .mjs
AddType application/wasm .wasm
AddType font/woff2 .woff2
AddType font/woff .woff
AddType image/webp .webp
# Handle soffice.wasm.gz correctly
<FilesMatch "soffice\.wasm\.gz$">
ForceType application/wasm
Header set Content-Encoding "gzip"
Header set Cross-Origin-Resource-Policy "cross-origin"
Header append Vary Accept-Encoding
</FilesMatch>
# Handle data.gz
<FilesMatch "soffice\.data\.gz$">
ForceType application/octet-stream
Header set Content-Encoding "gzip"
Header append Vary Accept-Encoding
</FilesMatch>
# ============================================
# 5. REDIRECTS & ROUTING
# ============================================
# Canonical WWW (update domain as needed)
RewriteCond %{HTTP_HOST} ^bentopdf\.com [NC]
RewriteRule ^(.*)$ https://www.bentopdf.com/$1 [L,R=301]
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Remove trailing slash (except for language root directories)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/$
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]
# Existing files/dirs - serve directly
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# ============================================
# 5.1. LANGUAGE ROUTES
# ============================================
# Supported languages: de, es, zh, zh-TW, vi, it, id, tr, fr, pt
# English has no prefix - served from root
# English prefix redirects to root (for SEO consistency)
RewriteRule ^en/?$ / [R=301,L]
RewriteRule ^en/(.+)$ /$1 [R=301,L]
# Language prefix root (e.g., /de/ -> /de/index.html)
RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/?$ /$1/index.html [L]
# Language prefix with path (e.g., /de/merge-pdf -> /de/merge-pdf.html)
RewriteCond %{DOCUMENT_ROOT}/$1/$2.html -f
RewriteRule ^(de|es|zh|zh-TW|vi|it|id|tr|fr|pt)/([^/]+)/?$ /$1/$2.html [L]
# ============================================
# 5.5. DOCS ROUTING (VitePress)
# ============================================
RewriteCond %{REQUEST_URI} ^/docs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [L]
# ============================================
# 6. ADD .HTML EXTENSION IF FILE EXISTS (ROOT LEVEL ONLY)
# ============================================
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^/]+)$ $1.html [L]
# ============================================
# 7. ERROR PAGES
# ============================================
ErrorDocument 404 /404.html
```
## 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.
+538
View File
@@ -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 <url>` | Onde os WASMs serão hospedados internamente | _(obrigatório, solicitado se ausente)_ |
| `--image-name <name>` | Tag da imagem Docker | `bentopdf` |
| `--output-dir <path>` | Diretório de saída do pacote | `./bentopdf-airgap-bundle` |
| `--simple-mode` | Ativa o Simple Mode | desativado |
| `--base-url <path>` | URL base do subdiretório (ex.: `/pdf/`) | `/` |
| `--language <code>` | Idioma padrão da interface (ex.: `fr`, `de`) | _(nenhum)_ |
| `--brand-name <name>` | Nome de marca personalizado | _(nenhum)_ |
| `--brand-logo <path>` | Caminho do logotipo relativo a `public/` | _(nenhum)_ |
| `--footer-text <text>` | Texto de rodapé personalizado | _(nenhum)_ |
| `--ocr-languages <list>` | 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 <term>` | Busca códigos de OCR por nome ou abreviação | desativado |
| `--dockerfile <path>` | 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 <term>` 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
<details>
<summary>Se você prefere fazer manualmente, sem o script</summary>
**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`.
</details>
::: 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!
:::
+211
View File
@@ -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:<tag>`) 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="<github-org-or-user>"
helm upgrade --install bentopdf oci://ghcr.io/$GHCR_USERNAME/charts/bentopdf \
--namespace bentopdf \
--create-namespace \
--version 0.1.0 \
--set image.repository=ghcr.io/alam00000/bentopdf \
--set image.tag=latest
```
## 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.
+139
View File
@@ -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
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](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.
+232
View File
@@ -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
```
+122
View File
@@ -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
[![Deploy with Vercel](https://vercel.com/button)](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`.
+49
View File
@@ -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)
+40
View File
@@ -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)
+53
View File
@@ -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)
+45
View File
@@ -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)
+79
View File
@@ -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)
+55
View File
@@ -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)
+42
View File
@@ -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)
+45
View File
@@ -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)
+62
View File
@@ -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)
+44
View File
@@ -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)
+57
View File
@@ -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)
+47
View File
@@ -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)
+61
View File
@@ -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
+55
View File
@@ -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)
+60
View File
@@ -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)
+73
View File
@@ -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
+44
View File
@@ -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)
+51
View File
@@ -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)
+42
View File
@@ -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)
+46
View File
@@ -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
+65
View File
@@ -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
+42
View File
@@ -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)
+55
View File
@@ -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)
+43
View File
@@ -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)
+58
View File
@@ -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)
+48
View File
@@ -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)
+50
View File
@@ -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)
+44
View File
@@ -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)
+55
View File
@@ -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)
+42
View File
@@ -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)
+45
View File
@@ -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)
+41
View File
@@ -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)
+46
View File
@@ -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)
+43
View File
@@ -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)
+44
View File
@@ -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
+51
View File
@@ -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
+52
View File
@@ -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
+76
View File
@@ -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)
+47
View File
@@ -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)
+53
View File
@@ -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)
+46
View File
@@ -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)
+65
View File
@@ -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)
+183
View File
@@ -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.
<div class="tool-grid">
- [**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.
</div>
---
## Converter para PDF
Transforme imagens, documentos, e-books e outros formatos de arquivo em PDF.
<div class="tool-grid">
- [**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.
</div>
---
## Converter de PDF
Extraia conteúdo de PDFs para imagens, documentos e formatos de dados.
<div class="tool-grid">
- [**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.
</div>
---
## Organizar e Gerenciar
Reorganize, combine, divida e gerencie as páginas e os arquivos dos seus PDFs.
<div class="tool-grid">
- [**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.
</div>
---
## Otimizar e Reparar
Comprima, corrija e otimize seus PDFs para melhor desempenho e compatibilidade.
<div class="tool-grid">
- [**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.
</div>
---
## Proteger PDF
Proteja, criptografe e controle o acesso aos seus documentos PDF.
<div class="tool-grid">
- [**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.
</div>
+42
View File
@@ -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)
+48
View File
@@ -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)
+53
View File
@@ -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)
+49
View File
@@ -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
+59
View File
@@ -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)
+54
View File
@@ -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)
+43
View File
@@ -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)
+54
View File
@@ -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)
+54
View File
@@ -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)
+43
View File
@@ -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)
+44
View File
@@ -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)
+44
View File
@@ -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)
+51
View File
@@ -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)
+45
View File
@@ -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)
+53
View File
@@ -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
+48
View File
@@ -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)
+43
View File
@@ -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)
+46
View File
@@ -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)
+52
View File
@@ -0,0 +1,52 @@
---
title: Multiferramenta PDF
description: Um gerenciador de páginas completo para mesclar, dividir, girar, duplicar, excluir e reordenar 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, exclua, insira novos PDFs, adicione páginas em branco e divida o resultado, tudo sem sair da ferramenta.
## Como Funciona
1. Clique em **Enviar PDFs** ou arraste arquivos para a área de envio. Vários arquivos são suportados.
2. Todas as páginas de cada arquivo enviado aparecem em uma grade rolável com miniaturas.
3. Use a barra de ferramentas ou os botões de ação de cada página para manipular as páginas.
4. Selecione páginas usando a caixa de seleção de cada cartão e depois aplique operações em lote.
5. Marque pontos de divisão com o ícone de tesoura para dividir a saída em arquivos separados.
6. Clique em **Exportar PDF** para baixar o resultado final. Se houver marcadores de divisão, a saída é um ZIP com vários PDFs.
## Recursos
- **Mesclar**: envie vários PDFs e eles são combinados em um único espaço de trabalho automaticamente
- **Reordenar**: arraste e solte os cartões de página para reorganizar a sequência
- **Girar**: rotação por página ou em lote, em incrementos de 90 graus (para a esquerda ou para a direita)
- **Duplicar**: clone qualquer página com um clique
- **Excluir**: remova páginas individuais ou exclua em lote as selecionadas
- **Inserir PDF**: adicione um novo PDF após qualquer página específica
- **Adicionar Página em Branco**: acrescente uma página A4 em branco no final
- **Dividir**: coloque marcadores de divisão entre as páginas e depois exporte como um ZIP de PDFs separados
- **Selecionar Tudo / Desmarcar Tudo**: seleção rápida para operações em lote
- **Desfazer / Refazer**: histórico completo de desfazer/refazer para cada operação
- **Baixar selecionadas**: exporte apenas as páginas selecionadas como um PDF independente
- Repara automaticamente PDFs corrompidos antes de carregá-los
## 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 marcadores de divisão visuais
- Fazer edições rápidas em nível de página sem precisar de um editor de PDF completo
## Dicas
- O sistema de desfazer/refazer registra cada operação. Use-o à vontade, pois você não consegue destruir seu trabalho por acidente.
- Os marcadores de divisão aparecem como linhas azuis tracejadas entre as páginas. Posicione-os visualmente onde quer dividir o documento e depois exporte para obter um ZIP.
- 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)
+40
View File
@@ -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)
+77
View File
@@ -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)
+44
View File
@@ -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)
+44
View File
@@ -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)
+42
View File
@@ -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)
+46
View File
@@ -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)
+45
View File
@@ -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)
+43
View File
@@ -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)
+50
View File
@@ -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
+42
View File
@@ -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)
+43
View File
@@ -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)
+43
View File
@@ -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)
+43
View File
@@ -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)
+43
View File
@@ -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)
+42
View File
@@ -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)
+41
View File
@@ -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)
+95
View File
@@ -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)
+49
View File
@@ -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)
+53
View File
@@ -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)
+55
View File
@@ -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)
+47
View File
@@ -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)
+64
View File
@@ -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
+44
View File
@@ -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)
Loaded 100 of 3344 files, more files were not shown because too many files have changed in this diff. Show more