Avatar billede vakse_viggo Nybegynder
16. oktober 2007 - 15:38 Der er 4 kommentarer

P..pas.pascal..

Hej Eksperter!

Jeg har et pascal-problem, og Jeg kan ikke finde info eller hjælp nogen steder, så Jeg håber der er een eller flere her, der vil hjælpe en kuldsejlet amatør.

Problemet er ganske simpelt for så vidt, det handler om udprintning via et pascal-program, afviklet i en Dos-Shell i Windwos XP.

Min compiler er FreePascal, men problemet er det samme med alle andre compilere Jeg har prøvet, dvs. Borland / Turbo.

Udprintningen udfører Jeg i princippet således:

assign(a,'//computername/sharedprintername');
writeln(a,' TEST PRINT');
writeln(a,#12);          //Form Feed
close (a);

Det kører fint - dog lige med den lille "mente", at udskriften først kommer, når Jeg afslutter programmet...
Det betyder, at Jeg skal gå ind og ud af programmet, hver gang Jeg ønsker at printe...

Når udskriftjobbet "udføres" i programmet, kommer jobbet godtnok i kø i spooleren, men er "hænger" det bare, indtil Jeg afslutter sessionen.
Jeg har prøvet at give den en "Flush", men det giver ikke nogen forskel.

Jeg ville meget meget meget gerne bibeholde måden med udskift via "assign"-metoden, bl.a. fordi den meget let giver mig mulighed for at udskrive til delte printere via netværk.

Er der ikke en barmhjertig sjæl der kan give mig et godt råd?

Takker på forhånd!

Mvh
Vakse_Viggo
Avatar billede sherlock Nybegynder
16. oktober 2007 - 15:49 #1
Prøv
  write(a,#27,#69);  // reset printer
Avatar billede vakse_viggo Nybegynder
16. oktober 2007 - 21:07 #2
Hej Sherlock,

Tak for tippet, Jeg har lige prøvet det af, men desværre stadig ingen success...

Hilsen Vakse_Viggo
Avatar billede sherlock Nybegynder
17. oktober 2007 - 00:29 #3
Så skal du have fat i printer manualen, og finde escape-koden for reset.
Avatar billede vakse_viggo Nybegynder
17. oktober 2007 - 20:17 #4
Er reset printer godt?  Jeg mener, når man lige har bedt printeren om at udskrive - og jobbet er lagret i spooleren, så er reset vel ikke lige sagen af afslutte jobbet med - eller?
Printeren er en Deskjet 1220. Har prøvet med 5 andre printere (forskellige mærker og modeller) i min søgen efter et spor, men alle reagerer ens.   
Det er mit bedste bud, at problemet ligger gemt omkring close-kommandoen... XP ser ikke ud til at reagere det mindste på FLUSH - måske en slags sikkerhedsforanstaltning (eller forsøg på samme) fra Windows' side. 
Når Jeg laver flere udskriftsjob i samme programsession, bliver de alle pænt lagret i spooleren, og hvert job ligger så og venter til programmet afsluttes.
Derpå starter printeren op, og printer alle job ud.

Hvis man lægger rigtig mange jobs ud - f.eks. 50 individuelle udskrifter - kan man opleve, at printeren starter - tager et ark, og så ellers venter...
Til sidst bliver den (ligesom visse andre) utålmodig, og parkerer hovederne.
- og så sker der så ellers ikke mere.... ikke før programmet afsluttes.

Det er til at fortvivle over -

En lille opdagelse, som måske kan give et een af Jer med bedre overblik end Jeg, en ide om hvad der sker :
Hvis Jeg udskriver til serielporten (RS232) istedet, med en printer koblet direkte på porten (og altså helt uden om windows printerdriver og spooler), så kommer udskriftjobbet ud med det samme, uden Jeg behøver afslutte programmet.
Hurra - sku' man tro.
Men nej...  Forsøger man at udskrive endnu engang i samme session, ja, så kommer der ikke det mindste ud af RS232 porten, og følgelig heller ikke af printeren.

Der følger heller ikke nogen fejlmelding eller crash, udskriftsjobbet går bare tabt.

Og det endda selvom første udskriftjob i sessionen afsluttes på behørig vis, med en CLOSE.


Hjælp vil være særdeles værdsat!!


Mvh
Vakse_Viggo
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester