http://qs321.pair.com?node_id=57526
Category: Win32 Stuff
Author/Contact Info Mithras MacGuges, mithras@dhp.com
Description: 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;
Replies are listed 'Best First'.
Re: XEmacs printing script
by AgentM (Curate) on Feb 10, 2001 at 04:29 UTC