PDF এ Annotation যোগ করা

পিডিএফবক্স (PDFbox) - Java Technologies

362

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

পিডিএফবক্সে অ্যানোটেশন যোগ করার জন্য আপনি সাধারণত নিম্নলিখিত ধরনের অ্যানোটেশন ব্যবহার করতে পারেন:

  • Text Annotation: টেক্সট হিসেবে মন্তব্য যোগ করা।
  • Highlight Annotation: টেক্সটের একটি অংশ হাইলাইট করা।
  • Link Annotation: অন্য পিডিএফ বা ওয়েব পেজের লিঙ্ক দেয়া।
  • Stamp Annotation: কোনো স্ট্যাম্প বা মুদ্রণ যোগ করা।

এখানে আমরা একটি সাধারণ টেক্সট অ্যানোটেশন যোগ করার প্রক্রিয়া দেখব।

পিডিএফ ডকুমেন্টে অ্যানোটেশন যোগ করার উদাহরণ

টেক্সট অ্যানোটেশন যোগ করা

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

import java.io.IOException;

public class PDFAnnotationExample {
    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();
            PDPage page = new PDPage(PDRectangle.A4); // A4 সাইজ পেজ তৈরি
            document.addPage(page);

            // টেক্সট অ্যানোটেশন তৈরি
            PDAnnotationText textAnnotation = new PDAnnotationText();
            textAnnotation.setRectangle(new PDRectangle(100, 700, 200, 50)); // অ্যানোটেশনের অবস্থান এবং আকার
            textAnnotation.setContents("This is a text annotation."); // টেক্সট কনটেন্ট

            // পেজে অ্যানোটেশন যোগ করা
            page.getAnnotations().add(textAnnotation);

            // পিডিএফ ডকুমেন্ট সংরক্ষণ করা
            document.save("PDFWithAnnotation.pdf");
            document.close(); // ডকুমেন্ট বন্ধ করা
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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

  • PDAnnotationText: এটি একটি টেক্সট অ্যানোটেশন তৈরি করতে ব্যবহৃত হয়। এখানে আপনি অ্যানোটেশনের কনটেন্ট এবং আকার (Rectangle) সেট করতে পারবেন।
  • setRectangle(): অ্যানোটেশনের অবস্থান এবং আকার নির্ধারণ করে। এখানে x, y, width, এবং height মানের মাধ্যমে অ্যানোটেশনের সাইজ এবং স্থান সেট করা হয়েছে।
  • setContents(): অ্যানোটেশনে প্রদর্শিত টেক্সট কনটেন্ট সেট করতে ব্যবহৃত হয়।
  • page.getAnnotations().add(): এই মেথডের মাধ্যমে পেজে অ্যানোটেশন যোগ করা হয়।

পিডিএফ ডকুমেন্টে হাইলাইট অ্যানোটেশন যোগ করা

পিডিএফ ডকুমেন্টে হাইলাইট অ্যানোটেশন যোগ করার জন্য আপনি PDAnnotationHighlight ক্লাস ব্যবহার করতে পারেন। এটি সাধারণত টেক্সটের নির্দিষ্ট অংশ হাইলাইট করতে ব্যবহৃত হয়।

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

import java.io.IOException;

public class PDFHighlightAnnotationExample {
    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();
            PDPage page = new PDPage(PDRectangle.A4); // A4 সাইজ পেজ তৈরি
            document.addPage(page);

            // হাইলাইট অ্যানোটেশন তৈরি
            PDAnnotationHighlight highlightAnnotation = new PDAnnotationHighlight();
            highlightAnnotation.setRectangle(new PDRectangle(100, 700, 200, 20)); // হাইলাইটের অবস্থান এবং আকার
            highlightAnnotation.setContents("This is a highlighted text."); // হাইলাইট কনটেন্ট

            // পেজে হাইলাইট অ্যানোটেশন যোগ করা
            page.getAnnotations().add(highlightAnnotation);

            // পিডিএফ ডকুমেন্ট সংরক্ষণ করা
            document.save("PDFWithHighlightAnnotation.pdf");
            document.close(); // ডকুমেন্ট বন্ধ করা
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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

  • PDAnnotationHighlight: এটি হাইলাইট অ্যানোটেশন তৈরি করতে ব্যবহৃত হয়।
  • setRectangle(): হাইলাইটের অবস্থান এবং আকার নির্ধারণ করে।
  • setContents(): হাইলাইট কনটেন্ট বা বর্ণনা প্রদান করে।

পিডিএফ ডকুমেন্টে লিঙ্ক অ্যানোটেশন যোগ করা

লিঙ্ক অ্যানোটেশন ব্যবহারকারীদের জন্য একটি URL বা অন্য পিডিএফ পৃষ্ঠায় যেতে সাহায্য করে। এখানে একটি লিঙ্ক অ্যানোটেশন যোগ করার উদাহরণ দেওয়া হল:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDAnnotationLink;
import org.apache.pdfbox.pdmodel.PDRectangle;
import org.apache.pdfbox.pdmodel.PDActionURI;

import java.io.IOException;

public class PDFLinkAnnotationExample {
    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();
            PDPage page = new PDPage(PDRectangle.A4); // A4 সাইজ পেজ তৈরি
            document.addPage(page);

            // লিঙ্ক অ্যানোটেশন তৈরি
            PDAnnotationLink linkAnnotation = new PDAnnotationLink();
            linkAnnotation.setRectangle(new PDRectangle(100, 700, 200, 20)); // লিঙ্কের অবস্থান এবং আকার

            // লিঙ্ক অ্যাকশন (URL) যোগ করা
            PDActionURI action = new PDActionURI();
            action.setURI("http://www.example.com");
            linkAnnotation.setAction(action);

            // পেজে লিঙ্ক অ্যানোটেশন যোগ করা
            page.getAnnotations().add(linkAnnotation);

            // পিডিএফ ডকুমেন্ট সংরক্ষণ করা
            document.save("PDFWithLinkAnnotation.pdf");
            document.close(); // ডকুমেন্ট বন্ধ করা
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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

  • PDAnnotationLink: এটি লিঙ্ক অ্যানোটেশন তৈরি করতে ব্যবহৃত হয়, যা ব্যবহারকারীকে একটি URL বা পিডিএফ পৃষ্ঠায় নিয়ে যেতে পারে।
  • setAction(): লিঙ্কের জন্য অ্যাকশন নির্ধারণ করে। এখানে PDActionURI ব্যবহার করে URL অ্যাকশন সেট করা হয়েছে।

পিডিএফ অ্যানোটেশনের সুবিধা

