/ 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
problem med udskrivning af roteret tekst
Fra : Thomas


Dato : 19-08-02 14:57

Hej

Jeg bruger følgende stump kode til at printe roteret text ud:


Font.PixelsPerInch:= GetDeviceCaps(Printer.Canvas.Handle,
LOGPIXELSY);
GetObject(Font.Handle, sizeof(lf), @lf);
lf.lfEscapement := 900;
lf.lfOrientation := 900;
NewFont := CreateFontIndirect(lf);
OldFont := SelectObject(Printer.Canvas.Handle, NewFont);
Printer.Canvas.TextOut(25,-2200, 'rotated text')
SelectObject(Printer.Canvas.Handle, OldFont);
DeleteObject(NewFont);

Samtidig bruger jeg en mapping mode, så jeg præcist kan styre positionen af
teksten, osv. (SetMapMode(printer.canvas.handle, MM_LOMETRIC)).

Det ser ud til at forskellige printere og forskellige udgaver af windows
fortolker "lf.lfEscapement := 900" og "lf.lfOrientation := 900" forskelligt.
Teksten bliver nogle gange roteret 90 grader med uret og andre gange 90
grader mod uret, alt efter hvilket system der printes på. Eksempel vis er
der forskel på om jeg printer fra en win2000 pro maskine og en win 95
maskine, selvom det over samme printer (den er sat til win 95 maskinen).
Problemet opstår, så vidt jeg kan finde ud af, kun når jeg bruger
ovenstående mapping mode.

Er der nogen der er bekendte med problemet og evt. har nogle forslag.

Er der en metode til at finde ud af hvor på papiret en printer har tænkt sig
at starte med at skrive fx efter man har bedt den rotatere teksten?

Venlig hilsen
Thomas



 
 
Monie Jacobsen (19-08-2002)
Kommentar
Fra : Monie Jacobsen


Dato : 19-08-02 15:42

Hej Thomas
Jeg ved ikke om jeg kan hjælpe, men jeg har en code til rotering af et image
billedet.
Hvis det har interesse for gennemlæsning for ideer, sender jeg det gerne til
dig.

MVH
Monie

"Thomas" <thomas.heath@ofir.dk> skrev i en meddelelse
news:3d60f84c$0$94848$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Jeg bruger følgende stump kode til at printe roteret text ud:
>
>
> Font.PixelsPerInch:= GetDeviceCaps(Printer.Canvas.Handle,
> LOGPIXELSY);
> GetObject(Font.Handle, sizeof(lf), @lf);
> lf.lfEscapement := 900;
> lf.lfOrientation := 900;
> NewFont := CreateFontIndirect(lf);
> OldFont := SelectObject(Printer.Canvas.Handle, NewFont);
> Printer.Canvas.TextOut(25,-2200, 'rotated text')
> SelectObject(Printer.Canvas.Handle, OldFont);
> DeleteObject(NewFont);
>
> Samtidig bruger jeg en mapping mode, så jeg præcist kan styre positionen
af
> teksten, osv. (SetMapMode(printer.canvas.handle, MM_LOMETRIC)).
>
> Det ser ud til at forskellige printere og forskellige udgaver af windows
> fortolker "lf.lfEscapement := 900" og "lf.lfOrientation := 900"
forskelligt.
> Teksten bliver nogle gange roteret 90 grader med uret og andre gange 90
> grader mod uret, alt efter hvilket system der printes på. Eksempel vis er
> der forskel på om jeg printer fra en win2000 pro maskine og en win 95
> maskine, selvom det over samme printer (den er sat til win 95 maskinen).
> Problemet opstår, så vidt jeg kan finde ud af, kun når jeg bruger
> ovenstående mapping mode.
>
> Er der nogen der er bekendte med problemet og evt. har nogle forslag.
>
> Er der en metode til at finde ud af hvor på papiret en printer har tænkt
sig
> at starte med at skrive fx efter man har bedt den rotatere teksten?
>
> Venlig hilsen
> Thomas
>
>



Thomas (22-08-2002)
Kommentar
Fra : Thomas


Dato : 22-08-02 11:38

Ellers tak jeg har løst problemet:
logfont.fbClipPrecision:=CLIP_LH_ANGLES


"Monie Jacobsen" <monie@tdcadsl.dk> wrote in message
news:3d6103ce$0$43956$edfadb0f@dspool01.news.tele.dk...
> Hej Thomas
> Jeg ved ikke om jeg kan hjælpe, men jeg har en code til rotering af et
image
> billedet.
> Hvis det har interesse for gennemlæsning for ideer, sender jeg det gerne
til
> dig.
>
> MVH
> Monie




Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408490
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste