cFilePrinterNome do arquivo de relatório a ser criado. Evite caracteres especiais no nome para reduzir problemas na geração e no uso do arquivo.
AdvPL GuiaFWMsPrinter():New( <cFilePrinter>, [nDevice], [lAdjustToLegacy], [cPathInServer], [lDisableSetup], ... )Cria um objeto para geração, visualização e impressão de relatórios gráficos em AdvPL.
FWMsPrinter é a classe de impressão do framework usada para montar relatórios gráficos, gerar arquivos PDF ou enviar o resultado para spool/impressora. Ela substitui o uso direto da TMSPrinter em novos desenvolvimentos e preserva opções de compatibilidade para relatórios legados. O fluxo mais comum é criar o objeto, configurar resolução, orientação, papel e margens, iniciar a página, desenhar textos, linhas, caixas ou imagens, finalizar a página e então visualizar, imprimir ou gerar o arquivo.
FWMsPrinter():New( <cFilePrinter>, [nDevice], [lAdjustToLegacy], [cPathInServer], [lDisableSetup], ... )cFilePrinterNome do arquivo de relatório a ser criado. Evite caracteres especiais no nome para reduzir problemas na geração e no uso do arquivo.
nDeviceTipo de saída. IMP_SPOOL envia para impressora/spool; IMP_PDF gera arquivo PDF a partir do relatório.
Padrão:IMP_SPOOLlAdjustToLegacyQuando verdadeiro, recalcula coordenadas para compatibilidade com proporções legadas da TMSPrinter. Para relatórios novos, normalmente se usa .F.
Padrão:.T.cPathInServerDiretório no servidor onde o arquivo de relatório será salvo.
lDisableSetupQuando .T., não exibe a tela de setup; o programa passa a ser responsável por definir destino e configurações.
Padrão:.F.oPrintSetupObjeto FWPrintSetup informado pelo usuário, quando a rotina precisa controlar configurações de impressão.
cPrinterNome da impressora de destino. É relevante quando a tela de setup é desabilitada e a impressão deve seguir para um dispositivo específico.
lServerIndica impressão via servidor, sem copiar o arquivo .REL para o cliente.
Padrão:.F.lRawIndica impressão RAW/PCL, útil para cenários específicos de impressoras compatíveis.
lViewPDFQuando a saída é PDF, define se o arquivo será exibido após a geração.
Padrão:.T.nQtdCopyQuantidade de cópias para impressão por spool, especialmente útil em jobs ou schedules sem intervenção do usuário.
lPDFAsPNGParâmetro relacionado à geração/tratamento do PDF como imagem, conforme disponibilidade da LIB e do TotvsPrinter utilizados.
lConvertFontIndica se o tamanho da fonte será convertido. Quando .F., a conversão não é aplicada.
Padrão:.T.lHasBufferDisponibilizado a partir da LIB 20240520 para indicar se o buffer de arquivo deve ser usado.
Padrão:.T.FWMsPrinter():New( <cFilePrinter>, [nDevice], [lAdjustToLegacy], [cPathInServer], [lDisableSetup], [lTReport], [@oPrintSetup], [cPrinter], [lServer], [lPDFAsPNG], [lRaw], [lViewPDF], [nQtdCopy], [lConvertFont], [lHasBuffer] ) --> oPrintercFilePrinterCaractereObrigatórioNome do arquivo de relatório.
nDeviceNuméricoOpcionalDispositivo de saída, como IMP_SPOOL ou IMP_PDF.
lAdjustToLegacyLógicoOpcionalCompatibiliza coordenadas com relatórios legados.
cPathInServerCaractereOpcionalCaminho no servidor para gravação do arquivo.
lDisableSetupLógicoOpcionalQuando verdadeiro, não exibe a tela de configuração.
lTReportLógicoOpcionalIndica uso integrado com TReport quando aplicável.
oPrintSetupObjetoOpcionalObjeto de configuração de impressão passado por referência.
cPrinterCaractereOpcionalNome da impressora de destino.
lServerLógicoOpcionalIndica geração/impressão pelo servidor.
lPDFAsPNGLógicoOpcionalControla tratamento do PDF como imagem quando suportado.
lRawLógicoOpcionalIndica uso de impressão RAW/PCL.
lViewPDFLógicoOpcionalDefine se o PDF será exibido após a geração.
nQtdCopyNuméricoOpcionalQuantidade de cópias.
lConvertFontLógicoOpcionalControla conversão de tamanho de fonte.
lHasBufferLógicoOpcionalIndica uso de buffer de arquivo nas LIBs que suportam o recurso.
oPrinter: objeto FWMsPrinter criado.
FWMsPrinter():SetParm( "-RFS" ) -->cParmCaractereObrigatórioChave de parâmetro. Use "-RFS" para Real Font Sizes.
FWMsPrinter():Box( <nRow>, <nCol>, <nBottom>, <nRight>, [cPixel] ) -->nRowNuméricoObrigatórioCoordenada vertical inicial.
nColNuméricoObrigatórioCoordenada horizontal inicial.
nBottomNuméricoObrigatórioCoordenada inferior do retângulo.
nRightNuméricoObrigatórioCoordenada direita do retângulo.
cPixelCaractereOpcionalIndica tratamento de coordenadas em pixels quando aplicável.
FWMsPrinter():Cancel() -->FWMsPrinter():Canceled() --> lRetlRet: .T. quando o relatório foi cancelado.
FWMsPrinter():Cmtr2Pix( [nLinha], [nCol] ) -->nLinhaNuméricoOpcionalLinha/posição vertical a converter.
nColNuméricoOpcionalColuna/posição horizontal a converter.
FWMsPrinter():EAN13( <nRow>, <nCol>, <cCodeBar>, <nTotalWidth>, <nHeight> ) -->nRowNuméricoObrigatórioPosição relativa ao topo.
nColNuméricoObrigatórioPosição relativa à esquerda.
cCodeBarCaractereObrigatórioTexto a transformar em código de barras.
nTotalWidthNuméricoObrigatórioLargura total do código de barras.
nHeightNuméricoObrigatórioAltura da barra.
FWMsPrinter():Code128( <nRow>, <nCol>, <cCodeBar>, <nWidth>, <nHeight>, [lSay], [oFont], [nTotalWidth] ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cCodeBarCaractereObrigatórioConteúdo a codificar.
nWidthNuméricoObrigatórioLargura do código.
nHeightNuméricoObrigatórioAltura do código.
lSayLógicoOpcionalIndica se o texto deve ser exibido junto ao código.
oFontObjetoOpcionalFonte usada no texto.
nTotalWidthNuméricoOpcionalLargura total desejada.
FWMsPrinter():Code128C( <nRow>, <nCol>, <cCodeBar>, <nSizeBar> ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cCodeBarCaractereObrigatórioConteúdo a codificar.
nSizeBarNuméricoObrigatórioTamanho do código de barras.
FWMsPrinter():FWMsBar( <cTypeBar>, <nRow>, <nCol>, <cCode>, <oPrint>, [lCheck], [nColor], [lHorz], [nWidth], [nHeight], [lBanner], [cFont], [cMode], [lPrint], [nPFWidth], [nPFHeight], [lCmtr2Pix] ) -->cTypeBarCaractereObrigatórioTipo do código de barras.
nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cCodeCaractereObrigatórioTexto a transformar em código de barras.
oPrintObjetoObrigatórioObjeto de impressão.
lCheckLógicoOpcionalCalcula dígito de controle.
nColorNuméricoOpcionalCor do código de barras.
lHorzLógicoOpcionalImprime na horizontal.
nWidthNuméricoOpcionalLargura da barra.
nHeightNuméricoOpcionalAltura da barra.
lBannerLógicoOpcionalImprime o texto abaixo do código.
cFontCaractereOpcionalFonte usada no texto.
cModeCaractereOpcionalModo do código de barras.
lPrintLógicoOpcionalExecuta Print() pelo MsBar.
nPFWidthNuméricoOpcionalAjuste de largura da fonte.
nPFHeightNuméricoOpcionalAjuste de altura da fonte.
lCmtr2PixLógicoOpcionalUsa Cmtr2Pix() para converter coordenadas.
FWMsPrinter():DataMatrix( <nCol>, <nRow>, <cCodeBar>, <nSizeBar> ) -->nColNuméricoObrigatórioPosição horizontal.
nRowNuméricoObrigatórioPosição vertical.
cCodeBarCaractereObrigatórioConteúdo a codificar.
nSizeBarNuméricoObrigatórioTamanho do código.
FWMsPrinter():Ellipse( <nLeft>, <nTop>, <nBottom>, <nRight>, [nColorIn], [nColorOut], [nLineType], [cPixel] ) -->nLeftNuméricoObrigatórioCoordenada esquerda.
nTopNuméricoObrigatórioCoordenada superior.
nBottomNuméricoObrigatórioCoordenada inferior.
nRightNuméricoObrigatórioCoordenada direita.
nColorInNuméricoOpcionalCor interna.
nColorOutNuméricoOpcionalCor da borda.
nLineTypeNuméricoOpcionalTipo de linha.
cPixelCaractereOpcionalTratamento de coordenadas em pixels.
FWMsPrinter():EndPage() -->FWMsPrinter():FillRect( <aCoords>, [oBrush], [cPixel] ) -->aCoordsArrayObrigatórioCoordenadas do retângulo.
oBrushObjetoOpcionalObjeto TBrush usado no preenchimento.
cPixelCaractereOpcionalTratamento de coordenadas em pixels.
FWMsPrinter():GetFontWidths( [oFont], [@aFontSize] ) --> aRetoFontObjetoOpcionalFonte usada no cálculo.
aFontSizeArrayOpcionalArray passado por referência para receber informações de tamanho.
aRet: vetor com larguras da fonte.
FWMsPrinter():GetOrientation() --> nOrientationnOrientation: orientação atual, como retrato ou paisagem.
FWMsPrinter():GetTextHeight( <cTexto>, <oFont> ) --> nHeightcTextoCaractereObrigatórioTexto a medir.
oFontObjetoObrigatórioFonte usada no cálculo.
nHeight: altura calculada.
FWMsPrinter():GetTextWidth( <cTexto>, <oFont>, <nType> ) --> nWidthcTextoCaractereObrigatórioTexto a medir.
oFontObjetoObrigatórioFonte usada no cálculo.
nTypeNuméricoObrigatórioTipo de cálculo de largura.
nWidth: largura calculada.
FWMsPrinter():GetViewPDF() --> lViewPDFlViewPDF: .T. para exibir o PDF.
FWMsPrinter():IsPrinterActive() -->FWMsPrinter():Line( <nTop>, <nLeft>, <nBottom>, <nRight>, [nColor], [cPixel] ) -->nTopNuméricoObrigatórioCoordenada superior/inicial.
nLeftNuméricoObrigatórioCoordenada esquerda/inicial.
nBottomNuméricoObrigatórioCoordenada inferior/final.
nRightNuméricoObrigatórioCoordenada direita/final.
nColorNuméricoOpcionalCor da linha.
cPixelCaractereOpcionalTratamento de coordenadas em pixels.
FWMsPrinter():nHorzRes() --> nResultnResult: resolução horizontal.
FWMsPrinter():nHorzSize() --> nHorzSizenHorzSize: largura da página.
FWMsPrinter():nLogPixelX() --> nResultnResult: pixels lógicos no eixo X.
FWMsPrinter():nLogPixelY() --> nResultnResult: pixels lógicos no eixo Y.
FWMsPrinter():nVertRes() --> nResultnResult: resolução vertical.
FWMsPrinter():nVertSize() --> nVertSizenVertSize: altura da página.
FWMsPrinter():PaperSize() --> nPaperSizenPaperSize: código do tamanho do papel.
FWMsPrinter():Preview() -->FWMsPrinter():Print() -->FWMsPrinter():PrinterName() --> cImpressoracImpressora: nome da impressora.
FWMsPrinter():QRCode( <nRow>, <nCol>, <cCodeBar>, <nSizeBar> ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cCodeBarCaractereObrigatórioConteúdo a codificar.
nSizeBarNuméricoObrigatórioTamanho do QR Code.
FWMsPrinter():Say( <nRow>, <nCol>, <cText>, [oFont], [nWidth], [nClrText], [nAngle] ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cTextCaractereObrigatórioTexto a imprimir.
oFontObjetoOpcionalFonte utilizada.
nWidthNuméricoOpcionalLargura disponível para o texto.
nClrTextNuméricoOpcionalCor do texto.
nAngleNuméricoOpcionalÂngulo de rotação.
FWMsPrinter():SayAlign( <nRow>, <nCol>, <cText>, [oFont], [nWidth], [nHeight], [nClrText], [nAlignHorz], [nAlignVert] ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cTextCaractereObrigatórioTexto a imprimir.
oFontObjetoOpcionalFonte utilizada.
nWidthNuméricoOpcionalLargura da área.
nHeightNuméricoOpcionalAltura da área.
nClrTextNuméricoOpcionalCor do texto.
nAlignHorzNuméricoOpcionalAlinhamento horizontal.
nAlignVertNuméricoOpcionalAlinhamento vertical.
FWMsPrinter():SayBitmap( <nRow>, <nCol>, <cBitmap>, [nWidth], [nHeight] ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cBitmapCaractereObrigatórioCaminho e nome do arquivo de imagem.
nWidthNuméricoOpcionalLargura desejada.
nHeightNuméricoOpcionalAltura desejada.
FWMsPrinter():SetDevice( <nDevice> ) -->nDeviceNuméricoObrigatórioDispositivo, como IMP_SPOOL ou IMP_PDF.
FWMsPrinter():SetFont( <oFont>, <lForceFont> ) -->oFontObjetoObrigatórioObjeto TFont.
lForceFontLógicoObrigatórioForça a aplicação da fonte informada.
FWMsPrinter():SetLandscape() -->FWMsPrinter():SetMargin( <nLeft>, <nTop>, <nRight>, <nBottom> ) -->nLeftNuméricoObrigatórioMargem esquerda.
nTopNuméricoObrigatórioMargem superior.
nRightNuméricoObrigatórioMargem direita.
nBottomNuméricoObrigatórioMargem inferior.
FWMsPrinter():SetPaperSize( <nPaperSize>, [nHeight], [nWidth] ) -->nPaperSizeNuméricoObrigatórioCódigo do tamanho de papel, como DMPAPER_A4.
nHeightNuméricoOpcionalAltura personalizada.
nWidthNuméricoOpcionalLargura personalizada.
FWMsPrinter():SetPortrait() -->FWMsPrinter():SetResolution( [nResolution] ) -->nResolutionNuméricoOpcionalResolução desejada.
FWMsPrinter():Setup() -->FWMsPrinter():SetViewPDF( <lViewPDF> ) -->lViewPDFLógicoObrigatório.T. para exibir o PDF após gerar.
FWMsPrinter():Pdf417( <nRow>, <nCol>, <cCodeBar>, <nSizeBar>, <nHeight> ) -->nRowNuméricoObrigatórioPosição vertical.
nColNuméricoObrigatórioPosição horizontal.
cCodeBarCaractereObrigatórioConteúdo a codificar.
nSizeBarNuméricoObrigatórioTamanho do código de barras.
nHeightNuméricoObrigatórioAltura da barra.
FWMsPrinter():StartPage() -->#Include "TOTVS.ch"
#Include "RPTDef.ch"
#Include "FWPrintSetup.ch"
User Function ExFWMsPrinter()
Local oPrinter
Local cArquivo := "relatorio.rel"
Local lAjusteLegado := .F.
Local lDesabilitaSetup:= .T.
oPrinter := FWMsPrinter():New(cArquivo, IMP_PDF, ;
lAjusteLegado, , lDesabilitaSetup)
oPrinter:SetResolution(72)
oPrinter:SetPortrait()
oPrinter:SetPaperSize(DMPAPER_A4)
oPrinter:SetMargin(60, 60, 60, 60)
oPrinter:cPathPDF := "c:\temp\"
oPrinter:StartPage()
oPrinter:Say(100, 100, "Relatório de exemplo")
oPrinter:EndPage()
oPrinter:Preview()
ReturnCria um relatório PDF em A4, com margens definidas, escreve uma linha de texto e exibe a pré-visualização.
#Include "TOTVS.ch"
#Include "RPTDef.ch"
#Include "FWPrintSetup.ch"
User Function ExSpool()
Local oPrinter
Local cImpressora := "Microsoft Print to PDF"
oPrinter := FWMsPrinter():New("spool.rel", IMP_SPOOL, ;
.F., , .T., , , cImpressora)
oPrinter:SetResolution(72)
oPrinter:SetPortrait()
oPrinter:SetPaperSize(DMPAPER_A4)
oPrinter:StartPage()
oPrinter:Say(100, 100, "Saída enviada ao dispositivo configurado")
oPrinter:EndPage()
oPrinter:Print()
ReturnQuando o setup é desabilitado, o destino precisa ser configurado explicitamente no código.
#Include "TOTVS.ch"
#Include "RPTDef.ch"
User Function ExImagemRel()
Local oPrinter := FWMsPrinter():New("imagem.rel", IMP_PDF, .F., , .T.)
oPrinter:StartPage()
oPrinter:SayBitmap(100, 200, "c:\temp\logo.bmp", 300, 120)
oPrinter:EndPage()
oPrinter:Preview()
ReturnSayBitmap permite inserir imagem no relatório. Valide caminho, formato e permissões no ambiente onde o relatório será gerado.
// Ciclo básico
oPrinter:StartPage()
oPrinter:Say(100, 100, "Texto")
oPrinter:Line(130, 100, 130, 500)
oPrinter:Box(150, 100, 250, 500)
oPrinter:EndPage()
// Saída
oPrinter:Preview() // visualiza
oPrinter:Print() // envia para impressãoOs métodos de desenho montam a página. Propriedades como cPathPDF, cPrinter, nDevice, lServer, lViewPDF, nPageWidth e nPageHeight ajudam a controlar destino, dispositivo e dimensões.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso
Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.