[LinuxFocus-icon]
<--  | Карта  | Индекс  | Поиск

Новости | Архивы | Ссылки | Про LF
эта страница доступна на следующих языках: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Russian  

[Photo of the Author]
автор Guido Socher (homepage)

Об авторе:

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

Перевод на Русский:
Pukhlyakov Kirill <kirill(at)linuxfocus.org>

Содержание:


 

Совет от LF: преобразование html документов в формат PDF

mozilla firefox

Резюме:

Это небольшая заметка. Теперь в нашем журнале по крайней мере одна подобная заметка будет в каждом месяце. Если у Вас есть какие-нибудь идеи для подобных заметок - пишите на мой почтовый адрес: guido("at" sign)linuxfocus.org

_________________ _________________ _________________

 

Введение

Возможно вы заметили, что теперь заметки нашего журнала доступны в формате PDF для языков, использующих кодировку iso8859-1. Это была не совсем простая задача, имея в виду то, что мы хотели генерировать документы автоматически, а также чтобы исходный и преобразованный документы не отличались.

Рассмотрим как это было сделано.  

Идея

В любой Linux системе вы можете найти утилиту ps2pdf, с помощью которой всегда можно преобразовать postscript файл.

Система печати ОС Linux построена на postscript поэтому вероятно не должно возникнуть проблем!? На самом деле проблема в том, чтобы найти решение преобразования файлов из скрипта, запуская его в командной строке. Вы ведь не хотите кликать мышкой для преобразования порядка 2000 заметок например.

Если вам не особо нужны таблицы и изображения в документе используйте следующую команду "lynx -dump .... | nenscript" и ps2pdf сделает работу. Но если они вам нужны - читайте дальше.  

Варианты

html2ps

Это perl скрипт - мы протестировали версию html2ps 1.0 beta3. Домашняя страница - http://user.it.uu.se/~jan/html2ps.html
Скрипт работает хорошо, но требует установки определенных дополнительных модулей и возникают небольшие проблемы когда в документе присутствуют таблицы, формирующие его структуру. Хороший выбор если ваши документы имеют простой вид.

latex

Существует утилита latex to pdf. Используя xslt вы можете преобразовать html документ в Latex. Необходимым условием является наличие синтаксически корректного html документа. Проверить правильность документа можно утилитой tidy:
HTML --(tidy)--> XHTML --(XSLT)--> Latex --(pdflatex)--> PDF
Я не стал рассматривать этот вариант, потому что мне он показался достаточно сложным.

web browser remote control

Если бы была возможность командами управлять браузером, то генерируемый PDF был бы идентичен тому что вы видите в браузере. Проблема в том, что необходимы X11. Кроме того нет возможности использовать этот вариант в cron'е.

В проекте mozilla хорошо поработали над печатью и представлением документа, но убрали некоторые возможности удаленного управления, которые есть в netscape communicator. Следующий вариант работает только в communicator 4.X
netscape -noraise -remote "openurl(http://somepage)"
sleep(10) # нет возможности узнать загрузилась ли полностью страница
          # поэтому делаем небольшую паузу
netscape -noraise -remote saveas(somepage.ps,PostScript)
sleep(10)
ps2pdf somepage.ps
Некоторые читатели сообщили, что удаленная печать возможно будет работать в konqueror, но никто не смог представить решение.

htmldoc

Htmldoc отличная утилита с http://www.htmldoc.org/. Следующая команда делает именно то, что нам надо:
htmldoc -t pdf -webpage -f file.pdf file.html
Мы протестировали версию 1.8.24 и остались довольны. Единственная проблема в том, что размер выходного файла в формате pdf примерно в 10 раз превышает файлы созданные другими утилитами. Мы попробовали различные опции сжатия, но результат остался прежним. Это вообщем то проблема если у вас тысячи документов.  

Вывод

В настоящее время мы используем решение на основе удаленного управления netscape и htmldoc. Если у вас есть какие-нибудь идеи насчет уменьшения размера файла или вообще рассматриаемого преобразования - пишите нам.  

Страница отзывов

У каждой заметки есть страница отзывов. На этой странице вы можете оставить свой комментарий или просмотреть комментарии других читателей




Webpages maintained by the LinuxFocus Editor team
© Guido Socher
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
en --> -- : Guido Socher (homepage)
en --> ru: Pukhlyakov Kirill <kirill(at)linuxfocus.org>

2005-02-03, generated by lfparser version 2.50