تحويل ملفات Microsoft Project (MPP) إلى PDF يتيح للمنتدى مشاركة الخطة في شكل متوافق ومفتوح. Aspose.Tasks for .NET,يمكنك تخصيص الإنتاج: اختيار العرض (جانيت، الاستخدام للموارد، ورقة الموارد)، التحكم في حجم الصفحة والتركيز، والتقييم والتكيف، وحتى إنشاء الموارد المخصصة هذا المساعد يقدم إعدادًا صافًا ومكرر بالإضافة إلى نموذج C# الكامل.
الرئيسية Takeaways
- اختر النتائج المناسبة: استخدام
PresentationFormatلـ Gantt / Resource View أوSaveReport(..., ReportType.OverallocatedResources)أولاً: إجابة عن الأسئلة الأولى. - التحكم في لغو: -الإعدادات /الإعدادات /الإعدادات (
PageSize,IsPortrait(وأما ما يفعله بعض الناس من التكلف)FitContent,RenderToSinglePage). - الصفحة المميزة تتمثل: توني
TimescaleوStartDate/EndDate;• تتيحReduceFooterGapلأسفل صفحات. - احفظ الحسابات اليومية: ستي
CalculationMode = Automaticأو الدعاءproject.Recalculate()قبل استيراد.
خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة خطوة
1) تحميل ملف MPP
اقرأ الخاص بك .mpp ويجب ضمان أن الحسابات متاحة حالياً حتى تكون الأيام والطول والنتائج صحيحة في النقل.
الخطوة 2: تحديد إعدادات اللوحة
اختر حجم الصفحة/التركيز (مثل سياق A3 لقطة عملاقة). FitContent لتجنب الارتباك المرتبطة بالخطوط و ReduceFooterGap إعادة بناء Whitespace.
الخطوة 3: تعديل التوسع والبيئة
استخدام Timescale (الأيام والأيام والساعات) وفرصة اختيار RenderToSinglePage لـ خلاصة كاملة.
الخطوة 4: إضافة رأي المصلحة
التصدير النظريات التغييرية مثل استخدام الموارد في الوقت المناسب، وتشمل الموارد المخصصة إرسال رسائل إلى الإشكاليات.
مثال كامل ومجمل (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");
}
}
}
كيفية القيادة
dotnet new console -n MppToPdfCustomizedcd MppToPdfCustomizeddotnet add package Aspose.Tasks- بدلاً من
Program.csمع الكود أعلاه dotnet run -- "path-to-input.mpp"
ماذا يفعل القائمة
- لوحات MPP الخاص بك و تتيح الحسابات التلقائية.
- التصدير التكوين غانيت و استخدام الموارد PDFs، بالإضافة إلى صفحة واحدة خلاصة.
- الجيل الأو الموارد المخصصة إرسال تقرير حول حوادث الموارد.
حل مشاكل & Tips
- PDF طويل جدا / طويل جدا: محاولة
Timescale = Timescale.Monthsأو تسمحRenderToSinglePageبالنسبة إلى الملاحظات. - كليب رعد: ضمان
FitContent = trueو تعتبرReduceFooterGap = true. - لا تُعدّ أهمية: استخدام
SaveReport(..., ReportType.OverallocatedResources)(معلومات) أو صادرات استخدام الموارد / صفحة الموارد بالنسبة إلى السياق، لا يُمكن رؤية Gantt البسيطة أن تُلقي على الأجسام بشكل كامل. - المصدر / المحلي : إرسال الملفات المطلوبة إلى المورد؛ استخدام
PdfSaveOptions.FontSettingsلـ كلمات المفاتيح المطبوعة.
FAQ
س1: هل يمكنني تصدير مجموعة من الأيام فقط من التوقيت؟? نعم ، Set StartDate و EndDate ذا PdfSaveOptions فقط إعادة هذا النوافذ.
س2: كيف أقل عدد الصفحات للمشاريع الكبيرة جدا؟? استخدام كورب Timescale (أسبوع / أشهر) FitContent = true,و تعتبر RenderToSinglePage بالنسبة إلى الملاحظات.
س3 ماذا لو كنت بحاجة إلى قائمة سريعة من الموارد المخصصة بشكل عام؟? إستخدام الموارد المخصصة تقارير مع project.SaveReport(...);• تم تحسينه لأغراض هذا.
س4: هل تحتاج إلى Microsoft Project متصفح؟? Aspose.Tasks يترجم الملفات بشكل مستقل، فقط تثبيت Aspose.Tasks اكسسوارات نوكيا.
س5: هل يمكنني تخصيص القصص في النظريات المرسلة؟? نعم، استخدم PdfSaveOptions.View/ViewSettings تحديد القواعد الخاصة بالقواعد، وإلا يتم استخدام التحديثات المفتوحة.
النتيجة
استخدام PdfSaveOptions وبدون اختيار العرض/التقارير المناسبة، يمكنك إنتاج PDFs المضغوطة المخصصة للمشاركين: خطوط الوقت جيت واسعة، ومقالات صفحة واحدة، ومراجعات تركز على الموارد. بدءاً من إعدادات الصفحة المعقولة، والحفاظ على الحسابات في حال محدد، وتقييم مساحة الوقت والفترة لإنتاج نظيف ومقرر.