HotPDF 2.200.2 para Delphi e C++Builder

Geração, edição, assinatura de PDF nativo, saída em conformidade com normas, otimização de fontes e processamento de imagem para aplicações RAD Studio

O HotPDF permite que as aplicações VCL criem, modifiquem, protejam, assinem, otimizem, importem, comprimam e gravem documentos PDF diretamente a partir de código Delphi ou C++Builder, sem a necessidade de implementar um runtime PDF externo

Visão Geral do Projeto

O HotPDF é uma biblioteca de componentes PDF ao nível do código fonte para Delphi e C++Builder; foi desenvolvido para software de desktop que necessita de saída PDF determinística, desenho direto na página, forte integração com o RAD Studio e implementação compacta

O componente abrange a geração diária de PDF, montagem avançada de documentos, edição de PDF, saídas com grande densidade de imagens, formulários, anotações, encriptação, fluxos de trabalho de assinatura, otimização de fontes e fluxos de trabalho baseados em streams a partir de uma única superfície de API nativa

As atualizações recentes da biblioteca expandiram o HotPDF de um escritor de PDF clássico para um kit de ferramentas PDF nativo mais amplo que abrange controlo de funcionalidades específicas das versões PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, encriptação PDF 2.0 selecionada, conformidade com as normas PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1, assinaturas digitais de referência / estendidas / de validação a longo prazo PAdES, um pipeline de assinatura PFX / PKCS#12 em processo que não depende de OpenSSL ou de binários nativos externos, gravação de atualizações incrementais, subsetting de fontes CFF / OpenType / CFF indexadas por CID e adaptadores de exportação de PDF para FastReport, QuickReport, ReportBuilder e DevExpress ExpressPrinting que direcionam os seus relatórios existentes através do HotPDF como um único backend PDF; uma Direct File API processa ficheiros PDF de vários gigabytes e com milhões de objetos de ficheiro para ficheiro — contagem de páginas, cópias, reescrita de informações do documento e encriptação ou desencriptação AES-256 — em segundos, e o carregador agora também recupera documentos envolvidos em contentores de transporte com offsets desatualizados e ficheiros atualizados incrementalmente com objetos órfãos ou substituídos

O ciclo v2.119.32-51 adicionou modelação de Árabe / Persa / Urdu no lado do produtor (ligadura obrigatória LAM-ALEF, 9 letras de Árabe Presentation Forms-A), um motor de substituição OpenType GSUB completo que abrange todos os LookupType 1-8 com seleção de Script / LangSys e fecho de subsetter TTF para glifos substitutos, suporte para contentor XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), uma família de gatilhos de campos de formulário AcroForm /AA /K + /F + /V + /C, registo de fonte multi-Unicode /DR via RegisterAcroFormFont, definidores de atributos de acessibilidade de elementos de estrutura (/Lang / /E / /T) com uma enumeração de tipo de estrutura padrão Tabela 333 e sobrecarga tipada de AddStructureElement, e propriedades de sequência de conteúdo marcado em BeginTaggedContent

O ciclo v2.119.52-68 fechou o pipeline de modelação automática Fase 8 e alargou a cobertura de scripts: Árabe Extended-A (incluindo o Suplemento Árabe U+0750-077F e Árabe Extended-A U+08A0-08FF) e Persa / Urdu Form-B foram estendidos para a tabela completa de classes de junção U+0672-06D5 mais 26 novos mapeamentos Forms-A, com agrupamento pós-passagem para LAM-ALEF, pares YEH-HAMZA + vogal (8 ligaduras em U+FBEA-FBFB), a ligadura autónoma de Allah (U+FDF2) e a frase Bismillah de 22 pontos de código (U+FDFD); a nova propriedade opcional de adesão ShapingFeatures + enumeração THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) faz com que o produtor emita substituições rlig / liga / clig / rclt específicas de fonte geridas por GSUB automaticamente, com ligaduras padrão latinas (ff / fi / fl / ffi / ffl / ſt / st via U+FB00-FB06) e reordenação de sílabas Índicas Devanágari (Repha + I-matra pré-base) a juntarem-se ao mesmo pipeline; novos métodos de capacidade de modelação para Siríaco (GetSyriacJoiningClass / GetSyriacPosition), Mongol (GetMongolianJoiningClass / GetMongolianPosition) e Devanágari (GetDevanagariCategory / ApplyDevanagariReorder) permitem que os chamadores direcionem scripts complexos não árabes através do mesmo motor GSUB; GetCodepointAdvance expõe a fração em /W em cache para cálculos de quebra de linha, e AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID permitem ao produtor emitir qualquer GID substituto de GSUB (formas de agrupamento Devanágari, alternativas estilísticas, sequências de variação CJK) através de pontos de código de Área de Uso Privado com integração total de /CIDToGIDMap + /ToUnicode + /W; o ToUnicode CMap cumulativo inclui agora 35 entradas de mapeamento inverso de ligaduras (8 LAM-ALEF + 18 da família YEH-HAMZA + 1 de Allah + 1 de Bismillah + 7 latinas) para que a cópia/colagem no leitor de consumo produza os pontos de código de origem; os esqueletos de documentação para o ChangeLog são agora fornecidos em 11 idiomas (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) com uma interface de utilizador de seleção de idioma; o limite de retenção do ChangeLog foi aumentado de 250 para 500 secções de versão

