Eine deutsche Version dieser Anleitung finden Sie weiter unten.

*************************************************************************** 
*   Project:   Development of a Lexmark 2070 Driver for                   * 
*              Linux as an add on to Ghostscript PBMs;                    * 
*              S/W for now, CMYK perhaps in the future.                   * 
*									  * 
*   Author:    Christian Kornblum,        				  * 
*                                                                         * 
*   Thanks to: Tim Norman, the developer of pbm2ppa for HP-Printers.      * 
*              The design of this program is very well documented.        * 
*              Michael Bletzinger, Andrew Waldram, Daniel F. O'Neill      * 
*	       and many others for the translation of this document.      * 
*                                                                         * 
*   Copyright: Licensed under GPL, this includes the PBM-Routines         * 
*              which are taken from Tim Norman's project.                 * 
*                                                                         * 
*   Version:   0.6 - 29.06.1999                                           *  
*                                                                         * 
*   History:                                                   		  *
*    o improved version 0.6                                               *
*         -29.06.1999 New algorithm prevents driver from printing         *
*                     empty lines and whitespace. Makefile added.         *
*    o First official release 0.5                                         *
*         -May 1999 in the Internet                                       *
*    o Pre-Release:                                                       * 
*         -29.03.1999 first apparently working version                    * 
*         -19.01.1999 Implementation of pbm-Routinenes                    * 
***************************************************************************/ 
 
 
What can this program do? 
-------------------------------------------------------------------------- 
 
This small C program allows a Linux user to print S/W on a Lexmark 2070 in  
300dpi.  The program was tested with SuSE Linux 6.0, but the program should 
run under any Unix system with a C compiler. 
 
The program reads from STDIN a black and white PBM formatted picture and  
converts it to a typesetting code that the Lexmark Color Jetprinter 2070  
understands and can print.  The output is piped into STDOUT.   
 
Lexmark has not released the interface protocols of their printers so 
these have been reversed-engineered.  It works very well for me but I am 
promising ABSOLUTELY NO GUARANTEE that it will work for you. 
 
Installation 
-------------------------------------------------------------------------- 
 
This installation is not for beginners, as ist is the case with most problems 
under Linux. If you become frustrated....in the words of my professor: 
 
  "Autofahren kann jeder, aber ein Rennwagen fhrt sich eben trotzdem  
   nicht so einfach." 
 
  "Anyone can drive a car, but to race one is not so simple." 
 
And so Lots of Luck. 
 
Untar the archive into a build directory as follows: 
 
      tar -xzvf Lexmark2070.tar.gz 
 
Compile the code using the following line or make:
 
      gcc -o Lexmark2070 Lexmark2070-0.5.c pbm.c  
 
Now the Lexmark2070 binary needs to be installed into the printing process. 
I do not have a whole lot of experience with this so I used a dirty trick. 
If you have a better way please let me know! 
 
This driver resembles the the drivers for the new HP printers (720C, 800er 
series) which also aren't that standard. With SuSE, these drivers are in the 
package "ppa" in the series "ap". 
 
With this you can use the SuSE APSFILTER-SETUP to install one of the  
HP drivers.  The setup is in: 
 
       /usr/lib/apsfilter/SETUP 
 
If you want more details on how this filter setup works please consult 
your SuSE documentation. Install the HP720C with A4 paper and a  
resolution of 300x300dpi. 
 
If this works then you can replace the HP driver located at  
/usr/bin/pbm2ppa with the Lexmark2070 binary (make install): 
 
       cp Lexmark2070 /usr/bin/pbm2ppa 
 
Make sure that the permissions are the same as the HP binary. 
 
Now you should be able to print with the "lpr" command. If nothing 
happens list the processes and look for a sleeping pbm2ppa-Process 
which means that the print job did not end correctly. You can fix  
this by modifying the /etc/printcap file. 
 
Puuh... 
 
 
To Do 
-------------------------------------------------------------------------- 
 
I am planning on doing further development of this driver. Help is 
welcomed. Anyone can work on the source code.  If you make some money 
off of this  driver, please send me a small commission ;-) 
 
I am planning on submitting this to SuSE so that they can include it in 
their distribution. 
 
Suggestions (especially regarding the driver API) are welcome.  It would 
be nice if this driver could be improved. 
 
e-Mail:     kornblum@studst.fh-muenster.de 
Current Version:  http://www.studet.fh-muenster.de/~kornblum 
 
 
License 
-------------------------------------------------------------------------- 
 
This driver is licensed under GPL and can be used for any purpose without 
problems.  It is listed in the archive in the file LICENSE. 


/***************************************************************************
 *   Projekt:	Entwicklung eines Lexmark 2070 Treibers fr		   *
 *              Linux als Nachverarbeitung von Ghostscript PBMs;           *
 *              zuerst mal S/W, spter vielleicht auch CMYK.               *
 *                                                                         *
 *   Autor:	Christian Kornblum, <kornblum@studst.fh-muenster.de>       *
 *                                                                         *
 *   Dank an:   Tim Norman, den Entwickler von pbm2ppa fr HP-Drucker.     *
 *              Dieses Programm orientiert sich weitgehend an seiner       *
 *              Vorlage.                                                   *
 *                                                                         *
 *   Copyright: entsprechend der GPL, unter die auch die PBM-Routinen      *
 *              fallen, die ich nur benutze.                               *
 *									   *
 *   Version:   0.6 - 29.06.1999                                           * 
 *                                                                         *
 *   Versionsgeschichte:						   *
 *    o Version 0.6                                                        *
 *         -29.06.1999 keine leeren Zeilen an Drucker senden,              *
 *                     nur noch ber tatschlich gedruckte Breite          *
 *                     drucken (schneller & professioneller)               *
 *                     Makefile hinzugefgt                                *
 *    o Version 0.5                                                        *
 *         -seit Mai 99 im Internet verfgbar                              *
 *    o Pre-Release:                                                       *
 *         -29.03.1999 Erstes lauffhiges Release (Clean Room)             *
 *         -19.01.1999 Implementierung der pbm-Routinen                    *
 ***************************************************************************/


