Url to PDF. Легко и без проблем

Всем здравствовать.
Давеча был замечен мною интересный пост про замечательный сервис с говорящим адресом: pdfmyurl.com/
И родилась мысль написать об альтернативном, более интересном способе (особенно интересном для программистов, энтузиастов и просто любящих консоль людей). Точнее, о проекте, позволяющим делать то же самое, не используя сторонний сервис.

Кратко и по сути.
Проект с открытыми исходными кодами.
Живет на code.google.com/p/wkhtmltopdf/
Написано с использованием QT + Webkit. Это, как по мне, ГРОМАДНЫЙ плюс: кросплатформенность, расширяемость и т.д.
Суть: WebKit рендерит страницу по указанному URL, а уже основная часть программы создает PDF и сохраняет его.
Преотличнейшая штука. Не без минусов, конечно. Но для сгребания относительно чистого материала — самое оно. :)
На данный момент — может использоваться из-под консоли. Однако ничто не мешает написать для него интерфейс, не так ли? QT всё-таки!
Чтобы использовать, после стандартных qmake-qt4 && make && checkinstall (make install) — не отходя от кассы консоли, пишем:

wkhtmltopdf habrahabr.ru habrahabr.pdf -O Landscape -s A4

В результате получаем чистую от баннеров заглавную страницу Хабра, страницы формата А4, альбомно ориентированные.
Для просмотра доступных опций следует сказать:

wkhtmltopdf --help

Так-то. Ваш К.О.

Да, pdfmyurl.com/ генерит PDF почти AS IS (исключая флэш). Но кто захочет иметь здоровенный баннер в PDF при наличии интересного содержания? :)
Как бонус, wkhtmltopdf может генерить и из локальных HTML-файлов.

Резюмируя: плюсы этого проекта с лихвой перекрывают минусы. Даешь OpenSource в массы!

UPD: прошу прощения у читателей, подобный топик уже был на Хабре, гораздо полезнее моего. Спасибо, josser
+24
20 января 2010, 20:23
31
dals 19,3

комментарии (32)

0
calg0n #
Оооо! Спасибки! А есть тоже самое но с конвертацией HTML в TXT?
0
TheMengzor #
Да-да, хочется еще тулзу с рендером а-ля w3m, типа ASCII art.
–1
svistiboshka #
File --> Save as… --> TXT file
0
ferrari #
делал подобное для делфи, можно взять С++, все уже реализовано www.example-code.com/vcpp/htmlToText_simple.asp
0
calg0n #
можно сделать подручными средствами намного качественней (в *nix'ах):

wkhtmltopdf some.html some.pdf
pdftotext -layout some.pdf some.txt

вот и все.
+1
ferrari #
это индокод/дебилизм/решение через ж… пу/. Неужели самому не видно?
0
calg0n #
вы знаете другое решение с отработкой яваскрипта? вы хоть топик прочитайте для начала!
0
calg0n #
wkhtmltopdf рендерит страницу (с отработкой яваскриптов, css, dom, html, xhtml и т.д.). ваша библиотека CkHtmlToText так умеет?
0
serzzz #
не понял, а может и нет там такого:
как увеличить качество сохраняемого PDF (-d 300 видимо не то);
как оставить ссылки активными в сохраненном PDF;
0
dals #
У меня есть огромное желание выяснить то же самое относительно ссылок.
При наличии свободного времени пороюсь в исходниках.
0
und #
Может не много не по теме, но как известно, сейчас сессия… уж очень хочется кинуть на телефон пару шпор. Но мой древний SE G502 поддерживает только txt и htm. А у меня все файлы в PDF/DOC(X). Нету online сервиса, который переделал бы PDF/DOC в JPG? А то по одной странице, через Photoshop… не по инженерски.
+1
FTM #
www.pdf-convert.com
Тут есть все вам нужное.
0
Mordovorot #
Попробуй это: Zamzar
0
und #
О, спасибо. Хотя я уже начал FileZill'ой конвертировать. Интересно, что ни этот сервис, ни FileZIlla не хотят конвертировать файлы, где в названии есть латышские буквы.

Ну всё, осталось завтра только не подкачать: i47.tinypic.com/dmqnhs.jpg :)
+1
dals #
Эмм… Насчет сервиса не скажу, но можно поступить хитрым образом через консоль, используя ImageMagick (convert).
Допустим, у вас PDF лежат в определенной директории, тогда можно применить нечто вроде:
for file in `ls *.pdf`
do
convert -density 150 $file `echo $file | sed 's/\.pdf$/\.jpg/'`
done

