Apache POI লাইব্রেরি মূলত Microsoft Office ডকুমেন্টের সাথে কাজ করতে ব্যবহৃত হয়, যেমন Word, Excel, এবং PowerPoint। এটি মূলত .docx ফাইল ফর্ম্যাটে কাজ করে, তবে কিছু নির্দিষ্ট কনফিগারেশন এবং লাইব্রেরি ব্যবহার করে আপনি ফাইল কনভার্শন এবং কম্প্যাটিবিলিটি সমস্যার সমাধান করতে পারেন। Word ফাইলের ক্ষেত্রে, আপনি .docx থেকে .doc এবং এর বিপরীতে কনভার্ট করতে পারবেন, তবে এতে কিছু সীমাবদ্ধতা থাকতে পারে।
এই টিউটোরিয়ালে আমরা ফাইল কনভার্শন এবং এর কম্প্যাটিবিলিটি বিষয়ক কিছু গুরুত্বপূর্ণ বিষয় আলোচনা করব।
Apache POI শুধুমাত্র .docx ফাইলের সাথে কাজ করতে পারে, তবে .doc ফাইল কনভার্শনের জন্য Apache Tika বা LibreOffice (যা কমান্ড লাইন থেকে চালানো যায়) ব্যবহার করা যেতে পারে। Apache POI লাইব্রেরি সরাসরি .doc থেকে .docx বা তার বিপরীত ফরম্যাটে কনভার্ট করার জন্য কোনো ইন-বিল্ট মেথড সরবরাহ করে না।
তবে, আপনি POI ব্যবহার করে .docx ফাইলের কনটেন্ট (যেমন টেক্সট, টেবিল, ইমেজ) অ্যাক্সেস এবং ম্যানিপুলেট করতে পারবেন। এবং, আপনি Apache Tika বা LibreOffice এর মতো টুল ব্যবহার করে কনভার্শন প্রক্রিয়া সম্পন্ন করতে পারেন।
import org.apache.tika.Tika;
import java.io.File;
import java.io.IOException;
public class FileConversionExample {
public static void main(String[] args) {
try {
// Tika ইনস্ট্যান্স তৈরি
Tika tika = new Tika();
// .docx ফাইল কনভার্ট করা
String fileContent = tika.parseToString(new File("input.docx"));
System.out.println("Converted content: \n" + fileContent);
// অন্যান্য কনভার্শন প্রক্রিয়া প্রয়োগ করা যেতে পারে (যেমন .doc থেকে .docx)
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই উদাহরণে Apache Tika ব্যবহার করে .docx ফাইলের কনটেন্ট অ্যাক্সেস করা হয়েছে। Apache Tika অন্য ফাইল ফর্ম্যাটের কনভার্শনেও সহায়তা করে, তবে ফাইলটি নির্দিষ্ট ফর্ম্যাটে রূপান্তরিত হলে আপনাকে আরো শক্তিশালী টুল ব্যবহার করতে হতে পারে।
Apache POI বেশিরভাগ Microsoft Office ফাইল ফরম্যাটের সাথে কম্প্যাটিবল, তবে কিছু limitation বা সীমাবদ্ধতা রয়েছে, বিশেষত পুরনো ফরম্যাট (যেমন .doc) এর সাথে। .docx ফরম্যাটটি Office 2007 এর পরবর্তী সংস্করণগুলির জন্য ডিজাইন করা হলেও, Apache POI এই ফরম্যাটে সবচেয়ে ভালো কাজ করে।
যখন আপনি .docx ফাইল তৈরি করেন, আপনি .doc ফরম্যাটের জন্য কম্প্যাটিবিলিটি নিশ্চিত করতে চাইলে কিছু স্ট্যান্ডার্ড ডিজাইন ব্যবহার করতে পারেন:
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CompatibilityCheckExample {
public static void main(String[] args) {
try {
// .docx ফাইল লোড করা
FileInputStream file = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(file);
// .docx ফাইলের কনটেন্ট প্রিন্ট করা
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
// .docx ফাইল সেভ করা
FileOutputStream out = new FileOutputStream("compatible_example.docx");
document.write(out);
out.close();
System.out.println("Document processed with compatibility check.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Apache POI লাইব্রেরি Word ফাইলের .docx ফরম্যাটে কাজ করার জন্য তৈরি, তবে আপনি অন্যান্য ফরম্যাটের কনভার্শনের জন্য Apache Tika বা LibreOffice টুল ব্যবহার করতে পারেন। .docx ফরম্যাটে তৈরীকৃত ডকুমেন্টগুলি POI তে ভালভাবে কাজ করে, কিন্তু পুরনো .doc ফরম্যাটের সাথে কিছু কম্প্যাটিবিলিটি সমস্যা থাকতে পারে। Text এবং basic formatting সাধারণত সঠিকভাবে কাজ করবে, তবে complex elements মাঝে মাঝে ফরম্যাটিং বা রেন্ডারিং সমস্যা তৈরি করতে পারে।
Apache POI লাইব্রেরি ব্যবহার করে সরাসরি DOC ফাইল থেকে DOCX বা PDF এ রূপান্তর করা সম্ভব নয়, কারণ POI মূলত .docx ফাইল ফরম্যাটের জন্য ডিজাইন করা হয়েছে এবং .doc ফাইলের জন্য সরাসরি রূপান্তরের ফিচার অন্তর্ভুক্ত নয়। তবে, আপনি Apache POI এবং অন্যান্য লাইব্রেরি ব্যবহার করে কিছু workaround পদ্ধতি গ্রহণ করতে পারেন।
এখানে আমরা দেখাবো কীভাবে:
Apache POI শুধুমাত্র .docx ফাইলের সাথে কাজ করতে পারে, তবে .doc ফাইল থেকে .docx ফাইলে রূপান্তর করার জন্য অন্য লাইব্রেরি যেমন Apache Tika বা Aspose.Words ব্যবহার করা যেতে পারে।
import com.aspose.words.Document;
import com.aspose.words.SaveFormat;
public class ConvertDocToDocx {
public static void main(String[] args) {
try {
// DOC ফাইল লোড করা
Document doc = new Document("input.doc");
// DOCX ফরম্যাটে সেভ করা
doc.save("output.docx", SaveFormat.DOCX);
System.out.println("DOC থেকে DOCX এ রূপান্তর সফল!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Aspose.Words একটি কমার্শিয়াল লাইব্রেরি, যা DOC থেকে DOCX বা PDF রূপান্তরের জন্য খুবই উপকারী। এটি Microsoft Word ফরম্যাটের সম্পূর্ণ সমর্থন প্রদান করে।
Apache POI সরাসরি DOCX থেকে PDF এ রূপান্তরের ফিচার সরবরাহ করে না, তবে Apache FOP (Formatting Objects Processor) বা iText লাইব্রেরি ব্যবহার করে এটি করা সম্ভব।
iText একটি শক্তিশালী পিডিএফ লাইব্রেরি যা DOCX ফাইলকে PDF-এ রূপান্তর করতে ব্যবহৃত হতে পারে। নিচে একটি উদাহরণ দেওয়া হলো:
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.*;
public class ConvertDocxToPdf {
public static void main(String[] args) {
try {
// DOCX ফাইল লোড করা
FileInputStream docxFile = new FileInputStream("input.docx");
XWPFDocument doc = new XWPFDocument(docxFile);
// PDF ডকুমেন্ট তৈরি করা
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf"));
pdfDoc.open();
// DOCX প্যারাগ্রাফ থেকে টেক্সট পড়া এবং PDF তে লিখা
for (XWPFParagraph paragraph : doc.getParagraphs()) {
pdfDoc.add(new com.itextpdf.text.Paragraph(paragraph.getText()));
}
pdfDoc.close();
System.out.println("DOCX থেকে PDF রূপান্তর সফল!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
এই কোডটি iText লাইব্রেরি ব্যবহার করে DOCX ফাইল থেকে PDF তৈরি করবে। এখানে আমরা XWPFDocument ব্যবহার করে DOCX ফাইলের প্যারাগ্রাফগুলি পড়েছি এবং iText দিয়ে সেগুলি PDF ফাইলে লিখেছি।
Apache POI সরাসরি DOC ফাইল থেকে DOCX বা PDF-এ রূপান্তর করার জন্য সমর্থন প্রদান করে না, তবে আপনি Aspose.Words বা LibreOffice/OpenOffice এর মতো লাইব্রেরি ব্যবহার করে DOC থেকে DOCX বা PDF রূপান্তর করতে পারেন। DOCX থেকে PDF রূপান্তরের জন্য আপনি iText বা Apache FOP ব্যবহার করতে পারেন।
এই পদ্ধতিগুলি আপনাকে সহজেই আপনার প্রয়োজনীয় ফাইল রূপান্তর করতে সাহায্য করবে।
Apache POI ব্যবহার করে আপনি Word ডকুমেন্ট (.docx) থেকে HTML বা Plain Text ফরম্যাটে রূপান্তর করতে পারেন। POI মূলত Word ডকুমেন্টের কন্টেন্ট অ্যাক্সেস করতে সক্ষম হলেও, ডকুমেন্টটিকে HTML বা Text ফরম্যাটে রূপান্তর করার জন্য কিছু অতিরিক্ত প্রসেসিং এবং কোডিং প্রয়োজন।
এখানে আলোচনা করা হবে কিভাবে Word ডকুমেন্টের কন্টেন্টকে HTML এবং Plain Text ফরম্যাটে রূপান্তর করা যায়।
Word ডকুমেন্টকে HTML ফরম্যাটে রূপান্তর করার জন্য Apache POI সরাসরি সমর্থন না দিলেও, কিছু অতিরিক্ত কোডিং এবং এক্সটেনশনের মাধ্যমে এটি করা সম্ভব। এর জন্য XWPF API ব্যবহার করা যেতে পারে এবং HTML ট্যাগে ডকুমেন্টের কন্টেন্টকে ম্যানুয়ালি মাপ করা যায়।
import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xwpf.converter.core.XWPFConverterException;
import org.apache.poi.xwpf.converter.html.HtmlConverter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordToHTMLConversion {
public static void main(String[] args) throws IOException, XWPFConverterException {
// Word ডকুমেন্ট লোড করা
FileInputStream fis = new FileInputStream("document.docx");
XWPFDocument document = new XWPFDocument(fis);
// HTML ফাইলে রূপান্তর করা
FileOutputStream out = new FileOutputStream("output.html");
HtmlConverter.getInstance().convert(document, out, null);
fis.close();
out.close();
System.out.println("Word ডকুমেন্ট সফলভাবে HTML এ রূপান্তরিত হয়েছে।");
}
}
এখানে, HtmlConverter ব্যবহার করা হয়েছে যা Apache POI এর সাথে সংযুক্ত করা হয়েছে HTML ফরম্যাটে ডকুমেন্ট রূপান্তর করতে। আপনি HTML ট্যাগগুলো দেখতে পাবেন যেমন <p>
, <b>
, <i>
ইত্যাদি, এবং ডকুমেন্টের টেক্সট সঠিকভাবে কনভার্ট হবে।
poi-ooxml
- POI লাইব্রেরিpoi-ooxml-schemas
- POI স্কিমাxmlbeans
- XML প্রসেসিংয়ের জন্যWord ডকুমেন্ট থেকে Plain Text রূপান্তর করা তুলনামূলকভাবে সহজ, কারণ এতে শুধুমাত্র ডকুমেন্টের কন্টেন্টের টেক্সট অংশটি বের করতে হবে, কোনো স্টাইল বা ফরম্যাটিং সন্নিবেশিত করা হবে না।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordToTextConversion {
public static void main(String[] args) throws IOException {
// Word ডকুমেন্ট লোড করা
FileInputStream fis = new FileInputStream("document.docx");
XWPFDocument document = new XWPFDocument(fis);
// Plain Text বের করা
StringBuilder text = new StringBuilder();
for (XWPFParagraph paragraph : document.getParagraphs()) {
text.append(paragraph.getText()).append("\n");
}
// Text ফাইলে রূপান্তরিত ডেটা সংরক্ষণ
FileOutputStream out = new FileOutputStream("output.txt");
out.write(text.toString().getBytes());
fis.close();
out.close();
System.out.println("Word ডকুমেন্ট সফলভাবে Plain Text এ রূপান্তরিত হয়েছে।");
}
}
এখানে XWPFParagraph ব্যবহার করে ডকুমেন্টের প্রতিটি প্যারাগ্রাফের টেক্সট একত্রিত করা হচ্ছে। এরপর তা Plain Text হিসেবে ফাইল আউটপুটে সংরক্ষণ করা হচ্ছে।
Apache POI ব্যবহার করে Word ডকুমেন্ট (.docx) থেকে HTML এবং Plain Text ফরম্যাটে রূপান্তর করা সম্ভব। HTML রূপান্তর করতে HtmlConverter ব্যবহার করা হয়, যেখানে ডকুমেন্টের কন্টেন্ট HTML ট্যাগে রূপান্তরিত হয়। অন্যদিকে, Plain Text রূপান্তরের জন্য ডকুমেন্টের টেক্সট কন্টেন্ট একত্রিত করে একটি সাধারণ টেক্সট ফাইল তৈরি করা হয়।
এটি খুবই কার্যকরী যখন আপনাকে Word ডকুমেন্ট থেকে কেবলমাত্র টেক্সট বা প্রাথমিক HTML কন্টেন্ট দরকার হয়।
Apache POI একটি শক্তিশালী লাইব্রেরি যা Microsoft Word ডকুমেন্ট (DOC, DOCX) ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। যদিও POI মূলত DOCX ফরম্যাটের জন্য ডিজাইন করা হয়েছে, এটি কিছু পুরনো ফরম্যাট যেমন DOC এর জন্যও সমর্থন প্রদান করে। এই ফিচারটি Compatibility Management এর মাধ্যমে ব্যবহৃত হয়, যেখানে বিভিন্ন ফাইল ফরম্যাটের মধ্যে সঠিকভাবে কাজ করা হয়।
এই লেখায়, আমরা আলোচনা করব কীভাবে Apache POI ব্যবহার করে বিভিন্ন Word ফরম্যাট (DOC এবং DOCX)-এর মধ্যে কমপ্যাটিবিলিটি ম্যানেজ করা যায় এবং প্রয়োজনীয় কনভার্শন বা প্রক্রিয়া সম্পাদন করা যায়।
DOC ফরম্যাটে কাজ করার জন্য Apache POI-র একটি আলাদা সাব-প্রজেক্ট রয়েছে, যা HWPF নামে পরিচিত। HWPF লাইব্রেরি ব্যবহার করে আপনি পুরনো Word DOC ফাইলগুলির কনটেন্ট পেতে বা সম্পাদনা করতে পারেন। কিন্তু এটি কিছু সীমাবদ্ধতার কারণে DOCX এর তুলনায় কম কার্যকরী।
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocFile {
public static void main(String[] args) throws IOException {
// DOC ফাইল লোড করা
HWPFDocument document = new HWPFDocument(new FileInputStream("old_document.doc"));
// Document থেকে Range বের করা
Range range = document.getRange();
// ডকুমেন্টের কনটেন্ট প্রিন্ট করা
System.out.println(range.text());
}
}
এই কোডটি DOC ফরম্যাটে থাকা ফাইলের কনটেন্ট পড়বে এবং প্রিন্ট করবে।
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteDocFile {
public static void main(String[] args) throws IOException {
// একটি নতুন DOC ফাইল তৈরি করা
HWPFDocument document = new HWPFDocument();
Range range = document.getRange();
// নতুন টেক্সট লেখা
range.insertAfter("This is a new text in DOC format.");
// নতুন DOC ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("new_document.doc")) {
document.write(out);
}
}
}
এই কোডে, একটি DOC ফাইলে নতুন টেক্সট যুক্ত করা হচ্ছে এবং নতুন ফাইল সেভ করা হচ্ছে।
Apache POI-এর XWPF লাইব্রেরি আধুনিক DOCX ফরম্যাটের জন্য ডিজাইন করা হয়েছে এবং এটি সম্পাদন, রিড, এবং লেখার জন্য খুবই কার্যকর। XWPF লাইব্রেরি ব্যবহার করে আপনি DOCX ফরম্যাটে ডকুমেন্টের কনটেন্ট ম্যানিপুলেট করতে পারবেন।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocxFile {
public static void main(String[] args) throws IOException {
// DOCX ফাইল লোড করা
XWPFDocument document = new XWPFDocument(new FileInputStream("document.docx"));
// সমস্ত Paragraph গুলি পড়া
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
}
}
এই কোডটি DOCX ফাইল থেকে সমস্ত প্যারাগ্রাফের কনটেন্ট পড়বে এবং প্রিন্ট করবে।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteDocxFile {
public static void main(String[] args) throws IOException {
// একটি নতুন DOCX ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// একটি নতুন Paragraph তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
paragraph.createRun().setText("This is a new text in DOCX format.");
// নতুন DOCX ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("new_document.docx")) {
document.write(out);
}
}
}
এখানে, একটি DOCX ফাইল তৈরি করা হচ্ছে এবং তাতে টেক্সট যোগ করা হচ্ছে।
যেহেতু Apache POI DOC এবং DOCX উভয় ফরম্যাটের জন্য সমর্থন দেয়, আপনি সহজেই একটি DOC ফাইলকে DOCX ফরম্যাটে কনভার্ট করতে পারেন। তবে, কনভার্সন পদ্ধতি সম্পূর্ণভাবে সরাসরি POI-তে নেই, কিন্তু আপনি কিছু অতিরিক্ত কাজের মাধ্যমে এই কনভার্সন করতে পারবেন। এর জন্য Apache POI-র HWPF (DOC) এবং XWPF (DOCX) ফরম্যাটের সাথে কাজ করার জন্য কোড লেখার প্রয়োজন হবে।
এখানে, একটি সাধারিত কনভার্সন পদ্ধতির উদাহরণ দেওয়া হলো:
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.*;
public class ConvertDocToDocx {
public static void main(String[] args) throws IOException {
// পুরানো DOC ফাইল লোড করা
HWPFDocument doc = new HWPFDocument(new FileInputStream("old_document.doc"));
// নতুন DOCX ডকুমেন্ট তৈরি করা
XWPFDocument docx = new XWPFDocument();
// DOC ফাইল থেকে টেক্সট নেয়া
String text = doc.getRange().text();
// DOCX ফাইলের Paragraph এ টেক্সট যোগ করা
docx.createParagraph().createRun().setText(text);
// নতুন DOCX ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("converted_document.docx")) {
docx.write(out);
}
}
}
এখানে DOC ফাইল থেকে টেক্সট পড়া হচ্ছে এবং তা একটি DOCX ফাইলের মধ্যে লেখা হচ্ছে।
Apache POI লাইব্রেরি ব্যবহারের মাধ্যমে DOC এবং DOCX ফরম্যাটের মধ্যে কমপ্যাটিবিলিটি ম্যানেজ করা সম্ভব, তবে DOCX ফরম্যাটের জন্য এটি আরও কার্যকরী। আপনি HWPF লাইব্রেরি ব্যবহার করে DOC ফাইল ম্যানিপুলেট করতে পারেন এবং XWPF লাইব্রেরি ব্যবহার করে DOCX ফাইলের কনটেন্ট ম্যানিপুলেট করতে পারেন। এছাড়া, DOC ফরম্যাটকে DOCX এ কনভার্ট করতে কিছু অতিরিক্ত কোড প্রয়োজন, তবে এটি সম্ভব। Apache POI-এর মাধ্যমে আপনি বিভিন্ন ফরম্যাটের মধ্যে টেমপ্লেট তৈরি ও কনভার্সন সহ নানা কাজ সহজেই করতে পারবেন।
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