O ciclo v2.152-v2.190 desenvolveu um motor de posicionamento OpenType GPOS completo e alargou a cobertura de scripts complexos; as opções de modelação por adesão aplicam agora o kerning próprio da fonte (par, contextual e da direita para a esquerda), posicionamento de marcas combinadas (marca-para-base, marca-para-marca e marca-para-ligadura por componente), âncoras de ligação cursiva e kerning vertical para texto vertical, tudo escrito como operadores de texto padrão PDF para que qualquer leitor renderize o mesmo resultado; a modelação do lado do produtor abrange agora Árabe (incluindo os blocos Suplemento, Extended-A e Extended-B), Siríaco, Mongol, N'Ko, Adlam, Hanifi Rohingya, empilhamento de consoantes Tibetanas, Devanágari e outros scripts Índicos através da cadeia de funcionalidades Índicas da fonte, Javanês, ordenação de marcas Tailandesas e Laosianas, ordenação de pontos de vogais Hebraicas, Khmer, Mianmar, Tai Viet e Meetei Mayek; uma família de funcionalidades tipográficas OpenType opcionais — ligaduras padrão, discricionárias e históricas, versaletes, algarismos oldstyle / lining / proporcionais / tabulares, expoentes, subscritos, ordinais, frações, inferiores científicos, numeradores, denominadores, alternativas estilísticas e contextuais, formas localizadas, formas sensíveis a maiúsculas e minúsculas, zero cortado e alternativas verticais — pode ser aplicada automaticamente durante a saída de texto; a cópia, colagem e pesquisa de texto recuperam os carateres originais em toda a saída modelada, incluindo ligaduras e substituições de funcionalidades encadeadas; a saída de fonte também se tornou menor: os programas de fontes incorporadas são sempre comprimidos com Flate, uma fonte utilizada em várias páginas é incorporada uma vez por documento, as etiquetas de subset são derivadas deterministicamente para uma saída reproduzível e um modo compacto opcional escreve texto plain-ASCII com fontes padrão como texto WinAnsi não incorporado

Conformidade com as Normas PDF

O HotPDF inclui suporte específico da versão para as funcionalidades práticas de criação PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6 e PDF 1.7 utilizadas por aplicações de negócios, processamento de imagem, publicação e automatização de documentos; as APIs públicas são verificadas em relação à versão PDF selecionada para que os ficheiros gerados evitem entradas mais recentes quando é necessária uma compatibilidade estrita

A matriz atual abrange filtros e preditores, streams XRef, cadeias de atualização incremental, encriptação AES, segurança de chave pública, cores DeviceCMYK e ICCBased, padrões de mosaico (tiling patterns), sombreamentos axiais/radiais/multi-stop, imagens inline, camadas, grupos de transparência, transições de página, anotações, widgets AcroForm, hooks de assinatura externos, metadados XMP, árvores de estrutura PDF marcadas, OutputIntents, caixas de página de produção, ViewerPreferences, UserUnit, ordenação de Tabs e incorporação/subsetting de fontes para fontes TrueType, Type 3, CFF, OpenType-CFF e CFF indexadas por CID

Esta é uma cobertura ampla e ciente das normas para a superfície de criação suportada pelo HotPDF, não uma afirmação genérica de que todos os casos limite da ISO 32000-1 estão implementados

Porquê Escolher o HotPDF

Ajuste Nativo ao RAD Studio

Utilize projetos, pacotes, streams, formulários e padrões de desenho familiares do Delphi e C++Builder em vez de encapsular um motor PDF separado

