конвертация html в pdf
Модератор: /dev/random
-
kt315e
- Сообщения: 318
- ОС: Debian 11
конвертация html в pdf
Есть html файл с большим количеством ссылок на html файлы по поддиректориям. В последних аналогичеая ситуация. Уровень вложености наверное 8. Как из этого сделать сплошной pdf файл или, что нибудь ещё читбельное.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: конвертация html в pdf
я-бы слил и подправил ссылки sed'ом.
-
kt315e
- Сообщения: 318
- ОС: Debian 11
Re: конвертация html в pdf
Много файлов. Надо слить правильно, чтобы ссылка стала разделом, подразделом .., а за ней текст, в котором надо ссылки превратить в подподразделы.
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: конвертация html в pdf
Я бы скриптик на баше натравил и преобразовал в латех. потом чуть подрихтовал бы ручками, если ошибки в коде html были, и откомпилял бы в pdf.
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
Спасибо сказали:
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: конвертация html в pdf
Согласен с eddy, разве что я бы советовал скрипт на Perl делать. Впрочем, лучше использовать то, что Вы знаете.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: конвертация html в pdf
ну можете извращаться и по другому.
Я вообще не понимаю, зачем именно в pdf?
-
kt315e
- Сообщения: 318
- ОС: Debian 11
Re: конвертация html в pdf
Можно и не в pdf. А скриптик писать надоть. На лиспе, что ли подpессироваться?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: конвертация html в pdf
kt315e
1. См. http://www.msweet.org/projects.php?Z1
2. Скрипт можно было бы написать и для PhantomJS/CasperJS.
3. Если в файлах теги расположены на отдельных строках, то слить всё можно и как-то так:таким же способом можно и <head> отрезать, если они сильно мешают PDF-конвертору.
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Если правда необходима такая сложность, то нужно знать эту структуру и писать свой анализатор/сливальщик на PhantomJS.
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: конвертация html в pdf
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.
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
гм. Месье знает толк в извращениях. Только предупрежу, что это всё может рухнуть, GC не осилит современные HTML.
лучше
Код: Выделить всё
s=</\?html>= =gтег является разделителем, который эквивалентен пробелу(пробелам). Без пробелов может быть потерян смысл, типа:
мамамылараму
Это уже не распарсить.
Второе: надёжнее
Код: Выделить всё
=</?html[^>]*>=любят всякие умники пихать мусор в теги, даже в <html>.
Третье: все пробельные символы нужно собрать в один пробел, в т.ч. и \n. А потом нужно впихнуть новые \n на место <br /> и/или <p>. Часто этого почти достаточно для получения годного plain-text'а.
PS: забыл сказать про нужность вырезания комментариев и скриптов. Эта гадость может запутать любой парсер.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: конвертация html в pdf
ИМХО, не дело это парсить HTML регулярками. Вот, допустим, встретится что-то такое:
Как регулярками справляться будете? Предварительно вырезать, как drBatty предлагает, а потом ещё что-то обнаружится.
Я бы взял Perl (или то, что знаете) и HTML парсер какой-нибудь. Думаю, получилось бы значительно проще.
Код: Выделить всё
<!-- blah-blah <html>
несколько переносов строк
<a href="asdasd"> test, test, test...
-->Как регулярками справляться будете? Предварительно вырезать, как drBatty предлагает, а потом ещё что-то обнаружится.
Я бы взял Perl (или то, что знаете) и HTML парсер какой-нибудь. Думаю, получилось бы значительно проще.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: конвертация html в pdf
Ну, а также глянуть тут: http://www.w3.org/Tools/html2things.html
И вот это: http://html2latex.sourceforge.net/
И вот это: http://html2latex.sourceforge.net/