Zugriff auf alternative Zwischenablageformate von Python

8

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).

Ausgewählte Links

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>

Bearbeiten (Mai 2017)

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.

    
alexis 06.10.2015, 00:29
quelle

1 Antwort

0

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%     
alexis 11.05.2017, 12:49
quelle