פרטי המסמך
מידע על המסמך
מדריך זה מציג כיצד לקרוא ולכתוב מטא-נתוני מסמך עם Aspose.Words FOSS עבור .NET. כל Document שנטען או שנוצר חדש נושא שני סוגים של מטא-נתונים לצד התוכן שלו: קבוצה קבועה של מאפיינים מובנים (מחבר, כותרת, מספר מילים וכדומה) וקבוצה פתוחה של מאפיינים מותאמים אישית שאתה מגדיר בעצמך. Aspose.Words FOSS עבור .NET גם מיישם את שדות Word שמציגים מטא-נתונים אלה בתוך גוף המסמך — AUTHOR, COMMENTS, ו-DOCPROPERTY — כך שערכי המאפיינים יכולים להופיע כטקסט חי, ניתן לעדכון.
מאפייני מסמך מובנים
Document.BuiltInDocumentProperties מחזיר אוסף BuiltInDocumentProperties עם מאפיין אחד עבור כל שדה מטא-נתון סטנדרטי של Word: Author, Title, Subject, Comments, Category, Company, Manager, Keywords, CreatedTime, LastSavedTime, LastSavedBy, LastPrinted, RevisionNumber, TotalEditingTime, וסטטיסטיקות כגון Pages, Words, Characters, CharactersWithSpaces, Paragraphs, ו-Lines. מכיוון ש-BuiltInDocumentProperties נגזר מ-DocumentPropertyCollection, הוא תומך גם בחיפוש לפי שם דרך האינדקסר שלו, Contains(), IndexOf(), וגם באיטרציה דרך GetEnumerator(). האוסף עצמו נחשף ב-PlainTextDocument.BuiltInDocumentProperties בעת עבודה עם קלט טקסט פשוט.
מאפייני מסמך מותאמים אישית
Document.CustomDocumentProperties מחזיר אוסף CustomDocumentProperties עבור מאפיינים שהיישום מגדיר בעצמו — זוגות שם/ערך שרירותיים ש-Word שומר לצד הקבוצה המובנית. הוסף מאפיין באמצעות Add(name, value), שמוצע במגוון CustomDocumentProperties עבור סוגי הערכים שמאפיין יכול להכיל; קבל מאפיין לפי שם באמצעות האינדקסר, לדוגמה properties[name]; והסר ערכים באמצעות Remove(name), RemoveAt(index) או Clear(). AddLinkToContent(name, linkSource) יוצר מאפיין שערכו מקושר לסימנייה או טווח בתוך המסמך במקום להיות מאוחסן כערך קבוע.
כל ערך באחת מהאוספים — מובנה או מותאם אישית — הוא DocumentProperty, שמחשוף את Name, Value ו-Type (ערך PropertyType: String, Number, Double, Boolean, DateTime, StringArray, ObjectArray, ByteArray או Other), וכן IsLinkToContent ו-LinkSource עבור מאפיינים מקושרים. DocumentProperty מספק עוזרי המרה כגון ToString(), ToInt(), ToDouble(), ToDateTime(), ToBool() ו-ToByteArray() לקבלת הערך הפנימי בסוג .NET הרצוי.
שדות מידע-מסמך
שלושה תתי-מחלקות Field חושפות מטא-נתוני מסמך כשדות בתוך גוף המסמך עצמו: FieldAuthor (השדה AUTHOR, עם מאפיין AuthorName), FieldComments (השדה COMMENTS, עם מאפיין Text), ו-FieldDocProperty (השדה DOCPROPERTY, הקורא נכס מסמך בשם — מובנה או מותאם אישית — אל המסמך). כמו כל Field, שלושתם חולקות את מחזור החיים הבסיסי של Field: GetFieldCode() לקריאת קוד השדה הבסיסי, Result / DisplayResult לקריאת הערך המחושב האחרון, Update() לחישוב מחדש של הערך, Unlink() להחלפת השדה בתוצאתו הסטטית, ו-Remove() למחיקתו. הכנס שדה מידע-מסמך עם DocumentBuilder.InsertField(fieldCode) — למשל קוד שדה של AUTHOR או DOCPROPERTY "Company" — או עם העומס InsertField(fieldType, updateField) באמצעות ערך FieldType כגון FieldType.FieldAuthor, FieldType.FieldComments, או FieldType.FieldDocProperty.
כיוון ש-FieldDocProperty קורא כל נכס מסמך אליו הוא קשור, שינוי הערך הבסיסי של BuiltInDocumentProperties או CustomDocumentProperties ולאחר מכן קריאה ל-Update() — או ל-Document.UpdateFields() כדי לרענן את כל השדות במסמך בבת אחת — מעבירה את הערך החדש לתוצאה המוצגת של השדה.
טיפים ושיטות עבודה מומלצות
- הגדר נכסים מובנים כגון
Title,Authorו-Subjectלפני השמירה — Word וצורפים אחרים קוראים אותם מ-BuiltInDocumentPropertiesעבור רישומי מסמכים והאינדוקס בחיפוש. - השתמש ב-
DocumentProperty.Typeכדי לבדוק אתPropertyTypeשל נכס לפני קריאה לעוזר המרה ספציפי (ToInt(),ToDateTime()וכו׳) כדי למנוע חוסר התאמה במרת ערך בנכס שלא יצרת בעצמך. AddLinkToContent()משמר נכס מותאם אישית מסונכרן עם תוכן המסמך (כגון טווח מסומן) במקום ערך קבוע — השתמש בו כאשר על הנכס תמיד לשקף את מה שנמצא כרגע במסמך.- קרא ל-
Document.UpdateFields()אחרי שינוי נכסי המסמך כך שכל השדותFieldDocProperty,FieldAuthorאוFieldCommentsשכבר נמצאים בגוף המסמך יקלטו את הערכים החדשים. BuiltInDocumentPropertiesו-CustomDocumentPropertiesזמינים גם ב-PlainTextDocumentוגם ב-Document, ולכן המטא-נתונים עוברים חזרה גם כאשר התוכן שהוטען הוא טקסט פשוט.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
האינדקסור מחזיר null עבור מאפיין מותאם אישית | המאפיין עדיין לא נוסף | קרא ל-CustomDocumentProperties.Add(name, value) תחילה, או בדוק את Contains(name) לפני הקריאה |
FieldDocProperty מציג ערך מיושן לאחר שינוי מאפיין | השדה לא עודכן | קרא Update() על השדה, או Document.UpdateFields() כדי לרענן כל שדה במסמך |
DocumentProperty.ToInt() / ToDateTime() זורק | ה-Type האמיתי של המאפיין אינו תואם להמרה המבוקשת | בדוק את DocumentProperty.Type לפני בחירת עוזר ההמרה לקריאה |
FAQ
מה ההבדל בין תכונות מסמך מובנות לתכונות מותאמות אישית?
תכונות מובנות (Document.BuiltInDocumentProperties) הן קבוצה קבועה המוגדרת על-ידי פורמט OOXML — Author, Title, Pages, וכדומה. תכונות מותאמות אישית (Document.CustomDocumentProperties) הן קבוצה פתוחה, מוגדרת על-ידי היישום, של זוגות שם/ערך שנוספת באמצעות Add().
איך לגרום לתכונה מותאמת אישית לעקוב אחרי תוכן המסמך במקום ערך קבוע?
השתמש ב-CustomDocumentProperties.AddLinkToContent(name, linkSource), שמקשר את ערך התכונה לסימנייה או לטווח במסמך במקום לאחסן ערך סטטי.
האם עדכון תכונת מסמך מעדכן אוטומטית את השדות המציגים אותה?
לא — קרא Update() על השדה הספציפי או Document.UpdateFields() כדי לחשב מחדש כל שדה במסמך, כולל מקרים של FieldDocProperty, FieldAuthor ו-FieldComments.
האם אני יכול לקרוא את תכונות המסמך ממסמך טקסט פשוט?
כן. PlainTextDocument חושף את אותם BuiltInDocumentProperties ו-CustomDocumentProperties תכונות כמו Document.
API Reference סיכום
| מחלקה / מתודה | תיאור |
|---|---|
Document.BuiltInDocumentProperties | איסוף מטה-נתונים סטנדרטי של OOXML (Author, Title, Pages, וכו') |
Document.CustomDocumentProperties | אוסף מאפיינים שם/ערך שהוגדר על ידי היישום |
CustomDocumentProperties.Add() / אינדקס לפי שם / AddLinkToContent() | הוספה, שליפה, או קישור תוכן למאפיין מותאם אישית |
DocumentProperty | רשומת מאפיין יחידה; Value, Type, ו-ToString()/ToInt()/ToDouble()/ToDateTime()/ToBool()/ToByteArray() עוזרי המרה |
FieldAuthor / FieldComments / FieldDocProperty | AUTHOR, COMMENTS, ו-DOCPROPERTY שדות; Update(), Result, GetFieldCode() |
DocumentBuilder.InsertField() | מכניס שדה באמצעות קוד שדה או FieldType |