Outro dia me perguntaram se era possível gerar um arquivo PDF no Protheus, mas sem que abri-se uma tela, procura daqui, procura dali, encontrei a função FWMSPrinter, é o mesmo componente utilizado na geração da Danfe. Para mais detalhes consulte http://tdn.totvs.com/display/public/mp/FWMsPrinter Abaixo tem um bom exemplo funcional para mostrar o seu funcionamento
#INCLUDE "RPTDEF.CH" #INCLUDE "FWPrintSetup.ch" #INCLUDE "protheus.ch" User Function fPrintPDF() Local lAdjustToLegacy := .F. Local lDisableSetup := .T. Local oPrinter Local cLocal := "c:\siga\" Local cCodINt25 := "34190184239878442204400130920002152710000053475" Local cCodEAN := "123456789012" Local cFilePrint := "" oPrinter := FWMSPrinter():New('orcamento_000000.PD_', 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:Box( 130, 10, 500, 700, "-4") oPrinter:Say(210,10,"Teste para Code128C") cFilePrint := cLocal+"orcamento_000000.PD_" File2Printer( cFilePrint, "PDF" ) oPrinter:cPathPDF:= cLocal oPrinter:Preview() Return[sdm_download id="2273" fancy="1" new_window="1" button_text="Copiar agora!"]