[OpenLayers-Users] loadURL returns a pdf

Alexandre Dube adube at mapgears.com
Fri Feb 6 10:12:05 EST 2009


Thanks Bart,

  This looks great.  I'll take some time today to look at all this.

Alexandre

bartvde at osgis.nl wrote:
> Hi Alexandre,
>
> I've got a PHP script which will return in JSON the url of the pdf,
> something like:
>
> {success: true,
> 'url':'http://test.intranet.rijkswaterstaat.nl/apps/geoservices/ms_tmp/layout_498c466c_441e_1.pdf'}
>
> then my download function will set it to the src of an iframe making use
> of a download.php script (which sets the correct http headers for starting
> a download dialog in the browser):
>
>     download: function(response) {
>         var res = eval( "(" + response.responseText + ")" );
>         this.iframe.dom.src = GeoServices.ScriptsUrl +
> '/download.php?url='+res.url;
>         GeoServices.getApplication().hideWaitScreen();
>     },
>
> The iframe was created like:
>
>         this.iframe = Ext.get(Ext.DomHelper.append(document.body,
>             Ext.apply({tag:'iframe', style: 'display:none',
>             src:(Ext.isIE&&Ext.isSecure)?Ext.SSL_SECURE_URL:''},true)));
>
> So actually I am using an iframe and not a form (the form was from the top
> of my head).
>
> download.php is something like:
>
> <?php
>
> header("Cache-Control: cache, must-revalidate");
> header("Pragma: public");
>
> function getContentType($filename) {
>   $path_info = pathinfo($filename);
>   $extension = strtolower($path_info['extension']);
>   if ($extension == 'pdf') {
>       return 'application/pdf';
>   } else if ($extension == 'xml') {
>       return 'text/xml';
>   } else {
>     return 'application/octet-stream';
>   }
> }
>
> if (isset($_GET['url'])) {
>   include_once(dirname(__FILE__)."/../../chameleon/htdocs/common/http/HTTPClient.php");
>   $oHTTPClient = new HTTPClient("", 30);
>   header( "Content-type: application/pdf" );
>   header( "Content-Disposition: attachment; filename=kaart.pdf" );
>   echo $oHTTPClient->doGET($_GET['url']);
>
> } else {
>   header( "Content-type: ".getContentType($_POST['filename']));
>   header( "Content-Disposition: attachment; filename=".$_POST['filename'] );
>   echo stripslashes($_POST['stream']);
> }
>
> ?>
>
> Best regards,
> Bart
>
>   
>> Hi Bart,
>>
>>   Do you mind showing me a snippet of what you did ?
>>
>> Many thanks,
>>
>> Alexandre
>>
>> bartvde at osgis.nl wrote:
>>     
>>> I did not find a way to do this with AJAX. So if you find one, I'd be
>>> interested :-) but my search back then indicated this is not possible.
>>>
>>> So I ended up doing the following:
>>>
>>> 1) my script sends the url to the pdf
>>> 2) I set the url as the action of a form and submit the form
>>> 3) the download dialog starts
>>>
>>> I also had to have a static form in my HTML page instead of inserting it
>>> with javascript, since otherwise IE would end up opening a new window.
>>>
>>> Best regards,
>>> Bart
>>>
>>>
>>>       
>>>> Dear users,
>>>>
>>>>   Still looking for a way to achieve this.  Does anyone have a hint ?
>>>>
>>>> Alexandre
>>>>
>>>> Alexandre Dube wrote:
>>>>
>>>>         
>>>>> Hi list,
>>>>>
>>>>>   Can I load a script that returns a pdf using loadURL() ?  It
>>>>> currently
>>>>> returns "Unhandled request return OK" but if I copy the URL in a new
>>>>> tab
>>>>> I get my pdf correctly.  Any idea what may be wrong ?
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> --
>>>> Alexandre Dubé
>>>> Mapgears
>>>> www.mapgears.com
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at openlayers.org
>>>> http://openlayers.org/mailman/listinfo/users
>>>>
>>>>
>>>>         
>>>
>>>       
>> --
>> Alexandre Dubé
>> Mapgears
>> www.mapgears.com
>>
>>
>>     
>
>
>   


-- 
Alexandre Dubé
Mapgears
www.mapgears.com




More information about the Users mailing list