כיצד לעבוד עם קישורים והפניות של Word ב-.NET

כיצד לעבוד עם קישורים והפניות של Word ב-.NET

מדריך זה מראה כיצד להכניס קישורים היפר-טקסטיים, הפניות צולבות לסימניות, שדות ערך מתבקשים, ושדות ציטוט ב- Aspose.Words FOSS עבור .NET, באמצעות FieldHyperlink, FieldRef, FieldPageRef, FieldCitation, והקישורים וההפניות האחרים Field תתי-מחלקות ב- Aspose.Words.Fields מרחב השם. הוא מכסה הוספת קישור היפר-טקסט פשוט, יצירת סימניות והפניות צולבות אליהן, בקשת ערכים במהלך עדכון שדה, וציטוט מקורות ביבליוגרפיים.

מדריך שלב-אחר-שלב

שלב 1: התקנת החבילה

Aspose.Words FOSS for .NET עדיין לא מפרסם חבילת NuGet – במקום זאת בנו את הספרייה מהקוד. Clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, ואז בנו את Aspose.Words.sln בתצורת Release עם .NET SDK והפנו אל הרכיב Aspose.Words שנוצר בפרויקט שלכם. הספרייה מכוונת ל-.NET Standard 2.0, ולכן היא פועלת על .NET Framework 4.6.2+ ועל .NET 6/8/10.


שלב 2: ייבוא מחלקות נדרשות

הוסף הנחיית using Aspose.Words; עבור Document ו-DocumentBuilder, והנחיית using Aspose.Words.Fields; עבור FieldHyperlink, FieldRef, FieldPageRef, FieldNoteRef, FieldStyleRef, FieldSet, FieldAsk, FieldFillIn, FieldCitation, FieldBibliography, והמחלקות שדה אחרות שהמדריך הזה מכסה.


שלב 3: הוסף קישור

לקישור פשוט, קרא ל-DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark) – העבר isBookmark: false כיעד URL או true כדי לקשר לסימנייה באותו מסמך. עבור לבנייה של FieldHyperlink ישירות כאשר נדרשות תכונות שהקיצור אינו חושף: Address ו-SubAddress מחזיקים את כתובת ה-URL של היעד או מיקום במסמך, ScreenTip מגדיר את תיאור העכבר, OpenInNewWindow ו-IsImageMap הם דגלי תצוגה, ו-Target נותן שם למסגרת הדפדפן.


שלב 4: צור סימנייה להפניה

קרא ל-DocumentBuilder.StartBookmark(bookmarkName) לפני התוכן שהסימנייה צריכה לכסות, ול-DocumentBuilder.EndBookmark(bookmarkName) לאחריו, תוך שימוש באותו שם לשתי הקריאות. DocumentBuilder.MoveToBookmark(bookmarkName) מזיז את הסמן לסימנייה שכבר קיימת – שימושי לניווט למיקום לפני הוספת שדה הפניה צולבת לידו.


שלב 5: הוסף הפניה צולבת לאותה סימנייה

FieldRef (שדה REF), FieldPageRef (PAGEREF), ו-FieldNoteRef (NOTEREF) כל אחד פותר תוכן בסימנייה בשם דרך המאפיין BookmarkName שלהם. הגדר InsertHyperlink כדי להפוך את ההפניה ללחיצה, ו-InsertRelativePosition כדי לדווח על מיקום יחסי (“מעלה” / “מטה”) במקום הטקסט המופנה עצמו. FieldRef תומך בנוסף באפשרויות מספור פסקאות – InsertParagraphNumber, InsertParagraphNumberInFullContext, InsertParagraphNumberInRelativeContext, NumberSeparator – ו-IncludeNoteOrComment. FieldStyleRef (STYLEREF) פונה לפסקה הקרובה ביותר שעוצבה עם StyleName נתון במקום סימנייה, עם SearchFromBottom לחיפוש אחורה ממיקום השדה. FieldSet (SET) מגדיר ערך טקסט מסומן – BookmarkName ו-BookmarkText – ששדה REF במקום אחר יכול לפתור.


שלב 6: בקש ערך במהלך עדכון

FieldAsk (ASK) ו- FieldFillIn (FILLIN) מבקשת ערך מהאדם שמעדכן את השדה: קבע PromptText לטקסט שמוצג למשתמש, DefaultResponse לערך גיבוי, ו PromptOnceOnMailMerge להגביל בקשות חוזרות במהלך מיזוג דואר. FieldAsk בנוסף מאחסן את תשובתו ב BookmarkName כך ששדות אחרים יכולים להתייחס אליו. לעדכונים של שדות ללא השגחה, ספק תשובות תכנותית במקום לבקש באופן אינטראקטיבי; ראה את מדריך השדות לממשק ה-callback שעושה זאת.


שלב 7: הפנייה לתוכן חיצוני או מקושר

