Skill

PDF এ ফর্ম তৈরি এবং ডেটা পূরণ করা

পিডিএফবক্স (PDFbox) - Java Technologies

396

পিডিএফবক্স (PDFBox) লাইব্রেরি Java ব্যবহার করে পিডিএফ ডকুমেন্টে ফর্ম তৈরি এবং এর মধ্যে ডেটা পূরণ করার জন্য ব্যবহৃত হয়। পিডিএফ ফর্ম ব্যবহারকারীদের কাছ থেকে ইনপুট সংগ্রহ করার একটি গুরুত্বপূর্ণ উপায়, যেমন ফর্ম ফিল্ড (Text Field, Checkbox, Radio Button) পূরণ করা। এই টিউটোরিয়ালে আমরা দেখব কিভাবে একটি পিডিএফ ফর্ম তৈরি করা যায় এবং তা পূরণ করা যায়।

পিডিএফ ফর্মের বিভিন্ন ধরণ

পিডিএফ ফর্মে সাধারণত নিম্নলিখিত ধরণের ফর্ম ফিল্ড ব্যবহার করা হয়:

  • Text Field: ব্যবহারকারী টেক্সট ইনপুট করতে পারে।
  • Radio Button: একাধিক অপশন থেকে একটি অপশন নির্বাচন করা যায়।
  • Checkbox: এক বা একাধিক অপশন চেক বা আনচেক করা যায়।
  • Combo Box: ড্রপডাউন মেনু থেকে অপশন নির্বাচন করা যায়।

পিডিএফ ফর্ম তৈরি করা

পিডিএফ ফর্ম তৈরি করার জন্য আপনি প্রথমে একটি ফর্ম ফিল্ড তৈরি করবেন এবং তারপর সেটি পিডিএফ ডকুমেন্টে যুক্ত করবেন। নিচে একটি উদাহরণ দেওয়া হল যেখানে আমরা একটি টেক্সট ফর্ম ফিল্ড এবং একটি চেকবক্স ফর্ম ফিল্ড তৈরি করব।

পিডিএফ ফর্ম তৈরি করার উদাহরণ

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.form.PDTextField;
import org.apache.pdfbox.pdmodel.PDCheckbox;
import org.apache.pdfbox.pdmodel.PDAnnotationWidget;
import org.apache.pdfbox.pdmodel.PDRectangle;

import java.io.IOException;

public class PDFFormCreation {
    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();
            PDPage page = new PDPage(PDRectangle.A4); // A4 সাইজ পেজ তৈরি
            document.addPage(page);

            // ফর্ম ফিল্ড তৈরি করার জন্য নতুন ফর্ম অবজেক্ট
            PDTextField textField = new PDTextField(document.getDocumentCatalog().getAcroForm());
            textField.setPartialName("nameField"); // ফর্ম ফিল্ডের নাম

            // ফর্ম ফিল্ডের অবস্থান এবং আকার
            PDAnnotationWidget widget = textField.getWidgets().get(0);
            widget.setRectangle(new PDRectangle(100, 750, 200, 20)); // পজিশন এবং সাইজ
            page.getAnnotations().add(widget); // পেজে ফর্ম ফিল্ড যোগ

            // চেকবক্স তৈরি
            PDCheckbox checkbox = new PDCheckbox(document.getDocumentCatalog().getAcroForm());
            checkbox.setPartialName("subscribeCheckbox"); // চেকবক্সের নাম
            PDAnnotationWidget checkboxWidget = checkbox.getWidgets().get(0);
            checkboxWidget.setRectangle(new PDRectangle(100, 700, 20, 20)); // পজিশন এবং সাইজ
            page.getAnnotations().add(checkboxWidget); // পেজে চেকবক্স যোগ

            // পিডিএফ ডকুমেন্ট সংরক্ষণ করা
            document.save("PDFForm.pdf");
            document.close(); // ডকুমেন্ট বন্ধ করা
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোডের ব্যাখ্যা

  • PDTextField: একটি টেক্সট ফর্ম ফিল্ড তৈরি করতে ব্যবহৃত হয়। setPartialName() মেথডের মাধ্যমে ফর্ম ফিল্ডের নাম দেওয়া হয়।
  • PDCheckbox: একটি চেকবক্স ফর্ম ফিল্ড তৈরি করতে ব্যবহৃত হয়। এই ফিল্ডের অবস্থান এবং আকার PDRectangle ব্যবহার করে নির্ধারণ করা হয়।
  • PDAnnotationWidget: ফর্ম ফিল্ডের অবজেক্ট পেজে যুক্ত করতে ব্যবহৃত হয়।

পিডিএফ ফর্মে ডেটা পূরণ করা

পিডিএফ ফর্মে ডেটা পূরণ করার জন্য, আপনি পূর্বে তৈরি করা ফর্ম ফিল্ডের মান পরিবর্তন করতে পারেন। নিচে একটি উদাহরণ দেওয়া হল যেখানে আমরা একটি টেক্সট ফর্ম ফিল্ড এবং একটি চেকবক্স ফর্ম ফিল্ডে ডেটা পূর্ণ করব।

ফর্ম ফিল্ডে ডেটা পূরণ করার উদাহরণ

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDTextField;
import org.apache.pdfbox.pdmodel.PDCheckbox;
import org.apache.pdfbox.pdmodel.PDAnnotationWidget;

import java.io.IOException;

public class PDFFormFilling {
    public static void main(String[] args) {
        try {
            // পূর্বে তৈরি করা পিডিএফ ডকুমেন্ট লোড করা
            PDDocument document = PDDocument.load(new File("PDFForm.pdf"));

            // ফর্ম থেকে টেক্সট ফিল্ড অ্যাক্সেস করা
            PDTextField textField = (PDTextField) document.getDocumentCatalog().getAcroForm().getField("nameField");
            textField.setValue("John Doe"); // টেক্সট ফিল্ডে ডেটা সেট করা

            // ফর্ম থেকে চেকবক্স অ্যাক্সেস করা
            PDCheckbox checkbox = (PDCheckbox) document.getDocumentCatalog().getAcroForm().getField("subscribeCheckbox");
            checkbox.check(); // চেকবক্স চেক করা

            // পিডিএফ ডকুমেন্ট সংরক্ষণ করা
            document.save("FilledPDFForm.pdf");
            document.close(); // ডকুমেন্ট বন্ধ করা
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোডের ব্যাখ্যা

  • getField(): নির্দিষ্ট ফর্ম ফিল্ড অ্যাক্সেস করতে ব্যবহৃত হয়।
  • setValue(): টেক্সট ফর্ম ফিল্ডে মান সেট করতে ব্যবহৃত হয়।
  • check(): চেকবক্সে টিক চিহ্ন যোগ করতে ব্যবহৃত হয়।

পিডিএফ ফর্ম তৈরি এবং ডেটা পূরণ করার সুবিধা

  • ইন্টারঅ্যাকটিভ ফর্ম: পিডিএফ ফর্ম তৈরি করে ব্যবহারকারীদের কাছ থেকে ইনপুট সংগ্রহ করা সম্ভব হয়।
  • ডেটা সংগ্রহ: ফর্মের মাধ্যমে ব্যবহারকারী থেকে ডেটা নেয়া এবং সেই ডেটা পরবর্তীতে প্রক্রিয়াকরণ বা সংরক্ষণ করা যায়।
  • ডাইনামিক ফর্ম ফিল্ড: প্রয়োজন অনুযায়ী ফর্ম ফিল্ড কাস্টমাইজ করা এবং পূর্ণ করা যায়।

PDFBox ব্যবহার করে Java-তে পিডিএফ ফর্ম তৈরি এবং ডেটা পূর্ণ করা একটি সহজ ও কার্যকর পদ্ধতি যা পিডিএফ ফাইলের মধ্যে ইন্টারঅ্যাকটিভ উপাদান যুক্ত করার জন্য উপযুক্ত।

Content added By

AcroForm হলো পিডিএফ ফাইলের একটি ফিচার যা ব্যবহারকারীদের ফর্ম ফিল আপ করতে এবং ডাটা এক্সট্র্যাক্ট করতে সহায়তা করে। এটি পিডিএফ ডকুমেন্টে ইন্টারঅ্যাকটিভ ফর্ম তৈরি করতে ব্যবহৃত হয়, যেখানে ব্যবহারকারীরা বিভিন্ন ইনপুট ফিল্ড যেমন টেক্সট ফিল্ড, চেকবক্স, রেডিও বাটন ইত্যাদি পূরণ করতে পারেন। AcroForm সাধারণত ব্যবহৃত হয় পিডিএফ ফর্ম ফিলিং, সাবমিশন, এবং ডেটা এক্সট্রাকশন প্রক্রিয়ায়।

AcroForm এর উপাদান

AcroForm ফিচারে বিভিন্ন ধরনের ইনপুট ফিল্ড ব্যবহার করা যেতে পারে, যেমন:

  • Text Fields (টেক্সট ফিল্ড): যেখানে ব্যবহারকারী টেক্সট ইনপুট করতে পারে।
  • Check Boxes (চেকবক্স): এক বা একাধিক অপশন সিলেক্ট করার জন্য।
  • Radio Buttons (রেডিও বাটন): একাধিক অপশন থেকে একটি নির্বাচন করার জন্য।
  • Combo Boxes (কম্বো বক্স): ড্রপডাউন তালিকা থেকে অপশন নির্বাচন করার জন্য।
  • Buttons (বাটন): সাবমিট, রিসেট ইত্যাদি ফাংশনালিটির জন্য।

এই ফর্ম ফিল্ডগুলি পিডিএফ ডকুমেন্টের মধ্যে ইন্টারঅ্যাকটিভ ফিচার হিসেবে কাজ করে, যার মাধ্যমে ব্যবহারকারী ডকুমেন্টে সরাসরি ইনপুট দিতে পারেন।

AcroForm তৈরি করা

পিডিএফবক্স ব্যবহার করে আপনি সহজেই পিডিএফ ফর্ম তৈরি করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যা দেখায় কিভাবে একটি পিডিএফ ফর্ম তৈরি করা হয়:

AcroForm তৈরি করার উদাহরণ

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.interactive.form.PDTextField;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDAcroForm;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.IOException;

public class PDFAcroFormExample {
    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();
            PDPage page = new PDPage();
            document.addPage(page);

            // AcroForm তৈরি
            PDAcroForm acroForm = new PDAcroForm(document);

            // পিডিএফ ডকুমেন্টের কাতালগ সেট করা
            PDDocumentCatalog catalog = document.getDocumentCatalog();
            catalog.setAcroForm(acroForm);

            // টেক্সট ফিল্ড তৈরি
            PDTextField nameField = new PDTextField(acroForm);
            nameField.setPartialName("name");
            acroForm.getFields().add(nameField);

            // ফর্মে টেক্সট ফিল্ডের অবস্থান এবং কন্টেন্ট স্ট্রীম তৈরি
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.beginText();
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            contentStream.newLineAtOffset(100, 750);
            contentStream.showText("Name:");
            contentStream.endText();

            // ফর্মের টেক্সট ফিল্ড প্রদর্শন করা
            contentStream.close();

            // পিডিএফ ডকুমেন্ট সংরক্ষণ
            document.save("AcroFormExample.pdf");
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোডের ব্যাখ্যা

  • PDAcroForm: AcroForm তৈরি করতে এবং এতে ফর্ম ফিল্ড যোগ করতে ব্যবহৃত হয়।
  • PDTextField: একটি টেক্সট ফিল্ড তৈরি করতে ব্যবহৃত হয়। এখানে, setPartialName() পদ্ধতি ব্যবহার করে ফিল্ডের নাম সেট করা হয়।
  • setAcroForm(): ডকুমেন্ট কাতালগে AcroForm যুক্ত করতে ব্যবহৃত হয়।
  • PDPageContentStream: পিডিএফ পৃষ্ঠায় টেক্সট ফিল্ডের জন্য কন্টেন্ট স্ট্রীম তৈরি করতে ব্যবহৃত হয়।
  • showText(): টেক্সট ফিল্ডের পাশের লেবেল প্রদর্শন করার জন্য ব্যবহৃত হয়।

AcroForm এ ডাটা ইনপুট এবং এক্সট্র্যাকশন

একবার ফর্ম তৈরি হলে, ব্যবহারকারী এটি পূর্ণ করে জমা দিতে পারেন। পিডিএফবক্স ব্যবহার করে আপনি এই ফর্মের ডাটা এক্সট্র্যাক্টও করতে পারেন।

ডাটা এক্সট্র্যাক্ট করা

PDDocument document = PDDocument.load(new File("AcroFormExample.pdf"));
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();

PDTextField nameField = (PDTextField) acroForm.getField("name");
String nameValue = nameField.getValue();

System.out.println("Name: " + nameValue);

document.close();

এখানে, getField() মেথডের মাধ্যমে ফর্মের টেক্সট ফিল্ডের মান এক্সট্র্যাক্ট করা হয়েছে।


AcroForm হল পিডিএফ ফর্ম তৈরি এবং ব্যবস্থাপনা করার একটি শক্তিশালী টুল, যা পিডিএফবক্সের মাধ্যমে Java এ সহজে ইমপ্লিমেন্ট করা যেতে পারে। এটি ব্যবহারকারীদের ফর্ম ফিলিং এবং ডেটা এক্সট্র্যাকশনের প্রক্রিয়াকে সহজ করে তোলে।

Content added By

পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে পিডিএফ ডকুমেন্টে ফর্ম ফিল্ড যেমন TextField, CheckBox, এবং RadioButton যোগ করা যায়। এই ফর্ম ফিল্ডগুলো ব্যবহারকারীদের ইনপুট গ্রহণ করার জন্য তৈরি করা হয়। পিডিএফবক্সের মাধ্যমে এসব ফর্ম ফিল্ড যোগ করতে, PDTextField, PDCheckBox, এবং PDRadioButton ক্লাস ব্যবহার করা হয়।

TextField যোগ করা

TextField হল একটি ফর্ম ফিল্ড যা ব্যবহারকারীদের পাঠ্য ইনপুট গ্রহণ করতে সহায়তা করে। এটি সাধারনত ফর্ম পূরণের জন্য ব্যবহৃত হয়।

TextField তৈরি করার কোড

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDAcroForm;
import org.apache.pdfbox.pdmodel.form.PDTextField;

import java.io.IOException;

public class PDFTextFieldExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage(PDRectangle.A4);
        document.addPage(page);

        // PDAcroForm ফর্ম তৈরি
        PDAcroForm acroForm = new PDAcroForm(document);
        document.getDocumentCatalog().setAcroForm(acroForm);

        // TextField তৈরি
        PDTextField textField = new PDTextField(acroForm);
        textField.setPartialName("textField");

        // TextField এর অবস্থান এবং আকার নির্ধারণ
        textField.setRectangle(new PDRectangle(100, 700, 200, 20));

        // ফর্মে TextField যোগ করা
        acroForm.getFields().add(textField);

        // পিডিএফ ডকুমেন্ট সেভ করা
        document.save("PDFWithTextField.pdf");
        document.close();
    }
}

এখানে PDTextField ব্যবহার করে একটি TextField তৈরি করা হয়েছে এবং তা পিডিএফ ডকুমেন্টে যোগ করা হয়েছে।

CheckBox যোগ করা

CheckBox একটি ফর্ম ফিল্ড যা ব্যবহারকারীদের হ্যাঁ অথবা না ধরনের ইনপুট নিতে ব্যবহৃত হয়। এটি সাধারণত একটি বুলিয়ান মান (যেমন টিক বা না টিক) সংগ্রহ করতে ব্যবহৃত হয়।

CheckBox তৈরি করার কোড

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDAcroForm;
import org.apache.pdfbox.pdmodel.form.PDCheckBox;

import java.io.IOException;

public class PDFCheckBoxExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        // PDAcroForm ফর্ম তৈরি
        PDAcroForm acroForm = new PDAcroForm(document);
        document.getDocumentCatalog().setAcroForm(acroForm);

        // CheckBox তৈরি
        PDCheckBox checkBox = new PDCheckBox(acroForm);
        checkBox.setPartialName("checkBox");
        
        // CheckBox এর অবস্থান এবং আকার নির্ধারণ
        checkBox.setRectangle(new PDRectangle(100, 700, 20, 20));

        // ফর্মে CheckBox যোগ করা
        acroForm.getFields().add(checkBox);

        // পিডিএফ ডকুমেন্ট সেভ করা
        document.save("PDFWithCheckBox.pdf");
        document.close();
    }
}

এখানে PDCheckBox ব্যবহার করে একটি CheckBox তৈরি করা হয়েছে এবং তা পিডিএফ ডকুমেন্টে যোগ করা হয়েছে।

RadioButton যোগ করা

RadioButton একটি ফর্ম ফিল্ড যা একাধিক অপশন থেকে একটি অপশন নির্বাচন করতে ব্যবহৃত হয়। এটি সাধারনত গ্রুপে থাকে, যেখানে একাধিক রেডিও বাটনের মধ্যে একটিই নির্বাচিত হতে পারে।

RadioButton তৈরি করার কোড

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDAcroForm;
import org.apache.pdfbox.pdmodel.form.PDRadioButton;

import java.io.IOException;

public class PDFRadioButtonExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        // PDAcroForm ফর্ম তৈরি
        PDAcroForm acroForm = new PDAcroForm(document);
        document.getDocumentCatalog().setAcroForm(acroForm);