  • ইন্টারঅ্যাকটিভিটি: অ্যানোটেশন ব্যবহারকারীকে ডকুমেন্টের সাথে ইন্টারঅ্যাক্ট করার সুযোগ দেয়।
  • মন্তব্য যোগ করা: ডকুমেন্টে মন্তব্য বা টিপস যোগ করার মাধ্যমে কনটেন্ট স্পষ্ট করা যায়।
  • হাইলাইট ও ফোকাস: গুরুত্বপূর্ণ অংশ হাইলাইট করে ব্যবহারকারীর দৃষ্টি আকর্ষণ করা যায়।

PDFBox লাইব্রেরি ব্যবহার করে Java-এ পিডিএফ ডকুমেন্টে অ্যানোটেশন যোগ করা একটি শক্তিশালী পদ্ধতি যা ডকুমেন্টে ইন্টারঅ্যাকটিভ এবং মন্তব্যপূর্ণ উপাদান যুক্ত করতে সাহায্য করে।

Content added By

পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে পিডিএফ ডকুমেন্টের পেজ লেআউট এবং মার্জিন (Margin) সহজেই কনফিগার করা যায়। পিডিএফ ডকুমেন্টের পৃষ্ঠার সাইজ এবং মার্জিন নিয়ন্ত্রণ করার মাধ্যমে আপনি পিডিএফের কনটেন্ট আরও সঠিকভাবে উপস্থাপন করতে পারেন।

পেজ লেআউট এবং মার্জিন সেট করার প্রক্রিয়া

পিডিএফবক্সে পেজ লেআউট কনফিগার করার জন্য আপনি পিডিএফ পৃষ্ঠার সাইজ নির্ধারণ করতে পারেন, এবং মার্জিন নির্ধারণের মাধ্যমে পৃষ্ঠার বর্ডারের সাথে কনটেন্টের দূরত্ব নির্ধারণ করা যায়। নিচে পেজ সাইজ এবং মার্জিন সেট করার একটি উদাহরণ দেওয়া হল।

উদাহরণ: পেজ লেআউট এবং মার্জিন সেট করা

import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.IOException;

public class PDFWithMargins {
    public static void main(String[] args) throws IOException {
        // পিডিএফ ডকুমেন্ট তৈরি
        PDDocument document = new PDDocument();
        
        // পৃষ্ঠার সাইজ সেট করা (এ4 সাইজ)
        PDPage page = new PDPage(PDRectangle.A4); 
        document.addPage(page);

        // মার্জিন এবং পেজ কনফিগারেশন
        float margin = 50; // মার্জিন ৫০ পিক্সেল
        float yStart = 750;
        float yPosition = yStart;
        float rowHeight = 20;
        float tableWidth = 500;
        float colWidth[] = {150, 150, 150}; // কলামের প্রস্থ

        // পিডিএফ পৃষ্ঠায় কন্টেন্ট স্ট্রিম তৈরি
        PDPageContentStream contentStream = new PDPageContentStream(document, page);

        // ফন্ট সেট করা
        contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);

        // মার্জিন অনুযায়ী টেক্সট লেখা
        contentStream.beginText();
        contentStream.newLineAtOffset(margin, yPosition); // মার্জিন থেকে শুরু
        contentStream.showText("This is a PDF document with margin.");
        contentStream.endText();

        yPosition -= rowHeight;

        // কলাম এবং রো রেন্ডারিং
        String[][] tableData = {
            {"ID", "Name", "Age"},
            {"1", "John Doe", "28"},
            {"2", "Jane Smith", "32"},
            {"3", "Sam Brown", "45"}
        };

        // টেবিলের হেডার রেন্ডারিং
        for (int i = 0; i < tableData[0].length; i++) {
            contentStream.beginText();
            contentStream.newLineAtOffset(margin + colWidth[i] * i, yPosition);
            contentStream.showText(tableData[0][i]);
            contentStream.endText();
        }

        yPosition -= rowHeight;

        // টেবিলের বডি রেন্ডারিং
        for (int i = 1; i < tableData.length; i++) {
            for (int j = 0; j < tableData[i].length; j++) {
                contentStream.beginText();
                contentStream.newLineAtOffset(margin + colWidth[j] * j, yPosition);
                contentStream.showText(tableData[i][j]);
                contentStream.endText();
            }
            yPosition -= rowHeight;
        }

        // কন্টেন্ট স্ট্রিম বন্ধ করা
        contentStream.close();

        // পিডিএফ ফাইল সেভ করা
        document.save("pdf_with_margins.pdf");
        document.close();
    }
}

কোড ব্যাখ্যা

