[comp.sys.amiga] Printer Graphics Autodocs

andy@cbmvax.UUCP (02/06/87)

At the suggestion of Dave B (thanks, Dave), and for all those who need them
*now*, here are the latest printer.device graphics autodocs.
			andy finkel
------------------
Printer autodocs
(c) Copyright 1986, 1987 Commodore-Amiga, Inc.

/****** printer.device/DumpRPort *************************************
*								 
*   NAME								 
*	DumpRPort - dump the specified RastPort to a graphics printer.
*								 
*   FUNCTION							 
*	Print a rendition of the supplied RastPort, using the supplied
*	ColorMap, position and scaling information, as specified in
*	the printer preferences.
*								 
*   IO REQUEST
*       io_Message      mn_ReplyPort set if quick I/O is not possible
*       io_Command      PRD_DUMPRPORT
*       io_Flags        IOB_QUICK set if quick I/O is possible
*	io_RastPort	ptr to a RastPort.		 
*	io_ColorMap	ptr to a ColorMap.		 
*	io_Modes	the 'modes' flag as from a ViewPort structure 
*			the upper word is reserved and should be zero
*	io_SrcX		the x offset into the RastPort
*	io_SrcY		the y offset into the RastPort
*	io_SrcWidth	the x size in the RastPort to be printed
*	io_SrcHeight	the y size in the RastPort to be printed
*	io_DestCols	...
*	io_DestRows	these two parameters describe the size of the
*			area to print to on the printer, as described
*			below.
*	io_Special	interpretation of Dest parameters:
*			-   if SPECIAL_MIL is set, then the associated
*			    parameter is specified in thousandths of
*			    an inch on the printer.
*			-   if SPECIAL_FULL is set, then the dimension
*			    is set to the maximum possible (as
*			    determined by the printer limits or the
*			    configuration limits, whichever is less).
*			-   if SPECIAL_FRAC is set, the parameter is
*			    taken to be a longword binary fraction
*			    of the maximum for that dimension.
*			-   if ASPECT is set, one of the dimensions
*			    may be reduced to preserve the aspect
*			    ratio of the print.
*			-   if all bits for a dimension are clear, the
*			    parameter is specified in printer pixels.
*			-   if SPECIAL_DENSITY(1-4) is set, then the
*			    printer specific driver has the option of
*			    selecting a different dots per inch density
*			    (dpi) than the default one. As of this writing,
*			    the printer specific modules supporting this
*			    feature are the HP_LASERJET & the HP_LASERJET_PLUS.
*			    For these two printers, the densities are
*			    75, 100, 150 & 300 dpi respectively. The HP_LASERJET
*			    always defaults to 75 dpi. The HP_LASERJET_PLUS
*			    defaults to 100 dpi if the preferences is set to
*			    DRAFT quality and 150 dpi with LETTER quality.
*			-   if SPECIAL_CENTER is set, then the picture will be
*			    horizontally centered on the paper.
*
*	There following rules for the interpretation of io_DestRows and
*	io_DestCols that may produce unexpected results when they are
*	not greater than zero and io_Special is zero.  They have been
*	retained for compatability.  The user will not trigger these
*	other rules with well formed usage of io_Special.
*
*	When io_Special is equal to 0, the following rules
*	(from the V1.1 printer.device, and retained for compatibility
*	reasons) take effect.  Remember, these special rules are
*	for io_DestRows and io_DestCols and only take effect
*	IF io_Special is 0).
*
*	a) DestCols>0 & DestRows>0 - use as absolute values.
*	   ie. DestCols=320 & DestRows=200 means that the picture
*	   will appear on the printer as 320x200 dots.
*	b) DestCols=0 & DestRows>0 - use the printers maximum number
*	   of columns and print DestRows lines. ie. if DestCols=0
*	   and DestRows=200 than the picture will appear on the
*	   printer as wide as it can be and 200 dots high.
*	c) DestCols=0 & DestRows=0 - same as above except the driver
*	   determines the proper number of lines to print based on
*	   the aspect ratio of the printer. ie. This results in the
*	   largest picture possible that is not distorted or inverted.
*	   Note: As of this writing, this is the call made by such
*	   program as DeluxePaint, GraphicCraft, and AegisImages.
*	d) DestCols>0 &DestRows=0 - use the specified width and the
*	   driver determines the proper number of lines to print based
*	   on the aspect ratio of the printer. ie. if you desire a
*	   picture that is 500 pixels wide and aspect ratio correct,
*	   use DestCols=500 and DestRows=0.
*	e) DestCols<0 or DestRows>0 - the final picture is either a
*	   reduction or expansion based on the fraction
*	   |DestCols| / DestRows in the proper aspect ratio.
*	   Some examples:
*	   1) if DestCols=-2 & DestRows=1 then the printed picture will
*	      be 2x the AMIGA picture and in the proper aspect ratio.
*	      (2x is derived from |-2| / 1 which gives 2.0)
*	   2) if DestCols=-1 & DestRows=2 then the printed picture will
*	      will be 1/2x the AMIGA picture in the proper aspect ratio.
*	      (1/2x is derived from |-1| / 2 which gives 0.5)
*
*   HINTS
*	The printer selected in preferences must have graphics
*	capability to use this command.  An error is returned
* 	immediately if the printer can not print graphics.
*
*	Color printers may not be able to print black and white or
*	greyscale pictures -- specifically, the Okimate 20 cannot
*	print these with a color ribbon: you must use a black 
*	ribbon instead.
*	If the printer has an input buffer option, use it.
*	If the printer can be uni- or bi-directional, select
*	uni-directional; this produces a much cleaner picture and
*	in some cases a faster printout.  Most printer drivers
*	will attempt to set unidirectional printing if it is
*	under software control.
*
*	Please note that the width and height of the printable area on
*	the printer is in terms of pixels and bounded by the folllowing:
*	 a) WIDTH = (RIGHT_MARGIN - LEFT_MARGIN + 1) / CHARACTERS_PER_INCH
*	 b) HEIGHT = LENGTH / LINES_PER_INCH
*       Margins are set by preferences.
*
*	For BGR printer support, the YMC values in the printer
*	specific render.c functions equate to BGR respectively, ie.
*	yellow is blue, magenta is green, and cyan is red.
*								 
*********************************************************************/
-- 
			andy finkel
			Commodore/Amiga
	{ihnp4|seismo|allegra}!cbmvax!andy /or/ pyramid!amiga!andy

Any expressed opinions are mine; but feel free to share.
I disclaim all responsibilities, all shapes, all sizes, all colors.

"Never make anything simple and efficient when it can be complex and wonderful."