首页 > 解决方案 > 将完整的电子邮件、正文和标题另存为 PDF

问题描述

我想将完整的邮件保存为 PDF。

我在 stackoverflow 1中找到了下面的代码。它保存邮件项正文而不是标题(例如发件人、收件人、主题)。

我试图操纵 Word.Document 以手动添加标题信息(在下面的代码中,我只使用最小的更改来进行测试),但它似乎是只读的。我还想过使用 Outlook 打印功能“打印为 PDF”,但没有办法从我的 Outlook VSTO 解决方案中触发它。

using Word = Microsoft.Office.Interop.Word;

private void SaveMailAsPDF(Outlook.MailItem _mailitem)
        {
            //source: https://stackoverflow.com/questions/26421252/save-outlook-mailitem-body-as-pdf
            Outlook.MailItem mi = _mailitem;
            mi.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
string datetimeReceived = mi.ReceivedTime.ToString("yyyyMMdd-Hmmss");
            string fullPath = @"C:\Users\al\Documents\OutlookMailsTest\" + datetimeReceived + "Test.pdf";

            Word.Document doc = mi.GetInspector.WordEditor;
            //doc.Paragraphs.Add();
            //doc.Paragraphs.Add();
            //Word.Range rng = doc.Range(0, 0);
            //rng.Text = "New Text";
            doc.SaveAs2(fullPath, FileFormat: Word.WdSaveFormat.wdFormatPDF);
        }

标签: outlookvstooutlook-redemption

解决方案


尝试使用 MHTML 格式保存(它保留嵌入的图片并包含标题)MailItem.SaveAs,然后使用 Word 对象模型打开 MHTML 文件并将其保存为 PDF 文件。


推荐阅读