자바 기 존 내용 의 PDF 에 빈 숫자 서명 필드 추가
4206 단어 자바
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;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.