2017-04-03 1 views
0

J'essaie de remplir un formulaire PDF en utilisant iText Api (5).Essayer d'utiliser iText pour remplir un formulaire PDF pour mon application Java sur Google App Engine

OutputStream out = resp.getOutputStream(); 
PdfReader reader = new PdfReader(IOUtils.toByteArray(new FileInputStream(filePath))); 
reader.unethicalreading=true; 
PdfStamper stamper; 

     try 
     { 
     stamper = new PdfStamper(reader, out); 
     AcroFields form = stamper.getAcroFields(); 

     form.setField("form1[0].#subform[0].Line3_StreetNumberName[0]", employee.getAddress()); 
     form.setField("form1[0].#subform[0].Line3_CityOrTown[0]", employee.getCity()); 
     form.setField("form1[0].#subform[0].Line3_State[0]", employee.getState()); 
     form.setField("form1[0].#subform[0].Line3_ZipCode[0]", employee.getZip()); 
     stamper.flush(); 
     stamper.close(); 
     } catch(DocumentException e) { 
     e.printStackTrace(); 
     } 
    reader.close(); 
    out.flush(); 
    out.close(); 

Tout est réussi quand je lance l'application sur le serveur de Dev local et je reçois un PDF parfait affiché sur le navigateur tous les champs pertinents remplis de valeurs correctes fournies.

Problème: D'autre part, quand je déployer l'application sur le moteur d'application et tester le même, je reçois une pleine page d'octets indésirables comme celui-ci

