Microsoft Project文件用于组织和管理项目中的不同任务。您可以使用C#以编程方式将MPP文件转换为PDF。本文将介绍以下内容:

  • 使用C#以编程方式将MPP转换为PDF
  • 在C#中将MPP转换为多页PDF
  • 在C#中将MPP转换为受密码保护和加密的PDF文件

Aspose.Tasks是一个项目管理API,可让您从头开始创建MS Project文件。此外,您可以操纵现有项目以添加一些修改。该API使您可以无缝地执行基本以及高级项目管理操作。如果你还没有用过Aspose.Tasks可以下载最新版测试。


使用C#以编程方式将MPP转换为PDF

可以通过以下步骤将MPP文件转换为PDF文档:

  • 加载输入项目文件(MPP)。
  • 使用Save()方法导出输出的PDF文件。

以下代码显示了如何使用C#以编程方式将MPP文件转换为PDF:

// Load input Project file (MPP)
Project project = new Project(dataDir + "project.mpp");

// Save output PDF file
project.Save("SaveProjectAsPDF_out.pdf", SaveFileFormat.PDF);

在C#中将MPP转换为多页PDF

有时您可能需要将MPP文件的不同页面转换为单独的PDF文件。您可以按照以下步骤将项目文件转换为多个页面:

  • 使用Project类加载输入的MPP(Microsoft Project)文件。
  • 初始化PdfSaveOptions类对象。
  • 将SaveToSeparateFiles属性设置为true。
  • 指定要导出的页码。
  • 保存输出的PDF文件。

以下代码演示了如何在C#中以编程方式将MPP文件转换为多个PDF文件:

// Load input MPP (Microsoft Project) file
Project project = new Project("New Project.mpp");

// Initialize PdfSaveOptions class object
PdfSaveOptions options = new PdfSaveOptions();

// Set SaveToSeparateFiles to true
options.SaveToSeparateFiles = true;

// Specify the page numbers
options.Pages = new List();
options.Pages.Add(1);
options.Pages.Add(4);

// Save output PDF file
project.Save("SaveToMultiplePDFFiles_out.pdf", (SaveOptions)options);

在C#中将MPP转换为受密码保护和加密的PDF文件

MPP文件可能包含有关项目的敏感信息,因此您可能仅需要与授权用户共享。您可以按照以下步骤将MPP文件转换为加密和受密码保护的PDF文件:

  • 加载输入(MPP)项目文件。
  • 初始化PdfEncryptionDetails类对象。
  • 设置输出PDF文件的权限。
  • 初始化PdfSaveOptions类对象。
  • 保存输出的PDF文件。

下面的代码示例说明了如何使用C#将MPP文件转换为受密码保护和加密的PDF文件:

// Load input (MPP) Project file
Project project = new Project("project.mpp");

// Initialize PdfEncryptionDetails class object
PdfEncryptionDetails encryptionDetails = new PdfEncryptionDetails("test", "password", PdfEncryptionAlgorithm.RC4_128);

// Set permissions for output PDF file
encryptionDetails.Permissions = PdfPermissions.None;

// Initialize PdfSaveOptions class object
PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.Timescale = Timescale.Months;
saveOptions.PresentationFormat = PresentationFormat.TaskUsage;
saveOptions.EncryptionDetails = encryptionDetails;

// Save output PDF file
project.Save("Password_output.pdf", saveOptions);