Как стать автором
Обновить

Печать файлов с Android-устройств через интернет

Разработка под Android *
Понадобилось более активно использовать телефон (HTC Desire) и планшет (сейчас Asus Transformer, но подумываю о замене на Lenovo Thinkpad — очень хочется нормальный стилус и полноразмерный USB) в работе, потенциально — как замена ноутбуку (когда это возможно).
Для этого понадобилось реализовать возможность печати с андроида на домашний и рабочий принтеры. Попутно захотелось просто печатать с любых моих компьютеров на любые мои принтеры — и домашний, и рабочие. Если не изображать костыли вида почтового робота, который печатает все, что ему присылают, то очевидное решение — облачная печать (cloud printing).




Железная сторона

Со стороны сервера — домашний раутер на Windows 2008 Web Server, на котором крутится Vmware Workstation, в которой запущена Windows XP, в которую прокинут подключенный к раутеру Xerox 3117 (да, я в курсе, что извращенец, но такой конструкции есть вполне логичное объяснение :)). «Компьютер» с принтером напрямую в инет не смотрит, находится за NAT'ом (во внутриквартирной сети).
Со стороны клиентов — пара десктопов (семерка), тройка ноутов (семерка), пара планшетов (семерка и андроид) и телефон (андроид).

Google Cloud Print

Изначально, конечно, в голову приходит Google Cloud Print, но штука это непрозрачная, требующая наличия Google Chrome'a и работающая далеко не отовсюду. А мне было бы очень приятно, если бы была печать из любых приложений, но, к сожалению, печать с десктопа работает только в Google Chrome, аддон для Firefox'a несовместим с 7.0.1, а про другие приложения вообще молчу.
Хотя если нужна печать только с андроида, то Cloud Print подойдет. Клиенты — Cloud Print, Easy Print и нижеописанный PrinterShare™ Mobile Print.

image

Работают все, но PrinterShare, хотя и является клиентом сервиса-конкурента, мне понравился больше всех — Cloud Print и EasyPrint тупо отправляют документ на печать, а PrinterShare показывает превью, позволяет настроить, какие страницы печатать, выбрать формат бумаги, поля, двустороннюю печать и т.п.

PrinterShare

Решение от гугла устроило только частично, потому продолжил поиски. Далеко ходить не пришлось, PrinterShare всплывает довольно быстро. Устроено аналогично Cloud Print, только вместо Chrome используется свой клиент. Явное достоинство перед гуглом — после установки клиента появляется виртуальный принтер, который виден из любого приложения.

Расшарить принтер можно на Windows (XP, Vista, 7, 32 и 64 бита) и MacOS. Печатать — с Windows (XP, Vista, 7, 32 и 64 бита), MacOS, устройств на андроиде, iphone'а и ipad'a.

Установка

Про установку Google Cloud Print не писал, там все подробно написано на сайте, куда-то в сторону уйти сложно. Тут же пару слов скажу.

Во время установки по умолчанию предлагается установить Bonjour/Nearby service. Нужен для печати с устройств, находящихся в одном сегменте с принтсервером. Я не ставил, но кому-то может быть полезно.


После установки программа отображает только локальные принтеры, чтобы работать через интернет, надо зарегистрироваться и войти в систему (меню «Пользователь»)


Через клиента можно расшарить локальный принтер (выбрать и нажать «Дать доступ») или добавить расшареный принтер в список (кнопка «Найти принтер»).


Безопасность

По умолчанию расшареный принтер виден в общем списке и на него может отправить задание кто угодно (правда это не значит, то оно будет распечатано :)).
Потому принтер надо спрятать из результатов поиска — выбрать принтер в списке локальных, нажать «Свойства» и поставить галку «Не показывать», тогда его никто, кроме вас не подключит.


Или поставить для неизвестных клиентов действие «Отклонить автоматически» (меню «Принтер» — «Автоматические действия»). Там возможны три действия — «Ничего не делать», «Печатать автоматически» и «Отклонить автоматически». Изначально для вас стоит «Печатать автоматически», для неизвестных — «Ничего не делать». То есть, по-умолчанию, задание на принтер они вам повесить могут (если найдут), но оно не будет напечатано, пока сами не разрешите.


Печать с андроида

Клиент PrinterShare™ Mobile Print есть в маркете. Две версии — бесплатная и платная. Об отличиях позже. У меня пока бесплатная.


После установки печатать можно двумя методами. Либо в любом приложении (например, браузере) нажать кнопку «поделиться» и выбрать PrinterShare в списке, либо открыть файл через интерфейс самого клиента.

Из Оперы:


Из Dropbox'a:


Интерфейс клиента:


Превью, выбор страниц для печати. Страницы либо отмечаются галочками, либо непосредственно при печати можно указать, что печатать — все, выбранное или задать диапазоны (1-8, 23-54, 3):


Настройки печати:


После отправки задачи, будет написано, что печать завершена (хотя это еще не так, до фактического завершения еще несколько минут).


Через пару-тройку минут на принтсервере в трее появится сообщение о том, что пришло задание.


Если стоит «Печатать автоматически», то оно будет автоматом отправлено на принтер. Если нет — то придется зайти в список заданий и отправить его на печать самостоятельно.


Печать с Windows-клиента

Ставится клиент (тот же самый, что расшаривает принтеры). В списке принтеров появляется виртуальный принтер Printershare. В нужной программе выбираете его для печати:


Затем появляется окно настроек Printershare, где в выпадающем списке «Принтер» выбираете принтер из доступных вам.


Все, задание ушло, дальше все выглядит так же, как с андроидом, разве что в списке на принтсервере будет стоять не «from android», а название документа.

Цена вопроса

Само собой, такие возможности не полностью бесплатны: www.printershare.com/about-subscription.sdf
Изначально на халяву доступны 20 страниц. Для теста хватит.
Дальше можно либо докупать по 100 страниц за 5 баксов, либо, если много печатаете, подписка за 9,95$ в месяц с неограниченным количеством страниц.
Если печатаете только с мобильника/планшета, то можно единовременно купить премиумную версию мобильного клиента (399 рублей в android market, 4,99$ — версия для айфонов). Тогда с телефона можно печатать без ограничений.
Так же никто не запрещает зарегистрироваться заново и опять получить 20 бесплатных страничек.
При печати с мобильного клиента Printershare на принтеры, расшаренные через Google Cloud Print счетчик страниц (в PrinterShare) не расходуется.

Итог

Домашний принтер остался расшареным и через Google, и через Printershare, печатать на него с андроида буду через клиент PrinterShare + Cloud Print.
На рабочий принтер и на домашний с других компьютеров — буду покупать страницы по мере надобности. Не думаю, что буду печатать столько, чтобы понадобилось купить подписку, она, на мой взгляд, нужна только для коллективной работы.
Теги:
Хабы:
Всего голосов 39: ↑34 и ↓5 +29
Просмотры 57K
Комментарии Комментарии 36