Funcionalidades Modernas de PDF

Crie PDFs com formulários, anotações, camadas, transparência, transições de página, estrutura marcada, encriptação, placeholders de assinatura e atualizações incrementais

Saída Compacta e Rápida

Reduza o tamanho do PDF com compressão zlib-ng, processamento de imagem libjpeg-turbo, subsetting TrueType, subsetting OpenType-CFF e suporte CFF indexado por CID para fontes CJK grandes

Pontos Fortes Competitivos

As capacidades abaixo são diferenciais técnicos marcantes do HotPDF em relação aos componentes PDF típicos do Delphi; a maioria dos componentes comerciais concorrentes carece totalmente destas funcionalidades ou é substancialmente mais fraca em produção; cada linha mapeia para uma implementação verificável e uma superfície de API pública dentro da biblioteca

Modelação e Posicionamento OpenType Completos

Um motor de substituição GSUB completo que abrange todos os LookupType 1-8 (Simples, Múltiplo, Alternativo, Ligadura, Contextual, Contextual Encadeado, Extensão, Contextual Encadeado Reverso), emparelhado com um motor de posicionamento GPOS que abrange todos os 9 LookupTypes (kerning de par / simples / contextual, marca-para-base, marca-para-marca, marca-para-ligadura por componente de ligadura, anexo cursivo, distância, vertical vkrn/vpal); todo o posicionamento é emitido com operadores de texto PDF padrão para que todos os leitores renderizem de forma idêntica

Modelação de Scripts Complexos no Lado do Produtor

Mais de 20 scripts modelados no lado do produtor, geridos pela própria cadeia de funcionalidades GSUB da fonte: Árabe (incl. Suplemento / Extended-A / Extended-B), Siríaco, Mongol, N'Ko, Adlam, Hanifi Rohingya, empilhamento Tibetano, Devanágari e a família Índica, Javanês, ordenação de marcas Tailandesas / Laosianas, ordenação de vogais Hebraicas, Khmer, Mianmar, Tai Viet, Meetei Mayek; a saída inclui mapeamento inverso /ToUnicode completo para que a cópia/colagem recupere os pontos de código originais

Stack de Assinatura Em Processo, Zero Dependências Externas

ASN.1, RSA, AES, desempacotamento PKCS#12 e CMS SignedData (RFC 5652) estão todos implementados dentro do HotPDF; o SignPDFWithPFX assina um PDF de placeholder numa única chamada sem runtime OpenSSL e sem fornecedor de criptografia de plataforma — toda a cadeia de assinatura reside no seu processo, de forma reproduzível, auditável e com zero binários nativos para implementar

Validação a Longo Prazo PAdES, Fim a Fim

Os fluxos de trabalho PAdES B-B, B-T, B-LT e B-LTA estão totalmente abrangidos: carimbos de data/hora RFC 3161, dicionários de validação a longo prazo DSS / VRI, assinaturas de carimbo de data/hora do documento, restrições de Seed Value e XAdES-in-PDF; este é o requisito estrito para assinaturas eletrónicas em conformidade com o regulamento eIDAS da UE, onde a maioria dos componentes concorrentes se limita a uma assinatura CMS básica

Conformidade em Três Eixos + Preflight

Controlo de perfil independente para PDF/A-1/-2/-3, PDF/X-1a/-3/-4 e PDF/UA-1 simultaneamente — chamadas não conformes geram exceções de diagnóstico em vez de gravarem PDFs não conformes silenciosamente; o CreatePreflightReport emite relatórios em texto / JSON / HTML / CSV com perfis INI, predefinições integradas, agregação em lote e incorporação de evidências XMP, validados de ponta a ponta contra veraPDF

Direct File API de Múltiplos Gigabytes

Funciona diretamente no PDF em disco sem construir o grafo de objetos em memória; num documento de 2 GB com 1,67 milhões de objetos: encriptação AES-256 em ~14 s, desencriptação em ~16 s, reescrita completa em ~6 s; ler a contagem de páginas de um documento de 1,25 GB demora milissegundos; tabelas xref clássicas, streams XRef, ficheiros de referência híbrida e documentos atualizados incrementalmente permanecem todos no caminho direto

Subsetting CFF / OpenType-CFF / CID

