2011-08-05 23 views
7

Chcę czytać tabele wewnątrz pliku pdf, mam plik pdf z tabelą wewnątrz, który SDK jest używany w C# do rozpoznawania tabel w plikach pdf i jakiś mechanizm do odczytu komórki przez komórkę ?Odczytaj tabele z pliku PDF za pomocą C#

Czy ktoś może zasugerować, jeśli znasz jakieś biblioteki DLL, które rozpoznają tabele wewnątrz plików PDF.

+2

To może być lepsze dopasowanie w Stackoverflow. –

+0

Wiesz, że pliki PDF są przejrzystym tekstem i możesz sparsować te informacje? – CrazyDart

Odpowiedz

4

iTextPdf może być tym, czego szukasz. Nie używałem go, ale słyszałem bardzo dobre rzeczy. Plus jest open source i bezpłatny (do użytku niekomercyjnego), co zawsze jest miłe.

+3

Jest to jedyny darmowy do użycia w trybie innym niż com. Musisz zapłacić za to, jeśli chcesz go użyć w komercyjnym produkcie. – CrazyDart

+0

@CrazyDart - zaktualizowałem swoją odpowiedź, aby odzwierciedlić Twój komentarz. – Jetti

2

PDFBox

Od IKVM.NET został wykorzystany z powodzeniem do analizowania dokumentów PDF w .NET.

Używanie PDFBox do analizowania plików PDF jest dość proste:

private static string parseUsingPDFBox(string filename) 
{ 
    PDDocument doc = PDDocument.load(filename); 
    PDFTextStripper stripper = new PDFTextStripper(); 
    return stripper.getText(doc); 
} 
6

Nie ma „stół” w formacie PDF, jak sama wektorowe gramatyki tworzył prostych prymitywy zajmujące się ścieżkami (tj. liniami, krzywymi, konturami czcionek ...) i próbkowanymi treściami (np. obrazy bitmapowe).

Jednak dobry heurystyczny algorytm może wykryć słabą obecność tak zwanej reprezentacji "tabeli" (tj., Typowo, przecinanie linii przeplecionych z zawartością).

0

Potrzebowałem tego samego dla projektu. Mój proces jest trochę zbyteczny, ale działa całkiem dobrze. Kiedy go trochę poprawię, opublikuję go. Herezje przepływ podstawowy:

  • użycie libpdf do konwersji PDF do formatu JSON
  • import pliku json, aby uzyskać ciągi tekstowe z ich współrzędnymi
  • użytkowania Ghostscript do konwersji PDF do obrazu
  • użycie Aforge blobcounter dostać stolik komórki
  • komórki grupowe do tabel
  • lokalizacyjnych wykorzystanie komórek i wielkości w celu określenia, które struny tekst zawiera
+0

To na pewno wydaje się dużo narzutów. Czy to działa dobrze? –

1

wiem, że jest to stara sprawa, ale ktoś mógłby to potrzebne

„oczywiste” Introduction:
Pliki PDF są strumień grafiki obiekt (na przykład linii) i tekstu. Gdy plik PDF jest renderowany, ludzkie oko rozumie, że istnieją tabele z powodu linii i tekstu między nimi.

Rozwiązanie (mój)
Począwszy od czytnika PDF (iTextSharp) należy: 1.
czytać wiersze (oby tylko pionowych i poziomych linii);
2. Dołącz linie (linia tabeli może składać się z kilku linii, na przykład jednej na komórkę);
3. zrozumieć, gdzie są tabele (czasami opierając się na pewnych potrzebach);
4.opcjonalnie znajdź tekst poza tabelami (lepiej zachować cały tekst) i wstaw go w akapitach;
5. Wstaw tekst wewnątrz komórek tabeli

Jeśli potrzebujesz czegoś już napisany, aby rozpocząć od (praca dla moich plików PDF) można znaleźć tu coś https://github.com/bubibubi/ExtractTablesFromPdf
Wykorzystuje wersję GPL przez iTextSharp.

Powiązane problemy