Apache POI XWPF
Word OOXML दस्तावेज़ों के लिए Java API
जावा अनुप्रयोगों में Microsoft Word DOCX फ़ाइलें बनाने, पढ़ने, संपादित करने और परिवर्तित करने के लिए ओपन सोर्स समाधान।
Apache POI XWPF Microsoft Word 2007 DOCX फ़ाइल स्वरूप को पढ़ने और लिखने की कार्यक्षमता प्रदान करता है। XWPF में काफी स्थिर कोर API है, जो Word DOCX फ़ाइल के मुख्य भागों तक पहुँच प्रदान करता है। इसका उपयोग मूल और विशिष्ट टेक्स्ट निष्कर्षण, शीर्षलेख और पाद लेख में हेरफेर, टेक्स्ट हेरफेर और स्टाइलिंग सुविधाओं के लिए किया जा सकता है।
Apache POI XWPF Microsoft Word फ़ाइल निर्माण और दस्तावेज़ संपादन, पाठ और अनुच्छेदों के स्वरूपण, छवि सम्मिलन, तालिका निर्माण और पार्सिंग, मेल मर्ज सुविधाओं, प्रपत्र तत्वों के प्रबंधन, और बहुत कुछ के लिए अधिक प्रसिद्ध है।
Apache POI XWPF के साथ शुरुआत करना
सबसे पहले, आपको अपने सिस्टम पर जावा डेवलपमेंट किट (JDK) स्थापित करना होगा। यदि आपके पास यह पहले से है तो किसी संग्रह में नवीनतम स्थिर रिलीज़ प्राप्त करने के लिए Apache POI के डाउनलोड पृष्ठ पर जाएं। ज़िप फ़ाइल की सामग्री को किसी भी निर्देशिका में निकालें जहाँ से आवश्यक पुस्तकालयों को आपके जावा प्रोग्राम से जोड़ा जा सकता है। बस इतना ही!
अपने मावेन-आधारित जावा प्रोजेक्ट में अपाचे पीओआई को संदर्भित करना और भी आसान है। आपको बस अपने pom.xml में निम्नलिखित निर्भरता को जोड़ना है और अपने IDE को Apache POI Jar फ़ाइलों को लाने और संदर्भित करने देना है।
अपाचे पीओआई मावेन निर्भरता
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
जावा एपीआई का उपयोग करके वर्ड दस्तावेज़ उत्पन्न और संपादित करें
Apache POI XWPF सॉफ्टवेयर प्रोग्रामर्स को DOCX फाइल फॉर्मेट में नए वर्ड डॉक्यूमेंट बनाने में सक्षम बनाता है। डेवलपर्स मौजूदा Microsoft Word DOCX फ़ाइल को अपनी एप्लिकेशन आवश्यकताओं के अनुसार संपादित करने के लिए भी लोड कर सकते हैं। यह आपको नए पैराग्राफ जोड़ने, टेक्स्ट डालने, टेक्स्ट अलाइनमेंट और बॉर्डर लागू करने, टेक्स्ट स्टाइल बदलने और बहुत कुछ करने की अनुमति देता है।
स्क्रैच से एक DOCX फाइल जेनरेट करें
// initialize a blank document
XWPFDocument document = new XWPFDocument();
// create a new file
FileOutputStream out = new FileOutputStream(new File("document.docx"));
// create a new paragraph paragraph
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("File Format Developer Guide - " +
"Learn about computer files that you come across in " +
"your daily work at: www.fileformat.com ");
document.write(out);
out.close();
Word दस्तावेज़ों में अनुच्छेद, छवि और तालिका जोड़ें
Apache POI XWPF डेवलपर्स को Word दस्तावेज़ों में अनुच्छेद और चित्र जोड़ने की अनुमति देता है। एपीआई उपयोगकर्ता द्वारा परिभाषित डेटा के साथ सरल और नेस्टेड टेबल बनाना संभव बनाते हुए DOCX दस्तावेज़ों में टेबल जोड़ने की सुविधा भी प्रदान करता है।
तालिका के साथ एक नई DOCX फ़ाइल बनाएं
// initialize a blank document
XWPFDocument document = new XWPFDocument();
// create a new file
FileOutputStream out = new FileOutputStream(new File("table.docx"));
// create a new table
XWPFTable table = document.createTable();
// create first row
XWPFTableRow tableRowOne = table.getRow(0);
tableRowOne.getCell(0).setText("Serial No");
tableRowOne.addNewTableCell().setText("Products");
tableRowOne.addNewTableCell().setText("Formats");
// create second row
XWPFTableRow tableRowTwo = table.createRow();
tableRowTwo.getCell(0).setText("1");
tableRowTwo.getCell(1).setText("Apache POI XWPF");
tableRowTwo.getCell(2).setText("DOCX, HTML, FO, TXT, PDF");
// create third row
XWPFTableRow tableRowThree = table.createRow();
tableRowThree.getCell(0).setText("2");
tableRowThree.getCell(1).setText("Apache POI HWPF");
tableRowThree.getCell(2).setText("DOC, HTML, FO, TXT");
document.write(out);
out.close();
Word OOXML दस्तावेज़ से टेक्स्ट निकालें
Apache POI XWPF कोड की कुछ पंक्तियों के साथ Microsoft Word DOCX दस्तावेज़ों से डेटा निकालने के लिए विशेष वर्ग प्रदान करता है। उसी तरह, यह किसी Word फ़ाइल से शीर्षक, फ़ुटनोट, तालिका डेटा आदि भी निकाल सकता है।
वर्ड फाइल से टेक्स्ट एक्सट्रेक्ट करें
// load DOCX file
FileInputStream fis = new FileInputStream("document.docx");
// open file
XWPFDocument file = new XWPFDocument(OPCPackage.open(fis));
// read text
XWPFWordExtractor ext = new XWPFWordExtractor(file);
// display text
System.out.println(ext.getText());
DOCX दस्तावेज़ों में कस्टम शीर्षलेख और पाद लेख जोड़ें
शीर्ष लेख और पाद लेख शब्द दस्तावेज़ का एक महत्वपूर्ण हिस्सा हैं क्योंकि उनमें आमतौर पर अतिरिक्त जानकारी होती है जैसे दिनांक, पृष्ठ संख्या, लेखक का नाम और फ़ुटनोट, जो लंबे दस्तावेज़ों को व्यवस्थित और पढ़ने में आसान रखने में मदद करते हैं। Apache POI XWPF जावा डेवलपर्स को Word दस्तावेज़ों में कस्टम हेडर और फ़ुटर जोड़ने की अनुमति देता है।
Word DOCX फ़ाइल में कस्टम शीर्षलेख और पाद लेख प्रबंधित करें
public class HeaderFooterTable {
public static void main(String[] args) throws IOException {
try (XWPFDocument doc = new XWPFDocument()) {
// Create a header with a 1 row, 3 column table
XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);
XWPFTable tbl = hdr.createTable(1, 3);
// Set the padding around text in the cells to 1/10th of an inch
int pad = (int) (.1 * 1440);
tbl.setCellMargins(pad, pad, pad, pad);
// Set table width to 6.5 inches in 1440ths of a point
tbl.setWidth((int) (6.5 * 1440));
CTTbl ctTbl = tbl.getCTTbl();
CTTblPr ctTblPr = ctTbl.addNewTblPr();
CTTblLayoutType layoutType = ctTblPr.addNewTblLayout();
layoutType.setType(STTblLayoutType.FIXED);
BigInteger w = new BigInteger("3120");
CTTblGrid grid = ctTbl.addNewTblGrid();
for (int i = 0; i < 3; i++) {
CTTblGridCol gridCol = grid.addNewGridCol();
gridCol.setW(w);
}
// Add paragraphs to the cells
XWPFTableRow row = tbl.getRow(0);
XWPFTableCell cell = row.getCell(0);
XWPFParagraph p = cell.getParagraphArray(0);
XWPFRun r = p.createRun();
r.setText("header left cell");
cell = row.getCell(1);
p = cell.getParagraphArray(0);
r = p.createRun();
r.setText("header center cell");
cell = row.getCell(2);
p = cell.getParagraphArray(0);
r = p.createRun();
r.setText("header right cell");
// Create a footer with a Paragraph
XWPFFooter ftr = doc.createFooter(HeaderFooterType.DEFAULT);
p = ftr.createParagraph();
r = p.createRun();
r.setText("footer text");
try (OutputStream os = new FileOutputStream(new File("headertable.docx"))) {
doc.write(os);
}
}
}
}