  • PDRectangle.A4: এখানে পৃষ্ঠার সাইজ হিসেবে A4 সাইজ নির্ধারণ করা হয়েছে। পিডিএফবক্সে বিভিন্ন ধরনের পৃষ্ঠার সাইজ রয়েছে, যেমন A4, A3, Letter ইত্যাদি।
  • margin: পৃষ্ঠার চারপাশের মার্জিন সেট করা হয়েছে। এখানে ৫০ পিক্সেল মার্জিন ব্যবহার করা হয়েছে, যাতে কনটেন্ট পৃষ্ঠার বর্ডারের থেকে ৫০ পিক্সেল দূরে থাকে।
  • newLineAtOffset(): এই ফাংশনটি পৃষ্ঠায় টেক্সট এবং অন্যান্য কনটেন্টের অবস্থান নির্ধারণ করে। মার্জিন থেকে শুরু করার জন্য এখানে margin ব্যবহার করা হয়েছে।

পেজ সাইজ কাস্টমাইজেশন

আপনি যদি কাস্টম পেজ সাইজ তৈরি করতে চান, তাহলে আপনি পিডিএফবক্সের PDRectangle ক্লাসে সাইজের প্যারামিটার সেট করতে পারেন:

PDPage page = new PDPage(new PDRectangle(600, 800)); // কাস্টম সাইজ

এটি 600x800 পিক্সেলের পিডিএফ পৃষ্ঠা তৈরি করবে।

মার্জিন কাস্টমাইজেশন

মার্জিনের মান আপনি আপনার প্রয়োজন অনুসারে পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, যদি আপনি ১০০ পিক্সেল মার্জিন চান:

float margin = 100; // মার্জিন ১০০ পিক্সেল

এটি পিডিএফ ডকুমেন্টের চারপাশে বড় মার্জিন যোগ করবে।


পিডিএফবক্সের মাধ্যমে পিডিএফ ডকুমেন্টের পেজ লেআউট এবং মার্জিন সহজে কাস্টমাইজ করা যায়। আপনি পৃষ্ঠার সাইজ এবং মার্জিনের মাধ্যমে ডকুমেন্টের ভিজ্যুয়াল উপস্থাপনাকে নিয়ন্ত্রণ করতে পারেন।

Content added By

পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে পিডিএফ ডকুমেন্টে Text Annotation, Highlight Annotation, এবং Link Annotation যোগ করা যায়। এগুলি পিডিএফ ডকুমেন্টে বিভিন্ন ধরনের মন্তব্য, হাইলাইট, এবং লিঙ্ক তৈরি করতে সহায়তা করে, যা ডকুমেন্টের পড়াশুনা বা ব্যবহারকারীর জন্য আরও ইন্টারঅ্যাকটিভ এবং সহায়ক হয়।

Text Annotation যোগ করা

Text Annotation সাধারণত টেক্সট মন্তব্য বা নোট হিসাবে ব্যবহৃত হয়, যা পিডিএফ ডকুমেন্টের নির্দিষ্ট অংশে মন্তব্য যোগ করার জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীকে টেক্সট বা পৃষ্ঠার জন্য অতিরিক্ত তথ্য বা নোট প্রদান করতে সাহায্য করে।

Text Annotation যোগ করার কোড

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDAppearanceDictionary;
import org.apache.pdfbox.pdmodel.PDAnnotationText;
import org.apache.pdfbox.pdmodel.PDRectangle;

import java.io.IOException;

public class PDFTextAnnotationExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        // Text Annotation তৈরি
        PDAnnotationText textAnnotation = new PDAnnotationText();
        textAnnotation.setRectangle(new PDRectangle(100, 700, 200, 50)); // অবস্থান এবং আকার
        textAnnotation.setContents("This is a text annotation!"); // মন্তব্য

        // পৃষ্ঠায় Text Annotation যোগ করা
        page.getAnnotations().add(textAnnotation);

        // পিডিএফ সেভ করা
        document.save("PDFWithTextAnnotation.pdf");
        document.close();
    }
}

এখানে PDAnnotationText ক্লাস ব্যবহার করে একটি টেক্সট অ্যানোটেশন তৈরি করা হয়েছে এবং সেটি পিডিএফ পৃষ্ঠায় যোগ করা হয়েছে।

Highlight Annotation যোগ করা

Highlight Annotation পিডিএফ ডকুমেন্টের নির্দিষ্ট অংশকে হাইলাইট করতে ব্যবহৃত হয়, যা ব্যবহারকারীদের কিছু গুরুত্বপূর্ণ তথ্য বা অংশকে চিহ্নিত করতে সাহায্য করে। এটি সাধারণত টেক্সট হাইলাইট করার জন্য ব্যবহৃত হয়।

Highlight Annotation যোগ করার কোড

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDAnnotationHighlight;
import org.apache.pdfbox.pdmodel.PDRectangle;
import org.apache.pdfbox.pdmodel.PDTextContentStream;
import org.apache.pdfbox.pdmodel.PDAppearanceDictionary;

