Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何从OSX粘贴板/剪贴板中获取HTML数据?_Macos_Clipboard_Pasteboard - Fatal编程技术网

Macos 如何从OSX粘贴板/剪贴板中获取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

我必须发送一份关于将一些剪贴板内容粘贴到富web编辑器的报告,我需要一种方法将剪贴板内容转储/恢复为(可能)HTML

我该怎么做


似乎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


P.S.这一基本方法演变成了一个简单的命令行工具(但稍微灵活一些——您可以将数据类型指定为参数),发布于