Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    pdf generato mostra pagina bianca solo su IE, ma solo al primo caricamento

    buonasera a tutti,
    ho un problema con l'output a video di un pdf generato con php.
    Il titolo e l'introduzione richiamano diversi altri post, ma la situazione è diversa e più complicata degli altri, abbiate ancora un po' di pazienza per leggere sotto please.

    La generazione del pdf avviene senza problemi, l'output a video viene fatto direttamente dallo script php mandando prima gli headers e poi il buffer che contiene il pdf.
    Testato su Firefox, Chrome, Opera e Safari, nessun tipo di problema.
    Anzichè aprirlo a video l'ho salvato su file, nessun problema.
    L'unico intoppo è con Internet Explorer (testate le versioni 6, 7 e 8), non c'è verso, al primo caricamento appare pagina bianca, come se IE richiamasse Acrobat Reader ma poi non ci fossero dati nella pagina, o roba simile, poi se magicamente clicco sull'url e batto invio (quindi come ricaricare la pagina, ma F5 non funziona perchè non c'era niente caricato, ma lasciam stare), dicevo se chiamo di nuovo nella stessa sessione del browser la medesima pagina, magicamente anche IE si degna di mostrare il pdf, a questo punto senza problemi.

    Chiuso e riaperto il browser, IE si comporta come sopra, al primo caricamento bianco, poi va.
    Provato con diverse pagine ma sembra un problema proprio di Explorer.

    Ho provato a cercare fra le varie pillole di Knowledge Base di Microsoft e sono incappato in un articolo che spiega, in parole grezze e povere, che se IE trova un contenuto di tipo application/pdf ma l'url non finisce per .pdf, il bastard... ehm scusate IE potrebbe non caricare correttamente il contenuto della pagina.
    Beh, è quanto di più simile capita a me, anche se non è esattamente la stessa situazione.
    A questo punto ho provato a giocare col mod_rewrite dando in pasto al browser l'url mascherato, prima era qualcosa tipo www.nomesito.it/pagpdf.php?prod=1 e poi l'ho trasformato in www.nomesito.it/pdf/prod_1.php
    Come negli esempi sopra, 4 browser su 5 non danno alcun problema, IE invece rimane bianco al primo caricamento, come nell'esempio sopra descritto

    ... sto impazzendo ... help please !!!

    p.s. ho omesso di postare il codice perchè ritengo (forse un po' poco modesto ma credetemi) che non sia lì il problema, se ritenete utile vedere come avviene il print ve lo carico ... ma vorrei invece porre l'attenzione della richiesta sulla compatibilità fra browser... help !!!

  2. #2
    Ciao,
    puoi postare l'elenco completo degli header che invii?
    Ed eventualmente anche quelli effettivamente ricevuti... (questi li puoi vedere con un plug-in di firefox: LiveHeaders)

    Altra cosa: visto che da quel che hai trovato sembra un prob explorer + url non pdf, hai provato col rewrite a fare
    www.nomesito.it/pdf/prod_1.pdf
    invece di www.nomesito.it/pdf/prod_1.php?
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  3. #3
    si, ho provato col rewrite come mi indicavi, avevo scritto male nel post iniziale, il rewrite che ho fatto era:

    ho fatto un'altra prova nel frattempo: salvare uno dei pdf generati e piazzarlo sul sito, con la chiamata diretta si apre senza problemi alla prima, esempio: www.nomesito.it/scheda.pdf

    Gli headers sono questi:
    Codice PHP:
        $buf pdf_get_buffer ($pdf);
        
    $len strlen ($buf);
        
    header("Content-type: application/pdf");
        
    header("Content-Length: $len");
        
    header("Content-Disposition: inline; filename=\"".$nomefilepdf.".pdf\"");
        print 
    $buf;
        
    pdf_delete ($pdf); 
    uso questi header da anni ... senza rogne di solito

  4. #4
    Io in genere li metto in download, quindi uso header leggermente diverso.
    A parte Content-Type, che è case-sensitive, la T va maiuscola, mi pare corretto.
    Testato in locale non mi ha dato problemi nell'aprire file "inline" nel browser al primo colpo (IE8 con e senza compatibilità attivata).
    Potrebbe essere un problema del plugin adobe?
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  5. #5
    è quello che spero NON sia, perchè sarà dura spiegare al 60-65% degli utenti naviganti che il browser che usano è fuori standard, anche se è la triste realtà

    purtropoo a IE non si comanda, fanno come sempre quel che gli pare
    come alla Adobe, il plugin che si aggancia ai vari browser puoi solo sperare che sia installato, ma non puoi controllarlo


    .... attendo magie, se qualcuno riuscisse a farle ....

  6. #6
    per ora mi sono piegato ad aggirare il problema:
    salvo il file su fileserver al momento della generazione con pdf_open_file
    Codice PHP:
    $SalvaFilePdf TRUE;
    $FilePointer '';
    if (
    $SalvaFilePdf == TRUE) { $FilePointer $cartellapdfsalvati.$nomefilepdf.".pdf"; }
    ...
    $pdf pdf_new ();
    pdf_open_file ($pdf$FilePointer);
    ... 
    e poi alla fine della creazione del pdf vado a fare un header ('location....
    e così prendo in giro il browser:

    Codice PHP:
        if ($SalvaFilePdf != TRUE)
          { 
    $buf pdf_get_buffer ($pdf);
            
    $len strlen ($buf);
            
    header("Content-Type: application/pdf");
            
    header("Content-Length: $len");
            
    header("Content-Disposition: inline; filename=\"".$nomefilepdf.".pdf\"");
            print 
    $buf;
            
    pdf_delete ($pdf);
          } else { 
    $file $cartellapdfsalvati.$nomefilepdf.".pdf";
                    if (
    is_file ($file))
                      { 
    header ("Location: ".$file); }
                      else { print 
    'Impossibile aprire il file richiesto: '.$file; }
                 } 
    ... ma non mi piace mica tanto, in questo modo devo salvare fisicamente ogni pdf generato e il fatto che sia "on fly" va a farsi friggere

    HELP PLEASE !!!

  7. #7
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Ciao non ho letto tutto (questioni di tempo)
    se il problema è quello del browser IE .... se non ricordo male ho risolto il problema mettendo alla fine del file php

    $foglio->Output("nomeFile.pdf","D");

    insomma la "D"

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.