Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606

    javascript: visualizzazione PDF

    Ciao, ho un problemino da risolvere e non so se questa è la sezione giusta, ma siccome parto da una chiamata Ajax, spero di non sbagliarmi.

    In un'applicazione che sto costruendo, dopo aver generato un documento attraverso un dati inseriti in un form, viene generato in remoto un PDF, che poi dovrà necessariamente essere visualizzato in remoto attraverso una finestra ( _blank ) del browser ( qualsiasi browser ovviamente. ).

    L'utente dopo aver riempito il form con i dati, preme il tasto STAMPA e via Ajax ( jquery ) invia i dati al file ( PHP ) remoto che tramite la TCPDF crea il file.
    E qui i problemi... il file viene creato al volo, nel senso che per impostazioni del server non posso usare le impostazioni che mi permetterebbero di salvare il file sul filesystem, quindi lo creo in RAM ( diciamo ) e lo invio indietro al browser client.
    Al browser mi arriva in effetti il file PDF ma come lo visualizzo?
    Direttamente no, mi da errore, sto cercando delle librerie cross browser ma non ho capito quali usare.
    Qualcuno ha esperienza di queste problematiche?

  2. #2
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Allora, piccola spiegazione: dato che, come ho scritto sopra, nel php.ini non è possibile modificare la possibilità di scrivere file in remoto, e la libreria TCPDF è condivisa dal server, ho dovuto inventarmi qualche cosa per creare il file.
    Ne ho provate diverse, la prima sempice che mi è venuta in mente, è stata quella di trasmettere il file via http e riprenderlo in remoto via ajax:
    codice:
    $.ajax({
    			url: "DB/DB_stampaAtti.php",
    			type: "post",
    			dataType: "html",
    		data: {
    			registro: '<?php echo $tipoRegistro; ?>'
    		},
    		success: function(response){
             		window.open(response come lo apro?, 'nuovaStampa', 'height=650,width=840');
    		},
    		error: function(response, status, error) {
    			alert('Errore esecuzione ' + status + ' - ' + error);
    		}
    });

  3. #3
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Mi chiedo se c'è una forma di cache, nel senso, che se faccio una cosa del tipo:
    lato PHP
    Codice PHP:
    file_put_contents('documento.pdf'$pdf->Output('''S')); 
    in modo da salvare il PDF ( l'unico modo in cui mi riesce di farlo al momento, dato che per le impostazioni del server, attualmente non posso fare altro ) poi leggendo il file via javascript:
    codice:
    $.ajax({
    .....
    success: function() {
       window.open('documento.pdf', '', 'width=100%, height=100%');
    }
    .....
    });
    mi apre sempre lo stesso file creato qualche giorno fa.
    Ho cancellato documento.pdf sul server prima di crearlo nuovamente, ho verificato che stampi sempre quello giornaliero, semplicemente scaricandomelo in locale e aprendolo con un visualizzatore di PDF, e niente, in questo caso il file è quello giusto; ma niente se lo faccio tramite applicazione non c'è verso, apre sempre quello creato il 17 maggio ora provo a cancellare i cookie, tanto per sbroccare da qualche parte, ma l'unico cookie che uso è quello relativo alla sessione.

  4. #4
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Risolto! E' la cache dei browser... va bè.

  5. #5
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Risolto mettendo una falsa query in fondo al nome del file:
    codice:
    ....
    success: function() {
        window.open('documento.pdf?v=<?php echo makeUnique(); ?>', '', etc... );
    }
    ....
    Dove makeUnique() è una mia funzione che genera un hash casuale.
    Ora funge!

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.