Documentinformatie

Documentinformatie

Documentinformatie

Deze gids laat zien hoe je documentmetadata kunt lezen en schrijven met Aspose.Words FOSS voor .NET. Elke geladen of nieuw aangemaakt Document bevat twee soorten metadata naast de inhoud: een vaste set ingebouwde eigenschappen (auteur, titel, woordtelling en soortgelijke) en een open-eindige set aangepaste eigenschappen die je zelf definieert. Aspose.Words FOSS voor .NET implementeert ook de Word-velden die deze metadata in de documentbody zichtbaar maken — AUTHOR, COMMENTS en DOCPROPERTY — zodat eigenschapswaarden kunnen verschijnen als live, bij te werken tekst.


Ingebouwde documenteigenschappen

Document.BuiltInDocumentProperties retourneert een BuiltInDocumentProperties collectie met één eigenschap voor elk standaard Word-metadata-veld: Author, Title, Subject, Comments, Category, Company, Manager, Keywords, CreatedTime, LastSavedTime, LastSavedBy, LastPrinted, RevisionNumber, TotalEditingTime en statistieken zoals Pages, Words, Characters, CharactersWithSpaces, Paragraphs en Lines. Omdat BuiltInDocumentProperties afgeleid is van DocumentPropertyCollection, ondersteunt het ook opzoeken op naam via zijn indexeur, Contains(), IndexOf() en enumeratie via GetEnumerator(). Dezelfde collectie wordt blootgesteld op PlainTextDocument.BuiltInDocumentProperties bij het werken met platte-tekst invoer.


Aangepaste documenteigenschappen

Document.CustomDocumentProperties retourneert een CustomDocumentProperties collectie voor eigenschappen die een toepassing zelf definieert — willekeurige naam/waarde-paren die Word opslaat naast de ingebouwde set. Voeg een eigenschap toe met Add(name, value), die overbelast is over CustomDocumentProperties voor de waardetypen die een eigenschap kan bevatten; haal er een op naam op met de indexeur, bijv. properties[name]; en verwijder items met Remove(name), RemoveAt(index) of Clear(). AddLinkToContent(name, linkSource) maakt een eigenschap aan waarvan de waarde gekoppeld is aan een bladwijzer of bereik binnen het document in plaats van opgeslagen te worden als een vaste waarde.

Elke invoer in beide collecties — ingebouwd of aangepast — is een DocumentProperty, die Name, Value en Type blootlegt (een PropertyType waarde: String, Number, Double, Boolean, DateTime, StringArray, ObjectArray, ByteArray of Other), plus IsLinkToContent en LinkSource voor gekoppelde eigenschappen. DocumentProperty biedt conversiehulpstukken zoals ToString(), ToInt(), ToDouble(), ToDateTime(), ToBool() en ToByteArray() voor het ophalen van de onderliggende waarde in het gewenste .NET type.


Documentinformatievelden

Drie Field subklassen exposeren documentmetadata als velden binnen het document zelf: FieldAuthor (het AUTHOR veld, met een AuthorName eigenschap), FieldComments (het COMMENTS veld, met een Text eigenschap), en FieldDocProperty (het DOCPROPERTY veld, dat een benoemde documenteigenschap — ingebouwd of aangepast — in het document leest). Net als elke Field delen deze drie de basis Field levenscyclus: GetFieldCode() om de onderliggende veldcode te lezen, Result / DisplayResult om de laatst berekende waarde te lezen, Update() om de waarde opnieuw te berekenen, Unlink() om het veld te vervangen door het statische resultaat, en Remove() om het te verwijderen. Voeg een document-informatieveld in met DocumentBuilder.InsertField(fieldCode) — bijvoorbeeld een veldcode van AUTHOR of DOCPROPERTY "Company" — of met de InsertField(fieldType, updateField) overload met een FieldType waarde zoals FieldType.FieldAuthor, FieldType.FieldComments of FieldType.FieldDocProperty.

Omdat FieldDocProperty leest welke documenteigenschap het ook bindt, zorgt het wijzigen van de onderliggende BuiltInDocumentProperties of CustomDocumentProperties waarde en vervolgens het aanroepen van Update() — of Document.UpdateFields() om elk veld in het document in één keer te vernieuwen — ervoor dat de nieuwe waarde wordt doorgevoerd in het weergegeven resultaat van het veld.


Tips en best practices

  • Stel ingebouwde eigenschappen in, zoals Title, Author en Subject, vóór het opslaan — Word en andere consumenten lezen deze vanuit BuiltInDocumentProperties voor documentlijsten en zoekindexering.
  • Gebruik DocumentProperty.Type om de PropertyType van een eigenschap te controleren voordat je een specifieke conversiehulp (ToInt(), ToDateTime(), enz.) aanroept, om een conversie-mismatch te voorkomen op een eigenschap die je zelf niet hebt aangemaakt.
  • AddLinkToContent() houdt een aangepaste eigenschap gesynchroniseerd met de documentinhoud (bijvoorbeeld een bladwijzerbereik) in plaats van een vaste waarde — gebruik het wanneer de eigenschap altijd moet weergeven wat zich momenteel in het document bevindt.
  • Roep Document.UpdateFields() aan na het wijzigen van documenteigenschappen zodat eventuele FieldDocProperty, FieldAuthor of FieldComments velden die al in de documenttekst staan, de nieuwe waarden oppikken.
  • BuiltInDocumentProperties en CustomDocumentProperties zijn beide beschikbaar op PlainTextDocument evenals op Document, zodat metadata wordt doorgegeven zelfs wanneer de geladen inhoud platte tekst is.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
De indexeerder retourneert null voor een aangepaste eigenschapDe eigenschap is nog niet toegevoegdRoep CustomDocumentProperties.Add(name, value) eerst aan, of controleer Contains(name) voordat u leest
FieldDocProperty toont een verouderde waarde na het wijzigen van een eigenschapHet veld is niet ververstRoep Update() aan op het veld, of Document.UpdateFields() om elk veld in het document te vernieuwen
DocumentProperty.ToInt() / ToDateTime() gooitDe daadwerkelijke Type van de eigenschap komt niet overeen met de gevraagde conversieControleer DocumentProperty.Type voordat je kiest welke conversiehulp je aanroept

FAQ

Wat is het verschil tussen ingebouwde en aangepaste documenteigenschappen?

Ingebouwde eigenschappen (Document.BuiltInDocumentProperties) vormen een vaste set gedefinieerd door het OOXML-formaat — Author, Title, Pages, en soortgelijke. Aangepaste eigenschappen (Document.CustomDocumentProperties) zijn een open-eindige, door de applicatie gedefinieerde set van naam/waarde-paren toegevoegd met Add().

Hoe kan ik een aangepaste eigenschap laten volgen wat er in het document staat in plaats van een vaste waarde?

Gebruik CustomDocumentProperties.AddLinkToContent(name, linkSource), die de waarde van de eigenschap koppelt aan een bladwijzer of bereik in het document in plaats van een statische waarde op te slaan.

Wordt een documenteigenschap bijwerken automatisch doorgevoerd in velden die deze weergeven?

Nee — roep Update() aan op het specifieke veld of Document.UpdateFields() om elk veld in het document opnieuw te berekenen, inclusief FieldDocProperty, FieldAuthor en FieldComments instanties.

Kan ik documenteigenschappen lezen uit een platte-tekstdocument?

Ja. PlainTextDocument maakt dezelfde BuiltInDocumentProperties en CustomDocumentProperties eigenschappen beschikbaar als Document.


API Reference Samenvatting

Klasse / MethodeBeschrijving
Document.BuiltInDocumentPropertiesStandaard OOXML-metadataverzameling (Author, Title, Pages, enz.)
Document.CustomDocumentPropertiesDoor de applicatie gedefinieerde naam/waarde-eigenschapcollectie
CustomDocumentProperties.Add() / indexeerder op naam / AddLinkToContent()Een aangepaste eigenschap toevoegen, ophalen of inhoudskoppelen
DocumentPropertyEnkele eigenschapvermelding; Value, Type, en ToString()/ToInt()/ToDouble()/ToDateTime()/ToBool()/ToByteArray() conversiehulpjes
FieldAuthor / FieldComments / FieldDocPropertyAUTHOR, COMMENTS, en DOCPROPERTY velden; Update(), Result, GetFieldCode()
DocumentBuilder.InsertField()Voegt een veld in via veldcode of FieldType

Zie ook

 Nederlands