在日常工作中,我们常常需要处理各种文件格式。这其中,TIFF(Tagged Image File Format)作为一种高质量的图像格式,被广泛用于扫描仪生成的图像、传真、医学影像和其他高质量图像的存储。然而,尽管 TIFF 格式在图像质量上有优势,但在文件分享、打印、归档等方面,PDF格式则具有更强的兼容性和便利性。

在这篇文章中,我们将详细探讨如何使用 Java 将 TIFF 图片转换为 PDF 文件,包括单文件转换与批量转换示例。

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

在讨论具体的代码示例之前,我们首先要了解为什么需要将 TIFF 文件转换为 PDF。下面列出了一些常见的场景:

  1. 文件格式兼容性
    TIFF 格式虽然在图像质量上很有优势,但并不是所有平台都能够方便地查看 TIFF 文件。PDF 格式则是全球通用的标准格式,几乎所有操作系统都支持打开 PDF 文件,且不依赖于特定的图像查看器。因此,将 TIFF 图片转换为 PDF 文件,可以确保文件能够在各种设备和平台上顺利查看。
  2. 便于文件存档与共享
    PDF 文件通常比 TIFF 文件小得多,这有助于节省存储空间。此外,PDF 文件还支持添加元数据、密码保护和数字签名等功能,使得文件在存档和共享过程中更具安全性和可管理性。
  3. 更好的打印支持
    PDF 文件在打印时通常会保持原有的排版和布局,不会受到打印机的驱动程序或图像查看器的限制。而 TIFF 文件在打印过程中可能会出现缩放或格式兼容性问题。因此,很多企业和组织选择将 TIFF 文件转换为 PDF,以便于统一的打印和分享。
  4. 便于批量处理
    对于需要处理大量图像文件的用户而言,批量将 TIFF 图片转换为 PDF 文件可以节省大量的手动操作时间。在这一过程中,PDF 文件可以被自动化生成,并且可以为每一页图像设置不同的页面布局。

环境准备

要在 Java 中转换 TIFF 为 PDF,可以使用 Spire.PDF for Java 库。在开始编码之前,确保你已经配置好了该库。你可以通过官方网站下载并导入 JAR 文件,或者使用 Maven 来引入依赖。

Maven 依赖如下:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url></url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>12.1.4</version>
    </dependency>
</dependencies>

使用 Java 转换 TIFF 为 PDF

将 TIFF 转换为 PDF 的过程很简单,只需加载图片文件,然后将其绘制到 PDF 页面上即可。下面是详细实现步骤:

步骤1:创建​PdfDocument​​ 对象

我们首先需要创建一个 ​​PdfDocument​​ 类的对象。​​PdfDocument​​ 是 Spire.PDF 用于处理 PDF 文档的核心类。通过它,我们可以创建、修改、保存和输出 PDF 文件。

PdfDocument pdf = new PdfDocument();

这个 ​​pdf​​ 对象将用于创建并操作 PDF 文件。

步骤2:添加一页 PDF 页面

接下来,我们将向 PDF 文档中添加一页。每个 PDF 文档都由多个页面组成,通常我们可以通过 ​​getPages().add()​​ 方法添加一页空白页面。

PdfPageBase page = pdf.getPages().add();

在此代码中,我们向 PDF 文档中添加了一页,并将该页的引用保存在 ​​page​​ 变量中。

步骤3:加载 TIFF 图片

我们需要将 TIFF 图片加载到程序中。Spire.PDF 提供了一个非常方便的方法来加载图像文件并将其转化为 ​​PdfImage​​ 对象。

PdfImage tiff = PdfImage.fromFile("sample.tiff");

上述代码会加载名为 ​​sample.tiff​​ 的 TIFF 图片文件,并创建一个 ​​PdfImage​​ 对象来表示它。

步骤4:绘制图像到 PDF 页面

