Neste tutorial rápido, vamos aprender como extrair imagens de um arquivo do Word em Java. Ele contém todas as informações necessárias para estabelecer o ambiente, detalhes do uso da API para escrever o aplicativo e um código de exemplo executável que demonstra o processo para extrair imagens do documento do Word em Java. Você também aprenderá diferentes opções para personalizar o processo ao carregar o arquivo de origem DOCX e extrair imagens diferentes dele, como PNG, JPEG etc.
Etapas para extrair imagens do Word em Java
- Estabeleça o ambiente para adicionar Aspose.Words for Java para extrair imagens
- Carregue o arquivo de origem do Word com imagens no objeto de classe Document
- Obtenha a coleção de formas usando o método getChildNodes() na classe Document
- Iterar através de todas as formas na coleção
- Verifique se a forma tem uma imagem usando o método hasImage() na classe Shape
- Salve a imagem como um arquivo separado no disco
Estas etapas explicam o processo para extrair imagens do arquivo Word em Java. Primeiro, os recursos são compartilhados para o estabelecimento do ambiente seguido pela introdução às classes, métodos e propriedades necessários para realizar a tarefa, como a classe Document é usada para carregar o arquivo do Word de origem e o método getChildNodes() é usado para extrair todos as imagens dele. Finalmente, cada elemento da coleção é testado para ter uma imagem e, se encontrado, salvo no disco como um arquivo de imagem separado.
Código para extrair imagens do documento do Word em Java
import com.aspose.words.Document; | |
import com.aspose.words.NodeCollection; | |
import com.aspose.words.NodeType; | |
import com.aspose.words.Shape; | |
import com.aspose.words.FileFormatUtil; | |
public class AsposeTest { | |
public static void main(String[] args) throws Exception {//Main function to extract images from a Word file | |
// Instantiate the license | |
com.aspose.words.License licPage = new com.aspose.words.License(); | |
licPage.setLicense("Aspose.Total.lic"); | |
// | |
Document imagesWordFile = new Document("WordFileWithImages.docx"); | |
NodeCollection<Shape> docShapes = (NodeCollection<Shape>) imagesWordFile.getChildNodes(NodeType.SHAPE, true); | |
int indexForImages = 0; | |
for (Shape shape : docShapes | |
) { | |
if (shape.hasImage()) { | |
String outputImage = String.format("Image" + indexForImages + FileFormatUtil.imageTypeToExtension(shape.getImageData().getImageType())); | |
shape.getImageData().save(outputImage); | |
indexForImages++; | |
} | |
} | |
System.out.println("Done"); | |
} | |
} |
Este código de exemplo demonstra o processo para extrair todas as imagens do documento do Word em Java. Após carregar o arquivo do Word de origem, o método getChildNodes() é usado fornecendo o valor NodeType.SHAPE como um argumento que retorna o conjunto de todas as formas do documento, pois a classe Shape possui um método hasImage() que verifica a existência da imagem . Uma vez que a imagem é detectada, sua extensão é recuperada usando shape.getImageData().getImageType() e usada no nome da imagem de saída junto com a opção de filtrar as imagens com base em seus tipos.
Neste tutorial, aprendemos como inserir uma imagem no MS Word usando Java. Se você quiser aprender a criar um documento do Word do zero, consulte o artigo como criar documento do Word usando Java.