PDF থেকে ইমেজ এক্সট্র্যাকশন করা

PDF ফাইল থেকে ফন্ট এবং ইমেজ এক্সট্র্যাকশন - পিডিএফবক্স (PDFbox) - Java Technologies

320

পিডিএফবক্স (PDFBox) Java ব্যবহার করে পিডিএফ ফাইল থেকে ইমেজ এক্সট্র্যাকশন করা সম্ভব। অনেক সময় পিডিএফ ডকুমেন্টে থাকা ইমেজগুলি বের করা দরকার হয়, যেমন লোগো, স্ক্যান করা পৃষ্ঠা ইত্যাদি। পিডিএফবক্স এই কাজটি সহজেই সম্পাদন করতে পারে। এই প্রক্রিয়া বাস্তবায়ন করার জন্য PDFRenderer এবং PDPage ক্লাস ব্যবহার করা হয়।

ইমেজ এক্সট্র্যাকশন প্রক্রিয়া

পিডিএফ থেকে ইমেজ এক্সট্র্যাক্ট করার জন্য নিচের স্টেপগুলো অনুসরণ করতে হবে:

  1. PDDocument লোড করুন: পিডিএফ ডকুমেন্টটি লোড করতে হবে।
  2. PDFRenderer তৈরি করুন: এটি পিডিএফ পৃষ্ঠাগুলোর গ্রাফিক্স (যেমন ইমেজ) রেন্ডার করতে ব্যবহৃত হয়।
  3. ইমেজ এক্সট্র্যাক্ট করুন: renderImage() মেথড ব্যবহার করে পিডিএফ পৃষ্ঠার ইমেজ বের করা হয়।
  4. ইমেজ সেভ করুন: এক্সট্র্যাক্ট করা ইমেজটি সেভ করুন।

উদাহরণ: PDF থেকে ইমেজ এক্সট্র্যাকশন

নিম্নলিখিত কোডটি একটি পিডিএফ ফাইল থেকে প্রথম পৃষ্ঠার ইমেজ এক্সট্র্যাক্ট করবে এবং PNG ফরম্যাটে সেভ করবে:

import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.rendering.PDFRenderer;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;

public class PDFImageExtractionExample {

    public static void main(String[] args) {
        try {
            // পিডিএফ ডকুমেন্ট লোড করুন
            PDDocument document = PDDocument.load(new File("example.pdf"));

            // PDFRenderer তৈরি করুন
            PDFRenderer pdfRenderer = new PDFRenderer(document);

            // পিডিএফের প্রথম পৃষ্ঠার ইমেজ রেন্ডার করুন
            BufferedImage image = pdfRenderer.renderImage(0); // 0 হচ্ছে প্রথম পৃষ্ঠা

            // এক্সট্র্যাক্ট করা ইমেজ সেভ করুন (PNG ফরম্যাটে)
            ImageIO.write(image, "PNG", new File("extracted_image.png"));

            // ডকুমেন্ট বন্ধ করুন
            document.close();

            System.out.println("Image Extracted Successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোডের ব্যাখ্যা

  1. PDDocument document = PDDocument.load(new File("example.pdf"));
    এটি example.pdf নামক পিডিএফ ফাইলটি লোড করে।
  2. PDFRenderer pdfRenderer = new PDFRenderer(document);
    PDFRenderer ক্লাসের মাধ্যমে পিডিএফ ডকুমেন্ট থেকে পৃষ্ঠাগুলোর গ্রাফিক্স রেন্ডার করা যায়।
  3. BufferedImage image = pdfRenderer.renderImage(0);
    renderImage(0) মেথড প্রথম পৃষ্ঠার ইমেজ রেন্ডার করে। পৃষ্ঠা নম্বর 0 থেকে শুরু হয়, তাই প্রথম পৃষ্ঠা 0 ইনডেক্সে থাকবে।
  4. ImageIO.write(image, "PNG", new File("extracted_image.png"));
    এক্সট্র্যাক্ট করা ইমেজটি PNG ফরম্যাটে সেভ করা হয়।
  5. document.close();
    ডকুমেন্টটি বন্ধ করা হয় যাতে কোনো রিসোর্স লিক না হয়।

একাধিক পিডিএফ পৃষ্ঠার ইমেজ এক্সট্র্যাকশন

আপনি যদি একাধিক পিডিএফ পৃষ্ঠার ইমেজ এক্সট্র্যাক্ট করতে চান, তবে নিচের কোড ব্যবহার করতে পারেন:

for (int pageIndex = 0; pageIndex < document.getNumberOfPages(); pageIndex++) {
    BufferedImage image = pdfRenderer.renderImage(pageIndex);
    ImageIO.write(image, "PNG", new File("extracted_image_" + (pageIndex + 1) + ".png"));
}

এটি পিডিএফের প্রতিটি পৃষ্ঠা থেকে আলাদাভাবে ইমেজ এক্সট্র্যাক্ট করবে এবং তাদের নামকরণ করবে, যেমন extracted_image_1.png, extracted_image_2.png ইত্যাদি।

উপসংহার

পিডিএফবক্স (PDFBox) ব্যবহার করে পিডিএফ থেকে ইমেজ এক্সট্র্যাকশন একটি সহজ প্রক্রিয়া। আপনি PDFRenderer ক্লাস ব্যবহার করে পিডিএফ পৃষ্ঠাগুলোর গ্রাফিক্স (ইমেজ) রেন্ডার এবং এক্সট্র্যাক্ট করতে পারবেন এবং পরে সেগুলি ইমেজ ফরম্যাটে সেভ করতে পারবেন। এটি পিডিএফ ডকুমেন্টে থাকা গ্রাফিক্যাল কন্টেন্ট যেমন ছবি, লোগো বা স্ক্যান করা পৃষ্ঠা এক্সট্র্যাক্ট করার জন্য উপকারী।

Content added By
Promotion

Are you sure to start over?

Loading...