It is currently 4 April 2020, 14:01 Advanced search

stampa diretta 2Printer

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

stampa diretta 2Printer

Postby dexter » 25 March 2020, 11:50

Salve, premetto che non so se quello che ho fatto sia corretto ma da questo link del forum http://forum.progamma.com/viewtopic.php?f=5&t=26108 ho visto che si potrebbe riuscire a stampare avviando un processo esterno all'applicazione tramite la shell (previa istallazione di 2Printer su ogni client). In pratica, se non ho capito male, la shell lancia un processo C# che fa partire cmd.exe, a questo passa come parametro la mia istruzione. Installando 2 printer sul client si dovrebbe riuscire a stampare in modo diretto. Provando da cmd la seguente istruzione,
Code: Select all
2Printer.exe -s "C:\Users\XXXXXX\Desktop\APPLICAZIONE\csharp\temp\PDF2056107554.pdf" -prn "ZDesigner TLP 2844" "-alerts_no"
la stampa viene lanciata senza problemi ma quando vado a far partire la shell mi da errore: "Err : Impossibile trovare il file specificato".

dove:
Code: Select all
-s              - set source path for printing
-prn            - set printer name


Come si vede la stampa da CMD viene eseguita correttamente
Cattura.PNG
Cattura.PNG (11.35 KiB) Viewed 244 times
User avatar
dexter
 
Posts: 157
Joined: 17 January 2018, 7:53

Re: stampa diretta 2Printer

Postby lucabaldini » 25 March 2020, 13:51

Azzardo... l'eseguibile 2Printer.exe è in una directory specifica. Quella directory è presente nel PATH del tuo utente... ma potrebbe non essere nel path dell'utente con cui gira l'application pool. Prova ad usare un path assoluto anche per il comando 2Printer.exe.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4052
Joined: 1 October 2010, 17:03
Location: Bologna

Re: stampa diretta 2Printer

Postby dexter » 25 March 2020, 14:27

Purtroppo continua a darmi il medesimo errore...non so! sono ore che cerco cosa non gli piace ma nulla!

Cattura.PNG
Cattura.PNG (20.69 KiB) Viewed 237 times
User avatar
dexter
 
Posts: 157
Joined: 17 January 2018, 7:53

Re: stampa diretta 2Printer

Postby geraci » 25 March 2020, 15:52

Prova ad inserire la stringa del comando in un file cmd, contenuto nella directory dell'applicazione, e poi esegui quest'ultimo con la shell. Abbiamo avuto un problema simile tempo fa avviando il primo processo esterno (era un java), da quella volta procediamo sempre nello stesso modo (tramite il cmd)
Davide
User avatar
geraci
 
Posts: 643
Joined: 8 July 2013, 7:23
Location: Fossano

Re: stampa diretta 2Printer

Postby dexter » 25 March 2020, 16:03

ho risolto copiando in un file BAT la mia stringa, dando in pasto alla shell il percorso del file BAT funziona. Domanda banale, mi sono creato un file BAT vuoto in cui vado a copiare le stringhe....ma 1) è possibile creare un file bat da codice? 2)è possibile cancellare il contenuto all'inizio della procedura?
Grazie
User avatar
dexter
 
Posts: 157
Joined: 17 January 2018, 7:53

Re: stampa diretta 2Printer

Postby lucabaldini » 25 March 2020, 16:18

Il solito problema di DOS... questa volta il motivo è che il path del programma va tutto racchiuso tra ""... perché contiene spazi :-(

Quindi dovrebbe essere:

Shell("C:\Program Files (x86)\2Printer\2Printer.exe" -s ".....
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4052
Joined: 1 October 2010, 17:03
Location: Bologna

Re: stampa diretta 2Printer

Postby lucabaldini » 25 March 2020, 16:19

Sì, puoi creare un nuovo file di testo e lanciarlo con il comando shell.
Puoi anche fare in modo che il file stesso, alla fine, si auto-cancelli :-)
Oppure, se preferisci, puoi sovrascriverlo tutte le volte (invece di svuotarlo intendo)
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4052
Joined: 1 October 2010, 17:03
Location: Bologna

Re: stampa diretta 2Printer

Postby dexter » 25 March 2020, 16:29

Ottimo! includendo il percorso tra virgolette ora funziona benissimo!!! Grazie infinite.
PS: presumo che per fare in modo che un file si autocancelli dovrei usare addTempFile...giusto? quello che non mi torna è come creare un TXT...da file mangler? domanda banale ma non ho mai affrontato questo argomento prima.
User avatar
dexter
 
Posts: 157
Joined: 17 January 2018, 7:53

Re: stampa diretta 2Printer

Postby lucabaldini » 25 March 2020, 17:20

Grande! Sono contento.

Riguardo il creare un file auto-cancellante puoi usare la AddTempFile... ma, se devi creare un batch, puoi creare un batch che, alla fine, si auto-elimina...

Prima occorre creare il file. Per farlo devi usare i metodi FreeFile, OpenFileForOutput, WriteLine e CloseFile:

Code: Select all
  int iFileID = App.freeFile()
  App.openFileForOutput(App.path() + "/temp/miofile.bat", iFileID)
  App.writeLine(iFileID, "REM Batch per la stampa del file")
  App.writeLine(iFileID, "\"C:\Program Files (x86)\2Printer\2Printer.exe\" -s \"" + App.path() + "\temp\PDF2056107554.pdf\" -prn \"ZDesigner TLP 2844\" \"-alerts_no\")
  App.writeLine(iFileID, "REM Aggiungo cancellazione automatica")
  App.writeLine(iFileID, "del /q \"" + App.path() + "/temp/miofile.bat\"")
  App.closeFile(iFileID)


l'ultima riga del file cancella il file stesso... :-)

P.S. Non ho provato il tutto... però ho già usato il trucco di creare un batch da codice che, quando eseguito, si auto-elimina... potrei avere sbagliato qualche ""... ma dovrebbe funzionare correttamente... magari, prima di lanciarlo, verifica che il batch sia corretto ;-)))
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4052
Joined: 1 October 2010, 17:03
Location: Bologna

Re: stampa diretta 2Printer

Postby dexter » 26 March 2020, 16:44

Ho sistema il file bat come da istruzioni, modificando la cancellazione con l'istruzione

Code: Select all
del "%~f0"&exit /b


ora però non sono più in grado di richiamare il file tramite l'istruzione shell...dice che non trova il file ma se copio il percorso nella barra di windows il file viene aperto, esegue la stampa e si cancella. Mi chiedo se vi siano delle limitazioni di scrittura nella cartella temp o qualcosa del genere (ho verificato ma sembra di no).

Ho provato a creare il file bat sul desktop e tutto funziona correttamente....è sicuramente un problema di limitazione di accesso al file. Qualche idea?
User avatar
dexter
 
Posts: 157
Joined: 17 January 2018, 7:53

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Google [Bot] and 22 guests

cron