Spravovat ink objekty prezentace v PHP

Úvod

PowerPoint poskytuje funkci ink, která vám umožňuje kreslit nestandardní tvary, jež lze použít k zvýraznění dalších objektů, zobrazování spojení a procesů a přitáhnout pozornost k určitým položkám na snímku.

Aspose.Slides poskytuje všechny typy Ink (např. třída Ink) které potřebujete pro vytváření a správu ink objektů.

Rozdíly mezi běžnými objekty a Ink objekty

Objekty na snímku PowerPointu jsou obvykle reprezentovány objekty tvaru. Objekt tvaru v nejjednodušší podobě představuje kontejner, který určuje oblast samotného objektu (jeho rámec) spolu s jeho vlastnostmi. Poslední zahrnuje velikost oblasti kontejneru, tvar kontejneru, pozadí kontejneru atd. Pro informace viz Shape Layout Format.

Nicméně když PowerPoint pracuje s ink objektem, ignoruje všechny vlastnosti rámce objektu (kontejneru) kromě jeho velikosti. Velikost oblasti kontejneru je určena standardními hodnotami width a height:

ink_powerpoint1

Inkshape Stopy

Stopa je základní prvek nebo standard používaný k zaznamenání trajektorie pera, když uživatel píše digitální ink. Stopy jsou záznamy popisující sekvence spojených bodů.

Nejjednodušší forma kódování specifikuje souřadnice X a Y každého vzorkovacího bodu. Když jsou všechny spojené body vykresleny, vytvoří se obrázek jako tento:

ink_powerpoint2

Vlastnosti štětce pro kreslení

Můžete použít štětec k nakreslení čar spojujících body elementů stopy. Štětec má vlastní barvu a velikost, odpovídající vlastnostem Brush.Color a Brush.Size.

Nastavit barvu Ink štětce

Tento PHP kód ukazuje, jak nastavit barvu štětce:

  $pres = new Presentation("pres.pptx");
  try {
    $ink = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $traces = $ink->getTraces();
    $brush = $traces[0]->getBrush();
    $brushColor = $brush->getColor();
    $brush->setColor(java("java.awt.Color")->RED);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Nastavit velikost Ink štětce

Tento PHP kód ukazuje, jak nastavit velikost štětce:

  $pres = new Presentation("pres.pptx");
  try {
    $ink = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $traces = $ink->getTraces();
    $brush = $traces[0]->getBrush();
    $brushSize = $brush->getSize();
    $brush->setSize(new Java("java.awt.Dimension", 5, 10));
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Obecně šířka a výška štětce neodpovídají, takže PowerPoint nezobrazuje velikost štětce (datová část je šedá). Když se šířka a výška štětce shodují, PowerPoint zobrazí jeho velikost takto:

ink_powerpoint3

Pro přehlednost zvýšíme výšku ink objektu a prozkoumáme důležité rozměry:

ink_powerpoint4

Kontejner (rámec) nebere v úvahu velikost štětců – vždy předpokládá, že tloušťka čáry je nula (viz poslední obrázek).

Proto musíme při určení viditelné oblasti celého ink objektu zohlednit velikost štětců stop. Zde byl cílový objekt (stopa ručně psaného textu) přizpůsoben velikosti kontejneru (rámce). Když se velikost kontejneru (rámce) změní, velikost štětce zůstane konstantní a naopak.

ink_powerpoint5

PowerPoint vykazuje stejné chování při práci s texty:

ink_powerpoint6

Další čtení