/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Bruge forskellige bakker i printer
Fra : // Overby


Dato : 25-02-02 15:00

Hej gruppe!

Min underviser i Delphi har stillet os en opgave, hvor præmien for rigtig
besvarelse er en omgang på det lokale værtshus, så jeg håber I kan forstå
hvor vigtigt dette er!

PROBLEM:
Et program skal printe nogle faktura'er ud. Når en faktura printes ud, skal
den skrive en kopi ud på noget papir fra en bakke og dernæst to fra en anden
bakke i samme printer.

Hvordan løses dette? Jeg skal ikke bruge et færdigt program, blot hvilke
kommandoer, kodelinjer osv. der skal til...

Daniel





 
 
Stig Johansen (25-02-2002)
Kommentar
Fra : Stig Johansen


Dato : 25-02-02 18:46

Hej.



"// Overby" <none@none.dk> wrote in message
news:a5dg1c$2q42$1@news.cybercity.dk...
> Hej gruppe!
>
> Min underviser i Delphi har stillet os en opgave, hvor præmien for rigtig
> besvarelse er en omgang på det lokale værtshus, så jeg håber I kan forstå
> hvor vigtigt dette er!

Det er nok fordi han ved, det er pi**e svært.

>
> PROBLEM:
> Et program skal printe nogle faktura'er ud. Når en faktura printes ud,
skal
> den skrive en kopi ud på noget papir fra en bakke og dernæst to fra en
anden
> bakke i samme printer.
>
> Hvordan løses dette? Jeg skal ikke bruge et færdigt program, blot hvilke
> kommandoer, kodelinjer osv. der skal til...
NB!(Nedenstående refererer kun til HP-printere)

Umiddelbart er der ikke lige en løsning på problemet. De HP-printere, jeg
kender til, tager primært fra den bakke, du specificerer, men når den er
tom, tager den squ bare fra den anden.

En løsning, der virker, er hvis man konfigurer printeren til forskelligt
papirformat i de forskellige bakker, og specificerer disse til print.

Man kunne i dit tilfælde konfigurere den ene bakke til eks. a4 format, og
den anden til custom format.

Custom formatet er så bare mage til a4.

Jeg har ingen ide om det kører, men prøv at kigge på
SetPrinter
Og derunder DeviceMode
prøv at sætte den ene til a4, og den anden til 0, hvor du specificerer
bredde og højde.


Hvis man derimod ikke benytter standard windows print, kan du printe ud i
råt format via spooleren, og her er det ingen kunst at lave ovennævnte
nummer.
Det kræver blot, at du har manualen til printeren, og sender de korrekte
escape sekvenser til printeren.

--

Med venlig hilsen/Best regards
Stig Johansen
Stig.Johansen@udvikling.it.dk
(remove .dk)




Olav M.J. Christians~ (25-02-2002)
Kommentar
Fra : Olav M.J. Christians~


Dato : 25-02-02 23:37

"Stig Johansen" <stig.johansen@udvikling.it> skrev i en meddelelse
news:a5dt72$9m6$1@sunsite.dk...
[snip]
> Det er nok fordi han ved, det er pi**e svært.

Tja, men ikke helt umuligt vel....

> >Når en faktura printes ud,
> skal
> > den skrive en kopi ud på noget papir fra en bakke og dernæst to fra en
> anden
> > bakke i samme printer.

De førnævnte ideer duer skam fint nok. Problemet er: Hvordan er opgaven
stillet (og må vi andre smage med?)??? Skal du have en generel løsning,
eller bare én der duer for én specifik printer?

Her er et andet tip:

Prøv at sætte en PrinterSetupDialog på din form. Denne kan du nu kalde med
..execute for at se hvad din printer(driver) giver dig af muligheder. Normal
vil du kunne ændre på papirbakken her (altså manuelt) - muligvis skal du
først ind under Egenskaber.

Da du jo ikke ønsker at ændre det manuelt hver gang, så gør du følgende:

Kør PrinterSetupDialog.Execute
Udfør de kommandoer (kun med keyboard shortcuts) som skal til for at skifte
til den rigtige bakke
(noter disse ned undervejs)

Når du så laver din kode lægger du de tilsvarende tegn på keyboard bufferen
og sender PrinterSetupDialog afsted. Måske ikke nogen helt elegant løsning,
men den burde i princippet fungere (jeg har ikke prøvet).

M.v.h.
Olav




Harald (26-02-2002)
Kommentar
Fra : Harald


Dato : 26-02-02 13:39

"// Overby" <none@none.dk> skrev i en meddelelse
news:a5dg1c$2q42$1@news.cybercity.dk...
> Hej gruppe!
>
> Min underviser i Delphi har stillet os en opgave, hvor præmien for rigtig
> besvarelse er en omgang på det lokale værtshus, så jeg håber I kan forstå
> hvor vigtigt dette er!
>
> PROBLEM:
> Et program skal printe nogle faktura'er ud. Når en faktura printes ud,
skal
> den skrive en kopi ud på noget papir fra en bakke og dernæst to fra en
anden
> bakke i samme printer.
>
> Hvordan løses dette? Jeg skal ikke bruge et færdigt program, blot hvilke
> kommandoer, kodelinjer osv. der skal til...

Jeg havde engang et ligende problem, et program skulle udskrive 2 sider uden
at brugeren skulle ændre på printer opsætningen, den ene side skulle være i
standard udskrifts kvalitet og den anden i høj kvalitet. Jeg løste problemet
sådan: I en opsætnings form i programmet havde jeg 2 knapper "Normal
kvalitet udskrift setup" og "Høj kvalitet udskrift setup", når jeg trykkede
på en af disse knapper kom jeg ind i en printer setup, og her kunne jeg så
sætte printeren som jeg ville, når der blev trykken OK gemte programmet
printer opsætningen i en fil som så senere kunne bruges.

Præcis hvordan jeg lavede koden kan jeg ikke huske (har den ikke mere), men
jeg mener at jeg brugte functionen DocumentProperties og derefter gemte jeg
så DEVMODE strukturen i en fil. DocumentProperties kan bruges til både at
sætte og hente DEVMODE strukturen for en printer samt at vise en dialog box
til printer opsætningen. Der står en masse om functionen i hjælpen.

Mvh
HK




Yngve Damgaard (26-02-2002)
Kommentar
Fra : Yngve Damgaard


Dato : 26-02-02 20:55

Hej
Check.
http://www.gnomehome.demon.nl/uddf/pages/printer.htm
Se på "Property changes in same print " det må være
det du skal bruge

Yngve






Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste