首页 > 编程语言 >在Java中将 Word 转换为图像

在Java中将 Word 转换为图像

时间:2023-08-17 12:02:08浏览次数:41  
标签:Java doc image BufferedImage Word 图像 import Document

您可能需要将 Word 文档转换为图像的原因有很多。例如,很多设备不需要任何特殊软件就可以直接打开并显示图像,并且图像在传输时其内容很难被篡改。在本文中,您将学习如何使用Spire.Doc for Java将 Word 转换为流行的图像格式,例如JPG、PNG和SVG。 

安装适用于 Java 的 Spire.Doc

首先,您需要将 Spire.Doc.jar 文件添加为 Java 程序中的依赖项。可以从此链接下载 JAR 文件。如果您使用 Maven,则可以通过将以下代码添加到项目的 pom.xml 文件中来轻松将 JAR 文件导入到应用程序中。

<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>11.8.1</version>
</dependency>
</dependencies>
在 Java 中将 Word 转换为 JPG

Spire.Doc for Java 提供Document.saveToImages()方法将整个 Word 文档转换为单独的BufferedImage图像。然后,每个 BufferedImage 都可以保存为BMP、EMF、JPEG、PNG、GIFWMF文件。以下是使用此库将 Word 转换为 JPG 的步骤。

  • 创建一个文档对象。
  • 使用Document.loadFromFile()方法加载 Word 文档。
  • 使用Document.saveToImages()方法将文档转换为BufferedImage图像。
  • 循环遍历图像集合以获取特定的图像。
  • 用不同的色彩空间重写图像。
  • 将 BufferedImage 写入 JPG 文件。
import com.spire.doc.Document;
import com.spire.doc.documents.ImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ConvertWordToJPG {

public static void main(String[] args) throws IOException {

//Create a Document object
Document doc = new Document();

//Load a Word document
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\ConvertTemplate.docx");

//Convert the whole document into individual buffered images
BufferedImage[] images = doc.saveToImages(ImageType.Bitmap);

//Loop through the images
for (int i = 0; i < images.length; i++) {

//Get the specific image
BufferedImage image = images[i];

//Re-write the image with a different color space
BufferedImage newImg = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
newImg.getGraphics().drawImage(image, 0, 0, null);

//Write to a JPG file
File file = new File("C:\\Users\\Administrator\\Desktop\\Images\\" + String.format(("Image-%d.jpg"), i));
ImageIO.write(newImg, "JPEG", file);
}
}
}
在 Java 中将 Word 转换为 SVG

使用 Spire.Doc for Java,您可以将 Word 文档保存为字节数组列表。然后可以将每个字节数组写入 SVG 文件。将Word转换为SVG的详细步骤如下。

  • 创建一个文档对象。
  • 使用Document.loadFromFile()方法加载 Word 文件。
  • 使用Document.saveToSVG()方法将文档保存为字节数组列表。
  • 循环遍历列表中的项目以获取特定的字节数组。
  • 将字节数组写入 SVG 文件。
import com.spire.doc.Document;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

public class ConvertWordToSVG {

public static void main(String[] args) throws IOException {

//Create a Document object
Document doc = new Document();

//Load a Word document
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\ConvertTemplate.docx");

//Save the document as a list of byte arrays
List<byte[]> svgBytes = doc.saveToSVG();

//Loop through the items in the list
for (int i = 0; i < svgBytes.size(); i++)
{
//Get a specific byte array
byte[] byteArray = svgBytes.get(i);

//Specify the output file name
String outputFile = String.format("Image-%d.svg", i);

//Write the byte array to a SVG file
try (FileOutputStream stream = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\Images\\" + outputFile)) {
stream.write(byteArray);
}
}
}
}
使用自定义分辨率将 Word 转换为 PNG

分辨率越高的图像通常越清晰。您可以按照以下步骤在将 Word 转换为 PNG 时自定义图像分辨率。

  • 创建一个文档对象。
  • 使用Document.loadFromFile()方法加载 Word 文件。
  • 使用Document.saveToImages()方法将文档转换为具有指定分辨率的BufferedImage图像。
  • 循环遍历图像集合以获取特定的图像并将其保存为 PNG 文件。
import com.spire.doc.Document;
import com.spire.doc.documents.ImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ConvertWordToPNG {

public static void main(String[] args) throws IOException {

//Create a Document object
Document doc = new Document();

//Load a Word document
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\ConvertTemplate.docx");

//Convert the whole document into individual buffered images with customized resolution
BufferedImage[] images = doc.saveToImages(0, doc.getPageCount(), ImageType.Bitmap, 150, 150);

//Loop through the images
for (int i = 0; i < images.length; i++) {

//Get the specific image
BufferedImage image = images[i];

//Write to a PNG file
File file = new File("C:\\Users\\Administrator\\Desktop\\Images\\" + String.format(("Image-%d.png"), i));
ImageIO.write(image, "PNG", file);
}
}
}

在Java中将 Word 转换为图像_Image

以上便是如何在Java中将 Word 转换为图像,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。

标签:Java,doc,image,BufferedImage,Word,图像,import,Document
From: https://blog.51cto.com/u_15606885/7120584

相关文章

  • Java应用堆外内存泄露问题排查 | 京东云技术团队
    问题是怎么发现的最近有个java应用在做压力测试压测环境配置:CentOS系统4核CPU8g内存jdk1.6.0_25,jvm配置-server-Xms2048m-Xmx2048m出现问题如下执行300并发,压测持续1个小时后内存使用率从20%上升到100%,tps从1100多降低到600多。排查问题的详细过程首先使用top命令查看内......
  • Android Rxjava :最简单&全面背压讲解 (Flowable)
    1.前言Rxjava背压:被观察者发送事件的速度大于观察者接收事件的速度时,观察者内会创建一个无限制大少的缓冲池存储未接收的事件,因此当存储的事件越来越多时就会导致OOM的出现。(注:当subscribeOn与observeOn不为同一个线程时,被观察者与观察者内存在不同时长耗时任务,就会使发送与接收速......
  • 图像识别代做服务:实现创新应用的新契机
    导言:随着人工智能和图像处理技术的不断进步,图像识别已经成为了许多领域中的关键应用。然而,图像识别技术的开发和应用往往需要庞大的团队和大量的资源。这就是为什么图像识别代做服务正在崭露头角。本文将探讨图像识别代做服务如何成为实现创新应用的新契机。一、专业技术支持......
  • Java获取控制台输出信息(优化版)
    1.问题来源    项目中有个新需求,需要将某个方法从控制台输出的信息抓取后保存起来保存到数据库表中或者一个文件中,并且不能影响原先控制台打印信息的展示。因此基于《Java获取控制台输出信息》对实现方法做了进一步优化,以实现以上需求。   这里仍然是两个示例,一个用......
  • java springboot excel 上传
    spring.http.multipart.location=/data/server/upload/spring.http.multipart.max-file-size=2048MBspring.http.multipart.max-request-size=2048MBimportjava.io.File;importjavax.servlet.MultipartConfigElement;importorg.springframework.beans.factory.ann......
  • Java学习笔记(十二)
    7.5 内部类7.5.1 内部类概述1、什么是内部类?顾名思义:一个类里面的类称为内部类。例如:classOuter{//相对的,它是外部类classInner{//内部类}}2、为什么要用内部类?实现高内聚低耦合的开发原则。好处:(1)内部类,可以被限定在外部类中使用(2)内部类和外部类可以......
  • Java中Date方法详解
    先进行专栏介绍本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。Date方法Date类是用于表示日期和时间的类。它提供了一系列的方......
  • Java导出Excel带格式工具类
    Java导出Excel里面有具体内容,带有格式。可以创建工具类直接去使用/***通用模版下载*@paramoutputStream以流的形式输出到浏览器*@paramexcelName下载excel的文件名称*@paramWaring提示语言*@paramtitleS标题列*@paramcontentS......
  • Java导出Excel带格式工具类
    Java导出Excel里面有具体内容,带有格式。可以创建工具类直接去使用/***通用模版下载*@paramoutputStream以流的形式输出到浏览器*@paramexcelName下载excel的文件名称*@paramWaring提示语言*@paramtitleS标题列*@paramcontentS......
  • Java应用堆外内存泄露问题排查
    问题是怎么发现的最近有个java应用在做压力测试压测环境配置:CentOS系统4核CPU8g内存jdk1.6.0_25,jvm配置-server-Xms2048m-Xmx2048m出现问题如下执行300并发,压测持续1个小时后内存使用率从20%上升到100%,tps从1100多降低到600多。排查问题的详细过程首先使用top命令查......