1. 产品
  2.   电子邮件
  3.   Java
  4.   邮件转 PDF 转换器
 
  

免费 Java 邮件库,将 EML 与 MSG 转换为 PDF

开源 Java 邮件处理库,用于将邮件文件(EML、MSG)转换为 PDF。支持在 Java 应用中处理附件、内联图像和多种邮件格式。

什么是邮件转 PDF 转换器?

在当今的数字工作空间中,将电子邮件通信转换为永久、便携的 PDF 文档的能力变得日益重要。邮件转 PDF 转换器(前称 EML to PDF Converter)是一款多功能的 Java 库,专门解决此类需求。该工具在 GitHub 上开源,为开发者和组织提供了一种可靠的方式,将电子邮件文件(.eml 和 .msg 格式)转换为保持格式、附件和元数据的专业 PDF 文档。

邮件转 PDF 转换器是一款多功能的基于 Java 的工具,能够在保留格式、内联图像和附件的同时,将邮件文件转换为 PDF 格式。该项目最初由 Nick Russler 开发,采用 Apache 许可证,提供三种使用模式:作为可集成到应用中的 Java 库、用于批量处理的命令行工具,以及带有图形界面的桌面应用。库能够处理解析邮件结构、清理错误的 MIME 头部、将内容转换为 HTML,并最终使用强大的 wkhtmltopdf 渲染引擎生成 PDF。

Previous Next

邮件转 PDF 转换器入门指南

在使用邮件转 PDF 转换器之前,请确保已安装 Java 运行环境和 wkhtmltopdf。最新版本可在 GitHub 仓库获取,包括 Windows 的 setup.exe 安装程序和平台无关的 JAR 文件。

通过 GitHub 安装邮件转 PDF 转换器库

git clone https://github.com/nickrussler/email-to-pdf-converter.git 

您可以直接从 GitHub 页面下载该库。

通过 Java 实现智能邮件文件转换为 PDF

邮件转 PDF 转换器库提供了一套完整的解决方案,可在 Java 应用中将邮件文件转换为通用的 PDF 文档。库的核心是解析邮件的 MIME 结构,并在生成 PDF 之前将其转换为干净、格式良好的 HTML。这种方式确保复杂的邮件布局、样式化文本以及嵌入元素能够在最终文档中正确呈现。下面的基础示例使用默认设置将一个 EML 文件转换为 PDF。库会处理解析邮件结构、提取内联内容以及生成最终 PDF 的所有复杂工作。

如何使用 Java 库将 EML 邮件文件转换为 PDF 文档?

 
import mimeparser.MimeMessageConverter;
import java.io.File;

public class EmailConverterExample {
    public static void main(String[] args) {
        try {
            File emailFile = new File("example.eml");
            File outputPdf = new File("output.pdf");
            
            // Perform the conversion
            MimeMessageConverter.convertToPdf(emailFile, outputPdf);
            
            System.out.println("Conversion completed successfully!");
        } catch (Exception e) {
            System.err.println("Error during conversion: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
 

在 Java 中处理邮件转 PDF 转换期间的附件

邮件转 PDF 转换器库提供了单独提取邮件附件的选项。用户可以配置是否将附件提取到专用目录,并可选择在 PDF 文档本身中包含附件名称列表。下面的代码示例演示了如何在转换过程之前单独解析邮件,以便在生成 PDF 前检查或修改邮件内容。ConversionOptions 对象提供了对命令行界面中所有配置参数的编程访问。

如何在 Java 中管理邮件转 PDF 转换期间的附件?

 
import mimeparser.MimeMessageConverter;
import mimeparser.MimeMessageParser;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.io.FileInputStream;
import java.util.List;

public class AttachmentHandler {
    public static void main(String[] args) {
        try {
            File emailFile = new File("email-with-attachments.eml");
            
            // Parse the email
            MimeMessageParser parser = new MimeMessageParser();
            parser.parse(new FileInputStream(emailFile));
            
            // Access attachment information
            List attachments = parser.getAttachmentList();
            
            System.out.println("Found " + attachments.size() + " attachments:");
            for (File attachment : attachments) {
                System.out.println("- " + attachment.getName());
            }
            
            // Convert with attachment extraction
            ConversionOptions options = new ConversionOptions();
            options.setExtractAttachments(true);
            options.setAddAttachmentNames(true);
            
            MimeMessageConverter.convertToPdf(
                parser, 
                new File("output-with-attachments.pdf"), 
                options
            );
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

多邮件格式支持

邮件转 PDF 转换器同时支持 EML 和 MSG 两种文件格式,兼容多种邮件客户端。EML 是许多邮件应用使用的标准基于文本的邮件格式,而 MSG 是 Microsoft Outlook 的专有邮件格式。双格式支持确保在不同的邮件生态系统中都能灵活使用。

导出 PDF 时的内联图像处理

其中一个突出特性是对嵌入邮件正文的内联图像的正确处理。开源的邮件转 PDF 转换器库能够准确识别并处理这些图像,确保它们出现在 PDF 输出的相应位置,而不是作为单独的附件。

 中国人