Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разные вопросы > скопировать текст из pdf


Автор: bars80080 17.10.2010, 20:10
есть у меня pdf-файл, adobe reader нормально показывает текст в нём на русском языке. однако, если выделяю этот текст и копирую, а затем вставляю куда-нибудь, то вставляются кракозябры вида

Цитата

Âòîðîå èçäàíèå ñîñòîèò èç èçíà÷àëüíîãî òåêñòà

при этом английский текст копируется нормально.
также, если открыть поиск в этом документе, то набранное слово по-русски ничего не находит, а вот если вставить скопированное из текста (которое вставляется в строку поиска в виде кракозябр), то ищется нормально

каким образом можно скопировать этот текст в читабельном виде?
мне вообще нужен и поиск по нему и копирование абзацев, чтобы заново не пришлось набирать

Автор: Данкинг 17.10.2010, 21:55
Файл в студию.

Автор: bars80080 17.10.2010, 22:02
не, 30 Мб я закачивать не стану

Автор: Данкинг 17.10.2010, 22:07
Ну, тогда глупое и единственное предположение: копируй при активной русской раскладке.

Автор: bars80080 17.10.2010, 22:30
она у меня активна, так и копируется кракозябрами


попытался везде поменять на en - тоже самое

Автор: cardinal 17.10.2010, 22:39
bars80080,
1. вставляешь крякозябры в текстовой файл в блокноте
2. записываешь файл как .html
3. открываешь firefox'ом
4. выбираешь кодировку в которой читается
5. копируешь оттуда...

Добавлено через 59 секунд
Крэкнул:
Второе издание состоит из изначального текста smile 

Автор: bars80080 18.10.2010, 01:02
да, текст такой, но что-то у меня не получается.

причём вначале вообще не реагировало, там оказался важным момент как сохранить текст. сейчас я его выделил, скопировал, открыл блокнот, вставил, и сохранил как html файл в кодировке юникод, в итоге при открытии в ФФ, при выборе одной из восточноевропейских кириллических получаю читабельный текст разбодяженный символами FFFD. и лучше не получается

а какую ты выбрал сам? а то комбинаций слишком много получается

Автор: gcc 18.10.2010, 01:35
bars80080, можно попробовать такое... 
http://decoder.design.ru/ 
можно скрипт написать который будет декодировать, распознавать кодировку

Автор: cardinal 18.10.2010, 01:58
bars80080, у меня автоматом стояла правильная кодировка. А именно кириллическая (windows 1251)...

Автор: bars80080 18.10.2010, 13:41
чёрт, чего же у меня, лучше чем так

Цитата

юя�В�т�о�р�о�е� �и�з�д�а�н�и�е� �с�о�с�т�о�и�т� �и�з� �и�з�н�а�ч�а�л�ь�н�о�г�о� �т�е�к�с�т�а

не получается...

Добавлено через 2 минуты и 12 секунд
Цитата(gcc @  18.10.2010,  01:35 Найти цитируемый пост)
можно попробовать такое... 
http://decoder.design.ru/ 

ага, они распознали. только вот механизм:

Цитата

Как нам пришлось помучиться

CP1252 → CP1251

что бы это значило? из какого-то некошерного 1251 в кошерный?

Автор: bars80080 18.10.2010, 15:26
в общем, у меня не получается использовать стандартные средства. пришлось писать свои:

Код

if(!empty($_POST['text'])) {
    
    $reg = array('/&#[0-9]*;/');
    $func = 'qwer';
    $text = preg_replace_callback($reg, $func, $r);
    
    echo $text;
    
}

function qwer($m) {
    $t = intval(substr($m[0], 2, -1));
    $k = chr($t);
    return $k;
}

вроде делает то что надо. сегодня попытаюсь сконвертить весь текст, там посмотрим

Автор: gcc 18.10.2010, 17:30
Цитата(bars80080 @ 18.10.2010,  13:41)
Цитата

Как нам пришлось помучиться

CP1252 → CP1251

что бы это значило? из какого-то некошерного 1251 в кошерный?


да, есть такое, у меня такая же проблема

Код

use Encode;

     $out_bb = Encode::encode( 'cp1252', $out_bb );

Автор: Shlit 18.10.2010, 22:13
А если использовать распознаватель текста из pdf, не проще ли все будет? Тот же ABBYY FineReader прекрасно справляется. 

Автор: bars80080 18.10.2010, 23:08
Цитата(Shlit @  18.10.2010,  22:13 Найти цитируемый пост)
Тот же ABBYY FineReader прекрасно справляется.  

ммм, как-то вспоминалось, почти вспомнилось, но так им и не занялся. давно уже не пользовался
может быть помучаю ещё текст с этой точки зрения.

пока же законвертировать удалось вполне читабельно и поисковично. можно радоваться

всем спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)