[Zope] Reportlab issue

David H bluepaul at earthlink.net
Sun Aug 27 21:48:38 EDT 2006


Jonathan wrote:

>
> ----- Original Message ----- From: "David H" <bluepaul at earthlink.net>
> To: "Jonathan" <dev101 at magma.ca>
> Cc: "zope user list" <zope at zope.org>
> Sent: Sunday, August 27, 2006 9:25 PM
> Subject: Re: [Zope] Reportlab issue
>
>
>> 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.
>
>
> Another shot in the dark... could it be an adobe acrobat issue? By 
> which i mean that adobe sees that you are looking at the same document 
> (reportNz.pdf) and then tries to reopen the document at the last point 
> you were looking.  Try randomizing the file name (add 2 or 3 random 
> digits to the filename and see what happens).
>
> Good luck!
>
> Jonathan

Jonathan, 

We think alike.  If you scan my original msg you'll see that I tested 
varying the Content-Dispostion ...  report= name as well.

Im sure if it were a snake i'd be bitten by now.

David



More information about the Zope mailing list