[mod_python] Server Side Printing

Jim Gallacher jpg at jgassociates.ca
Sat Aug 12 10:42:37 EDT 2006

There is also html2ps. I'm not sure how it handles css links, but take a
look at it as well.


S.R.Pardá wrote:
> 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