MSProject加载项以.pdf转换.mpp,具有给定的名称和日期

时间:2018-02-19 08:12:01

标签: c# .net vsto ms-project

我正在为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();

但这样我就无法给出开始和结束日期。这导致了我不需要的许多页面。

有没有机会通过更改我的解决方案来实现我的目标,还是有其他选择?

1 个答案:

答案 0 :(得分:0)

在找不到合适的解决方案后,我使用了Windows 10打印机和模拟键盘事件在对话框中插入路径,该对话框将打开。使用Enter我开始打印。

我知道这不是一个很好的解决方案,但它是唯一让它工作的