1. Produtos
  2.   Processamento de texto
  3.   Java
  4.   Apache POI HWPF

Apache POI HWPF

 
 

Processar documentos binários do Microsoft Word

Crie, leia, manipule e converta arquivos DOC através da biblioteca Java de código aberto.

Apache POI HWPF é uma porta Apache POI para o formato de arquivo DOC do Microsoft Word. Ele fornece funcionalidade para ler e gravar arquivos DOC sem precisar de bibliotecas adicionais. Ele também fornece suporte somente leitura limitado para os formatos de arquivo Word 6 e Word 95 mais antigos. Nesta fase, o HWPF está preocupado principalmente com o texto formatado. Ele fornece extração básica de texto, extração de texto específica, acesso a cabeçalhos e rodapés e alteração de recursos de texto.

Ele facilita os desenvolvedores a criar documentos do MS-Word com a capacidade de manipular parágrafos, adicionar estilos diferentes ao texto, adicionar uma tabela, extrair texto e muito mais.

Previous Next

Introdução ao Apache POI HWPF

Antes de tudo, você precisa ter o Java Development Kit (JDK) instalado em seu sistema. Se você já o possui, vá para a página download do POI do Apache para obter a versão estável mais recente em um arquivo. Extraia o conteúdo do arquivo ZIP em qualquer diretório de onde as bibliotecas necessárias possam ser vinculadas ao seu programa Java. Isso é tudo!

Fazer referência ao Apache POI em seu projeto Java baseado em Maven é ainda mais simples. Tudo que você precisa é adicionar a seguinte dependência em seu pom.xml e deixar seu IDE buscar e referenciar os arquivos Apache POI Jar.

Dependência do 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>
  

Criar e modificar documentos do Word usando APIs Java

O Apache POI HWPF permite que os programadores criem novos documentos do Word em formatos de arquivo DOC. A API também permite que os desenvolvedores modifiquem documentos do Word existentes de acordo com suas próprias necessidades. A API também suporta adicionar um parágrafo em um documento do Word, aplicar alinhamentos de texto e estilos de fonte e muito mais.

Modificar arquivo 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();

Converter documentos do Word para outros formatos usando Java

O pache POI HWPF permite que os desenvolvedores de software convertam documentos do Microsoft Word para qualquer formato de arquivo suportado com facilidade. No momento, os desenvolvedores de Java podem converter documentos do Word para HTML, FO e formato de texto. O pacote org.apache.poi.hwpf.converter contém conversores Word-to-HTML e Word-to-FO.

Converter DOC para 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();

Ler texto do arquivo DOC

Apache POI HWPF fornece a classe WordExtractor para ler texto do formato de arquivo DOC do Microsoft Word. Você pode extrair texto do arquivo com apenas algumas linhas de código.

Extrair texto de um arquivo 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());

Adicionar cabeçalho e rodapé personalizados ao DOC

Apache POI HWPF permite que desenvolvedores Java criem cabeçalhos e rodapés personalizados dentro de documentos do Word. Apache POI HWPF é descrito como "moderadamente funcional". Ele fornece suporte para extração de texto básico, extração de texto específico, acesso a cabeçalhos e rodapés e alteração de recursos de texto. O método getText() pode ser usado para obter o texto de todos os parágrafos, ou getParagraphText() pode ser usado para buscar o texto de cada parágrafo por vez. 

Gerenciar cabeçalho e rodapé personalizados no arquivo DOC do Word


// 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);
 Português