התייחסות לאפשרויות תצורה
הפניות לאפשרויות תצורה
רוב פעולות הטעינה, השמירה וההמרה ב-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כדי לצמצם את הפלט ללא תלות בפורמט היעד.- השתמש באותו מופע אפשרויות עבור מספר מסמכים כאשר ההגדרות זהות, במקום לבנות אותו מחדש בכל פעם.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
| נתיבי image/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). כל מחלקת אפשרויות ספציפית לפורמט יורשת בדיוק מאחד משני השורשים האלו.
האם עלי לציין LoadOptions כאשר פותחים קובץ PDF מקורי?
לא. Document.Open והקונסטרוקטור של Document מקבלים נתיב קובץ רגיל או זרם לקלט PDF מקורי. תתי-מחלקות של *LoadOptions נדרשות רק בעת ייבוא מבנה מקור שאינו PDF כגון HTML, Markdown, טקסט, או 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 למסמך |