Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Определить минимальные поля для принтера

Delphi , ОС и Железо , Принтеры и Печать

Определить минимальные поля для принтера


uses 
  Printers; 

type 
  TMargins = record 
    Left, 
    Top, 
    Right, 
    Bottom: Double 
end; 

procedure GetPrinterMargins(var Margins: TMargins); 
var 
  PixelsPerInch: TPoint; 
  PhysPageSize: TPoint; 
  OffsetStart: TPoint; 
  PageRes: TPoint; 
begin 
  PixelsPerInch.y := GetDeviceCaps(Printer.Handle, LOGPIXELSY); 
  PixelsPerInch.x := GetDeviceCaps(Printer.Handle, LOGPIXELSX); 
  Escape(Printer.Handle, GETPHYSPAGESIZE, 0, nil, @PhysPageSize); 
  Escape(Printer.Handle, GETPRINTINGOFFSET, 0, nil, @OffsetStart); 
  PageRes.y := GetDeviceCaps(Printer.Handle, VERTRES); 
  PageRes.x := GetDeviceCaps(Printer.Handle, HORZRES); 
  // Top Margin 
  Margins.Top := OffsetStart.y / PixelsPerInch.y; 
  // Left Margin 
  Margins.Left := OffsetStart.x / PixelsPerInch.x; 
  // Bottom Margin 
  Margins.Bottom := ((PhysPageSize.y - PageRes.y) / PixelsPerInch.y) - 
    (OffsetStart.y / PixelsPerInch.y); 
  // Right Margin 
  Margins.Right := ((PhysPageSize.x - PageRes.x) / PixelsPerInch.x) - 
    (OffsetStart.x / PixelsPerInch.x); 
end; 

function InchToCm(Pixel: Single): Single; 
// Convert inch to Centimeter 
begin 
  Result := Pixel * 2.54 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  Margins: TMargins; 
begin 
 GetPrinterMargins(Margins); 
 ShowMessage(Format('Margins: (Left: %1.3f, Top: %1.3f, Right: %1.3f, Bottom: %1.3f)', 
  [InchToCm(Margins.Left), 
   InchToCm(Margins.Top), 
   InchToCm(Margins.Right), 
   InchToCm(Margins.Bottom)])); 
end;

Статья Определить минимальные поля для принтера раздела ОС и Железо Принтеры и Печать может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Принтеры и Печать ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-04-24 22:55:34
2024-04-25 10:47:49/0.0065281391143799/2