Capita spesso di dover servire un file pdf dal nostro server Web. Per creare e servire dinamicamente il file si può usare la risposta alla richiesta di una pagina dell'applicazione per simulare lo scaricamento di un file pdf. Per esempio una pagina "miopdf.php" non risponderà con una pagina html ma con il contenuto binario di un file pdf.
Questa soluzione consente di generare dinamicamente il file (magari in memoria) sulla base di parametri passati alla pagina.
Quello con cui ci si scontra spesso è un comportamento non desiderato del browser rispetto ai file Pdf inseriti in IFrame.
Bisogna prestare attenzione alle intestazioni usate dal WebServer nella risposta. ("Content-Type", Content-Lenght", etc...)
In particolare però far attenzione parametro "content-disposition", i possibili valori sono:
- "inline; filename=miofile.pdf"
- "attachment; filename=miofile.pdf"
Questa intestazione permette al Browser di decidere di scaricare il file ("attachment"); oppure di aprirlo tramite un plugin installato ("inline").
A seconda delle opzioni del browser con "inline" il file pdf verrà aperto in una nuova tab o una nuova finestra usando il plugin predefinito e quindi visualizzato nel browser a piena pagina.
Per usare il file pdf come source di un iframe si usa il valore "inline" altrimenti Internet Explorer bloccherà il contenuto dell'IFrame segnalando una violazione delle policy anti-popup.
Commenti