Ich fange an zu denken, ich bin nur nicht in der Lage, das Offensichtliche zu sehen.Zeichnen einer Linie zwischen zwei Punkten in PowerPoint Folie mit Apache POI
Mit dem folgenden Code möchte ich eine Linie von den Koordinaten [x1, y1] bis [x2, y2] zeichnen.
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>);
Von dem, was ich die Linie sehen am Anker beginnt [x1, y1], aber dann muss ich anstelle der Koordinaten des Zielpunktes eine Breite und Höhe ein. Aber die y-Komponente der Zielkoordinate ist kleiner als die der Startkoordinate, also habe ich versucht, die Höhe auf negative Werte zu setzen, was zu einem Fehler führt, wenn PowerPoint versucht, das generierte PPTX-Dokument zu öffnen ("PowerPoint hat ein Problem mit Inhalt gefunden in der Datei out.pptx. ");
Ich bin mir ziemlich sicher, dass ich einfach die offensichtliche Lösung zu diesem Thema übersehen, also kann mir jemand helfen, herauszufinden , wie man eine Linie für einen Punkt innerhalb des Dokuments zu einem anderen Punkt zeichnet?
Ihr Code mit dem Rechteck beginnt oben links x, y: 20,5 und endet rechts unten x, y: 30,10. Die Linie ist standardmäßig von oben links nach unten rechts. Also ist die Linie von x, y: 20,5 bis x, y: 30,10. Setzen Sie 'shape.setFlipVertical (true);' nach Ihrem Code. Dann ist die umgedrehte Zeile unten links oben rechts. So ist die Linie von x, y: 20,10 zu x, y: 30,5 nach Bedarf. –
Guter Punkt. Ich habe das jetzt implementiert. Vielen Dank! –