مرجع گزینههای پیکربندی
مرجع گزینههای پیکربندی
اکثر عملیات بارگذاری، ذخیرهسازی و تبدیل در 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و*SaveOptionsWarningHandler/WarningHandlerNameرا به ارث میبرد - هر دو را همزمان تنظیم کنید تا تشخیصهای قابل بازیابی را ضبط کنید. - ترجیحاً یک نمونه
*LoadOptions/*SaveOptionsمخصوص فرمت را بهجای تکیه بر استنتاج فرمت مبتنی بر پسوند استفاده کنید، بهویژه هنگام کار با جریانها بهجای مسیرهای فایل. - از
Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions)برای تبدیلهای یکبار استفاده کنید بهجای باز کردن دستی و ذخیرهمجدد یکDocument. OptimizationOptionsمستقل از خانواده*SaveOptionsاست - قبل ازSave،OptimizeResourcesرا فراخوانی کنید تا خروجی را صرفنظر از فرمت هدف کوچک کنید.- یک نمونه گزینهها را در چندین سند زمانی که تنظیمات یکسان اعمال میشود، مجدداً استفاده کنید، بهجای بازسازی آن در هر بار.
مسائل رایج
| مشکل | دلیل | رفع |
|---|---|---|
| مسیرهای نسبی تصویر/CSS هنگام بارگذاری HTML حل نمیشوند | HtmlLoadOptions.BasePath هرگز تنظیم نشد | مسیر پایه را از طریق سازنده HtmlLoadOptions(basePath) عبور دهید |
| قالب خروجی اشتباه تولید شد | یک زیرکلاس *SaveOptions نامتناسب یا SaveFormat برای پسوند هدف استفاده شد | از زیرکلاس *SaveOptions که با قالب مقصد مطابقت دارد استفاده کنید |
OptimizeResources حجم فایل را کاهش نمیدهد | OptimizationOptions به حالت پیشفرض باقی مانده است و هیچ پرچم کاهش فعال نشده است | بهطور صریح RemoveUnusedObjects، CompressObjects و SubsetFonts را تنظیم کنید |
| هشدارهای ایجاد شده هنگام بارگذاری/ذخیره بهصورت ساکت حذف میشوند | تنظیم WarningHandler بدون نامگذاری هندلر | WarningHandler و WarningHandlerName را با هم تنظیم کنید |
FAQ
تفاوت بین LoadOptions و SaveOptions چیست؟
LoadOptions نحوهٔ خواندن یک سند را از فرمت منبع غیر PDF (HTML، Markdown، متن، SVG) پیکربندی میکند؛ SaveOptions نحوهٔ نوشتن یک Document را به فرمت خروجی (PDF، HTML، SVG) تنظیم میکند. هر کلاس گزینههای مخصوص فرمت دقیقاً از یکی از این دو ریشه ارث میبرد.
آیا هنگام باز کردن یک PDF بومی نیاز به مشخص کردن LoadOptions دارم؟
خیر. Document.Open و سازندهٔ Document یک مسیر فایل ساده یا جریان را برای ورودی PDF بومی میپذیرند. زیرکلاسهای *LoadOptions فقط زمانی لازم هستند که فرمت منبع غیر PDF مانند HTML، Markdown، متن یا SVG را وارد میکنید.
آیا میتوانم همان نمونهٔ SaveOptions را در چندین فراخوانی Save دوباره استفاده کنم؟
بله. یک نمونهٔ گزینهها فقط یک شیء پیکربندی ساده است؛ هیچ وضعیت سراسری برای هر سندی نگه نمیدارد، بنابراین همان نمونهٔ PdfSaveOptions یا HtmlSaveOptions میتواند به Save برای چند سند که تنظیمات یکسان دارند، پاس داده شود.
چگونه OptimizationOptions با کلاسهای مخصوص فرمت SaveOptions متفاوت است؟
OptimizationOptions توسط Document.OptimizeResources مصرف میشود، گامی جداگانه از ذخیرهسازی. این کار اشیاء/جریانهای استفادهنشده را حذف کرده و تصاویر را درجا دوباره فشرده میکند، و میتواند پیش از فراخوانی Save با هر زیرکلاس *SaveOptions اعمال شود.
آیا هر فرمت منبع/هدف هر دو کلاس LoadOptions و SaveOptions را دارد؟
لزوماً متقارن نیست. برای مثال، Markdown و plain text در حال حاضر 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 را بر روی سند اعمال میکند |