Da ich mit dem vorliegenden Problem leichte Fortschritte gemacht habe, seit ich diese Frage gestellt habe, habe ich es für notwendig gehalten, es in zwei Teile aufzuteilen, um Klarheit zu bewahren.Wie kann ich Formen (Farben) in PowerPoint mit Python und win32com.client bearbeiten?
- Wie kann ich Form Farben in Powerpoint mit Python und win32com.client manipulieren?
- Wie kann ich com-Objekte in Python mit
dir()
untersuchen?
1. Manipulieren Form Farben in Powerpoint mit Python
Es gibt einige Beispiele, wie Powerpoint-Folien mit der pptx Bibliothekhere zu bearbeiten. Es fällt mir jedoch wesentlich leichter, eine aktive PowerPoint-Präsentation zu manipulieren, indem win32com.client wie beschrieben here verwendet wird. Anhand eines Beispiels aus Microsoft Developer Network ich gefunden habe, dass ich leicht Teile der Funktionalität dieses VBA-Schnipsel ...
With ActivePresentation.Slides(1).Shapes(1)
With .TextFrame.TextRange.Font
.Size = 48
.Name = "Palatino"
.Bold = True
.Color.RGB = RGB(255, 127, 255)
End With
End With
... mit diesem Python-Schnipsel replizieren kann:
import win32com.client
Application = win32com.client.Dispatch("PowerPoint.Application")
Presentation = Application.Activepresentation
slidenr = Presentation.Slides.Count
slide = Presentation.slides(slidenr)
shape1 = slide.Shapes.AddTextbox(Orientation=0x1,Left=100,Top=100,Width=100,Height=100)
shape1.TextFrame.TextRange.Text='Hello, world'
#Manipulate font size, name and boldness
shape1.TextFrame.TextRange.Font.Size=20
shape1.TextFrame.TextRange.Characters(1, 4).Font.Name = "Times New Roman"
shape1.TextFrame.TextRange.Font.Bold=True
Hier Ich bin in der Lage, Schriftgröße und Namen zu manipulieren. Ich kann die Ausrichtung des Textfelds auch ändern, indem ich Orientation=0x1
zu Orientation=0x5
in shape1 = slide.Shapes.AddTextbox(Orientation=0x1,Left=100,Top=100,Width=100,Height=100)
ändere.
Was jedoch unmöglich erscheint, ist das Bearbeiten der Box- oder Schriftfarbe.
Dies funktioniert nicht:
shape1.TextFrame.TextRange.Font.Color.RGB = RGB(255, 127, 255)
Fehlermeldung:
ich große Hoffnungen hatte dieses Problem beheben, indem Sie einige RGB-Funktionalität Import nach Informationen über pypi.python.org
Aber Ich habe auch hier Probleme mit pip install colour
:
Inzwischen ein bisschen Ich bin auf alle Konten verloren, so groß wäre keine Hinweise auf jedem Weg Farben zu manipulieren!
2. Objekte in Python Inspizieren dir()
In meinen Versuchen mit dieser lästigen Farben zu verwalten, begann ich die Ausgabe von dir(shape1.TextFrame)
, dir(shape1.TextFrame.Textrange)
und so weiter inspizieren. Zu meiner Enttäuschung konnte ich nichts über Farben finden, nicht einmal Font, obwohl Font für Manipulationen eindeutig zugänglich ist.
Also ist meine zweite Frage: Ist das nicht die Art, diese Formen überhaupt zu inspizieren und zu manipulieren? Und wie könnte ich das richtige Objekt (oder Methode?) um shape1 weiter zu manipulieren? Ich habe mir die PowerPoint objectmodel angesehen, aber mit wenig Erfolg.
Vielen Dank für Anregungen!
Sie im Zusammenhang suchen und erkunden Dank! Dies scheint gut zu funktionieren, außer dass die Farben etwas durcheinander sind. (255,0,0) ist rot, (0,255,0) ist grün und (0,0,255) sollte blau sein, wird aber grün. Irgendwelche Gedanken warum? – vestland
Mein Fehler, überprüfen Sie bitte die aktualisierte Funktion –
Über die zweite Frage, gibt es wirklich keine Möglichkeit, diese Objekte/Methoden in Python zu finden? – vestland