printPaperRectangle & LC7
Terence Heaford
t.heaford at icloud.com
Sat Mar 21 16:44:30 EDT 2015
> On 21 Mar 2015, at 18:17, J. Landman Gay <jacque at hyperactivesw.com> wrote:
>
> So your printer has a print area of 8,8,834,587
I have just identified an issue.
On my first pass through the routines the printPaperRectangle = 18,18,801,577 and the chart is offset to the left.
On my second and subsequent passes through the routines printPaperRectangle = 8,8,834,587 and the chart is entered correctly.
Why would printPaperRectangle not be 8,8,834,587 after I set the pagesetup to landscape on the first pass?
Firstly from a button I do this:
answer page setup as sheet
if the result = "cancel" then
exit mouseUp
end if
answer printer as sheet
if the result = "cancel" then
exit mouseUp
end if
send "printChart" to group “generalChart"
Then my print routine:
on printChart
put 10 into tLeftMargin
put 10 into tRightMargin
put 10 into tTopMargin
put 10 into tBottomMargin
put the printPaperRectangle into tPaperRect
put tPaperRect
put item 1 of tPaperRect into tPaperLeft
put item 2 of tPaperRect into tPaperTop
put item 3 of tPaperRect into tPaperWidth
put item 4 of tPaperRect into tPaperHeight
put tPaperWidth - tLeftMargin - tRightMargin into tAvailWidth
put tPaperHeight - tTopMargin - tBottomMargin into tAvailHeight
put the width of me into tChartWidth
put the height of me into tChartHeight
put tAvailWidth/tChartWidth into tWidthRatio
put tAvailHeight/tChartHeight into tHeightRatio
put min(tWidthRatio,tHeightRatio) into tRatio
put tRatio * tChartWidth into tActualWidth
put tRatio * tChartHeight into tActualHeight
put (tPaperWidth - tActualWidth)/2 into tLM
--put (tPaperHeight - tActualHeight)/2 into tTM -- this centres chart vertically on the page
put tTopMargin into tTM -- this keeps the chart at the top of the page
put tPaperLeft/2 into tOffsetH
put tPaperTop/2 into tOffsetV
set the printMargins to tLM + tOffsetH,tTM + tOffsetV,tLM - tOffsetH,tTM - tOffsetV
set the printScale to tRatio
--put "chart width = " & tW & return & "printPaperRectangle = " & tPaperRect & return & "printMargins = " & the printMargins
put the topLeft of me into tTopLeft
put the bottomRight of me into tBottomRight
print card from tTopLeft to tBottomRight
end printChart
More information about the use-livecode
mailing list