পিডিএফবক্স (PDFBox) Java ব্যবহার করে কাস্টম পিডিএফ কম্পোনেন্ট তৈরি করা সম্ভব। পিডিএফের বিভিন্ন কম্পোনেন্ট যেমন টেক্সট, ছবি, আয়তন, এবং লাইন ইত্যাদি কাস্টমাইজ করতে হলে, আপনাকে PDPageContentStream ক্লাসের মাধ্যমে কাস্টম গ্রাফিক্স এবং কন্টেন্ট তৈরি করতে হবে। আপনি আপনার প্রয়োজন অনুযায়ী পিডিএফে কাস্টম উপাদান যেমন ফর্ম, কাস্টম গ্রাফিক্স, টেবিল ইত্যাদি তৈরি করতে পারেন।
কাস্টম পিডিএফ কম্পোনেন্ট তৈরির প্রক্রিয়া
কাস্টম পিডিএফ কম্পোনেন্ট তৈরি করতে, সাধারণত নিচের স্টেপগুলো অনুসরণ করতে হয়:
- PDDocument তৈরি করুন: একটি নতুন পিডিএফ ডকুমেন্ট তৈরি করুন।
- PDPage যোগ করুন: একটি নতুন পিডিএফ পেজ তৈরি করুন।
- PDPageContentStream ব্যবহার করুন: পিডিএফ পৃষ্ঠায় কাস্টম কন্টেন্ট বা গ্রাফিক্স যোগ করার জন্য
PDPageContentStreamব্যবহার করুন। - টেক্সট, আয়তন, ছবি ইত্যাদি যোগ করুন: পিডিএফ পৃষ্ঠায় কাস্টম কম্পোনেন্ট যোগ করুন।
- ডকুমেন্ট সেভ করুন: কাস্টম কম্পোনেন্ট সহ পিডিএফ ডকুমেন্টটি সেভ করুন।
উদাহরণ: কাস্টম পিডিএফ কম্পোনেন্ট তৈরি করা
নিম্নলিখিত কোডটি একটি কাস্টম পিডিএফ কম্পোনেন্ট তৈরি করবে, যেখানে একটি টেক্সট, আয়তন এবং একটি গ্রাফিক্স উপাদান থাকবে:
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.IOException;
public class CustomPDFComponentExample {
public static void main(String[] args) {
// পিডিএফ ডকুমেন্ট তৈরি করুন
PDDocument document = new PDDocument();
// একটি নতুন পেজ তৈরি করুন
PDPage page = new PDPage();
document.addPage(page);
try {
// কাস্টম কন্টেন্ট যোগ করার জন্য PDPageContentStream তৈরি করুন
PDPageContentStream contentStream = new PDPageContentStream(document, page);
// টেক্সট যোগ করুন
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 16); // ফন্ট এবং আকার নির্ধারণ
contentStream.newLineAtOffset(100, 700); // টেক্সটের পজিশন
contentStream.showText("Custom PDF Component Example"); // টেক্সট প্রদর্শন
contentStream.endText();
// আয়তন (Rectangle) যোগ করুন
contentStream.setLineWidth(1);
contentStream.moveTo(100, 650); // আয়তনের একটি কোণা
contentStream.lineTo(300, 650); // আয়তনের অন্য কোণা
contentStream.lineTo(300, 550); // আয়তনের আরেক কোণা
contentStream.lineTo(100, 550); // আয়তনের শেষ কোণা
contentStream.closePath(); // আয়তন আঁকা সম্পন্ন
contentStream.stroke(); // আয়তন আঁকার জন্য stroke ব্যবহার করুন
// কাস্টম গ্রাফিক্স (যেমন, একটি বৃত্ত) যোগ করুন
contentStream.setLineWidth(2);
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(150, 450);
contentStream.showText("Circle Below:");
contentStream.endText();
contentStream.drawCircle(200, 400, 50); // বৃত্ত আঁকুন (কেন্দ্রবিন্দু (200,400), ব্যাসার্ধ 50)
contentStream.stroke();
// কনটেন্ট স্ট্রিম বন্ধ করুন
contentStream.close();
// পিডিএফ ডকুমেন্টটি সেভ করুন
document.save("custom_component_example.pdf");
document.close();
System.out.println("Custom PDF Component Created Successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোডের ব্যাখ্যা
- PDDocument document = new PDDocument();
এটি একটি নতুন পিডিএফ ডকুমেন্ট তৈরি করে। - PDPage page = new PDPage();
এটি একটি নতুন পিডিএফ পৃষ্ঠা তৈরি করে এবং ডকুমেন্টে যোগ করা হয়। - PDPageContentStream contentStream = new PDPageContentStream(document, page);
এটি পিডিএফ পৃষ্ঠার কনটেন্ট স্ট্রিম তৈরি করে, যা পৃষ্ঠায় কাস্টম কন্টেন্ট যোগ করতে ব্যবহৃত হয়। - contentStream.beginText();
এটি টেক্সট যোগ করার জন্য ব্যবহৃত হয় এবংcontentStream.showText()এর মাধ্যমে টেক্সট পৃষ্ঠায় যোগ করা হয়। - contentStream.moveTo(x, y); contentStream.lineTo(x, y);
এটি আয়তন (rectangle) আঁকার জন্য ব্যবহৃত হয়।moveTo()দিয়ে আয়তনের শুরু এবংlineTo()দিয়ে আয়তনের শেষ নির্ধারণ করা হয়। - contentStream.drawCircle(x, y, radius);
এটি বৃত্ত আঁকার জন্য ব্যবহৃত হয়। এখানে(x, y)হচ্ছে বৃত্তের কেন্দ্রবিন্দু এবংradiusহচ্ছে বৃত্তের ব্যাসার্ধ। - document.save("custom_component_example.pdf");
এটি কাস্টম কম্পোনেন্টসহ পিডিএফ ডকুমেন্টটি সেভ করে। - document.close();
ডকুমেন্টটি বন্ধ করা হয় যাতে রিসোর্স মুক্ত থাকে।
কাস্টম ফর্ম এবং অন্যান্য কম্পোনেন্ট
আপনি কাস্টম ফর্ম তৈরি করতে চাইলে পিডিএফবক্সের PDAnnotationWidget, PDTextField, PDBooleanCheckBox ইত্যাদি ক্লাস ব্যবহার করতে পারেন, যা আপনাকে ফর্ম তৈরি এবং পূর্ণ করতে সাহায্য করবে।
উপসংহার
পিডিএফবক্স (PDFBox) Java ব্যবহার করে কাস্টম পিডিএফ কম্পোনেন্ট তৈরি করা খুবই সহজ। আপনি PDPageContentStream ক্লাস ব্যবহার করে পিডিএফে টেক্সট, গ্রাফিক্স, আয়তন, বৃত্ত এবং অন্যান্য কাস্টম কম্পোনেন্ট যোগ করতে পারবেন। এই কাস্টমাইজেশন পিডিএফ ফাইলকে আরো ইন্টারেকটিভ এবং প্রফেশনাল করে তুলতে সহায়ক।