La conversió de fitxers de Microsoft Project (MPP) a PDF permet als equips compartir plans en un format coherent i portàtil. Aspose.Tasks for .NET, podeu personalitzar l’exportació: triar la vista (Gantt, Ús de recursos, Feu de recursos), controlar la mida de la pàgina i l’orientació, ajustar l’escala de temps i encaixar, i fins i tot generar la Recursos sobreallotjats Aquest manual proporciona una configuració neta i repetible, a més d’una mostra completa de C#.
Coneixements clau
- Seleccioneu la sortida correcta: utilitzar
PresentationFormatPer a visualitzacions de Gantt/Resource oSaveReport(..., ReportType.OverallocatedResources)Per a un primer resum. - Control de la configuració: La direcció i la direcció de la pàgina (
PageSize,IsPortraiti el seu correcte (FitContent,RenderToSinglePage). - La pàgina web compta: Tona
TimescaleiStartDate/EndDate;· PermetReduceFooterGapper a pàgines més denses. - Calcula els comptes actuals: Set
CalculationMode = Automatico trucadaproject.Recalculate()abans de l’exportació.
Guia de pas per pas
Pas 1: carregar el fitxer MPP
Llegeix el teu .mpp i assegurar-se que els càlculs són actualitzats perquè les dates, les durades i els indicadors siguin correctes en l’exportació.
Pas 2: Configuració de la configuració
Seleccioni la mida de la pàgina/orientació (per exemple, paisatge A3 per a Gantt ampli). FitContent Per evitar les arrugues i ReduceFooterGap Recuperar el whitespace.
Pas 3: Ajustar l’escalabilització i el contingut
utilitzar Timescale (Dies, Setmanes, Mesos) i opcional RenderToSinglePage Per a un resum compacte.
Pas 4: Afegir opinions d’interessats
Exportació de punts de vista alternatius com Ús de recursos per a la detallada realització de les activitats, i inclou la Recursos sobreallotjats Informar sobre els conflictes de focus.
Exemple complet i compilable (C#)
using System;
using Aspose.Tasks;
using Aspose.Tasks.Saving;
using Aspose.Tasks.Visualization;
namespace MppToPdfCustomized
{
internal static class Program
{
// How to run:
// 1) dotnet new console -n MppToPdfCustomized
// 2) cd MppToPdfCustomized
// 3) dotnet add package Aspose.Tasks
// 4) Replace Program.cs with this file's contents
// 5) dotnet run -- "path-to-input.mpp"
private static void Main(string[] args)
{
if (args.Length == 0)
{
Console.WriteLine("Usage: dotnet run -- <path-to-input.mpp>");
return;
}
string input = args[0];
// Load project and ensure calculations are current
var project = new Project(input)
{
CalculationMode = CalculationMode.Automatic
};
project.Recalculate();
// 1) Gantt PDF: A3 landscape, weekly timescale, fit rows
var ganttOptions = new PdfSaveOptions
{
PresentationFormat = PresentationFormat.GanttChart,
IsPortrait = false,
PageSize = PageSize.A3,
Timescale = Timescale.Weeks,
FitContent = true,
ReduceFooterGap = true,
StartDate = project.Get(Prj.StartDate).Date,
EndDate = project.Get(Prj.FinishDate).Date
};
string baseName = System.IO.Path.GetFileNameWithoutExtension(input);
project.Save($"{baseName}-gantt.pdf", ganttOptions);
Console.WriteLine($"Saved: {baseName}-gantt.pdf");
// 2) Single-page Gantt summary (auto-scaling)
var singlePageOptions = new PdfSaveOptions
{
PresentationFormat = PresentationFormat.GanttChart,
IsPortrait = false,
RenderToSinglePage = true
};
project.Save($"{baseName}-gantt-singlepage.pdf", singlePageOptions);
Console.WriteLine($"Saved: {baseName}-gantt-singlepage.pdf");
// 3) Resource Usage view with daily timescale
var usageOptions = new PdfSaveOptions
{
PresentationFormat = PresentationFormat.ResourceUsage,
Timescale = Timescale.Days,
FitContent = true
};
project.Save($"{baseName}-resource-usage.pdf", usageOptions);
Console.WriteLine($"Saved: {baseName}-resource-usage.pdf");
// 4) Built-in Overallocated Resources report (highlights conflicts)
project.SaveReport($"{baseName}-overallocated-resources.pdf", ReportType.OverallocatedResources);
Console.WriteLine($"Saved: {baseName}-overallocated-resources.pdf");
}
}
}
Com es pot córrer
dotnet new console -n MppToPdfCustomizedcd MppToPdfCustomizeddotnet add package Aspose.Tasks- Substitució
Program.csAmb el codi de dalt dotnet run -- "path-to-input.mpp"
Què fa aquest codi
- càrrega El seu MPP i permet Càlcul automàtic.
- Exportació Configuració Gantt i Ús de recursos PDFs, més a Pàgina única El resum.
- Generadors El Recursos sobreallotjats Informar sobre els conflictes de recursos.
Resolució de problemes & Tips
- PDF massa llarg / massa llarg: Prova
Timescale = Timescale.Monthso permetRenderToSinglePagePer a resum. - Rutes de tall: Asseguració
FitContent = truei consideraReduceFooterGap = true. - No hi ha ressenyes: utilitzar
SaveReport(..., ReportType.OverallocatedResources)(Relats) o Exportació Ús de recursos / Feu de recursos Per a contextos, una vista de Gantt simple no colora les generalizacions per si sola. - Fonts / Llocals: Descarregar els continguts necessaris al servidor;
PdfSaveOptions.FontSettingsPer a les carpetes de custom.
FAQ
P. Puc exportar només un rang de dates de l’horari? Sí, és set StartDate i EndDate És PdfSaveOptions Només cal fer aquesta finestra.
Q2.Com puc reduir el nombre de pàgines per a projectes molt grans? Utilitza coarser Timescale (setmanes o mesos) i es FitContent = true,I considerant RenderToSinglePage Per a resum.
Q3.Què passa si necessito una llista ràpida de recursos totalment assignats? Exportació de Recursos sobreallotjats Informe amb project.SaveReport(...);· Està optimitzat per a aquest propòsit.
Q4.- Necessito instal·lar el Microsoft Project? No. Aspose.Tasks fa que els arxius es reprodueixin de forma independent; només cal instal·lar el Aspose.Tasks El paquet nou.
P. Puc personalitzar columnes en les vistes exportades? Sí, utilitzar PdfSaveOptions.View/ViewSettings Per definir columnes específiques; en cas contrari s’utilitzen les normes de defecte.
Conclusió
utilitzant PdfSaveOptions i la selecció correcta de visualització/report, podeu produir PDFs polits adaptats a les parts interessades: amplis cronologies de Gantt, resums d’una pàgina i exportacions centrades en recursos. Comenceu amb la configuració de la pàgina raonable, mantingueu actualitzats els càlculs i ajusteu l’escala de temps i el rang de dates per obtenir una sortida neta i llegible.