PDFium Delphi Component em resumo
| Produto | PDFium Delphi Component — SDK profissional de aplicações PDF com código-fonte para Delphi, C++Builder e Lazarus |
|---|---|
| Indicado para | Distribuir leitores PDF de elevado desempenho, ferramentas de revisão, fluxos de documentos e experiências de leitura acessíveis em aplicações nativas |
| Suporte de IDE | Delphi e C++Builder XE5 até 13.1 Florence (Win32, Win64); Lazarus / Free Pascal LCL |
| Papel do motor | PDFium — a família de motores de código aberto por detrás da apresentação de PDF do Chromium — trata da renderização de páginas e da leitura de documentos; DLLs de runtime V8 / XFA opcionais |
| Camada de aplicação | 115 000 linhas de Object Pascal em 55 unidades, 475 membros públicos de TPdf e 152 em TPdfView, incluindo as camadas de visualizador, serialização, assinatura, encriptação, conformidade com normas e acessibilidade que o PDFium não disponibiliza |
| Assinaturas digitais | Assinatura PAdES B-B / B-T / B-LT / B-LTA (ETSI EN 319 142-1), contentores CMS / CAdES, carimbo temporal RFC 3161, Document Security Store |
| Encriptação | Suporte de escrita AES-256 do PDF 2.0 (ISO 32000-2), ISO/TS 32003 AES-GCM, ISO/TS 32004 PDF MAC, sobre uma pilha pura de AES / SHA / HMAC / ASN.1 em Pascal |
| Normas | Validadores PDF/A (partes 1-4), PDF/X (até X-6), PDF/UA, PDF/E, PDF/VT (até VT-2s), PDF/R com auxiliares de gravação e injeção de marcadores |
| Saída de PDF | Serializador próprio: Fast Web View linearizado, empacotamento de object stream e xref stream, revisões incrementais de objetos alterados, cópias de reparação verificadas |
| Recursos do leitor | 34 projetos prontos a executar: referências de leitor de PDF profissional, laboratórios de interação, bancadas de acessibilidade, ferramentas de normas e pré-verificação, laboratórios de texto CJK e RTL |
| Ficheiros grandes | O acesso a pedido evita uma cópia inicial completa em memória para documentos de vários gigabytes; renderização paralela de páginas e armazenamento de trabalho limitado |
| Código-fonte | Código-fonte completo em Object Pascal incluído em todas as licenças |
| Licenciamento | Sem royalties, pagamento único de $350-$4200 por escalão; renovação por 40% do preço de tabela |
| Versão atual | 3.51.0 (2026-08-16) |
| Avaliação | Transferir pacote de demonstração gratuito |
Onde o motor termina e o produto começa
O PDFium é um renderizador. Desenha páginas, extrai texto e lê estruturas existentes — e é tudo. Não assina, não escreve encriptação, não valida normas, não lineariza, não escreve revisões incrementais e não conhece XFDF nem XMP. Uma ligação à API C do PDFium herda exatamente esses limites.
O PDFium Delphi Component inclui cerca de 115 000 linhas de Object Pascal distribuídas por 55 unidades. Mais de 62 000 dessas linhas estão em 36 unidades que não têm qualquer equivalente na API do PDFium — criptografia, assinaturas, encriptação, os seis validadores de normas, o serializador de PDF, XFDF, XMP, paginação e conformação de texto. Escritas em Pascal, verificadas face às cláusulas publicadas da ISO, ETSI, IETF e FIPS, e entregues como código-fonte com todas as licenças.
| Capacidade | Motor PDFium | Implementado pelo PDFium Delphi Component |
|---|---|---|
| Assinaturas digitais | Apenas lê dicionários de assinatura existentes | Assinatura PAdES B-B / B-T / B-LT / B-LTA, construção de CMS / CAdES SignedData segundo a RFC 5652, cliente de carimbo do tempo RFC 3161, injeção de DSS e VRI, chaves Windows CNG (RSA-PSS, PKCS#1, ECDSA), assinatura remota / HSM em que a chave privada nunca sai do serviço, e validação de confiança da cadeia de certificados |
| Encriptação | Abre ficheiros encriptados; não sabe escrever encriptação | AES-256 da ISO 32000-2 (derivação de chave V5 / R6 do algoritmo 2.B), AES-GCM da ISO/TS 32003, PDF MAC da ISO/TS 32004, e encriptação integral de streams e strings |
| Primitivas criptográficas | Nenhuma exposta | AES-128/256 em CBC e GCM, SHA-256/384/512, SHA-3, HMAC e leitor/escritor ASN.1 DER em Object Pascal puro, verificados face aos vetores de teste FIPS 197 e FIPS 180-4 |
| Conformidade com normas | Nenhum validador, de espécie alguma | PDF/A partes 1 a 4, PDF/X até X-6, PDF/UA-1, PDF/E-1, PDF/VT-1/2/2s e PDF/R-1 — validadores ao nível da cláusula, injeção de marcadores e auxiliares de gravação sensíveis ao perfil |
| Serialização de PDF | Uma única gravação sequencial do ficheiro completo | Linearização Fast Web View com tabelas de sugestões do Anexo F, empacotamento em object streams e xref streams, revisões incrementais apenas com os objetos alterados e preservação byte a byte do prefixo anterior, e cópias de reparação verificadas em modo estrito |
| Documentos danificados | Recuperação silenciosa, sem relatório | Políticas de carregamento estrita, compatível e de recuperação, com diagnósticos estruturados: caminho de reconstrução, deslocamentos da corrupção, revisões em conflito e estado do orçamento |
| Intercâmbio de dados de formulários | Sem API XFDF ou FDF | Importação e exportação XFDF (ISO 19444-1) e FDF para valores de campos e 18 subtipos de anotação |
| Metadados | Lê o dicionário de informação clássico | Leitor e escritor de pacotes XMP com contentores tipados, utilizados por todos os perfis de normas |
| Rede e escala | Callbacks por intervalo de bytes e nada acima disso | Sessões progressivas de documento, escalonador de pedidos por intervalo de bytes com prioridades, desduplicação, fusão, repetições limitadas e cancelamento, renderização de páginas em paralelo, e armazenamento de trabalho limitado que transborda para um ficheiro temporário eliminado ao fechar |
| Camada de aplicação | Handles e callbacks em C | Três componentes VCL / LCL registados, 475 membros públicos de TPdf e 152 em TPdfView, estado do visualizador, miniaturas, sessões de leitura e 34 projetos prontos a executar |
Em vez de conceberem de raiz o estado do visualizador, a interação, a renderização assíncrona, o mapeamento de texto, o foco em formulários, a navegação de páginas, o comportamento de acessibilidade, os contentores de assinatura, os dicionários de encriptação e os escritores de revisões, as equipas partem de componentes testados e de arquiteturas de leitor funcionais, e adaptam ao seu produto o código-fonte Object Pascal fornecido.
PDFium Delphi Component é um conjunto de componentes PDFium com código-fonte para aplicações Delphi, C++Builder e Lazarus que necessitam de visualização rápida de PDF, rasterização de páginas, carregamento por fluxo contínuo (streaming), seleção de texto, pesquisa, formulários, anotações, impressão, relatórios de preflight e inspeção de documentos dentro de uma interface de utilizador (UI) nativa para Windows.
Abertura quase instantânea de PDFs grandes: Em testes internos com ficheiros de exemplo de 2,x GB, o acesso a pedido com posicionamento tornou a primeira vista utilizável antes de o documento ter sido lido por completo; os resultados reais dependem do armazenamento, da estrutura do documento e do hardware.
Utilize os exemplos de visualizador e o fluxo de teste com ficheiros grandes públicos para repetir a verificação de abertura até à primeira vista com os seus próprios PDFs, o seu armazenamento e o hardware de destino.
Utilize-o quando a experiência de PDF deve residir no interior da sua aplicação em vez de num visualizador externo. O pacote inclui componentes visuais e não visuais, código-fonte Object Pascal, projetos de demonstração, DLLs do PDFium, DLLs de execução (runtime) opcionais com suporte V8 / XFA, exemplos de preflight por linha de comandos, testes de regressão e documentação tanto para integração do visualizador como para operações de mais baixo nível de PDF.
O Componente VCL PDFium suporta desde Delphi XE5 até Delphi 13.1 Florence e C++Builder XE5 até C++Builder 13.1 Florence, com alvos Win32 e Win64. O Componente LCL PDFium inclui ficheiros de pacote e demonstrações Lazarus / Free Pascal para fluxos de trabalho LCL.
Principais capacidades
- APIs de aplicação de alto nível: Trabalhe com objetos de documento e de visualizador nativos do Delphi, em vez de ligar handles brutos do PDFium em cada ecrã, tarefa em segundo plano, fluxo de formulários e rotina de limpeza.
- Interface (UI) do visualizador: Coloque
TPdfViewnum formulário para obter zoom, rotação, modos de ajuste, esquemas de página única e contínuos, expansões sensíveis à capa, sombras de página, cliques seguros em ligações, seleção de texto pelo utilizador, cópia para a área de transferência e fluxos de foco em formulários. - Navegação por miniaturas: Adicione
TPdfThumbnailViewao lado do visualizador para obter miniaturas de páginas roláveis com realce ao passar o rato, destaque da seleção e navegação por clique. - Renderização: Renderize páginas e mosaicos para bitmaps, utilize escritas DIB sem cópia sempre que possível, execute renderizações progressivas canceláveis, renderize um conjunto de páginas em paralelo através de
RenderPagesParallel, aceda a ganchos Skia de baixo nível quando a DLL carregada os exportar, e mantenha páginas de grande dimensão responsivas. - Fluxo contínuo (streaming) e ficheiros grandes: Carregue a partir de disco, memória, matrizes de bytes ou streams personalizados com posicionamento, com leituras do PDFium a pedido, para que documentos extensos ou remotos não precisem de uma cópia integral em memória à partida.
- Arranque com ficheiros grandes: Comece a rever PDFs de vários gigabytes sem esperar por uma cópia integral em memória; o visualizador utiliza acesso ao PDFium com posicionamento e a pedido, e lê blocos do documento conforme necessário.
- Texto e pesquisa: Extraia texto das páginas, pesquise para a frente ou para trás, destaque ocorrências, construa listas de resultados para todas as páginas e inspecione retângulos de carateres, origens, ângulos, carateres gerados, família de tipos de letra, espessura, tamanho, ascendente, descendente e o estado de incorporação das fontes.
- Texto estruturado:
GetStructuredTextconstrói uma hierarquia de página, bloco, linha e intervalo estilizado a partir da geometria dos carateres, dos metadados dos tipos de letra, da identidade do objeto de texto e da semântica de Tagged PDF, com ordenação alternativa pelo esquema físico quando o documento não traz etiquetas. - Extração de tabelas:
ExtractTableseExtractDocumentTablescombinam as caixas das palavras com as linhas de traçado transformadas para detetar tabelas com moldura e tabelas alinhadas por espaço em branco, preservam células fundidas, atribuem um grau de confiança, assinalam continuações entre páginas e exportam para CSV ou JSON. - Reflow semântico para HTML:
BuildReflowDocumenttransforma um PDF de esquema fixo numa árvore de nós reutilizável cuja saída HTML segura preserva títulos, parágrafos, listas, figuras, secções de página e células fundidas — para apresentação responsiva, acessibilidade e reutilização de conteúdo. - Formulários: Trabalhe com campos AcroForm, deteção de estado XFA, disponibilidade opcional de auxiliares V8 / XFA, texto de formulário selecionado, anular e refazer, aparências de formulário geradas, marcadores de campo e aplanamento.
- Intercâmbio de dados de formulários: Exporte e importe XFDF (ISO 19444-1) e FDF (ISO 32000-1 §12.7.11) para valores de campos e 18 subtipos de anotação — formatos para os quais o PDFium não expõe qualquer API, implementados em Pascal sobre o modelo de anotações e campos do próprio componente.
- Integração de OCR: Ligue qualquer motor de reconhecimento a
IPdfOcrProvider, receba bitmaps de página num formato de píxeis definido, devolva os quadriláteros das palavras e deixe o componente escrever a camada de texto pesquisável, com estado por página e omissão de páginas que já contêm texto. - Anotações e ligações: Crie, apague, conte e inspecione anotações; trate ligações de páginas, ligações Web, destinos de marcadores, ações JavaScript do documento, superfícies de risco URI / Launch e eventos de clique do visualizador.
- Montagem de documentos: Crie documentos, adicione ou remova páginas, importe intervalos de páginas por etiqueta ou índice físico, mova páginas, componha páginas N-up, reutilize páginas como Form XObjects, aplique marcas de água ou selos, atualize o conteúdo das páginas e faça a gestão das caixas de página.
- Saída de PDF e revisões: Grave ficheiros linearizados Fast Web View com tabelas de sugestões de deslocamento de página e de objetos partilhados, empacote objetos em object streams com cobertura completa de xref de tipo 2, acrescente revisões incrementais apenas com os objetos alterados preservando byte a byte a saída anterior, e produza cópias de reparação novamente verificadas por um carregamento estrito independente antes da entrega.
- Assinaturas digitais: Assine nos níveis de base PAdES B-B, B-T, B-LT ou B-LTA; construa CMS / CAdES SignedData com os atributos assinados exigidos pelo perfil; peça tokens RFC 3161 a uma TSA; recolha a cadeia de certificados para um Document Security Store; acrescente carimbos do tempo de arquivo; e valide qualquer documento com verificações PAdES ao nível da cláusula e confiança na cadeia de certificados, de forma síncrona ou assíncrona.
- Assinatura remota e com HSM: Divida a operação em duas com
PreparePadesRemoteSignatureeCompletePadesRemoteSignature— a aplicação produz um documento com espaço reservado e um pedido de assinatura portátil que transporta o resumo SHA-256, um serviço remoto ou um módulo de hardware devolve o CMS destacado, e o componente injeta-o. A chave privada nunca tem de chegar ao posto de trabalho. - Encriptação e integridade: Escreva encriptação AES-256 do PDF 2.0 com derivação de chave R6 correta e blocos de permissões, utilize AES-GCM da ISO/TS 32003 quando for exigido, anexe tokens PDF MAC da ISO/TS 32004, e apoie-se em primitivas AES, SHA-2, SHA-3, HMAC e ASN.1 escritas em Object Pascal, sem qualquer dependência de C externo.
- Inspeção de conteúdo e segurança: Extraia imagens, renderize bitmaps de objetos, inspecione os limites dos objetos e a sua transparência, leia anexos, metadados, assinaturas, permissões, idioma, etiquetas de páginas, modos de página, preferências do visualizador, estrutura de Tagged PDF e identificadores de ficheiro.
TPdfStreamInspectordescodifica objetos de stream arbitrários sob orçamentos explícitos de origem, dados em bruto, dados descodificados, rácio de expansão e número de streams, pelo que uma bomba de descompressão devolve um estado estruturado em vez de esgotar a memória. - Leitura acessível: Construa unidades de leitura ao nível da frase, mapeie o texto falado de volta ao conteúdo do PDF, comande realces de leitura ao nível da palavra, navegue por campos de formulário, inspecione a estrutura etiquetada e aplique transformações de bitmap para baixa visão em fluxos de leitura assistida.
- Relatórios de preflight: Gere relatórios de auditoria orientados para normas com os campos aprovado, requer ação, rever, prioridade, categoria do problema, contagem por categoria e ação seguinte; exporte TXT, HTML e Markdown legíveis por pessoas ou JSON, CSV, SARIF 2.1.0, JUnit XML e NDJSON legíveis por máquinas; produza impressões digitais SHA-256 estáveis dos relatórios; execute resumos em lote; anexe relatórios a cópias de revisão; e condicione uma compilação com o código de saída do executor de linha de comandos.
- Impressão: Imprima com intervalos de páginas, contagens de cópias, preferências de escala, composição N-up, filtragem par/ímpar, saída em tons de cinzento, metadados de preferências do visualizador e
SetPdfPrintPaperHandlingDevModepara integração de duplex e tratamento de papel.
Fluxos de trabalho em PDF sensíveis à conformidade
O PDFium Delphi Component expõe APIs de validação e de guardar orientadas a normas para equipas que requerem entrega de PDFs previsível, avaliação para arquivo, fluxos de impressão, verificações de acessibilidade, documentos de engenharia, impressões de dados variáveis ou entrega bloqueada em formato rasterizado (raster).
| Fluxo de trabalho | Suporte no PDFium Delphi Component | Responsabilidade da aplicação |
|---|---|---|
| PDF/A | ValidatePdfA, SaveAsPdfA e PdfAConformance em todas as partes 1 a 4 da ISO 19005 — incluindo os perfis A-4 base, A-4f e A-4e assentes no PDF 2.0 — com verificações de OutputIntent, de metadados XMP e de incorporação de tipos de letra, verificações de estrutura RoleMap e ParentTree, limites de implementação do Anexo C, restrições de encriptação e JavaScript, e auxiliares de gravação sensíveis ao perfil. | Escolher o alvo de arquivo, fornecer metadados de documento e dados de cor corretos, e resolver os problemas de validação assinalados antes da entrega. |
| PDF/X | ValidatePdfX, SaveAsPdfX e PdfXConformance de X-1a até X-6, assente no PDF 2.0, com tratamento de OutputIntent e ICC, restrições de transparência e de espaços de cor condicionadas pelo perfil, verificações de geometria de TrimBox / ArtBox / BleedBox, e verificações de perfil seguras para impressão. | Fornecer dados de intenção de saída adequados à produção, a geometria das páginas e as definições de impressão do perfil PDF/X pretendido. |
| PDF/UA | ValidatePdfUa, SaveAsPdfUa e PdfUaConformance, verificações de idioma e de etiquetagem, inspeção da árvore de estrutura, revisão do conteúdo marcado e validação do perfil de acessibilidade. | Definir na origem uma ordem de leitura com sentido, títulos, listas, semântica de tabelas, texto alternativo e o idioma do documento. |
| PDF/E, PDF/VT, PDF/R | ValidatePdfE, ValidatePdfVT e ValidatePdfR, as APIs SaveAs... correspondentes e propriedades de conformidade para os perfis de engenharia, de dados variáveis e orientados a rasterização. O PDF/VT cobre hierarquias DPart, metadados de partes do documento e o empacotamento em fluxos MIME multiparte do VT-2s; o PDF/E injeta uma intenção de saída sRGB incorporada; o PDF/R impõe uma única imagem por página e a lista de codificações permitidas. | Fazer corresponder o perfil ao fluxo de trabalho de negócio e manter o conteúdo de origem dentro do conjunto de funcionalidades permitido pela norma escolhida. |
| Assinaturas PAdES | SignPades, SignPadesToStream, SignPadesBytes, SaveAsPadesDss e ValidatePadesCompliance cobrem os níveis de base B-B, B-T, B-LT e B-LTA da ETSI EN 319 142-1, com carimbo do tempo RFC 3161, injeção de Document Security Store, marcadores de extensão ESIC e 26 códigos de validação ao nível da cláusula. SignPadesWithPdfA combina conversão para arquivo e assinatura num único fluxo. | Fornecer o certificado de assinatura e a sua cadeia, escolher um ponto de acesso TSA para os níveis com carimbo do tempo, e definir a política de retenção e de revogação da organização. |
| Automação de preflight | FPdfPreflightReport e PreflightReportCli agregam os resultados de PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R e PDF/VT em TXT, HTML e Markdown legíveis por pessoas ou em JSON, CSV, SARIF 2.1.0, JUnit XML e NDJSON legíveis por máquinas, com ordenação determinística e impressões digitais SHA-256 estáveis. | Decidir se as contagens de aprovado, requer ação, rever ou problemas devem bloquear a integração contínua, a entrega ou a ingestão em arquivo. |
Estas APIs foram pensadas para tornar o trabalho com normas visível no código. Os resultados de validação, os resumos de preflight e os auxiliares de gravação ajudam a sua aplicação a rejeitar ou a corrigir saídas problemáticas, em vez de entregar em silêncio um ficheiro que só mais tarde falha num circuito de arquivo, de impressão ou de acessibilidade. Os validadores integrados concentram-se em verificações ao nível dos marcadores e em verificações selecionadas ao nível do ficheiro; as equipas que necessitem de certificação formal ao nível do conteúdo devem combiná-los com o seu motor de validação dedicado.
Arquitetura do componente
TPdf: Componente de documento não visual para carregamento, acesso por streams, gravação, renderização, pesquisa, extração, validação, acesso a formulários, operações de página, metadados, anexos, anotações, relatórios de preflight e fluxos de perfis PDF.TPdfView: Componente visual de visualizador para modos de apresentação, interação do utilizador, ligações, deslocamento, zoom, seleção, foco em formulários, realce, navegação de páginas e fluxos com a área de transferência.TPdfThumbnailView: Painel lateral de miniaturas rolável para navegação de páginas, acompanhamento da página atual, resposta ao passar o rato e esquemas de acompanhamento do visualizador.- Unidades auxiliares: 55 unidades Object Pascal no total. Para além da ligação ao motor, agrupam-se em criptografia (
FPdfAes,FPdfAesGcm,FPdfSha256,FPdfSha512,FPdfSha3,FPdfHmac,FPdfAsn1), assinatura (FPdfPades,FPdfCms,FPdfTsa,FPdfCryptoWin), normas (FPdfPdfa,FPdfPdfx,FPdfPdfua,FPdfPdfe,FPdfPdfvt,FPdfPdfr,FPdfPreflightReport), serialização e integridade (FPdfCompress,FPdfEncrypt,FPdfMac,FPdfStreamInspect,FPdfContentNormalize) e serviços de conteúdo (FPdfXfdf,FPdfXmp,FPdfLayout,FPdfMeasure,FPdfTextShaping,FPdfStructTree,FPdfAsync,FPdfMatrix).
Todas as unidades acima são código-fonte que recebe e pode percorrer passo a passo no depurador. As primitivas criptográficas são Object Pascal, verificadas face aos vetores de teste publicados da FIPS 197 e da FIPS 180-4, pelo que assinar e encriptar não acrescenta nenhuma biblioteca C externa à sua distribuição nem nenhum binário de terceiros à sua revisão de segurança.
Descarregue o pacote de demonstração do PDFium Delphi Component
2026-08-16 Versão 3.51.0: notas de versão do PDFium Delphi Component | referência de API. A versão 3.51.0 torna públicos oito membros de TPdf até aqui inacessíveis, conforme documentado, e completa a referência em inglês para que cada membro público de TPdf e de TPdfView tenha a sua própria página — 88 membros passaram a ter uma —, juntamente com as enumerações e os registos alcançáveis a partir de assinaturas públicas.
Licenciamento e preços
Pague com cartões de crédito/débito, PayPal, AliPay ou transferência bancária através do 2Checkout. Cada nova licença do PDFium Delphi Component inclui o código-fonte em Object Pascal, um ano de atualizações e um ano de suporte por email.
| Licença | Programadores | Preço | Comprar |
|---|---|---|---|
| Single | 1 programador | $350 | Comprar |
| Small Business | até 10 programadores | $700 | Comprar |
| Medium Business | até 30 programadores | $1050 | Comprar |
| Enterprise | Todos os programadores de uma empresa e das suas subsidiárias dentro de um único país | $2100 | Comprar |
| Corporate | Todos os programadores de uma empresa e das suas subsidiárias em todo o mundo | $4200 | Comprar |
Escolha da licença: Escolha o escalão que cobre o número de programadores da sua equipa: Single (1 programador), Small Business (até 10) ou Medium Business (até 30). A licença Enterprise cobre todos os programadores de uma empresa e das suas subsidiárias dentro de um único país; a Corporate alarga essa mesma cobertura a todo o mundo.
Extras de código-fonte para Enterprise e Corporate: As licenças Enterprise e Corporate do PDFium Delphi Component incluem o código-fonte completo do exemplo de nível profissional PDF Intake & Accessibility Review Workbench Pro. O código-fonte das suítes de validação interna está disponível mediante pedido.
Renovação para clientes existentes: Renove o acesso a atualizações no prazo de 90 dias após o termo do serviço, por 40% do preço de tabela em vigor; passado esse prazo, contacte-nos para obter uma hiperligação de nova encomenda com desconto. Aceda à página de compra e renovação do PDFium Delphi Component.
Aplicações de referência de leitor profissional
O pacote vai muito além de excertos de API isolados. Os seus 34 projetos prontos a executar mostram como os componentes trabalham em conjunto em fluxos de aplicação completos, dando às equipas pontos de partida testados para interface de produção, interação, desempenho, revisão, normas, segurança e acessibilidade. Todas as demonstrações abrem com conteúdo já carregado, para que o primeiro clique faça alguma coisa em vez de pedir um ficheiro.
- PDFViewer: Uma base completa de leitor, com seleção de texto, pesquisa, marcadores, navegação de páginas, impressão, ligações, modos de apresentação, miniaturas e toda a ligação de eventos exigida por um visualizador de ambiente de trabalho real.
- MultiPageViewer: Comportamento contínuo, em página dupla, sensível à capa e multipágina para aplicações de revisão de documentos que precisam de mais do que uma página renderizada.
- SplitView: Duas vistas sincronizadas do mesmo documento para fluxos de comparação, consulta e revisão.
- ViewerInteractionLab e SearchAndSelect: Padrões de interação reutilizáveis para modos de ajuste, cores de página, rotação, realce de pesquisa, listas de resultados de todas as páginas, pré-visualização do texto selecionado, fluxos com a área de transferência e mapeamento de coordenadas.
- AccessibilityReader e AccessibilityLab: Sessões de leitura em voz alta, integração com o motor de fala do sistema anfitrião, unidades de leitura ao nível da frase, realces de leitura ao nível da palavra, navegação em formulários, inspeção da estrutura etiquetada e modos de apresentação para baixa visão.
Exemplos de fluxo de trabalho para além do leitor
- ContentExtractionLab: Um único fluxo para metadados, texto, objetos de página, imagens, anexos, ligações, anotações, marcadores, tipos de letra e métricas de carateres, com exportação para TXT / JSON.
- PDFtoJpg, BatchExport e ImageToPDF: Exportação para rasterização, conversão de vários ficheiros em lote, carregamento por streaming, controlos de DPI e qualidade, introdução de palavra-passe, indicação de progresso e cancelamento cooperativo.
- MergePDF, SplitPDF, CreatePDF e WatermarkStamp: Montagem de documentos, criação programática de PDF, marcas de água reutilizáveis como Form XObjects, selos de canto e etiquetas de número de página.
- FormFill, FontProperties e Attachment: Edição e aplanamento de valores de formulário, inspeção indexada de tipos de letra e carateres, e extração ou criação de ficheiros incorporados.
- SecurityAudit: Inspeção só de leitura de permissões, anexos, JavaScript, ligações URI / Launch, ligações Web, assinaturas, estado XFA, disponibilidade dos auxiliares de execução, e relatórios de auditoria em TXT / JSON.
- XfdfLab e XfaLab: Percurso completo de ida e volta dos dados de formulário e das anotações através de XFDF e FDF, e exercício da deteção de estado XFA com o runtime opcional compatível com V8 / XFA.
- CJKTextLab e RTLTextLab: Tratamento de texto em chinês, japonês, coreano, árabe e hebraico — extração, pesquisa, geometria da seleção e comportamento da conformação em escritas onde as suposições ingénuas sobre a ordem dos carateres falham.
- AnnotationsLab e NavigationLab: Criação e edição de anotações de marcação com geometria de pontos quadriláteros, e padrões de navegação por marcadores, destinos, ações nomeadas e etiquetas de página.
- AccessibilityWorkbenchCli e IntakeWorkbenchCli: Circuitos de revisão e de ingestão sem interface gráfica, para avaliação de acessibilidade em lote e receção de documentos, adequados a tarefas agendadas e a integração contínua em vez de uma janela de ambiente de trabalho.
- StandardsLab, PreflightReport e PreflightReportCli: Fluxos de validação e de gravação para PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R e PDF/VT, pré-visualização de relatórios, exportação para TXT / HTML / Markdown / JSON / CSV, pastas em lote, resumos ordenados, nomes de relatório seguros contra duplicados, anexação de relatórios e comportamento de saída
failon=orientado a integração contínua.
Porquê as equipas escolhem o PDFium Delphi Component
- Assinatura e encriptação sem um segundo fornecedor: PAdES B-B a B-LTA, carimbo do tempo RFC 3161 e encriptação AES-256 do PDF 2.0 fazem parte desta biblioteca. A maioria das equipas Delphi chega a este ponto acrescentando um SDK de assinatura separado ou uma distribuição de OpenSSL; aqui é um pacote, uma licença e código-fonte Pascal que pode auditar.
- Trabalho de normas visível no código: Seis famílias de normas ISO têm validadores a sério, com códigos de resultado ao nível da cláusula, e não uma simples caixa de verificação. A saída de preflight em TXT, HTML, Markdown, JSON e CSV entra diretamente na integração contínua, e o executor de linha de comandos devolve um código de saída de falha nas condições que escolher.
- Uma camada de escrita de PDF que o motor não tem: Linearização Fast Web View, empacotamento em object streams e revisões incrementais apenas com os objetos alterados, que preservam o ficheiro anterior byte a byte — os formatos de saída que os sistemas de arquivo, a entrega Web e os registos de auditoria realmente pedem.
- Uma camada de aplicação, não apenas funções importadas: Três componentes registados, 475 membros públicos de
TPdfe 152 emTPdfView, cobrindo estado do documento, interação do visualizador, renderização, texto, formulários, anotações, impressão, acessibilidade, validação e código de fluxo de trabalho repetível. - Leitores profissionais que pode estudar e estender: 34 projetos prontos a executar — visualizador, multipágina, vista dividida, interação, pesquisa, normas, auditoria de segurança, texto CJK e RTL, e leitura acessível — encurtam o caminho entre a primeira avaliação e um leitor específico do seu produto.
- Desempenho pensado para documentos reais: Carregamento a pedido com posicionamento, caminhos de renderização DIB diretos, renderização progressiva cancelável, renderização de páginas em paralelo e armazenamento de trabalho limitado que transborda para um ficheiro temporário em vez de esgotar a memória.
- Acessibilidade para além de uma caixa de verificação: Sessões de leitura, unidades de leitura, mapeamento entre fala e página, realces ao nível da palavra, transformações para baixa visão, acesso a formulários e inspeção da estrutura etiquetada suportam experiências de leitura assistida.
- Entrada hostil tratada como hostil: A descodificação de streams, a normalização de conteúdo e o varrimento da estrutura decorrem sob orçamentos explícitos de origem, saída, tokens, aninhamento e rácio de expansão, pelo que um PDF malformado ou deliberadamente construído devolve um estado estruturado em vez de derrubar o processo.
- Qualidade de renderização do PDFium: Utilize a família de motores de código aberto por detrás da apresentação de PDF do Chromium, mantendo a camada de aplicação e o código-fonte dentro do seu próprio repositório.
- Sem royalties de execução: Construa aplicações de ambiente de trabalho sem taxas de execução por documento ou por utilizador final.
- Código-fonte, cobertura de IDE e testes mantidos: Código-fonte Object Pascal completo, Delphi e C++Builder XE5 até 13.1 Florence, suporte de Lazarus / Free Pascal, e cobertura automatizada dos fluxos de documento, renderização, formulários, estrutura, impressão, miniaturas, assinatura, encriptação, normas e visualizador.
A leitura acessível como funcionalidade da aplicação
O suporte de acessibilidade faz parte da arquitetura do leitor, não é apenas um resultado de validação. TPdfReadingSession coordena unidades de leitura ao nível da frase, mapeamentos de texto falado e eventos por palavra, para que um motor de fala do sistema anfitrião mantenha a narração sincronizada com a página.
O leitor acessível incluído demonstra a integração com serviços de fala do sistema anfitrião, realces de leitura ao nível da palavra, fluxo de fala ajustável, unidades de leitura pesquisáveis, acesso a formulários orientado ao teclado e modos de apresentação para baixa visão. A inspeção da estrutura etiquetada e as verificações orientadas ao PDF/UA ajudam as equipas a compreender a semântica do documento, ao passo que a validação dedicada continua a ser adequada quando é exigida certificação formal.
Documentação online do PDFium Delphi Component
Exemplo de código
procedure TForm1.OpenPdf(const FileName: string);
begin
Pdf.FileName := FileName;
PdfView.Pdf := Pdf;
PdfThumbnailView.Pdf := Pdf;
PdfView.DisplayMode := dmSingleContinuous;
PdfView.FitMode := pfmFitWidth;
PdfView.AllowUserTextSelection := True;
PdfView.Active := True;
end;
procedure TForm1.HighlightInvoiceNumber;
begin
Pdf.PageNumber := PdfView.PageNumber;
if Pdf.FindFirst('Invoice', []) >= 0 then
PdfView.HighlightSearchText('Invoice', False, False);
end;
procedure TForm1.SaveArchiveCopy(const OutputFile: string);
begin
if not Pdf.SaveAsPdfA(OutputFile, pac1b) then
raise Exception.Create('The PDF/A archive copy could not be saved.');
end;
procedure TForm1.SignForLongTermArchive(const OutputFile: string);
var
Options: TPadesSignOptions;
begin
Options := TPadesSignOptions.Default;
Options.CertificateThumbprint := SignerThumbprint;
Options.Level := plB_LTA; // assinatura + token da TSA + DSS + carimbo do tempo de arquivo
Options.TsaUrl := 'https://tsa.example.com/tsr';
Options.Reason := 'Approved for release';
if not Pdf.SignPades(OutputFile, Options) then
raise Exception.Create('The document could not be signed.');
end;
procedure TForm1.CheckSignatureLevel;
var
Result: TPadesValidationResult;
begin
Result := Pdf.ValidatePades;
if Result.IsCompliantAt(plB_LTA) and Result.IsCryptographicallyValid then
ShowMessage(Format('%d signature(s), %d archive time-stamp(s), verified.',
[Result.SignatureCount, Result.DocTimeStampCount]))
else
ShowMessage('The document does not reach the required PAdES baseline.');
end;
Casos de uso típicos
- Leitores de documentos acessíveis com controlo de leitura em voz alta, realce sincronizado de palavras, navegação em formulários, inspeção da estrutura etiquetada e modos de apresentação para baixa visão.
- Sistemas de gestão documental com fluxos integrados de visualização de PDF, pesquisa, impressão e formulários.
- Aplicações de contabilidade e faturação que requerem a revisão de PDF, extração, tratamento de anexos, verificações de saída prontas a arquivar, manifestos de preflight em lote e anexação de relatórios.
- Software para ambiente de trabalho nas áreas jurídica, de engenharia, médica e governamental, onde os utilizadores têm de inspecionar, imprimir, validar, comunicar e preservar documentos PDF sem saírem da aplicação.
- Fluxos com documentos assinados em setores regulados — contratos, faturas, guias de remessa e registos que têm de levar uma assinatura PAdES B-T ou B-LTA com carimbo do tempo de confiança e manter-se verificáveis durante anos.
- Distribuição confidencial que exige encriptação AES-256 do PDF 2.0 com permissões definidas, escrita pela própria aplicação e não por uma ferramenta externa numa segunda passagem.
- Ferramentas de conformidade e de ingestão que necessitam de verificações repetíveis de PDF/A, PDF/X, PDF/UA, PDF/E, PDF/R ou PDF/VT antes de encaminhar os ficheiros para validadores externos ou sistemas de arquivo.
- Visualizadores de relatórios e ferramentas empresariais internas que necessitam de apresentação rápida de PDF, rasterização de páginas, texto passível de cópia e impressão controlada.
Quando escolher o PDFium Delphi Component
- Escolha o PDFium Delphi Component quando a aplicação tiver de visualizar, verificar, assinar, encriptar e entregar documentos PDF: bases de leitor profissional, assinatura PAdES, encriptação do PDF 2.0, seis validadores de normas, saída linearizada e incremental, desempenho com ficheiros grandes, suporte de acessibilidade, formulários e impressão, tudo a partir de um único pacote com código-fonte.
- Escolha o HotPDF Delphi Component quando a sua aplicação gera documentos e prefere não redistribuir nenhum motor de renderização: o HotPDF traz o seu próprio renderizador, codecs de imagem, motor de tipos de letra, geração de códigos de barras, esquema XFA e validação Factur-X, e compila diretamente para dentro do seu executável.
- Escolha a PDF Library for Delphi quando um único conjunto de ferramentas tiver de cobrir todo o ciclo de vida, ou quando precisar de OCR, leitura de códigos de barras, assinatura com token de hardware PKCS#11, validação de listas de confiança da UE, ou acesso por DLL / ActiveX / Dylib para chamadores fora do Delphi.
A comparar toda a família? Consulte a visão geral das bibliotecas PDF para programadores para ver lado a lado o PDFium Delphi Component, a losLab PDF Library e o HotPDF Delphi Component.
Perguntas frequentes
O PDFium Delphi Component é apenas uma camada fina sobre a DLL PDFium?
Não. O PDFium renderiza e lê; não sabe assinar um documento, escrever encriptação, validar uma norma PDF nem emitir revisões linearizadas, com object streams ou incrementais. Mais de 62 000 das cerca de 115 000 linhas de Object Pascal do pacote estão em unidades sem qualquer equivalente na API do PDFium e implementam exatamente essas camadas: assinatura PAdES B-B a B-LTA, uma pilha criptográfica AES / SHA / ASN.1 em Pascal puro, encriptação AES-256 do PDF 2.0, seis validadores de normas ISO, um serializador de PDF próprio, XFDF, XMP, e a arquitetura de visualizador, leitor e acessibilidade.
Que motor utiliza o PDFium Delphi Component?
O PDFium Delphi Component utiliza o PDFium — a mesma família de motores de código aberto por detrás da apresentação de PDF do Chromium — para a renderização de páginas e a leitura de documentos. Tudo o que o motor não fornece é implementado pela losLab em Object Pascal: o modelo de componentes, a camada de serialização e de revisões do PDF, as assinaturas digitais, a encriptação, a validação de normas, a arquitetura de leitor, a camada de acessibilidade, os exemplos e os testes.
O PDFium Delphi Component consegue assinar digitalmente documentos PDF?
Sim. Implementa os perfis de base PAdES B-B, B-T, B-LT e B-LTA da ETSI EN 319 142-1: construção de CMS / CAdES SignedData segundo a RFC 5652, pedidos de carimbo do tempo RFC 3161 a uma TSA, recolha da cadeia de certificados para um Document Security Store, e carimbos do tempo de arquivo. As chaves de assinatura são utilizadas através do backend Windows CNG com RSA-PSS, PKCS#1 ou ECDSA. O próprio PDFium apenas consegue ler dicionários de assinatura existentes.
Consegue encriptar documentos PDF?
Sim. SaveAsEncrypted escreve encriptação AES-256 da ISO 32000-2, incluindo a derivação R6 do resumo da palavra-passe do algoritmo 2.B, as entradas /O /U /OE /UE /Perms do dicionário, e a encriptação integral de streams e strings. São suportados o AES-GCM da ISO/TS 32003 e os tokens PDF MAC da ISO/TS 32004. As primitivas AES, SHA-256/384/512, HMAC e ASN.1 são Object Pascal puro, sem qualquer dependência de C externo.
Suporta Lazarus e Free Pascal?
Sim. O pacote inclui ficheiros de pacote Lazarus / Free Pascal e demonstrações LCL, a par dos componentes VCL para Delphi e C++Builder, abrangendo Delphi e C++Builder de XE5 a 13.1 Florence com alvos Win32 e Win64.
Com que rapidez abre PDFs muito grandes?
O visualizador utiliza acesso ao PDFium com posicionamento e a pedido, em vez de um carregamento integral à partida. Em testes internos com ficheiros de exemplo de 2,x GB, a primeira vista tornou-se utilizável antes de o documento ter sido lido por completo; os resultados reais dependem do armazenamento, da estrutura do documento e do hardware.
Permite criar ou editar documentos PDF?
Cobre a montagem de documentos: criar documentos, adicionar e eliminar páginas, importar intervalos de páginas, mover páginas, composição N-up, marcas de água, selos e atualizações do conteúdo das páginas. Para autoria programática intensiva de PDF, o HotPDF Delphi Component ou a losLab PDF Library são a melhor escolha.
Trata formulários AcroForm e XFA?
Sim. Trabalha com campos AcroForm, foco e texto selecionado, anular e refazer, aparências geradas, marcadores de campo e aplanamento, deteta o estado XFA, e pode utilizar DLLs de execução opcionais compatíveis com V8 / XFA quando essas funcionalidades são necessárias.
Que normas PDF pode validar?
Seis famílias de normas, cada uma com o seu validador e com o auxiliar de gravação ou de injeção de marcadores correspondente: PDF/A (ISO 19005 partes 1 a 4, incluindo os perfis A-4 base/f/e assentes no PDF 2.0), PDF/X (ISO 15930, incluindo X-6), PDF/UA (ISO 14289-1), PDF/E (ISO 24517-1), PDF/VT (ISO 16612-2, incluindo o empacotamento em fluxos MIME do VT-2s) e PDF/R (ISO 23504-1). A estrutura de base PAdES é validada em separado face à ETSI EN 319 142-1. Os relatórios de preflight exportam para TXT, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML e NDJSON. Os validadores cobrem cláusulas ao nível dos marcadores e um conjunto crescente de cláusulas ao nível do ficheiro; combine-os com um motor de validação dedicado quando for exigida certificação formal.
Existem royalties de execução ou taxas por utilizador?
Não. As aplicações licenciadas são distribuídas sem royalties e sem taxas de execução por documento ou por utilizador final.
O que inclui uma licença e como funciona a renovação?
Uma licença nova ($350 Single, $700 Small Business (até 10 programadores), $1050 Medium Business (até 30 programadores), $2100 Enterprise (uma empresa, um país), $4200 Corporate (uma empresa, em todo o mundo)) inclui o código-fonte Object Pascal, um ano de atualizações e um ano de suporte por email. Os clientes existentes renovam o acesso a atualizações por 40% do preço integral.
Descubra mais em Componentes Delphi para PDF e Desenvolvimento de Folhas de Cálculo
Subscrever atualizações de produto
Subscreva para receber as atualizações mais recentes no seu email.
