Function: ps-begin-job

ps-begin-job is a byte-compiled function defined in ps-print.el.gz.

Signature

(ps-begin-job GENFUNC)

Source Code

;; Defined in /usr/src/emacs/lisp/ps-print.el.gz
(defun ps-begin-job (genfunc)
  ;; prologue files
  (or (equal ps-mark-code-directory ps-postscript-code-directory)
      (setq ps-print-prologue-0    (ps-prologue-file 0)
	    ps-print-prologue-1    (ps-prologue-file 1)
	    ps-mark-code-directory ps-postscript-code-directory))
  ;; selected pages
  (let (new page)
    (while ps-selected-pages
      (setq page              (car ps-selected-pages)
	    ps-selected-pages (cdr ps-selected-pages))
      (cond ((integerp page)
	     (and (> page 0)
		  (setq new (cons (cons page page) new))))
	    ((consp page)
	     (and (integerp (car page)) (integerp (cdr page))
		  (> (car page) 0)
		  (<= (car page) (cdr page))
		  (setq new (cons page new))))))
    (setq ps-selected-pages      (sort new (lambda (one other)
                                             (< (car one) (car other))))
	  ps-last-selected-pages ps-selected-pages
	  ps-first-page          nil
	  ps-last-page           nil))
  ;; face background
  (or (listp ps-use-face-background)
      (setq ps-use-face-background t))
  ;; line number
  (and (integerp ps-line-number-step)
       (<= ps-line-number-step 0)
       (setq ps-line-number-step 1))
  (setq ps-n-up-on           (> ps-n-up-printing 1)
	ps-line-number-start (max 1 (min ps-line-number-start
					 (if (integerp ps-line-number-step)
					     ps-line-number-step
					   ps-zebra-stripe-height))))
  ;; spooling buffer
  (with-current-buffer ps-spool-buffer
    (goto-char (point-max))
    (and (re-search-backward "^%%Trailer$" nil t)
	 (delete-region (match-beginning 0) (point-max))))
  ;; miscellaneous
  (setq ps-zebra-stripe-full-p (memq ps-zebra-stripe-follow
				     '(full full-follow))
	ps-page-postscript 0
	ps-page-sheet 0
	ps-page-n-up 0
	ps-page-column 0
	ps-lines-printed 0
	ps-print-page-p t
	ps-showline-count (car ps-printing-region)
	ps-line-spacing-internal      (ps-get-size ps-line-spacing
						   "line spacing")
	ps-paragraph-spacing-internal (ps-get-size ps-paragraph-spacing
						   "paragraph spacing")
	ps-font-size-internal        (ps-get-font-size 'ps-font-size)
	ps-header-font-size-internal (ps-get-font-size 'ps-header-font-size)
	ps-header-title-font-size-internal
	(ps-get-font-size 'ps-header-title-font-size)
	ps-footer-font-size-internal (ps-get-font-size 'ps-footer-font-size)
	ps-control-or-escape-regexp
	(cond ((eq ps-print-control-characters '8-bit)
	       "[\000-\037\177-\377]")
	      ((eq ps-print-control-characters 'control-8-bit)
	       "[\000-\037\177-\237]")
	      ((eq ps-print-control-characters 'control)
	       "[\000-\037\177]")
	      (t "[\t\n\f]"))
	;; Set the color scale.  We do it here instead of in the defvar so
	;; that ps-print can be dumped into emacs.  This expression can't be
	;; evaluated at dump-time because X isn't initialized.
        ps-color-p            (and ps-print-color-p (display-color-p))
	ps-print-color-scale  (if ps-color-p
				  (float (car (color-values "white")))
				1.0)
	ps-default-background (ps-rgb-color
			       (cond
				((or (member ps-print-color-p
					     '(nil black-white))
				     (eq genfunc 'ps-generate-postscript))
				 nil)
				((eq ps-default-bg 'frame-parameter)
				 (frame-parameter nil 'background-color))
				((eq ps-default-bg t)
                                 (face-background 'default nil t))
				(t
				 ps-default-bg))
			       "unspecified-bg"
			       1.0)
	ps-default-foreground (ps-rgb-color
			       (cond
				((or (member ps-print-color-p
					     '(nil black-white))
				     (eq genfunc 'ps-generate-postscript))
				 nil)
				((eq ps-default-fg 'frame-parameter)
				 (frame-parameter nil 'foreground-color))
				((eq ps-default-fg t)
                                 (face-foreground 'default nil t))
				(t
				 ps-default-fg))
			       "unspecified-fg"
			       0.0)
	ps-foreground-list    (mapcar
                               (lambda (arg)
                                 (ps-rgb-color arg "unspecified-fg" 0.0))
			       (append (and (not (member ps-print-color-p
							 '(nil black-white)))
					    ps-fg-list)
				       (list ps-default-foreground
					     "black")))
	ps-default-color      (and (not (member ps-print-color-p
						'(nil black-white)))
				   ps-default-foreground)
	ps-current-color      ps-default-color
	;; Set up default functions.
	;; They may be overridden by ps-mule-begin-job.
	ps-basic-plot-string-function    'ps-basic-plot-string
	ps-encode-header-string-function nil)
  (cl-assert (not (multibyte-string-p ps-control-or-escape-regexp)))
  ;; initialize page dimensions
  (ps-get-page-dimensions)
  ;; final check
  (unless (listp ps-lpr-switches)
    (error "`ps-lpr-switches' value should be a list"))
  (and ps-color-p
       (equal ps-default-background ps-default-foreground)
       (error
	(concat
	 "`ps-default-fg' and `ps-default-bg' have the same color.\n"
	 "Text won't appear on page.  Please, check these variables."))))