PDF ম্যানিপুলেশন এবং Extraction এর জন্য Efficient Methods

PDFBox এর Performance Optimization - পিডিএফবক্স (PDFbox) - Java Technologies

312

PDFBox হল একটি শক্তিশালী ওপেন সোর্স লাইব্রেরি যা Java ব্যবহার করে পিডিএফ ডকুমেন্টের ম্যানিপুলেশন এবং এক্সট্রাকশন (Extracting content) পরিচালনা করার জন্য ব্যবহৃত হয়। এটি পিডিএফের টেক্সট, ইমেজ, মেটাডেটা, এবং অন্যান্য কন্টেন্ট এক্সট্র্যাক্ট এবং ম্যানিপুলেট করতে সাহায্য করে। পিডিএফের কার্যকরী ম্যানিপুলেশন এবং এক্সট্রাকশন করতে কিছু কার্যকরী পদ্ধতি (Efficient Methods) রয়েছে, যা কাজের গতি এবং কার্যকারিতা বাড়ায়।

এখানে PDFBox ব্যবহার করে পিডিএফ ম্যানিপুলেশন এবং এক্সট্রাকশনের জন্য কিছু কার্যকরী পদ্ধতির আলোচনা করা হবে।

পিডিএফ থেকে টেক্সট এক্সট্র্যাকশন

PDFBox এর PDFTextStripper ক্লাসটি পিডিএফ থেকে টেক্সট এক্সট্র্যাক্ট করতে ব্যবহৃত হয়। এটি অত্যন্ত কার্যকরী এবং অনেক কনফিগারেশন অপশন সরবরাহ করে, যেমন টেক্সট এক্সট্র্যাকশন এর পদ্ধতি নিয়ন্ত্রণ করা, এবং টেক্সটের অংশ বিশেষ এক্সট্র্যাক্ট করা।

উদাহরণ - পিডিএফ থেকে টেক্সট এক্সট্র্যাকশন

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;

public class PDFTextExtractionExample {
    public static void main(String[] args) throws IOException {
        File file = new File("input.pdf");
        PDDocument document = PDDocument.load(file);
        
        // PDFTextStripper অবজেক্ট তৈরি
        PDFTextStripper stripper = new PDFTextStripper();
        
        // এক পেজ বা কিছু নির্দিষ্ট পেজের টেক্সট এক্সট্র্যাক্ট করা
        stripper.setStartPage(1);  // প্রথম পেজ
        stripper.setEndPage(2);    // দ্বিতীয় পেজ
        String text = stripper.getText(document);
        
        // এক্সট্র্যাক্ট করা টেক্সট কনসোলে প্রিন্ট করা
        System.out.println(text);
        
        // ডকুমেন্ট বন্ধ করা
        document.close();
    }
}

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

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

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

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

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

public class PDFImageExtractionExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = PDDocument.load(new File("input.pdf"));
        PDFRenderer pdfRenderer = new PDFRenderer(document);

        // প্রথম পেজ থেকে ইমেজ এক্সট্র্যাক্ট করা
        BufferedImage image = pdfRenderer.renderImage(0);  // 0 হল প্রথম পেজ
        
        // ইমেজ ফাইল হিসেবে সেভ করা
        ImageIO.write(image, "JPEG", new File("extracted_image.jpg"));
        
        document.close();
    }
}

পিডিএফ পেজ ম্যানিপুলেশন

PDFBox আপনাকে পিডিএফ পেজ ম্যানিপুলেট করতে সাহায্য করে, যেমন পিডিএফের পেজের অর্ডার পরিবর্তন করা, পেজের একাধিক কপি তৈরি করা, এবং পিডিএফ পেজ যুক্ত বা মুছে ফেলা।

উদাহরণ - পিডিএফ পেজ যুক্ত করা

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

import java.io.IOException;

