Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...


Insere um retângulo no relatório.


FWMsPrinter(): Box ( < nRow>, < nCol>, < nBottom>, < nRight>, [ cPixel] ) -->



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoIndica a coordenada vertical em pixels.X
nColNuméricoIndica a coordenada horizontal em pixels.X
nBottomNuméricoIndica a posição do objeto em relação ao rodapé.X
nRightNuméricoIndica a posição do objeto à direita.X
cPixelCaracterExpessura da linha em pixels. Default é "-2"


oPrinter:Box( 130, 10, 600, 900, "-4")



Define cancelamento do relatorio.


FWMsPrinter(): Cancel ( ) -->



oPrinter:Cancel()



Retorna estado do relatório.


FWMsPrinter(): Canceled ( ) --> lRet


lRet
    ()
  • Retorna se o relatório foi cancelado pelo método Cancel().

oPrinter:Canceled()



Devolve por referência, o valor convertido em pixels de uma coluna e uma linha.


FWMsPrinter(): Cmtr2Pix ( [ nLinha], [ nCol] ) -->



NomeTipoDescriçãoObrigatórioReferência
nLinhaNuméricoIndica a linha que será calculada.

nColNuméricoIndica a coluna que será calculada.


nCol1 := 10nRow1 := 10oPrinter:Cmtr2Pix( nCol1, nRow1)//Resultado//nCol1  := 1107.08955224//nRow1 := 1107.26600985



Imprime código de barra no padrão EAN13

Obs: A utilização deste método não é homologado para a impressão de relatórios em ambientes que utilizam sistema operacional com o recurso de "Zoom" ou "Lupa" ativo.


* Disponível apenas para a impressão na posição horizontal.

FWMsPrinter():EAN13(<nRow>, <nCol>, <cCodeBar>, <nTotalWidth>, <nHeight>)



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoPosição relativa ao topoX
nColNuméricoPosição relativa à esquerdaX
cCodeBarCaracterTexto a ser transformado em código de barraX
nTotalWidthNuméricoLargura total do código de barrasX
nHeightNuméricoAltura da BarraX


Método disponível a partir da Lib do Protheus com label 20161010.
Necessário atualizar a versão da TOTVS Printer (printer.exe) para 1.6.5 ou superior.
Bloco de código
languagetext
linenumberstrue
#INCLUDE "RPTDEF.CH"
#INCLUDE "FWPrintSetup.ch"
#INCLUDE "protheus.ch"

User Function MyCod128()

Local lAdjustToLegacy := .F.
Local lDisableSetup := .T.
Local cLocal := "\spool"
Local oPrinter

oPrinter := FWMSPrinter():New("exemplo.rel", IMP_PDF, lAdjustToLegacy,cLocal, lDisableSetup, , , , , , .F., )

oPrinter:Say( 20, 30, "Código de barras EAN13:")

oPrinter:Ean13(180/*nRow*/ ,280/*nCol*/,"876543210987"/*cCode*/,100/*nWidth*/,95/*nHeigth*/)
oPrinter:Ean13(230/*nRow*/ ,450/*nCol*/,"987654321098"/*cCode*/,100/*nWidth*/,45/*nHeigth*/)
oPrinter:Ean13(150/*nRow*/ ,30 /*nCol*/,"098765432109"/*cCode*/,186/*nWidth*/,95/*nHeigth*/)
oPrinter:Ean13(300/*nRow*/ ,30 /*nCol*/,"123456789012"/*cCode*/,200/*nWidth*/,95/*nHeigth*/)
oPrinter:Ean13(300/*nRow*/ ,300/*nCol*/,"900223631103"/*cCode*/,250/*nWidth*/,95/*nHeigth*/)

oPrinter:Setup()
if oPrinter:nModalResult == PD_OK
oPrinter:Preview()
EndIf

Return




Imprime código de barra no padrão Code128

Obs: A utilização deste metodo não é homologado para a impressão de relatorios em ambientes que utilizam sistema operacional com o recurso de "Zoom" ou "Lupa" ativo.


FWMsPrinter():Code128(<nRow>, <nCol>, <cCodeBar>, <nWidth>, <nHeight>, [lSay], [oFont], [nTotalWidth]) 



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoPosição relativa ao topoX
nColNuméricoPosição relativa à esquerdaX
cCodeBarCaracterTexto a ser transformado em código de barraX
nWidthNuméricoLargura da BarraX
nHeightNuméricoAltura da BarraX
lSayLógicoIndica se deve colocar say com o conteúdo em baixo do código de barras

