Read Metadata From Word .doc Using Java

Apache POI Word - Quick Guide



Apache POI Word - Overview

Many a time, a software awarding is required to generate reference documents in Microsoft Word file format. Sometimes, an application is fifty-fifty expected to receive Word files as input information.

Any Java programmer who wants to produce MS-Office files equally output must use a predefined and read-simply API to do so.

What is Apache POI?

Apache POI is a pop API that allows programmers to create, modify, and display MS-Role files using Java programs. Information technology is an open source library developed and distributed by Apache Software Foundation to blueprint or modify MS-Function files using Java programme. It contains classes and methods to decode the user input information or a file into MS-Office documents.

Components of Apache POI

Apache POI contains classes and methods to work on all OLE2 Compound documents of MS-Office. The list of components of this API is given below −

  • POIFS (Poor Obfuscation Implementation File System) − This component is the basic factor of all other POI elements. It is used to read different files explicitly.

  • HSSF (Horrible SpreadSheet Format) − Information technology is used to read and write .xls format of MS-Excel files.

  • XSSF (XML SpreadSheet Format) − It is used for .xlsx file format of MS-Excel.

  • HPSF (Horrible Property Prepare Format) − It is used to excerpt property sets of the MS-Part files.

  • HWPF (Horrible Give-and-take Processor Format) − It is used to read and write .doc extension files of MS-Discussion.

  • XWPF (XML Discussion Processor Format) − Information technology is used to read and write .docx extension files of MS-Word.

  • HSLF (Horrible Slide Layout Format) − It is used to read, create, and edit PowerPoint presentations.

  • HDGF (Horrible DiaGram Format) − It contains classes and methods for MS-Visio binary files.

  • HPBF (Horrible PuBlisher Format) − It is used to read and write MS-Publisher files.

This tutorial guides yous through the process of working on MS-Word files using Java. Therefore the word is bars to HWPF and XWPF components.

Note − OLDER VERSIONS OF POI Back up BINARY FILE FORMATS SUCH AS Doc, XLS, PPT, ETC. VERSION 3.five ONWARDS, POI SUPPORTS OOXML FILE FORMATS OF MS-OFFICE SUCH As DOCX, XLSX, PPTX, ETC.

Apache POI Discussion - Installation

This chapter takes you through the procedure of setting upward Apache POI on Windows and Linux based systems. Apache POI tin be easily installed and integrated with your current Coffee surroundings following a few simple steps without whatever complex setup procedures. User administration is required while installation.

Organisation Requirements

JDK Java SE 2 JDK i.5 or above
Retentivity i GB RAM (recommended)
Deejay Space No minimum requirement
Operating Organisation Version Windows XP or above, Linux

Allow usa now proceed with the steps to install Apache POI.

Step i: Verify your Java Installation

First of all, you demand to have Java Software Development Kit (SDK) installed on your system. To verify this, execute any of the 2 commands depending on the platform you lot are working on.

If the Coffee installation has been done properly, then it will display the current version and specification of your Java installation. A sample output is given in the following tabular array.

Platform Command Sample Output
Windows

Open up command console and type −

\>java -version

coffee version "xi.0.11" 2021-04-20 LTS

Java(TM) SE Runtime Environment 18.ix (build eleven.0.11+9-LTS-194)

Java HotSpot(TM) 64-Chip Server VM eighteen.nine (build eleven.0.11+nine-LTS-194, mixed manner)

Linux

Open up command terminal and type −

$java -version

java version "eleven.0.11" 2021-04-20 LTS

Open JDK Runtime Environment 18.nine (build 11.0.11+9-LTS-194)

Open up JDK 64-Bit Server VM (build 11.0.xi+9-LTS-194, mixed way)

  • We assume the readers of this tutorial accept Java SDK version 11.0.11 installed on their arrangement.

  • In case you do not accept Java SDK, download its current version from www.oracle.com/technetwork/java/javase/downloads/index.html and have information technology installed.

Step 2: Set your Coffee Environment

Ready the environment variable JAVA_HOME to indicate to the base of operations directory location where Java is installed on your machine. For instance,

Sr.No. Platform & Description
1

Windows

Set JAVA_HOME to C:\ProgramFiles\java\jdk11.0.11

two

Linux

Export JAVA_HOME = /usr/local/java-current

Suspend the full path of Java compiler location to the System Path.

Sr.No. Platform & Clarification
i

Windows

Append the String "C:\Plan Files\Java\jdk11.0.xi\bin" to the stop of the organisation variable PATH.

2

Linux

Export PATH = $PATH:$JAVA_HOME/bin/

Execute the command java -version from the command prompt equally explained in a higher place.

Step 3: Install Apache POI Library

Download the latest version of Apache POI from https://poi.apache.org/download.html and unzip its contents to a binder from where the required libraries can be linked to your Coffee program. Permit u.s. assume the files are collected in a folder on C drive.

Add together the consummate path of the required jars as shown below to the CLASSPATH.

Sr.No. Platform & Description
1

Windows

Append the post-obit strings to the end of the user variable

CLASSPATH −

C:\poi-bin-5.1.0\poi-5.ane.0.jar;

C:\poi-bin-5.1.0\poi-ooxml-5.1.0.jar;

C:\poi-bin-5.1.0\poi-ooxml-full-5.1.0.jar;

C:\poi-bin-5.1.0\lib\commons-codec-ane.15.jar;

C:\poi-bin-5.1.0\lib\eatables-collections4-4.4.jar;

C:\poi-bin-5.i.0\lib\commons-io-two.11.0.jar;

C:\poi-bin-five.i.0\lib\eatables-math3-3.6.1.jar;

C:\poi-bin-5.1.0\lib\log4j-api-ii.14.one.jar;

C:\poi-bin-5.one.0\lib\SparseBitSet-1.2.jar;

C\poi-bin-5.ane.0\ooxml-lib\eatables-compress-1.21.jar

C\poi-bin-five.1.0\ooxml-lib\eatables-logging-1.ii.jar

C\poi-bin-five.1.0\ooxml-lib\curvesapi-ane.06.jar

C\poi-bin-5.1.0\ooxml-lib\slf4j-api-1.vii.32.jar

C\poi-bin-5.ane.0\ooxml-lib\xmlbeans-5.0.ii.jar

ii

Linux

Export CLASSPATH = $CLASSPATH:

/usr/share/poi-bin-5.1.0/poi-5.1.0.jar.tar:

/usr/share/poi-bin-5.1.0/poi-ooxml-5.1.0.tar:

/usr/share/poi-bin-five.one.0/poi-ooxml-full-5.1.0.tar:

/usr/share/poi-bin-5.1.0/lib/commons-codec-1.15.jar.tar:

/usr/share/poi-bin-5.i.0/lib/commons-collections4-four.4.tar:

/usr/share/poi-bin-5.1.0/lib/commons-io-2.11.0.tar:

/usr/share/poi-bin-five.1.0/lib/commons-math3-three.6.1.tar:

/usr/share/poi-bin-5.1.0/lib/log4j-api-2.14.ane.tar:

/usr/share/poi-bin-v.1.0/lib/SparseBitSet-i.ii.tar:

/usr/share/poi-bin-5.1.0/ooxml-lib/commons-compress-ane.21.tar:

/usr/share/poi-bin-5.1.0/ooxml-lib/eatables-logging-i.2.tar:

/usr/share/poi-bin-5.1.0/ooxml-lib/curvesapi-1.06.tar:

/usr/share/poi-bin-5.i.0/ooxml-lib/slf4j-api-ane.7.32.tar:

/usr/share/poi-bin-5.1.0/ooxml-lib/xmlbeans-5.0.2.tar:

Apache POI Word - Cadre Classes

This chapter takes y'all through the classes and methods of Apache POI for managing a Word document.

Document

This is a marking interface (interface do not incorporate whatsoever methods), that notifies that the implemented class can be able to create a word document.

XWPFDocument

This is a class under org.apache.poi.xwpf.usermodel package. Information technology is used to create MS-Word Certificate with .docx file format.

