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

    PHP e stampa pdf in automatico

    Salve a tutti. Sono nuovo del forum ma lo seguo già da un po' ,e ho sempre trovato soluzioni e spunti interessanti per approfondire le mie conoscenze. Per il problema che ho incontrato in questi giorni però non sono riuscito a trovare una soluzione molto funzionale ne sul forum ne girando per la rete.
    La situazione è questa: Ho un'applicazione in flash che visualizza un filmato. Dato un certo input questa applicazione dovrebbe richiamarne un'altra, in questo caso una pagina php, che automaticamente, senza neanche la conferma dell'utente, mi mandi in stampa un file.
    Ho deciso di usare nella pagina php fpdf per creare un file pdf con dei dati recuperati da un database e stampare la pagina appena creata, ma qui sorgono i due problemi principali:
    per creare la pagina pdf con stampa automatica ho usato questo codice che ho trovato :
    codice:
    <?php 
      require('pdf_js.php');
      class PDF_AutoPrint extends PDF_JavaScript { function AutoPrint($dialog=false) { 	//Open the print dialog or start printing immediately on the standard printer 	
          $param=($dialog ? 'true' : 'false'); 	
          $script="print($param);"; 	
          $this->IncludeJS($script); 
    } 
    function AutoPrintToPrinter($server, $printer, $dialog=false) { 
    	//Print on a shared printer (requires at least Acrobat 6) 
    	$script = "var pp = getPrintParams();"; 	
            if($dialog) 		
               $script .= "pp.interactive = pp.constants.interactionLevel.full;"; 	
            else 		
               $script .= "pp.interactive = pp.constants.interactionLevel.automatic;"; 	
            $script .= "pp.printerName = '\\\\\\\\".$server."\\\\".$printer."';"; 	
            $script .= "print(pp);"; 	
            $this->IncludeJS($script); 
           } 
    }  
    $pdf=new PDF_AutoPrint();
     $pdf->AddPage(); 
    $pdf->SetFont('Arial','',20); 
    $pdf->Text(90, 50, 'Print me!'); //Open the print dialog $pdf->AutoPrint(false); $pdf->Output(); 
    ?>
    Quando provo a eseguirlo però, la pagina viene creata, la finestra per selezionare la stampante non viene aperta, ma una finestra di avviso che mi informa che sta per partire una stampa viene visualizzata e per procedere devo cliccare sul bottone "Si".
    Volevo sapere se c'era un modo per non visualizzare piu' questa finestra o magari simulare la pressione del tasto "Si" da flash o PHP in modo che la procedura sia del tutto automatica.
    Il secondo problema è chiudere la pagina php che mi crea il pdf a stampa finita.
    Spero che qualcuno possa aiutarmi.

  2. #2
    ok allora per il primo problema ho risolto, almeno per adesso che uso un server di prova online,ma credo che anche per far girare il tutto in locale non ci siano problemi.
    Per non vedere la finestra di conferma basta andare nelle preferenze di adobe reader e disabilitare la protezione avanzata(ma credo si possa lasciarla anche abilitata), poi inserire nella lista delle posizioni privilegiate il nome del sito su cui gira lo script o i percorsi delle cartelle dei file da stampare e tutto funziona . Adesso serve solo un modo per chiudere la pagina a stampa finita

  3. #3
    up...

  4. #4
    up.. Nessuno sa come aiutarmi?????

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    4

    Stampa di pdf con php

    Ciao, anch'io sto lavorando sulla stampa automatica da php e dopo un sacco di ricerche con scarsi esiti, ho preso una strada diversa, non elegantissima ma funzionante.

    Creo un file .bat (print.bat) in cui inserisco i dati del programma che apre il file, il percorso del file e la stampante che voglio utilizzare:
    codice:
    "C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe" /t "prova.pdf" "Samsung ML-1640 Series"
    PS Uso Foxit Reader perchè Acrobe Reader rimane aperto anche dopo la stampa, comunque se vuoi provare:
    codice:
    "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" /t /h "prova.pdf" "Samsung ML-1640 Series"
    A questo punto creo tramite php e la classe fpdf il file prova.pdf. Dopodichè metto l'istruzione:
    Codice PHP:
    exec('print.bat'); 
    A me crea il file pdf e lo stampa automaticamente senza problemi.
    Ho provato a fare il tutto senza il file .bat con:
    Codice PHP:
    shell_exec("C:\\Program Files\\Foxit Software\\Foxit Reader\\Foxit Reader.exe /t" "prova.pdf" "Samsung ML-1640 Series"); 
    ma non mi funziona, non so se la sintassi è sbagliata, magari qualcuno ci può aiutare.
    Ovviamente percorsi del programma e stampante devi modificarle secondo le tue impostazioni.
    Spero di esserti stato utile.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    4
    Soluzione finale:
    Creo pdf con la classe fpdf e mando in stampa senza utilizzare file bat:
    Codice PHP:
    <?php 
    require('fpdf.php');
     
    $pdf=new FPDF('L','cm','A3'); 
    $pdf -> AddPage(); 
    $pdf -> SetFont('Arial''B'16 ); 
    $pdf -> Cell(4010'Pdf document' ); 
    $pdf -> Output("test.pdf""F"); 
    exec('"C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe" /t "test.pdf" "Samsung ML-1640 Series"'); 
    ?>

  7. #7
    Dunque con questo metodo e foxit reader installato, mando in stampa il pdf senza dover dare nesuna conferma e senza che nessun programma resti aperto dopo la stampa, giusto??
    Se e' così e' proprio quello che mi serviva.

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.