Belirli bir dikdörtgen bölgedeki bir pdf dokümanı metinden ayıklamak zorundayım. İş akışı aşağıdaki gibidir. Öncelikle pdf bir jpg görüntüsüne dönüştürülür. Daha sonra kullanıcı, resmin üstündeki seçim dikdörtgenini çizer. O zaman bir şekilde pdf belgesindeki tüm metni bu seçim bölgesinden almam gerekiyor. Ücretsiz pdf libs C# kullanmak için erişilebilir ne önerileri?Belirli bir dikdörtgen bölge içindeki bir pdf dokümanıyla metin nasıl alınır?
cevap
Katılıyorum, OCR burada kullanım yaklaşımı değildir. Sınırlayıcı kutu koordinatları ile birlikte metni çıkarabilen bir PDF kitaplığına ihtiyacınız var.
QuickPDF, gerekli bilgileri 249 $ 'lık bir fiyat karşılığında alabilen ticari bir kütüphanedir (www.quickpdf.com). http://www.quickpdflibrary.com/help/quickpdf/DAExtractPageText.php, aradığınız işlevdir. Bu, tüm sayfa için metni ayıklar ve sonra metni seçtiğiniz dikdörtgenle sınırlamak için basit Nokta ve/veya Dikdörtgen işlevlerini kullanmanız gerekir.
iText'in bu araştırmaya dayanarak sahip olabileceğine inanmıyorum.
teşekkürler. – davidgale
Seçilen bölgedeki metni ayıklamak için PDF'yi bir JPEG görüntüsüne rasterleştirdiğinizde metin tanıma (OCR) kullanmanız önerilir. İşte .NET için bir OCR kitaplığı hakkında bir article. PDF'den metin ayıklamak için, bunun daha fazla veya daha az güvenilir bir şekilde nasıl elde edileceğini gösteren here's an article söz konusudur. Sorun, seçilen dikdörtgen içindeki metni kullanıcı tarafından nasıl tanıyacağınızdır.
this bir seçenek değil. % 100 doğruluğa ihtiyacım var. ocr% 100 doğru değildir. Tek bir PDF belgesinin yanı sıra birden çok dilde metin içerebilir. Bildiğim kadarıyla, bir seferde birden fazla dili okuyup desteklemeyen özgür ocr lib'leri yoktur. – davidgale
@davidgale, Bu tür problemler için özgür bir çözümün varlığından şüphe duyuyorum. İkinci seçeneğe sonra PDF'den metin çıkarma ve durumunuzda yeterince güvenilir olup olmadığına bakın. Yine de, IMHO'nun kolay bir iş olmayacağı seçim bölgesini anlamanız gerekecek ve bunu yapabilecek herhangi bir ücretsiz kütüphanenin farkında değilim. Cevabınız için –
(yasal uyarı - Ben onun PDF ürünlerinde Atalasoft için çalışmak) okumalısınız Atalasoft's PdfReader yapacağız. Ücretsiz değil, ama gayet iyi çalışıyor. Kod şöyle görünür:
using (PdfTextDocument doc = new PdfTextDocument(pathToFile)) {
PdfTextPage page = doc.GetPage(pageNumber);
string text = page.GetTextInBox(yourSelection);
}
mükemmel itextsharp kullanarak dikdörtgen koordinatlar temelinde pdf veri ayıklamak olacak bu kod
List<string> linestringlist = new List<string>();
PdfReader reader = new PdfReader(pdfFilename);
iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(coordinate1, coordinate2, coordinate3, coordinate4);
RenderFilter[] renderFilter = new RenderFilter[1];
renderFilter[0] = new RegionTextRenderFilter(rect);
ITextExtractionStrategy textExtractionStrategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), renderFilter);
string text = PdfTextExtractor.GetTextFromPage(reader, 1, textExtractionStrategy);
Hangi noktada 'linestringlist' kullanıyorsunuz? –
Burada 'linestringList' kullanımı nedir? –
- 1. Belirli bir PDF nasıl kullanılır IFilter
- 2. OpenGL 2B dikdörtgen olmayan bölge kırpımı
- 3. Gephi'de bölge orantılı düğümleri nasıl alınır?
- 4. C# 'de belirli bir sözcük içeren dizeden metin nasıl alınır?
- 5. Bir AWS Lambda fonksiyonu içindeki mevcut bölge nasıl belirlenebilir?
- 6. NSTableView'da seçilen bir satırın içindeki öğeler nasıl alınır?
- 7. AWS Route53 barındırılan bölge kimliği nasıl alınır?
- 8. Bir dizenin içindeki belirli dizgilerin sayısı
- 9. Belirli bir sınıfa belirli bir dizeyle başlayan öğeler nasıl alınır?
- 10. metin-madeni PDF dosyaları?
- 11. Belirli bir klasördeki C# kodundan bir PDF dosyasını kaydetmek istiyorsanız
- 12. Belirli bir dizide değer nasıl alınır? JavaScript'te?
- 13. Java'da dağınık bir dizeden metin nasıl alınır?
- 14. Seçilen kutu bir Metin Kutusuna nasıl alınır?
- 15. Java: Bir metin dosyası okurken, belirli bir dizeyi içeren belirli bir satırı nasıl okuyabilirim?
- 16. bir NSBezierPath üzerinden bir dikdörtgen kesin
- 17. Belirli bir içerik türü için varsayılan uzantı nasıl alınır?
- 18. CSS'de bir ul içindeki belirli bir madde işaretini nasıl kaldırırım?
- 19. Bir QTextEdit içindeki bir metin dizesi nasıl vurgulanır
- 20. SearchView'dan metin nasıl alınır?
- 21. Tüm zaman dizeleri vb.net'de bir metin kutusuna nasıl alınır
- 22. iOS'ta PDF metin seçimi iOS
- 23. C# içindeki onay kutusu listesinde nasıl bir metin kutusu eklenir?
- 24. Unix'teki büyük metin dosyasından belirli satırlar nasıl alınır?
- 25. UIView'de Belirli Bir Alt Görünümün sayısı nasıl alınır?
- 26. Bir ListView içindeki bir TextView'un metin rengini dinamik olarak değiştirin.
- 27. UIView'de bir dikdörtgen çizimi
- 28. Belirli bir hesapla ilişkili bir simge nasıl alınır AccountManager.getAccounts()
- 29. Belirli bir tarihten önce bir versiyonun SourceSafe projesi nasıl alınır?
- 30. Github'dan bir geminin belirli bir "taahhüdü" nasıl alınır?
https://stackoverflow.com/q/20606467/1271037 – dovid
Olası çoğaltması [iTextSharp ile belirtilen bir alanda bulunan metin oluşumları] (https://stackoverflow.com/questions/20606467/get-text-occurrences-contained-in-a-specified-area-with-itextsharp) – bfontaine