Google Summer of Code 2017 - Some help needed

Till Kamppeter till.kamppeter at
Fri Apr 28 15:58:20 UTC 2017

On 04/28/2017 05:59 AM, Caolán McNamara wrote:
> The main question for me is what format/mechanism is provided by the
> user of the backend as the print transport format/mechanism, e.g. if
> it's simply (like cups) "give me the pdf to print" then it's relatively
> easy. If it's (like GtkPrintOperation) "here's a cairo context, render
> onto it what you want printed", then its not easy.

The backends simply need the PDF to be printed and the key/value-pair 
list of the option settings, nothing more. So integration should be easy.

>> - Would it be a good idea to modify the inner workings (not the GUI)
>> of the LibreOffice print dialog to talk to the printing
>> system(s)/printer(s) through a modular backend so that easily new
>> print technologies can be added or changes for the existing ones
>> being supplied?
> Assuming that we can just supply a final pdf to the print backend then
> this sounds sensible to me. Relatively not difficult to add new
> parallel support for retrieving printer lists and printer info and
> sending print jobs alongside our existing ones.

So as the backends will simply take the job in PDF and spreadsheet 
printing support is too complex to get into external print dialogs, let 
us go the way of making LO's original print dialog ready for the backends.

The dialog will have to look up the available backends and then do

1. On each dialog call the function to list the available printers, then 
show the list of all printers found via ll backends.

2. If the user chooses a printer to display its options (or get any 
detailed properties of it) call the function to query properties and 
options of the backend the printer comes from.

3. If the user sends off the job for printing, call the send-job 
function of the backend the printer comes from. Supply the print job in 
PDF and the option settings as key/value pairs.

4. If LO provides some kind of job monitoring, use the backend's list 
jobs functions (does LO do a thing like that?)

What I need from you is help in mentoring the student or even someone 
fully mentoring the student (this would be the best). Google says that 
mentoring a student will take around 5 hours/week.

I also need help where to find the relevant code to modify (ideally so 
that it can make it into Ubuntu 17.10 with Feature Freeze mid-August), 
how to most efficiently test-build (not needing to build the whole LO 
after each little change), coding policy guidelines, how to provide 
patches for upstream inclusion, ...


More information about the LibreOffice mailing list