Lettertypen beheren in presentaties met PHP

Beheer Lettertypegerelateerde Eigenschappen

Om de lettertype‑eigenschappen van een alinea te beheren met Aspose.Slides voor PHP via Java:

  1. Maak een instantie van de Presentation klasse aan.
  2. Haal een referentie naar een dia op door gebruik te maken van de index.
  3. Toegang tot de Placeholder vormen op de dia en cast ze naar AutoShape.
  4. Haal de Paragraph op uit het TextFrame dat door de AutoShape wordt blootgesteld.
  5. Schik de alinea uit.
  6. Toegang tot de tekst [Portion] van een [Paragraph].
  7. Definieer het lettertype met [FontData] en stel het Font van de tekst-[Portion] dienovereenkomstig in.
    1. Stel het lettertype in op vet.
    2. Stel het lettertype in op cursief.
  8. Stel de kleur van het lettertype in met behulp van het [FillFormat] dat beschikbaar wordt gesteld door het [Portion]-object.
  9. Sla de gewijzigde presentatie op als een PPTX‑bestand.

De implementatie van de bovenstaande stappen staat hieronder. Het neemt een niet‑aangepaste presentatie en formatteert de lettertypen op één van de dia’s. De screenshots die volgen tonen het invoerbestand en hoe de code‑fragmenten het wijzigen. De code wijzigt het lettertype, de kleur en de stijl van het lettertype.

todo:image_alt_text
Figuur: De tekst in het invoerbestand
todo:image_alt_text
Figuur: Dezelfde tekst met bijgewerkte opmaak
  # Een Presentation‑object maken dat een PPTX‑bestand vertegenwoordigt
  $pres = new Presentation("FontProperties.pptx");
  try {
    # Een dia benaderen met behulp van zijn positie
    $slide = $pres->getSlides()->get_Item(0);
    # De eerste en tweede placeholder in de dia benaderen en typecasten naar AutoShape
    $tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
    $tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
    # De eerste alinea benaderen
    $para1 = $tf1->getParagraphs()->get_Item(0);
    $para2 = $tf2->getParagraphs()->get_Item(0);
    # De alinea uitlijnen
    $para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
    # Het eerste gedeelte benaderen
    $port1 = $para1->getPortions()->get_Item(0);
    $port2 = $para2->getPortions()->get_Item(0);
    # Nieuwe lettertypen definiëren
    $fd1 = new FontData("Elephant");
    $fd2 = new FontData("Castellar");
    # Nieuwe lettertypen toewijzen aan het gedeelte
    $port1->getPortionFormat()->setLatinFont($fd1);
    $port2->getPortionFormat()->setLatinFont($fd2);
    # Lettertype vet instellen
    $port1->getPortionFormat()->setFontBold(NullableBool::True);
    $port2->getPortionFormat()->setFontBold(NullableBool::True);
    # Lettertype cursief instellen
    $port1->getPortionFormat()->setFontItalic(NullableBool::True);
    $port2->getPortionFormat()->setFontItalic(NullableBool::True);
    # Letterkleur instellen
    $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);
    # De PPTX opslaan op schijf
    $pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Stel Tekstlettertype‑eigenschappen In

Om een tekstvak te maken en de lettertype‑eigenschappen van de tekst erin in te stellen:

  1. Maak een instantie van de Presentation klasse aan.
  2. Haal een referentie naar een dia op door gebruik te maken van de index.
  3. Voeg een [AutoShape] van het type Rectangle toe aan de dia.
  4. Verwijder de vullingsstijl die aan de [AutoShape] is gekoppeld.
  5. Toegang tot het [TextFrame] van de [AutoShape].
  6. Voeg enige tekst toe aan het [TextFrame].
  7. Toegang tot het [Portion]-object dat bij het [TextFrame] hoort.
  8. Definieer het lettertype dat voor de [Portion] moet worden gebruikt.
  9. Stel andere lettertype‑eigenschappen in, zoals vet, cursief, onderstrepen, kleur en hoogte, met behulp van de relevante eigenschappen die door het [Portion]-object worden blootgesteld.
  10. Schrijf de gewijzigde presentatie weg als een PPTX‑bestand.

De implementatie van de bovenstaande stappen staat hieronder.

todo:image_alt_text
Figuur: Tekst met enkele lettertype‑eigenschappen ingesteld door Aspose.Slides voor PHP via Java
  # Een Presentation‑object maken dat een PPTX‑bestand vertegenwoordigt
  $pres = new Presentation();
  try {
    # De eerste dia ophalen
    $sld = $pres->getSlides()->get_Item(0);
    # Een AutoShape van het type Rechthoek toevoegen
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    # Eventuele vullingsstijl die aan de AutoShape is gekoppeld verwijderen
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Het TextFrame benaderen dat bij de AutoShape hoort
    $tf = $ashp->getTextFrame();
    $tf->setText("Aspose TextBox");
    # Het Portion benaderen dat bij het TextFrame hoort
    $port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    # Het lettertype voor het Portion instellen
    $port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
    # De eigenschap Vet van het lettertype instellen
    $port->getPortionFormat()->setFontBold(NullableBool::True);
    # De eigenschap Cursief van het lettertype instellen
    $port->getPortionFormat()->setFontItalic(NullableBool::True);
    # De eigenschap Onderstrepen van het lettertype instellen
    $port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
    # De hoogte van het lettertype instellen
    $port->getPortionFormat()->setFontHeight(25);
    # De kleur van het lettertype instellen
    $port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    # De presentatie opslaan op schijf
    $pres->save("pptxFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }