Informace o dokumentu

Informace o dokumentu

Tento průvodce ukazuje, jak číst a zapisovat metadata dokumentu pomocí Aspose.Words FOSS pro .NET. Každý načtený nebo nově vytvořený Document obsahuje dva typy metadat vedle svého obsahu: pevnou sadu vestavěných vlastností (autor, název, počet slov a podobně) a otevřenou sadu vlastních vlastností, které si můžete definovat sami. Aspose.Words FOSS pro .NET také implementuje pole Word, která zobrazují tato metadata uvnitř těla dokumentu — AUTHOR, COMMENTS a DOCPROPERTY — takže hodnoty vlastností se mohou objevit jako živý, aktualizovatelný text.


Vestavěné vlastnosti dokumentu

Document.BuiltInDocumentProperties vrací kolekci BuiltInDocumentProperties s jednou vlastností pro každé standardní pole metadata Word: Author, Title, Subject, Comments, Category, Company, Manager, Keywords, CreatedTime, LastSavedTime, LastSavedBy, LastPrinted, RevisionNumber, TotalEditingTime a statistiky jako Pages, Words, Characters, CharactersWithSpaces, Paragraphs a Lines. Protože BuiltInDocumentProperties je odvozen od DocumentPropertyCollection, podporuje také vyhledávání podle názvu pomocí svého indexeru, Contains(), IndexOf() a enumeraci přes GetEnumerator(). Stejná kolekce je vystavena na PlainTextDocument.BuiltInDocumentProperties při práci s prostým textovým vstupem.


Vlastní vlastnosti dokumentu

Document.CustomDocumentProperties vrací kolekci CustomDocumentProperties pro vlastnosti, které aplikace definuje sama — libovolné páry název/hodnota, které Word ukládá vedle vestavěné sady. Přidejte vlastnost pomocí Add(name, value), který je přetížen napříč CustomDocumentProperties pro typy hodnot, které může vlastnost obsahovat; získáte ji podle názvu pomocí indexeru, např. properties[name]; a odstraňujete položky pomocí Remove(name), RemoveAt(index) nebo Clear(). AddLinkToContent(name, linkSource) vytvoří vlastnost, jejíž hodnota je spojena se záložkou nebo oblastí uvnitř dokumentu místo uložení jako pevná hodnota.

Každý záznam v kterékoliv kolekci — vestavěné nebo vlastní — je DocumentProperty, který vystavuje Name, Value a Type (hodnota PropertyType: String, Number, Double, Boolean, DateTime, StringArray, ObjectArray, ByteArray nebo Other), plus IsLinkToContent a LinkSource pro propojené vlastnosti. DocumentProperty poskytuje pomocné funkce pro konverzi, jako jsou ToString(), ToInt(), ToDouble(), ToDateTime(), ToBool() a ToByteArray() pro získání podkladové hodnoty v požadovaném typu .NET.


Pole informací o dokumentu

Tři podtřídy Field zpřístupňují metadata dokumentu jako pole uvnitř samotného těla dokumentu: FieldAuthor (pole AUTHOR s AuthorName vlastností), FieldComments (pole COMMENTS s Text vlastností), a FieldDocProperty (pole DOCPROPERTY, které načte pojmenovanou vlastnost dokumentu — vestavěnou nebo vlastní — do dokumentu). Stejně jako každé Field, tyto tři sdílejí základní životní cyklus Field: GetFieldCode() pro načtení podkladového kódu pole, Result / DisplayResult pro načtení poslední vypočtené hodnoty, Update() pro přepočet hodnoty, Unlink() pro nahrazení pole jeho statickým výsledkem a Remove() pro jeho smazání. Vložte pole s informacemi o dokumentu pomocí DocumentBuilder.InsertField(fieldCode) — například kód pole AUTHOR nebo DOCPROPERTY "Company" — nebo pomocí přetížení InsertField(fieldType, updateField) s hodnotou FieldType, jako je FieldType.FieldAuthor, FieldType.FieldComments nebo FieldType.FieldDocProperty.

Protože FieldDocProperty čte jakoukoli vlastnost dokumentu, ke které je svázáno, změna podkladové hodnoty BuiltInDocumentProperties nebo CustomDocumentProperties a následné volání Update() — nebo Document.UpdateFields() pro obnovení všech polí v dokumentu najednou — přenese novou hodnotu do zobrazeného výsledku pole.


