Как изменить размер страницы при печати

Советы » Принтеры и Печать » Как изменить размер страницы при печати

Один из способов, это перед началом печати изменить структуру devicemode у принтера.

Другие настройки, которые можно поменять, смотрите в TDEVMODE в хелпе Delphi 1.02 или DEVMODE в Delphi 2.01.

Следующий пример демонстрирует изменение размера печатаемой страницы:

procedure

TForm1.Button1Click(Sender: TObject); var

Device: array

[0..255] of

char; Driver: array

[0..255] of

char; Port: array

[0..255] of

char; hDMode: THandle; PDMode: PDEVMODE; begin

Printer.PrinterIndex := Printer.PrinterIndex; Printer.GetPrinter(Device, Driver, Port, hDMode); if

hDMode <> 0 then

begin

pDMode := GlobalLock(hDMode); if

pDMode <> nil

then

begin

{Set to legal} pDMode^.dmFields := pDMode^.dmFields or

dm_PaperSize; pDMode^.dmPaperSize := DMPAPER_LEGAL; {Set to custom size} pDMode^.dmFields := pDMode^.dmFields or

DM_PAPERSIZE or

DM_PAPERWIDTH or

DM_PAPERLENGTH; pDMode^.dmPaperSize := DMPAPER_USER; pDMode^.dmPaperWidth := 100 {SomeValueInTenthsOfAMillimeter}; pDMode^.dmPaperLength := 100 {SomeValueInTenthsOfAMillimeter}; {Set the bin to use} pDMode^.dmFields := pDMode^.dmFields or

DMBIN_MANUAL; pDMode^.dmDefaultSource := DMBIN_MANUAL; GlobalUnlock(hDMode); end

; end

; Printer.PrinterIndex := Printer.PrinterIndex; Printer.BeginDoc; Printer.Canvas.TextOut(100, 100, 'Test 1'); Printer.EndDoc; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2023 - All Rights Reserved - www.delphirus.com