Jak pracovat s odkazy a referencemi Wordu v .NET
Tento průvodce ukazuje, jak vložit hypertextové odkazy, křížové odkazy na záložky, pole s výzvou k zadání hodnoty a citační pole v Aspose.Words FOSS pro .NET, používající FieldHyperlink, FieldRef, FieldPageRef, FieldCitation, a ostatní odkazy a reference Field subtřídy v Aspose.Words.Fields jmenném prostoru. Pokrývá vložení jednoduchého hypertextového odkazu, vytvoření záložek a jejich křížové odkazy, výzvu k zadání hodnot během aktualizace pole a citování zdrojů v bibliografii.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
Aspose.Words FOSS pro .NET zatím nepublikuje balíček NuGet – místo toho sestavte knihovnu ze zdrojového kódu. Klonujte https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, poté sestavte Aspose.Words.sln v konfiguraci Release pomocí SDK .NET a odkažte na vzniklý sestavení Aspose.Words ve svém projektu. Knihovna cílí na .NET Standard 2.0, takže běží na .NET Framework 4.6.2+ a .NET 6/8/10.
Krok 2: Importujte požadované třídy
Přidejte direktivu using Aspose.Words; pro Document a DocumentBuilder a direktivu using Aspose.Words.Fields; pro FieldHyperlink, FieldRef, FieldPageRef, FieldNoteRef, FieldStyleRef, FieldSet, FieldAsk, FieldFillIn, FieldCitation, FieldBibliography a ostatní třídy polí, které tento průvodce pokrývá.
Krok 3: Vložte hyperodkaz
Pro jednoduchý hyperodkaz zavolejte DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark) – předáte isBookmark: false pro cílovou URL nebo true pro odkaz na záložku ve stejném dokumentu. Přepněte na přímé vytvoření FieldHyperlink, pokud jsou potřeba vlastnosti, které zkratka neodhaluje: Address a SubAddress obsahují cílovou URL nebo umístění v dokumentu, ScreenTip nastavuje tooltip při najetí, OpenInNewWindow a IsImageMap jsou příznaky zobrazení a Target pojmenovává rám prohlížeče.
Krok 4: Vytvořte záložku pro odkaz
Zavolejte DocumentBuilder.StartBookmark(bookmarkName) před obsahem, který má záložka zahrnovat, a DocumentBuilder.EndBookmark(bookmarkName) po něm, přičemž použijte stejný název pro oba volání. DocumentBuilder.MoveToBookmark(bookmarkName) přesune kurzor na již existující záložku – užitečné pro navigaci na místo před vložením pole křížové reference poblíž.
Krok 5: Vložte křížovou referenci na tuto záložku
FieldRef (pole REF), FieldPageRef (PAGEREF) a FieldNoteRef (NOTEREF) každé získává obsah z pojmenované záložky pomocí jejich vlastnosti BookmarkName. Nastavte InsertHyperlink, aby byla reference klikací, a InsertRelativePosition, aby uváděla relativní pozici („nad“ / „pod“) místo samotného odkazovaného textu. FieldRef také podporuje možnosti číslování odstavců – InsertParagraphNumber, InsertParagraphNumberInFullContext, InsertParagraphNumberInRelativeContext, NumberSeparator – a IncludeNoteOrComment. FieldStyleRef (STYLEREF) získává nejbližší odstavec formátovaný daným StyleName místo záložky, s SearchFromBottom pro hledání zpětně od pozice pole. FieldSet (SET) definuje hodnotu textu v záložce – BookmarkName a BookmarkText – kterou může na jiném místě vyhodnotit pole REF.
Krok 6: Vyžádejte si hodnotu během aktualizace
FieldAsk (ASK) a FieldFillIn (FILLIN) požádá o hodnotu toho, kdo pole aktualizuje: nastavit PromptText k textu zobrazenému uživateli, DefaultResponse pro náhradní hodnotu a PromptOnceOnMailMerge pro omezení opakovaného dotazování během hromadné korespondence. FieldAsk navíc ukládá svou odpověď na BookmarkName aby na ni mohly odkazovat ostatní pole. Pro nehlášené aktualizace polí poskytujte odpovědi programově místo interaktivního dotazování; viz průvodce polí pro rozhraní zpětného volání, které to provádí.
Krok 7: Odkaz na externí nebo propojený obsah
FieldDde (DDE) a FieldDdeAuto (DDEAUTO) odkazují na obsah v jiné aplikaci přes ProgId, SourceFullName a SourceItem, přičemž InsertAsText, InsertAsHtml, InsertAsPicture, InsertAsRtf, InsertAsUnicode a InsertAsBitmap vybírají vloženou reprezentaci a AutoUpdate / IsLinked řídí chování obnovy. FieldLink (LINK) je ekvivalent OLE-linku, přidávající FormatUpdateType. FieldImport (IMPORT) a FieldIncludePicture (INCLUDEPICTURE) načítají externí grafiku přes SourceFullName a GraphicFilter. FieldInclude (INCLUDE) a FieldIncludeText (INCLUDETEXT) načítají externí obsah dokumentu, přičemž BookmarkName určuje rozsah zahrnutého úseku a LockFields zabraňuje jeho obnovení; FieldIncludeText také podporuje zdroje XML prostřednictvím Encoding, MimeType, NamespaceMappings, XPath a XslTransformation.
Krok 8: Odkaz na stavební bloky a položky glosáře
FieldAutoText (AUTOTEXT), FieldAutoTextList (AUTOTEXTLIST) a FieldGlossary (GLOSSARY) všechny odkazují na pojmenovanou položku stavebního bloku prostřednictvím EntryName; FieldAutoTextList přidává ListStyle a ScreenTip pro jeho seznamový styl.
Krok 9: Vložit pole citace a bibliografie
FieldCitation (CITATION) a FieldBibliography (BIBLIOGRAPHY) vykreslit obsah čerpaný z bibliografických dat dokumentu. Nastavit FieldCitation.SourceTag (nebo alternativní AnotherSourceTag) identifikovat, který zdroj cituje, a použít Prefix, Suffix, PageNumber, VolumeNumber, a Suppress* příznaky (SuppressAuthor, SuppressTitle, SuppressYear) k řízení toho, jak je citace formátována. FieldBibliography.SourceTag, FilterLanguageId, a FormatLanguageId řídí, které zdroje se objeví ve vykreslené bibliografii a v jakém jazyce. Tato pole se vykreslí správně až poté, co existuje odpovídající Source záznamy existují – viz průvodce bibliografií pro jejich vytvoření.
Běžné problémy a opravy
Pole REF, PAGEREF nebo NOTEREF zobrazuje chybový výsledek Ten BookmarkName cíl, na který cílí, neexistuje v dokumentu. Vytvořte záložku s DocumentBuilder.StartBookmark() / EndBookmark() před aktualizací pole.
ASK nebo FILLIN pole blokuje nehlídanou aktualizaci Žádný zpětný volání není přiřazeno k programovému poskytnutí odpovědi. Přiřaďte zpětné volání aktualizace pole popsané v průvodci polí, nebo nastavit DefaultResponse na pole, aby mělo náhradní hodnotu.
Pole CITATION nebo BIBLIOGRAPHY je prázdné Ten SourceTag neodpovídá žádnému Source v datech bibliografie dokumentu. Přidejte odpovídající Source – viz průvodce bibliografií.
Pole DDE, DDEAUTO nebo LINK se neobnovuje Tato pole odkazují na externí zdroj OLE, který není k dispozici mimo původní kontext Windows/OLE. Považujte uložený výsledek pole za poslední známou hodnotu v takové situaci.
Hyperlink vložený pomocí InsertHyperlink postrádá vlastnost, kterou potřebuji DocumentBuilder.InsertHyperlink() je zkratka, která neodhaluje všechny FieldHyperlink vlastnost. Vytvořte nebo načtěte FieldHyperlink přímo pro nastavení vlastností, jako jsou ScreenTip or IsImageMap.
Často kladené otázky
Jaký je rozdíl mezi FieldRef a FieldStyleRef?
FieldRef odkazuje na obsah v pojmenované záložce (BookmarkName); FieldStyleRef naproti tomu odkazuje na nejbližší odstavec formátovaný daným StyleName, nezávisle na záložkách.
Jak vložit jednoduchý hyperodkaz, aniž bych vytvářel pole ručně?
Zavolejte DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark).
Jsou tyto třídy polí odkazu a reference v samostatném jmenném prostoru od ostatních polí?
Ne – FieldHyperlink, FieldRef, FieldCitation a ostatní třídy zde popsané jsou běžné podtřídy Field v jmenném prostoru Aspose.Words.Fields, stejném jmenném prostoru používaném pro každý jiný typ pole.
Jak souvisejí pole citací s modelem dat bibliografie?
FieldCitation and FieldBibliography vykreslit obsah vyhledáním SourceTag proti Source záznamy popsané v průvodci bibliografií – tyto třídy polí zajišťují vykreslování, zatímco Source and Contributor třídy obsahují podkladová data.
Jak vytvořit záložku před tím, než na ni odkažu?
Zavolejte DocumentBuilder.StartBookmark(bookmarkName) před obsahem a DocumentBuilder.EndBookmark(bookmarkName) po něm, přičemž použijte stejný název pro oba volání.