PDFium Delphi Component Docs

Assinatura PAdES · encriptação PDF 2.0 · seis normas ISO · Delphi / C++Builder / Lazarus

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

Um motor desenha páginas e lê estruturas. Não consegue assinar um documento, escrever encriptação, validar uma norma 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 unidades sem equivalente na API do motor, para além da arquitetura de visualizador e de leitor acessível — e cada linha é fornecida em código-fonte

Ler o panorama completo Explorar o catálogo de funcionalidades

O que obtém para além do motor

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

Assinaturas digitais, não apenas leitura de assinaturas

O motor consegue reportar que existe um dicionário de assinatura. Esta biblioteca cria um: baseline PAdES B-B, B-T, B-LT e B-LTA de acordo com a ETSI EN 319 142-1, CMS / CAdES SignedData conforme a RFC 5652, pedidos de carimbo de hora RFC 3161, injeção de Document Security Store, carimbos de hora de arquivo e validação de confiança da cadeia de certificados. A assinatura remota e por HSM divide a operação para que a chave privada nunca tenha de chegar à estação de trabalho

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

Encriptação que escreve, não apenas abre

ISO 32000-2 AES-256 com a derivação de chaves R6 do algoritmo 2.B, a cobertura completa de encriptação 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 implementação ou na sua análise de segurança

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

Um escritor de PDF que o motor não tem

O motor oferece uma única gravação sequencial do ficheiro inteiro. Esta biblioteca escreve as suas próprias revisões por cima: Fast Web View linearizado com tabelas de hints do Anexo F, empacotamento em object-stream e xref-stream e revisões incrementais de objetos alterados que preservam a saída anterior byte a byte. Ficheiros danificados recebem políticas de carga strict, compatível e de recuperação com diagnósticos estruturados em vez de uma reparação silenciosa

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

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

GetStructuredText constrói uma hierarquia página / bloco / linha / styled-span a partir da geometria dos caracteres e da semântica de Tagged PDF. ExtractTables deteta tabelas com bordas e alinhadas por espaços em branco, preserva spans unidos e produz CSV ou JSON. BuildReflowDocument transforma um PDF de esquema fixo em HTML semântico. XFDF e FDF trocam dados de formulários e 18 subtipos de anotações — formatos para os quais o motor não expõe qualquer API

ExtractTables / BuildReflowDocument / ExportXFDF

A mais ampla cobertura de IDE na 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 partilham os mesmos PDFs de fixture e conjuntos de testes de regressão

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

Espetro completo das normas 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 ao nível da cláusula, injeção de markers e controlo de conformidade de versão. O PDF/A cobre as partes 1 a 4 da ISO 19005, o PDF/X chega ao X-6 e o PDF/VT inclui o empacotamento em stream do VT-2s

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

Leitura em voz alta de acessibilidade / baixa visão

TPdfReadingSession orquestra a leitura em voz alta para motores TTS do anfitrião (unidades de leitura ao nível da frase, realce ao nível da palavra, mapeamento de texto falado); mais transformações de baixa visão InvertPdfBitmap, GrayscalePdfBitmap, DuotonePdfBitmap e visualização night-duotone em direto

Uma camada de acessibilidade que a maioria dos invólucros não tem de todo

Renderização progressiva de cópia zero e cancelável

O caminho de renderização escreve a saída do PDFium diretamente no buffer DIB do TBitmap de destino, saltando uma cópia de píxeis de página completa por moldura; RenderPageProgressive consulta um token de cancelamento entre iterações e pode ser interrompido a meio da renderização

Poupa uma cópia de width×height×4 bytes por moldura em DPI elevado

Transmissão sob pedido para PDFs multigigabyte

Através do adaptador TStream sob pedido do LoadCustomDocument, o PDFium lê por bloco — documentos multigigabyte, remotos ou suportados por base de dados carregam sem uma cópia em memória e uma primeira vista utilizável é alcançada quase imediatamente

Documentos de 2.x GB: primeira vista quase instantânea

Três componentes + 33 demonstrações partilhadas

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

PDFViewer / PreflightReport / SecurityAudit / StandardsLab etc.

Predefinições de segurança em primeiro lugar

Lista de permissões de ação de ligação (LinkOptions), ações de lançamento desativadas por predefinição e uma demonstração SecurityAudit para auditar superfícies de risco — seguro logo de saída em vez de predefinir para ações perigosas abertas

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

Código-fonte incluído · livre de royalties · suporte de longo prazo

Envia código-fonte Pascal, sem royalties de runtime, manutenção de longo prazo. Inclui pdfium.dll e pdfium.v8.dll Win32/Win64 (com V8/XFA ativado), com hooks de renderização Skia opcionais

Sem taxas por implementação

A evidência

3Famílias de IDE: Delphi / C++Builder / Lazarus
6+Normas PDF: A / UA / E / X / R / VT
33demonstrações COMMON partilhadas por três IDE
1770+casos de teste de regressão Pascal + C++

Quem deve escolher o PDFium Delphi Component

Visualizadores / leitores de documentos

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

Acessibilidade / tecnologia assistiva

Orquestração de leitura em voz alta e transformações de baixa visão para utilizadores com deficiência visual — uma camada que a maioria dos invólucros PDF não tem de todo

Cadeias de ferramentas de conformidade / preflight

Que precisam de geração e validação PDF/A, acessibilidade PDF/UA, restrição de versão e relatórios de preflight amigos de CI

Documentos enormes / remotos

PDFs multigigabyte ou suportados por base de dados que têm de carregar sob pedido em vez de serem mantidos totalmente em memória

Equipas multi-IDE

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

Implementações sensíveis à segurança

Cenários de finanças, saúde e governo com controlo estrito sobre ações de ligação / lançamento

Renderize uma página em poucas linhas

Sem interoperabilidade 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 pelo panorama do produto e pelo Início Rápido, explore o catálogo completo de funcionalidades e os Exemplos, ou leia as Notas de versão para as últimas entregas