v2.5.2
Giriş yap

yazıcıya çıktı gönderme

medesan
425 defa görüntülendi

Merhaba arkadaşlar, BURADAKİ sınıfıkullanarak veri tabanımdan çektğim verileri satır satır olacak şekilde çıktısını almak istiyorum. fakat ne yaptıysam hem satır satır çıktı almayı hemde türkçe karekter sorununu çözemedim. Bu konuda yardımcı olabilirseniz sevinirim.

Kullandığım kodlar bu şekilde...

require_once("config.php");
require __DIR__ . '/vendor/autoload.php';
$printer_ip     =   "10.21.13.75";
$printer_port   =   "9100";
$fis_id         = 5;
use Mike42\Escpos\Printer;
use Mike42\Escpos\EscposImage;
use Mike42\Escpos\CapabilityProfile;
use Mike42\Escpos\PrintConnectors\NetworkPrintConnector;
use Mike42\Escpos\PrintConnectors\FilePrintConnector;

$profile        = CapabilityProfile::load("simple");
$connector      = new NetworkPrintConnector($printer_ip, $printer_port);
$printer        = new Printer($connector, $profile);

try {

    $result = $db->query( "SELECT * FROM siparisler WHERE fis_id='{$fis_id}' ORDER BY id ASC" );
    foreach($result as $data)
    {
        $printer->text("{$data['adet']} - {$data['urun_adi']} - {$data['aciklama']}\n");
    }

} finally {
    $printer -> cut();
    $printer -> close();
}
PHP
Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (1)
h4ckdr0
839 gün önce

Türkçe karakterler için, printer'ın kapasite profilini "simple_turkish" olarak ayarlamak veya "cp857" kodlamasını kullanmak için printer'ın constructor'ına ikinci parametre olarak "cp857" vermek deneyebilirsiniz. Örnek:

$profile = CapabilityProfile::load("simple_turkish");
// veya
$printer = new Printer($connector, "cp857");
PHP

Eğer yukarıdaki öneriler işe yaramazsa, Türkçe karakterleri doğru şekilde yazdırmak için, karakterlerin Unicode sembollerine dönüştürülmesi gerekebilir. Bu işlem için, aşağıdaki gibi bir fonksiyon kullanılabilir:

function to_unicode($string)
{
    $unicode = array();
    for ($i = 0; $i < mb_strlen($string, 'UTF-8'); $i++) {
        $char = mb_substr($string, $i, 1, 'UTF-8');
        $unicode[] = sprintf("%04x", mb_ord($char, 'UTF-8'));
    }
    return implode("", $unicode);
}
PHP

Bu fonksiyon, verilen string'i Unicode sembollerine dönüştürür ve sonucu bir dizi olarak döndürür. Bu diziyi printer'a yazdırmak için aşağıdaki gibi bir kod yazılabilir:

$unicode_string = to_unicode("Türkçe karakterlerin çıktısı");
$printer->text($unicode_string . "\n");
PHP

Satır satır çıktı almak için, printer'ın "feed()" metodunu kullanabilirsin. Bu metod, verilen parametre kadar boşluk bırakır ve sonraki çıktıyı aşağı kaydırır. Örnek olarak, aşağıdaki kod 3 boşluk bırakıp sonraki çıktıyı aşağı kaydıracaktır:

$printer->feed(3);
PHP

Bu metodu, veri tabanından okunan verilerin her birini yazdıktan sonra çağırarak, satır satır çıktı alınabilir.

Umarım bu öneriler yardımcı olur.