Textabschnittsgrenzen aus Präsentationen in Java ermitteln

Übersicht

Ein Textabschnitt stellt ein bestimmtes Textfragment innerhalb eines Absatzes dar und ermöglicht es Ihnen, mit diesem Fragment unabhängig vom umgebenden Inhalt zu arbeiten. In Aspose.Slides können Abschnitte verwendet werden, wenn Sie die Begrenzungen eines Textfragmentes abrufen, die Formatierung nur auf einen Teil eines Absatzes anwenden oder das Textverhalten auf einer detaillierteren Ebene steuern müssen.

Dieser Artikel zeigt, wie man das begrenzende Rechteck eines Abschnitts mit IPortion.getRect ermittelt. Er zeigt außerdem, wie man die Koordinaten des Beginns eines Abschnitts mit IPortion.getCoordinates abruft. Darüber hinaus werden gängige szenarienbezogene Anwendungsfälle erläutert, z. B. das Hinzufügen eines Hyperlinks zu einem einzelnen Textfragment, das Verständnis der Formatauflösung über Abschnitt, Absatz, Textfeld und Themenvererbung sowie der Umgang mit fehlenden Schriftarten.

Grenzrechteck eines Textabschnitts ermitteln

Verwenden Sie IPortion.getRect, um das begrenzende Rechteck eines Textabschnitts abzurufen:

Presentation presentation = new Presentation("Shapes.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IAutoShape shape = (IAutoShape) slide.getShapes().get_Item(0);

    for (IParagraph paragraph : shape.getTextFrame().getParagraphs())
    {
        for (IPortion portion : paragraph.getPortions())
        {
            java.awt.geom.Rectangle2D.Float rectangle = portion.getRect();
            System.out.println("X = " + rectangle.x + "; Y = " + rectangle.y + "; Width = " + rectangle.width + "; Height = " + rectangle.height);
        }
    }
} finally {
    presentation.dispose();
}

Koordinaten eines Textabschnitts ermitteln

Verwenden Sie IPortion.getCoordinates, um die Koordinaten des Beginns eines Textabschnitts abzurufen:

Presentation presentation = new Presentation("Shapes.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IAutoShape shape = (IAutoShape) slide.getShapes().get_Item(0);

    for (IParagraph paragraph : shape.getTextFrame().getParagraphs())
    {
        for (IPortion portion : paragraph.getPortions())
        {
            java.awt.geom.Point2D.Float point = portion.getCoordinates();
            System.out.println("X = " + point.x + "; Y = " + point.y);
        }
    }
} finally {
    presentation.dispose();
}

FAQ

Kann ich einen Hyperlink nur auf einen Teil des Textes innerhalb eines einzelnen Absatzes anwenden?

Ja, Sie können einen Hyperlink zuweisen zu einem einzelnen Abschnitt; nur dieses Fragment ist anklickbar, nicht der gesamte Absatz.

Wie funktioniert die Stilvererbung: Was überschreibt ein Abschnitt und was wird von einem Absatz oder Textfeld übernommen?

Eigenschaften auf Abschnittsebene haben die höchste Priorität. Wenn eine Eigenschaft nicht auf dem IPortion festgelegt ist, übernimmt Aspose.Slides sie vom IParagraph. Ist sie dort ebenfalls nicht gesetzt, verwendet Aspose.Slides die Stildefinition des ITextFrame oder des Themas.

Was passiert, wenn die für einen Abschnitt angegebene Schriftart auf dem Zielcomputer oder Server fehlt?

Schriftart-Ersetzungsregeln werden angewendet. Der Text kann neu umfließen: Metriken, Silbentrennung und Breite können sich ändern, was für genaue Positionierung wichtig ist.

Kann ich für einen Abschnitt spezifische Textfülltransparenz oder einen Farbverlauf unabhängig vom Rest des Absatzes festlegen?

Ja, Textfarbe, Füllung und Transparenz auf IPortion-Ebene können sich von benachbarten Fragmenten unterscheiden.