var
m:Single;
i,page,pageall:integer;
DestRect:TRectF;
textFill: tFillTextFlags;
stranp:TStringList;
pt:Boolean;
begin
m:= Memo2.Lines.Count-1;
pageall:=Round(m) div 67;
if Round(m) mod 67>0 then pageall:=pageall+1;
textFill := [];
Printer.Title := Memo2.Lines.Strings[0];
Printer.Copies := StrToInt(SpinBox1.Text);
// Printer.Orientation := poLandscape;
stranp:=TStringList.Create;
Printer.ActivePrinter:=Printer.Printers[Combobox1.ItemIndex];
Printer.BeginDoc;
Printer.Canvas.Font.Size := 14;
Printer.Canvas.Font.Family:='Arial';
page:=1;
pt:=true;
while (not Printer.Aborted) and (Printer.Printing) and (pt) do
begin
stranp.Clear;
for I := 0 to 67 do begin
if i+((page-1)*67)<=Memo2.Lines.Count-1 then
stranp.Add(Memo2.Lines.Strings[i+((page-1)*67)]+' '+IntToStr(pageall));
end;
DestRect := RectF(100,100,(Printer.Pagewidth - 100),(Printer.PageHeight - 100));
Printer.Canvas.FillText(DestRect,stranp.Text,True,1,textFill,TTextAlign.Center,TTextAlign.Leading);
Inc(page);
if (page <= pageall) and (not printer.aborted)
then begin
Printer.NewPage;
end else begin
pt:=false;
end;
end;
Printer.EndDoc;
stranp.Free;
end;
Всё отлично работает, кроме того что я хочу открыть настройки печати самого принтера
Printer.ActivePrinter.ShowDeviceOptions;
Не работает( Там даже кода нет(
И ещё вопрос как узнать состояние принтера готов не готов в WinApi будет GetPrinter(hPrinter, PRINTER_INFO_2... , как в Обезьяне сделать?
Вопрос
OnePeople
Делаю простинькую настройку печати из Memo
Не работает( Там даже кода нет(
И ещё вопрос как узнать состояние принтера готов не готов в WinApi будет GetPrinter(hPrinter, PRINTER_INFO_2... , как в Обезьяне сделать?
Изменено пользователем OnePeopleСсылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.