Да квази загогулина в названии не просто так, с любого принтера печатать не получиться, даже с как бы поддерживаемого тоже не получится — но процесс ниже описанный правильный и рабочий (если попадается удачный принтер). А пока же будем печать в PDF(причем по пиксельно) файлы чтобы хоть как-то можно было распечатать с iPad, забирать их с web сервера, ну и удалять чтобы не лежали вечно — безопасности для и пр!
Будем устанавливать на FreeBSD сервер CUPS разработку Apple для печати, вообще то для печати по сети ничего дополнительно не нужно но в Apple все через Apple так что установим!
Устанавливаем CUPS
cd /usr/ports/print/cups-base
make
Убрал Desktop Icons и главное чтобы внизу стояло MDNSRESPONDER
УДИВИТЕЛЬНО и нет этому оправдания. Но если устанавливать на FreeBSD CUPS без выбранной галочки MDNSRESPONDER оно не установится
make install
так же установим (кстати не кстати, но это еще один косячный момент)
cd /usr/ports/print/cups-filters
Тут еще одна странность… купс фильтр не установится. Потому что не установится poppler — выход — на XP poppler!
правим файл
vi MakeFile
закрываем там
#BUILD_DEPENDS= pdftops:${PORTSDIR}/graphics/poppler-utils #RUN_DEPENDS= pdftops:${PORTSDIR}/graphics/poppler-utils
make
make install
ставим PDF принтер
cd /usr/ports/print/cups-pdf
make
make install
А так же ставим вот это — добавляет драйверов принтеров
cd /usr/ports/print/foomatic-db
make
make install
cd /usr/ports/print/foomatic-filters
make
make install
вставляем на загрузку
vi /etc/rc.conf
cupsd_enable="YES" avahi_daemon_enable="YES"
vi /usr/local/etc/cups/cupsd.conf
меняем тут слушать локалхост на IP сервера
Listen 192.168.2.200:631
и чтобы пустило доводим эти разделы до такого вида
# Restrict access to the server... <Location /> Order allow,deny Allow all </Location> # Restrict access to the admin pages... <Location /admin> Order allow,deny Allow all </Location>
И на всякий
# Job-related operations must be done by the owner or an administrator... <Limit Create-Job Print-Job Print-URI Validate-Job> Order deny,allow Allow all </Limit>
запускаем
/usr/local/etc/rc.d/cupsd start
заходим по адресу
http://IP_vashego_nashego_servera:631
ВНИМАНИЕ: Но принтер Kyocera FS-1125MFP не работает с CUPS
но понимания процесса установки важен для раздела Устанавливаем принтер CUPS-PDF (Virtual PDF Printer)
просто прочитайте
Идем в Добавление принтеров и групп > Добавить принтер тут надо подождать и принять сертификаты — FireFox жутко ругается на безопасность. В конце концов запросит имя и пароль пользователя из группы whell — ну это root.
Опять жмем Добавить принтер и что удивительно CUPS находит мой принтер — проблемный FS-1125MFP (Kyocera FS-1125MFP)!
Для начала надо найти драйвер для Linux это файл PDD мелкий на цать килобайт но без него не фуручит. На Российском сайте Kyocera его нет, но он есть на Европейском: http://www.kyoceradocumentsolutions.eu/index/service/dlc.false.driver.FS1125MFP._.EN.html
сам файл прячится в архиве по даресу /Linux/32bit/Global/English/Kyocera_FS-1125MFPGDI.ppd уф. Куча PPD драйверов есть на сайтп www.opendrivers.com, но наличии ссылки там не значит наличии файла драйверов(просто не дают скачать), а сам файл не гарантирует работоспособность! В моём случае даже наличие PDD для Kyocera FS-1125MFP от производителя не позволило печать через CUPS!!!!!
При установке надо обязательно выбрать Разрешить совместный доступ и подсунуть PDD файл
Да кстати принтер после установки будет ругаться что нет вот этого /usr/lib/cups/filter/rastertokpsl этот файл вместе с драйверами идет создадим эту ппакуи положим его там
создаем папку
mkdir /usr/lib/cups/filter/
Копируем туда файл и даем ему права
chown root:wheel rastertokpsl
chmod 555 rastertokpsl
Теперь создаем файл который поможет находить наш принтер
cd /usr/local/etc/avahi/services
vi printer.service
добавляем текст
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>Kyocera1125MFP</name> <service> <type>_ipp._tcp</type> <subtype>_universal._sub._ipp._tcp</subtype> <port>631</port> <txt-record>txtver=1</txt-record> <txt-record>qtotal=1</txt-record> <txt-record>rp=printers/Kyocera1125MFP</txt-record> <txt-record>ty=Kyocera FS-1125MFP</txt-record> <txt-record>adminurl=http://192.168.2.200:631/printers/Kyocera1125MFP</txt-record> <txt-record>note=itcooky</txt-record> <txt-record>priority=0</txt-record> <txt-record>product=Kyocera FS-1125MFP</txt-record> <txt-record>printer-state=3</txt-record> <txt-record>printer-type=0x801046</txt-record> <txt-record>Transparent=T</txt-record> <txt-record>Binary=T</txt-record> <txt-record>Fax=F</txt-record> <txt-record>Color=T</txt-record> <txt-record>Duplex=F</txt-record> <txt-record>Staple=F</txt-record> <txt-record>Copies=T</txt-record> <txt-record>Collate=F</txt-record> <txt-record>Punch=F</txt-record> <txt-record>Bind=F</txt-record> <txt-record>Sort=F</txt-record> <txt-record>Scan=F</txt-record> <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf</txt-record> <txt-record>URF=W8,SRGB24,CP1,RS600</txt-record> </service> </service-group>
И добавляем
cd /usr/local/etc/avahi/
vi avahi-daemon.conf
Страку
enable-dbus=no
а то не заработает
Стартуем
/usr/local/etc/rc.d/avahi-daemon start
Да и CUPS тоже
/usr/local/etc/rc.d/cupsd start
Берем iOS устройство типа iPad, заходим в Safari от туда можно распечатать, а вот из почты нельзя странно однако.
Слева жмем нехарактерный значок квадрат со стрелкой выходящую из центра через его верхнею грань наружу — нижний ряд проматываем до иконки Печать
И в Найти принтеры ищем принтер, он у меня в качестве недавнего
Установлено что принтер c родным PDD, не работает в следующих комбинациях:
IPad > CUPS на FreeBSD > Printer по сети > ничего
Ubuntu > CUPS на FreeBSD > Printer по сети > ничего
IPad > CUPS на Ubuntu > Printer по сети > вылезает лист с пятном на 1% от размера A4
Работает только на прямую
Ubuntu > Printer по сети > A4
Ну и черт с ним с Kyocera FS-1125MFP > вот не надо было покупать дешевый принтер хорошего производителя. Потому что хороший производитель чтобы сделать дешевый принтер злономерно его ухудшает. Хороший дешевый принтер может сделать только плохой производителей — который старается на все 100%!
Устанавливаем принтер CUPS-PDF (Virtual PDF Printer)
По шагам все точно также, только в качестве драйвера выбираем драйвер Generic CUPS-PDF Printer
Файл AVAHI меняем
cd /usr/local/etc/avahi/services
vi printer.service
на
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>Virtual_PDF_Printer</name> <service> <type>_ipp._tcp</type> <subtype>_universal._sub._ipp._tcp</subtype> <port>631</port> <txt-record>txtver=1</txt-record> <txt-record>qtotal=1</txt-record> <txt-record>rp=printers/Virtual_PDF_Printer</txt-record> <txt-record>ty=Kyocera FS-1125MFP</txt-record> <txt-record>adminurl=http://192.168.2.200:631/printers/Virtual_PDF_Printer</txt-record> <txt-record>note=itcooky</txt-record> <txt-record>priority=0</txt-record> <txt-record>product=Virtual_PDF_Printer</txt-record> <txt-record>printer-state=3</txt-record> <txt-record>printer-type=0x801046</txt-record> <txt-record>Transparent=T</txt-record> <txt-record>Binary=T</txt-record> <txt-record>Fax=F</txt-record> <txt-record>Color=T</txt-record> <txt-record>Duplex=F</txt-record> <txt-record>Staple=F</txt-record> <txt-record>Copies=T</txt-record> <txt-record>Collate=F</txt-record> <txt-record>Punch=F</txt-record> <txt-record>Bind=F</txt-record> <txt-record>Sort=F</txt-record> <txt-record>Scan=F</txt-record> <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf</txt-record> <txt-record>URF=W8,SRGB24,CP1,RS600</txt-record> </service> </service-group>
А так же в файле
vi /usr/local/etc/cups/cups-pdf.conf
правим строки на
### Key: AnonDirName ## ABSOLUTE path for anonymously created PDF filesmkdir /usr/local/www/apache22/data/pdfprinter chown www:www /usr/local/www/apache22/data/pdfprinter ## if anonymous access is disabled this setting has no effect ### Default: /var/spool/cups-pdf/ANONYMOUS AnonDirName /usr/local/www/apache22/data/pdfprinter
и
### Key: AnonUser ## uid for anonymous PDF creation (this might be a security issue) ## this setting has no influence on AnonDirName (see there) ## set this to an empty value to disable anonymous ### Default: nobody AnonUser www
незабываем создать папку
mkdir /usr/local/www/apache22/data/pdfprinter
chown www:www /usr/local/www/apache22/data/pdfprinter
Перестартуем
да и CUPS тоже
/usr/local/etc/rc.d/cupsd restart
/usr/local/etc/rc.d/avahi-daemon restart
Печатаем с iPad’а заглавную страницу сайта
Она не сразу появится в папке, вес таки большая, ждем, ждем, ждем…
Появилась! Но нельзя сказать что cups-pdf печатает все корректно но буковки не пропали а это главное! Да и еще буковки получаются не буковами а пикселями — картинкой ээээээ ну да ладно!
И ура товарищи(по несчастью) мы можем печатать из iPad в печатаемый всеми формат, за ноль рублей(ой кто-то сейчас перевернулся)!
UPD: А и да. Удаляем файлы старее 20 минут из папки для печати чтобы они там не висели до бесконечности… За 20 минут можно этот файл или выкачать на мобилу или открыть с компа чтобы распечатать нормальным способом.
Добавляем
crontab -e
строку
*/20 * * * * /usr/bin/find /usr/local/www/apache22/data/pdfprinter -type f -mmin +20 -exec rm -f {} \; >/dev/null 2>&1
Добавить комментарий