Arbeiten Sie mit Dokumenteigenschaften

Dokumenteigenschaften ermöglichen das Speichern einiger nützlicher Informationen zu Ihrem Dokument. Diese Eigenschaften können in zwei Gruppen unterteilt werden:

  • System oder integriert, das Werte wie Dokumenttitel, Autorenname, Dokumentstatistiken und andere enthält.
  • Benutzerdefiniert oder benutzerdefiniert, bereitgestellt als Name-Wert-Paare, wobei der Benutzer sowohl den Namen als auch den Wert definieren kann.

Es ist nützlich zu wissen, dass Informationen zu API und Versionsnummer direkt in Ausgabedokumente geschrieben werden. Beispielsweise füllt Aspose.Words beim Konvertieren eines Dokuments in PDF das Feld “Anwendung” mit “Aspose.Words” und das Feld “PDF-Produzent” mit “Aspose.Words für .NET YY.MN” aus, wobei YY.M.N die für die Konvertierung verwendete Aspose.Words-Version ist. Weitere Einzelheiten finden Sie unter Der Name des Generators oder Produzenten ist in den Ausgabedokumenten enthalten.

Greifen Sie auf die Dokumenteigenschaften zu

Um auf Dokumenteigenschaften in Aspose.Words zuzugreifen, verwenden Sie:

BuiltInDocumentProperties und CustomDocumentProperties sind Sammlungen von DocumentProperty-Objekten. Diese Objekte können über die Indexer-Eigenschaft nach Namen oder Index abgerufen werden.

BuiltInDocumentProperties bietet zusätzlich Zugriff auf Dokumenteigenschaften über eine Reihe eingegebener Eigenschaften, die Werte des entsprechenden Typs zurückgeben. Mit CustomDocumentProperties können Sie Dokumenteigenschaften zu einem Dokument hinzufügen oder daraus entfernen.

Mit der DocumentProperty-Klasse können Sie den Namen, den Wert und den Typ einer Dokumenteigenschaft abrufen. Value gibt ein Objekt zurück, es gibt jedoch eine Reihe von Methoden, mit denen Sie den Eigenschaftswert in einen bestimmten Typ konvertieren können. Nachdem Sie den Typ der Eigenschaft kennengelernt haben, können Sie eine der DocumentProperty.ToXXX-Methoden wie DocumentProperty.ToString und DocumentProperty.ToInt verwenden, um den Wert des entsprechenden Typs abzurufen.

Das folgende Codebeispiel zeigt, wie alle integrierten und benutzerdefinierten Eigenschaften in einem Dokument aufgezählt werden:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
string fileName = dataDir + "Properties.doc";
Document doc = new Document(fileName);
Console.WriteLine("1. Document name: {0}", fileName);
Console.WriteLine("2. Built-in Properties");
foreach (DocumentProperty prop in doc.BuiltInDocumentProperties)
Console.WriteLine("{0} : {1}", prop.Name, prop.Value);
Console.WriteLine("3. Custom Properties");
foreach (DocumentProperty prop in doc.CustomDocumentProperties)
Console.WriteLine("{0} : {1}", prop.Name, prop.Value);

In Microsoft Word können Sie über das Menü “Datei → Eigenschaften” auf die Dokumenteigenschaften zugreifen.

/words/net/work-with-document-properties/work-with-document-properties-1.png

Dokumenteigenschaften hinzufügen oder entfernen

Mit Aspose.Words können Sie keine integrierten Dokumenteigenschaften hinzufügen oder entfernen. Sie können nur deren Werte ändern oder aktualisieren.

Um benutzerdefinierte Dokumenteigenschaften mit Aspose.Words hinzuzufügen, verwenden Sie die Add-Methode und übergeben den neuen Eigenschaftsnamen und den Wert des entsprechenden Typs. Die Methode gibt das neu erstellte DocumentProperty-Objekt zurück.

Um benutzerdefinierte Eigenschaften zu entfernen, verwenden Sie die Remove-Methode, indem Sie ihr den zu entfernenden Eigenschaftsnamen übergeben, oder die RemoveAt-Methode, um die Eigenschaft nach Index zu entfernen. Sie können alle Eigenschaften auch mithilfe der Clear-Methode entfernen.