import java.io.IOException;

public class PDFHighlightAnnotationExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        // Highlight Annotation তৈরি
        PDAnnotationHighlight highlightAnnotation = new PDAnnotationHighlight();
        highlightAnnotation.setRectangle(new PDRectangle(100, 700, 200, 20)); // হাইলাইটের অবস্থান
        highlightAnnotation.setContents("This is highlighted text!"); // হাইলাইট টেক্সট

        // পৃষ্ঠায় Highlight Annotation যোগ করা
        page.getAnnotations().add(highlightAnnotation);

        // পিডিএফ সেভ করা
        document.save("PDFWithHighlightAnnotation.pdf");
        document.close();
    }
}

এখানে PDAnnotationHighlight ক্লাস ব্যবহার করে একটি হাইলাইট অ্যানোটেশন তৈরি করা হয়েছে, যা নির্দিষ্ট টেক্সট বা অংশকে হাইলাইট করবে।

Link Annotation যোগ করা

Link Annotation পিডিএফ ডকুমেন্টে হাইপারলিঙ্ক তৈরি করতে ব্যবহৃত হয়। এটি ব্যবহারকারীদের ক্লিক করে অন্য একটি পৃষ্ঠায় নিয়ে যেতে বা একটি URL খুলতে সাহায্য করে।

Link Annotation যোগ করার কোড

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDAnnotationLink;
import org.apache.pdfbox.pdmodel.PDActionURI;
import org.apache.pdfbox.pdmodel.PDRectangle;

import java.io.IOException;

public class PDFLinkAnnotationExample {
    public static void main(String[] args) throws IOException {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        // Link Annotation তৈরি
        PDAnnotationLink linkAnnotation = new PDAnnotationLink();
        linkAnnotation.setRectangle(new PDRectangle(100, 700, 200, 20)); // লিঙ্কের অবস্থান

        // Link এর অ্যাকশন (এখানে একটি URL)
        PDActionURI action = new PDActionURI();
        action.setURI("http://www.example.com");
        linkAnnotation.setAction(action);

        // পৃষ্ঠায় Link Annotation যোগ করা
        page.getAnnotations().add(linkAnnotation);

        // পিডিএফ সেভ করা
        document.save("PDFWithLinkAnnotation.pdf");
        document.close();
    }
}

এখানে PDAnnotationLink ক্লাস ব্যবহার করে একটি লিঙ্ক অ্যানোটেশন তৈরি করা হয়েছে, যা নির্দিষ্ট অংশে ক্লিক করার মাধ্যমে একটি URL খুলবে।

পিডিএফ অ্যানোটেশনগুলোর সুবিধা

  • Text Annotation ব্যবহারকারীদের পিডিএফ ডকুমেন্টে নোট বা মন্তব্য যোগ করার সুযোগ দেয়, যা ডকুমেন্টে অতিরিক্ত তথ্য প্রদান করতে সাহায্য করে।
  • Highlight Annotation পিডিএফের গুরুত্বপূর্ণ অংশ বা টেক্সট হাইলাইট করে, যা ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ তথ্যকে দৃশ্যমান করে।
  • Link Annotation ব্যবহারকারীদের লিঙ্কের মাধ্যমে দ্রুত অন্য পৃষ্ঠায় যেতে বা ওয়েবসাইট খুলতে সহায়তা করে।

পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে Text, Highlight, এবং Link Annotation যোগ করা সহজ এবং কার্যকরী। এগুলি পিডিএফ ডকুমেন্টে বিভিন্ন ধরণের ইন্টারঅ্যাকটিভ ফিচার যোগ করার জন্য অত্যন্ত উপকারী।

Content added By

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

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

পিডিএফে অ্যানোটেশন যোগ করার জন্য প্রয়োজনীয় লাইব্রেরি

প্রথমে নিচের লাইব্রেরিগুলি ইমপোর্ট করতে হবে:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationTextMarkup;
import org.apache.pdfbox.pdmodel.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.IOException;