        // RadioButton গ্রুপ তৈরি
        PDRadioButton radioButtonGroup = new PDRadioButton(acroForm);
        radioButtonGroup.setPartialName("radioGroup");

        // RadioButton এর অপশন যোগ করা
        radioButtonGroup.addOption("Option1", false);
        radioButtonGroup.addOption("Option2", false);

        // RadioButton গ্রুপে অপশন নির্বাচন করা
        radioButtonGroup.setValue("Option1");

        // ফর্মে RadioButton গ্রুপ যোগ করা
        acroForm.getFields().add(radioButtonGroup);

        // পিডিএফ ডকুমেন্ট সেভ করা
        document.save("PDFWithRadioButton.pdf");
        document.close();
    }
}

এখানে PDRadioButton ব্যবহার করে একটি রেডিও বাটন গ্রুপ তৈরি করা হয়েছে এবং দুটি অপশন (Option1, Option2) দেওয়া হয়েছে।

পিডিএফ ফর্ম ফিল্ডের ব্যবহার

  • TextField ব্যবহারকারীদের পাঠ্য ইনপুট নিতে ব্যবহৃত হয়, যেমন নাম, ঠিকানা ইত্যাদি।
  • CheckBox হ্যাঁ/না ধরনের ইনপুট গ্রহণ করতে ব্যবহৃত হয়, যেমন চুক্তির শর্তাবলী সম্মত হওয়া বা না হওয়া।
  • RadioButton ব্যবহারকারীদের মধ্যে একাধিক অপশন থেকে একটি অপশন নির্বাচন করতে সহায়তা করে, যেমন লিঙ্গ নির্বাচন (পুরুষ, মহিলা)।

পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে TextField, CheckBox, এবং RadioButton যোগ করা খুবই সহজ এবং এটি পিডিএফ ফর্ম ফিল্ডগুলির জন্য কার্যকরী সমাধান প্রদান করে। এই ফর্ম ফিল্ডগুলির মাধ্যমে পিডিএফ ডকুমেন্টে ইন্টারঅ্যাকটিভ ইনপুট গ্রহণ করা সম্ভব।

Content added By

পিডিএফবক্স (PDFBox) লাইব্রেরি ব্যবহার করে আপনি পিডিএফ ডকুমেন্টের ফর্ম ফিল্ড পূরণ এবং সেগুলোর ডেটা এক্সট্র্যাক্ট (read) করতে পারেন। পিডিএফ ফর্ম ফিল্ডগুলি সাধারণত টেক্সট বক্স, চেকবক্স, রেডিও বাটন ইত্যাদি নিয়ে তৈরি হয়। পিডিএফবক্সে এই ফর্ম ফিল্ডগুলোর সাথে কাজ করতে PDDocument, PDAcroForm, এবং PDField ক্লাস ব্যবহার করা হয়।

ফর্ম ফিল্ড পূরণ করা

পিডিএফ ফর্ম ফিল্ডে ডেটা যোগ করার জন্য, আপনাকে প্রথমে ফর্ম ফিল্ডটি খুঁজে বের করতে হবে এবং তারপর এর মান সেট করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি পিডিএফ ফর্মের টেক্সট ফিল্ড পূর্ণ করা হচ্ছে।

কোড উদাহরণ: পিডিএফ ফর্ম ফিল্ড পূরণ করা

PDDocument document = PDDocument.load(new File("form.pdf"));
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();

// টেক্সট ফিল্ড খুঁজে বের করা এবং মান সেট করা
PDTextField nameField = (PDTextField) acroForm.getField("name");
nameField.setValue("John Doe");

PDTextField emailField = (PDTextField) acroForm.getField("email");
emailField.setValue("johndoe@example.com");

// পিডিএফ ডকুমেন্ট সংরক্ষণ করা
document.save("filledForm.pdf");
document.close();

এখানে, getField মেথড ব্যবহার করে ফিল্ডের নাম ("name" এবং "email") দ্বারা ফর্ম ফিল্ডটি খুঁজে বের করা হয়েছে এবং setValue মেথডের মাধ্যমে প্রতিটি ফিল্ডে মান প্রদান করা হয়েছে। এর পর, পিডিএফ ডকুমেন্টটি সংরক্ষণ করা হয়েছে।

চেকবক্স বা রেডিও বাটন ফিল্ড পূরণ করা

পিডিএফ ফর্মে চেকবক্স বা রেডিও বাটন ফিল্ডও থাকতে পারে। এগুলি পূরণ করতে, PDCheckbox এবং PDRadioButton ক্লাস ব্যবহার করা হয়।

কোড উদাহরণ: চেকবক্স পূরণ করা

PDDocument document = PDDocument.load(new File("form.pdf"));
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();

// চেকবক্স ফিল্ড খুঁজে বের করা এবং মান সেট করা
PDCheckbox checkboxField = (PDCheckbox) acroForm.getField("agreeTerms");
checkboxField.check();

// পিডিএফ ডকুমেন্ট সংরক্ষণ করা
document.save("filledCheckboxForm.pdf");
document.close();

এখানে, check() মেথড ব্যবহার করে চেকবক্সটি চেক করা হয়েছে।

পিডিএফ ফর্ম থেকে ডেটা রিড (Extracting Data)

পিডিএফ ফর্ম ফিল্ড থেকে ডেটা রিড করতে, আপনি getField মেথড ব্যবহার করে ফর্ম ফিল্ডগুলোর মান পেতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি পূর্ণাঙ্গ পিডিএফ ফর্ম থেকে ডেটা রিড করা হচ্ছে।

কোড উদাহরণ: পিডিএফ ফর্ম থেকে ডেটা রিড করা

PDDocument document = PDDocument.load(new File("filledForm.pdf"));
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();

// টেক্সট ফিল্ডের মান রিড করা
PDTextField nameField = (PDTextField) acroForm.getField("name");
String name = nameField.getValue();

PDTextField emailField = (PDTextField) acroForm.getField("email");
String email = emailField.getValue();

// চেকবক্সের মান রিড করা
PDCheckbox checkboxField = (PDCheckbox) acroForm.getField("agreeTerms");
boolean isChecked = checkboxField.isChecked();

System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("Terms Agreed: " + (isChecked ? "Yes" : "No"));

document.close();

এখানে, getValue() মেথড ব্যবহার করে টেক্সট ফিল্ডের মান রিড করা হয়েছে, এবং isChecked() মেথড ব্যবহার করে চেকবক্সের মান রিড করা হয়েছে।

পিডিএফ ফর্ম ফিল্ডের বৈধতা পরীক্ষা করা

পিডিএফ ফর্মে কিছু ক্ষেত্রে ফিল্ডের মান চেক করতে হতে পারে। PDAcroForm ক্লাসে isValid মেথড আছে যা ফর্মের সকল ফিল্ড সঠিকভাবে পূর্ণ হয়েছে কিনা তা পরীক্ষা করতে সহায়ক।

কোড উদাহরণ: ফর্ম ফিল্ডের বৈধতা পরীক্ষা করা

PDDocument document = PDDocument.load(new File("filledForm.pdf"));
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();

// ফর্মের বৈধতা পরীক্ষা করা
if (acroForm.isValid()) {
    System.out.println("The form is valid!");
} else {
    System.out.println("The form is invalid!");
}

document.close();

পিডিএফবক্স ব্যবহার করে আপনি পিডিএফ ফর্ম ফিল্ডে ডেটা পূরণ করতে এবং পূর্ণ হওয়া ডেটা এক্সট্র্যাক্ট (রিড) করতে পারেন। এটি পিডিএফ ফর্মের সাথে কাজ করার জন্য একটি শক্তিশালী টুল, যা ডকুমেন্টের বিভিন্ন ফিল্ডের তথ্য ব্যবহারে সহায়ক।

Content added By

পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে পিডিএফ ফর্ম তৈরি করা খুবই সহজ এবং কার্যকর। আপনি ফর্ম ফিল্ড যেমন টেক্সট ফিল্ড, রেডিও বাটন, চেকবক্স ইত্যাদি পিডিএফ ডকুমেন্টে ইনসার্ট করতে পারেন। এখানে একটি উদাহরণ দেওয়া হয়েছে, যেখানে একটি পিডিএফ ফর্ম তৈরি করা হয়েছে।

পিডিএফ ফর্ম তৈরি করার উদাহরণ

