Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.

nelsonduarte/PDFApps-pt

Repository files navigation

PDFApps

Editor e gestor de PDFs para Windows, macOS e Linux — rápido, offline e sem subscrições.

Python PySide6 Platform License


Screenshots

Visualizador PDF Dividir PDF
Visualizador Dividir
Comprimir PDF Encriptar PDF
Comprimir Encriptar

Porquê o PDFApps?

100% Offline Os teus ficheiros nunca saem do teu computador
Gratuito para sempre Sem subscrições, sem contas, sem anúncios
Tudo-em-um 11 ferramentas PDF numa única aplicação
Multiplataforma Windows, macOS e Linux
Rápido Lazy rendering — abre PDFs grandes instantaneamente

Funcionalidades

PDFApps reúne num só lugar todas as operações do dia a dia com ficheiros PDF, sem necessidade de ligação à Internet nem conta em serviços externos.

Ferramenta Descrição
Dividir Corta o PDF em vários ficheiros por intervalos de páginas definidos pelo utilizador
Juntar Combina múltiplos PDFs (arrastar e largar) numa única saída, com ordenação livre
Rodar Roda páginas individuais ou todo o documento em qualquer ângulo
Extrair páginas Exporta um subconjunto de páginas para um novo PDF
Reordenar Interface drag-and-drop para reordenar ou remover páginas com pré-visualização
Comprimir Reduz o tamanho do ficheiro com três níveis de compressão (extrema / recomendada / leve)
Encriptar Protege o PDF com senha ou remove a proteção existente
Marca d'água Sobrepõe um PDF de marca/carimbo sobre as páginas com controlo de opacidade e posição
OCR Reconhece texto em PDFs digitalizados — suporta PT, EN, ES, FR e DE
Converter Converte PDF para imagens (PNG/JPG com controlo de DPI), Word (DOCX) ou texto simples (TXT)
Editar Editor visual inline: redigir, inserir texto, imagem, realce, notas, formulários e edição de texto existente
Informação Mostra metadados, número de páginas, tamanho e propriedades do documento

Visualizador integrado

  • Scroll contínuo por todas as páginas (estilo Adobe Acrobat)
  • Lazy rendering — abre instantaneamente; páginas renderizadas em background à medida que são vistas
  • Zoom com Ctrl+scroll ou botões de zoom
  • Seleção e cópia de texto por arrastar
  • Suporte a PDF com senha
  • Drag & drop de ficheiros

Outros destaques

  • Interface escura moderna com painel lateral colapsável
  • Suporte completo a arrastar e largar ficheiros em todos os campos
  • 100% offline — os teus ficheiros nunca saem do teu computador
  • Multiplataforma: Windows, macOS e Linux
  • Instalador com deteção e instalação automática do motor OCR (Tesseract) — Windows

Requisitos

Execução (utilizador final)

Plataforma Requisito
Windows 10/11 64-bit PDFAppsSetup.exe — inclui tudo; Tesseract instalado automaticamente
macOS 10.14+ PDFApps.app — Tesseract via brew install tesseract tesseract-lang
Linux (Ubuntu/Debian/Arch) Binário PDFApps — Tesseract via sudo apt install tesseract-ocr

Desenvolvimento

Tesseract OCR é necessário para a funcionalidade de reconhecimento de texto.

  • Windows: o instalador trata disto automaticamente
  • macOS: brew install tesseract tesseract-lang
  • Linux: sudo apt install tesseract-ocr tesseract-ocr-por tesseract-ocr-eng

Instalação

Windows

  1. Descarrega PDFAppsSetup.exe
  2. Executa o instalador e segue os passos
  3. O PDFApps ficará disponível no Menu Iniciar e, opcionalmente, no Ambiente de Trabalho

Para desinstalar, vai a Definições → Aplicações ou usa o atalho de desinstalação no Menu Iniciar.


Linux (Ubuntu / Debian)

Opção A — A partir do código fonte (recomendado)

# 1. Dependências do sistema
sudo apt update
sudo apt install python3-pip python3-venv tesseract-ocr tesseract-ocr-por tesseract-ocr-eng

# 2. Clonar o repositório
git clone https://github.com/nelsonduarte/PDFApps.git
cd PDFApps

# 3. Ambiente virtual e dependências Python
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 4. Correr
python3 pdfapps.py

Opção B — Compilar um binário nativo

# (com o venv ativo)
python -m PyInstaller --noconfirm pdfapps.spec

# Executar
./dist/PDFApps