As fontes TrueType, OpenType-CFF e CFF indexadas por CID são todas passíveis de subsetting mantendo os IDs dos glifos para texto Type0 / Identity-H; documentos CJK que anteriormente incorporavam programas CFF indexados por CID de 14 MB são agora enviados com 500 KB - 2 MB sem perda de glifos renderizados; os programas de fontes incorporadas são sempre comprimidos com Flate, fontes multipágina são incorporadas uma vez por documento e as etiquetas de subset são determinísticas para uma saída reproduzível

Fachada de Registo de Runtime Unificada

O THPDFLogger + o HPDFLog global fornecem uma fachada de diagnóstico que pode ser ativada/desativada em runtime: filtragem de gravidade Error / Warning / Info / Debug, alvos simultâneos de ficheiro + OutputDebugString + consola, seguro para threads (thread-safe), rollover de cópia de segurança única de 10 MB, caminho rápido desativado sem sobrecarga; o LoadFromFile, relatórios de preflight e o caminho de contingência do stream de objetos já estão interligados com diagnósticos estruturados que podem ser ativados em runtime sem reconstrução — uma capacidade operacional de que a maioria dos componentes concorrentes carece por completo

Quatro Adaptadores de Motores de Relatórios

Backends PDF drop-in para FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) e DevExpress ExpressPrinting (cobrindo cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); os layouts de relatórios existentes continuam a funcionar — apenas o emissor PDF é trocado

Estas são capacidades entregues, não promessas de planeamento. Todos os itens acima estão implementados na biblioteca atual, compilam sem erros e passam nos testes DUnitX e na validação veraPDF de ponta a ponta; ao avaliar componentes concorrentes, peça provas de cobertura total de GSUB/GPOS LookupType, uma cadeia PAdES B-LTA em processo e taxa de transferência de encriptação medida em múltiplos gigabytes

Vantagens para o Desenvolvedor

  • A integração orientada ao código fonte mantém a depuração e a implementação sob o seu controlo
  • Exemplos partilhados de Delphi e C++Builder facilitam a verificação do comportamento em ambas as pilhas de linguagens
  • A integração estática de bibliotecas C de terceiros mantém as dependências de compressão e imagem reproduzíveis
  • APIs auxiliares focadas abrangem filtros PDF, FlateDecode, LZW, CCITT, máscaras de imagem, códigos de barras, subsetting de fontes e fluxos de trabalho de conteúdo de página
  • Os controlos de versão do PDF podem promover automaticamente a versão de saída ou impor conformidade estrita com PDF 1.3/1.4/1.5/1.6/1.7 através de StrictVersionLock
  • Projetos de pacotes Delphi e C++Builder prontos a usar abrangem as gerações atuais do RAD Studio, incluindo o 13.1 Florence

Destaques Recentes da Biblioteca

Direct File API de Múltiplos Gigabytes

A família DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile e as chamadas de ficheiro para ficheiro EncryptFile / DecryptFile funcionam diretamente no ficheiro PDF em vez de construir o grafo de objetos em memória; num documento de referência de 2 GB com 1,67 milhões de objetos, a encriptação AES-256 demora cerca de 14 segundos, a desencriptação cerca de 16 segundos e uma reescrita completa cerca de 6 segundos; abrir um documento de 1,25 GB para obter a sua contagem de páginas demora milissegundos; tabelas clássicas, streams de referência cruzada, ficheiros de referência híbrida e documentos atualizados incrementalmente permanecem todos no caminho direto

Relatórios de Preflight

O CreatePreflightReport e o CreatePreflightReportWithProfile auditam um PDF em relação às verificações PDF/A, PDF/X e PDF/UA suportadas e emitem relatórios em texto, JSON, HTML ou CSV, com perfis no estilo INI para suprimir conclusões aceites — pronto para controlos de CI e entrada de documentos em lote; a demonstração PreflightCLI adiciona execuções de pastas recursivas e painéis agregados

Toolkit de Formulários para Documentos Carregados

O HasFormFields e o FormFieldExists respondem a questões sobre formulários num PDF carregado antes de o manipular, os valores dos campos podem ser lidos e escritos por índice ou nome e o FlattenFormFields fixa os campos AcroForm interativos no conteúdo da página e reporta quantos campos achatou — a par do achatamento XFA-para-AcroForm que mantém os formulários XFA utilizáveis em qualquer leitor

Assinatura PFX / PKCS#12 em Processo

O THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) assina um PDF placeholder existente numa única chamada; a stack completa ASN.1, RSA, AES, PKCS#12 e CMS SignedData (RFC 5652) está implementada no HotPDF, pelo que não é necessário nenhum runtime OpenSSL ou fornecedor de criptografia de plataforma

