View Full Version : [Visual Basic] Intercettare una stampa
GameKeeper
20-08-2010, 22:50
Salve a tutti!
Spiego brevemente la situazione: in un esercizio commerciale viene utilizzato un software che offre vari servizi fra i quali la stampa di ricevute. Si vuole utilizzare una piccola stampante termica che dispone di carta larga 80 mm, è quindi necessario adattare la stampa (originalmente destinata a fogli in formato A4) a questo tipo di carta.
Ora, lasciando perdere l'ambito che ho voluto spiegare solo per essere sicuro di rendere bene l'idea di ciò che voglio fare, la mia domanda è: come posso, tramite la creazione di un programma, avere in input il contenuto della stampa prima che venga stampato in modo da poterlo modificare?
Ho tentato con RedMon ma l'output che mi fornisce è in formato PostScript e non riesco ad elaborarlo. Ho provato abbinandolo alle API di Ghostscript ma non sono riuscito a fare niente... Chiedo se qualcuno ha qualche idea.
Grazie in anticipo, Gianmarco.
Cioè, se ho capito vuoi "infilarti" nel processo di stampa ( che parte da qualcosa di esterno, non dal tuo programma VB ) e modificare le caratteristiche di formato prima che arrivi alla stampante ? Se è così... E' una domandina da niente... :D
GameKeeper
20-08-2010, 23:37
Si più che altro l'approccio che volevo seguire era di creare una stampante virtuale che punti al mio programma il quale provvederà poi alla stampa vera e propria... La prima parte riesco a farla utilizzando RedMon, il problema è che i dati arrivano già in formato Postscript e non riesco a farci niente
Si più che altro l'approccio che volevo seguire era di creare una stampante virtuale che punti al mio programma il quale provvederà poi alla stampa vera e propria... La prima parte riesco a farla utilizzando RedMon, il problema è che i dati arrivano già in formato Postscript e non riesco a farci niente
Dato che stiamo parlando di stampa di ricevute, quindi essenzialmente di dati, ( niente di "artistico", insomma ), se fosse possibile avere i dati grezzi dal software, magari in tracciato testo, vedrei meglio la gestione totalmente separata della stampa, da VB.NET.
Intervenire dal proprio applicativo in un processo di stampa esterno, sospenderlo, modificarne il contenuto o il formato... La vedo dura.
Questo credo che potrebbe interessarti: http://pages.cs.wisc.edu/~ghost/redmon/
GameKeeper
21-08-2010, 11:04
Questo credo che potrebbe interessarti: http://pages.cs.wisc.edu/~ghost/redmon/
Infatti è proprio quello che ho provato inizialmente... Ma come ho scritto RedMon da in output i dati di stampa già in PostScript...
.NET permette di leggere un PDF? Se lo fa forse riesco a risolvere...
.NET permette di leggere un PDF? Se lo fa forse riesco a risolvere...
Ci sono parecchie librerie gratuite che permettono la creazione/lettura di files pdf : http://csharp-source.net/open-source/pdf-libraries/itextsharp
Infatti è proprio quello che ho provato inizialmente... Ma come ho scritto RedMon da in output i dati di stampa già in PostScript...
Non avevo letto. Fammi capire però in quale formato avresti preferito averle...perché formati più semplici del PostScript per interpretare dati di stampa dubito che esistano.
GameKeeper
21-08-2010, 13:14
Non mi sembra così semplice, ecco cosa ottengo stampando un file di testo con scritto "ciao":
�j1�2*o0Q*t200R&l4296R�3�0&k4W*p43Y
*b2M*b4W �*b6W ��*b6W ��*b26W ?ǀ
GameKeeper
21-08-2010, 14:11
Ok cambiando il driver utilizzato dalla stampante virtuale sono riuscito ad ottenere un input comprensibile... ora il problema è che stampando un file con scritto solamente "ciao" ottengo un input di circa 20000 caratteri, tra i quali non c'è traccia della stringa "ciao"...
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.