התייחסות לאפשרויות תצורה

התייחסות לאפשרויות תצורה

הפניות לאפשרויות תצורה

רוב פעולות הטעינה, השמירה וההמרה ב-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 למסמך

ראה גם

 עברית