Text

Text

이 페이지에서는 페이지에서 텍스트를 다시 읽어오는 방법을 세 가지 상세 수준으로 다룹니다: 일반 텍스트, 구조화된 레이아웃 블록, 그리고 개별 위치 지정 글리프. 페이지에 텍스트를 쓰는 방법은, 다음을 참조하십시오 Core API and Core API.


일반 텍스트 추출

Page.GetText()은(는) 페이지의 조합된 일반 텍스트를 읽기 순서대로 반환합니다. 이는 페이지에 실제로 포함된 텍스트를 확인하는 가장 간단한 방법이며, 예를 들어 필드를 플래튼하거나 레드랙션을 적용한 후에 유용합니다.

const page = doc.Pages[0];
console.log(page.GetText().includes('Internal memo'));

구조화된 텍스트

Page.GetStructuredText()은(는) 기준선에 따라 라인으로, 수직 간격 및 왼쪽 가장자리 정렬에 따라 문단과 유사한 블록으로 그룹화된 위치 지정 텍스트를 추출하여 TextBlock[]을 반환합니다 — 평평한 문자열이 아니라 레이아웃이 필요할 때 유용합니다.


글리프 레벨 내부 검사

visitContent(doc, page, visitor)은 페이지의 콘텐츠 스트림을 순회합니다 — Form XObject까지 포함하여 — 그리고 찾은 각 글리프, 이미지, 경로에 대해 visitor의 해당 핸들러를 호출합니다. glyph 핸들러는 GlyphEvent을 받습니다: 글리프의 text, 그 디바이스 공간 quad, fontSize, color, 그리고 mcid(해당하는 경우 이를 둘러싼 마크드 콘텐츠 요소)와 artifact( /Artifact 범위 안에서 그려질 때 true)와 같은 출처 필드입니다.

import { visitContent } from '@asposefoss/pdf';

let glyphCount = 0;
visitContent(doc, page, {
  glyph: (e) => {
    glyphCount++;
    if (e.artifact) return;       // skip decorative content
    console.log(e.text, e.quad, e.color);
  },
});
console.log('glyphs drawn:', glyphCount);

팁 및 모범 사례

  • Page.GetText()을(를) 빠른 존재/부재 확인에 사용하고; 각 글리프의 정확한 위치, 글꼴 크기 또는 색상이 필요할 때는 visitContent()을(를) glyph 핸들러와 함께 사용합니다.
  • 실제 콘텐츠가 아닌 /Artifact으로 표시된 장식 콘텐츠(페이지 가구, 배경)를 건너뛰려면 GlyphEvent.artifact을(를) 확인하십시오.
  • GlyphEvent.mcid 문서에 태그가 지정된 경우 글리프를 해당 포함 구조 요소에 연결합니다 — 다음과 결합하여 Structure 글리프에서 논리적 요소로 이동합니다.
  • Page.GetStructuredText()은 글리프를 블록으로 그룹화합니다; GetStructuredText()가 제공하지 않는 글리프별 세부 정보가 필요할 때만 직접 visitContent()을(를) 사용하십시오.

일반적인 문제

문제원인해결 방법
Page.GetText()에 페이지에 눈에 보이는 텍스트가 누락되었습니다텍스트가 실제 글리프 표시 연산자 대신 벡터 경로나 이미지로 그려졌습니다.visitContent()를 path / image 핸들러와 함께 사용하여 실제로 어떤 콘텐츠 유형이 그렸는지 확인하십시오.
visitContent()의 glyph 핸들러가 장식용 배경 텍스트에 대해 작동합니다.GlyphEvent.artifact가 확인되지 않았습니다.e.artifact가 true인 이벤트를 건너뛰세요.
추출된 텍스트가 시각적 읽기 순서와 맞지 않습니다.일반 GetText() 어셈블리는 다중 열 레이아웃을 재구성하지 못합니다.Page.GetStructuredText()를 사용하십시오, 이는 텍스트를 레이아웃 인식 블록으로 그룹화합니다

FAQ

GetText와 GetStructuredText의 차이점은 무엇입니까?

GetText()은 페이지에 조합된 텍스트의 평평한 문자열 하나를 반환합니다. GetStructuredText()은 TextBlock[]을 반환합니다 — 기준선과 레이아웃에 따라 줄 및 단락과 같은 블록으로 그룹화된 텍스트이며, 위치가 중요할 때 유용합니다.

각 문자에 대한 정확한 위치와 글꼴 크기를 어떻게 얻을 수 있나요?

Call visitContent(doc, page, { glyph: (e) => ... }). 각 GlyphEvent은 글리프의 text, 디바이스 좌표계 quad, fontSize, color, 그리고 기준선 angle을 포함합니다.

텍스트 조각이 실제 콘텐츠인지 장식인지 구분할 수 있나요?

예 — GlyphEvent.artifact은 글리프가 /Artifact 마크된 콘텐츠 범위 안에서 그려졌을 때 true입니다. 이는 Document.AutoTag()이 태그를 결정할 때 사용하는 동일한 구분입니다.

텍스트 추출이 Form XObject 내부의 콘텐츠를 볼 수 있나요?

예 — visitContent()은 탐색 과정에서 Form XObject로 들어가므로 재사용된 폼을 통해 그려진 글리프도 여전히 방문됩니다.


API Reference 요약

클래스/메서드설명
Page.GetText()페이지가 조합된 일반 텍스트, 읽는 순서대로
Page.GetStructuredText()텍스트를 줄 및 단락 유사 블록으로 그룹화 (TextBlock[])
visitContent()페이지의 콘텐츠를 순회하면서 글리프/이미지/경로 이벤트를 출처와 함께 발생시킵니다
GlyphEvent하나의 위치 지정 글리프: text, quad, fontSize, color, mcid, artifact

참조

 한국어