Site icon BTNHD

PDF printer on a Samba Server

Advertisements

One of the most common ways to network Ubuntu and Windows computers is to configure Samba. Within this blog I will show you how to setup Samba File Server, Samba Print Server, and create a PDF creation script which will do the job of turning Postscript into an Adobe Acrobat file. The bulk of the work is done by the ps2pdf program, which is part of the Ghostscript package.

Step 1: Adding Ubuntu to Active Directory Domain (this was done with Windows Server 2003)

So back to Step 1:

So installing it is pretty easy, open a Terminal command or open a SSH session to your server:

at the command prompt enter: sudo aptitude install likewise-open-gui

once the package is downloaded and install on the server, it’s time to join the machine to your AD.

Step 2: Adding your computer to Active Directory Domain

Within your terminal session or putty session type in this commands:

After you are done, you can now log into your machine using your DOMAIN\user credentials. Remember that the DOMAIN\ part is mandatory and that it represents the short name of your AD domain.
Step 3: Installing Samba File Server
The first step is to install the samba package. From a terminal prompt enter:
  • sudo apt-get install samba

That’s all there is to it; you are ready to configure Samba to share folders.

Configuration of Samba File Server:

The main Samba configuration file is located in /etc/samba/smb.conf. The default configuration file has a significant amount of comments in order to document various configuration directives.

  • First, edit the following key/value pairs in the [global] section of /etc/samba/smb.conf:
    • workgroup = your.domain.name
    • security = user
      • security parameter is farther down in the [global] section, and is commented by default.
  • Create a new section at the bottom of the file, or uncomment one of the examples, for the directory to be shared:
    • [pdf_share]
    • comment = PDF share folder
    • path = /srv/samba/pdf
    • browsable = yes
    • guest ok = yes
    • read only = no
    • create mask = 0755
  • Now that Samba is configured, the directory needs to be created and the permissions changed. From a terminal enter:
    • sudo mkdir -p /srv/samba/pdf
    • sudo chown nobody.nogroup /srv/samba/pdf/
  • Finally, restart the Samba services to enable the new configuration:
    • sudo restart smbd
    • sudo restart nmbd

Now, you should be able to go to a Windows client and browse to the Unix share directory.

Step 4: Configuring the Samba Print Server

  • If you have been following the blog, you should already have the Samba installed. If not, from a terminal enter:
    • sudo apt-get install samba
Configuration of Samba Print Server:
  • Open the Samba configuration file, which is located here: /etc/samba/smb.conf.  The workgroup and security section of the [global] attribute should of been changed during the process of Step 3.
  • In the [printers] section change the guest ok option to yes:
    • browsable = yes
    • guest ok = yes
  • After editing smb.conf restart Samba:
    • sudo restart smbd
    • sudo restart nmbd
The default Samba configuration will automatically share any printers installed. Simply install the printer locally on your Windows clients.
Step 5: Creating the PDF printer
First, you’ll need to add the printer to the Samba configuration file. From a terminal open /etc/samba/smb.conf, and add the following stanza at the bottom of the configuration file:
    • [pdf]
    • comment = Print to create PDF
    • printing = LPRNG
    • path = /var/spool/samba
    • printable = yes
    • print command = /usr/local/bin/printpdf %s %u %H “%J”
      • %s = the pathname of the spool file
      • %u = the username for this service
      • %H = the home directory for the user
      • %J = the print job name, as sent by the client, this is usually the document’s name or title
Save your modified smb.conf file and test it by running the testparm command, you should see it processing the various sections of your smb.conf file.
  • The Script!
    • create a file within nano or vi (editor’s for unix) named printpdf and enter this:
      • #!/bin/sh
      • # Shell script to print to PDF files
      • # Parameters $1 = spool file (smbprn . . . )
      • # $2 = user name
      • # $3 = user home directory
      • # $4 = print job name
      • OUTDIR =/srv/samba/pdf
      • echo Converting $1 to “$4” for user $2 in $3 >> pdfprint.log
      • ps2pdf $1 “$OUTDIR/$4.pdf”
      • rm $1
    • save either of the scripts above as /usr/local/bin/printpdf, and make it executable with the command sudo chmod +x /usr/local/bin/printpdf.
Step 6: Configuring Windows Clients
You should use the Windows “Add Printer” wizard to add the printer on Windows clients that will use it. Obviously, this will be a network printer, and you should be able to browse to it by finding the server and double-clicking on it to list the print queues. For a suitable driver, virtually any Postscript printer driver will do. Once the printer has been created, you can customize settings such as the paper size.
Exit mobile version