تكوين طابعة تسمية XPrinter على Linux في VMware Workstation

مثال للتكوين على CentOS بدون غلاف رسومي ؛ عن طريق القياس ، يمكنك تكوينه على أي نظام تشغيل Linux.

أقوم بحل مشكلة معينة ، من php تحتاج إلى طباعة ملصقات بنص عشوائي وفقًا للنموذج. نظرًا لأنه من المستحيل الاعتماد على إنترنت ثابت في الحدث ، ومعظم مهام الأتمتة تتقاطع مع موقع الويب ، فقد قررنا العمل مع الجهاز الظاهري على VMware.

XPrinter مناسب أيضًا لوضع علامات على المهام ؛ التثبيت تحت النوافذ أسهل بكثير. توقف على طراز XP-460B بعرض يصل إلى 108 ملم.



نظرًا لأنني نادرًا ما أتعامل مع إعداد Linux وتوصيل الأجهزة به ، كنت أبحث عن أدلة التكوين الجاهزة ، أدركت أن أسهل طريقة لتوصيل الطابعة من خلال الأكواب. لم أتمكن من توصيل الطابعة عبر USB ، ولم تساعد أي تلاعبات على النصائح في الكتيبات ، لقد كسرت الجهاز الظاهري عدة مرات.

  • قم بتنزيل برامج التشغيل من موقع الشركة المصنعة xprintertech.com ، وهي تأتي في أرشيف واحد لنظام التشغيل Windows و Mac و Linux. توجد

    برامج التشغيل على الموقع لسلسلة من الأجهزة ، في حالتي 4 بوصة Label Printer Drivers . كما اتضح ، تم إيقاف XP-460B بالفعل ، أدركت السلسلة التي تنتمي إليها في فتات الخبز لنموذج XP-470B المماثل.
  • قم بتثبيت الطابعة في النوافذ ، وتمكين المشاركة

  • Linux 1 4BARCODE. «2 1» , bash tar , cups. bzip2 ( 80 )

    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • localhost:631 , , windows. /etc/cups/cupsd.conf:

    Listen localhost:631   Listen *:631
    <Location />
      Order allow,deny
      Allow localhost
      Allow 192.168.1.*  
    </Location>
    <Location /admin>
      Order allow,deny
      Allow localhost
      Allow 192.168.1.*
    </Location>
    

    631 firewall ( iptables):

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • IP , 192.168.1.5:631/admin

    ( root )

  • 2 , , LPD samba.

    1. LPD, windows ( Windows), .


      cups lpd://192.168.1.52/Xprinter_XP-460B, 192.168.1.52 — IP , , Xprinter_XP-460B — windows


      4BARCODE => 4B-3064TA


      ! , - . .


      — !
    2. . samba, , cups, cups, smb://user:password@192.168.1.52/Xprinter_XP-460B. , user — windows, , .

عندما يتحول كل شيء وتطبع الطابعة صفحة اختبار ، يمكن إرسال المهام عبر وحدة التحكم:

lpr -P Xprinter_XP-460B -o media=Custom.100x102mm test.txt

في هذا المثال ، يحتوي الملصق على أبعاد 100 × 100 مم ، ويتم اختيار 2 مم تجريبيًا. تبلغ المسافة بين الملصقات 3 مم ، ولكن إذا قمت بضبط الارتفاع على 103 مم ، فسيتم إزاحة الشريط ، فمن غير الملائم قطع العلامة. عيب بروتوكول LPD هو أن المهام تُرسل إلى طابعة عادية ، ولا يتم إرسال تنسيق ESC / P0S للطباعة ، ولا يقوم جهاز الاستشعار بمعايرة الملصقات.

ثم يمكنك العمل مع الطابعة من خلال php. هناك مكتبات للعمل مع الأكواب ، من الأسهل بالنسبة لي إرسال أمر إلى وحدة التحكم عبر exec () ؛

نظرًا لأن ESC / P0S لا يعمل ، فقد قررت إنشاء قوالب بتنسيق pdf عبر مكتبة tFPDF

require_once($_SERVER["DOCUMENT_ROOT"] . "/tfpdf/tfpdf.php");
$w = 100;
$h = 100;
$number = 59;
$pdf = new tFPDF('P', 'mm', [$w, $h]);
$pdf->SetTitle('Information');
$pdf->AddFont('Font', 'B', $_SERVER["DOCUMENT_ROOT"] . '/fonts/opensans-bold.ttf', true);
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor(0,0,0);

$pdf->AddPage('P');
$pdf->SetDisplayMode('real','default');
$pdf->Image($_SERVER["DOCUMENT_ROOT"]. '/images/logo_site.png',$w - 4 - 28,$h - 13,28.1,9.6,'');

$pdf->SetFontSize(140);
$pdf->SetXY(0,24);
$pdf->Cell($w,$h - 45, $number,0,0,'C',0);

$pdf->SetFontSize(1);
$pdf->SetTextColor(255,255,255);
$pdf->Write(0, $number);

$pdf->Output('example.pdf','I');

exec('php label.php | lpr -P Xprinter_XP-460B -o media=Custom.100x102mm');


منجز. لقد قتلت يومين للإعداد ، آمل أن يكون مفيدًا لشخص ما.

All Articles