[mod_python] Server Side Printing

S.R.Pardá linux at qbox.es
Sat Aug 12 08:29:29 EDT 2006


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
> 



More information about the Mod_python mailing list