PowerPoint-Textabsätze auf Android verwalten
Aspose.Slides stellt alle Schnittstellen und Klassen bereit, die Sie benötigen, um mit PowerPoint‑Texten, -Absätzen und -Portionen in Java zu arbeiten.
- Aspose.Slides stellt die Schnittstelle ITextFrame zur Verfügung, mit der Sie Objekte hinzufügen können, die einen Absatz darstellen. Ein
ITextFame‑Objekt kann einen oder mehrere Absätze enthalten (jeder Absatz wird durch einen Zeilenumbruch erstellt). - Aspose.Slides stellt die Schnittstelle IParagraph bereit, mit der Sie Objekte hinzufügen können, die Portionen darstellen. Ein
IParagraph‑Objekt kann eine oder mehrere Portionen enthalten (eine Sammlung von iPortions‑Objekten). - Aspose.Slides stellt die Schnittstelle IPortion bereit, mit der Sie Objekte hinzufügen können, die Texte und deren Formatierungseigenschaften darstellen.
Ein IParagraph‑Objekt kann Texte mit unterschiedlichen Formatierungseigenschaften über seine zugrunde liegenden IPortion‑Objekte verarbeiten.
Mehrere Absätze mit mehreren Textportionen hinzufügen
Diese Schritte zeigen, wie Sie einen Textframe hinzufügen, der 3 Absätze enthält, und jeder Absatz enthält 3 Portionen:
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der gewünschten Folie zu.
- Fügen Sie der Folie ein Rechteck‑IAutoShape hinzu.
- Rufen Sie das mit dem IAutoShape verknüpfte ITextFrame ab.
- Erstellen Sie zwei IParagraph-Objekte und fügen Sie sie der
IParagraphs‑Sammlung des ITextFrame hinzu. - Erstellen Sie für jedes neue
IParagraphdrei IPortion-Objekte (zwei Portion‑Objekte für den Standardabsatz) und fügen Sie jedesIPortion‑Objekt der IPortion‑Sammlung jedesIParagraphhinzu. - Legen Sie für jede Portion einen Text fest.
- Wenden Sie die gewünschten Formatierungsfunktionen auf jede Portion an, indem Sie die vom
IPortion‑Objekt bereitgestellten Formatierungseigenschaften nutzen. - Speichern Sie die geänderte Präsentation.
// Instanziieren einer Presentation-Klasse, die eine PPTX-Datei repräsentiert
Presentation pres = new Presentation();
try {
// Zugriff auf die erste Folie
ISlide slide = pres.getSlides().get_Item(0);
// AutoShape vom Typ Rechteck hinzufügen
IAutoShape ashp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 300, 150);
// Zugriff auf das TextFrame des AutoShape
ITextFrame tf = ashp.getTextFrame();
// Absätze und Portionen mit unterschiedlichen Textformaten erstellen
IParagraph para0 = tf.getParagraphs().get_Item(0);
IPortion port01 = new Portion();
IPortion port02 = new Portion();
para0.getPortions().add(port01);
para0.getPortions().add(port02);
IParagraph para1 = new Paragraph();
tf.getParagraphs().add(para1);
IPortion port10 = new Portion();
IPortion port11 = new Portion();
IPortion port12 = new Portion();
para1.getPortions().add(port10);
para1.getPortions().add(port11);
para1.getPortions().add(port12);
IParagraph para2 = new Paragraph();
tf.getParagraphs().add(para2);
IPortion port20 = new Portion();
IPortion port21 = new Portion();
IPortion port22 = new Portion();
para2.getPortions().add(port20);
para2.getPortions().add(port21);
para2.getPortions().add(port22);
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
IPortion portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j);
portion.setText("Portion0" + j);
if (j == 0) {
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.RED);
portion.getPortionFormat().setFontBold(NullableBool.True);
portion.getPortionFormat().setFontHeight(15);
} else if (j == 1) {
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
portion.getPortionFormat().setFontItalic(NullableBool.True);
portion.getPortionFormat().setFontHeight(18);
}
}
}
// PPTX auf Festplatte schreiben
pres.save("multiParaPort_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Absatzaufzä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 gewünschten Folie zu.
- Fügen Sie dem ausgewählten Folie ein autoshape hinzu.
- Greifen Sie auf das TextFrame des Autoshapes zu.
- Entfernen Sie den Standardabsatz im
TextFrame. - Erstellen Sie die erste Absatzinstanz mit der Klasse Paragraph.
- Setzen Sie den Aufzählungs‑
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 die Aufzählung fest.
- Stellen Sie die Höhe der Aufzählung ein.
- Fügen Sie den neuen Absatz zur Absatzsammlung 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.
// Instanziert eine Presentation-Klasse, die eine PPTX-Datei darstellt
Presentation pres = new Presentation();
try {
// Greift auf die erste Folie zu
ISlide slide = pres.getSlides().get_Item(0);
// Fügt ein Autoshape hinzu und greift darauf zu
IAutoShape aShp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das TextFrame des Autoshapes zu
ITextFrame txtFrm = aShp.getTextFrame();
// Entfernt den Standardabsatz
txtFrm.getParagraphs().removeAt(0);
// Erstellt einen Absatz
Paragraph para = new Paragraph();
// Legt den Aufzählungsstil und das Symbol des Absatzes fest
para.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para.getParagraphFormat().getBullet().setChar((char)8226);
// Setzt den Absatztext
para.setText("Welcome to Aspose.Slides");
// Legt den Aufzählungseinzug fest
para.getParagraphFormat().setIndent(25);
// Legt die Aufzählungsfarbe fest
para.getParagraphFormat().getBullet().getColor().setColorType(ColorType.RGB);
para.getParagraphFormat().getBullet().getColor().setColor(Color.BLACK);
para.getParagraphFormat().getBullet().setBulletHardColor(NullableBool.True); // setzt IsBulletHardColor auf true, um eine eigene Aufzählungsfarbe zu verwenden
// Legt die Aufzählungshöhe fest
para.getParagraphFormat().getBullet().setHeight(100);
// Fügt dem TextFrame einen Absatz hinzu
txtFrm.getParagraphs().add(para);
// Erstellt einen zweiten Absatz
Paragraph para2 = new Paragraph();
// Legt den Aufzählungstyp und -stil des Absatzes fest
para2.getParagraphFormat().getBullet().setType(BulletType.Numbered);
para2.getParagraphFormat().getBullet().setNumberedBulletStyle(NumberedBulletStyle.BulletCircleNumWDBlackPlain);
// Fügt den Absatztext hinzu
para2.setText("This is numbered bullet");
// Legt den Aufzählungseinzug fest
para2.getParagraphFormat().setIndent(25);
para2.getParagraphFormat().getBullet().getColor().setColorType(ColorType.RGB);
para2.getParagraphFormat().getBullet().getColor().setColor(Color.BLACK);
para2.getParagraphFormat().getBullet().setBulletHardColor(NullableBool.True); // setzt IsBulletHardColor auf true, um eine eigene Aufzählungsfarbe zu verwenden
// Legt die Aufzählungshöhe fest
para2.getParagraphFormat().getBullet().setHeight(100);
// Fügt dem TextFrame einen Absatz hinzu
txtFrm.getParagraphs().add(para2);
// Speichert die geänderte Präsentation
pres.save("Bullet_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Bildaufzählungen verwalten
Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und darzustellen. Bildabsätze sind leicht zu lesen und zu verstehen.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der gewünschten Folie zu.
- Fügen Sie der Folie ein autoshape hinzu.
- Greifen Sie auf das TextFrame des Autoshapes zu.
- Entfernen Sie den Standardabsatz im
TextFrame. - Erstellen Sie die erste Absatzinstanz mit der Klasse Paragraph.
- Laden Sie das Bild in IPPImage.
- 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 die Aufzählung fest.
- Stellen Sie die Höhe der Aufzählung ein.
- Fügen Sie den neuen Absatz zur Absatzsammlung 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
Presentation presentation = new Presentation();
try {
// Greift auf die erste Folie zu
ISlide slide = presentation.getSlides().get_Item(0);
// Instanziiert das Bild für Aufzählungszeichen
IPPImage picture;
IImage image = 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
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das Textframe des Autoshapes zu
ITextFrame textFrame = autoShape.getTextFrame();
// Entfernt den Standardabsatz
textFrame.getParagraphs().removeAt(0);
// Erstellt einen neuen Absatz
Paragraph paragraph = new Paragraph();
paragraph.setText("Welcome to Aspose.Slides");
// Setzt den Aufzählungsstil und das Bild des Absatzes
paragraph.getParagraphFormat().getBullet().setType(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);
// Speichert die Präsentation als PPTX-Datei
presentation.save("ParagraphPictureBulletsPPTX_out.pptx", SaveFormat.Pptx);
// Speichert die Präsentation als PPT-Datei
presentation.save("ParagraphPictureBulletsPPT_out.ppt", SaveFormat.Ppt);
} catch (IOException 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 gewünschten Folie zu.
- Fügen Sie der neuen Folie ein autoshape hinzu.
- Greifen Sie auf das TextFrame des Autoshapes zu.
- Entfernen Sie den Standardabsatz im
TextFrame. - Erstellen Sie die erste Absatzinstanz mittels der Klasse Paragraph und setzen Sie die Tiefe auf 0.
- Erstellen Sie die zweite Absatzinstanz mittels der Klasse
Paragraphund setzen Sie die Tiefe auf 1. - Erstellen Sie die dritte Absatzinstanz mittels der Klasse
Paragraphund setzen Sie die Tiefe auf 2. - Erstellen Sie die vierte Absatzinstanz mittels der Klasse
Paragraphund setzen Sie die Tiefe auf 3. - Fügen Sie die neuen Absätze zur Absatzsammlung des
TextFramehinzu. - Speichern Sie die geänderte Präsentation.
// Instanziert eine Presentation-Klasse, die eine PPTX-Datei darstellt
Presentation pres = new Presentation();
try {
// Greift auf die erste Folie zu
ISlide slide = pres.getSlides().get_Item(0);
// Fügt ein Autoshape hinzu und greift darauf zu
IAutoShape aShp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf den Textframe des erstellten Autoshapes zu
ITextFrame text = aShp.addTextFrame("");
// Löscht den Standardabsatz
text.getParagraphs().clear();
// Fügt den ersten Absatz hinzu
IParagraph para1 = new Paragraph();
para1.setText("Content");
para1.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para1.getParagraphFormat().getBullet().setChar((char)8226);
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Setzt die Aufzählungsebene
para1.getParagraphFormat().setDepth((short)0);
// Fügt den zweiten Absatz hinzu
IParagraph para2 = new Paragraph();
para2.setText("Second Level");
para2.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para2.getParagraphFormat().getBullet().setChar('-');
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Setzt die Aufzählungsebene
para2.getParagraphFormat().setDepth((short)1);
// Fügt den dritten Absatz hinzu
IParagraph para3 = new Paragraph();
para3.setText("Third Level");
para3.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para3.getParagraphFormat().getBullet().setChar((char)8226);
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Setzt die Aufzählungsebene
para3.getParagraphFormat().setDepth((short)2);
// Fügt den vierten Absatz hinzu
IParagraph para4 = new Paragraph();
para4.setText("Fourth Level");
para4.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para4.getParagraphFormat().getBullet().setChar('-');
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Setzt die Aufzählungsebene
para4.getParagraphFormat().setDepth((short)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);
// Speichert die Präsentation als PPTX-Datei
pres.save("MultilevelBullet.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Einen Absatz mit einer benutzerdefinierten nummerierten Liste verwalten
Die Schnittstelle IBulletFormat stellt die Eigenschaft NumberedBulletStartWith und weitere bereit, die Ihnen ermöglichen, Absätze mit benutzerdefinierter Nummerierung oder Formatierung zu verwalten.
- 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 Autoshapes zu.
- Entfernen Sie den Standardabsatz im
TextFrame. - Erstellen Sie die erste Absatzinstanz mittels der Klasse Paragraph und setzen Sie NumberedBulletStartWith auf 2.
- Erstellen Sie die zweite Absatzinstanz mittels der Klasse
Paragraphund setzen SieNumberedBulletStartWithauf 3. - Erstellen Sie die dritte Absatzinstanz mittels der Klasse
Paragraphund setzen SieNumberedBulletStartWithauf 7. - Fügen Sie die neuen Absätze zur Absatzsammlung des
TextFramehinzu. - Speichern Sie die geänderte Präsentation.
Presentation presentation = new Presentation();
try {
IAutoShape shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Greift auf das Textframe des erstellten Autoshapes zu
ITextFrame textFrame = shape.getTextFrame();
// Entfernt den standardmäßig vorhandenen Absatz
textFrame.getParagraphs().removeAt(0);
// Erste Liste
Paragraph paragraph1 = new Paragraph();
paragraph1.setText("bullet 2");
paragraph1.getParagraphFormat().setDepth((short)4);
paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith((short)2);
paragraph1.getParagraphFormat().getBullet().setType(BulletType.Numbered);
textFrame.getParagraphs().add(paragraph1);
Paragraph paragraph2 = new Paragraph();
paragraph2.setText("bullet 3");
paragraph2.getParagraphFormat().setDepth((short)4);
paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith((short)3);
paragraph2.getParagraphFormat().getBullet().setType(BulletType.Numbered);
textFrame.getParagraphs().add(paragraph2);
Paragraph paragraph5 = new Paragraph();
paragraph5.setText("bullet 7");
paragraph5.getParagraphFormat().setDepth((short)4);
paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith((short)7);
paragraph5.getParagraphFormat().getBullet().setType(BulletType.Numbered);
textFrame.getParagraphs().add(paragraph5);
presentation.save("SetCustomBulletsNumber-slides.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Absatzeinzug festlegen
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der gewünschten Folie zu.
- Fügen Sie der Folie ein rechteckiges autoshape hinzu.
- Fügen Sie dem rechteckigen Autoshape ein TextFrame mit drei Absätzen hinzu.
- Blenden Sie die Rechtecklinien aus.
- Setzen Sie den Einzug für jeden Paragraph über dessen BulletOffset‑Eigenschaft.
- Schreiben Sie die geänderte Präsentation als PPT-Datei.
// Präsentationsklasse instanziieren
Presentation pres = new Presentation();
try {
// Erste Folie abrufen
ISlide sld = pres.getSlides().get_Item(0);
// Rechteckform hinzufügen
IAutoShape rect = sld.getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 500, 150);
// TextFrame zum Rechteck hinzufügen
ITextFrame tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line");
// Text so einstellen, dass er in die Form passt
tf.getTextFrameFormat().setAutofitType(TextAutofitType.Shape);
// Linien des Rechtecks ausblenden
rect.getLineFormat().getFillFormat().setFillType(FillType.Solid);
// Ersten Absatz im TextFrame abrufen und dessen Einzug setzen
IParagraph para1 = tf.getParagraphs().get_Item(0);
// Absatz-Aufzählungsstil und Symbol setzen
para1.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para1.getParagraphFormat().getBullet().setChar((char)8226);
para1.getParagraphFormat().setAlignment(TextAlignment.Left);
para1.getParagraphFormat().setDepth((short)2);
para1.getParagraphFormat().setIndent(30);
// Zweiten Absatz im TextFrame abrufen und dessen Einzug setzen
IParagraph para2 = tf.getParagraphs().get_Item(1);
para2.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para2.getParagraphFormat().getBullet().setChar((char)8226);
para2.getParagraphFormat().setAlignment(TextAlignment.Left);
para2.getParagraphFormat().setDepth((short)2);
para2.getParagraphFormat().setIndent(40);
// Dritten Absatz im TextFrame abrufen und dessen Einzug setzen
IParagraph para3 = tf.getParagraphs().get_Item(2);
para3.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para3.getParagraphFormat().getBullet().setChar((char)8226);
para3.getParagraphFormat().setAlignment(TextAlignment.Left);
para3.getParagraphFormat().setDepth((short)2);
para3.getParagraphFormat().setIndent(50);
//Präsentation auf Festplatte schreiben
pres.save("InOutDent_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Hängenden Einzug für einen Absatz festlegen
Dieser Java‑Code zeigt, wie Sie den hängenden Einzug für einen Absatz festlegen:
Presentation pres = new Presentation();
try {
IAutoShape autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 50, 250, 550, 150);
Paragraph para1 = new Paragraph();
para1.setText("Example");
Paragraph para2 = new Paragraph();
para2.setText("Set Hanging Indent for Paragraph");
Paragraph para3 = new Paragraph();
para3.setText("This code shows you how to set the hanging indent for a paragraph: ");
para2.getParagraphFormat().setMarginLeft(10f);
para3.getParagraphFormat().setMarginLeft(20f);
autoShape.getTextFrame().getParagraphs().add(para1);
autoShape.getTextFrame().getParagraphs().add(para2);
autoShape.getTextFrame().getParagraphs().add(para3);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
End‑Absatzlauf‑Eigenschaften 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 Schriftschnitt 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.
Presentation pres = new Presentation();
try {
IAutoShape shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 10, 10, 200, 250);
Paragraph para1 = new Paragraph();
para1.getPortions().add(new Portion("Sample text"));
Paragraph para2 = new Paragraph();
para2.getPortions().add(new Portion("Sample text 2"));
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(48);
portionFormat.setLatinFont(new FontData("Times New Roman"));
para2.setEndParagraphPortionFormat(portionFormat);
shape.getTextFrame().getParagraphs().add(para1);
shape.getTextFrame().getParagraphs().add(para2);
pres.save(resourcesOutputPath+"pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
HTML‑Text in Absätze importieren
Aspose.Slides bietet erweiterte Unterstützung für das Importieren von HTML‑Text in Absätze.
- Erzeugen Sie eine Instanz der Klasse Presentation.
- Greifen Sie über den Index auf die Referenz der gewünschten Folie zu.
- Fügen Sie der Folie ein autoshape hinzu.
- Fügen Sie dem
autoshapeein ITextFrame hinzu und greifen Sie darauf zu. - Entfernen Sie den Standardabsatz im
ITextFrame. - Lesen Sie die Quell‑HTML‑Datei mit einem TextReader ein.
- Erstellen Sie die erste Absatzinstanz mittels der Klasse Paragraph.
- Fügen Sie den HTML‑Dateiinhalt aus dem gelesenen TextReader zur ParagraphCollection des TextFrames hinzu.
- Speichern Sie die geänderte Präsentation.
// Leere Präsentationsinstanz erstellen
Presentation pres = new Presentation();
try {
// Zugriff auf die standardmäßige erste Folie der Präsentation
ISlide slide = pres.getSlides().get_Item(0);
// Hinzufügen des AutoShape, um den HTML-Inhalt aufzunehmen
IAutoShape ashape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 10, 10,
(float)pres.getSlideSize().getSize().getWidth() - 20, (float)pres.getSlideSize().getSize().getHeight() - 10);
ashape.getFillFormat().setFillType(FillType.NoFill);
// Textframe zum Shape hinzufügen
ashape.addTextFrame("");
// Alle Absätze im hinzugefügten Textframe löschen
ashape.getTextFrame().getParagraphs().clear();
// HTML-Datei mit StreamReader laden
TextReader tr = new StreamReader("file.html");
// Text aus dem HTML-StreamReader in den Textframe einfügen
ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd());
// Präsentation speichern
pres.save("output_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Absatztext nach HTML exportieren
Aspose.Slides bietet erweiterte Unterstützung für das Exportieren von Texten (in Absätzen enthalten) 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 gewünschten Folie zu.
- Greifen Sie auf das Shape zu, das den zu exportierenden Text enthält.
- Greifen Sie auf das TextFrame des Shapes zu.
- Erzeugen Sie eine Instanz von
StreamWriterund fügen Sie die neue HTML‑Datei hinzu. - Geben Sie einen Startindex an den StreamWriter an und exportieren Sie die gewünschten Absätze.
// Präsentationsdatei laden
Presentation pres = new Presentation("ExportingHTMLText.pptx");
try {
// Greift auf die standardmäßige erste Folie der Präsentation zu
ISlide slide = pres.getSlides().get_Item(0);
// Gewünschter Index
int index = 0;
// Zugriff auf das hinzugefügte Shape
IAutoShape ashape = (IAutoShape) slide.getShapes().get_Item(index);
// Erstelle Ausgabedatei HTML
OutputStream os = new FileOutputStream("output.html");
Writer writer = new OutputStreamWriter(os, "UTF-8");
//Extrahiere ersten Absatz als HTML
// Schreibe Absatzdaten nach HTML, indem Startindex und Gesamtanzahl der zu kopierenden Absätze angegeben werden
writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null));
writer.close();
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Einen Absatz als Bild speichern
In diesem Abschnitt untersuchen wir zwei Beispiele, die zeigen, wie ein Textabschnitt, dargestellt durch die IParagraph‑Schnittstelle, als Bild gespeichert werden kann. Beide Beispiele umfassen das Erhalten des Bildes eines Shapes, das den Absatz enthält, mittels der getImage‑Methoden der IShape‑Schnittstelle, das Berechnen der Begrenzungen des Absatzes innerhalb des Shapes und das Exportieren als Bitmap‑Bild. Diese Vorgehensweisen ermöglichen das Extrahieren bestimmter Textabschnitte aus PowerPoint‑Präsentationen und das Speichern als separate Bilder, was in verschiedenen Szenarien nützlich sein kann.
Angenommen, wir haben eine Präsentationsdatei namens sample.pptx mit einer Folie, wobei das erste Shape ein Textfeld mit drei Absätzen ist.

Example 1
In diesem Beispiel erhalten wir den zweiten Absatz als Bild. Dazu extrahieren wir das Bild des Shapes aus der ersten Folie der Präsentation und berechnen anschließend die Begrenzungen des zweiten Absatzes im Textframe des Shapes. Der Absatz wird dann auf ein neues Bitmap‑Bild neu gezeichnet, das im PNG‑Format gespeichert wird. Diese Methode ist besonders nützlich, wenn Sie einen bestimmten Absatz als separates Bild speichern möchten, dabei jedoch die genauen Abmessungen und die Formatierung des Textes beibehalten wollen.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape firstShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Form im Speicher als Bitmap speichern.
IImage shapeImage = firstShape.getImage();
ByteArrayOutputStream shapeImageStream = new ByteArrayOutputStream();
shapeImage.save(shapeImageStream, ImageFormat.Png);
shapeImage.dispose();
// Shape-Bitmap aus dem Speicher erstellen.
InputStream shapeImageInputStream = new ByteArrayInputStream(shapeImageStream.toByteArray());
BufferedImage shapeBitmap = ImageIO.read(shapeImageInputStream);
// Grenzen des zweiten Absatzes berechnen.
IParagraph secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
RectF paragraphRectangle = secondParagraph.getRect();
// Koordinaten und Größe für das Ausgabebild berechnen (Mindestgröße - 1x1 Pixel).
int imageX = (int) Math.floor(paragraphRectangle.left);
int imageY = (int) Math.floor(paragraphRectangle.top);
int imageWidth = Math.max(1, (int) Math.ceil(paragraphRectangle.width()));
int imageHeight = Math.max(1, (int) Math.ceil(paragraphRectangle.height()));
// Shape-Bitmap beschneiden, um ausschließlich das Absatz-Bitmap zu erhalten.
BufferedImage paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
ImageIO.write(paragraphBitmap, "png", new File("paragraph.png"));
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Das Ergebnis:

Example 2
In diesem Beispiel erweitern wir den vorherigen Ansatz, indem wir Skalierungsfaktoren zum Absatzbild hinzufügen. Das Shape wird aus der Präsentation extrahiert und als Bild mit einem Skalierungsfaktor von 2 gespeichert. Dadurch entsteht ein Ausgabe‑Bild mit höherer Auflösung beim Export des Absatzes. Die Absatzbegrenzungen werden anschließend unter Berücksichtigung des Skalierungsfaktors berechnet. Skalierung ist besonders nützlich, wenn ein detaillierteres Bild benötigt wird, beispielsweise für die Verwendung in hochwertigen Druckmaterialien.
float imageScaleX = 2f;
float imageScaleY = imageScaleX;
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape firstShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Shape im Speicher als Bitmap mit Skalierung speichern.
IImage shapeImage = firstShape.getImage(ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY);
ByteArrayOutputStream shapeImageStream = new ByteArrayOutputStream();
shapeImage.save(shapeImageStream, ImageFormat.Png);
shapeImage.dispose();
// Shape-Bitmap aus dem Speicher erstellen.
InputStream shapeImageInputStream = new ByteArrayInputStream(shapeImageStream.toByteArray());
BufferedImage shapeBitmap = ImageIO.read(shapeImageInputStream);
// Grenzen des zweiten Absatzes berechnen.
IParagraph secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
RectF paragraphRectangle = secondParagraph.getRect();
paragraphRectangle.set(
paragraphRectangle.left * imageScaleX,
paragraphRectangle.top * imageScaleY,
paragraphRectangle.right * imageScaleX,
paragraphRectangle.bottom * imageScaleY
);
// Koordinaten und Größe für das Ausgabebild berechnen (Mindestgröße – 1x1 Pixel).
int imageX = (int) Math.floor(paragraphRectangle.left);
int imageY = (int) Math.floor(paragraphRectangle.top);
int imageWidth = Math.max(1, (int) Math.ceil(paragraphRectangle.width()));
int imageHeight = Math.max(1, (int) Math.ceil(paragraphRectangle.height()));
// Shape-Bitmap zuschneiden, um ausschließlich das Absatz-Bitmap zu erhalten.
BufferedImage paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
ImageIO.write(paragraphBitmap, "png", new File("paragraph.png"));
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
FAQ
Kann ich den Zeilenumbruch innerhalb eines Textframes vollständig deaktivieren?
Ja. Verwenden Sie die Zeilenumbruch‑Einstellung des Textframes (setWrapText), um den Umbruch zu deaktivieren, sodass Zeilen nicht an den Rahmenrändern umgebrochen werden.
Wie kann ich die genauen Grenzen eines bestimmten Absatzes auf der Folie erhalten?
Sie können das Begrenzungsrechteck des Absatzes (und sogar eines einzelnen Abschnitts) abrufen, um seine genaue Position und Größe auf der Folie zu kennen.
Wo wird die Absatzausrichtung (links/rechts/zentriert/Blocksatz) gesteuert?
Alignment ist eine Absatz‑Ebene‑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 Portionsebene festgelegt (PortionFormat.setLanguageId), sodass mehrere Sprachen innerhalb eines einzelnen Absatzes coexistieren können.