2011-08-05 24 views
7

Bir pdf dosyası içinde tabloları okumak istiyorum, içinde bir tablo ile bir pdf dosyası var, SDK C# içinde pdfs içinde tabloları tanımak ve hücre tarafından hücre okumak için bir mekanizma ?C# kullanarak bir PDF dosyasından tabloları okuyun #

Eğer pdfs içindeki tabloları tanıyan herhangi bir dll biliyorsanız, herhangi birini önerebilir misiniz. Ne aradığınız olabilir.

+2

Bu, Stackoverflow üzerinde daha uygun olabilir. –

+0

PDF dosyalarının açık bir metin olduğunu biliyorsunuz ve bu bilgiyi kendi çözümünüze ayırabilirsiniz? – CrazyDart

cevap

4

iTextPdf Onu kullanmadım ama çok güzel şeyler duydum. Artı açık kaynak ve ücretsiz (ticari olmayan kullanım için), her zaman güzel olan. IKVM.NET itibaren

+3

Sadece com-non kullanım için ücretsiz. Ticari bir üründe kullanmak istiyorsanız bunun için ödeme yapmanız gerekir. – CrazyDart

+0

@CrazyDart - Cevabınızı yorumunuzu yansıtacak şekilde güncelledim. – Jetti

2

PDFBox

.NET PDF belgeleri ayrıştırmak için başarıyla kullanılmaktadır. PDF'leri ayrıştırmak için PDFBox kullanma

  • http://www.codeproject.com/KB/string/pdf2text.aspx
    • oldukça kolaydır:

      onun vektörel gramer sadece basit yapılır PDF dosya biçiminde hayır "masa" kavramı, var
      private static string parseUsingPDFBox(string filename) 
      { 
          PDDocument doc = PDDocument.load(filename); 
          PDFTextStripper stripper = new PDFTextStripper(); 
          return stripper.getText(doc); 
      } 
      
    6

    yollar (örn. çizgiler, eğriler, font anahatları ...) ve örneklenmiş içerik (yani bitmap görüntüleri) ile ilgili ilkeller. Bununla birlikte, iyi bir sezgisel algoritma, sözde bir "tablo" temsilinin (yani, içerikle iç içe geçen çapraz çizgiler) zayıf mevcudiyetini saptayabilmektedir.

    0

    Bir proje için aynı şeylere ihtiyacım vardı. Benim süreçim biraz fazla yük oluyor ama oldukça iyi çalışıyor. Onu biraz daha iyi bir şekilde parlattığımda onu yayınlayacağım. İşte temel akış: pdf de koordinatlarıyla tablo elde etmek

  • kullanım Aforge blobcounter görüntüye pdf dönüştürmek için
  • kullanım Ghostscript'i metin dizeleri almak için
  • ithalat json dosyası json dönüştürmek

    • kullanım libpdf
    • kullanım hücre konumu ve büyüklüğü içerdiği hangi metin dizeleri belirlemek için tablolarına hücreler
    • grup hücreleri
  • +0

    Bu kesinlikle çok fazla yüke benziyor. İyi çalışıyor muydun? –

    1

    Ben bu eski bir soru olduğunu biliyorum ama birisi

    "Oldukça bariz" tanıtım ihtiyacı olabilir:
    PDF dosyaları grafik akışı ve metin (örneğin hatlar için) nesne bulunmaktadır. PDF oluşturulduğunda, insan gözü, aralarında çizgiler ve metin nedeniyle tabloların olduğunu anlar.
    1. hatları (umarım sadece dikey ve yatay çizgiler) okumak;: PDF okuyucu (İTextSharp) başlayarak

    (benim) çözümü
    yapmanız gerekenler
    2. satırlara katıl (bir tablonun bir satırı, örneğin hücre başına bir tane olabilir);
    3. Tabloların nerede olduğunu anlamak (bazen ihtiyaçlarınıza göre bazı hipotezler yapmak);
    4.isteğe bağlı olarak tabloların dışındaki metni (tüm metni saklamak için daha iyi) bulun ve paragraflara ekleyin; masanın

    hücrelerinin iç
    5. Metin ekle Zaten burada bir şey https://github.com/bubibubi/ExtractTablesFromPdf
    O iTextSharp GPL sürümünü kullanır bulabilirsiniz (benim pdf'lerden için çalışan) den başlamak yazılı bir şey gerekiyorsa.

    İlgili konular