oFontObjetoObjeto TFont que fornecerá o oFont:nHeight para definição do Say

nTotalWidthNuméricoIndica largura total do código de barras (invalida o quarto parâmetro)


Método disponível a partir da Lib do Protheus com label 20161010.
Necessário atualizar a versão da TOTVS Printer (printer.exe) para 1.6.5 ou superior.

Bloco de código
languagetext
linenumberstrue
#INCLUDE "RPTDEF.CH"
#INCLUDE "FWPrintSetup.ch"
#INCLUDE "protheus.ch"

User Function MyCod128()

Local lAdjustToLegacy := .F.
Local lDisableSetup := .T.
Local cLocal := "\spool"
Local oPrinter

oPrinter := FWMSPrinter():New("exemplo.rel", IMP_PDF, lAdjustToLegacy,cLocal, lDisableSetup, , , , , , .F., )

oPrinter:Say( 450, 30, "Código de barras CODE128:")

oPrinter:Code128(470/*nRow*/ ,30/*nCol*/, "123456789011010"/*cCode*/,1/*nWidth*/,50/*nHeigth*/,.T./*lSay*/,,400)
oPrinter:Code128(580/*nRow*/ ,30/*nCol*/, "12345678901"/*cCode*/,2/*nWidth*/,30/*nHeigth*/,.F./*lSay*/)
oPrinter:Code128(650/*nRow*/ ,30/*nCol*/, "123456789011010"/*cCode*/,3/*nWidth*/,40/*nHeigth*/,.T./*lSay*/)
oPrinter:Code128(720/*nRow*/ ,30/*nCol*/, "12345678901"/*cCode*/,4/*nWidth*/,95/*nHeigth*/,.T./*lSay*/,,100)

oPrinter:Setup()
if oPrinter:nModalResult == PD_OK
oPrinter:Preview()
EndIf

Return




Imprime código de barra no padrão Code128C

Observações:

  • A utilização deste método não é homologado para a impressão de relatórios em ambientes que utilizam sistema operacional com o recurso de "Zoom" ou "Lupa" ativo.
  • Esse método trabalha sempre com caracteres em número par (1234, 457985), caso o parâmetro cCodeBar seja enviado com caracteres em quantidade ímpar (15782, 12345), será gerado um zero a mais no código de barras. Portanto fica na responsabilidade do desenvolvedor enviar ou não um zero no começo ou no final da string para compensar a quantidade ímpar de caracteres, exemplo "015782" ou "157820".

FWMsPrinter(): Code128C ( < nRow>, < nCol>, < cCodeBar>, < nSizeBar> ) -->



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoPosição relativa ao topoX
nColNuméricoPosição relativa à esquerdaX
cCodeBarCaracterTexto a ser transformado em código de barraX
nSizeBarNuméricoTamanho da fonte (código de barra)X



Bloco de código
languagetext
linenumberstrue
#Include "PROTHEUS.CH"
#Include "RPTDEF.CH" 
#INCLUDE "TBICONN.CH"

User Function Code128C()
Local oPrinter  := Nil

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"
    oPrinter      := FWMSPrinter():New('teste',6,.F.,,.T.,,,,,.F.)
    oPrinter:Setup()
    oPrinter:setDevice(IMP_PDF)
    oPrinter:cPathPDF :="C:\"
    oPrinter:Say(10,0,"Teste para Code128C")	
    oPrinter:Code128c(100, 10, '1234567', 50)       
    oPrinter:EndPage()
    oPrinter:Preview()
    FreeObj(oPrinter)
    oPrinter := Nil
RESET ENVIRONMENT

Return



FwMsBar



Imprime codigo de barras suportados pela função MsBar().

Obs: A utilização deste metodo não é homologado para a impressão de relatorios em ambientes que utilizam sistema operacional com o recurso de "Zoom" ou "Lupa" ativo.

 

Sintaxe

FWMsPrinter():FWMsBar(cTypeBar,nRow,nCol,cCode,oPrint,lCheck,Color,lHorz, nWidth,nHeigth,lBanner,cFont,cMode,lPrint,nPFWidth,nPFHeigth,lCmtr2Pix)-->

 

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cTypeBar

Caracter

Código do tipo do código de barras:

"EAN13", "EAN8", "UPCA" , "SUP5" , "CODE128",

"INT25","MAT25,"IND25","CODABAR","CODE3_9"

X


nRow

Numérico

Posição relativa à esquerda

X


nCol

Numérico

Posição relativa ao topo

X


cCode

Caracter

Texto a ser transformado em código de barra

X


oPrint

Objeto

Objeto Printer



lCheck

Lógico

Se calcula o digito de controle. Defautl .T.



Color

Numérico

Numero da Cor, utilize a "color.ch". Default CLR_BLACK



lHorz

Lógico

Se imprime na Horizontal. Default .T.



nWidth

Numérico

Numero do Tamanho da barra. Default 0.025



nHeigth

Numérico

Numero da Altura da barra. Default 1.5



lBanner

Lógico

Se imprime a linha com o código embaixo da barra. Default .T.



cFont

Caracter

Nome do Fonte a ser utilizado. Defautl "Arial"



cMode

Caracter

Modo do codigo de barras CO. Default ""



lPrint

Lógico

Se executa o método Print() de oPrinter pela MsBar. Default .T.



nPFWidth

Numérico

Número do índice de ajuste da largura da fonte. Default 1



nPFHeigth

Numérico

Número do índice de ajuste da altura da fonte. Default 1



lCmtr2Pix

Lógico

Utiliza o método Cmtr2Pix() do objeto Printer.Default .T.



 

Observações

 Este método utiliza-se da mesma classe utilizada pela MsBar().


Aviso
titleImportante

O valor mínimo para o parâmetro nWidth é de  0.0164. Valores abaixo deste farão com que a classe não imprima o código de barras.


 

Exemplos

Bloco de código
languagetext
linenumberstrue
#INCLUDE "RPTDEF.CH"
#INCLUDE "FWPrintSetup.ch"
#INCLUDE "protheus.ch"

User Function totvsprt()

Local lAdjustToLegacy := .F.
Local lDisableSetup  := .T.
Local oPrinter
Local cLocal          := "\spool"
Local cCodINt25 := "34190184239878442204400130920002152710000053475"
Local cCodEAN :=      "123456789012"

oPrinter := FWMSPrinter():New("exemplo.rel", IMP_PDF, lAdjustToLegacy,cLocal, lDisableSetup, , , , , , .F., )
oPrinter:FWMSBAR("INT25" /*cTypeBar*/,1/*nRow*/ ,1/*nCol*/, cCodINt25/*cCode*/,oPrinter/*oPrint*/,.T./*lCheck*/,/*Color*/,.T./*lHorz*/,0.02/*nWidth*/,0.8/*nHeigth*/,.T./*lBanner*/,"Arial"/*cFont*/,NIL/*cMode*/,.F./*lPrint*/,2/*nPFWidth*/,2/*nPFHeigth*/,.F./*lCmtr2Pix*/
oPrinter:FWMSBAR("EAN13" /*cTypeBar*/,5/*nRow*/ ,1/*nCol*/ ,cCodEAN  /*cCode*/,oPrinter/*oPrint*/,/*lCheck*/,/*Color*/,/*lHorz*/, /*nWidth*/,/*nHeigth*/,/*lBanner*/,/*cFont*/,/*cMode*/,.F./*lPrint*/,/*nPFWidth*/,/*nPFHeigth*/,/*lCmtr2Pix*/)
oPrinter:Setup()

if oPrinter:nModalResult == PD_OK
 oPrinter:Preview()
EndIf

Return


DataMatrix



Imprime codigo de barra no padrão DataMatrix

Obs: A utilização deste metodo não é homologado para a impressão de relatorios em ambientes que utilizam sistema operacional com o recurso de "Zoom" ou "Lupa" ativo.


FWMsPrinter(): DataMatrix ( < nCol>, < nRow>, < cCodeBar>, < nSizeBar> ) -->



NomeTipoDescriçãoObrigatórioReferência
nColNuméricoPosição relativa à esquerdaX
nRowNuméricoPosição relativa ao topoX
cCodeBarCaracterTexto a ser codificadoX
nSizeBarNuméricoTamanho do codigo de barrasX


Esta opção esta disponível para TotvsPrinter.exe em versões superiores à 1.3.0.  Para confirmação da versão utilize na linha de comando: totvsprinter -v.

O código é gerado com suas dimensões naturais (que são os valores mínimos sugeridos pelo motor de geração de código de barras 2D), que irão variar de acordo com a quantidade de caracteres codificados.

No entanto, é importante ressaltar que até a versão 1.7.1 do agente TOTVSPrinter a imagem do código de barras não podia ser redimensionada para dimensões inferiores ao natural, porque poderia ficar corrompida, comprometendo a sua leitura. Sendo assim, era possível apenas passar um tamanho superior para que a imagem fosse escalada corretamente. Entretanto, a partir da versão 1.7.2 essa limitação foi removida, permitindo assim que as dimensões da imagem gerada possam ser escaladas para um tamanho inferior ao natural para que seja possível adequar-se a um espaço limitado e fixo, por exemplo. Assim, ao usar esse recurso, é preciso certificar-se de que, após o redimensionamento, um leitor ainda consegue interpretar corretamente as informações codificadas.

Os códigos de barras 2D possuem os seguintes limites da quantidade de caracteres:

  • Data Matrix: No máximo 1200 caracteres
  • QR Code: Aproximadamente 2930 caracteres


Bloco de código
languagetext
linenumberstrue
#Include "PROTHEUS.CH"
#Include "RPTDEF.CH" 
#INCLUDE "TBICONN.CH"

User Function DataMatrix()
Local oPrinter   

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"
    oPrinter      := FWMSPrinter():New('teste',6,.F.,,.T.,,,,,.F.)
    oPrinter:Setup()
    oPrinter:setDevice(IMP_PDF)
    oPrinter:cPathPDF :="C:\"
    oPrinter:Say(180,0,"Teste para DataMatrix")
    oPrinter:DataMatrix(0,300,"DataMatrix gerado com sucesso", 100)
    oPrinter:EndPage()
    oPrinter:Preview()
    FreeObj(oPrinter)
    oPrinter := Nil
RESET ENVIRONMENT

Return



Insere uma elipse no relatório.


FWMsPrinter(): Ellipse ( < nLeft>, < nTop>, < nBottom>, < nRigth>, [ nColorIn], [ nColorOut], [ nLineType], [ cPixel] ) -->



NomeTipoDescriçãoObrigatórioReferência
nLeftNuméricoIndica a coordenada horizontal em pixels.X
nTopNuméricoIndica a coordenada ao topo em pixels.X
nBottomNuméricoIndica a posição do objeto em relação ao rodapé.X
nRigthNuméricoIndica a posição do objeto à direita.X
nColorInNuméricoCor do preenchimento do elipse. Default CLR_BLACK.

nColorOutNuméricoCor da linha do elipse. Default CLR_BLACK

nLineTypeNuméricoEstilo da linha. Default 0. Para mais informações sobre os tipos disponíveis, consulte a área Observações.

cPixelCaracterPixel no formato caractere exemplo “02”, caso necessário us de decimais utilize “-2” para 0,2 Pixels.


Tabelas com as opções de linha disponíveis.

  • 0 - Solid Line;
  • 1 - Dash Line;
  • 2 - Dash Dot Line;
  • 3 - Dash Dot Dot Line;
  • 4 - Dot Line;
  • 5 - Custom Dash Line

oPrinter:Ellipse( 10, 10, 100, 100, CLR_BLACK, CLR_BLACK, 0, “-2”)



Indica o fim da página.


FWMsPrinter(): EndPage ( ) -->



oPrinter:EndPage()



Cria um objeto do tipo retângulo, que pode ser preenchido com uma determinada cor.


FWMsPrinter(): FillRect ( < aCoords>, [ oBrush], [ cPixel] ) -->



NomeTipoDescriçãoObrigatórioReferência
aCoordsVetorVetor de coordenadas {nTop,nLeft,nBottom,nRight}X
oBrushObjetoIndica o objeto do tipo TBrush utilizado para definir a cor de preenchimento do shape e responsável pelo preenchimento do retângulo.

cPixelCaracterExpessura da linha em pixels. Default é "-2"



oBrush1 := TBrush():New( , CLR_YELLOW)oPrinter:Fillrect( {100, 10, 200, 200 }, oBrush1, "-2")



Retorna a largura dos caracteres de uma determinada fonte


FWMsPrinter(): GetFontWidths ( [ oFont], [ @aFontSize] ) --> aRet



NomeTipoDescriçãoObrigatórioReferência
oFontObjetoObjeto do tipo fonte

aFontSizeArray of RecordVetor passado por referencia que recebera a lista de largura da fonte selecionada
X


aRet
    ()
  • Vetor passado por referencia que recebera a lista de largura da fonte selecionada

null

Retorna a orientação (Retrato ou Paisagem) do objeto.


FWMsPrinter(): GetOrientation ( ) --> nOrientation

nOrientation
    ()
  • Retorna orientação do relatório. Para mais informações sobre os retornos que podem ser apresentados, consulte a área Observações.

Tabela com os valores de retorno.

  • 0 - Ainda não definido pelo usuário;
  • 1 - Portrait(retrato);
  • 2 - Landscape(paisagem)

oPrinter:GetOrientation()



Retorna a altura do texto, conforme as características da fonte definida.


FWMsPrinter(): GetTextHeight ( < cTexto>, < oFont> ) --> nHeight



NomeTipoDescriçãoObrigatórioReferência
cTextoCaracterIndica o texto que será calculado.X
oFontObjetoIndica o objeto do tipo TFont, utilizado para definir as características da fonte e realizar o cálculo.X


nHeight
    ()
  • Retorna a altura do texto.


oFont1 := TFont():New( 'Courier New', , -18, .T.)nHeight := oPrinter:GetTextheight( "Teste", oFont1)



Retorna a largura do texto, conforme as características da fonte definida.


FWMsPrinter(): GetTextWidth ( < cTexto> , < oFont> , <nType> ) --> nWidth



NomeTipoDescriçãoObrigatórioReferência
cTextoCaracterIndica o texto que será calculado.X
oFontObjetoIndica o objeto do tipo TFont, utilizado para definir as características da fonte e realizar o cálculo.X
nTypeNuméricoInforma o tipo de cálculo [1=GetFontPixWidths | 2=CalcFieldSize | 0=Default]


nWidth
    ()
  • Retorna a largura do texto.

O cálculo da largura do texto é feito com base no S.O., portanto diferentes SO's podem resultar em diferentes retornos, recomendamos efetuar testes com o parâmetro nType para verificar qual adequa-se melhor ao S.O. e sua implementação.

oFont1 := TFont():New( 'Courier New', , -18, .T.)nWidht := oPrinter:GetTextWidth( "Teste", oFont1,0)



Quando o tipo de impressão for PDF, retorna se o arquivo será exibido após a impressão.


FWMsPrinter(): GetViewPDF ( ) --> lViewPDF

lViewPDF
    (logico)
  • .T. para exibir o relatório após a impressão.

Este método estará disponível em pacote de lib, no qual o fonte FWMSPrinter.PRW tenha a data superior ou igual a 08/09/2011.

oPrinter:GetViewPDF()



Retorna se a impressora está ativa.


FWMsPrinter(): IsPrinterActive ( ) -->



oPrinter:IsPrinterActive()



Insere uma linha no relatório.


FWMsPrinter(): Line ( < nTop>, < nLeft>, < nBottom>, < nRight>, [ nColor], [ cPixel] ) -->



NomeTipoDescriçãoObrigatórioReferência
nTopNuméricoIndica a coordenada vertical em pixels.X
nLeftNuméricoIndica a coordenada horizontal em pixels.X
nBottomNuméricoIndica a posição do objeto ao rodapé.X
nRightNuméricoIndica a posição do objeto à direita.X
nColorNuméricoCor da linha. Default é 0

cPixelCaracterExpessura da linha em pixels. Default é "-2"




oPrinter:Line( 130, 10, 130, 900, "-4")



Retorna a resolução horizontal da impressora configurada.


FWMsPrinter(): nHorzRes ( ) --> nResult

nResult
    ()
  • Retorna a resolução horizontal da impressora configurada.


oPrinter:nHorzRes()



Retorno largura da página.


FWMsPrinter(): nHorzSize ( ) --> nHorzSize

nHorzSize
    ()
  • Largura da página

null

oPrinter:nHorzSize()



Retorna a resolução vertical, em pixels, da impressora configurada.


FWMsPrinter(): nLogPixelX ( ) --> nResult

nResult
    ()
  • Retorna a resolução vertical em pixels da impressora configurada.


oPrinter:nLogPixelX()



Retorna a resolução horizontal, em pixels, da impressora configurada.


FWMsPrinter(): nLogPixelY ( ) --> nResult

nResult
    ()
  • Retorna a resolução horizontal em pixels da impressora configurada.


oPrinter:nLogPixelY()



Retorna a resolução vertical da impressora configurada.


FWMsPrinter(): nVertRes ( ) --> nResult

nResult
    ()
  • Retorna a resolução vertical da impressora configurada.


oPrinter:nVertRes()



Retorno altura da página.


FWMsPrinter(): nVertSize ( ) --> nVertSize

nVertSize
    ()
  • Altura da página.


oPrinter:nVertSize()



Retorna o tamanho do papel.


FWMsPrinter(): PaperSize ( ) --> nPaperSize

nPaperSize
    ()
  • Tamanho do papel.

null

oPrinter:PaperSize()



Envia o relatório para impressora.


FWMsPrinter(): Preview ( ) -->



oPrinter:Preview()



Envia o relatório para impressora.


FWMsPrinter(): Print ( ) -->



oPrinter:Print()



Retorna o nome da impressora.


FWMsPrinter(): PrinterName ( ) --> cImpressora

cImpressora
    (caracter)
  • Nome da impressora.

A imagem é ajustada para preencher todo o espaço definido entre a altura e largura do objeto.


oPrinter:PrinterName()



Imprime codigo de barra no padrão QRCode


FWMsPrinter(): QRCode ( < nRow>, < nCol>, < cCodeBar>, < nSizeBar> ) -->



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoPosição relativa ao topoX
nColNuméricoPosição relativa à esquerdaX
cCodeBarCaracterTexto a ser codificadoX
nSizeBarNuméricoTamanho do codigo de barrasX



 Esta opção esta disponível para TotvsPrinter.exe em versões superiores à 1.3.0.  Para confirmação da versão utilize na linha de comando:totvsprinter -v.

 O código é gerado com suas dimensões naturais (que são os valores mínimos sugeridos pelo motor de geração de código de barras 2D), que irão variar de acordo com a quantidade de caracteres codificados.

No entanto, é importante ressaltar que até a versão 1.7.1 do agente TOTVSPrinter a imagem do código de barras não podia ser redimensionada para dimensões inferiores ao natural, porque poderia ficar corrompida, comprometendo a sua leitura. Sendo assim, era possível apenas passar um tamanho superior para que a imagem fosse escalada corretamente. Entretanto, a partir da versão 1.7.2 essa limitação foi removida, permitindo assim que as dimensões da imagem gerada possam ser escaladas para um tamanho inferior ao natural para que seja possível adequar-se a um espaço limitado e fixo, por exemplo. Assim, ao usar esse recurso, é preciso certificar-se de que, após o redimensionamento, um leitor ainda consegue interpretar corretamente as informações codificadas.

Os códigos de barras 2D possuem os seguintes limites da quantidade de caracteres:

  • Data Matrix: No máximo 1200 caracteres
  • QR Code: Aproximadamente 2930 caracteres



Bloco de código
languagetext
linenumberstrue
#Include "PROTHEUS.CH"
#Include "RPTDEF.CH"
#INCLUDE "TBICONN.CH"

User Function QRCode()

Local oPrinter

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"

oPrinter := FWMSPrinter():New('teste',6,.F.,,.T.,,,,,.F.)
oPrinter:Setup()
oPrinter:setDevice(IMP_PDF)
oPrinter:cPathPDF :="C:\"

oPrinter:QRCode(150,150,"QR Code gerado com sucesso", 100)

oPrinter:EndPage()
oPrinter:Preview()
FreeObj(oPrinter)
oPrinter := Nil

RESET ENVIRONMENT

Return




Insere um texto no relatório.


FWMsPrinter(): Say ( < nRow>, < nCol>, < cText>, [ oFont], [ nWidth], [ nClrText], [ nAngle] ) -->



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoIndica a coordenada vertical em pixels ou caracteres.X
nColNuméricoIndica a coordenada horizontal em pixels ou caracteres.X
cTextCaracterTexto a ser impresso.X
oFontObjetoIndica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.

nWidthNuloIndica a largura em pixels do objeto.

nClrTextNuméricoIndica a cor do texto do objeto.

nAngleNuméricoÂngulo de rotação do texto.



A imagem é ajustada para preencher todo o espaço definido entre a altura e largura do objeto.


oFont1 := TFont():New( "Courier New", , -18, .T.)oPrinter:Say( 10, 10, "texto para visualização", oFont1, 1400, CLR_HRED)



Cria um objeto do tipo texto, permitindo alinhamento Horizontal e Vertical.


FWMsPrinter(): SayAlign ( < nRow>, < nCol>, < cText>, [ oFont], [ nWidth], [ nHeigth], [ nClrText], [ nAlignHorz], [ nAlignVert ] ) -->



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoIndica a coordenada vertical em pixels ou caracteres.X
nColNuméricoIndica a coordenada horizontal em pixels ou caracteres.X
cTextCaracterIndica o texto que será impresso.X
oFontObjetoIndica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.

nWidthNuméricoIndica a largura em pixels do objeto.

nHeigthNuméricoIndica a altura em pixels do objeto.

nClrTextNuméricoIndica a cor do texto do objeto.

nAlignHorzNuméricoAlinhamento Horizontal. Para mais informações sobre os alinhamentos disponíveis, consulte a área Observações.

nAlignVertNuméricoAlinhamento Vertical. Para mais informações sobre os alinhamentos disponíveis, consulte a área Observações.



Tabela de códigos de alinhamento horizontal.

  • 0 - Alinhamento à esquerda;
  • 1 - Alinhamento à direita;
  • 2 - Alinhamento centralizado
  • 3 - Alinhamento justificado. (Opção disponível somente a partir da versão 1.6.2 da TOTVS Printer.)


Tabela de códigos de alinhamento vertical.

  • 0 - Alinhamento centralizado;
  • 1 - Alinhamento superior;
  • 2 - Alinhamento inferior

oFont1 := TFont():New('Courier new',,-18,.T.)oPrinter:SayAlign( 10,10,"Texto para visualização",oFont1,1400, 200, CLR_HRED, 0, 2 )



Insere uma imagem no relatório.


FWMsPrinter(): SayBitmap ( < nRow>, < nCol>, < cBitmap>, [ nWidth], [ nHeight] ) -->



NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoIndica a coordenada vertical em pixels ou caracteres.X
nColNuméricoIndica a coordenada horizontal em pixels ou caracteres.X
cBitmapCaracterIndica o diretório e o nome, com extensão BMP (Bitmap), da imagem.X
nWidthNuméricoIndica a largura em pixels do objeto. Default é 100.

nHeightNuméricoIndica a altura em pixels do objeto. Default é 100.



A imagem é ajustada para preencher todo o espaço definido entre a altura e largura do objeto.

A impressão de imagens maiores que 1MB e a possibilidade de utilizar arquivos locais ou compartilhados via rede estarão disponiveis à partir da totvsPrinter versão 1.5.5.

Se o relatório for executado via SERVIDOR, essa máquina deverá ter acesso aos arquivos, caso as imagens estejam no drive local da estação onde serão executadas.

oPrinter:SayBitmap( 100, 200, "C:\Dir\totvs.bmp", 800, 800)
oPrinter:SayBitMap( 100, 200, "\\maquina\public\totvs.bmp", 2000, 2000) // Acesso a arquivos via rede.



Seleciona o dispositivo de impressao


FWMsPrinter(): SetDevice ( < nDevice> ) -->



NomeTipoDescriçãoObrigatórioReferência
nDeviceNuméricoTipos de Saída aceitos: IMP_SPOOL Envia para impressora. IMP_PDF Gera arquivo PDF à partir do relatório. Default é IMP_SPOOLX



null

oPrint:SetDevice(IMP_SPOOL)



Define o fonte a ser utilizado no relatório.


FWMsPrinter(): SetFont ( < oFont>, < lForceFont> ) -->



NomeTipoDescriçãoObrigatórioReferência
oFontObjetoObjeto do tipo TFont.X
lForceFontLógico

Se .T. atualiza a fonte do texto do relatório setada no TFont





Caso seja utilizado o método StartPage em seu relatório, o parâmetro lForceFont não é necessário.

oFont1 := TFont():New('Courier new',,-18,.T.)oPrinter:SetFont(oFont1, .T.)



Define a orientação do relatório como paisagem (Landscape).


FWMsPrinter(): SetLandscape ( ) -->



oPrinter:SetLandscape()



Define a margem do relatório.


FWMsPrinter(): SetMargin ( < nLeft>, < nTop>, < nRight>, < nBottom> ) -->



NomeTipoDescriçãoObrigatórioReferência
nLeftNuméricoMargem esquerdaX
nTopNuméricoMargem superiorX
nRightNuméricoMargem direitaX
nBottomNuméricoMargem inferiorX



null

oPrinter:SetMargin(10,10,10,10)



Define o tamanho que será adotado pela página a ser impressa.


FWMsPrinter(): SetPaperSize ( < nPaperSize>, [ nHeight], [ nWidth] ) -->



NomeTipoDescriçãoObrigatórioReferência
nPaperSizeNuméricoIndica o tamanho que será utilizado no papel. Para mais informações dos tipos de tamanho disponíveis, consulte a área Observações.X
nHeightNuméricoAltura da página.

nWidthNuméricoLargura da página.



  • 0 - Tamanho customizavel pelo usuario, informado em nHeight/nWidth. Aplicavel apenas em impressoes do tipo PDF.
  • 1 - Letter   216mm x 279mm  637 x 823
  • 3 - Tabloid  279mm x 432mm  823 x 1275
  • 7 - Executive 184mm x 267mm  543 x 788
  • 8 - A3     297mm x 420mm  876 x 1240
  • 9 - A4     210mm x 297mm  620 x 876

oPrinter:setPaperSize(9)



Define a orientação do relatório como retrato (Portrait).


FWMsPrinter(): SetPortrait ( ) -->



oPrinter:SetPortrait()



Define resolução do relatório.


FWMsPrinter(): SetResolution ( [ nResolution] ) -->



NomeTipoDescriçãoObrigatórioReferência
nResolutionNuméricoResolução do relatório. Default é 72



Atualmente a versão da Totvsprinter somente trabalha com o valor fixo de 72. Portanto não deve setar outro valor.

oPrinter:Resolution()



Apresenta a janela de configuração de impressoras.


FWMsPrinter(): Setup ( ) -->



oPrinter:Setup()



Quando o tipo de impressão for PDF, define se o arquivo será exibido após a impressão.


FWMsPrinter(): SetViewPDF ( < lViewPDF> ) -->



NomeTipoDescriçãoObrigatórioReferência
lViewPDFLógico.T. para exibir o PDF após a impressão.X



Este método estará disponível em pacote de lib, no qual o fonte FWMSPrinter.PRW tenha a data superior ou igual a 08/09/2011.

// para não apresentar o PDF após a geração do relatório.oPrinter:SetViewPDF(.F.)



Imprime codigo de barra no padrão Pdf417


FWMsPrinter(): pdf417( nRow, nCol, cCodeBar, nSizeBar,nHeight ) -->



Nome
Tipo
Descrição
Obrigatório
Referencia
nRowNuméricoPosição relativa ao topox
nColNuméricoPosição relativa à esquerdax
cCodBarCaracterTexto a ser codificadox
nSizeBarNuméricoTamanho do codigo de barrasx
nHeightNuméricoAltura da Barrax



oPrinter:pdf417( nRow, nCol, cCodeBar, nSizeBar,nHeight )



SetPassword

Informa uma senha para a geração e visualização do PDF

Sintaxe

FWMsPrinter(): SetPassword( < cPassword > )


Parâmetros
NomeTipoDescriçãoObrigatórioReferência
cPasswordCharacterSenha para a geração e visualização do PDFx


Observações

A senha funciona apenas para a geração de PDF (IMP_PDF), qualquer outro formato não acatará a senha, como SPOOL ou outros. Esse método está disponível na lib 20230807 ou superior.

Exemplos

oPrinter:SetPassword("Daniel")


GetStatusPrinter

Retorna o status da geração do PDF que a printer gerou

Sintaxe

FWMsPrinter(): GetStatusPrinter() → nStatusPrinter


Retorno

nStatusPrinter - numeric - Status da geração do PDF retornado pelo binário da printer


Observações

Esse status não deve ser utilizado para validar a geração bem sucedida do PDF. Esse método está disponível na lib 20231009 ou superior.

Exemplos

oPrinter:GetStatusPrinter()




Inicia a impressão de uma nova página


FWMsPrinter(): StartPage ( ) -->



oPrinter:StartPage()

...