» »

(VB6) problem s tiskanjem

(VB6) problem s tiskanjem

jpzoky1 ::

Pozdravljeni

Že kar nekaj časa iščem rešitev za svoj problem, pa je nikjer ne najdem. Kaj me torej muči? Imam program, s katerim moram natisniti različne obrazce. Nekateri od teh obrazcev se tiskajo z enim tiskalnikom, drugi z drugim,... Torej sem moral zbrati vse tiskalnike, ki so na voljo. Kolikor je meni znano, VB6 tiska na privzeti tiskalnik. Torej sem se lotil zadeve in tisti tiskalnik, s katerim želiš tiskati, začasno nastavi kot privzet, po končanem opravilu pa vrne v prejšnje stanje.
Ko prvič izberem, s katerim tiskalnikom mi naj tiska, vse lepo deluje, ko pa želim potem isti obrazec natisniti še enkrat, vendar z drugim tiskalnikom, pa se zalomi. Vedno mi namreč sprejme kot privzet tiskalnik tisti tiskalnik, ki sem ga izbral ob prvem tiskanju. Če želim tiskati na drugem tiskalniku, moram tako zapreti cel program in ga na novo odpreti, kar ne pride v upoštev (saj vsi veste, da to nihče ne dela).
Poskušal sem že s preverjanjem, kateri tiskalnik je privzeti tudi v nadzorni plošči, in tam je vse pravilno nastavljeno. Tako se mi zdi, da toka podatkov do prvotno izbranega tiskalnika ne prekinem in ko želim ponovno tiskati, pošiljam ponovno skozi ta neprekinjen tok do tiskalnika ne glede na to, da je bil izbran drug tiskalnik. Nekako bi moral zapreti ta tok oz. objektu Printer sporočiti, da je konec.
Ker nisem ravno na ti s printanjem sem si kodo sposodil kar iz MSDNja, jo nekoliko modificiral in stvar načeloma dela (pravilno mi nastavlja privzeti tiskalnik), le tiska ne na pravi tiskalnik.
Upam, da sem dovolj dobro razložil problem, sicer pa kar vprašajte, da dodatno razložim, ker bi tole resniočno potreboval, pa nikjer ne najdem ustrezne rešitve.
Hvala vam

darkolord ::

Eh :D

Tole je ena osnovna ideja kako nastaviš printer na katerega printaš...

Dim Prn As Printer
For Each Prn In Printers
If Prn.DeviceName = "Ime_printerja" Then
Set Printer = Prn
Exit For
End If
Next

Edit: lahko pa uporabiš to kodo v kombinaciji s CommonDialog za bolj elegantno izbiranje printerja (če ne veš imena)

Zgodovina sprememb…

jpzoky1 ::

Saj ubistvu ni problem, da ne bi našel printerjev, ki so nameščeni. Te najde. Tudi ni problem, da ne bi uspešno nastavljal default printerja. Problem je takšen (bom probal kar konkretno):
Imam nameščena dva tiskalnika, recimo Canon in HP. HP je privzeti tiskalnik. Pa želim natisniti en obrazec s Canonom. Odprem okno za tiskanje, izberem Canonov tiskalnik in dam printat. Program mi nastavi default printer na Canon, vse dobro sprinta in da po zaključku printanja spet vrne default na HP. Potem pa hočem isto natisniti še enkrat, tokrat s HPjem, vendar mi še vedno hoče tiskati s Canonom, čeprav ni nastavljen na default (tudi v Windowsih ne).

Upam, da bo zdaj lažje razumljivo.

darkolord ::

Ne razumem, zakaj bi nastavljal default printer, če lahko direktno nastaviš katerega naj uporablja...

jpzoky1 ::

Zdravo

Hvala za rešitev. Nisem si mislil, da bo tako preprosto. Očitno ne drži to, kar sem drugje našel, da mora biti tiskalnik privzet, če želiš to z VBjem tiskat. No, še enkrat najlepša hvala, rešil si me še nekaj neprespanih noči;)

darkolord ::

Np :D


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

kateri tiskalnik (strani: 1 2 3 412 13 14 15 )

Oddelek: Kaj kupiti
708143071 (96) Lonsarg
»

word pravi da nimam instaliranega printerja

Oddelek: Pomoč in nasveti
171134 (824) SLO_Matej
»

Nastavit tiskalnik na "default"

Oddelek: Strojna oprema
5850 (772) dba
»

Težave z HP DeskJet 1280

Oddelek: Pomoč in nasveti
61415 (1318) igruden
»

10 printerjev na en server?

Oddelek: Strojna oprema
212264 (1714) Veron

Več podobnih tem