конвертация html в pdf

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

конвертация html в pdf

Сообщение kt315e »

Есть html файл с большим количеством ссылок на html файлы по поддиректориям. В последних аналогичеая ситуация. Уровень вложености наверное 8. Как из этого сделать сплошной pdf файл или, что нибудь ещё читбельное.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: конвертация html в pdf

Сообщение drBatty »

kt315e писал(а):
06.09.2014 15:21
Как из этого сделать сплошной pdf файл или, что нибудь ещё читбельное.

я-бы слил и подправил ссылки sed'ом.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Re: конвертация html в pdf

Сообщение kt315e »

Много файлов. Надо слить правильно, чтобы ссылка стала разделом, подразделом .., а за ней текст, в котором надо ссылки превратить в подподразделы.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: конвертация html в pdf

Сообщение eddy »

Я бы скриптик на баше натравил и преобразовал в латех. потом чуть подрихтовал бы ручками, если ошибки в коде html были, и откомпилял бы в pdf.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: конвертация html в pdf

Сообщение NickLion »

Согласен с eddy, разве что я бы советовал скрипт на Perl делать. Впрочем, лучше использовать то, что Вы знаете.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: конвертация html в pdf

Сообщение drBatty »

kt315e писал(а):
06.09.2014 16:38
Много файлов. Надо слить правильно,

ну можете извращаться и по другому.

Я вообще не понимаю, зачем именно в pdf?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Re: конвертация html в pdf

Сообщение kt315e »

Можно и не в pdf. А скриптик писать надоть. На лиспе, что ли подpессироваться?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: конвертация html в pdf

Сообщение serzh-z »

kt315e
1. См. http://www.msweet.org/projects.php?Z1

2. Скрипт можно было бы написать и для PhantomJS/CasperJS.

3. Если в файлах теги расположены на отдельных строках, то слить всё можно и как-то так:

Код: Выделить всё

echo '<html><body>' > merged.html

for f in path/to/dir/*.html ; do \
echo '<div class="single-html">' >> merged.html ; \
cat $f | grep -iv '</html>' | grep -iv '</body>' >> merged.html ; \
echo '</div>' >> merged.html ; \
done

echo '</html></body>' >> merged.html
таким же способом можно и <head> отрезать, если они сильно мешают PDF-конвертору.

kt315e писал(а):
06.09.2014 16:38
Много файлов. Надо слить правильно, чтобы ссылка стала разделом, подразделом .., а за ней текст, в котором надо ссылки превратить в подподразделы.
Если правда необходима такая сложность, то нужно знать эту структуру и писать свой анализатор/сливальщик на PhantomJS.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: конвертация html в pdf

Сообщение SLEDopit »

serzh-z писал(а):
14.09.2014 12:53

Код: Выделить всё

cat $f | grep -iv '</html>' | grep -iv '</body>'

Код: Выделить всё

grep -iv -e '</html>' -e '</body>' $f #(:

только так будет куча открытых <html> и <body>, которые теоретически могут нехило запутать конвертор.

Я бы как-то так сделал:

Код: Выделить всё

tr -d '\n' < $f | sed 's=</\?html>==g;s=</\?body>==g;' >> merged.html

Отсюда и head можно убрать как 's=<head>.*</head>==', но там же по идее ссылки на стили, которые, по идее, нужны для корректного конвертирования.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: конвертация html в pdf

Сообщение drBatty »

kt315e писал(а):
13.09.2014 11:11
На лиспе, что ли подpессироваться?

гм. Месье знает толк в извращениях. Только предупрежу, что это всё может рухнуть, GC не осилит современные HTML.

SLEDopit писал(а):
14.09.2014 13:14
s=</\?html>==g

лучше

Код: Выделить всё

s=</\?html>= =g

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

Это уже не распарсить.

Второе: надёжнее

Код: Выделить всё

=</?html[^>]*>=

любят всякие умники пихать мусор в теги, даже в <html>.

Третье: все пробельные символы нужно собрать в один пробел, в т.ч. и \n. А потом нужно впихнуть новые \n на место <br /> и/или <p>. Часто этого почти достаточно для получения годного plain-text'а.

PS: забыл сказать про нужность вырезания комментариев и скриптов. Эта гадость может запутать любой парсер.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: конвертация html в pdf

Сообщение NickLion »

ИМХО, не дело это парсить HTML регулярками. Вот, допустим, встретится что-то такое:

Код: Выделить всё

<!-- blah-blah <html>
несколько переносов строк
 <a href="asdasd"> test, test, test...
 -->

Как регулярками справляться будете? Предварительно вырезать, как drBatty предлагает, а потом ещё что-то обнаружится.

Я бы взял Perl (или то, что знаете) и HTML парсер какой-нибудь. Думаю, получилось бы значительно проще.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: конвертация html в pdf

Сообщение NickLion »

Ну, а также глянуть тут: http://www.w3.org/Tools/html2things.html
И вот это: http://html2latex.sourceforge.net/
Спасибо сказали: