LINUX.ORG.RU

Есть способ восстановить формат текста из пдф?

 , гуглобуки, ,


0

2

У гугла неудобная читалка, приходится конвертить гуглобуки гугл->пдф->фб2 чтобы нормально читать. Но естественно это ломает разбивку на абзацы, что уже начинает подбешивать.

Есть какой-нить скрипт чтобы распарсить абзацы по отступам и корректно учесть переносы строк при вытаскивании текста?

★★★★★

Последнее исправление: ya-betmen (всего исправлений: 1)

pdf - это уже «скомпилированный» формат и пытаться вытащить из него «абзацы текста» - почти то же самое, что пытаться восстановить исходники по бинарю. это возможно, но оно того не стоит. если хочешь, то можно попробовать распознать скриншоты страничек тессерактом.

гугл->пдф->фб2

почему нельзя просто гугл->фб2?

anonymous
()

Нельзя. Только распознаванием. Даже если там остался живой нерастеризованный текстовый слой, то буквы там могут быть расположены в рандомном порядке.

PPP328 ★★★★★
()

Существуют какие-то коммерческие программы, которые специализируются на вытряхивании информации из pdf, но все какие я тыкал палочкой с кириллицей в общем случае не дружат. Исключение составляют специально приготовленные pdf, но как правило никто этим не заморчивается. Так что в общем случае нет. Ищи уже готовый fb2.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

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

ya-betmen ★★★★★
() автор топика

В теории можно, но таких конверторов я не видел, хотя возможно это fb2 сложную разметку не поддерживает. Парсить в целом pdf не проблема, иначе как бы ты его в просмоторщике открывал. Есть правда где вместо текста картинки, или текст обфусцирован, но если ты сам текст смог сконвертить, то проблема только в разметке, которую не стали переносить в fb2. Вот если ты захочешь конвертировать в другой формат типа odf или docx, то скорей всего разметка перенесется

screamager
()
Ответ на: комментарий от screamager

На уровне пдф нет абзаца, есть текстовые блоки с разным положением на странице (иногда по блоку на слово). Но общая логика разбиения есть в отступах/красных строках, которые тоже сделаны через координаты. Поэтому выдирание текста превращает каждую строку в отдельный абзац. Вот думаю вдруг кто озаботился уже.

ya-betmen ★★★★★
() автор топика
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Чем тут озаботиться, если логической разметки нет вообще? А так вроде pdf2html раскидывал текстовые блоки в div с соответствующим css. В браузере получалось похоже на иcходный pdf. Обучи какой-нибуть ChatGPT делать логическую разметку получившегося html.

Tigger ★★★★★
()
Ответ на: комментарий от ya-betmen

А не скажешь, в случае «для ознакомления», когда даёт прочесть некоторые страницы, из них как-то можно сделать pdf? (У меня получалось только скриншот сделать, и не средствами браузера, а внешней скриншотилкой)

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

Нормальную - нет, там емнип на подложке картинка с не самым высоким разрешением, а сверху подгружаются слова по координатам и всё это рисуется на канвасе. Если есть желание заморочиться - можно попробовать вклиниться в функцию обработки и дампить текст. Но я с канваса картинку просто выдирал - к сожалению там обычно процентов 10 страниц.

ya-betmen ★★★★★
() автор топика
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от TPPPbIHDELj

В случае сложного форматирования (формулы, картинки, таблицы, библиография и т.д.) было не очень. Так что вычитка и правка была обязательна при любых раскладах. Я не к тому, что это невозможно, я к тому, что никто из коммерческих авторов этим не заморачивался ибо не особо то и нужно (как минимум не нужно платежеспособным клиентам).

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от rtxtxtrx

текст можно вытащить, если найти описание формата

Но это описание формата может оказаться таким сложным, что даже готовая библиотека на любимом языке (вроде pdf.js) не приблизит к решению задачи.

Shushundr ★★★
()