Разложить PDF на составляющие или отпарсить PDF

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Разложить PDF на составляющие или отпарсить PDF

Сообщение vitaly_l » 08.09.2017 10:39:11

Всем доброго дня и хорошего настроения!

Есть PDF файл, в нём куча картинок и описания к ним. Тексты, хранятся в виде текстов их можно копировать и вставлять в блокнот.

Собственно, вопрос:
чем можно конвертировать PDF в нормальный формат типа TXT или XML или HTML, чтобы при конвертации можно было как-то сохранить структуру ?
В общем по сути, нужно отпарсить PDF и получить названия, тексты и т.д.

Есть такие модули?
спасибо.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение zub » 08.09.2017 10:57:44

Есть, но в зайчаточном состоянии https://svn.freepascal.org/cgi-bin/view ... ot=lazarus
Такчто несветит
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение vitaly_l » 08.09.2017 14:53:27

zub писал(а):несветит

Светит. на пошипи, есть же примеры, наверняка и на паскале есть.
Нужно просто поискать или быть может кто уже нашёл и поделится.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение Лекс Айрин » 08.09.2017 15:20:22

vitaly_l, кстати, в нормальном PDF-ридере есть возможность импорта картинок. Ну и текста, естественно. Ну и есть возможность его рипа в офисные форматы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение vitaly_l » 08.09.2017 15:39:49

Лекс Айрин писал(а):офисные форматы.

Мне нужен HTML или XML или такой формат, чтобы я мог отделить где там заголовок, а где текст, а где фото и т.д. все запчасти для парсинга. То что выдаёт например OpenOffice или Микрософт при экспорте в HTML - я бы убивал за такое. Поэтому офисные форматы не подходят, т.к. там каждая буква - новый тег.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение Лекс Айрин » 08.09.2017 16:09:07

vitaly_l, так сохрани в xml. Хотя, имхо, ты преувеличиваешь. Вот начало текста преобразованного из doc в html с помощью Libre office...
Код: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
   <title></title>
   <meta name="generator" content="LibreOffice 5.4.0.3 (Windows)"/>
   <meta name="created" content="2017-01-12T19:57:24.062000000"/>
   <meta name="changed" content="2017-08-17T19:23:45.707000000"/>
   <style type="text/css">
      @page { margin: 2cm }
      p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 }
      p.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: ru-RU }
      p.cjk { font-family: "SimSun"; font-size: 12pt; so-language: zh-CN }
      p.ctl { font-family: "Mangal"; font-size: 12pt; so-language: hi-IN }
      p.sdfootnote-western { margin-left: 0.6cm; text-indent: -0.6cm; margin-bottom: 0cm; font-family: "Times New Roman", serif; font-size: 10pt; so-language: ru-RU; line-height: 100% }
      p.sdfootnote-cjk { margin-left: 0.6cm; text-indent: -0.6cm; margin-bottom: 0cm; font-family: "SimSun"; font-size: 10pt; so-language: zh-CN; line-height: 100% }
      p.sdfootnote-ctl { margin-left: 0.6cm; text-indent: -0.6cm; margin-bottom: 0cm; font-family: "Mangal"; font-size: 10pt; so-language: hi-IN; line-height: 100% }
      a.sdfootnoteanc { font-size: 57% }
   </style>
</head>
<body lang="ru-RU" text="#000000" dir="ltr">
<p align="center" style="margin-right: 0.1cm; margin-bottom: 0cm; font-style: normal; line-height: 100%">
<font face="Majestic, cursive"><font size="6" style="font-size: 28pt"><b>Барби</b></font></font></p>
<p class="western" align="justify" style="text-indent: 1cm; margin-bottom: 0cm; line-height: 100%">
<font size="2" style="font-size: 11pt"><i>Я – барби. Точнее,
биоморф классического типа, модификация
барби, подтип 173. Киборг класса научник
Анжелика. Но все меня привыкли звать
просто барби Лика.</i></font></p>
<p class="western" align="justify" style="text-indent: 1cm; margin-bottom: 0cm; line-height: 100%">
<font size="2" style="font-size: 11pt"><i>Почти до шестнадцати
лет я  была вполне нормальным подростком...
даже немного пухлым. Но за месяц до
годовщины произошла предопределенная
трансформация. Мне еще сильно повезло
– у некоторых она происходит и в семь
лет, а у других в задерживается до сорока,
а то и до пятидесяти. Да и проспала я
всего две недели. В принципе, я с детства
знала, что мне подобное грозит – оба
родителя биоморфы: мать Барби (подтип
64), а отец  Питер Пен (подтип 16).</i></font></p>....



В принципе, вполне чистый текст.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение vitaly_l » 08.09.2017 16:14:57

Лекс Айрин писал(а):В принципе, вполне чистый текст.

Не это какой-то хороший текст. Обычно, там экспортируется каждая строчка - новый тег. А если вначале это ещё и конвертнуть из PDF то там вообще будет один мусор.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение Лекс Айрин » 08.09.2017 16:37:43

vitaly_l писал(а):Не это какой-то хороший текст.


Это просто текст, без картинок, в котором каждый абзац преобразовался в тег <p>

Тот же текст в MS office дает картину чуть хуже, но не критично -- в основном, разбухший заголовок. Если бы были картинки, то картина в обоих случаях было бы одинаковая.

vitaly_l писал(а): А если вначале это ещё и конвертнуть из PDF то там вообще будет один мусор.


А ты попробуй конвернуть в pdf и просто скопировать текст, вставить его обратно в вордовский файл, включить показ скрытых символов... и обнаружишь странную весчь... нормально выглядящий текст превращается в нечто вроде dos-txt -- каждая строка завершается принудительным переносом. Так что тут редиска как раз таки pdf формат.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение pupsik » 08.09.2017 19:27:34

vitaly_l ghostscript вроде что то может, или воспользоваться либами от свободных читалок (где то встречал их "скрещивание" с паскалем).
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение v-t-l » 09.09.2017 10:00:39

v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение zub » 09.09.2017 11:51:41

>>Светит. на пошипи, есть же примеры, наверняка и на паскале есть.
Полностью силами fpc засветит только если сильно приложить руку к fpvectorial. Сторонними либами - светит при наличии таковых.

ПДФки бывают очень разными, например всё внутри растром или каждая буква - отдельный примитив или буквы состоят из отдельных примитивов... зависит от того насколько автор пдфки решил осложнить жизнь пытающимся ее повторно использовать
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Разложить PDF на составляющие или отпарсить PDF

Сообщение vitaly_l » 09.09.2017 12:11:29

v-t-l писал(а):https://www.google.by/search?q=pdf2html

Интересует именно лазарусовский модуль,
чтобы можно было не просто конвертировать, но и немножечко поколдовать при конвертации,
т.к. мне в итоге: ни HTML, ни PDF - ненужны.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Рейтинг@Mail.ru