Native Linux and macOS

O backend nativo FPC suporta fluxos de biblioteca headless no Linux x64 e no macOS ARM64, produzindo programas ELF e Mach-O reais

Use a API TPDFlib existente para criação de PDF, salvar/carregar, extração e edição de texto, extração estruturada, callbacks portáteis de OCR, renderização de bitmap, metadados, criptografia, acesso a ranges de rede e assinatura PFX nativa

Dependências de runtime

ProviderBibliotecaFinalidade
OpenSSL 3libcryptoAES CBC/GCM, digests, identidades PKCS12, assinaturas CMS, integridade e cadeias explícitas de âncoras de confiança
libcurllibcurl com DNS assíncronoHTTP/HTTPS, transporte binário limitado, acesso a ranges e requisições RFC 3161
CairolibcairoSuperfícies de imagem bitmap, caminhos, clipping, contornos de glifos e imagens
FontconfiglibfontconfigCorrespondência real com arquivos de fonte nativos, incluindo substituição explícita de família
OpenJPEG 2libopenjp2Decodificação e codificação JPEG 2000

O Linux carrega os SONAMEs de sistema correspondentes; o macOS usa bibliotecas ARM64 sob /opt/homebrew e o libcurl do sistema

Bibliotecas ou símbolos ausentes, ou operações não suportadas, produzem falhas explícitas; nenhum substituto de device context do Windows é usado

Assinaturas e carimbos de tempo

O provider PFX padrão suporta identidades RSA e EC reais, CMS detached, CAdES e perfis legados attached com SHA1; a verificação checa os bytes do ByteRange do PDF e a assinatura CMS

A verificação de cadeia de certificados exige âncoras de confiança explícitas; certificados embutidos não concedem confiança, e só a integridade não implica confiança

A ApplyPAdESSignatureTimeStamp usa o transporte HTTP nativo padrão configurado para buscar e anexar um token RFC 3161 real; reserve capacidade suficiente de /Contents antes da assinatura original

A verificação de carimbo de tempo checa o token assinado, o message imprint, o EKU timeStamping crítico exclusivo, o nome da TSA, a política/nonce esperada opcional e a cadeia de certificados confiável no momento da geração do token

Carimbos de tempo de documento também verificam o imprint real do ByteRange do PDF; quem chama pode usar o fluxo passthrough DocTimeStamp existente e fornecer o token

Metadados e renderização

O XMP usa um DOM real com consciência de namespace e preserva propriedades não relacionadas durante edições

Declarações DTD são rejeitadas pelo leitor de XML independentemente da codificação da origem; os caracteres de entrada e decodificados são limitados, e uma passada em streaming limita a profundidade e os eventos de nó antes de construir o DOM

A renderização usa armazenamento de bitmap nativo real e superfícies de imagem do Cairo; a renderização em faixas preserva coordenadas do espaço do dispositivo e usa linhas de guarda para manter o antialiasing de fronteira consistente

A incorporação nativa de fontes de família resolve um arquivo Fontconfig real e incorpora um programa TrueType completo e independente com CIDFontType2, CIDToGIDMap Identity, métricas inicializadas e larguras Unicode; texto BMP e camadas de OCR portáteis sobrevivem a salvar/recarregar o PDF

A entrada rejeita fontes de família não incorporadas, coleções, programas CFF e direitos de incorporação somente bitmap; incorporação restrita exige o override explícito de direitos existente, e fontes que proíbem subsetting permanecem programas completos

Limites

Build e verificação

python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests

Passe --config /path/to/fpc.cfg para uma configuração explícita do compilador; o runner não muda configurações globais do compilador nem adiciona -FcUTF8

A suíte checa os formatos reais dos executáveis nativos e grava um relatório JSON com versões de compilador/dependências, hashes de fontes, hashes de executáveis, resultados e limites

Os fixtures Tests/Native do repositório cobrem salvar/recarregar/renderizar PDF, fluxos de texto, criptografia, metadados, assinaturas, tráfego HTTP/TSA real e casos negativos de segurança

Índice de referência