O PyInstaller não faz cross-compile — o binário tem de ser compilado no próprio Linux.


macOS

Opção A — A partir do código fonte (recomendado)

# 1. Instalar Homebrew (se necessário)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. Dependências do sistema
brew install python tesseract tesseract-lang

# 3. Clonar o repositório
git clone https://github.com/nelsonduarte/PDFApps.git
cd PDFApps

# 4. Ambiente virtual e dependências Python
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 5. Correr
python3 pdfapps.py

Opção B — Compilar um binário nativo (.app)

# (com o venv ativo)
python -m PyInstaller --noconfirm pdfapps.spec

# Executar
open dist/PDFApps

O PyInstaller não faz cross-compile — o binário tem de ser compilado no próprio macOS.


Configuração do ambiente de desenvolvimento

# Clonar o repositório
git clone https://github.com/nelsonduarte/PDFApps.git
cd PDFApps

# Windows
python -m venv venv
venv\Scripts\activate

# macOS / Linux
python3 -m venv venv
source venv/bin/activate

# Instalar dependências
pip install -r requirements.txt

# Executar
python pdfapps.py        # Windows
python3 pdfapps.py       # macOS / Linux

Build

O processo de build gera três executáveis na pasta dist/:

# 1. Aplicação principal
python -m PyInstaller --noconfirm pdfapps.spec

# 2. Desinstalador
python -m PyInstaller --noconfirm uninstaller.spec

# 3. Instalador (bundla os dois anteriores)
python -m PyInstaller --noconfirm installer.spec
Ficheiro Descrição
dist/PDFApps.exe Aplicação principal (~78 MB)
dist/PDFAppsUninstall.exe Desinstalador standalone (~11 MB)
dist/PDFAppsSetup.exe Instalador para distribuição (~99 MB)

Stack tecnológica

Componente Tecnologia Versão
Interface gráfica PySide6 (Qt 6) 6.10.2
Renderização PDF PyMuPDF (fitz) 1.27.2
Manipulação PDF pypdf 6.8.0
OCR Tesseract + pytesseract 0.3.13
Exportação DOCX python-docx 1.2.0
Processamento de imagem Pillow 12.1.1
Ícones QtAwesome 1.4.1
Empacotamento PyInstaller 6.19.0

Estrutura do projeto

PDFApps/
├── pdfapps.py              # Ponto de entrada da aplicação
├── installer.py            # Instalador (UI tkinter)
├── uninstaller.py          # Desinstalador
├── pdfapps.spec            # Configuração PyInstaller — app
├── installer.spec          # Configuração PyInstaller — instalador
├── uninstaller.spec        # Configuração PyInstaller — desinstalador
├── icon.ico                # Ícone da aplicação
├── requirements.txt        # Dependências Python
├── app/                    # Código fonte modular
│   ├── constants.py        # Cores e constantes de design
│   ├── styles.py           # Stylesheet Qt (tema escuro/claro)
│   ├── utils.py            # Utilitários partilhados
│   ├── widgets.py          # Widgets reutilizáveis (DropFileEdit, etc.)
│   ├── base.py             # Classe base para ferramentas (BasePage)
│   ├── window.py           # Janela principal (MainWindow)
│   ├── tools/              # Ferramentas de manipulação PDF
│   │   ├── dividir.py
│   │   ├── juntar.py
│   │   ├── rotar.py
│   │   ├── extrair.py
│   │   ├── reordenar.py
│   │   ├── comprimir.py
│   │   ├── encriptar.py
│   │   ├── marca_dagua.py
│   │   ├── converter.py
│   │   ├── info.py
│   │   └── ocr.py
│   ├── viewer/             # Visualizador PDF integrado
│   │   ├── canvas.py       # Lazy rendering de páginas em background threads (fitz)
│   │   └── panel.py        # Painel do visualizador com controlos
│   └── editor/             # Editor PDF visual
│       ├── canvas.py       # Canvas de edição (PdfEditCanvas)
│       ├── tab.py          # Tab de edição (TabEditar)
│       └── dialogs.py      # Diálogos auxiliares
└── dist/                   # Executáveis gerados (após build)

Apoiar o projeto

Se o PDFApps te é útil, considera apoiar o desenvolvimento:

Sponsor

Sponsors

🥇 Gold Sponsors

O teu nome/logo aqui — torna-te sponsor

🙌 Backers & Supporters

Obrigado a todos os que apoiam este projeto!


Licença

Este projeto está licenciado sob a MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors