{Begin SubSec Press Hardcopy Package} {Title Press Hardcopy Package} {Text The Press hardcopy package permits Interlisp-D to generate hardcopy in "Press" format. Press is a file format used for communicating documents to Xerox laser Xerographic printers known by the names "Dover", "Spruce", "Penguin", and "Raven". Loading this package defines a new image stream type, {lisp PRESS}. This image stream type can be passed to {fn OPENIMAGESTREAM} to open a Press format file, to {fn SEND.FILE.TO.PRINTER} to send a Press file to a printer that can print it, or to any of the other hardcopy functions. Press image streams accept most graphics output commands. Press format files have the extension {lisp PRESS} by default. The names {lisp SPRUCE}, {lisp PENGUIN}, and {lisp DOVER} are defined on the variable {var PRINTERTYPES} as synonyms for the {lisp PRESS} printer type. The printer types {lisp FULLPRESS} and {lisp RAVEN} are also the same as {lisp PRESS}, except that these printer types indicate that the printer is a "Full Press" printer that is able to scale bitmap images, in addition to the normal Press printer facilities. {Begin SubSec Press Fonts} {Title Press Fonts} {Text For Press fonts, {fn FONTCREATE} accesses the widths information for the font from a font-dictionary file whose name is in the list {var PRESSFONTWIDTHSFILES} (usually initialized in the site-greeting file to contain at least {lisp {bracket DSK}FONTS.WIDTHS)}. That dictionary must contain information for the face as specified; there is no acceptable faking algorithm for hard-copy fonts. The width and height information for Press fonts is expressed in micas (= 10 microns = 1/2540 inch), not in screen-point units. {VarDef {Name PRESSFONTWIDTHSFILES} {Text Value is a list of files (not directories) searched to find font widths files for press fonts. Press font widths are packed into large "{lisp FONTS.WIDTHS}" files. }} Warning: One must be careful when using the function {fn FONTSAVAILABLE} to determine what Press font files are available. For Press font families/faces, the font widths for different sizes are consistently scaled versions of the smallest font in the family/face. Therefore, instead of storing data about all of the sizes in the {lisp FONTS.WIDTHS} file, only the widths for the font of {arg SIZE}=1 are stored, and the other widths are calculated by scaling these widths up. This is signified in the {lisp FONTS.WIDTHS} file by a font with {arg SIZE}=0. Therefore, if {fn FONTSAVAILABLE} is called with {arg CHECKFILESTOO?}={lisp T}, and it finds such a "relative" font, it returns a font spec list with size of 0. For example, {lispcode ←(FONTSAVAILABLE 'GACHA '* '* 0 'PRESS T) ((GACHA 0 (BOLD ITALIC REGULAR) 0 PRESS) (GACHA 0 (BOLD REGULAR REGULAR) 0 PRESS) (GACHA 0 (MEDIUM ITALIC REGULAR) 0 PRESS) (GACHA 0 (MEDIUM REGULAR REGULAR) 0 PRESS))} This indicates that Press files can be created with {lisp GACHA} files of any size with faces {lisp BIR}, {lisp BRR}, {lisp MIR}, and {lisp MRR}. Of course, this doesn't guarantee that these fonts are available in all sizes on your printer. }{End SubSec Press Fonts} {Begin SubSec Press Image Stream Options} {Title Press Image Stream Options} {Text When a Press image stream is created by {fn OPENIMAGESTREAM}, the following options are accepted in the {arg OPTIONS} property list: {Begin labeledlist OPENIMAGESTREAM options} {Label {lisp REGION}} {Text Value is the region on the page (in stream scale units, 0,0 being the lower-left corner of the page) that text will fill up. } {Label {lisp FONTS}} {Text Value is a list of fonts that are expected to be used in the image stream. The first font in this list will be the initial font of the Press image stream, otherwise the default font for Press image streams is used. } {Label {lisp HEADING}} {Text Value is the heading to be placed automatically on each page. {lisp NIL} means no heading. } {End labeledlist OPENIMAGESTREAM options} When a Press format file is sent to a Press printer using {fn SEND.FILE.TO.PRINTER}, the following options are accepted in the {arg PRINTOPTIONS} property list: {Begin labeledlist SEND.FILE.TO.PRINTER options} {Label {lisp #COPIES}} {Text Value is the number copies of the file to print. Default is one. } {Label {lisp #SIDES}} {Text If the value is 2, select two-sided printing (if the printer can print two-sided copies). } {Label {lisp DOCUMENT.CREATION.DATE}} {Text Value is the document creation date to appear on the header page (an integer date as returned by {fn IDATE}). } {Label {lisp DOCUMENT.NAME}} {Text Value is the document name to appear on the header page (as a string). Default is the full name of the file. } {End labeledlist SEND.FILE.TO.PRINTER options} }{End SubSec Press Image Stream Options} }{End SubSec Press Hardcopy Package}