Λήψη Ορίων Παραγράφου από Παρουσιάσεις σε Python μέσω Java
Επισκόπηση
Αυτό το άρθρο εξηγεί πώς να λάβετε τα όρια, το μέγεθος και τις συντεταγμένες των παραγράφων στο Aspose.Slides. Δείχνει πώς να ανακτήσετε ένα ορθογώνιο παραγράφου από ένα TextFrame χρησιμοποιώντας την Paragraph.getRect, πώς να λάβετε τις συντεταγμένες παραγράφου μέσα σε πλαίσιο κειμένου κελιού πίνακα, και αναδεικνύει σημαντικές λεπτομέρειες όπως οι μονάδες μέτρησης, η επίπτωση της αναδίπλωσης κειμένου στα όρια, η μετατροπή σε pixel και οι αποτελεσματικές τιμές μορφοποίησης παραγράφου.
Λήψη Ορθογώνιων Συντεταγμένων μιας Παραγράφου
Χρησιμοποιήστε την Paragraph.getRect για να λάβετε το περιοριστικό ορθογώνιο μιας παραγράφου.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("Shapes.pptx")
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().get_Item(0)
paragraph = shape.getTextFrame().getParagraphs().get_Item(0)
rectangle = paragraph.getRect()
finally:
presentation.dispose()
Λήψη του Μεγέθους μιας Παραγράφου μέσα σε Πλαίσιο Κειμένου Κελιού Πίνακα
Για να λάβετε το μέγεθος και τις συντεταγμένες ενός Paragraph σε πλαίσιο κειμένου κελιού πίνακα, χρησιμοποιήστε την Paragraph.getRect. Το επιστρεφόμενο ορθογώνιο είναι σχετικά με το πλαίσιο κειμένου του κελιού πίνακα, επομένως προσθέστε τη θέση του πίνακα και την απόσταση του κελιού όταν χρειάζεστε συντεταγμένες επιπέδου διαφάνειας.
Το παρακάτω παράδειγμα λαμβάνει τα όρια της παραγράφου μέσα σε κελί πίνακα και σχεδιάζει ορθογώνια στη διαφάνεια για να οπτικοποιήσει αυτά τα όρια:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, Presentation, SaveFormat, ShapeType
from java.awt import Color
presentation = Presentation("source.pptx")
try:
slide = presentation.getSlides().get_Item(0)
table = slide.getShapes().get_Item(0)
cell = table.getRows().get_Item(1).get_Item(1)
cell_x = table.getX() + cell.getOffsetX()
cell_y = table.getY() + cell.getOffsetY()
for paragraph in cell.getTextFrame().getParagraphs():
if not paragraph.getText():
continue
paragraph_rectangle = paragraph.getRect()
paragraph_rectangle_x = paragraph_rectangle.x + cell_x
paragraph_rectangle_y = paragraph_rectangle.y + cell_y
paragraph_bounds_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, paragraph_rectangle_x, paragraph_rectangle_y, paragraph_rectangle.width, paragraph_rectangle.height)
paragraph_bounds_shape.getFillFormat().setFillType(FillType.NoFill)
paragraph_bounds_shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.YELLOW)
paragraph_bounds_shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
presentation.save("output.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Συχνές Ερωτήσεις
Σε ποιες μονάδες μετρώνται οι συντεταγμένες της παραγράφου;
Μετρώνται σε πόντους, όπου 1 ίντσα ισούται με 72 πόντους. Αυτό ισχύει για όλες τις συντεταγμένες και διαστάσεις στη διαφάνεια.
Επηρεάζει η αναδίπλωση κειμένου τα όρια μιας παραγράφου;
Ναι. Εάν η μέθοδος TextFrameFormat.setWrapText είναι ενεργοποιημένη για το TextFrame, το κείμενο σπάει ώστε να ταιριάζει στο πλάτος της περιοχής, κάτι που αλλάζει τα πραγματικά όρια της παραγράφου.
Μπορούν οι συντεταγμένες μιας παραγράφου να αντιστοιχιστούν αξιόπιστα σε pixel στην εξαγόμενη εικόνα;
Ναι. Μετατρέψτε τους πόντους σε pixel χρησιμοποιώντας αυτόν τον τύπο: pixels = points x (DPI / 72). Το αποτέλεσμα εξαρτάται από το DPI που επιλέγεται για την απόδοση ή εξαγωγή.
Πώς μπορώ να λάβω τις «αποτελεσματικές» παραμέτρους μορφοποίησης μιας παραγράφου, λαμβάνοντας υπόψη την κληρονομικότητα στυλ;
Χρησιμοποιήστε τη δομή δεδομένων αποτελεσματικής μορφοποίησης παραγράφων; επιστρέφει τις τελικές ενοποιημένες τιμές για εσοχές, απόσταση, αναδίπλωση, RTL και άλλα.