クリエイター手抜きプロジェクト[232]InDesign CS3/CS4編 自動的にハイパーリンクを作成する
── 古籏一浩 ──

投稿:  著者:


InDesign CS3/CS4では、文字にハイパーリンクを指定することができます。ページ内の移動だけでなく、Webサイトへのリンクもできます。

今回はInDesignのテキストフレーム内にある文字を、Webサイトへのリンク先とみなして自動的にハイパーリンクを作成するものです。これにより、PDFで書き出した際に文字をクリックすると、Webブラウザが起動し該当ページが表示されるようになります。

まず、最初のサンプルは単純にWebサイトへのURLがテキストフレームに書かれているパターンです。

http://www.openspc2.org/


※この場合、「http://www.openspc2.org/」がハイパーリンクとみなされ処理されます。


ハイパーリンクを作成したいテキストフレームを作成してから、以下のスクリプトを実行します。




(function(){
var selObj = app.activeDocument.selection;
for(var i=0; i< selObj.length; i++){
for(var j=0; j< selObj[i].paragraphs.length; j++){
var txtObj = selObj[i].paragraphs[j];
var text = txtObj.contents;
var linkText = app.activeDocument.hyperlinkTextSources.add(txtObj);
var linkURL = app.activeDocument.hyperlinkURLDestinations.add(text);
var link = app.activeDocument.hyperlinks.add(linkText, linkURL);
link.borderColor = [255, 255, 255]; // リンク枠の色
}
}
})();


ただし、日本語Wikiや日本語ドメインなど日本語が含まれていると正しくリンクできません。デコードしても駄目だったので、日本語が含まれている場合は残念ながら駄目です。何かうまい回避方法があれば、メールいただけると助かります。

上記サンプルでは一行全てがURLになっていることが前提ですが、実際には文章の途中にURLが記述されていることもあります。以下のスクリプトは、文中に http://
の文字が含まれている場合に http://
から改行コードの前の文字までをURLと見なしてハイパーリンクを作成します。

例1)
よく使うWebサイト、検索エンジンと言えばhttp://ww.google.co.jp/


※この場合、「http://ww.google.co.jp/」がハイパーリンクとみなされ処理されます。


例2)
よく使うWebサイト、検索エンジンと言えばhttp://ww.google.co.jp/です。


※この場合、「http://ww.google.co.jp/です。」がハイパーリンクとみなされ処理されます。



(function(){
var selObj = app.activeDocument.selection;
for(var i=0; i< selObj.length; i++){
for(var j=0; j< selObj[i].paragraphs.length; j++){
var txtObj = selObj[i].paragraphs[j];
var text = txtObj.contents;
if ((p = text.indexOf("http://
")) > -1){ // 文中にhttp://があればハイパーリンクのスタイルを設定

var srcText = txtObj.contents.substring(p, text.length-1);
var linkText = app.activeDocument.hyperlinkTextSources.add(txtObj);
var linkURL = app.activeDocument.hyperlinkURLDestinations.add(text);
var link = app.activeDocument.hyperlinks.add(linkText, linkURL);
link.borderColor = [255, 255, 255]; // リンク枠の色
}
}
}
})();


なお、どちらのスクリプトも、すでに同名のリンク先が存在するとエラーになります。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>

CS4は入れていないのですが、もしかしたらCS4だと日本語リンクでもOKかもしれません。あと、濱村さんにWikipediaには固定リンクがあるというのを教えてもらいました。どうもありがとうございます。

おかげさまで目標販売数超えました(まあ、目標が少なかったというのはありますが)
・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/
>

新JavaScript例文辞典はちょこちょこ追加してます。
・新JavaScript例文辞典
< http://www.openspc2.org/reibun/javascript2/index.html
>

photo
組版時間を半減する! InDesign自動処理実例集
技術評論社 2008-11-25
おすすめ平均 star
starこんな本を探してました
starプログラミング経験のない方も気軽に挑戦してほしいです

1ランク上の技を身につけるInDesignの強化書 (MYCOMムック +DESIGNING Professional Bible) InCopyとInDesignによるワークフロー革命 CS4 & CS3 対応 for Macintosh & Windows Adobe InDesign「文字組み」徹底攻略ガイド InDesign CS3の仕事術 InDesignレイアウト手帖




photo
改訂第4版 JavaScript ポケットリファレンス
技術評論社 2006-10-18
おすすめ平均 star
star実用的で分かり易い
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

改訂第6版 HTML&スタイルシート ポケットリファレンス (POCKET REFERENCE) [改訂版] PHP ポケットリファレンス (Pocket reference) JavaScriptワークブック―ステップ30 (情報演習 (5)) 正規表現ポケットリファレンス (POCKET REFERENCE) JavaScriptプログラミング入門 第2版

by G-Tools , 2010/02/22