Validação a Longo Prazo PAdES

Os fluxos de trabalho PAdES B-B, B-T, B-LT e B-LTA são abrangidos de ponta a ponta: criação de assinaturas com carimbos de data/hora RFC 3161, dicionários de validação a longo prazo DSS / VRI, assinaturas de carimbo de data/hora do documento e restrições de Seed Value; o XAdES-in-PDF e a aplicação do valor seed da assinatura fazem parte da mesma superfície

Conformidade PDF/A, PDF/X e PDF/UA

O HotPDF controla métodos de funcionalidades em relação aos perfis PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 e PDF/UA-1; as chamadas que violariam o perfil selecionado (transparência em PDF/A-1, JavaScript em PDF/A, anotações externas em PDF/X, estrutura não marcada em PDF/UA) geram exceções de diagnóstico em vez de produzirem PDFs não conformes silenciosamente

Adaptadores de Motores de Relatórios de Terceiros

Backends PDF drop-in para os quatro motores de relatórios Delphi mais comuns: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) e dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System cobrindo cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); os relatórios existentes continuam a funcionar — apenas o emissor PDF é trocado

Motor de Posicionamento OpenType GPOS

Posicionamento de texto por adesão gerido pelos dados GPOS da própria fonte: kerning de par e contextual para texto da esquerda para a direita e da direita para a esquerda, colocação de marca-para-base, marca-para-marca e marca por componente de ligadura, alinhamento de entrada/saída cursiva, posicionamento de distância e kerning vertical para fontes verticais; o posicionamento é emitido com operadores de texto PDF padrão para que todos os leitores de PDF renderizem o mesmo resultado

Cobertura de Modelação de Scripts Complexos

A modelação do lado do produtor renderiza texto corretamente ligado e reordenado para Árabe (incluindo os blocos Suplemento, Extended-A e Extended-B), Siríaco, Mongol, N'Ko, Adlam, Hanifi Rohingya, Tibetano, Devanágari e outros scripts Índicos, Javanês, Tailandês, Laosiano, Hebraico, Khmer, Mianmar, Tai Viet e Meetei Mayek sem depender de um modelador no lado do visualizador; cada script é uma opção de adesão, pelo que a saída existente permanece idêntica em termos de bytes até ser ativada, e a cópia/colagem recupera os carateres originais

Funcionalidades Automáticas de Tipografia OpenType

Interruptores de modelação opcionais aplicam automaticamente ligaduras padrão, discricionárias e históricas da fonte, versaletes, algarismos oldstyle / lining / proporcionais / tabulares, expoentes, subscritos, ordinais, frações, inferiores científicos, numeradores, denominadores, alternativas estilísticas e contextuais, formas localizadas, formas sensíveis a maiúsculas e minúsculas, zero cortado e alternativas verticais durante a saída de texto, com a extração de texto mapeada de volta para os carateres de origem

Saída de Fontes Compacta

Os programas de fontes incorporadas são sempre comprimidos com Flate, uma fonte utilizada em várias páginas é incorporada uma vez para todo o documento e as etiquetas de subset são derivadas deterministicamente dos glifos realmente utilizados para que execuções repetidas produzam resultados idênticos; um modo opcional escreve texto plain-ASCII com fontes padrão como texto WinAnsi compacto não incorporado, encolhendo uma página de texto simples de centenas de kilobytes para alguns kilobytes

Modelação de Produtor Multi-Script

A modelação do lado do produtor converte sequências de entrada Unicode nas suas Presentation Forms antes da emissão de texto PDF; o Árabe abrange a tabela de classes de junção completa U+0672-06D5 mais de 40 mapeamentos Forms-A, com pós-passagem de ligadura automática para LAM-ALEF, YEH-HAMZA + vogais (U+FBEA-FBFB), Allah (U+FDF2) e Bismillah (U+FDFD); superfícies de capacidade para Siríaco (GetSyriacJoiningClass), Mongol (GetMongolianJoiningClass) e Devanágari (GetDevanagariCategory / ApplyDevanagariReorder) permitem que os chamadores direcionem scripts complexos não árabes através do mesmo motor GSUB

Pipeline de Modelação Automática (Fase 8)

A propriedade de adesão ShapingFeatures + enumeração THPDFShapingFeature (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) eleva os motores OpenType GSUB e GPOS a um pipeline automático no lado do produtor; o Árabe nativo init / medi / fina / isol, rlig, calt, rclt, o anexo cursivo GPOS, o liga / clig latino e a reordenação Índica Devanágari ocorrem à medida que o texto é emitido, com mapeamento inverso /ToUnicode completo para correção de cópia/colagem

Ligaduras Padrão Latinas + Ponto de Código Sintético PUA

As ligaduras padrão latinas (ff / fi / fl / ffi / ffl / ſt / st via U+FB00-FB06) são emitidas automaticamente através de ApplyLatinLigatureRefinement quando o sfStandardLigatures está ativado; para GIDs substitutos de GSUB sem um ponto de código Unicode natural — formas de agrupamento Devanágari, alternativas estilísticas, sequências de variação ideográfica CJK —, o AssignSyntheticCodepointForGID aloca um ponto de código de Área de Uso Privado (U+E000-F8FF) com integração espelhada de /CIDToGIDMap + /W + /ToUnicode

Motor de Substituição OpenType GSUB

Todos os OpenType GSUB LookupType 1-8 (Simples, Múltiplo, Alternativo, Ligadura, Contextual, Contextual Encadeado, Extensão, Contextual Encadeado Reverso) estão implementados como uma superfície de consulta apenas de capacidade (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst e os auxiliares Multiple / Alternate / Script / LangSys / Feature); o MarkUnicodeGlyphUsed puxa cada glifo substituto para o subsetter TTF para que os subsets de fontes incorporados permaneçam autónomos

Formulários XFA + Gatilhos AcroForm + Unicode /DR

Os pacotes do contentor XFA PDF 1.7 §12.7.6 / §12.7.8 acompanham (ou substituem) o /Fields estático via AddXFAPacket; toda a família de gatilhos de campos de formulário AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) é exposta como métodos wrapper, e o RegisterAcroFormFont vincula múltiplas fontes Unicode a um único dicionário de recursos AcroForm /DR para widgets de formulários multilingues

Subsetting de Fontes e PDFs CJK

O THotPDF.EnableFontSubsetting realiza subsetting de fontes TrueType, OpenType-CFF e CFF indexadas por CID mantendo os IDs dos glifos para texto Type0 / Identity-H; PDFs CJK que anteriormente incorporavam programas CFF indexados por CID de 14 MB são agora enviados com 500 KB - 2 MB sem perda de quaisquer glifos renderizados

Gravação Incremental com Assinaturas Múltiplas

O BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty e as APIs de placeholder de assinatura suportam atualizações de PDF apenas para anexação (append-only) e fluxos de trabalho de assinaturas múltiplas sem reescrever intervalos de bytes assinados anteriormente

