পিডিএফবক্স (PDFBox) ব্যবহার করে পিডিএফ ডকুমেন্টে ইমেজ যোগ করার জন্য PDImageXObject ক্লাস ব্যবহার করা হয়। এই ক্লাসটি পিডিএফ ডকুমেন্টে ইমেজ এক্সট্র্যাক্ট, লোড এবং প্রিন্ট করার জন্য প্রয়োজনীয় টুলস প্রদান করে।
PDImageXObject ক্লাস
PDImageXObject পিডিএফ ডকুমেন্টে ইমেজ যোগ করার জন্য একটি অবজেক্ট রিপ্রেজেন্টেশন তৈরি করে। এটি সাধারণত PDPageContentStream ক্লাসের সাথে ব্যবহৃত হয় যাতে পিডিএফ পৃষ্ঠায় ইমেজ রেন্ডার করা যায়।
পিডিএফে ইমেজ যোগ করার কোড উদাহরণ
নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি পিডিএফ ডকুমেন্টে ইমেজ যোগ করা হচ্ছে:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDImageXObject;
import java.io.File;
import java.io.IOException;
public class AddImageToPDF {
public static void main(String[] args) throws IOException {
// পিডিএফ ডকুমেন্ট তৈরি করা
PDDocument document = new PDDocument();
// একটি পৃষ্ঠা তৈরি করা
PDPage page = new PDPage();
document.addPage(page);
// ইমেজ লোড করা
PDImageXObject pdImage = PDImageXObject.createFromFile("path/to/your/image.jpg", document);
// পৃষ্ঠা কনটেন্ট স্ট্রিম তৈরি করা
PDPageContentStream contentStream = new PDPageContentStream(document, page);
// ইমেজ পৃষ্ঠা পজিশনে যোগ করা
contentStream.drawImage(pdImage, 100, 600); // X, Y পজিশন
contentStream.close();
// পিডিএফ সেভ করা
document.save("output.pdf");
document.close();
}
}
কোডের ব্যাখ্যা
- PDImageXObject.createFromFile(): এই মেথডটি ইমেজ ফাইল থেকে
PDImageXObjectতৈরি করে, যেটি পিডিএফ ডকুমেন্টে যোগ করার জন্য প্রস্তুত। - drawImage(): এই মেথডটি ইমেজটিকে পিডিএফ পৃষ্ঠায় নির্দিষ্ট পজিশনে (X, Y) রেন্ডার করতে ব্যবহার হয়।
- PDPageContentStream: এই ক্লাসটি পিডিএফ পৃষ্ঠার কনটেন্ট স্ট্রিম পরিচালনা করে, যার মাধ্যমে গ্রাফিক্স এবং টেক্সট আর্গুমেন্ট পাঠানো হয়।
ইমেজ পজিশন কাস্টমাইজ করা
পিডিএফ ডকুমেন্টে ইমেজের পজিশন কাস্টমাইজ করা সম্ভব। আপনি ইমেজের X এবং Y কোঅর্ডিনেট পরিবর্তন করতে পারেন। উপরোক্ত উদাহরণে, ইমেজটি 100 পিক্সেল ডানদিকে এবং 600 পিক্সেল উপরে (পৃষ্ঠার নিচ থেকে) অবস্থান করবে।
ইমেজ আকার কাস্টমাইজ করা
পিডিএফে ইমেজের আকার কাস্টমাইজ করতে হলে, drawImage() মেথডে সাইজ প্যারামিটারও দেওয়া যেতে পারে। উদাহরণস্বরূপ:
contentStream.drawImage(pdImage, 100, 600, 200, 100); // Width: 200, Height: 100
এইভাবে, আপনি ইমেজের আকার নির্ধারণ করতে পারবেন।
পিডিএফবক্স ব্যবহার করে পিডিএফ ডকুমেন্টে ইমেজ যোগ করা সহজ এবং কার্যকরী পদ্ধতি। PDImageXObject ক্লাস এবং PDPageContentStream এর মাধ্যমে আপনি ইমেজ লোড, রেন্ডার এবং কাস্টমাইজ করতে পারেন, যা পিডিএফ ডকুমেন্টের জন্য প্রয়োজনীয় বিভিন্ন গ্রাফিক্স অপারেশনকে সহজ করে তোলে।
Read more