i EXPLAIN YOU
Please compile this test
- Code: Select all Expand view
#include <fivewin.ch>
#define PAD_LEFT 0
#define PAD_RIGHT 1
#define PAD_CENTER 2
Function Test(lPreview)
LOCAL oPrinter
Local nLogPixX,nLogPixY
Local nLeftMargin,nRightMargin,nTopMargin,nDnMargin
Local nSpaceH,nSpaceV
LOCAL hPen
local x:=0
Local y:=0
DEFAULT lPreview := .T.
oPrinter := TPrinter():New( "Test margins", .f., lPreview )
nLogPixX := oPrinter:nLogPixelX() / 2.54
nLogPixY := oPrinter:nLogPixelY() / 2.54
nLeftMargin := Int( nLogPixX * 0.5 )
nRightMargin := Int( nLogPixX * 0.5 )
nTopMargin := Int( nLogPixY * 0.5 )
nDnMargin := Int( nLogPixY * 0.5 )
nSpaceH := Int( nLogPixY * 0.5 )
nSpaceV := Int( nLogPixY * 0.5 )
//hPen := CreatePen( PS_DOT, 1, CLR_BLUE )
DEFINE PEN oPen WIDTH 2 OF oPrinter STYLE PS_DOT
DEFINE FONT oFont NAME "Arial" SIZE 0, -10 BOLD OF oPrinter
oPrinter:StartPage()
nLinI := 0.5
nColI := 0.5
nLinF := 27.4
nColF := 20.8
oPrinter:Cmtr2Pix(@nLinI, @nColI)
oPrinter:cmtr2Pix(@nLinF, @nColF)
oPrinter:Box(nLinI, nColI, nLinF, nColF, oPen )
oPrinter:EndPage()
if lPreview
oPrinter:lPrvModal := .T.
oPrinter:Preview()
else
oPrinter:End()
endif
return ni
on this test I try with these parameters :
nLinI := 0.5 -----> ( 0.0) + topmargin
nColI := 0.5 -----> ( 0.0) +leftmargins
nLinF := 27.4 -----> (27.9 -bottommargins)
nColF := 20.8 -----> (21.3 - rightmargins)
But How I can found these parameters from Device (oPrinter)
directly ?
I try with :
nLinI := 0.5
nColI := 0.5
nLinF := oPrinter:nVertSize() / 10 - 0.5
nColF := oPrinter:nHorzSize() / 10 - 0.5
but this is right ???