Thanks for the suggestions. I was thinking about storing it for later 
but this is something where it doesn't have to stick around for long. I 
was thinking that caching it for a day or two would be sufficient. Can I 
cache a .pdf file?

Justin

Sherrard Burton wrote:
> fwiw, you might also want to think about a "store and serve" system, 
> depending on how much volume you'll be handling or how much processing 
> it takes to produce each pdf.
>
> we use a similar system for dynamic images using a PerlHandler. 
> basically, the first time an image is requested, we generate it and save 
> it to a file. from then on we just serve the file. but at the mason 
> level you could use something like this:
>
>
> <%init>
> my $file_name = ($r->filename =~ /.*?\/pdfs\/(.*?)\.pdf/gi);
> generate_and_save_pdf($file_name);
>
> my $fh;
> open ( $fh, $file_name );
>
> $m->clear_buffer();
> $r->content_type ( 'application/pdf' );
> $r->send_http_header;
> $r->send_fd ( $fh );
> close ( $fh);
>
> return;
> </%init>
>
> and since this code is in the dhandler, the ( ! -e $file_name ) is a given.
>
> i'm assuming from your earlier code that you already have a scheme for 
> encoding the pertinent information into the url/file name. one thing i 
> like better about this approach is that it uses an apache internal 
> instead of having to read and handle binary data in a scalar, which i 
> think can be troublesome because of charsets and input/output record 
> seperators.
>
> and remember, watch the whitespace.
>
>
> J Cook wrote:
>   
>> I found the problem, it was in my session_handler.pl, which is pretty 
>> much a stock version that I got off of masonhq.com for use with 
>> MasonX::Request::WithApacheSession. I commented out:
>>
>> # return -1 if $r->content_type && $r->content_type !~ m|^text/|io;
>>
>> out of my handler sub. Now it works fine but I'm wondering if this is 
>> the best way to handle it - it seems this line is here to restrict my 
>> mason app from serving anything other than a text/(html|plain) document. 
>> Will commenting this out cause any problems?
>>
>> Justin
>> Sherrard Burton wrote:
>>
>>     
>>> john is right about the whitespace, but a 404 would have nothing to do 
>>> with whether the content is generated on the fly or served from 
>>> somewhere else on the filesystem.
>>>
>>> my guess is that something is not quite right with your mason setup. i 
>>> would break it down to a simple test case where you have a dhandler that 
>>> just dumps the apache headers or something simple like that, because it 
>>> doesn't look like your dhandler is actually getting called. you could 
>>> also create the same kind of test component in an actual file with a 
>>> .html or .pdf extension to see if they are served and parsed by mason.
>>>
>>>
>>>
>>> John Williams wrote:
>>>  
>>>
>>>       
>>>> You have carriage returns before and after <% $output %> which could be
>>>> messing up your pdf, and which would definitely mess up a gif or jpeg.
>>>>
>>>> Try putting the output inside the <%init> section and abort when you are
>>>> done, like this:
>>>>
>>>> <%init>
>>>> # ...  generate pdf  ...
>>>> $r->content_type('application/pdf');
>>>> $m->clear_buffer;
>>>> $m->print($output);
>>>> $m->abort;
>>>> </%init>
>>>>
>>>> ~ John Williams
>>>>
>>>>
>>>> On Tue, 11 Jul 2006, J Cook wrote:
>>>>
>>>>
>>>>    
>>>>
>>>>         
>>>>> Hi,
>>>>>
>>>>> I have a module that generates a pdf file on the fly that I want to use
>>>>> with Mason. So I have a directory named /pdfs and a dhandler that looks
>>>>> like:
>>>>>
>>>>> <%init>
>>>>> my $file_name = ($r->filename =~ /.*?\/pdfs\/(.*?)\.pdf/gi);
>>>>> $r->content_type('application/pdf');
>>>>> my $output = generate_pdf($file_name);
>>>>> </%init>
>>>>>
>>>>> <% $output %>
>>>>>
>>>>> <%flags>
>>>>> inherit => undef
>>>>> </%flags>
>>>>>
>>>>> And I have in httpd.conf I have:
>>>>>
>>>>> <FilesMatch "(\.html|.pdf)$">
>>>>>   SetHandler  perl-script
>>>>>   PerlHandler MyApp::Mason
>>>>> </FilesMatch>
>>>>>
>>>>> First off the file_name must match a database row, so generate_pdf can
>>>>> use that info to make the pdf. So when I call something like:
>>>>> http://example.com/pdfs/12345.pdf
>>>>> I want to see a pdf pop up, but all I get is a 404 'Not Found' error. On
>>>>> masonhq.com in the FAQs I read:
>>>>>
>>>>> "Use mod_perl's $r->content_type function to set the appropriate MIME
>>>>> type. This will allow you to output, for example, a GIF file, even if
>>>>> your component is called dynamicImage.html."
>>>>>
>>>>> Does this mean that Mason cannot serve a pdf file that is generated on
>>>>> the fly like this? Do I need to name it with a .html extension and hope
>>>>> this doesn't break in certain browsers? Or is it something in my code
>>>>> above that is wrong?
>>>>>
>>>>> Justin
>>>>>
>>>>>
>>>>> -------------------------------------------------------------------------
>>>>> Using Tomcat but need to do more? Need to support web services, security?
>>>>> Get stuff done quickly with pre-integrated technology to make your job 
>>>>> easier
>>>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>> _______________________________________________
>>>>> Mason-users mailing list
>>>>> Mason-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>>>>
>>>>>      
>>>>>           
>>>> -------------------------------------------------------------------------
>>>> Using Tomcat but need to do more? Need to support web services, security?
>>>> Get stuff done quickly with pre-integrated technology to make your job 
>>>> easier
>>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>> _______________________________________________
>>>> Mason-users mailing list
>>>> Mason-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>>>    
>>>>         
>>> -------------------------------------------------------------------------
>>> Using Tomcat but need to do more? Need to support web services, security?
>>> Get stuff done quickly with pre-integrated technology to make your job 
>>> easier
>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>> _______________________________________________
>>> Mason-users mailing list
>>> Mason-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>>
>>>  
>>>       
>>
>>
>> -------------------------------------------------------------------------
>> Using Tomcat but need to do more? Need to support web services, security?
>> Get stuff done quickly with pre-integrated technology to make your job easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> Mason-users mailing list
>> Mason-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>     
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Mason-users mailing list
> Mason-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mason-users
>
>   



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to