Інтеграція 1С-Бітрікс із принтерами етикеток Brother

Інтеграція 1С-Бітрікс із принтерами етикеток Brother При переході на самоклеючі етикетки багато інтернет-магазинів стикаються з проблемою: Zebra-принтери дорогі, а для малих обсягів надлишкові. Brother пропонує бюджетну альтернативу, але інтеграція з Бітрікс потребує нестандартного підходу — чере
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс із принтерами етикеток Brother
Середній
~1-2 тижні

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1443
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    752
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    873
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    795
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1155

Інтеграція 1С-Бітрікс із принтерами етикеток Brother

При переході на самоклеючі етикетки багато інтернет-магазинів стикаються з проблемою: Zebra-принтери дорогі, а для малих обсягів надлишкові. Brother пропонує бюджетну альтернативу, але інтеграція з Бітрікс потребує нестандартного підходу — через системний принтер, а не прямий потік даних. Ми маємо досвід понад 10 проєктів із вбудовування Brother в екосистему 1С-Бітрікс і гарантуємо стабільний друк в офісних та легких складських сценаріях.

Brother — альтернатива Zebra для офісних та легких складських завдань. Лінійки QL (термодрук на стрічках DK) та PT (стрічкові принтери) використовуються там, де потрібні невеликі партії етикеток: маркування комплектації, адресні наклейки на відправлення, етикетки полиць. Принципова відмінність від Zebra: Brother працює переважно через друк із системного принтера (GDI/CUPS), а не через RAW TCP/IP з ZPL. Brother на 30–50% швидший у налаштуванні для малого бізнесу — не потрібно вивчати ZPL, достатньо базових знань PHP.

Чому Brother, а не Zebra для старту?

Brother суттєво вигідніший при обсягах до 500 етикеток на день: вартість принтера в 2-3 рази нижча, а налаштування інтеграції займає на 3-5 днів менше. Для інтернет-магазину з 50-200 замовленнями на день це оптимальне рішення. Якщо обсяги зростуть — ми масштабуємо систему до Zebra без втрати даних.

Способи взаємодії з принтером Brother

Варіант 1: Через системний принтер (рекомендується для офісу)

Brother встановлюється як системний принтер у Windows або macOS. Бітрікс генерує PDF або PNG потрібного розміру та відправляє на друк через системну команду:

function printLabelViaCups(string $pdfPath, string $printerName): bool { $cmd = escapeshellcmd("lp -d " . escapeshellarg($printerName) . " " . escapeshellarg($pdfPath)); exec($cmd . ' 2>&1', $output, $returnCode); return $returnCode === 0; } 

Для Windows — аналогічно через SumatraPDF -print-to або mspaint /pt. Варіант 2: Brother SDK / b-PAC (Windows only)

Brother надає COM-об'єкт b-PAC для роботи з шаблонами .lbx у P-touch Editor. Інтеграція через PHP COM-інтерфейс:

$doc = new COM('bpac.Document'); $doc->Open('C:\\Labels\\price_label.lbx'); $doc->GetObject('barcode')->Text = $barcode; $doc->GetObject('price')->Text = number_format($price, 2, ',', ' ') . ' руб.'; $doc->GetObject('name')->Text = $productName; $doc->StartPrint('', 0); $doc->PrintOut(1, 0); $doc->EndPrint(); $doc->Close(); 

Цей підхід працює лише якщо PHP виконується на Windows-сервері зі встановленим Brother P-touch Editor. Для production-серверів під Linux не застосовний.

Варіант 3: Brother Web API (QL-820NWB та нові моделі)

Ряд мережевих моделей Brother мають веб-API. Документація специфічна для кожної моделі, але загальний принцип: HTTP POST з base64-закодованим зображенням або PDF. Цей спосіб швидший за системний друк, але потребує додаткової розробки на стороні Бітрікс.

Як організувати чергу друку для Brother?

На відміну від Zebra (де TCP-відправка швидка), друк через системний принтер займає час. Використовуємо ту саму архітектуру черги bl_brother_print_queue:

