PDFium Delphi Component Docs

Assinatura PAdES · criptografia PDF 2.0 · seis padrões ISO · Delphi / C++Builder / Lazarus

Tudo o que um motor de renderização não faz, escrito em Object Pascal

Um motor desenha páginas e lê estruturas. Ele não consegue assinar um documento, gravar criptografia, validar um padrão PDF nem emitir uma revisão linearizada ou incremental. O PDFium Delphi Component implementa tudo isso sobre o PDFium: mais de 62.000 linhas em 36 units que não têm contraparte alguma na API do motor, além da arquitetura de visualizador e de leitor acessível — e cada linha é entregue como código-fonte

Leia a visão geral completa Navegue pelo catálogo de funcionalidades

O que você obtém além do motor

Cada ponto abaixo é uma capacidade entregue que você pode verificar na referência da API e nas demonstrações

Assinaturas digitais, não apenas leitura de assinaturas

O motor pode relatar que um dicionário de assinatura existe. Esta biblioteca cria um: PAdES baseline B-B, B-T, B-LT e B-LTA conforme a ETSI EN 319 142-1, CMS / CAdES SignedData conforme a RFC 5652, solicitações de carimbo de tempo RFC 3161, injeção de Document Security Store, carimbos de tempo de arquivamento e validação de confiança da cadeia de certificados. A assinatura remota e via HSM dividem a operação para que a chave privada nunca precise chegar à estação de trabalho

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

Criptografia que você grava, não apenas abre

ISO 32000-2 AES-256 com a derivação de chave R6 do algoritmo 2.B, a varredura completa de criptografia de streams e strings, AES-GCM da ISO/TS 32003 e tokens PDF MAC da ISO/TS 32004. As primitivas AES, SHA-2, SHA-3, HMAC e ASN.1 são Object Pascal puro, verificadas contra os vetores de teste FIPS publicados — nenhuma biblioteca C externa entra na sua implantação ou na sua revisão de segurança

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

Um gravador de PDF que o motor não tem

O motor oferece um único salvamento sequencial do arquivo inteiro. Esta biblioteca grava as próprias revisões sobre ele: Fast Web View linearizado com tabelas de hints do Anexo F, empacotamento object-stream e xref-stream e revisões incrementais de objetos alterados que preservam a saída anterior byte a byte. Arquivos danificados recebem políticas de carregamento strict, compatible e recovery com diagnósticos estruturados em vez de reparo silencioso

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

Extração de conteúdo além do texto simples

GetStructuredText constrói uma hierarquia página / bloco / linha / span estilizado a partir da geometria dos caracteres e da semântica de Tagged PDF. ExtractTables detecta tabelas com bordas e alinhadas por espaços em branco, preserva spans mesclados e emite CSV ou JSON. BuildReflowDocument transforma um PDF de layout fixo em HTML semântico. XFDF e FDF fazem o intercâmbio de dados de formulário e de 18 subtipos de anotação — formatos para os quais o motor não expõe API alguma

ExtractTables / BuildReflowDocument / ExportXFDF

Cobertura de IDE mais ampla em sua classe

Delphi / C++Builder (RAD Studio XE5 até 13.1 Florence) mais Lazarus / Free Pascal 3.8+, Win32 e Win64. Três famílias de IDE compartilham os mesmos PDFs de teste e as mesmas suítes de regressão

1257 casos de teste Pascal + 515 C++, alinhados por byte

Espectro completo de padrões PDF

Saída PDF/A-1b (SaveAsPdfA) + validação (ValidatePdfA), mais validadores PDF/UA, PDF/E, PDF/X, PDF/R e PDF/VT com códigos de resultado em nível de cláusula, injeção de markers e controle de conformidade de versão. O PDF/A cobre as partes 1 a 4 da ISO 19005, o PDF/X alcança a X-6 e o PDF/VT inclui empacotamento de stream VT-2s

Unidades dedicadas FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

Leitura em voz alta / baixa visão para acessibilidade

TPdfReadingSession orquestra a leitura em voz alta para mecanismos TTS do host (unidades de leitura em nível de frase, realce em nível de palavra, mapeamento de texto falado); mais as transformações para baixa visão InvertPdfBitmap, GrayscalePdfBitmap, DuotonePdfBitmap e a visualização noturna duotone ao vivo

