cFilePrinterNombre del archivo de informe que se creará. Evita caracteres especiales para reducir problemas de generación y uso.
Guía AdvPLFWMsPrinter():New( <cFilePrinter>, [nDevice], [lAdjustToLegacy], [cPathInServer], [lDisableSetup], ... )Crea un objeto para generar, previsualizar e imprimir informes gráficos en AdvPL.
FWMsPrinter es la clase de impresión del framework utilizada para montar informes gráficos, generar archivos PDF o enviar la salida al spool/impresora. Sustituye el uso directo de TMSPrinter en nuevos desarrollos y mantiene opciones de compatibilidad para informes heredados. El flujo habitual es crear el objeto, configurar resolución, orientación, papel y márgenes, iniciar la página, dibujar textos, líneas, cuadros o imágenes, finalizar la página y luego previsualizar, imprimir o generar el archivo.
FWMsPrinter():New( <cFilePrinter>, [nDevice], [lAdjustToLegacy], [cPathInServer], [lDisableSetup], ... )cFilePrinterNombre del archivo de informe que se creará. Evita caracteres especiales para reducir problemas de generación y uso.
nDeviceTipo de salida. IMP_SPOOL envía a impresora/spool; IMP_PDF genera un archivo PDF a partir del informe.
Predeterminado:IMP_SPOOLlAdjustToLegacyCuando es verdadero, recalcula coordenadas para compatibilidad con proporciones heredadas de TMSPrinter. En informes nuevos suele usarse .F.
Predeterminado:.T.cPathInServerDirectorio del servidor donde se guardará el archivo del informe.
lDisableSetupCuando .T., no muestra la pantalla de setup; el programa queda responsable del destino y la configuración.
Predeterminado:.F.oPrintSetupObjeto FWPrintSetup informado por el usuario cuando la rutina necesita controlar la configuración de impresión.
cPrinterNombre de la impresora de destino, relevante cuando se deshabilita el setup y la salida debe ir a un dispositivo específico.
lServerIndica impresión vía servidor, sin copiar el archivo .REL al cliente.
Predeterminado:.F.lRawIndica impresión RAW/PCL para escenarios específicos de impresoras compatibles.
lViewPDFPara salida PDF, define si el archivo se mostrará después de generarlo.
Predeterminado:.T.nQtdCopyCantidad de copias para impresión por spool, especialmente útil en jobs o schedules sin interacción del usuario.
lPDFAsPNGParámetro relacionado con la generación/tratamiento del PDF como imagen, según la disponibilidad de la LIB y de TotvsPrinter utilizados.
lConvertFontIndica si se aplicará la conversión del tamaño de fuente. Cuando .F., la conversión no se realiza.
Predeterminado:.T.lHasBufferDisponible a partir de LIB 20240520 para indicar si debe usarse el buffer de archivo.
Predeterminado:.T.FWMsPrinter():New( <cFilePrinter>, [nDevice], [lAdjustToLegacy], [cPathInServer], [lDisableSetup], [lTReport], [@oPrintSetup], [cPrinter], [lServer], [lPDFAsPNG], [lRaw], [lViewPDF], [nQtdCopy], [lConvertFont], [lHasBuffer] ) --> oPrintercFilePrinterCaractereObligatorioNome 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" ) -->cParmCaractereObligatorioChave de parâmetro. Use "-RFS" para Real Font Sizes.
FWMsPrinter():Box( <nRow>, <nCol>, <nBottom>, <nRight>, [cPixel] ) -->nRowNuméricoObligatorioCoordenada vertical inicial.
nColNuméricoObligatorioCoordenada horizontal inicial.
nBottomNuméricoObligatorioCoordenada inferior do retângulo.
nRightNuméricoObligatorioCoordenada 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éricoObligatorioPosição relativa ao topo.
nColNuméricoObligatorioPosição relativa à esquerda.
cCodeBarCaractereObligatorioTexto a transformar em código de barras.
nTotalWidthNuméricoObligatorioLargura total do código de barras.
nHeightNuméricoObligatorioAltura da barra.
FWMsPrinter():Code128( <nRow>, <nCol>, <cCodeBar>, <nWidth>, <nHeight>, [lSay], [oFont], [nTotalWidth] ) -->nRowNuméricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cCodeBarCaractereObligatorioConteúdo a codificar.
nWidthNuméricoObligatorioLargura do código.
nHeightNuméricoObligatorioAltura 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éricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cCodeBarCaractereObligatorioConteúdo a codificar.
nSizeBarNuméricoObligatorioTamanho do código de barras.
FWMsPrinter():FWMsBar( <cTypeBar>, <nRow>, <nCol>, <cCode>, <oPrint>, [lCheck], [nColor], [lHorz], [nWidth], [nHeight], [lBanner], [cFont], [cMode], [lPrint], [nPFWidth], [nPFHeight], [lCmtr2Pix] ) -->cTypeBarCaractereObligatorioTipo do código de barras.
nRowNuméricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cCodeCaractereObligatorioTexto a transformar em código de barras.
oPrintObjetoObligatorioObjeto 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éricoObligatorioPosição horizontal.
nRowNuméricoObligatorioPosição vertical.
cCodeBarCaractereObligatorioConteúdo a codificar.
nSizeBarNuméricoObligatorioTamanho do código.
FWMsPrinter():Ellipse( <nLeft>, <nTop>, <nBottom>, <nRight>, [nColorIn], [nColorOut], [nLineType], [cPixel] ) -->nLeftNuméricoObligatorioCoordenada esquerda.
nTopNuméricoObligatorioCoordenada superior.
nBottomNuméricoObligatorioCoordenada inferior.
nRightNuméricoObligatorioCoordenada direita.
nColorInNuméricoOpcionalCor interna.
nColorOutNuméricoOpcionalCor da borda.
nLineTypeNuméricoOpcionalTipo de linha.
cPixelCaractereOpcionalTratamento de coordenadas em pixels.
FWMsPrinter():EndPage() -->FWMsPrinter():FillRect( <aCoords>, [oBrush], [cPixel] ) -->aCoordsArrayObligatorioCoordenadas 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> ) --> nHeightcTextoCaractereObligatorioTexto a medir.
oFontObjetoObligatorioFonte usada no cálculo.
nHeight: altura calculada.
FWMsPrinter():GetTextWidth( <cTexto>, <oFont>, <nType> ) --> nWidthcTextoCaractereObligatorioTexto a medir.
oFontObjetoObligatorioFonte usada no cálculo.
nTypeNuméricoObligatorioTipo 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éricoObligatorioCoordenada superior/inicial.
nLeftNuméricoObligatorioCoordenada esquerda/inicial.
nBottomNuméricoObligatorioCoordenada inferior/final.
nRightNuméricoObligatorioCoordenada 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éricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cCodeBarCaractereObligatorioConteúdo a codificar.
nSizeBarNuméricoObligatorioTamanho do QR Code.
FWMsPrinter():Say( <nRow>, <nCol>, <cText>, [oFont], [nWidth], [nClrText], [nAngle] ) -->nRowNuméricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cTextCaractereObligatorioTexto 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éricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cTextCaractereObligatorioTexto 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éricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cBitmapCaractereObligatorioCaminho e nome do arquivo de imagem.
nWidthNuméricoOpcionalLargura desejada.
nHeightNuméricoOpcionalAltura desejada.
FWMsPrinter():SetDevice( <nDevice> ) -->nDeviceNuméricoObligatorioDispositivo, como IMP_SPOOL ou IMP_PDF.
FWMsPrinter():SetFont( <oFont>, <lForceFont> ) -->oFontObjetoObligatorioObjeto TFont.
lForceFontLógicoObligatorioForça a aplicação da fonte informada.
FWMsPrinter():SetLandscape() -->FWMsPrinter():SetMargin( <nLeft>, <nTop>, <nRight>, <nBottom> ) -->nLeftNuméricoObligatorioMargem esquerda.
nTopNuméricoObligatorioMargem superior.
nRightNuméricoObligatorioMargem direita.
nBottomNuméricoObligatorioMargem inferior.
FWMsPrinter():SetPaperSize( <nPaperSize>, [nHeight], [nWidth] ) -->nPaperSizeNuméricoObligatorioCó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ógicoObligatorio.T. para exibir o PDF após gerar.
FWMsPrinter():Pdf417( <nRow>, <nCol>, <cCodeBar>, <nSizeBar>, <nHeight> ) -->nRowNuméricoObligatorioPosição vertical.
nColNuméricoObligatorioPosição horizontal.
cCodeBarCaractereObligatorioConteúdo a codificar.
nSizeBarNuméricoObligatorioTamanho do código de barras.
nHeightNuméricoObligatorioAltura da barra.
FWMsPrinter():StartPage() -->#Include "TOTVS.ch"
#Include "RPTDef.ch"
#Include "FWPrintSetup.ch"
User Function ExFWMsPrinter()
Local oPrinter
Local cArchivo := "informe.rel"
Local lAjusteLegado := .F.
Local lDeshabilitaSet := .T.
oPrinter := FWMsPrinter():New(cArchivo, IMP_PDF, ;
lAjusteLegado, , lDeshabilitaSet)
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, "Informe de ejemplo")
oPrinter:EndPage()
oPrinter:Preview()
ReturnCrea un informe PDF en A4, con márgenes definidos, escribe una línea de texto y abre la previsualización.
#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()
ReturnCuando se deshabilita el setup, el destino debe configurarse explícitamente en el 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 inserta una imagen en el informe. Valida ruta, formato y permisos en el entorno de generación.
// Ciclo básico
oPrinter:StartPage()
oPrinter:Say(100, 100, "Texto")
oPrinter:Line(130, 100, 130, 500)
oPrinter:Box(150, 100, 250, 500)
oPrinter:EndPage()
// Salida
oPrinter:Preview() // previsualiza
oPrinter:Print() // imprimeLos métodos de dibujo montan la página. Propiedades como cPathPDF, cPrinter, nDevice, lServer, lViewPDF, nPageWidth y nPageHeight ayudan a controlar destino, dispositivo y dimensiones.
Desarrollado con Usina Docs · Alpha
© 2026 Usina.BR. Todos los derechos reservados. TOTVS, Protheus, Microsiga y sus respectivos logotipos son marcas de sus titulares. Guía AdvPL es independiente y utiliza citas limitadas, atribuidas y justificadas por fines educativos. Consulta los Términos de Uso. Términos de Uso
Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.