PDF内のURLリンクを追加する機能は最初から用意していた。ただしWebページの開き方はXcode内に用意されているアプリ内蔵ブラウザで表示していた。ところが、内蔵ブラウザではアプリ内のURLリンクからApp Storeを開くことができない。アプリからURLリンクをタップするとiPhoneのApp Storeが起動してアプリをダウンロードできるようしたいと考えた。
SafariでiTunesプレビューのURLを開くと、App Storeが起動してアプリのダウンロードページが開く。Safari経由だとiTunesプレビューのURLはApp Storeに橋渡しされるが、内部ブラウザを使うと機能しないのである。そこでSakuttoBookでもURLリンクがSafariでも開くようにした。URLリンクをタップすると、内部ブラウザかSafariかを選択できるようにしたのである。Ver 1.4で対応した。
ところがユーザーの方からの問い合わせを聞いていくと、いくつかの問題点が見合えてきた。大きくいうと2つのボトルネックがあった。ボトルネックを解決しないと、誰でもがSakuttoBookでURLリンクを追加することができない。ボトルネックとは、
Acrobatなどが必要
動作しないリンクがある
というものである。
Acrobatが必要というのは、PDFにURLリンクを追加するにはAcrobatの製品版が基本になる。InDesignやWordなどURLリンクを書き出せるアプリもあり、それを使う方法もある。とはいえPDFの作成においてURLリンクを追加する場合、アプリケーションが限定されてしまうと、ユーザーによってはSakuttoBookの価値が下がってしまう。
PDFのURLリンクの追加は、以前はMacintoshのビューワーソフト、プレビューで可能だった。プレビューでインスペクタを開くとURLリンクを追加する機能があった。10.7のときである。ところが、10.8にバージョンアップしたとき、プレビューからURLリンクを追加する機能は削除されてしまった。バージョンアップで機能削除というあり得ない出来事が起こった。さらに、プレビューのURLリンク追加機能は10.7.4までは使えたが、Mac OS Xを10.7.5にアップデートすると、やはり10.8と同じようにメニューからに消えてしまうのである。
最初は「Acrobatがなくてもプレビューでできます」という案内をすれば解決すると考えていたが、これでこの対処方法はなくなったしまった。他にもフリーソフトでPDFにWebリンク追加するユーティリティを探してみたが、見つけることができなかった。
PDFのURLリンクはそれほど難しい機能ではないと思うが、プレビューで削除されたのには理由があるに違いない。アップルがあっさり削除したのは、特許関係ではないか。AcrobatでAcrobatメニューから「Acrobatプラグインについて」というメニューを開くと左ウィンドウに
Weblink
というプラグインがあり、PDFにWebページのリンクを埋め込む機能はAdobe Systemsがライセンスを持っていると書かれているではないか。

*Acrobat X Proの「Acrobatプラグインについて」ここではAcrobatで使われているプラグインのライセンスなどが記載されている。
PDFを作成する機能はオープンになっておりライセンスは発生しないが、その周辺の機能は別のライセンスになる。Webリンク機能もオプション機能の一つなのだろう。AppleはAdobeからライセンスせずに、機能を削除する道を選択したのだろう。Mac OS Xのダウンロード数に合わせてライセンスフィーを払うとなったら、途轍もない金額になるかもしれない。撤退するしかなさそうだ。となると無料のソフトにURLリンクを埋め込む機能を見つけることはまず無理そうである。
もう一つの問題はAcrobatなどでURLリンクを指定しても、たまに動作しないことがあるということだった。大半は動作するのに、特定のページだけ動作しない場合があった。InDesignで作成したPDFで、しかもAcrobatで一旦URLリンクを削除して、Acrobatで付け直しても同じ状態だった。どうもURLリンクの形式が異なるらしいが、対処方法が見当たらなかった。
Acrobatで開いてUTLリンクを開くと正しく動作するので、こればかりは言い訳しても仕方がない。そこで、SakuttoBookの機能でページ番号とタップエリア指定し、URLリンクを記述することで埋め込みURLと同じように動作する機能をSakuttoBookに追加した。それが「urlLinkDefine」である。

*わかりにくいが最後にGoogleのURLを指定している。
↓

*iOSシミュレータで表示されたURLリンクのタップエリア(実機では表示されません)。
↓

*iPhoneでのWebブラウザの選択画面。iPadでは「キャンセル」ボタンは表示されません(iOSの仕様)
↓

*内部ブラウザで開いたGoogleのページ。内部ブラウザだとそのままアプリにも戻ることができる。
PDFのページ番号はともかく、タップエリアを調べるのけっこう面倒である。デバイス画面と同じサイズで作成している場合、InDesignでは定規をポイント(1インチ=72ポイント)に変換してタップ位置にボックスを作成してその数値を控えればよいが、InDesign以外では使えない。SakuttoBookではタップエリアを画面の実寸法のポイントサイズで入力するようになっている。こうしておけば、画面の解像度が変わってもあたふたすることはない。
プレビューを今一度見直してみると、プレビューでもタップエリアを簡単に調べることができることがわかった。画像ファイルでは表示されないが、PDFをプレビューで開くとインスペクタに[切り取りと回転]というパネルが表示される。そこで選択ツールで長方形を選択すると、ポイント換算されたPDFの左上の座標と幅と高さが表示されるのである。この数値をおおよそで拾えばよい。

*プレビューのインスペクタにある[切り取りと回転]で左上の座標と幅と高さをポイントで算出する。PDFの実寸法と画面サイズが異なる場合はこの方法は使えない。iPhone用のPDFでは約50×75mmで作成する必要がある。
プレビューでタップエリアを簡単に調べることができれば、「urlLinkDefine」を使うのはそれほど難しくはない。「urlLinkDefine」に対応しているのは、SakuttoBook 2.1.5以降である。
◆ Macのプレビュー.appでPDFにWebサイトへのリンクを追加する方法
http://bit.ly/W0aRat
◆SakuttoBook(サクッとブック)でiPhoneアプリを作る方法
http://bit.ly/mhgjCG
◆Xcode 4対応のSakuttoBook Lite版ならぬTrial版、無料ダウンロード開始
http://denshi-shoseki.seesaa.net/article/263470895.html
◆App Store審査ガイドライン対訳解説
セミナー動画もバンドルしました。
↓ ↓
http://www.incunabula.co.jp/book/reject/
◆Xcode 4でiOSアプリの設定と申請を最短距離でする方法
http://bit.ly/Jk88Bc
【SakuttoBook日記の最新記事】
- iOS 8、Xcode 5.1.1でSa..
- 2.21リジェクト顛末記2−ストアアプリ..
- 2.21リジェクト顛末記1−Sakutt..
- 法人向けD-U-N-S Numberを無..
- 日本語版iBookstoreローンチで始..
- 複数台のMacintoshでiOS De..
- 立川談幸師のグリム童話をSakuttoB..
- iOS 6から厳格になったiCloudの..
- Xcode4.5で必要になったiPhon..
- Xcode 4.5とiOSシミュレータ ..
- iOSアプリ内課金、リストア機能なしはな..
- SakuttoBook、PDFのユニバー..
- アプリ内課金を回避するエクスプロイトの衝..
- iOSシミュレータと実機のキャッシュを殺..
- アプリ内課金の仕組み 2 アプリ内課金は..
- アプリ内課金の仕組み 1 アプリ内課金ア..
- SakuttoBookユニバーサル版検証..
- SakuttoBookより安い儲かるiP..
- Lionへのアップデートを誘うiOS 5..
- Xcode 4でする実機インストールの動..