Add Xprt configuration here...
This needs editing !
I stripped them to the basics and am attaching my working stuff. That's in prconfig.tgz . It's a gzipped tar file so the directory hierarchy is in it, you may be able to just unpack it in a place where it "just works".
The hierarchy in prconfig.tgz is etc/X11/xserver/print , you may want to put this in /usr/X11R6/lib/X11/xserver/print or so.
Note that in some cases it is a good idea to bypass locale directories, I solved this by
cd /usr/X11R6/lib/X11/xserver ln -s . Cwhich creates
dell: {76} l /usr/X11R6/lib/X11/xserver/ total 8 lrwxrwxrwx 1 root backx 1 Nov 25 15:56 C -> .which means that /usr/X11R6/lib/X11/xserver/C/print is the same as /usr/X11R6/lib/X11/xserver/print .
Oh well, so much for the boring part.
First a little background, you'll find this in the README more elaborately.
We all know an X server, it interfaces X apps to our screen hardware. In X11R6 they created a simulated frame buffer whose contents (a bitmap) an be put into a file for sending to a printer. Where a normal X server would draw pixels on a screen, Xprt draws in memory and then allows you to send the bitmap to a printer.
Ok, now for reasons unknown to me they never integrated Xprt with video X servers, which means that you need to run both. My test/Xm-2.1/print/test3 application opens the display :1 assuming that this is an Xprt. You'll find in the attachments how to do this in a nicer way, I'm just not there yet as to implementing all that stuff.
Ok so now if you start "Xprt :1 &" you'll see that it complains about not finding a configuration file (or so).
The main configuration file is /usr/X11R6/lib/X11/xserver/print/Xprinters . An example file is in prconfig.tgz. It just says this :
# Augment_Printer_List %none% # Printer lp lp1The %none% means don't use fancy tricks to figure out which printers are attached to your UNIX, the Printer line defines two printers.
With that file Xprt would run for me, but it would not find /usr/bin/lp . (Because I don't have a /usr/bin/lp.)
As the Xprt.ps document shows, you can have more configuration files in a set of directories. The list included in prconfig.tgz is :
etc/X11/xserver/print/attributes/printer etc/X11/xserver/print/Xprinters etc/X11/xserver/print/models/EPSON.STYLUS.COLOR.400/model-config etc/X11/xserver/print/models/EPSON.STYLUS.COLOR.400/fonts.dirOn my system they're in /etc but I stripped of the leading / .
Let's have a look. print/attributes/printer contains :
# # Printer attributes file as described in §2.4 # lp.descriptor: this is my Epson lp1.descriptor: Epson Stylus Color 400 *xp-spooler-command: /tmp/printit *.xp-model-identifier: EPSON.STYLUS.COLOR.400
When you run test/Xm-2.1/print/test3, you'll see that it finds the descriptors from this file. Importantly this file also shows how to run another command than /usr/bin/lp. The /tmp/printit file I use contains this :
#!/bin/sh cat >/tmp/print.$$.ps ghostview /tmp/print.$$.ps & exit 0
This makes sure the file gets put in a file in /tmp, and then ghostview is run on it. Make sure to make /tmp/printit executable with chmod a+x /tmp/printit
I ship a couple more files in the prconfig.tgz to show how to use the model identifier, but they don't have sensible contents in my case.
Note finally that there's certainly some parts missing here. First, I appear to have found a way to get Xprt to output PostScript instead of PCL or something of the kind. Ideally it should produce the format that my printer understands, I'm currently better off with the PostScript.
Second, I don't have DtPrint or XmPrint in place so I cannot yet offer decent demo programs that work.
Actually you may only need the Xprt that I use. It has a bugfix in it and it's linked only to system libs :
dell: {34} ldd /home/danny/Hungry/X11r6.5.1/xc/programs/Xserver/Xprt libm.so.6 => /lib/libm.so.6 (0x40020000) libc.so.6 => /lib/libc.so.6 (0x4003e000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)This should be fine.
I've just stripped and compressed the Xprt, I'll upload it to http://users.skynet.be/danny.backx/download/Xprt-linux.gz
It should be this size :
-rwxrwxr-x 1 danny backx 963552 Mar 21 20:49 /tmp/Xprt-linux.gzTo use it, you would need some setup files that I'm attaching.
dell: {28} du /etc/X11/xserver/print/ 16 /etc/X11/xserver/print/attributes 8 /etc/X11/xserver/print/ddx-config/PostScript 8 /etc/X11/xserver/print/ddx-config/XP-RASTER 20 /etc/X11/xserver/print/ddx-config 11716 /etc/X11/xserver/print/models/EPSON.STYLUS.COLOR.400/fonts 11724 /etc/X11/xserver/print/models/EPSON.STYLUS.COLOR.400 11728 /etc/X11/xserver/print/models 11772 /etc/X11/xserver/print
I've made a tar.gz file which doesn't include the contents of the fonts directory, as this can be grabbed off the net or any recent X source distribution. It's on the X11R6.5.1 distribution on ftp.x.org for instance.
Here's a list :
dell: {36} ls -l /etc/X11/xserver/print/models/EPSON.STYLUS.COLOR.400/fonts total 11712 -rw-r--r-- 1 danny backx 382972 Dec 24 1996 AvantGarde-Book.pmf -rw-r--r-- 1 danny backx 422340 Dec 24 1996 AvantGarde-BookOblique.pmf -rw-r--r-- 1 danny backx 399140 Dec 24 1996 AvantGarde-Demi.pmf -rw-r--r-- 1 danny backx 432472 Dec 24 1996 AvantGarde-DemiOblique.pmf -rw-r--r-- 1 danny backx 319364 Dec 24 1996 Courier-Bold.pmf -rw-r--r-- 1 danny backx 348132 Dec 24 1996 Courier-BoldOblique.pmf -rw-r--r-- 1 danny backx 327004 Dec 24 1996 Courier-Oblique.pmf -rw-r--r-- 1 danny backx 299848 Dec 24 1996 Courier.pmf -rw-r--r-- 1 danny backx 388912 Dec 24 1996 Helvetica-Bold.pmf -rw-r--r-- 1 danny backx 429360 Dec 24 1996 Helvetica-BoldOblique.pmf -rw-r--r-- 1 danny backx 410500 Dec 24 1996 Helvetica-Oblique.pmf -rw-r--r-- 1 danny backx 357216 Dec 24 1996 Helvetica.pmf -rw-r--r-- 1 danny backx 405084 Dec 24 1996 LubalinGraph-Book.pmf -rw-r--r-- 1 danny backx 435380 Dec 24 1996 LubalinGraph-BookOblique.pmf -rw-r--r-- 1 danny backx 411324 Dec 24 1996 LubalinGraph-Demi.pmf -rw-r--r-- 1 danny backx 448684 Dec 24 1996 LubalinGraph-DemiOblique.pmf -rw-r--r-- 1 danny backx 434736 Dec 24 1996 NewCenturySchlbk-Bold.pmf -rw-r--r-- 1 danny backx 442732 Dec 24 1996 NewCenturySchlbk-BoldItalic.pmf -rw-r--r-- 1 danny backx 412788 Dec 24 1996 NewCenturySchlbk-Italic.pmf -rw-r--r-- 1 danny backx 383500 Dec 24 1996 NewCenturySchlbk-Roman.pmf -rw-r--r-- 1 danny backx 423980 Dec 24 1996 Souvenir-Demi.pmf -rw-r--r-- 1 danny backx 449796 Dec 24 1996 Souvenir-DemiItalic.pmf -rw-r--r-- 1 danny backx 384208 Dec 24 1996 Souvenir-Light.pmf -rw-r--r-- 1 danny backx 393492 Dec 24 1996 Souvenir-LightItalic.pmf -rw-r--r-- 1 danny backx 357252 Dec 24 1996 Symbol.pmf -rw-r--r-- 1 danny backx 369068 Dec 24 1996 Times-Bold.pmf -rw-r--r-- 1 danny backx 380384 Dec 24 1996 Times-BoldItalic.pmf -rw-r--r-- 1 danny backx 341196 Dec 24 1996 Times-Italic.pmf -rw-r--r-- 1 danny backx 339148 Dec 24 1996 Times-Roman.pmf -rw-r--r-- 1 danny backx 478308 Dec 24 1996 ZapfDingbats.pmf -rw-rw-r-- 1 danny backx 1126 Jan 3 21:03 fonts.dir
The configuration files that I ship also refer to a small script /tmp/printit which I've included. It stores the output of Xprt print commands in /tmp/print.$$.ps where $$ is the process id of the shell that runs /tmp/printit, so you get a different output file for each run. Also it invokes ghostview.
I start Xprt from my .xinitrc file as such :
(sleep 3; /home/danny/Hungry/X11r6.5.1/xc/programs/Xserver/Xprt :1 -fp
/usr/lib/X11/xserver/C/print/models/EPSON.STYLUS.COLOR.400/fonts,tcp/localhost:7100
2>&1 >/dev/pts/0)&
I found both elements of the font path to be required, not sure why. This could be another bug which I've been unable to track.
Anyway as you can see one of the font path elements is the font server (xfs), which I enabled on my linux box especially for this. The font server has a standard configuration.
A final element (unless I forget something) is to set the environment variable XPSERVERLIST to :1 - that's your Xprt.