Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как экспортировать pdf- журналы в txt- файлы без разбивки по колонкам?  (Прочитано 648 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlekseyUbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 399
    • Просмотр профиля
Есть большое количество pdf- журналов, посвященных мед. тематике. Когда я их экспортирую в обычный текст, то вместо текста по всей ширине страницы получаю текст разбитый на колонки (как изначально было в журнале).

Есть ли какая- то готовая утилита, которая позволяет форматировать подобный текст в человеческий вид?
« Последнее редактирование: 14 Августа 2021, 18:44:35 от AlekseyUbuntu »

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 619
  • xUbuntu 22.04
    • Просмотр профиля
Приветствую!

А как себя ведёт классическая программа pdftotext? Колонки то по разному могут быть выполнены… Обычно из двух колонок журнала делается одна т.е правая колонка копируется после левой.

Вот я открыл какие-то журналы h t t p s : / /1 0 0 p d f . c l u b/ и попробовал с разными опциями
pdftotext -raw file.pdf
pdftotext -layout file.pdf
Там файл помощи короткий посмотрите может с чем ещё придётся поэкспериментировать… У меня как-то была подобная задача pdftotext не помог, пришлось унизиться  ;) до разрезания pdf  :'( на полоски (текст — иероглифы)…

2021 Aug 14; 04:13 PM


Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн AlekseyUbuntu

  • Автор темы
  • Активист
  • *
  • Сообщений: 399
    • Просмотр профиля
Нашел отличную библиотеку на Python: pymupdf. Кто умеет, тот может написать так:
with fitz.open(file) as doc:
    for page in doc:
        list_texts = page.getText('blocks')
        for text in list_texts:
            print(text[4])

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

« Последнее редактирование: 18 Августа 2021, 07:43:35 от AlekseyUbuntu »

 

Страница сгенерирована за 0.032 секунд. Запросов: 25.