Das folgende Codebeispiel prüft, ob eine benutzerdefinierte Eigenschaft mit einem bestimmten Namen in einem Dokument vorhanden ist, und fügt einige weitere benutzerdefinierte Dokumenteigenschaften hinzu:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "Properties.doc");
CustomDocumentProperties props = doc.CustomDocumentProperties;
if (props["Authorized"] == null)
{
props.Add("Authorized", true);
props.Add("Authorized By", "John Smith");
props.Add("Authorized Date", DateTime.Today);
props.Add("Authorized Revision", doc.BuiltInDocumentProperties.RevisionNumber);
props.Add("Authorized Amount", 123.45);
}

Das folgende Codebeispiel zeigt, wie eine benutzerdefinierte Dokumenteigenschaft entfernt wird:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "Properties.doc");
doc.CustomDocumentProperties.Remove("Authorized Date");

Integrierte Dokumenteigenschaften aktualisieren

Aspose.Words aktualisiert Dokumenteigenschaften nicht automatisch, wie dies bei Microsoft Word bei einigen Eigenschaften der Fall ist, sondern bietet eine Methode zum Aktualisieren einiger statistischer integrierter Dokumenteigenschaften. Rufen Sie die UpdateWordCount-Methode auf, um die folgenden Eigenschaften neu zu berechnen und zu aktualisieren:

Erstellen Sie eine neue benutzerdefinierte Eigenschaft, die mit Inhalt verknüpft ist

Aspose.Words bietet die AddLinkToContent-Methode zum Erstellen einer neuen benutzerdefinierten Dokumenteigenschaft, die mit dem Inhalt verknüpft ist. Diese Eigenschaft gibt das neu erstellte Eigenschaftsobjekt oder null zurück, wenn das LinkSource ungültig ist.

Das folgende Codebeispiel zeigt, wie Sie einen Link zu einer benutzerdefinierten Eigenschaft konfigurieren:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "test.docx");
// Retrieve a list of all custom document properties from the file.
CustomDocumentProperties customProperties = doc.CustomDocumentProperties;
// Add linked to content property.
DocumentProperty customProperty = customProperties.AddLinkToContent("PropertyName", "BookmarkName");
// Also, accessing the custom document property can be performed by using the property name.
customProperty = customProperties["PropertyName"];
// Check whether the property is linked to content.
bool isLinkedToContent = customProperty.IsLinkToContent;
// Get the source of the property.
string source = customProperty.LinkSource;
// Get the value of the property.
string value = customProperty.Value.ToString();

Dokumentvariablen abrufen

Mithilfe der Variables-Eigenschaft können Sie eine Sammlung von Dokumentvariablen abrufen. Variablennamen und -werte sind Zeichenfolgen.

Das folgende Codebeispiel zeigt, wie Dokumentvariablen aufgezählt werden:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithDocument();
// Load the template document.
Document doc = new Document(dataDir + "TestFile.doc");
string variables = "";
foreach (KeyValuePair<string, string> entry in doc.Variables)
{
string name = entry.Key.ToString();
string value = entry.Value.ToString();
if (variables == "")
{
// Do something useful.
variables = "Name: " + name + "," + "Value: {1}" + value;
}
else
{
variables = variables + "Name: " + name + "," + "Value: {1}" + value;
}
}

Persönliche Informationen aus dem Dokument entfernen

Wenn Sie ein Word-Dokument mit anderen Personen teilen möchten, möchten Sie möglicherweise persönliche Informationen wie den Namen des Autors und das Unternehmen entfernen. Verwenden Sie dazu die RemovePersonalInformation-Eigenschaft, um das Flag zu setzen, das angibt, dass Microsoft Word beim Speichern des Dokuments alle Benutzerinformationen aus Kommentaren, Revisionen und Dokumenteigenschaften entfernt.

Das folgende Codebeispiel zeigt, wie persönliche Informationen entfernt werden:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(dataDir + "Properties.doc");
doc.RemovePersonalInformation = true;
dataDir = dataDir + "RemovePersonalInformation_out.docx";
doc.Save(dataDir);