我正在尝试自动打印来自VSTO加载项的所有传入电子邮件的第一页。
格式必须保留,所以据我所知,调用MailItem。就实际打印而言,PrintOut()是我唯一的途径。
到目前为止,我就在这里。
using Outlook = Microsoft.Office.Interop.Outlook;
/*
...
*/
private void ProcessMailItem(Outlook.MailItem mailItem)
{
PrinterSettings ps = new PrinterSettings();
PrintDialog pd = new PrintDialog();
pd.AllowSomePages = true;
pd.AllowSelection = true;
ps.PrintRange = PrintRange.SomePages;
ps.FromPage = 1;
ps.ToPage = 2;
//ps.MinimumPage = 1;
//ps.MaximumPage = 2;
mailItem.PrintOut();
}
将忽略这些设置,并使用默认设置打印电子邮件。
我暂时使用的解决方案是发送按键以访问打印首选项,但如果可能的话,我想更改它。
private void ProcessMailItem(Outlook.MailItem mailItem)
{
SendKeys.Send("%f");
SendKeys.Send("p");
SendKeys.Send("r");
/*
TABing to page selection
TABing to OK
*/
}
任何帮助都将不胜感激。