2012-03-30 13 views
16

W zeszłym roku zrobiłem aplikację w Javie przy użyciu PDFBox, aby uzyskać tekst źródłowy w niektórych plikach PDF i muszę teraz przenieść tę aplikację do C++.Czy istnieje biblioteka C++ do wyodrębniania tekstu z pliku PDF, takiego jak PDFBox dla Java?

Chciałem wiedzieć, jaka była najlepsza alternatywa C++, aby osiągnąć to, czego potrzebuję.

dam przykład w przypadku Pomaga:

Większość plików będzie wyglądać następująco: http://www.jumbala.net/backup/league.pdf

Z PDFBox za pomocą tego pliku, każdy wiersz przeczytać na stronie 2 i większość od strony 3 będzie wyprowadza wszystkie dane linii, oddzielone spacją zamiast utrzymywać ją w siatce takiej, jaka jest teraz.

Więc pierwsze istotne linia na stronie 2 będzie wyglądać następująco:

FB 847 - Tremblay, Gérard 179,63 56 16167 90 268 s27 p3 669 s14 199 223 193 615 

czy coś takiego, ponieważ istnieje niewielkie zmiany w kolejności ich występowania, ale nie dbam o to jak długo podobne linie wyprowadzają to samo, ponieważ po prostu analizuję je i umieszczam wartości, których potrzebuję, w różnych zmiennych.

Więc, wiedząc o tym wszystkim, czy istnieje biblioteka, której mogę użyć w programie C++, aby uzyskać podobne wyniki?

Edit: Po obejrzeniu linku sacredFaith pod adresem http://www.codeproject.com/Articles/7056/Code-to-extract-plain-text-from-a-PDF-file i próbuje go Dostaję dziwne wyjście jak takie do pliku np wspomniałem wcześniej:

http://www.jumbala.net/backup/league.pdf.txt

Części I rzeczywiście potrzebne są w dziwnych postaciach na początku. Korzystanie z programu Adobe Acrobat Reader X i za pomocą Zapisz jako ... Tekst (dostępny), pojawia się następujący wynik:

http://www.jumbala.net/backup/league_good.pdf.txt

co w przybliżeniu co mam w Javie przy użyciu PDFBox i co chcę dostać jako wyjście w C++.

+0

Może to pomoże http://stackoverflowflow.com/questions/3784554/creating-a-pdf-reader-in-c – grifos

+0

@grifos Spojrzałem na niego i mogę przyjrzeć się temu bardziej szczegółowo później, ale wolałbym mieć już utworzoną bibliotekę, ponieważ wolałbym nie czytać całego dokumentu specyfikacji PDF. Świetny link, który wysłałeś, ale może się przydać później, dzięki! –

+0

W linku podchodzą również do biblioteki PoDoFo w języku C++, która pozwala analizować pdf i wyodrębniać informacje. – grifos

Odpowiedz

10

Xpdf jest C++ aplikacja/biblioteka, która zawiera narzędzia, aby wyodrębnić tekst z pliku PDF.

+5

Właśnie ściągnąłem prekompilowaną wersję Xpdf, a .exe z wiersza poleceń działa świetnie, dostaję dane wyjściowe, które chcę (i nawet lepiej niż używając PDFBox, jeśli używam opcji -layout). Mam jednak pytanie ... Czy istnieje miejsce, w którym mogę zobaczyć, jak wywoływać metody w kodzie, zamiast korzystać z .exe? Będę wyglądał sam, ale ponieważ wydaje się, że znasz bibliotekę, byłoby jeszcze lepiej, gdybyś mógł mi powiedzieć, gdzie zacząć szukać. Wielkie dzięki! –

+0

Zespół XPDF udostępnia komercyjne wersje swoich bibliotek wraz z opcjonalnym wsparciem na stronie http://www.glyphandcog.com/XpdfText.html –

2

Nigdy nie stosować następujące, ale po pewnym Googling znalazłem to:

http://www.codeproject.com/Articles/7056/Code-to-extract-plain-text-from-a-PDF-file

+0

Spójrz na to, dzięki! Zaznaczę twoją odpowiedź jako zaakceptowaną, jeśli uda mi się ją uruchomić tak, jak chcę! –

+0

Niestety, po prostu wypróbowałem i nie działa tak, jak chcę (niektóre fragmenty tekstu są w porządku, ale większość dokumentu składa się z dziwnych symboli) –

+1

Przepraszam za tego człowieka! Wygląda na to, że znalazłeś to, czego szukałeś dzięki Charlesowi! – sacredfaith

3

Od tego właśnie szukasz: PoDoFo to biblioteka C++ do analizowania/odczytu/modyfikacji lub tworzenia plików pdf. Biblioteka jest wieloplatformowa.

Powiązane problemy