Problema winspool.drv |
marco |
06/06/2004 |
Difficoltà:
Principiante
|
|
Intanto
ciao
a
tutti,
contento
di
trovarmi
tra
tanti
esperti
e
competenti.
Spero
di
fare
tanta
strada
insieme
a
voi.
Il
mio
problema
è
principalmente
questo:
Utilizzo
VB6,
devo
stampare
su
etichette,
ho
bisogno
che
la
stampa
si
fermi
dopo
ogni
battitura,
senza
scrollarmi
tutto
la
pagina
fuori,
e
fin
qui
il
problema
l'ho
risolto.
Ecco
appunto
il
codice
che
uso
per
eseguire
la
stampa
line
by
line:
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
Dim
lhPrinter
As
Long
Sul
pulsante
inserisco
questo:
Private
Sub
Command1_Click()
Dim
lReturn
As
Long
Dim
lpcWritten
As
Long
Dim
sWrittenData
As
String
Dim
lDoc
As
Long
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
!!!!"
+
Chr(10)
+
Chr(20)
lReturn
=
WritePrinter(lhPrinter,
Byval
sWrittenData,
_
Len(sWrittenData),
lpcWritten)
lReturn
=
EndPagePrinter(lhPrinter)
lReturn
=
EndDocPrinter(lhPrinter)
lReturn
=
ClosePrinter(lhPrinter)
End
Sub
Il
programma
esegue
tutto
in
maniera
abbastanza
semplice,
proprio
come
volevo
io...ehm...tranne
un
piccolo
particolare
(se
non
non
sarei
qui).
Il
carattere.
Come
ca##!$
faccio
a
impostare
la
dimensione
del
carettere
che
deve
essere
stampato?
La
stampante
utilizza
il
carattere
di
default,
credo
sia
12,
ma
per
impostarlo
a
10,
oppure
ad
8,
come
devo
fare????
Spero
di
essere
stato
chiaro
nel
porre
la
domanda.
A
risentirci
a
presto.
Hola
hombre.
|