PowerPoint-Textabsätze in JavaScript verwalten
Aspose.Slides bietet alle Klassen, die Sie benötigen, um in Java mit PowerPoint-Texten, Absätzen und Portionen zu arbeiten.
- Aspose.Slides stellt die Klasse TextFrame zur Verfügung, um Objekte hinzuzufügen, die einen Absatz darstellen. Ein
TextFame‑Objekt kann einen oder mehrere Absätze enthalten (jeder Absatz wird durch einen Zeilenumbruch erzeugt). - Aspose.Slides stellt die Klasse Paragraph zur Verfügung, um Objekte hinzuzufügen, die Abschnitte (Portionen) darstellen. Ein
Paragraph‑Objekt kann eine oder mehrere Portionen enthalten (eine Sammlung von Textportion‑Objekten). - Aspose.Slides stellt die Klasse Portion zur Verfügung, um Objekte hinzuzufügen, die Texte und deren Formatierungseigenschaften darstellen.
Ein Paragraph‑Objekt kann Texte mit unterschiedlichen Formatierungseigenschaften über seine zugrunde liegenden Portion‑Objekte verarbeiten.
Mehrere Absätze hinzufügen, die mehrere Portionen enthalten
Diese Schritte zeigen, wie Sie ein TextFrame hinzufügen, das 3 Absätze enthält und jeder Absatz 3 Portionen enthält:
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu.
- Fügen Sie der Folie ein rechteckiges AutoShape hinzu.
- Rufen Sie das mit dem AutoShape verbundene ITextFrame ab.
- Erstellen Sie zwei Paragraph-Objekte und fügen Sie sie der
IParagraphs‑Sammlung des TextFrame hinzu. - Erstellen Sie für jedes neue
Paragraphdrei Portion-Objekte (zwei Portion‑Objekte für den Standard‑Paragraph) und fügen Sie jedesPortion‑Objekt der IPortion‑Sammlung des jeweiligenParagraphhinzu. - Legen Sie für jede Portion einen Text fest.
- Wenden Sie die gewünschten Formatierungsoptionen auf jede Portion an, indem Sie die vom
Portion‑Objekt bereitgestellten Formatierungseigenschaften verwenden. - Speichern Sie die geänderte Präsentation.
// Instanziieren einer Presentation-Klasse, die eine PPTX-Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Erste Folie zugreifen
var slide = pres.getSlides().get_Item(0);
// AutoShape vom Typ Rechteck hinzufügen
var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150);
// TextFrame des AutoShape zugreifen
var tf = ashp.getTextFrame();
// Absätze und Portionen mit unterschiedlichen Textformaten erstellen
var para0 = tf.getParagraphs().get_Item(0);
var port01 = new aspose.slides.Portion();
var port02 = new aspose.slides.Portion();
para0.getPortions().add(port01);
para0.getPortions().add(port02);
var para1 = new aspose.slides.Paragraph();
tf.getParagraphs().add(para1);
var port10 = new aspose.slides.Portion();
var port11 = new aspose.slides.Portion();
var port12 = new aspose.slides.Portion();
para1.getPortions().add(port10);
para1.getPortions().add(port11);
para1.getPortions().add(port12);
var para2 = new aspose.slides.Paragraph();
tf.getParagraphs().add(para2);
var port20 = new aspose.slides.Portion();
var port21 = new aspose.slides.Portion();
var port22 = new aspose.slides.Portion();
para2.getPortions().add(port20);
para2.getPortions().add(port21);
para2.getPortions().add(port22);
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j);
portion.setText("Portion0" + j);
if (j == 0) {
portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True);
portion.getPortionFormat().setFontHeight(15);
} else if (j == 1) {
portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True);
portion.getPortionFormat().setFontHeight(18);
}
}
}
// PPTX auf die Festplatte schreiben
pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Absatz-Aufzählungen verwalten
Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und darzustellen. Aufgelistete Absätze sind immer leichter zu lesen und zu verstehen.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu.
- Fügen Sie der ausgewählten Folie ein AutoShape hinzu.
- Greifen Sie auf das TextFrame des AutoShape zu.
- Entfernen Sie den Standard‑Absatz im
TextFrame. - Erstellen Sie die erste Absatz‑Instanz mithilfe der Klasse Paragraph.
- Setzen Sie den Aufzählungstyp
Typedes Absatzes aufSymbolund legen Sie das Aufzählungszeichen fest. - Setzen Sie den Absatz‑
Text. - Setzen Sie den Absatz‑
Indentfür die Aufzählung. - Legen Sie eine Farbe für das Aufzählungszeichen fest.
- Legen Sie die Höhe des Aufzählungszeichens fest.
- Fügen Sie den neuen Absatz der Absatz‑Sammlung des
TextFramehinzu. - Fügen Sie den zweiten Absatz hinzu und wiederholen Sie den Vorgang aus den Schritten 7 bis 13.
- Speichern Sie die Präsentation.
// Instanziiert eine Presentation-Klasse, die eine PPTX-Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var slide = pres.getSlides().get_Item(0);
// Fügt ein Autoshape hinzu und greift darauf zu
var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das Textfeld des Autoshapes zu
var txtFrm = aShp.getTextFrame();
// Entfernt den Standardabsatz
txtFrm.getParagraphs().removeAt(0);
// Erstellt einen Absatz
var para = new aspose.slides.Paragraph();
// Legt den Aufzählungsstil und das Symbol für den Absatz fest
para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para.getParagraphFormat().getBullet().setChar(8226);
// Setzt den Absatztext
para.setText("Welcome to Aspose.Slides");
// Setzt den Aufzählungseinzug
para.getParagraphFormat().setIndent(25);
// Setzt die Aufzählungsfarbe
para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB);
para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// IsBulletHardColor auf true setzen, um eigene Aufzählungsfarbe zu verwenden
// Setzt die Aufzählungshöhe
para.getParagraphFormat().getBullet().setHeight(100);
// Fügt den Absatz dem Textfeld hinzu
txtFrm.getParagraphs().add(para);
// Erstellt einen zweiten Absatz
var para2 = new aspose.slides.Paragraph();
// Legt den Aufzählungstyp und -stil für den Absatz fest
para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain);
// Fügt den Absatztext hinzu
para2.setText("This is numbered bullet");
// Setzt den Aufzählungseinzug
para2.getParagraphFormat().setIndent(25);
para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB);
para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// IsBulletHardColor auf true setzen, um eigene Aufzählungsfarbe zu verwenden
// Setzt die Aufzählungshöhe
para2.getParagraphFormat().getBullet().setHeight(100);
// Fügt den Absatz dem Textfeld hinzu
txtFrm.getParagraphs().add(para2);
// Speichert die modifizierte Präsentation
pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Bildaufzählungen verwalten
Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und darzustellen. Bild‑Absätze sind leicht zu lesen und zu verstehen.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu.
- Fügen Sie der Folie ein AutoShape hinzu.
- Greifen Sie auf das TextFrame des AutoShape zu.
- Entfernen Sie den Standard‑Absatz im
TextFrame. - Erstellen Sie die erste Absatz‑Instanz mithilfe der Klasse Paragraph.
- Laden Sie das Bild mit PPImage.
- Setzen Sie den Aufzählungstyp auf Picture und legen Sie das Bild fest.
- Setzen Sie den Absatz‑
Text. - Setzen Sie den Absatz‑
Indentfür die Aufzählung. - Legen Sie eine Farbe für das Aufzählungszeichen fest.
- Legen Sie die Höhe des Aufzählungszeichens fest.
- Fügen Sie den neuen Absatz der Absatz‑Sammlung des
TextFramehinzu. - Fügen Sie den zweiten Absatz hinzu und wiederholen Sie den Vorgang anhand der vorherigen Schritte.
- Speichern Sie die geänderte Präsentation.
// Instanziiert eine Presentation-Klasse, die eine PPTX-Datei darstellt
var presentation = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var slide = presentation.getSlides().get_Item(0);
// Instanziiert das Bild für Aufzählungszeichen
var picture;
var image = aspose.slides.Images.fromFile("bullets.png");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) {
image.dispose();
}
}
// Fügt ein Autoshape hinzu und greift darauf zu
var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das Textframe des Autoshapes zu
var textFrame = autoShape.getTextFrame();
// Entfernt den Standardabsatz
textFrame.getParagraphs().removeAt(0);
// Erstellt einen neuen Absatz
var paragraph = new aspose.slides.Paragraph();
paragraph.setText("Welcome to Aspose.Slides");
// Setzt den Aufzählungsstil und das Bild für den Absatz
paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture);
paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture);
// Setzt die Aufzählungshöhe
paragraph.getParagraphFormat().getBullet().setHeight(100);
// Fügt den Absatz dem Textframe hinzu
textFrame.getParagraphs().add(paragraph);
// Schreibt die Präsentation als PPTX-Datei
presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx);
// Schreibt die Präsentation als PPT-Datei
presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt);
} catch (e) {console.log(e);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Mehrstufige Aufzählungen verwalten
Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und darzustellen. Mehrstufige Aufzählungen sind leicht zu lesen und zu verstehen.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu.
- Fügen Sie der neuen Folie ein AutoShape hinzu.
- Greifen Sie auf das TextFrame des AutoShape zu.
- Entfernen Sie den Standard‑Absatz im
TextFrame. - Erstellen Sie die erste Absatz‑Instanz über die Klasse Paragraph und setzen Sie die Tiefe auf 0.
- Erstellen Sie die zweite Absatz‑Instanz über die Klasse
Paragraphund setzen Sie die Tiefe auf 1. - Erstellen Sie die dritte Absatz‑Instanz über die Klasse
Paragraphund setzen Sie die Tiefe auf 2. - Erstellen Sie die vierte Absatz‑Instanz über die Klasse
Paragraphund setzen Sie die Tiefe auf 3. - Fügen Sie die neuen Absätze der Absatz‑Sammlung des
TextFramehinzu. - Speichern Sie die geänderte Präsentation.
// Instanziiert eine Presentation-Klasse, die eine PPTX-Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var slide = pres.getSlides().get_Item(0);
// Fügt ein Autoshape hinzu und greift darauf zu
var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das Textfeld des erstellten Autoshapes zu
var text = aShp.addTextFrame("");
// Löscht den Standardabsatz
text.getParagraphs().clear();
// Fügt den ersten Absatz hinzu
var para1 = new aspose.slides.Paragraph();
para1.setText("Content");
para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para1.getParagraphFormat().getBullet().setChar(8226);
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Setzt die Aufzählungsebene
para1.getParagraphFormat().setDepth(0);
// Fügt den zweiten Absatz hinzu
var para2 = new aspose.slides.Paragraph();
para2.setText("Second Level");
para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para2.getParagraphFormat().getBullet().setChar('-');
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Setzt die Aufzählungsebene
para2.getParagraphFormat().setDepth(1);
// Fügt den dritten Absatz hinzu
var para3 = new aspose.slides.Paragraph();
para3.setText("Third Level");
para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para3.getParagraphFormat().getBullet().setChar(8226);
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Setzt die Aufzählungsebene
para3.getParagraphFormat().setDepth(2);
// Fügt den vierten Absatz hinzu
var para4 = new aspose.slides.Paragraph();
para4.setText("Fourth Level");
para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para4.getParagraphFormat().getBullet().setChar('-');
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Setzt die Aufzählungsebene
para4.getParagraphFormat().setDepth(3);
// Fügt die Absätze zur Sammlung hinzu
text.getParagraphs().add(para1);
text.getParagraphs().add(para2);
text.getParagraphs().add(para3);
text.getParagraphs().add(para4);
// Schreibt die Präsentation als PPTX-Datei
pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Absatz mit benutzerdefinierter nummerierter Liste verwalten
Die Klasse BulletFormat stellt die Eigenschaft NumberedBulletStartWith und weitere bereit, mit denen Sie Absätze mit benutzerdefinierter Nummerierung oder Formatierung verwalten können.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie auf die Folie zu, die den Absatz enthält.
- Fügen Sie der Folie ein AutoShape hinzu.
- Greifen Sie auf das TextFrame des AutoShape zu.
- Entfernen Sie den Standard‑Absatz im
TextFrame. - Erstellen Sie die erste Absatz‑Instanz über die Klasse Paragraph und setzen Sie NumberedBulletStartWith auf 2.
- Erstellen Sie die zweite Absatz‑Instanz über die Klasse
Paragraphund setzen SieNumberedBulletStartWithauf 3. - Erstellen Sie die dritte Absatz‑Instanz über die Klasse
Paragraphund setzen SieNumberedBulletStartWithauf 7. - Fügen Sie die neuen Absätze der Absatz‑Sammlung des
TextFramehinzu. - Speichern Sie die geänderte Präsentation.
var presentation = new aspose.slides.Presentation();
try {
var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das Textfeld des erstellten Autoshape zu
var textFrame = shape.getTextFrame();
// Entfernt den standardmäßig vorhandenen Absatz
textFrame.getParagraphs().removeAt(0);
// Erste Liste
var paragraph1 = new aspose.slides.Paragraph();
paragraph1.setText("bullet 2");
paragraph1.getParagraphFormat().setDepth(4);
paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2);
paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
textFrame.getParagraphs().add(paragraph1);
var paragraph2 = new aspose.slides.Paragraph();
paragraph2.setText("bullet 3");
paragraph2.getParagraphFormat().setDepth(4);
paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3);
paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
textFrame.getParagraphs().add(paragraph2);
var paragraph5 = new aspose.slides.Paragraph();
paragraph5.setText("bullet 7");
paragraph5.getParagraphFormat().setDepth(4);
paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7);
paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
textFrame.getParagraphs().add(paragraph5);
presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Erste-Zeilen‑Einzug für einen Absatz festlegen
Verwenden Sie die Methode ParagraphFormat.setIndent um den Erste‑Zeilen‑Einzug eines Absatzes zu steuern. Diese Methode verschiebt nur die erste Zeile relativ zum linken Rand des Absatzes. Ein positiver Wert verschiebt die erste Zeile nach rechts, während die übrigen Zeilen am Absatzkörper ausgerichtet bleiben.
Verwenden Sie ParagraphFormat.setMarginLeft wenn Sie den gesamten Absatz verschieben müssen. Verwenden Sie ParagraphFormat.setIndent wenn Sie nur die erste Zeile verschieben möchten.
Das nachstehende Beispiel erstellt mehrere Absätze und wendet unterschiedliche Einzugswerte an, um zu zeigen, wie der Erste‑Zeilen‑Einzug das Layout des Absatzes beeinflusst.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie auf die Ziel‑Folien zu.
- Fügen Sie der Folie ein rechteckiges AutoShape hinzu.
- Fügen Sie der Form ein leeres TextFrame hinzu und entfernen Sie den Standard‑Absatz.
- Erstellen Sie mehrere Absätze und setzen Sie für sie unterschiedliche Indent‑Werte.
- Fügen Sie die Absätze dem TextFrame hinzu.
- Speichern Sie die geänderte Präsentation.
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let rectangleShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 220);
rectangleShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
rectangleShape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
rectangleShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY"));
let textFrame = rectangleShape.addTextFrame("");
textFrame.getTextFrameFormat().setAutofitType(java.newByte(aspose.slides.TextAutofitType.Shape));
textFrame.getParagraphs().removeAt(0);
let firstParagraph = new aspose.slides.Paragraph();
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
firstParagraph.setText("No first-line indent. Wrapped lines start at the same position as the first line.");
firstParagraph.getParagraphFormat().setMarginLeft(20);
firstParagraph.getParagraphFormat().setIndent(0);
let secondParagraph = new aspose.slides.Paragraph();
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
secondParagraph.setText("First-line indent of 20 points. The first line moves to the right, while wrapped lines remain aligned to the paragraph body.");
secondParagraph.getParagraphFormat().setMarginLeft(20);
secondParagraph.getParagraphFormat().setIndent(20);
let thirdParagraph = new aspose.slides.Paragraph();
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
thirdParagraph.setText("First-line indent of 40 points. This paragraph shows a larger first-line offset to make the effect easier to see.");
thirdParagraph.getParagraphFormat().setMarginLeft(20);
thirdParagraph.getParagraphFormat().setIndent(40);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
textFrame.getParagraphs().add(thirdParagraph);
presentation.save("paragraph_indent.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
presentation.dispose();
}

