Newsgroup: it.comp.lang.visual-basic
Titolo: [!!?] Stampare su porta USB con stampante parallela

Ho da poco finito il mio prog ed adesso il cliente a cambiato portatile (che
non ha parallele) ed usa la stampante ad impatto attraverso la porta USB.
Questa non m el'aspettavo proprio....... adesso come faccio.
C'è qualcuno che mi sà dire come risolvere questo problema ?
C'è anche la possibilità di poter scegliere il tipo di porta in automatico
al momento della stampa....... anche perchè lo stesso software viene
installato anche su pc 'normali'
Grazie, Alberto alias ALCAU

Naturalmente la stampante è collegata con un cavo adattatore da usb verso
stampante LPT.
Nel codice di stampa ho i seguenti comandi :
Open "LPT1:" For Output As #1
'SPAZIATURA INTESTAZIONE FOGLIO
    For intSpace = 1 To intIntestazione
        Print #1, Chr$(13)
    Next intSpace
'CONDENSATO
    Print #1, Chr$(13)
'DATI FOGLIO
        Print #1, Tab(5); "Foglio di lavoro N.: ";
lvFlav.SelectedItem.SubItems(2); " del "; Date
    Print #1, Chr$(13)
    Print #1, Chr$(13)
    ...
    ...

"ALCAU (ST1)" ha scritto nel messaggio

Potresti provare a mandare i dati direttamente allo spooler di stampa.
A quel punto ci pensa lo spooler a mandarli alla stampante, che sia
attraverso parallela, USB, infrarossi, via radio o per pony express, se
c'è il driver ;-)
Ti servono un po' di API, ma non preoccuparti, la Micro$oft una volta
tanto ci ha dato la pappa fatta. C'è un articolo qui:
http://support.microsoft.com/support/kb/articles/Q175/0/83.ASP
Se ti serve altro, compreso un programma d'esempio, dimmelo.
Bye, G.
--
Salve ! Sono una creatura di una galassia lontana, in visita sul tuo pianeta.
Mi sono trasformata in questo file di testo, e mentre lo stai leggendo io sto
facendo l'amore con i tuoi occhi. So che ti piace perché stai sorridendo. Per
favore, passami anche a qualcun altro, ho tanto bisogno di affetto. :-)

"Paperino" ha scritto nel messaggio
Appropo', altri tre link utili:
Three Methods to Send Preformatted Files Directly to Printer
http://support.microsoft.com/support/kb/articles/q119/1/13.asp
Questo è più recente:
HOWTO: Send Raw Data to a Printer Using the Win32 API from Visual Basic
http://support.microsoft.com/support/kb/articles/Q154/0/78.ASP
Printer Escapes Under Windows 95
http://support.microsoft.com/support/kb/articles/q125/6/92.asp


 wrote in message
news:jL5P6.2914$Uo3....@news6.giganews.com...


Ho provato a sostituire
Open "LPT1:" For Output As #1
con
Open Printer.Port For Output As #1
Per spedire alla stampante di sistema ma niente, :-((

Il fatto è che io devo stampare su una stampante ad aghi in modo non grafico
e quindi devo usare
Open "LPT1:" For Output As #1
per poter stampare con
Print #1, Tab(111); "SI";


falso!
imposti la stampante come "solo testo" (driver Generico/solo testo), e poi
stampi con printer.print

AVEVI RAGIONE :-))
Comincia a funzionare qualcosa
Adesso volevo chiederti:
Con questa riga impostavo il numero di righe del foglio
Ho provato cosě ma non funziona
Printer.Print Chr$(27); "C"; Chr$(71)
Per attivare la stampa in condensato
Ma non funziona
Printer.Print , Chr$(15)
Scusa..... queste dovrebbero essere le ultime domande.
Comunque sia mi hai salvato il .......
Grazie

mi puoi mandare il programma di esempio? :-)

 mi puoi mandare il programma di esempio? :-)
Ho fatto copia e incolla da:
http://support.microsoft.com/support/kb/articles/Q154/0/78.ASP
Comunque guardati anche gli altri link.
Start a new project in Visual Basic. Form1 is created by default.
Place a Command Button on the form.
Add the following code to the Form1 code window:
_____________________________________________
      Option Explicit
      Private Type DOCINFO
          pDocName As String
          pOutputFile As String
          pDatatype As String
      End Type
      Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal _
         hPrinter As Long) As Long
      Private Declare Function EndDocPrinter Lib "winspool.drv" (ByVal _
         hPrinter As Long) As Long
      Private Declare Function EndPagePrinter Lib "winspool.drv" (ByVal _
         hPrinter As Long) As Long
      Private Declare Function OpenPrinter Lib "winspool.drv" Alias _
         "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, _
          ByVal pDefault As Long) As Long
      Private Declare Function StartDocPrinter Lib "winspool.drv" Alias _
         "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _
         pDocInfo As DOCINFO) As Long
      Private Declare Function StartPagePrinter Lib "winspool.drv" (ByVal _
         hPrinter As Long) As Long
      Private Declare Function WritePrinter Lib "winspool.drv" (ByVal _
         hPrinter As Long, pBuf As Any, ByVal cdBuf As Long,  _
         pcWritten As Long) As Long
      Private Sub Command1_Click()
          Dim lhPrinter As Long
          Dim lReturn As Long
          Dim lpcWritten As Long
          Dim lDoc As Long
          Dim sWrittenData As String
          Dim MyDocInfo As DOCINFO
          lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
          If lReturn = 0 Then
              MsgBox "The Printer Name you typed wasn't recognized."
              Exit Sub
          End If
          MyDocInfo.pDocName = "AAAAAA"
          MyDocInfo.pOutputFile = vbNullString
          MyDocInfo.pDatatype = vbNullString
          lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
          Call StartPagePrinter(lhPrinter)
          sWrittenData = "How's that for Magic !!!!" & vbFormFeed
          lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, _
             Len(sWrittenData), lpcWritten)
          lReturn = EndPagePrinter(lhPrinter)
          lReturn = EndDocPrinter(lhPrinter)
          lReturn = ClosePrinter(lhPrinter)
      End Sub
 _____________________________________________
Bye, G.