SearchAndReplaceTextInContentEx

Extracción, Unicode, edición de contenido

Descripción

Reemplaza cada aparición no solapada de la consulta en el texto de página admitido, utilizando rangos de bytes exactos del origen y una asignación de fuente verificada

El método conserva el texto circundante, los ajustes numéricos TJ existentes y el ancla original del texto siguiente; un reemplazo vacío borra solo los caracteres coincidentes

Todas las coincidencias seleccionadas se planifican y reescriben antes de confirmar el contenido de la página; el texto no representable, las asignaciones de fuente incompletas o una ubicación de origen no admitida rechazan la petición sin reemplazar el texto seleccionado de ninguna página

Sintaxis

Delphi

Function TPDFlib.SearchAndReplaceTextInContentEx(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString; ReplacementFontID: Integer): Integer;

DLL

Function DLSearchAndReplaceTextInContentEx(InstanceID: Integer; Query: PWideChar; Replacement: PWideChar; Options: Integer; PageRange: PWideChar; ReplacementFontID: Integer): Integer; Stdcall;
Function DLSearchAndReplaceTextInContentExA(InstanceID: Integer; Query: PAnsiChar; Replacement: PAnsiChar; Options: Integer; PageRange: PAnsiChar; ReplacementFontID: Integer): Integer; Stdcall;

ActiveX

Function PDFlib::SearchAndReplaceTextInContentEx(Query: WideString; Replacement: WideString; Options: Integer; PageRange: WideString; ReplacementFontID: Integer): Integer;

Parámetros

ReplacementFontID 0 utiliza la fuente original; un valor positivo debe identificar una fuente del documento seleccionado con una codificación completa verificada

Una fuente de reemplazo solo se selecciona para los tramos de reemplazo y la fuente original se restaura antes de los sufijos intactos; este método no elige ni instala ninguna fuente automáticamente

Las Options de DLL y ActiveX utilizan los indicadores de búsqueda como bits 1, 2, 4, 8, 16, 32, 64 y 128 en el orden del enum; soAcrossLines es el bit 16 y no se admite aquí; los bits desconocidos son rechazados por estas fachadas

Las cadenas de entrada de la DLL A utilizan la configuración de conversión de ANSI a ancho de la instancia; utilice el punto de entrada ancho para pasar Unicode con independencia de esa configuración

Valores devueltos

Devuelve el número de coincidencias reemplazadas, o 0 si no hay coincidencias o la petición fue rechazada; consulte GetLastUnicodeReplacementDiagnostics para distinguir ambos resultados

LastErrorCode 535 informa de una entrada no válida o de límites de captura; 537 informa de una edición o codificación no admitidas; una búsqueda válida sin coincidencias informa de completado con replacedHits 0

Observaciones

Las asignaciones proceden de una CMap ToUnicode totalmente admitida o de una codificación de fuente simple verificada, incluidos los nombres de glifos Differences admitidos; no se utiliza ninguna conversión de página de códigos del sistema ni codificación de glifos adivinada

Las fuentes simples deben suministrar Widths, FirstChar y LastChar de PDF válidos, o utilizar un nombre exacto de las catorce fuentes Type1 estándar sin Widths; el recurso a fuentes del sistema y el emparejamiento flexible de nombres no autorizan un avance exacto

La herencia con UseCMap con nombre, las asignaciones sin resolver, los avances de fuentes Type3, la escritura vertical, el texto de Form anidado, los caracteres sintéticos, los reemplazos ActualText, las cadenas transcodificadas, las coincidencias entre capas y los clústeres de ligaduras parciales se notifican como no admitidos

Un clúster de ligadura completo se puede reemplazar cuando sus bytes originales y su asignación Unicode están verificados; los prefijos y sufijos permanecen en su fuente original

Las opciones de búsqueda conservan su significado existente, incluidas las restricciones de mayúsculas y minúsculas, palabra completa, comodín, diacríticos, equivalencia canónica y grafemas; soAcrossLines y las llamadas dentro de un ámbito de API abierto se rechazan

La planificación admite hasta 4096 coincidencias; las instantáneas de origen capturadas se limitan a 64 MiB por flujo y 512 MiB en total, con 64 MiB de registros de ubicación de origen capturados; el analizador de asignaciones de fuentes aplica también límites acotados de tokens y de espacios de código, con totales de transacción de 262144 asignaciones y 8 millones de unidades UTF-16 de destino

Estos límites restringen los datos de captura y planificación retenidos; la carga y renderización existentes de páginas tienen sus propias asignaciones, de modo que no constituyen una garantía del uso de memoria máximo absoluto

Los flujos de contenido compartidos y los diccionarios de recursos se copian para las páginas seleccionadas; la selección del documento se restaura y las listas de bloques de texto obsoletas deben extraerse de nuevo después de una edición con éxito

Esta operación cambia el contenido de las páginas activas y no es una API de borrado seguro: los objetos desvinculados o las revisiones incrementales anteriores pueden conservar los bytes originales

Véase también

SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText