Annotations Word ডকুমেন্টে টেক্সট, ছবি বা অন্যান্য কনটেন্টের সঙ্গে সম্পর্কিত মন্তব্য বা নোট হিসেবে ব্যবহৃত হয়। এটি সাধারণত ডকুমেন্টের রিভিউ বা মন্তব্যের জন্য ব্যবহৃত হয় এবং ডকুমেন্টের সংশোধন বা পর্যালোচনা প্রক্রিয়ায় সহায়ক হয়। Apache POI লাইব্রেরি ব্যবহার করে Word ডকুমেন্টে Annotations যোগ করা, পড়া এবং পরিচালনা করার কিছু কৌশল এখানে আলোচনা করা হয়েছে।
Word ডকুমেন্টে Annotations সাধারণত দুই ধরনের হতে পারে:
Apache POI মূলত Comments যোগ করতে সহায়তা করে, যেটি সাধারণত ডকুমেন্টের সংশোধন বা পর্যালোচনার কাজে ব্যবহৃত হয়।
Comments বা মন্তব্য Word ডকুমেন্টে যোগ করতে, XWPFComment এবং XWPFDrawing ক্লাস ব্যবহার করা হয়। এখানে একটি উদাহরণ দেওয়া হলো, যেখানে টেক্সটের একটি নির্দিষ্ট অংশে মন্তব্য (annotation) যোগ করা হয়েছে।
import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.wp.usermodel.HeaderFooterType;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddCommentToWord {
public static void main(String[] args) throws IOException {
// নতুন ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// প্রথম Paragraph তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
paragraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun run = paragraph.createRun();
run.setText("This is a sample text where we will add a comment.");
// মন্তব্য (Annotation) যোগ করা
XWPFComment comment = new XWPFComment(document);
comment.setAuthor("John Doe");
comment.setDate("2024-12-17");
comment.setText("This is a comment added to the text.");
paragraph.addComment(comment);
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("word_with_comments.docx");
document.write(out);
out.close();
}
}
এখানে, একটি Paragraph-এ মন্তব্য যোগ করা হয়েছে, এবং এতে Author (লেখক) এবং Date নির্ধারণ করা হয়েছে।
একটি Word ডকুমেন্টে মন্তব্য যোগ করা হলে, সেই মন্তব্যগুলি পরে পড়ে বা প্রক্রিয়াজাত করা যায়। যদিও Apache POI সরাসরি মন্তব্য পড়ার জন্য কোনও API সরবরাহ করে না, তবে আপনি ডকুমেন্টের XML স্ট্রাকচার থেকে মন্তব্যগুলি বের করতে পারেন। POI-এর মাধ্যমে এই মন্তব্যগুলো XML ফরম্যাটে থাকে, এবং আপনি তাদের প্রোগ্রাম্যাটিকভাবে অ্যাক্সেস করতে পারেন।
import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadCommentsFromWord {
public static void main(String[] args) throws IOException {
// ডকুমেন্ট লোড করা
XWPFDocument document = new XWPFDocument(new FileInputStream("word_with_comments.docx"));
// মন্তব্যের জন্য XML কনটেন্ট পরীক্ষা করা
XmlCursor cursor = document.getDocument().newCursor();
cursor.selectPath("./*");
while(cursor.toNextSelection()) {
if(cursor.getName().getLocalPart().equals("w:comment")) {
String commentText = cursor.getTextValue();
System.out.println("Found Comment: " + commentText);
}
}
}
}
এখানে, XML Cursor ব্যবহার করে ডকুমেন্টের XML থেকে comments বের করা হয়েছে। আপনি প্রতিটি মন্তব্যের টেক্সট বের করতে পারেন।
Footnotes এবং Endnotes ডকুমেন্টে অতিরিক্ত তথ্য প্রদানের জন্য ব্যবহৃত হয়। Apache POI এর মাধ্যমে আপনি Footnotes এবং Endnotes যোগ করতে পারেন।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddFootnoteAndEndnote {
public static void main(String[] args) throws IOException {
// নতুন ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// প্রথম Paragraph তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
paragraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun run = paragraph.createRun();
run.setText("This is some text with a footnote and endnote.");
// Footnote যোগ করা
XWPFFootnote footnote = document.createFootnote();
XWPFParagraph footnoteParagraph = footnote.createParagraph();
XWPFRun footnoteRun = footnoteParagraph.createRun();
footnoteRun.setText("This is a footnote.");
// Endnote যোগ করা
XWPFEndnote endnote = document.createEndnote();
XWPFParagraph endnoteParagraph = endnote.createParagraph();
XWPFRun endnoteRun = endnoteParagraph.createRun();
endnoteRun.setText("This is an endnote.");
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("footnote_endnote_example.docx");
document.write(out);
out.close();
}
}
এখানে, একটি Footnote এবং Endnote যোগ করা হয়েছে, যা ডকুমেন্টে অতিরিক্ত তথ্য প্রদানের জন্য ব্যবহার করা যাবে।
আপনি Annotations বা Comments এর font, color, size ইত্যাদি কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ:
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class CustomizeCommentFormat {
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
// Paragraph তৈরি করা
XWPFParagraph para1 = document.createParagraph();
para1.setAlignment(ParagraphAlignment.LEFT);
XWPFRun run1 = para1.createRun();
run1.setText("This is a text with customized comment.");
// মন্তব্য (Annotation) যোগ করা
XWPFComment comment = new XWPFComment(document);
comment.setAuthor("Jane Smith");
comment.setDate("2024-12-17");
comment.setText("This is a custom formatted comment.");
// মন্তব্যের ফরম্যাট কাস্টমাইজ করা
comment.setFontSize(12); // Font size 12
comment.setFontColor("FF0000"); // Red color
comment.setBold(true); // Bold text
para1.addComment(comment);
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("customized_comment.docx");
document.write(out);
out.close();
}
}
এখানে, Comment বা Annotation এর ফরম্যাট যেমন font size, color এবং boldness কাস্টমাইজ করা হয়েছে।
Annotations (যেমন Comments, Footnotes, Endnotes) Word ডকুমেন্টে গুরুত্বপূর্ণ তথ্য বা পরামর্শ প্রদান করতে ব্যবহৃত হয়। Apache POI এর মাধ্যমে আপনি এই Annotations যোগ করতে পারেন, পড়তে পারেন এবং কাস্টমাইজও করতে পারেন। এটি ডকুমেন্টের রিভিউ বা পর্যালোচনা প্রক্রিয়ায় অত্যন্ত সহায়ক এবং এটি ডকুমেন্টের তথ্যকে আরও সুসংগঠিত এবং স্পষ্টভাবে উপস্থাপন করতে সাহায্য করে।
common.read_more