diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
deleted file mode 100644
index 296f957..0000000
--- a/ARCHITECTURE.md
+++ /dev/null
@@ -1,254 +0,0 @@
-# 🏗️ Arquitetura do PDF Builder
-
-## 📋 Visão Geral
-
-O PDF Builder é estruturado em torno de um conjunto central de classes que trabalham juntas para criar documentos PDF. Cada classe tem uma responsabilidade específica e se integra com as outras de forma coesa.
-
-## 🔄 Fluxo de Execução
-
-1. O usuário começa criando uma `PDFConfiguration`
-2. Essa configuração é usada para instanciar um `PDFBuilder`
-3. O `PDFBuilder` usa internamente:
- - `SafeArea` para gerenciar margens
- - `Coordinates` para posicionamento
- - `ResourceManager` para recursos
-
-## 🧩 Componentes Principais
-
-### PDFBuilder
-- **Papel**: Ponto de entrada principal da biblioteca
-- **Responsabilidades**:
- - Gerencia o documento PDF
- - Coordena operações de escrita
- - Controla o fluxo de conteúdo
-- **Dependências**:
- - `PDFConfiguration`
- - `SafeArea`
- - `ResourceManager`
- - `Coordinates`
-
-### PDFConfiguration
-- **Papel**: Configuração imutável do documento
-- **Responsabilidades**:
- - Define tamanho da página
- - Configura margens
- - Define DPI e compressão
- - Estabelece configurações de fonte
-- **Dependências**: Nenhuma (classe imutável)
-
-### SafeArea
-- **Papel**: Gerenciamento de área segura de escrita
-- **Responsabilidades**:
- - Calcula áreas úteis
- - Valida posições
- - Gerencia margens
-- **Dependências**:
- - `PDFConfiguration` (apenas na criação)
-
-### Coordinates
-- **Papel**: Sistema de coordenadas
-- **Responsabilidades**:
- - Rastreia posição atual
- - Calcula movimentações
- - Valida limites
-- **Dependências**:
- - `SafeArea`
-
-### ResourceManager
-- **Papel**: Gerenciamento de recursos do PDF
-- **Responsabilidades**:
- - Gerencia fontes
- - Controla streams
- - Libera recursos
-- **Dependências**:
- - `PDFConfiguration`
-
-## 🔗 Diagrama de Dependências
-
-```
-PDFBuilder
-├─> PDFConfiguration
-├─> SafeArea
-│ └─> PDFConfiguration
-├─> Coordinates
-│ └─> SafeArea
-└─> ResourceManager
- └─> PDFConfiguration
-```
-
-## 📊 Fluxo de Dados
-
-1. **Configuração**:
- ```
- PDFConfiguration (imutável)
- └─> Usado por todas as outras classes
- ```
-
-2. **Posicionamento**:
- ```
- PDFBuilder
- ├─> Coordinates (calcula posição)
- └─> SafeArea (valida posição)
- ```
-
-3. **Renderização**:
- ```
- PDFBuilder
- ├─> ResourceManager (prepara recursos)
- └─> Apache PDFBox (renderiza)
- ```
-
-## 🔒 Garantias e Invariantes
-
-1. **PDFConfiguration**
- - Sempre imutável
- - Valores sempre validados na criação
- - Nunca null após construção
-
-2. **SafeArea**
- - Margens sempre positivas
- - Área útil sempre menor que página
- - Coordenadas sempre validadas
-
-3. **Coordinates**
- - Sempre dentro da SafeArea
- - Movimentos sempre validados
- - Posição atual sempre conhecida
-
-4. **ResourceManager**
- - Recursos sempre liberados
- - Fontes sempre carregadas
- - Streams sempre fechados
-
-## 🔄 Ciclo de Vida
-
-1. **Inicialização**
- ```
- new PDFConfiguration()
- └─> new PDFBuilder(config)
- ├─> new SafeArea(config)
- ├─> new Coordinates(safeArea)
- └─> new ResourceManager(config)
- ```
-
-2. **Operação**
- ```
- PDFBuilder.addText()
- ├─> Coordinates.getPosition()
- ├─> SafeArea.validate()
- └─> ResourceManager.getFont()
- ```
-
-3. **Finalização**
- ```
- PDFBuilder.save()
- └─> ResourceManager.close()
- ```
-
-## 📝 Convenções de Código
-
-1. **Imutabilidade**
- - `PDFConfiguration` é completamente imutável
- - Outros objetos são mutáveis mas thread-safe
-
-2. **Validação**
- - Todas as entradas são validadas
- - Falhas geram exceções descritivas
- - Estado inválido é impossível
-
-3. **Recursos**
- - Todos os recursos são gerenciados
- - Cleanup automático no fechamento
- - Sem vazamentos de memória
-
-## 🚀 Pontos de Extensão
-
-1. **Componentes Futuros**
- - Sistema de tabelas
- - Suporte a imagens
- - Estilos avançados
-
-2. **Melhorias Planejadas**
- - Cache de recursos
- - Otimização de renderização
- - Suporte a threads
-
-## 🎯 Decisões de Design
-
-1. **Por que Imutável?**
- - `PDFConfiguration` é imutável para thread-safety
- - Facilita cache e otimização
- - Previne bugs de estado
-
-2. **Por que SafeArea?**
- - Abstrai complexidade de margens
- - Facilita validação de posições
- - Melhora usabilidade
-
-3. **Por que ResourceManager?**
- - Centraliza gestão de recursos
- - Previne vazamentos
- - Facilita otimizações
-
-## 📚 Exemplos de Uso
-
-Ver `PDFBuilderDemo.java` para exemplos práticos de:
-- Configuração básica
-- Manipulação de texto
-- Movimentação no documento
-- Gestão de recursos
-
-## Componentes de Texto
-
-### SimpleText
-- Componente básico para renderização de texto
-- Suporta:
- * Fonte e tamanho
- * Cor
- * Quebra automática de linha
- * Espaçamento entre linhas
-- Implementa builder pattern para configuração
-- Respeita área segura do documento
-
-### Paragraph
-- Componente avançado para parágrafos com formatação rica
-- Suporta todos os recursos do SimpleText mais:
- * Múltiplos estilos no mesmo parágrafo
- - Negrito (Bold)
- - Itálico (Oblique)
- - Sublinhado com espessura configurável
- - Cores personalizadas
- * Alinhamentos
- - Esquerda (LEFT)
- - Centro (CENTER)
- - Direita (RIGHT)
- - Justificado (JUSTIFIED)
- * Justificação com distribuição uniforme de espaços
- * Quebra inteligente de palavras
-- Classes auxiliares:
- * TextStyle: Define estilo de formatação
- * StyledText: Associa texto com estilo
- * TextAlignment: Enum de alinhamentos
-
-### Estratégias de Implementação
-
-#### Renderização de Texto
-- Usa PDPageContentStream para desenho direto
-- Calcula posições baseado em métricas da fonte
-- Respeita margens e área segura
-- Atualiza coordenadas após renderização
-
-#### Alinhamento Justificado
-- Calcula espaço extra disponível na linha
-- Distribui uniformemente entre palavras
-- Última linha não é justificada
-- Mantém formatação individual das palavras
-
-#### Quebra de Linha
-- Respeita largura máxima disponível
-- Preserva palavras inteiras
-- Mantém estilos ao quebrar linha
-- Calcula altura baseada no maior tamanho de fonte da linha
-
-## Exemplos
-Veja `examples/ParagraphDemo.java` para demonstração completa das funcionalidades de texto.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 3d078d8..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# Contributing Guide
-
-Thank you for considering contributing to PDF Builder! This document provides guidelines for contributing to the project.
-
-## Getting Started
-
-1. Fork the repository
-2. Clone your fork (`git clone git@github.com:your-username/pdf-builder.git`)
-3. Create your feature branch (`git checkout -b feature/AmazingFeature`)
-4. Commit your changes (`git commit -m 'feat: add some amazing feature'`)
-5. Push to the branch (`git push origin feature/AmazingFeature`)
-6. Open a Pull Request
-
-## Git Workflow
-
-### Branches
-- `main`: Production code
-- `develop`: Development code for next release
-- `feature/*`: New features
-- `bugfix/*`: Bug fixes
-- `release/*`: Release preparation
-
-### Development Process
-1. **New Feature**
- ```bash
- git checkout develop
- git pull origin develop
- git checkout -b feature/feature-name
- # Develop your feature
- git commit -m "feat: description of the feature"
- ```
-
-2. **Bug Fix**
- ```bash
- git checkout develop
- git pull origin develop
- git checkout -b bugfix/bug-description
- # Fix the bug
- git commit -m "fix: description of the fix"
- ```
-
-3. **Commits**
- We follow Conventional Commits:
- - `feat:` New feature
- - `fix:` Bug fix
- - `docs:` Documentation changes
- - `test:` Adding/modifying tests
- - `refactor:` Code refactoring
- - `style:` Formatting, semicolons, etc
- - `chore:` Build updates, dependencies, etc
-
-4. **Pull Requests**
- - Create PR from your branch to `develop`
- - Wait for code review
- - Ensure all checks pass:
- - Build
- - Tests
- - Coverage (min 80%)
- - Checkstyle
- - SpotBugs
-
-5. **Release**
- ```bash
- git checkout develop
- git checkout -b release/v1.x.x
- # Update version in pom.xml
- git commit -m "chore: bump version to v1.x.x"
- # After testing and approval
- git checkout main
- git merge release/v1.x.x
- git tag v1.x.x
- ```
-
-## Code Quality
-
-### Before Submitting a PR
-1. Run tests: `mvn test`
-2. Check coverage: `mvn jacoco:report`
-3. Run checkstyle: `mvn checkstyle:check`
-4. Run spotbugs: `mvn spotbugs:check`
-5. Format your code
-6. Update documentation if needed
-
-### Code Standards
-- Follow Google Java Style Guide
-- Keep methods small and focused
-- Write tests for new code
-- Document public APIs with JavaDoc
-- Maintain test coverage above 80%
-
-## Development Requirements
-
-### Java
-- Use Java 17 or higher
-- Follow Java best practices
-- Keep dependencies up to date
-
-### Testing
-- Write unit tests for new features
-- Include integration tests when needed
-- Follow test naming convention: `given_when_then`
-- Mock external dependencies
-
-### Documentation
-- Update README.md for new features
-- Keep JavaDoc up to date
-- Include code examples
-- Document breaking changes
-
-## Development Environment Setup
-
-### Git Hooks
-
-The project uses Git hooks to maintain code quality. These are automatically installed by Maven when you build the project.
-
-The hooks enforce our quality standards:
-
-**Pre-commit:**
-- Code style (Checkstyle)
-- Compilation check
-
-**Pre-push:**
-- Unit tests
-- Test coverage (minimum 80%)
-- Static analysis (SpotBugs)
-
-## Issues
-
-- Check existing issues before creating a new one
-- Use appropriate labels
-- Clearly describe the problem or feature
-- Include steps to reproduce bugs
-
-## Branches
-
-- `main`: Always stable
-- `develop`: Development branch
-- `feature/*`: New features
-- `fix/*`: Bug fixes
-- `docs/*`: Documentation updates
-
-## Pull Requests
-
-- Clearly describe changes
-- Reference related issues
-- Wait for review before merging
-- Keep PRs small and focused
-
-## Running Tests
-
-```bash
-# Run all tests
-mvn clean test
-
-# Run tests for a specific class
-mvn test -Dtest=ClassNameTest
-
-# Run a specific test
-mvn test -Dtest=ClassNameTest#methodName
-```
-
-## Documentation
-
-- Keep README.md up to date
-- Document new features
-- Update examples when necessary
-- Include comments in complex code
-
-## Questions?
-
-If you have questions about contributing, open an issue with the `question` label.
diff --git a/README.md b/README.md
index 92dcaad..51d7336 100644
--- a/README.md
+++ b/README.md
@@ -1,46 +1,29 @@
# PDF Builder
-Uma biblioteca Java de alto nível para construção de PDFs, abstraindo toda a complexidade do Apache PDFBox.
+A high-level Java library for PDF generation that abstracts away the complexity of Apache PDFBox, providing an intuitive and developer-friendly API.
-## Requisitos
+[](https://github.com/joabsonlg/pdf-builder/actions)
+[](https://opensource.org/licenses/MIT)
+[](https://adoptium.net/)
-- Java 17 ou superior
-- Apache PDFBox 3.0.1
-- Maven 3.x
-
-## Qualidade de Código
-
-O projeto utiliza várias ferramentas para garantir a qualidade do código:
-
-### Checkstyle
-- Garante consistência no estilo de código
-- Verifica padrões de codificação Java
-- Configurado com regras baseadas no Google Java Style
-- Execute com: `mvn checkstyle:check`
-
-### JaCoCo
-- Cobertura mínima de código: 80%
-- Monitora execução de testes
-- Gera relatórios detalhados de cobertura
-- Relatório disponível em: `target/site/jacoco/index.html`
-- Execute com: `mvn test jacoco:report`
+## Features
-### SpotBugs
-- Análise estática para encontrar bugs potenciais
-- Verifica problemas de segurança
-- Identifica más práticas de programação
-- Execute com: `mvn spotbugs:check`
+- **Simple API**: Create professional PDFs with minimal code
+- **Rich Components**: Headers, paragraphs, tables, lists, images, and more
+- **Smart Layout**: Automatic page breaks and content positioning
+- **Highly Configurable**: Customize every aspect of your PDF
+- **Type-Safe**: Builder pattern with strong typing for error-free development
+- **Well-Tested**: Extensive test coverage ensuring reliability
+- **Well-Documented**: Comprehensive documentation with examples
-## Dependências Principais
+## Requirements
-- Apache PDFBox 3.0.1
-- Commons IO 2.15.1
-- SLF4J 2.0.11
-- JUnit Jupiter 5.10.1 (para testes)
+- Java 17 or higher
+- Maven 3.x
-## Instalação
+## Installation
-Para incluir o PDF Builder em seu projeto Maven, adicione a seguinte dependência ao seu `pom.xml`:
+Add the following dependency to your `pom.xml`:
```xml
@@ -50,85 +33,31 @@ Para incluir o PDF Builder em seu projeto Maven, adicione a seguinte dependênci
```
-## Estrutura do Projeto
+## Quick Start
+```java
+PDFBuilder builder = new PDFBuilder();
+
+// Add a heading
+builder.addHeading(Heading.builder()
+ .withText("My Document")
+ .withLevel(HeadingLevel.H1)
+ .build());
+
+// Add a paragraph
+builder.addParagraph(Paragraph.builder()
+ .addText("Hello, World!")
+ .withAlignment(TextAlignment.CENTER)
+ .build());
+
+// Save the document
+builder.save("output.pdf");
```
-pdf-builder/
-├── src/
-│ ├── main/java/br/com/nutit/pdfbuilder/
-│ │ ├── components/
-│ │ │ ├── image/ # Componentes de imagem
-│ │ │ ├── list/ # Componentes de lista
-│ │ │ ├── logo/ # Componentes de logo
-│ │ │ ├── page/ # Componentes de página
-│ │ │ ├── table/ # Componentes de tabela
-│ │ │ └── text/ # Componentes de texto
-│ │ ├── core/ # Classes principais
-│ │ │ ├── Coordinates.java # Sistema de coordenadas
-│ │ │ ├── PDFBuilder.java # Classe principal
-│ │ │ ├── PDFConfiguration.java # Configurações
-│ │ │ ├── ResourceManager.java # Gerenciamento de recursos
-│ │ │ └── SafeArea.java # Áreas seguras
-│ │ ├── examples/ # Exemplos de uso
-│ │ ├── exceptions/ # Exceções customizadas
-│ │ └── utils/ # Classes utilitárias
-│ └── test/ # Testes unitários
-└── pom.xml # Configuração Maven
-```
-## Funcionalidades
-
-### 1. Configuração do Documento
-- Tamanho de página personalizado (A4, A3, etc.)
-- Margens personalizadas
-- DPI para imagens
-- Qualidade de compressão
-- Tamanho de fonte e espaçamento padrão
-- Área segura com suporte a cabeçalho e rodapé
-
-### 2. Sistema de Coordenadas
-- Movimentação relativa (direita, abaixo)
-- Movimentação absoluta (topo, início, fundo)
-- Sistema de margens e áreas seguras
-- Posicionamento percentual na página
-
-### 3. Componentes de Texto
-- Texto simples com formatação
-- Parágrafos com alinhamento
-- Títulos e subtítulos (H1-H6)
-- Estilos de texto personalizados
-- Fontes e cores customizáveis
-
-### 4. Componentes de Imagem
-- Suporte a diversos formatos (JPG, PNG)
-- Redimensionamento automático
-- Manutenção de proporção
-- Alinhamento flexível
-- Legendas opcionais
-
-### 5. Componentes de Lista
-- Listas ordenadas e não-ordenadas
-- Estilos de marcadores personalizáveis
-- Suporte a múltiplos níveis
-- Formatação flexível
-
-### 6. Componentes de Tabela
-- Tabelas simples com cabeçalho
-- Alinhamento de células
-- Estilos de borda personalizáveis
-- Cores alternadas para linhas
-
-### 7. Cabeçalho e Rodapé
-- Logo personalizado com imagens
-- Numeração de páginas automática
-- Rodapé confidencial
-- Estilos predefinidos
-
-## Exemplos de Uso
-
-### Documento Básico
+## Core Components
+
+### Document Configuration
```java
-// Configuração do documento
PDFConfiguration config = PDFConfiguration.create()
.withPageSize(PDRectangle.A4)
.withMargins(50f, 40f, 30f, 40f)
@@ -136,93 +65,100 @@ PDFConfiguration config = PDFConfiguration.create()
.build();
PDFBuilder builder = new PDFBuilder(config);
+```
-// Adiciona título
-builder.addHeading(Heading.builder()
- .withText("Meu Documento")
- .withLevel(HeadingLevel.H1)
+### Headers and Footers
+```java
+// Add company logo
+builder.setLogo(Logo.builder()
+ .withText("Company Name")
+ .withLeftImage("path/to/logo.png")
+ .withStyle(LogoStyle.DEFAULT)
.build());
-// Adiciona parágrafo
-builder.addParagraph(Paragraph.builder()
- .addStyledText("Este é um exemplo de parágrafo com ", TextStyle.DEFAULT)
- .addStyledText("texto em negrito", TextStyle.builder().withBold(true).build())
+// Add page numbering
+builder.setPageNumbering(PageNumbering.builder()
+ .withFormat("Page {current} of {total}")
+ .withPosition(Position.BOTTOM_RIGHT)
.build());
-
-// Salva o documento
-builder.save("exemplo.pdf");
```
-### Logo e Numeração de Páginas
+### Tables
```java
-// Configuração do logo
-LogoStyle logoStyle = LogoStyle.builder()
- .withFontSize(16f)
- .withColor(Color.BLACK)
- .withImageWidth(50f)
- .withImageHeight(30f)
- .withMaintainAspectRatio(true)
- .build();
-
-// Configuração da numeração de páginas
-PageNumbering pageNumbering = PageNumbering.builder()
- .withFormat(PageNumbering.Format.WITH_TOTAL)
- .withPosition(PageNumbering.Position.BOTTOM)
- .withAlignment(TextAlignment.RIGHT)
+Table table = Table.builder()
+ .withHeaders("Name", "Age", "City")
+ .addRow("John Doe", "30", "New York")
+ .addRow("Jane Smith", "25", "London")
+ .withStyle(TableStyle.builder()
+ .withBorderWidth(1f)
+ .withHeaderBackground(Color.LIGHT_GRAY)
+ .build())
.build();
-// Adiciona logo e numeração
-builder.setLogo("Minha Empresa", logoStyle, "logo-left.png", "logo-right.png");
-builder.setPageNumbering(pageNumbering);
+builder.addTable(table);
```
-### Tabelas e Listas
+### Lists
```java
-// Criação de tabela
-Table table = Table.builder()
- .withHeaders("Nome", "Idade", "Cidade")
- .addRow("João", "25", "São Paulo")
- .addRow("Maria", "30", "Rio de Janeiro")
- .build();
-
-// Criação de lista
List list = List.builder()
.withOrdered(true)
- .addItem("Primeiro item")
- .addItem("Segundo item")
- .addItem("Terceiro item")
+ .addItem("First item")
+ .addItem("Second item with nested list",
+ List.builder()
+ .withOrdered(false)
+ .addItem("Nested item 1")
+ .addItem("Nested item 2")
+ .build())
.build();
-// Adiciona ao documento
-builder.addTable(table);
builder.addList(list);
```
-## Development
+## Project Structure
-For development guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md).
+```
+pdf-builder/
+├── src/
+│ ├── main/java/io/github/joabsonlg/pdfbuilder/
+│ │ ├── components/ # PDF Components
+│ │ │ ├── image/ # Image handling
+│ │ │ ├── list/ # List components
+│ │ │ ├── logo/ # Logo components
+│ │ │ ├── page/ # Page components
+│ │ │ ├── table/ # Table components
+│ │ │ └── text/ # Text components
+│ │ ├── core/ # Core classes
+│ │ ├── examples/ # Usage examples
+│ │ ├── exceptions/ # Custom exceptions
+│ │ └── utils/ # Utility classes
+│ └── test/ # Unit tests
+└── pom.xml # Maven configuration
+```
-## Testes
+## Quality Assurance
-Para executar os testes:
+We maintain high code quality standards through:
-```bash
-mvn clean test
-```
+- **Checkstyle**: Enforces Google Java Style Guide
+- **SpotBugs**: Static analysis for potential bugs
+- **JaCoCo**: Ensures 80%+ code coverage
+- **JUnit**: Comprehensive unit testing
-## Próximos Passos
+## Contributing
-- Tabelas complexas com merge de células
-- Marcas d'água
-- Links e âncoras
-- Índice automático
-- QR Codes e códigos de barras
-- Templates pré-definidos
+1. Fork the repository
+2. Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
+4. Push to the branch (`git push origin feature/amazing-feature`)
+5. Open a Pull Request
-## Licença
+## License
-Este projeto está sob a licença [MIT](LICENSE).
+This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
-## Contribuindo
+## Dependencies
-Contribuições são bem-vindas! Por favor, leia o guia de contribuição para saber como contribuir com o projeto.
+- Apache PDFBox 3.0.1
+- Commons IO 2.15.1
+- SLF4J 2.0.11
+- JUnit Jupiter 5.10.1 (test)
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..4cea8b4
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,44 @@
+# Security Policy
+
+## Supported Versions
+
+Currently supported versions with security updates:
+
+| Version | Supported |
+| ------- | ------------------ |
+| 1.0.x | :white_check_mark: |
+
+## Reporting a Vulnerability
+
+We take the security of PDF Builder seriously. If you believe you have found a security vulnerability, please report it to us as described below.
+
+**Please do not report security vulnerabilities through public GitHub issues.**
+
+Instead, please report them via email to joabsonlg918@gmail.com. You should receive a response within 48 hours. If for some reason you do not, please follow up via email to ensure we received your original message.
+
+Please include the following information in your report:
+
+- Type of issue (e.g., buffer overflow, SQL injection, cross-site scripting, etc.)
+- Full paths of source file(s) related to the manifestation of the issue
+- The location of the affected source code (tag/branch/commit or direct URL)
+- Any special configuration required to reproduce the issue
+- Step-by-step instructions to reproduce the issue
+- Proof-of-concept or exploit code (if possible)
+- Impact of the issue, including how an attacker might exploit it
+
+## Preferred Languages
+
+We prefer all communications to be in English.
+
+## Security Update Process
+
+1. The security report will be acknowledged within 48 hours
+2. We will confirm the issue and determine its severity
+3. We will develop and test a fix
+4. We will prepare a security advisory and release timeline
+5. We will notify users when a security release is scheduled
+6. Once the fix is verified, we will release it according to our release process
+
+## Comments on this Policy
+
+If you have suggestions on how this process could be improved, please submit a pull request.
diff --git a/TODO.md b/TODO.md
deleted file mode 100644
index 6646405..0000000
--- a/TODO.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# PDF Builder - Roadmap e Arquitetura
-
-Uma biblioteca Java de alto nível para construção de PDFs, abstraindo toda a complexidade do Apache PDFBox.
-
-## Objetivos Principais
-
-- [ ] Criar uma API fluente e intuitiva
-- [ ] Abstrair toda complexidade do PDFBox
-- [ ] Fornecer componentes pré-construídos para uso comum
-- [ ] Garantir extensibilidade para casos específicos
-- [ ] Documentação completa e exemplos práticos
-
-## Tarefas de Desenvolvimento
-
-### 1. Configuração Inicial
-- [x] Setup do projeto Maven/Gradle
-- [x] Configuração de dependências (PDFBox, etc)
-- [x] Estrutura inicial de pacotes
-- [x] Configuração de testes (JUnit)
-
-### 2. Core da Biblioteca
-- [x] Implementar classe principal `PDFBuilder`
-- [x] Desenvolver sistema de configuração global
-- [x] Criar sistema de gestão de recursos (fontes, imagens)
-- [x] Implementar sistema de coordenadas simplificado
-- [x] Desenvolver sistema de margens e áreas seguras
-
-### 3. Componentes Básicos
-- [x] Texto simples com formatação
-- [x] Parágrafos com alinhamento
-- [x] Títulos e subtítulos
-- [x] Imagens com redimensionamento
-- [x] Tabelas simples
-- [x] Listas (ordenadas e não ordenadas)
-
-### 4. Componentes Avançados
-- [x] Numeração de páginas
-- [x] Cabeçalhos e rodapés automáticos
-- [ ] Tabelas complexas com merge de células
-- [ ] Marcas d'água
-- [ ] Links e âncoras
-- [ ] Índice automático
-- [ ] QR Codes e códigos de barras
-
-### 5. Layout e Estilos
-- [ ] Sistema de estilos reutilizáveis
-- [ ] Templates pré-definidos
-- [ ] Temas customizáveis
-- [ ] Grids e sistemas de layout
-- [ ] Quebras de página inteligentes
-
-### 6. Recursos Avançados
-- [ ] Suporte a formulários
-- [ ] Assinatura digital
-- [ ] Criptografia de documentos
-- [ ] Compressão otimizada
-- [ ] Metadados customizados
-- [ ] Suporte a múltiplos idiomas
-
-### 7. Otimização e Performance
-- [ ] Cache de recursos
-- [ ] Otimização de memória
-- [ ] Geração assíncrona
-- [ ] Streaming de documentos grandes
-
-### 8. Documentação e Exemplos
-- [ ] JavaDoc completo
-- [ ] Guia de início rápido
-- [ ] Documentação detalhada
-- [ ] Exemplos práticos
-- [ ] Snippets de código
-- [ ] Tutoriais em vídeo
-
-## Arquitetura Proposta
-
-```
-com.pdfbuilder/
-├── core/
-│ ├── PDFBuilder.java # Classe principal
-│ ├── PDFDocument.java # Representação do documento
-│ └── config/ # Configurações globais
-├── components/
-│ ├── text/ # Componentes de texto
-│ ├── image/ # Componentes de imagem
-│ ├── table/ # Componentes de tabela
-│ └── layout/ # Componentes de layout
-├── style/
-│ ├── Theme.java # Sistema de temas
-│ └── Style.java # Estilos reutilizáveis
-├── utils/
-│ ├── FontManager.java # Gestão de fontes
-│ ├── ImageUtils.java # Utilidades de imagem
-│ └── ColorUtils.java # Utilidades de cor
-└── exceptions/ # Exceções customizadas
-```
-
-## Padrões de Design a Serem Utilizados
-
-- [ ] Builder Pattern para construção fluente
-- [ ] Factory Method para criação de componentes
-- [ ] Strategy para diferentes tipos de renderização
-- [ ] Template Method para comportamentos padrão
-- [ ] Chain of Responsibility para processamento de elementos
-- [ ] Observer para eventos de renderização
-- [ ] Composite para estrutura de elementos
-
-## Considerações Técnicas
-
-### Requisitos Mínimos
-- Java 17+
-- Apache PDFBox 3.0+
-- Memória suficiente para processamento de PDFs grandes
-
-### Dependências Principais
-- Apache PDFBox
-- Commons IO
-- SLF4J (logging)
-- JUnit (testes)
-
-### Compatibilidade
-- [ ] Garantir funcionamento em Windows, Linux e MacOS
-- [ ] Suporte a containers Docker
-- [ ] Compatibilidade com principais servidores de aplicação
-
-## Métricas de Qualidade
-
-- [ ] Cobertura de testes > 80%
-- [ ] Documentação completa de todas as classes públicas
-- [ ] Zero vulnerabilidades críticas
-- [ ] Performance otimizada para documentos grandes