ayıklanıyor metin aslında belge türü ve ne onunla yapmak niyetinde bağlı olarak çok kolay olabilir. Metin belgede metin biçiminde değilse ve bir görüntü değilse ve konum veya formatla ilgilenmiyorsanız, bu oldukça basittir.
var doc = PdfReader.Open(docPath);
string pageText = doc.Pages[0].Contents.Elements.GetDictionary(0).Stream.ToString();
doc.Pages.Count
size toplam sayfa sayısını verir ve indeksi doc.Pages
dizi üzerinden her birine ulaşmak: Bu kod ile çalışıyorum PDF'leri ilk sayfasının metnin tüm alır. arayüzleri de uygulanmadı gibi ben burada foreach
ve Linq kullanarak önermiyoruz. GetDictionary
geçirilen endeks hangi PDF belgesi elemanı için - bu belgelerin nasıl üretildiği göre değişebilir. Aradığınız metni almazsanız, tüm öğeler arasında geçiş yapmayı deneyin.
Bunun oluşturduğu metin çeşitli PDF biçimlendirme kodlarıyla dolu olacaktır. Yapmanız gereken tek şey dizeleri ayıklamak ise, Regex veya herhangi bir uygun dize arama kodu kullanarak istediğinizi bulabilirsiniz. Biçimlendirme veya konumlandırma ile bir şey yapmanız gerekiyorsa, o zaman iyi şanslar - söyleyebildiğim kadar, buna ihtiyacınız olacak.
Bu örneğe baktım, ancak ihtiyacım olan tüm parçaların olup olmadığından emin değilim. Belgedeki "resimler" için görünüyor. Ayrıca görüntü formundaki metnin oluşturulmasını da korumam gerekiyor, sadece resmin arkasındaki metni almak istemiyorum.Başka bir deyişle, çıktının girdiye tam olarak benzemesini istiyorum ama metni çıktıdan kaydetme özelliğini devre dışı bırakmak istiyorum. –
Şimdi anladığım kadarıyla, pdf'deki resimlerden ve düz metinden metin okumak ister misiniz? Ve onları nasıl bir araya getirelim? – Mariusz
Giriş PDF, görüntünün arkasında yalnızca resim veya resim + metin olabilir. Bu yüzden girişi almam ve sadece görüntüden PDF yapmam gerekiyor. Başka bir deyişle, giriş PDF'sinin tüm metin olmayan bileşenlerini çıktı PDF'sine vermek ve metin bileşenlerini dışa aktarmak istemiyorum. –