Práce s vlastnostmi dokumentu
Vlastnosti dokumentu umožňují ukládat některé užitečné informace o dokumentu. Tyto vlastnosti lze rozdělit do dvou skupin:
- Systém nebo vestavěný, které obsahují hodnoty, jako je název dokumentu, jméno autora, statistiky dokumentů a další.
- Uživatelem definované nebo vlastní, poskytované jako páry název-hodnota, kde uživatel může definovat název i hodnotu.
Je užitečné vědět, že informace o API a čísle verze se zapisují přímo do výstupních dokumentů. Například při převodu dokumentu na PDF vyplní Aspose.Words pole “aplikace” pomocí “Aspose.Words” a pole “PDF Výrobce” pomocí “Aspose.Words pro C++ YY.M. N”, kde YY.M.N je verze Aspose.Words použitá pro převod. Další podrobnosti viz Název generátoru nebo výrobce obsažený ve výstupních dokumentech.
Vlastnosti Dokumentu Access
Pro přístup k vlastnostem dokumentu v Aspose.Words použijte:
-
BuiltInDocumentProperties pro získání vestavěných vlastností.
-
CustomDocumentProperties pro získání vlastních vlastností.
BuiltInDocumentProperties
BuiltInDocumentProperties
Třída DocumentProperty umožňuje získat název, hodnotu a typ vlastnosti dokumentu. Value vrací objekt, ale existuje sada metod, které vám umožňují převést hodnotu vlastnosti na konkrétní typ. Poté, co se dozvíte, o jaký typ vlastnosti jde, můžete použít jednu z metod DocumentProperty.ToXXX, například DocumentProperty.ToString a DocumentProperty.ToInt, k získání hodnoty příslušného typu.
Následující příklad kódu ukazuje, jak vyjmenovat všechny vestavěné a vlastní vlastnosti v dokumentu:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::String fileName = inputDataDir + u"Properties.doc"; | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(fileName); | |
std::cout << "1. Document name: " << fileName.ToUtf8String() << std::endl; | |
std::cout << "2. Built-in Properties" << std::endl; | |
for (System::SharedPtr<DocumentProperty> prop : System::IterateOver(doc->get_BuiltInDocumentProperties())) | |
{ | |
std::cout << prop->get_Name().ToUtf8String() << " : " << prop->get_Value()->ToString().ToUtf8String() << std::endl; | |
} | |
std::cout << "3. Custom Properties" << std::endl; | |
for (System::SharedPtr<DocumentProperty> prop : System::IterateOver(doc->get_CustomDocumentProperties())) | |
{ | |
std::cout << prop->get_Name().ToUtf8String() << " : " << prop->get_Value()->ToString().ToUtf8String() << std::endl; | |
} |
V Microsoft Word můžete přistupovat k vlastnostem dokumentu pomocí nabídky “Soubor → Vlastnosti”.

Přidání nebo odebrání vlastností dokumentu
Předdefinované Vlastnosti dokumentu nelze přidat ani odebrat pomocí Aspose.Words. Můžete pouze změnit nebo aktualizovat jejich hodnoty.
Chcete-li přidat vlastní vlastnosti dokumentu pomocí Aspose.Words, použijte metodu Add a předejte nový název vlastnosti a hodnotu příslušného typu. Metoda vrací nově vytvořený objekt DocumentProperty.
Chcete-li odebrat vlastní vlastnosti, použijte metodu Remove a předejte jí název vlastnosti, kterou chcete odebrat, nebo metodu RemoveAt k odstranění vlastnosti podle indexu. Všechny vlastnosti Můžete také odebrat pomocí metody Clear.
Následující příklad kódu zkontroluje, zda v dokumentu existuje vlastní vlastnost s daným názvem, a přidá několik dalších vlastních vlastností dokumentu:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Properties.doc"); | |
System::SharedPtr<CustomDocumentProperties> props = doc->get_CustomDocumentProperties(); | |
if (props->idx_get(u"Authorized") == nullptr) | |
{ | |
props->Add(u"Authorized", true); | |
props->Add(u"Authorized By", System::String(u"John Smith")); | |
props->Add(u"Authorized Date", System::DateTime::get_Today()); | |
props->Add(u"Authorized Revision", doc->get_BuiltInDocumentProperties()->get_RevisionNumber()); | |
props->Add(u"Authorized Amount", 123.45); | |
} |
Následující příklad kódu ukazuje, jak odebrat vlastní vlastnost dokumentu:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Properties.doc"); | |
doc->get_CustomDocumentProperties()->Remove(u"Authorized Date"); |
Aktualizace Vestavěných Vlastností Dokumentu
Aspose.Words automaticky neaktualizuje Vlastnosti dokumentu, jako Microsoft Word u některých vlastností, ale poskytuje metodu aktualizace některých statistických vestavěných vlastností dokumentu. Zavolejte metodu UpdateWordCount a přepočítejte a aktualizujte následující vlastnosti:
Vytvoření nové vlastní vlastnosti propojené s obsahem
Aspose.Words poskytuje metodu AddLinkToContent k vytvoření nové vlastnosti vlastního dokumentu propojené s obsahem. Tato vlastnost vrací nově vytvořený objekt Vlastnosti nebo null, pokud je LinkSource neplatný.
Následující příklad kódu ukazuje, jak nakonfigurovat odkaz na vlastní vlastnost:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"test.docx"); | |
// Retrieve a list of all custom document properties from the file. | |
System::SharedPtr<CustomDocumentProperties> customProperties = doc->get_CustomDocumentProperties(); | |
// Add linked to content property. | |
System::SharedPtr<DocumentProperty> customProperty = customProperties->AddLinkToContent(u"PropertyName", u"BookmarkName"); | |
// Also, accessing the custom document property can be performed by using the property name. | |
customProperty = customProperties->idx_get(u"PropertyName"); | |
// Check whether the property is linked to content. | |
bool isLinkedToContent = customProperty->get_IsLinkToContent(); | |
// Get the source of the property. | |
System::String source = customProperty->get_LinkSource(); | |
// Get the value of the property. | |
System::String value = customProperty->get_Value()->ToString(); |
Získejte Proměnné Dokumentu
Kolekci proměnných dokumentu můžete získat pomocí vlastnosti Variables. Názvy a hodnoty proměnných jsou řetězce.
Následující příklad kódu ukazuje, jak vyjmenovat proměnné dokumentu:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// The path to the documents directory. | |
System::String inputDataDir = GetInputDataDir_WorkingWithDocument(); | |
// Load the template document. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"TestFile.doc"); | |
System::String variables = u""; | |
for (System::Collections::Generic::KeyValuePair<System::String, System::String> entry : System::IterateOver(doc->get_Variables())) | |
{ | |
System::String name = entry.get_Key(); | |
System::String value = entry.get_Value(); | |
if (variables == u"") | |
{ | |
// Do something useful. | |
variables = System::String(u"Name: ") + name + u"," + u"Value: " + value; | |
} | |
else | |
{ | |
variables = variables + u"Name: " + name + u"," + u"Value: " + value; | |
} | |
} |
Odstranění osobních údajů z dokumentu
Pokud chcete sdílet dokument Word s jinými lidmi, možná budete chtít odstranit osobní údaje, jako je jméno autora a společnost. Chcete-li to provést, použijte vlastnost RemovePersonalInformation k nastavení příznaku označujícího, že Microsoft Word odstraní všechny informace o uživateli z komentářů, revizí a vlastností dokumentu po uložení dokumentu.
Následující příklad kódu ukazuje, jak odstranit osobní údaje:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Properties.doc"); | |
doc->set_RemovePersonalInformation(true); | |
System::String outputPath = outputDataDir + u"DocProperties.RemovePersonalInformation.docx"; | |
doc->Save(outputPath); |