Print Support Manual

From Sugar Labs
Jump to navigation Jump to search


Printing had been one of the "to be taken as granted" features that Sugar lacked. And only after getting a working model done has it been a realisation to me why it had been abandoned. A lot of [re]engineering, brain-storming, design constraints, and factors such as dependencies and inclusion of concepts beyond any direct correlation with Printing, plus fighting with additional languages such as C,C++ and php had been a great overhead on me. So the outcome is definitely a bit clunky ( what I feel), but anyway, I will be sticking with the project and Sugar and will definitely make it more concrete.


1) The feature to open any cups supported MIME-type file(including ODT when done right) and display it.
Dev-interest: I have used CUPS-PDF as the agent of conversion, it comes as a very light-weight package, but requires Ghostscript as a dependency (a major one at that). Also, since every mime-type to postscript conversion happens through filters, enhancing the number of file types supported by adding new filters will be pluggable. I found this quite useful in that regard IBM guide.
2) The feature to store the converted PDF as a Journal entry.
3) A way to send the PDF at hand to a Moodle install on the SchoolServer (XS)
4) An interface in Moodle for the admin and teachers to send for printing. (which is a site-wide activity)
5) The feature to also Print to a local printing device from within sugar.
6) A way to set the page ranges(currently not functional due to a bug) and Select the Printer in case of multiple printers from within Sugar.
7) The ability to monitor the Print Queues through a Frame item, which is the print device icon.


Dependencies: Cups, pycups, gconf, Cups-PDF.


1) Install the XO bundle to your activities folder. The dependencies will require you be as root.
2) Download the PrintDeviceIcon from here:[X] and place it in your sugar data folder, also note that you must have a copy of in it.
3) Download the following filter pack:
4) untar it using : tar xvfz odftops.tar.gz
5) Do mv odftops.convs /etc/cups
mv odftops.types /etc/cups
mv odftops /usr/lib/cups/filter
CHMOD 755 /usr/lib/cups/filter/odftops
Set SELINUX (If you have it) to Permissive or do a restorecon on the filter folder.
6) restart cups
7) To sugar-100.gtkrc and sugar-72.gtkrc add: gtk-print-backends = "cups"
Some experiments have determined that the default installation of Cups you have might not work and the filter may fail, so you might want to update to a newer Cups.

Moodle Print Module Installation

Please follow this: Module installation
There is a video for this as well: youtube link


1) Set ranges wont get printed.
2) Despite having jobs in the Print Activity in Moodle, it will show that no assignments have been submitted.

Expansions and the Future

1) Adding A settings page to Moodle
2) Integrating Network printing, printer sharing and Redesigning some of the interface.


So if you've been wondering on how to use this, here is the guide:

After installing both the activities,
1) You can Open a file with Print in two ways, either by directly clicking the activity which will prompt you with a journal browser, from which you can select the file.
or right click on a file in the journal and open with Print.
2) In Print, you can either directly hit Print in the default toolbar, or hit send to moodle, ( sorry no notifications here currently)
Or you can go into the specialized Print Setup toolbar, and select the pageranges and the printer and print to it.
3) While an USB Printer is plugged, you will notice that the Frame has a Printer Icon in it at the bottom. This is the printer device icon. When there is no job it just shows you the Name of the Printer.

And when you have jobs piled up you can see the statuses of those jobs in the icon and can cancel a job which is still in the queue.
4) In Moodle, you will have Print under site activities(Please add it only to the site activities, some bad magic is known to take place if you add it elsewhere first, to be fixed soon). After adding it and setting the size of Print items, you will have an activity ready.
5) The print requests from the XO user should present themselves in moodle's Print's admin/teacher page.
6) You will notice an ugly Print button, which will do the job
7) Also as an alternate, users can up documents to their Print page, and teachers can then do the Printing as well.

<Soon to come Pics Showing the same>