VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا

گرافیکل شیل کے بغیر CentOS پر ترتیب دینے کی ایک مثال؛ تشبیہ کے مطابق، آپ کسی بھی لینکس OS پر سیٹ اپ کر سکتے ہیں۔

میں ایک خاص مسئلہ حل کر رہا ہوں: مجھے پی ایچ پی سے ٹیمپلیٹ کا استعمال کرتے ہوئے صوابدیدی متن کے ساتھ لیبل پرنٹ کرنے کی ضرورت ہے۔ چونکہ آپ ایونٹ میں ایک مستحکم انٹرنیٹ کنکشن پر اعتماد نہیں کر سکتے ہیں، اور آٹومیشن کے زیادہ تر کام ویب سائٹ کے ساتھ اوورلیپ ہوتے ہیں، اس لیے ہم نے VMware پر ایک ورچوئل مشین کے ساتھ کام کرنے کا فیصلہ کیا۔

XPrinter مارکنگ کاموں کے لیے بھی موزوں ہے؛ ونڈوز کے تحت انسٹالیشن بہت آسان ہے۔ میں XP-460B ماڈل پر 108 ملی میٹر تک کے لیبل کی چوڑائی کے ساتھ طے ہوا۔

VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا

چونکہ میں شاذ و نادر ہی لینکس سیٹ کرتا ہوں اور ڈیوائسز کو اس سے جوڑتا ہوں، اس لیے میں نے ریڈی میڈ سیٹ اپ مینوئل تلاش کیے اور محسوس کیا کہ پرنٹر کو جوڑنے کا سب سے آسان طریقہ کپ کے ذریعے ہے۔ میں USB کے ذریعے پرنٹر کو جوڑ نہیں سکا، دستورالعمل میں مشورے کے بعد کوئی ہیرا پھیری نہیں ہوئی، میں نے صرف کئی بار ورچوئل مشین کو کریش کیا۔

  • مینوفیکچرر کی ویب سائٹ xprintertech.com سے ڈرائیور ڈاؤن لوڈ کریں، وہ ونڈوز، میک اور لینکس کے لیے ایک آرکائیو میں آتے ہیں۔

    میرے معاملے میں، ڈرائیوروں کو آلات کی ایک سیریز کے لیے ویب سائٹ پر پوسٹ کیا جاتا ہے۔ 4 انچ لیبل پرنٹر ڈرائیور. جیسا کہ یہ پتہ چلتا ہے، XP-460B پہلے ہی بند کر دیا گیا ہے؛ میں نے سوچا کہ یہ کس سیریز سے تعلق رکھتا ہے اسی طرح کے ماڈل، XP-470B کے بریڈ کرمبس کی بنیاد پر۔

  • ونڈوز میں پرنٹر انسٹال کریں، شیئرنگ کو فعال کریں۔

    VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا

  • لینکس کے لیے، آرکائیو میں 1 فائل 4BARCODE ہے۔ یہ ایک "2 میں 1" فائل ہے، ٹار آرکائیو کے ساتھ ایک باش اسکرپٹ جو خود کو کھولتا ہے اور ڈرائیوروں کو کپ میں کاپی کرتا ہے۔ میرے معاملے میں، پیک کھولنے کے لیے bzip2 کی ضرورت ہے (80 ملی میٹر سیریز کے لیے ایک مختلف آرکائیور استعمال کیا جاتا ہے)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • اگلا آپ کو کھولنے کی ضرورت ہے۔ localhost:631 براؤزر میں، سہولت کے لیے میں ونڈوز میں براؤزر سے کھولنے کے لیے سیٹنگ کرتا ہوں۔ ترمیم کریں /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 کو فائر وال (یا iptables) میں شامل کریں:

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • میرے معاملے میں ہم ورچوئل مشین کے آئی پی کا استعمال کرتے ہوئے براؤزر میں لنک کھولتے ہیں۔ 192.168.1.5:631/ایڈمن

    ایک پرنٹر شامل کریں (آپ کو روٹ اور پاس ورڈ درج کرنے کی ضرورت ہے)

    VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا

  • ایل پی ڈی پروٹوکول اور سامبا کے ذریعے 2 آپشنز ہیں جنہیں میں نے کنفیگر کیا ہے۔
    1. LPD پروٹوکول کے ذریعے جڑنے کے لیے، آپ کو ونڈوز میں سروس کو فعال کرنے کی ضرورت ہے (ونڈوز کے اجزاء کو آن یا آف کریں) اور کمپیوٹر کو دوبارہ شروع کریں۔

      VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا
      کپ کی سیٹنگز میں، lpd://192.168.1.52/Xprinter_XP-460B درج کریں، جہاں 192.168.1.52 کمپیوٹر کا IP ہے جس پر پرنٹر انسٹال ہے، Xprinter_XP-460B ونڈوز شیئرنگ سیٹنگز میں پرنٹر کا نام ہے۔

      VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا
      ڈرائیور 4BARCODE => 4B-3064TA منتخب کریں۔

      VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا
      ہم پیرامیٹرز میں کچھ بھی منتخب یا محفوظ نہیں کرتے ہیں! میں نے لیبل کے سائز کو ایڈجسٹ کرنے کی کوشش کی، لیکن پھر پرنٹر کسی وجہ سے کام نہیں کرتا ہے۔ لیبل کا سائز پرنٹ جاب میں بیان کیا جا سکتا ہے۔

      VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا
      ہم ایک ٹیسٹ صفحہ پرنٹ کرنے کی کوشش کرتے ہیں - ہو گیا!

    2. دوسرا آپشن۔ آپ کو سامبا انسٹال کرنے، شروع کرنے، کپ کو دوبارہ شروع کرنے کی ضرورت ہے، پھر کپ میں ایک نیا کنکشن پوائنٹ ظاہر ہوگا، سیٹنگز میں smb://user کی طرح ایک لائن درج کریں:[ای میل محفوظ]/Xprinter_XP-460B۔ جہاں، صارف ونڈوز میں صارف ہے، صارف کے پاس پاس ورڈ سیٹ ہونا ضروری ہے، اجازت خالی کے ساتھ کام نہیں کرتی ہے۔

