保存完整的电子邮件,正文和标题,为PDF



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

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

我试图操纵这个词。文档手动添加头信息(在下面的代码中,我只是使用最小的更改用于测试目的),但它似乎是只读的。我还认为"打印"是pdf";使用Outlook打印功能,但没有办法从我的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:UsersalDocumentsOutlookMailsTest" + 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);
}

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

Outlook对象模型不提供任何打印为pdf的方法。MailItem。方法使用所有默认设置打印Outlook项目。PrintOut方法是唯一可以用于打印的Outlook方法。

您可以使用Word对象模型以所需的格式保存消息正文。例如,您可以使用open XML文档(*.docx)保存表示消息主体的文档,然后使用open XML SDK打开它进行编辑,以添加消息头(如果需要)。有关更多信息,请参阅欢迎使用Office的Open XML SDK 2.5。

您可以自由地使用第三方组件以PDF文件格式保存具有所需定制的文档。

最新更新