Apache POI HWPF
Binaire Microsoft Word-documenten verwerken
Maak, lees, manipuleer en converteer DOC-bestanden via Open Source Java Library.
Apache POI HWPF is een Apache POI-poort voor Microsoft Word DOC-bestandsindeling. Het biedt functionaliteit voor het lezen en schrijven van DOC-bestanden zonder dat er extra bibliotheken nodig zijn. Het biedt ook beperkte alleen-lezen ondersteuning voor de oudere Word 6- en Word 95-bestandsindelingen. In dit stadium houdt HWPF zich voornamelijk bezig met opgemaakte tekst. Het biedt basistekstextractie, specifieke tekstextractie, toegang tot kop- en voetteksten en het wijzigen van tekstfuncties.
Het stelt ontwikkelaars in staat om MS-Word-documenten te maken met de mogelijkheid om alinea's te manipuleren, verschillende stijlen aan tekst toe te voegen, een tabel toe te voegen, tekst te extraheren en nog veel meer.
Aan de slag met Apache POI HWPF
Allereerst moet u de Java Development Kit (JDK) op uw systeem hebben geïnstalleerd. Als je het al hebt, ga dan naar de Apache POI's download pagina om de laatste stabiele release in een archief te krijgen. Pak de inhoud van het ZIP-bestand uit in een willekeurige map van waaruit de benodigde bibliotheken aan uw Java-programma kunnen worden gekoppeld. Dat is alles!
Verwijzen naar Apache POI in uw op Maven gebaseerde Java-project is nog eenvoudiger. Het enige dat u nodig hebt, is de volgende afhankelijkheid toe te voegen aan uw pom.xml en uw IDE de Apache POI Jar-bestanden te laten ophalen en ernaar te laten verwijzen.
Apache POI Maven-afhankelijkheid
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
Maak en wijzig Word-documenten met behulp van Java API's
Apache POI HWPF stelt programmeurs in staat om nieuwe Word-documenten in DOC-bestandsindelingen te maken. De API stelt ontwikkelaars ook in staat om bestaande Word-documenten aan te passen aan hun eigen behoeften. De API ondersteunt ook het toevoegen van een alinea in een Word-document, het toepassen van tekstuitlijningen en letterstijlen, en nog veel meer.
DOC-bestand wijzigen - Java
// open an empty doc file, using APACHE POI we cannot create .doc file format from scratch
HWPFDocument doc = new HWPFDocument(new FileInputStream("empty.doc"));
Range range = doc.getRange();
// inset text
CharacterRun run = range.insertAfter("File Format Developer Guide - " +
"Learn about computer files that you come across in " +
"your daily work at: www.fileformat.com ");
OutputStream out = new FileOutputStream("document.pdf");
// save document
doc.write(out);
out.close();
Converteer Word-documenten naar andere formaten met Java
pache POI HWPF stelt softwareontwikkelaars in staat Microsoft Word-documenten met gemak om te zetten naar alle ondersteunde bestandsindelingen. Op dit moment kunnen Java-ontwikkelaars Word-documenten converteren naar HTML-, FO- en Tekstformaat. Het pakket org.apache.poi.hwpf.converter bevat Word-naar-HTML- en Word-naar-FO-converters.
DOC naar HTML converteren
// load document
HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("document.doc"));
Document newDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
// initialize WordToHtmlConverter
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(newDocument );
// process document
wordToHtmlConverter.processDocument( wordDocument );
StringWriter stringWriter = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
transformer.setOutputProperty( OutputKeys.METHOD, "html" );
transformer.transform(
new DOMSource( wordToHtmlConverter.getDocument() ),
new StreamResult( stringWriter ) );
// get html
String html = stringWriter.toString();
Tekst lezen uit DOC-bestand
Apache POI HWPF biedt de WordExtractor-klasse om tekst te lezen uit het Microsoft Word DOC-bestandsformaat. U kunt tekst uit het bestand extraheren met slechts een paar regels code.
Tekst extraheren uit een DOC-bestand
// load DOC file
FileInputStream fis = new FileInputStream(new File("document.doc"));
// open file
HWPFDocument doc = new HWPFDocument(fis);
// read text
WordExtractor extractor = new WordExtractor(doc);
// display text
System.out.println(extractor.getText());
Aangepaste kop- en voettekst toevoegen aan DOC
Apache POI HWPF stelt Java-ontwikkelaars in staat om aangepaste kop- en voetteksten in Word-documenten te maken. Apache POI HWPF wordt beschreven als "matig functioneel". Het biedt ondersteuning voor basistekstextractie, specifieke tekstextractie, toegang tot kop- en voetteksten en het wijzigen van tekstfuncties. De methode getText() kan worden gebruikt om de tekst uit alle alinea's te halen, of getParagraphText() kan worden gebruikt om de tekst achtereenvolgens uit elke alinea op te halen.
Beheer aangepaste kop- en voettekst in Word DOC-bestand
// The path to the documents directory.
String dataDir = Utils.getDataDir(ApacheHeaders.class);
POIFSFileSystem fs = null;
fs = new POIFSFileSystem(new FileInputStream(dataDir + "MyHeader.doc"));
HWPFDocument doc = new HWPFDocument(fs);
int pageNumber = 1;
HeaderStories headerStore = new HeaderStories(doc);
String header = headerStore.getHeader(pageNumber);
System.out.println("Header Is: " + header);