[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Buying Laserwriters



    Date: Wed, 11 Jan 89 17:00+0100
    From: unido!gmdzi!sysiphos!JC@uunet.UU.NET (Juergen Christoffel)

    One difference is that the NTX stacks its output face down by default
    (unless you open the face down tray) whereas the LaserWriter (Plus)
    always stacks it face up. As far as I remember, LGP-S/W reverts the
    order of pages in core which wouldn't be needed for the NTX.

    Can this in-core-turning be turned off easily? Per printer? (Hadn't time
    to look at the sources yet)

The hardcopy system already has a flag for controlling page printing
order.  The only question is how to control its value.  This was the
simplest kludge I could come up with.  You patch this code into your
running system and then edit your printer's namespace object to add the
User Propterty "PRINT-BACKWARDS NO".  Of course, the right way is to
define a new printer type and give a different :default-init-plist value
for :print-backwards.

[Thanks to Richard Lamson for pointing me to :user-get]

;;; -*- Mode: LISP; Base: 8;  Package: HARDCOPY-INTERNALS -*-

;;; From sys:hardcopy;printer.lisp.1544
;;; My changes in lowercase.

(define-hardcopy-option :print-backwards
			"Whether to emit pages in backward order."
  t
  :formatter)

(DEFUN MAKE-HARDCOPY-STREAM (DEVICE &REST OPTIONS)
  (SETF DEVICE (GET-HARDCOPY-DEVICE DEVICE))
  ;; If the user specifies :print-backwards in the user options plist, pass
  ;; that value on to make-hardcopy-stream.
  (let* ((backward-p (send device :user-get :print-backwards)))
    ;; Don't mess with options list unless the user explicitly said to.
    (when backward-p
      (cond ((cl:string-equal backward-p "yes" :end1 3)
	     (setq backward-p t))
	    ((cl:string-equal backward-p "no" :end1 2)
	     (setq backward-p nil))
	    (t (format t "~&Unrecognized PRINT-BACKWARDS value ~S.  Fix your namespace object.
Assuming value of Yes")
	       (setq backward-p t)))
      (setf (cl:getf options :print-backwards) backward-p)))

  (LOOP DOING
    (CATCH-ERROR-RESTART (ERROR "Specify a printer to use instead of ~A." (SEND DEVICE :PRETTY-NAME))
      (RETURN (SEND DEVICE ':MAKE-HARDCOPY-STREAM OPTIONS)))
    (SETQ DEVICE (SCL:ACCEPT 'NET:PRINTER))))