Довідник параметрів конфігурації
Посилання на параметри конфігурації
Більшість операцій завантаження, збереження та конвертації у Aspose.PDF FOSS для .NET приймають один *Options об’єкт, який налаштовує поведінку цієї операції. LoadOptions and SaveOptions є двома абстрактними коренями цієї сім’ї: кожен завантажувач, специфічний для формату (HtmlLoadOptions, MdLoadOptions, TxtLoadOptions, SvgLoadOptions) успадковується від LoadOptions, і кожен записувач, специфічний для формату (PdfSaveOptions, HtmlSaveOptions, SvgSaveOptions) успадковується від SaveOptions. Ця сторінка пояснює, як ця сім’я взаємодіє, і документує класи параметрів, які ще не охоплені за Конвертація та оптимізація посібник.
Завантаження документів за допомогою LoadOptions
Кожен підклас *LoadOptions успадковує WarningHandler, WarningHandlerName, DisableFontLicenseVerifications та LoadFormat з базового класу LoadOptions, а потім додає властивості, специфічні для його вихідного формату.
// HTML: resolve relative images/CSS against a base path
var htmlOptions = new HtmlLoadOptions("assets/");
htmlOptions.IsEmbedFonts = true;
using var htmlDoc = new Document("input.html", htmlOptions);
// Markdown: apply custom CSS while rendering to PDF
var mdOptions = new MdLoadOptions();
mdOptions.CssStyles = "body { font-family: sans-serif; }";
using var mdDoc = new Document("input.md", mdOptions);
// Plain text: control the rendered font size
var txtOptions = new TxtLoadOptions();
txtOptions.FontSize = 11;
using var txtDoc = Document.Open("input.txt", txtOptions);
// SVG: let the page size follow the artwork dimensions
var svgOptions = new SvgLoadOptions();
svgOptions.AdjustPageSize = true;
using var svgDoc = new Document("input.svg", svgOptions);Збереження у PDF за допомогою PdfSaveOptions
PdfSaveOptions керує обробкою шрифтів та розташуванням тимчасових файлів під час запису Document назад у PDF. Він успадковує CloseResponse, SaveFullPath, WarningHandler, CacheGlyphs та SaveFormat від спільної бази SaveOptions.
using var doc = Document.Open("input.pdf");
var pdfOptions = new PdfSaveOptions();
pdfOptions.DefaultFontName = "Arial";
pdfOptions.TempPath = "temp/";
doc.Save("output.pdf", pdfOptions);Експорт у HTML та SVG
HtmlSaveOptions та SvgSaveOptions обидва успадковуються від UnifiedSaveOptions. Окрім елементів керування зображенням/шрифтом/розкладкою, описаних у посібнику з конвертації, HtmlSaveOptions також дозволяє вибрати варіант документа та стратегію пагінації, тоді як SvgSaveOptions повністю спирається на успадковані члени SaveOptions/UnifiedSaveOptions.
using var doc = Document.Open("input.pdf");
// Fixed-layout HTML5 output, split one file per page
var htmlOptions = new HtmlSaveOptions(HtmlDocumentType.Html5, fixedLayout: true);
htmlOptions.SplitIntoPages = true;
htmlOptions.ImageResolution = 150;
htmlOptions.Title = "Converted Document";
doc.Save("output.html", htmlOptions);
// SVG export configured through the shared SaveOptions members
var svgOptions = new SvgSaveOptions();
svgOptions.SaveFullPath = false;
doc.Save("output.svg", svgOptions);Одноступеневе перетворення за допомогою Document.Convert
Document.Convert приймає вихідний LoadOptions і цільовий SaveOptions одночасно в одному статичному виклику, тому ви можете конвертувати між форматами без ручного відкриття, конвертування та звільнення Document.
var loadOptions = new HtmlLoadOptions();
var saveOptions = new PdfSaveOptions();
Document.Convert("input.html", loadOptions, "output.pdf", saveOptions);Параметри витягування тексту
TextExtractionOptions контролює, як TextAbsorber (і TextDevice) форматують витягнутий текст, незалежно від того, який абсорбер або клас пристрою виконує витяг.
using var doc = Document.Open("input.pdf");
var extractionOptions = new TextExtractionOptions(TextFormattingMode.Raw);
extractionOptions.ScaleFactor = 1.0;
extractionOptions.IgnoreResourceFontErrors = true;
var absorber = new TextAbsorber(extractionOptions);
doc.Pages[1].Accept(absorber);
string text = absorber.Text;Оптимізація вихідних даних за допомогою OptimizationOptions
OptimizationOptions — це окремий, незалежний від формату механізм зменшення розміру файлу. Він застосовується через Document.OptimizeResources, а не через клас *SaveOptions, тому його можна комбінувати з будь-яким шляхом збереження.
using var doc = Document.Open("input.pdf");
var optimizationOptions = new OptimizationOptions();
optimizationOptions.RemoveUnusedObjects = true;
optimizationOptions.CompressObjects = true;
optimizationOptions.SubsetFonts = true;
optimizationOptions.ImageCompressionOptions.CompressImages = true;
optimizationOptions.ImageCompressionOptions.ImageQuality = 80;
doc.OptimizeResources(optimizationOptions);
doc.Save("optimized.pdf");Поради та найкращі практики
- Кожен підклас
*LoadOptionsі*SaveOptionsуспадковуєWarningHandler/WarningHandlerName— встановіть їх разом, щоб захопити відновлювану діагностику. - Віддавайте перевагу екземпляру
*LoadOptions/*SaveOptions, специфічному для формату, замість покладання на виведення формату за розширенням, особливо коли працюєте з потоками, а не зі шляхами до файлів. - Використовуйте
Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions)для одноразових конвертацій замість ручного відкриття та повторного збереженняDocument. OptimizationOptionsне залежить від сімейства*SaveOptions— викличтеOptimizeResourcesпередSave, щоб зменшити розмір виводу незалежно від цільового формату.- Повторно використовуйте один екземпляр параметрів у кількох документах, коли застосовуються однакові налаштування, замість створення нового кожного разу.
Поширені проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
| Відносні шляхи до зображень/CSS не вирішуються під час завантаження HTML | HtmlLoadOptions.BasePath ніколи не було встановлено | Передайте базовий шлях через конструктор HtmlLoadOptions(basePath) |
| Створено неправильний формат виводу | Для цільового розширення використано невідповідний підклас *SaveOptions або SaveFormat | Використовуйте підклас *SaveOptions, який відповідає формату призначення |
OptimizeResources не зменшує розмір файлу | OptimizationOptions залишено за замовчуванням без увімкнених прапорців скорочення | Явно встановіть RemoveUnusedObjects, CompressObjects та SubsetFonts |
| Попередження, що виникають під час завантаження/збереження, беззвучно відкидаються | WarningHandler встановлено без зазначення обробника | Встановіть WarningHandler і WarningHandlerName разом |
FAQ
У чому різниця між LoadOptions і SaveOptions?
LoadOptions налаштовує, як документ читається з формату джерела, що не є PDF (HTML, Markdown, text, SVG); SaveOptions налаштовує, як Document записується у вихідний формат (PDF, HTML, SVG). Кожен клас параметрів, специфічний для формату, успадковується від точно одного з цих двох кореневих класів.
Чи потрібно вказувати LoadOptions під час відкриття нативного PDF?
Ні. Document.Open і конструктор Document приймають простий шлях до файлу або потік для нативного PDF-входу. Підкласи *LoadOptions потрібні лише під час імпорту формату джерела, що не є PDF, наприклад HTML, Markdown, text або SVG.
Чи можу я повторно використовувати той самий екземпляр SaveOptions у кількох викликах Save?
Так. Екземпляр параметрів — це просто простий об’єкт конфігурації; він не містить стану, специфічного для окремого документа, тому той самий екземпляр PdfSaveOptions або HtmlSaveOptions можна передати Save для кількох документів, які мають однакові налаштування.
Чим OptimizationOptions відрізняється від форматно-специфічних класів SaveOptions?
OptimizationOptions споживається Document.OptimizeResources, окремим кроком від збереження. Він видаляє невикористані об’єкти/потоки та повторно стискає зображення на місці, і його можна застосувати перед викликом Save з будь-яким підкласом *SaveOptions.
Чи має кожен формат джерела/призначення і клас LoadOptions, і клас SaveOptions?
Не обов’язково симетрично. Наприклад, Markdown і простий текст наразі надають MdLoadOptions/TxtLoadOptions для імпорту, але не мають відповідного *SaveOptions аналогу, що відображає, у якому напрямку кожен формат підтримується для конвертації.
API Reference Підсумок
| Клас / Метод | Опис |
|---|---|
LoadOptions | Базовий клас для всіх типів параметрів завантаження документів |
SaveOptions | Базовий клас для всіх типів параметрів збереження документів |
HtmlLoadOptions | Параметри імпорту HTML як PDF-документ |
MdLoadOptions | Параметри імпорту Markdown як PDF-документ |
TxtLoadOptions | Параметри імпорту простого тексту у PDF-документ |
SvgLoadOptions | Параметри імпорту SVG у PDF-документ |
PdfSaveOptions | Параметри збереження документа у форматі PDF |
HtmlSaveOptions | Параметри збереження документа у форматі HTML |
SvgSaveOptions | Опції збереження документа у форматі SVG |
UnifiedSaveOptions | Спільна база для HtmlSaveOptions та SvgSaveOptions |
Document.Convert | Статичне одноетапне перетворення за допомогою пари LoadOptions/SaveOptions |
TextExtractionOptions | Конфігурація форматування для вилучення тексту TextAbsorber |
OptimizationOptions | Незалежні від формату налаштування оптимізації розміру/ресурсів документа |
Document.OptimizeResources | Застосовує екземпляр OptimizationOptions до документа |