package javacodebook.media.print.puretext; import java.io.*; /** * Diese Klasse gibt eine Textdatei auf dem angegebenen Drucker aus * Unter Windows ist dies meistens LPT1. * @author Administrator */ public class TextSpooler { public static void main(String[] args) throws IOException { if(args.length < 2) printUsage(); String filename = args[0]; File f = new File(filename); if(!f.exists()) printUsage(); String target = args[1]; //Datei-Eingabestrom öffnen BufferedReader in = new BufferedReader(new FileReader(f)); //Ausgabestrom für den Drucker öffnen FileOutputStream lpt = new FileOutputStream(target); //Escape-Sequenz beginnen. Dies muss über einen Binär-Datenstrom erfolgen lpt.write(27); PrintWriter out = new PrintWriter(new OutputStreamWriter(lpt)); //Zeichensatz ISO8859-1 wählen, damit Umlaute richtig gedruckt werden //Dieser Zeichensatz ist druckerabhängig!!! und muss im Handbuch des //jeweiligen Druckers nachgelesen werden out.print("(0N"); //Zeilenweise ausdrucken String line = null; while(((line = in.readLine()) != null)) { //Bei Zeilen, die länger sind als die Breite des Papiers, kann hier //noch eine Aufteilung des auszugebenden Strings erfolgen. out.println(line); } in.close(); out.close(); } private static void printUsage() { System.out.println("Aufruf: javacodebook.media.print.puretext.TextSpooler datei drucker"); System.exit(0); } }