include "print.m";
print := load Print Print->PATH;
Print: module
{
PATH: con "/dis/lib/print/print.dis";
CONFIG_PATH: con "/lib/print/";
init: fn(): int;
set_printfd: fn(fd: ref Sys->FD);
print_image: fn(p: ref Printer, display: ref Draw->Display, im: ref Draw->Image, pcwidth: int): int;
print_textfd: fn(p: ref Printer, fd: ref Sys->FD, ps: real, pr: int, wrap: int): int;
get_defprinter: fn(): ref Printer;
set_defprinter: fn(p: ref Printer);
get_size: fn(p: ref Printer): (int, real, real); # dpi, xinches, yinches
get_printers: fn(): list of ref Printer;
get_papers: fn(): list of ref Paper;
save_settings: fn(): int;
# Printer types
Ptype: adt {
name: string;
modes: list of ref Pmode;
driver: string;
hpmapfile: string;
};
# Paper sizes
Paper: adt {
name: string;
hpcode: string;
width_inches: real;
height_inches: real;
};
# Print modes
Pmode: adt {
name: string;
desc: string;
resx: int;
resy: int;
blackdepth: int;
coldepth: int;
blackresmult: int;
};
# Print options
Popt: adt {
name: string;
mode: ref Pmode;
paper: ref Paper;
orientation: int;
duplex: int;
};
# Printer instance
PORTRAIT: con 0;
LANDSCAPE: con 1;
DUPLEX_OFF: con 0;
DUPLEX_LONG: con 1;
DUPLEX_SHORT: con 2;
Printer: adt {
name: string;
ptype: ref Ptype;
device: string;
popt: ref Popt;
pdriver: Pdriver;
};
};
Pdriver: module
{
PATHPREFIX: con "/dis/lib/print/";
DATAPREFIX: con "/lib/print/";
init: fn(debug: int);
sendimage: fn(p: ref Print->Printer, tfd: ref Sys->FD, display: ref Draw->Display, im: ref Draw->Image, width: int, lmargin: int): int;
sendtextfd: fn(p: ref Print->Printer, pfd, tfd: ref Sys->FD, ps: real, pr: int, wrap: int): int;
printable_pixels: fn(p: ref Print->Printer): (int, int);
};
A4= hpcode=26 width_inches=8.3 height_inches=11.7 A5= hpcode=25 width_inches=4.15 height_inches=5.85
Aliases can also be defined, such as
myA4=A4
The final configuration file, defprinter, just contains the name of the default printer.
| PRINT(2 ) | Rev: Thu Feb 15 14:43:27 GMT 2007 |