
Создал CLI-скрипт для печати статей Википедии:
WIKI='https://en.wikipedia.org/w/index.php?title='
TITLE=$1
PRINTABLE='&printable=yes'
SRC=$WIKI$TITLE$PRINTABLE
HTML=$1".html"
PS=$1".ps"
wget $SRC
mv index* $HTML
html2ps $HTML > $PS
lpr -P pr1444 $PS
Это работает в том отношении, что если вы пишете./print Shane_Mosley
Эта статьянапечатано.
Но по сравнению с использованием Firefox (переход на сайт и печать из меню) результат печати хуже: гораздо менее компактный макет (особенно таблицы), нет изображений и не может обрабатывать «необычные» символы.
Итак, мой вопрос: Firefox "монолитный" или он на самом деле состоит из модульных инструментов, которые я могу реплицировать? Или я могу использовать Firefox как сервер, которому я могу давать команды (например, перейти туда и распечатать)?
Если нет: есть ли способы использовать мои инструменты более эффективно или есть ли другие инструменты, которые могли бы улучшить результат?
решение1
Как вы обнаружили, этот метод в лучшем случае неоптимален. В дополнение к HTML вам понадобятся как минимум все изображения и CSS. Вам также может понадобиться весь Javascript. А затем еще и вся эта возня с рендерингом всего этого беспорядка.
Но для вас есть хорошие новости в видеПечать из командной строкирасширение, которое вы можете установить в Firefox.
Затем:
firefox -print http://www.example.com/index.html
Больше примеров можно найти на странице документации расширения.
решение2
Я предлагаю вам перейти к grep
var $HTML
и найти любой <img src=..
элемент, а затем заменить каждый src
атрибут полным путем к изображению, например https://en.wikipedia.org/wiki/File:Uncle_Tupelo.jpg
. По умолчанию технология страниц сервера сохраняет источник изображения в относительном пути сервера, как в этом случае <img src="File:Uncle Tupelo.jpg">
. Большинство этих значений получены из CSS. Это решит проблему с изображением в ваших распечатках, однако другие детали элемента CSS могут по-прежнему отсутствовать.
Альтернативой wget
может стать использование быстрого скрипта Perl.