Hantera presentationsegenskaper i JavaScript
Introduktion
Aspose.Slides stöder två typer av dokumentegenskaper: Inbyggda och Anpassade. Båda dessa egendomstyper kan enkelt nås och hanteras med Aspose.Slides API.
Aspose.Slides låter dig arbeta med presentationsdokumentegenskaper via klassen DocumentProperties . En instans av denna klass returneras av metoden Presentation.getDocumentProperties . Följande exempel visar hur du läser, ändrar och hanterar dessa egenskaper.
Obs
Observera att fälten Application och AppVersion inte kan ändras. Aspose.Slides skriver om dem vid varje sparning, så en sparad presentation alltid visar “Aspose.Slides for Node.js via Java” och versionen av biblioteket som skapade den. Eventuellt värde som skickas tillsetNameOfApplication kastas bort när presentationen skrivs.
Hantera presentationsegenskaper
Microsoft PowerPoint erbjuder en funktion för att lägga till vissa egenskaper i presentationsfilerna. Dessa dokumentegenskaper möjliggör lagring av viss användbar information tillsammans med dokumenten (presentationsfilerna). Det finns två typer av dokumentegenskaper enligt följande
- Systemdefinierade (Inbyggda) egenskaper
- Användardefinierade (Anpassade) egenskaper
Inbyggda egenskaper innehåller allmän information om dokumentet som dokumenttitel, författarens namn, dokumentstatistik osv. Anpassade egenskaper är de som definieras av användaren som Namn/Värde‑par, där både namn och värde anges av användaren. Med Aspose.Slides for Node.js via Java kan utvecklare komma åt och ändra värdena för både inbyggda och anpassade egenskaper.
Dokumentegenskaper i PowerPoint
Microsoft PowerPoint 2007 möjliggör hantering av dokumentegenskaper för presentationsfilerna. Allt du behöver göra är att klicka på Office‑ikonen och sedan Prepare | Properties | Advanced Properties‑menyalternativet i Microsoft PowerPoint 2007 som visas nedan:
| Välja menyobjektet Avancerade egenskaper | ** |
|---|---|
![]() |
|
| Efter att du har valt menyobjektet Advanced Properties visas en dialogruta som låter dig hantera dokumentegenskaperna i PowerPoint‑filen som visas nedan i figuren: |
| Egendomsdialog | ** |
|---|---|
![]() |
|
| I ovanstående Egendomsdialog kan du se att det finns flera flikar såsom General, Summary, Statistics, Contents och Custom. Alla dessa flikar möjliggör konfiguration av olika typer av information relaterad till PowerPoint‑filerna. Fliken Custom används för att hantera anpassade egenskaper i PowerPoint‑filerna. |
Arbeta med dokumentegenskaper med Aspose.Slides för Node.js via Java
Som vi beskrivit tidigare stöder Aspose.Slides för Node.js via Java två typer av dokumentegenskaper, Inbyggda och Anpassade. Således kan utvecklare komma åt båda typerna av egenskaper med hjälp av Aspose.Slides API för Node.js via Java. Aspose.Slides för Node.js via Java tillhandahåller klassen DocumentProperties som representerar dokumentegenskaperna associerade med en presentationsfil via egenskapen Presentation.DocumentProperties.
Utvecklare kan använda egenskapen DocumentProperties som exponeras av Presentation‑objektet för att komma åt dokumentegenskaperna för presentationsfilerna enligt nedan:
Läs offentliga egenskaper från en krypterad presentation
Ett öppningslösenord skyddar normalt både presentationsinnehåll och dokumentegenskaper. När en presentation är krypterad genom att skicka false till ProtectionManager.setEncryptDocumentProperties, förblir dess dokumentegenskaper offentliga. En applikation kan då skicka true till LoadOptions.setOnlyLoadDocumentProperties och läsa de offentliga metadatan utan att ange öppningslösenordet.
Alternativet för enbart dokumentegenskaper styr vad Aspose.Slides laddar; det dekrypterar ingenting. Om egenskaperna inkluderades i krypteringen misslyckas laddningen utan lösenordet. Om presentationen inte är krypterad ignoreras alternativet och hela presentationen laddas.
Följande exempel verifierar laddningsläget via ProtectionManager.isOnlyDocumentPropertiesLoaded och läser sedan inbyggda egenskaper via Presentation.getDocumentProperties:
const slides = require("aspose.slides.via.java");
const loadOptions = new slides.LoadOptions();
loadOptions.setOnlyLoadDocumentProperties(true);
const presentation = new slides.Presentation("public-properties-encrypted.pptx", loadOptions);
try {
if (presentation.getProtectionManager().isOnlyDocumentPropertiesLoaded()) {
const properties = presentation.getDocumentProperties();
console.log("Author: " + properties.getAuthor());
console.log("Title: " + properties.getTitle());
console.log("Keywords: " + properties.getKeywords());
} else {
console.log("The presentation was not loaded in document-properties-only mode.");
}
} finally {
presentation.dispose();
}
I detta läge laddas inte bildinnehållet. Slides, master slides, layouter, former, media och andra presentationsobjekt är otillgängliga. Applikationer bör alltid kontrollera ProtectionManager.isOnlyDocumentPropertiesLoaded innan de utför en operation som kräver hela presentationsobjektmodellen.
Varning
Offentlig metadata kan avslöja författarnamn, titlar, ämnen, nyckelord, företagsinformation, kommentarer och anpassade värden. Kryptera känsliga egenskaper tillsammans med presentationen. Låt dem vara offentliga endast när indexering, klassificering, sökning eller dokumentsystem har ett specifikt krav på att komma åt dem utan lösenord.Uppdatera egenskaper för en krypterad presentation
För en krypterad PPTX‑fil är en presentation som laddas i läge enbart dokumentegenskaper avsedd för att läsa offentlig metadata. Aspose.Slides kan inte spara ändrade egenskaper från det objektet som bara innehåller metadata eftersom de offentliga egenskaperna måste förbli i synk med motsvarande data i den krypterade presentationen. Därför krävs rätt öppningslösenord och en fullständig laddning för att uppdatera dem.
Följande exempel öppnar presentationen med LoadOptions.setPassword, uppdaterar offentliga inbyggda egenskaper och sparar resultatet. Det använder sedan PresentationInfo.isEncrypted för att verifiera att krypteringen bevaras och öppnar den offentliga metadata utan lösenord för att verifiera de nya värdena:
const slides = require("aspose.slides.via.java");
const inputPath = "public-properties-encrypted.pptx";
const outputPath = "updated-public-properties-encrypted.pptx";
const loadOptions = new slides.LoadOptions();
loadOptions.setPassword("open_password");
const presentation = new slides.Presentation(inputPath, loadOptions);
try {
presentation.getDocumentProperties().setTitle("Updated Product Roadmap");
presentation.getDocumentProperties().setKeywords("roadmap, planning, indexed");
presentation.save(outputPath, slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
const presentationInfo = slides.PresentationFactory.getInstance().getPresentationInfo(outputPath);
console.log("The presentation is encrypted: " + presentationInfo.isEncrypted());
const metadataLoadOptions = new slides.LoadOptions();
metadataLoadOptions.setOnlyLoadDocumentProperties(true);
const metadataPresentation = new slides.Presentation(outputPath, metadataLoadOptions);
try {
if (metadataPresentation.getProtectionManager().isOnlyDocumentPropertiesLoaded()) {
console.log("Title: " + metadataPresentation.getDocumentProperties().getTitle());
console.log("Keywords: " + metadataPresentation.getDocumentProperties().getKeywords());
} else {
console.log("The presentation was not loaded in document-properties-only mode.");
}
} finally {
metadataPresentation.dispose();
}
Om en applikation inte får dekryptera eller ladda presentationsinnehållet måste den behandla offentliga egenskaper i en krypterad PPTX‑fil som skrivskyddade.
Åtkomst till inbyggda egenskaper
Dessa egenskaper som exponeras av [DocumentProperties]-objektet inkluderar: Creator (Författare), Description, Keywords, Created (Skapelsedatum), Modified (Ändringsdatum), Printed (Senaste utskriftsdatum), LastModifiedBy, Keywords, SharedDoc (Delas mellan olika producenter?), PresentationFormat, Subject och Title
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
// Instansiera Presentation-klassen som representerar presentationen
var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
// Skapa en referens till IDocumentProperties-objektet som är associerat med Presentation
var dp = pres.getDocumentProperties();
// Visa de inbyggda egenskaperna
console.log("Category : " + dp.getCategory());
console.log("Current Status : " + dp.getContentStatus());
console.log("Creation Date : " + dp.getCreatedTime());
console.log("Author : " + dp.getAuthor());
console.log("Description : " + dp.getComments());
console.log("KeyWords : " + dp.getKeywords());
console.log("Last Modified By : " + dp.getLastSavedBy());
console.log("Supervisor : " + dp.getManager());
console.log("Modified Date : " + dp.getLastSavedTime());
console.log("Presentation Format : " + dp.getPresentationFormat());
console.log("Last Print Date : " + dp.getLastPrinted());
console.log("Is Shared between producers : " + dp.getSharedDoc());
console.log("Subject : " + dp.getSubject());
console.log("Title : " + dp.getTitle());
} finally {
if (pres != null) {
pres.dispose();
}
}
Modifiera inbyggda egenskaper
Att ändra de inbyggda egenskaperna i presentationsfiler är lika enkelt som att komma åt dem. Du kan helt enkelt tilldela ett strängvärde till vilken önskad egenskap som helst så ändras egenskapsvärdet. I exemplet nedan har vi demonstrerat hur vi kan modifiera de inbyggda dokumentegenskaperna i presentationsfilen med Aspose.Slides för Node.js via Java.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
// Skapa en referens till IDocumentProperties-objektet som är associerat med Presentation
var dp = pres.getDocumentProperties();
// Ställ in de inbyggda egenskaperna
dp.setAuthor("Aspose.Slides for Node.js via Java");
dp.setTitle("Modifying Presentation Properties");
dp.setSubject("Aspose Subject");
dp.setComments("Aspose Description");
dp.setManager("Aspose Manager");
// Spara din presentation till en fil
pres.save("DocProps.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Detta exempel modifierar de inbyggda egenskaperna i presentationen som kan visas nedan:
| Inbyggda dokumentegenskaper efter modifiering | ** |
|---|---|
![]() |
Lägg till anpassade dokumentegenskaper
Aspose.Slides för Node.js via Java låter även utvecklare lägga till anpassade värden för presentationsdokumentegenskaper. Ett exempel ges nedan som visar hur man sätter de anpassade egenskaperna för en presentation.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
var pres = new aspose.slides.Presentation();
try {
// Hämtar dokumentegenskaper
var dProps = pres.getDocumentProperties();
// Lägger till anpassade egenskaper
dProps.set_Item("New Custom", 12);
dProps.set_Item("My Name", "Mudassir");
dProps.set_Item("Custom", 124);
// Hämtar egenskapsnamn på ett specifikt index
var getPropertyName = dProps.getCustomPropertyName(2);
// Tar bort vald egenskap
dProps.removeCustomProperty(getPropertyName);
// Sparar presentationen
pres.save("CustomDemo.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
| Anpassade dokumentegenskaper tillagda | ** |
|---|---|
![]() |
Åtkomst till och modifiera anpassade egenskaper
Aspose.Slides för Node.js via Java låter även utvecklare komma åt värdena för anpassade egenskaper. Ett exempel ges nedan som visar hur du kan komma åt och modifiera alla dessa anpassade egenskaper för en presentation.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
// Skapa en referens till DocumentProperties-objektet som är associerat med Presentation
var dp = pres.getDocumentProperties();
// Åtkomst till och modifiering av anpassade egenskaper
for (var i = 0; i < dp.getCountOfCustomProperties(); i++) {
// Visa namn och värden för anpassade egenskaper
console.log("Custom Property Name : " + dp.getCustomPropertyName(i));
console.log("Custom Property Value : " + dp.get_Item(dp.getCustomPropertyName(i)));
// Modifiera värden för anpassade egenskaper
dp.set_Item(dp.getCustomPropertyName(i), "New Value " + (i + 1));
}
// Spara presentationen till en fil
pres.save("CustomDemoModified.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Detta exempel modifierar de anpassade egenskaperna för PPTXpresentationen. Följande figurer visar presentationens anpassade egenskaper före och efter modifiering:
| Anpassade egenskaper före modifiering | ** |
|---|---|
![]() |
| Anpassade egenskaper efter modifiering | ** |
|---|---|
![]() |
Avancerade dokumentegenskaper
Obs
Nya metoder ReadDocumentProperties, UpdateDocumentProperties, och WriteBindedPresentation har lagts till i PresentationInfo, logiken för egenskapssättaren DocumentProperties.setLastSavedTime har ändrats.De två nya metoderna ReadDocumentProperties och UpdateDocumentProperties har lagts till i klassen PresentationInfo. De ger snabb åtkomst till dokumentegenskaper och möjliggör att ändra och uppdatera egenskaper utan att ladda en hel presentation.
Ett typiskt scenario är att ladda egenskaperna, ändra ett värde och uppdatera dokumentet, vilket kan implementeras på följande sätt:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
// läs informationen om presentationen
var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("presentation.pptx");
// hämta de aktuella egenskaperna
var props = info.readDocumentProperties();
// sätt de nya värdena för fälten Author och Title
props.setAuthor("New Author");
props.setTitle("New Title");
// uppdatera presentationen med nya värden
info.updateDocumentProperties(props);
info.writeBindedPresentation("presentation.pptx");
Ett annat sätt är att använda egenskaperna från en specifik presentation som en mall för att uppdatera egenskaper i andra presentationer:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
function updateByTemplate(path, template) {
var toUpdate = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(path);
toUpdate.updateDocumentProperties(template);
toUpdate.writeBindedPresentation(path);
}
var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("template.pptx");
var template = info.readDocumentProperties();
template.setAuthor("Template Author");
template.setTitle("Template Title");
template.setCategory("Template Category");
template.setKeywords("Keyword1, Keyword2, Keyword3");
template.setCompany("Our Company");
template.setComments("Created from template");
template.setContentType("Template Content");
template.setSubject("Template Subject");
updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
function updateByTemplate(path, template)
{
var toUpdate = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(path);
toUpdate.updateDocumentProperties(template);
toUpdate.writeBindedPresentation(path);
}
En ny mall kan skapas från början och sedan användas för att uppdatera flera presentationer:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
function updateByTemplate(path, template) {
var toUpdate = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(path);
toUpdate.updateDocumentProperties(template);
toUpdate.writeBindedPresentation(path);
}
var template = new aspose.slides.DocumentProperties();
template.setAuthor("Template Author");
template.setTitle("Template Title");
template.setCategory("Template Category");
template.setKeywords("Keyword1, Keyword2, Keyword3");
template.setCompany("Our Company");
template.setComments("Created from template");
template.setContentType("Template Content");
template.setSubject("Template Subject");
updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
function updateByTemplate(path, template)
{
var toUpdate = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(path);
toUpdate.updateDocumentProperties(template);
toUpdate.writeBindedPresentation(path);
}
Ställ in korrekturläsningsspråk
Aspose.Slides tillhandahåller egenskapen LanguageId (exponerad av klassen PortionFormat) för att låta dig ange korrekturläsningsspråket för ett PowerPoint‑dokument. Korrekturläsningsspråket är det språk för vilket stavning och grammatik i PowerPoint kontrolleras.
Den här JavaScript‑koden visar hur du ställer in korrekturläsningsspråket för en PowerPoint: xxx Varför saknas LanguageId i JavaScript PortionFormat‑klassen?
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0);
var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getPortions().clear();
var newPortion = new aspose.slides.Portion();
var font = new aspose.slides.FontData("SimSun");
var portionFormat = newPortion.getPortionFormat();
portionFormat.setComplexScriptFont(font);
portionFormat.setEastAsianFont(font);
portionFormat.setLatinFont(font);
portionFormat.setLanguageId("zh-CN");// set the Id of a proofing language
newPortion.setText("1。");
paragraph.getPortions().add(newPortion);
} finally {
if (pres != null) {
pres.dispose();
}
}
Ställ in standardspråk
Denna JavaScript‑kod visar hur du anger standardspråket för en hel PowerPoint‑presentation:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
var loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");
var pres = new aspose.slides.Presentation(loadOptions);
try {
// Lägger till en ny rektangelform med text
var shp = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 50);
shp.getTextFrame().setText("New Text");
// Kontrollerar det första portionsspråket
console.log(shp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getLanguageId());
} finally {
if (pres != null) {
pres.dispose();
}
}
Live‑exempel
Prova den online‑app Aspose.Slides Metadata för att se hur du arbetar med dokumentegenskaper via Aspose.Slides API:
FAQ
Hur kan jag ta bort en inbyggd egenskap från en presentation?
Inbyggda egenskaper är en integrerad del av presentationen och kan inte tas bort helt. Du kan dock ändra deras värden eller sätta dem till tomma om den specifika egenskapen tillåter det.
Vad händer om jag lägger till en anpassad egenskap som redan finns?
Om du lägger till en anpassad egenskap som redan finns, kommer dess befintliga värde att skrivas över med det nya. Du behöver inte ta bort eller kontrollera egenskapen i förväg, eftersom Aspose.Slides automatiskt uppdaterar egenskapens värde.
Kan jag komma åt presentationsegenskaper utan att ladda hela presentationen?
Ja. Använd PresentationFactory.getPresentationInfo och sedan PresentationInfo.readDocumentProperties för att läsa lagrad dokumentmetadata utan att skapa en Presentation‑instans. Se Build a Lightweight Presentation Inventory för ett komplett rapportexempel och format‑specifika begränsningar.
Kan jag läsa offentliga egenskaper i en krypterad presentation utan dess öppningslösenord?
Ja. Dokumentegenskapskryptering måste ha inaktiverats innan presentationen krypterades, och presentationen måste laddas i läge enbart dokumentegenskaper.
Kan jag uppdatera en krypterad PPTX‑fil i läge enbart dokumentegenskaper?
Nej. Offentlig och krypterad egendomsdata måste förbli konsistenta, så för att uppdatera en krypterad PPTX‑fil krävs att hela presentationen laddas med rätt öppningslösenord.






