PrintSpooler + Windows 7
От: Dyos Россия  
Дата: 12.01.11 00:02
Оценка:
Доброго времени суток!

Есть код (ниже) который работает на Windows XP, но на Windows 7 этот же код не работает. При этом на печать документ отправляется и появляется в очереди печати, но со статусом Error — Printing.
Подскажите плизь в чем проблемы и куда дальше глядеть.

procedure TForm1.WriteRawStringToPrinter(PrinterName:String; S:String);
var
Handle: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
begin
if not OpenPrinter(PChar(PrinterName), Handle, nil) then
begin
ShowMessage('error ' + IntToStr(GetLastError));
Exit;
end;
with DocInfo1 do
begin
pDocName := PChar('test doc');
pOutputFile := nil;
pDataType := PChar('raw');
end;

StartDocPrinter(Handle, 1, @DocInfo1);
StartPagePrinter(Handle);
WritePrinter(Handle, PChar(S), Length(S), N);
EndPagePrinter(Handle);
EndDocPrinter(Handle);
ClosePrinter(Handle);
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.