Printer class question - RESOLVED

User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Printer class question - RESOLVED

Post by Silvio.Falconi »

I wanted to know if there was a function in the printer class that would automatically print a text and a box for example:

Image

coordinates are

first text
x 1
y 5.5
width 4.5
height 0.8

Box very fine black colour gray color background

Font Arial 6

Left alignment top position


second text
x 1
y 5.5
width 4.5
height 0.8

Font Arial 12
Bottom position centered alignment


I tried with

CmSay( nRow, nCol, cText, oFont, nWidth, nClrText, nBkMode, nPad, lO2A )
but it's no god

Code: Select all

#include "fivewin.ch"

#define PAD_LEFT            0
#define PAD_RIGHT           1
#define PAD_CENTER          2

function Main()
   local oPrn, oFont, oPen
   Local nLinI, nColI, nLinF, nColF


   PRINT oPrn NAME "TEST...." PREVIEW
   DEFINE FONT oFont NAME "Arial" SIZE 0, -6  OF oPrn
   DEFINE FONT oFont2 NAME "Arial" SIZE 0, -12  OF oPrn

   DEFINE PEN oPen WIDTH  1        OF oPrn

      oPrn:SetPage(9)  // A4
      oPrn:SetPortrait() //Vertical
      PAGE


         nLinI :=  1.00
         nColI :=  5.5
         nLinF :=  0.8
         nColF :=  4.5
         oPrn:Box(nLinI, nColI, nLinF, nColF, oPen, CLR_GRAY,,"CM" )

         oPrn:cmSay( 1, 5.5, "Tipo documento", oFont,4.5,CLR_BLACK,,PAD_LEFT  )
         oPrn:cmSay(1,5.5, "DESCRIZIONE DOCUMENTO", oFont2,4.5,CLR_BLACK,,PAD_CENTER  )

         ENDPAGE
   ENDPRINT




return nil
 
My result
Image
Last edited by Silvio.Falconi on Fri Oct 23, 2020 2:42 pm, edited 1 time in total.
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Printer class question

Post by Silvio.Falconi »

METHOD Box( nTop, nLeft, nBottom, nRight, ;
[Pen], ; // oPen/hPen/nColor/{nColor,nThickness}
[Brush], ; // nColor / oBrush
[aText], ; // { cText, oFont, nColor } Painted in center
cUnits ; // "CM", "MM", "INCHES"
)

I tried to use aText array but I can set only { cText, oFont, nColor } and it was printed in center
How I can to print it with align ?
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

Code: Select all

// \samples\SILVIORL.PRG - 20/10/2020 - kapiabafwh@gmail.com

#include "fivewin.ch"

#define PAD_LEFT            0
#define PAD_RIGHT           1
#define PAD_CENTER          2

FUNCTION Imp_Silvio()

   LOCAL oPrn, oFont, oFont2, oFont3, oPen, oPen1, oPen2, oPen3, cFiveWin
   LOCAL nLinI, nColI, nLinF, nColF
   LOCAL ResLinha, ResColuna, nLinha, nColuna

   PRINT oPrn NAME "TEST SILVIO..." PREVIEW

      DEFINE FONT oFont  NAME "Arial" SIZE 0, - 6  BOLD           OF oPrn
      DEFINE FONT oFont2 NAME "Arial" SIZE 0, - 12 BOLD Underline OF oPrn
      DEFINE FONT oFont3 NAME "Arial" SIZE 0, - 18 BOLD           OF oPrn

      DEFINE PEN oPen WIDTH  1        OF oPrn
      DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BLACK                    OF oPrn
      DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BLACK                    OF oPrn
      DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK                    OF oPrn

      oPrn:SetPage( 9 )  // A4
      oPrn:SetPortrait() //Vertical

      ResLinha  := oPrn:nLogPixely() / 2.54
      ResColuna := oPrn:nLogPixelx() / 2.54

      PAGE

         nLinI :=  1.00
         nColI :=  5.5
         nLinF :=  0.8
         nColF :=  4.5

         nLinha  := nLinI
         nColuna := nColI

        // oPrn:Box( nLinI, nColI, nLinF, nColF, oPen, CLR_GRAY, , "CM" )

        // oPrn:cmSay( 1, 5.5, "Tipo documento", oFont, 4.5, CLR_BLACK, , PAD_LEFT  )
        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "Tipo documento:", oFont,, CLR_BLACK,, PAD_LEFT )


        //oPrn:cmSay( 1, 5.5, "DESCRIZIONE DOCUMENTO", oFont2, 4.5, CLR_BLACK, , PAD_CENTER  )

        nColuna := 10.5

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "DESCRIZIONE DOCUMENTO", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += .80
        nColuna :=  5.0

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "ESCHOOL: SILVIO FALCONI JUVENILE", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += .80
        nColuna :=  9.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "ESCHOOL: FIVEWIN BRASIL THE BEST", oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += .80
        nColuna := 16.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "kapiabafwh@gmail.com", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += .50
        nColuna := 13.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "Joao Santos: I Love FiveWin", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += .50
        nColuna :=  5.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "Mira se sirve Silvio Falconi", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += .50
        nColuna :=  3.50

        cFiveWin := "FiveWin is easy, it's the people who complicate it."

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + cFiveWin, oFont2,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += 1.00
        nColuna := 14.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "By Silvio Falconi: de Italia.", oFont2,, CLR_BLACK,, PAD_LEFT )

      ENDPAGE

   ENDPRINT

   oPen:End()
   oPen1:End()
   oPen2:End()
   oPen3:End()

   oFont:End()
   oFont2:End()
   oFont3:End()