Uma camada de acessibilidade que a maioria dos wrappers não tem de forma alguma

Renderização progressiva sem cópia + cancelável

O caminho de renderização grava a saída do PDFium diretamente no buffer DIB do TBitmap de destino, pulando uma cópia de pixel de página inteira por quadro; o RenderPageProgressive consulta um token de cancelamento entre as iterações e pode ser interrompido no meio da renderização

Economiza uma cópia de largura×altura×4 bytes por quadro em alto DPI

Streaming sob demanda para PDFs de vários gigabytes

Via adaptador TStream sob demanda do LoadCustomDocument, o PDFium lê por bloco — documentos de vários gigabytes, remotos ou baseados em banco de dados carregam sem uma cópia em memória, e uma primeira visualização utilizável é alcançada quase imediatamente

Documentos de 2.x GB: primeira visualização quase instantânea

Três componentes + 33 demonstrações compartilhadas

TPdf (motor de documentos), TPdfView (visualizador interativo), TPdfThumbnailView (navegação por miniaturas); 33 demonstrações COMMON compartilhadas entre três IDEs, cobrindo visualização, busca, preenchimento de formulários, mesclagem/divisão, exportação em lote, impressão, auditoria de segurança, relatórios preflight e mais

PDFViewer / PreflightReport / SecurityAudit / StandardsLab etc.

Padrões de segurança desde o início

Lista de permissões para ações de link (LinkOptions), ações de lançamento desabilitadas por padrão e uma demo SecurityAudit para auditar as superfícies de risco — seguro logo de fábrica, em vez de deixar ações perigosas abertas por padrão

Adequado para implantações sensíveis à segurança em finanças / saúde

Código-fonte incluído · royalty-free · suporte de longo prazo

Inclui código-fonte Pascal, nenhuma royalty de runtime, manutenção de longo prazo. Acompanha pdfium.dll e pdfium.v8.dll Win32/Win64 (habilitados para V8/XFA), com hooks de renderização Skia opcionais

Sem taxas por implantação

A evidência

3Famílias de IDE: Delphi / C++Builder / Lazarus
6+Padrões PDF: A / UA / E / X / R / VT
33Demonstrações COMMON compartilhadas em três IDEs
1770+Casos de teste de regressão Pascal + C++

Quem deve escolher o PDFium Delphi Component

Visualizadores / leitores de documentos

Visualizadores de PDF incorporados que precisam de qualidade de renderização de nível de produção e interação (seleção de texto, realce de busca, links, zoom, duas páginas contínuas)

Acessibilidade / tecnologia assistiva

Orquestração de leitura em voz alta e transformações para baixa visão para usuários com deficiência visual — uma camada que a maioria dos wrappers PDF não tem de forma alguma

Conformidade / ferramentas preflight

Que precisam de geração e validação PDF/A, acessibilidade PDF/UA, controle de conformidade de versão e relatórios preflight amigáveis para CI

Documentos grandes / remotos

PDFs de vários gigabytes ou baseados em banco de dados que devem carregar sob demanda em vez de serem mantidos totalmente em memória

Equipes multi-IDE

Equipes que usam Delphi, C++Builder e Lazarus ao mesmo tempo — um conjunto de componentes, os mesmos fixtures, as mesmas demonstrações

Implantações sensíveis à segurança

Cenários de finanças, saúde e governo com controle estrito sobre ações de link / lançamento

Renderize uma página em poucas linhas

Sem interop C escrita à mão — componentes Pascal nativos diretos:

uses PDFium;

var
  Pdf: TPdf;
  Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.FileName := 'report.pdf';
    Pdf.Active := True;
    Pdf.PageNumber := 0;              // pages are zero-based

    Bmp := Pdf.RenderPage(0, 0,
      Round(PointsToPixels(Pdf.PageWidth, 150)),
      Round(PointsToPixels(Pdf.PageHeight, 150)));
    try
      Bmp.SaveToFile('page1.bmp');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

Próximos passos

Comece com a visão geral do produto e o Início Rápido, navegue pelo catálogo completo de funcionalidades e Exemplos, ou leia as Notas de Versão para as entregas mais recentes