文書内移動と文書中の行き先
時々、Readerが文書中のある位置(LocalGoto)から別の位置へジャンプする(LocalDestination)リンクが必要になることがある。これは、Chunkクラスの
setLocalGoto と
setLocalDestination の二つのメソッドで達成できます。
どちらのメソッドも、行き先を表すユニークな名前をパラメータとしてとります。
先頭に戻るnew Chunk("localgoto").setLocalGoto("test");
new Chunk("localdestination").setLocalDestination("test");
最初の行は、HTMLでは、<A HREF="#test">localgoto<A>
となり、二行目は、<A NAME="test">localdestination<A>
となります。しかし、HtmlWriter
によってHTMLを作成するときは、Anchor
オブジェクト を使うことになります。
例: java
com.lowagie.examples.objects.anchors.LocalGoto
Creates a document with a local goto and a local destination: see LocalGoto.pdf
LocalGoto Chunk は、LocalDestination へ移動する唯一の手段ではない。この章としおりの章で示しますが、しおりもアクションにおいて文書内の行き先を指定するために使えます。
Creates a document with a local goto and a local destination: see LocalGoto.pdf
例: java
com.lowagie.examples.objects.anchors.LocalDestination
開いたときに文書中の行き先へジャンプする文書の作成: LocalDestination.pdf
開いたときに文書中の行き先へジャンプする文書の作成: LocalDestination.pdf
文書間移動
ある文書で文書中の行き先を指定すると、この行き先へほかの文書からジャンプするようにすることができます。これは、setRemoteGoto(String filename, String name)
メソッドで実現できます。文書中の行き先は、必ずしも必要というわけではなく、setRemoteGoto(String
filename, int page) によってページを指定して移動することもできます。
先頭に戻るnew Chunk("go to a destination in document B")
.setRemoteGoto("DocumentB.pdf", "test");
new Chunk("go to page 3 in document B")
.setRemoteGoto("DocumentB.pdf", 3);
例: java
com.lowagie.examples.objects.anchors.RemoteGoto
お互いにリンクしあう二つの文書と外部URLへのリンク: DocumentA.pdf DocumentB.pdf
お互いにリンクしあう二つの文書と外部URLへのリンク: DocumentA.pdf DocumentB.pdf
Anchorオブジェクト
<A HREF="http://www.lowagie.com/iText/">Bruno's
site<A> のような外部リンクや
<A NAME="top">top of the page<A>
のような内部リンクを作成するにはいくつかの方法がある。そのうちのひとつに
Anchor オブジェクト
を使う方法がある。これは、非常に単純であり、PDFだけでなく、HTMLやRTFでも動作します。
次に、外部リンクを作成するコードを示します。
先頭に戻る次に、外部リンクを作成するコードを示します。
Anchor anchor = new Anchor("website");
anchor.setReference("http://www.lowagie.com/iText/");
anchor.setName("website");
内部リンクは次のようにします。Anchor anchor1 = new Anchor("This is an internal link");
anchor1.setName("link1");
Anchor anchor2 = new Anchor("Go to the internal link");
anchor.setReference("#link1");
例: java
com.lowagie.examples.objects.anchors.AHref
Using the Anchor object: see AHref.pdf AHref.html
Using the Anchor object: see AHref.pdf AHref.html
アクション
PDF
文書にはインタラクティブ性があり、他のページや場所へ移動する、ほかのアプリケーションを起動する、JavaScript
関数を呼び出すなど 'アクション' を含めることができます。これから、iText
でサポートされているいくつかのアクションを説明します。他のアクションは、javadocs (class
PdfAction) を見てください。註:
多くのアクションは、コンストラクタおよびそのコンストラクタを呼び出すスタティックメソッドのどちらを使っても作成することができます。
Acrobat JavaScript は、HTMLページ中のオブジェクトにアクセスできず、HTML JavaScriptは、PDFへはアクセスできません。例えば、Acrobat JavaScriptは、Window オブジェクトにアクセスできません (例えば、Acrobatプラグインが埋め込まれているブラウザのウインドウ)
これを使うときには、Acrobat JavaScript Scripting Reference (Adobe Inc.) や the Client-Side JavaScript Reference (Netscape Communications Corporation) を読む必要があるだろう。これらの文書やそのほかのJavaScriptの解説は、AdobeのWebページ http://partners.adobe.com/NSjscript/ あるいは http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html でみることができます。
PdfAction.gotoRemotePage("remote.pdf", "test", false, true) は、remote.pdf中の"test"へ、別ウインドウを作成し開きます。

先頭に戻る
名前付きアクション
iTextには五つの名前付きアクションがあります。
- PdfAction.FIRSTPAGE: 最初のページに移動
- PdfAction.PREVPAGE: 前のページに移動
- PdfAction.NEXTPAGE: 次のページに移動
- PdfAction.LASTPAGE: 最後のページに移動
- PdfAction.PRINTDIALOG: 印刷ダイアログを開く
new Chunk("First Page")
.setAction(new PdfAction(PdfAction.FIRSTPAGE));
JavaScript
Acrobat JavaScriptは、もともとNetscape
Communicationsで開発されたプログラミング言語JavaScriptあるいはECMAScriptをベースにしています。Acrobat
JavaScript
は、いくつかの新しいオブジェクト、メソッド、プロパティをJavaScriptに加えています。このAcrobat固有のオブジェクトは、添付ファイル、文書のセキュリティ、フォームなどを可能にしています。Acrobat JavaScript は、HTMLページ中のオブジェクトにアクセスできず、HTML JavaScriptは、PDFへはアクセスできません。例えば、Acrobat JavaScriptは、Window オブジェクトにアクセスできません (例えば、Acrobatプラグインが埋め込まれているブラウザのウインドウ)
これを使うときには、Acrobat JavaScript Scripting Reference (Adobe Inc.) や the Client-Side JavaScript Reference (Netscape Communications Corporation) を読む必要があるだろう。これらの文書やそのほかのJavaScriptの解説は、AdobeのWebページ http://partners.adobe.com/NSjscript/ あるいは http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html でみることができます。
new Chunk("Click to say Hello")
.setAction(
PdfAction.javaScript("app.alert('Hello');\r", writer));
The code above, adds an alert action to a Chunk. If you
click the text in the Chunk, an alert is triggered with
the message 'Hello'.
例: java
com.lowagie.examples.objects.anchors.JavaScriptAction
JavaScript アクションを持った文書の作成: JavaScriptAction.pdf
JavaScript アクションを持った文書の作成: JavaScriptAction.pdf
Goto アクション
ほかの文書や URL
へ移動したい場合は、前の節で説明した以外にも方法に、PdfActionを次のコンストラクタで作成するという方法があります。- PdfAction(String filename, String name)
- PdfAction(String filename, int page)
- PdfAction(URL url)
- PdfAction(String url)
PdfAction.gotoRemotePage("remote.pdf", "test", false, true) は、remote.pdf中の"test"へ、別ウインドウを作成し開きます。