public class PDFPageManipulationExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = PDDocument.load(new File("input.pdf"));

        // নতুন পিডিএফ পেজ তৈরি
        PDPage newPage = new PDPage();
        document.addPage(newPage);  // নতুন পেজ যোগ করা

        // ডকুমেন্ট সংরক্ষণ করা
        document.save("modified_pdf.pdf");
        document.close();
    }
}

পিডিএফ মেটাডেটা এক্সট্র্যাকশন

পিডিএফের মেটাডেটা যেমন লেখক, শিরোনাম, এবং সৃষ্টির তারিখ এক্সট্র্যাক্ট করতে PDDocument এর getDocumentInformation মেথড ব্যবহার করা হয়।

উদাহরণ - পিডিএফ মেটাডেটা এক্সট্র্যাকশন

import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.File;
import java.io.IOException;

public class PDFMetadataExtractionExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = PDDocument.load(new File("input.pdf"));
        
        // মেটাডেটা এক্সট্র্যাক্ট করা
        String title = document.getDocumentInformation().getTitle();
        String author = document.getDocumentInformation().getAuthor();
        String creationDate = document.getDocumentInformation().getCreationDate().toString();
        
        System.out.println("Title: " + title);
        System.out.println("Author: " + author);
        System.out.println("Creation Date: " + creationDate);
        
        document.close();
    }
}

পিডিএফের পৃষ্ঠা মাপ এবং কনটেন্ট এক্সট্র্যাকশন

PDFBox-এর PDPage এবং PDRectangle ক্লাসের মাধ্যমে আপনি পিডিএফ পেজের মাপ এবং কনটেন্ট এক্সট্র্যাক্ট করতে পারেন। এতে করে পিডিএফ পেজের আকার এবং কনটেন্টের সঠিক জায়গা জানিয়ে কাজ করা যায়।

উদাহরণ - পিডিএফ পেজের সাইজ এক্সট্র্যাকশন

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

import java.io.File;
import java.io.IOException;

public class PDFPageSizeExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = PDDocument.load(new File("input.pdf"));
        PDPage page = document.getPage(0); // প্রথম পেজ
        float width = page.getMediaBox().getWidth();
        float height = page.getMediaBox().getHeight();
        
        System.out.println("Page Width: " + width);
        System.out.println("Page Height: " + height);
        
        document.close();
    }
}

পিডিএফ এক্সট্র্যাকশন এবং ম্যানিপুলেশন এর কার্যকারিতা উন্নত করার কৌশল

  • Lazy Loading: পিডিএফ ডকুমেন্টে থাকা পেজ গুলি একে একে লোড করুন, যাতে মেমরি ব্যবহারের পরিমাণ কম হয়। বড় ডকুমেন্টে এটি কার্যকরী হয়।
  • Text Extraction Optimization: PDFTextStripper এর মাধ্যমে পেজের নির্দিষ্ট অংশের টেক্সট এক্সট্র্যাক্ট করুন, যাতে পুরো পিডিএফ থেকে টেক্সট এক্সট্র্যাক্ট না করতে হয়।
  • Image Optimization: পিডিএফ থেকে ইমেজ এক্সট্র্যাক্ট করার সময়, জিআইএফ বা জেপিইজি কম্প্রেশন ব্যবহার করতে পারেন যাতে ইমেজ ফাইলের সাইজ কম হয়।

সারাংশ

PDFBox ব্যবহার করে পিডিএফ ডকুমেন্টের ম্যানিপুলেশন এবং এক্সট্র্যাকশন খুবই কার্যকরীভাবে করা যায়। পিডিএফ থেকে টেক্সট, ইমেজ, মেটাডেটা এক্সট্র্যাক্ট করা, পিডিএফ পেজ ম্যানিপুলেশন করা এবং ডকুমেন্টের অন্যান্য কন্টেন্ট সঠিকভাবে বের করার জন্য উল্লিখিত কৌশলগুলো অনুসরণ করা যেতে পারে। এর ফলে পিডিএফ প্রোসেসিং আরও দ্রুত এবং কার্যকরী হয়ে ওঠে।


Content added By
Promotion

Are you sure to start over?

Loading...