2017-04-03 1 views
0

iText Api (5)를 사용하여 PDF 양식을 작성하려고합니다. 나는 지역 데브 서버에서 응용 프로그램을 실행하고 난 공급으로 올바른 값 가득 모든 관련 필드가 브라우저에 표시 완벽한 PDF를 얻을 때iText를 사용하여 Google AppEngine의 Java Java 애플리케이션 용 PDF 양식 채우기

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(); 

모든 성공합니다.

문제 : 앱 엔진에서 응용 프로그램을 배포하고 같은 테스트 반면에, 나는 나 여기 내 실수를 찾을 수 있도록하십시오이

%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ÅùÉ{ù›†ˆ 

같은 정크 바이트의 페이지가 가득 얻을. 나는 서블릿과 일에이 코드를 추가하여이 문제를 해결할 수

답변

0

정말 고마워요은 ..뿐만 아니라 GAE에서 작동하기 시작했다.

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

또는

resp.setContentType("application/pdf"); 

첫 번째 코드

는 PDF 파일을 다운로드하며, 두 번째 코드는 브라우저에서 PDF를 열 것이다.

왜 이러한 헤더를 추가하지 않고도 로컬 개발 환경에서 제대로 작동하고 있는지, 응용 프로그램 엔진에서 실패했는지 확실하지 않습니다.