Mercurial > emacs
changeset 24096:083c21910c49
(MS-DOS Printing): Rewrite section.
author | Andrew Innes <andrewi@gnu.org> |
---|---|
date | Sun, 17 Jan 1999 19:08:32 +0000 |
parents | 8983dda2d520 |
children | 6232d3bc1f46 |
files | man/msdog.texi |
diffstat | 1 files changed, 80 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/man/msdog.texi Sun Jan 17 19:06:41 1999 +0000 +++ b/man/msdog.texi Sun Jan 17 19:08:32 1999 +0000 @@ -353,89 +353,125 @@ @section Printing and MS-DOS Printing commands, such as @code{lpr-buffer} (@pxref{Hardcopy}) and -@code{ps-print-buffer} (@pxref{Postscript}) can work in MS-DOS by -sending the output to one of the printer ports, if a Unix-style @code{lpr} -program is unavailable. A few DOS-specific variables control how this -works. +@code{ps-print-buffer} (@pxref{Postscript}) can work in MS-DOS and +MS-Windows by sending the output to one of the printer ports, if a +Unix-style @code{lpr} program is unavailable. This behaviour is +controlled by the same variables that control printing with @code{lpr} +on Unix (@pxref{Hardcopy}, @pxref{Postscript Variables}), but the +defaults for these variables on MS-DOS and MS-Windows are not the same +as the defaults on Unix. -@vindex dos-printer +@vindex printer-name If you want to use your local printer, printing on it in the usual DOS -manner, then set the Lisp variable @code{dos-printer} to the name of the -printer port---for example, @code{"PRN"}, the usual local printer port -(that's the default), or @code{"LPT2"} or @code{"COM1"} for a serial -printer. You can also set @code{dos-printer} to a file name, in which -case ``printed'' output is actually appended to that file. If you set -@code{dos-printer} to @code{"NUL"}, printed output is silently +manner, then set the Lisp variable @code{lpr-command} to @code{""} (its +default value) and @code{printer-name} to the name of the printer +port---for example, @code{"PRN"}, the usual local printer port (that's +the default), or @code{"LPT2"}, or @code{"COM1"} for a serial printer. +You can also set @code{printer-name} to a file name, in which case +``printed'' output is actually appended to that file. If you set +@code{printer-name} to @code{"NUL"}, printed output is silently discarded (sent to the system null device). - If you set @code{dos-printer} to a file name, it's best to use an + On MS-Windows, when the Windows network software is installed, you can +also use a printer shared by another machine by setting +@code{printer-name} to the UNC share name for that printer--for example, +@code{"//joes_pc/hp4si"}. (It doesn't matter whether you use forward +slashes or backslashes here.) To find out the names of shared printers, +run the command @samp{net view} at a DOS command prompt to obtain a list +of servers, and @samp{net view server-name} to see the names of printers +(and directories) shared by that server. + + If you set @code{printer-name} to a file name, it's best to use an absolute file name. Emacs changes the working directory according to the default directory of the current buffer, so if the file name in -@code{dos-printer} is relative, you will end up with several such files, -each one in the directory of the buffer from which the printing was -done. +@code{printer-name} is relative, you will end up with several such +files, each one in the directory of the buffer from which the printing +was done. @findex print-buffer @r{(MS-DOS)} @findex print-region @r{(MS-DOS)} @vindex lpr-headers-switches @r{(MS-DOS)} The commands @code{print-buffer} and @code{print-region} call the @code{pr} program, or use special switches to the @code{lpr} program, to -produce headers on each printed page. MS-DOS doesn't normally have -these programs, so by default, the variable @code{lpr-headers-switches} -is set so that the requests to print page headers are silently ignored. -Thus, @code{print-buffer} and @code{print-region} produce the same -output as @code{lpr-buffer} and @code{lpr-region}, respectively. If you -do have a suitable @code{pr} program (for example, from GNU Textutils), -set @code{lpr-headers-switches} to @code{nil}; Emacs will then call +produce headers on each printed page. MS-DOS and MS-Windows don't +normally have these programs, so by default, the variable +@code{lpr-headers-switches} is set so that the requests to print page +headers are silently ignored. Thus, @code{print-buffer} and +@code{print-region} produce the same output as @code{lpr-buffer} and +@code{lpr-region}, respectively. If you do have a suitable @code{pr} +program (for example, from GNU Textutils), set +@code{lpr-headers-switches} to @code{nil}; Emacs will then call @code{pr} to produce the page headers, and print the resulting output as -specified by @code{dos-printer}. +specified by @code{printer-name}. @vindex print-region-function @r{(MS-DOS)} @cindex lpr usage under MS-DOS @vindex lpr-command @r{(MS-DOS)} @vindex lpr-switches @r{(MS-DOS)} - Finally, if you do have an @code{lpr} work-alike, you can set -@code{print-region-function} to @code{nil}. Then Emacs uses @code{lpr} -for printing, as on other systems. (If the name of the program isn't -@code{lpr}, set the @code{lpr-command} variable to specify where to find -it.) + Finally, if you do have an @code{lpr} work-alike, you can set the +variable @code{lpr-command} to @code{"lpr"}. Then Emacs will use +@code{lpr} for printing, as on other systems. (If the name of the +program isn't @code{lpr}, set @code{lpr-command} to specify where to +find it.) The variable @code{lpr-switches} has its standard meaning +when @code{lpr-command} is not @code{""}. If the variable +@code{printer-name} has a string value, it is used as the value for the +@code{-P} option to @code{lpr}, as on Unix. @findex ps-print-buffer @r{(MS-DOS)} @findex ps-spool-buffer @r{(MS-DOS)} -@vindex dos-ps-printer +@vindex ps-printer-name @vindex ps-lpr-command @r{(MS-DOS)} @vindex ps-lpr-switches @r{(MS-DOS)} - A separate variable, @code{dos-ps-printer}, defines how PostScript -files should be printed. If its value is a string, it is used as the -name of the device (or file) to which PostScript output is sent, just as -@code{dos-printer} is used for non-PostScript printing. (These are two -distinct variables in case you have two printers attached to two -different ports, and only one of them is a PostScript printer.) If the -value of @code{dos-ps-printer} is not a string, then the variables -@code{ps-lpr-command} and @code{ps-lpr-switches} (@pxref{Postscript}) -control how to print PostScript files. Thus, if you have a -non-PostScript printer, you can set these variables to the name and the -switches appropriate for a PostScript interpreter program (such as -Ghostscript). + A parallel set of variables, @code{ps-lpr-command}, +@code{ps-lpr-switches}, and @code{ps-printer-name} (@pxref{Postscript +variables}), defines how PostScript files should be printed. These +variables are used in the same way as the corresponding variables +described above for non-PostScript printing. Thus, the value of +@code{ps-printer-name} is used as the name of the device (or file) to +which PostScript output is sent, just as @code{printer-name} is used for +non-PostScript printing. (There are two distinct sets of variables in +case you have two printers attached to two different ports, and only one +of them is a PostScript printer.) + + The default value of the variable @code{ps-lpr-command} is @code{""}, +which causes PostScript output to be sent to the printer port specified +by @code{ps-printer-name}, but @code{ps-lpr-command} can also be set to +the name of a program which will accept PostScript files. Thus, if you +have a non-PostScript printer, you can set this variable to the name of +a PostScript interpreter program (such as Ghostscript). Any switches +that need to be passed to the interpreter program are specified using +@code{ps-lpr-switches}. (If the value of @code{ps-printer-name} is a +string, it will be added to the list of switches as the value for the +@code{-P} option. This is probably only useful if you are using +@code{lpr}, so when using an interpreter typically you would set +@code{ps-printer-name} to something other than a string so it is +ignored.) For example, to use Ghostscript for printing on an Epson printer connected to @samp{LPT2} port, put this on your @file{.emacs} file: @example -(setq dos-ps-printer t) ; @r{Anything but a string.} +(setq ps-printer-name t) ; Ghostscript doesn't understand -P (setq ps-lpr-command "c:/gs/gs386") (setq ps-lpr-switches '("-q" "-dNOPAUSE" "-sDEVICE=epson" "-r240x72" "-sOutputFile=LPT2" - "-Ic:/gs" - "-")) + "-Ic:/gs")) @end example @noindent (This assumes that Ghostscript is installed in the @file{"c:/gs"} directory.) +@vindex dos-printer +@vindex dos-ps-printer + For backwards compatibility, the value of @code{dos-printer} +(@code{dos-ps-printer}), if it has a value, overrides the value of +@code{printer-name} (@code{ps-printer-name}), on MS-DOS and MS-Windows +only. + + @node MS-DOS and MULE @section International Support on MS-DOS @cindex international support @r{(MS-DOS)}