שילוב מדפסות Brother עם 1C-Bitrix
במעבר לתוויות דביקות, חנויות מקוונות רבות נתקלות בבעיה: מדפסות Zebra יקרות ומוגזמות לנפחים קטנים. Brother מציעה חלופה חסכונית, אך השילוב עם Bitrix דורש גישה לא סטנדרטית—דרך מדפסת המערכת ולא דרך זרם נתונים ישיר. יש לנו ניסיון של למעלה מ-10 פרויקטים בשילוב Brother במערכת 1C-Bitrix ואנו מבטיחים הדפסה יציבה בתרחישי משרד ומחסן קל.
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. Bitrix יוצרת 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 — באופן דומה דרך function printLabelViaCups(string $pdfPath, string $printerName): bool { $cmd = escapeshellcmd("lp -d " . escapeshellarg($printerName) . " " . escapeshellarg($pdfPath)); exec($cmd . ' 2>&1', $output, $returnCode); return $returnCode === 0; } או SumatraPDF -print-to. אפשרות 2: Brother SDK / b-PAC (Windows בלבד)
Brother מספקת אובייקט COM בשם b-PAC לעבודה עם תבניות mspaint /pt ב-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 מותקן. לא ישימה לשרתי ייצור תחת Linux.
אפשרות 3: Brother Web API (QL-820NWB ודגמים חדשים יותר)
לחלק מדגמי Brother הרשתיים יש Web API. התיעוד תלוי בדגם, אך העיקרון הכללי: HTTP POST עם תמונה או PDF מקודדים ב-base64. שיטה זו מהירה יותר מהדפסת מערכת אך דורשת פיתוח נוסף בצד Bitrix.
איך לארגן תור הדפסה עבור Brother?
בניגוד ל-Zebra (שבה שליחת TCP מהירה), הדפסה דרך מדפסת המערכת אורכת זמן. אנו משתמשים באותה ארכיטקטורת תור .lbx:
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 ); סוכן Bitrix לוקח משימות מהתור, מרנדר PNG דרך $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(); , ושולח אותו ל-CUPS. לנפחים גדולים, ניתן להרחיב באמצעות מספר מדפסות והרצת מספר סוכנים במקביל.
יצירת תוויות בצד Bitrix
עבור שרתי 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 | גבוהה | בינונית | כן | לא |
שילוב עם ממשק הניהול
בכרטיס המוצר ב-Bitrix, אנו מוסיפים כפתור "הדפס תווית"—הוא מוסיף משימה לתור עם בחירת מדפסת מהרשימה (bl_brother_print_queue). בעת בחירה מרובה של מוצרים ברשימה, זמינה פעולה קבוצתית "הדפס תוויות".
כפתור "הדפס תוויות למשלוח" מתווסף לכרטיס הניהול של ההזמנה: הוא יוצר תווית כתובת (שם, כתובת, מספר הזמנה) ותוויות איסוף. כל התבניות ניתנות להתאמה אישית בקלות לעיצוב החברה שלך—אנו מספקים קבצי SVG.
היקף העבודה
- מנוע רינדור תוויות עם תמיכה בברקוד, מחיר, שם (GD/Imagick) — יומיים
- תור הדפסה + סוכן עם טיפול בשגיאות וניסיונות חוזרים — יום אחד
- שילוב מדפסת מערכת (CUPS/Windows) — יום אחד
- כפתורי הדפסה בכרטיסי מוצר והזמנה — יומיים
- בדיקות עם מדפסת Brother אמיתית — יום אחד
- תיעוד התקנה והגדרה — כלול
- שבועיים של תמיכה לאחר ההשקה — ללא עלות
לוח זמנים
| שלב | משך |
|---|---|
| מנוע רינדור תוויות (GD/Imagick + TTF) | יומיים |
| תור הדפסה + סוכן | יום אחד |
| שילוב CUPS / מדפסת מערכת | יום אחד |
| כפתורים בכרטיסי מוצר והזמנה | יומיים |
| בדיקות עם מדפסת Brother אמיתית | יום אחד |
| סה"כ | 7–9 ימים |
נעריך את הפרויקט שלך בחינם—פשוט תאר את המשימה. נבצע שילוב מפתח ב-7–9 ימי עסקים עם אחריות לפעולה יציבה.







