Робота з перерахуваннями
Робота з 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 |