我必须发送一份关于将一些剪贴板内容粘贴到Web内容丰富的编辑器中的报告,我需要一种方法将剪贴板内容转储/恢复到(可能)HTML。
我该怎么做?
即使我使用pbpaste -P rtf
或pbpaste -P HTML
答案 0 :(得分:7)
我意识到你已经发现了这一点,但是为了从谷歌出现在这里的人们的利益,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)))'
答案 1 :(得分:7)
三年后,在更文明的时代,我们有Swift。您可以编写一个简短的Swift脚本来准确提取OS X的粘贴板。
将以下Swift 4片段放入新文本文件中。我将我命名为pbpaste.swift
:
import Cocoa
let type = NSPasteboard.PasteboardType.html
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! Uggh,OS X添加了大量自定义标记(以及<meta>
标记?!) - 但是,至少它不是纯文本!
注意:
NSPasteboard.PasteboardType.html
是一个特殊的全局变量,其值为"public.html"
pbpaste-html.swift
或它有点慢,因为它是在动态解释,而不是编译和执行。编译为我提供了10倍的加速:
xcrun -sdk macosx swiftc pbpaste.swift -o pbpaste-html
然后只需拨打./pbpaste-html
而不是swift pbpaste.swift
。