加载了 TIFF 图片后,我们需要将它绘制到 PDF 页面的画布上。在 Spire.PDF 中,每个页面都有一个 ​​Canvas​​ 对象,允许我们绘制各种元素(如图像、文本等)。我们使用 ​​drawImage()​​ 方法来将 TIFF 图片绘制到页面中。

page.getCanvas().drawImage(tiff, 0, 0, 580, 800);

在这个代码中,​​drawImage()​​ 方法会将 TIFF 图片绘制到页面的左上角 ​​(0, 0)​​,并指定图像的尺寸为 580x800 像素。

步骤5:保存 PDF 文件

当所有内容都添加完成后,我们可以通过 ​​saveToFile()​​ 方法将 PDF 保存到磁盘。指定输出文件名和文件格式,即可将 TIFF 图片成功保存为 PDF 文件。

pdf.saveToFile("TiffToPdf.pdf", FileFormat.PDF);

这段代码会将转换后的 PDF 文件保存为 ​​TiffToPdf.pdf;​​除了将文件保存到本地磁盘,你还可以选择将其保存到流。

Java TIFF 转 PDF 完整示例代码

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImage;

public class TiffToPDF {
    public static void main(String[] args) {
        // 创建 PdfDocument 类的对象
        PdfDocument pdf = new PdfDocument();
        
        // 添加一页
        PdfPageBase page = pdf.getPages().add();
        
        // 从 TIFF 图像创建一个 PdfImage 对象
        PdfImage tiff = PdfImage.fromFile("sample.tiff");
        
        // 将图片绘制到 PDF 页面
        page.getCanvas().drawImage(tiff, 0, 0, 580, 800);
        
        // 保存文档
        pdf.saveToFile("TiffToPdf.pdf", FileFormat.PDF);
    }
}

使用 Java 批量转换 TIFF 图片为 PDF

在实际应用中,通常会遇到需要批量处理多张 TIFF 图片并将它们转换为单一 PDF 文档的情况。下面我们来展示如何批量处理多个 TIFF 文件。

步骤1:遍历 TIFF 文件夹中的所有文件

我们可以使用 ​​File​​ 类来获取指定文件夹中的所有 TIFF 文件,并逐一加载它们进行处理。

步骤2:为每个 TIFF 图片创建一个新的页面

与之前的单图转换类似,遍历每个 TIFF 文件并将其添加到 PDF 文档的不同页面上。

批量转换示例代码

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImage;
import java.io.File;

public class BatchTiffToPDF {
    public static void main(String[] args) {
        // 创建 PdfDocument 类的对象
        PdfDocument pdf = new PdfDocument();
        
        // 获取文件夹中的所有 TIFF 文件
        File folder = new File("tiff_images");
        File[] files = folder.listFiles((dir, name) -> name.endsWith(".tiff"));
        
        // 遍历每个 TIFF 文件
        for (File file : files) {
            // 创建一个新的页面
            PdfPageBase page = pdf.getPages().add();
            
            // 从 TIFF 图像创建 PdfImage 对象
            PdfImage tiff = PdfImage.fromFile(file.getAbsolutePath());
            
            // 将图片绘制到 PDF 页面
            page.getCanvas().drawImage(tiff, 0, 0, 580, 800);
        }
        
        // 保存文档
        pdf.saveToFile("BatchTiffToPdf.pdf", FileFormat.PDF);
    }
}

在这个示例中,我们首先获取了一个文件夹(​​tiff_images​​)中的所有 TIFF 文件,并将每个 TIFF 文件转换为 PDF 文件中的一页。最后,我们将所有转换后的页面保存为 ​​BatchTiffToPdf.pdf​​ 文件。

总结

使用 Java 将 TIFF 图片转换为 PDF 文档是一个简单且有效的解决方案。通过上述代码示例,你可以快速实现单张 TIFF 转换为 PDF,也可以批量处理多个 TIFF 图片,生成一个包含所有图像的 PDF 文件。这种方法不仅简便,而且可以根据需要进行自定义,例如调整图片的尺寸、处理不同类型的图像格式等。

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:alixiixcom@163.com