Zarządzanie tekstem prezentacji w Node.js via .NET
Przegląd
W Aspose.Slides tekst na slajdzie należy do kształtu. Automatyczny kształt, taki jak prostokąt, posiada ramkę tekstową; ramka tekstowa zawiera akapity, a każdy akapit zawiera fragmenty, które są ciągami tekstu o jednolitym formatowaniu. Tekst zmieniasz poprzez ramkę tekstową, a czcionkę poprzez format fragmentu.
Ten artykuł dodaje pole tekstowe do slajdu i zapisuje prezentację. Następnie otwiera zapisany plik i zmienia tekst pola, rozmiar czcionki oraz styl pogrubienia.
Przykłady wymagają projektu skonfigurowanego zgodnie z opisem w Installation. Zapisz każdy przykład jako plik .js w folderze projektu i uruchom go z tego folderu poleceniem node.
Note
Aspose.Slides dla Node.js via .NET nie posiada własnej dokumentacji API. Odzwierciedla API Aspose.Slides dla .NET przy użyciu nazw w stylu camelCase, więc linki do API w tym artykule prowadzą do odpowiadających klas i członków w Aspose.Slides for .NET API reference.Dodaj pole tekstowe
Aby dodać pole tekstowe, dodaj automatyczny kształt do slajdu metodą addAutoShape i nadaj mu tekst metodą addTextFrame. Poniższy przykład dodaje prostokąt do pierwszego slajdu nowej prezentacji i zapisuje prezentację jako text-box.pptx:
const { Presentation, ShapeType, SaveFormat } = require("aspose.slides.via.net");
const presentation = new Presentation();
try {
const slide = presentation.slides.get(0);
// Pozycja (x, y) i rozmiar (szerokość, wysokość) są podane w punktach.
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();
}
Slajd w text-box.pptx zawiera prostokąt o szerokości 500 punktów i wysokości 80 punktów, z tekstem „Quarterly report” w domyślnej czcionce i rozmiarze. Następny przykład zmienia to pole tekstowe.
Zmień tekst i jego formatowanie
Poniższy przykład otwiera text-box.pptx, utworzony w poprzednim przykładzie, i pobiera pierwszy kształt na pierwszym slajdzie. Kształty takie jak obrazy i tabele nie mają ramki tekstowej, więc przykład sprawdza, czy kształt jest AutoShape zanim użyje jego textFrame. Następnie wykonuje następujące czynności:
- Zastępuje tekst poprzez właściwość text ramki tekstowej. Po tym ramka tekstowa zawiera jeden akapit z jednym fragmentem.
- Pobiera ten fragment z kolekcji paragraphs i portions oraz odczytuje jego portionFormat.
- Ustawia fontHeight, rozmiar czcionki w punktach, oraz fontBold, które przyjmuje wartość NullableBool.
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();
}
W text-box-updated.pptx pole tekstowe wyświetla „Quarterly report: third quarter” pogrubioną czcionką o rozmiarze 32 punkty. Ponieważ nowy tekst jest jednym fragmentem, dwie właściwości formatowania odnoszą się do całego tekstu. Bez licencji każdy zapis dodaje znak wodny ewaluacyjny. Ponieważ text-box.pptx został zapisany w trybie ewaluacyjnym, text-box-updated.pptx zawiera dwa; zobacz Evaluate Aspose.Slides.
FAQ
Dlaczego fontBold przyjmuje wartość NullableBool zamiast true lub false?
Fragment może pozostawić właściwość niezdefiniowaną i odziedziczyć ją z akapitu, kształtu lub układu i szablonu slajdu. NullableBool.NotDefined oznacza „dziedzicz”, natomiast NullableBool.True i NullableBool.False nadpisują odziedziczoną wartość. Przypisanie true lub false powoduje błąd. Z tego samego powodu fontHeight zwraca NaN, gdy fragment dziedziczy rozmiar czcionki.
Jak zmienić kolor tekstu?
Ustaw wypełnienie formatu fragmentu: przypisz FillType.Solid do portionFormat.fillFormat.fillType, a następnie przypisz kolor, np. "#FF0000" do portionFormat.fillFormat.solidFillColor.color. Dodaj FillType do nazw importowanych z pakietu.
Jak sformatować tylko część tekstu?
Formatowanie dotyczy fragmentów, więc umieść tę część tekstu w osobnym fragmencie. Utwórz fragment za pomocą Portion.CreatePortionFromText, dołącz go do akapitu metodą add w kolekcji portions akapitu, a następnie ustaw portionFormat nowego fragmentu. Dodaj Portion do nazw importowanych z pakietu.
Dlaczego odczyt tekstu zwraca “… text has been truncated due to evaluation version limitation”?
Bez licencji Aspose.Slides zwraca tylko pierwsze pięć znaków dłuższego tekstu, który odczytujesz, np. textFrame.text, a następnie ten komunikat. Tekst, który zapisujesz, jest zapisywany w całości. Zastosuj licencję, jak opisano w Licensing, aby odczytać pełny tekst.