<br>Hello!<br><br>So here is a refined and less abstract approach for the Print Idea. (input credit Luke, Ben, Tomeu)<br><br>Initial problem:<br><br> where do we get the cups daemon/server from, and how do we have it working on python since its written in c?<br>
solution:<br> The cups daemon would only need to be running on the core distro (add it as a dependency), and we have the amazing pycups bindings which wrap it up, so we can use in our configuration program and other apis which we will discuss.<br>
<br>Now, that we have CUPS ready, lets step into implementing it<br><br>problem 2: Interacting with the CUPS daemon to actually configure the printer<br><br>solution:<br><br>Debian has a python version of print-system-configure UI, hacking into the code will yield a decent template for fedora. Which can then be tailored to fit the sugar guidelines.<br>
<br><br>problem 3: Who does the actual printing of the files?!<br><br>solution:<br><br>well, again there's these amazing pygtk print modules that take care of it. They make the CUPS API a backend, and work as a decent printing API, they again access the print-system-configure UI(or diving more deeply, the files postscript files (PPD) ) ( I have written a sample printing program demonstrating it on fedora)<br>
<br><br><br>NOW LETS SUGARIZE THEM! (oh sweet sugar)<br><br>problem4: We have everything ready but where do we put our print-system-conifguration?<br><br>solution: we strip the debian (python based) UI, and dress it up with our nice sparkling UIs (the sugar design apis ) and put it in the control panel<br>
Here's where I propose an extra credit : Make the configuration An Interactive Wizard, (someone add groovy animations later on, or its on the end list on me) , as we will have<br> to provide a default printer configuration at least once, despite cups having the ability to automatically select the printer.<br>
<br>problem5: Okay, okay most of the job is done. Now where do we print from? <br><br>answer: <br>We print from that one place ofcourse, The Journal! (after all its he uncrowned king bad joke) <br> <br> As it is it is against the bitfrost system for a program to both access the network and the journal at the same time - secuirty constrictions. and also as to see that activity writers dont have to struggle with the print code, we can just see that the print requests are rendered into nice pdfs (CUPS again, we can print to pdfs) with the click of a magical button,store them at a known location and send those 'hit coordinates' and if any metadata by the IPC, and queue them up on journal for print. As an ACK send back a notification to the activity stating, "You have a print job waiting, print it with default settings? or go to journal to edit settings" Remember how i said pygtk can interact with the CUPS settings, well we will implement the relatively important ones in the journal as an option. <br>
<br>Extra credit: I've been thinking about this make the school server take in network print requests (feasible/required or not? input please) <br><br>Obscure stuff: CUPS server, Quota management, and permissions,<br>
<br>CUPS server is a background process (hence daemon) which loopsback over the listening ports and ips.<br>CUPS already benefits from a standard print quota management, the secrets of the implementation are in our debian configuration UI.<br>
permissions: ( I need input here) print permissions should be of any matter only if its a network assignment as far as i know.<br> <br><br><br>So what's the end result::<br><br>A nice interactive printer configuration wizard!<br>
Minimal work for the activity author! (an addition of 3 modules to print to pdf, but it will be of great value, as the user can present his work in as a pdf within the activity)<br>Journal acting as print dock!<br>pdf printing!<br>
And everything sugarized <br><br>P.S. My actual application will be formal, please dont kill me :P<br><br>Input Input Input please!<br><br>Thank You<br>Vamsi Krishna Davuluri<br><br><br>