Zgodnie z man
strony dla pbpaste
,Pobieranie danych RTF z Mac OS X kartonowe (schowka)
-Prefer {txt | rtf | ps}
tells pbpaste what type of data to look for in the pasteboard
first. As stated above, pbpaste normally looks first for plain
text data; however, by specifying -Prefer ps you can tell
pbpaste to look first for Encapsulated PostScript. If you spec-
ify -Prefer rtf, pbpaste looks first for Rich Text format. In
any case, pbpaste looks for the other formats if the preferred
one is not found. The txt option replaces the deprecated ascii
option, which continues to function as before. Both indicate a
preference for plain text.
jednak (w moim doświadczeniu z 10.6 Snow Leopard przynajmniej) pbpaste -Prefer rtf
nigdy, przenigdy nie porzuca Dane RTF, nawet jeśli istnieje na stole montażowym. Czy istnieje inny prosty sposób na uzyskanie tekstu RTF tego, co jest gotowe do wklejenia?
Próbowałem AppleScript, ale osascript -e 'the clipboard as «class RTF »'
daje odpowiedź «data RTF 7B
ton kodowanej szesnastkowo bzdury 7D»
. Czy AppleScript może przekonwertować te heksdany na tekst, który mogę odtwarzać?
Sprytne podejście. Niewielkie uproszczenie polega na zastąpieniu '« class RTF »' zwykłym łańcuchem '" RTF "' (zwróć uwagę na wymaganą końcową spację przed zamykającym separatorem w obu przypadkach): 'osascript -e 'schowek jako" RTF "' | perl -ne 'print chr foreach unpack ("C *", pakiet ("H *", substr ($ _, 11, -3)))' '- działa na (co najmniej) 10.8+. Zauważ także, że - według projektu - polecenie AppleScript zgłosi błąd, jeśli w schowku nie ma danych RTF. – mklement0
Dodałem ten naprawdę przydatny alias do mojego '.profile':' alias pbpaste-rtf = "osascript -e 'do schowka jako \" RTF \ "' | perl -ne 'print chr foreach unpack (\" C * \ ", pakiet (\" H * \ ", substr (\ $ _, 11, -3)))" ". –