অ্যানোটেশন পজিশনিং

পিডিএফবক্সে অ্যানোটেশন পজিশন করার জন্য, আপনার প্রথমে নির্দিষ্ট পেজে অ্যানোটেশনটি কোথায় স্থাপন করতে চান, তা জানতে হবে। আপনি অ্যানোটেশনটির স্থান পেজের কোঅর্ডিনেট (x, y) অনুযায়ী কাস্টমাইজ করতে পারবেন।

উদাহরণ: টেক্সট হাইলাইট অ্যানোটেশন পজিশনিং

PDDocument document = PDDocument.load(new File("example.pdf"));
PDPage page = document.getPage(0); // প্রথম পেজে কাজ করা হবে

// টেক্সট হাইলাইট অ্যানোটেশন তৈরি করা
PDAnnotationTextMarkup highlight = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);

// অ্যানোটেশনের পজিশন ও আকার নির্ধারণ
highlight.setRectangle(new PDRectangle(100, 500, 200, 15)); // (x, y, width, height)

// পেজে অ্যানোটেশন যোগ করা
page.getAnnotations().add(highlight);

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

এখানে setRectangle মেথড ব্যবহার করে অ্যানোটেশনটির পজিশন (x, y) এবং আকার (width, height) নির্ধারণ করা হয়েছে। আপনি চাইলে এই প্যারামিটারগুলি পরিবর্তন করে অ্যানোটেশনটির স্থান ও আকার কাস্টমাইজ করতে পারবেন।

অ্যানোটেশন স্টাইলিং

পিডিএফবক্সে অ্যানোটেশনটির স্টাইলিং যেমন তার রং, আকার এবং লাইন স্টাইল কাস্টমাইজ করা যায়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে টেক্সট হাইলাইট অ্যানোটেশনের রং এবং স্টাইল কাস্টমাইজ করা হয়েছে।

উদাহরণ: হাইলাইট অ্যানোটেশনের রং পরিবর্তন করা

PDDocument document = PDDocument.load(new File("example.pdf"));
PDPage page = document.getPage(0); // প্রথম পেজে কাজ করা হবে

// টেক্সট হাইলাইট অ্যানোটেশন তৈরি করা
PDAnnotationTextMarkup highlight = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);

// অ্যানোটেশনের পজিশন ও আকার নির্ধারণ
highlight.setRectangle(new PDRectangle(100, 500, 200, 15));

// হাইলাইটের রং নির্ধারণ (এখানে হলুদ রং)
highlight.setColor(new PDColor(new float[]{1, 1, 0}, PDDeviceRGB.INSTANCE)); // RGB মান 1, 1, 0 = Yellow

// পেজে অ্যানোটেশন যোগ করা
page.getAnnotations().add(highlight);

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

এখানে setColor মেথড ব্যবহার করে হাইলাইট অ্যানোটেশনের রং হলুদ (yellow) নির্ধারণ করা হয়েছে। আপনি RGB মানের মাধ্যমে অন্যান্য রঙও ব্যবহার করতে পারেন।

অন্যান্য অ্যানোটেশন ধরনের স্টাইলিং

পিডিএফবক্সে বিভিন্ন ধরনের অ্যানোটেশন যোগ করা যায় যেমন:

  • টেক্সট আন্ডারলাইন: এটি একটি টেক্সট আন্ডারলাইন অ্যানোটেশন তৈরি করতে ব্যবহৃত হয়।
  • স্টাম্প: এটি একটি স্টাম্প অ্যানোটেশন তৈরি করতে ব্যবহৃত হয় যা সাধারণত পিডিএফ ডকুমেন্টে সিল বা চিহ্ন যোগ করতে ব্যবহৃত হয়।

এছাড়া আপনি এসব অ্যানোটেশনের জন্য স্টাইলিং কাস্টমাইজ করে এর আকার, রঙ, লাইন স্টাইল ইত্যাদি পরিবর্তন করতে পারেন।


