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