Prezentáció szövegének kezelése Node.js-en keresztül .NET
Áttekintés
Az Aspose.Slides-ben a dián lévő szöveg egy alakzathoz tartozik. Egy automatikus alakzat, például egy téglalap, rendelkezik szövegkerettel; a szövegkeret bekezdéseket tartalmaz, és minden bekezdés szakaszokból áll, amelyek azonos formázású szövegrészek. A szöveget a szövegkereten keresztül, a betűtípust pedig egy szakasz formátumán keresztül módosíthatja.
Ez a cikk egy szövegdobozt ad egy diához, elmenti a bemutatót, majd megnyitja a mentett fájlt, és módosítja a szövegdoboz szövegét, betűméretét és félkövér stílusát.
A példákhoz egy olyan projektre van szükség, ahogy a Installation oldal leírja. Minden példát mentse .js fájlként a projekt mappájába, és futtassa a mappából a node paranccsal.
Note
Az Aspose.Slides for Node.js via .NET nem rendelkezik saját API‑referenciával. Az Aspose.Slides for .NET API-t camelCase elnevezésekkel tükrözi, ezért a cikkben szereplő API‑linkek a megfelelő osztályokhoz és tagokhoz vezetnek a Aspose.Slides for .NET API reference oldalon.Szövegdoboz hozzáadása
Egy szövegdoboz hozzáadásához egy automatikus alakzatot kell a diára helyezni a addAutoShape metódussal, és szöveget adni neki az addTextFrame metódussal. Az alábbi példa egy téglalapot ad az új bemutató első diájához, majd a bemutatót text-box.pptx néven menti:
const { Presentation, ShapeType, SaveFormat } = require("aspose.slides.via.net");
const presentation = new Presentation();
try {
const slide = presentation.slides.get(0);
// A pozíció (x, y) és a méret (szélesség, magasság) pontokban van megadva.
const textBox = slide.shapes.addAutoShape(ShapeType.Rectangle, 100, 100, 500, 80);
textBox.addTextFrame("Quarterly report");
presentation.save("text-box.pptx", SaveFormat.Pptx);
console.log("Saved text-box.pptx");
} finally {
presentation.dispose();
}
A text-box.pptx diájában egy 500 pont széles és 80 pont magas téglalap található, amelyben az alapértelmezett betűtípussal és mérettel a „Quarterly report” szöveg jelenik meg. A következő példa ezt a szövegdobozt módosítja.
A szöveg és formázásának módosítása
Az alábbi példa megnyitja a text-box.pptx fájlt, amelyet az előző példa hozott létre, és lekéri az első dián az első alakzatot. Képek és táblázatok például nem rendelkeznek szövegkerettel, ezért a példa ellenőrzi, hogy az alakzat egy AutoShape‑e, mielőtt a shape textFrame‑t használja. Ezután a következőket hajtja végre:
- A szövegkeret text tulajdonságán keresztül cseréli a szöveget. Ezután a szövegkeret egy bekezdést és egy szakaszt tartalmaz.
- A paragraphs és portions gyűjteményekből lekéri azt a szakaszt, és elolvassa a portionFormat‑ját.
- Beállítja a fontHeight‑t (a betűméret pontban) és a fontBold‑t, amely egy NullableBool értéket vesz fel.
const { Presentation, AutoShape, NullableBool, SaveFormat } = require("aspose.slides.via.net");
const presentation = new Presentation("text-box.pptx");
try {
const shape = presentation.slides.get(0).shapes.get(0);
if (shape instanceof AutoShape) {
const textFrame = shape.textFrame;
textFrame.text = "Quarterly report: third quarter";
const portionFormat = textFrame.paragraphs.get(0).portions.get(0).portionFormat;
portionFormat.fontHeight = 32;
portionFormat.fontBold = NullableBool.True;
presentation.save("text-box-updated.pptx", SaveFormat.Pptx);
console.log("Saved text-box-updated.pptx");
} else {
console.log("The first shape on the first slide is not an AutoShape.");
}
} finally {
presentation.dispose();
}
A text-box-updated.pptx fájlban a szövegdoboz a „Quarterly report: third quarter” szöveget mutatja félkövér, 32 pontos betűmérettel. Mivel az új szöveg egyetlen szakaszból áll, a két formázási tulajdonság az egész szövegre vonatkozik. Licenc nélkül minden mentés értékelési vízjelet ad hozzá. Mivel a text-box.pptx is értékelési módban lett mentve, a text-box-updated.pptx két vízjelet tartalmaz; lásd a Evaluate Aspose.Slides oldalt.
GYIK
Miért vesz fel a fontBold egy NullableBool értéket a true vagy false helyett?
Egy szakasz egy tulajdonságot undefined állapotban hagyhat, és örökölheti azt a bekezdéstől, az alakzattól vagy a dia elrendezésétől és mesterétől. A NullableBool.NotDefined azt jelenti, hogy „örököl”, míg a NullableBool.True és NullableBool.False felülírja az örökölt értéket. A true vagy false értékek hozzárendelése hibát okoz. Ugyanez az ok, amiért a fontHeight NaN‑t ad vissza, ha a szakasz a betűméretet örökli.
Hogyan változtathatom meg a szöveg színét?
Állítsa be a szakasz formátumának kitöltését: rendelje a FillType.Solid értéket a portionFormat.fillFormat.fillType‑hoz, majd adjunk egy színt, például "#FF0000" a portionFormat.fillFormat.solidFillColor.color‑nek. Importálja a FillType‑ot a csomagból.
Hogyan formázzak csak a szöveg egy részét?
A formázás a szakaszokhoz tartozik, ezért helyezze a szöveg azon részét egy saját szakaszába. Hozza létre a szakaszt a Portion.CreatePortionFromText‑el, fűzze hozzá egy bekezdéshez a bekezdés portions gyűjteményének add metódusával, majd állítsa be az új szakasz portionFormat‑ját. Importálja a Portion‑t a csomagból.
Miért adja vissza a szöveg olvasása, hogy “… text has been truncated due to evaluation version limitation”?
Licenc nélkül az Aspose.Slides csak a hosszabb szövegek első öt karakterét adja vissza, például a textFrame.text esetén, majd ezt a megjegyzést fűzi hozzá. A megírt szöveg teljes mértékben el van mentve. A teljes szöveg olvasásához alkalmazzon licencet a Licensing útmutató szerint.