Hantera teckensnitt i presentationer med PHP

Hantera teckensnittsrelaterade egenskaper

För att hantera teckensnittsegenskaper för ett stycke med Aspose.Slides för PHP via Java:

  1. Skapa en instans av klassen Presentation.
  2. Hämta en bilds referens genom att använda dess index.
  3. Åtkomst till Placeholder‑formerna i bilden och typomvandla dem till AutoShape.
  4. Hämta Paragraph från TextFrame som exponeras av AutoShape.
  5. Justera stycket.
  6. Åtkomst till en Paragraphs text Portion.
  7. Definiera teckensnittet med hjälp av FontData och sätt Font för text‑Portion därefter.
    1. Sätt teckensnittet till fetstil.
    2. Sätt teckensnittet till kursiv.
  8. Ställ in teckensnittsfärgen med hjälp av FillFormat som exponeras av Portion‑objektet.
  9. Spara den ändrade presentationen till en PPTX‑fil.

Implementeringen av stegen ovan visas nedan. Den tar en enkel presentation och formaterar teckensnitten på en av bilderna. Skärmbilderna som följer visar indatafilen och hur kodsnuttarna ändrar den. Koden ändrar teckensnittet, färgen och teckensnittsstilen.

todo:image_alt_text
Figur: Texten i indatafilen
todo:image_alt_text
Figur: Samma text med uppdaterad formatering
  # Instansiera ett Presentation-objekt som representerar en PPTX-fil
  $pres = new Presentation("FontProperties.pptx");
  try {
    # Åtkomst till en bild med dess positionsindex
    $slide = $pres->getSlides()->get_Item(0);
    # Åtkomst till den första och andra platshållaren i bilden och typomvandla den till AutoShape
    $tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
    $tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
    # Åtkomst till det första stycket
    $para1 = $tf1->getParagraphs()->get_Item(0);
    $para2 = $tf2->getParagraphs()->get_Item(0);
    # Justera stycket
    $para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
    # Åtkomst till den första delen
    $port1 = $para1->getPortions()->get_Item(0);
    $port2 = $para2->getPortions()->get_Item(0);
    # Definiera nya teckensnitt
    $fd1 = new FontData("Elephant");
    $fd2 = new FontData("Castellar");
    # Tilldela nya teckensnitt till delen
    $port1->getPortionFormat()->setLatinFont($fd1);
    $port2->getPortionFormat()->setLatinFont($fd2);
    # Ställ in teckensnittet till fetstil
    $port1->getPortionFormat()->setFontBold(NullableBool::True);
    $port2->getPortionFormat()->setFontBold(NullableBool::True);
    # Ställ in teckensnittet till kursiv
    $port1->getPortionFormat()->setFontItalic(NullableBool::True);
    $port2->getPortionFormat()->setFontItalic(NullableBool::True);
    # Ställ in teckensnittsfärg
    $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);
    # Spara PPTX-filen till disk
    $pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Ställ in textteckensnittsegenskaper

För att skapa en textruta och ställa in teckensnittsegenskaper för texten i den:

  1. Skapa en instans av klassen Presentation.
  2. Hämta referensen till en bild genom att använda dess index.
  3. Lägg till en AutoShape av typen Rectangle till bilden.
  4. Ta bort fyllningsstilen som är associerad med AutoShape.
  5. Åtkomst till AutoShape‑objektets TextFrame.
  6. Lägg till lite text i TextFrame.
  7. Åtkomst till Portion‑objektet som är associerat med TextFrame.
  8. Definiera teckensnittet som ska användas för Portion.
  9. Ställ in andra teckensnittsegenskaper som fetstil, kursiv, understrykning, färg och storlek med hjälp av de relevanta egenskaperna som exponeras av Portion‑objektet.
  10. Skriv den ändrade presentationen som en PPTX‑fil.

Implementeringen av stegen ovan visas nedan.

todo:image_alt_text
Figur: Text med några teckensnittsegenskaper inställda av Aspose.Slides för PHP via Java
  # Instansiera ett Presentation-objekt som representerar en PPTX-fil
  $pres = new Presentation();
  try {
    # Hämta första bilden
    $sld = $pres->getSlides()->get_Item(0);
    # Lägg till en AutoShape av typen Rectangle
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    # Ta bort eventuell fyllningsstil som är associerad med AutoShape
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Åtkomst till TextFrame som är associerad med AutoShape
    $tf = $ashp->getTextFrame();
    $tf->setText("Aspose TextBox");
    # Åtkomst till Portion som är associerad med TextFrame
    $port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    # Ställ in teckensnittet för Portionen
    $port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
    # Ställ in fetstil för teckensnittet
    $port->getPortionFormat()->setFontBold(NullableBool::True);
    # Ställ in kursiv för teckensnittet
    $port->getPortionFormat()->setFontItalic(NullableBool::True);
    # Ställ in understrykning för teckensnittet
    $port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
    # Ställ in teckensnittets storlek
    $port->getPortionFormat()->setFontHeight(25);
    # Ställ in teckensnittets färg
    $port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    # Spara presentationen till disk
    $pres->save("pptxFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }