Núcleo portátil Linux

O núcleo portátil compila o modelo de objetos existente, o parser de objetos simples, os auxiliares de I/O Direct File, o intérprete de content streams, os auxiliares de valores PDF, o escritor de xref e trailer, o backend Flate e as primitivas AES em programas nativos Linux com o Free Pascal

HPDFPlatform fornece ficheiros mapeados POSIX reais e leituras posicionais, criação de ficheiros temporários, sincronização de workers e bytes aleatórios do sistema operativo; o adaptador Windows preserva o comportamento nativo existente de ficheiros e de mapeamentos

Âmbito de aceitação

Tests/Linux/Run-PortableCoreTests.sh compila um executável ELF de consola nativo x86_64, limpa as variáveis de ecrã do desktop, verifica dependências de bibliotecas GUI e executa oito grupos de regressões com um timeout

As verificações cobrem escapes do parser e referências indiretas, valores PDF invariantes e filtros de stream, janelas mapeadas e offsets de ficheiros sparse acima de 4 GiB, streams assíncronos comprimidos de spill, respostas conhecidas de Flate e AES, hashes MD5 de ficheiros, IVs aleatórios do sistema operativo, serialização clássica válida de xref, contagens de páginas e pesquisa de objetos Direct File, e posições de texto e glifos de content streams

O fixture gerado de uma página é escrito pelo escritor existente e lido de forma independente através dos auxiliares Direct File partilhados; as verificações de conteúdo usam tanto o resolvedor de identidade Latin-1 existente como o resolvedor de tipos de letra da página com diferenças de encoding e larguras explícitas

Dados de tipos de letra e descodificação de texto

HPDFFontData separa a descodificação existente de nomes de glifos, encoding e CMap sfnt do GDI; a renderização de glifos embebidos no Windows e o descodificador HPDFTextExtraction existente usam a mesma implementação

THPDFTrueTypeData expõe a pesquisa CMap suportada, o mapeamento inverso de glifo para Unicode e os avanços horizontais hmtx para uma imagem sfnt de fonte única

HPDFBaseFontMetrics usa avanços canónicos de tipos de letra standard para doze nomes exatos de Helvetica/Times/Courier e carateres descodificados suportados, retém o fallback de GDI Windows e Fontconfig Linux para outros tipos de letra, e preserva larguras PDF explícitas

Contratos de auxiliares de plataforma e de tipos de letra

THPDFPlatformHandle é um handle nativo com sinal da largura nativa e HPDFInvalidFileHandle é -1; HPDFOpenReadOnlyFile e HPDFCloseFile gerem handles de leitura, enquanto HPDFFileSize e HPDFReadFileAt usam posições Int64 e quem chama tem de tratar leituras curtas

HPDFMappingGranularity fornece o alinhamento de offsets necessário; HPDFCreateReadOnlyMapping devolve zero em caso de falha, HPDFMapReadOnly mapeia o intervalo pedido, e HPDFUnmapReadOnly / HPDFCloseMapping libertam a vista e o mapeamento

HPDFCreateTemporaryFile cria em exclusivo um ficheiro cujo caminho e limpeza pertencem a quem chama; HPDFInitializeLock / HPDFDeleteLock gerem secções críticas nativas

THPDFPlatformEvent é um alias de TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent e HPDFResetEvent gerem a sincronização, e quem chama liberta os eventos depois de o worker parar

HPDFSecureRandomBytes preenche o buffer pedido a partir do sistema operativo ou lança uma exceção

HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName e HPDFBaseEncToUnicode mantêm o comportamento existente de nomes e encodings; HPDFBaseFontFamilyToken remove sufixos de subset e de estilo, enquanto HPDFIsStandardTextFont reconhece aliases de Helvetica, Times e Courier

HPDFMeasureBaseFontWidths usa o fornecedor GDI do Windows ou o Fontconfig em Linux e métricas horizontais sfnt partilhadas; THPDFTrueTypeData e THPDFUnicodeByGID fornecem a API partilhada de dados de tipos de letra

Tipos Direct File partilhados

HPDFDirectFileTypes detém as definições existentes de THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource e THPDFDirectFileState

Esta separação permite ao HPDFDirectFileIO usar os mesmos registos e tipos de permissões sem importar a implementação do componente e da GUI

HPDFDoc mantém aliases e constantes de valores de enum sob os nomes originais; os ordinais de enum e os layouts de registos ficam inalterados

Inicialização de programas Linux

Programas nativos Free Pascal têm de colocar cthreads em primeiro lugar na lista de uses antes de usar worker threads; o teste do núcleo portátil também carrega cwstring para fornecer o gestor de conversão Unicode

Use o FPC 3.3.1 ou mais recente com as unidades FCL e paszlib correspondentes, um runtime C, Fontconfig com tipos de letra TrueType instalados e as ferramentas file, ldd e timeout; FPC_EXE e HPDF_LINUX_OUTPUT selecionam o compilador e o diretório de saída isolado

A versão mínima suportada do FPC é 3.3.1 em todas as plataformas; a nova aceitação regista a build real do compilador e a identidade da fonte, enquanto resultados de compiladores mais antigos permanecem evidência histórica

Integrações nativas de documentos

A API nativa headless de documentos carrega grafos classic, xref-stream, hybrid e de objetos comprimidos, resolve recursos de páginas e Forms, extrai texto Unicode, edita campos AcroForm suportados, importa páginas e publica revisões incrementais retendo os bytes da fonte

A ABI C versionada de Linux expõe handles de documentos ELF reais e callbacks C síncronos para estas operações nativas; o THotPDF permanece a integração separada do componente Windows

Workflows de documentos nativos fornecem importação de HTML, texto de páginas visível e invisível, OCR Tesseract real e conversão para PDF/A-4 raster; as importações de páginas e a conversão de arquivamento validada de texto/vetores preservam recursos originais, e o reparo explícito de tipos de letra de arquivamento acrescenta incorporação delimitada de substitutos

Veja Tests/Linux/Readme.en-us.md para os contratos dos adapters de plataforma, a posse dos tipos de Direct File, as fronteiras de regressão e as ligações para as evidências de workflows nativos e de implantação

O documento headless aceita hoje o perfil delimitado Standard AES-256 R5/R6 descrito por THPDFHeadlessAES256Security, incluindo permissões owner/user, objetos comprimidos e saves incrementais de formulários cifrados

Veja a renderização nativa Cairo e a publicação nativa atómica de assinaturas para dependências de runtime, conteúdo suportado, budgets, permissões, identidade da fonte e contratos de saída

Aparências de formulários Unicode suportam texto multilinha, células comb, rotações, máscaras de palavra-passe e shaping opcional HarfBuzz/FriBidi; APIs nativas separadas tratam campos choice e button, famílias de tipos de letra fornecidas e rich text tipado com revisões cifradas preservadas

Workflows nativos de assinatura incluem identidades PEM/PFX, novos campos de assinatura, aparências visíveis e certificação; o transporte explícito de timestamps, o trust e a evidência validada de revogação retêm os seus requisitos criptográficos e de publicação documentados

Fronteiras de capacidade restantes

O perfil de segurança do documento headless suporta Standard AES-256 R5/R6; outros security handlers ficam fora desse perfil em vez de se tornarem suportados através do adapter portable-core

A renderização mais ampla de anotações, o CSS/layout geral de rich text, grafos completos de ações e recursos FDF e a compatibilidade geral com XFA dinâmico permanecem ativos no plano de conclusão de capacidades; as integrações nativas implementadas acima estão disponíveis independentemente desse trabalho restante