クリップボードの内容でHTMLを作成する
#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions
property refMe : a reference to current application
set appFileManager to refMe's NSFileManager's defaultManager()
##########################################
###起動時に削除するフォルダ
##########################################
set ocidDirPathURL to appFileManager's temporaryDirectory()
set ocidCleanupAtStartupURL to ocidDirPathURL's URLByAppendingPathComponent:"Cleanup At Startup" isDirectory:true
####アクセス権777で作成
set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
ocidAttrDict's setValue:511 forKey:(refMe's NSFilePosixPermissions)
appFileManager's createDirectoryAtURL:ocidCleanupAtStartupURL withIntermediateDirectories:true attributes:ocidAttrDict |error|:(reference)
####UNIXパスとエイリアス
set strCleanupAtStartupPath to ocidCleanupAtStartupURL's |path|() as text
set aliasCleanupAtStartup to ocidCleanupAtStartupURL as alias
##########################################
###ファイル名とパス
##########################################
###中間ファイルの名前は全部日付
set strTime to doGetDateNo("yyyyMMddhhmmss") as text
####ファイル名
set strHtmlFileName to ("" & strTime & ".html") as text
set strTextFileName to ("" & strTime & ".txt") as text
###HTMLへのURL
set ocidFilePathURL to ocidCleanupAtStartupURL's URLByAppendingPathComponent:(strHtmlFileName) isDirectory:false
set ocidTextFilePathURL to ocidCleanupAtStartupURL's URLByAppendingPathComponent:(strTextFileName) isDirectory:false
##########################################
###ペーストボード
##########################################
####ペーストボード宣言
set ocidPasteboard to refMe's NSPasteboard's generalPasteboard()
####中に格納されているデータタイプを取得
set ocidPastBoardTypeArray to ocidPasteboard's types
log ocidPastBoardTypeArray as list
######必要に応じて受け取る(テキスト系のみ)
if (ocidPastBoardTypeArray's containsObject:"public.html") is true then
###ペーストボードの内容をタイプ指定でstringForTypeとして受け取る
set ocidPublicHTML to ocidPasteboard's stringForType:(refMe's NSPasteboardTypeHTML)
###ファイルに書き込む
ocidPublicHTML's writeToURL:(ocidFilePathURL) atomically:true encoding:(refMe's NSUTF8StringEncoding) |error|:(reference)
else if (ocidPastBoardTypeArray's containsObject:"public.rtf") is true then
###ペーストボードの内容をタイプ指定で受け取るdataForTypeで受け取る
set ocidPublicRTF to ocidPasteboard's dataForType:(refMe's NSPasteboardTypeRTF)
###NSAttributedStringに変換して
set ocidAttributedString to refMe's NSAttributedString's alloc()'s initWithRTF:(ocidPublicRTF) documentAttributes:(missing value)
###文字数を数えてレンジを生成
set numStringLenge to ocidAttributedString's |length|() as integer
set ocidRange to refMe's NSMakeRange(0, numStringLenge)
####オプション指定
set ocidAttributedDict to refMe's NSDictionary's dictionaryWithObject:(refMe's NSHTMLTextDocumentType) forKey:(refMe's NSDocumentTypeDocumentAttribute)
##オプション指定でHTMLデータに変換
set listAttributedString to ocidAttributedString's dataFromRange:(ocidRange) documentAttributes:(ocidAttributedDict) |error|:(reference)
set ocidHTMLDATA to item 1 of listAttributedString
###HTMLデータをHTMLテキストに戻して
set ocidPublicHTML to refMe's NSString's alloc()'s initWithData:(ocidHTMLDATA) encoding:(refMe's NSUTF8StringEncoding)
###ファイルに書き込む
ocidPublicHTML's writeToURL:(ocidFilePathURL) atomically:true encoding:(refMe's NSUTF8StringEncoding) |error|:(reference)
else if (ocidPastBoardTypeArray's containsObject:"public.utf8-plain-text") is true then
###ペーストボードの内容をタイプ指定で受け取るstringForTypeで受け取る
set ocidPublicText to ocidPasteboard's stringForType:(refMe's NSPasteboardTypeString)
###NSAttributedStringに変換して
set ocidAttributedString to refMe's NSAttributedString's alloc()'s initWithString:(ocidPublicText)
###文字数を数えてレンジを生成
set numStringLenge to ocidAttributedString's |length|() as integer
set ocidRange to refMe's NSMakeRange(0, numStringLenge)
####オプション指定
set ocidAttributedDict to refMe's NSDictionary's dictionaryWithObject:(refMe's NSHTMLTextDocumentType) forKey:(refMe's NSDocumentTypeDocumentAttribute)
##オプション指定でHTMLデータに変換
set listAttributedString to ocidAttributedString's dataFromRange:(ocidRange) documentAttributes:(ocidAttributedDict) |error|:(reference)
set ocidHTMLDATA to item 1 of listAttributedString
###HTMLデータをHTMLテキストに戻して
set ocidPublicHTML to refMe's NSString's alloc()'s initWithData:(ocidHTMLDATA) encoding:(refMe's NSUTF8StringEncoding)
###ファイルに書き込む
ocidPublicHTML's writeToURL:(ocidFilePathURL) atomically:true encoding:(refMe's NSUTF8StringEncoding) |error|:(reference)
else
return "HTMLに変換出来ません"
end if
###HTML表示で開く
tell application "TextEdit"
open (ocidFilePathURL as alias)
end tell
###拡張子をtxtにしたソース閲覧用のファイルを作る
appFileManager's copyItemAtURL:(ocidFilePathURL) toURL:(ocidTextFilePathURL) |error|:(reference)
###ソーステキストで開く
tell application "TextEdit"
open (ocidTextFilePathURL as alias)
end tell
##########################################
###日付時間番号
##########################################
to doGetDateNo(strDateFormat)
####日付情報の取得
set ocidDate to refMe's NSDate's |date|()
###日付のフォーマットを定義
set ocidNSDateFormatter to refMe's NSDateFormatter's alloc()'s init()
ocidNSDateFormatter's setLocale:(refMe's NSLocale's localeWithLocaleIdentifier:"en_US")
ocidNSDateFormatter's setDateFormat:(strDateFormat)
###日付情報にフォーマットを適応
set ocidDateAndTime to ocidNSDateFormatter's stringFromDate:(ocidDate)
###テキストに確定させて
set strDateAndTime to ocidDateAndTime as text
###戻す
return strDateAndTime
end doGetDateNo
| 固定リンク
「NSPasteboard」カテゴリの記事
- クリップボード内のテキストに改行を<br />に変更して戻す 修正(2024.11.15)
- ペーストボードの内容の種類の確認(2024.10.06)
- [NSPasteboard]ペーストボードからテキストの取り出し(修正)(2024.07.02)
- 画像データをクリップボードにPDF形式で入れる(2024.06.28)
- クリップボードの中身で保存可能なものをファイルに保存する(2024.06.23)
「HTML」カテゴリの記事
- Orion Browser(オリオンブラウザ)(2024.11.23)
- [NSXML]HTMLのテーブル 列削除(2024.11.22)
- HTMLを解析してエレメントの値を収集(2024.11.11)
- URLから画像を収集する(2024.07.03)
- Automating Downloads From Embedded Links(2024.06.22)