PDF থেকে Images এবং Graphics পড়া

PDF থেকে ডেটা পড়া - পিডিএফবক্স (PDFbox) - Java Technologies

311

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

পিডিএফ থেকে ইমেজ পড়া

পিডিএফ ডকুমেন্ট থেকে ইমেজ বের করার জন্য PDFBox এর PDFImageReader ক্লাস ব্যবহার করা হয়। পিডিএফ ফাইলের ইমেজগুলি সাধারণত অটোমেটিকভাবে এক্সট্র্যাক্ট করা সম্ভব না হলে, কিছু অতিরিক্ত কোডিংয়ের মাধ্যমে ইমেজ পাওয়া যায়।

পিডিএফ থেকে গ্রাফিক্স পড়া

গ্রাফিক্স (যেমন লাইন, আয়তক্ষেত্র, বৃত্ত) এক্সট্র্যাক্ট করতে PDFTextStripper বা Graphics2D ব্যবহার করা যেতে পারে। তবে গ্রাফিক্স এক্সট্র্যাকশন সাধারণত বেশি চ্যালেঞ্জিং হতে পারে, কারণ পিডিএফে গ্রাফিক্স প্রায়শই একটি বিটম্যাপ বা পাথ হিসেবে থাকে, যা সহজভাবে এক্সট্র্যাক্ট করা যায় না।

পিডিএফ থেকে ইমেজ এক্সট্র্যাক্ট করার উদাহরণ

নিচে একটি উদাহরণ দেওয়া হল, যেখানে একটি পিডিএফ ডকুমেন্ট থেকে ইমেজ এক্সট্র্যাক্ট করা হয়েছে।

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ExtractImagesFromPDF {

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

            // প্রথম পৃষ্ঠার ইমেজ রেন্ডার করা
            BufferedImage image = pdfRenderer.renderImage(0); // পৃষ্ঠা 0 এর জন্য
            ImageIO.write(image, "PNG", new File("page_1_image.png"));

            document.close();
            System.out.println("ইমেজ এক্সট্র্যাক্ট করা হয়েছে!");

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

কোড ব্যাখ্যা

  • PDDocument.load(): এটি পিডিএফ ডকুমেন্ট লোড করার জন্য ব্যবহৃত হয়।
  • PDFRenderer: এটি পিডিএফ ডকুমেন্টের পৃষ্ঠাগুলি ইমেজে রেন্ডার করে। এখানে আমরা প্রথম পৃষ্ঠার ইমেজ এক্সট্র্যাক্ট করেছি।
  • renderImage(): এটি পিডিএফ পৃষ্ঠা থেকে একটি BufferedImage তৈরি করে, যা ইমেজ ফাইল হিসেবে সেভ করা যেতে পারে।
  • ImageIO.write(): এটি রেন্ডার করা ইমেজটিকে একটি ফাইল (যেমন PNG) ফরম্যাটে সেভ করে।

পিডিএফ থেকে গ্রাফিক্স পড়ার উদাহরণ

গ্রাফিক্স এক্সট্র্যাক্ট করার জন্য বিশেষ কোনো API বা সরাসরি পদ্ধতি নেই, তবে কিছু সময় PDFTextStripper বা Graphics2D ব্যবহার করে পিডিএফের ভিজ্যুয়াল উপাদান পড়া সম্ভব।

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.IOException;

public class ExtractTextFromPDF {

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

            // পিডিএফের টেক্সট এক্সট্র্যাক্ট করা
            PDFTextStripper stripper = new PDFTextStripper();
            String text = stripper.getText(document);

            System.out.println("পিডিএফ টেক্সট: ");
            System.out.println(text);

            document.close();

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

কোড ব্যাখ্যা

  • PDFTextStripper: এটি পিডিএফ থেকে টেক্সট এক্সট্র্যাক্ট করার জন্য ব্যবহৃত হয়। যদিও এটি গ্রাফিক্সের জন্য ব্যবহৃত নয়, তবে গ্রাফিক্সের সাথে সম্পর্কিত টেক্সট অথবা কনটেন্ট এক্সট্র্যাক্ট করা সম্ভব।
  • getText(): এটি পিডিএফ ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাক্ট করে।

সারাংশ

পিডিএফবক্স লাইব্রেরি ব্যবহার করে পিডিএফ ডকুমেন্ট থেকে ইমেজ এবং কিছুটা গ্রাফিক্স এক্সট্র্যাক্ট করা সম্ভব, যদিও গ্রাফিক্স এক্সট্র্যাকশন একটি জটিল প্রক্রিয়া হতে পারে এবং অনেক সময় তৃতীয় পক্ষের লাইব্রেরি বা অতিরিক্ত কোডিংয়ের প্রয়োজন হতে পারে। পিডিএফ থেকে ইমেজ পড়তে PDFRenderer এবং গ্রাফিক্স এক্সট্র্যাক্ট করতে PDFTextStripper বা Graphics2D ব্যবহার করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...