Kod: Tümünü seç
// YaziYaz('C:\Temp\Temp.prn', Printer.Printers[Printer.PrinterIndex]);
procedure YaziYaz(const PrnFile, PrinterName: String);
Var
AFile: TextFile;
begin
AssignFile(AFile, PrnFile);
ReWrite(AFile);
try
WriteLn(AFile,'Yazılacak Satır 1');
WriteLn(AFile,'Yazılacak Satır 2');
WriteLn(AFile,'Yazılacak Satır 3');
.
.
.
finally
CloseFile(AFile);
end;
If SpoolFile(PrnFile, PrinterName) <> 0 then
MessageDlg('Belge Yazdırılamıyor !',mtError,[mbOK],0);
end;
Function SpoolFile(const FileName, PrinterName: string): Integer;
var
Buffer: record
JobInfo: record
Path: PChar;
JobID: DWORD;
end;
PathBuffer: array[0..255] of Char;
end;
SizeNeeded: DWORD;
Handle: THandle;
PrtName: string;
ok: Boolean;
begin
If not FileExists(FileName) Then
begin
Result:= 99;
Exit;
end;
PrtName:= PrinterName;
if PrtName = '' then
PrtName:= TrimPrinter(Printer.Printers[Printer.PrinterIndex]);
ok:= False;
if OpenPrinter(PChar(PrtName), Handle, nil) then
if AddJob(Handle, 1, @Buffer, SizeOf(Buffer), SizeNeeded) then
if CopyFile(PChar(FileName), Buffer.JobInfo.Path, True) then
if ScheduleJob(Handle, Buffer.JobInfo.JobID) then
ok := True;
if not ok then
begin
Result:= GetLastError
end else begin
If FileExists(FileName) Then
begin
try
DeleteFile(PChar(FileName));
finally
end;
end;
Result := 0;
end;
end;
ve daha sonra bu dosyayı SpoolFile fonksiyonu ile yazıcıya yazdırıyorum fakat türkçe karakterlerde problem yaşıyorum bu karakterleri dos modundaki türkçe karakterlerle değiştirmem lazım. Dosyayı yada dosyaya kaydetmeden önce TStringList gibi bir nesneye değerleri yükleyim türkçe karakterleri nasıl değiştirebilirim.