W jaki sposób narysować elipsę w języku Zebra EPL? Przeszukałem dokumentację ale bez skutku.
0
0
se ne da szybko - można wolno po prostu wysyłając ją jako grafikę
function GetImageData: string;
var
i, j, k, s, d: integer;
b: byte;
bmp: Graphics.TBitmap;
ss: TStringStream;
a: boolean;
begin
bmp := Graphics.TBitmap.Create;
bmp.Width := MMtoPix(WidthMM); //wymiary podaję w mm a ta funkcja zamienia ja na pixele w zależności od DPI drukarki
bmp.Height := MMtoPix(HeightMM);
with bmp, Canvas do
begin
Monochrome := True;
PixelFormat := pf1bit;
Brush.Style := bsSolid;
Brush.Color := clWhite;
Pen.Color := clWhite;
Rectangle(bmp.Canvas.ClipRect);
Pen.Width := GroboscObwodki;
Pen.Color := clBlack;
Pen.Style := psSolid;
Brush.Style := bsClear;
d := s div 2;
Canvas.Ellipse(d, d, Width - d, Height - d);
ss := TStringStream.Create('');
a := False;
FImgWidth := ClipRect.Right div 8;
FImgHeight := ClipRect.Bottom;
for j := 0 to ClipRect.Bottom - 1 do
begin
k := 0;
b := 0;
for i := 0 to ClipRect.Right - 1 do
begin
if Pixels[i, j] <> clBlack then
b := b + Trunc(Power(2, 7 - k));
Inc(k);
if k = 8 then
begin
k := 0;
ss.Write(b, 1);
b := 0;
end;
end;
if k > 0 then
begin
for i := k to 7 do
b := b + Trunc(Power(2, 7 - i));
ss.Write(b, 1);
b := 0;
a := True;
end;
end;
if a then
Inc(FImgWidth, 1);
Result := ss.DataString;
ss.Free;
end;
bmp.Free;
end;
i to co jest wysyłane na drukarkę
Format('GW%d,%d,%d,%d,%s',
[MMtoPix(LeftMM),
MMtoPix(TopMM ),
FImgWidth,
FImgHeight,
GetImageData]);
I jeśli jest eś podłączony do drukarki przez RS232 i masz prędkość na 9600 ustawioną to user odczuje spadek prędkości drukowania
0
A nie można wysłać gotowej grafiki. Powiedzmy wczytanej z pliku bmp?
0
adnix napisał(a):
A nie można wysłać gotowej grafiki. Powiedzmy wczytanej z pliku bmp?
ja [CIACH!]... A co robi kod, który dałem powyżej???