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.