[mod_python] Server Side Printing

S.R.Pardá linux at qbox.es
Sat Aug 12 11:04:00 EDT 2006


Yeah, I was trying html2ps. 

Now I can start wdrking in the document printing system.

wget -O - http://localhost/printDocument.psp?idDoc=0248; | html2ps
--colour | lp -d LaserJet-4100

With that line, We can print a dinamically generated .html document from
the server shell, so now, like Graham exposed,  I will execute it from
Apache-ModPython server in a page that receive the order to print
requested by the user.

We must run then with quiet options in all programs , like lp -s that
said Graham.

I don't know if it will support CSS well, but the documents are required
only for printing, so they can be designed with the limits of html2ps in
mind, and they are not complex documents. And with HTML file I can use
my knowledge of the format to design it fast, and can use a  WYSIWYG
designer. In the future some preprinted forms will be easy to be filled
and adjusted.

I'm happy too, with the centralized printer system, so the clients will
be configured at instant when conencted to server, don't worring by
printers installations. 
I will need to retrieve the server's list of installed printer, so the
application admin will be able to select printers from a list. I think I
will have to look at the devices section in the filesystem.

Thank You to All,







El sáb, 12-08-2006 a las 14:29 +0200, S.R.Pardá escribió:
> Ok, 
> 
> Thank You Very Much, Graham.
> 
> That looks a way to the solution. 
> 
> You understand me, and like you pointed, the idea is to print content on
> the fly.
> 
> And now you will understand I want to use HTML because at this moment I
> would prefer not to get inside on another Page Description language to
> generate the documents. 
> I know HTML itsn't WYSIWYG but in a Server Side printing environment I
> can have it controled, and I can change later to another document format
> if needed with more time to develop it. So I will try html2ps first
> before pdf2ps.
> 
> I will investigate further. 
> I wonder if mod_python can get the own page as the onthefly source after
> send the request. 
> Or if the file can be something like:
> "http://server/printableBill.psp?num=0248;"
> 
> 
> Thank You again.
> 
> 	S.R.Parda
> 
> El sáb, 12-08-2006 a las 21:47 +1000, Graham Dumpleton escribió:
> > On 12/08/2006, at 9:39 PM, Graham Dumpleton wrote:
> > 
> > > Please keep discussion on the mailing list. I have forwarded your
> > > response back there.
> > >
> > > On 12/08/2006, at 9:18 PM, S.R.Pardá wrote:
> > >
> > >> Ok, I will try to explain it better.
> > >>
> > >> I have now in the server a PDF (or HTML) that I can open with eVince.
> > >>
> > >> How I send that document to a network printer from ModPython's
> > >> interpreted code when client user press PRINT button in one page.
> > >>
> > >> So server receive a HTTP request for:
> > >>
> > >> 	http://server/printBill.psp?doc=bill0248.pdf
> > >>
> > >> So I want to code a printBill.psp page that prints like:
> > >> <%
> > >> PrinterName = "HP-4100"		#Thats the name of the printer for bills
> > >> DocumentToPrint = form('doc')   #The Document the user want to print
> > >> SendToPrint (PrinterName, DocumentToPrint)
> > >> %>
> > >>
> > >> Now , how I code SendToPrint.
> > >>
> > >> Do I need to use some library ?
> > >> Can I execute evince from shell indicating some parameter to print  
> > >> on a
> > >> specified printer?
> > 
> > If the PDF were a file stored in the file system, in UNIX the command
> > to print it would be:
> > 
> >    pdf2ps somefile.pdf | lp -s -d HP-4100
> > 
> > In other words, convert to postscript and use 'lp' to spool to desired
> > printer. The '-s' option (may depend on platform), just tells lp to not
> > output status string about job number it was queued at.
> > 
> > This command could be invoked from Python using 'os.system()'.
> > Alternatively, if PDF content generated by Python code on the fly,
> > the you might want to use the 'popen2' module to create the command
> > as a pipe you can send data into in which case the command would
> > just be:
> > 
> >    pdf2ps | lp -s -d HP-4100
> > 
> > If you can't find pdf2ps, then get a copy of 'ghostscript' package for
> > your system and install that.
> > 
> > Graham
> > 
> > >> The principal problem is not be able to print from client if we can't
> > >> select the printer from the server , because user can't select every
> > >> time a printer for every kind of document he prints.
> > >>
> > >>
> > >>
> > >> El sáb, 12-08-2006 a las 20:24 +1000, Graham Dumpleton escribió:
> > >>> On 12/08/2006, at 7:22 PM, S.R.Pardá wrote:
> > >>>
> > >>>> Hi all,
> > >>>>
> > >>>> I'm considering solutions to print HTML pages served by some  
> > >>>> Linux OS
> > >>>> with Apache and  Mod_Python.
> > >>>>
> > >>>> I am looking a server side approach, that is: I want the server
> > >>>> send the
> > >>>> HTML output when required to one of varios network printers
> > >>>> installed in
> > >>>> the server.
> > >>>>
> > >>>> I have not idea about linux printing , I would need an orientation
> > >>>> about
> > >>>> what have to know.
> > >>>> Are any python module for printing?
> > >>>> Must I execute some shell command to print inside python?
> > >>>> Must I generate a PostScript document from the HTML document to  
> > >>>> print
> > >>>> it ?
> > >>>>
> > >>>>
> > >>>> More details:
> > >>>>
> > >>>> Web Clients (Windows probably) will print some documents  
> > >>>> received. But
> > >>>> the documents have diferent formats (size, orientation, duplex  
> > >>>> option)
> > >>>> so it's desiderable the automatic printer/configuration selection
> > >>>> ( that
> > >>>> is: witout a printer selection dialog in IE or Firefox and the  
> > >>>> default
> > >>>> printer isn't valid for all documents)
> > >>>>
> > >>>> As I found in client window Javascript it's not capable of select
> > >>>> printers in client side, I have to investigate with VBscript, and
> > >>>> another possibility would be install an ActiveX control to do that
> > >>>> (restricting possible client options).
> > >>>>
> > >>>> So I think the server approach, would be better because it  
> > >>>> eliminates
> > >>>> printer management in client, and assures the same HTML render
> > >>>> configuration for all printings, independent of client  
> > >>>> configuration /
> > >>>> browser.
> > >>>
> > >>> Not sure I really understand what you are trying to do, but if your
> > >>> target
> > >>> is a printer, not sure why you would want to try and render to HTML
> > >>> and then print that. Your better option would be target PDF as your
> > >>> display format and then print the PDF file.
> > >>>
> > >>> Suggest you have a look at the following sites:
> > >>>
> > >>>    http://www.openreport.org
> > >>>    http://www.reportlab.org
> > >>>    http://www.reportlab.com
> > >>>
> > >>> With these solutions, one option is to describe documents as RML.  
> > >>> This
> > >>> can be filled out with data from some source and then translated  
> > >>> into
> > >>> PDF
> > >>> or HTML. Thus HTML becomes a screen representation but PDF what
> > >>> is used for printing.
> > >>>
> > >>> If you already have the document generation side worked out, and are
> > >>> only really after solution for printing, not sure how Apache and
> > >>> mod_python
> > >>> comes in to it all.
> > >>>
> > >>> Anyway, hope the sites I reference might be of some help.
> > >>>
> > >>> Graham
> > >>>
> > >>>
> > >
> > >
> > > _______________________________________________
> > > Mod_python mailing list
> > > Mod_python at modpython.org
> > > http://mailman.modpython.org/mailman/listinfo/mod_python
> > 
> 
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python



More information about the Mod_python mailing list