Schriftarten in Präsentationen mit PHP verwalten

Schriftbezogene Eigenschaften verwalten

So verwalten Sie die Schrifteigenschaften eines Absatzes mit Aspose.Slides für PHP via Java:

  1. Erstellen Sie eine Instanz der Presentation-Klasse.
  2. Holen Sie sich die Referenz einer Folie, indem Sie ihren Index verwenden.
  3. Greifen Sie auf die Placeholder-Formen in der Folie zu und casten Sie sie zu AutoShape.
  4. Holen Sie das Paragraph aus dem TextFrame, das von AutoShape bereitgestellt wird.
  5. Richten Sie den Absatz aus.
  6. Greifen Sie auf das Text-Portion-Objekt eines Paragraph zu.
  7. Definieren Sie die Schriftart mit FontData und setzen Sie die Font der TextPortion entsprechend.
    1. Setzen Sie die Schriftart auf fett.
    2. Setzen Sie die Schriftart auf kursiv.
  8. Setzen Sie die Schriftfarbe mit dem über das Portion-Objekt bereitgestellten FillFormat.
  9. Speichern Sie die modifizierte Präsentation als PPTX‑Datei.

Die Implementierung der oben genannten Schritte finden Sie unten. Sie nimmt eine einfache Präsentation und formatiert die Schriften auf einer der Folien. Die nachfolgenden Screenshots zeigen die Eingabedatei und wie die Code‑Snippets sie verändern. Der Code ändert die Schriftart, die Farbe und den Schriftstil.

todo:image_alt_text
Abbildung: Der Text in der Eingabedatei
todo:image_alt_text
Abbildung: Der gleiche Text mit aktualisierter Formatierung
  # Instanziiere ein Presentation-Objekt, das eine PPTX-Datei repräsentiert
  $pres = new Presentation("FontProperties.pptx");
  try {
    # Zugriff auf eine Folie anhand ihrer Position
    $slide = $pres->getSlides()->get_Item(0);
    # Zugriff auf den ersten und zweiten Platzhalter in der Folie und Typumwandlung zu AutoShape
    $tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
    $tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
    # Zugriff auf den ersten Absatz
    $para1 = $tf1->getParagraphs()->get_Item(0);
    $para2 = $tf2->getParagraphs()->get_Item(0);
    # Ausrichtung des Absatzes auf Blocksatz
    $para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
    # Zugriff auf den ersten Teil
    $port1 = $para1->getPortions()->get_Item(0);
    $port2 = $para2->getPortions()->get_Item(0);
    # Definiere neue Schriftarten
    $fd1 = new FontData("Elephant");
    $fd2 = new FontData("Castellar");
    # Weist neue Schriftarten der Portion zu
    $port1->getPortionFormat()->setLatinFont($fd1);
    $port2->getPortionFormat()->setLatinFont($fd2);
    # Schrift auf Fett setzen
    $port1->getPortionFormat()->setFontBold(NullableBool::True);
    $port2->getPortionFormat()->setFontBold(NullableBool::True);
    # Schrift auf Kursiv setzen
    $port1->getPortionFormat()->setFontItalic(NullableBool::True);
    $port2->getPortionFormat()->setFontItalic(NullableBool::True);
    # Schriftfarbe setzen
    $port1->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port1->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $port2->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port2->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
    # Speichere die PPTX-Datei auf dem Datenträger
    $pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Text-Schrifteigenschaften festlegen

So erstellen Sie ein Textfeld und setzen die Schrifteigenschaften des darin enthaltenen Textes:

  1. Erstellen Sie eine Instanz der Presentation-Klasse.
  2. Holen Sie die Referenz einer Folie, indem Sie ihren Index verwenden.
  3. Fügen Sie der Folie ein AutoShape-Objekt des Typs Rectangle hinzu.
  4. Entfernen Sie den Füllstil, der mit dem AutoShape verbunden ist.
  5. Greifen Sie auf den TextFrame des AutoShape zu.
  6. Fügen Sie dem TextFrame etwas Text hinzu.
  7. Greifen Sie auf das Portion-Objekt zu, das mit dem TextFrame verknüpft ist.
  8. Definieren Sie die Schriftart, die für das Portion verwendet werden soll.
  9. Setzen Sie weitere Schrifteigenschaften wie fett, kursiv, unterstrichen, Farbe und Höhe über die entsprechenden Eigenschaften des Portion-Objekts.
  10. Schreiben Sie die modifizierte Präsentation als PPTX‑Datei.

Die Implementierung der oben genannten Schritte finden Sie unten.

todo:image_alt_text
Abbildung: Text mit einigen von Aspose.Slides für PHP via Java gesetzten Schrifteigenschaften
  # Instanziiere ein Presentation-Objekt, das eine PPTX-Datei repräsentiert
  $pres = new Presentation();
  try {
    # Hole die erste Folie
    $sld = $pres->getSlides()->get_Item(0);
    # Füge eine AutoShape vom Typ Rectangle hinzu
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    # Entferne jeglichen Füllstil, der mit der AutoShape verbunden ist
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Greife auf das TextFrame zu, das mit der AutoShape verknüpft ist
    $tf = $ashp->getTextFrame();
    $tf->setText("Aspose TextBox");
    # Greife auf die Portion zu, die mit dem TextFrame verknüpft ist
    $port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    # Setze die Schriftart für die Portion
    $port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
    # Setze die Fettdruck-Eigenschaft der Schrift
    $port->getPortionFormat()->setFontBold(NullableBool::True);
    # Setze die Kursiv-Eigenschaft der Schrift
    $port->getPortionFormat()->setFontItalic(NullableBool::True);
    # Setze die Unterstreichungs-Eigenschaft der Schrift
    $port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
    # Setze die Höhe der Schrift
    $port->getPortionFormat()->setFontHeight(25);
    # Setze die Farbe der Schrift
    $port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    # Speichere die Präsentation auf dem Datenträger
    $pres->save("pptxFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }