"Frank Millman" <[EMAIL PROTECTED]> ha scritto nel messaggio
news:[EMAIL PROTECTED]
> Hi all
>
> I need to generate potentially large reports from a database, and I
> want to offer the option of print preview before actually printing
> (using wxPython). I figure that the best way to achieve this is to
> write the report to a temporary file, or more likely to a temporary
> directory with a separate file for each page. I can use that for
> previewing and for printing, and then delete the file/directory.
>
> There seems to be a few ways to achieve this, and I am not sure of the
> best way.
>
> 1. I can call tempfile.TemporaryFile() for each file required.
>
> 2. I can call tempfile.mkdtemp() to create a temporary directory, and
> create each file manually.
>
> 3. I can call os.tmpfile() for each file required.
>
> After creating the files, I need to re-read them, either one at a time
> in sequence (if printing), or any one at random (if previewing a
> particular page). This makes me lean towards method 2.
>
> With this method, I create the files manually, so I can name them
> according to their page numbers, which makes it easy to open and close
> them as required. The other two methods return open file objects, so
> it seems that I cannot close them, as there would be no means of
> accessing their contents subsequently. Therefore I would have to
> maintain a list of open file objects, use indexing to retrieve a
> particular page, and then perform seek(0) before I could read it. A
> slight downside of method 2 is that I have to delete the files and the
> directory manually when I have finished.
>
> I have two additional questions regarding method 3.
>
> Firstly, I am not sure how it works. The docs say that the file has no
> directory entries associated with it, and it will be automatically
> deleted when there are no file descriptors for the file. What does
> this mean? Does it create a physical file, or is it stored in memory?
> If the latter, could I run into memory problems if I create a report
> with hundreds of pages?
>
> Secondly, I can create the file using FC3 (Python 2.4), but if I try
> on Windows 2000 (Python 2.4) I get the message 'OSError: Permission
> denied', even though I am a member of the Administrators group.
>
> Any advice on the best approach for this will be much appreciated.
>
> Frank Millman


 Why create an intermediate file to preview with wxPython? I would just
preview the data with wx and keep it inside your application. If you want to
print it just print... avoid temp file creation if it's not necessary... :)

F.P.


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to