পিডিএফবক্স (PDFBox) ব্যবহার করে পিডিএফ ডকুমেন্ট থেকে ফন্ট এবং ইমেজ এক্সট্র্যাক্ট করা সম্ভব। এতে বিভিন্ন পিডিএফ উপাদান যেমন টেক্সট, ইমেজ এবং ফন্ট এক্সট্র্যাকশন করা যায়। এই টিউটোরিয়ালে আমরা ফন্ট এবং ইমেজ এক্সট্র্যাকশনের পদ্ধতি এবং সেগুলির কোড উদাহরণ দেখবো।
ফন্ট এক্সট্র্যাকশন
পিডিএফবক্সের মাধ্যমে পিডিএফ ডকুমেন্ট থেকে ফন্ট এক্সট্র্যাক্ট করা সহজ নয়, কারণ পিডিএফ ফাইলের মধ্যে সাধারণত ফন্টগুলো এমবেডেড থাকে এবং এগুলো সরাসরি এক্সট্র্যাক্ট করার জন্য বিশেষ কোড প্রয়োজন হয়। তবে, আপনি পিডিএফ ডকুমেন্ট থেকে ফন্ট নাম এবং ফন্ট স্টাইল বের করতে পারেন।
ফন্ট নাম এক্সট্র্যাকশন উদাহরণ:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.pdmodel.font.PDFont;
import java.io.File;
import java.io.IOException;
public class FontExtractor {
public static void main(String[] args) {
try {
// পিডিএফ ডকুমেন্ট লোড করা
File file = new File("example.pdf");
PDDocument document = PDDocument.load(file);
// পিডিএফ পৃষ্ঠার ফন্ট এক্সট্র্যাক্ট করা
PDPage page = document.getPage(0); // প্রথম পৃষ্ঠা নির্বাচন করা
PDFTextStripper stripper = new PDFTextStripper();
// ফন্ট স্টাইলের তথ্য প্রদর্শন করা
stripper.setStartPage(1);
stripper.setEndPage(1);
String text = stripper.getText(document);
// ফন্ট নাম এবং ফন্ট স্টাইলের তথ্য প্রিন্ট করা
System.out.println("Extracted Text: ");
System.out.println(text);
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা:
এই কোডে, পিডিএফ ডকুমেন্টের ফন্ট নাম সরাসরি এক্সট্র্যাক্ট করা সম্ভব নয়, কিন্তু আপনি পিডিএফ থেকে টেক্সট এক্সট্র্যাক্ট করে ফন্ট এবং স্টাইলের পরিবর্তনগুলো আলাদাভাবে চিহ্নিত করতে পারেন।
ইমেজ এক্সট্র্যাকশন
পিডিএফবক্স ব্যবহার করে পিডিএফ ডকুমেন্ট থেকে এমবেডেড ইমেজ এক্সট্র্যাক্ট করা যায়। ইমেজ এক্সট্র্যাক্ট করার জন্য PDFImageExtractor অথবা ImageExtraction ক্লাস ব্যবহার করা হয়।
ইমেজ এক্সট্র্যাকশন উদাহরণ:
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 org.apache.pdfbox.text.PDFTextStripper;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class ImageExtractor {
public static void main(String[] args) {
try {
// পিডিএফ ডকুমেন্ট লোড করা
File file = new File("example.pdf");
PDDocument document = PDDocument.load(file);
// প্রথম পৃষ্ঠা থেকে ইমেজ এক্সট্র্যাক্ট করা
PDPage page = document.getPage(0);
// পিডিএফ পৃষ্ঠার সমস্ত ইমেজ এক্সট্র্যাক্ট করা
List<PDImageXObject> images = page.getResources().getImages();
for (PDImageXObject image : images) {
// ইমেজ সেভ করা
File outputfile = new File("extracted_image.jpg");
ImageIO.write(image.getImage(), "jpg", outputfile);
System.out.println("Image extracted and saved as extracted_image.jpg");
}
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা:
- PDImageXObject: এটি পিডিএফের মধ্যে অবস্থিত ইমেজ এক্সট্র্যাক্ট করার জন্য ব্যবহৃত হয়। এখানে
getImages()মেথড দিয়ে পিডিএফ পৃষ্ঠার সমস্ত ইমেজ এক্সট্র্যাক্ট করা হচ্ছে। - ImageIO.write(): এটি ইমেজকে নির্দিষ্ট ফরম্যাটে ফাইল হিসেবে সেভ করার জন্য ব্যবহৃত হয়। এখানে ইমেজ
jpgফরম্যাটে সেভ করা হচ্ছে।
সারাংশ
পিডিএফবক্স লাইব্রেরি ব্যবহার করে আপনি পিডিএফ ডকুমেন্ট থেকে ফন্ট এবং ইমেজ এক্সট্র্যাক্ট করতে পারেন। ফন্ট এক্সট্র্যাকশনের ক্ষেত্রে কিছু সীমাবদ্ধতা থাকতে পারে, তবে টেক্সট এবং ইমেজ এক্সট্র্যাকশন সম্পূর্ণরূপে কার্যকর। ইমেজ এক্সট্র্যাকশন একটি সহজ প্রক্রিয়া যেখানে পিডিএফ পৃষ্ঠায় উপস্থিত ইমেজগুলো আলাদাভাবে সেভ করা যায়।