common.skill

টেক্সট ম্যানিপুলেশন

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড)
120
120

Apache POI এর XWPFDocument ক্লাসটি ব্যবহার করে আপনি Microsoft Word (DOCX) ডকুমেন্টে টেক্সট ম্যানিপুলেশন করতে পারেন। এটি আপনাকে ডকুমেন্টে টেক্সট যোগ করা, টেক্সট ফরম্যাটিং, টেক্সট পরিবর্তন, টেক্সট মুছে ফেলা, প্যারাগ্রাফে টেক্সট ইনসার্ট এবং আরও অনেক কিছু করতে সহায়তা করে।

নিচে কিছু সাধারণ টেক্সট ম্যানিপুলেশন কাজের উদাহরণ দেয়া হলো।


১. টেক্সট যোগ করা

Word ডকুমেন্টে টেক্সট যোগ করার জন্য XWPFParagraph এবং XWPFRun ক্লাস ব্যবহার করা হয়। XWPFParagraph একটি প্যারাগ্রাফ তৈরি করে এবং XWPFRun টেক্সটের ফরম্যাট এবং স্টাইল নিয়ন্ত্রণ করে।

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddTextToWord {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        
        // টেক্সট যোগ করা
        run.setText("Hello, this is a new text added to the Word document.");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("added_text_document.docx")) {
            document.write(out);
        }

        System.out.println("Text added to the Word document!");
    }
}

এখানে, createRun() মেথড ব্যবহার করে টেক্সট যোগ করা হয়েছে।


২. টেক্সট ফরম্যাটিং

টেক্সট ফরম্যাটিং যেমন বোল্ড, ইটালিক, আন্ডারলাইন বা ফন্ট সাইজ পরিবর্তন করা যায়।

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class TextFormatting {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        
        // টেক্সট যোগ এবং ফরম্যাট করা
        run.setText("This is bold and italic text.");
        run.setBold(true);   // বোল্ড
        run.setItalic(true); // ইটালিক
        run.setFontSize(14); // ফন্ট সাইজ
        run.setUnderline(true); // আন্ডারলাইন
        run.setFontColor("FF5733"); // ফন্ট রঙ (হেক্স)

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("formatted_text_document.docx")) {
            document.write(out);
        }

        System.out.println("Text with formatting added to the Word document!");
    }
}

এখানে, setBold(), setItalic(), setFontSize(), setUnderline(), এবং setFontColor() মেথড ব্যবহার করে টেক্সট ফরম্যাট করা হয়েছে।


৩. প্যারাগ্রাফে টেক্সট যোগ করা

একটি ডকুমেন্টে একাধিক প্যারাগ্রাফে টেক্সট যোগ করা সম্ভব। আপনি একটি প্যারাগ্রাফ তৈরি করে তাতে একাধিক XWPFRun দিয়ে বিভিন্ন ফরম্যাটেড টেক্সট যোগ করতে পারেন।

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class MultipleParagraphs {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // প্রথম প্যারাগ্রাফে টেক্সট যোগ করা
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("This is the first paragraph of the Word document.");
        
        // দ্বিতীয় প্যারাগ্রাফে টেক্সট যোগ করা
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("This is the second paragraph with different text.");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("multiple_paragraphs.docx")) {
            document.write(out);
        }

        System.out.println("Multiple paragraphs with text added to the Word document!");
    }
}

এখানে, createParagraph() মেথড ব্যবহার করে বিভিন্ন প্যারাগ্রাফ তৈরি করা হয়েছে এবং প্রত্যেক প্যারাগ্রাফে আলাদা টেক্সট যোগ করা হয়েছে।


৪. টেক্সট পরিবর্তন বা মুছে ফেলা

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

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class ModifyTextInWord {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        
        // পুরানো টেক্সট যোগ করা
        run.setText("This is the original text.");
        
        // টেক্সট পরিবর্তন করা
        run.setText("This is the modified text.");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("modified_text_document.docx")) {
            document.write(out);
        }

        System.out.println("Text in Word document has been modified!");
    }
}

এখানে, setText() মেথড ব্যবহার করে পূর্ববর্তী টেক্সট পরিবর্তন করা হয়েছে।


