Печать файлов с 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.
    На рабочий принтер и на домашний с других компьютеров — буду покупать страницы по мере надобности. Не думаю, что буду печатать столько, чтобы понадобилось купить подписку, она, на мой взгляд, нужна только для коллективной работы.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 36

      +1
      А кроме «очевидного решения», другие не рассматривались?
      Поискав на маркете я за пару минут нашел PrintBot, Samsung MobilePrint, Lexmark Mobile Printing.
      Все утверждают что поддерживают ipp, некоторые упоминают smb, raw, lpr. То есть, на первый взгляд ничего не мешает печатать прямо с андроида по ipp, например, на сетевой принтер.

      Если эти варианты рассматривались — было бы интересно про них услышать. И чем PrinterShare лучше.
        +4
        PrintBot — вообще какая-то странная вещь. Работает только в одной подсети с принтером (нет печати через интернет), но при этом требует наличия доступа в интернет — отправляет файл на сервера поставщика сервиса, затем получает обработанный и уж потом посылает его на принтер. Ограничения на поддерживаемые форматы. Нужна специальная настройка принтеров — мало кто расшаривает принтеры с windows-машин по lpr/ipp.

        Samsung MobilePrint — работает только с самсунгами. Мой xerox, конечно, тоже с какой-то стороны самсунг, но мне ведь и на работу печатать надо, а там в основном Canon'ы да HP.

        Lexmark — по описанию работает только с лексмарками, а по отзывам — не работает вообще. :)

        Ну и все программы — только для локальной сети, а мне хотелось получить печать из интернета на мои принтеры, а не придти к кому-то в гости и печатать на их принтеры — в этом случае гораздо проще скинуть документ на флэшку/в сеть и распечатать с их компьютера.
        0
        За статью спасибо, но не понимаю одного, на мой взгляд, самого важного: в чём прикол распечатывать с андроида, имея энное количество компьютеров дома?

        Проще поставить приложения Xmarks (или аналоги) и сохранять ссылки, которые впоследствии и печатать. Аналогично, имея документы в устройстве, отправлять их в GoogleDocs, Dropbox и печатать оттуда.
          +1
          Лень. Нажать кнопку «печать» быстрее, чем кидаться файлами через дропбокс.
          0
          Можете поделиться немного поподробнее про замену Asus Transformer на Lenovo Thinkpad?

          Только из-за стилуса и USB хотите менять? То что на Lenovo не жесткое соединение экран+клавиатура — не смущает? (говорят вроде на коленках не так удобно печатать)

          Сам нахожусь в состоянии выбора.
            0
            В первую очередь — да, стилус. Ну и полноценный USB на самом планшете. Клавиатура вторична, я сомневаюсь, что буду много ей пользоваться, тем более — на коленях. Я даже пока не решил, брать леново с клавиатурой или без.

            Недостаток же леново — подключенная клавиатура занимает USB. В то время как у асуса подключенная клавиатура наоборот, дает USB.
              0
              Плотненько, спасибо… я-то как-раз из-за клавиатуры к этим двум вариантам присматриваюсь.
              Вроде лучше них клавиатурников сейчас нет.
                0
                Решил, что гулять — так гулять и заказал ленову в топовой комплектации, с клавиатурой и доком.
                  0
                  И как оно в результате? Юзабельна клавиатура в оперативном режиме? (без стола)
                    +1
                    Слабо. Стационарно еще можно пытаться, да и то сползает, а вот в транспорте не рискнул бы. Либо одной рукой придерживать, второй печатать.

                    Распознавание рукописного текста, кстати, оказалось на удивление пристойным. Правда не системное (оно как раз дурит), а в одном из приложений — мой почерк распознает отлично.
                      0
                      Ясненько, спасибо. :)
                      Значит для оперативной печати текстов берем или Асус, или какой-нибудь ультрабук.
            +1
            ох как все сложно, помоему очевидным решением является все-же dropbox
              +1
              Лучше день потерять, а потом за пять минут долететь. :)

              Дропбокс — это тот самый костыль типа почтового робота — habrahabr.ru/blogs/soft/107503/
              Плюс управления процессом нет, если мне надо распечатать определенные страницы.

              Само собой, с покупкой леново количество распечаток ощутимо уменьшится — можно будет нормально порисовать на самом планшете, но пока ленова не куплена, рисовать приходится на бумаге (я думаю с ручкой в руках, с клавиатурой думать получается гораздо хуже).
              –2
              >При печати с мобильного клиента Printershare на принтеры, расшаренные через Google Cloud Print счетчик страниц не расходуется.

              А почему?
              Т.е. получается Вы обнаружили уязвимость, позволяющую обойти ресурс чипованного катриджа?
                0
                Имеется ввиду количество страниц, которые можно напечатать через PrinterShare.
                habrastorage.org/storage1/24c70b19/ff9d0b6a/426306b7/4ddd13f2.png — сверху зеленая строчка, в которой написано «доступно страниц» — вот тот самый счетчик и имелся ввиду, а отнюдь не принтерный. :)
                0
                Мне одному странно от такого алгоритма печати, как пересылка документа на-хрен-знает-чей-сервер + ожидание-'всего-несколько-минут' + оплати-за-хрен-знает-что?

                Ключевое в вопросе является даже не то что печать медленная (спишем на сырость и непопулярность), и даже не то что данные доступны в открытом виде владельцам стороннего сервера (хотя это отдельный разговор, и в будущем банальное незнание может послужить причиной серьезной информационной утечки небольших организаций, сэкономивших на), а то что за этот в принципе простой сервис необходимо еще и платить? за что!?

                За шаринг принтера (доступ из любой точки), аутентификацию и жалкие настройки публичного доступа (квоты на объемы печати во времени хотя-бы есть?) 5$ на 100 страниц!
                  0
                  организаций, сэкономивших на инфрастуктуре и системных администраторах и выбравших в качестве базы облачные сервисы и онлайн операционные системы.
                    0
                    Ну вы сами написали, за что.
                    А вы бы предоставляли бы такой сервис бесплатно, на чистой благотворительности?
                      0
                      но не 5 центов же за страницу!!! это не оптовая цена за распечатку вместе с самим листом бумаги…

                      Такой сервис может быть либо в виде абонентки, либо фриварным и финансироваться смежными проектами, так как затрат на инфраструктуру почти никаких.
                        0
                        Так и есть в виде абонентки. 10 баксов в месяц — и печатай сколько влезет. Или для мобильного клиента — единовременная покупка и безлимитная печать.
                    +2
                    костыли какие-то сторонние… а IPP уже запретили на винде что-ли?
                      0
                      Да и не разрешали особо. :) Пришлось бы заводить реальный IP для принтсервера, пробрасывать порты через раутер, плюс с андроида печать напрямую на принтеры довольно напряжная…
                      0
                      1. а что напряжного?
                      2. А через облако IP не нужен? Там как — pull, типа принтер сам периодически забирает задания?
                        0
                        1) Гораздо больше телодвижений, как на принтсервере, так и на клиентах. Тем более, что далеко не каждый принтер есть возможность отдать через ipp, а printershare (да и гугл, вроде) может расшарить любой принтер из подключенных к компьютеру — хоть локальный, хоть сетевой, хоть виртуальный.

                        2) А через облако реальный IP не нужен, соединение открывается принтсервером, который может спокойно сидеть за натом (что он у меня и делает).
                        0
                        А почему не печатали используя дропбокс?
                          0
                          Потому что дропбокс печатать не умеет. Это только средство синхронизации файлов.
                            0
                            И что из этого?
                            Кто мешает написать простейший скрипт, который отслеживает файлы в заданной папке дропбокса и отправляет их на печать
                              0
                              Или как вариант написать в гугле «Печать dropbox» и перейти на первую ссылку habrahabr.ru/blogs/soft/107503/
                                0
                                А кто мешает прочитать хотя бы первые пару абзацев? Ну и комментарии тоже можно.

                                Использование Dropbox'а для печати — это костыль типа того же почтового робота. Нету превью, нету настроек принтера, нету выбора страниц для печати…
                                  0
                                  А установка виртуалки и прочий гемор — это не костыль?
                                    0
                                    Я же написал, что виртуалке есть вполне логичное объяснение. :) Windows 2008 Web Server не умеет расшаривать принтеры — вообще. Потому чтобы дать доступ к нему для домашних компьютеров по smb, пришлось изобразить такую конструкцию.

                                    Это моя личная реалия, которая никакого влияния ни на printershare, ни на гуглопринт не оказывает. Просто у меня принтер подключен именно так. Никто не мешает иметь его подключенным к обычному компьютеру.
                          0
                          Наткнулся на статью, решил попробовать вариант с Google Cloud Print, принтер распознается(hp 1018), задания успешно отправляются, только печатать и не думает. На странице управления заданиями висит queued, в веб-интерфейсе cups'а тишина, та же картина с вручную добавленными заданиями.
                          Самое изначальное и очевидное решение похоже ещё и не всегда работоспособное.
                            0
                            Судя по «в веб-интерфейсе cups'а», у вас линукс или мак. Тут ничем помочь не могу, если не хотите поизвращаться с виртуальными машинами, как я делал. :)
                              0
                              Linux, да, debian. По первому же гуглению был найден рабочий вариант, всё завелось с первого раза и прекрасно теперь работает: www.niftiestsoftware.com/cups-cloud-print/
                              0
                              У меня у самого 1018 — очень долго шаманил с cups. Лучшее что получалось — он один раз печатал нормально, а потом все, кирдык :(
                              В итоге подключил его к виндовому компу и через cloud print все отлично завелось :)
                                0
                                В смысле даже локальная печать не работает?

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое