ApplyOCRTextLayerEx
OCR, 텍스트, 문서 편집
설명
공급자 중립 OCR JSON을 검증하고 별도 버퍼에서 보이지 않는 텍스트를 준비한 뒤 한 페이지에 소유 검색 가능 텍스트 레이어를 커밋합니다
구문
Delphi
Function TPDFlib.ApplyOCRTextLayerEx(Page: Integer; Const ResultJSON,
FontName: WideString; MinConfidence: Double; Options: Integer): Integer;
ActiveX
Function PDFlib::ApplyOCRTextLayerEx(Page As Long, ResultJSON As String,
FontName As String, MinConfidence As Double, Options As Long) As Long
DLL
int DLApplyOCRTextLayerEx(int InstanceID, int Page, const wchar_t* ResultJSON,
const wchar_t* FontName, double MinConfidence, int Options);
int DLApplyOCRTextLayerExA(int InstanceID, int Page, const char* ResultJSON,
const char* FontName, double MinConfidence, int Options);
매개변수
| Page | 1부터 시작하는 대상 페이지 |
|---|---|
| ResultJSON | ApplyOCRTextLayer가 설명하는 버전 1 스키마이며, 검증된 베이스라인 끝점과 계층 ID를 선택적으로 포함할 수 있습니다 |
| FontName | 포함 가능한 TrueType 글꼴 또는 설치된 대체 글꼴 선택용 빈 문자열 |
| MinConfidence | 0~1 범위의 포함 단어 신뢰도 임계값 |
| Options | 아래 레이어 정책의 비트 조합이며 0은 새 소유 레이어를 추가합니다 |
옵션
| 1 — PDF_OCR_SKIP_EXISTING_TEXT | 유지된 소유 아닌 콘텐츠 스트림이나 호출된 Form XObject에 보이지 않는 텍스트를 포함해 텍스트가 있으면 OCR을 적용하지 않고 성공을 반환합니다 |
|---|---|
| 2 — PDF_OCR_REPLACE_OWNED_LAYER | 정확한 라이브러리 OCR 마커를 가진 모든 기존 레이어를 교체하고, 소유 OCR 레이어가 없으면 추가합니다 |
| 3 | 소유 아닌 텍스트가 있는 페이지는 건너뛰되, 소유 레이어만 있는 OCR 페이지는 교체를 허용합니다 |
반환 값
| 1 | 레이어가 커밋되었거나 기존 텍스트 정책이 페이지를 건너뛰었거나 신뢰도 임계값을 넘은 단어가 없습니다 |
|---|---|
| 0 | 입력, 지오메트리, 옵션, 글꼴 인코딩, 레이어 쓰기 중 하나가 실패했습니다 |
비고
알 수 없는 옵션 비트는 거부됩니다
소스 좌표는 렌더링된 이미지의 왼쪽 위 원점과 선택한 렌더 박스를 사용하며, 페이지 회전과 0이 아닌 박스 오프셋은 원본 PDF 사용자 공간으로 되돌려 매핑됩니다
선택적 baseline 배열은 소스 단위의 [x1, y1, x2, y2]를 담아 텍스트 방향과 진행 방향을 정의합니다. 완전한 베이스라인은 0이 아닌 textAngle을 함께 가질 수 없습니다
모든 단어 경계와 베이스라인은 신뢰도 필터링 전에 검사되며, 신뢰도가 낮은 잘못된 단어 하나만으로도 작업이 실패합니다
글꼴 맞춤과 빠진 글리프 처리는 새 콘텐츠 레이어가 커밋되기 전에 끝나므로, 부분적으로 그려진 OCR 단어가 이전 레이어를 대체하는 일이 없습니다
/PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText, /PDFlibOCRVersion 1 세 필드를 정확히 가진 스트림만 소유 OCR 레이어입니다
교체는 새 contents 배열과 새 스트림을 만들면서 소유 아닌 콘텐츠와 형제 페이지가 쓰는 스트림은 유지합니다
OCR 레이어는 렌더링 모드 3과 격리된 그래픽 상태를 사용하며, 배치 시 단어 행렬을 적용하기 전에 유지된 콘텐츠의 현재 변환 행렬을 취소합니다
빈 승인 결과는 기존 레이어를 그대로 둡니다. empty, skipped, appended, replaced를 구분하려면 GetOCRDiagnosticsJSON을 사용하십시오
검색 가능성과 보이는 픽셀이 그대로인지는 문서를 저장하고 다시 읽은 뒤 검증합니다
참고 항목
OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError