অ্যাপাচি পিওআই (Apache POI) সরাসরি Word ডকুমেন্টের Encryption এবং Decryption এর জন্য সমর্থন প্রদান করে না। তবে, Apache POI এর মাধ্যমে আপনি password-protect করা Word ডকুমেন্ট তৈরি করতে পারেন, কিন্তু এটি শুধুমাত্র ডকুমেন্টের metadata এবং basic encryption এর জন্য সীমাবদ্ধ। Advanced Encryption (যেমন AES বা অন্য আধুনিক এনক্রিপশন মেথড) করার জন্য আপনাকে অন্য কোনও লাইব্রেরি, যেমন Apache POI এর বাইরের BouncyCastle বা Java Cryptography API ব্যবহার করতে হবে।
এখানে Apache POI ব্যবহার করে Word ডকুমেন্টের encryption এবং decryption এর প্রাথমিক ধারণা দেওয়া হবে, তবে এটি সঠিক এনক্রিপশন স্তরের সমর্থন নয়, বরং একটি password-based protection এর উদাহরণ হবে।
Apache POI সরাসরি এনক্রিপশন বা ডিক্রিপশন পরিচালনা না করলেও, আপনি password-protection এর মাধ্যমে একটি ডকুমেন্টে encryption তৈরি করতে পারেন। এখানে, XWPFDocument ব্যবহার করে একটি ডকুমেন্টে password সেট করা হচ্ছে।
import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;
public class EncryptWordDocument {
public static void main(String[] args) throws Exception {
// নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// একটি প্যারাগ্রাফ তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("This document is protected with a password.");
// ডকুমেন্টটি সেভ করার আগে password protection যোগ করা
FileOutputStream out = new FileOutputStream("protected_document.docx");
// এখানে password-protection যুক্ত করার জন্য POI সরাসরি সমর্থন না থাকলেও,
// password protect করার জন্য আপনাকে Apache POI-এর বাইরে অন্য কোনও লাইব্রেরি ব্যবহার করতে হবে,
// যেমন Apache Tika বা BouncyCastle।
// Document save (without real password protection)
document.write(out);
out.close();
System.out.println("Document created successfully. Encryption functionality can be added using external libraries.");
}
}
এখানে password protection অ্যাড করার জন্য আপনাকে Apache POI এর বাইরে অন্য লাইব্রেরি ব্যবহার করতে হবে, কারণ POI স্বতন্ত্রভাবে password encryption সাপোর্ট করে না।
পাসওয়ার্ড-প্রোটেক্টেড Word ডকুমেন্ট খোলার জন্য আপনাকে প্রোগ্রামmatically ডিক্রিপ্ট করতে হবে। যেহেতু Apache POI এই ফিচারটি সরাসরি সাপোর্ট করে না, তাই আপনাকে Apache Tika বা BouncyCastle এর মত লাইব্রেরি ব্যবহার করে ডিক্রিপশন করতে হবে।
এখানে একটি BouncyCastle লাইব্রেরির উদাহরণ দেওয়া হলো, যা আপনাকে আধুনিক এনক্রিপশন/ডিক্রিপশন সমাধান দিতে পারে:
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.*;
public class DecryptWordDocument {
public static void main(String[] args) throws Exception {
// পাসওয়ার্ড দিয়ে encrypted ডকুমেন্ট লোড করা
FileInputStream fis = new FileInputStream("protected_document.docx");
// এখানে পাসওয়ার্ড দিয়ে ডকুমেন্ট ওপেন করতে BouncyCastle বা Apache Tika প্রয়োজন হবে।
XWPFDocument document = new XWPFDocument(fis); // POI শুধুমাত্র Word ডকুমেন্ট পড়তে পারে, পাসওয়ার্ড চেক না করলেও
// ডকুমেন্টের কন্টেন্ট পড়া
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
fis.close();
}
}
যেহেতু Apache POI সরাসরি এনক্রিপশন এবং ডিক্রিপশন সমর্থন করে না, তাই আপনাকে Apache Tika বা BouncyCastle লাইব্রেরি ব্যবহার করতে হবে। এই লাইব্রেরিগুলি Password Protection এবং Encryption এর জন্য প্রয়োজনীয় সমাধান প্রদান করতে পারে।
Apache POI ডকুমেন্টে সরাসরি encryption বা decryption সমর্থন না করলেও, আপনি বাইরের লাইব্রেরি যেমন BouncyCastle বা Apache Tika ব্যবহার করে password protection যোগ এবং ডিক্রিপশন পরিচালনা করতে পারেন। POI শুধুমাত্র ডকুমেন্টের কন্টেন্ট পড়তে সহায়ক হলেও, পাসওয়ার্ড প্রোটেকশন এবং এনক্রিপশন বাস্তবায়নের জন্য আপনাকে বাইরের লাইব্রেরি ব্যবহার করতে হবে।
common.read_more