Cada ponto de venda abaixo é uma capacidade entregue, não uma promessa de roteiro. Cada um transporta evidência verificável — até unidades de código-fonte, nomes de funções e testes que passam
⚙
Nativo ao nível do código-fonte · sem runtime PDF externo
Integra-se diretamente como código Pascal no seu projeto e gera, analisa e grava PDF inteiramente dentro do seu processo, com controlo total de depuração e de implantação. Os backends C de imagem e compressão (zlib-ng, Zopfli, libjpeg-turbo, OpenJPEG, jbig2dec) são ficheiros de objetos ligados estaticamente — não existe nenhuma DLL extra de motor PDF em runtime
API Pascal nativa · backends C ligados estaticamente
🌐
Shaping e posicionamento OpenType completos
Inclui um motor de substituição GSUB completo (LookupTypes 1-8) e um motor de posicionamento GPOS completo (os 9 LookupTypes): ligaduras, small caps, substituição contextual, kerning de pares/contextual, mark-to-base, mark-to-mark, ligação cursiva. A maioria dos componentes PDF Delphi concorrentes não tem nada disto
20+ funcionalidades tipográficas OpenType aplicadas automaticamente durante a saída de texto
✍
Shaping de scripts complexos do lado do produtor
20+ scripts moldados do lado do produtor: árabe (incluindo Supplement / Extended-A/B), siríaco, mongol, N'Ko, tibetano, devanágari e a família índica, javanês, tailandês/lao, hebraico, khmer, birmanês e mais; emparelhado com um pipeline bidi UAX #9 e mapeamento inverso /ToUnicode completo, para que copiar/colar/pesquisar recupere os codepoints originais
Inclui 35 mapeamentos inversos de ligaduras (LAM-ALEF, família YEH-HAMZA, Allah, etc.)
🔏
Assinatura PFX / PKCS#12 em processo · zero dependências
Assine com PFX/PKCS#12 numa única chamada — THotPDF.SignPDFWithPFX — sem OpenSSL e sem provider criptográfico da plataforma. Toda a cadeia ASN.1, RSA, AES, unwrapping PKCS#12 e CMS SignedData (RFC 5652) está implementada dentro do HotPDF, com resultados reprodutíveis e auditáveis
Unidades: HPDFASN1 / HPDFRSA / HPDFCrypt / HPDFPFX / HPDFCMS / HPDFAES
🛡
Validação de longo prazo PAdES · de ponta a ponta
Suporta PAdES B-B / B-T / B-LT / B-LTA — o requisito duro para conformidade eIDAS da UE: timestamps RFC 3161, dicionários DSS/VRI, assinaturas de timestamp de documento, restrições de Seed Value, XAdES-em-PDF. Os concorrentes normalmente param no CMS básico
Para arquivamento de longo prazo e cenários de assinatura eletrónica que têm de cumprir regras probatórias
✓
Conformidade em três eixos + preflight
Fixa PDF/A-1/-2/-3, PDF/X-1a/-3/-4 e PDF/UA-1 como perfis de conformidade independentes simultâneos; chamadas não conformes lançam exceções de diagnóstico em vez de produzir silenciosamente PDFs não conformes. O preflight emite texto, JSON, HTML, CSV ou MRR XML determinístico e pode combinar políticas incorporadas com plugins limitados e fidedignos de funcionalidades e de validação
Gating da versão PDF por método: RequirePDFVersion + StrictVersionLock
⇄
API de Ficheiros Diretos para múltiplos gigabytes
Processa de ficheiro para ficheiro sem construir o grafo de objetos em memória: DAOpenFileReadOnly, DACopyFile, EncryptFile, DecryptFile tratam tabelas xref clássicas, XRef streams, referências híbridas e ficheiros atualizados incrementalmente, com débito medido em segundos
2 GB / 1,67M objetos: encriptação AES-256 ≈ 14 s; contagem de páginas de 1,25 GB lida em milissegundos
🔤
Subsetting CFF / OpenType-CFF / CID
Faz subsetting de fontes TrueType, OpenType-CFF e CFF com chave CID (EnableFontSubsetting) preservando os IDs de glifos para texto Type0/Identity-H — um documento CJK encolhe de ~14 MB de CFF com chave CID para 500 KB-2 MB; um TTF latino típico de 350 KB para 10-15 KB
Tags de subset determinísticas para saída byte-reprodutível
📈
Adaptadores para quatro motores de relatórios
FastReport, QuickReport, ReportBuilder e DevExpress ExpressPrinting (cobrindo cxGrid/cxRichEdit/cxScheduler/cxPivotGrid), mais um adaptador DBGrid — ligue os seus relatórios existentes ao backend PDF do HotPDF num único passo, sem reescrever relatórios
As unidades dos adaptadores vivem em Lib/addons/<engine>