itext
प्रपत्र: iText 5 बनाम iText 7
खोज…
टिप्पणियों
iText 5 एक पुस्तकालय है जो व्यवस्थित रूप से विकसित हुआ है। कई डेवलपर्स ने कोड का योगदान दिया। उदाहरण के लिए: एक डेवलपर ने TextField से फ़ील्ड बनाने के लिए कोड का योगदान दिया, जैसे TextField और PdfFormField ; किसी अन्य डेवलपर ने AcroField वर्ग और setFieldProperty() विधियों की एक श्रृंखला का उपयोग करके मौजूदा फॉर्म फ़ील्ड को बदलने के लिए कोड का योगदान दिया।
IText 5 में, फॉर्म फ़ील्ड बनाने के लिए उपयोग की जाने वाली कक्षाएं फॉर्म फ़ील्ड और इसके विपरीत बदलने के लिए उपयोग नहीं की जा सकती हैं। वर्गों के दो सेटों के बीच कोई संबंध नहीं है। यह कई उपयोगकर्ताओं के लिए भ्रामक है। उदाहरण के लिए: कुछ उपयोगकर्ता TextField वर्ग की खोज करते हैं, और मान लेते हैं कि वे किसी मौजूदा पाठ क्षेत्र के गुणों को बदलने के लिए उस वर्ग का उपयोग कर सकते हैं। यह मामला नहीं है, उन्हें इसके बजाय AcroFields वर्ग का उपयोग करने की आवश्यकता है।
यह सब iText 7 में तय किया गया है। हमने PdfFormField और इसके उपवर्ग PdfTextField जैसी कक्षाओं का एक नया सेट बनाया है जिसका उपयोग एक नया फ़ील्ड बनाने के लिए किया जा सकता है, साथ ही एक मौजूदा फॉर्म फ़ील्ड को अपडेट करने के लिए भी।
आपके कोड को अधिक कॉम्पैक्ट बनाने के लिए iText 7 फॉर्म फ़ील्ड विधियों को जंजीर बनाया जा सकता है, और वे iText 5 में संबंधित विधियों की तुलना में बहुत अधिक सहज हैं। प्रपत्र की कार्यक्षमता को अधिक सुरुचिपूर्ण बनाना iText को खरोंच से फिर से लिखने के प्रमुख कारणों में से एक था।
फॉर्मक्रिएशन.जावा (iText 5)
इस iText 5 उदाहरण में, हम एक पाठ क्षेत्र बनाएँगे और उसे एक पीडीएफ में जोड़ेंगे:
public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
TextField tf = new TextField(stamper.getWriter(),
new Rectangle(110, 780, 180, 806), "text");
tf.setBorderColor(BaseColor.BLUE);
tf.setBorderWidth(2);
tf.setTextColor(BaseColor.RED);
tf.setFontSize(12);
tf.setText("Text field");
PdfFormField field = tf.getTextField();
stamper.addAnnotation(field, 1);
stamper.close();
reader.close();
}
स्रोत: Developers.itextpdf.com
फॉर्मक्रिएशन.जावा (iText 7)
इस iText 7 उदाहरण में, हम एक पाठ क्षेत्र बनाएँगे और उसे एक पीडीएफ में जोड़ेंगे:
public void manipulatePdf(String src, String dest) throws IOException {
PdfReader reader = new PdfReader(src);
PdfDocument pdf = new PdfDocument(reader, new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
PdfFormField tf = PdfTextFormField.createText(
pdf, new Rectangle(110, 780, 70, 26), "text", "Text Field")
.setBorderColor(Color.BLUE)
.setBorderWidth(2)
.setColor(Color.RED)
.setFontSize(12);
form.addField(tf);
pdf.close();
}
स्रोत: Developers.itextpdf.com
FormFilling.java (iText 5)
इस iText 5 उदाहरण में, हम गुणों और पाठ फ़ील्ड के मान को बदलेंगे:
public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields fields = stamper.getAcroFields();
fields.setFieldProperty("text", "textcolor", BaseColor.BLUE, null);
fields.setFieldProperty("text", "bordercolor", BaseColor.RED, null);
fields.setFieldProperty("text", "fontsize", 14, null);
fields.setField("text", "Field Text");
stamper.close();
reader.close();
}
स्रोत: Developers.itextpdf.com
FormFilling.java (iText 7)
इस iText 7 उदाहरण में, हम गुणों और पाठ फ़ील्ड के मान को बदलेंगे:
public void manipulatePdf(String src, String dest) throws IOException {
PdfReader reader = new PdfReader(src);
PdfDocument pdf = new PdfDocument(reader, new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
PdfFormField tf = form.getFormFields().get("text");
tf.setBorderColor(Color.RED)
.setColor(Color.BLUE)
.setFontSize(14)
.setValue("Field Text");
pdf.close();
}
स्रोत: Developers.itextpdf.com



