2013-06-20 18 views

答えて

6

を使用している場合でも、私は、あなたがすでにこれを見つけた実感が、Googleからここに上げる人々の利益のために、テキスト与えないようです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)))' 
4

三年後、より多くの文明の時代に、私たちはSwiftを持っています。短いSwiftスクリプトを書いて、OS Xのペーストボードから必要なものを正確に引き出すことができます。

次のスウィフト3スニペットを新しいテキストファイルに挿入します。一部のHTMLをコピーし、その後

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) 
} 

、そしてあなたがそのファイルを置くディレクトリからswift pbpaste.swiftを実行します。私はpbpaste.swift鉱山の名前。

yay、html! Uggh、OS Xは大量のカスタムマークアップ(そして<meta>タグ?)を追加しましたが、ちょっと、少なくともプレーンテキストではありません!

注:

  • NSPasteboardTypeHTMLは、おそらくどちらかにしたいと思いますので、明らかにこれは、htmlの特定の文字列に"public.html"
  • を評価し、グローバル特別です:
    1. 名前それpbpaste-html.swift、または
    2. コマンドライン引数から目的のタイプを読み込みます。
  • 実行中に解釈され、コンパイルされ実行されないため、遅いです。

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

    は、それからちょうど./pbpaste-html代わりのswift pbpaste.swift呼び出す:編集は私の10倍のスピードアップを提供します。

スウィフト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) 
} 
関連する問題