[Zope] Reportlab issue

David H bluepaul at earthlink.net
Sun Aug 27 21:25:13 EDT 2006


Jonathan wrote:

>
> ----- Original Message ----- From: "David H" <bluepaul at earthlink.net>
> To: "zope user list" <zope at zope.org>
> Sent: Sunday, August 27, 2006 8:54 PM
> Subject: [Zope] Reportlab issue
>
>
>> Hi Zope List,
>>
>> I have an Zope application that uses ReportLab to generate acrobat 
>> viewable reports. (I already posted this to reportlab list - so far 
>> no solutions).
>>
>> Heres the problem:
>>
>> I display an acrobat report (using Firefox or IE 6) and say scroll 
>> down to page 10.  I then use the <browser> back button to re-enter my 
>> Zope application.
>>
>> Now, even if I click various unrelated pages in the application  
>> (clearing the request,etc) and then return to the Report (which is 
>> always freshly generated) it will try to re-display at page 10 - 
>> instead of top of page.
>> This occurs even if the data being reported has changed, and this 
>> occurs even if a different report is generated!
>>
>> Note: that I use
>>
>> import tempfile and
>> tmpFile2 = tempfile.mktemp()
>>
>> to keep pdfPath's unique ...
>>
>> I've tried combinations of "Content-Disposition" params like changing 
>> filename=, etc.  Nothing is changing this behavior.
>>
>> I've tried (a reportlab mailing list suggestion) varying to <forms 
>> action= like
>>
>>   <form name="printform" method="post" 
>> action="extensions/pyBudgetReports"
>>         tal:attributes="action python: 
>> 'extensions/pyBudgetReports/?random=' + context.python.pyTime()">
>>
>> No help either.
>
>
>
> I have never used ReportLab, but is there a possibility that when you 
> go back to the adobe document it is being served from a cache?  You 
> could try using html meta tags or response.setHeader (better) to make 
> sure the document is not being served from the cache.
>
> Just a shot in the dark!
>
>
> Jonathan
>
Hi Jonathan,

Yes, I did try that, e.g. (report lab + external file stuff)
   # -----------------------------------------------------------
   def writeReport(self, RESPONSE):
   # -----------------------------------------------------------
      """
        generates report output
      """
         self.save()
         theFile=open( self.pdfpath,'rb')
         result = theFile.read()
         theFile.close()
         os.remove(self.pdfpath)
         # the next 3 lines were snarked from google "zope no cache"  I 
think its a casey duncan recipe ...
         RESPONSE.setHeader('Pragma', 'no-cache')
         RESPONSE.setHeader('Cache-Control','no-cache')
         RESPONSE.setHeader('Expires', 'Sat, 1 Jan 2000 00:00:00 GMT')
         # the normal fair
         RESPONSE.setHeader('Content-Type','application/pdf')
         
RESPONSE.setHeader('Content-Disposition','inline;filename="reportNz.pdf"')
         RESPONSE.setHeader('Content-Length',len(result))
         RESPONSE.write(result) # result is

And it didn't help. 

David




More information about the Zope mailing list