Apache POI HWPF

 
 

Обробляйте двійкові документи Microsoft Word

Створюйте, читайте, маніпулюйте та конвертуйте файли DOC за допомогою бібліотеки Java з відкритим кодом.

Apache POI HWPF — це порт Apache POI для формату файлу DOC Microsoft Word. Він надає функціональність для читання та запису файлів DOC без необхідності будь-яких додаткових бібліотек. Він також забезпечує обмежену підтримку лише для читання для старіших форматів файлів Word 6 і Word 95. На цьому етапі HWPF в основному займається форматованим текстом. Він забезпечує базове вилучення тексту, вилучення конкретного тексту, доступ до колонтитулів і зміну функцій тексту.

Це полегшує розробникам створення документів MS-Word із можливістю маніпулювання абзацами, додавання різних стилів до тексту, додавання таблиці, вилучення тексту та багато іншого.

Previous Next

Початок роботи з Apache POI HWPF

Перш за все, у вашій системі має бути встановлено Java Development Kit (JDK). Якщо у вас уже є, перейдіть до сторінки завантаження Apache POI, щоб отримати останню стабільну версію в архіві. Розпакуйте вміст ZIP-файлу в будь-який каталог, звідки потрібні бібліотеки можна зв’язати з вашою програмою Java. Це все!

Посилання на Apache POI у вашому проекті Java на основі Maven ще простіше. Все, що вам потрібно, це додати наступну залежність у ваш pom.xml і дозволити вашій IDE отримувати та посилатися на файли Apache POI Jar.

Залежність Apache POI Maven

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.0.0</version>
  </dependency>
  

Створюйте та змінюйте документи Word за допомогою Java API

Apache POI HWPF дозволяє програмістам створювати нові документи Word у форматах файлів DOC. API також дозволяє розробникам змінювати існуючі документи Word відповідно до власних потреб. API також підтримує додавання абзацу в документ Word, застосування вирівнювання тексту та стилів шрифту та багато іншого.

Змінити файл DOC - 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();

Перетворюйте документи Word в інші формати за допомогою Java

pache POI HWPF дозволяє розробникам програмного забезпечення легко конвертувати документи Microsoft Word у будь-які підтримувані формати файлів. На даний момент розробники Java можуть конвертувати документи Word у формати HTML, FO і Text. Пакет org.apache.poi.hwpf.converter містить конвертери Word-to-HTML і Word-to-FO.

Перетворення DOC на HTML

// 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();

Читання тексту з файлу DOC

Apache POI HWPF надає клас WordExtractor для читання тексту з формату файлу Microsoft Word DOC. Ви можете витягти текст із файлу лише за допомогою кількох рядків коду.

Витягніть текст із файлу DOC

// 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());

Додайте власний верхній і нижній колонтитул до документа DOC

Apache POI HWPF дозволяє розробникам Java створювати спеціальні колонтитули в документах Word. Apache POI HWPF описується як "помірно функціональний". Він забезпечує підтримку базового вилучення тексту, вилучення спеціального тексту, доступ до колонтитулів і змінення функцій тексту. Метод getText() можна використовувати для отримання тексту з усіх абзаців, або getParagraphText() можна використовувати для отримання тексту з кожного абзацу по черзі. 

Керування користувацькими верхніми та нижніми колонтитулами у файлі Word DOC


// 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);
 Українська