עבודה עם Enums
עבודה עם Enums
Aspose.PDF קוד פתוח חופשי עבור .NET משתמש באינומים עם טיפוס חזק לאורך כל ה-API שלו כדי להגדיר את התנהגות המסמך, מראה העמוד, ופורמטים של המרה. במקום מחרוזות קסם או מספרים שלמים, רוב ממשקי ההגדרה — מהאופן שבו מציג PDF פותח קובץ ועד לאיזה פורמט הוא Document נשמר כ— מתבטאות כערכי אינום. דף זה מציג את סוגי האינום שתפגשו בהם בתדירות גבוהה בעת העבודה עם הספרייה. זוהי הצגה מסודרת, לא קטלוג מקיף; עבור הרשימה המלאה של סוגי האינום וכל ערך של חבר, ראו את 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 על פני עומסים מבוססי מחרוזת או int כששניהם קיימים — הם תופסים ערכים לא חוקיים בזמן הקומפילציה.
- התאם את
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 ואת כל הערכים?
דף זה מכסה את האינומים הנפוצים ביותר. עבור המכלול המלא, כולל כל ערך של חבר, ראה את API Reference.
API Reference סיכום
| Enum | תיאור |
|---|---|
PageMode | כיצד מציג מציג ה-PDF את המסמך בעת הפתיחה (מתארים, תמונות ממוזערות, מסך מלא, וכו׳) |
PageLayout | פריסת העמודים המשמשת כאשר המסמך מוצג (עמוד יחיד, עמודות, וכו׳) |
ColorType | דגם צבע של עמוד או ערך צבע (RGB, CMYK, גווני אפור, וכו') |
HorizontalAlignment | יישור אופקי של פסקאות, טבלאות או הערות |
VerticalAlignment | יישור אנכי של פסקאות, טבלאות או הערות |
TextAlignment | יישור טקסט אופקי לתיבות טקסט של הערות |
Justification | הצדקת תוכן ההערה בטקסט חופשי |
LoadFormat | בוחר פורמט המקור שבו משתמשים תתי-מחלקות של LoadOptions |
SaveFormat | בוחר פורמט הפלט שבו משתמש Document.Save |
Rotation | זווית סיבוב העמוד, נחשפת דרך Page.Rotate |