جب سب کچھ ٹھیک ہو جاتا ہے اور پرنٹر نے ٹیسٹ پیج پرنٹ کیا تو کنسول کے ذریعے نوکریاں بھیجی جا سکتی ہیں:

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

اس مثال میں، لیبل کے طول و عرض 100x100 ملی میٹر ہیں، 2 ملی میٹر تجرباتی طور پر منتخب کیے گئے تھے۔ لیبلز کے درمیان فاصلہ 3 ملی میٹر ہے، لیکن اگر آپ اونچائی کو 103 ملی میٹر پر سیٹ کرتے ہیں، تو ٹیپ شفٹ ہو جاتی ہے، جس سے لیبل کو پھاڑنے میں تکلیف ہوتی ہے۔ LPD پروٹوکول کا نقصان یہ ہے کہ ملازمتیں باقاعدہ پرنٹر کے طور پر بھیجی جاتی ہیں، ESC/P0S فارمیٹ پرنٹنگ کے لیے نہیں بھیجا جاتا ہے، اور سینسر لیبلز کو کیلیبریٹ نہیں کرتا ہے۔

پھر آپ php کے ذریعے پرنٹر کے ساتھ کام کر سکتے ہیں۔ کپ کے ساتھ کام کرنے کے لیے لائبریریاں موجود ہیں، میرے لیے exec() کے ذریعے کنسول کو کمانڈ بھیجنا آسان ہے۔

چونکہ ESC/P0S کام نہیں کرتا، میں نے tFPDF لائبریری کا استعمال کرتے ہوئے pdf میں ٹیمپلیٹس بنانے کا فیصلہ کیا

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');

VMware ورک سٹیشن میں لینکس پر ایک XPrinter لیبل پرنٹر ترتیب دینا
تیار. میں نے اسے ترتیب دینے میں 2 ویک اینڈ گزارے، مجھے امید ہے کہ یہ کسی کے لیے کارآمد ہوگا۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں