Wie man mit Word-Links und Referenzen in .NET arbeitet

Wie man mit Word-Links und Referenzen in .NET arbeitet

Dieser Leitfaden zeigt, wie man Hyperlinks, Querverweise zu Lesezeichen, Eingabefelder mit Aufforderungswerten und Zitationsfelder einfügt in Aspose.Words FOSS für .NET, unter Verwendung von FieldHyperlink, FieldRef, FieldPageRef, FieldCitation, und die anderen Link- und Referenz Field Unterklassen im Aspose.Words.Fields Namensraum. Er behandelt das Einfügen eines einfachen Hyperlinks, das Erstellen von Lesezeichen und das Verweisen darauf, das Abfragen von Werten während einer Feldaktualisierung und das Zitieren von Literaturquellen.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

Aspose.Words FOSS für .NET veröffentlicht noch kein NuGet-Paket – bauen Sie stattdessen die Bibliothek aus dem Quellcode. Klonen Sie https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, bauen Sie dann Aspose.Words.sln in Release-Konfiguration mit dem .NET SDK und binden Sie die resultierende Aspose.Words-Assembly in Ihr Projekt ein. Die Bibliothek zielt auf .NET Standard 2.0 ab, sodass sie auf .NET Framework 4.6.2+ und .NET 6/8/10 läuft.


Schritt 2: Erforderliche Klassen importieren

Fügen Sie eine using Aspose.Words;-Direktive für Document und DocumentBuilder hinzu und eine using Aspose.Words.Fields;-Direktive für FieldHyperlink, FieldRef, FieldPageRef, FieldNoteRef, FieldStyleRef, FieldSet, FieldAsk, FieldFillIn, FieldCitation, FieldBibliography sowie die anderen Feldklassen hinzu, die in diesem Leitfaden behandelt werden.


Schritt 3: Hyperlink einfügen

Für einen einfachen Hyperlink rufen Sie DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark) auf – übergeben Sie isBookmark: false für ein URL-Ziel oder true, um zu einem Lesezeichen im selben Dokument zu verlinken. Greifen Sie zu einer direkten Erstellung eines FieldHyperlink, wenn Eigenschaften, die die Verknüpfung nicht bereitstellt, benötigt werden: Address und SubAddress enthalten die Ziel-URL bzw. die Position im Dokument, ScreenTip legt den Tooltip beim Überfahren fest, OpenInNewWindow und IsImageMap sind Anzeige-Flags und Target bezeichnet einen Browser-Frame.


Schritt 4: Lesezeichen zum Verweisen erstellen

Rufen Sie DocumentBuilder.StartBookmark(bookmarkName) vor dem Inhalt auf, den das Lesezeichen abdecken soll, und DocumentBuilder.EndBookmark(bookmarkName) danach, wobei Sie für beide Aufrufe denselben Namen verwenden. DocumentBuilder.MoveToBookmark(bookmarkName) bewegt den Cursor zu einem bereits vorhandenen Lesezeichen – nützlich, um zu einer Position zu navigieren, bevor ein Querverweis-Feld in deren Nähe eingefügt wird.


Schritt 5: Querverweis auf dieses Lesezeichen einfügen

FieldRef (das REF-Feld), FieldPageRef (PAGEREF) und FieldNoteRef (NOTEREF) verweisen jeweils über ihre BookmarkName-Eigenschaft auf den Inhalt eines benannten Lesezeichens. Setzen Sie InsertHyperlink, um den Verweis anklickbar zu machen, und InsertRelativePosition, um eine relative Position („oben“ / „unten“) anstelle des referenzierten Textes selbst auszugeben. FieldRef unterstützt zudem Absatznummerierungsoptionen – InsertParagraphNumber, InsertParagraphNumberInFullContext, InsertParagraphNumberInRelativeContext, NumberSeparator – und IncludeNoteOrComment. FieldStyleRef (STYLEREF) löst den nächsten Absatz auf, der mit einem angegebenen StyleName formatiert ist, anstatt eines Lesezeichens, wobei SearchFromBottom die Rückwärtssuche ab der Feldposition ermöglicht. FieldSet (SET) definiert einen als Lesezeichen gespeicherten Textwert – BookmarkName und BookmarkText – den ein REF-Feld an anderer Stelle auflösen kann.


Schritt 6: Beim Aktualisieren nach einem Wert fragen

FieldAsk (ASK) und FieldFillIn (FILLIN) fordert einen Wert von der Person, die das Feld aktualisiert, an: set PromptText zum Text, der dem Benutzer angezeigt wird, DefaultResponse für einen Ausweichwert, und PromptOnceOnMailMerge um wiederholte Eingabeaufforderungen während eines Serienbriefs zu begrenzen. FieldAsk speichert seine Antwort zusätzlich unter BookmarkName damit andere Felder darauf verweisen können. Für unbeaufsichtigte Feldaktualisierungen sollten Antworten programmgesteuert bereitgestellt werden, anstatt interaktiv abzufragen; siehe die Felder-Leitfaden für die Callback-Schnittstelle, die dies erledigt.


Schritt 7: Externen oder verlinkten Inhalt referenzieren

FieldDde (DDE) und FieldDdeAuto (DDEAUTO) verlinken zu Inhalten in einer anderen Anwendung über ProgId, SourceFullName und SourceItem, wobei InsertAsText, InsertAsHtml, InsertAsPicture, InsertAsRtf, InsertAsUnicode und InsertAsBitmap die eingefügte Darstellung auswählen, und AutoUpdate / IsLinked das Aktualisierungsverhalten steuern. FieldLink (LINK) ist das OLE-Link-Äquivalent und fügt FormatUpdateType hinzu. FieldImport (IMPORT) und FieldIncludePicture (INCLUDEPICTURE) ziehen eine externe Grafik über SourceFullName und GraphicFilter ein. FieldInclude (INCLUDE) und FieldIncludeText (INCLUDETEXT) ziehen externen Dokumentinhalt ein, wobei BookmarkName den einzuschließenden Bereich definiert und LockFields verhindert, dass er aktualisiert wird; FieldIncludeText unterstützt zudem XML-Quellen über Encoding, MimeType, NamespaceMappings, XPath und XslTransformation.


Schritt 8: Bausteine und Glossareinträge referenzieren

FieldAutoText (AUTOTEXT), FieldAutoTextList (AUTOTEXTLIST) und FieldGlossary (GLOSSARY) referenzieren alle einen benannten Baustein-Eintrag über EntryName; FieldAutoTextList fügt ListStyle und ScreenTip für seine Listenstil-Präsentation hinzu.


Schritt 9: Zitations- und Bibliografiefelder einfügen

FieldCitation (CITATION) und FieldBibliography (BIBLIOGRAPHY) rendert Inhalte, die aus den Bibliografiedaten des Dokuments stammen. Setzen FieldCitation.SourceTag (oder die alternative AnotherSourceTag) zu ermitteln, welche Quelle zitiert wird, und verwenden Prefix, Suffix, PageNumber, VolumeNumber, und die Suppress* flags (SuppressAuthor, SuppressTitle, SuppressYear) um zu steuern, wie das Zitat formatiert wird. FieldBibliography.SourceTag, FilterLanguageId, und FormatLanguageId steuern, welche Quellen in der gerenderten Bibliografie erscheinen und in welcher Sprache. Diese Felder werden erst korrekt gerendert, sobald die passende Source Datensätze existieren – siehe die Bibliografie-Leitfaden zum Erstellen dieser.

Häufige Probleme und Lösungen

REF-, PAGEREF- oder NOTEREF-Feld zeigt ein Fehlerergebnis an Der BookmarkName sein Ziel existiert nicht im Dokument. Erstelle das Lesezeichen mit DocumentBuilder.StartBookmark() / EndBookmark() bevor das Feld aktualisiert wird.

ASK- oder FILLIN-Feld blockiert ein unbeaufsichtigtes Update Kein Callback ist zugewiesen, um programmgesteuert eine Antwort zu liefern. Weisen Sie den im Feld-Update-Callback beschriebenen Felder-Leitfaden, oder setzen DefaultResponse im Feld, damit es einen Rückfallwert hat.

CITATION- oder BIBLIOGRAPHY-Feld wird leer dargestellt Der SourceTag stimmt mit keinem Source in den Bibliografiedaten des Dokuments. Fügen Sie das passende Source – siehe die Bibliografie-Leitfaden.

DDE-, DDEAUTO- oder LINK-Feld wird nicht aktualisiert Diese Felder verweisen auf eine externe OLE-Quelle, die außerhalb des ursprünglichen Windows/OLE-Kontexts nicht verfügbar ist. Behandeln Sie das gespeicherte Ergebnis des Feldes als den zuletzt bekannten Wert in dieser Situation.

Ein mit InsertHyperlink eingefügter Hyperlink fehlt eine Eigenschaft, die ich benötige DocumentBuilder.InsertHyperlink() ist eine Verknüpfung, die nicht jede FieldHyperlink Eigenschaft. Erstellen oder rufen Sie die FieldHyperlink direkt, um Eigenschaften wie ScreenTip or IsImageMap.

Häufig gestellte Fragen

Was ist der Unterschied zwischen FieldRef und FieldStyleRef?

FieldRef verweist auf Inhalt an einem benannten Lesezeichen (BookmarkName); FieldStyleRef verweist stattdessen auf den nächstgelegenen Absatz, der mit einem bestimmten StyleName formatiert ist, unabhängig von Lesezeichen.

Wie füge ich einen einfachen Hyperlink ein, ohne ein Field von Hand zu erstellen?

Rufen Sie DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark) auf.

Sind diese Link- und Referenzfeldklassen in einem separaten Namensraum von anderen Feldern?

Nein – FieldHyperlink, FieldRef, FieldCitation und die übrigen hier behandelten Klassen sind gewöhnliche Field-Unterklassen im Aspose.Words.Fields-Namensraum, dem gleichen Namensraum, der für jeden anderen Feldtyp verwendet wird.

Wie beziehen sich Zitierfelder auf das Bibliographie-Datenmodell?

FieldCitation and FieldBibliography Inhalt rendern, indem nachgeschlagen wird SourceTag gegen das Source Datensätze, die in der Bibliografie-Leitfaden – diese Feldklassen übernehmen die Darstellung, während die Source and Contributor Klassen enthalten die zugrunde liegenden Daten.

Wie erstelle ich ein Lesezeichen, bevor ich es referenziere?

Rufen Sie DocumentBuilder.StartBookmark(bookmarkName) vor dem Inhalt auf und DocumentBuilder.EndBookmark(bookmarkName) danach, wobei Sie für beide Aufrufe denselben Namen verwenden.

Siehe auch

 Deutsch