Java 实战:将 Word 文档高效转换为多页 TIFF 图片(含批量处理)

3 阅读4分钟

在日常办公或文档管理中,我们经常会遇到需要转换 Word 文档(.doc 或 .docx)的场景。Word 文档虽然便于编辑,但在一些打印、归档或图像处理系统中,TIFF(Tagged Image File Format)格式往往更适合。TIFF 是一种高质量图像格式,广泛用于扫描、传真、医学影像以及高分辨率图像存储。

本文将详细讲解如何使用 Java 将 Word 文档转换为 TIFF 图片,包括单文件转换、批量转换以及转换特定节的示例,并给出完整代码示例。


为什么需要将 Word 转换为 TIFF?

在讨论具体实现之前,先来看看为什么有时需要将 Word 转换为 TIFF:

1. 文件兼容性

Word 文档在不同系统或设备上可能出现格式错乱或字体缺失,而 TIFF 作为图像格式,能够在任何设备上以固定样式呈现内容,确保排版一致。

2. 高质量打印

TIFF 文件支持无损压缩,打印时不会丢失细节,非常适合扫描件、合同或重要文档的打印需求。

3. 便于归档

许多企业和政府机构的档案系统更倾向于 TIFF 格式,因为它稳定且标准化。批量将 Word 转换为 TIFF,可以方便长期存储和管理。

4. 批量处理需求

在大型文档管理场景下,手动转换成 TIFF 不现实。使用 Java 自动化转换可以节省大量时间,同时可统一设置图像分辨率、颜色模式等参数。


环境准备

在 Java 中实现 Word 转 TIFF,可以使用 Spire.Doc for Java 库。它提供了丰富的 API,支持 Word 文档的读取、编辑和导出为多种格式,包括 TIFF。

你可以通过 Maven 引入依赖:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>14.3.1</version>
    </dependency>
</dependencies>

安装完成后,你就可以在 Java 项目中调用该库提供的 API 来处理 Word 文档。


示例1:单文件 Word 转 TIFF

将单个 Word 文档转换为多页 TIFF 文件非常简单,只需加载文档并调用 ​​saveToTiff()​​ 方法即可。

import com.spire.doc.Document;

public class ConvertWordToTiff {
    public static void main(String[] args){

        // 创建 Document 对象
        Document document = new Document();
        // 加载 Word 文档
        document.loadFromFile("Sample.docx");

        // 保存为多页 TIFF
        document.saveToTiff("toTIFF.tiff");

        System.out.println("Word 已成功转换为 TIFF 文件!");
    }
}

批量转换 Word 文件为 TIFF

在实际项目中,经常需要将一个文件夹下的多个 Word 文档批量转换为 TIFF。以下示例展示了如何遍历文件夹并生成对应的 TIFF 文件:

import com.spire.doc.Document;
import java.io.File;

public class BatchWordToTiff {
    public static void main(String[] args) {
        // 指定 Word 文件所在目录
        File folder = new File("word_docs");
        // 获取目录下所有 Word 文件(.doc 或 .docx)
        File[] files = folder.listFiles((dir, name) -> name.endsWith(".docx") || name.endsWith(".doc"));

        if (files == null || files.length == 0) {
            System.out.println("未找到 Word 文件。");
            return;
        }

        for (File file : files) {
            // 创建 Document 对象
            Document document = new Document();
            // 加载当前 Word 文件
            document.loadFromFile(file.getAbsolutePath());
            // 输出 TIFF 文件,文件名与 Word 文件名相同
            String outputFile = file.getParent() + File.separator + file.getName().replaceFirst("\.docx?$", ".tiff");
            document.saveToTiff(outputFile);
            System.out.println(file.getName() + " 已转换为 " + outputFile);
        }

        System.out.println("批量转换完成!");
    }
}

这个示例会将 ​​word_docs​​ 文件夹下所有 Word 文档转换为 TIFF,并保存在同一目录下。


示例3:导出 Word 文档的指定节为 TIFF

在很多情况下,我们并不需要将整个 Word 文档转换为 TIFF。针对这种需求,Spire.Doc 提供了对 文档节(Section) 的操作能力,你可以将指定节提取出来,生成新的文档,然后保存为 TIFF。这样不仅节省存储空间,还避免了不必要的页面生成。

import com.spire.doc.Document;  
import com.spire.doc.Section;  

public class ConvertWordSectionToTiff {  

    public static void main(String[] args) {  

        // 加载源 Word 文档  
        Document doc = new Document();  
        doc.loadFromFile("/input/示例文档.docx");  

        // 获取文档中第 2 节(索引从 0 开始)  
        Section targetSection = doc.getSections().get(1);  

        // 创建新的 Document 保存指定节
        Document newDoc = new Document();  

        // 复制源文档默认样式,确保格式一致  
        doc.cloneDefaultStyleTo(newDoc);  

        // 将目标节深度复制到新文档  
        newDoc.getSections().add(targetSection.deepClone());  

        // 将新文档保存为 TIFF        
        newDoc.saveToTiff("/output/指定节转换为TIFF.tiff");  

        // 释放资源  
        doc.dispose();  
        newDoc.dispose();  

        System.out.println("指定节已成功转换为 TIFF!");
    }  
}

总结

通过 Java 和 Spire.Doc 库,我们可以轻松实现:

  • 单文件转换:将 Word 文档快速生成高质量 TIFF 图片。
  • 批量转换:自动遍历文件夹,批量生成 TIFF 文件,减少手动操作。
  • 可定制性:支持图像类型、分辨率、颜色模式等参数调整,满足不同业务需求。

这种方法在文档归档、打印和分享等场景下非常实用,同时保持了开发的灵活性和自动化能力。