例: java
com.lowagie.examples.objects.anchors.Actions
いくつかの Goto アクションを含んだ文書の作成: Actions.pdf remote.pdf
いくつかの Goto アクションを含んだ文書の作成: Actions.pdf remote.pdf
Open アクション
私たちは、これまでにWe've already used an 'Open アクション'をこれまで二回使いました。前の例では
setOpenAction(PdfAction action) メソッドを使い、もっと前の例では
setOpenAction(String name) を使いました。
例: java
com.lowagie.examples.objects.anchors.LocalDestination
開いたときに文書中の行き先へジャンプする文書の作成: LocalDestination.pdf
開いたときに文書中の行き先へジャンプする文書の作成: LocalDestination.pdf
連鎖アクション
ひとつのトリガー で二つ以上のアクションを順次実行させたい場合は、next(PdfAction action)
を使って連鎖させることができます。PdfAction action = PdfAction.javaScript("app.alert('Welcome');\r", writer);
action.next(new PdfAction("http://www.lowagie.com/iText/"));
アプリケーションを起動する
PDF から起動ボタンを使ってアプリケーションを開くようなこともできます。注意:
これは、プラットフォーム依存であり、安全な使い方ではありません。パラメータについては、Javadocs の
PdfAction(String application, String parameters, String
operation, String defaultDir)
メソッドを読んでください。下の例では、NOTEPAD を起動します。(Windowsのみ。WINROOT が C://windows/
でない場合は、パラメータを変更する必要がある。)
new Chunk("Click to open NOTEPAD")
.setAction(new PdfAction("C://WINDOWS/notepad.exe", null, null, null));
このアクションを作成するスタティックメソッドは、PdfAction.createLaunch(String application, String parameters,
String operation, String defaultDir) です。
例: java
com.lowagie.examples.objects.anchors.OpenApplication
C://windows/
外部アプリケーションを開くリンクを含んだ文書の作成: OpenApplication.pdf
外部アプリケーションを開くリンクを含んだ文書の作成: OpenApplication.pdf
注釈
注釈も、文書内あるいは文書外へジャンプする方法のひとつです。Annotation
クラスでできることをご覧ください。
先頭に戻る
- テキスト:
小文を本文とは別に文書に加えることができます。注釈には、タイトルと内容が含まれています。
Annotation a = new Annotation( "authors", "Maybe it's because I wanted to be an author myself that I wrote iText.", 100f, 700f, 200f, 800f);
- 外部リンク: クリック可能な領域と (URL を表す) 文字列あるいは URL
オブジェクトを指定できます。
Annotation annot = new Annotation( 100f, 700f, 200f, 800f, new URL("http://www.lowagie.com/iText/")); Annotation annot = new Annotation( 100f, 700f, 200f, 800f, "http://www.lowagie.com/iText"); - 外部 PDF ファイル: クリック可能な領域と文字列( ファイル名)
と行き先あるいはページ番号を指定できます。
Annotation annot = new Annotation( 100f, 700f, 200f, 800f, "other.pdf", "mark"); Annotation annot = new Annotation( 100f, 700f, 200f, 800f, "other.pdf", 2);
- 名前付きアクション: クリック可能な領域と名前付きアクションを指定できます。
Annotation annot = new Annotation( 100f, 700f, 200f, 800f, PdfAction.FIRSTPAGE);
- アプリケーション: クリック可能な領域とアプリケーションを指定できます。
Annotation annot = new Annotation( 300f, 700f, 400f, 800f, "C://windows/notepad.exe", null, null, null);
- メディアクリップ: クリック可能な領域、動画ファイルとその MIMETYPE
を指定できます。そのページで動画を見せたいのならば、それを指定する必要があります。(PDF 1.5
以降)
new Annotation(200f, 700f, 300f, 800f, "cards.mpg", "video/mpeg", true);
例: java
com.lowagie.examples.objects.anchors.SimpleAnnotations
二つの異なるタイプの注釈を含んだ文書の作成: SimpleAnnotations1.pdf SimpleAnnotations2.pdf
外部リソース: cards.mpg iText.gif
Annotation コンストラクタ を使う方法として、PdfAnnotation
クラス のコンストラクタが使えます。このコンストラクタへアクションを渡すために、Annotation
クラスにたくさんのオプションを指定できます。PdfAnnotation
は、指定した注釈を作成するための数多くのスタティックメソッドがあります。下の例では、いくつかの複雑な機能をコンストラクタとスタティックメソッドを使って示していますが、そのうちのいくつかは、PDF
version 1.5 以降でしか動作しません。
二つの異なるタイプの注釈を含んだ文書の作成: SimpleAnnotations1.pdf SimpleAnnotations2.pdf
外部リソース: cards.mpg iText.gif
例: java
com.lowagie.examples.objects.anchors.Annotations
いくつかの PdfAnnotation を含んだ文書の作成: Annotations.pdf
外部リソース: cards.mpg
いくつかの PdfAnnotation を含んだ文書の作成: Annotations.pdf
外部リソース: cards.mpg