৫. চিত্র এবং টেক্সট একত্রিত করা

Word ডকুমেন্টে চিত্র যোগ করার পাশাপাশি টেক্সটও একত্রিত করা যায়। এই পদ্ধতিতে, চিত্রের পাশাপাশি টেক্সট যোগ করা হয়।

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;
import org.apache.poi.util.Units;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddImageAndText {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        
        // টেক্সট যোগ করা
        run.setText("This is the text before the image.");
        
        // চিত্র যোগ করা
        String imagePath = "image.jpg";
        XWPFPictureData pictureData = document.addPictureData(new FileInputStream(imagePath), XWPFDocument.PICTURE_TYPE_JPEG);
        run.addPicture(pictureData, XWPFDocument.PICTURE_TYPE_JPEG, imagePath, Units.toEMU(100), Units.toEMU(100)); // চিত্রের সাইজ 100x100 পিক্সেল
        
        // চিত্রের পর টেক্সট যোগ করা
        run.addBreak(); // নতুন লাইন
        run.setText("This is the text after the image.");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("image_and_text_document.docx")) {
            document.write(out);
        }

        System.out.println("Word ডকুমেন্টে চিত্র এবং টেক্সট একত্রিত করা হয়েছে!");
    }
}

এখানে, চিত্রের আগে এবং পরে টেক্সট যোগ করার মাধ্যমে একত্রিত করা হয়েছে।


সারাংশ

XWPFDocument ব্যবহার করে Word ডকুমেন্টে টেক্সট ম্যানিপুলেশন করা সহজ। আপনি টেক্সট যোগ করা, ফরম্যাটিং, প্যারাগ্রাফে টেক্সট ইনসার্ট করা, টেক্সট পরিবর্তন বা মুছে ফেলা, এবং চিত্রসহ টেক্সট যোগ করা

common.content_added_by

Word ডকুমেন্টে টেক্সট যোগ করা এবং পরিবর্তন করা

144
144

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্টে টেক্সট যোগ করতে এবং পরিবর্তন করতে পারেন। XWPFDocument ক্লাসের সাহায্যে আপনি সহজেই টেক্সট ইনসার্ট করতে পারবেন, এবং XWPFRun ক্লাসের মাধ্যমে টেক্সটের ফরম্যাটিং পরিবর্তন করতে পারবেন।

এখানে আমরা দেখবো কিভাবে একটি Word ডকুমেন্টে টেক্সট যোগ করা এবং সেই টেক্সট পরিবর্তন করা যায়।


1. Word ডকুমেন্টে টেক্সট যোগ করা

