drukowanie barcode

0

może najpierw kodzik

procedure TForm1.print_demo(bc:TAsBarcode);
var
   tmpbarcode : TAsBarcode;
begin

  
   tmpbarcode := TAsBarcode.Create(nil);
   
   tmpbarcode.Assign(bc);

   try
      with printer do
      begin
      BeginDoc;

         Canvas.TextOut(10, 10, 'bla bla');

         { Height of barcode: 40mm }
         tmpbarcode.Height := ConvertMmToPixelsY(10.16);
         tmpbarcode.Height := ConvertInchToPixelsY(0.4);


         { Modulwidth: 0.5mm }
         tmpbarcode.Modul  := ConvertMmToPixelsX(0.5);

         tmpbarcode.Top    := ConvertMmToPixelsY(4.0);
         tmpbarcode.Left   := ConvertMmToPixelsX(1.0);

         Canvas.TextOut(10, 400, 'bla bla bla');


         tmpbarcode.DrawBarcode(Canvas);

         EndDoc;
      end;
   finally
      tmpbarcode.Free;
   end;
end;

Chodzi o to, iż powyższy kodzik drukuje nam kod kreskowy + tekst nad nim + tekst pod nim

Wydrukuje w lewym górnym rogu

Palnąłem pentelkę, żeby na 1 stronie wydrukował kilka kodów kreskowych, ale coś jest nie tak :[

Podałem czysty kod źródłowy bez pętli, jeżeli ktoś ma chęć się pobawić i zrobić działającą pętlę to bardzo chętnie obejżę wyniki jego pracy :]

pozdrowionka

0

proszę o pomoc :]

0

a) musisz znać szerokość i wysokość kodu kreskowego (powinien udostępniac to komponent którego urzywasz)
b) musisz znać wysokość i szerokość obszaru drukowania (było na 4p)
c) obliczasz ile wejdzie Ci BC w pionie i ile w poziomie (proste działanie matematyczne)
d) odczytujesz jakie marginesy ma drukarka (a dokładnie to lewy i górny)

 PosX := ((Kolejna - 1) mod IlePoziom) * Szerokosc + MarginLeft;
  PosY := ((Kolejna - 1) div IlePoziom) * Wysokosc + MarginTop;

Kolejna to nr. kolejnej etykiety do drukowania. Jeśli Kolejna > IleWPionie * IleWPoziomie to Kolejna := 1 i nowa strona

1 użytkowników online, w tym zalogowanych: 0, gości: 1