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