메인 콘텐츠로 건너뛰기
ABBYY FineReader Engine에서 처리하는 텍스트는 일반 텍스트입니다. 즉, 프레임, 표 등은 포함되지 않습니다. 모든 문자는 유니코드입니다. 일반 텍스트에는 다음과 같은 특수 문자가 포함될 수 있습니다.
  • 0x2028 — 줄 바꿈 기호
  • 0x2029 — 단락 구분 기호
  • 0xFFFC — 객체 대체 문자(텍스트 안에 포함된 그림을 나타냄)
  • 0x0009 — 탭
  • 0x005E — 캐럿(^), ABBYY FineReader Engine에서 인식할 수 없는 문자를 대체하는 데 사용
  • 0x00AC — 소프트 하이픈
텍스트의 속성과 서식은 해당 객체와 속성을 통해 확인할 수 있습니다. 문서의 인식된 텍스트는 페이지 Layout(IFRPage::Layout 속성)을 통해 액세스할 수 있습니다.

Layout 내 인식된 텍스트

인식이 완료되면 텍스트는 텍스트, 표, 바코드 블록에만 포함됩니다. 다른 블록에는 텍스트가 없습니다. Text 객체는 텍스트 블록과 표 블록의 인식된 텍스트에 액세스할 수 있게 해 주며, BarcodeText 객체는 바코드 블록의 텍스트에 액세스할 수 있게 해 줍니다. 블록의 인식된 텍스트에 액세스하려면 다음과 같이 하십시오.
  • 텍스트 블록의 경우
ITextBlock::Text 속성을 사용합니다. IBarcodeBlock::BarcodeText 또는 IBarcodeBlock::Text 속성을 사용하여 바코드 텍스트를 가져옵니다. 첫 번째 속성은 인식된 바코드의 문자(BarcodeSymbol 객체) 컬렉션인 BarcodeText 객체를 반환합니다. 두 번째 속성은 바코드 텍스트를 단일 string으로 반환합니다.

Text 및 단락

Text 객체에는 단락 컬렉션이 포함되어 있습니다. 이 컬렉션은 Text 객체의 Paragraphs 속성을 통해 액세스할 수 있는 Paragraphs 객체입니다. Paragraphs 객체는 Paragraph 객체의 컬렉션입니다. 인식된 텍스트는 IParagraph::Text 속성을 통해 액세스할 수 있습니다. 이 속성의 텍스트는 Unicode string입니다. 또한 단락 전체에 적용되는 속성(예: 정렬 및 들여쓰기 정보)을 포함하는 ParagraphParams 객체도 있습니다. 이 객체는 IParagraph::ExtendedParams 속성을 통해 액세스할 수 있습니다. IParagraph::Lines 속성은 ParagraphLines 객체로 표현되는 단락 줄 컬렉션에 대한 액세스를 제공합니다. 이 객체는 다시 ParagraphLine 객체의 컬렉션입니다. 후자는 개별 단락 줄의 기하학적 위치 정보를 제공하므로, 텍스트가 줄로 나뉜 상태를 나타냅니다. IParagraph::Words 속성은 Words 객체로 표현되는 단락 단어 컬렉션에 대한 액세스를 제공합니다. 이 객체는 Word 객체의 컬렉션입니다. Word 객체를 통해 단락의 개별 단어 하나에 액세스할 수 있습니다.

문자 속성

텍스트의 각 문자는 각각 고유한 매개변수를 가집니다. 이러한 매개변수에는 CharParams 객체를 통해 액세스할 수 있습니다. CharParams 객체에는 기하학적 매개변수, 글꼴, 언어 등 다양한 문자 속성이 포함됩니다. CharParams 객체에는 문자 자체도 SelectedCharacterRecognitionVariant 속성에 포함되어 있습니다. 문서의 모든 문자에 대한 정보를 가져오는 권장 방법은 아래의 일반 텍스트도 참조하십시오. 텍스트에서 문자의 위치는 해당 단락의 인덱스와 그 단락 내에서의 문자 인덱스로 정의됩니다. 텍스트에는 이른바 “특수 위치”도 있습니다. 즉, 단락 인덱스는 전체 단락 수이고 문자 인덱스는 0입니다. 이는 텍스트 끝의 삽입 지점을 의미합니다. Text 객체의 일부 method는 이 특수 위치를 사용해 작업을 수행합니다. 예를 들어, 여기에 다른 텍스트 조각이나 그림을 삽입할 수 있습니다. CharParams 객체의 SelectedCharacterRecognitionVariant 속성을 사용하면 CharacterRecognitionVariant 객체로 표현되는, 단일 문자에만 해당하는 확장 속성 집합에 액세스할 수 있습니다. 이러한 속성은 인식 과정에서 설정되며 해당 문자와 관련된 일부 내부 인식 정보를 제공합니다. 특히 이 객체는 문자 인식의 확실성, 해당 문자가 세리프 글꼴일 확률 등에 대한 더 정확한 정보를 제공합니다.

텍스트 편집

Text 객체의 속성을 변경해 볼 수는 있지만, 텍스트를 외부 형식으로 내보낼 경우에는 매우 신중해야 합니다. ABBYY FineReader Engine의 내보내기 메서드는 인식된 텍스트가 인식 결과이며, 사용자는 인식 오류만 수정하고 그 외에는 아무런 변경도 하지 않았다고 가정합니다. Text 그룹의 객체에는 상호 의존적인 속성이 많이 있으며, 이런 속성 중 하나를 변경하면 다른 속성도 함께 변경해야 하는 경우가 많습니다. 따라서 인식된 텍스트의 속성을 변경하면 때때로 예측할 수 없는 내보내기 결과가 발생할 수 있습니다.

일반 텍스트

특수한 “일반 텍스트” 형식으로 제공되는 PlainText 객체를 사용하면 문서나 페이지의 전체 인식 텍스트에도 액세스할 수 있습니다. 이 객체는 인식된 텍스트 기호와 그 인식 신뢰도, 그리고 원본 이미지 대비 상대적 위치 정보만 제공합니다. 하지만 대용량 문서의 모든 문자에 대해 이러한 속성에 액세스해야 하는 경우에는 유용할 수 있습니다. Windows용 FRE에서는 모든 문자 데이터를 한 번에 받아 애플리케이션 측에서 순회 처리할 수 있도록 하는 GetCharacterData method를 사용합니다. 모든 텍스트 블록을 순회하면 시간이 훨씬 더 많이 걸리며, 특히 애플리케이션이 DCOM을 통해 동작하는 경우에는 더욱 그렇습니다.

참고 항목

Layout과 블록 다루기 언어 다루기 투표 알고리즘 사용하기