Was kann dieses Programm?
--------------------------------------------------------------------------

Mit diesem kleinen C-Programm kann jetzt auch jeder LINUX-Nutzer mit einem
Lexmark 2070 in 300dpi S/W drucken. Getestet wurde die Funktionalitt unter
SuSE Linux 6.0, aber laufen sollte das Programm eigentlich auf jedem UNIX
System mit C-Compiler.

Das Programm liest am Standard-Input ein PBM-Schwarzweibild ein und wandelt
es in die Druckerbefehle um, die der Lexmark Color Jetprinter 2070 bentigt,
um drucken zu knnen, die dann auf den Standard-Output geschrieben werden.
ber den SuSE Apsfilter und Ghostscript kann somit gedruckt werden.

Da Lexmark mir die Spezifikationen Ihres Protokolls nicht zur Verfgung 
stellen wollte, habe ich das Protokoll selbst entschlsselt. Das funktio-
niert auch sehr gut, aber ich bernehme ABSOLUT KEINE GARANTIE fr die
Ergebnisse.



Installation
--------------------------------------------------------------------------

Die Installation, die hier beschrieben wird, ist nicht unbedingt fr Anfnger
geeignet. Aber strenggenommen gilt das wohl fr LINUX im Allgemeinen - also
nicht verzweifeln, denn wie sagt mein Professor:
  "Autofahren kann jeder, aber ein Rennwagen fhrt sich eben trotzdem 
   nicht so einfach."
Also, in diesem Sinne: Viel Erfolg.

Das Archiv wird wie blich mit dem Befehl

      tar -xvf Lexmark2070.tar.gz

entpackt. Danach mu der Code compiliert werden (make):

      gcc -o Lexmark2070 Lexmark2070-0.5.c pbm.c 

So erhlt man das ausfhrbare Binary Lexmark2070, das nun in den Druckproze
eingebunden werden mu. Da ich selber nicht so ganz dahintergekommen bin
(bis jetzt zumindest) wird dazu ein ziemlich unsauberer Trick benutzt. Wer
es besser kann, mchte sich doch bitte umgehend bei mir melden!

Es gibt da so einen Treiber fr die neueren HP-Drucker (720C, 800er Serie),
der auch nicht so richtig Standard ist. Dieser Treiber bildet die Grundlage
fr den Lexmark Treiber und wird daher auch genauso eingebunden.
Unter SuSE steht dieser Treiber als Paket ppa in der Serie ap zur Verfgung.
Dieser Treiber mu nun zunchst einmal installiert werden.

Ist das erfolgreich geschehen, wird dieser Treiber ber das APSFILTER-SETUP
(nicht ber yast) konfiguriert. Das APSFILTER-SETUP ist der Befehl

       /usr/lib/apsfilter/SETUP

Wie das funktioniert genau funktioniert, kann man in der zugehrigen 
Dokumentation oder be SuSE erfahren. Etwas Hartnckigkeit kann dabei
durchaus hilfreich sein. Installiert werden sollte ein HP720C mit A4 Papier
und einer Auflsung von 300dpi.

Hat das alles funktioniert, wird nun einfach die Datei /usr/bin/pbm2ppa
durch unser oben erzeugtes Binary Lexmark2070 ersetzt (make install):

       cp Lexmark2070 /usr/bin/pbm2ppa

Damit sollten dann auch die Zugriffsrechte stimmen.

Jetzt knnte eigentlich gedruckt werden. Mit lpr <datei> kann man eine
Datei an den Drucker schicken. Passiert nichts, schaut man mal in die
Liste der laufenden Prozesse. Wenn da ein schlafender pbm2ppa-Proze 
zu finden ist, ist nur ein falscher Druckeranschlu angegeben, was sich 
am besten direkt in der /etc/printcap ndern lt.

Puuh...


Zuknftiges
--------------------------------------------------------------------------

Ich habe vor, diesen Treiber weiterzuentwickeln - Hilfe ist mir dabei 
willkommen. Jeder kann mit dem Quellcode treiben, was er will. Wenn man
Geld damit verdienen kann, bitte ich um eine angemessene Beteiligung ;-).

Ich werde das ganze auch an SuSE schicken, vielleicht binden die das
dann ja auch noch ein...

Wenn jemand Verbesserungsvorschlge hat (insbesondere was die Einbindung
des Treibers angeht) wre mir das sehr willkommen. Es wre wirklich nett,
wenn man mir verbesserte Versionen zuschicken wrde.

Meine e-Mail Adresse:     kornblum@studst.fh-muenster.de
Aktuelle Treiberversion:  http://www.studet.fh-muenster.de



Lizenz
--------------------------------------------------------------------------

Da Teile des verwendeten Codes der GPL unterliegen, gilt das natrlich
auch fr mein Programm. Die GPL sollte sich berall problemlos finden
lassen und ist auch in das Archiv eingebunden (LICENSE).

Christian Kornblum, 31.03.1999
