Macos 如何从OSX粘贴板/剪贴板中获取HTML数据?
我必须发送一份关于将一些剪贴板内容粘贴到富web编辑器的报告,我需要一种方法将剪贴板内容转储/恢复为(可能)HTML 我该怎么做Macos 如何从OSX粘贴板/剪贴板中获取HTML数据?,macos,clipboard,pasteboard,Macos,Clipboard,Pasteboard,我必须发送一份关于将一些剪贴板内容粘贴到富web编辑器的报告,我需要一种方法将剪贴板内容转储/恢复为(可能)HTML 我该怎么做 似乎pbcopy/pbpaste总是给我文本,即使我使用pbpaste-prtf或pbpaste-phtml我意识到你已经发现了这一点,但对于从谷歌来到这里的人来说,为rtf数据提供的解决方案也可以很好地将HTML从剪贴板中删除 就是这个命令 osascript -e 'the clipboard as «class HTML»' | perl -ne 'prin
似乎pbcopy/pbpaste总是给我文本,即使我使用
pbpaste-prtf
或pbpaste-phtml
我意识到你已经发现了这一点,但对于从谷歌来到这里的人来说,为rtf数据提供的解决方案也可以很好地将HTML从剪贴板中删除
就是这个命令
osascript -e 'the clipboard as «class HTML»' | perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))'
三年后,在更文明的时代,我们有了。您可以编写一个简短的Swift脚本,精确地从OSX的粘贴板中提取所需内容 将以下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,OSX添加了大量自定义标记(和一个
标记?!)-但嘿,至少它不是纯文本
注:
是一个特殊的全局变量,其计算结果为字符串NSPasteboard.PasteboardType.html
“public.html”
- 显然,这是特定于html的,因此您可能希望:
- 将其命名为
,或pbpaste html.swift
- 从命令行参数中读取所需的类型
- 它有点慢,因为它是动态解释的,而不是编译和执行的。编译使我的速度提高了10倍:
然后只需调用xcrun -sdk macosx swiftc pbpaste.swift -o pbpaste-html
,而不是/pbpaste html
swift pbpaste.swift