Capitolo 7 - Come catturare l'output delle porte parallele (PRN:, LPT1:, LPT2: ... LPT9:) e delle porte seriali (COM1: ... COM9:)

Sui sistemi Unix e Linux, redirigere l'output di stampa su un file è una operazione piuttosto semplice, ma su vecchie applicazioni DOS o Windows Console Mode, il programmatore potrebbe non aver previsto questa possibilità.

In questo caso è possibile catturare l'output di una porta LPT o COM e redirigerlo su un file per Printfil, anche se su quella porta è fisicamente connessa una stampante parallela o seriale (per esempio una stampante laser Windows-only), ed anche se la porta LPT o COM non è fisicamente presente nel PC (nei nuovi PC ormai le porte parallele e le porte seriali non vengono più incluse, in quanto rimpiazzate dalle porte USB).

Printfil è in grado di catturare una porta LPT o COM su qualsiasi sistema Windows basato su NT (Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows 2008, Windows 7, Windows 8, Windows 2012, Windows 10).
In Windows 95, Windows 98 e Windows ME è possibile catturare porte LPT, ma non è possibile catturare porte COM.

Se Printfil rileva una versione di DOSBox installata che supporta la porta LPT o la porta COM prescelta (DOSBox MegaBuild 6, DOSBox SVN Daum o vDos per porte parallele), chiede se si vuole automaticamente configurarla per catturare la porta anche in quell'ambiente DOS emulato.

In DOS si era limitati all'utilizzo di 3 porte parallele al massimo, su ognuna delle quali poteva essere collegata una stampante (quindi al massimo si potevano utilizzare 3 stampanti su un singolo PC). Con Printfil questo limite viene superato, perchè anche catturando una singola porta LPT, quei dati possono essere rediretti su qualsiasi stampante Windows installata nel Pannello di Controllo (cioè, anche se il programma DOS stampa solo su LPT1:, quelle stampe si possono inviare anche a 300 o 3000 stampanti diverse).

Normalmente quindi per gestire diverse stampanti non è più necessario impostare il programma DOS per stampare su diverse porte LPT; basta impostarlo solo su LPT1: (ad esempio) e lasciare che sia Printfil ad "indirizzare" la stampante finale (ad esempio abilitando l'opzione "Scegli" nella propria finestra di configurazione per chiedere all'utente quale stampante vuole utilizzare di volta in volta, oppure tramite il file CFG opzionale per inviare le stampe ad una stampante specifica senza l'intervento dell'utente, come descritto nel Capitolo 3).

Tuttavia, Printfil consente anche di catturare diverse porte parallele e porte seriali contemporaneamente nello stesso PC. Per fare questo è necessario eseguire diverse copie di Printfil nello stesso PC, come descritto nel Capitolo 13, ognuna dedicata alla cattura di una singola porta LPT o porta COM.

Modo 0: Come catturare una porta LPT o porta COM

La cattura in Modo 0 è la modalità standard di catturare di una porta LPT o porta COM nei nuovi sistemi Windows a 32/64 bit (Windows NT e versioni successive)

E' sufficiente selezionare la porta LPT o porta COM nella finestra di Configurazione -> Standard (a cui si accede cliccando con il tasto destro sull'icona di Printfil nell'area di notifica, in basso a destra, vicino all'orologio di Windows)

Printfil catturerà tutti i dati inviati a quella porta da un programma DOS o Windows e li memorizzerà nel file specificato nel campo "File di Stampa", quindi quel file sarà rediretto alla stampante Windows selezionata nella stessa finestra di configurazione.

Il tutto avviene automaticamente. L'unica avvertenza è di selezionare un nome di file valido nel campo "File di Stampa". Si può lasciare il valore predefinito, oppure impostarlo (ad esempio) su [e:TEMP]\Printfil.txt , per far sì che il file Printfil.txt venga creato nella directory temporanea (TEMP) dell'utente che esegue Printfil in questo momento.