এই উদাহরণে আমরা একটি পিডিএফ ফর্ম তৈরি করব, যেখানে একটি টেক্সট ফিল্ড এবং একটি চেকবক্স থাকবে।

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDAcroForm;
import org.apache.pdfbox.pdmodel.form.PDTextField;
import org.apache.pdfbox.pdmodel.form.PDCheckbox;

import java.io.IOException;

public class PDFFormExample {

    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();

            // নতুন পিডিএফ পেজ তৈরি
            PDPage page = new PDPage(PDRectangle.A4);
            document.addPage(page);

            // ফর্ম তৈরি করার জন্য PDAcroForm ব্যবহার
            PDAcroForm acroForm = new PDAcroForm(document);
            document.getRoot().setItem("AcroForm", acroForm);

            // টেক্সট ফিল্ড তৈরি
            PDTextField textField = new PDTextField(acroForm);
            textField.setPartialName("nameField");
            acroForm.getFields().add(textField);

            // ফর্ম পেজে টেক্সট ফিল্ডের অবস্থান নির্ধারণ করা
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.beginText();
            contentStream.setFont(org.apache.pdfbox.pdmodel.font.PDType1Font.HELVETICA_BOLD, 12);
            contentStream.newLineAtOffset(100, 750);
            contentStream.showText("Enter your name:");
            contentStream.endText();

            // টেক্সট ফিল্ডের স্থান নির্ধারণ করা
            textField.setWidget(new PDRectangle(200, 740, 200, 20));
            contentStream.close();

            // চেকবক্স তৈরি
            PDCheckbox checkbox = new PDCheckbox(acroForm);
            checkbox.setPartialName("agreeBox");
            acroForm.getFields().add(checkbox);

            // ফর্ম পেজে চেকবক্সের অবস্থান নির্ধারণ করা
            contentStream = new PDPageContentStream(document, page);
            contentStream.beginText();
            contentStream.setFont(org.apache.pdfbox.pdmodel.font.PDType1Font.HELVETICA_BOLD, 12);
            contentStream.newLineAtOffset(100, 700);
            contentStream.showText("I agree to the terms and conditions:");
            contentStream.endText();

            // চেকবক্সের স্থান নির্ধারণ করা
            checkbox.setWidget(new PDRectangle(200, 690, 20, 20));
            contentStream.close();

            // পিডিএফ ডকুমেন্ট সেভ করা
            document.save("form_example.pdf");

            // ডকুমেন্ট বন্ধ করা
            document.close();

            System.out.println("পিডিএফ ফর্ম সফলভাবে তৈরি করা হয়েছে।");
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • PDAcroForm: পিডিএফ ফর্ম তৈরির জন্য এটি ব্যবহৃত হয়। এটি পিডিএফ ডকুমেন্টের একটি অবজেক্ট যা ফর্ম ফিল্ডগুলো ধারণ করে।
  • PDTextField: এটি একটি টেক্সট ফিল্ড তৈরি করার জন্য ব্যবহৃত হয়, যেখানে ইউজার ইনপুট দিতে পারে।
  • PDCheckbox: এটি একটি চেকবক্স তৈরি করার জন্য ব্যবহৃত হয়।
  • setWidget(): এটি ফর্ম ফিল্ডের অবস্থান (স্থান) নির্ধারণ করতে ব্যবহৃত হয়, যেমন টেক্সট ফিল্ড বা চেকবক্সের কোঅর্ডিনেট।
  • contentStream.beginText() এবং contentStream.showText(): পিডিএফ পৃষ্ঠায় টেক্সট যোগ করার জন্য ব্যবহৃত হয়।

আউটপুট

এই কোডটি রান করলে একটি form_example.pdf ফাইল তৈরি হবে, যেখানে একটি টেক্সট ফিল্ড এবং একটি চেকবক্স থাকবে। আপনি এই ফর্মটি পিডিএফ রিডার দ্বারা ওপেন করে ইনপুট দিতে পারবেন।


এইভাবে, পিডিএফবক্স (PDFBox) ব্যবহার করে Java-তে পিডিএফ ফর্ম তৈরি করা যায়। এটি পিডিএফ ডকুমেন্টে ডাইনামিক ইনপুট ফিল্ড যোগ করতে সাহায্য করে, যেমন টেক্সট ফিল্ড, চেকবক্স, রেডিও বাটন ইত্যাদি।

Content added By
Promotion

Are you sure to start over?

Loading...