Course Methods

Sr.No. Method & Description
one

commit()

Commits and saves the document.

2

createParagraph()

Appends a new paragraph to this certificate.

three

createTable()

Creates an empty table with one row and one column as default.

4

createTOC()

Creates a table of content for Word document.

five

getParagraphs()

Returns the paragraph(southward) that holds the text of the header or footer.

6

getStyle()

Returns the styles object used.

For the remaining methods of this class, refer the complete API document at −

Package org.apache.poi.openxml4j.opc.internal.

XWPFParagraph

This is a class under org.apache.poi.xwpf.usermodel package and is used to create paragraph in a word certificate. This example is also used to add all types of elements into word document.

Form Methods

Sr.No. Method & Description
1

createRun()

Appends a new run to this paragraph.

2

getAlignment()

Returns the paragraph alignment which shall exist practical to the text in this paragraph.

3

setAlignment(ParagraphAlignment marshal)

Specifies the paragraph alignment which shall be applied to the text in this paragraph.

four

setBorderBottom(Borders border)

Specifies the border which shall be displayed beneath a set of paragraphs, which have the same set of paragraph border settings.

5

setBorderLeft(Borders border)

Specifies the border which shall be displayed on the left side of the page effectually the specified paragraph.

vi

setBorderRight(Borders edge)

Specifies the border which shall exist displayed on the correct side of the page around the specified paragraph.

vii

setBorderTop(Borders border)

Specifies the border which shall exist displayed higher up a set of paragraphs which have the same gear up of paragraph edge settings.

For the remaining methods of this grade, refer the complete API document at −

POI API Documentation

XWPFRun

This is a class nether org.apache.poi.xwpf.usermodel packet and is used to add together a region of text to the paragraph.

Class Methods

Sr.No. Method & Clarification
i

addBreak()

Specifies that a break shall exist placed at the current location in the run content.

2

addTab()

Specifies that a tab shall be placed at the current location in the run content.

3

setColor(java.lang.String rgbStr)

Sets text color.

4

setFontSize(int size)

Specifies the font size which shall exist applied to all noncomplex script characters in the content of this run when displayed.

five

setText(java.lang.String value)

Sets the text of this text run.

6

setBold(boolean value)

Specifies whether the bold holding shall exist applied to all non-complex script characters in the content of this run when displayed in a document.

For the remaining methods of this class, refer the complete API document at −

POI API Documentation

XWPFStyle

This is a grade under org.apache.poi.xwpf.usermodel package and is used to add together dissimilar styles to the object elements in a word document.

Class Methods

Sr.No. Method & Description
1

getNextStyleID()

Information technology is used to go StyleID of the next manner.

2

getStyleId()

It is used to go StyleID of the mode.

3

getStyles()

Information technology is used to go styles.

4

setStyleId(java.lang.String styleId)

It is used to set up styleID.

For the remaining methods of this course, refer the consummate API document at −

POI API Documentation

XWPFTable

This is a class under org.apache.poi.xwpf.usermodel bundle and is used to add table data into a word certificate.

Course Methods

Sr.No. Method & Description
1

addNewCol()

Adds a new column for each row in this tabular array.

2

addRow(XWPFTableRow row, int pos)

Adds a new Row to the table at position pos.

iii

createRow()

Creates a new XWPFTableRow object with as many cells every bit the number of columns defined in that moment.

4

setWidth(int width)

Sets the width of the cavalcade.

For the remaining methods of this class, refer the complete API certificate at − POI API Documentation

XWPFWordExtractor

This is a class nether org.apache.poi.xwpf.extractor package. It is a basic parser class used to extract the elementary text from a Discussion document.

Form Methods

Sr.No. Method & Description
1

getText()

Retrieves all the text from the document.

For the remaining methods of this class, refer the complete API certificate at − POI API Documentation

Apache POI Word - Document

Hither the term 'document' refers to a MS-Word file. After completion of this chapter, yous volition be able to create new documents and open existing documents using your Java program.

Create Blank Document

The post-obit uncomplicated program is used to create a blank MS-Give-and-take document −

import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument;  public class CreateDocument {    public static void main(String[] args)throws Exception  {       //Blank Document       XWPFDocument document = new XWPFDocument();  		       //Write the Document in file system       FileOutputStream out = new FileOutputStream( new File("createdocument.docx"));       document.write(out);       out.close();       Organisation.out.println("createdocument.docx written successully");    } }        

Save the in a higher place Coffee code every bit CreateDocument.coffee, and then compile and execute it from the command prompt as follows −

$javac  CreateDocument.java $java CreateDocument        

If your system surround is configured with the POI library, information technology volition compile and execute to generate a blank Word document file named createdocument.docx in your current directory and display the following output in the command prompt −

createdocument.docx written successfully        

Apache POI Give-and-take - Paragraph

In this chapter yous will learn how to create a Paragraph and how to add it to a certificate using Java. Paragraph is a function of a folio in a Discussion file.

Later on completing this chapter, you volition exist able to create a Paragraph and perform read operations on it.

Create a Paragraph

Offset of all, let u.s. create a Paragraph using the referenced classes discussed in the earlier chapters. By following the previous chapter, create a Document first, so we can create a Paragraph.

The following code snippet is used to create a spreadsheet −

//Create Bare document XWPFDocument certificate = new XWPFDocument();  //Create a bare spreadsheet XWPFParagraph paragraph = document.createParagraph();        

Run on Paragraph

You can enter the text or any object chemical element, using Run. Using Paragraph instance you lot tin create run.

The following code snippet is used to create a Run.

XWPFRun run = paragraph.createRun();        

Write into a Paragraph

Let the states endeavour entering some text into a certificate. Consider the below text data −

At tutorialspoint.com, we strive hard to provide quality tutorials for self-learning purpose  in the domains of Academics, Information Technology, Direction and Estimator Programming Languages.        

The following code is used to write the above information into a paragraph.

import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun;  public class CreateParagraph {    public static void main(Cord[] args)throws Exception {       //Blank Document       XWPFDocument document = new XWPFDocument();               //Write the Document in file system       FileOutputStream out = new FileOutputStream(new File("createparagraph.docx"));                //create Paragraph       XWPFParagraph paragraph = document.createParagraph();       XWPFRun run = paragraph.createRun();       run.setText("At tutorialspoint.com, we strive difficult to " +          "provide quality tutorials for self-learning " +          "purpose in the domains of Academics, Data " +          "Technology, Direction and Computer Programming Languages."); 			       document.write(out);       out.close();       System.out.println("createparagraph.docx written successfully");    } }        

Relieve the to a higher place Coffee code as CreateParagraph.java, and then compile and run it from the control prompt every bit follows −

$javac CreateParagraph.java $coffee CreateParagraph        

Information technology volition compile and execute to generate a Discussion file named createparagraph.docx in your current directory and you will get the following output in the command prompt −

createparagraph.docx written successfully        

The createparagraph.docx file looks equally follows.

Create Paragraph

Apache POI Word - Borders

In this chapter, you lot will acquire how to utilise border to a paragraph using Java programming.

Applying Edge

The following code is used to apply Borders in a Document −

import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.Borders; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun;  public class ApplyingBorder {     public static void main(Cord[] args)throws Exception {        //Bare Document       XWPFDocument document = new XWPFDocument();                 //Write the Document in file system       FileOutputStream out = new FileOutputStream(new File("applyingborder.docx"));                //create paragraph       XWPFParagraph paragraph = document.createParagraph();                //Set lesser border to paragraph       paragraph.setBorderBottom(Borders.BASIC_BLACK_DASHES);                //Fix left border to paragraph       paragraph.setBorderLeft(Borders.BASIC_BLACK_DASHES);                //Set up right border to paragraph       paragraph.setBorderRight(Borders.BASIC_BLACK_DASHES);                //Fix superlative border to paragraph       paragraph.setBorderTop(Borders.BASIC_BLACK_DASHES);                XWPFRun run = paragraph.createRun();          run.setText("At tutorialspoint.com, we strive difficult to " +          "provide quality tutorials for self-learning " +          "purpose in the domains of Academics, Information " +          "Technology, Direction and Reckoner Programming " +          "Languages.");                document.write(out);       out.close();       System.out.println("applyingborder.docx written successully");    } }        

Relieve the in a higher place lawmaking in a file named ApplyingBorder.coffee, compile and execute it from the command prompt as follows −

$javac ApplyingBorder.java $coffee ApplyingBorder        

If your organisation is configured with the POI library, so information technology volition compile and execute to generate a Word certificate named applyingborder.docx in your electric current directory and display the following output −

applyingborder.docx written successfully        

The applyingborder.docx file looks as follows −

Border Paragraph

Apache POI Discussion - Tables

In this chapter, yous will learn how to create a table of information in a document. You tin create a table data by using XWPFTable class. By calculation each Row to table and calculation each prison cell to Row, y'all will become table data.

Create Table

The following code is used to creating tabular array in a certificate −

import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableRow;  public form CreateTable {     public static void main(String[] args)throws Exception {        //Blank Document       XWPFDocument certificate = new XWPFDocument();                //Write the Document in file system       FileOutputStream out = new FileOutputStream(new File("create_table.docx"));                //create table       XWPFTable table = certificate.createTable(); 		       //create first row       XWPFTableRow tableRowOne = tabular array.getRow(0);       tableRowOne.getCell(0).setText("col one, row one");       tableRowOne.addNewTableCell().setText("col ii, row ane");       tableRowOne.addNewTableCell().setText("col three, row one"); 		       //create 2d row       XWPFTableRow tableRowTwo = table.createRow();       tableRowTwo.getCell(0).setText("col i, row two");       tableRowTwo.getCell(1).setText("col two, row 2");       tableRowTwo.getCell(2).setText("col 3, row ii"); 		       //create third row       XWPFTableRow tableRowThree = table.createRow();       tableRowThree.getCell(0).setText("col one, row three");       tableRowThree.getCell(1).setText("col two, row 3");       tableRowThree.getCell(two).setText("col three, row three"); 	       document.write(out);       out.close();       System.out.println("create_table.docx written successully");    } }        

Save the higher up code in a file named CreateTable.java. Compile and execute information technology from the command prompt as follows −

$javac CreateTable.java $coffee CreateTable        

It generates a Word file named createtable.docx in your current directory and display the following output on the command prompt −

createtable.docx written successfully        

The createtable.docx file looks as follows −

Create Table

Apache POI Word - Font & Alignment

This chapter shows how to apply different font styles and alignments in a Give-and-take certificate using Coffee. By and large, Font Manner contains: Font size, Type, Assuming, Italic, and Underline. And Alignment is categorized into left, center, correct, and justify.

Font Style

The following code is used to gear up unlike styles of font −

import java.io.File; import coffee.io.FileOutputStream;  import org.apache.poi.xwpf.usermodel.VerticalAlign; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun;  public class FontStyle {     public static void primary(String[] args)throws Exception {        //Blank Document       XWPFDocument document = new XWPFDocument();                 //Write the Document in file system       FileOutputStream out = new FileOutputStream(new File("fontstyle.docx"));                //create paragraph       XWPFParagraph paragraph = document.createParagraph();                //Set Bold an Italic       XWPFRun paragraphOneRunOne = paragraph.createRun();       paragraphOneRunOne.setBold(true);       paragraphOneRunOne.setItalic(true);       paragraphOneRunOne.setText("Font Style");       paragraphOneRunOne.addBreak();                //Set text Position       XWPFRun paragraphOneRunTwo = paragraph.createRun();       paragraphOneRunTwo.setText("Font Mode two");       paragraphOneRunTwo.setTextPosition(100);         //Set up Strike through and Font Size and Subscript       XWPFRun paragraphOneRunThree = paragraph.createRun();       paragraphOneRunThree.setStrike(true);       paragraphOneRunThree.setFontSize(20);       paragraphOneRunThree.setSubscript(VerticalAlign.SUBSCRIPT);       paragraphOneRunThree.setText(" Dissimilar Font Styles");                document.write(out);       out.close();       Organization.out.println("fontstyle.docx written successully");    } }        

Save the higher up code equally FontStyle.java so compile and execute it from the control prompt as follows −

$javac FontStyle.java $coffee FontStyle        

It will generate a Discussion file named fontstyle.docx in your current directory and display the following output on the command prompt −

fontstyle.docx written successfully        

The fontstyle.docx file looks as follows.

Font Style

Alignment

The post-obit code is used to set alignment to the paragraph text −

import coffee.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun;  public form AlignParagraph {     public static void main(String[] args)throws Exception {        //Blank Certificate       XWPFDocument document = new XWPFDocument();                 //Write the Document in file system       FileOutputStream out = new FileOutputStream(       new File("alignparagraph.docx"));                //create paragraph       XWPFParagraph paragraph = certificate.createParagraph();                //Set alignment paragraph to Right       paragraph.setAlignment(ParagraphAlignment.RIGHT);       XWPFRun run = paragraph.createRun();       run.setText("At tutorialspoint.com, we strive hard to " +          "provide quality tutorials for self-learning " +          "purpose in the domains of Academics, Data " +          "Technology, Management and Computer Programming " +          "Languages.");                //Create Some other paragraph       paragraph = document.createParagraph();                //Set alignment paragraph to CENTER       paragraph.setAlignment(ParagraphAlignment.CENTER);       run = paragraph.createRun();       run.setText("The endeavour started past Mohtashim, an AMU " +          "alumni, who is the founder and the managing managing director " +          "of Tutorials Point (I) Pvt. Ltd. He came up with the " +          "website tutorialspoint.com in twelvemonth 2006 with the assistance" +          "of handpicked freelancers, with an assortment of tutorials" +          " for reckoner programming languages. "); 			       document.write(out);       out.close();       Arrangement.out.println("alignparagraph.docx written successfully");    } }        

Salvage the above lawmaking every bit AlignParagraph.java and then compile and execute it from the command prompt as follows −

$javac AlignParagraph.java $java AlignParagraph        

It will generate a Word file named alignparagraph.docx in your current directory and display the following output in the command prompt −

alignparagraph.docx written successfully        

The alignparagraph.docx file looks as follows −

Align Paragraph

Apache POI Word - Text Extraction

This chapter explains how to extract simple text information from a Word document using Java. In example you want to excerpt metadata from a Give-and-take document, make utilize of Apache Tika.

For .docx files, nosotros use the class org.apache.poi.xwpf.extractor.XPFFWordExtractor that extracts and returns simple information from a Word file. In the same way, we have different methodologies to excerpt headings, footnotes, table data, etc. from a Word file.

The following code shows how to extract simple text from a Give-and-take file −

import java.io.FileInputStream; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument;  public class WordExtractor {    public static void primary(String[] args)throws Exception {       XWPFDocument docx = new XWPFDocument(new FileInputStream("createparagraph.docx"));              //using XWPFWordExtractor Class       XWPFWordExtractor nosotros = new XWPFWordExtractor(docx);       System.out.println(we.getText());    } }        

Save the in a higher place lawmaking every bit WordExtractor.java. Compile and execute it from the command prompt every bit follows −

$javac WordExtractor.java $java WordExtractor        

It volition generate the post-obit output −

At tutorialspoint.com, we strive difficult to provide quality tutorials for cocky-learning purpose in the domains of Academics, Information technology, Management and Figurer Programming Languages.        

Useful Video Courses


Apache Spark Online Training

Video

Apache Spark with Scala - Hands On with Big Data

Video

Learn Apache Cordova using Visual Studio 2015 & Command line

Video

Delta Lake with Apache Spark using Scala

Video

Apache Zeppelin - Big Data Visualization Tool

Video

Olympic Games Analytics Project in Apache Spark for Beginner

Video

ryanloctatintoo.blogspot.com

Source: https://www.tutorialspoint.com/apache_poi_word/apache_poi_word_quick_guide.htm

0 Response to "Read Metadata From Word .doc Using Java"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel