পিডিএফবক্স (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-তে পিডিএফ ফর্ম তৈরি করা যায়। এটি পিডিএফ ডকুমেন্টে ডাইনামিক ইনপুট ফিল্ড যোগ করতে সাহায্য করে, যেমন টেক্সট ফিল্ড, চেকবক্স, রেডিও বাটন ইত্যাদি।
Read more