পিডিএফবক্স (PDFBox) শুধুমাত্র পিডিএফ ডকুমেন্ট তৈরি এবং টেক্সট ম্যানিপুলেশনের জন্য ব্যবহৃত নয়, এটি পিডিএফ ডকুমেন্টে গ্রাফিক্স (যেমন রেখা, আয়তন, বৃত্ত ইত্যাদি) ড্র করার জন্যও ব্যবহৃত হতে পারে। পিডিএফ ডকুমেন্টে গ্রাফিক্স অঙ্কন করতে PDPageContentStream ক্লাস ব্যবহার করা হয়, যা পিডিএফ পৃষ্ঠায় বিভিন্ন গ্রাফিক্যাল উপাদান যোগ করতে সহায়ক।
গ্রাফিক্স ড্র করার প্রক্রিয়া
পিডিএফবক্স ব্যবহার করে গ্রাফিক্স অঙ্কন করতে আপনাকে কয়েকটি স্টেপ অনুসরণ করতে হবে:
- PDDocument তৈরি করুন: এটি পিডিএফ ডকুমেন্টের একটি অবজেক্ট তৈরি করবে।
- PDPage যোগ করুন: পিডিএফ ডকুমেন্টে একটি বা একাধিক পেজ যোগ করতে হবে।
- PDPageContentStream তৈরি করুন: পৃষ্ঠার কনটেন্ট স্ট্রিম তৈরি করতে হবে যা গ্রাফিক্স অঙ্কন করতে সহায়ক।
- গ্রাফিক্স ড্র করুন:
moveTo(),lineTo(),drawLine(),drawCircle()ইত্যাদি গ্রাফিক্স অঙ্কনের পদ্ধতি ব্যবহার করে প্রয়োজনীয় গ্রাফিক্স অঙ্কন করা হয়। - ডকুমেন্ট সেভ করুন: গ্রাফিক্স ড্র করার পর ডকুমেন্ট সেভ করতে হয়।
উদাহরণ: একটি পিডিএফে গ্রাফিক্স ড্র করা
নিম্নলিখিত কোডটি একটি পিডিএফ ডকুমেন্টে রেখা, আয়তন এবং বৃত্ত ড্র করবে:
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import java.io.IOException;
public class PDFGraphicsExample {
public static void main(String[] args) {
// পিডিএফ ডকুমেন্ট তৈরি করুন
PDDocument document = new PDDocument();
// একটি নতুন পেজ তৈরি করুন
PDPage page = new PDPage();
document.addPage(page);
try {
// পৃষ্ঠায় কনটেন্ট যোগ করার জন্য ContentStream তৈরি করুন
PDPageContentStream contentStream = new PDPageContentStream(document, page);
// রেখা আঁকুন (Line)
contentStream.setLineWidth(2); // রেখার প্রস্থ নির্ধারণ
contentStream.moveTo(100, 700); // রেখার শুরু পয়েন্ট
contentStream.lineTo(400, 700); // রেখার শেষ পয়েন্ট
contentStream.stroke(); // রেখা আঁকার জন্য stroke ব্যবহার করুন
// আয়তন আঁকুন (Rectangle)
contentStream.setLineWidth(1);
contentStream.moveTo(100, 600); // আয়তনের একটি কোণা
contentStream.lineTo(300, 600); // আয়তনের অন্য কোণা
contentStream.lineTo(300, 500); // আয়তনের আরেক কোণা
contentStream.lineTo(100, 500); // আয়তনের শেষ কোণা
contentStream.closePath(); // আয়তন আঁকা সম্পন্ন
contentStream.stroke(); // আয়তন আঁকার জন্য stroke ব্যবহার করুন
// বৃত্ত আঁকুন (Circle)
contentStream.setLineWidth(1);
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(150, 400);
contentStream.showText("Circle Below:");
contentStream.endText();
contentStream.drawCircle(200, 350, 50); // বৃত্ত আঁকুন (কেন্দ্রবিন্দু (200,350), ব্যাসার্ধ 50)
contentStream.stroke();
// কনটেন্ট স্ট্রিম বন্ধ করুন
contentStream.close();
// পিডিএফ ডকুমেন্টটি সেভ করুন
document.save("graphics_example.pdf");
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোডের ব্যাখ্যা
- PDDocument document = new PDDocument();
এটি একটি নতুন পিডিএফ ডকুমেন্ট তৈরি করে। - PDPage page = new PDPage();
এটি একটি নতুন পিডিএফ পেজ তৈরি করে এবংdocument.addPage(page);এর মাধ্যমে ডকুমেন্টে যোগ করা হয়। - PDPageContentStream contentStream = new PDPageContentStream(document, page);
এটি পিডিএফ পৃষ্ঠার কনটেন্ট স্ট্রিম তৈরি করে, যার মাধ্যমে পিডিএফে গ্রাফিক্স ড্র করা যায়। - contentStream.setLineWidth(2);
এটি রেখার প্রস্থ (width) নির্ধারণ করে। - contentStream.moveTo(x, y);
এটি রেখার শুরুর পয়েন্ট নির্ধারণ করে। - contentStream.lineTo(x, y);
এটি রেখার শেষ পয়েন্ট নির্ধারণ করে এবং রেখাটি ড্র করে। - contentStream.stroke();
এটি রেখাটি অঙ্কন করার জন্য ব্যবহৃত হয়। - contentStream.drawCircle(x, y, radius);
এটি বৃত্ত আঁকার জন্য ব্যবহৃত হয়, যেখানেxওyহচ্ছে বৃত্তের কেন্দ্র এবংradiusহচ্ছে বৃত্তের ব্যাসার্ধ। - document.save("graphics_example.pdf");
এটি পিডিএফ ডকুমেন্টটি সেভ করে এবংgraphics_example.pdfনামে ফাইলটি তৈরি হয়।
উপসংহার
পিডিএফবক্স (PDFBox) ব্যবহার করে Java-তে পিডিএফ ডকুমেন্টে গ্রাফিক্স অঙ্কন করা অত্যন্ত সহজ এবং কার্যকর। আপনি পিডিএফে রেখা, আয়তন, বৃত্ত এবং অন্যান্য গ্রাফিক্স উপাদান যোগ করতে পারবেন। এই বৈশিষ্ট্যটি পিডিএফ ডকুমেন্টে গ্রাফিক্যাল কন্টেন্ট যেমন ডায়াগ্রাম, চার্ট ইত্যাদি যোগ করতে সহায়ক।
Read more