15

クリップボードのコンテンツを Web リッチ エディターに貼り付けたことに関するレポートを送信する必要があり、クリップボードのコンテンツを (おそらく) HTML にダンプ/復元する方法が必要です。

これどうやってするの?

pbpaste -P rtfまたはを使用しても、 pbcopy / pbpaste は常にテキストを表示するようですpbpaste -P HTML

4

2 に答える 2

19

3 年後、より文明化された時代に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!うーん、OS X は大量のカスタム マークアップ (および<meta>タグ?!) を追加しましたが、少なくともプレーン テキストではありません!

ノート:

  • NSPasteboard.PasteboardType.html文字列に評価される特別なグローバルです"public.html"
  • 明らかに、これは html 固有のものであるため、おそらく次のいずれかを実行することをお勧めします。
    1. 名前を付けるpbpaste-html.swift、または
    2. コマンドライン引数から目的のタイプを読み取ります
  • コンパイルや実行ではなく、その場で解釈されるため、少し遅いです。コンパイルにより、10倍のスピードアップが得られます。

    xcrun -sdk macosx swiftc pbpaste.swift -o pbpaste-html
    

    ./pbpaste-html次に、の代わりに呼び出すだけですswift pbpaste.swift

于 2016-03-20T01:19:40.817 に答える
9

すでにこれを見つけていることは承知していますが、Google からここに来る人々の利益のために、Mac OS X ペーストボード (クリップボード) からRTF データを取得するで RTF データに対して提供されているソリューションは、クリップボードから HTML を取得するためにうまく機能します。 、 それも。

つまり、コマンド

osascript -e 'the clipboard as «class HTML»' |   perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))'
于 2014-06-10T03:00:03.000 に答える