Capitolo 7 - Come catturare l'output delle porte parallele (PRN:, LPT1:, LPT2: .. LPT9:)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 parallela e redirigerlo su un file per Printfil, anche se su quella porta parallela è fisicamente connessa una stampante (per esempio una stampante laser Windows-only), ed anche se la porta parallela non è fisicamente presente nel PC (nei nuovi PC ormai le porte parallele non vengono più incluse) Printfil è in grado di catturare una porta LPT utilizzando 4 diverse tecniche (Modo 0, 1, 2, 3) sui sistemi basati su NT (Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows 2008, Windows 7). In Windows 95/98/ME è disponibile solo il Modo 1 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 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. Catturare una porta LPT in Modo 0Per catturare una porta LPT in Modo 0 (il predefinito nei sistemi a 32 bit) è sufficiente selezionarla 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 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. Catturare una porta LPT in Modo 1, 2, 3Le seguenti istruzioni sono necessarie solo per 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. 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 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Copyright © 2010 aSwIt s.r.l., Italy. VAT ID: IT 01305590299 | Printing, Mail, utilities for MS-DOS, Linux and legacy programs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||