我需要一些帮助。我正在尝试在调用前重命名当前的Word文档:
Globals.ThisAddIn.Application.CommandBars.ExecuteMso("FileEmailAsPdfEmailAttachment");
实际上,我想这样做是为了更改附件的名称,否则它是默认文件名。关键是我不想将文档另存为新文件。我尝试了以下方法,但没有成功:
Globals.ThisAddIn.Application.ActiveDocument.ActiveWindow.Caption = "FOO";
有什么想法吗?预先感谢您的帮助。
好,这是我解决该问题的解决方案,希望对其他人有所帮助:
private void buttonPDFToEmail_Click(object sender, RibbonControlEventArgs e)
{
/*
* using Word = Microsoft.Office.Interop.Word;
* using Outlook = Microsoft.Office.Interop.Outlook; => if running a Word VSTO projet, need to add that reference in solution's references.
*/
// Word application.
Word.Application wApp = Globals.ThisAddIn.Application;
// Word document.
Word.Document wDoc = wApp.ActiveDocument;
// instantiating Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Generating the PDF filename.
string filePDFName =
(!String.IsNullOrEmpty(editBox_filePDFTitle.Text) & !String.IsNullOrWhiteSpace(editBox_filePDFTitle.Text)) ?
editBox_filePDFTitle.Text :
"PROJET";
if (checkBox_addDate.Checked)
{
filePDFName += (char)32 + DateTime.Now.ToString("dd-MM-yyyy");
}
object fileName = @"C:\tmp\" + filePDFName;
// Export activeDocument as PDF file.
wDoc.ExportAsFixedFormat(
fileName.ToString(),
Word.WdExportFormat.wdExportFormatPDF
);
// Create a new email with no attachments.
Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
// Adding our PDF file as attachement.
oMailItem.Attachments.Add(fileName.ToString()+".pdf");
// using System.IO;
// Deleting the tmp PDF file.
File.Delete(fileName.ToString() + ".pdf");
// Displaying Outlook.
oMailItem.Display(true);
}