Personnaliser les zones de tracé des graphiques de présentation en PHP
Obtenir la largeur et la hauteur d’une zone de tracé de graphique
Aspose.Slides for PHP via Java fournit une API simple pour .
- Créez une instance de la classe Presentation.
- Accédez à la première diapositive.
- Ajoutez un graphique avec des données par défaut.
- Appelez la méthode Chart.validateChartLayout avant d’obtenir les valeurs réelles.
- Obtient la position X réelle (gauche) de l’élément du graphique par rapport au coin supérieur gauche du graphique.
- Obtient le haut réel de l’élément du graphique par rapport au coin supérieur gauche du graphique.
- Obtient la largeur réelle de l’élément du graphique.
- Obtient la hauteur réelle de l’élément du graphique.
# Créer une instance de la classe Presentation
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 500, 350);
$chart->validateChartLayout();
$x = $chart->getPlotArea()->getActualX();
$y = $chart->getPlotArea()->getActualY();
$w = $chart->getPlotArea()->getActualWidth();
$h = $chart->getPlotArea()->getActualHeight();
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Définir le mode de disposition d’une zone de tracé de graphique
Aspose.Slides for PHP via Java fournit une API simple pour définir le mode de disposition de la zone de tracé du graphique. Les méthodes setLayoutTargetType et getLayoutTargetType ont été ajoutées à la classe ChartPlotArea. Si la disposition de la zone de tracé est définie manuellement, cette propriété indique s’il faut disposer la zone de tracé par son intérieur (sans les axes et les étiquettes d’axe) ou par son extérieur (y compris les axes et les étiquettes d’axe). Deux valeurs possibles sont définies dans l’énumération LayoutTargetType.
- LayoutTargetType::Inner - indique que la taille de la zone de tracé détermine la taille de la zone de tracé, sans inclure les marques de graduation et les étiquettes d’axe.
- LayoutTargetType::Outer - indique que la taille de la zone de tracé détermine la taille de la zone de tracé, les marques de graduation et les étiquettes d’axe.
Un exemple de code est fourni ci‑dessous.
# Créer une instance de la classe Presentation
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 20, 100, 600, 400);
$chart->getPlotArea()->setX(0.2);
$chart->getPlotArea()->setY(0.2);
$chart->getPlotArea()->setWidth(0.7);
$chart->getPlotArea()->setHeight(0.7);
$chart->getPlotArea()->setLayoutTargetType(LayoutTargetType::Inner);
$pres->save("SetLayoutMode_outer.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Dans quelles unités sont retournés les x réels, y réels, largeur réelle et hauteur réelle ?
En points ; 1 pouce = 72 points. Ce sont les unités de coordonnées d’Aspose.Slides.
En quoi la zone de tracé diffère‑t‑elle de la zone de graphique en termes de contenu ?
La zone de tracé est la région de dessin des données (séries, quadrillages, lignes de tendance, etc.) ; la zone de graphique comprend les éléments environnants (titre, légende, etc.). Dans les graphiques 3D, la zone de tracé inclut également les murs/plancher et les axes.
Comment les x, y, largeur et hauteur de la zone de tracé sont‑ils interprétés lorsque la disposition est manuelle ?
Ils sont exprimés en fractions (0–1) de la taille globale du graphique ; dans ce mode, le positionnement automatique est désactivé et les fractions que vous définissez sont utilisées.
Pourquoi la position de la zone de tracé a‑t‑elle changé après l’ajout ou le déplacement de la légende ?
La légende se trouve dans la zone de graphique à l’extérieur de la zone de tracé mais affecte la disposition et l’espace disponible, de sorte que la zone de tracé peut se déplacer lorsque le positionnement automatique est en vigueur. (C’est le comportement standard des graphiques PowerPoint.)