%PDF-1.7 %âãÏÓ 1 0 obj <>>>/BBox[0 0 240 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 144/Filter/FlateDecode>>stream Œh˜k€Ö}ØlÄSÉ„p~0µ]«b,â›sv›«‚2`§S"«ÿpÆ,85¢­`¼€ä›ð—eŒٳh,Þ®Hé­ïþéñþì?îù§KÑ÷"÷+¶qÔk¹‡Ž=)i[q†dEa†¨h™ …¼«OêÓEÇèNÝÿ¡*Þãól†8*O endstream endobj 3 0 obj <>/BBox[0 0 186 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 48/Filter/FlateDecode>>stream ¨P=»û+º÷Õ€Ri¸BóÍo›èÀ‚¿yÒúñAtŠÔAj4Á‚ºu‡Ã}“ endstream endobj 4 0 obj <>/BBox[0 0 132 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 48/Filter/FlateDecode>>stream FÌz¶YŠY]™~zk3R<A›‰â(–¿T’zjv3›ÇÃrÅ]éTü¾…ÝuÁ5 endstream endobj 5 0 obj <>/BBox[0 0 36 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 48/Filter/FlateDecode>>stream i\Ž±Ê3Ny/iæú+1ö¬ó¶vöV(”k6ÜÔN‹wÀ9¡K»]Ñfs!Õ endstream endobj 6 0 obj <>>>/BBox[0 0 72 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 128/Filter/FlateDecode>>stream í5:NÙOúŒî/å÷ÈT?¤âúîè6ŽØq¶º' e„Xƒ?c€¦ƒß߯˜¤@\»FJà•o™˜¨užÞc´y•‰°ý¨X³¶U —Ì[Òƒê;yï:MÃÁsÏm»)zzó‘|QÔ ˜„þƆv5í±È±ya¬ endstream endobj 7 0 obj <>/BBox[0 0 84 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 48/Filter/FlateDecode>>stream +¥Žkô„Wêá¹+FÇA‘¶@7ä :|{éÆ­ì‡8§'0RðZ£kž¼ ç!IÓ endstream endobj 8 0 obj <>/BBox[0 0 240 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 48/Filter/FlateDecode>>stream YÚ‰¸SÎuOÏBì¶ß3§3 ¹ÿ=lN·sØÞhñ=HN•a‰À¦Øœ=ô endstream endobj 9 0 obj <>>>/BBox[0 0 258 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 144/Filter/FlateDecode>>stream h-õÇZ6ꢗ‹vf Áü+€ƒçsŸÜ#ºÿ…U4ðº&Þ̷ؔ•5ZJçØÞ¬Þ-¤ŠÜ• ͳU%‚p å¥ÍÙl°<,6‹Å¯ßÔ´Ïg‡ôªÿY£ú4+à—Ïz Cìa£òr^ƒ§ÈÔEÂBòB8¡ài¨ádÑäÞ1EV^…$7Ïu¾z… endstream endobj 10 0 obj <>>>/BBox[0 0 257.94 36]/FormType 1/Matrix [1 0 0 1 0 0]/Length 176/Filter/FlateDecode>>stream í§¿ TÏLX×ÙäPæPIbÉˉƨûìÅ¿fÑÉoÐmBä»Äÿ×2™*ðl·0Ñ3–9%àññ-ò¡pa98q ߆žóþòe=0q©¸Cê†bq¿`ô艅¶•Va~Îsf„͘– ]J †ö ÝDÝ¿š:Óœ#]ÇÍæB9–o(•Åyc»¨¢™}ÉܸÐhµ•NìñÁ¿Eï¥)·tvÑÃcæ±rÅ>D endstream endobj 11 0 obj <>/BBox[0 0 240 18]/FormType 1/Matrix [1 0 0 1 0 0]/Length 48/Filter/FlateDecode>>stream $hÚ9CÀ¥Ÿ}`‘yšùÈfÞÊýlÙ u }ü4ßÊü6cïDÕeïŸ^ë¥ endstream endobj 12 0 obj <>stream ¸#6’Œ¸Áh¢«z!ª{*Ï݃Pÿ"®0H;wÙ0ÀæŽöG»ñ#† 8ÿDæˆÌñ^ñyNŠõS2j¨5ã"¶{#›À;‚ŠºLn÷„2BüÛ[¡1×VÈ–ª‹ò=GYL|D*>¬Ní´G<ò·åF\0ï Aé/m~£y„ð)PVØ’B'ø"y%ñ’µ|ÞŸîÇ”Ku„N/<´öõ@L–„ÖpPͪòãxù!d0ñNžì-iŽœvï½Êç5Ø÷¶hÇ*€¸'ÇóÁß0 í…ŒgTœ&w¢„uÔ^RjúCàcF&–¤ùjÊßgZ¤—J6|ˆ\ÈW3}À”-à¸{-ñ›Ñ†9O \™æ$}Í¡?«{ƒy2A]õúƒØ>£68‰¤|êÄ>Cc’e-K/ 9÷ìRëÛÒÄ›¢Ù‘@hc/Ž±AÂ×W^‘Š¸¥*RïkÁä¼å1QEáUÌ~»ß;4€¢æ6µÌ*]á9Ïà-™ Fù ýÒ©ì©›÷¾@µ"¢o1Ä|VnJÎPŒÿ§k‚ãã %ÕbOÊBÇ*î›Ýõóƒøüî ¹Ë¿PŠB+ÖÁh…Žž%Uüõ3.ñ|Ó}|Š’=A\E…4·våñP}ZêcrsÌZ1eg{š ¹pÌÈ]ìoIaYñš‰.…¥äÂ8í„h(èiJ,SB úqöÁt;4†Ëß[email protected]%’æÊ%íg¡–²ã•ÛZ3ã[#Ä‹ñ…0ž¾Óo*9ÏÔÄVJ¹§)¬zeÒÅW·i}“@H¿B†¦L)®Ô²…Ç'ŸÈÄ#°‹£Ÿ‚)VˆÅcR»`ÆK¥º¾àêÇ~£‘õˆ‘v†¥ ÏCä›Iʽ¨_¼E5[bèø8Úä#Ǧöí™ù[email protected](õV–ðïîiG\„—ÔZgŽ“\U®­Yrï²Ô'[”½¿{a¬æw®!A –Œùå>‰F¦––岬;†åé(sÞ>^ªVCEmó¸À“‡ÊåíÞI(¹¹rR*ÄŸW›‡žDžøêŒxRè¡Šå\žã‡¢¤åJçi‡%‡œÎ[email protected]ùIOïV™þÛ;à¥ÌÞUóÂ(õD¶©j‹W››æŠlÜ›D'wˆîágäZ¼TvÑÆÂ2ÕrS;Bз“ÆÌåøDÃÁ}p”ZõJ¦NPyQ{]©û‹ñ›Àãp”0$n9µÆ.Ùžú€LAÀ|ЋÈIDx1ÇÉ& ](œÄ7€Ý§Ëw[—b·Iv 'íL×RmÏ‚‚¤xNu¶þœz³â:Wê´×[›Î—ɘMÆŸ^»ï<ŽaëCz:ölBçï…Ò¬G4¸÷ŽÃëi¥)áè[email protected]’z59EâhÃd·©Î0ÍuTar÷Èà ¤«Á7º‘6O˜€ƒú$š¦ì²”P¹”54V.%ó"±‹g®[C éŠþ=WU€£0]ó|—/«òŽUŽ©Ët®ñMªì1ßG‹çߦÔe«º#HëÂw¯uœò 9 Ò¿9°~³£¦°‚ÅJ¨äw’ÿ³žÌåeëªÚd²÷üJ÷"î忼L»«¹Íüç_ÆmmF‹¬fZ­íâ!hã â¼½ñÁH³Nq^ΗÍoúgÈQ¯Ú01“&¼ƒ ¢ïX†n·pùdPslPãk¯ý«ÇwÂðd;o¯%«¿˜5_Å´æ’¹Iå•}­‚z ò/n!eT)[«r¡o“…qŠî$9KcùšÍs‘§{3ü0SÛ$‘^µ¹€Ìàâ¬&Pi,(<$Æ£š³CK‚[„’ªOqÛÎ߇®jëL! `k•BL•'ÇýÅp\@“¶vü¸­JÈ£¬t7UgSkºÉYÞ¥ÙLÚÅ*G;¦„ãõŒ<žò«å½Ï‘O…ÜÌleñKÈ×XŒÞÍ÷éÒN;8œb(€Ì×­ëÿ–,^źµÖlx± %ÞS¨ÃÚw€ºòÜ'˜Z-NËåÔSžSW NJñ^Dö^£³U,—y¹cõ ¡UpÓîÚ"ø©™ÜƒÉ? ƒ Z ‡ÆŒ”Ö(fqﵫ%|[rüÌc¿/ßûWˆ¦,!©qSí²^éLñè²vVûB"½±ßp?âÝâáP2¡¾zŒ¦ž¸™[ÌWÌ6öI x¾ÕöÆڇĥ½á5e¿d…¼Ì¶˜·×ü‰;iß™¥;Z«rš&ß1+p‹C1ÔR±ƒå¬rIÃ}³LsÅùÉ{ù›†ˆ 

S'il vous plaît aidez-moi à trouver mon erreur.

Merci beaucoup ..

Répondre

0

je pouvais résoudre ce problème en ajoutant ce code au servlet et la chose a commencé à travailler sur GAE aussi bien.

resp.addHeader("Content-disposition", "attachment; filename=" + "xxx.pdf"); 

ou

resp.setContentType("application/pdf"); 

Le premier code est télécharger le fichier PDF et le second code ouvre le fichier PDF dans le navigateur. Je ne sais pas pourquoi il fonctionnait correctement sur l'environnement de développement local sans ajouter ces en-têtes et échouait sur le moteur de l'application?