Turning Raspberry Pi into a Print Server

Turning Raspberry Pi into a Print Server

Raspberry Pi Print Server

Raspberry Pi Print Server

My job does not require the use of paper. So, I didn’t have a printer setup to my PC until one day…

“I want to print this document. Tell me how to set up the printer!”
“Someone will eventually make a print server with a Raspberry Pi, so I’ll tell you then.”

My boss was looking directly at my Raspberry Pi (he offered to print the documents).

So, here is the second part on increasing convenience in the office! I will be making a print server! (The corporate NAS we created is still in use in our office!)

What Is a Print Server?

Print server – Wikipedia

A print server, or printer server, is a device that connects printers to client computers over a network. It accepts print jobs from the computers and sends the jobs to the appropriate printers, queuing the jobs locally to accommodate the fact that the work may arrive more quickly than the printer can actually handle.

Most newer printers have a built-in print server. As Wikipedia lists, it is convenient that the driver can be installed without directly connecting a printer. It makes the printer easier to use.

Preparing Raspberry Pi and the Printer

Raspberry Pi Printer Server

Pic 1

Since I want to connect the Raspberry Pi and the printer via USB, I am using the Raspberry Pi Model B+, which has 4 USB ports. I will use the “Canon PIXMA iP100” printer. I will discuss more about that later, but when Raspberry Pi is used as a print server, it requires the driver for Linux.
Start by connecting the printer to Raspberry Pi via USB, and turn the power on (it is a compact printer, but it looks huge next to the Raspberry Pi).

Installing CUPS

CUPS – Wikipedia

CUPS (an acronym for Common Unix Printing System) is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

To use Linux as a print server, we will use a package called “CUPS.” It is a convenient tool, which allows printer management using a browser.
Let’s begin the installation process as usual!

Restart the unit when the installation is complete. Enter “http://localhost:631/” into the browser address bar to access set-up screen for CUPS.


Figure 1

If you see this screen, you did it right!

Registering the Printer from the Settings Screen of CUPS

Next, we will register the printer from the settings screen of CUPS!
It is possible to access it from the browser on Raspberry Pi, but it will be more convenient if Samba is installed. In that way, you can then access the settings screen from Windows. It was quicker for me to access it from Windows rather than from the Raspberry Pi browser.
For the installation of Samba, you can check the previous article “Adding NAS functionality to Raspberry Pi.

To access it from Windows, type “http://(Raspberry Pi’s IP address):631,” while connected to a network. For example, “http://raspberrypi:631” (when switching to the control screen, it automatically converted it to an IP address).

Cups settings

Figure 2

Click “Add Printer and Classes,” one of the links under “CUPS for Administrator” in the center of the screen. You will be sent to the same page by clicking “Administration”from the top  global menu.

CUPS Web Admin

Figure 3

This is the “Control” screen. Click “Add Printer” from the upper left “Printer” section.

CUPS authentication

Figure 4

Enter the user ID and password for the Raspberry Pi in the displayed box


Figure 5

You can select the printer to configure from the “Add Printer” screen.
We are using the printer connected via USB, so we select “Canon ip100 series” from the “Local Printers” and click “Continue.” If the printer is not turned on, it may not show up on the list.

Printer selection

Figure 6

Next, select the “Manufacturer” and “Model” of the printer to be added. If the manufacturer of the printer is not included, click “Select Other Manufacturer” to go to a list of specific manufacturers and select from there. Click “Add Printer” to complete the process!

The problem is that I can’t find the“ip100” model!
Upon quick search, it seems to be compatible with the driver of the “MX850” model, so I decided to proceed with this selection (in the end, it worked, so I think this was fine).

CUPS printer screen

Figure 7

This is what it looks when the setup is complete! The printer information is displayed.

CUPS Print Test Page

Figure 8

Let’s test the printer.
Click “Print Test Page” from the upper left “Maintenance” list box.

Raspberry Pi CUPS printer test page

Picture 2

It is a success!
CUPS logo, the official penguin mascot of Linux (his name is Tux!), and the printer information was printed. The print job was sent from the CUPS control screen, so this test page was printed from Raspberry Pi and not from Windows.
Let’s try printing from Windows as “print server”!

Have You Made a Print Server?

Next, let’s set up Windows.
Go to “Control Panel” → “Hardware and Sound” → “Device and Printer” screen. From the right click menu, select “Add Printer”and enter the printer information.

Windows printer installation

Figure 9

Available printers are listed, so we select “Canon_iP100_series,” which we added from CUPS before.

no driver found

Figure 10

A screen will pop-up that says “Can’t find the driver,” click “OK” to proceed.

Windows Adding Printer

Figure 11

Select the appropriate printer from the add printer wizard screen. Now, there is the correct printer name!

Windows printer installation

Figure 12

When the installation is successfully completed, the new printer is added!

Windows Printer

Figure 13

The printer has been added!
Let’s try printing a test page from here. Execute “Print Test Page” from the printer property.

Print Test Page

Picture 3

Got the test page!
I tested printing from the browser and Word (Image 3). If you can print from several softwares, you are set! The print server is made!


You can register several printers through CUPS, thus, it seems possible to control them all with a single Raspberry Pi. Since the environment, including the printer type and driver conditions, greatly affected the process, I feel a sense of accomplishment. Perhaps this will make it more convenient to print in your office!?

In the next article, I want to tackle a project that I have been wanting to try for a long time, which is “music.”
I have written it in my first article, my final goal is to be able to broadcast internet radio!
As the first step, I want to try making it to listen to music. Plug in a speaker to the audio terminal to create sound. Where is the sound?! (I expect a lot of problems again next time!)