Apache POI হল একটি শক্তিশালী লাইব্রেরি যা Microsoft Word (DOCX) ফাইলগুলি প্রসেস করতে ব্যবহৃত হয়। কিন্তু কখনও কখনও আমাদের Word ডকুমেন্ট গুলিকে অন্য ফরম্যাটে রূপান্তর (conversion) করতে হয়, যেমন PDF, HTML, বা অন্যান্য ফরম্যাটে। যদিও Apache POI মূলত DOCX ফাইল নিয়ে কাজ করে, তবে এটি ডিরেক্টলি ফাইল কনভার্শনের জন্য কোন টুল বা API সরবরাহ করে না। তবে, কিছু best practices অনুসরণ করে আপনি সহজেই ফাইল কনভার্শন প্রক্রিয়া উন্নত করতে পারেন।
এই টিউটোরিয়ালে আমরা দেখবো Word ফাইলের কনভার্শন এবং তার জন্য সেরা কৌশলগুলি কী হতে পারে।
Word ফাইল থেকে তথ্য এক্সট্র্যাকশন করা গুরুত্বপূর্ণ, বিশেষত যখন আপনি কনভার্শন করার আগে ডকুমেন্টের কন্টেন্ট প্রসেস করতে চান।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
public class ExtractTextFromWord {
public static void main(String[] args) throws IOException {
// Word ডকুমেন্ট লোড করা
FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis);
// ডকুমেন্টের প্রতিটি প্যারাগ্রাফ থেকে টেক্সট এক্সট্র্যাক্ট করা
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
fis.close();
}
}
এটি খুবই গুরুত্বপূর্ণ যখন আপনি Word ডকুমেন্ট থেকে ডেটা এক্সট্র্যাক্ট করে অন্য ফরম্যাটে রূপান্তর করতে চান, যেমন HTML বা TXT।
Apache POI নিজেই Word ফাইলের কনভার্শন সরাসরি পরিচালনা না করলেও, কিছু তৃতীয় পক্ষের লাইব্রেরি যেমন Aspose.Words বা docx4j ব্যবহার করে কনভার্শন সহজ করা সম্ভব। তবে, এই লাইব্রেরিগুলি অনেক সময় প্রিমিয়াম বা পেইড।
যেহেতু Apache POI সরাসরি PDF কনভার্শন সাপোর্ট করে না, সেজন্য আপনাকে অন্যান্য লাইব্রেরি ব্যবহার করতে হবে যেমন iText বা Apache FOP।
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class WordToPDF {
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis);
Document pdfDocument = new Document();
PdfWriter.getInstance(pdfDocument, new FileOutputStream("output.pdf"));
pdfDocument.open();
// Word ডকুমেন্টের প্রতিটি প্যারাগ্রাফ থেকে টেক্সট পড়া এবং PDF তে লেখানো
for (XWPFParagraph paragraph : document.getParagraphs()) {
pdfDocument.add(new com.itextpdf.text.Paragraph(paragraph.getText()));
}
pdfDocument.close();
fis.close();
}
}
এটি সাধারণত ওয়েব ভিত্তিক ডকুমেন্টের জন্য প্রয়োজনীয় হয়। আপনি Word ফাইল থেকে HTML তে কনভার্ট করতে পারেন যেমন নিচের কোডে দেখানো হয়েছে।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
public class WordToHTML {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis);
FileWriter writer = new FileWriter("output.html");
// HTML ট্যাগের সাথে টেক্সট লেখার জন্য শুরু
writer.write("<html><body>");
// ডকুমেন্টের প্রতিটি প্যারাগ্রাফ থেকে HTML প্যারাগ্রাফ তৈরি করা
for (XWPFParagraph paragraph : document.getParagraphs()) {
writer.write("<p>" + paragraph.getText() + "</p>");
}
// HTML ফাইল বন্ধ করা
writer.write("</body></html>");
writer.close();
fis.close();
}
}
Apache POI হল Word ডকুমেন্ট প্রসেস করার জন্য একটি শক্তিশালী টুল, কিন্তু ফাইল কনভার্শনের জন্য সরাসরি কোন সমাধান না থাকা সত্ত্বেও, কিছু external লাইব্রেরি এবং প্র্যাকটিস ব্যবহার করে আপনি Word থেকে PDF, HTML, বা অন্য ফরম্যাটে কনভার্ট করতে পারেন। iText এবং Aspose.Words হল দুইটি জনপ্রিয় টুল যা ফাইল কনভার্শন এবং বিভিন্ন ফরম্যাটে রূপান্তরের জন্য ব্যবহৃত হয়।
common.read_more