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
HotPDF 2.200.2 para Delphi e C++Builder
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
StrictVersionLockA 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
/DROs 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
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
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
GetSyriacJoiningClass / GetSyriacPosition), Mongol (GetMongolianJoiningClass / GetMongolianPosition), Devanágari (GetDevanagariCategory / ApplyDevanagariReorder) — controlam o mesmo motor GSUB para scripts complexos não árabesShapingFeatures: 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ãoMarkUnicodeGlyphUsed), 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 glifoAssignSyntheticCodepointForGID / 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 linhavkrn / vpal aplicado à saída de texto verticalliga / 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/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 XFABeginTaggedContent (/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 AddStructureElementAs 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
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.
Lib: unidades fonte do HotPDF, projetos de pacotes, ficheiros de objetos estáticos e integração de bibliotecas de terceiros incluídasDemo\Delphi: exemplos Delphi para geração de documentos, desenho, imagens, configuração de página, encriptação, fluxos de trabalho de intercalação/edição e muito maisDemo\C++Builder: exemplos de C++Builder alinhados com os principais fluxos de trabalho de demonstração DelphiHtmlHelp: ajuda do produto e conteúdo de referência para o desenvolvedor