SUBROUTINE PS.TST.GEN.PDF
*--------------------------------------------------------------------------
* Exemple de génération d'un doc post au format PDF à partir d'un SB.REMOTE.PROCESS
* et envoie du contenu de celui-ci  
*--------------------------------------------------------------------------
* Historique   
*
*   04/09/2013 [JCD] : Initial Release
*--------------------------------------------------------------------------
FILE = "TEST_JCD.PDF"
PATH = "/dos/jcd/"

*--------------------------------   
* 1 Préparer les variables
OPEN "FPS.TMP" TO F.TMP ELSE
  MSG = "Echec open FSP.TMP"
  RETURN
END   
HST = ""
CALL IN.OS.SH("hostname",CAP,RET) 
REC    = CAP
REC<2> = OCONV(DATE(),"D4/")
REC<3> = OCONV(TIME(),"MTS")
CALL WI.GET.CGI(remoteHost,"REMOTE_HOST")
REC<4> = remoteHost
CRT "REC : ":REC
WRITE REC ON F.TMP,"JCD"
  
  
*--------------------------------   
* 2. Générer le doc POST au format PDF
PARA.IN = ""
PARA.IN<1> = "TEST.JCD"   ; * Nom du document POST
PARA.IN<2> = "1"          ; * 1 pour que le process n'ouvre pas le doc
PARA.IN<3> = "0"          ; * 0 pour ne pas charger le doc
PARA.IN<4> = FILE; * Nom du doc postscript  
PARA.IN<5> = PATH  ; * CHemin où le fichier sera enregistré
PARA.IN<21> = "FPS.TMP"
PARA.IN<22> = "JCD"
PROCESS = "P.DOC.GEN.PDF,":CHANGE(PARA.IN,@AM,",") 
DUMMY = ""
DUMMY<1> = "SB.RP"     
DUMMY<2> = "SB.RP"  
DUMMY<3> = PROCESS
DUMMY<4> = "2"       
DUMMY<5> = "0"
DUMMY<6> = "VT220"
DUMMY<7> = "DEFAULT.PRINTER"
DUMMY<8> = "LOGICAL.PRINTER"
VALUE = ""
CALL SB.REMOTE.PROCESS(DUMMY)


*--------------------------------
* 3. Encode le pdf en base64
P.ERR = 0
BUF = ""
CALL IN.B64.ENC("file:":PATH:FILE,BUF,P.ERR)
IF P.ERR<1> # 0 THEN
  MSG = "Echec encodage du fichier '":PATH:FILE:"' en base64 : ":P.ERR<2>
  GOSUB ERROR
  RETURN
END  

*--------------------------------
* 4. Envoie du résultat au navigateur  
CALL IN.W3.HTML.INIT("","")       
pragma = "Content-Type"
pragma<2,1> = "infodata/base64"
pragma<1,2> = "Content-Disposition"
pragma<2,2> = "inline;filename=":FILE
pragma<1,3> = "Mime-Type"
pragma<2,3> = "application/pdf"
CALL IN.W3.PRAGMA(pragma)
CALL IN.W3.PRINT(BUF)  

RETURN


ERROR:
CALL IN.W3.PRINT(MSG)  

RETURN
intools/softtool/post/spool_pdf/genpdf2web.txt · Dernière modification: 04/09/2013 12:05 par Jean Christophe Dewalque
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki