PowerPoint tintobjektumok kezelése PHP-ben
Bevezetés
A PowerPoint egy tintával kapcsolatos funkciót kínál, amely lehetővé teszi szabadformájú vonalak rajzolását. A tinta használható más objektumok kiemelésére, kapcsolatok és folyamatok megjelenítésére, valamint egyes elemek felhívására a dián.
Az Aspose.Slides biztosítja a tintobjektumokkal való munkához szükséges típusokat. Például az Ink osztály egy tintobjektumot képvisel egy dián.
A szabályos objektumok és a tintobjektumok közötti különbségek
A PowerPoint-diákon lévő objektumok általában Shape objektumokkal vannak ábrázolva. Egyszerű formájukban a shape egy konténer, amely meghatározza az objektum tényleges területét (keretét), valamint olyan tulajdonságokat, mint a konténer mérete, alakja és háttérszíne. További információkért lásd a Shape Layout Format cikket.
Azonban amikor a PowerPoint egy tintobjektummal dolgozik, figyelmen kívül hagyja a keret (konténer) összes tulajdonságát, kivéve annak méretét. A konténer terület mérete a szabványos Shape.getWidth és Shape.getHeight metódusokkal határozható meg:

Tintavonalak
A tintavonal egy alapvető elem, amely a toll mozgását rögzíti, amikor a felhasználó digitális tintát ír. A vonal egy összekapcsolt pontsorozatot tárol.
A legegyszerűbb kódolási forma minden mintapont X és Y koordinátáját adja meg. Amikor az összes összekapcsolt pontot megjelenítik, egy ilyen képet kapunk:

Ecsettulajdonságok a rajzoláshoz
Az ecsetet a tintavonal pontjait összekötő vonalak rajzolására használják. Az ecset saját színnel és mérettel rendelkezik, amelyet a InkBrush.getColor és InkBrush.getSize metódusok képviselnek.
Tintaecset színének beállítása
Ez a PHP kód bemutatja, hogyan állítható be egy tintaecset színe:
$presentation = new Presentation("pres.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$ink = $slide->getShapes()->get_Item(0);
$brush = $ink->getTraces()[0]->getBrush();
$brush->setColor(java("java.awt.Color")->RED);
} finally {
$presentation->dispose();
}
Tintaecset méretének beállítása
Ez a PHP kód bemutatja, hogyan állítható be egy tintaecset mérete:
$presentation = new Presentation("pres.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$ink = $slide->getShapes()->get_Item(0);
$brush = $ink->getTraces()[0]->getBrush();
$brushSize = new Java("java.awt.Dimension", 5, 10);
$brush->setSize($brushSize);
} finally {
$presentation->dispose();
}
Általában az ecset szélessége és magassága nem egyezik, ezért a PowerPoint nem jeleníti meg az ecset méretét (a megfelelő adatmező szürke). Ha az ecset szélessége és magassága megegyezik, a PowerPoint a méretet a következő módon jeleníti meg:

A szemléltetés kedvéért növeljük meg a tintobjektum magasságát, és tekintsük át a fontos méreteket:

A konténer (keret) nem veszi figyelembe az ecsetek méretét – mindig úgy gondolja, hogy a vonalvastagság nulla (lásd a fenti képet).
Ezért a teljes tintobjektum látható területének meghatározásához figyelembe kell venni az egyes vonalak ecsetméretét. Itt a célobjektum (a kézírásos szövegvonal) a konténer (keret) méretéhez van skálázva. Amikor a konténer mérete változik, az ecsetméret állandó marad, és fordítva.

A PowerPoint hasonló viselkedést alkalmaz a szövegobjektumoknál is:

A tinta megjelenésének vezérlése exportálás és renderelés során
Az Aspose.Slides a InkOptions osztályt biztosítja a tintobjektumok exportált vagy renderelt kimenetben való megjelenésének szabályozására. A tulajdonságait használhatja a tinta teljes elrejtésére vagy a tintaecset maszkműveletek értelmezésének módosítására.
A tintabeállítások több kimeneti típus export- vagy renderelési opcióin keresztül érhetők el:
| Kimenet | Tintabeállítások tulajdonsága |
|---|---|
| PdfOptions.getInkOptions | |
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Diakép | RenderingOptions.getInkOptions |
A következő InkOptions metódusok ugyanazokat a két beállítást teszik közzé:
- InkOptions.getHideInk meghatározza, hogy a tintobjektumok szerepelnek-e a kimenetben. Alapértelmezett értéke
false. - InkOptions.getInterpretMaskOpAsOpacity meghatározza, hogy egy maszkművelet opacitásként legyen-e értelmezve a tintaecset renderelésekor. Alapértelmezett értéke
true; a InkOptions.setInterpretMaskOpAsOpacityfalseértékkel való meghívása esetén a ROP művelet kerül használatra.
Tintobjektumok elrejtése PDF-kimenetben
Alapértelmezés szerint a tintobjektumok láthatóak maradnak exportáláskor. Egy tiszta kimenet létrehozásához, amely nem tartalmaz kézírásos megjegyzéseket vagy egyéb tintatartalmat, hívja meg a InkOptions.setHideInk metódust true értékkel.
Az alábbi PHP példa egy prezentációt PDF-be exportál, miközben minden tintobjektumot elrejt:
$presentation = new Presentation("presentation.pptx");
try {
$pdfOptions = new PdfOptions();
$pdfOptions->getInkOptions()->setHideInk(true);
$presentation->save("presentation_without_ink.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Tintobjektumok elrejtése dia képként való renderelésekor
A tintobjektumok elrejtéséhez a diákat bitmap képekké renderelve, konfigurálja a RenderingOptions.getInkOptions beállítást, és adja át a renderelési opciókat a Slide.getImage metódusnak.
Az alábbi PHP példa az első diát PNG képként rendereli tintobjektumok nélkül:
$presentation = new Presentation("presentation.pptx");
try {
$renderingOptions = new RenderingOptions();
$renderingOptions->getInkOptions()->setHideInk(true);
$slide = $presentation->getSlides()->get_Item(0);
$image = $slide->getImage($renderingOptions);
try {
$image->save("slide_without_ink.png", ImageFormat::Png);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Tintamaskaraffent renderelésének vezérlése
A InkOptions.getInterpretMaskOpAsOpacity beállítás szabályozza, hogyan vannak értelmezve a maszkműveletek tintaecsetek renderelésekor. Alapértelmezett értéke true, ami opacitást használ. A ROP művelet használatához hívja meg a InkOptions.setInterpretMaskOpAsOpacity metódust false értékkel.
Az alábbi PHP példa egy diát SVG-be exportál, és ROP-alapú renderelést alkalmaz a tintamaskara módszerre:
$presentation = new Presentation("presentation.pptx");
try {
$svgOptions = new SVGOptions();
$svgOptions->getInkOptions()->setInterpretMaskOpAsOpacity(false);
$outputStream = new Java("java.io.FileOutputStream", "slide.svg");
try {
$slide = $presentation->getSlides()->get_Item(0);
$slide->writeAsSvg($outputStream, $svgOptions);
} finally {
$outputStream->close();
}
} finally {
$presentation->dispose();
}
Ugyanaz a beállítás alkalmazható a TiffOptions.getInkOptions segítségével is, amikor egy prezentációt exportál vagy egy diát TIFF-re renderel.
Döntés a tinta elrejtéséről vagy megtartásáról
Ha egy megjegyzésekkel ellátott prezentáció tiszta verziójára van szükség a terjesztéshez, anélkül, hogy a megjegyzésjelek megmaradnának, hívja meg a InkOptions.setHideInk metódust true értékkel exportáláskor.
Hagyja a InkOptions.getHideInk beállítást alapértelmezett false értéken, ha a tinta megjegyzései a szándékolt tartalom részét képezik, például felülvizsgálati megjegyzések, kézírásos jegyzetek, kiemelések vagy rajzok, amelyeknek láthatónak kell maradniuk a kimeneti eredményben. Ez lehetővé teszi, hogy ugyanabból a prezentációból külön felülvizsgálati és végleges kimeneteket generáljanak anélkül, hogy módosítanák a forrás tintobjektumokat.
GYIK
Megváltoztathatom egy meglévő tintavonal színét vagy méretét?
Igen. Szerezze be a vonalat a Ink.getTraces segítségével, majd módosítsa a InkTrace.getBrush értékét. Hívja meg a InkBrush.setColor vagy a InkBrush.setSize metódust az ecset módosításához.
A tinta elrejtése módosítja a forrás prezentációt?
Nem. A InkOptions.setHideInk meghívása csak a renderelt vagy exportált eredményt befolyásolja; nem távolítja el vagy módosítja a tintobjektumokat a forrás prezentációban.
Mely exportformátumok támogatják a tintabeállításokat?
A tintabeállításokat konfigurálhatja PDF, HTML, SVG, TIFF és bitmap diákképek esetén a fent bemutatott megfelelő export- vagy renderelési opciók használatával.
További olvasmányok
- A formákról általánosságban a PowerPoint Shapes szekcióban olvashat.
- A hatékony értékekkel kapcsolatban lásd a Shape Effective Properties oldalt.
- A PDF export részletei: Convert PPT and PPTX to PDF.
- A HTML export részletei: Convert PowerPoint Presentations to HTML.
- Az SVG export részletei: Render Presentation Slides as SVG Images.
- A TIFF export részletei: Convert PowerPoint Presentations to TIFF.
- A dia képpé konvertálás részletei: Convert Presentation Slides to Images.