Вопрос
Есть ли способ явно сообщить серверу Cups, что файл, который вы отправляете text/html
Таким образом, переопределяет поиск mime.types?
Решение
Да, есть.
Используйте эту командную линию:
lp -d printername -o document-format=text/html file.html
Обновление (в ответ на комментарии)
Я дал точный ответ на вопрос ОП.
Однако это (только) не гарантирует, что файл будет успешно напечатан. Чтобы достичь этого, чашкам нужна фильтр который может обработать ввод типа MIME text/html
.
Такой фильтр не предоставляется самим чашками. Тем не менее, легко подключить свой собственный фильтр к системе фильтрации Cups, и некоторые дистрибутивы Linux поставляют такой фильтр, способный потреблять HTML -файлы и преобразовать их в печатный формат.
Вы можете проверить, что происходит в такой ситуации на ваш система. А cupsfilter
Команда - это вспомогательная утилита для запуска доступных/установленных фильтров чашек без необходимости делать реальную печать через демон чашек:
touch 1.html
/usr/sbin/cupsfilter --list-filters 1.html
Теперь в системе без подготовки фильтра HTML, вы получите этот ответ:
cupsfilter: No filter to convert from text/html to application/pdf.
В другой системе (как на Mac), вы увидите это:
xhtmltopdf
Вы даже можете заставить типы ввода и вывода MIME, чтобы увидеть, какие чашки фильтров будут работать автоматически, когда попросят распечатать этот файл A A Printer, поддерживающий этот конкретный тип MIME (конкретный выходной сигнал (-i
Устанавливает тип ввода Mime, -m
выход):
/usr/sbin/cupsfilter \
-i text/html \
-m application/postscript \
--list-filters \
1.html
xhtmltopdf
cgpdftops
Здесь он сначала преобразовал бы HTML в PDF, используя xhtmltopdf
, затем преобразовать полученный PDF в PostScript, используя cgpdftops
.
Если вы пропустите --list-filters
Параметр, команда на самом деле даже продолжит преобразование, активно запустив (не только перечисление) двух фильтров и излучает результат к <stdout>
.
Вы можете написать свой собственный фильтр чашек на основе сценария оболочки. Единственный другой ингредиент, который вам нужен, - это инструмент командной строки, такой как htmldoc
или же wkhtmltopdf,
который способен обрабатывать HTML -вход и создавать некоторый формат, который, в свою очередь, может быть использован в цепочке фильтрации чашек дальше в будущем.
Имейте в виду, что некоторые (особенно (особенно JavaScript-Heavy) HTML-файлы не могут быть успешно обработаны простыми инструментами командной строки в готовые к печати форматам.
Если вам нужна дополнительная информация об этом, просто задайте другой вопрос ...