Jonathan wrote:


----- Original Message ----- From: "David H" <[EMAIL PROTECTED]>
To: "zope user list" <zope@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


_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to