我不得不發送一份關於將一些剪貼板內容粘貼到網頁編輯器中的報告,我需要一種方法將剪貼板內容轉儲/恢復到(可能)HTML。如何從OS X粘貼板/剪貼板中獲取HTML數據?
我該怎麼做?
似乎pbcopy/pbpaste不要送花兒給人給我短信,即使我用pbpaste -P rtf
或pbpaste -P HTML
我不得不發送一份關於將一些剪貼板內容粘貼到網頁編輯器中的報告,我需要一種方法將剪貼板內容轉儲/恢復到(可能)HTML。如何從OS X粘貼板/剪貼板中獲取HTML數據?
我該怎麼做?
似乎pbcopy/pbpaste不要送花兒給人給我短信,即使我用pbpaste -P rtf
或pbpaste -P HTML
我知道你已經發現了這一點,但對於人誰從谷歌在這裏摸到的利益,則在Getting RTF data out of Mac OS X pasteboard (clipboard)上爲RTF數據提供的解決方案也適用於將HTML從剪貼板中取出。
也就是說,命令
osascript -e 'the clipboard as «class HTML»' | perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))'
三年後,在更文明的時代,我們有Swift。您可以編寫一個簡短的Swift腳本來準確提取您需要的OS X粘貼板。
將下面的swift 3片段放到一個新的文本文件中。我將其命名pbpaste.swift
:
import Cocoa
let type = NSPasteboardTypeHTML
if let string = NSPasteboard.general().string(forType:type) {
print(string)
}
else {
print("Could not find string data of type '\(type)' on the system pasteboard")
exit(1)
}
然後,您放置文件的目錄中複製一些HTML,並運行swift pbpaste.swift
。
耶,html!呃,OS X增加了大量的自定義標記(和一個<meta>
標記?!) - 但是,嘿,至少它不是純文本!
注:
NSPasteboardTypeHTML
是一個特殊的全球計算結果爲字符串"public.html"
pbpaste-html.swift
,或這有點慢,因爲它正在被動態解釋,沒有被編譯和執行。編輯給我10倍的加速:
xcrun -sdk macosx swiftc pbpaste.swift -o pbpaste-html
然後只需調用./pbpaste-html
而不是swift pbpaste.swift
。
斯威夫特2版:
import Cocoa
let type = NSPasteboardTypeHTML
if let string = NSPasteboard.generalPasteboard().stringForType(type) {
print(string)
}
else {
print("Could not find string data of type '\(type)' on the system pasteboard")
exit(1)
}