Prawdopodobnie nie jeden z Was musiał wyciągnąć tekst z pliku pdf.. Jak sobie z tym poradziliście ?
Ja aktualnie wyciągam tekst przy użyciu biblioteki pdfbox
tylko wygląda na to, że mam problem z polskimi znakami.. przede wszystkim z ż
,ź
bo reszta znaków dialektycznych ( ą
,ś
,ć
etc. wydaje się być ok..)
Tekst po wyciągnięciu wygląda tak (fragmenty):
Treść artykułu stanowi zawartość pomocy Windows
Polecenia sieciowe trybu MS DOS.
arp - informacje lub edycja tablicy translacji IP
finger - informacje o uŜytkownikach
ftp - przesyłanie plików
hostname - nazwa bieŜącego komputera
ipconfig - szczegóły konfiguracyjne TCP/IP
lpq - status kolejki drukowania
lpr - drukowanie plikuPolecenie finger
Wyświetla informacje dotyczące uŜytkownika lub uŜytkowników określonego komputera zdalnego
(zazwyczaj komputera z systemem UNIX), na którym jest uruchomiona usługa lub demon . Komputer
zdalny określa format i sposób wyświetlania danych wyjściowych dotyczących uŜytkowników.
Polecenie finger uŜyte bez parametrów wyświetla Pomoc./flushdns
OpróŜnia i resetuje zawartość pamięci podręcznej programu rozpoznawania nazw klientów DNS.
Podczas rozwiązywania problemów z systemem DNS moŜna uŜywać tej procedury do odrzucania
negatywnych wpisów z pamięci podręcznej oraz innych wpisów, które zostały dodane
dynamicznie.
//UZUPEŁNIENIE
Po napisaniu pierwszej części wpisu, zrobiłem jeszcze jeden test na innym dokumencie, i tam o dziwo wszystkie znaki są pobrane poprawnie.. Czy to jest jakoś związane z kodowaniem pdfa? Jeśli tak, to idzie jakoś zmienić to kodowanie ?
ps. Poniżej funkcja, której używam do wyciągania tekstu:
private String getTextOfPdf(String path) throws FileNotFoundException, IOException {
PDFParser parser = new PDFParser(new FileInputStream(new File(path)));
parser.parse();
PDDocument pdf = new PDDocument(parser.getDocument());
PDFTextStripper stripper = new PDFTextStripper();
String text = stripper.getText(pdf);
pdf.close();
return text;
}