এইভাবে পিডিএফবক্স ব্যবহার করে আপনি পিডিএফ ডকুমেন্টে অ্যানোটেশন যোগ করতে পারেন, এবং তার পজিশন ও স্টাইল কাস্টমাইজ করতে পারেন। এটি পিডিএফ ডকুমেন্টের মধ্যে মন্তব্য, হাইলাইট, আন্ডারলাইন বা অন্য কোন ধরনের অ্যানোটেশন যুক্ত করার জন্য একটি শক্তিশালী টুল।

Content added By

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

এখানে একটি উদাহরণ দেওয়া হলো, যাতে পিডিএফ ডকুমেন্টে টেক্সট অ্যানোটেশন (কমেন্ট) যোগ করা হচ্ছে।

পিডিএফ-এ অ্যানোটেশন যোগ করার উদাহরণ

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDAnnotationTextMarkup;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDColor;

import java.io.IOException;

public class PDFAnnotationExample {

    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();

            // নতুন পিডিএফ পেজ তৈরি
            PDPage page = new PDPage(PDRectangle.A4);
            document.addPage(page);

            // পিডিএফ পেজে কন্টেন্ট যোগ করার জন্য কন্টেন্ট স্ট্রিম তৈরি
            PDPageContentStream contentStream = new PDPageContentStream(document, page);

            contentStream.beginText();
            contentStream.setFont(org.apache.pdfbox.pdmodel.font.PDType1Font.HELVETICA_BOLD, 12);
            contentStream.newLineAtOffset(100, 750);
            contentStream.showText("This is a PDF with annotation example.");
            contentStream.endText();
            contentStream.close();

            // টেক্সট অ্যানোটেশন (হাইলাইট) যোগ করা
            PDAnnotationTextMarkup highlight = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);
            highlight.setRectangle(new PDRectangle(100, 740, 300, 15));  // হাইলাইটের জন্য রেকটেঙ্গুলার বাউন্ডারি
            highlight.setColor(new PDColor(new float[]{1, 1, 0}, PDColor.ColorSpace.DeviceRGB));  // হলুদ রঙ

            // অ্যানোটেশন পেজে যোগ করা
            page.getAnnotations().add(highlight);

            // পিডিএফ ডকুমেন্ট সেভ করা
            document.save("annotated_example.pdf");

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

            System.out.println("পিডিএফ ডকুমেন্টে অ্যানোটেশন সফলভাবে যোগ করা হয়েছে।");
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • PDAnnotationTextMarkup: এটি পিডিএফ ডকুমেন্টে টেক্সট অ্যানোটেশন (যেমন হাইলাইট, আন্ডারলাইন ইত্যাদি) যোগ করতে ব্যবহৃত হয়।
  • setRectangle(): এই পদ্ধতিটি অ্যানোটেশনের জন্য একটি সীমানা নির্ধারণ করে, যা রেকটেঙ্গুলার আকারে থাকে।
  • setColor(): এটি অ্যানোটেশনের রঙ নির্ধারণ করে। উদাহরণস্বরূপ, এখানে আমরা হলুদ রঙ ব্যবহার করেছি।
  • page.getAnnotations().add(): এই পদ্ধতিটি পিডিএফ পৃষ্ঠায় অ্যানোটেশন যোগ করে।

আউটপুট

এই কোডটি রান করলে একটি annotated_example.pdf ফাইল তৈরি হবে, যেখানে "This is a PDF with annotation example." টেক্সটের উপরে হলুদ হাইলাইট অ্যানোটেশন থাকবে।


এভাবে পিডিএফবক্স (PDFBox) ব্যবহার করে Java-তে পিডিএফ ডকুমেন্টে বিভিন্ন ধরনের অ্যানোটেশন যেমন হাইলাইট, আন্ডারলাইন, স্ট্রাইকথ্রু, কমেন্ট ইত্যাদি যোগ করা যায়। এটি পিডিএফ ডকুমেন্টের উপর অতিরিক্ত তথ্য প্রদান করার একটি কার্যকর উপায়।

Content added By
Promotion

Are you sure to start over?

Loading...