How to print from linux WITHOUT needing any linux printer drivers or PPDs.

If you are one of many users who have one Windows computer in LAN and lot of Linux computer and lot of printers which don't work with Linux we have solution.
After some googling we found page that explain how to print on Windows printer from Linux machine without any driver or PPD needed. You can red it here. But it is to hard to confiugure for most of users, it supports only one printer on one computer, and it is hard to manage. We created program which is doing same thing much better and easier.
We created NoLinuxDriver printer server in C# which you can download from here.
We also created automated script for Linux which installs for you everything needed for printer to work, so you don't need to do anything  else.

How to install printer server on Windows:

  1. Install printer on your Windows machine. It can be any Windows machine which supports .NET 2.0 framework.
  2. Download printer server from here and unzip it somewhere.
  3. Install AFPL Ghostscript from http://www.cs.wisc.edu/~ghost/
  4. Install GSview from http://www.cs.wisc.edu/~ghost/ 
  5. Create shortcut of  PrinterLinuxServer.exe  and move it to Programs->Startup so it will run on startup.
  6. Start PrinterLinuxServer.exe and click refresh.
  7. Go to C:/printers/ and right click on folder named by your printer.
  8. Click Sharing and share that folder, choose people who can access it, if you don' know you can choose Everyone and you must enable them to read and write.
  9. That is all for Windows :)
Go to your Linux machine:

  1.  Download printer server from here and unzip it to your home folder for example '/home/juser/printer' .
  2.  Go to folder where you extracted  server and opet "auth" file. Change your username, password and domain.
  3. Open install.sh file and change the name of your printer (red colored) and IP adress(pink colored) of your server and your shared folder. #!/bin/bash
    cp adist5.ppd /usr/share/cups/model/
    cp winp /usr/lib/cups/backend/
    cp auth /usr/lib/cups/backend/
    chmod +x  /usr/lib/cups/backend/winp
    mkdir /var/spool/winp
    chmod 777  /var/spool/winp
    lpadmin -p minolta163 -E -v winp://192.168.1.8/minolta163 -m adist5.ppd
  4. Open terminal.
  5. Go to folder where you extracted  server and type: sudo bash install.sh
  6. Run system-printer-config , choose your printer and run Test page.
  7. Thats all :)
When you click print on Linux, winp will send *.ps file to windows shared folder and when server recognize .ps file it will print it instantly.
It looks like this:

On left side is list of printers, on right is log file which tels you what was printed and what command was executed to print.

Please leave comment if you have questions.

UPDATE: We found driver for Linux which works on almost ALL PRINTERS including KONICA MINOLTA, XEROX, LEXMARK, EPSON..., read more here: http://linuxibos.blogspot.com/2013/01/driver-that-works-on-allmost-all.html 

8 comments:

  1. Miracle, yes. Thanks!

    Just a few tips for others running into issues.... if your cups winp is showing failed, here are the two reasons I found:

    First, I had to rename the Share, Printer Name and C:\Printer\ to the same, basic name. After that, I had to use the Administrator login for my win-xp box as the username in my smb/cups, which is set in the 'auth' file in this package, which requires deleting your /cups/backend/winp/ and rebashing the install.sh with your updates.

    Sean

    ReplyDelete
  2. I've had different problems at different times, but most recently the problem was solved by simply:
    1) Changing the IP address in install.sh to match the new local P address on my windows computer, as it changes fairly often
    2) sudo bash install.sh from a terminal in the directory with install.sh;
    3) ignore the two error messages;
    4) print.

    Last time I also had to go into CUPS http://localhost:631/ , Maintenance, Set Allowed Users, as somehow mine had gotten changed.

    ReplyDelete
  3. I just tried to install this, but when i try to run the printerlinuxserver.exe. I just get an Application error saying " The application failed to initialize properly (oxc0000135). Click on OK to terminate the application."

    Does anyone has an idea why this happened?

    BTW i am trying to run this inside a virtualbox running Windows XP on a host sytem with Ubuntu installed.
    Reason for this is that i have a windows printer who I would like to use under Linux.

    Johan

    ReplyDelete
  4. I wanted to say a big thanks. This has helped many a times.
    Great helping Stuff...very useful...keep it Up!!!
    More info:- Brother Printer Support

    ReplyDelete
  5. I have a problem, winp has sent the .ps file to windows share folder, but the .ps file is empty, so my printer doesn't do anything. How can I solved the problem?

    ReplyDelete
  6. This information is really helpful. I can read those wonderful comments above :)
    Printer Support

    ReplyDelete