Cobertura de Funcionalidades PDF Avançadas

  • Gates de API específicos das versões PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 + PDF 2.0 selecionada para Catalog, ViewerPreferences, anotações, JavaScript, fontes Type0, mapas ToUnicode, transparência, camadas e encriptação
  • Gates de conformidade PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 e PDF/UA-1 que recusam chamadas de funcionalidades não conformes em vez de violarem o perfil silenciosamente
  • Árvores de estrutura PDF marcadas com mapas de funções (role maps), StructParents, saída de ParentTree e elementos de estrutura para fluxos de trabalho orientados à acessibilidade
  • OutputIntents, perfis ICC, caixas de página, rotação, UserUnit, ordenação de Tabs, padrões de mosaico (tiling patterns), alfa de ExtGState, modos de mistura (blend modes), meios-tons (Tipo 1 / 5 / 6 / 10 / 16), funções de transferência e referências de Função de geração de preto / remoção de sob-cor
  • Imagens inline, gradientes axiais multi-stop, gradientes radiais, malhas triangulares com sombreado Gouraud em forma livre / forma de treliça (lattice-form), malhas de retalho Coons e retalho de produto tensorial, imagens de máscara suave para alfa por píxel estilo PNG e preenchimentos de padrão reutilizáveis
  • Destinos nomeados, miniaturas de página, estilo de contorno ao nível da página (cor, negrito, itálico), registo JavaScript nomeado ao nível do documento e a família completa de extras Line / PolyLine / Polygon (legenda, extremidades de linha, intenção, efeito de limite)
  • A modelação de Árabe no lado do produtor abrange a tabela de classes de junção completa U+0672-06D5 mais de 40 mapeamentos estáticos de Árabe Presentation Forms-A, com agrupamento de ligaduras de pós-passagem para LAM-ALEF, pares YEH-HAMZA + vogal (U+FBEA-FBFB), a ligadura de Allah (U+FDF2) e a frase Bismillah (U+FDFD)
  • Superfícies de capacidade de modelação multi-script: Siríaco (GetSyriacJoiningClass / GetSyriacPosition), Mongol (GetMongolianJoiningClass / GetMongolianPosition), Devanágari (GetDevanagariCategory / ApplyDevanagariReorder) — controlam o mesmo motor GSUB para scripts complexos não árabes
  • Pipeline de modelação automática Fase 8 gerido pela propriedade de adesão ShapingFeatures: o sfArabicGSUB aplica o Árabe nativo init / medi / fina / isol mais rlig / calt / rclt para emitir IDs de glifos contextuais específicos de fonte, o sfCursiveAttachment aplica âncoras cursivas GPOS, o sfStandardLigatures / sfContextualLigatures emitem liga / clig latinas (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st), e o sfIndicShaping reordena agrupamentos Devanágari (Repha + I-matra pré-base) antes da emissão
  • Motor de substituição OpenType GSUB completo (LookupType 1-8) com seleção de Script / LangSys, fecho de subsetter TTF (MarkUnicodeGlyphUsed), cobertura SMP de formato Cmap 12, análise (parsing) GDEF, autoemissão de ToUnicode CMap com 35 entradas de mapeamento inverso de ligaduras e uma pesquisa GetUnicodeGlyphForCodepoint para chamadores que gerem a emissão glifo a glifo
  • A emissão de ponto de código sintético PUA (AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) permite aos produtores emitir qualquer GID substituto de GSUB (formas de agrupamento Devanágari, alternativas estilísticas, sequências de variação ideográfica CJK) através da Área de Uso Privado U+E000-F8FF com integração espelhada de /CIDToGIDMap + /W; o GetCodepointAdvance expõe a fração em /W em cache para cálculos de quebra de linha
  • Motor de posicionamento OpenType GPOS por trás de interruptores de modelação por adesão: kerning de par, simples e contextual (Context / Chained Context) para texto da esquerda para a direita e da direita para a esquerda, colocação de marca-para-base / marca-para-marca / marca-para-ligadura com precisão por componente em ligaduras, anexo de entrada-saída cursiva, posicionamento de distância e kerning vertical vkrn / vpal aplicado à saída de texto vertical
  • Modelação de scripts complexos no lado do produtor para Árabe Supplement / Extended-A / Extended-B, Siríaco, Mongol, N'Ko, Adlam, Hanifi Rohingya, empilhamento Tibetano, a família de scripts Índicos através da cadeia de funcionalidades Índicas da fonte, Javanês, ordenação de marcas Tailandesas / Laosianas, ordenação de pontos de vogais Hebraicas, Khmer, Mianmar, Tai Viet e Meetei Mayek, cada um por trás do seu próprio interruptor de adesão com mapeamento inverso ToUnicode para cópia/colagem
  • Funcionalidades automáticas de tipografia OpenType durante a saída de texto: ligaduras liga / clig / dlig / hlig, versaletes smcp / c2sc, estilos de algarismos onum / lnum / pnum / tnum, sups / subs / ordn / frac / sinf / numr / dnom, alternativas estilísticas salt, alternativas contextuais calt / rclt, formas localizadas locl, formas case, zero cortado zero e alternativas verticais vert / vrt2, com substituições encadeadas resolvidas de volta para o texto de origem no ToUnicode CMap
  • Otimização de incorporação de fontes: programas de fontes incorporadas sempre comprimidos, uma cópia incorporada por documento para fontes utilizadas em várias páginas, etiquetas de subset determinísticas para saídas reproduzíveis e um modo opcional WinAnsi não incorporado para texto plain-ASCII com fontes padrão
  • Campos de texto AcroForm, caixas de listagem, caixas de combinação, caixas de verificação, botões de opção (radio buttons), ações de botão de pressão (incluindo as ações estendidas Named / Hide / Show / ImportData / SubmitForm com /Flags controlados pelo utilizador), campos de assinatura e streams de aparência gerados (multi-line + comb + Tx de rich-text + fonte CID /AP)
  • Família de gatilhos de campos de formulário AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) com um método wrapper por gatilho; registo de fonte multi-Unicode /DR via RegisterAcroFormFont; suporte para contentor XFA (XML Forms Architecture) (PDF 1.7 §12.7.6 / §12.7.8) com AddXFAPacket / ClearXFAPackets / XFAPacketCount e gates de conformidade PDF/A + PDF/X, além do achatamento XFA-para-AcroForm (ApplyXFAAsAcroForm para bytes XDP em bruto, FlattenLoadedXFA para um formulário incorporado de PDF carregado) que transforma XFA estático em campos AcroForm nativos, estilos e gráficos de página para que o formulário permaneça visível e preenchível em leitores sem um motor XFA
  • Superfície de acessibilidade de PDF marcado PDF/UA-1: propriedades de sequência de conteúdo marcado do §14.8.4 em BeginTaggedContent (/Lang / /Alt / /ActualText / /E), definidores de atributos de elementos de estrutura (/Lang / /E / /T), enumeração de tipo de estrutura padrão Tabela 333 (THPDFStandardStructureType) mais uma sobrecarga tipada de AddStructureElement
  • Suporte de anotações para realces (highlights), texto livre, ligações, anexos de ficheiros, pop-ups, redação, marca de água, rich media, 3D / U3D / PRC, styles de limite e pop-ups de comentários ligados
  • Segurança padrão por palavra-passe, manipuladores de segurança AES-128 / AES-256, hashing PDF 2.0 R6, encriptação de chave pública por destinatário de certificado através de envelopes PKCS#7 fornecidos pelo chamador e processamento seguro de binários de nomes de corantes / fontes não ASCII
  • Assinaturas digitais PAdES B-B, B-T, B-LT e B-LTA com carimbos de data/hora RFC 3161, dicionários de validação a longo prazo DSS / VRI, assinaturas de carimbo de data/hora do documento, restrições de Seed Value e XAdES-in-PDF
  • Assinatura PFX / PKCS#12 em processo: a stack ASN.1, RSA, AES, PKCS#12 e CMS SignedData incluída na biblioteca assina um PDF placeholder existente numa única chamada sem qualquer dependência de OpenSSL ou de criptografia da plataforma
  • Backends PDF drop-in para FastReport 4 / FastReport VCL, QuickReport, ReportBuilder e DevExpress ExpressPrinting System, para que as definições de relatórios existentes sejam emitidas através do HotPDF sem a reescrita de layouts de relatórios

