Wyodrębnianie tekstu z pliku PDF

W jednym z ostatnich projektów musiałem zmierzyć się z zagadnieniem wyodrębniania tekstu z załączanych plików PDF w celu możliwości ich późniejszego przeszukiwania. Pomocne okazało się narzędzie Apache Tika, którego użycie w aplikacji PHP zaprezentuję w tym wpisie.

Apache Tika to zestaw narzędzi do wykrywania i wyodrębniania metadanych i zawartości tekstowej z różnych typów dokumentów. Pełną listę obsługiwanych formatów możemy znaleźć tutaj. Narzędzie to zostało napisane w Javie, zatem aby móc go użyć w aplikacjach PHP musimy mieć dostęp do serwera z zainstalowanym środowiskiem JRE oraz możliwość wykonywania poleceń systemu operacyjnego przy użyciu np. funkcji exec. Odnośniki do pobrania najnowszej wersji znajdzie na tej stronie.

Użycie Apache Tika do wyodrębnienia tekstu z dokumentu PDF sprowadza się do pobrania pliku JAR oraz wywołania polecenia:

java -jar tika-app-1.1.jar -t -eUTF-8 plik.pdf > plik.txt

Użycie opcji -t powoduje wyodrębnienie z zawartości tekstowej z pliku plik.pdf. Opcja -eUTF-8 ustala kodowanie danych wyjściowych. Po wykonaniu tego polecenia w pliku plik.txt znajdzie się tekst wyodrębniony z pliku plik.pdf.

Przykład użycia Apache Tika z użyciem PHP:

exec('java -jar tika-app-1.1.jar -t -eUTF-8 plik.pdf > plik.txt');
$text_content = file_get_contents('plik.txt');

Po uruchomieniu skryptu w zmiennej $text_content znajdzie się tekst wyodrębniony z pliku PDF. Teraz możemy np. zapisać wyodrębniony tekst do bazy danych.

Więcej informacji na temat narzędzie Apache Tika wraz z listą opcji znajdziemy na stronie domowej projektu: http://tika.apache.org/

Ten wpis został opublikowany w kategorii PHP, Programowanie i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *