Got XEmacs? Got Windows NT (or its evil twin, Windows 2000?) Got a line printer daemon (somewhere, lurking near a printer)?
Then this script is for you. Explore the wonders of printing from your favorite editor, even under Windows.
(Cygwin environment may be necessary, and is a nifty idea anyway. Your lpd's IP & printer queue name may differ.)
#!/bin/perl
# I wrote this script to enable printing from XEmacs, which expects
# a printing command which accepts text from *standard input*.
# So, this script reads the standard input, diverts it to a file,
# then calls Windows NT lpr with this file and any options given
# on the command line.
my $command = "lpr";
srand; # seeds the random number generator
# lpr expects interprets its arguments in the DOS context, taking back
+slashes
$filestub = "\\tmp\\lp".(time%10000).".";
do {
$filename = $filestub.int(rand(1000));
} while (-e $filename);
open SLURP, ">$filename";
print SLURP <STDIN>; # put everything from stdin into this file
close SLURP;
my @args = ($command, @ARGV, $filename);
system(@args) == 0
or die "system @args failed: $?";
unlink $filename;