Tec TMSPrinter 090912 2355 44863
Tec TMSPrinter 090912 2355 44863
Tec TMSPrinter 090912 2355 44863
Classe: TMSPrinter
Cria um objeto que permite visualizar e imprimir relatrio. Hierarquia Construtores New
New
Mtodo construtor da Classe.
Sintaxe
TMSPrinter(): New ( [ cDocument], [ uParam2], [ uParam3], [ uParam4], [ uParam5], [ uParam6], [ uParam7], [ uParam8] ) --> oObjeto
Parmetros
Nome cDocument Tipo Caracter Descrio Indica o nome descritivo do relatrio. Compatibilidade. Compatibilidade. Compatibilidade. Compatibilidade. Compatibilidade. Compatibilidade. Compatibilidade. Obrigatrio Referncia
Retorno oObjeto
() Retorna o objeto criado.
Sintaxe
TMSPrinter(): Box ( [ nRow], [ nCol], [ nBottom], [ nRight], [ uParam5] ) -->
Parmetros
Nome nRow Tipo Numrico Descrio Indica a coordenada vertical em pixels. Indica a coordenada horizontal em pixels. Indica a posio do objeto em relao ao rodap. Indica a posio do objeto direita. Compatibilidade. Obrigatrio Referncia
nCol
Numrico
nBottom
Numrico
nRight uParam5
Numrico Qualquer
Sintaxe
TMSPrinter(): Cancel ( ) -->
Sintaxe
TMSPrinter(): Canceled ( ) -->
Sintaxe
TMSPrinter(): Cmtr2Pix ( [ nLinha], [ nColuna], [ uParam3] ) -->
Parmetros
Descrio Indica a linha que ser calculada. Indica a coluna que ser calculada. Compatibilidade.
Obrigatrio
Referncia
Sintaxe
TMSPrinter(): End ( ) -->
Observaes
Sintaxe
TMSPrinter(): EndPage ( ) -->
Sintaxe
TMSPrinter(): FillRect ( [ aCoords], [ oBrush] ) -->
Parmetros
Nome aCoords Tipo Vetor Descrio Indica um array, do tipo numrico, que contm as coordenadas do retngulo que ser construdo. Indica o objeto do tipo TBrush utilizado para definir a cor de preenchimento do shape e responsvel pelo preenchimento do retngulo. Obrigatrio Referncia
oBrush
Objeto
Exemplos oBrush1 := TBrush():New( , CLR_YELLOW )oPrint:FillRect( {100, 10, 200, 200}, oBrush1 ) GetOrientation
GetOrientation
Retorna a orientao (Retrato ou Paisagem) do objeto.
Sintaxe
TMSPrinter(): GetOrientation ( ) --> nOrint
Retorno nOrint
() Retorna a orientao do objeto, sendo: 1=Portrait (retrato) ou 2=Landscape (paisagem).
Sintaxe
TMSPrinter(): GetTextHeight ( < cTexto>, < oFont> ) --> nHeight
Parmetros
Nome cTexto oFont Tipo Caracter Objeto Descrio Indica o texto que ser calculado. Indica o objeto do tipo TFont, utilizado para definir as caractersticas da fonte, para realizar o clculo. Obrigatrio X X Referncia
Retorno
nHeight()
Retorna a altura do texto.
Observao: Este mtodo retorna ZERO se o componente estiver sendo executado via AppServer Linux. Exemplos oFont1 := TFont():New('Courier new',,-18,.T.)nHeight := oPrint:GetTextHeight( "Teste", oFont1) // Result: 180 GetTextWidth
GetTextWidth
Retorna a largura do texto conforme as caractersticas da fonte definida.
Sintaxe
TMSPrinter(): GetTextWidth ( < cTexto>, < oFonte> ) --> nWidth
Parmetros
Nome cTexto oFonte Tipo Caracter Objeto Descrio Indica o texto que ser calculado. Indica o objeto do tipo TFont, utilizado para definir as caractersticas da fonte, para realizar o clculo. Obrigatrio X X Referncia
nWidth
(numerico) Retorna a largura do texto.
GetFontWidths
Descrio Objeto do tipo fonte Vetor passado por referencia que recebera a lista de largura da fonte selecionada
Obrigatrio X X
Referncia
Retorno aRet() Vetor passado por referencia que recebera a lista de largura da fonte selecionada Observao: Este mtodo retorna um vetor vazio se o componente estiver sendo executado via AppServer Linux.
IsPrinterActive
IsPrinterActive
Retorna se a impressora est ativa.
Sintaxe
TMSPrinter(): IsPrinterActive ( ) -->
Sintaxe
TMSPrinter(): Line ( [ nTop], [ nLeft], [ nBottom], [ nRight], [ uParam5] ) -->
Parmetros
Nome nTop Tipo Numrico Descrio Indica a coordenada vertical em pixels. Indica a coordenada horizontal em pixels. Indica a posio do objeto ao rodap. Indica a posio do objeto direita. Compatibilidade. Obrigatrio Referncia
nLeft
Numrico
Sintaxe
TMSPrinter(): nHorzRes ( ) --> nResoluo
Retorno nResoluo
() Retorna a resoluo horizontal da impressora configurada.
// Result: 2400
Sintaxe
TMSPrinter(): nLogPixelX ( ) --> nResoluo
Retorno nResoluo
() Retorna a resoluo vertical em pixels da impressora configurada.
// Result: 300
Sintaxe
TMSPrinter(): nLogPixelY ( ) --> nResoluo
Retorno
nResoluo
() Retorna a resoluo horizontal em pixels da impressora configurada.
// Result: 300
Sintaxe
TMSPrinter(): nVertRes ( ) --> nResoluo
Retorno nResoluo
() Retorna a resoluo vertical da impressora configurada.
// Result: 3168
Sintaxe
TMSPrinter(): Preview ( ) -->
Sintaxe
TMSPrinter(): Print ( [ aPags], [ nCopias] ) -->
Parmetros
Nome aPags Tipo Vetor Descrio Indica o array, do tipo numrico, que contm as pginas que sero impressas. Indica o nmero de cpias que sero impressas. Obrigatrio Referncia
nCopias
Numrico
Sintaxe
TMSPrinter(): PrinterName ( ) --> cImpressora
Retorno cImpressora
(caracter) Retorna o nome da impressora.
Exemplos
Sintaxe
TMSPrinter(): Refresh ( ) -->
Sintaxe
TMSPrinter(): ResetPrinter ( ) -->
Sintaxe
TMSPrinter(): SaveAllAsJpeg ( [ cFilePath], [ nWidthPage], [ nHeightPage], [ nZoom] ) --> lOk
Parmetros
Descrio Indica o nome do arquivo. Indica a largura da imagem. Indica a altura da imagem. Indica o zoom que a imagem ser salva.
Obrigatrio
Referncia
Retorno lOk
(logico) Retorna verdadeiro (.T.), se a imagem for salva com sucesso; caso contrrio, retornar falso (.F.).
Observaes
Importante O mtodo SaveAllAsJpeg() no foi implementado para ser executado em Jobs.
Limites aceitos:
nWidthPage: 1800 nHeightPage: 1800 nZoom: Minimo 10% e Mximo 300%
Limitaes do mtodo:
Ao utilizar o mtodo SaveAllAsJpeg, as imagens utilizadas no mtodo SayBitmap devem ser obrigatriamente
Sintaxe
TMSPrinter(): SaveAsHTML ( < cFile>, [ aRange] ) --> lOk
Parmetros
Nome cFile aRange Tipo Caracter Vetor Descrio Indica o nome do arquivo. Indica o array, do tipo caracter, que contm as pginas que sero salvas. Obrigatrio X Referncia
Retorno lOk
(logico) Retorna verdadeiro (.T.), se o relatrio for salvo com sucesso; caso contrrio, retornar falso (.F.).
Observaes
Importante O mtodo SaveAsHTML() no foi implementado para ser executado em Jobs.
Sintaxe
TMSPrinter(): SaveAsODF ( < cFile>, [ aRange] ) --> lOk
Parmetros
Nome cFile aRange Tipo Caracter Vetor Descrio Indica o nome do arquivo. Indica o array, do tipo caracter, que contm as pginas que sero salvas. Obrigatrio X Referncia
Retorno lOk
(logico) Retorna verdadeiro (.T.) ser o relatrio for salvo com sucesso; caso contrrio, retornar falso (.F.).
Say
Cria um objeto do tipo texto.
Sintaxe
TMSPrinter(): Say ( [ nRow], [ nCol], [ cText], [ oFont], [ nWidth], [ nClrText], [ uParam7], [ nAlign] ) -->
Parmetros
Nome nRow Tipo Numrico Descrio Indica a coordenada vertical em pixels ou caracteres. Indica a coordenada horizontal em pixels ou caracteres. Indica o texto que ser impresso. Indica o objeto do tipo TFont utilizado para definir as caractersticas da fonte aplicada na exibio do contedo do controle visual. Indica a largura em pixels do objeto. Indica a cor do texto do objeto. Mantido por compatibilidade, caso informado deve ser NIL. Indica o alinhamento do texto :0 - (Padro) Alinhado esquerda.1 Alinhado direita.2 - Centraliza o texto. Obrigatrio Referncia
nCol
Numrico
cText oFont
Caracter Objeto
nAlign
Numrico
Sintaxe
TMSPrinter(): SayBitmap ( [ nRow], [ nCol], [ cBitmap], [ nWidth], [ nHeight], [ uParam6], [ uParam7] ) -->
Parmetros
Nome nRow Tipo Numrico Descrio Indica a coordenada vertical em pixels ou caracteres. Indica a coordenada horizontal em pixels ou caracteres. Indica o diretrio e o nome, com extenso BMP (Bitmap), da imagem. Indica a largura em pixels do objeto. Indica a altura em pixels do objeto. Compatibilidade. Compatibilidade. Obrigatrio Referncia
nCol
Numrico
cBitmap
Caracter
Observaes
A imagem ajustada para preencher todo o espao definido entre a altura e largura do objeto.
Sintaxe
TMSPrinter(): SetCurrentPrinterInUse ( ) -->
SetFont
SetFont
Define a fonte padro do relatrio.
Sintaxe
TMSPrinter(): SetFont ( < oFont> ) -->
Parmetros
Nome oFont Tipo Objeto Descrio Indica o objeto do tipo TFont utilizado para definir as caractersticas da fonte aplicada na exibio do contedo do controle visual. Obrigatrio X Referncia
Sintaxe
TMSPrinter(): SetLandscape ( ) -->
Sintaxe
TMSPrinter(): SetPage ( < nPage> ) -->
Parmetros
Nome nPage Tipo Numrico Descrio Indica o nmero da pgina que ser apresentada. Obrigatrio X Referncia
Exemplos oPrint:SetPage( 10 )
SetPaperSize
SetPaperSize
Define o tamanho que ser adotado pela pgina que ser impressa.
Sintaxe
TMSPrinter(): SetPaperSize ( [ nTamanho] ) -->
Parmetros
Nome nTamanho Tipo Numrico Descrio Indica o tamanho que ser utilizado no papel. Para mais informaes dos tipos de tamanho disponveis, consulte a rea Observaes. Obrigatrio Referncia
Observaes
//---------------------------------------------------------------------------------------------------// // Tamanho de folhas possveis para o mtodo tmsprinter:setPaperSize() //---------------------------------------------------------------------------------------------------// #define DMPAPER_LETTER 1 // Letter 8 1/2 x 11 in #define DMPAPER_LETTERSMALL 2 // Letter Small 8 1/2 x 11 in #define DMPAPER_TABLOID 3 // Tabloid 11 x 17 in #define DMPAPER_LEDGER 4 // Ledger 17 x 11 in #define DMPAPER_LEGAL 5 // Legal 8 1/2 x 14 in #define DMPAPER_STATEMENT 6 // Statement 5 1/2 x 8 1/2 in
#define DMPAPER_EXECUTIVE 7 // Executive 7 1/4 x 10 1/2 in #define DMPAPER_A3 8 // A3 297 x 420 mm #define DMPAPER_A4 9 // A4 210 x 297 mm #define DMPAPER_A4SMALL 10 // A4 Small 210 x 297 mm #define DMPAPER_A5 11 // A5 148 x 210 mm #define DMPAPER_B4 12 // B4 250 x 354 #define DMPAPER_B5 13 // B5 182 x 257 mm #define DMPAPER_FOLIO 14 // Folio 8 1/2 x 13 in #define DMPAPER_QUARTO 15 // Quarto 215 x 275 mm #define DMPAPER_10X14 16 // 10x14 in #define DMPAPER_11X17 17 // 11x17 in #define DMPAPER_NOTE 18 // Note 8 1/2 x 11 in #define DMPAPER_ENV_9 19 // Envelope #9 3 7/8 x 8 7/8 #define DMPAPER_ENV_10 20 // Envelope #10 4 1/8 x 9 1/2 #define DMPAPER_ENV_11 21 // Envelope #11 4 1/2 x 10 3/8 #define DMPAPER_ENV_12 22 // Envelope #12 4 \276 x 11 #define DMPAPER_ENV_14 23 // Envelope #14 5 x 11 1/2 #define DMPAPER_CSHEET 24 // C size sheet #define DMPAPER_DSHEET 25
// D size sheet #define DMPAPER_ESHEET 26 // E size sheet #define DMPAPER_ENV_DL 27 // Envelope DL 110 x 220mm #define DMPAPER_ENV_C5 28 // Envelope C5 162 x 229 mm #define DMPAPER_ENV_C3 29 // Envelope C3 324 x 458 mm #define DMPAPER_ENV_C4 30 // Envelope C4 229 x 324 mm #define DMPAPER_ENV_C6 31 // Envelope C6 114 x 162 mm #define DMPAPER_ENV_C65 32 // Envelope C65 114 x 229 mm #define DMPAPER_ENV_B4 33 // Envelope B4 250 x 353 mm #define DMPAPER_ENV_B5 34 // Envelope B5 176 x 250 mm #define DMPAPER_ENV_B6 35 // Envelope B6 176 x 125 mm #define DMPAPER_ENV_ITALY 36 // Envelope 110 x 230 mm #define DMPAPER_ENV_MONARCH 37 // Envelope Monarch 3.875 x 7.5 in #define DMPAPER_ENV_PERSONAL 38 // 6 3/4 Envelope 3 5/8 x 6 1/2 in #define DMPAPER_FANFOLD_US 39 // US Std Fanfold 14 7/8 x 11 in #define DMPAPER_FANFOLD_STD_GERMAN 40 // German Std Fanfold 8 1/2 x 12 in #define DMPAPER_FANFOLD_LGL_GERMAN 41 // German Legal Fanfold 8 1/2 x 13 in
Letter 8 1/2 x 11 inuser function tstMsPrintLocal aCoords1 := { 1400, 220, 2000, 1000 }Local cStartPath:= GetSrvProfString( "Startpath", "" )Local x := 0Local oFont1 := TFont():New( "Times New Roman",,8,,.f.,,,,, .f. )//Times New RomanLocal oFont2 := TFont():New( "Times New Roman",,10,,.f.,,,,, .f. )Local oFont3 := TFont():New( "Times New Roman",,7,,.f.,,,,, .f. ) Local oFont4 := TFont():New( "Times New Roman",,9,,.f.,,,,, .f. )Local oFont5 := TFont():New( "Times New Roman",,16,,.f.,,,,, .f. )Local oFont6 := TFont():New( "Times New Roman",,18,,.f.,,,,, .f. )Local oFont7 := TFont():New( "Times New Roman",,20,,.f.,,,,, .f. )Local oFont8 := TFont():New( "Times New Roman",,22,,.f.,,,,, .f. )Local oPrn := TMSPrinter():New( "tMsPrinter - Teste" )Local oBrush := TBrush():New( "", CLR_HBLUE )Local lPreview:= .T.Private oMainWnd:= NilPrivate cAcesso := ""lPreview := msgYesNO( "Visualizar antes?" )If !oPrn:IsPrinterActive() Alert( "Selecione a impressora padrao" ) oPrn:setUp()Else oPrn:setUp()EndifIf Right(cStartPath,1) <> "\" cStartPath += Iif( GetRemoteType() == 2, "/", "\" )Endif@ 000,000 To 768, 1024 Dialog oMainWnd Title "Teste tMsPrinter"oPrn:startPage()oPrn:setPortrait()o Prn:setPaperSize( DMPAPER_LETTER )oPrn:Say( 0, 0, " ", oFont1, 100 )oPrn:Say ( 0280, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_8", oFont1 )oPrn:Say ( 0480, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_10", oFont2 )oPrn:Say ( 0680, 220, "TESTE DE IMPRESSAO ***fonte 04
Courier_New_de_7", oFont3 )oPrn:Say ( 0880, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_9", oFont4 )oPrn:Say ( 1080, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_16", oFont5 )oPrn:Say ( 1280, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_18", oFont6 )oPrn:Say ( 1480, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_20", oFont7 )oPrn:Say ( 1680, 220, "TESTE DE IMPRESSAO ***fonte 04 Courier_New_de_22", oFont8 )oPrn:EndPage()oPrn:End()If lPreview oPrn:Preview()Else oPrn:Print()EndifActivate Dialog oMainWnd CenteredReturn Nil SetPortrait
SetPortrait
Define a orientao do relatrio como retrato (Portrait).
Sintaxe
TMSPrinter(): SetPortrait ( ) -->
Sintaxe
TMSPrinter(): Setup ( ) -->
Sintaxe
TMSPrinter(): StartPage ( ) -->
Observaes
Para utilizar imagem nesta classe, atravs do mtodo SayBitmap, necessrio que o formato seja BMP (Bitmap). A classe no suporta outro tipo de formato para impresso de imagem.
A classe TMSPrinter utiliza a classe TFont para definir a fonte que ser utilizada no relatrio. Porm, a classe TMSPrinter tem uma limitao de fontes que podem ser utilizadas. A seguir, observe os tipos de fontes que so homologadas: Courier New
Arial Times New Roman Helvetica Microsoft Sans Serif Verdana Tahoma Andalus Century Cordia New
Exemplos #include "TOTVS.CH"User Function TMSPrinter()Private cAcesso := Repl(" ",10) DEFINE DIALOG oMainWnd TITLE "Exemplo TMSPrinter" FROM 180,180 TO 550,700 PIXEL // Monta objeto para impresso oPrint := TMSPrinter():New("Exemplo TMSPrinter") oPrint:SetPortrait() oPrint:Setup() oPrint:StartPage() oFont1 := TFont():New('Courier new',,-18,.T.) oPrint:Say( 10,10,"Texto para visualizao",oFont1,1400,CLR_HRED ) oPrint:SayBitmap( 100,200,"C:\Dir\Totvs.bmp",400,400 ) oPrint:Line( 130,10,130,900 ) oPrint:Box( 130,10,600,900 ) oBrush1 := TBrush():New( , CLR_YELLOW ) oPrint:FillRect( {100, 10, 200, 200}, oBrush1 ) oBrush1:End() // Visualiza a impresso oPrint:EndPage() oPrint:Preview() ACTIVATE DIALOG oMainWnd CENTERED Return Preview Exemplo da classe TMSPrinter