JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

TPrinter

- системный компонент
Системные компоненты JS+
Определяет стандартный принтер Windows.

Доступ к объекту

Объект доступен через системную функцию Printer():

prnObj=Printer();

Собственные свойства
Свойство Тип Описание
Copies Number количество копий документа
Orientation Enum ориентация страницы при печати (см. ниже)
PrinterIndex Number индекс текущего принтера из списка Printers
Title String заголовок документа для менеджера печати
Только чтение
Aborted Boolean печать документа прервана пользователем
Canvas TCanvas дескриптор графической канвы
Capabilities Enumset возможности драйвера текущего принтера (см. ниже)
Fonts TStrings список шрифтов, поддерживаемых принтером
Handle Number дескриптор принтера Windows GDI
PageHeight Number высота страницы, px
PageNumber Number номер печатаемой страницы
PageWidth Number ширина страницы, px
Printers TStrings список доступных принтеров
Printing Boolean идет процесс печати документа

Свойство Orientation
Значение Описание
poLandscape горизонтальная
poPortrait вертикальная

Свойство Capabilities
Значение Описание
pcCollation драйвер поддерживает режим "разобрать по копиям"
pcCopies драйвер поддерживает установку количества копий документа
pcOrientation драйвер поддерживает выбор ориентации страницы

Собственные методы
Метод Описание
Abort снимает задание на печать и прекращает печать документа
BeginDoc начинает подготовку задания на печать
EndDoc заканчивает подготовку задания на печать и начинает печать документа
NewPage начинает печать новой страницы документа
Refresh обновляет списки Fonts и Printers

Стандартные методы

Пример (JS+)
// Главная форма
frm=new TForm();
frm.Caption="JS+ - системный компонент TPrinter";
frm.Width =700;
frm.Height=525;

// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=' Нажмите кнопку "Печать"';

// Принтер
prn=Printer();

// Список доступных принтеров
cmb=new TComboBox(frm);
cmb.Style=csDropDownList;
cmb.Left=cmb.Top=10;
cmb.Items=prn.Printers;
if (cmb.Items.Count==0) {
  cmb.Items.Add("Нет доступных принтеров");
  stb.SimpleText=" "+cmb.Items[cmb.ItemIndex=0];
}
else
  cmb.ItemIndex=prn.PrinterIndex;

// Кнопка
btn=new TButton(frm);
btn.Caption="Печать";
btn.Top=stb.Top-btn.Height-10;
btn.OnClick=btn_Click;
if (prn.Printers.Count==0)
  btn.Enabled=false;

// Панель закладок
pgc=new TPageControl(frm);
pgc.Left=cmb.Left;
pgc.Top =cmb.Top+cmb.Height+10;
pgc.Width =frm.ClientWidth-pgc.Left*2;
pgc.Height=btn.Top-pgc.Top-10;

for (i=0;i<2;i++) {
  // Закладка
  tsh=new TTabSheet(pgc);

  switch (i) {
    case 0: tsh.Caption="Изображение";

            // Панель
            pnl=new TPanel(tsh);
            pnl.BorderStyle=bsSingle;
            pnl.Left=pnl.Top=10-tsh.Left;
            pnl.Width =tsh.ClientWidth-pnl.Left*2;
            pnl.Height=tsh.ClientHeight-pnl.Top*2;

            // Изображение
            img=new TImage(pnl);
            img.Align=alClient;
            img.LoadFromFile(
            JSPlus.HelpDir+"IMAGE\\TPrinter\\Image.jpg");

            img.Align=alNone;
            pnl.ClientWidth =img.Width;
            pnl.ClientHeight=img.Height;
            pgc.ClientWidth=pnl.Width+(pnl.Left+tsh.Left)*2;
            break;

    case 1: tsh.Caption="Текст";

            // Memo
            mem=new TMemo(tsh);
            mem.BorderStyle=bsSingle;
            mem.SetBounds(
            pnl.Left,pnl.Top,pnl.Width,pnl.Height);
            for (j=1;j<10;j++)
              mem.Lines.Add("Строка "+j);
  }
}

frm.ClientWidth=pgc.Width+pgc.Left*2;
cmb.Width=frm.ClientWidth-cmb.Left*2;
btn.Left=cmb.Left+cmb.Width-btn.Width;

frm.ShowModal();

// Обработчик события OnClick
function btn_Click(btn)
{
  var i,y,dy,cnv,str_lst;

  prn.PrinterIndex=cmb.ItemIndex;
  prn.BeginDoc();

  switch (pgc.ActivePageIndex) {
    case 0: img.Print(prn,10,10); break;
    case 1: cnv=prn.Canvas;
            cnv.Font.Name="Tahoma";
            cnv.Font.Size=9;
            dy=cnv.TextHeight("Q")*1.1;
            str_lst=mem.Text.split("\r\n");
            for (i=y=0;i<str_lst.length;y+=dy,i++)
              cnv.TextOut(0,y,str_lst[i]);
  }

  prn.EndDoc();
}
Совместимость
C++ Builder/Delphi
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/System/TPrinter.htm
© 2024,