Merhaba,
sewoo marka bluetooth yazıcıya cpcl mod da etiket yazdırmak istiyorum ancak internette örnek bulamadım, etikette text, barkod ve image ( .png mesela) olacak, daha önceden bu konu ile uğraşmış arkadaş var mı? var ise örnek kod paylaşabilir mi?
teşekkürler
(15-03-2021, Saat: 17:05)ceylan Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
sewoo marka bluetooth yazıcıya cpcl mod da etiket yazdırmak istiyorum ancak internette örnek bulamadım, etikette text, barkod ve image ( .png mesela) olacak, daha önceden bu konu ile uğraşmış arkadaş var mı? var ise örnek kod paylaşabilir mi?
teşekkürler
Bahsettiğiniz tip yazıcıların çoğunda artık standart haline gelmiş ZEBRA marka yazıcılar ile uymluluk olabiliyor. Zebra yazıcıların ZPL (Zebra Programing Language) diye bir dili var.
Eğer yazıcınızın Windows sürücüsü varsa bunların hiç birine gerek kalmadan yazdırabilrsiniz. Eğer destek ve döküman gerekirse, ithalatçısı;
https://www.setsis.com.tr/urunler/?produ...BCEALw_wcB
diye bir firma.
Eğer zebra ile uyumlu ise Zebranın internetten de indirebileceğiniz ücretsiz bir etiket dizayn programı var. Bununla bir denetebilirsiniz. Bu program dizayn ettiğiniz etiketi "print to file" seçeneği ile ZPL komutlarıyla text olarak çıktı verebiliyor. Bu dosyayı yazıcıya gönderirseniz baskı alabiliyorsunuz.
Merhaba,
uygulamayı android cihada çalıştırma istediğimi yazmamışım, kusura bakmayın,
internette araştırdığımda;
socket create ederek işlem yapılan örnekler var
if (FSocket <> nil) and (FSocket.Connected) then
FSocket.SendData(TEncoding.UTF8.GetBytes('Delphi deneme'+ chr(13));
ancak bu komuta yazıcı tepki vermiyor
zpl olarak oluşturduğum text i de senddata ile yazıcıya gönderdiğimde hiç tepki vermiyor
t := '! 0 200 200 48 1\r\n' +'TEXT 7 0 0 0 Delphi deneme\r\n ' +'PRINT \r\n';
FSOCket.sendData(t);
bu şekilde de hiç tepki yok, zpl komutlarını delphi kullanarak yazıcıya nasıl gönderebilirz?
iyi günler
(18-03-2021, Saat: 15:35)ceylan Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
uygulamayı android cihada çalıştırma istediğimi yazmamışım, kusura bakmayın,
internette araştırdığımda;
socket create ederek işlem yapılan örnekler var
if (FSocket <> nil) and (FSocket.Connected) then
FSocket.SendData(TEncoding.UTF8.GetBytes('Delphi deneme'+ chr(13));
ancak bu komuta yazıcı tepki vermiyor
zpl olarak oluşturduğum text i de senddata ile yazıcıya gönderdiğimde hiç tepki vermiyor
t := '! 0 200 200 48 1\r\n' +'TEXT 7 0 0 0 Delphi deneme\r\n ' +'PRINT \r\n';
FSOCket.sendData(t);
bu şekilde de hiç tepki yok, zpl komutlarını delphi kullanarak yazıcıya nasıl gönderebilirz?
iyi günler
Androd ile nasıl yapılır bilmiyorum ama Windows'ta Yazıcının IP numarası üzerinden port numarasına gönderince yazıyor. Bazı modellerde satır sonunda CR+LF eki gerekebiliyor.
Ben Windows'ta ClientSocket ile bunu yapıyorum.
merhaba,
aşağıdaki şekilde tanımlı olan printCPCLText prosedürünü buton un onclik metodunda nasıl kullanabilirim?
teşekkürler
JCPCLClass = interface(JObjectClass)
['{1FA43D21-0A43-4DD2-B9DE-D5A9861AAB23}']
{class} function init: JCPCL; cdecl;//Deprecated
end;
[JavaSignature('com/sewoo/jpos/command/CPCL')]
JCPCL = interface(JObject)
['{A840BD47-D9B3-4FCE-8ABE-8CDFC10777CA}']
procedure clearBuffer; cdecl;//Deprecated
procedure concatText(P1: Integer; P2: Integer; P3: Integer; P4: JString); cdecl;//Deprecated
function getBuffer: JStringBuffer; cdecl;//Deprecated
procedure inverseLine(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: Integer); cdecl;//Deprecated
procedure multiLineData(P1: JString); cdecl;//Deprecated
procedure multiLineText(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: Integer); cdecl;//Deprecated
procedure printBox(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: Integer); cdecl;//Deprecated
procedure printCPCL2DBarCode(P1: Integer; P2: JString; P3: Integer; P4: Integer; P5: Integer; P6: Integer; P7: Integer; P8: Integer; P9: JString); cdecl;//Deprecated
procedure printCPCLBarcode(P1: Integer; P2: JString; P3: Integer; P4: Integer; P5: Integer; P6: Integer; P7: Integer; P8: JString; P9: Integer); cdecl;//Deprecated
procedure printCPCLImage(P1: JString; P2: Integer; P3: Integer); cdecl;//Deprecated
procedure printCPCLText(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: Integer; P6: JString; P7: Integer); cdecl;//Deprecated
procedure printForm; cdecl;//Deprecated
procedure printGraphic(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: TJavaArray<Byte>); cdecl;//Deprecated
procedure printLine(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: Integer); cdecl;//Deprecated
procedure resetCPCLBarcode; cdecl;//Deprecated
procedure resetConcat; cdecl;//Deprecated
procedure resetCountry; cdecl;//Deprecated
procedure resetMagnify; cdecl;//Deprecated
procedure resetMultiLine; cdecl;//Deprecated
procedure setCPCLBarcode(P1: Integer; P2: Integer; P3: Integer); cdecl;//Deprecated
procedure setCharSet(P1: JString); cdecl;//Deprecated
procedure setConcat(P1: Integer; P2: Integer; P3: Integer); cdecl;//Deprecated
procedure setContrast(P1: Integer); cdecl;//Deprecated
procedure setCountry(P1: JString); cdecl;//Deprecated
procedure setForm(P1: Integer; P2: Integer; P3: Integer; P4: Integer; P5: Integer); cdecl;//Deprecated
procedure setFormMode; cdecl;//Deprecated
procedure setJournalMode; cdecl;//Deprecated
procedure setJustification(P1: Integer); cdecl;//Deprecated
procedure setMagnify(P1: Integer; P2: Integer); cdecl;//Deprecated
procedure setMeasure(P1: Integer); cdecl;//Deprecated
procedure setMedia(P1: Integer); cdecl;//Deprecated
procedure setMultiLine(P1: Integer); cdecl;//Deprecated
procedure setPageWidth(P1: Integer); cdecl;//Deprecated
procedure setPattern(P1: Integer); cdecl;//Deprecated
procedure setSpeed(P1: Integer); cdecl;//Deprecated
procedure setTone(P1: Integer); cdecl;//Deprecated
procedure userString(P1: JString); cdecl; overload;//Deprecated
procedure userString(P1: JString; P2: Boolean); cdecl; overload;//Deprecated
end;
TJCPCL = class(TJavaGenericImport<JCPCLClass, JCPCL>) end;
JCPCLConstClass = interface(IJavaClass)
['{B2FFAD87-E7E6-4295-95B7-F1779B7496D9}']
{class} function _GetLK_BXX_MODEL: Integer; cdecl;
{class} function _GetLK_CPCL_0_ROTATION: Integer; cdecl;
{class} function _GetLK_CPCL_180_ROTATION: Integer; cdecl;
{class} function _GetLK_CPCL_270_ROTATION: Integer; cdecl;
{class} function _GetLK_CPCL_90_ROTATION: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_0RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_128: JString; cdecl;
{class} function _GetLK_CPCL_BCS_1RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_20RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_21RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_22RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_23RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_24RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_25RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_26RATIO: Integer; cdecl;
{class} function _GetLK_CPCL_BCS_27RATIO: Integer; cdecl;
Merhaba,
bu konuda ilerleme oldu mu acaba? epey araştırdım, denedim ama bluetooth yazıcıdan yazdırabildiğim bir örneğe rastlayamadım, bu işin abileri bi yardımcı olup küçük bir örnek paylaşabilir mi acaba?
Merhabalar,
Örnek olması için aşağıdaki kodları gönderiyorum. Birçok bluetooth yazıcıda çalışıyor.
SendData ile gönderilen sıralı kodları Yazıcı teknik dokümanınızda görebilirsiniz.
Formunuz üzerine bluetooth bileşeni ekleyin. ayrıca telefon üzerinde yazıcı ile eşleştiğiniz yazıcı ismine ihtiyacınız olacak.
unit uMain;
interface
uses
System.SysUtils, System.Types, ......
type
TfrmMain = class(TForm)
.......
procedure TfrmMain.btnYazdirClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function YaziciBaglan(pNomeDevice: String): boolean;
function YaziciKontrol(pNomeDevice: String): TBluetoothDevice;
end;
var
FSocket: TBluetoothSocket;
implementation
{$R *.fmx}
uses ..........;
const
UUID = '{00001101-0000-1000-8000-00805F9B34FB}';
procedure TfrmMain.FormCreate(Sender: TObject);
begin
// if cbYaziciBaglan.IsChecked then
// begin
Bluetooth1.Enabled := true;
YaziciBaglan('YAZICI_ADI'); //Yazıcının telefon bluetooth bağlantısında gözüken adı
// end;
end;
function TfrmMain.YaziciBaglan(pNomeDevice: String): boolean;
var
lDevice: TBluetoothDevice;
begin
Result := False;
lDevice := YaziciKontrol(pNomeDevice);
FSocket := nil;
if lDevice <> nil then
begin
FSocket := lDevice.CreateClientSocket(StringToGUID(UUID), False);
if FSocket <> nil then
begin
FSocket.Connect;
Result := FSocket.Connected ;
end;
end;
end;
function TfrmMain.YaziciKontrol(pNomeDevice: String): TBluetoothDevice;
var
lDevice: TBluetoothDevice;
begin
Result := nil;
for lDevice in Bluetooth1.PairedDevices do
begin
if lDevice.DeviceName = pNomeDevice then
begin
Result := lDevice;
end;
end;
end;
procedure TfrmMain.btnYazdirClick(Sender: TObject);
begin
if (FSocket <> nil) and (FSocket.Connected) then
begin
FSocket.SendData(TEncoding.UTF8.GetBytes(chr(27) + chr(64))); //Initialize printer
FSocket.SendData(TEncoding.UTF8.GetBytes(chr(27) + chr(97) + chr(1))); //set position alignment - sondaki 0:left 1:center 2:right
FSocket.SendData(TEncoding.UTF8.GetBytes('DENEME TEXT'));
FSocket.SendData(TEncoding.UTF8.GetBytes(chr(27) + chr(100) + chr(1))); //Satır boşluk
end;
end.
Yanlış anlamış olabilirim. Burada BT yazıcısına doğrudan bir şey yazdırılmak mı isteniyor. Aksi olsa Windows sürücüsü üzerinden yazıcı seçip yazdır denebilir.