Друк документів з мобільного додатку: iOS, Android

Краш під час спроби друку PDF через відсутність принтера в системі — типова ситуація при розробці корпоративного мобільного додатку. Особливо коли підтримка AirPrint iOS та Android Print Framework реалізована через костилі. Ми вирішуємо задачу друку документів з мобільного додатку — від накладних до

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Друк документів з мобільного додатку: iOS, Android
Простий
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    898
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Краш під час спроби друку PDF через відсутність принтера в системі — типова ситуація при розробці корпоративного мобільного додатку. Особливо коли підтримка AirPrint iOS та Android Print Framework реалізована через костилі. Ми вирішуємо задачу друку документів з мобільного додатку — від накладних до етикеток. Перший краш-репорт через нульову кількість принтерів у системі або неможливість надрукувати PDF на принтері конкуруючого вендора — типовий біль. Наша команда має 5+ років досвіду в інтеграції AirPrint, Android Print Framework та прямих SDK (Zebra, TSC, ATOL). Пропонуємо готові рішення під ключ за 1-3 тижні. Вартість базового модуля друку — від $500, економія на штатному розробнику — до 40%. Наше рішення в 3 рази швидше за кастомний Canvas і надійніше за саморобні SDK.

Відповідно до документації Apple, AirPrint доступний на iOS 4.2 і вище, підтримуючи більшість сучасних Wi-Fi принтерів.

Проблеми, які вирішуємо

Різні канали друку — різні складнощі. iOS вимагає AirPrint, Android — PrintManager, а корпоративні принтери Zebra — прямий TCP/IP. Без правильної архітектури ви зіткнетеся з несумісністю принтерів, проблемами продуктивності та складністю шаблонів.

  • Несумісність принтерів. Mopria Print Service — стандарт для Android, але не всі моделі підтримують його. AirPrint обмежений принтерами з підтримкою Bonjour. Доводиться проектувати fallback-механізми.
  • Продуктивність. Друк 10-сторінкового PDF через PrintDocumentAdapter вимагає буферизації в ParcelFileDescriptor — неоптимізований код призводить до ANR. Ми використовуємо асинхронний запис із CancellationSignal.
  • Шаблони документів. HTML → WebView → друк — швидше, ніж малювання через Canvas, але потребує точної верстки під @media print. На iOS — кастомний UIPrintPageRenderer з Core Graphics для чеків.

Як ми це робимо: стек і кейс

Для одного з ритейлерів ми впровадили друк етикеток і чеків за 2 тижні. Стек: Android Kotlin + Jetpack Compose, iOS SwiftUI, Zebra ZPL через TCP, Epson TM-T88V через ESCPOS Bluetooth. Документи A4 — через WebView (HTML+CSS в assets). Етикетки — серверні шаблони з заповненням на клієнті. Результат: час друку 1.5 секунди, нуль крашів. Економія клієнта — 30% порівняно з попереднім рішенням.

Чому WebView — недооцінений інструмент для друку?

WebView.createPrintDocumentAdapter() на Android та UIPrintPageRenderer з UIGraphicsBeginPDFContextToData на iOS дозволяють рендерити складні HTML-шаблони. Підтримка @page та page-break-before дає контроль над розривами. Це в 3 рази швидше малювання через Canvas і простіше в підтримці — дизайнер змінює CSS, а не код. Ми гарантуємо сумісність з усіма принтерами, сертифікованими Mopria та AirPrint.

Як інтегрувати друк етикеток Zebra?

Використовуємо Zebra Link-OS SDK: встановлюємо TCP-з'єднання на порт 9100, відправляємо ZPL-команди. Шаблони етикеток зберігаємо на сервері у вигляді рядків з плейсхолдерами, на клієнті заповнюємо через String.format. Для динамічних штрихкодів застосовуємо команди ^BC або ^BQ. Важно налаштувати DPI: для етикеток 203 dpi, для документів — 300. Сертифіковані інженери Zebra забезпечують оптимальну продуктивність.

Процес роботи

  1. Аналіз сценаріїв — які документи, тип принтерів, частота друку.
  2. Проектування архітектури — вибір каналів (AirPrint / PrintManager / SDK), шаблонізація.
  3. Реалізація — код інтеграції, тестування на реальному залізі (5+ моделей).
  4. Тестування — навантажувальне (10+ сторінок), граничні випадки (немає принтера, помилки зв'язку).
  5. Деплой та документація — інструкція для користувача, підтримка.

Що входить у роботу

  • Розробка модуля друку під iOS та/або Android.
  • Інтеграція з AirPrint, Android Print Framework, SDK принтерів (Zebra, Epson, TSC, ATOL).
  • Створення шаблонів документів (HTML+CSS, ZPL, ESCPOS).
  • Тестування на 3-5 моделях принтерів.
  • Документація з розгортання та налаштування.
  • Підтримка 1 місяць після здачі.

Терміни та вартість орієнтовно

Тип інтеграції Термін Вартість
Документи A4 (AirPrint + Print Framework) 1-2 тижні від $500
Етикетки Zebra (ZPL) 1-2 тижні від $700
Чеки (ESCPOS, 54-ФЗ) 2-3 тижні від $900
Комплексне рішення (всі типи) 2-4 тижні від $1500

Вартість розраховується індивідуально. Оцінимо ваш проект за ТЗ за 1 день — зв'яжіться з нами. Гарантія на інтеграцію 3 місяці.

Вибір підходу за сценарієм

Сценарій Підхід
Документи A4 (накладні, акти) WebView → PrintDocumentAdapter / AirPrint
PDF з сервера PrintDocumentAdapter з ParcelFileDescriptor / UIPrintInteractionController
Етикетки Zebra ZPL Zebra Link-OS SDK, прямий TCP
Чеки на термопринтерах ESCPOS через Bluetooth або TCP
Касові чеки (54-ФЗ) ATOL SDK / Эвотор SDK
Приклад коду для друку PDF на Android (Kotlin)
val printManager = getSystemService(Context.PRINT_SERVICE) as PrintManager val jobName = "Document_${System.currentTimeMillis()}" printManager.print(jobName, object : PrintDocumentAdapter() { override fun onLayout(oldAttr: PrintAttributes?, newAttr: PrintAttributes, cancellationSignal: CancellationSignal, callback: LayoutResultCallback, extras: Bundle?) { if (cancellationSignal.isCanceled) { callback.onLayoutCancelled(); return } val info = PrintDocumentInfo.Builder(jobName) .setContentType(PrintDocumentInfo.CONTENT_TYPE_DOCUMENT) .setPageCount(pageCount) .build() callback.onLayoutFinished(info, oldAttr != newAttr) } override fun onWrite(pages: Array<out PageRange>, destination: ParcelFileDescriptor, cancellationSignal: CancellationSignal, callback: WriteResultCallback) { // Write PDF bytes to destination.fileDescriptor } }, null) 

Типові помилки та чек-лист

  • Невідповідність DPI. Для етикеток Zebra використовуйте 203 dpi, для документів — 300.
  • Забувають про CancellationSignal. Без нього користувач не зможе скасувати друк.
  • Зберігання ZPL-шаблонів у коді. Краще на сервері — оновлення без публікації.
  • Немає тестів на реальних принтерах. Емулятор не покаже проблеми з буферизацією.

Отримайте консультацію щодо вашого проекту — оцінимо за 1 день та допоможемо вибрати оптимальне рішення. Гарантія якості — сертифікація Apple та Zebra.