RETURN NIL
 
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

BOX... BOX... BOX.

Code: Select all

// \samples\SILVIORL.PRG - 20/10/2020 - kapiabafwh@gmail.com

#include "fivewin.ch"

#define PAD_LEFT            0
#define PAD_RIGHT           1
#define PAD_CENTER          2

FUNCTION Imp_Silvio()

   LOCAL oPrn, oFont, oFont2, oFont3, oPen, oPen1, oPen2, oPen3, cFiveWin
   LOCAL nLinI, nColI, nLinF, nColF
   LOCAL ResLinha, ResColuna, nLinha, nColuna
   LOCAL nLinTopBox, nColTopBox, nLinBotBox, nColBotBox

   PRINT oPrn NAME "TEST SILVIO BOX, BOX, BOX..." PREVIEW

      DEFINE FONT oFont  NAME "Arial" SIZE 0, - 6  BOLD           OF oPrn
      DEFINE FONT oFont2 NAME "Arial" SIZE 0, - 12 BOLD Underline OF oPrn
      DEFINE FONT oFont3 NAME "Arial" SIZE 0, - 18 BOLD           OF oPrn

      DEFINE PEN oPen  WIDTH 1 COLOR CLR_BLACK                    OF oPrn
      DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BLACK                    OF oPrn
      DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BLACK                    OF oPrn
      DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK                    OF oPrn

      oPrn:SetPage( 9 )  // A4
      oPrn:SetPortrait() //Vertical

      ResLinha  := oPrn:nLogPixely() / 2.54
      ResColuna := oPrn:nLogPixelx() / 2.54

      PAGE

        nLinI :=  1.00
        nColI :=  5.5
        nLinF :=  0.8
        nColF :=  4.5

        nLinha  := nLinI
        nColuna := nColI

        // oPrn:Box( nLinI, nColI, nLinF, nColF, oPen, CLR_GRAY, , "CM" )
        nLinTopBox :=  0.50  //-> Linha Que o Box Inicia Topo
        nColTopBox := 15.00  //-> Largura do Box
        nLinBotBox :=  2.50  //-> Tamanho do Box de Cima Para Baixa
        nColBotBox :=  5.80  //-> Coluna Que o Box Inicia

        oPrn:Cmtr2Pix( @nLinTopBox, @nColTopBox )
        oPrn:cmtr2Pix( @nLinBotBox, @nColBotBox )

        oPrn:Box( nLinTopBox, nColTopBox, nLinBotBox, nColBotBox, oPen3 )

        nColuna := nColuna += 2.10

        // oPrn:cmSay( 1, 5.5, "Tipo documento", oFont, 4.5, CLR_BLACK, , PAD_LEFT  )
        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "Tipo documento:", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += 0.50
        nColuna := 10.5

        //oPrn:cmSay( 1, 5.5, "DESCRIZIONE DOCUMENTO", oFont2, 4.5, CLR_BLACK, , PAD_CENTER  )
        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "DESCRIZIONE DOCUMENTO", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += 1.50
        nColuna :=  5.0

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "ESCHOOL: SILVIO FALCONI JUVENILE", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += .80
        nColuna :=  9.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "ESCHOOL: FIVEWIN BRASIL THE BEST", oFont3,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += .80
        nColuna := 16.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "kapiabafwh@gmail.com", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += .50
        nColuna := 13.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "Joao Santos: I Love FiveWin", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += .50
        nColuna :=  5.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "Mira se sirve Silvio Falconi", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += .50
        nColuna :=  3.50

        cFiveWin := "FiveWin is easy, it's the people who complicate it."

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + cFiveWin, oFont2,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += 1.00
        nColuna := 14.50

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
           + "By Silvio Falconi: de Italia.", oFont2,, CLR_BLACK,, PAD_LEFT )

      ENDPAGE

   ENDPRINT

   oPen:End()
   oPen1:End()
   oPen2:End()
   oPen3:End()

   oFont:End()
   oFont2:End()
   oFont3:End()

