2017-06-27 4 views
0

J'ai essayé d'enregistrer mon e-mail en tant que pdf dans un dossier spécifique lorsque je clique sur le bouton Envoyer depuis Outlook. Mon code ressemble à ci-dessous. Je peux voir le fichier est enregistré avec succès, mais il ne peut pas être ouvert. Quelque chose ne va pas dans mon code? La version de bureau est 2016.Outlook.MailItem enregistrer en format pdf ne peut pas être ouvert

private void Application_ItemSend(object Item, ref bool Cancel) 
{ 
     mailItem.BodyFormat = OlBodyFormat.olFormatPlain; 
     string title = mailItem.Subject; 
     mailItem.SaveAs("c://" + title + ".pdf", OlBodyFormat.olFormatRichText); 
} 

Merci

+1

PDF! = Texte enrichi - donne au fichier une extension '.doc' et l'ouvre. Je suppose que vous auriez besoin d'un convertisseur PDF. – stuartd

Répondre

0

La méthode SaveAs de la classe MailItem accepte deux paramètres, le second est le type de fichier pour enregistrer peut être l'une des constantes de OlSaveAsType suivantes: olHTML, olMSG , olRTF, olTemplate, olDoc, olTXT, olVCal, olVCard, olICal ou olMSGUnicode. Comme vous pouvez le voir, il n'y a pas d'option pour enregistrer le message en utilisant le format de fichier .pdf. Toutefois, vous pouvez envisager d'utiliser le modèle d'objet Word pour effectuer le travail.

 TheDocument.ExportAsFixedFormat(
     docName.Replace(".docx", ".pdf"), 
     Word.WdExportFormat.wdExportFormatPDF, 
     OptimizeFor: Word.WdExportOptimizeFor.wdExportOptimizeForOnScreen, 
     BitmapMissingFonts: true, DocStructureTags: false); 

La méthode ExportAsFixedFormat de la classe de document permet d'enregistrer un document au format PDF ou XPS. Voir Chapter 17: Working with Item Bodies pour plus d'informations sur la propriété WordEditor de la classe Inspector. En dernier recours, vous pouvez envisager d'utiliser des composants .Net tiers pour créer des documents PDF à partir d'un balisage texte ou HTML/RTF.