Je commence à penser que je ne suis tout simplement pas capable de voir l'évidence. Étant donné le code suivant, je voudrais tirer une ligne des coordonnées [x1, y1] à [x2, y2].Tracer une ligne entre deux points dans la diapositive PowerPoint à l'aide d'Apache POI
int x1 = 20;
int y1 = 10;
int x2 = 30;
int y2 = 5;
XSLFSlide pptSlide = ...
XSLFAutoShape shape = pptSlide.createAutoShape();
shape.setShapeType(ShapeType.LINE);
shape.setAnchor(x1, y1, <width>, <height>);
D'après ce que je peux voir la ligne commence à l'ancre [x1, y1] mais je dois entrer une largeur et la hauteur au lieu des coordonnées du point cible. Mais le composant y de la coordonnée cible est inférieur à celui de la coordonnée de démarrage, donc j'ai essayé de définir la hauteur à une valeur négative, ce qui entraîne une erreur lorsque PowerPoint essaie d'ouvrir le document PPTX généré ("PowerPoint a trouvé un problème avec le contenu dans le fichier out.pptx. ");
Je suis assez sûr que je suis simplement en train de négliger la solution évidente à ceci alors quelqu'un peut-il m'aider à trouver comment dessiner une ligne pour un point dans le document à un autre point?
En utilisant votre code le rectangle commence à haut x gauche, y: 20,5 et se termine à x en bas à droite, y: 30,10. La ligne est en haut à gauche en bas à droite par défaut. Donc, la ligne est de x, y: 20,5 à x, y: 30,10. Mettez un 'shape.setFlipVertical (true);' après votre code. Ensuite, la ligne retournée est en bas à gauche en haut à droite. Donc, la ligne est de x, y: 20,10 à x, y: 30,5 selon les besoins. –
Bon point. J'ai mis en place cela maintenant. Merci! –