Per catturare diverse porte parallele e porte seriali contemporaneamente, ogni copia di Printfil in esecuzione nel PC dovrà redirigere la propria porta su un diverso file temporaneo (ad esempio [e:TEMP]\LPT1.txt e [e:TEMP]\LPT9.txt) per evitare che stampe diverse possano "fondersi" o sovrascriversi.

Modo 1,2,3: Come catturare una porta LPT nei vecchi sistemi Windows

La cattura in Modo 1,2 e 3 è normalmente usata solo in Windows 9x/ME.
Negli altri sistemi Windows il Modo 0 è il più appropriato, anche se è comunque possibile impostare la cattura come di seguito anche in questi sistemi (ma non è pratico).

In queste modalità, per catturare l'output di una porta LPT è necessario creare la stampante virtuale "Printfil" come descritto nel successivo capitolo, poi Printfil potrà catturare automaticamente i dati inviati alla porta parallela scelta nella propria finestra di configurazione. 

La stampante virtuale redirige l'output su un file temporaneo nel disco, che viene anche impostato nel campo "File di Stampa" della finestra di configurazione standard. In questo modo, dopo che il file viene creato dalla stampante virtuale, lo stesso viene automaticamente catturato da Printfil ed inviato alla stampante Windows selezionata nella stessa finestra di configurazione.

Dal momento che la stampante virtuale "Printfil" può catturare una singola porta LPT su un singolo file temporaneo, per catturare diverse porte LPT contemporaneamente ogni copia di Printfil in esecuzione nel PC dovrà utilizzare una diversa stampante virtuale. Ogni stampante virtuale dovrà ovviamente avere un nome diverso, impostato tramite l'opzione PFPrinter (vedere Capitolo 4) 

Le 3 diverse modalità di cattura funzionano in modo diverso tra loro. Il Modo 1 può visualizzare dei messaggi d'errore in caso la configurazione non sia corretta, ma è molto più dipendente da Windows rispetto al Modo 2 o 3, che utilizza una connessione diretta alla stampante virtuale "Printfil". Il Modo 2 o 3 è particolarmente indicato in caso siano installati nel sistema alcuni aggiornamenti sulla sicurezza di Microsoft (ad esempio KB885835) che possono interferire con la cattura in Modo 1, causando la visualizzazione di un messaggio d'errore.

In tutte e 3 le modalità comunque, Printfil sfrutta le caratteristiche di rete di Windows per catturare le porte LPT. In particolare, nella configurazione di rete deve essere abilitata la Condivisione di File e Stampanti per Reti Microsoft.

Se il PC non è collegato in rete, è necessario creare una nuova Connessione alla rete locale (LAN) installando la scheda di rete virtuale Microsoft Loopback adapter (i driver sono inclusi nel Cd-Rom di Windows. Cliccando sul seguente link si accede alla pagina delle FAQ che spiega passo passo come installare il Microsoft Loopback Adapter).

Questo metodo risolve inoltre il problema del Media Sensing nelle versioni Windows più recenti. Questa nuova funzionalità di Windows permette connessioni alle stampanti condivise solo quando la rete è fisicamente connessa (per evitare problemi dovuti a cavi difettosi ecc.), ma in alcuni casi può creare dei problemi. Per esempio, anche se la Vostra configurazione di rete è corretta, ma il PC non è fisicamente connesso (come accade ad esempio per i portatili), Printfil non può connettersi alla stampante virtuale "Printfil" per catturare l'output della porta parallela.

Se non volete aggiungere la scheda di rete virtuale Microsoft Loopback adapter alla Vs. configurazione di rete, è comunque possibile disabilitare la funzionalità di Media Sensing come riportato nel sito Microsoft: http://support.microsoft.com/default.aspx?scid=kb;en-us;239924

 
   
   
   
  31 Ago 2017  
  Rilasciato
Printfil 5.22
Novità
 
Stampa da DOS a USB ora! Scarica la versione di prova gratuita!
  FAQ  
  Clicca qui per visualizzare le risposte alle domande più frequenti  
  vedi anche ...  
  File In Mail: Invia automaticamente file via email