2016-03-21 2 views
0

Я пытаюсь прочитать из pdf-файла с использованием потоков файлов, и я хочу записать его писателю в кодированном формате cp1252. Ниже приведен код:Чтение из форматированного pdf-файла в формате UTF-8 и запись его писателю в формате cp1252

byte buf[] = new byte[8192]; 
InputStream is = new FileInputStream(f); 
ByteArrayOutputStream oos = new ByteArrayOutputStream(); 
int c=0; 
while ((c = is.read(buf)) != -1) { 
    oos.write(buf, 0, c); 
} 
byte out[] = oos.toByteArray(); 
String str = oos.toString(out,"UTF-8"); 
char[] ch = str.toCharArray(); 
writer.write(ch); 
is.close(); 
oos.close(); 

Но вывод ошибочен, так как текст не читается (неправильно преобразован). Как это исправить ?

+1

Что содержит «f»? Это настоящий PDF-файл? –

+0

* Форматированный pdf-файл UTF-8 * - что это? PDF - это двоичный формат. Полная остановка. – mkl

+0

Его файл pdf: Файл f = новый файл («C: \ Users \ myfile.pdf»); Я проверил свойства файла, и в eclipse он говорит, что это кодировка по умолчанию UTF-8 –

ответ

0

Возможно, вы столкнулись с ошибкой при чтении из файла PDF. Попробуйте использовать PDFBox для извлечения текста из файла PDF. Вероятно, это один из лучших способов сделать это. После того, как у вас есть необходимый текст, вы можете сохранить его с помощью cp1252.

Вы можете проверить примеры извлечения текста с использованием PDFBox из here

Что касается преобразования в cp1252, если вы используете машину с Windows, то кодировка по умолчанию cp1252. Поэтому просто попытка сохранить текст должна надеюсь сохранить его в кодировке cp1252.

Смежные вопросы