CREATE TABLE bl_brother_print_queue ( id SERIAL PRIMARY KEY, printer_name VARCHAR(128) NOT NULL, -- ім'я в CUPS template VARCHAR(64) NOT NULL, product_id INT, data_json JSONB, copies SMALLINT DEFAULT 1, status VARCHAR(20) DEFAULT 'pending', created_at TIMESTAMP DEFAULT NOW(), processed_at TIMESTAMP ); 

Агент Бітрікс бере завдання з черги, рендерить PNG через BrotherLabelRenderer, відправляє на CUPS. Для великих обсягів можна масштабувати — ставити кілька принтерів і крутити по кілька агентів паралельно.

Генерація етикетки на стороні Бітрікс

Для Linux-серверів (варіант 1) генеруємо зображення етикетки через GD або Imagick:

class BrotherLabelRenderer { public function renderPriceLabel(array $product, int $widthMm = 62, int $heightMm = 29): string { $dpi = 300; $wPx = (int)($widthMm / 25.4 * $dpi); $hPx = (int)($heightMm / 25.4 * $dpi); $image = imagecreatetruecolor($wPx, $hPx); $white = imagecolorallocate($image, 255, 255, 255); $black = imagecolorallocate($image, 0, 0, 0); imagefill($image, 0, 0, $white); // Назва товару (використовуємо TTF-шрифт) $fontPath = $_SERVER['DOCUMENT_ROOT'] . '/local/fonts/DejaVuSans.ttf'; imagettftext($image, 14, 0, 20, 60, $black, $fontPath, mb_substr($product['NAME'], 0, 35)); // Ціна велико $price = number_format($product['PRICE'], 2, ',', ' ') . ' руб.'; imagettftext($image, 28, 0, 20, 120, $black, $fontPath, $price); // Штрихкод через бібліотеку (picqer/php-barcode-generator) $barcodeGenerator = new \Picqer\Barcode\BarcodeGeneratorPNG(); $barcodePng = $barcodeGenerator->getBarcode($product['BARCODE'], $barcodeGenerator::TYPE_EAN_13, 2, 60); $barcodeImg = imagecreatefromstring($barcodePng); imagecopy($image, $barcodeImg, 20, 150, 0, 0, imagesx($barcodeImg), imagesy($barcodeImg)); $tmpPath = sys_get_temp_dir() . '/label_' . $product['ID'] . '_' . time() . '.png'; imagepng($image, $tmpPath); imagedestroy($image); return $tmpPath; } } 

Imagick дає більш чіткі шрифти та підтримує векторні елементи. Ми рекомендуємо використовувати його на серверах з PHP 8.1+.

Порівняння методів інтеграції

Метод Швидкість друку Складність налаштування Сумісність з Linux Необхідність SDK
Системний принтер (CUPS) Середня Низька Так Ні
COM-об'єкт b-PAC Висока Висока Ні Так
Brother Web API Висока Середня Так Ні

Інтеграція з адміністративним інтерфейсом

У картці товару Бітрікс додаємо кнопку «Надрукувати етикетку» — вона додає завдання в чергу з вибором принтера зі списку (bl_brother_printers). При масовому виділенні товарів у списку — групова дія «Надрукувати етикетки».

Кнопка «Надрукувати етикетки на відвантажуване замовлення» додається в адміністративну картку замовлення: генерує адресну наклейку (ПІБ, адреса, номер замовлення) та етикетки комплектації. Усі шаблони легко адаптуються під дизайн вашої компанії — ми надаємо вихідні SVG.

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

  • Рендерер етикеток з підтримкою штрихкодів, цін, назв (GD/Imagick) — 2 дні
  • Черга друку + агент з обробкою помилок та повторними спробами — 1 день
  • Інтеграція з системним принтером (CUPS/Windows) — 1 день
  • Кнопки друку в картці товару та замовлення — 2 дні
  • Тестування з реальним принтером Brother — 1 день
  • Документація з встановлення та налаштування — включено
  • Підтримка 2 тижні після запуску — безкоштовно

Строки

Етап Строк
Рендерер етикеток (GD/Imagick + TTF) 2 дні
Черга друку + агент 1 день
Інтеграція з CUPS / системним принтером 1 день
Кнопки в картці товару та замовлення 2 дні
Тестування з реальним принтером Brother 1 день
Разом 7–9 днів

Оцінимо ваш проєкт безкоштовно — просто опишіть завдання. Виконаємо інтеграцію під ключ за 7–9 робочих днів з гарантією стабільної роботи.