问题描述
/***批量导出PDF(一页为一条数据)*@paramdataListPDF模板数据集合*@paramMoudleUrlPDF模板路径*@paramexportUrlPDF导出路径*/publicbooleanexportPDF(ArrayList<Object>dataList,StringMoudleUrl,StringexportUrl){try{intisize=dataList.size();FileOutputStreamfos=newFileOutputStream(exportUrl);ByteArrayOutputStreambaos[]=newByteArrayOutputStream[isize];//每页的pdf流//字体//BaseFontbf=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);//Fontfont=newFont(bf,12,Font.NORMAL);for(inti=0;i<isize;i++){baos[i]=newByteArrayOutputStream();PdfReaderreader=newPdfReader(MoudleUrl);PdfStamperps=newPdfStamper(reader,baos[i]);AcroFieldsafs=ps.getAcroFields();ObjectmoudObj=dataList.get(i);Field[]fields=moudObj.getClass().getDeclaredFields();intlength=fields.length;for(intj=0;j<length;j++){StringvarName=fields[j].getName();booleanaccessFlag=fields[j].isAccessible();fields[j].setAccessible(true);ObjectvarValue=fields[j].get(moudObj);//如果有值填充值if(varValue!=null)afs.setField(varName,varValue.toString());//恢复访问权限fields[j].setAccessible(accessFlag);}ps.setFormFlattening(true);ps.close();}Documentdoc=newDocument();PdfCopypdfCopy=newPdfCopy(doc,fos);doc.open();PdfImportedPageimpPage=null;/**取出之前保存的每页内容*/for(inti=0;i<isize;i++){impPage=pdfCopy.getImportedPage(newPdfReader(baos[i].toByteArray()),1);pdfCopy.addPage(impPage);}doc.close();System.out.println("pdfdemo成功!");returntrue;}catch(Exceptione){e.printStackTrace();returnfalse;}}这个是我批量导出pdf的一段代码,导出时发现在导出后的pdf中好多汉字不能显示,求高人来解答!
解决方案
解决方案二:
已经解决,我吧模板里面的文本域重新编辑了一次,有这方面需求的朋友可以试一下
解决方案三:
恭喜楼主解决问题!