Tipy a osvědčené postupy

  • Nastavte vestavěné vlastnosti, jako jsou Title, Author a Subject, před uložením — Word a další aplikace je čtou z BuiltInDocumentProperties pro výpisy dokumentů a indexování vyhledávání.
  • Použijte DocumentProperty.Type ke kontrole PropertyType vlastnosti před voláním konkrétního konverzního pomocníka (ToInt(), ToDateTime() atd.), abyste se vyhnuli nesouladu konverze u vlastnosti, kterou jste nevytvořili sami.
  • AddLinkToContent() udržuje vlastní vlastnost synchronizovanou s obsahem dokumentu (např. s oblastí označenou záložkou) místo pevné hodnoty — použijte ji, když má vlastnost vždy odrážet to, co je momentálně v dokumentu.
  • Zavolejte Document.UpdateFields() po změně vlastností dokumentu, aby jakákoli pole FieldDocProperty, FieldAuthor nebo FieldComments, která jsou již v těle dokumentu, převzala nové hodnoty.
  • BuiltInDocumentProperties a CustomDocumentProperties jsou oba dostupné na PlainTextDocument i na Document, takže metadata se přenášejí i v případě, že načtený obsah je prostý text.

Časté problémy

ProblémPříčinaOprava
Indexér vrací null pro vlastní vlastnostVlastnost ještě nebyla přidánaNejprve zavolejte CustomDocumentProperties.Add(name, value) nebo před čtením zkontrolujte Contains(name)
FieldDocProperty zobrazuje zastaralou hodnotu po změně vlastnostiPole nebylo aktualizovánoZavolejte Update() na pole, nebo Document.UpdateFields() pro obnovení každého pole v dokumentu
DocumentProperty.ToInt() / ToDateTime() vyhazujeSkutečná Type vlastnosti neodpovídá požadované konverziZkontrolujte DocumentProperty.Type před výběrem, který konverzní pomocník zavolat

FAQ

Jaký je rozdíl mezi vestavěnými a vlastními vlastnostmi dokumentu?

Vestavěné vlastnosti (Document.BuiltInDocumentProperties) jsou pevná sada definovaná formátem OOXML — Author, Title, Pages a podobně. Vlastní vlastnosti (Document.CustomDocumentProperties) jsou otevřená, aplikací definovaná sada dvojic název/hodnota přidaná pomocí Add().

Jak mohu nastavit vlastní vlastnost tak, aby sledovala obsah dokumentu místo pevné hodnoty?

Použijte CustomDocumentProperties.AddLinkToContent(name, linkSource), který propojí hodnotu vlastnosti se záložkou nebo rozsahem v dokumentu místo uložení statické hodnoty.

Aktualizuje se při změně vlastnosti dokumentu automaticky i pole, která ji zobrazují?

Ne — volejte Update() na konkrétním poli nebo Document.UpdateFields() pro přepočítání každého pole v dokumentu, včetně výskytů FieldDocProperty, FieldAuthor a FieldComments.

Mohu číst vlastnosti dokumentu z prostého textového dokumentu?

Ano. PlainTextDocument poskytuje stejné BuiltInDocumentProperties a CustomDocumentProperties vlastnosti jako Document.


API Reference Shrnutí

Třída / MetodaPopis:
Document.BuiltInDocumentPropertiesStandardní sbírka metadat OOXML (Author, Title, Pages, atd.)
Document.CustomDocumentPropertiesKolekce vlastností název/hodnota definovaná aplikací
CustomDocumentProperties.Add() / indexer podle názvu / AddLinkToContent()Přidat, získat nebo vytvořit obsahový odkaz na vlastní vlastnost
DocumentPropertyJednotlivý vstup vlastnosti; Value, Type a ToString()/ToInt()/ToDouble()/ToDateTime()/ToBool()/ToByteArray() pomocníci převodu
FieldAuthor / FieldComments / FieldDocPropertyAUTHOR, COMMENTS a DOCPROPERTY pole; Update(), Result, GetFieldCode()
DocumentBuilder.InsertField()Vloží pole pomocí kódu pole nebo FieldType

Viz také:

 Čeština