hai provato a mettere la stampante come condivisa e poi provare un comando dos come
dir >\127.0.0.1\nome_stampante_condivisa
se funziona credo che sei già a buon punto
Io non sono esperto, per ora ho realizzato un solo programma in Lazarus, ma ti invio questo esempio, provalo e vedi se funziona.
ho trovato questo link, vedi se ti può essere utile
http://www.math.uni-leipzig.de/pool/tuts/FreePascal/units/node18.html
se printer4lazarus ti funziona con applicazioni GUI dovrebbe funzionare anche da programmi concole
ho trovato questo link, vedi se ti può essere utile
http://www.math.uni-leipzig.de/pool/tuts/FreePascal/units/node18.html
se printer4lazarus ti funziona con applicazioni GUI dovrebbe funzionare anche da programmi concole
Credo potresti usare l'istruzione:
Printer.Canvas.TextOut(pixelriga, pixelcolonna, varstamp);
assegni le coordinate e varstamp è la variabile di ciò che devi stampare.
Ti allego un esempio:
In passato programmavo sia in Basic che in Pascal, poi passai al Visual Basic, ma quando passavo l'eseguibile ad altri non funzionava, perchè dovevano installare delle directx, un compagno di classe mi consigliò: Lazarus, così l'eseguibile è subito funzionante. Se dovessi riprendere dei vecchi programmi, li rifarei per Lazarus, utilizzando gli oggetti. Se vuoi continuare con programma console, mandami un esempio, vedrò poi, di consigliarti.
program consolePrint;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, Printers, Interfaces, PrintersDlgs;
const
LEFTMARGIN = 100;
HEADLINE = 'I printed my first text on ';
var
YPos, LineHeight, VerticalMargin: Integer;
SuccessString: String;
begin
SuccessString:=Printer.Printers.Strings[0];
writeln(SuccessString);
with Printer do
try
BeginDoc;
Canvas.Font.Name:='Courier New';
Canvas.Font.Size:=12;
LineHeight:=Round(1.2 + Abs(Canvas.TextHeight('I')));
VerticalMargin:=4*LineHeight;
YPos:=VerticalMargin;
SuccessString:=HEADLINE + DateTimeToStr(Now);
Canvas.TextOut(LEFTMARGIN, YPos,SuccessString);
finally
EndDoc
end;
end.