Componentes Principais
- TPdf - Componente principal de manipulação de documentos PDF para abertura, navegação, extração de texto e edição de documentos PDF
- TPdfView - Componente visual para exibição e interação com páginas PDF
- TPdfReadingSession - Componente de orquestração de leitura em voz alta para motores TTS do host e acompanhamento de palavras no TPdfView
- TPdfThumbnailView - Painel lateral rolável de miniaturas para navegação entre páginas
- Native LCL Platforms - Linux Qt6 e macOS Cocoa usam PDFium nativo, bindings LP64 corretos, serviços de fonte e arquivo da plataforma e layouts reais de canais de bitmap; veja configuração nativa para as configurações qualificadas de Free Pascal/LCL e os limites de capacidade
Operações com Documentos
- Carregamento de Documentos - Carregue arquivos PDF do disco, streams de memória, arrays de bytes completos, janelas de array de bytes baseadas em zero
Index/Countou adaptadores TStream sob demanda viaLoadCustomDocument. As políticas compatible, strict e recovery acrescentam diagnósticos clássicos, híbridos e de xref-stream limitados sem substituir o parser semântico do PDFium- Saída Reparada Verificada -
SaveAsRepairedcria uma cópia completa de revisão única e carrega sua estrutura de xref e páginas de forma estrita e independente antes de retornar bytes ou substituir atomicamente um arquivo- Grafo de Objetos Tipado -
ExportObjectGraphemite JSON tipado e limitado para valores diretos e de object stream, enquantoSaveAsObjectGraphPatchedaplica alterações validadas de dicionários de nível superior como uma revisão incremental em estágios e carrega o resultado de forma estrita antes da entrega- Proteção por Senha - Abra documentos PDF protegidos por senha e informe as
UserPermissionsefetivas para a sessão autenticada- Criação de Documentos - Construa novos documentos PDF do zero com
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImageeCreatePath- Salvamento de Documentos - Salve documentos modificados com várias opções (incremental, remoção de segurança) e versões de PDF de destino explícitas de PDF 1.0 a PDF 1.7
- Saída PDF/A-1b -
SaveAsPdfA/SaveAsPdfAToStreampós-processam o salvamento base com uma atualização incremental que injeta um stream de metadados XMP, um OutputIntent ICC sRGB e um Catalog de documento atualizado, de modo que o resultado seja compatível com PDF/A-1b. Perfis ICC personalizados são suportados através deTPdfASaveOptions.IccProfileData- Validação de PDF/A -
ValidatePdfAe a propriedade somente leituraPdfAConformanceescaneiam um documento aberto em busca de marcadores XMPpdfaid, OutputIntent com ICC incorporado, presença de criptografia, e informam o nível de conformidade (pac1a,pac1b,pac2b,pac3b,pacNoneoupacUnknown) mais uma lista de entradasTPdfAValidationIssuedescrevendo cada problema encontrado- Validador de Conformidade de Versão do PDF - Quando SaveAs visa PDF 1.0 a PDF 1.7, o escritor rejeita qualquer entrada de dicionário, filtro, subtipo de anotação, tipo de ação, fonte, espaço de cor ou parâmetro de criptografia introduzido após a versão de destino escolhida (por exemplo, JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, anotações Polygon / Caret / Watermark / Redact, ações JavaScript / Trans / SetState)
- Compactação de Stream - Compactação FlateDecode automática garante que todos os streams PDF estejam idealmente compactados ao salvar; defina
Compressed := Falsepara desativar em pipelines de depuração- Mesclagem em Lote Escalável -
MergeFilesimporta fontes baseadas em arquivo com intervalos de páginas e senhas por origem, mantém no máximo um documento de origem aberto e expõe políticas de progresso, cancelamento, tratamento de parar ou pular, rollback, formulário, outline, recursos e preferências do visualizador- Importação de Subconjunto de Páginas -
ImportPagesByIndexcopia um array explícito de índices baseado em zero de um documento de origem, com InsertAt = 0 para inserir antes da página 1 ou InsertAt = PageCount para anexar. Passe um array de índices vazio para importar todas as páginas de origem- Composição N-up -
ImportNPagesToOneretorna um novoTPdfcujas páginas são compostos NumX×NumY das páginas do documento de origem, dimensionadas em unidades de usuário PDF (1 unidade = 1/72 pol)- Reordenação de Páginas -
MovePagesreordena páginas no local usando um array de índices baseado em zero e um índice de destino para a primeira página movida- Validação de Plano de Páginas -
ValidatePagePlanpré-visualiza mapeamentos de exclusão, movimentação, inserção, divisão e mesclagem, inventaria efeitos de navegação, rótulo, formulário, árvore de estrutura, recursos importados e assinaturas, e rejeita planos que deixariam alvos pendentes ou modificariam conteúdo assinado sem autorização explícita- Geração de Layout em Duas Passadas -
GenerateLayoutmede e pagina texto com quebra de linha, réguas, imagens, page XObjects, cabeçalhos e rodapés antes de emitir atomicamente objetos de página nativos, enquanto os placeholders estáveis{page}e{pages}preservam a contagem de páginas medida- Layout Paginado com Suporte em Disco -
GeneratePagedLayoutgrava comandos em armazenamento seekable escolhido pelo chamador, restaura cada página a partir de segmentos não contíguos compactos, limita os arrays de páginas retidas com um cache LRU e anexa páginas do PDFium sequencialmente- Layout de Tabelas entre Páginas -
TPdfLayoutTableresolve colunas fixas, fracionárias e dimensionadas por conteúdo uma única vez, repete linhas de cabeçalho contíguas, divide linhas de corpo elegíveis, mantém grupos com row-span intactos e emite legendas, bordas de células, links e uma hierarquia semântica contínua de Table / TR / TH / TD entre páginas- Nós de Layout em Cache - Planos de layout são armazenados em cache por identidades completas de restrição, conteúdo, fonte, estilo, origem e medidor, enquanto
TPdfLayoutCachedNodeconstrói modelos repetidos de forma preguiçosa e emite cada posicionamento a partir de um Form XObject nativo reutilizável- Layout Tagged PDF Automático -
GenerateTaggedLayoutemite MCIDs nativos, artefatos, uma árvore de estrutura de Document, mapeamentos ParentTree e IDTree, cabeçalhos, listas, figuras com texto alternativo, cabeçalhos de tabela e anotações Link com propriedade OBJR a partir do mesmo plano de layout medido; restrições de item mantêm blocos e cabeçalhos juntos, impõem mínimos de viúva / órfã e forçam quebras de página físicas- Edição de Marked-content -
PageObjectMarks,AddPageObjectMark,SetPageObjectMarkParam,RemovePageObjectMarkParameRemovePageObjectMarkinspecionam e alteram listas de propriedades BDC através de marcas nativas estáveis- Texto Bidirecional e de Scripts Complexos -
AddShapedTextconverte sequências direcionais, formas contextuais, ligaduras, avanços e deslocamentos em glifos CID Type 2 posicionados, enquanto os mapeamentos ToUnicode gerados e oActualTextpreservam a semântica Unicode lógica- Autoria de Fontes CID Type 2 -
AddCidType2Textembute dados TrueType fornecidos pelo chamador com mapeamentos CID-to-GID e ToUnicode explícitos, subsetting opcional seguro, fallback controlado de fonte completa e verificações de integridade de extração- Orçamento de Bytes Unificado de Cache -
TPdf.CacheBudgetBytescoordena cenas de página analisadas, miniaturas, dados de estrutura, snapshots de texto e snapshots de objetos de página por meio de um LRU global mensurável, enquantoTPdfTileCachee o cache de fontes do sistema podem se juntar a um governor escolhido pelo chamador- Provedor de Fontes do Sistema do Host -
ConfigureSystemFontProviderroteia solicitações nativas de fontes ausentes através de um provedor da aplicação com validação de bytes, cache LRU limitado, fallback nativo opcional, extração de tabelas e estatísticas de ciclo de vida- Reutilização de Página via Form XObject -
CreateXObjectFromPagefabrica um handleTPdfXObjectreutilizável a partir de qualquer página de outro documento;InsertFormObjectFromXObjectinsere UMA cópia da página encapsulada na página atual. Ideal para marcas d'água, sobreposições de modelos e fluxos de trabalho do tipo "estampar uma página em várias". O objeto de página de destino pode ser posicionado, escalonado e rotacionado através deFPDFPageObj_SetMatrixe dos auxiliaresTPdfMatrix- Gerenciamento de Páginas - Adicione, exclua e manipule páginas individuais;
AddPage(0, ...)insere a primeira página e a ativa imediatamente- Caixas de Página - Leia e escreva MediaBox, CropBox, BleedBox, TrimBox e ArtBox na página atual
- Idioma do Catalog - Leia e escreva o idioma do documento armazenado na entrada /Lang do Catalog
- IDs de Arquivo no Trailer - Leia as entradas /ID permanente e variável do trailer como bytes binários
- Ações JavaScript do Documento - Enumere nomes e scripts de ação JavaScript da árvore de nomes no nível do documento
- Árvore de Estrutura de Tagged PDF - Inspecione elementos de estrutura lógica, texto de acessibilidade, idioma, IDs de marked-content e hierarquia para páginas PDF tagged
- Preferências do Visualizador - Leia
PrintCopies,PrintPageRanges,PrintScalingePrintPaperHandlingdo dicionário de preferências do visualizador do documento; PDFs salvos têm como padrão uma ação de abertura Fit Height na primeira página
Operações de Texto
- Extração de Texto - Extraia texto de páginas PDF com precisão em nível de caractere via propriedades
Text,TextInRectangle,Characterindexado,CharacterRectangleeCharacterOrigin- Modelo de Texto Estruturado -
GetStructuredTextconstrói uma hierarquia limitada de página, bloco, linha e span estilizado a partir da geometria nativa de caracteres, metadados de fonte, identidade de objeto de texto, semântica Tagged PDF e ordenação de fallback de layout físico- Detecção e Extração de Tabelas -
ExtractTableseExtractDocumentTablescombinam caixas de palavras nativas com linhas de caminho transformadas para detectar tabelas com bordas ou alinhadas por espaços em branco, preservar células mescladas, pontuar confiança, marcar continuações de página e emitir CSV ou JSON- Reflow Semântico e HTML Responsivo -
BuildReflowDocumentcombina semântica Tagged PDF, inferência de layout físico e extração de tabelas em uma árvore de nós reutilizável e limitada cuja saída HTML segura preserva cabeçalhos, parágrafos, listas, figuras, seções de página e spans de tabela- Camada de OCR Pesquisável -
ApplyOcrSearchLayerpassa renderizações BGRA limitadas de cima para baixo da página para um provedor da aplicação, mapeia quadriláteros de confiança através da geometria nativa da página e adiciona texto pesquisável invisível sem recodificar imagens digitalizadas- Unidades de leitura por sentença - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits e BuildReadingUnits expõem registros TPdfReadingUnit do tamanho de sentenças para escuta TTS sincronizada
- Seleção de Linha Visual -
TPdfView.SelectLineAtseleciona a linha de texto visual que contém um índice de página baseado em um e um índice de caractere baseado em zero através do mesmo modelo de limite de linha usado pela seleção de clique triplo e porShift+HomeouShift+End- Realce de leitura palavra por palavra -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowMapeia um deslocamento de caractere da página para o TPdfWordBox que o contém, realça a palavra e retorna o índice; Realça um TPdfWordBox como a palavra falada atual em TPdfView; Limpa a sobreposição do cursor de leitura palavra por palavra atual em TPdfView; Controla a cor da sobreposição usada pelo cursor de leitura palavra por palavra atual; Controla se TPdfView rola a palavra falada atual para a área visível durante o acompanhamento da leitura- Orquestração de Sessão de Leitura em Voz Alta -
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageChareEstimateSpokenWordIndexcoordenam motores TTS do host, blocos falados, callbacks de posição de palavra, ritmo estimado, pausa e retomada, e atualizações do cursor de palavra em TPdfView- Pesquisa de Texto - Encontre texto com opções de pesquisa sensível a maiúsculas, palavra inteira e consecutiva usando
FindFirst,FindNexteFindPrevious, ou transmita correspondências para frente e para trás em todo o documento comTPdf.CreateDocumentSearch, retângulos de resultado no espaço da página, cancelamento cooperativo e memória constante de handles de página- Sobreposição de Destaque de Pesquisa -
TPdfView.HighlightSearchTextsubstitui a sobreposição de correspondências da página atual, enquantoAddSearchTextHighlightanexa intervalos únicos para termos adicionais, de modo que várias consultas possam permanecer visíveis juntas.ClearHighlightremove o conjunto completo; navegar para outra página a limpa automaticamente porque os intervalos de caracteres são específicos da página.HighlightColortem o padrãoclYellowe é publicado para que aplicações possam tematizar a sobreposição- Propriedades de Caractere - Acesse tamanho de fonte, peso, ângulo e posicionamento para caracteres individuais com as propriedades indexadas
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHypheneCharacterMapError- Suporte a Caracteres Europeus -
AddTextcarrega e armazena em cache automaticamente a fonte TrueType do sistema correspondente antes de criar um objeto de texto, de modo que caracteres acentuados do tcheco, francês, alemão, espanhol, português, polonês e turco que as fontes padrão internas do PDFium não conseguem representar agora sejam renderizados corretamente sem nenhuma alteração de código- Adição de Texto - Adicione novo texto a páginas PDF com fontes, cores, transparência e rotação personalizadas
- Posicionamento de Objeto de Texto - Defina posições por caractere para objetos de texto existentes através de
SetTextPositionseTPdfSingleArray- Informações de Fonte - Recupere propriedades de fonte incluindo nome da família, status de incorporação, ângulo itálico, ascent / descent e dados brutos da fonte por objeto de página
Suporte a Anotações
- Tipos de Anotação - Suporte para texto, link, destaque, sublinhado, tachado e muitos outros tipos de anotação
- Criação de Anotação - Crie novas anotações programaticamente
- Edição de Anotação - Modifique propriedades de anotações existentes incluindo cor, transparência e conteúdo
- Anotações de Link - Manipule links internos e externos com suporte a ações
Suporte a Formulários
- Acessores para preenchimento de formulários por voz - FocusedFormFieldValue, FocusedFormFieldName e FocusedFormFieldDetails em TPdf e TPdfView expõem valor, nome e TPdfFormFieldInfo do campo lógico atual para preenchimento de formulários por teclado ou voz
- Tipos de Formulário - Suporte para formulários AcroForm e XFA
- Preenchimento de Formulário - Preenchimento interativo de formulários com suporte a JavaScript
- Seleção de DLL V8 - Defina
EnableV8Engineantes de carregar para usarpdfium.v8.dllda pastaDLLs\Win32ouDLLs\Win64correspondente e consulte a disponibilidade de auxiliares V8/XFA viaV8FeaturesAvailable,XfaBStrHelpersAvailableeGetRecommendedV8Flags- Acesso a Campos - Leia e escreva valores de campos de formulário por índice ou posição
- Informações de Campo - Acesse tipo de campo, flags, nome e outras propriedades
- Flags de Campo - Atualize flags de campos AcroForm por índice ou posição através de
SetFormFieldFlags/SetFormFieldFlagsAt, incluindo flags de somente leitura, obrigatório, senha e multisseleção- Achatamento de Formulário -
GenerateFormAppearancesregenera o stream de aparência /AP para cada widget de formulário em cada página, eFlattenPage/FlattenAllPagesgrava anotações e campos de formulário no conteúdo estático da página (não editável)- Seleção de Texto em Widget de Formulário, Área de Transferência e Desfazer / Refazer - No widget AcroForm em foco, a visualização expõe
GetSelectedFormText,CopySelectedFormTextToClipboard,CutSelectedFormTextToClipboard,PasteFormTextFromClipboard,SelectAllFormTexteFormUndo/FormRedo/FormCanUndo/FormCanRedo. O editor trataCtrl+A,Ctrl+C,Ctrl+Insert,Ctrl+X,Shift+Delete,Ctrl+VeShift+Insert; recortar e colar rejeitam campos somente leitura ou sessões sem permissão de preenchimento ou modificação de formulário- Transações de Edição de Documento e Desfazer / Refazer -
BeginEditTransaction,CommitEditTransactioneRollbackEditTransactionagrupam edições arbitrárias de páginas, objetos, anotações, anexos e metadados, enquantoUndoEdit,RedoEdite diários de edição portáteis usam deltas bidirecionais limitados verificados por SHA-256- Recuperação de Falhas e Salvamento Automático por Commit - pacotes de recuperação com checksum vinculam impressões digitais da origem e da versão recuperada a um diário de edição limitado, enquanto o salvamento automático atômico atualiza um sidecar explícito após commit, desfazer ou refazer sem reescrever o PDF de origem
Operações de Imagem
- Extração de Imagens - Extraia bitmaps de páginas PDF com a propriedade indexada
Bitmap; itereBitmapCountpara salvar cada imagem em disco- Inserção de JPEG -
AddJpegImagerecebe um TStream de bytes JPEG brutos e incorpora a imagem como um XObject /DCTDecode sem recodificação- Suporte a Picture -
AddPictureaceita um objetoTPicturecom conversão automática de formato através das classes gráficas VCL/LCL registradas- Inserção Direta de Imagem -
AddImage(FileName)reconhece qualquer formato registrado com as unidades de gráficos VCL ou LCL (BMP, PNG via PngImage, JPG, ...) e compartilha o pipeline AddPicture.AddImage(TBitmap)pula o intermediário TPicture, o que simplifica chamadores que já possuem um TBitmap do trabalho de renderização ou geração em lote- Perfil ICC de Imagem - Objetos de página de imagem expõem seus dados de perfil ICC incorporados quando presentes (binding para
FPDFImageObj_GetIccProfileDataDecoded)- Geração de Miniaturas - Gere bitmaps de miniatura da página atual via a propriedade
Thumbnailou renderize qualquer página baseada em um através deTPdf.RenderPageThumbnailsem alterarPageNumber, com um LRU consciente de revisão limitado por tetos de entradas e bytes de pixel- Cache de Cenas de Página Analisadas -
TPdf.RenderPageByIndex,RenderPageThumbnaileExtractThumbnailreutilizam cenas de página do PDFium com cache LRU limitado, enquanto edições de página, mudanças na árvore de páginas, estado de formulário e o encerramento do documento invalidam entradas obsoletas
Unidades Auxiliares
- Infraestrutura Assíncrona -
FPdfAsynccombina cancelamento cooperativo estruturado com callbacks removíveis e fontes de prazo, despacho de resultados configurávelTPdfFuture<T>e umTPdfAsyncExecutorreutilizável com workers fixos, quatro faixas de prioridade FIFO, contrapressão de fila limitada, handles por tarefa, diagnósticos de tempo, estatísticas agregadas e encerramento gracioso- Adaptador de Stream -
TPdfStreamAdapterfaz a ponte entre umTStreamPascal e os callbacksFPDF_FILEACCESSdo PDFium para queLoadCustomDocumentleia blocos sob demanda em vez de armazenar todo o PDF em memória- Sessões de Download Progressivo -
TPdfProgressiveDocumentmantém vivo o provedor de disponibilidade nativo do PDFium, alimenta dicas de documento, formulário e página noTPdfRangeRequestScheduler, agrega intervalos ausentes, antecipa transferências em segundo plano em favor de bytes críticos para a página, limita tamanhos de solicitação e repetições, cancela transportes redundantes e abre uma página linearizada antes da chegada do PDF completo- Inspeção de Streams Limitada -
TPdfStreamInspectorinventaria objetos de stream físicos, expõe janelas brutas seguras e decodificação ordenada de filtros gerais, informa caminhos de acesso nativo de imagens e anexos e impõe orçamentos de fonte, saída, dicionário, contagem e taxa de expansão- Normalização de Content Stream -
TPdf.SaveAsNormalizedContenttokeniza o conteúdo lógico da página, remove comentários, valida o equilíbrio de estado e de contêineres, preserva operadores não suportados e dados de imagens inline e agrega arrays/Contentsseguros- Saída Fast Web View -
TPdf.SaveAsLinearizedgrava objetos da primeira página antes das páginas seguintes, emite duas seções de referência cruzada e constrói tabelas de dicas de deslocamento de páginas e objetos compartilhados, de modo que um cliente HTTP Range possa abrir uma página solicitada sem baixar o arquivo completo- Saída de Object Stream -
TPdf.SaveAsObjectStreamempacota valores elegíveis em grupos ObjStm limitados de PDF 1.5+, mantém objetos críticos para abertura como diretos e grava entradas xref type-2 adaptativas para arquivos menores sem sacrificar o acesso aleatório- Salvamento Incremental de Objetos Alterados -
TPdf.BeginIncrementalSaveeCommitIncrementalSavecomparam snapshots semânticos estáveis, preservam cada byte anterior criptografado ou não criptografado, herdam parâmetros de segurança R5, R6 ou R7, anexam apenas objetos alterados, reabrem cada resultado de forma estrita e usam um arquivo secundário durável mais substituição atômica para commits em arquivo- Controle de Conteúdo Opcional -
TPdf.InspectOptionalContentinventaria camadas, configurações, metadados de uso, grupos de rádio, ordem, bloqueios, políticas OCMD e expressões de visibilidade, enquantoSaveAsOptionalContentConfiguredgrava estados de camada determinísticos que o PDFium aplica através de seu contexto de renderização nativo- Armazenamento de Trabalho Limitado -
TPdfRandomAccessStoremantém dados pequenos na memória, transborda uma única vez para um arquivo temporário privado excluído no fechamento em um teto escolhido pelo chamador e fornece leituras posicionadas sem alterar o cursor compartilhado;TPdf.SaveMemoryLimitaplica a mesma política ao pós-processamento do salvamento principal, enquanto as atualizações padrão de open-action e do catálogo de rótulos de página usam janelas de tamanho fixo e um índice esparso de objetos lazy- Consulta Nativa de Versão -
TPdf.PdfVersionreutiliza o estado do parserFPDF_GetFileVersionpara semântica de cabeçalho e Catalog, com uma verificação de cabeçalho de oito bytes para rejeitar downgrades malformados de Catalog- Kit de Ferramentas de Geometria de Matriz -
FPdfMatrixencapsula aFS_MATRIXdo PDFium com composição pós e pré, transformações conscientes de pivô, ajuste de retângulos stretch / contain / cover, diagnósticos de invertibilidade conscientes de escala, decomposição, auxiliares de inversa sem mutação, mapeamento de vetores e quadriláteros, lotes de pontos ou retângulos com uma alocação, variantes no local e limites transformados em uma passagem- Renderização Progressiva Cancelável -
TPdf.RenderPageProgressivecontrola o loopFPDF_RenderPageBitmap_Start+RenderPage_Continuedo PDFium e consulta umIPdfCancellationTokenentre iterações via o callbackIFSDK_PAUSE, de modo que renderizações longas em alto DPI possam ser abortadas no meio da página em vez de bloquear até a conclusão. Retorna umTPdfProgressiveStatusdeprsDone,prsCancelledouprsFailed- Caminho de Renderização Zero-Copy -
RenderPage/RenderTile/RenderPageProgressivegravam a saída do PDFium diretamente no buffer DIB doTBitmapde destino em vez de passar por um buffer interno, economizando uma cópia de memória de largura × altura × 4 bytes por renderização - mais perceptível em alto DPI (painéis de miniaturas, exportação com qualidade de impressão, exportação em lote). Um caminho de fallback por linha de varredura é preservado quando o DIB de destino não pode ser encapsulado com segurança- Transformações de bitmap para baixa visão - InvertPdfBitmap, GrayscalePdfBitmap e DuotonePdfBitmap transformam no local pixels TBitmap de 32 bits renderizados para visualizações invertidas, cinza ou bicolores de baixa visão
- Visualização Noturna de Baixa Visão -
TPdfView.OptionssuportareInvertereNightDuotone, comNightDuotoneInkeNightDuotonePapercontrolando a paleta noturna ao vivo antes de as sobreposições serem desenhadas
Operações de Desenho
- Desenho de Caminhos - Crie caminhos com linhas, curvas de Bezier e formas fechadas
- Remoção de Objetos - Remova objetos de página e regenere o conteúdo da página a partir de TPdf ou TPdfView
- Preenchimento e Traço - Configure modo de preenchimento, cores, transparência e propriedades de traço
- Modos de Mistura - Suporte para vários modos de mistura PDF
- Estilos de Linha - Configure cap de linha, junção de linha e largura de traço
Assinaturas Digitais
- Detecção de Assinatura - Detecte e enumere assinaturas digitais em documentos PDF
- Informações de Assinatura - Acesse conteúdo da assinatura, intervalo de bytes, subfiltro, motivo e horário
- Permissões MDP - Consulte permissões de detecção e prevenção de modificação do documento
- Análise de revisões pós-assinatura -
AnalyzeSignatureRevisionsclassifica alterações incrementais de bytes originais contra DocMDP e FieldMDP, identifica atualizações de material de validação e relata definições ocultas ou objetos compactados não resolvidos sem salvar novamente o documento- Perfis de curva elíptica do PDF 2.0 - A validação PAdES identifica assinaturas NIST, Brainpool, Ed25519 e Ed448, verifica a congruência curva-digest e os parâmetros de AlgorithmIdentifier e relata criptografia nativa não suportada de forma independente de combinações inválidas
Suporte a Anexos
- Acesso a Anexos - Leia, crie, modifique e exclua anexos de arquivos incorporados
- Extração em Lote Limitada -
ReadAttachmentMetadatainventaria os anexos uma única vez eExtractAttachmentsToStreamsgrava um conteúdo decodificado por vez sob controles por arquivo, agregados, blocos e cancelamento- Nomes de Anexos - Acesse nomes de arquivos de anexos
- Tipos de Anexos - Leia valores de subtipo MIME de arquivos incorporados quando presentes
- Favoritos - Navegue pelos favoritos do documento com suporte hierárquico via o array
Bookmarks,BookmarkChildren,HasBookmarkChildrene os auxiliares de travessiaBookmarkFrom- Destinos Nomeados - Acesse destinos nomeados por índice ou nome através de
Destination,DestinationByNameeDestinationCount- Rótulos de Página - Recupere rótulos de página para cada página via
PageLabel; útil quando documentos usam algarismos romanos para o prefácio- Links da Web - Detecte e navegue por links da web em páginas com
WebLink,WebLinkCounteTPdfView.WebLinkAtPos- Anotações de Link - Acesse anotações de link com informações de ação e destino através de
LinkAnnotation,LinkAnnotationCounteTPdfView.LinkAnnotationAtPos- Manipulação Segura de Cliques em Links - O TPdfView dispara eventos
OnAnnotationLinkClick/OnWebLinkClickantes do tratamento automático de goto / URI, com ações de launch desabilitadas por padrão. A detecção de clique em link é executada apenas quando o gesto é um clique em vez de um arrasto, usando uma nova âncora MouseDown, de modo que gestos de panorâmica ainda fluam pelo caminho de rolagem existente inalterados
Renderização
- Renderização de Alta Qualidade - Renderize páginas para contexto de dispositivo, bitmap ou tile através de
RenderPage/RenderTile, com gravações diretas zero-copy no buffer DIB de destino- Renderização Progressiva Cancelável -
RenderPageProgressivecontrola o loop progressivo do PDFium e consulta umIPdfCancellationTokenentre iterações, retornandoprsDone,prsCancelledouprsFailed. O bitmap mantém o trabalho parcial feito até o momento quando cancelado- Renderização Paralela de Páginas -
RenderPagesParallelcaptura o documento atual uma vez, dá a cada worker um módulo PDFium e um documento carregados de forma independente, preserva a ordem das solicitações e limita a memória retida por página e agregada da saída- Redação Segura de Conteúdo -
SaveAsRedactedaplica retângulos/Redacta um snapshot isolado, remove conservadoramente objetos de nível superior que se intersectam e anotações sobrepostas, pinta substituições opacas, remove anexos embutidos e grava um resultado saneado de revisão única sem alterar o documento carregado- Opções de Renderização - Otimização de texto LCD (
reLcd), anotações (reAnnotations), tons de cinza e flags de modo de impressão- Hooks do Skia - Os bindings de baixo nível
FPDF_RenderPageSkiaeFPDF_FFLDrawSkiaestão disponíveis quando os chamadores fornecem um SkCanvas externo (depende das exportações da DLL incluída)- Seleção de Modo de Impressão - Defina modos de impressão PDFium EMF, somente texto, PostScript, pass-through, máscara de imagem e Type 42 via
SetPdfPrintModecomTPdfPrintMode- Sobreposição Assíncrona - O TPdfView pode exibir uma sobreposição de carregamento opt-in enquanto workers de propriedade da aplicação renderizam com instâncias separadas de TPdf
- Rotação de Página - Suporte para rotação de 0, 90, 180 e 270 graus (
ro0,ro90,ro180,ro270)- Detecção de Transparência - A propriedade
Transparentinforma se algum objeto na página atual tem transparência, incluindo modos de mistura e alfa parcial
Visualização (TPdfView)
- Modos de Exibição -
dmSingleContinuous,dmTwoPageContinuousedmTwoPageContinuousWithCover(a página de capa fica sozinha, depois continua com layouts de duas páginas). O auxiliar de nível de unitComputeSpreadPagesexpõe a matemática de páginas em layout sem instanciar um visualizador- Modo de Ajuste -
FitModeescolhe como a página se ajusta na viewport:pfmNone(zoom manual),pfmActualSize(100%),pfmFitPage(página inteira cabe na viewport),pfmFitWidth(largura da página corresponde à largura da viewport) epfmFitHeight(altura da página corresponde à altura da viewport). O modo de ajuste ativo é reaplicado automaticamente em Resize e quando a página atual muda; definir Zoom diretamente cancela o modo de ajuste ativo (FitMode reverte parapfmNone), correspondendo à convenção padrão de visualizadores PDF- Controle de Zoom - Zoom variável com auxiliares por página
PageZoom,PageWidthZoom,PageHeightZoomeActualSizeZoom- Cor da Página -
PageColordesacopla o fundo da página PDF renderizada da corColordo controle ao redor. O padrão éclWhite, de modo que páginas PDF agora são renderizadas como branco-papel independentemente do tema da aplicação hospedeira. Visualizadores em modo escuro podem manter a área de rolagem escura enquanto deixam a página PDF real branca (ou qualquer cor que a aplicação escolher)- Seleção Interativa de Texto - Seleção de texto por arrasto do usuário final em páginas PDF, com hit-test alternando automaticamente entre seleção e panorâmica: clicar em um caractere inicia um arrasto de seleção, clicar em espaço em branco faz panorâmica. Clique duplo seleciona a palavra, clique triplo seleciona a linha,
Ctrl+Aseleciona a página (ambas as páginas no modo de layout),Ctrl+Ccopia comoCF_UNICODETEXT,Shift+setasestende a seleção, passar o mouse sobre texto alterna o cursor paracrIBeam, e arrastar até a borda do visualizador rola a página automaticamente. NovosSelectionColorpublicado eOnSelectionChange; novos públicosHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. Modos de exibição em layout selecionam entre as duas páginas visíveis com união CR/LF. Um popup padrão de Copiar com botão direito é anexado automaticamente quando o hospedeiro não atribuiu seu próprioPopupMenu. Controlado pela flag v1.17.0AllowUserTextSelectionpara hosts de quiosque- Mapeamento de Coordenadas - Converta entre coordenadas de dispositivo do visualizador e coordenadas de página PDF com
DeviceToPage/PageToDevice, incluindo overloads que recebem umTRecte retornam umTPdfRectangle- Seleção de Texto e Teste de Acerto - Resolva caracteres sob pontos do visualizador com
CharacterIndexAtPose pinte destaques de seleção de texto viaPaintSelection- Mouse e Teclado - Suporte completo a dispositivos de entrada com rolagem por arrasto do mouse, atalhos PgUp / PgDn / Ctrl+Home / Ctrl+End e navegação de página com roda para cima / roda para baixo. Ctrl+roda é reservado para zoom da aplicação e ignorado pelo manipulador de navegação
- Bloqueio de Entrada do Usuário -
AllowUserPageChangecontrola atalhos de teclado de página,ChangePageOnMouseScrollingcontrola saltos de página da roda, eAllowUserTextSelectioncontrola a entrada de seleção de texto via mouse / teclado. Todos os três têm o padrão True; defina como False para bloquear quiosques, painéis de visualização ou incorporações somente leitura sem fazer subclasse- Sobreposição de Renderização Assíncrona -
AsyncRendering,LoadingTexteLoadingColordesenham um pequeno indicador "Loading..." sobre a página renderizada, de modo que aplicações usando seu próprio worker para renderizações longas compartilhem uma affordance visual consistente. Os padrões preservam o comportamento existente. OTPdfagora serializa chamadas de renderização e descarregamento de página por instância; aplicações ainda são proprietárias do despacho de worker e devem evitar mutar um documento enquanto uma renderização está em andamento- Manipulação Segura de Cliques em Links -
LinkOptionsé um conjunto publicado que controla o comportamento automático para os quatro tipos de ação de link PDF:loAutoGoto(salto de página),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute) eloAutoEmbeddedGoto(reservado). Os padrões habilitam apenasloAutoGotoeloAutoOpenURI;loAutoLauncheloAutoEmbeddedGotopermanecem desativados para que um clique perdido não possa executar um programa arbitrário.OnAnnotationLinkClickeOnWebLinkClickdisparam antes de qualquer ação automática e permitem que a aplicação marque o evento como Handled ou o redirecione- Interação com Formulários - Edição interativa de formulários dentro do visualizador, além dos auxiliares v1.23.0 de seleção / Desfazer / Refazer
- Estilo Visual -
PageShadowSize,PageShadowColorePageBorderColorpintam uma sombra projetada opcional sob o retângulo da página e uma borda de um pixel ao seu redor;SmoothScrollagora anima comandos de barra de rolagem de linha/página em segmentos controlados por timer enquanto o rastreamento do thumb permanece imediato- Navegação por Miniaturas -
TPdfThumbnailView(unitFPdfThumbnail) renderiza uma miniatura de página por linha em um painel lateral rolável com destaque de hover e seleção, mais navegação por clique. Projetado para ficar ao lado de um TPdfView. Propriedades:CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; evento:OnPageClick
Compactação
- Compactação Automática - Quando a propriedade
Compressedé True (padrão), todos os streams PDF são garantidamente compactados com FlateDecode ao salvar- Pós-Processamento - O motor de compactação escaneia os dados PDF salvos e compacta quaisquer streams não compactados usando compactação máxima zlib
- Reconstrução de Referência Cruzada - Reconstrói automaticamente a tabela xref quando a compactação de stream altera os offsets de byte
- Zero Sobrecarga - Se todos os streams já estiverem compactados, os dados passam sem modificação
Segurança
- Suporte a Senha - Abra documentos PDF protegidos por senha
- Permissões - Leia permissões do documento e do usuário; a demo
SecurityAuditcombina permissões, anexos, JavaScript do documento, links URI / Launch, assinaturas, XFA e disponibilidade de V8 em uma superfície de risco somente leitura com ações de salvamento de relatório TXT / JSON e cópia TXT- Kit DER Limitado -
FPdfAsn1codifica números de tag baixos e altos, valores tipados, coleções SET OF ordenadas e formas canônicas de tempo ou string; suas janelas de leitura zero-copy, decodificadores tipados e validador com recursos limitados suportam fluxos de trabalho CMS, PAdES, certificado e timestamp- Validação de longo prazo específica de assinatura -
TPadesDssOptions.Vrisgrava dicionários VRI indiretos chaveados por hash, enquanto streams compartilhados de certificado, OCSP e CRL são deduplicados por hash de conteúdo e a assinatura PAdES B-LT ou B-LTA cria o VRI da nova assinatura automaticamente- Assinatura remota e interrompida -
PreparePadesRemoteSignaturepersiste o digest SHA-256 do documento, o ByteRange exato, as coordenadas do placeholder e a impressão digital do PDF preparado para assinatura em HSM ou nuvem, enquantoCompletePadesRemoteSignaturerejeita sessões modificadas, reutilizadas, acima do tamanho ou com digest divergente antes de gravar a saída- Análise de política de revisões de assinatura -
AnalyzeSignatureRevisionsreconstrói cadeias de revisão clássicas, híbridas e de xref-stream, aplica DocMDP e FieldMDP por assinatura e falha de forma fechada em alterações malformadas, ocultas, compactadas ou acima do orçamento- Perfis de assinatura resistentes a ambiguidade - A validação PAdES conta as chaves necessárias apenas no nível superior do dicionário de assinatura, rejeita duplicatas e perfis Sig ou DocTimeStamp inconsistentes e exige que o ByteRange exclua exatamente o token hexadecimal direto de Contents
- Exportação de evidências de múltiplas assinaturas -
BuildPadesEvidenceReportcorrelaciona fatos do PDFium, política CMS, status de confiança e timestamp, hashes do caminho de certificados, cobertura DSS/VRI e decisões de revisão com saída JSON e CSV limitada- Renovação de timestamp de arquivamento -
RenewPadesArchiveTimestampanexa um Document Time-stamp RFC 3161 sobre o histórico exato de assinaturas existente, opcionalmente atualiza o DSS completo primeiro e valida a cadeia B-LTA resultante antes da saída- Validação de confiança assíncrona -
ValidatePadesTrusteValidatePadesTrustAsyncverificam assinaturas destacadas de bytes originais, cadeias do assinante e da TSA, evidência de revogação online opcional e tokens de timestamp RFC 3161 com progresso em estágios, recuperação limitada e cancelamento cooperativo- Confiança qualificada -
TPdfEuropeanTrustedListanalisa apenas listas confiáveis da ETSI autenticadas pelo chamador, reautentica o XML em cache, aceita fontes de atualização de propriedade do chamador e fornece avaliação offline de serviços qualificados através deQualifiedTrustEvaluator- Remoção de Segurança - Salve documentos com segurança removida (quando autorizado)
Impressão
- Modos de Impressão - Escolha entre modos de impressão EMF, somente texto, PostScript Nível 2 / 3, PostScript pass-through, máscara de imagem EMF e Type 42 através da função global
SetPdfPrintMode- Preferências do Visualizador - Mostre a intenção do autor do documento através de
PrintCopies,PrintPageRanges(intervalos de página baseados em um),PrintScalingePrintPaperHandling;SetPdfPrintPaperHandlingDevModemapeia a dica de duplex noDEVMODE.dmDuplexdo Windows- Impressão N-up - As demos
PrintPreferencesem Delphi, C++Builder e Lazarus mostram composição de folha N-up (1 / 2 / 4 / 9 páginas por folha) com filtragem de páginas ímpares / pares, renderização em tons de cinza, bordas opcionais de células de 1 pixel, preferências de impressão do autor do PDF e mapeamento de intenção duplex viaSetPdfPrintPaperHandlingDevMode
Demos Inclusos
As árvores
Demo\Delphi,Demo\CBuildereDemo\Lazarustrazem projetos de exemplo executáveis que exercitam a superfície ativa da API em todas as três famílias de IDE. Destaques:
- PDFViewer / MultiPageViewer / SplitView - Uso completo do TPdfView: carregar, navegar, zoom, rotacionar, layout de duas páginas, leiautes com capa, e comparação lado a lado de PDFs em Delphi / C++Builder / Lazarus com comandos sincronizados; as demos do visualizador também são testes práticos de velocidade para PDFs multigigabyte, onde documentos de 2,x GB podem alcançar uma primeira visualização utilizável quase imediatamente enquanto a renderização da página permanece responsiva
- ViewerInteractionLab - Exemplos focados de interação com TPdfView em Delphi, C++Builder e Lazarus para modos de exibição, modos de ajuste, cores de página, rotação, destaque de pesquisa, seleção de texto, pré-visualização de texto selecionado, ações de área de transferência e feedback de coordenadas DeviceToPage
- SearchAndSelect - Exemplos focados de fluxo de trabalho em Delphi, Lazarus e C++Builder para listagem de resultados de pesquisa em todas as páginas, navegação anterior / próximo, salto de resultado por clique duplo,
HighlightSearchText, pesquisa por correspondência de maiúsculas / palavra inteira,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectione modos de exibição em layout- PreflightReport - Objetos reutilizáveis
FPdfPreflightReportcoletam resultados de PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R e PDF/VT com status, severidade Info / Warning / Error, busca, pesquisa, filtragem, agregação determinística, impressões digitais SHA-256 estáveis, saída TXT / HTML / Markdown / JSON / CSV e formatos de automação SARIF 2.1.0 / JUnit XML / NDJSON / XML; demos em Delphi, Lazarus e C++Builder mais fluxos de trabalho de console fornecem prévias, roteamento em lote, resumos, anexos de relatório e gating de código de saída para CI- ContentExtractionLab - Fluxo de trabalho unificado de inventário de conteúdo em Delphi, Lazarus e C++Builder para metadados do documento, texto de página, objetos de página, imagens, anexos, links, anotações, favoritos e métricas de fonte / caractere com exportação TXT / JSON, seleção de categoria todas / nenhuma, salvamento do PDF de origem e ações de cópia de relatório
- WatermarkStamp - Fluxo de trabalho reutilizável de Form XObject em Delphi, Lazarus e C++Builder para marcas d'água centralizadas, carimbos de canto e rótulos de número de página em um PDF de destino com várias páginas
- CreatePDF - Construa um PDF com várias páginas do zero com texto, imagens, caminhos, tabelas e composição de marca d'água; inclui uma opção de 'Texto Europeu' para escrever texto acentuado em tcheco / francês / alemão / espanhol / português / polonês / turco, verificando a seleção de fontes e o tratamento de Unicode
- ExtractText / ExtractImages / ContentExtractionLab - Salve texto extraído (incluindo saída separada por página) ou imagens incorporadas em disco, ou gere um relatório de inventário de conteúdo multicategoria em uma única passagem
- FormFill - Leia metadados de campo AcroForm, escreva valores, regenere aparências /AP e salve o resultado editável ou achatado
- FontProperties - Inspecione metadados indexados de caractere / fonte através de TPdf e TPdfView em Delphi, C++Builder e Lazarus
- MergePDF / SplitPDF - Combine vários PDFs de origem (com seleção de intervalo de páginas por arquivo, caminho de saída opcional, registro de execução, botão de cancelar e resumo de conclusão da mesclagem) ou divida um PDF em arquivos de saída por página
- PDFtoJpg / BatchExport - Conversão de PDF para JPG em uma única operação ou em lote multiarquivo em Delphi, C++Builder e Lazarus com progresso geral por arquivo, progresso atual por página, entradas de DPI / qualidade / senha e um lote cancelável cooperativamente apoiado por
IPdfCancellationToken- StandardsLab - Exemplos de fluxo de trabalho em Delphi, C++Builder e Lazarus para validação de PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R e PDF/VT, relatório de problemas e saídas de salvamento orientadas a padrões
- PrintPDF / PrintPreferences - Impressão padrão de PDF em Delphi, C++Builder e Lazarus com pré-visualização, intervalos de páginas, cópias, agrupamento, progresso e cancelamento (PrintPDF), além de composição de folha N-up em Delphi, C++Builder e Lazarus com filtragem ímpar / par e preferências de impressão do autor do PDF (PrintPreferences)
- SecurityAudit - Exemplos de superfície de risco somente leitura em Delphi, C++Builder e Lazarus para permissões, anexos, ações JavaScript, links URI / Launch, links da web, assinaturas, estado XFA, disponibilidade de auxiliar V8 / XFA e relatórios de auditoria TXT / JSON
- Attachment - Crie PDFs, adicione / liste / extraia / exclua / salve anexos de arquivos incorporados com exibição de subtipo MIME
- ImageToPDF - Conversão em lote de imagens em um PDF em Delphi, C++Builder e Lazarus, uma imagem por página, com pré-visualização e progresso por imagem
Os conjuntos de regressão em Delphi, C++Builder e Lazarus cobrem 147 (Pas) / 123 (C++) casos compartilhando os mesmos PDFs de fixture para que o comportamento permaneça byte-alinhado em todas as três famílias de IDE
Suporte a Plataformas
- Delphi - Delphi XE5 (RAD Studio XE5) até Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder - C++Builder XE5 (RAD Studio XE5) até C++Builder 13.1 Florence
- Lazarus - Suporte a Free Pascal / Lazarus
- Win32 / Win64 - Plataformas Windows de 32 e 64 bits
Comparação alinhada identifica páginas inseridas, excluídas e movidas com mudanças de texto Unicode delimitadas e várias regiões visuais; sobreposições tornam essas mudanças exportáveis
Merge transacional de navegação retém hierarquia de outline, estilos, ações URI e destinos de página remapeados por meio de importações de páginas selecionadas e reordenadas
OCR Tesseract opcional adiciona texto pesquisável a páginas digitalizadas com diagnósticos explícitos de dependência, cancelamento e orçamentos de recursos
O merge transacional de AcroForm de páginas selecionadas suporta políticas explícitas de nome e isolamento de recursos; o provedor de códigos de barras opcional gera Code128, QR, DataMatrix e PDF417 e reconhece imagens em tons de cinza