Beim Kopieren in die Zwischenablage aus einer Anwendung, die Rich Text unterstützt, wird der Text normalerweise in verschiedenen Formaten hinzugefügt. Ich muss die verfügbaren Formate herausfinden und dann den Inhalt der Zwischenablage in einem ausgewählten Format abrufen. Wenn es darauf ankommt, interessiert mich Rich Text-Formate (aus Word, Acrobat, Browsern, ...), nicht in Bilddaten oder anderen Exotica .
Ich habe geschaut und gesucht, aber die Lösungen, die ich gefunden habe, beschränken sich auf Text, super veraltet , spezifisch für Windows (ich bin auf OS X), abhängig in den Befehlszeilenhilfsprogrammen pbcopy
und pbpaste
(die nicht alle Zwischenablageformate verarbeiten) oder mehrere der oben genannten.
So: Wie kann ich eine Liste der in der Zwischenablage vorhandenen Formate erhalten und deren Inhalt in einem Format meiner Wahl extrahieren?
Plattformen in der Reihenfolge ihres Interesses: systemunabhängig (ich wünsche), OS X Mountain Lion (meine aktuelle Plattform) oder ähnliches, andere Plattformen (ich beabsichtige, meinen Code zu verteilen).
pyperclip : Sieht interessant aus, aber Unter OS X delegiert es an pbcopy
und pbpaste
, die nur text
, rtf
und ps
Formate unterstützen.
Dieses Rezept von activestate ist nur für Windows, aber zeigt, wie man HTML bekommt. ( Diese SO Frage bezieht sich darauf).
Diese SO-Antwort ist auch spezifisch für win32clipboard.
Diese Frage bezieht sich auf das Ziehen und Ablegen von Dateien in die Zwischenablage (unter Windows). Interessant, aber keine Hilfe mit dem, was ich brauche.
Diese tkinter-basierte Lösung ist einfach und funktioniert immer noch unter OS X, aber es wird nur einfacher Text - und Ich habe keinen Beweis gefunden, dass tkinter mit etwas anderem fertig werden kann.
Dies zeigt nahezu identischen Tkinter-Code für Putting Text in der Zwischenablage. p>
Ich habe jetzt eine Lösung für OS X, aber ich würde gerne hören, ob (und wie) pyperclip
oder ein anderes Modul dasselbe unter Windows machen kann. Pyperclip ist tief in der Windows-API zu finden, daher kann es nicht sehr weit entfernt sein, eine Auflistung und Auswahl aller verfügbaren Formate zu unterstützen.
Auf OS X ist es mit Hilfe des Moduls richxerox , das auf pypi verfügbar ist, recht einfach. Es erfordert Systemunterstützung einschließlich der Module Apple AppKit
und Foundation
. Ich hatte Probleme, Objective C für Python 3 zu erstellen, so dass ich das ursprünglich nur für Python 2 bekommen hatte. Anaconda 3 enthält jedoch alle notwendigen Teile vorinstalliert.
Hier ist eine Demo, die die verfügbaren Zwischenablage-Typen druckt und dann jeden einzelnen abholt und druckt:
%Vor%Ausgabe:
%Vor%Um in einem gewünschten Format mit einem Text-Zurück-Druck zu drucken, könnten Sie folgendes verwenden:
%Vor%Oder Sie könnten zuerst prüfen, ob ein Format verfügbar ist:
%Vor%