Re: Breaking text when printing

new topic     » goto parent     » topic index » view thread      » older message » newer message

Thank you Derek

I tried your suggestion, but when the page prints I get a sequence of 
numbers instead of the text. I have included the test code im using
-------------------------------------------------------------------------
constant
    CrLf    = { '\r', '\n' },
    Lf      = { '\n' }

integer
    printErr
    sequence result


    -- is the document empty?
    if length( doc ) = 0 then
        -- do nothing
        return doc
    end if

    -- start a new page
    if not startPage() then
        -- set error and return empty sequence
        printErr = True
        return {}
    end if

    -- get the attributes of font
    result = getFontSize( Printer )
    fontY = result[2]

    -- get the attributes of the page
    result = getCtlSize( Printer )
    pageY = result[2]

    -- start at top of page
    y = 0

    z = 1
    while z <= length(doc) do

        -- out of space?
        if y + fontY > pageY then
            exit
        end if

        -- print on page
        setPenPosition( Printer, 0, y )
        wPuts( Printer, doc[z])

        -- move down a line
        y += fontY
        z += 1

    end while

    -- end the page
    if not endPage() then
        -- flag printer error
        printErr = True
    end if

    -- return the unprinted portion
    return doc[z .. length(doc)]

end function
        -- do nothing
        return
    end if


     result = getPageSetup()
   if not sequence(result) then
        return
   end if



    -- start the document
    if not startDoc( jobName ) then
        -- error
        printErr = True
    end if

    -- until end of document or error
    while length( doc ) != 0
    and   not printErr do
        -- send document to printer; returns unprinted amount
        doc = printPage( doc )
    end while

    -- end the document
    if not endDoc() then
        printErr = True
    end if

end procedure

    -- print document on printer
    integer at, ignore
    sequence result, doc

    -- clear the error flag
    printErr = False

    -- select the printer
    result = getPrinter()
    if length( result ) = 0 then
        -- user cancelled
        return
    end if

    doc = drawText(Printer, getRichText(MyText ,-1),{5,5,140, 75}, 
DT_WORDBREAK, 4, 0, 0)
    -- set the font
    setFont( Printer, fontstyle, fontsize, Normal )

    -- print the document
    printDoc( doc, "Test Document" )

    -- release the printer
    releasePrinter()

    -- was there an error?
    if printErr then
        -- display an error message
        ignore = message_box(   "Print File Error",
                                "Error Printing File",
                               MB_ICONHAND+MB_TASKMODAL )
    end if
end procedure

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu