자바 기 존 내용 의 PDF 에 빈 숫자 서명 필드 추가

4206 단어 자바
기 존 내용 의 PDF 에 빈 숫자 서명 필드 추가
PDF 템 플 릿 에 따라 PDF 를 만 들 려 면 건 너 뛰 기
쓸데없는 말 은 그만 하고 코드 를 올 리 면 직접 측정 할 수 있다.
pom.xml
        
	            com.itextpdf
	            itextpdf
	            5.5.11
        

전체 코드 (추가 내용 은 상기 링크 를 참고 하 십시오):
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfAnnotation;
import com.itextpdf.text.pdf.PdfFormField;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;

/**
 *    PDF          
 * @author 
 *
 */
public class Demo {
		 
	    public static void main(String[] args){
	    	Map map=fillTemplate();
	    	System.out.println(map.get("pdfs"));
	    }
	    public static Map fillTemplate() {
	    	PdfReader reader;
	    	FileOutputStream out;
	    	PdfStamper ps;
	    	Map map = new HashMap();
    		map.put("Text1","HT188888888888");
    		map.put("Text2","  ");// 
    		map.put("Text3","111111111111111111");// 
    		map.put("Text4","188888888888");
    		map.put("Text5","  ");// 
    		map.put("Text6","11111111111111111");// 
    		map.put("Text7","188888888888");
    		map.put("Text8","111");// 
    		map.put("Text9","2018-11-11");// 
    		map.put("Text10","2018-11-18");
    		map.put("Text11","0.05");// 
    		map.put("Text13","   ");// 
    		map.put("Text14","888.67");
    		map.put("Text15","  ");// 
    		map.put("Text16","  ");
    		map.put("Text17","2018-11-11");// 
    		Map os=new HashMap();
    		os.put("datemap",map);
    		Map map2=Model.fillTemplate(os);//       ,       。
    		
    		String src="C:/pdf/demo.pdf";//        PDF
			try {
				out = new FileOutputStream(src);
				reader = new PdfReader(map2.get("pdf")+"");//   
	    	    ps  = new PdfStamper(reader, out);
	    	  //          (      ,         )
	        int x = 210, y = 437, width = 60, height = 60; //             ,          x  ,         y  
	        Rectangle areaSignatureRect = new Rectangle(//      ,             
	        		x, //  1 x      
	        	    y, //  1 y      
	        		x+width,//  2 x  ,         + ,   。
	        		y+height //  2 y  ,           + ,   。(       .)
	        );
	        int xs = 210, ys = 290, widths = 60, heights = 60;
	        Rectangle areaSignatureRect2 = new Rectangle(//      ,             
	        		xs, //  1 x  
	        	    ys, //  1 y  
	        		xs+widths,//  2 x  
	        		ys+heights //  2 y  
	        ); 
	        int pageNo = 5; // PDF        1   ,    0。(                ,      )
	        PdfFormField pdfFormField = PdfFormField.createSignature(ps.getWriter());
	        pdfFormField.setFieldName("AREA_SIGNATURE"); //      
	        pdfFormField.setPage(pageNo);
	        pdfFormField.setWidget(areaSignatureRect, PdfAnnotation.HIGHLIGHT_OUTLINE); //     
	        
	        PdfFormField pdfFormField2 = PdfFormField.createSignature(ps.getWriter());//     (    ,       )
	        pdfFormField2.setFieldName("AREA_SIGNATURE2"); //      
	        pdfFormField2.setPage(pageNo);
	        pdfFormField2.setWidget(areaSignatureRect2, PdfAnnotation.HIGHLIGHT_OUTLINE); //     
	       
	        ps.setFormFlattening(true);//    false,   PDF      ,   true,   PDF       
	        ps.addAnnotation(pdfFormField, pageNo);
	        ps.addAnnotation(pdfFormField2, pageNo);
	        System.err.println("  pdf    ~~~~~~~~~~");
	        ps.close();//     ,      PDF  0KB(             ,      。    ,      )
	        Map map3=new HashMap();
			map3.put("pdfs",src);
	        return map3;
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;
		}
}

좋은 웹페이지 즐겨찾기