Stampare un PDF “in silenzio”
Non sempre si ha la necessità di leggere un file PDF… a volte si vuole inviare tutto direttamente alla stampante senza troppo rumore.
In un sistema Windows si può utilizzare Adobe Acrobat Reader per eseguire la stampa di un documento PDF direttamente da riga di comando.
Cosa c’entra questo con il PHP ? Basta usare exec() …..
Tutorial ed esempi in rete
Can I print a PDF directly to a printer?
iText: a freeJava-PDF library
How To: Reader command line printing (direttamente da Adobe)
















Salve, sarei in cerca di una soluzione per un semplice silent printing pdf… dovrei far stampare in automatico una pagina pdf che generotramite delle query ad un database.. una volta che visualizzo la pagina vorrei che questa andasse in stampa ed in seguito si chiudesse automaticamente…
la prima e l’ultima parte sono ultimate.. ma per la stampa “silenziosa” può passarmi qualche idea?
la ringrazio molto
Fede
Su quale piattaforma ?
Se si tratta di un’applicazione web in PHP, il mio consiglio è quello di creare un PDF (io uso con soddisfazione FPDF) e salvarlo come un file sul server per poi mandarlo in stampa automaticamente attraverso l’uso di procedure Javascript.
Ovviamente la richiesta di conferma è inevitabile.
Se l’applicazione è web-based ma la stampa deve avvenire sul server, basta seguire i link di questo post e usare Acrobat da riga di comando unitamente alla funzione exec().
Sarebbe quindi opportuno sapere qualche particolare in più del suo progetto per fare un’ipotesi più attendibile
Beh, diciamo che ho utilizzato il php per comodità..
devo interagire con un database e conoscendo mysql ho deciso d lavorare con php!
quello che devo fare è sostanzialmente la stampa di alcuni dati scelti dall’utente che comunque lavorerà sul server. non è un’applicazione che girerà su internet ma in locale…esattamente come ha detto lei genero una pagina pdf il cui contenuto sarà il risultato di una query sul database precedentemente “riempito” attraverso FPDF che però ha lo spiacevole inconveniente di non sopportare altre righe di codice al di fuori di quelle che servono per generare la pagina.. per esempio ho provato ad utilizzare sul tag BODY onLoad la funzione javascript per il print della pagina ma ovviamente mi da errore.. non saprei come fare…
ho trovato girovagando in internet questa funzione di silent printing ma.. nessuno la illustra!
grazie mille
Federico
Il problema che incontra è legato alla natura stessa del web: quando crea il file PDF con FPDF, in realtà restituisce al client (sarebbe il browser dell’utente) non una pagina html ma proprio un file PDF, ovvero nell’header HTTP è specificato il content part “application/pdf”. Quindi non esiste “body”.
In effetti la stampa con Javascript non è un suggerimento valido poichè il file PDF si vede nel browser grazie a un plugin, anche se seguendo i link di questo post ho trovato anche questo:
Printing PDFs using JavaScript in Acrobat 6.0
Poichè l’utente lavora sul server non avrei dubbi a procedere nel seguente modo:
1 – Creo il file PDF salvandolo sul server
2 – Avvio la stampa del file appena generato utilizzando il comando suggerito dall’Adobe
AcroRd32.exe /t “C:\test.pdf” “\\servername\printername”
il tutto richiamato da exec()
3 – Scrivo un messaggio all’utente
E’ da provare.
Ho letto che purtroppo Acrobat Reader non chiude la finestra e questo credo che crei problemi.
Però si può provare con Ghostscript come descritto nel sito linkato sopra… domani proverò.
Non riesco ad inviare la mia domanda attraverso il form
cmq è
Salve, ho un problema, non riesco a far girare un sito che ho sviluppato con cakephp sui server di aruba.., non riesco a trovare una configurazione valida ne tantomeno riesco a modificare il file .htaccess in maniera effiente… mi potrebbe aiutare in qualche modo? il serverl Linux di Aruba è configurato cosi:
/web/htdocs/www.redandpink.it/home
Ho risposto via e-mail.
ok io non riesco a far andare ancora questa stampa automatica del pdf
uso il php e lo genereo con fpdf
uso il javascript per stamparlo ma non e una soluzione ottimale
Mi dite una buona soluzione