Stack de Compressão e Imagem de Alto Desempenho

As compilações atuais do HotPDF utilizam o zlib-ng em modo compatível com zlib para o backend Flate incluído; streams de página, streams de fontes incorporadas, ToUnicode CMaps, streams de imagem Flate, saídas relacionadas com TIFF e auxiliares FlateDecode são encaminhados através da camada zlib do HotPDF

As compilações zlib-ng Win64x e de diagnóstico MSVC Win64 incluem despacho CPU em runtime para caminhos SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ e caminhos AVX2 com contingências genéricas mantidas; o Win32 permanece no conjunto genérico de objetos OMF zlib-ng através de bcc32c, enquanto os objetos Win32 JPEG e TIFF continuam a utilizar o caminho clássico bcc32 OMF

Os fluxos de trabalho JPEG padrão utilizam o conjunto de objetos libjpeg-turbo 3.1.90 incluído através da API compatível com libjpeg exposta por HPDFJpeg.pas; as compilações nativas Win32, Win64 e Win64x incluem agora os conjuntos de objetos NASM SIMD relevantes, e o mesmo backend JPEG nativo está disponível para a camada de integração TIFF para processamento de TIFF comprimido com JPEG

A ponte de runtime C em HPDFCLibs.pas agora resolve malloc, free, realloc, calloc, memcpy, memmove e memset através de uma camada orientada a Pascal, com alocação alinhada de 32 bytes para buffers nativos amigáveis para SIMD

O repositório inclui scripts de compilação de objetos reproduzíveis: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat e Lib\thirdparty\build-vc64.bat para o conjunto completo de bibliotecas C nativas, além de scripts apenas para zlib-ng para reconstruções de compressão focadas

Exemplo Rápido de Delphi

program HelloHotPDF;

uses
  System.SysUtils,
  HPDFDoc;

var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.AutoLaunch := False;
    PDF.FileName := 'HelloHotPDF.pdf';
    PDF.Compression := cmFlateDecode;
    PDF.EnableFontSubsetting := True;
    PDF.BeginDoc;
    PDF.CurrentPage.SetFont('Arial', [], 18);
    PDF.CurrentPage.TextOut(50, 50, 0, 'Hello HotPDF');
    PDF.EndDoc;
  finally
    PDF.Free;
  end;
end.

Conteúdo do Pacote

Casos de Uso Típicos