Apache POI HWPF
Обработка двоичных документов Microsoft Word
Создавайте, читайте, манипулируйте и конвертируйте файлы DOC с помощью библиотеки Java с открытым исходным кодом.
Apache POI HWPF — это порт Apache POI для формата файлов Microsoft Word DOC. Он предоставляет функциональные возможности для чтения и записи файлов DOC без каких-либо дополнительных библиотек. Он также обеспечивает ограниченную поддержку только для чтения для старых форматов файлов Word 6 и Word 95. На данном этапе HWPF в основном занимается форматированным текстом. Он обеспечивает базовое извлечение текста, конкретное извлечение текста, доступ к верхним и нижним колонтитулам и изменение функций текста.
Это облегчает разработчикам создание документов MS-Word с возможностью управления абзацами, добавления различных стилей к тексту, добавления таблицы, извлечения текста и многого другого.
Начало работы с Apache POI HWPF
Прежде всего, в вашей системе должен быть установлен Java Development Kit (JDK). Если он у вас уже есть, перейдите на страницу загрузки Apache POI, чтобы получить последнюю стабильную версию в архиве. Извлеките содержимое ZIP-файла в любой каталог, откуда необходимые библиотеки могут быть связаны с вашей программой Java. Это все!
Ссылка на Apache POI в вашем Java-проекте на основе Maven еще проще. Все, что вам нужно, это добавить следующую зависимость в ваш pom.xml и позволить вашей среде IDE извлекать и ссылаться на файлы Jar Apache POI.
Зависимость 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 с помощью API Java
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 в HTML и Word в 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);