Apache POI HWPF

 
 

Обработка двоичных документов Microsoft Word

Создавайте, читайте, манипулируйте и конвертируйте файлы DOC с помощью библиотеки Java с открытым исходным кодом.

Apache POI HWPF — это порт Apache POI для формата файлов Microsoft Word DOC. Он предоставляет функциональные возможности для чтения и записи файлов 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 извлекать и ссылаться на файлы 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);
 Русский