Hängenden Einzug für einen Absatz festlegen
Ein hängender Einzug ist ein Absatzlayout, bei dem die erste Zeile links von den übrigen Zeilen beginnt. In Aspose.Slides erzeugen Sie diesen Effekt mit der Methode ParagraphFormat.setIndent. Setzen Sie den Einzug auf einen negativen Wert, um die erste Zeile relativ zum Absatzkörper nach links zu verschieben.
In der Praxis definiert ParagraphFormat.setMarginLeft, die linke Position des Absatzkörpers, und ParagraphFormat.setIndent, die Position der ersten Zeile relativ zu diesem Rand. Um einen hängenden Einzug zu erzeugen, setzen Sie einen positiven MarginLeft‑Wert und einen negativen Indent‑Wert.
Diese Formatierung ist nützlich für Bibliographien, Verweise, Glossareinträge und andere Absätze, bei denen umgebrochene Zeilen unter dem Absatzkörper und nicht unter dem ersten Zeichen der ersten Zeile ausgerichtet werden müssen.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie auf die Ziel‑Folien zu.
- Fügen Sie der Folie ein rechteckiges AutoShape hinzu.
- Fügen Sie der Form ein leeres TextFrame hinzu und entfernen Sie den Standard‑Absatz.
- Erstellen Sie Absätze und setzen Sie für jeden Absatz einen positiven MarginLeft‑Wert.
- Setzen Sie einen negativen Indent‑Wert, um den hängenden Einzug zu erzeugen.
- Fügen Sie die Absätze dem TextFrame hinzu.
- Speichern Sie die geänderte Präsentation.
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let rectangleShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 220);
rectangleShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
rectangleShape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
rectangleShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY"));
let textFrame = rectangleShape.addTextFrame("");
textFrame.getTextFrameFormat().setAutofitType(java.newByte(aspose.slides.TextAutofitType.Shape));
textFrame.getParagraphs().removeAt(0);
let firstParagraph = new aspose.slides.Paragraph();
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
firstParagraph.setText("A hanging indent is created by combining a positive left margin with a negative indent. The first line starts to the left, while wrapped lines align with the paragraph body.");
firstParagraph.getParagraphFormat().setMarginLeft(40);
firstParagraph.getParagraphFormat().setIndent(-20);
let secondParagraph = new aspose.slides.Paragraph();
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
secondParagraph.setText("This second example uses a deeper hanging indent so the difference between the first line and the wrapped lines is easier to compare.");
secondParagraph.getParagraphFormat().setMarginLeft(60);
secondParagraph.getParagraphFormat().setIndent(-30);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
presentation.save("hanging_indent.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
presentation.dispose();
}

Endlauf‑Eigenschaften für Absatz verwalten
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Holen Sie die Referenz der Folie, die den Absatz enthält, über deren Position.
- Fügen Sie der Folie ein rechteckiges AutoShape hinzu.
- Fügen Sie dem Rechteck ein TextFrame mit zwei Absätzen hinzu.
- Setzen Sie die
FontHeightund den Schriftarttyp für die Absätze. - Setzen Sie die End‑Eigenschaften für die Absätze.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
var pres = new aspose.slides.Presentation();
try {
var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250);
var para1 = new aspose.slides.Paragraph();
para1.getPortions().add(new aspose.slides.Portion("Sample text"));
var para2 = new aspose.slides.Paragraph();
para2.getPortions().add(new aspose.slides.Portion("Sample text 2"));
var portionFormat = new aspose.slides.PortionFormat();
portionFormat.setFontHeight(48);
portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman"));
para2.setEndParagraphPortionFormat(portionFormat);
shape.getTextFrame().getParagraphs().add(para1);
shape.getTextFrame().getParagraphs().add(para2);
pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
HTML‑Text in Absätze importieren
Aspose.Slides bietet erweiterte Unterstützung zum Importieren von HTML‑Text in Absätze.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu.
- Fügen Sie der Folie ein AutoShape hinzu.
- Fügen Sie dem AutoShape ein TextFrame hinzu und greifen Sie darauf zu.
- Entfernen Sie den Standard‑Absatz im
TextFrame. - Lesen Sie die Quell‑HTML‑Datei mit einem TextReader.
- Erstellen Sie die erste Absatz‑Instanz über die Klasse Paragraph.
- Fügen Sie den Inhalt der HTML‑Datei, der im gelesenen TextReader vorliegt, zur ParagraphCollection des TextFrame hinzu.
- Speichern Sie die geänderte Präsentation.
// Leere Präsentationsinstanz erstellen
var pres = new aspose.slides.Presentation();
try {
// Greift auf die standardmäßige erste Folie der Präsentation zu
var slide = pres.getSlides().get_Item(0);
// Fügt das AutoShape hinzu, um den HTML-Inhalt aufzunehmen
var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10);
ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
// Textfeld zur Form hinzufügen
ashape.addTextFrame("");
// Alle Absätze im hinzugefügten Textfeld löschen
ashape.getTextFrame().getParagraphs().clear();
// Lädt die HTML-Datei mit StreamReader
var tr = java.newInstanceSync("StreamReader", "file.html");
// Fügt Text aus dem HTML-StreamReader in das Textfeld ein
ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd());
// Präsentation speichern
pres.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Absatz‑Text nach HTML exportieren
Aspose.Slides bietet erweiterte Unterstützung zum Exportieren von Texten (die in Absätzen enthalten sind) nach HTML.
- Erzeugen Sie eine Instanz der Klasse Presentation und laden Sie die gewünschte Präsentation.
- Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu.
- Greifen Sie auf die Form zu, die den zu exportierenden Text enthält.
- Greifen Sie auf das TextFrame der Form zu.
- Erstellen Sie eine Instanz von
StreamWriterund fügen Sie die neue HTML‑Datei hinzu. - Geben Sie einen Start‑Index an den StreamWriter weiter und exportieren Sie Ihre bevorzugten Absätze.
// Lädt die Präsentationsdatei
var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx");
try {
// Greift auf die standardmäßige erste Folie der Präsentation zu
var slide = pres.getSlides().get_Item(0);
// Gewünschter Index
var index = 0;
// Greift auf die hinzugefügte Form zu
var ashape = slide.getShapes().get_Item(index);
// Erstellt die Ausgabedatei HTML
var os = java.newInstanceSync("java.io.FileOutputStream", "output.html");
var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8");
// Extrahiert den ersten Absatz als HTML
// Schreibt Absatzdaten nach HTML, indem der Startindex des Absatzes und die Gesamtzahl der zu kopierenden Absätze angegeben werden
writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null));
writer.close();
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
Einen Absatz als Bild speichern
In diesem Abschnitt untersuchen wir zwei Beispiele, die zeigen, wie ein Textabsatz, dargestellt durch die Klasse Paragraph, als Bild gespeichert werden kann. Beide Beispiele umfassen das Abrufen des Bildes einer Form, die den Absatz enthält, über die getImage‑Methoden der Klasse Shape, die Berechnung der Begrenzungen des Absatzes innerhalb der Form und das Exportieren als Bitmap‑Bild. Diese Vorgehensweise ermöglicht das Extrahieren spezifischer Textteile aus PowerPoint‑Präsentationen und das Speichern als separate Bilder, was in verschiedenen Szenarien nützlich sein kann.
Nehmen wir an, wir haben eine Präsentationsdatei namens sample.pptx mit einer Folie, wobei die erste Form ein Textfeld mit drei Absätzen ist.

Beispiel 1
In diesem Beispiel erhalten wir den zweiten Absatz als Bild. Dazu extrahieren wir das Bild der Form von der ersten Folie der Präsentation und berechnen anschließend die Begrenzungen des zweiten Absatzes im TextFrame der Form. Der Absatz wird dann auf ein neues Bitmap‑Bild neu gezeichnet und im PNG‑Format gespeichert. Dieses Verfahren ist besonders nützlich, wenn Sie einen bestimmten Absatz als separates Bild speichern wollen, dabei aber die genauen Abmessungen und die Formatierung des Textes beibehalten möchten.
const imageio = java.import("javax.imageio.ImageIO");
const presentation = new aspose.slides.Presentation("sample.pptx");
try {
const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Speichert die Form im Speicher als Bitmap.
const shapeImage = firstShape.getImage();
const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream");
shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png);
shapeImage.dispose();
shapeImageStream.flush();
// Erstellt ein Form-Bitmap aus dem Speicher.
const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray");
const javaBytes = java.newArray("byte", Array.from(byteBuffer));
const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream");
const shapeImageInputStream = new ByteArrayInputStream(javaBytes);
const shapeBitmap = imageio.read(shapeImageInputStream);
// Berechnet die Grenzen des zweiten Absatzes.
const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
const paragraphRectangle = secondParagraph.getRect();
// Berechnet die Koordinaten und Größe für das Ausgabebild (Mindestgröße - 1x1 Pixel).
const imageX = Math.floor(paragraphRectangle.getX());
const imageY = Math.floor(paragraphRectangle.getY());
const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth()));
const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight()));
// Beschneidet das Form-Bitmap, um nur das Absatz-Bitmap zu erhalten.
const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
const file = java.newInstanceSync("java.io.File", "paragraph.png");
imageio.write(paragraphBitmap, "png", file);
} finally {
if (presentation != null) {
presentation.dispose();
}
}

Beispiel 2
In diesem Beispiel erweitern wir den vorherigen Ansatz, indem wir Skalierungsfaktoren zum Absatzbild hinzufügen. Die Form wird aus der Präsentation extrahiert und mit einem Skalierungsfaktor von 2 als Bild gespeichert. Dadurch entsteht ein Bild mit höherer Auflösung. Die Absatz‑Begrenzungen werden unter Berücksichtigung der Skalierung berechnet. Skalierung ist besonders nützlich, wenn ein detaillierteres Bild benötigt wird, etwa für den Einsatz in hochwertig gedruckten Materialien.
const imageScaleX = 2;
const imageScaleY = imageScaleX;
const imageio = java.import("javax.imageio.ImageIO");
const presentation = new aspose.slides.Presentation("sample.pptx");
try {
const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Speichert die Form im Speicher als Bitmap mit Skalierung.
const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY);
const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream");
shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png);
shapeImage.dispose();
// Erstellt ein Form-Bitmap aus dem Speicher.
const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray");
const javaBytes = java.newArray("byte", Array.from(byteBuffer));
const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream");
const shapeImageInputStream = new ByteArrayInputStream(javaBytes);
const shapeBitmap = imageio.read(shapeImageInputStream);
// Berechnet die Grenzen des zweiten Absatzes.
const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
const paragraphRectangle = secondParagraph.getRect();
paragraphRectangle.setRect(
paragraphRectangle.getX() * imageScaleX,
paragraphRectangle.getY() * imageScaleY,
paragraphRectangle.getWidth() * imageScaleX,
paragraphRectangle.getHeight() * imageScaleY
);
// Berechnet die Koordinaten und Größe für das Ausgabebild (Mindestgröße - 1x1 Pixel).
const imageX = Math.floor(paragraphRectangle.getX());
const imageY = Math.floor(paragraphRectangle.getY());
const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth()));
const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight()));
// Beschneidet das Form-Bitmap, um nur das Absatz-Bitmap zu erhalten.
const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
const file = java.newInstanceSync("java.io.File", "paragraph.png");
imageio.write(paragraphBitmap, "png", file);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
FAQ
Kann ich das Zeilenumbruchverhalten in einem TextFrame vollständig deaktivieren?
Ja. Verwenden Sie die Umbruch‑Einstellung des TextFrames (setWrapText), um den Umbruch zu deaktivieren, sodass Zeilen nicht am Rand des Frames umgebrochen werden.
Wie kann ich die genauen Positionen eines bestimmten Absatzes auf der Folie erhalten?
Sie können das Begrenzungsrechteck des Absatzes (und sogar einer einzelnen Portion) abrufen, um seine genaue Position und Größe auf der Folie zu kennen.
Wo wird die Absatzausrichtung (links/rechts/zentriert/Blocksatz) gesteuert?
setAlignment ist eine Methode für eine Absatz‑Einstellung in ParagraphFormat; sie gilt für den gesamten Absatz, unabhängig von der Formatierung einzelner Portionen.
Kann ich eine Rechtschreibprüfungssprache nur für einen Teil eines Absatzes festlegen (z. B. ein Wort)?
Ja. Die Sprache wird auf Portion‑Ebene festgelegt (PortionFormat.setLanguageId), sodass mehrere Sprachen innerhalb eines einzelnen Absatzes koexistieren können.