在 C# 中将 MS 项目转换为 PDF

您是否正在寻找一种无需使用 Microsoft Project 即可将 MS Project 文件转换为 PDF 格式的方法?如果是这样,那么您来对地方了。在本文中,我们将通过几个简单的步骤向您展示如何在 C# 中将 MS Project 转换为 PDF。

Microsoft Project 是一个软件程序,它允许团队组织他们的项目、跟踪进度并确保人们知道他们应该做什么。但是,有时需要将 Microsoft Project 文档转换为 PDF 文件 - 例如当您想要提交合同提案或在外出会议时随身携带。

在现代,PDF 是存储和共享文档的最常用格式。 PDF 已被用于替代印刷文档。将项目数据从 MS Project 文件导出到 PDF 文档允许以可移植格式共享项目任务、资源、分配、时间表、预算和其他不同的项目相关信息。本文将向您展示如何在 C# 中以编程方式执行此操作。让我们开始吧!

本文将涵盖以下主题:

  1. 创建 MS 项目到 PDF 转换器的 C# API
  2. 将 MS 项目转换为 PDF
  3. 将特定 MS 项目视图导出为 PDF
  4. 使内容适合单元格并将 MS 项目转换为 PDF
  5. 将 MS Project MPP 转换为无图例的 PDF
  6. 自定义文本样式和 MS Project 导出为 PDF
  7. 在将 MS 项目转换为 PDF 时自定义日期格式
  8. 将 MS 项目转换为多个 PDF 文件

用于创建 MS 项目到 PDF 转换器的 C# API

为了将 MS Project 转换为 PDF,我们将使用 Aspose.Tasks for .NET API。该 API 允许您在不安装 Microsoft Project 的情况下读取和写入支持的文件格式。此外,它还允许您转换和保存 MS Project 文件。

Aspose.Tasks for .NET 是一个类库,提供各种类来处理项目、公式、日历、日历异常、任务、任务链接、任务基线、项目资源、资源分配、货币、处理异常、报告服务和项目风险分析。请阅读 API 参考 中有关类和方法的更多信息。

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Tasks

使用 C# 将 MS 项目转换为 PDF

我们可以按照以下步骤轻松地将所有项目数据从 MS Project 转换为 PDF:

  1. 使用 Project 类加载 MS Project 文件。
  2. 使用 Save() 方法保存为 PDF。它以输出 PDF 文件路径和 SaveFileFormat.Pdf 作为参数。

以下示例代码显示了如何在 C# 中将 MS Project 转换为 PDF。

// 此代码示例演示如何将 MS 项目文件 (MPP) 转换为 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 将项目另存为 PDF
project.Save("C:\\Files\\project_out.pdf", SaveFileFormat.Pdf);
使用 C# 将 MS 项目转换为 PDF

使用 C# 将 MS 项目转换为 PDF。

在 C# 中将特定的 MS 项目视图导出为 PDF

在 Microsoft Project 中,视图显示您在 Microsoft Project 中输入的信息,或者 Project 在计算字段中为您计算的信息。 MS Project 提供了不同的视图来呈现各种格式的项目信息,例如甘特图、任务使用情况、资源使用情况等。我们可以按照以下步骤呈现任何视图并将其导出为 PDF:

  1. 首先,使用 Project 类加载 MS Project 文件。
  2. 接下来,创建 PdfSaveOptions 类的实例。
  3. 之后,指定 PresentationFormat。
  4. 最后,调用 Save() 方法。它以输出 PDF 文件路径和 PdfSaveOptions 作为参数。

以下示例代码显示了如何在 C# 中将任何特定的 MS 项目视图导出为 PDF。

// 此代码示例演示如何将 MS Project 的特定视图导出为 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 定义 PDF 保存选项
PdfSaveOptions saveOptions = new PdfSaveOptions();

// 指定视图
saveOptions.PresentationFormat = PresentationFormat.TaskSheet;

// 将项目另存为 PDF
project.Save("C:\\Files\\SaveView_out.pdf", saveOptions);
在 C# 中将特定的 MS 项目视图导出为 PDF

在 C# 中将特定 MS 项目视图导出为 PDF。

在 C# 中使内容适合单元格并将 MS 项目转换为 PDF

项目视图显示会截断名称等字段中的长文本。我们可以将其设置为显示全文以避免任务和资源名称被截断。我们可以按照以下步骤将内容放入单元格,然后转换为 PDF:

  1. 首先,使用 Project 类加载 MS Project 文件。
  2. 接下来,创建 PdfSaveOptions 类的实例。
  3. 之后,将 FitContent 指定为 true。
  4. 最后,调用 Save() 方法。它以输出 PDF 文件路径和 PdfSaveOptions 作为参数。

以下示例代码显示了如何在 C# 中使内容适合单元格并将 MS Project 转换为 PDF。

// 此代码示例演示如何使内容适合单元格并将 MS Project 转换为 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 初始化 PDF 保存选项
SaveOptions options = new PdfSaveOptions();

// 将选项适合内容设置为 true
options.FitContent = true;
options.Timescale = Timescale.Months;
options.PresentationFormat = PresentationFormat.TaskUsage;

// 将项目另存为 PDF
project.Save("C:\\Files\\FitContentsToCellSize_out.pdf", options);
在 C# 中使内容适合单元格并将 MS 项目转换为 PDF

使内容适合单元格并将 MS 项目转换为 PDF。

在 C# 中将 MS 项目转换为没有图例的 PDF

在 MS Project 中,图例默认出现在所有页面上,但我们可以通过以下步骤隐藏它:

  1. 首先,使用 Project 类加载 MS Project 文件。
  2. 接下来,创建 PdfSaveOptions 类的实例。
  3. 之后,将 LegendOnEachPage 指定为 false。
  4. 最后,调用 Save() 方法。它以输出 PDF 文件路径和 PdfSaveOptions 作为参数。

以下示例代码显示了如何在 C# 中将 MS Project MPP 转换为无图例的 PDF。

// 此代码示例演示如何将 MS Project 转换为没有图例的 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 初始化 PDF 保存选项
PdfSaveOptions saveOptions = new PdfSaveOptions();

// 隐藏图例
saveOptions.LegendOnEachPage = false;

// 将项目另存为 PDF
project.Save("C:\\Files\\SaveLegend_out.pdf", saveOptions);
在 C# 中将 MS 项目转换为没有图例的 PDF

将 MS Project 转换为没有图例的 PDF。

在 C# 中自定义文本样式和 MS Project 导出为 PDF

我们可以按照以下步骤自定义将 MS Project 渲染成 PDF 时的文本样式:

  1. 首先,使用 Project 类加载 MS Project 文件。
  2. 接下来,创建 PdfSaveOptions 类的实例。
  3. 然后,实例化 TextStyle 类对象。
  4. 同时,指定 Color、Font 和 ItemType 属性。
  5. 之后,将 TextStyle 添加到 TextStyles 列表中。
  6. 最后,调用 Save() 方法。它以输出 PDF 文件路径和 PdfSaveOptions 作为参数。

以下示例代码展示了如何在 C# 中将 MS Project 转换为 PDF 时自定义文本样式。

// 此代码示例演示如何将 MS Project 转换为具有自定义文本样式的 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 初始化 PDF 保存选项
PdfSaveOptions saveOptions = new PdfSaveOptions();

// 定义文本样式
TextStyle style = new TextStyle();
style.Color = Color.Red;
style.Font = new FontDescriptor(FontFamily.GenericMonospace.Name, 5F, FontStyles.Bold | FontStyles.Italic);
style.ItemType = TextItemType.SummaryTasks;
style.BackgroundColor = Color.Aqua;
style.BackgroundPattern = BackgroundPattern.DarkDither;

// 添加文字样式
options.TextStyles = new List<TextStyle>();
options.TextStyles.Add(style);

// 将项目另存为 PDF
project.Save("C:\\Files\\CustomizeTextStyle_out.pdf", options);
在 C# 中自定义文本样式并将 MS 项目转换为 PDF

自定义文本样式并将 MS 项目转换为 PDF。

将 MS Project 转换为 PDF 时自定义日期格式

我们还可以按照以下步骤自定义将 MS Project 渲染为 PDF 时的日期格式:

  1. 使用 Project 类加载 MS Project 文件。
  2. 使用 Prj.DateFormat 作为键并使用 DateFormat 作为值调用 Set() 方法。
  3. 最后,调用 Save() 方法。它以输出 PDF 文件路径和 SaveFileFormat.Pdf 作为参数。

以下示例代码显示了如何在 C# 中自定义日期格式并将 MS Project 转换为 PDF。

// 此代码示例演示如何自定义日期格式并将 MS Project 转换为 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 设置自定义日期格式
project.Set(Prj.DateFormat, DateFormat.DateMmmmDdYyyy);

// 将项目另存为 PDF
project.Save("C:\\Files\\CustomizeDateFormats1_out.pdf", SaveFileFormat.Pdf);
在 C# 中将 MS 项目转换为 PDF 时自定义日期格式

将 MS Project 转换为 PDF 时自定义日期格式。

在 C# 中将 MS 项目转换为多个 PDF 文件

我们还可以按照以下步骤将 MS Project 转换为多个 PDF 页面:

  1. 首先,使用 Project 类加载 MS Project 文件。
  2. 接下来,创建 PdfSaveOptions 类的实例。
  3. 然后,将 SaveToSeparateFiles 指定为 true。
  4. 之后,添加页码以包含在页面列表中。
  5. 最后,调用 Save() 方法。它以输出 PDF 文件路径和 PdfSaveOptions 作为参数。

以下示例代码显示了如何在 C# 中将 MS Project 转换为多个 PDF 文档。

// 此代码示例演示如何将 MS Project 转换为多个 PDF。
// 加载项目 MPP
Project project = new Project("C:\\Files\\project.mpp");

// 初始化 PDF 保存选项
PdfSaveOptions saveOptions = new PdfSaveOptions();

// 设置页面以保存在单独的文件中
options.SaveToSeparateFiles = true;
options.Pages = new List<int>();
options.Pages.Add(1);
options.Pages.Add(4);

// 另存为 PDF
project.Save("C:\\Files\\SaveToMultiplePDFFiles_out.pdf", options);

获得免费许可证

您可以 获得免费的临时许可证 来试用该库,而没有评估限制。

结论

在本文中,我们学习了如何:

  • 加载 MS 项目文件;
  • 指定 PDF 保存选项;
  • 在 C# 中将加载的 MS 项目保存为 PDF。

除了在 C# 中将 MS Project 转换为 PDF 之外,您还可以使用 文档 了解有关 Aspose.Note for .NET API 的更多信息。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。

也可以看看