|
| Printer i windows (Borland C++ 5) Fra : Michael Houmaark |
Dato : 24-12-01 14:32 |
|
Hej Alle.
Jeg sider og roder lidt med at udskrive til en printer, men jeg kan ikke
lige se hvordan jeg
finder (sætter) magen i top, bund, venstre, højer.
Jeg kan godt finde ud af hvor stort et felt jeg må skrive til, men det ville
være godt at vide hvor stor hele siden var i pixels med magen så jeg selv
kan regne på magen Fx hvis jeg lige pludselig vil bruge en anden printer der
ikke køre med lige så stor mag.
Et lille eksempel af det jeg har lavet :
int Height2 = Printer()->PageHeight; // finder højten på en siden uden
magen :(
int Width2 = Printer()->PageWidth; // finder bræden på en siden uden
magen :(
Printer()->BeginDoc(); // starter selve den side jeg skal skrive ud til
Printer()->Title = "Test2 Label"; // skriver en titel på selve dukomentet
for(int i = 0; i < 10; i++) // Løkke så man kan se stregen
Printer()->Canvas->Rectangle(1+i,1+i,Height2-i,Width2-i); //
laver en kasse i det yderste felt på papiret
// så jeg finder ud af der ikke har regnet uden magen :(
Printer()->EndDoc(); // printer ud
Så hvis der er nogen der lige ved eller har arbejdet med dette før ville jeg
være glad for lidt hjælp
MvH
Michael
| |
Ivan Johansen (29-12-2001)
| Kommentar Fra : Ivan Johansen |
Dato : 29-12-01 22:32 |
|
Michael Houmaark wrote:
> Jeg sider og roder lidt med at udskrive til en printer, men jeg kan ikke
> lige se hvordan jeg
> finder (sætter) magen i top, bund, venstre, højer.
>
> Jeg kan godt finde ud af hvor stort et felt jeg må skrive til, men det ville
> være godt at vide hvor stor hele siden var i pixels med magen så jeg selv
> kan regne på magen Fx hvis jeg lige pludselig vil bruge en anden printer der
> ikke køre med lige så stor mag.
Følgende giver dig papirets størrelse i pixels:
HDC hPrnDC=Printer()->Handle;
int PaperWidth = GetDeviceCaps(hPrnDC, PHYSICALWIDTH);
int PaperHeight = GetDeviceCaps(hPrnDC, PHYSICALHEIGHT);
Jeg håber du kan bruge det.
Ivan Johansen
| |
Michael Houmaark (31-12-2001)
| Kommentar Fra : Michael Houmaark |
Dato : 31-12-01 13:16 |
|
wrote: Ivan Johansen
> Følgende giver dig papirets størrelse i pixels:
> HDC hPrnDC=Printer()->Handle;
> int PaperWidth = GetDeviceCaps(hPrnDC, PHYSICALWIDTH);
> int PaperHeight = GetDeviceCaps(hPrnDC, PHYSICALHEIGHT);
Tak men det er mest magen jeg er ude efter.
Hvis du kan sige mig hvor jeg finder den ville jeg være en lykkelig mand *G*
Skal bruge både at kunne sætte den og kun aflæse den (alle mager)
MvH
Michael Houmaark
| |
Ivan Johansen (02-01-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 02-01-02 00:20 |
|
Michael Houmaark wrote:
> wrote: Ivan Johansen
>>Følgende giver dig papirets størrelse i pixels:
>> HDC hPrnDC=Printer()->Handle;
>> int PaperWidth = GetDeviceCaps(hPrnDC, PHYSICALWIDTH);
>> int PaperHeight = GetDeviceCaps(hPrnDC, PHYSICALHEIGHT);
>>
> Tak men det er mest magen jeg er ude efter.
> Hvis du kan sige mig hvor jeg finder den ville jeg være en lykkelig mand *G*
> Skal bruge både at kunne sætte den og kun aflæse den (alle mager)
Jeg er ikke helt sikker på hvad det egentligt er du mangler. Printerens
fysiske begrænsninger, som hvor tæt der kan skrives på papirets kant,
kan findes med GetDeviceCaps(), men disse kan selvfølgelig ikke ændres.
Ud fra disse informationer, kan du vælge på hvilke positioner du vil
skrive.
Ved hjælp af SelectClipRgn() kan du specificere nogle grænser, som der
ikke kan skrives uden for.
SetViewportOrgEx() bruges til at specificere pladseringen af kooridantet
(0,0).
Du kan finde flere informationer om disse funktioner i Windows SDK, men
du skal også være velkommen til at spørge igen.
Ivan Johansen
| |
|
|