FieldDde (DDE) ו-FieldDdeAuto (DDEAUTO) מקשרים לתוכן ביישום אחר דרך ProgId, SourceFullName ו-SourceItem, כאשר InsertAsText, InsertAsHtml, InsertAsPicture, InsertAsRtf, InsertAsUnicode ו-InsertAsBitmap בוחרים את הייצוג שהוכנס, ו-AutoUpdate / IsLinked שולטים בהתנהגות הרענון. FieldLink (LINK) הוא המקביל לקישור OLE, מוסיף FormatUpdateType. FieldImport (IMPORT) ו-FieldIncludePicture (INCLUDEPICTURE) מושכים גרפיקה חיצונית דרך SourceFullName ו-GraphicFilter. FieldInclude (INCLUDE) ו-FieldIncludeText (INCLUDETEXT) מושכים תוכן מסמך חיצוני, עם BookmarkName להגדרת טווח ההכללה ו-LockFields למניעת רענון; FieldIncludeText תומך בנוסף במקורות XML דרך Encoding, MimeType, NamespaceMappings, XPath ו-XslTransformation.


שלב 8: הפנייה לחסימות בנייה ולרשומות מילון

FieldAutoText (AUTOTEXT), FieldAutoTextList (AUTOTEXTLIST) ו-FieldGlossary (GLOSSARY) מתייחסים כולם לרשומת חסימת-בנייה בשם דרך EntryName; FieldAutoTextList מוסיף ListStyle ו-ScreenTip להצגת סגנון רשימה.


שלב 9: הוספת שדות ציטוט וביבליוגרפיה

FieldCitation (CITATION) ו FieldBibliography (BIBLIOGRAPHY) מציג תוכן שנלקח מנתוני הביבליוגרפיה של המסמך. הגדר FieldCitation.SourceTag (או את החלופי AnotherSourceTag) כדי לזהות איזה מקור הוא מצטט, ולהשתמש Prefix, Suffix, PageNumber, VolumeNumber, ואת ה Suppress* דגלים (SuppressAuthor, SuppressTitle, SuppressYear) כדי לשלוט באופן שבו הציטוט מעוצב. FieldBibliography.SourceTag, FilterLanguageId, ו FormatLanguageId שולט באילו מקורות מופיעים בביבליוגרפיה המוצגת ובאיזו שפה. שדות אלה מציגים כראוי רק לאחר התאמה Source קיימים רשומות – ראה את מדריך הביבליוגרפיה ליצירתן.

בעיות נפוצות ופתרונות

שדה REF, PAGEREF או NOTEREF מציג תוצאה של שגיאה ה BookmarkName היעד שלו אינו קיים במסמך. צור את הסימנייה עם DocumentBuilder.StartBookmark() / EndBookmark() לפני עדכון השדה.

שדה ASK או FILLIN חוסם עדכון בלתי מפוקח לא הוקצה callback לספק תשובה באופן תכנותי. הקצה את ה-callback של עדכון השדה המתואר ב- מדריך השדות, או הגדר DefaultResponse ב-שדה כך שיש לו ערך fallback.

השדה CITATION או BIBLIOGRAPHY מוצג ריק הה SourceTag אינו תואם לכל Source בנתוני הביבליוגרפיה של המסמך. הוסף את ההתאמה Source – ראה את מדריך ביבליוגרפיה.

שדה DDE, DDEAUTO או LINK אינו מתרענן שדות אלו מתייחסים למקור OLE חיצוני שאינו זמין מחוץ להקשר המקורי של Windows/OLE. יש להתייחס לתוצאה השמורה של השדה כערך האחרון הידוע במצב זה.

קישור שהוכנס באמצעות InsertHyperlink חסר בו תכונה שאני צריך DocumentBuilder.InsertHyperlink() הוא קיצור דרך שאינו חושף כל FieldHyperlink תכונה. בנה או החזר את FieldHyperlink ישירות כדי להגדיר תכונות כגון ScreenTip or IsImageMap.

שאלות נפוצות

מה ההבדל בין FieldRef ל-FieldStyleRef?

FieldRef מתייחס לתוכן בסימנייה בשם (BookmarkName); FieldStyleRef מתייחס במקום זאת לפסקה הקרובה ביותר המפורמטת עם StyleName נתון, ללא תלות בסימניות.

איך אני מוסיף קישור פשוט בלי לבנות Field ידנית?

קרא DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark).

האם מחלקות השדה של link ו-reference נמצאות במרחב שמות נפרד משאר השדות?

לא – FieldHyperlink, FieldRef, FieldCitation, ושאר המחלקות שמוזכרות כאן הן תתי-מחלקות רגילות של Field במרחב השמות Aspose.Words.Fields, אותו מרחב שמות המשמש לכל סוג אחר של field.

איך citation fields מתייחסים למודל הנתונים של הביבליוגרפיה?

FieldCitation and FieldBibliography להציג תוכן על ידי חיפוש SourceTag נגד Source רשומות המתוארות ב- מדריך ביבליוגרפיה – מחלקות השדה האלה מטפלות בהצגה, בעוד ה- Source and Contributor מחלקות מחזיקות בנתונים הבסיסיים.

איך אני יוצר סימנייה לפני שאני מפנה אליה?

קרא DocumentBuilder.StartBookmark(bookmarkName) לפני התוכן, ו-DocumentBuilder.EndBookmark(bookmarkName) אחריו, תוך שימוש באותו שם לשתי הקריאות.

ראה גם

 עברית