/**
*
*/
package com.hsbc.gltc.itext.test;
import java.awt.Color;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import org.apache.commons.lang.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.ColumnText;
import com.lowagie.text.pdf.PdfAcroForm;
import com.lowagie.text.pdf.PdfAnnotation;
import com.lowagie.text.pdf.PdfAppearance;
import com.lowagie.text.pdf.PdfBorderDictionary;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfFormField;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.RadioCheckField;
import com.lowagie.text.pdf.TextField;
import junit.framework.TestCase;
/**
* @author 43454131
*
*/
public class ITextTestCase_CNS_KYC_en extends TestCase {
public static final String[] page1RadioCheckBoxes = { "AT_1_A", "AT_1_B", "AT_1_C", "AT_1_D", "AT_1_E","AT_1_F","AT_1_G"};
public static final String[] page1Radios_Y = { "AT_2_A", "AT_3_A", "AT_4_A", "AT_5_A", "AT_6_A","AT_7_A","AT_8_A","AT_9_A"};
public static final String[] page1Radios_N = { "AT_2_B", "AT_3_B", "AT_4_B", "AT_5_B", "AT_6_B","AT_7_B","AT_8_B","AT_9_B"};
public static final String[] page1InputTexts = { "AN_2_A", "AN_3_A", "AN_4_A", "AN_5_A", "AN_6_A","AN_7_A","AN_9_A"};
public static final String[] page2Radios_Y = { "6_Y", "7_Y", "8A_Y", "8B_Y", "9_Y"};
public static final String[] page2Radios_N = { "6_N", "7_N", "8A_N", "8B_N", "9_N"};
/** The original PDF file. */
public static final String DATASHEET
//= "src/test/resources/datasheet.pdf";
// = "src/test/resources/CNS2.0_EN_v0.2.pdf";
= "src/test/resources/CNS2.0_CN_change.PDF";
/** The resulting PDF file. */
public static final String RESULT
= "c:/helloworld.pdf";
public static final String RESULT2
= "c:/helloworld2.pdf";
public static final String IMAGE_RES
= "src/test/resources/hsbclogo.gif";
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}
public void testGenPDFByForm() throws Exception{
this.generatePDFByForm("c:/CNS2.0 CN_change1.PDF", "c:/CNS2.0 CN_change2.PDF", "attdRisk", this.getStr());
System.out.println("done"+getStr());
}
public void testGenPDFByDoc() throws Exception{
this.generatePDFByDoc(getStr());
System.out.println("done"+getStr());
}
public void testCreatePDFWithForm() throws Exception{
String path1 = "c:/ctpdf1.pdf";
String path2 = "c:/ctpdf2.pdf";
String path3 = "c:/ctpdf3.pdf";
// this.createPdf(path1, false, false, this.getStr());
// this.createPdf(null, path2, true, false, this.getStr());
// this.createPdf(path3, false, true, this.getStr());
// this.generatePDFByForm(path2, RESULT, "description", this.getStr()+"\u66f4\u6539\u7e73\u4ed8\u4fdd\u8cbb\u6307\u793a");
}
private BaseFont getBaseFont() throws DocumentException, IOException{
// BaseFont font = BaseFont.createFont("MSung-Light", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED);
BaseFont font = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.MACROMAN, BaseFont.NOT_EMBEDDED);
return font;
}
private BaseFont getBaseFontChinese() throws DocumentException, IOException{
BaseFont font = BaseFont.createFont("MSung-Light", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED);
// BaseFont font = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.MACROMAN, BaseFont.NOT_EMBEDDED);
return font;
}
public void generatePDFByForm(String filepath, String result,String fieldname, String str) throws Exception{
PdfReader reader = new PdfReader(filepath);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(result));
stamper.getWriter().getAcroForm().setNeedAppearances(true);
AcroFields form = stamper.getAcroFields();
BaseFont font = this.getBaseFont();
form.setFieldProperty(fieldname,"textfont",font,null);
form.setField(fieldname, str );
stamper.setFormFlattening(true);
// PdfContentByte cb = stamper.getUnderContent(1);
// Image img;
// java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage(IMAGE_RES);
// img = Image.getInstance(awtImage, null);
// cb.addImage(img, 200, 10, 10, 10, 10, 10);
stamper.close();
}
public void generatePDFByDoc(String str)throws Exception{
Document document = new Document();
// step 2
PdfWriter.getInstance(document, new FileOutputStream(RESULT2));
// step 3
document.open();
// step 4
BaseFont bf;
bf = this.getBaseFont();
Font font = new Font(bf, 12);
document.add(new Paragraph(str, font));
// step 5
document.close();
}
public String getStr(){
final ApplicationContext ctx = new ClassPathXmlApplicationContext(
new String[] {"/gltc/helloworld/intg/itext/tmpl/config.xml",});
String testMessage = (String) ctx.getBean("riskStr");
return testMessage + "\u53d6\u6d88\u6307\u793a";
}
public void createPdf(String input,String filename, boolean appearances, boolean font,
String str) throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(filename));
// step 3
document.open();
PdfReader reader = null;
/*********************Page 1 START*****************************************/
if(StringUtils.isNotBlank(input)){
reader = new PdfReader(new FileInputStream (new File (input)));
//add template
PdfContentByte pdfContentByte = writer.getDirectContent();
PdfImportedPage page = writer.getImportedPage(reader, 1);
pdfContentByte.addTemplate(page,0,0);
}
// cb.moveTo(0, 0);
// rect = new Rectangle(49, 300, 59, 310);
// drawCheckbox(writer, rect, "ckaCheckBox","Off");
writer.getAcroForm().setNeedAppearances(appearances);
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
// Add the check boxes
PdfContentByte canvas = writer.getDirectContent();
PdfFormField field;
PdfFormField field2;
PdfAppearance[] onOff = new PdfAppearance[2];
onOff[0] = canvas.createAppearance(20, 20);
onOff[0].rectangle(1, 1, 18, 18);
onOff[0].stroke();
onOff[1] = canvas.createAppearance(20, 20);
onOff[1].setRGBColorFill(255, 128, 128);
onOff[1].rectangle(1, 1, 18, 18);
onOff[1].fillStroke();
onOff[1].moveTo(1, 1);
onOff[1].lineTo(19, 19);
onOff[1].moveTo(1, 19);
onOff[1].lineTo(19, 1);
onOff[1].stroke();
RadioCheckField checkbox;
RadioCheckField checkbox2;
Rectangle[] rectArrays = new Rectangle[12];
rectArrays[0] = new Rectangle(460, 482, 490, 452);
rectArrays[1] = new Rectangle(460, 445, 490, 415);
rectArrays[2] = new Rectangle(460, 412, 490, 382);
rectArrays[3] = new Rectangle(460, 372, 490, 342);
rectArrays[4] = new Rectangle(460, 312, 490, 282);
rectArrays[5] = new Rectangle(460, 265, 490, 237);
rectArrays[6] = new Rectangle(460, 237, 490, 211);
rectArrays[7] = new Rectangle(460, 211, 490, 183);
rectArrays[8] = new Rectangle(460, 183, 490, 157);
rectArrays[9] = new Rectangle(460, 157, 490, 130);
rectArrays[10] = new Rectangle(460, 130, 490, 102);
rectArrays[11] = new Rectangle(460, 102, 490, 74);
Rectangle[] rectArrays2 = new Rectangle[12];
rectArrays2[0] = new Rectangle(510, 482, 540, 452);
rectArrays2[1] = new Rectangle(510, 445, 540, 415);
rectArrays2[2] = new Rectangle(510, 412, 540, 382);
rectArrays2[3] = new Rectangle(510, 372, 540, 342);
rectArrays2[4] = new Rectangle(510, 312, 540, 282);
rectArrays2[5] = new Rectangle(510, 265, 540, 237);
rectArrays2[6] = new Rectangle(510, 237, 540, 211);
rectArrays2[7] = new Rectangle(510, 211, 540, 183);
rectArrays2[8] = new Rectangle(510, 183, 540, 157);
rectArrays2[9] = new Rectangle(510, 157, 540, 130);
rectArrays2[10] = new Rectangle(510, 130, 540, 102);
rectArrays2[11] = new Rectangle(510, 102, 540, 74);
for (int i = 0; i < page1Radios_Y.length; i++) {
checkbox = new RadioCheckField(writer, rectArrays[i], page1Radios_Y[i], "on");
checkbox.setCheckType(RadioCheckField.TYPE_CHECK);
field = checkbox.getCheckField();
checkbox.setBorderColor(Color.white);
// field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0]);
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff[1]);
writer.addAnnotation(field);
}
for (int i = 0; i < page1Radios_N.length; i++) {
checkbox2 = new RadioCheckField(writer, rectArrays2[i], page1Radios_N[i], "on");
checkbox2.setCheckType(RadioCheckField.TYPE_CHECK);
field2 = checkbox2.getCheckField();
checkbox2.setBorderColor(Color.WHITE);
// field2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0]);
field2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff[1]);
writer.addAnnotation(field2);
}
//for textFields
// Rectangle[] page1TextFieldRectArrays = new Rectangle[12];
// page1TextFieldRectArrays[0] = new Rectangle(510, 482, 540, 452);
// page1TextFieldRectArrays[1] = new Rectangle(510, 445, 540, 415);
// page1TextFieldRectArrays[2] = new Rectangle(510, 412, 540, 382);
// page1TextFieldRectArrays[3] = new Rectangle(510, 372, 540, 342);
// page1TextFieldRectArrays[4] = new Rectangle(510, 312, 540, 282);
// page1TextFieldRectArrays[5] = new Rectangle(510, 265, 540, 237);
// page1TextFieldRectArrays[6] = new Rectangle(510, 237, 540, 211);
// page1TextFieldRectArrays[7] = new Rectangle(510, 211, 540, 183);
// page1TextFieldRectArrays[8] = new Rectangle(510, 183, 540, 157);
// page1TextFieldRectArrays[9] = new Rectangle(510, 157, 540, 130);
// page1TextFieldRectArrays[10] = new Rectangle(510, 130, 540, 102);
// page1TextFieldRectArrays[11] = new Rectangle(510, 102, 540, 74);
//
// for(int i = 0;i<page1InputTexts.length;i++){
// TextField textField= new TextField(writer,page1TextFieldRectArrays[i], page1InputTexts[i]);
// textField.setFontSize(9);
// textField.setOptions(TextField.MULTILINE);
// writer.addAnnotation(textField.getTextField());
// }
/*********************Page 1 END*****************************************/
/*********************Page 2 START*****************************************/
if (StringUtils.isNotBlank(input)) {
document.newPage();
writer.getDirectContent().addTemplate(
writer.getImportedPage(reader, 2), 0, 0);
}
PdfContentByte cb3 = writer.getDirectContent();
cb3.moveTo(0, 0);
// Add the check boxes
PdfContentByte canvas3 = writer.getDirectContent();
PdfFormField field3;
PdfFormField field4;
PdfAppearance[] onOff3 = new PdfAppearance[2];
onOff3[0] = canvas3.createAppearance(20, 20);
onOff3[0].rectangle(1, 1, 18, 18);
onOff3[0].stroke();
onOff3[1] = canvas3.createAppearance(20, 20);
onOff3[1].setRGBColorFill(255, 128, 128);
onOff3[1].rectangle(1, 1, 18, 18);
onOff3[1].fillStroke();
onOff3[1].moveTo(1, 1);
onOff3[1].lineTo(19, 19);
onOff3[1].moveTo(1, 19);
onOff3[1].lineTo(19, 1);
onOff3[1].stroke();
RadioCheckField checkbox3;
RadioCheckField checkbox4;
Rectangle[] rectArrays3 = new Rectangle[5];
rectArrays3[0] = new Rectangle(460, 626, 490, 596);
rectArrays3[1] = new Rectangle(460, 526, 490, 496);
rectArrays3[2] = new Rectangle(460, 446, 490, 416);
rectArrays3[3] = new Rectangle(460, 405, 490, 375);
rectArrays3[4] = new Rectangle(460, 326, 490, 296);
Rectangle[] rectArrays4 = new Rectangle[5];
rectArrays4[0] = new Rectangle(510, 626, 540, 596);
rectArrays4[1] = new Rectangle(510, 526, 540, 496);
rectArrays4[2] = new Rectangle(510, 446, 540, 416);
rectArrays4[3] = new Rectangle(510, 405, 540, 375);
rectArrays4[4] = new Rectangle(510, 326, 540, 296);
for (int i = 0; i < page2Radios_Y.length; i++) {
checkbox3 = new RadioCheckField(writer, rectArrays3[i], page2Radios_Y[i], "on");
checkbox3.setCheckType(RadioCheckField.TYPE_CHECK);
field3 = checkbox3.getCheckField();
checkbox3.setBorderColor(Color.WHITE);
// field3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff3[0]);
field3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff3[1]);
writer.addAnnotation(field3);
}
for (int i = 0; i < page2Radios_N.length; i++) {
checkbox4 = new RadioCheckField(writer, rectArrays4[i], page2Radios_N[i], "on");
checkbox4.setCheckType(RadioCheckField.TYPE_CHECK);
field4 = checkbox4.getCheckField();
checkbox4.setBorderColor(Color.WHITE);
// field4.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff3[0]);
field4.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff3[1]);
writer.addAnnotation(field4);
}
//for textFields
// Rectangle[] page2TextFieldRectArrays = new Rectangle[12];
// page2TextFieldRectArrays[0] = new Rectangle(510, 482, 540, 452);
// page2TextFieldRectArrays[1] = new Rectangle(510, 445, 540, 415);
// page2TextFieldRectArrays[2] = new Rectangle(510, 412, 540, 382);
// page2TextFieldRectArrays[3] = new Rectangle(510, 372, 540, 342);
// page2TextFieldRectArrays[4] = new Rectangle(510, 312, 540, 282);
// page2TextFieldRectArrays[5] = new Rectangle(510, 265, 540, 237);
// page2TextFieldRectArrays[6] = new Rectangle(510, 237, 540, 211);
// page2TextFieldRectArrays[7] = new Rectangle(510, 211, 540, 183);
// page2TextFieldRectArrays[8] = new Rectangle(510, 183, 540, 157);
// page2TextFieldRectArrays[9] = new Rectangle(510, 157, 540, 130);
// page2TextFieldRectArrays[10] = new Rectangle(510, 130, 540, 102);
// page2TextFieldRectArrays[11] = new Rectangle(510, 102, 540, 74);
//
// for(int i = 0;i<page1InputTexts.length;i++){
// TextField textField= new TextField(writer,page2TextFieldRectArrays[i], page1InputTexts[i]);
// textField.setFontSize(9);
// textField.setOptions(TextField.MULTILINE);
// writer.addAnnotation(textField.getTextField());
// }
//
// writer.getAcroForm().setNeedAppearances(appearances);
/*********************Page 2 END*****************************************/
/*********************Page 3 START*****************************************/
if (StringUtils.isNotBlank(input)) {
document.newPage();
writer.getDirectContent().addTemplate(
writer.getImportedPage(reader, 3), 0, 0);
}
// writer.getAcroForm().setNeedAppearances(appearances);
/*********************Page 3 END*****************************************/
document.close();
}
public void testCreatePDFWithForm2() throws Exception{
String pdfTempl = "C:/Users/43709342/Desktop/task/QAS FOLDERS/pdf/HistoryPrintPDF/originalPDF/KYC.pdf";
String outPDF = "C:/Users/43709342/Desktop/task/QAS FOLDERS/pdf/HistoryPrintPDF/templatePDF/CNS8.0_EN.pdf";
this.createPdf(pdfTempl, outPDF, true, true, this.getStr());
}
}
*
*/
package com.hsbc.gltc.itext.test;
import java.awt.Color;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import org.apache.commons.lang.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.ColumnText;
import com.lowagie.text.pdf.PdfAcroForm;
import com.lowagie.text.pdf.PdfAnnotation;
import com.lowagie.text.pdf.PdfAppearance;
import com.lowagie.text.pdf.PdfBorderDictionary;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfFormField;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.RadioCheckField;
import com.lowagie.text.pdf.TextField;
import junit.framework.TestCase;
/**
* @author 43454131
*
*/
public class ITextTestCase_CNS_KYC_en extends TestCase {
public static final String[] page1RadioCheckBoxes = { "AT_1_A", "AT_1_B", "AT_1_C", "AT_1_D", "AT_1_E","AT_1_F","AT_1_G"};
public static final String[] page1Radios_Y = { "AT_2_A", "AT_3_A", "AT_4_A", "AT_5_A", "AT_6_A","AT_7_A","AT_8_A","AT_9_A"};
public static final String[] page1Radios_N = { "AT_2_B", "AT_3_B", "AT_4_B", "AT_5_B", "AT_6_B","AT_7_B","AT_8_B","AT_9_B"};
public static final String[] page1InputTexts = { "AN_2_A", "AN_3_A", "AN_4_A", "AN_5_A", "AN_6_A","AN_7_A","AN_9_A"};
public static final String[] page2Radios_Y = { "6_Y", "7_Y", "8A_Y", "8B_Y", "9_Y"};
public static final String[] page2Radios_N = { "6_N", "7_N", "8A_N", "8B_N", "9_N"};
/** The original PDF file. */
public static final String DATASHEET
//= "src/test/resources/datasheet.pdf";
// = "src/test/resources/CNS2.0_EN_v0.2.pdf";
= "src/test/resources/CNS2.0_CN_change.PDF";
/** The resulting PDF file. */
public static final String RESULT
= "c:/helloworld.pdf";
public static final String RESULT2
= "c:/helloworld2.pdf";
public static final String IMAGE_RES
= "src/test/resources/hsbclogo.gif";
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}
public void testGenPDFByForm() throws Exception{
this.generatePDFByForm("c:/CNS2.0 CN_change1.PDF", "c:/CNS2.0 CN_change2.PDF", "attdRisk", this.getStr());
System.out.println("done"+getStr());
}
public void testGenPDFByDoc() throws Exception{
this.generatePDFByDoc(getStr());
System.out.println("done"+getStr());
}
public void testCreatePDFWithForm() throws Exception{
String path1 = "c:/ctpdf1.pdf";
String path2 = "c:/ctpdf2.pdf";
String path3 = "c:/ctpdf3.pdf";
// this.createPdf(path1, false, false, this.getStr());
// this.createPdf(null, path2, true, false, this.getStr());
// this.createPdf(path3, false, true, this.getStr());
// this.generatePDFByForm(path2, RESULT, "description", this.getStr()+"\u66f4\u6539\u7e73\u4ed8\u4fdd\u8cbb\u6307\u793a");
}
private BaseFont getBaseFont() throws DocumentException, IOException{
// BaseFont font = BaseFont.createFont("MSung-Light", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED);
BaseFont font = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.MACROMAN, BaseFont.NOT_EMBEDDED);
return font;
}
private BaseFont getBaseFontChinese() throws DocumentException, IOException{
BaseFont font = BaseFont.createFont("MSung-Light", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED);
// BaseFont font = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.MACROMAN, BaseFont.NOT_EMBEDDED);
return font;
}
public void generatePDFByForm(String filepath, String result,String fieldname, String str) throws Exception{
PdfReader reader = new PdfReader(filepath);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(result));
stamper.getWriter().getAcroForm().setNeedAppearances(true);
AcroFields form = stamper.getAcroFields();
BaseFont font = this.getBaseFont();
form.setFieldProperty(fieldname,"textfont",font,null);
form.setField(fieldname, str );
stamper.setFormFlattening(true);
// PdfContentByte cb = stamper.getUnderContent(1);
// Image img;
// java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage(IMAGE_RES);
// img = Image.getInstance(awtImage, null);
// cb.addImage(img, 200, 10, 10, 10, 10, 10);
stamper.close();
}
public void generatePDFByDoc(String str)throws Exception{
Document document = new Document();
// step 2
PdfWriter.getInstance(document, new FileOutputStream(RESULT2));
// step 3
document.open();
// step 4
BaseFont bf;
bf = this.getBaseFont();
Font font = new Font(bf, 12);
document.add(new Paragraph(str, font));
// step 5
document.close();
}
public String getStr(){
final ApplicationContext ctx = new ClassPathXmlApplicationContext(
new String[] {"/gltc/helloworld/intg/itext/tmpl/config.xml",});
String testMessage = (String) ctx.getBean("riskStr");
return testMessage + "\u53d6\u6d88\u6307\u793a";
}
public void createPdf(String input,String filename, boolean appearances, boolean font,
String str) throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(filename));
// step 3
document.open();
PdfReader reader = null;
/*********************Page 1 START*****************************************/
if(StringUtils.isNotBlank(input)){
reader = new PdfReader(new FileInputStream (new File (input)));
//add template
PdfContentByte pdfContentByte = writer.getDirectContent();
PdfImportedPage page = writer.getImportedPage(reader, 1);
pdfContentByte.addTemplate(page,0,0);
}
// cb.moveTo(0, 0);
// rect = new Rectangle(49, 300, 59, 310);
// drawCheckbox(writer, rect, "ckaCheckBox","Off");
writer.getAcroForm().setNeedAppearances(appearances);
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
// Add the check boxes
PdfContentByte canvas = writer.getDirectContent();
PdfFormField field;
PdfFormField field2;
PdfAppearance[] onOff = new PdfAppearance[2];
onOff[0] = canvas.createAppearance(20, 20);
onOff[0].rectangle(1, 1, 18, 18);
onOff[0].stroke();
onOff[1] = canvas.createAppearance(20, 20);
onOff[1].setRGBColorFill(255, 128, 128);
onOff[1].rectangle(1, 1, 18, 18);
onOff[1].fillStroke();
onOff[1].moveTo(1, 1);
onOff[1].lineTo(19, 19);
onOff[1].moveTo(1, 19);
onOff[1].lineTo(19, 1);
onOff[1].stroke();
RadioCheckField checkbox;
RadioCheckField checkbox2;
Rectangle[] rectArrays = new Rectangle[12];
rectArrays[0] = new Rectangle(460, 482, 490, 452);
rectArrays[1] = new Rectangle(460, 445, 490, 415);
rectArrays[2] = new Rectangle(460, 412, 490, 382);
rectArrays[3] = new Rectangle(460, 372, 490, 342);
rectArrays[4] = new Rectangle(460, 312, 490, 282);
rectArrays[5] = new Rectangle(460, 265, 490, 237);
rectArrays[6] = new Rectangle(460, 237, 490, 211);
rectArrays[7] = new Rectangle(460, 211, 490, 183);
rectArrays[8] = new Rectangle(460, 183, 490, 157);
rectArrays[9] = new Rectangle(460, 157, 490, 130);
rectArrays[10] = new Rectangle(460, 130, 490, 102);
rectArrays[11] = new Rectangle(460, 102, 490, 74);
Rectangle[] rectArrays2 = new Rectangle[12];
rectArrays2[0] = new Rectangle(510, 482, 540, 452);
rectArrays2[1] = new Rectangle(510, 445, 540, 415);
rectArrays2[2] = new Rectangle(510, 412, 540, 382);
rectArrays2[3] = new Rectangle(510, 372, 540, 342);
rectArrays2[4] = new Rectangle(510, 312, 540, 282);
rectArrays2[5] = new Rectangle(510, 265, 540, 237);
rectArrays2[6] = new Rectangle(510, 237, 540, 211);
rectArrays2[7] = new Rectangle(510, 211, 540, 183);
rectArrays2[8] = new Rectangle(510, 183, 540, 157);
rectArrays2[9] = new Rectangle(510, 157, 540, 130);
rectArrays2[10] = new Rectangle(510, 130, 540, 102);
rectArrays2[11] = new Rectangle(510, 102, 540, 74);
for (int i = 0; i < page1Radios_Y.length; i++) {
checkbox = new RadioCheckField(writer, rectArrays[i], page1Radios_Y[i], "on");
checkbox.setCheckType(RadioCheckField.TYPE_CHECK);
field = checkbox.getCheckField();
checkbox.setBorderColor(Color.white);
// field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0]);
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff[1]);
writer.addAnnotation(field);
}
for (int i = 0; i < page1Radios_N.length; i++) {
checkbox2 = new RadioCheckField(writer, rectArrays2[i], page1Radios_N[i], "on");
checkbox2.setCheckType(RadioCheckField.TYPE_CHECK);
field2 = checkbox2.getCheckField();
checkbox2.setBorderColor(Color.WHITE);
// field2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0]);
field2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff[1]);
writer.addAnnotation(field2);
}
//for textFields
// Rectangle[] page1TextFieldRectArrays = new Rectangle[12];
// page1TextFieldRectArrays[0] = new Rectangle(510, 482, 540, 452);
// page1TextFieldRectArrays[1] = new Rectangle(510, 445, 540, 415);
// page1TextFieldRectArrays[2] = new Rectangle(510, 412, 540, 382);
// page1TextFieldRectArrays[3] = new Rectangle(510, 372, 540, 342);
// page1TextFieldRectArrays[4] = new Rectangle(510, 312, 540, 282);
// page1TextFieldRectArrays[5] = new Rectangle(510, 265, 540, 237);
// page1TextFieldRectArrays[6] = new Rectangle(510, 237, 540, 211);
// page1TextFieldRectArrays[7] = new Rectangle(510, 211, 540, 183);
// page1TextFieldRectArrays[8] = new Rectangle(510, 183, 540, 157);
// page1TextFieldRectArrays[9] = new Rectangle(510, 157, 540, 130);
// page1TextFieldRectArrays[10] = new Rectangle(510, 130, 540, 102);
// page1TextFieldRectArrays[11] = new Rectangle(510, 102, 540, 74);
//
// for(int i = 0;i<page1InputTexts.length;i++){
// TextField textField= new TextField(writer,page1TextFieldRectArrays[i], page1InputTexts[i]);
// textField.setFontSize(9);
// textField.setOptions(TextField.MULTILINE);
// writer.addAnnotation(textField.getTextField());
// }
/*********************Page 1 END*****************************************/
/*********************Page 2 START*****************************************/
if (StringUtils.isNotBlank(input)) {
document.newPage();
writer.getDirectContent().addTemplate(
writer.getImportedPage(reader, 2), 0, 0);
}
PdfContentByte cb3 = writer.getDirectContent();
cb3.moveTo(0, 0);
// Add the check boxes
PdfContentByte canvas3 = writer.getDirectContent();
PdfFormField field3;
PdfFormField field4;
PdfAppearance[] onOff3 = new PdfAppearance[2];
onOff3[0] = canvas3.createAppearance(20, 20);
onOff3[0].rectangle(1, 1, 18, 18);
onOff3[0].stroke();
onOff3[1] = canvas3.createAppearance(20, 20);
onOff3[1].setRGBColorFill(255, 128, 128);
onOff3[1].rectangle(1, 1, 18, 18);
onOff3[1].fillStroke();
onOff3[1].moveTo(1, 1);
onOff3[1].lineTo(19, 19);
onOff3[1].moveTo(1, 19);
onOff3[1].lineTo(19, 1);
onOff3[1].stroke();
RadioCheckField checkbox3;
RadioCheckField checkbox4;
Rectangle[] rectArrays3 = new Rectangle[5];
rectArrays3[0] = new Rectangle(460, 626, 490, 596);
rectArrays3[1] = new Rectangle(460, 526, 490, 496);
rectArrays3[2] = new Rectangle(460, 446, 490, 416);
rectArrays3[3] = new Rectangle(460, 405, 490, 375);
rectArrays3[4] = new Rectangle(460, 326, 490, 296);
Rectangle[] rectArrays4 = new Rectangle[5];
rectArrays4[0] = new Rectangle(510, 626, 540, 596);
rectArrays4[1] = new Rectangle(510, 526, 540, 496);
rectArrays4[2] = new Rectangle(510, 446, 540, 416);
rectArrays4[3] = new Rectangle(510, 405, 540, 375);
rectArrays4[4] = new Rectangle(510, 326, 540, 296);
for (int i = 0; i < page2Radios_Y.length; i++) {
checkbox3 = new RadioCheckField(writer, rectArrays3[i], page2Radios_Y[i], "on");
checkbox3.setCheckType(RadioCheckField.TYPE_CHECK);
field3 = checkbox3.getCheckField();
checkbox3.setBorderColor(Color.WHITE);
// field3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff3[0]);
field3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff3[1]);
writer.addAnnotation(field3);
}
for (int i = 0; i < page2Radios_N.length; i++) {
checkbox4 = new RadioCheckField(writer, rectArrays4[i], page2Radios_N[i], "on");
checkbox4.setCheckType(RadioCheckField.TYPE_CHECK);
field4 = checkbox4.getCheckField();
checkbox4.setBorderColor(Color.WHITE);
// field4.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff3[0]);
field4.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", onOff3[1]);
writer.addAnnotation(field4);
}
//for textFields
// Rectangle[] page2TextFieldRectArrays = new Rectangle[12];
// page2TextFieldRectArrays[0] = new Rectangle(510, 482, 540, 452);
// page2TextFieldRectArrays[1] = new Rectangle(510, 445, 540, 415);
// page2TextFieldRectArrays[2] = new Rectangle(510, 412, 540, 382);
// page2TextFieldRectArrays[3] = new Rectangle(510, 372, 540, 342);
// page2TextFieldRectArrays[4] = new Rectangle(510, 312, 540, 282);
// page2TextFieldRectArrays[5] = new Rectangle(510, 265, 540, 237);
// page2TextFieldRectArrays[6] = new Rectangle(510, 237, 540, 211);
// page2TextFieldRectArrays[7] = new Rectangle(510, 211, 540, 183);
// page2TextFieldRectArrays[8] = new Rectangle(510, 183, 540, 157);
// page2TextFieldRectArrays[9] = new Rectangle(510, 157, 540, 130);
// page2TextFieldRectArrays[10] = new Rectangle(510, 130, 540, 102);
// page2TextFieldRectArrays[11] = new Rectangle(510, 102, 540, 74);
//
// for(int i = 0;i<page1InputTexts.length;i++){
// TextField textField= new TextField(writer,page2TextFieldRectArrays[i], page1InputTexts[i]);
// textField.setFontSize(9);
// textField.setOptions(TextField.MULTILINE);
// writer.addAnnotation(textField.getTextField());
// }
//
// writer.getAcroForm().setNeedAppearances(appearances);
/*********************Page 2 END*****************************************/
/*********************Page 3 START*****************************************/
if (StringUtils.isNotBlank(input)) {
document.newPage();
writer.getDirectContent().addTemplate(
writer.getImportedPage(reader, 3), 0, 0);
}
// writer.getAcroForm().setNeedAppearances(appearances);
/*********************Page 3 END*****************************************/
document.close();
}
public void testCreatePDFWithForm2() throws Exception{
String pdfTempl = "C:/Users/43709342/Desktop/task/QAS FOLDERS/pdf/HistoryPrintPDF/originalPDF/KYC.pdf";
String outPDF = "C:/Users/43709342/Desktop/task/QAS FOLDERS/pdf/HistoryPrintPDF/templatePDF/CNS8.0_EN.pdf";
this.createPdf(pdfTempl, outPDF, true, true, this.getStr());
}
}