ReplaceTextBlockCharSourceBytes
Texto, Extração, Fluxos de conteúdo, Edição de documentos
Descrição
Substitui o intervalo de bytes de origem codificados mapeado para um caractere extraído no documento selecionado
Sintaxe
Delphi
Function TPDFlib.ReplaceTextBlockCharSourceBytes(TextBlockListID, Index,
CharIndex: Integer; Const NewSource: AnsiString): Integer;Parâmetros
| TextBlockListID | Handle retornado por ExtractPageTextBlocks para o documento selecionado |
|---|---|
| Index | Índice do bloco de texto com base 1 |
| CharIndex | Posição de unidade de código UTF-16 com base 1 dentro do texto do bloco |
| NewSource | Bytes brutos de substituição na codificação de fonte PDF ativa, não texto Unicode |
Valores de retorno
| 1 | O intervalo de bytes mapeado foi substituído e sua camada de conteúdo de página foi reescrita |
|---|---|
| 0 | A localização é inválida, obsoleta ou somente leitura, ou a camada de conteúdo não pôde ser reescrita |
Códigos de erro
PDFLIB_ERROR_TEXT_LOCATION_INVALID | A lista, o índice, a localização ou a instrução de conteúdo é inválida |
|---|---|
PDFLIB_ERROR_TEXT_LOCATION_STALE | A camada de conteúdo da página de destino mudou desde a extração |
PDFLIB_ERROR_TEXT_LOCATION_READ_ONLY | O caractere é gerado, substituído por /ActualText, aninhado em um Form, transcodificado antes do mapeamento da fonte ou dividido entre camadas de conteúdo |
Observações
O método reescreve apenas a camada de conteúdo da página que contém a instrução e preserva strings Tj adjacentes, strings de array TJ e números de kerning
Duas impressões digitais independentes detectam conteúdo obsoleto antes de analisar e gravar, então um resultado de extração antigo não pode mirar silenciosamente bytes alterados
Reextraia o texto da página depois de cada substituição bem-sucedida, porque todas as localizações da lista anterior estão obsoletas
Caracteres expandidos de ligadura compartilham uma faixa de origem e devem ser tratados como um glifo de origem único
A página selecionada é restaurada depois de sucesso ou falha