Как-то так. При желании, можно поиграть с опциями convert'a.
+1
Mordovorot #
convert -density 150 $file `echo $file | sed 's/\.pdf$/\.jpg/'`


а можно проще:
pdf2jpg $file
0
egorinsk #
Convert никуда не годится, он не сглаживает шрифты (а увеличение разрешения приводит к сильным расходам памяти и низкой скорости). Я пробовал им конвертировать — пиксельные буквы —  это ужасно.

При том, что например программа Sumatra рендерит сглаженную картинку — значит есть OpenSource библиотеки, умеюшие это.
0
udpn #
Вы ещё не намекнули авторам?
0
egorinsk #
Нет, ведь у меня теперь нет необходимости преобразовывать pdf в картинки :) А сил на составление подробного описания моих бед и споры в комментах на английском  —нет. Но других хабрапользователей хочу просто предостеречь, что фигня на выходе получается.
0
bagyr #
Хорошо если бы он работал с локальными файлами и как фильтр (что-то вроде
zcat file.fb2.zip | xsltproc ~/fb2html.xsl — | wkhtmltopdf — habrahabr.pdf -O Landscape -s A4)
0
x1am #
Хочется сказать спасибо разработчикам за бинарные пакеты для OSX.
p.s. при работе с тем же хабром, почему-то забирает не все картинки (в блоке Компании отсутствует 80% иконок)
0
le0pard #
www.princexml.com/overview
Принц мне больше нравится. Проблем не замечал. Очень много функций по работе с css, html. Есть много интерфейсов для языков программирования.
0
mihmig #
Подскажите — а как он (webkit) hекламу режет? Adblock прикрутить можно?
0
mihmig #
А еще плюс Вам за то в PDF, а то mht все браузеры сохраняют и открывают по-разному, пытаясь подгрузить те элементы, которые браузер не упаковал в mht, безжалостно паля меня на корпоративном dns-сервере…
+2
josser #
Ох пеар-пеар :)
Я уже писал про эту мега штуку. Там же есть небольшой простой класс для Zend Framework что бы с ним работать.

habrahabr.ru/blogs/development/30018/

0
dals #
Ооопс… Простите, я не просмотрел по каким-то причинам Ваш топик после поиска по Хабру :(
А про «пеар»: я не имею отношения к разработчикам данного продукта. :)
0
josser #
Таничо :)
Пеар — это я про себя. В смысле: «Оо! Шанс пропеарить свою статью еще разок» :)

0
udpn #
Я тут подумал ведь. Если эта штука может отрабатывать джаваскрипты в страницах, то очень многие защиты от ботов можно таким образом обойти.

Не говорю уже о том, что мне не терпится посмотреть, как же они это сделали.

зы Пошёл переписывать двиг для голосований
0
udpn #
Кстати.

«wkhtmltopdf 0.9.0 released. Adding support for cookies and POST requests.»

Люди всё ещё не знают, что же такое wget/curl. Печаль.
0
josser #
ну ониж QT юзают и соответственно используют ее средства для этих целей
0
mihmig #
Поделитесь секретом — как curl в mht или pdf сохранить, чтоб потом в поезде почитать?
0
dVital #
Решил использовать wkhtmltopdf для создания pdf-ок для последующего чтения их на КПК.
Команда wkhtmltopdf habrahabr.ru habrahabr.pdf -O Portrait -s A6
Получился мелковатый шрифт правда.

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