soldatov.info

Блог Солдатова Евгения

Печать на HP LaserJet P1005/1006 из консоли

оставить комментарий

Возникла необходимость печатать на принтер серии HP LaserJet P1005/1006 из консоли FreeBSD, поскольку разумного и готового решения в сети найти не смог, пришлось детально изучать примеры реализации похожих задач, а заодно и записал на будущее.

1. Необходимо закомментировать в конфиге ядра строку «device ulpt»

2. Перекомпилировать ядро:

cd /usr/src/
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC
reboot

3. Устанавливаем:

gmake-3.81_2 GNU version of 'make' utility
ghostscript-gpl-8.61_5 GPL Postscript interpreteri
cups-base-1.3.7_2 Common UNIX Printing System
cups-pstoraster-8.15.4_1 Postscript interpreter for CUPS printing to non-PS prin ters
cupsddk-1.2.3 CUPS Driver Development Kit
hpijs-2.1.4_1 Drivers and support resources for HP Inkjet Printers
foomatic-db-hpijs-1.4 Foomatic data for the HPIJS printer drivers
foomatic-filters-3.0.2_4 Foomatic wrapper scripts
foo2zjs-20070120_1 Driver for printers that use the ZjStream wire protocol
Note: do not install hplip. You will either use foo2xqx -OR- hplip, not both.

4. Добавляем в /etc/rc.conf

usbd_enable="YES"
cupsd_enable="YES"

5. Добавляем в /etc/devfs.rules

add path 'ugen*' group cups
add path 'ugen*' mode 0660

6. Качаем и распаковываем http://foo2zjs.rkkda.com/firmware/sihpP1006.tar.gz

7. Делаем в папке где распаковали:

arm2hpdl sihpP1006.img > sihpP1006.dl

8. Посылаем прорамму на принтер:

cat /home/baron/hp_firmware/sihpP1006.dl > /dev/ugen0.1

9. Готовый постскрипт на принтер отправляем так:

foo2xqx-wrapper /postscript.ps > /dev/ugen0.1

10. Пример постскрипта:

%!PS-Adobe-1.0
% По умолчанию, постскрипт использует единицу измерения 1 пункт=1/72 дюйма,
% а нам нравятся миллиметры.
72 25.4 div           % 1 мм = 72/25.4 пунктов
dup                   % дублировать значение на вершине стека
scale                 % растянуть в это количество раз по обеим координатам
100 100 translate     % установить начало координат в (100мм, 100мм)
 
/Times-Roman findfont % взять шрифт Times-Roman
10 scalefont          % растянуть до размера 10 (у нас единица измерения - мм!)
setfont               % установить выбранный шрифт
 
0 30 330 {            % цикл для углов от 0 до 330 с шагом 30
gsave                 % запомнить текущее преобразование координат
rotate              % повернуть систему координат (угол в градусах берём с вершины стека)
15 0 moveto         % перейти в точку (15мм, 0мм)
(Wikipedia) show    % написать слово текущим шрифтом
grestore              % вернуть преобразование координат
} for                 % конец цикла for
 
showpage              % вывести страницу

Вроде все, статья честно переписана с сайтов, указанных ниже!

Источники:

http://ru.wikipedia.org/wiki/PostScript

http://stragaw.blogspot.com/2009/02/hp-laserjet-p1005.html

http://foo2xqx.rkkda.com

http://www.webmiscreants.com/index.php?page=howto_P1006

Автор: Евгений

Дата: 23.06.2009 в 01:16:22

Рубрики: Unix, Linux

Метки: , , ,

Leave a Reply

You must be logged in to post a comment.