我正在为MSProject 2013及更高版本开发一个加载项。 我想安全/将打开的.mpp文件转换为.pdf文件,而无需为用户提供额外的对话框。他只需按下按钮即可在完成所有操作后收到通知。
我需要将其保存在一个空间路径中,并使用一个已定义的开始和结束日期。
我尝试了SaveAs-methode,但由于它需要一个MSProject.PjFileType作为输入而且不是pdf的选项,我不能使用它。 PjFileFormat Enumeration
另一个approche正在使用DocumentExport-methode。
app.DocumentExport(@"D:/doc_exportqwre.pdf", MSProject.PjDocExportType.pjPDF, true, true, false, System.DateTime.Now, System.DateTime.Now.AddDays(42));
但在这种情况下,我只能看到3个星期。它被放大了,并没有找到改变它的方法。在导出之前更改MSProject中的视图无济于事。
第三种方法是使用Windows10 pdf-printer:
// generate a file name as the current date/time in unix timestamp format
string file = (string)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString();
// the directory to store the output.
string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// initialize PrintDocument object
PrintDocument doc = new PrintDocument()
{
PrinterSettings = new PrinterSettings()
{
// set the printer to 'Microsoft Print to PDF'
PrinterName = "Microsoft Print to PDF",
// tell the object this document will print to file
PrintToFile = true,
// set the filename to whatever you like (full path)
PrintFileName = Path.Combine(directory, file + ".pdf"),
}
};
doc.Print();
但这样我就无法给出开始和结束日期。这导致了我不需要的许多页面。
有没有机会通过更改我的解决方案来实现我的目标,还是有其他选择?
答案 0 :(得分:0)
在找不到合适的解决方案后,我使用了Windows 10打印机和模拟键盘事件在对话框中插入路径,该对话框将打开。使用Enter我开始打印。
我知道这不是一个很好的解决方案,但它是唯一让它工作的