Робота з перерахуваннями

Робота з перерахуваннями

Робота з Enum’ами

Aspose.PDF FOSS для .NET використовує строго типізовані enum’и протягом усього його API, щоб налаштовувати поведінку документа, вигляд сторінки та формати конвертації. Замість магічних рядків або цілих чисел, більшість поверхонь конфігурації — від того, як PDF-переглядач відкриває файл, до того, у якому форматі a Document зберігається — виражені як значення enum. Ця сторінка представляє типи 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, відтінки сірого тощо. Вона доступна і в 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;

Поради та кращі практики

  • Віддавайте перевагу перевантаженням enum над перевантаженнями на основі рядків чи цілих чисел, якщо обидва існують — вони ловлять некоректні значення під час компіляції.
  • Зіставте 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’и. Для повного набору, включаючи всі значення членів, дивіться the API Reference.


API Reference Підсумок

EnumОпис
PageModeЯк PDF-переглядач відображає документ при відкритті (структура, мініатюри, повноекранний режим тощо)
PageLayoutМакет сторінки, що використовується при відображенні документа (одна сторінка, колонки тощо)
ColorTypeКолірна модель сторінки або колірне значення (RGB, CMYK, градації сірого тощо)
HorizontalAlignmentГоризонтальне вирівнювання абзаців, таблиць або анотацій
VerticalAlignmentВертикальне вирівнювання абзаців, таблиць або анотацій
TextAlignmentГоризонтальне вирівнювання тексту у текстових полях анотацій
JustificationВирівнювання за шириною вмісту вільнотекстової анотації
LoadFormatВибір формату джерела, який використовується підкласами LoadOptions
SaveFormatВибір формату виводу, що використовується Document.Save
RotationКут повороту сторінки, доступний через Page.Rotate

Дивіться також

 Українська