HotPDF Delphi Component Description

 

Topo  Próxima

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.