টেক্সট যোগ করার জন্য আপনাকে XWPFDocument ক্লাস ব্যবহার করতে হবে। আপনি createParagraph() এবং createRun() মেথডের মাধ্যমে প্যারাগ্রাফ এবং রান তৈরি করে সেখানে টেক্সট ইনসার্ট করতে পারবেন।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddTextToWordDocument {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();

        // প্যারাগ্রাফে টেক্সট যোগ করা
        XWPFRun run = paragraph.createRun();
        run.setText("এই ডকুমেন্টটি Apache POI ব্যবহার করে তৈরি করা হয়েছে!");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("word_with_text.docx")) {
            document.write(out);
        }

        System.out.println("Word ডকুমেন্টে টেক্সট সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • createParagraph(): এটি একটি নতুন প্যারাগ্রাফ তৈরি করে।
  • createRun(): এটি প্যারাগ্রাফে একটি রান (টেক্সট ব্লক) তৈরি করে যেখানে টেক্সট ইনপুট করা হয়।
  • setText(): এটি রান-এ টেক্সট সেট করার জন্য ব্যবহৃত হয়।

এই কোডটির মাধ্যমে একটি Word ডকুমেন্ট তৈরি হবে এবং সেখানে টেক্সট যোগ করা হবে: "এই ডকুমেন্টটি Apache POI ব্যবহার করে তৈরি করা হয়েছে!"


2. Word ডকুমেন্টে টেক্সট পরিবর্তন করা

যদি আপনি একটি বিদ্যমান Word ডকুমেন্টে টেক্সট পরিবর্তন করতে চান, তাহলে আপনাকে প্রথমে সেই ডকুমেন্টটি লোড করতে হবে এবং তারপরে প্যারাগ্রাফ বা রানগুলির মধ্যে টেক্সট পরিবর্তন করতে হবে।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ModifyTextInWordDocument {
    public static void main(String[] args) throws IOException {
        // বিদ্যমান Word ডকুমেন্ট লোড করা
        FileInputStream fis = new FileInputStream("word_with_text.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // প্রথম প্যারাগ্রাফ নির্বাচন করা
        XWPFParagraph paragraph = document.getParagraphs().get(0);

        // প্রথম রান নির্বাচন করা
        XWPFRun run = paragraph.getRuns().get(0);

        // টেক্সট পরিবর্তন করা
        run.setText("এই টেক্সটটি পরিবর্তন করা হয়েছে!");

        // পরিবর্তিত ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("modified_word_document.docx")) {
            document.write(out);
        }

        fis.close();
        System.out.println("Word ডকুমেন্টের টেক্সট সফলভাবে পরিবর্তন করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • FileInputStream: বিদ্যমান Word ডকুমেন্টটি লোড করতে ব্যবহৃত।
  • getParagraphs(): এটি ডকুমেন্টের সমস্ত প্যারাগ্রাফ রিটার্ন করে।
  • getRuns(): প্যারাগ্রাফের মধ্যে থাকা রান (টেক্সট ব্লক) গুলি রিটার্ন করে।
  • setText(): রান-এ নতুন টেক্সট সেট করার জন্য ব্যবহৃত হয়।

এই কোডটির মাধ্যমে, word_with_text.docx নামক ডকুমেন্টের প্রথম প্যারাগ্রাফের টেক্সট পরিবর্তন হবে এবং সেটি modified_word_document.docx নামে সেভ হবে।


3. ফন্ট স্টাইল ও সাইজ পরিবর্তন করা

আপনি টেক্সটের ফন্ট স্টাইল, সাইজ এবং অন্যান্য বৈশিষ্ট্য পরিবর্তন করতে পারেন XWPFRun এর মাধ্যমে। উদাহরণস্বরূপ, টেক্সটকে বোল্ড, ইটালিক বা আন্ডারলাইন করা এবং ফন্ট সাইজ পরিবর্তন করা।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileOutputStream;
import java.io.IOException;

public class FormatTextInWordDocument {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();

        // রান তৈরি এবং টেক্সট যোগ করা
        XWPFRun run = paragraph.createRun();
        run.setText("এই টেক্সটটি ফরম্যাট করা হয়েছে!");
        run.setBold(true);  // বোল্ড
        run.setItalic(true); // ইটালিক
        run.setFontSize(16); // ফন্ট সাইজ ১৬
        run.setFontFamily("Arial"); // ফন্ট ফ্যামিলি

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("formatted_text.docx")) {
            document.write(out);
        }

        System.out.println("ফরম্যাট করা টেক্সট Word ডকুমেন্টে সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • setBold(true): টেক্সটকে বোল্ড বানায়।
  • setItalic(true): টেক্সটকে ইটালিক বানায়।
  • setFontSize(16): ফন্টের সাইজ ১৬ পয়েন্টে সেট করে।
  • setFontFamily("Arial"): ফন্ট ফ্যামিলি Arial সেট করে।

এই কোডটি চালানোর পর একটি Word ডকুমেন্ট তৈরি হবে যেখানে টেক্সট বোল্ড, ইটালিক এবং ফন্ট সাইজ ১৬ পয়েন্ট হবে।


সারাংশ

Apache POI এর XWPFDocument ক্লাস ব্যবহার করে আপনি Word ডকুমেন্টে সহজেই টেক্সট যোগ এবং পরিবর্তন করতে পারেন। XWPFRun ক্লাসের মাধ্যমে টেক্সটের ফরম্যাটিং পরিবর্তন, যেমন ফন্ট সাইজ, স্টাইল (বোল্ড, ইটালিক), এবং ফন্ট ফ্যামিলি কাস্টমাইজ করা যায়। এটি আপনাকে Word ডকুমেন্টের উপর প্রোগ্রামেটিকভাবে পূর্ণ নিয়ন্ত্রণ প্রদান করে।


common.content_added_by

Multiline Text এবং Special Characters হ্যান্ডল করা

144
144

Apache POI লাইব্রেরি ব্যবহার করে Microsoft Word ডকুমেন্টে multiline text এবং special characters যোগ করা সম্ভব। এই দুটি বিষয় প্রাসঙ্গিক কারণ Word ডকুমেন্টে একাধিক লাইন বা প্যারাগ্রাফের টেক্সট এবং বিশেষ ক্যারেক্টার (যেমন, অ্যাকসেন্ট সহ চরিত্র, সিম্বল, এবং Unicode ক্যারেক্টার) অনেক সময় প্রয়োজন হয়। এই বিষয়গুলো সঠিকভাবে হ্যান্ডল করার জন্য Apache POI বেশ শক্তিশালী একটি টুল।

নিচে multiline text এবং special characters যোগ করার উপায় নিয়ে আলোচনা করা হবে।


Multiline Text যোগ করা

Multiline text মানে একাধিক লাইন বিশিষ্ট টেক্সট যা একটি প্যারাগ্রাফের মধ্যে থাকে। POI ব্যবহার করে আপনি সহজেই একাধিক লাইন যোগ করতে পারেন, যেহেতু একটি XWPFParagraph একটি প্যারাগ্রাফকে নির্দেশ করে এবং একাধিক XWPFRun একাধিক লাইন হিসেবে কাজ করতে পারে।

Multiline Text উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class MultilineTextExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();

        // প্রথম লাইন যোগ করা
        XWPFRun run1 = paragraph.createRun();
        run1.setText("This is the first line of multiline text.");

        // নতুন লাইন তৈরি করা
        XWPFRun run2 = paragraph.createRun();
        run2.setText("\nThis is the second line, after a line break.");

        // তৃতীয় লাইন যোগ করা
        XWPFRun run3 = paragraph.createRun();
        run3.setText("\nThis is the third line.");

        // ডকুমেন্ট সংরক্ষণ
        try (FileOutputStream out = new FileOutputStream("MultilineTextDocument.docx")) {
            document.write(out);
        }

        System.out.println("Multiline text সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • \n ব্যবহার করে আপনি নতুন লাইন যোগ করতে পারেন। এটি টেক্সটকে একাধিক লাইনে বিভক্ত করবে।
  • একাধিক XWPFRun ব্যবহার করে বিভিন্ন অংশে টেক্সট যোগ করা হয়, যেখানে প্রতিটি run নতুন লাইন বা অংশের জন্য ব্যবহৃত।

এই কোডটি একটি ডকুমেন্টে তিনটি লাইন যুক্ত করবে, যেখানে দ্বিতীয় এবং তৃতীয় লাইন \n ব্যবহার করে নতুন লাইন হিসেবে যোগ করা হয়েছে।


Special Characters হ্যান্ডল করা

Special characters বা Unicode characters (যেমন, α, β, ©, ®, €, etc.) Word ডকুমেন্টে সঠিকভাবে প্রক্রিয়াকরণ এবং প্রদর্শন করতে হলে সেগুলিকে Unicode হিসেবে হ্যান্ডল করতে হবে। Apache POI এই ধরনের ক্যারেক্টারগুলো সঠিকভাবে প্রসেস করে, যাতে তারা Word ডকুমেন্টে সঠিকভাবে প্রদর্শিত হয়।

Special Characters উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class SpecialCharactersExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();

        // Special characters যোগ করা
        XWPFRun run = paragraph.createRun();
        run.setText("Here are some special characters: α, β, ©, ®, €, and ♥");

        // ডকুমেন্ট সংরক্ষণ
        try (FileOutputStream out = new FileOutputStream("SpecialCharactersDocument.docx")) {
            document.write(out);
        }

        System.out.println("Special characters সফলভাবে যোগ করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • এখানে, আমরা একটি প্যারাগ্রাফে কয়েকটি special characters যোগ করেছি, যেমন α, β, ©, ®, , এবং
  • XWPFRun এর setText() মেথড ব্যবহার করে আপনি বিশেষ ক্যারেক্টার সরাসরি সেট করতে পারেন, কারণ POI সেগুলিকে Unicode হিসেবে সঠিকভাবে প্রক্রিয়াকরণ করে।

এই কোডটি একটি ডকুমেন্টে বেশ কিছু বিশেষ ক্যারেক্টার সংযোজন করবে এবং তা সঠিকভাবে Word ডকুমেন্টে প্রদর্শিত হবে।


Multiline Text এবং Special Characters একত্রে ব্যবহার

আপনি multiline text এবং special characters একসাথে ব্যবহার করতে পারেন। এই ধরনের টেক্সট ডকুমেন্টে আপনি একাধিক লাইন যোগ করার পাশাপাশি, প্রতি লাইনে বিশেষ ক্যারেক্টার ব্যবহার করতে পারবেন।

Multiline Text এবং Special Characters একত্রে উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class MultilineAndSpecialCharacters {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();

        // প্রথম লাইন যোগ করা
        XWPFRun run1 = paragraph.createRun();
        run1.setText("This is the first line with a special character: α");

        // নতুন লাইন তৈরি করা
        XWPFRun run2 = paragraph.createRun();
        run2.setText("\nThis is the second line, with special characters: ©, ®, €");

        // তৃতীয় লাইন যোগ করা
        XWPFRun run3 = paragraph.createRun();
        run3.setText("\nThis is the third line with more characters: ♥, β");

        // ডকুমেন্ট সংরক্ষণ
        try (FileOutputStream out = new FileOutputStream("MultilineAndSpecialChars.docx")) {
            document.write(out);
        }

        System.out.println("Multiline and special characters successfully added!");
    }
}

কোড ব্যাখ্যা:

  • এখানে প্রথম লাইন, দ্বিতীয় লাইন এবং তৃতীয় লাইনে আলাদা আলাদা special characters যেমন α, ©, , ব্যবহার করা হয়েছে।
  • প্রতিটি লাইনের মধ্যে \n ব্যবহার করে নতুন লাইন যোগ করা হয়েছে।

এই কোডটি একটি Word ডকুমেন্টে multiline text এবং special characters একত্রে যোগ করবে।


সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি multiline text এবং special characters Word ডকুমেন্টে সঠিকভাবে হ্যান্ডল করতে পারেন। আপনি \n ব্যবহার করে multiline text যোগ করতে পারবেন, আর Unicode characters সরাসরি XWPFRun ব্যবহার করে সঠিকভাবে Word ডকুমেন্টে প্রবেশ করাতে পারবেন। এই সমস্ত কাস্টমাইজেশন Word ডকুমেন্টে প্রয়োজনীয় টেক্সট এবং বিশেষ ক্যারেক্টার সহজেই ম্যানিপুলেট করার সুবিধা দেয়। POI-এর এই ফিচারগুলি আপনাকে উন্নত ডকুমেন্ট জেনারেশন এবং কাস্টমাইজেশন সক্ষমতা প্রদান করে।

common.content_added_by

Text Replacement এবং Text Extraction

194
194

অ্যাপাচি পিওআই (Apache POI) ব্যবহার করে Word ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাকশন (Text Extraction) এবং টেক্সট প্রতিস্থাপন (Text Replacement) দুটি খুবই গুরুত্বপূর্ণ কার্যাবলী। এই কার্যাবলীর মাধ্যমে আপনি .docx ফাইল থেকে টেক্সট পড়তে বা পরিবর্তন করতে পারবেন। Apache POI এর XWPF API এর মাধ্যমে এই কাজগুলো সঞ্চালন করা সম্ভব।


Text Extraction (টেক্সট এক্সট্র্যাকশন)

Text Extraction এর মাধ্যমে আপনি Word ডকুমেন্ট থেকে নির্দিষ্ট প্যারাগ্রাফ বা টেক্সট বের করে আনতে পারেন। এটি বিশেষভাবে প্রয়োজনীয় যখন আপনি ডকুমেন্টের কোনো তথ্য বিশ্লেষণ বা প্রক্রিয়া করতে চান।

টেক্সট এক্সট্র্যাকশন করার উদাহরণ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.*;

public class ExtractTextFromWord {
    public static void main(String[] args) throws IOException {
        // Word ডকুমেন্ট লোড করা
        FileInputStream file = new FileInputStream(new File("example_word_document.docx"));
        XWPFDocument document = new XWPFDocument(file);

        // সমস্ত প্যারাগ্রাফ থেকে টেক্সট বের করা
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            System.out.println(paragraph.getText());
        }

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

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

  1. XWPFDocument ক্লাস ব্যবহার করে .docx ডকুমেন্টটি লোড করা হয়।
  2. getParagraphs() মেথড ব্যবহার করে সমস্ত প্যারাগ্রাফ থেকে টেক্সট পাওয়া যায়। প্রতিটি প্যারাগ্রাফের টেক্সট getText() মেথডের মাধ্যমে এক্সট্র্যাক্ট করা হয়।
  3. প্রতিটি প্যারাগ্রাফের টেক্সট কনসোলে আউটপুট করা হয়।

এছাড়াও, আপনি টেবিলের মধ্যে থাকা টেক্সটও এক্সট্র্যাক্ট করতে পারেন একই পদ্ধতিতে।


Text Replacement (টেক্সট প্রতিস্থাপন)

Text Replacement এর মাধ্যমে আপনি ডকুমেন্টের মধ্যে একটি নির্দিষ্ট টেক্সট পরিবর্তন করতে পারেন। এটি তখন ব্যবহারযোগ্য যখন আপনাকে কোনো টেক্সট ফাইলের মধ্যে বিশেষ শব্দ বা বাক্য পরিবর্তন করতে হয়।

টেক্সট প্রতিস্থাপন করার উদাহরণ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.*;

public class ReplaceTextInWord {
    public static void main(String[] args) throws IOException {
        // Word ডকুমেন্ট লোড করা
        FileInputStream file = new FileInputStream(new File("example_word_document.docx"));
        XWPFDocument document = new XWPFDocument(file);

        // ডকুমেন্টের সকল প্যারাগ্রাফ থেকে টেক্সট পরিবর্তন করা
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            String paragraphText = paragraph.getText();
            if (paragraphText.contains("old text")) {
                // পুরনো টেক্সট "old text" নতুন টেক্সট "new text" দিয়ে প্রতিস্থাপন করা
                paragraphText = paragraphText.replace("old text", "new text");
                // নতুন টেক্সট সেট করা
                XWPFRun run = paragraph.createRun();
                run.setText(paragraphText);
            }
        }

        // ডকুমেন্ট সংরক্ষণ করা
        try (FileOutputStream out = new FileOutputStream("updated_word_document.docx")) {
            document.write(out);
        }

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

        System.out.println("টেক্সট সফলভাবে প্রতিস্থাপিত হয়েছে!");
    }
}

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

  1. Word ডকুমেন্ট লোড: XWPFDocument ক্লাস ব্যবহার করে ডকুমেন্টটি লোড করা হয়।
  2. টেক্সট প্রতিস্থাপন: getText() মেথডের মাধ্যমে প্যারাগ্রাফের টেক্সট নেওয়া হয়। তারপর, replace() মেথড ব্যবহার করে পুরনো টেক্সট নতুন টেক্সটে প্রতিস্থাপন করা হয়।
  3. নতুন টেক্সট সেট করা: প্রতিস্থাপিত টেক্সট প্যারাগ্রাফে আবার সেট করা হয়।
  4. ফাইল সংরক্ষণ: পরিবর্তিত ডকুমেন্টটি updated_word_document.docx নামে সংরক্ষণ করা হয়।

Text Extraction এবং Replacement এর মধ্যে পার্থক্য

  • Text Extraction মূলত ডকুমেন্ট থেকে টেক্সট সংগ্রহ করার প্রক্রিয়া। এটি ডকুমেন্টের বিভিন্ন অংশ থেকে ডেটা বা তথ্য বের করার জন্য ব্যবহৃত হয়।
  • Text Replacement মূলত ডকুমেন্টের নির্দিষ্ট অংশে টেক্সট পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি সাধারণত find-and-replace কার্যক্রমের মতো কাজ করে, যেখানে একটি পুরনো টেক্সট নতুন টেক্সট দ্বারা প্রতিস্থাপন করা হয়।

কিছু গুরুত্বপূর্ণ বিষয়:

  • Word ডকুমেন্টে ফরম্যাটিং: Apache POI এর মাধ্যমে টেক্সট প্রতিস্থাপন করার সময়, টেক্সটের ফরম্যাটিং (যেমন বোল্ড, ইটালিক) হারিয়ে যেতে পারে। সেক্ষেত্রে XWPFRun এর মাধ্যমে টেক্সটের ফরম্যাট ঠিক করা যেতে পারে।
  • নির্দিষ্ট টেক্সট পরিবর্তন: যদি আপনি ডকুমেন্টের মধ্যে একাধিক জায়গায় একই টেক্সট পরিবর্তন করতে চান, তবে আপনাকে প্রতিটি প্যারাগ্রাফ বা টেবিল সেল থেকে টেক্সট পরীক্ষা করতে হবে এবং প্রয়োজনে পরিবর্তন করতে হবে।

সারাংশ

Apache POI এর XWPF API ব্যবহার করে আপনি সহজেই Word ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাক্ট করতে পারেন এবং টেক্সট প্রতিস্থাপন করতে পারেন। Text Extraction এর মাধ্যমে আপনি ডকুমেন্টের সমস্ত টেক্সট পড়তে পারেন, এবং Text Replacement এর মাধ্যমে আপনি নির্দিষ্ট টেক্সট পরিবর্তন করতে পারবেন। এই প্রক্রিয়াগুলি ডকুমেন্টের ভেতরের কনটেন্ট পরিবর্তন বা বিশ্লেষণের জন্য খুবই কার্যকর।

common.content_added_by

Dynamic Text যোগ করার কৌশল

149
149

Apache POI লাইব্রেরি ব্যবহার করে Microsoft Word ডকুমেন্টে Dynamic Text যোগ করা খুব সহজ। Dynamic Text বলতে এমন টেক্সট বোঝানো হয়, যা চলমান অবস্থায় কোডের মাধ্যমে ডকুমেন্টে অন্তর্ভুক্ত করা হয়, যেমন ডাটাবেস থেকে প্রাপ্ত তথ্য, ব্যবহারকারীর ইনপুট, বা অন্য কোনো প্রোগ্রামিং যুক্তি অনুসারে পরিবর্তনশীল টেক্সট।

Dynamic Text যোগ করার জন্য প্রয়োজনীয় পদক্ষেপ

  1. ডকুমেন্ট তৈরি বা লোড করা: প্রথমে আপনাকে .docx বা .doc ফরম্যাটের একটি ডকুমেন্ট তৈরি বা লোড করতে হবে।
  2. প্যারাগ্রাফ তৈরি করা: নতুন টেক্সট যোগ করার জন্য XWPFParagraph ব্যবহার করা হয়।
  3. টেক্সট রুন (Run) তৈরি করা: XWPFRun ব্যবহার করে আপনি টেক্সট যোগ করতে পারেন।
  4. Dynamic Text যোগ করা: চলমান তথ্য যেমন ব্যবহারকারীর ইনপুট বা ডাটাবেসের মান ডকুমেন্টে যোগ করা।

এখানে .docx ফাইলের জন্য একটি উদাহরণ দেওয়া হলো:

উদাহরণ ১: Dynamic Text যোগ করা (XWPF)

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.*;

public class DynamicTextExample {
    public static void main(String[] args) {
        try {
            // নতুন ডকুমেন্ট তৈরি
            XWPFDocument document = new XWPFDocument();
            
            // নতুন প্যারাগ্রাফ তৈরি
            XWPFParagraph paragraph = document.createParagraph();
            
            // নতুন রুন তৈরি
            XWPFRun run = paragraph.createRun();
            
            // Dynamic Text যোগ করা
            String dynamicText = "এই টেক্সটটি ডাইনামিকভাবে যোগ করা হয়েছে: " + System.currentTimeMillis();
            run.setText(dynamicText);
            
            // ডকুমেন্ট সেভ করা
            try (FileOutputStream fos = new FileOutputStream("DynamicTextExample.docx")) {
                document.write(fos);
            }

            System.out.println("ডাইনামিক টেক্সট সফলভাবে ডকুমেন্টে যোগ করা হয়েছে!");

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

উদাহরণ ২: ডাটাবেস থেকে Dynamic Text যোগ করা

ধরা যাক, আমরা একটি ডাটাবেস থেকে ডাইনামিক তথ্য নিয়ে Word ডকুমেন্টে যোগ করতে চাই। নিচে একটি উদাহরণ দেওয়া হলো যেখানে ডাটাবেস থেকে একটি নাম নিয়ে তা ডকুমেন্টে যোগ করা হচ্ছে:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.*;
import java.sql.*;

public class DatabaseDynamicTextExample {
    public static void main(String[] args) {
        try {
            // ডাটাবেস সংযোগ
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT username FROM users WHERE user_id = 1");

            String userName = "";
            if (rs.next()) {
                userName = rs.getString("username");
            }

            // নতুন ডকুমেন্ট তৈরি
            XWPFDocument document = new XWPFDocument();
            
            // নতুন প্যারাগ্রাফ তৈরি
            XWPFParagraph paragraph = document.createParagraph();
            
            // নতুন রুন তৈরি
            XWPFRun run = paragraph.createRun();
            
            // ডাটাবেস থেকে ডাইনামিক টেক্সট যোগ করা
            String dynamicText = "স্বাগতম " + userName + ", আপনি আমাদের সিস্টেমে সফলভাবে লগইন করেছেন!";
            run.setText(dynamicText);

            // ডকুমেন্ট সেভ করা
            try (FileOutputStream fos = new FileOutputStream("UserWelcome.docx")) {
                document.write(fos);
            }

            System.out.println("ডাইনামিক টেক্সট সফলভাবে ডকুমেন্টে যোগ করা হয়েছে!");

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

Dynamic Text-এর বিভিন্ন ব্যবহার

  1. ইনপুট থেকে টেক্সট যোগ করা: ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে ডাইনামিক টেক্সট তৈরি করা। যেমন, ব্যবহারকারী নাম বা ইমেল অ্যাড্রেস।
  2. ডাটাবেস কুয়েরি: ডাটাবেস থেকে প্রাপ্ত মান, যেমন ব্যবহারকারীর নাম বা অ্যাকাউন্টের তথ্য।
  3. সময় এবং তারিখ: সিস্টেমের বর্তমান সময় বা তারিখকে ডকুমেন্টে যোগ করা।
  4. API ডেটা: একটি API থেকে প্রাপ্ত ডেটা ডকুমেন্টে অন্তর্ভুক্ত করা।

Dynamic Text যুক্ত করার কৌশল

  • ফরম্যাটিং: আপনি টেক্সটের ফরম্যাটিংয়ের জন্য run.setBold(true), run.setItalic(true), run.setUnderline(true) ইত্যাদি ব্যবহার করতে পারেন। এছাড়াও, ফন্ট সাইজ, ফন্ট কালার ইত্যাদি পরিবর্তন করা সম্ভব।
  • বিভিন্ন প্যারাগ্রাফ: আপনি ডাইনামিক টেক্সটকে বিভিন্ন প্যারাগ্রাফে বিভক্ত করতে পারেন, যাতে একটি টেক্সট একাধিক লাইনে আসবে।
  • কাস্টম ফর্ম্যাটিং: ডাইনামিক টেক্সটকে নির্দিষ্ট ফরম্যাটে (যেমন: সংখ্যা বা মুদ্রার ফরম্যাট) যুক্ত করা যেতে পারে।

Apache POI ব্যবহার করে Microsoft Word ডকুমেন্টে Dynamic Text যোগ করা খুবই সহজ এবং কার্যকরী। এটি কেবল স্ট্যাটিক টেক্সট নয়, বরং পরিবর্তনশীল বা চলমান তথ্যকে ডকুমেন্টে অন্তর্ভুক্ত করতে সক্ষম, যেমন ডাটাবেস থেকে প্রাপ্ত তথ্য, ব্যবহারকারীর ইনপুট বা সিস্টেমের বর্তমান সময়। XWPF ক্লাসের মাধ্যমে আপনি অত্যন্ত নমনীয়ভাবে এই কাজটি করতে পারেন, এবং প্রয়োজন অনুযায়ী টেক্সট ফরম্যাটিং, টেবিল, গ্রাফিক্স সহ আরও অনেক কিছু যোগ করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion