Archive for 9月, 2016

2016/09/29 RTFを読み込んでテキスト抽出

指定のRTF(リッチテキスト)ファイルから、プレーンテキストを抽出するAppleScriptです。

→ 本プログラムには間違いがあるので、修正版を利用してください

不等号などの特殊記号について(≠、≥、≤)、スクリプトエディタ以外のサードパーティのAppleScriptエディタ(海外産)でエラーになる場合があるので(ASObjC Explorerとか)、大事をとって特殊記号を使わずに、「is not equal to」などと書くようにしています(あくまで個人的な見解です)。

このために、

tougou_resized.png

のように、Script Assistantで特殊記号類からこれらの英語表記を自動入力しやすいようにしています。

AppleScript名:RTFを読み込んでテキスト抽出
– Created 2016-09-29 by Takaaki Naganoya
– 2016 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
–http://piyocast.com/as/archives/4240

set aFile to choose file of type {“public.rtf”}
set aRes to retTextFromRTF(aFile) of me

on retTextFromRTF(aFile)
  set aFilePath to current application’s NSString’s stringWithString:(POSIX path of aFile)
  
set aData to current application’s NSData’s dataWithContentsOfFile:aFilePath options:0 |error|:(missing value)
  
set theStyledText to current application’s NSMutableAttributedString’s alloc()’s initWithData:aData options:(missing value) documentAttributes:(null) |error|:(missing value)
  
  
if theStyledText is not equal to missing value then
    return (theStyledText’s |string|()) as string
  else
    return false –Not RTF file
  end if
end retTextFromRTF

★Click Here to Open This Script 

2016/09/28 Script Assistant Ver. 1.0の送付を開始

script_assistant.jpg

ちょっとしたマニュアル(全17ページ)を作りつつ、Script Assistant Ver. 1.0を、電子書籍の購入者の特典希望の方々にお送りしました。

とはいえ、これってオマケなので(汗) ……もっと詳細なマニュアルを作成して、単体で(スクリプトつき書籍として)販売したらいいんじゃないか的な野望(ずいぶんちいさい野望だな、、、)はあります。

技術書典でご購入いただいた方々からの、書籍のアップデート版へのご希望が届いていないため、後日再度お知らせをお送りするつもりです(スパムメールとかに埋もれているのではないかと心配)。

2016/09/28 ヘルプの闇の中にいる歴史的遺物(UserLand Frontier)

AppleScriptのヘルプは、闇が深すぎてツッコミどころが満載です。スクリプトエディタの「ヘルプ」メニューには、

help.jpg

.好リプトエディタヘルプ:スクリプトエディタの基本的な使い方をヘルプビューワーで表示

AppleScriptヘルプ:AppleScriptそのものについて、「基本」「基本コマンド」「Finderコマンド」の3つの内容をWebブラウザで表示(日本語)

AppleScript Language Guideを表示:AppleScriptについての詳細な情報をWebブラウザで表示(英語)

ぅ汽鵐廛襦Ε好リプト・フォルダを表示:ローカルに用意されているサンプルAppleScript(ただし、あまり参考にならない。日本語環境ではそのまま実行できないものまである)をFinder上で表示

といった調子で、△阿蕕い魯悒襯廛咼紂璽錙爾派充┐気譴討發茲気修Δ覆發里任垢、Webブラウザで表示され、しかも、内容が相当に古い(Mac OS X 10.5ぐらい?)です。AppleScript Studioについて説明しつつ、AppleScriptObjCへの言及がなかったりします。

はAppleScript Engineering Teamの「本丸」ともいえる場所なので気合いが入っていますが、各国語へのローカライズはされません。

い蓮帖捗饑劼濃供慌鮴發靴討い襪里任海海脳匆陲呂靴泙擦鵑、その程度のものです。

問題は、△瞭睛討亡岼磴い篩蠹に古い内容が混在してしまっていることです。

「OS X v10.10 以降では、AppleScript に加え、スクリプト言語である JavaScript for Automation を使用してスクリプトを記述することができます。また、シェルスクリプトや、UserTalk などの他社製のスクリプト言語を使用してスクリプトを記述することもできます。」

前半はいいんですが、後半がちょっと(^ー^;;。「UserTalk」というのは、Userland Frontier上の記述言語のことで、90年代は一部で使われていたのですが、2000年代に入ってからというもの、ほとんど使われていません。2009年末にRadio UserLandのサイトそのものをクローズすることを発表。いまもサイト自体は見えていますが、誰も関わっていない「魚拓」みたいな状態です。

UserLandの顛末については、こちらのBlogに詳しく書かれているので参考になります。

自分の知っている使い手は、日本で1人2人

で、そんなUserlandのUserTalkをヘルプに載せておくぐらいなら、もうちょっと最近のトピックを載せるべきだと思う次第であります。

また、Apple純正のスクリプトエディタ内のコンテクストメニューScript群が、エラー時にヘルプビューワー経由で所定のトピックを(いまでも)表示するようになっており、これが現在では機能していません。

AppleScript名:help_sample
tell application “HelpViewer”
  activate
  
try
    lookup anchor “ScriptEditor001″ in book “Script Editor Help”
  end try
end tell

★Click Here to Open This Script 

HelpViewer自体はスクリプタブルのようですが、外部からコマンドを叩き込んでも効いているんだかいないんだか不明です。

で、結局何が言いたいかといえば、Apple純正のスクリプトエディタ用Scriptを拡張して作っているScript Assistantもヘルプ表示部分はこのまま(ヘルプビューワーを呼び出す仕様。何も表示されないけど)なので、そこんところひとつご了承ください、というそういうお話なのであります。

2016/09/28 Cocoa勉強会 Ikebukuroで行った発表資料を公開

■AppleScriptでPDFからテキストを抽出する
http://www.slideshare.net/Piyomaru/extract-text-from-pdf

先日行われた「Cocoa勉強会 Ikebukuro」で行った発表資料をSlideShare上で公開しました(後日おっかけで作った補足資料なんで、思いっきりシンプルです)。

今年の初頭に参加させていただいた「Cocoa勉強会 関西」以来、いい勉強会にめぐまれていろいろ刺激を受けています。あれでREST系のAPIの呼び出しの敷居が低いことが理解できて、REST攻めまくることになった直接の原因であります。やっぱり、目の前でやっているのを見ると「あ、こうすればいいのか」といった理解が段違いです。

ただ、SlideShareへのPDFアップロードはなかなか大変です。Keynoteから書き出したPDFだと日本語部分が欠落するというお話だったので、久しぶりにPowerPointで資料を作りましたが……PowerPointから書き出したPDFでも部分的に文字ブロックが欠落するという(ーー;;

今週末の日曜日にはCocoa勉強会 松戸にも参加してきます。

2016/09/27 指定のAppleScriptを実行専用で保存

指定のAppleScriptをスクリプトエディタでオープンして、実行専用で保存するAppleScriptです。つまり、AppleScriptでスクリプトエディタをコントロールしてAppleScript書類を操作します。

この手のAppleScriptは、Mac OS X 10.4の時代ぐらいから可能になってきた(スクリプトエディタがScriptから操作可能になった)わけですが、当初は不安定でとても大変でした。そうしたScriptを書くためにはScript Debuggerを併用する必要がありました。ただ、いまはまったくそういう心配はありません。いちおう念のために、スクリプトエディタを「名前」ではなく「Bundle ID」で指定しておくぐらいのケアをしています。

冒頭のchoose fileコマンドのオプション指定およびtellブロックでスクリプトエディタをBundle IDで指定している箇所は、Script Assistantで調査して自動記入したものです。こういう些細な調べものはScript Assistantまかせにしています。

実際には、指定フォルダ以下のAppleScript書類をすべてSpotlightでリストアップし、本ルーチンを呼び出して実行専用で保存し直すような処理のために用意しました。

AppleScript名:指定のAppleScriptを実行専用で保存
– Created 2016-09-26 by Takaaki Naganoya
– 2016 Piyomaru Software
–http://piyocast.com/as/archives/4234
set aFile to choose file of type {“com.apple.applescript.script”} –only applescript
set aRes to saveAppleScriptAsRunOnly(aFile) of me

on saveAppleScriptAsRunOnly(aFile)
  tell application id “com.apple.scripteditor2″
    try
      open aFile
      
check syntax
      
save front document as “script” in aFile with run only
      
close front document without saving
      
return true
    on error
      return false
    end try
  end tell
end saveAppleScriptAsRunOnly

★Click Here to Open This Script 

2016/09/25 電子書籍購入者特典「Script Assistant Ver.1.0」

電子書籍「AppleScript最新リファレンス」「最新事情がわかるAppleScript 10大最新技術」の購入者特典としてご用意した、Script Assistant Ver 1.0の準備がほぼおわりました。

大変お待たせしてすみません。自分としても、AppleScriptの記述がこれなしではできないぐらいのモノになっているので、ちゃんと出したい(動かないとかいうことのないように)ところです。

これは、スクリプトエディタのコンテクストメニューから呼び出すAppleScript群であり、基本的に「参考書を持ち歩かなくてもScriptを書けるようにするもの」です。

たとえば、choose fileコマンドでJPEG画像ファイルだけファイル一覧に表示させつつ選択するような場合に、JPEGファイルのタイプってどう指定したっけなー、といった調べ物をしなくてはなりませんでしたが、Script Assistantを呼び出すと「じゃあ、どの種別のファイルを一覧表示に出すのか?」とScriptが聞いてくるので、JPEGファイルを指定すると、そのタイプを取得してスクリプトエディタ上にchoose fileコマンド+オプション指定したテキストを転送してくれます(AppleScriptからスクリプトエディタをコントロール)。

as1_resized.png

as2_resized.png

as3.jpg

as4.jpg

また、変数名のみの置換といったScriptもあります。単純にテキスト置換ではメッセージやらアプリケーション名称やらをすべて書き換えてしまいますが、AppleScriptの構文要素のうち変数名に該当するものだけを置換対象にしてくれるので、変数名の付け替えで事故を起こす危険性が低くなっています(10年前に作って運用してきました)。

現場でありがちな要求に応えた下世話なScriptに、AppleScriptの行数計算(ただし、空白行とコメント行はのぞく)というものがあります。その一方で、すべてのコメント行だけを抽出して新規Scriptに一括転送といったものもあります。

「最初からこういう機能が欲しかった!」、というものを地味&地道ぃ〜に作りためたものです。

Script Assistant自体はここ10年ぐらい使い続けてきたものですが、

・リモートAppleEvents系の有用性が(日常的な範囲では)下がってきたので、メニューから削除(10年前はLAN上の他のマシンのFinderに直接指令して、sleepさせることができた。いまは、間にAppletをはさまないとダメ)

・Mindjet Mindmanagerに依存しているものは(持っている人が少ないので)削除。Caller-Relationship Mappingとかあるんですが、今回のものには含んでいません

・Excelの選択範囲をListに展開するScriptはOffice 2016を対象に書き換え

・display notificationの警告音指定では、実際にOSに入っているサウンドをスキャンして選択肢を提示
as6.jpg
as7.jpg

・sayコマンドでVoiceを指定するものは、OSに入っているTTS Characterをリストアップし、読み上げサンプルテキストもOSから情報を取得して、その言語に合うものを提示
as5.jpg

といった変更を加えています。AppleScriptObjCの機能を一部で使っているため、利用環境はOS X 10.10以降を推奨(macOS 10.12上で動作確認)します。

OSにデフォルトで入っているScriptのメンテナンスがされていないので、Appleのデフォルトのものが動作確認されていないままリリースされていたりで、元からあるScript Editor Scriptsはいったん削除して、これに入れ替えると(日本語圏の人は)ハッピーになれるでしょう。

書籍の作成で懲りて、マニュアルをMacDownではなく今回はAdobe InDesign CCで作っています(Edama2さんの技術指導をいただきつつ)。

sa10.jpg

2016/09/21 macOS Sierraがついにリリース!

……と、気合をいれるほどの差がないmacOS Sierra(10.12)が登場しました。β版から使っていたので、リリース版の内容もほぼ変わらず、「驚きがないのが驚き」とでも言いたくなるような内容です。

AppleScriptの処理系のバージョンは2.5のまま変更はありません。スクリプトエディタについては、2.9でOS X 10.11の2.8.1から比べると微妙にバージョンアップしています。

sierra1.jpg

このため、useコマンドとOSバージョンの対応は、

 OS X 10.9:AppleScript version “2.3″
 OS X 10.10:AppleScript version “2.4″
 OS X 10.11:AppleScript version “2.5″
 OS X 10.12:AppleScript version “2.5″

となります。

スクリプトエディタが2.9になったからといって、

 ・Cocoaオブジェクトのログ表示
 ・Frontend Processでの強制実行

などが盛り込まれるといったことはありません。ほぼ、2.8から差がない状態です。公式のRelease NotesはまだAppleのWebサイトに掲載されていないので、詳細については不明です。

tabbarjpg.png
▲Sierraの新機能により、スクリプトエディタのウィンドウをタブでまとめられるようになりました

Script Templateに入っているテンプレートに「廃止になったApertureのテンプレが入ったままなのはいかがなものか?」と意見しておきましたが、リリース版でもそのままですね。

WWDC2016での発表において、いろいろ「なくなる」と言われていたものが、実はそのまま残っているという「穏便なアップデート」に変わったように見えます。「見えます」というのは、自分のテスト環境では使えているものの、それがすべてのユーザー環境で同様かどうかは確信が持てないからです。

最たるものが、「システム環境設定」の「セキュリティとプライバシー」>「一般」における「ダウンロードしたアプリケーションの実行許可:」設定で、自分のテスト環境では「すべてのアプリケーションを許可」がイネーブルになっています。あっれえ?(^ー^;;

sierra3.jpg

これが、「開発アカウントを持っているため」なのか、「すべての環境がそうなっている」のか、テスト環境が1つだけなのでなんとも言えません。

あと、AppleScript Studioで作成したメモリー管理方式がGC=ONのアプリケーションも、問題なく起動できています。AdobeのCS6アプリケーションについても、とくに問題なく起動できているという話を聞きます

AFPも廃止になると聞いていたのに、β版のかなり早い段階で復活していました。この分でいくと、HFSも廃止になっているのかいないのか、、、、

sierra2.jpg

そのあたり、WWDC2016正誤表みたいな感じでまとまっていないと、アップデートしていいんだかよくないんだかわかりません。

一方で、iWorkアプリケーション群は久しぶりに大幅なアップデートが行われ、これはβ版のSierraでは評価できなかった内容なので、期待が持てます。iWorkアプリケーションも無償化されたので、もはやOSの一部といっても過言ではありません。

また、Safariがバージョン10になり(これは、OS X 10.11向けにもアップデータが登場)、このあたり……WebコンテンツをGUI Scripting経由で操作しているような処理がそのまま通るのか(WebViewへのオブジェクト階層がOSアップデートのたびにコロコロ変わるので)、確認が必要です。

ひとことに「Safari 10」といっても、OS X 10.10.x、OS X 10.11.x、macOS 10.12.xで、WebViewへのオブジェクト階層やら、実際に見えるWebView内のオブジェクト構成が微妙に違いそう(実際、同じSafari 9.1.xでも10.10.xと10.11.xでは違う)なので、気になるところです。

さらに、Safari 10では「開発」メニュー項目に、

safari10.jpeg

と「リモートオートメーションを許可」なる項目が新設され、これが何を指しているのかさっぱりわかりません(ヘルプにも載ってないし)。 Selenium Web DriverによるWebコンテンツのテストの自動化のための機能のもよう。 → 次期「Safari 10.0」で新しく追加される機能まとめ

あとは、とても期待していた音声認識でAppleScriptワークフローを呼び出す機能ですが、GMの段階で動きがおかしくなっていたので、リリース版もそうなっていると思います。このあたりは、実際に使い物になるまでしばらくアップデートを経過しないとダメだと見ています。

→ Siriをオフにしたら使える感じがします(確認済み)。どっちみち、Sierra+音声コントロールはAirPodsが発売になるまで(自分的には)完全体な環境ではないので、しばし待つつもりです。

comapplefolderactionssetup.jpg

フォルダアクション設定の場所が変わりました。スクリプトメニューに入っていたものが、 /System/Library/CoreServices/Applications/フォルダアクション設定 に。

Automatorのド派手なバグ(ヘルプメニューから飛ぶ先のURLが間違っている、など)を報告して、これは直っていることを確認しました。ただ、OS X 10.11でも同様のバグがあって、前からこの調子だったもよう、、、、

2016/09/20 連番JPEGファイルを読み込んで連結したPDFを作成(新規作成)

連番JPEG画像を番号順にソートして、順次連結したPDFを新規作成するAppleScriptです。

jpeg_catfiles.jpg

このような連番画像を連結して任意のファイル名のPDFに合成します。出来上がるPDFは、元のJPEGファイルの圧縮度に応じて大きくなります。

新規作成よりも、すでに存在しているPDFにJPEGファイルを連結するほうが実用的だと思います。

AppleScript名:連番JPEGファイルを読み込んで連結したPDFを作成(新規作成)
– Created 2016-09-20 by Takaaki Naganoya
– 2016 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “QuartzCore”
use framework “Quartz”
use framework “AppKit”

set aExt to “.jpg”
set aFol to choose folder
set fList to getFilePathList(aFol, aExt) of me
set f2List to my sort1DList:fList ascOrder:true –sort by ascending

set newFile to POSIX path of (choose file name with prompt “新規PDFファイルの名称を選択”)
set newFilePath to current application’s NSString’s stringWithString:newFile

–Make Blank PDF
set aPDFdoc to current application’s PDFDocument’s alloc()’s init()

set pageNum to 0

repeat with i in f2List
  set j to contents of i
  
set aURL to (current application’s |NSURL|’s fileURLWithPath:j)
  
set bImg to (current application’s NSImage’s alloc()’s initWithContentsOfURL:aURL)
  (
aPDFdoc’s insertPage:(current application’s PDFPage’s alloc()’s initWithImage:bImg) atIndex:pageNum)
  
set pageNum to pageNum + 1
end repeat

aPDFdoc’s writeToFile:newFilePath

–ASOCで指定フォルダのファイルパス一覧取得(拡張子指定つき)
on getFilePathList(aFol, aExt)
  set aPath to current application’s NSString’s stringWithString:(POSIX path of aFol)
  
set aFM to current application’s NSFileManager’s defaultManager()
  
set nameList to (aFM’s contentsOfDirectoryAtPath:aPath |error|:(missing value)) as list
  
set anArray to current application’s NSMutableArray’s alloc()’s init()
  
  
repeat with i in nameList
    set j to i as text
    
if (j ends with aExt) and (j does not start with “.”) then –exclude invisible files
      set newPath to (aPath’s stringByAppendingString:j)
      (
anArray’s addObject:newPath)
    end if
  end repeat
  
  
return anArray as list
end getFilePathList

–1D List(文字)をsort / ascOrderがtrueだと昇順ソート、falseだと降順ソート
on sort1DList:theList ascOrder:aBool
  set aDdesc to current application’s NSSortDescriptor’s sortDescriptorWithKey:“self” ascending:aBool selector:“localizedCaseInsensitiveCompare:”
  
set theArray to current application’s NSArray’s arrayWithArray:theList
  
return (theArray’s sortedArrayUsingDescriptors:{aDdesc}) as list
end sort1DList:ascOrder:

★Click Here to Open This Script 

2016/09/13 並列ダウンロードのじっけん

複数のURLをリストで渡すと、Webからダウンロードを実行するAppleScriptです。

downloaded.jpg

実行すると、デスクトップにファイルを作成します。強制的に最前面(foreground)で実行する必要はありません。

本当に並列処理できているのか確証が持てなかったので、わりと大きなデータ(書籍のサンプルPDF)を指定してみました。たぶん、並列ダウンロードしていると思うんですが、、、、

オリジナルのObjective-Cのプログラムでは、毎回同じファイル名で保存するようになっていたので、URLからファイル名を求め(lastPathComponent())、その名前で保存するようにしてみました。

NSURLのlastPathComponent()は本当に便利です。DropboxのURLとかのパラメータつきURLから普通にPure AppleScriptでファイル名を抽出するのは面倒くさい処理ですが、Cocoaの機能を利用すると楽勝です。

ダウンロードしたデータ(NSData)を直接変数に代入できるので、「いったんファイルに書き込む処理をしたくない」ような場合に本ルーチンを書き換えてファイル保存しないようにすることで、目的を達成できます。

AppleScript名:並列ダウンロードのじっけん
– Created 2016-09-13 by Takaaki Naganoya
– 2016 Piyomaru Software

– オリジナル: HTTP からファイルをダウンロードして、ローカルに保存する方法(shintarou_horiのブログ)
–http://shintarou-hori.hatenablog.com/entry/2014/03/15/193604

use AppleScript version “2.4″
use scripting additions
use framework “Foundation”

set urlList to {“http://piyocast.com/as/wp-content/uploads/2016/08/book1_20_sampler.pdf”, “http://piyocast.com/as/wp-content/uploads/2016/08/book2_20_sampler.pdf”}

set fileCount to 1

repeat with i in urlList
  set j to contents of i
  
set aURL to (current application’s |NSURL|’s URLWithString:j)
  
set aQueue to current application’s NSOperationQueue’s new()
  
set aOperation to (current application’s NSInvocationOperation’s alloc()’s initWithTarget:me selector:“execDL:” object:aURL)
  (
aQueue’s addOperation:aOperation)
end repeat

on execDL:theURL
  set imageData to current application’s NSData’s alloc()’s initWithContentsOfURL:theURL
  
set aFileName to theURL’s |lastPathComponent|()
  
my performSelectorOnMainThread:“saveData:” withObject:{imageData, aFileName} waitUntilDone:false
end execDL:

on saveData:theDataArray
  copy theDataArray to {theData, saveFileName}
  
set documentsDirectory to current application’s NSString’s stringWithString:(POSIX path of (path to desktop folder))
  
set dataPath to documentsDirectory’s stringByAppendingPathComponent:saveFileName
  
set fileManager to current application’s NSFileManager’s defaultManager()
  
  
set success to (fileManager’s fileExistsAtPath:dataPath) as boolean
  
if success then
    set retData to current application’s NSData’s dataWithContentsOfFile:dataPath
  else
    theData’s writeToFile:dataPath atomically:true
  end if
end saveData:

★Click Here to Open This Script 

2016/09/08 macOS Sierra(10.12)のリリース日は9/21

macOS Sierra(OS X 10.12)が9/21にリリースされることが発表されました。

また、待望の新製品「AirPods」(音声認識にも使えるワイヤレスヘッドホン+ワイヤレスマイク)も発表されました。

ただ、Mac+AirPods+AppleScriptで組み合わせて安定して使えるかどうかは、実機を試してみるまでわかりません。とくに、ケースから取り出して「耳に入れると自動で音楽再生を行う」という機能をオフにできるのかが問題。

Macとペアリングできて、Macで使えることは発表内容からわかるのですが、細かいところで不明な点が(で、取材記事にはみんな載っていない)あります。

2016/09/07 PDFのしおりを追加

Edama2さんからの投稿Scriptです(ありがとうございますー)。以下、その内容です。

(投稿ここから)
内容は、指定したPDFにしおりを追加します。変更したPDFは同じフォルダに別名保存します。サンプルScript中のしおりデータは、book2_2.0.pdf(最新事情がわかるAppleScript 10大最新技術)用です。

しおりがあると今度は、章だけではなく大見出しも欲しくなり作ってみました。

preview1.png
▲処理前のPDF(Adobe Acrobat Professionalで表示)

pdfindex3.png
▲処理前のPDFのしおり部分(AppleScriptで処理すると一旦削除)

pdfindex4.png
▲処理後のPDF。新規作成したしおり部分。階層構造を持っている

階層表示の一階層しか対応していませんが、もっと深い階層も作れるようにしたかったが、…時間がなくてできませんでした。再帰処理で出来そうな気はするんですが…。

実用的にはもう一階層分あったほうがうれしいです。この辺は好みもあるので自分でもDTPする時に悩みます。

#1 他人のマシン上でも動くAppleScriptを書く
  他人のマシン上でも動くAppleScriptを書く
    準備しよう!
      他人のユーザーアカウント上で動かすための最低条件
      OSAXを極力使わない

メインの処理をrunハンドラでなく、別ハンドラにしているのは、「Objective-Cポインタは保存できません」エラーに対応するためです。

→ AppleScriptのダウンロード(20KB)

リファレンスv2は、ページ数の多さもあり気になった項目から読んでいるので、まだ全部読み終えてませんが主に文法編をよく活用しています。(投稿ここまで)

「AppleScript最新リファレンス」については、書いた本人でも、「あれ、こんなの書いたっけ?」と、自分で読んで発見があります(汗)

プログラムの内容について、自分もひととおり美味しそうなPDF関連のCocoaの機能は試した気になっていたのですが、しおりは試していませんでした。

自分がいつも使っている「AppleScriptのプログラムを書式つきのHTMLに変換」するAppleScriptでお送りいただいたScriptを変換したところ、WordPress側でエラー発生。やむなくダウンロードしていただく形式にしました(なんでだ?!)。

書籍の話に戻りますが……PDFが出来上がったあとでゴニョゴニョを後処理を行うよりも制作フローそのものを見直すべきだとは自分も思っています(MarkdownからPDFを書き出すだけというのは無茶すぎ、、、)。その割に、世間に転がっている情報のウラをとって(実際に確認して)みると、Pandocも割と役立たずで、MarkdownをIDMLに変換できるとかいいつつ、いざInDesignに読ませてみると「互換性がない」エラーに遭遇するやらで、実に「自分で何か作らないとダメ」な雰囲気です。

2016/09/07 Ver. 2.0 eBooks Now On Sale!

電子書籍「AppleScript最新リファレンス」(3,000円)および「最新事情がわかるAppleScript 10大最新技術」(2,000円)のアップデート版(PDF版)の販売を開始いたしました。それぞれのお試し版PDFも用意しておいたので、全体の構成や出だしのページを確認していただくこともできます。


book1sampler.png

▲クリックでサンプル版PDFを表示(10.6MB)
→ご購入はこちら

book2sampler.png

▲クリックでサンプル版PDFを表示(6.1MB)
→ご購入はこちら

「AppleScript最新リファレンス」が初版313ページからアップデート版は483ページ、「最新事情がわかるAppleScript 10大最新技術」は初版が101ページだったものがアップデートして148ページに大幅増量。読者の皆様からのフィードバックを反映させ、不足していた箇所を補うなど、気合いの入ったものになっています(当社比500%増)。

「技術書典」向けに出したVer 1.0では時間不足でずいぶん割愛した部分がありましたが、割愛せずに盛り込んだ結果、こんなに増えてしまいました。

なお、「技術書典」でお買い上げいただいた皆様には、このバージョンは無償でご提供します。一息ついてからアップデートのご案内メールをお送りします。

→ 2016/8/24に送信いたしました。1通だけ「nodutti99」さまのメールだけUser Unknownで返ってきております。ご覧になられていましたら、ご一報ください。また、技術書典当日に購入したのにメールが送られてきていない、という方もご連絡ください。

ダウンロード特典の「スクリプトアシスタント」につきましては、9月中にズレ込む見込みです。あしからずご了承ください。

2016/09/04 電子ブックのオンライン販売について

ぴよまるソフトウェアによる電子ブックの販売体制について決定いたしました。直販のPDF本についてはBOOTHに委託してダウンロード販売を行うことにしました。

■PDF版の販売(第2版を近日発売)
https://piyomarusoft.booth.pm
→ 「最新事情がわかる AppleScript 10大最新技術 OS X 10.11対応」Ver.2.0(PDF版)を発売しました。「AppleScript最新リファレンス OS X 10.11対応」は目下、目次から各ページへのリンク追加作業中です。

■EPUB版の販売(販売中、ただし初版の内容)
KADOKAWA BOOK☆WALKER 長野谷隆昌

EPUB版については、PDFを画像書き出ししたものをEPUBに変換しているため、本Blogへの記事リンク(大量にあります)や、外部サイトへのURLリンク、個々のプログラムリストの内容をスクリプトエディタに転送するURLリンク(これを実現するためにMarkdownで書いているわけで、、、)、キーワード検索などがすべて効きません。これらの機能を重視する方にはPDF版をおすすめします。

→ アップデート版を販売開始しました