کار با Enumها

کار با Enums

Aspose.PDF FOSS برای .NET از enumهای دارای نوع قوی در سراسر API خود استفاده می‌کند تا رفتار سند، ظاهر صفحه و فرمت‌های تبدیل را پیکربندی کند. به جای رشته‌های جادویی یا اعداد صحیح، اکثر سطح‌های پیکربندی — از اینکه یک برنامه‌خوان PDF چگونه فایلی را باز می‌کند تا اینکه به چه فرمت‌ایی ذخیره می‌شود — به صورت مقادیر enum بیان می‌شوند. Document این صفحه انواع enum را معرفی می‌کند که در هنگام کار با کتابخانه بیشترین بار با آن‌ها مواجه می‌شوید. این یک مقدمهٔ منتخب است، نه یک فهرست کامل؛ برای دریافت فهرست کامل انواع enum و هر مقدار عضو، به API Reference.


نمایش و چیدمان صفحه

PageMode و PageLayout ویژگی‌هایی بر روی Document هستند که نحوهٔ نمایش سند توسط یک نماینده PDF هنگام اولین باز شدن را کنترل می‌کنند — چه نمایه‌ها، تصویرهای کوچک یا چیدمان ستونی خاصی نشان داده شود.

using var doc = Document.Open("input.pdf");

// Show the outline (bookmarks) panel when the document opens
doc.PageMode = PageMode.UseOutlines;

// Display pages in two columns, first page on the left
doc.PageLayout = PageLayout.TwoColumnLeft;

doc.Save("output.pdf");

مدل رنگ صفحه

ColorType مدل رنگ یک صفحه را توصیف می‌کند — RGB، CMYK، grayscale و غیره. این ویژگی هم در Page و هم در Color در دسترس است، به شما امکان می‌دهد منطق خود را بر اساس نحوهٔ رندر واقعی محتوای صفحه شاخه‌بندی کنید.

using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];

if (page.ColorType == ColorType.Grayscale)
{
    // Apply grayscale-specific handling, e.g. skip color-profile conversion
}

Alignment

چندین کلاس HorizontalAlignment و VerticalAlignment را برای موقعیت‌یابی محتوا در صفحه ارائه می‌دهند، در حالی که کلاس‌های حاشیه‌نویسی TextAlignment و Justification را برای تراز متن داخل یک جعبه اضافه می‌کنند. به عنوان مثال، Table هر دو محور تراز را به‌صورت مستقیم در دسترس می‌گذارد.

var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;

page.Paragraphs.Add(table);

FreeTextAnnotation (و نوع پایه Annotation) علاوه بر این Justification و TextAlignment را برای متن داخل حاشیه‌نویسی فراهم می‌کند:

if (page.Annotations[1] is FreeTextAnnotation freeText)
{
    freeText.Justification = Justification.Center;
    freeText.Alignment = TextAlignment.Right;
}

فرمت‌های بارگذاری و ذخیره‌سازی

LoadFormat فرمت منبع پشت یک زیرکلاس LoadOptions را شناسایی می‌کند (به عنوان مثال، HtmlLoadOptions.LoadFormat همیشه LoadFormat.HTML است)، در حالی که SaveFormat فرمت خروجی را هنگام فراخوانی Document.Save انتخاب می‌کند.

var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);

doc.Save("output.html", SaveFormat.Html);

چرخش صفحه

Rotation زاویه چرخش یک صفحه را توصیف می‌کند و از طریق Page.Rotate در دسترس است.

var page = doc.Pages[1];
page.Rotate = Rotation.on90;

نکات و بهترین تمرین‌ها

  • در صورت وجود هر دو، ترجیحاً از overloadهای enum به جای overloadهای مبتنی بر رشته یا عدد صحیح استفاده کنید — آنها مقادیر نامعتبر را در زمان کامپایل شناسایی می‌کنند.
  • مقدار SaveFormat را با پسوند فایلی که به Document.Save می‌گذارید مطابقت دهید؛ عدم تطابق منجر به فایلی با محتوای گمراه‌کننده یا پسوندی غیرقابل استفاده می‌شود.
  • به‌جای تکیه صرف بر تشخیص خودکار فرمت، از زیرکلاس LoadOptions که با فرمت منبع شما مطابقت دارد (مثلاً HtmlLoadOptions برای HTML) استفاده کنید.
  • هنگام قرار دادن جداول یا پاراگراف‌ها، هر دو HorizontalAlignment و VerticalAlignment را همزمان تنظیم کنید — رها کردن یکی از آن‌ها در حالت پیش‌فرض می‌تواند منجر به جای‌گذاری غیرمنتظره شود.
  • به ColorType به‌عنوان توصیفی نگاه کنید، نه امری الزامی: این مقدار گزارش می‌دهد که محتوای رنگی صفحه در حال حاضر چگونه مدل‌سازی شده است، نه تنظیمی که برای تبدیل فضاهای رنگی می‌چرخانید.

مسائل رایج

مسئلهدلیلرفع
فایل ذخیره‌شده محتویات نادرستی برای پسوند خود داردمقدار نادرست SaveFormat به Document.Save ارسال شدمقدار SaveFormat را که با پسوند فایل هدف مطابقت دارد، ارسال کنید
محتوای بارگذاری‌شده HTML/XML/etc. به‌درستی رندر نمی‌شودبه‌جای زیرکلاس مخصوص فرمت، LoadOptions عمومی استفاده شده استاز زیرکلاسی استفاده کنید که با فرمت منبع مطابقت دارد، مثلاً HtmlLoadOptions
جدول یا حاشیه‌نویسی روی صفحه نامرتب به‌نظر می‌رسدHorizontalAlignment/VerticalAlignment در حالت پیش‌فرض باقی مانده‌اندهر دو ویژگی را به‌صورت صریح قبل از افزودن شیء به Paragraphs تنظیم کنید
PDF با رفتار غیرمنتظره در نمایشگر باز می‌شود (بدون پنل فهرست، چینش ستون نادرست)Document.PageMode/Document.PageLayout هرگز تنظیم نشده‌اندقبل از فراخوانی Document.Save هر دو ویژگی را تنظیم کنید

FAQ

تفاوت بین PageMode و PageLayout چیست؟

PageMode وضعیت رابط کاربری مشاهده‌گر را هنگام باز شدن کنترل می‌کند (به عنوان مثال، آیا پنل فهرست یا تصاویر بندانگشتی قابل مشاهده است)، در حالی که PageLayout نحوه چیدمان صفحات را کنترل می‌کند (صفحهٔ تک، یک ستون، دو ستون، و غیره).

چگونه می‌دانم کدام مقدار SaveFormat را استفاده کنم؟

مقدار SaveFormat را انتخاب کنید که با نوع فایل خروجی مورد نظرتان مطابقت داشته باشد — برای مثال، SaveFormat.Html برای خروجی HTML یا SaveFormat.Pdf برای ذخیره مجدد به‌صورت PDF.

آیا می‌توانم هم HorizontalAlignment و هم VerticalAlignment را بر روی همان شی تنظیم کنم؟

بله. کلاس‌هایی مانند Table هر دو ویژگی را به‌صورت مستقل در دسترس می‌گذارند، بنابراین می‌توانید آن‌ها را ترکیب کنید تا محتوا را بر روی هر یک از محورها موقعیت‌دهی کنید.

آیا ColorType به من اجازه می‌دهد فضای رنگی یک صفحه را تبدیل کنم؟

خیر. ColorType مدل رنگی که در حال حاضر به یک صفحه یا مقدار رنگی مرتبط است را گزارش می‌دهد؛ تبدیل انجام نمی‌دهد.

کجا می‌توانم تمام enumها و تمام مقادیر را پیدا کنم؟

این صفحه شامل رایج‌ترین enumها است. برای مجموعه کامل، شامل همه مقادیر اعضا، مراجعه کنید به API Reference.


API Reference خلاصه

Enumتوضیح
PageModeنحوه نمایش سند توسط نمایشگر PDF هنگام باز شدن (طرح‌واره‌ها، تصویرهای کوچک، تمام‌صفحه و غیره)
PageLayoutچیدمان صفحه‌ای که هنگام نمایش سند استفاده می‌شود (صفحه تک، ستون‌ها و غیره).
ColorTypeمدل رنگ صفحه یا مقدار رنگ (RGB، CMYK، مقیاس خاکستری و غیره).
HorizontalAlignmentتراز افقی پاراگراف‌ها، جدول‌ها یا حاشیه‌نویسی‌ها
VerticalAlignmentتراز عمودی پاراگراف‌ها، جدول‌ها یا حاشیه‌نویسی‌ها
TextAlignmentتراز افقی متن برای جعبه‌های متن حاشیه‌نویسی
Justificationتراز محتوی حاشیه‌نویسی متنی آزاد
LoadFormatانتخاب‌کننده فرمت منبع استفاده شده توسط زیرکلاس‌های LoadOptions
SaveFormatانتخاب‌کننده فرمت خروجی استفاده شده توسط Document.Save
Rotationزاویه چرخش صفحه، که از طریق Page.Rotate در دسترس است

همچنین ببینید:

 فارسی