הכניסו שדות
ישנן מספר דרכים שונות להכניס שדות למסמך:
- שימוש DocumentBuilder
- שימוש FieldBuilder
- שימוש Aspose.Words Document Object Model (DOM)
במאמר זה נבחן כל דרך בפירוט רב יותר לנתח כיצד להכניס שדות מסוימים באמצעות אפשרויות אלה.
הכנסת שדות לתוך מסמך באמצעות מסמך בניית מסמכים
In In In Aspose.Words The The InsertField השיטה משמשת כדי להכניס שדות חדשים למסמך. הפרמטר הראשון מקבל את קוד השדה המלא של השדה להיות מוכנס. הפרמטר השני הוא אופציונלי ומאפשר את תוצאת השדה להיות מוגדר באופן ידני. אם זה לא מסופק אז השדה עודכן באופן אוטומטי. אתה יכול לעבור אפס או ריק לפרמטר זה כדי להוסיף שדה עם ערך שדה ריק. אם אתה לא בטוח לגבי syntax קוד שדה מסוים, ליצור את השדה Microsoft Word קודם כל לעבור לראות את קוד השדה שלו.
הדוגמה הבאה של הקוד מראה כיצד להכניס שדה מיזוג למסמך באמצעות שימוש DocumentBuilder:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.InsertField(@"MERGEFIELD MyFieldName \* MERGEFORMAT"); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertField.docx"); |
אותה טכניקה משמשת כדי להכניס שדות מקונן בתחומים אחרים.
הדוגמה הבאה של הקוד מראה כיצד להכניס שדות הקן בתוך שדה אחר באמצעות שימוש DocumentBuilder:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
for (int i = 0; i < 5; i++) | |
builder.InsertBreak(BreakType.PageBreak); | |
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary); | |
// We want to insert a field like this: | |
// { IF {PAGE} <> {NUMPAGES} "See Next Page" "Last Page" } | |
Field field = builder.InsertField(@"IF "); | |
builder.MoveTo(field.Separator); | |
builder.InsertField("PAGE"); | |
builder.Write(" <> "); | |
builder.InsertField("NUMPAGES"); | |
builder.Write(" \"See Next Page\" \"Last Page\" "); | |
field.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertNestedFields.docx"); |
המונחים: Field Level
מזהה שפה הוא קיצור בינלאומי סטנדרטי לשפה במדינה או באזור גיאוגרפי. עם Aspose.Words, באפשרותך לציין את המקומיים ברמת השדה באמצעות LocaleId רכוש, אשר מקבל או מגדיר את מזהה המקומי של השדה.
דוגמה לקוד הבא מראה כיצד להשתמש באפשרות זו:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
DocumentBuilder builder = new DocumentBuilder(); | |
Field field = builder.InsertField(FieldType.FieldDate, true); | |
field.LocaleId = 1049; | |
builder.Document.Save(ArtifactsDir + "WorkingWithFields.SpecifylocaleAtFieldlevel.docx"); |
תגית: Untyped / Empty Field
אם אתה רוצה להוסיף שדות לא מטיפוס / mpty ({}בדיוק כמו Microsoft Word מאפשר, אתה יכול להשתמש InsertField שיטה עם FieldType.FieldNone פרמטר כדי להכניס שדה למסמך Word, באפשרותך ללחוץ על “Ctrl + F9” שילוב מפתח.
הדוגמה הבאה של הקוד מראה כיצד להכניס שדה ריק לתוך המסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
FieldUnknown field = (FieldUnknown) builder.InsertField(FieldType.FieldNone, false); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertFieldNone.docx"); |
הכנסת שדות אל תוך מסמך באמצעות שדה בונה
דרך חלופית להכניס שדות Aspose.Words הוא FieldBuilder מעמד. הוא מספק ממשק שוטף כדי לציין מתגי שדה וערכי טיעון כטקסט, צמתים או אפילו שדות מקונן.
הדוגמה הבאה של הקוד מראה כיצד להכניס שדה למסמך באמצעות FieldBuilder:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
// Prepare IF field with two nested MERGEFIELD fields: { IF "left expression" = "right expression" "Firstname: { MERGEFIELD firstname }" "Lastname: { MERGEFIELD lastname }"} | |
FieldBuilder fieldBuilder = new FieldBuilder(FieldType.FieldIf) | |
.AddArgument("left expression") | |
.AddArgument("=") | |
.AddArgument("right expression") | |
.AddArgument( | |
new FieldArgumentBuilder() | |
.AddText("Firstname: ") | |
.AddField(new FieldBuilder(FieldType.FieldMergeField).AddArgument("firstname"))) | |
.AddArgument( | |
new FieldArgumentBuilder() | |
.AddText("Lastname: ") | |
.AddField(new FieldBuilder(FieldType.FieldMergeField).AddArgument("lastname"))); | |
// Insert IF field in exact location | |
Field field = fieldBuilder.BuildAndInsert(doc.FirstSection.Body.FirstParagraph); | |
field.Update(); | |
doc.Save(ArtifactsDir + "Field.InsertFieldUsingFieldBuilder.docx"); |
הכנסת שדות באמצעות DOM
ניתן גם להוסיף סוגים שונים של שדות באמצעות Aspose.Words Document Object Model (DOM). בחלק זה נבחן כמה דוגמאות.
תגית: Merge שדה לתוך מסמך באמצעות DOM
The The The MERGEFIELD
שדה במסמך Word יכול להיות מיוצג על ידי FieldMergeField מעמד. אתה יכול להשתמש FieldMergeField לבצע את הפעולות הבאות:
- שם שדה המיזוג
- מפרט את הפורמט של שדה המיזוג
- ציין את הטקסט כי הוא בין ניתוח השדה לבין סוף השדה של שדה המיזוג
- ציין את הטקסט להיות מוכנס לאחר שדה המיזוג אם השדה אינו ריק
- ציין את הטקסט להיות מוכנס לפני שדה המיזוג אם השדה אינו ריק
הדוגמה הבאה מציגה כיצד להוסיף MERGE
שדה באמצעות DOM לפסקה במסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Paragraph para = (Paragraph) doc.GetChildNodes(NodeType.Paragraph, true)[0]; | |
builder.MoveTo(para); | |
// We want to insert a merge field like this: | |
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v" } | |
FieldMergeField field = (FieldMergeField) builder.InsertField(FieldType.FieldMergeField, false); | |
// { " MERGEFIELD Test1" } | |
field.FieldName = "Test1"; | |
// { " MERGEFIELD Test1 \\b Test2" } | |
field.TextBefore = "Test2"; | |
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 } | |
field.TextAfter = "Test3"; | |
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m" } | |
field.IsMapped = true; | |
// { " MERGEFIELD Test1 \\b Test2 \\f Test3 \\m \\v" } | |
field.IsVerticalFormatting = true; | |
field.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertMergeFieldUsingDOM.docx"); |
הכנסת Mail Merge ADDRESSBLOCK
שדה לתוך מסמך באמצעות DOM
The The The ADDRESSBLOCK
שדה משמש כדי להוסיף Mail Merge כתובת בלוק במסמך Word ADDRESSBLOCK
שדה במסמך Word יכול להיות מיוצג על ידי FieldAddressBlock מעמד. אתה יכול להשתמש FieldAddressBlock לבצע את הפעולות הבאות:
- ציין האם לכלול את שם המדינה/אזור בשדה
- ציין אם לעצב את הכתובת לפי המדינה / הרגולציה של המקבל כפי שהוגדר על ידי POST*CODE (Universal Postal Union 2006)
- שם המדינה/region
- מפרט את שם וכתובת
- ציין את מזהה השפה המשמש כדי לעצב את הכתובת
הדוגמה הבאה מציגה כיצד להוסיף Mail Merge ADDRESSBLOCK
שדה באמצעות DOM לפסקה במסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Paragraph para = (Paragraph) doc.GetChildNodes(NodeType.Paragraph, true)[0]; | |
builder.MoveTo(para); | |
// We want to insert a mail merge address block like this: | |
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 \\l \"Test 4\" } | |
FieldAddressBlock field = (FieldAddressBlock) builder.InsertField(FieldType.FieldAddressBlock, false); | |
// { ADDRESSBLOCK \\c 1" } | |
field.IncludeCountryOrRegionName = "1"; | |
// { ADDRESSBLOCK \\c 1 \\d" } | |
field.FormatAddressOnCountryOrRegion = true; | |
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 } | |
field.ExcludedCountryOrRegionName = "Test2"; | |
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 } | |
field.NameAndAddressFormat = "Test3"; | |
// { ADDRESSBLOCK \\c 1 \\d \\e Test2 \\f Test3 \\l \"Test 4\" } | |
field.LanguageId = "Test 4"; | |
field.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertMailMergeAddressBlockFieldUsingDOM.docx"); |
הכנסת ADVANCE
שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder
The The The ADVANCE
שדה משמש כדי להתחיל טקסט לאחר מכן בתוך קו לשמאל, ימין, למעלה או למטה. The The The ADVANCE
שדה במסמך Word יכול להיות מיוצג על ידי FieldAdvance מעמד. אתה יכול להשתמש FieldAdvance לבצע את הפעולות הבאות:
- ציין את מספר הנקודות שבאמצעותו הטקסט עוקב אחר השדה צריך לעבור אנכי מן הקצה העליון של הדף
- ציין את מספר הנקודות שבאמצעותו הטקסט עוקב אחר השדה צריך לעבור אופקית מן הקצה השמאלי של עמודה, מסגרת, או תיבת טקסט
- ציין את מספר הנקודות שבאמצעותן יש להעביר את הטקסט שלהלן השדה, ימין, למעלה או למטה
הדוגמה הבאה מציגה כיצד להוסיף ADVANCE
שדה באמצעות DOM לפסקה במסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
Paragraph para = (Paragraph) doc.GetChildNodes(NodeType.Paragraph, true)[0]; | |
// We want to insert an Advance field like this: | |
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 \\y 100 } | |
FieldAdvance field = (FieldAdvance) para.AppendField(FieldType.FieldAdvance, false); | |
// { ADVANCE \\d 10 " } | |
field.DownOffset = "10"; | |
// { ADVANCE \\d 10 \\l 10 } | |
field.LeftOffset = "10"; | |
// { ADVANCE \\d 10 \\l 10 \\r -3.3 } | |
field.RightOffset = "-3.3"; | |
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 } | |
field.UpOffset = "0"; | |
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 } | |
field.HorizontalPosition = "100"; | |
// { ADVANCE \\d 10 \\l 10 \\r -3.3 \\u 0 \\x 100 \\y 100 } | |
field.VerticalPosition = "100"; | |
field.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertAdvanceFieldWithOutDocumentBuilder.docx"); |
הכנסת ASK
שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder
The The The ASK
שדה משמש כדי להניע את המשתמש לטקסט כדי להקצות לסימן ספר במסמך Word. ASK
שדה במסמך Word יכול להיות מיוצג על ידי FieldAsk מעמד. אתה יכול להשתמש FieldAsk לבצע את הפעולות הבאות:
- שם הספר
- ציין תגובה למשתמש ברירת מחדל (ערך חיוני הכלול בחלון המהיר)
- ציין האם יש לקבל את תגובת המשתמש פעם אחת לכל Mail Merge המבצע
- ציין את הטקסט המהיר (שם החלון המהיר)
הדוגמה הבאה מציגה כיצד להוסיף ASK
שדה באמצעות DOM לפסקה במסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
Paragraph para = (Paragraph) doc.GetChildNodes(NodeType.Paragraph, true)[0]; | |
// We want to insert an Ask field like this: | |
// { ASK \"Test 1\" Test2 \\d Test3 \\o } | |
FieldAsk field = (FieldAsk) para.AppendField(FieldType.FieldAsk, false); | |
// { ASK \"Test 1\" " } | |
field.BookmarkName = "Test 1"; | |
// { ASK \"Test 1\" Test2 } | |
field.PromptText = "Test2"; | |
// { ASK \"Test 1\" Test2 \\d Test3 } | |
field.DefaultResponse = "Test3"; | |
// { ASK \"Test 1\" Test2 \\d Test3 \\o } | |
field.PromptOnceOnMailMerge = true; | |
field.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertASKFieldWithOutDocumentBuilder.docx"); |
הכנסת AUTHOR
שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder
The The The AUTHOR
שדה משמש כדי לציין את שם המחבר של המסמך מן Document
תכונות. The The The AUTHOR
שדה במסמך Word יכול להיות מיוצג על ידי FieldAuthor מעמד. אתה יכול להשתמש FieldAuthor לבצע את הפעולות הבאות:
- שם המחבר
הדוגמה הבאה מציגה כיצד להוסיף AUTHOR
שדה באמצעות DOM לפסקה במסמך:
הכנסת INCLUDETEXT
שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder
The The The INCLUDETEXT
שדה מוסיף את הטקסט והגרפיקה הכלולים במסמך בשם קוד השדה. באפשרותך להוסיף את המסמך כולו או חלק מהמסמכים המוזכרים בסימן ספר. שדה זה במסמך Word מיוצג על ידי INCLUDETEXT. אתה יכול להשתמש FieldIncludeText לבצע את הפעולות הבאות:
- שם הספר של המסמך
- לציין את המיקום של המסמך
הדוגמה הבאה מציגה כיצד להוסיף INCLUDETEXT
שדה באמצעות DOM לפסקה במסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
Paragraph para = new Paragraph(doc); | |
// We want to insert an INCLUDETEXT field like this: | |
// { INCLUDETEXT "file path" } | |
FieldIncludeText fieldIncludeText = (FieldIncludeText) para.AppendField(FieldType.FieldIncludeText, false); | |
fieldIncludeText.BookmarkName = "bookmark"; | |
fieldIncludeText.SourceFullName = MyDir + "IncludeText.docx"; | |
doc.FirstSection.Body.AppendChild(para); | |
fieldIncludeText.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertIncludeFieldWithoutDocumentBuilder.docx"); |
הכנסת TOA
שטח אל תוך מסמך מבלי להשתמש ב- DocumentBuilder
The The The TOA
(אפשרות הרשויות) בונה ומכניסת שולחן של רשויות. The The The TOA
שדה אוסף ערכים המסומנים על ידי TA
(אפשרות כניסה לרשויות) Microsoft Office Word מוסיף TOA
שדה כאשר אתה לוחץ *שולחן אינסטלציה של הרשויות * שולחן הרשויות הקבוצה על References הכרטיסיה כשאתם רואים את TOA
שדה במסמך שלך, הסינמס נראה כך:
{ TOA
[Switches ] }
הדוגמה הבאה מציגה כיצד להוסיף TOA
שדה באמצעות DOM לפסקה במסמך:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
Paragraph para = new Paragraph(doc); | |
// We want to insert TA and TOA fields like this: | |
// { TA \c 1 \l "Value 0" } | |
// { TOA \c 1 } | |
FieldTA fieldTA = (FieldTA) para.AppendField(FieldType.FieldTOAEntry, false); | |
fieldTA.EntryCategory = "1"; | |
fieldTA.LongCitation = "Value 0"; | |
doc.FirstSection.Body.AppendChild(para); | |
para = new Paragraph(doc); | |
FieldToa fieldToa = (FieldToa) para.AppendField(FieldType.FieldTOA, false); | |
fieldToa.EntryCategory = "1"; | |
doc.FirstSection.Body.AppendChild(para); | |
fieldToa.Update(); | |
doc.Save(ArtifactsDir + "WorkingWithFields.InsertTOAFieldWithoutDocumentBuilder.docx"); |