Határozza meg az eredeti prezentáció formátumát Node.js-ben
Áttekintés
Prezentáció betöltése után hívja meg a Presentation.getSourceFormat metódust, hogy meghatározza az eredeti formátumát. Használja, ha a későbbi feldolgozás attól a formátumtól függ, amelyből a jelenlegi példány betöltődött.
A forrásformátum eltér a kimeneti fájlhoz kiválasztott SaveFormat formátumtól. Egy másik formátumba mentés nem változtatja meg a meglévő példány forrásformátumát.
A fájl forrásformátumának olvasása
Ez a példa egy meglévő sample.pptx fájlt igényel. Betölti a fájlt, és a Presentation.getSourceFormat használatával választja ki az alkalmazás feldolgozási szabályát a fájlnév helyett. A bemeneti útvonalat módosítva kipróbálhat más formátumokat. A példa kiírja a kiválasztott szabályt; cserélje le az üzeneteket saját alkalmazáslogikájára.
const aspose = require("aspose.slides.via.java");
const presentation = new aspose.Presentation("sample.pptx");
try {
switch (presentation.getSourceFormat()) {
case aspose.SourceFormat.Ppt:
case aspose.SourceFormat.Pps:
case aspose.SourceFormat.Pot:
console.log("Use the legacy PowerPoint processing policy.");
break;
case aspose.SourceFormat.Pptx:
console.log("Use the standard PPTX processing policy.");
break;
default:
console.log("Use the general policy for source format " + presentation.getSourceFormat() + ".");
break;
}
} finally {
presentation.dispose();
}
A támogatott értékek felismerése
A SourceFormat osztály egész számú konstansokat határoz meg, amelyek megkülönböztetik a következő prezentációformátumokat. Az alábbi kiterjesztések szokásos kiterjesztések, nem a fájl eredeti nevének rekonstrukciója.
| SourceFormat érték | Kiterjesztés | Formátum |
|---|---|---|
Ppt |
.ppt |
PowerPoint 97–2003 bemutató |
Pptx |
.pptx |
Office Open XML bemutató |
Pptm |
.pptm |
Makróval bővített Office Open XML bemutató |
Pps |
.pps |
PowerPoint 97–2003 diavetítés |
Ppsx |
.ppsx |
Office Open XML diavetítés |
Ppsm |
.ppsm |
Makróval bővített Office Open XML diavetítés |
Pot |
.pot |
PowerPoint 97–2003 sablon |
Potx |
.potx |
Office Open XML sablon |
Potm |
.potm |
Makróval bővített Office Open XML sablon |
Odp |
.odp |
OpenDocument bemutató |
Otp |
.otp |
OpenDocument bemutató sablon |
Fodp |
.fodp |
Flat XML ODF bemutató |
Xml |
.xml |
PowerPoint XML bemutató |
A forrásformátum beolvasása folyamról
Ez a példa egy meglévő sample.pps fájlt igényel. A bájtok memóriába történő beolvasása olyan bemenetet modellez, amely fájlnév nélkül érkezik, például adatbázisértékként vagy feltöltött byte tömbként. A Presentation konstruktora csak a folyamot kapja meg.
const aspose = require("aspose.slides.via.java");
const java = require("java");
const fs = require("fs");
const buffer = fs.readFileSync("sample.pps");
const bytes = java.newArray("byte", Array.from(buffer));
const stream = java.newInstanceSync("java.io.ByteArrayInputStream", bytes);
try {
const presentation = new aspose.Presentation(stream);
try {
console.log("Source format: " + presentation.getSourceFormat());
} finally {
presentation.dispose();
}
} finally {
stream.close();
}
A PPT, PPS és POT azonos alapszintű bináris formátumot használnak. Fájlúton történő betöltéskor a kiterjesztés segíthet megkülönböztetni a diavetítést vagy sablont. Fájlnév nélkül a régi PPS és POT tartalom SourceFormat.Ppt‑ként jelenthető; a fenti PPS példa az SourceFormat.Ppt egész értékét írja ki.
Ha az alkalmazásnak meg kell tartania a különbséget, tartsa meg az eredeti fájlnevet vagy a részlet metaadatait külön. A kiterjesztés hasznos jelzés lehet ezekhez a régi alformátumokhoz, de nem szabad, hogy egyedüli alapja legyen a prezentáció tartalmának azonosításának.
Az észlelés összehasonlítása betöltés előtt és után
Használja a PresentationFactory.getPresentationInfo és a PresentationInfo.getLoadFormat metódusokat, ha egy fájlt a teljes prezentációs objektummodel betöltése előtt kell vizsgálni. Használja a Presentation.getSourceFormat metódust, ha a példány már létezik.
Ez a példa sample.pptx‑et igényel, és kiírja a LoadFormat.Pptx és a SourceFormat.Pptx egész értékeit. Éles környezetben válassza a feldolgozási szakaszának megfelelő API‑t; egy már betöltött prezentációnak nincs szüksége második vizsgálatra csak a forrásformátum lekéréséhez.
const aspose = require("aspose.slides.via.java");
const path = "sample.pptx";
const information = aspose.PresentationFactory.getInstance().getPresentationInfo(path);
console.log("Before loading: " + information.getLoadFormat());
const presentation = new aspose.Presentation(path);
try {
console.log("After loading: " + presentation.getSourceFormat());
} finally {
presentation.dispose();
}
Az eredmények különböző osztályok konstansaiból származnak: LoadFormat és SourceFormat. Ne hasonlítsa össze a numerikus értékeket, és ne tételezze fel, hogy minden formátum azonos észlelési eredményt ad. A PowerPoint XML betöltés előtt LoadFormat.Unknown‑ként, betöltés után SourceFormat.Xml‑ként jelenthető.
A forrás- és a kimeneti formátumok szétválasztása
Ez a példa sample.pptx‑et igényel, és converted.odp‑t ír. Kiírja a SourceFormat.Pptx egész értékét a mentés előtti és utáni állapotban is. Csak az ODP kimenetből betöltött új példány jelent Odp‑t.
const aspose = require("aspose.slides.via.java");
const presentation = new aspose.Presentation("sample.pptx");
try {
console.log("Before saving: " + presentation.getSourceFormat());
presentation.save("converted.odp", aspose.SaveFormat.Odp);
console.log("After saving: " + presentation.getSourceFormat());
const reopened = new aspose.Presentation("converted.odp");
try {
console.log("Reopened output: " + reopened.getSourceFormat());
} finally {
reopened.dispose();
}
} finally {
presentation.dispose();
}
Az new Presentation()‑ből nulláról létrehozott prezentáció SourceFormat.Pptx‑ként jelentkezik. Nincs bemeneti fájl: ez az alapértelmezett érték az újonnan létrehozott példány számára, nem bizonyítja, hogy PPTX fájlt töltöttek be. Kövesse nyomon, hogy az alkalmazás létrehozta vagy betöltötte a példányt, ha ez a megkülönböztetés fontos.
A forrásformátum leképezése kiterjesztésre
A következő példa sample.pptx‑et igényel. Minden jelenleg támogatott SourceFormat értéket leképez egy szokásos kiterjesztésre, a bemeneti fájlnév elemzése nélkül. A visszaesés megakadályozza, hogy egy fel nem ismert értékhez némahanggal kiterjesztést rendeljünk.
const aspose = require("aspose.slides.via.java");
const presentation = new aspose.Presentation("sample.pptx");
try {
let extension;
switch (presentation.getSourceFormat()) {
case aspose.SourceFormat.Ppt:
extension = ".ppt";
break;
case aspose.SourceFormat.Pptx:
extension = ".pptx";
break;
case aspose.SourceFormat.Pptm:
extension = ".pptm";
break;
case aspose.SourceFormat.Pps:
extension = ".pps";
break;
case aspose.SourceFormat.Ppsx:
extension = ".ppsx";
break;
case aspose.SourceFormat.Ppsm:
extension = ".ppsm";
break;
case aspose.SourceFormat.Pot:
extension = ".pot";
break;
case aspose.SourceFormat.Potx:
extension = ".potx";
break;
case aspose.SourceFormat.Potm:
extension = ".potm";
break;
case aspose.SourceFormat.Odp:
extension = ".odp";
break;
case aspose.SourceFormat.Otp:
extension = ".otp";
break;
case aspose.SourceFormat.Fodp:
extension = ".fodp";
break;
case aspose.SourceFormat.Xml:
extension = ".xml";
break;
default:
extension = null;
break;
}
console.log(extension != null ? extension : "No extension mapping is available.");
} finally {
presentation.dispose();
}
Ez a leképezés nem konvertál fájlt, és nem állítja vissza a folyam betöltése során elveszett régi PPS/POT alformátumot. Valódi mentéshez válasszon egy SaveFormat értéket kifejezetten, vagy használja a Save Presentations in Their Original Format példában bemutatott konverziót.
Formátumok ellenőrzése mentéssel és újranyitással
Ez az önálló példa létrehoz egy prezentációt, és három fájlt ír a munkakönyvtárba, felülírva az azonos nevű fájlokat. Mindegyik kimenetet újra megnyitja úton és memóriában lévő folyamként is. PPTX és ODP esetén mindkét útvonal a mentett formátumot jelzi. PPS esetén az útvonallal történő betöltés Pps‑t, a fájlnév nélküli bájtok betöltése Ppt‑t jelent.
const aspose = require("aspose.slides.via.java");
const java = require("java");
const fs = require("fs");
const presentation = new aspose.Presentation();
try {
const formats = [aspose.SaveFormat.Pptx, aspose.SaveFormat.Odp, aspose.SaveFormat.Pps];
const extensions = ["pptx", "odp", "pps"];
for (let i = 0; i < formats.length; i++) {
const path = "roundtrip." + extensions[i];
presentation.save(path, formats[i]);
const fromFile = new aspose.Presentation(path);
try {
const buffer = fs.readFileSync(path);
const bytes = java.newArray("byte", Array.from(buffer));
const stream = java.newInstanceSync("java.io.ByteArrayInputStream", bytes);
try {
const fromStream = new aspose.Presentation(stream);
try {
console.log(extensions[i] + ": file=" + fromFile.getSourceFormat() + ", stream=" + fromStream.getSourceFormat());
} finally {
fromStream.dispose();
}
} finally {
stream.close();
}
} finally {
fromFile.dispose();
}
}
} finally {
presentation.dispose();
}
| Mentett formátum | SourceFormat fájl útvonalból | SourceFormat névtelen folyamról |
|---|---|---|
| PPT | Ppt |
Ppt |
| PPTX, PPTM | Pptx, Pptm |
Ugyanaz, mint a fájl útvonalból |
| PPS | Pps |
Ppt |
| PPSX, PPSM | Ppsx, Ppsm |
Ugyanaz, mint a fájl útvonalból |
| POT | Pot |
Ppt |
| POTX, POTM | Potx, Potm |
Ugyanaz, mint a fájl útvonalból |
| ODP, OTP | Odp, Otp |
Ugyanaz, mint a fájl útvonalból |
| FODP | Fodp |
Fodp |
| PowerPoint XML | Xml |
Xml |
A PPS/POT tartalom névtelen folyamok esetén Ppt‑ként azonosítható. A táblázat a formátum azonosítását írja le, nem a prezentáció minden tulajdonságának megőrzését konverzió közben.
GYIK
A PPTX‑ből betöltött prezentáció ODP‑be mentése megváltoztatja a forrásformátumot?
Nem. A meglévő példány továbbra is Pptx‑ként jelentkezik. Az ODP‑be mentett fájlból betöltött példány Odp‑t jelent.
Képes-e egy folyam mindig megkülönböztetni egy örökölt prezentációt, diavetítést és sablont?
Nem. A PPT, PPS és POT ugyanazt a bináris formátumot osztják meg. Ha szükség van a megkülönböztetésre, tartsa meg a fájlnevet vagy a részlet metaadatait külön.
Melyik API‑t kell használni, ha a prezentáció már betöltött?
Olvassa el a Presentation.getSourceFormat metódust. Használja a PresentationFactory.getPresentationInfo metódust a betöltés előtti vizsgálathoz.