SearchAndReplaceTextInContentEx

추출, Unicode, 콘텐츠 편집

설명

지원되는 페이지 텍스트에서 겹치지 않는 모든 질의 항목을 정확한 소스 바이트 범위와 검증된 글꼴 매핑으로 교체합니다

이 메서드는 주변 텍스트, 기존 TJ 숫자 조정, 원본 뒤따르는 텍스트 앵커를 보존하며, 빈 교체 문자열은 일치한 문자만 삭제합니다

선택된 모든 히트는 페이지 콘텐츠가 커밋되기 전에 계획되고 다시 쓰입니다. 표현할 수 없는 텍스트, 불완전한 글꼴 매핑, 지원되지 않는 소스 위치는 선택한 페이지 텍스트를 하나도 바꾸지 않고 요청을 거부합니다

구문

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;

매개변수

ReplacementFontID가 0이면 원본 글꼴을 쓰고, 양수는 완전히 검증된 인코딩을 갖춘 선택 문서의 글꼴을 식별해야 합니다

대체 글꼴은 교체 구간에만 선택되고 만지지 않은 접미사 앞에서 원본 글꼴이 복원됩니다. 이 메서드가 글꼴을 자동으로 고르거나 설치하지는 않습니다

DLL과 ActiveX의 Options는 열거형 순서대로 비트 1, 2, 4, 8, 16, 32, 64, 128을 검색 플래그로 씁니다. soAcrossLines는 비트 16이며 여기서는 지원되지 않고, 알 수 없는 비트는 이 파사드들이 거부합니다

DLL A 입력 문자열은 인스턴스 ANSI-to-wide 변환 구성을 사용합니다. 이 구성과 무관하게 Unicode를 넘기려면 와이드 진입점을 사용하십시오

반환 값

교체된 일치 항목 수를 반환하고, 일치가 없거나 요청이 거부되면 0을 반환합니다. 두 결과를 구분하려면 GetLastUnicodeReplacementDiagnostics를 확인하십시오

LastErrorCode 535는 잘못된 입력이나 캡처 한도를 보고하고, 537은 지원되지 않는 편집이나 인코딩을 보고합니다. 일치가 없는 유효한 검색은 replacedHits 0으로 completed를 보고합니다

비고

매핑은 지원되는 Differences 글리프 이름을 포함해 완전히 지원되는 ToUnicode CMap이나 검증된 단순 글꼴 인코딩에서 나옵니다. 시스템 코드 페이지 변환이나 추측한 글리프 인코딩은 쓰지 않습니다

단순 글꼴은 유효한 PDF Widths, FirstChar, LastChar를 제공하거나 Widths 없이 정확한 표준 14종 Type1 글꼴 이름을 써야 합니다. 시스템 글꼴 폴백과 느슨한 이름 일치는 정확한 전진 폭을 보증하지 않습니다

이름 있는 UseCMap 상속, 해석되지 않은 매핑, Type3 글꼴 전진 폭, 세로 쓰기, 중첩된 Form 텍스트, 합성 문자, ActualText 교체, 트랜스코딩된 문자열, 레이어에 걸친 일치, 부분 합자 클러스터는 unsupported로 보고됩니다

원본 바이트와 Unicode 매핑이 검증되면 완전한 합자 클러스터를 교체할 수 있으며, 접두사와 접미사는 원본 글꼴에 남습니다

검색 옵션은 대소문자, 전체 단어, 와일드카드, 발음 구별 기호, 정준 동등성, 그래핌 제약을 포함해 기존 의미를 유지합니다. soAcrossLines와 열린 API 범위 안에서의 호출은 거부됩니다

계획은 최대 4096개 일치를 지원합니다. 캡처한 소스 스냅샷은 스트림당 64 MiB, 총 512 MiB, 소스 위치 기록 64 MiB로 제한되고, 글꼴 매핑 파서도 토큰과 코드 공간 한도를 적용하며 트랜잭션 총계는 262144개 매핑과 800만 UTF-16 대상 유닛입니다

이 한도들은 유지되는 캡처와 계획 데이터를 제한할 뿐입니다. 기존 페이지 로딩과 렌더링에는 자체 할당이 있으므로 절대적인 최대 메모리 사용량을 보장하지는 않습니다

공유 콘텐츠 스트림과 리소스 딕셔너리는 선택한 페이지마다 복사됩니다. 성공적인 편집 후에는 문서 선택이 복원되고 낡은 텍스트 블록 목록은 다시 추출해야 합니다

이 작업은 활성 페이지 콘텐츠를 바꾸며 보안 삭제 API가 아닙니다. 떨어져 나간 객체나 이전 증분 리비전은 원본 바이트를 유지할 수 있습니다

참고 항목

SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText