Plano de entrega de melhorias do HotPDF
Iniciado em 8 de outubro de 2026 sobre a versão 2.800.2; a checklist original de onze workstreams abaixo registra a entrega dos perfis de suporte delimitados dela até à versão 2.820.0
O objetivo posterior de conclusão de capacidades restantes está ativo; a checklist histórica não estabelece a conclusão de renderização geral, transporte FDF, CSS de rich text nem compatibilidade com XFA dinâmico
O trabalho concluído exige APIs públicas funcionais, verificações de aceitação sem GUI com significado, documentação canónica em inglês americano, metadados de versão sincronizados e um commit de versão local
A compatibilidade é definida por entradas suportadas explícitas e por diagnósticos observáveis; um placeholder de interface, uma implementação não verificada ou uma rejeição de funcionalidade não suportada não conclui a funcionalidade correspondente
Lista de verificação de entrega
| Eixo de trabalho | Critérios de aceitação | Estado |
|---|---|---|
| Paridade JSON e C ABI | Exportações estruturadas HTML/XHTML/XML/JSON e CSV/JSON de tabelas tipadas, motores OCR externos, assinatura incremental e campos de assinatura existentes, comparação de documentos, descoberta de capacidades, cancelamento, limites de recursos e publicação segura em caso de falha | Em curso: exportações estruturadas e de tabelas tipadas implementadas; faltam OCR externo, assinatura incremental e comparação |
| Templates HTML de negócio | Imagens e controlos de formulário dentro de flex/grid, contentores aninhados, linhas flex com quebra, spans de colunas de grelha, recursos font-face controlados e fixtures de regressão para faturas, relatórios e contratos em duas colunas | Concluído: layouts de negócio aninhados, quebras/spans, imagens/formulários e tipos de letra controlados verificados em Win32/Win64 |
| Processamento de documentos digitalizados | Orientação de página inteira, endireitamento com ângulo arbitrário, limpeza de contornos/sombras, correção de perspetiva limitada, mapeamento de coordenadas invertível e um fluxo de OCR para dados estruturados | Planeado |
| Conversão de arquivamento PDF/A | Composição opcional de aparências visíveis de anotações e widgets, retenção de texto pesquisável, um perfil de conversão documentado que preserva texto/vetores, validação, relato explícito de perdas e saída atómica | Planeado |
| Comparação de contratos | Alinhamento de parágrafos, registos de inserção/eliminação/substituição por palavra/frase com ambas as posições de origem, exclusão configurável de cláusulas padrão e saída de revisão em PDF anotado ou HTML | Concluído: edições de contrato dos dois lados, movimentos, exclusões e artefactos de revisão verificados em Delphi e FPC |
| Edição limitada de parágrafos | Reflow dentro de um retângulo de página explícito, alterações de tipo de letra e de largura, relato de colisões com conteúdo adjacente, pré-visualização/aplicação/rollback e edição suportada de texto entre linhas de base e em Form XObjects | Planeado |
| Exportação de tabelas XLSX | XLSX independente do Office com números/datas/moedas/percentagens tipados, células unidas, metadados da página de origem, recursos limitados e saída segura em caso de falha | Concluído: livros nativos, JSON e C ABI com aceitação Win32/Win64 e por leitores independentes |
| Perfis de fatura eletrónica | Registo versionado de regras de perfil, despacho Factur-X correto, recursos dedicados dos perfis XRechnung e francês, âmbito de validação explícito e fixtures oficiais de aceitação válidos/inválidos | Concluído: registo versionado, camadas oficiais XRechnung e CTC francesa e aceitação real com Saxon |
| Implementação headless em Linux | Builds ELF Linux reais e aceitação sem GUI para parsing, texto, formulários, segurança/assinaturas e renderização suportada, sem Windows nem ambiente de trabalho ativo | Em curso: parsing portátil Linux real, E/S de objetos, compressão, criptografia, writer e caminhos de texto/tipos de letra; falta a integração completa de documentos, formulários, assinaturas e renderização |
| Compatibilidade XFA dinâmica | Eventos condicionais com orçamento, vinculação de dados explícita, apresentação por instância, integração com o pintor do anfitrião e com a acessibilidade, e fixtures de formulários dinâmicos reproduzíveis | Planeado |
| Reconhecimento de códigos de barras | Múltiplos símbolos por raster, amostragem em perspetiva de Data Matrix, reconhecimento limitado, coordenadas de origem e fixtures com símbolos rodados/em perspetiva/danificados | Em curso: aceitação de regressão multissímbolo e em perspetiva concluída; falta a integração |
Evidência das versões
A versão 2.801.0 acrescenta operações de exportação estruturada e de tabelas tipadas; as suítes de operações Win32 e Win64 passam cada uma 121 testes, incluindo 30 novos casos de exportação, e leitores JSON/XML/HTML/CSV independentes verificam a DLL ABI Win64 real com callbacks parciais, falha de orçamento e cancelamento de publicação
A versão 2.802.0 acrescenta exportação XLSX nativa, JSON e C ABI; Win32 e Win64 passam cada um 134 casos de operações e de livros, e a saída real da DLL passa CRC ZIP e parsing XML independente com valores tipados e seleção de páginas de origem
A versão 2.803.0 acrescenta registos de regras de fatura explícitos e validação oficial XRechnung e CTC francesa; Win32 e Win64 passam cada um 17 casos, incluindo amostras positivas e negativas reais de regras nacionais, definições inválidas do motor, rejeição de DTD e saída de processo limitada
A versão 2.804.0 lança o núcleo portátil Linux com oito grupos de regressão em FPC Linux nativo 3.2.2 e 3.3.1, a par das verificações dos compiladores Windows, e com os aliases de tipos Delphi/C++Builder preservados; a aceitação completa de documentos, formulários, assinaturas e renderização em Linux permanece em curso
A versão 2.805.0 conclui o eixo de templates HTML de negócio com 28 casos de regressão Win32 e 28 Win64, recarregamentos reais de PDF, campos nativos, objetos de imagem, incorporação controlada de tipos de letra e verificações de fallback e de orçamento de recursos
A versão 2.806.0 conclui o eixo de comparação de contratos com 10 casos Delphi Win32 e 10 Win64 e cinco grupos de aceitação FPC por plataforma, cobrindo edições de redação reais em várias páginas, parágrafos entre páginas, cláusulas duplicadas, saída de revisão Unicode, rejeição de fontes desatualizadas, orçamentos e cancelamento
A versão 2.807.0 conclui o eixo de reconhecimento de códigos de barras com 99 verificações Win32 e 99 Win64, incluindo 18 novas verificações de símbolos mistos, perspetiva, símbolos danificados, preservação da origem, geometria, orçamento e cancelamento; o FPC Windows em ambas as plataformas compila o scanner nativo e os helpers de geometria
A versão 2.808.0 acrescenta carregamento nativo headless de documentos classic-xref, recursos herdados e texto de Forms aninhados, inspeção e preenchimento de valores Unicode AcroForm, e gravações incrementais atómicas limitadas; seis alvos nativos Linux FPC 3.2.2/3.3.1 e Windows FPC/Delphi passam cada um 46 asserções, enquanto interfaces C++ geradas e leitores independentes pypdf/MuPDF verificam este primeiro perfil de documentos
A versão 2.809.0 acrescenta Tesseract CLI/DLL e RapidOCR CLI/DLL a tarefas OCR JSON e C ABI; Win32 e Win64 verificam cada um 39 novos casos de operações e 134 casos existentes de operações/exportação, enquanto o Tesseract real e leitores PDF independentes verificam texto pesquisável e píxeis de scan inalterados através da DLL ABI Win64 real
A versão 2.810.0 conclui o pré-processamento de scans e OCR estruturado com 16 testes Delphi Win32 e 16 Win64 e seis verificações reais FPC Windows por plataforma; o Tesseract vivo verifica quatro orientações e seis variantes corrigidas de raster, incluindo um scan a 37,5 graus, enquanto a geometria até ±179,25 graus, limites de trabalho/alocação, overflow de saída do processo, cancelamento em curso, preservação da origem e saída semântica são verificados
A versão 2.811.0 acrescenta validação partilhada de xref streams e object streams, precedência de revisões híbridas, tokens numéricos largos exatos, e round trips que preservam a origem para objetos comprimidos; a aceitação nativa de documentos/núcleo em Linux e Windows e leitores independentes verificam o perfil expandido, e 66 casos de regressão do parser por plataforma Delphi mantêm os limites de desempenho existentes
A versão 2.812.0 conclui o eixo de melhoria de arquivo PDF/A; Delphi Win32 e Win64 passam cada um 24 casos de preservação e 47 casos raster existentes, interfaces Windows FPC e C++Builder novas compilam, leitores independentes pypdf/MuPDF verificam conteúdos e recursos originais, e três artefactos gerados de aparências/OCR passam veraPDF PDF/A-4 com zero regras ou verificações falhadas
A versão 2.813.0 conclui a edição limitada de parágrafos com 20 casos Delphi por arquitetura e sete grupos de aceitação FPC por arquitetura, mais verificações independentes de texto/render em todos os quatro outputs; as regressões de gravações repetidas retêm as edições depois de o grafo ter sido esvaziado
A versão 2.814.0 acrescenta segurança AES-256 ao perfil headless nativo; duas toolchains reais FPC Linux, dois alvos FPC Windows e dois alvos Delphi passam cada um 64 asserções de base, 81 de providers e 82 de documentos encriptados, os cabeçalhos públicos C++Builder compilam, e leitores estritos independentes validam 36 outputs encriptados e os respetivos prefixos de origem preservados
A versão 2.815.0 conclui o eixo de host adapters XFA dinâmicos através do perfil documentado do helper de apresentação de instâncias; cada arquitetura Delphi passa 23 casos novos e 83 de compatibilidade, fontes FPC novas e ambos os alvos de cabeçalhos C++Builder compilam, e leitores independentes pypdf/XML verificam os dados e identidades persistidos
A versão 2.816.0 acrescenta streaming nativo OpenSSL 3 CMS e verificação exata de assinaturas PDF; seis alvos nativos de compiladores Linux/Windows passam cada um 40 asserções de providers e 13 de documentos, os verifiers Windows originais autenticam as assinaturas geradas, ambos os cabeçalhos públicos C++Builder compilam, e verificações independentes OpenSSL/pypdf/MuPDF validam os fixtures reais DER e PDF
A versão 2.817.0 conclui a paridade JSON/C ABI: cada arquitetura passa 34 asserções nativas/FPC de assinatura, 516 asserções reais de assinatura por DLL e 11 verificações CMS independentes; a comparação passa 28 asserções nativas/FPC e 82 reais por DLL por arquitetura, mais 123 verificações independentes JSON/HTML/PDF, e as regressões existentes de operações, ABI e OCR continuam verdes
A versão 2.818.0 acrescenta publicação nativa headless incremental de assinaturas PDF; cada um dos seis alvos de compiladores Linux/Windows passa 45 asserções de assinatura plain/CAdES e 31 de assinaturas encriptadas, ambas as interfaces C++Builder compilam, e leitores e OpenSSL independentes verificam 54 PDFs reais e 60 assinaturas ByteRange sem enfraquecer as verificações de assinaturas encriptadas
A versão 2.819.0 acrescenta rendering nativo CPU Cairo/FreeType PNG e avanços canónicos de tipos de letra standard; duas toolchains nativas FPC Linux passam cada uma 128 asserções limitadas de rendering e 946 asserções independentes pypdf/MuPDF de píxeis/geometria, quatro alvos de compiladores Windows compilam a partir de fontes novas, ambos os cabeçalhos públicos C++Builder compilam, e as regressões de tipos de letra standard correspondem a 1085 origens independentes de carateres em 15 páginas reais
A versão 2.820.0 conclui o eixo nativo Linux com aparências reais de widgets Unicode embedded: cada toolchain FPC Linux passa 19 asserções de metadados e 58 de aparências, cada um dos quatro alvos de compiladores Windows passa 19 e 52, ambas as interfaces C++Builder compilam, e leitores independentes validam 42 PDFs reais com 1294 asserções, incluindo prefixos de origem originais, segurança AES, dados exatos de tipos de letra/glyphs/ToUnicode e fidelidade raster
Todos os onze eixos de melhoria estão concluídos nos respetivos contratos documentados de suporte limitado, com documentação canónica en-us e commits locais de versões lançadas; futuras extensões de plataforma ou de standards PDF registam-se separadamente deste objetivo concluído
Conclusão ativa de capacidades
O plano de conclusão registra os lançamentos posteriores e o trabalho restante; implementações candidatas e resultados parciais de targets não estabelecem um recurso lançado nem a conclusão do objetivo
| Entrega ativa | Aceitação restante |
|---|---|
| Transporte de FDF e anotações | Construir sobre os lançados 2.973.0 grafos de objetos binários de anotações FDF, estados de aparências, recursos partilhados e substituição transacional e 2.974.0 remoção transacional de anotações; completar a eliminação de field-trees de Widgets, ficheiros incorporados, cadeias de ações mais amplas e modelação adicional de políticas de campos com verificação independente da saída |
| Renderização nativa | Construir sobre os lançados 2.972.0 aparências default de anotações e clipping de texto; completar tipos de letra variáveis não default, estados de gráficos adicionais, combinações de tipos de letra e transforms, comparações independentes de geometria e raster, políticas de impressão e reconstrução de fontes de teste |
| CSS e layout de rich text | Construir sobre as folhas de estilo, perfis de media, recursos externos e math numérico finito lançados; completar propriedades, seletores e features de media adicionais, tabelas, imagens e layout geral |
| Runtime de XFA dinâmico | Edição geral de DOM de templates e formulários, remerge explícito, regras de ocorrências e binding, aliases estáveis, media externa e consumers adicionais com cancelamento transacional e verificação persisted-reader |
A implementação FPC atual e a aceitação de lançamento exigem a versão 3.3.1 ou mais recente em todas as plataformas e registam a build real do compilador; resultados de compiladores mais antigos acima retêm as suas identidades históricas e não são gates de lançamento atuais
Restrições de execução
Trabalhe diretamente no diretório canónico do projeto, preserve edições alheias, execute verificações sem GUI com o arranque do visualizador suprimido, faça stage apenas das alterações da tarefa e nunca faça push
Atualize apenas a documentação canónica en-us durante a implementação; a sincronização de traduções é uma tarefa separada