Как установить кодировку символов для PDFBox - PullRequest
0 голосов
/ 30 января 2019

Я создаю pdf-парсер, используя Apache PDFBox , после анализа простого текста я запускаю несколько алгоритмов и в конце выводу json-файл.Для некоторых pdf-файлов выходной файл содержит кодировку utf-8, для других pdf-файлов он содержит некоторую форму кодировки latin-1 (пробелы отображаются как "\ xa0" при открытии json-файла в python).Я предполагаю, что это должно быть следствием шрифтов или какой-либо другой характеристики PDF?

Мой код для чтения обычного текста выглядит следующим образом

PDDocument document = PDDocument.load(file);

//Instantiate PDFTextStripper class
PDFTextStripper pdfStripper = new PDFTextStripper();

//Retrieving text from PDF document
String text = pdfStripper.getText(document);

//Closing the document
document.close(); 

Я пытался просто сохранитьобычный текст:

PrintWriter out = new PrintWriter(outPath + ".txt");
out.print(text);

Даже если открыть этот простой текстовый файл в python, вместо пробела выдаются символы "\ xa0", если файл читается в словарь , что дает следующие результаты:

dict_keys (['1. \ xa0 \ lorem \ xa0ipsum', '2. \ xa0 \ lorem \ xa0ipsum \ xa0 \ lorem \ xa0ipsum', '3. \ xa0 \ lorem', '4. \ xa0 \ lorem \ xa0ipsum ',' 5. \ xa0 \ lorem \ xa0ipsum '])

Я бы хотел убедиться, что текст всегда кодируется как utf-8.Как мне это сделать?

1 Ответ

0 голосов
/ 31 января 2019

Я бы хотел убедиться, что текст всегда кодируется как utf-8.Как мне это сделать?

Если вы хотите убедиться, что ваш PrintWriter использует кодировку UTF-8, скажем так в конструкторе:

PrintWriter out = new PrintWriter(outPath + ".txt", "UTF-8");
...