如何在 Java 中将 GIF 转换为 PDF

如何在 Java 中将 GIF 转换为 PDF

PDF 文件格式是最流行的基于矢量的文件之一。另一方面,GIF 基于光栅图像,在将图像显示为动画时提供了很多功能。在这篇博文中,您将学习如何在 Java 应用程序中将 GIF 转换为 PDF。因此,您将安装此文档处理 以编程方式构建 GIF 到 PDF 转换器。将 GIF 转换为 PDF 的过程自动化肯定会给您的业务应用程序带来竞争优势。

您将经历以下几点:

GIF转PDF-API安装

这个文档处理库很容易安装在您的 Java 项目中。但是,您可以 下载 JAR 文件或使用以下 Maven 配置安装此库。

<repository>
   <id>AsposeJavaAPI</id>
   <name>Aspose Java API</name>
   <url>https://releases.aspose.com/java/repo/</url>
 </repository> 
<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-words</artifactId>
  <version>22.10</version>
  <classifier>jdk17</classifier>
</dependency>

如何在 Java 中将 GIF 转换为 PDF

安装库后,您可以开始编写源代码以编程方式构建 GIF 到 PDF 转换器。

您可以按照以下步骤和代码片段进行操作:

  1. 实例化 Document 类的实例。
  2. 初始化 DocumentBuilder 类的对象并绑定 Document 对象。
  3. 现在,加载源 GIF 文件并通过调用从 File 对象获取输入的 createImageInputStream 方法创建图像流。
  4. 创建一个 ImageReader 类的对象,访问方法 getImageReaders,该方法返回一个迭代器,其中包含所有当前注册的声称能够解码提供的对象的 ImageReader,通常是 ImageInputStream。
  5. 调用将要使用的输入源设置为给定 ImageInputStream 或其他对象的 setInput 方法。
  6. 通过调用 getNumImages 方法获取图像中的帧数。
  7. 循环遍历所有帧。
  8. 在多帧图像的情况下,通过调用 insertBreak 方法在每个新页面之前插入分节符。
  9. 通过调用 read 方法选择活动帧。
  10. 调用getPageSetup方法获取当前页面设置,并赋值给PageSetup类对象。 11.调用setPageWidth方法设置页面宽度。
  11. setPageHeight 方法将保存页面高度。 13.调用insertImage方法将图片插入到文档中,定位在页面的左上角。
  12. 调用 save 方法将文件保存为 PDF 文件格式。

将以下代码复制并粘贴到您的主文件中:

 // 实例化 Document 类的一个实例。 
 Document doc = new Document();
 // 初始化 DocumentBuilder 类的对象并绑定 Document 对象。 
 DocumentBuilder builder = new DocumentBuilder(doc);
 // 现在,加载源 GIF 文件并通过调用从文件对象获取输入的 createImageInputStream 方法来创建图像流。  
 ImageInputStream iis = ImageIO.createImageInputStream(new File("sample.gif"));
 // 创建 ImageReader 类的对象,访问方法 getImageReaders,该方法返回一个 Iterator,其中包含所有当前注册的 ImageReader,这些 ImageReader 声称能够解码提供的 Object,通常是 ImageInputStream。 
 ImageReader reader = ImageIO.getImageReaders(iis).next();
 // 调用 setInput 方法,将要使用的输入源设置为给定的 ImageInputStream 或其他对象。 
 reader.setInput(iis, false);
 // 通过调用 getNumImages 方法获取图像中的帧数。
 int framesCount = reader.getNumImages(true);
 // 循环遍历所有帧。
 for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
     // 在多帧图像的情况下,通过调用 insertBreak 方法在每个新页面之前插入一个分节符。 
     if (frameIdx != 0)
         builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
     // 通过调用 read 方法选择活动帧。 
     BufferedImage image = reader.read(frameIdx);
     // 通过调用 getPageSetup 方法并将其分配给 PageSetup 类对象来获取当前页面设置。 
     PageSetup ps = builder.getPageSetup();
     // 调用 setPageWidth 方法来设置页面宽度。 
     ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
     // setPageHeight 方法将保存页面高度。 
     ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));
     // 调用 insertImage 方法将图像插入到文档中,并将其定位在页面的左上角。 
     builder.insertImage(
             image,
             RelativeHorizontalPosition.PAGE,
             0,
             RelativeVerticalPosition.PAGE,
             0,
             ps.getPageWidth(),
             ps.getPageHeight(),
             WrapType.NONE);
 }

 if (iis != null) {
     iis.close();
     reader.dispose();
 }
 // 通过调用 save 方法将文件保存为 PDF 文件格式。 
 doc.save("gifToPdf.pdf");

输出如下图所示:

GIF 转 PDF 转换器

获得免费许可证

您可以使用 免费临时许可证 来试用 API,而不受评估限制。

加起来

我们将在这里结束这篇博文。您已经了解了如何使用几行源代码在 Java 中将 GIF 转换为 PDF。此外,您可以安装此文档处理库以编程方式构建 GIF 到 PDF 转换器。此外,您可以访问 文档 以了解其他有趣的功能。

此外,我们建议您遵循我们的 入门指南

最后,conholdate.com 正在撰写新的博客文章。因此,请保持联系以获取定期更新。

问一个问题

您可以在我们的 论坛 上告诉我们您的问题或疑问。

常见问题

如何将 GIF 转换为 PDF?

您可以使用此 Java 以编程方式执行 GIF 到 PDF 的转换。此外,请访问此 链接 以获取应对片段。

也可以看看