printing examples, automatically generated from
src/share/doc/handbook/printing.sgml with src/tools/tools/epfe/epfe.pl
This commit is contained in:
parent
c13b19be64
commit
f5bc5997b2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=21240
7
share/examples/printing/diablo-if-net
Normal file
7
share/examples/printing/diablo-if-net
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# diablo-if-net - Text filter for Diablo printer `scrivener' listening
|
||||
# on port 5100. Installed in /usr/local/libexec/diablo-if-net
|
||||
#
|
||||
|
||||
exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100
|
59
share/examples/printing/hpdf
Normal file
59
share/examples/printing/hpdf
Normal file
@ -0,0 +1,59 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# hpdf - Print DVI data on HP/PCL printer
|
||||
# Installed in /usr/local/libexec/hpdf
|
||||
|
||||
PATH=/usr/local/bin:$PATH; export PATH
|
||||
|
||||
#
|
||||
# Define a function to clean up our temporary files. These exist
|
||||
# in the current directory, which will be the spooling directory
|
||||
# for the printer.
|
||||
#
|
||||
cleanup() {
|
||||
rm -f hpdf$$.dvi
|
||||
}
|
||||
|
||||
#
|
||||
# Define a function to handle fatal errors: print the given message
|
||||
# and exit 2. Exiting with 2 tells LPD to do not try to reprint the
|
||||
# job.
|
||||
#
|
||||
fatal() {
|
||||
echo "$@" 1>&2
|
||||
cleanup
|
||||
exit 2
|
||||
}
|
||||
|
||||
#
|
||||
# If user removes the job, LPD will send SIGINT, so trap SIGINT
|
||||
# (and a few other signals) to clean up after ourselves.
|
||||
#
|
||||
trap cleanup 1 2 15
|
||||
|
||||
#
|
||||
# Make sure we are not colliding with any existing files.
|
||||
#
|
||||
cleanup
|
||||
|
||||
#
|
||||
# Link the DVI input file to standard input (the file to print).
|
||||
#
|
||||
ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
|
||||
|
||||
#
|
||||
# Make LF = CR+LF
|
||||
#
|
||||
printf "\033&k2G" || fatal "Cannot initialize printer"
|
||||
|
||||
#
|
||||
# Convert and print. Return value from dvilj2p does not seem to be
|
||||
# reliable, so we ignore it.
|
||||
#
|
||||
dvilj2p -M1 -q -e- dfhp$$.dvi
|
||||
|
||||
#
|
||||
# Clean up and exit
|
||||
#
|
||||
cleanup
|
||||
exit 0
|
11
share/examples/printing/hpif
Normal file
11
share/examples/printing/hpif
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# hpif - Simple text input filter for lpd for HP-PCL based printers
|
||||
# Installed in /usr/local/libexec/hpif
|
||||
#
|
||||
# Simply copies stdin to stdout. Ignores all filter arguments.
|
||||
# Tells printer to treat LF as CR+LF. Writes a form feed character
|
||||
# after printing job.
|
||||
|
||||
printf "\033&k2G" && cat && printf "\f" && exit 0
|
||||
exit 2
|
8
share/examples/printing/hpof
Normal file
8
share/examples/printing/hpof
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# hpof - Output filter for Hewlett Packard PCL-compatible printers
|
||||
# Installed in /usr/local/libexec/hpof
|
||||
|
||||
|
||||
printf "\033&k2G" || exit 2
|
||||
exec /usr/libexec/lpr/lpf
|
8
share/examples/printing/hprf
Normal file
8
share/examples/printing/hprf
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# hprf - FORTRAN text filter for LaserJet 3si:
|
||||
# Installed in /usr/local/libexec/hprf
|
||||
#
|
||||
|
||||
printf "\033&k2G" && fpr && printf "\f" && exit 0
|
||||
exit 2
|
10
share/examples/printing/hpvf
Normal file
10
share/examples/printing/hpvf
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# hpvf - Convert GIF files into HP/PCL, then print
|
||||
# Installed in /usr/local/libexec/hpvf
|
||||
|
||||
PATH=/usr/X11R6/bin:$PATH; export PATH
|
||||
|
||||
giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
|
||||
&& exit 0 \
|
||||
|| exit 2
|
9
share/examples/printing/if-simple
Normal file
9
share/examples/printing/if-simple
Normal file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# if-simple - Simple text input filter for lpd
|
||||
# Installed in /usr/local/libexec/if-simple
|
||||
#
|
||||
# Simply copies stdin to stdout. Ignores all filter arguments.
|
||||
|
||||
/bin/cat && exit 0
|
||||
exit 2
|
10
share/examples/printing/if-simpleX
Normal file
10
share/examples/printing/if-simpleX
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# if-simple - Simple text input filter for lpd
|
||||
# Installed in /usr/local/libexec/if-simple
|
||||
#
|
||||
# Simply copies stdin to stdout. Ignores all filter arguments.
|
||||
# Writes a form feed character (\f) after printing job.
|
||||
|
||||
/bin/cat && printf "\f" && exit 0
|
||||
exit 2
|
32
share/examples/printing/ifhp
Normal file
32
share/examples/printing/ifhp
Normal file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# ifhp - Print Ghostscript-simulated PostScript on a DesJet 500
|
||||
# Installed in /usr/local/libexec/hpif
|
||||
|
||||
#
|
||||
# Treat LF as CR+LF:
|
||||
#
|
||||
printf "\033&k2G" || exit 2
|
||||
|
||||
#
|
||||
# Read first two characters of the file
|
||||
#
|
||||
read first_line
|
||||
first_two_chars=`expr "$first_line" : '\(..\)'`
|
||||
|
||||
if [ "$first_two_chars" = "%!" ]; then
|
||||
#
|
||||
# It is PostScript; use Ghostscript to scan-convert and print it
|
||||
#
|
||||
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
|
||||
&& exit 0
|
||||
|
||||
else
|
||||
#
|
||||
# Plain text or HP/PCL, so just print it directly; print a form
|
||||
# at the end to eject the last page.
|
||||
#
|
||||
echo $first_line && cat && printf "\f" && exit 2
|
||||
fi
|
||||
|
||||
exit 2
|
79
share/examples/printing/make-ps-header
Normal file
79
share/examples/printing/make-ps-header
Normal file
@ -0,0 +1,79 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# make-ps-header - make a PostScript header page on stdout
|
||||
# Installed in /usr/local/libexec/make-ps-header
|
||||
#
|
||||
|
||||
#
|
||||
# These are PostScript units (72 to the inch). Modify for A4 or
|
||||
# whatever size paper you are using:
|
||||
#
|
||||
page_width=612
|
||||
page_height=792
|
||||
border=72
|
||||
|
||||
#
|
||||
# Check arguments
|
||||
#
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "Usage: `basename $0` <user> <host> <job>" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Save these, mostly for readability in the PostScript, below.
|
||||
#
|
||||
user=$1
|
||||
host=$2
|
||||
job=$3
|
||||
date=`date`
|
||||
|
||||
#
|
||||
# Send the PostScript code to stdout.
|
||||
#
|
||||
exec cat <<EOF
|
||||
%!PS
|
||||
|
||||
%
|
||||
% Make sure we do not interfere with user's job that will follow
|
||||
%
|
||||
save
|
||||
|
||||
%
|
||||
% Make a thick, unpleasant border around the edge of the paper.
|
||||
%
|
||||
$border $border moveto
|
||||
$page_width $border 2 mul sub 0 rlineto
|
||||
0 $page_height $border 2 mul sub rlineto
|
||||
currentscreen 3 -1 roll pop 100 3 1 roll setscreen
|
||||
$border 2 mul $page_width sub 0 rlineto closepath
|
||||
0.8 setgray 10 setlinewidth stroke 0 setgray
|
||||
|
||||
%
|
||||
% Display user's login name, nice and large and prominent
|
||||
%
|
||||
/Helvetica-Bold findfont 64 scalefont setfont
|
||||
$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
|
||||
($user) show
|
||||
|
||||
%
|
||||
% Now show the boring particulars
|
||||
%
|
||||
/Helvetica findfont 14 scalefont setfont
|
||||
/y 200 def
|
||||
[ (Job:) (Host:) (Date:) ] {
|
||||
200 y moveto show /y y 18 sub def
|
||||
} forall
|
||||
|
||||
/Helvetica-Bold findfont 14 scalefont setfont
|
||||
/y 200 def
|
||||
[ ($job) ($host) ($date) ] {
|
||||
270 y moveto show /y y 18 sub def
|
||||
} forall
|
||||
|
||||
%
|
||||
% That is it
|
||||
%
|
||||
restore
|
||||
showpage
|
||||
EOF
|
24
share/examples/printing/netprint
Normal file
24
share/examples/printing/netprint
Normal file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# netprint - Text filter for printer attached to network
|
||||
# Installed in /usr/local/libexec/netprint
|
||||
#
|
||||
|
||||
$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";
|
||||
|
||||
$printer_host = $ARGV[0];
|
||||
$printer_port = $ARGV[1];
|
||||
|
||||
require 'sys/socket.ph';
|
||||
|
||||
($ignore, $ignore, $protocol) = getprotobyname('tcp');
|
||||
($ignore, $ignore, $ignore, $ignore, $address)
|
||||
= gethostbyname($printer_host);
|
||||
|
||||
$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);
|
||||
|
||||
socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
|
||||
|| die "Can't create TCP/IP stream socket: $!";
|
||||
connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
|
||||
while (<STDIN>) { print PRINTER; }
|
||||
exit 0;
|
8
share/examples/printing/psdf
Normal file
8
share/examples/printing/psdf
Normal file
@ -0,0 +1,8 @@
|
||||
#!bin/sh
|
||||
#
|
||||
# psdf - DVI to PostScript printer filter
|
||||
# Installed in /usr/local/libexec/psdf
|
||||
#
|
||||
# Invoked by lpd when user runs lpr -d
|
||||
#
|
||||
exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"
|
31
share/examples/printing/psdfX
Normal file
31
share/examples/printing/psdfX
Normal file
@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# psdf - DVI to PostScript printer filter
|
||||
# Installed in /usr/local/libexec/psdf
|
||||
#
|
||||
# Invoked by lpd when user runs lpr -d
|
||||
#
|
||||
|
||||
orig_args="$@"
|
||||
|
||||
fail() {
|
||||
echo "$@" 1>&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
while getopts "x:y:n:h:" option; do
|
||||
case $option in
|
||||
x|y) ;; # Ignore
|
||||
n) login=$OPTARG ;;
|
||||
h) host=$OPTARG ;;
|
||||
*) echo "LPD started `basename $0` wrong." 1>&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
[ "$login" ] || fail "No login name"
|
||||
[ "$host" ] || fail "No host name"
|
||||
|
||||
( /u/kelly/freebsd/printing/filters/make-ps-header $login $host "DVI File"
|
||||
/usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args
|
23
share/examples/printing/psif
Normal file
23
share/examples/printing/psif
Normal file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# psif - Print PostScript or plain text on a PostScript printer
|
||||
# Script version; NOT the version that comes with lprps
|
||||
# Installed in /usr/local/libexec/psif
|
||||
#
|
||||
|
||||
read first_line
|
||||
first_two_chars=`expr "$first_line" : '\(..\)'`
|
||||
|
||||
if [ "$first_two_chars" = "%!" ]; then
|
||||
#
|
||||
# PostScript job, print it.
|
||||
#
|
||||
echo $first_line && cat && printf "\004" && exit 0
|
||||
exit 2
|
||||
else
|
||||
#
|
||||
# Plain text, convert it, then print it.
|
||||
#
|
||||
( echo $first_line; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
|
||||
exit 2
|
||||
fi
|
6
share/examples/printing/pstf
Normal file
6
share/examples/printing/pstf
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# pstf - Convert groff's troff data into PS, then print.
|
||||
# Installed in /usr/local/libexec/pstf
|
||||
#
|
||||
exec grops | /usr/local/libexec/lprps "$@"
|
6
share/examples/printing/pstfX
Normal file
6
share/examples/printing/pstfX
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# pstf - Convert groff's troff data into PS, then print.
|
||||
# Installed in /usr/local/libexec/pstf
|
||||
#
|
||||
exec grops
|
Loading…
Reference in New Issue
Block a user