Eu tenho um REST que faz exatamente isso.
Gere o PDF pelo FWMSPrinter:
local cFile := 'arquivo.pdf'
oPrint := FWMSPrinter():New(cFile,IMP_PDF,.T.,__reldir,.T.,,,,,.F.)
oPrint:lViewPDF := .F.
oPrint:cPathPDF := __reldir
oPrint:StartPage()
oPrint:EndPage()
oPrint:Print()
Depois Utilize a função FwFileReader para enviar o PDF pelo REST.
Local cFile := ""// VALORES RETORNADOS NA LEITURA
Local oFile := FwFileReader():New("/spool/arquivo.pdf") // CAMINHO ABAIXO DO ROOTPATH
// SE FOR POSSÍVEL ABRIR O ARQUIVO, LEIA-O
// SE NÃO, EXIBA O ERRO DE ABERTURA
If (oFile:Open())
cFile := oFile:FullRead() // EFETUA A LEITURA DO ARQUIVO
// RETORNA O ARQUIVO PARA DOWNLOAD
Self:SetHeader("Content-Disposition", "attachment; filename=arquivo.pdf")
Self:SetResponse(cFile)
lSuccess := .T. // CONTROLE DE SUCESSO DA REQUISIÇÃO
Else
SetRestFault(002, "can't load file") // GERA MENSAGEM DE ERRO CUSTOMIZADA
lSuccess := .F. // CONTROLE DE SUCESSO DA REQUISIÇÃO
EndIf
Bom Dia, conseguiu resolver está situação?
— Eduardo Candido 25 de Nov de 2021