ExtractTextFromPage로 북마크 추가
텍스트 콘텐츠를 기반으로 북마크를 추가할 때는 반환된 텍스트가 뒤죽박죽되거나 순서가 어긋나므로 제목 기반 검색이 절대 일치하지 않아서 Pages.Lines 속성으로 검색하면 실패할 수 있습니다. ExtractTextFromPage()을 사용하여 페이지 텍스트를 추출하면 논리적 순서로 각 페이지를 읽으며, 검색에 신뢰할 수 있는 문자열을 제공합니다.
2026.5.x 및 이후 버전에서는 대신 LinkAnnotation 클래스를 사용하세요. (특정 페이지와 위치로 이동하는 클릭 가능 링크를 기본적으로 지원하며, 사용 가능한 경우 권장되는 접근 방식입니다.)
Pages.Lines는 페이지에 시각적으로 나타나는 방식으로 텍스트를 재구성합니다. 텍스트가 비선형 순서로 그려지거나, 사용자 정의 폰트나 인코딩이 사용되거나, PDF가 HTML이나 복잡한 레이아웃을 가진 타사 도구에서 생성된 경우에는 문제가 됩니다. 결과는 불완전하거나 섞인 텍스트라서 신뢰할 수 있게 검색할 수 없습니다.
해결책
1. ExtractTextFromPage()로 각 페이지 읽기
시각적 재구성이 아닌 각 페이지의 원래 내장 텍스트를 가져옵니다. ExtractTextFromPage()는 페이지 내용을 논리적 읽기 순서대로 반환하므로, 다양한 PDF 구조 전반에 걸쳐 헤더 검색을 훨씬 더 신뢰할 수 있게 만듭니다.
2. 모든 페이지를 반복하며 각 고유 헤더 즐겨찾기 추가
모든 페이지를 탐색하여 어디에 있든지 섹션이 누락되지 않도록 하고 이미 본 헤더를 추적하여 각 헤더가 한 번만 즐겨찾기에 추가되도록 합니다. HashSet은 중복 제거를 위한 깔끔한 방법입니다: "ARTICLE 1", "ARTICLE 2"라는 제목이 있는 섹션이 있는 문서를 보면 각 기사에 대해 단일 북마크를 보장합니다.
출력은 PDF가 동적 HTML 소스에서 생성되었거나 복잡한 포맷임에도 불구하고 각 지시된 제목을 가리키는 북마크 세트입니다.


