ExtractTextFromPage ile Yer İmleri Ekleme
Metin içeriğine dayalı yer imleri eklediğinizde, Pages.Lines özelliği ile arama yaparken genellikle döndürülen metin karışık ya da sırasız gelmesi nedeniyle arama başlıkla eşleşmez. ExtractTextFromPage() ile sayfa metnini çıkarmak, her sayfayı mantık sırasına göre okur ve size karşı arama yapabileceğiniz güvenilir bir dize sağlar.
LinkAnnotation sınıfını kullanın. Tıklanabilir bağlantılar için yerleşik desteği vardır ve mevcut olduğunda önerilen yaklaşımdır.Pages.Lines, sayfadaki görsel görünüme göre metni yeniden yapılandırır. Metin doğrusal olmayan bir sırayla çizildiğinde, özel yazı tipleri veya kodlamalar kullanıldığında veya PDF, HTML'den veya karmaşık bir yerleşime sahip üçüncü taraf bir araçla oluşturulduğunda, bu bozulur. Sonuç, güvenilir bir şekilde arama yapamayacağınız eksik veya karışık bir metindir.
Çözüm
1. Her sayfayı ExtractTextFromPage() ile okuyun
Her sayfadan görsel rekonstrüksiyondan ziyade ham gömülü metni çekin. ExtractTextFromPage(), sayfa içeriğini mantıksal okuma sırasıyla döndürür ve bu, farklı PDF yapıları arasında başlık aramasını çok daha güvenilir hale getirir.
2. Her sayfayı döngüleyin ve her benzersiz başlığı yer imleyin
Hangi bölümde olursa olsun hiçbir bölüm kaçırılmaz ve her birinin yalnızca bir kez yer imlendiğini takip etmek için tüm sayfaları dolaşın. HashSet, yinelenmeleri temizlemenin temiz bir yoludur: "ARTICLE 1", "ARTICLE 2" gibi başlıklı bölümler içeren bir belgenin verilen her makale başına tek bir yer imini garanti eder.
Çıktı, dinamik bir HTML kaynağından veya karmaşık biçimlendirme taşıyan bir PDF olsa bile belirtilen her başlığa işaret eden bir dizi yer imidir.