RETURN NIL
 
João Santos - São Paulo - Brasil
User avatar
TimStone
Posts: 2536
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Contact:

Re: Printer class question

Post by TimStone »

Silvio,

This gives you the box:
oPrn:Box( nRow, 1, nRow + ( 63 * nRsp ), 85 * nCsp, oPen )

This gives. you the gray:
oPrn:FillRect( { nRow - ( 1 * nRsp ), 5, nRow + ( nBoxLines * nRsp ), 84.8 * nCsp }, oPrnBrush )

And this gives you the text:
oPrn:SayText( nRow, 41 * nCsp, "INVOICE: ",,, oFbold )

You define the fonts, brushes, and pens.

nRow is determined by a counter you use in your printout to determine the lines for the items

nRsp and nCsp are determined by the orientation and papersize:
// Set the resolution divided by the standard 8.5x11 inch paper rows/columns
nRsp := oPrn:nVertRes() / 68 // Number of rows
nCsp := oPrn:nHorzRes() / 85 // Number of columns

I've used these for years with success. You can even implement color if you wish.

What I haven't tried (yet) is to make an additional METHOD to the class that might be some type of automated function where you feed a single command the coordinates and text and it does all 3 steps for you with one command. It should be easy to build ... I just haven't done it.

Also, I use this with large boxes, with multiple lines of text. It is very flexible.

Tim
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Printer class question

Post by Silvio.Falconi »

my idea was to find an easy procedure to print simple print templates, because by now I understand that I will never be able to use MyRpt, ER, etc.
so I had thought going back to the origins of creating an archive and storing the data for the print model
this afternoon I joke with tPrinter class and I found this but I not Understood How I arrive here

Image

nRow := 5.5
nCol := 1
nWidth := 7.5

@ nRow , nCol PRINT TO oPrn TEXT cText SIZE nWidth - 1,10 CM FONT oFont ALIGN "TL" LASTROW nLast
oPrn:Box( nRow, nCol, nLast + 0.5, nCol + nWidth, nil, CLR_HGRAY, nil, "CM" )

@ nRow+0.2 , nCol PRINT TO oPrn TEXT cText2 SIZE nWidth - 1,10 CM FONT oFont2 ALIGN "TC" //LASTROW nLast
@ nRow , nCol PRINT TO oPrn TEXT cText SIZE nWidth - 1,10 CM FONT oFont ALIGN "TL"


the last line is repeated because the gray box deletes the first line and I couldn't understand why
anyway if you want to help me I'll post the whole test

Code: Select all

  #INCLUDE"FIVEWIN.CH"

function printtest()

       local oPrn, oFont, oBrush, nRow, nCol, nWidth, nLast, nHeight
       local cText :="Tipo di Documento"
       local cText2 :="DESCRIZIONE DOCUMENTO"

       PRINT oPrn PREVIEW


       DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-6  OF oPrn
       DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-12 BOLD OF oPrn

       PAGE

       nRow     := 5.5
       nCol     := 1
       nWidth   := 7.5

      @ nRow , nCol PRINT TO oPrn TEXT cText SIZE nWidth - 1,10 CM FONT oFont ALIGN "TL" LASTROW nLast
      oPrn:Box( nRow, nCol, nLast + 0.5, nCol + nWidth, nil, CLR_HGRAY, nil, "CM" )
      @ nRow+0.2 , nCol PRINT TO oPrn TEXT cText2 SIZE nWidth - 1,10 CM FONT oFont2 ALIGN "TC" //LASTROW nLast
      @ nRow , nCol PRINT TO oPrn TEXT cText SIZE nWidth - 1,10 CM FONT oFont ALIGN "TL"

       nRow     := 5.5
       nCol     := 9.1
       nWidth   := 7.5

       @ nRow , nCol PRINT TO oPrn TEXT cText SIZE nWidth - 1,10 CM FONT oFont ALIGN "TL" LASTROW nLast
      oPrn:Box( nRow, nCol, nLast + 0.5, nCol + nWidth, nil, CLR_HGRAY, nil, "CM" )
      @ nRow+0.2 , nCol PRINT TO oPrn TEXT cText2 SIZE nWidth - 1,10 CM FONT oFont2 ALIGN "TC" //LASTROW nLast
      @ nRow , nCol PRINT TO oPrn TEXT cText SIZE nWidth - 1,10 CM FONT oFont ALIGN "TL"




       ENDPAGE

       ENDPRINT

       RELEASE FONT oFont
       RELEASE BRUSH oBrush

    return ni
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

Mira, se es esto.

Code: Select all

// \samples\SHADOW.PRG - 20/10/2020 - kapiabafwh@gmail.com

#include "fivewin.ch"

#define PAD_LEFT            0
#define PAD_RIGHT           1
#define PAD_CENTER          2

FUNCTION Imp_Silvio()

   LOCAL oPrn, oFont, oFont2, oFont3, oPen, oPen1, oPen2, oPen3, cFiveWin
   LOCAL nLinI, nColI, nLinF, nColF, oBrush
   LOCAL ResLinha, ResColuna, nLinha, nColuna
   LOCAL nLinTopBox, nColTopBox, nLinBotBox, nColBotBox
   LOCAL ShadowIni, ShadowFin

   PRINT oPrn NAME "TEST SILVIO BOX SHADOW..." PREVIEW

      DEFINE BRUSH oBrush COLOR nRGB( 215, 215, 215 )

      DEFINE FONT oFont  NAME "Arial" SIZE 0, - 6  BOLD           OF oPrn
      DEFINE FONT oFont2 NAME "Arial" SIZE 0, - 12 BOLD Underline OF oPrn
      DEFINE FONT oFont3 NAME "Arial" SIZE 0, - 18 BOLD           OF oPrn

      DEFINE PEN oPen  WIDTH 1  COLOR CLR_BLACK                   OF oPrn
      Define Pen oPen1 Width 50 COLOR nRgb( 192, 192, 192 )
      DEFINE PEN oPen2 WIDTH 2  COLOR CLR_BLACK                   OF oPrn
      // aqui Silvio:
      DEFINE PEN oPen3 WIDTH 410 COLOR nRgb( 192, 192, 192 )      OF oPrn

      oPrn:SetPage( 9 )  // A4
      oPrn:SetPortrait() //Vertical

      ResLinha  := oPrn:nLogPixely() / 2.54
      ResColuna := oPrn:nLogPixelx() / 2.54

      PAGE

        nLinha  := 1.00
        nColuna := 5.5

        nLinTopBox :=  1.50  //-> Linha Que o Box Inicia Topo
        nColTopBox := 14.00  //-> Largura do Box
        nLinBotBox :=  2.50  //-> Tamanho do Box de Cima Para Baixo
        nColBotBox :=  8.00  //-> Coluna Que o Box Inicia

        oPrn:Cmtr2Pix( @nLinTopBox, @nColTopBox )
        oPrn:cmtr2Pix( @nLinBotBox, @nColBotBox )

        /* // otro modo
        ShadowIni := oPrn:Cmtr2Pix( nLinTopBox, 6.5 )

        ShadowFin :=  oPrn:cmtr2Pix( nLinBotBox, 14.5 )
        */

        // Shadow Box
        oPrn:Box( nLinTopBox, nColTopBox, nLinBotBox, nColBotBox, oPen3 )

        // oPrn:FillRect( { ShadowIni[1], ShadowIni[2], ShadowFin[1], ShadowFin[2] }, oBrush )

        nColuna := nColuna += 2.10

        // oPrn:cmSay( 1, 5.5, "Tipo documento", oFont, 4.5, CLR_BLACK, , PAD_LEFT  )
        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "Tipo documento:", oFont,, CLR_BLACK,, PAD_LEFT )

        nLinha  := nLinha += 0.50
        nColuna := 10.5

        //oPrn:cmSay( 1, 5.5, "DESCRIZIONE DOCUMENTO", oFont2, 4.5, CLR_BLACK, , PAD_CENTER  )
        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "DESCRIZIONE DOCUMENTO", oFont2,, CLR_BLACK,, PAD_CENTER )

        nLinha  := nLinha += 0.80

        oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                    ;
           + "Silvio Falconi Corporation And FiveWin", oFont,, CLR_BLACK,, PAD_LEFT )

      ENDPAGE

   ENDPRINT

   oPen:End()
   oPen1:End()
   oPen2:End()
   oPen3:End()

   oFont:End()
   oFont2:End()
   oFont3:End()

RETURN NIL
 
João Santos - São Paulo - Brasil
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Printer class question

Post by Silvio.Falconi »

Sorry,
I research something Easy
I save all data in a dbf and then i Wish call a function
Make all from fields to graphics form

Sample:
Use customer...
Use invoice ...
Use magazzin...
Getform(104)
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

In this case, you must use your imagination ... It is what is expected of an excellent programmer. Basis is that you do not miss this wonderful forum.
João Santos - São Paulo - Brasil
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: Printer class question

Post by Otto »

Hello Silvio,
can you please show a image how your print should look like.
Best regards,
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org

********************************************************************
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Printer class question

Post by karinha »

Silvio, Use google translator to understand.

I would create a configuration for the entire system as in the example below:

https://i.imgur.com/9W6FzfM.png

Image

Regards.
João Santos - São Paulo - Brasil
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Printer class question

Post by nageswaragunupudi »

Silvio.Falconi wrote:METHOD Box( nTop, nLeft, nBottom, nRight, ;
[Pen], ; // oPen/hPen/nColor/{nColor,nThickness}
[Brush], ; // nColor / oBrush
[aText], ; // { cText, oFont, nColor } Painted in center
cUnits ; // "CM", "MM", "INCHES"
)

I tried to use aText array but I can set only { cText, oFont, nColor } and it was printed in center
How I can to print it with align ?
Now, aText can be { cText, oFont, nTxtColor, cAlign }

cAlign:
"TL" : TopLeft
"TR" : TopRight
"T" : Top Center
"BL" : Bottom Left
"BR" : Bottom Right
"B" : Bottom Center
"L" : Left Vert Center
"R" : Right Vert Center

But you can use this for only String, though this string can be multi-line delimited by CRLF.
If you want to print 2 or more strings with different alignments, you need to write your own code for that.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Printer class question

Post by nageswaragunupudi »

Code: Select all

function PrnBox()

   local oPrn, oFont, oBrush

   DEFINE BRUSH oBrush FILE "c:\fwh\bitmaps\backgrnd\pebbles.bmp"
   PRINT oPrn PREVIEW
   DEFINE FONT oFont NAME "VERDANA" SIZE 0,-30 OF oPrn BOLD

   PAGE
   oPrn:RoundBox( 1, 1, 5, 5, .5, .5, { CLR_HRED, 3 }, oBrush, ;
                  { "FIRST" + CRLF + "SECOND", oFont, CLR_WHITE, "B" }, ;
                  "INCHES" )
   @ 1,1 PRINT TO oPrn TEXT "HOLLOW TEXT" SIZE 4, 4 INCHES FONT oFont ;
         COLOR CLR_YELLOW OUTLINE CLR_HRED SIZE 3 ALIGN "T"

   ENDPAGE
   ENDPRINT

   RELEASE FONT oFont
   RELEASE BRUSH oBrush

return nil
Image
Regards

G. N. Rao.
Hyderabad, India
Post Reply