|
O HotPDF é uma biblioteca de componentes VCL para Delphi e C++Builder que gera documentos PDF sem exigir uma DLL PDF externa. O ponto de entrada principal é a classe THotPDF, que gerencia a criação de documentos, o acesso a páginas, a compressão, os metadados, a segurança e os streams de saída.
Os fluxos típicos incluem desenhar texto e gráficos vetoriais, embutir conteúdo de bitmap e metafile, importar imagens TIFF e JPEG2000, anexar arquivos, configurar preferências de viewer, proteger o documento final com senhas e permissões, e carregar PDFs criptografados com Standard RC4-40 / RC4-128 usando uma senha para saída de documento carregado sem criptografia.
Destaques atuais
- Suporte a imagens expandido para fluxos TIFF, JPEG2000, JBIG2, WMF e EMF.
- Suporte LZW embutido, compressão Flate baseada em zlib-ng em modo compatível com zlib, despacho SIMD em runtime do zlib-ng de 64 bits e tratamento de JPEG padrão respaldado por libjpeg-turbo 3.1.90 com aceleração de objetos NASM SIMD.
- Ponte compartilhada de runtime C em HPDFCLibs.pas para objetos OMF Win32 bcc32c/bcc32, objetos COFF64 Win64 e objetos COFF zlib-ng Win64x, incluindo alocação C alinhada a 32 bytes.
- Preferências de viewer e impressão expandidas, incluindo direção do documento, escala de impressão, modo duplex, limites de página e comportamento de zoom inicial.
- Embutimento de fontes aprimorado, saída de texto Unicode e renderização de texto da direita para a esquerda.
- A saída PDF/A Level A habilita o básico de Tagged PDF para conformidade de arquivamento, mantendo a identificação PDF/UA-1 como um opt-in explícito de PDFUACompliance.
- Os fluxos PDF/A-1, PDF/A-2, PDF/A-3, PDF/X-1a, PDF/X-3, PDF/X-4 e PDF/UA-1 incluem gates de produtor conscientes do perfil, geração de metadados, suporte a OutputIntent onde aplicável e cobertura de smoke para PDF/A-2A / PDF/A-3A validada com veraPDF.
- Aplicações demo atualizadas para ViewerPreferences e validação de fontes embutidas.
Mapa de capacidades principais
- Campos AcroForm e ações de formulário: text field, check box, radio button, combo box, list box, push button e signature field, com SubmitForm, ResetForm, JavaScript e ações de nível de documento
- Anotações, links e anexos: saída de anotações text/link/file attachment, a árvore de nomes de arquivos embutidos, links com ações URI e GoTo, e saída interativa no nível da página
- Segurança e assinaturas: senhas e permissões do standard security handler até AES-256 com permissões revision 6, signature fields, assinatura CMS e PAdES/PFX, e carregamento de certificados PFX
- Padrões: saída PDF/A, PDF/X e PDF/UA consciente do perfil, com gates de produtor, metadados, OutputIntent, helpers de Tagged PDF e smoke tests de validação sobre um único modelo de conformidade
- Optional Content layers: grupos de visibilidade, mostrar ou ocultar páginas importadas, recursos de grupo e navegação de layers controlada pelo viewer
- Gráficos: tiling patterns, shadings, recursos reutilizáveis de Form XObject, soft mask e transparency groups, e helpers de canvas
- Imagens: JPEG, TIFF, imagens bilevel estilo fax CCITT, JPEG2000 e imagens JBIG2Decode gravadas por
AddImage e decodificadas de documentos carregados
- Texto: fontes Unicode Type 0 com ToUnicode CMaps, fluxos de fontes CJK, texto RTL, texto vertical, subsetting CFF/OpenType e shaping OpenType GSUB/GPOS
- Arquivos grandes: a Direct File API, um benchmark de arquivos grandes e reescrita de documentos carregados para substituição de objetos, reordenação de páginas e fluxos de copy, merge e edição
- Streams: OutputStream, LoadFromStream e geração em memory-stream para streams de propriedade do chamador e saída server-side sem arquivos temporários
Posicionamento de conformidade com padrões
- O suporte a PDF/A é exposto por meio de PDFACompliance. O HotPDF fornece os metadados PDF/A, as restrições de perfil, a imposição de embutimento de fontes, os hooks de OutputIntent e a cobertura de smoke de validação; a aplicação ainda fornece perfis ICC válidos, valores de título/idioma, fontes e conteúdo adequado ao perfil.
- O suporte a PDF/UA é exposto por meio de PDFUACompliance e das APIs de Tagged PDF. O HotPDF fornece o wrapper no nível do documento, a maquinaria de árvore de estrutura, o mapeamento de papéis, os helpers de marked content, a fiação de ParentTree e os helpers de alternate-text / ActualText; a aplicação ainda é dona da estrutura semântica real e da ordem de leitura.
- PDF/A Level A e PDF/UA-1 são afirmações separadas. O Level A habilita a fundação de Tagged PDF exigida para conformidade de arquivamento, enquanto a identidade XMP do PDF/UA-1 é emitida apenas quando PDFUACompliance está habilitado explicitamente.
Notas de build e plataforma
- Builds Win32 fazem link com objetos OMF zlib-ng gerados por bcc32c e objetos OMF JPEG/TIFF gerados por bcc32 armazenados em Lib\thirdparty\Win32.
- Builds Win64 fazem link com objetos COFF64 armazenados em Lib\thirdparty\Win64; o backend zlib-ng atualmente faz link com os objetos COFF gerados pelo bcc64x armazenados em Lib\thirdparty\Win64x.
- A validação da reconstrução dos objetos nativos passa a partir de saídas limpas: 206 objetos Win32, 205 objetos Win64x e 206 objetos MSVC Win64.
- A unidade HPDFOpenJpeg.pas atualmente serve como camada de interface e ponto de extensão; ela não deve ser tratada como um binding completo em runtime do OpenJPEG nativo.
Diagnósticos
- Os diagnósticos gerais da biblioteca são controlados por withDEBUG em HotPDF.inc, que grava HotPDF-Debug.log quando habilitado.
- O rastreamento de mesclagem de conteúdo de páginas é controlado separadamente por PAGECONTENT_DEBUG_FILE, que grava PageContent_Debug.txt apenas quando explicitamente habilitado.
Validação automatizada
- A suíte de regressão Delphi DUnitX passa em 20 testes no Win32 e 20 testes no Win64 por meio de Tests\Delphi\Run-HotPDFDelphiTests.bat.
- A suíte de regressão GoogleTest do C++Builder passa em 17 testes no Win32 e 17 testes no Win64x por meio de Tests\C++Builder\Run-HotPDFCBuilderTests.bat.
- A cobertura automatizada exercita metadados gerados, texto Unicode e RTL, anotações, anexos, posicionamento de imagens JPEG padrão, importação de imagens e TIFF, compressão Flate zlib-ng, saída de códigos de barras, saída em memory stream, configuração de páginas, criptografia, hyperlinks, parágrafos, fluxos de cópia/mesclagem/edição, tabelas, gráficos, saída numérica, metafiles e relatórios estruturados.
O HotPDF é adequado para geração de relatórios, documentação técnica, fluxos de imagem e outras aplicações que precisam de controle programático direto sobre a saída PDF.
|