開き方
どのエンドユーザも、Acrobat で開き方を変更すことができますが、PDF 文書の作成者も文書の開き方の設定ができます。これは、setViewerPreferences()
メソッドを呼ぶだけです。パラメータは、ORing(ビットフラグ)で構成されいくつかのパラメータは、下で説明します。
先頭に戻るwriter1.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft); writer2.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar); writer3.setViewerPreferences(PdfWriter.PageLayoutTwoColumnRight | PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs); writer4.setViewerPreferences(PdfWriter.DisplayDocTitle);
Example: java
com.lowagie.examples.objects.bookmarks.ViewerPreferences
Creates three versions of the same document, but with different viewerpreferences: see TwoColumnLeft.pdf HideMenuToolbar.pdf FullScreen.pdf WithTitle.pdf
これが、iText でサポートされている開き方のリストです。Creates three versions of the same document, but with different viewerpreferences: see TwoColumnLeft.pdf HideMenuToolbar.pdf FullScreen.pdf WithTitle.pdf
- 文書が開かれたときのページレイアウト(ひとつを選ぶ)
- PageLayoutSinglePage - 一度に1ページ表示する。(デフォルト)
- PageLayoutOneColumn - ひとつの列に複数のページを表示する。(連続ページ)
- PageLayoutTwoColumnLeft - 二つの列に表示する。奇数ページは左。
- PageLayoutTwoColumnRight - 二つの列に表示する。奇数ページは右。
- 開いたときに文書が表示されるモード。(ひとつを選ぶ)
- PageModeUseNone - しおりもページパネルも表示しない。(デフォルト)
- PageModeUseOutlines - しおりを表示。
- PageModeUseThumbs - ページパネルを表示。
- PageModeFullScreen - フルスクリーンモード。メニューバー、ウインドウコントロールなども表示されない。
- PageModeUseOC - レイヤーパネルを表示。
- HideToolbar - 文書がアクティブになったときに、ビュワーアプリケーションのツールバーを隠すかどうかのフラグ
- HideMenubar - 文書がアクティブになったときに、ビュワーアプリケーションのメニューバーを隠すかどうかのフラグ
- HideWindowUI - 表示されている文書コンテンツにフォーカスがないときに、(スクロールバー、ナビゲーションコントロールのような)ツールウインドウコントロールを隠すかどうかのフラグ
- FitWindow - ウインドウの大きさを最初に表示されるページの大きさにあわせるかどうかのフラグ
- CenterWindow - ウインドウを画面中央に表示するかどうかのフラグ
- DisplayDocTitle - トップバーに文書のタイトルを表示するかどうかのフラグ。
- テキストを読み込む順番。この項目は、文書のコンテンツやページ番号には直接の影響しませんが、並べて表示するときや、n-アップ印刷するときの、ページの相対的な配置を決定するために使われる。(ひとつを選ぶ)
- DirectionL2R - 左から右
- DirectionR2L - 右から左 (中国語、日本語、韓国語のような縦書き言語も含む)
- 文書のページモード―フルスクリーンモードを終了するときに文書を表示する方法―の指定。これは、ページモードが
PageModeFullScreen のときにしか意味を持たない。(ひとつを選ぶ)
- NonFullScreenPageModeUseNone - しおりもページパネルも表示しない。
- NonFullScreenPageModeUseOutlines - しおりを表示。
- NonFullScreenPageModeUseThumbs - ページパネルを表示。
- NonFullScreenPageModeUseOC - レイヤーパネルを表示。
ページラベル
開き方を、PageModeUseThumbs モードに設定したとき、文書のそれぞれのページが縮小されている'サムネイル'が表示される。サムネイルには、ラベルを設定できるが、ページラベルのスタイルを変更するならば、PdfPageLabel
オブジェクトを作成し、新しいスタイル、コンテンツあるいは'本当の'ページ番号からはじまるページ番号の値を追加しなければならない。
使用できるスタイルの値は次の通りです。
先頭に戻る使用できるスタイルの値は次の通りです。
- PdfPageLabels.DECIMAL_ARABIC_NUMERALS
- PdfPageLabels.UPPERCASE_ROMAN_NUMERALS
- PdfPageLabels.LOWERCASE_ROMAN_NUMERALS
- PdfPageLabels.UPPERCASE_LETTERS
- PdfPageLabels.LOWERCASE_LETTERS
- PdfPageLabels.EMPTY
pageLabels.addPageLabel(1, PdfPageLabels.LOWERCASE_ROMAN_NUMERALS); pageLabels.addPageLabel(5, PdfPageLabels.DECIMAL_ARABIC_NUMERALS); pageLabels.addPageLabel(8, PdfPageLabels.DECIMAL_ARABIC_NUMERALS, "A-", 8);最初の行は、'真の'1 ページ目から小文字のローマ数字のラベルをつけることを表します。二行目は、'真の'5 ページ目から小文字のアラビア数字のラベルをつけることを表します。ラベルは、1 から始まりまるので、'真の'5 ページ目は、'論理ページ番号' 1 となります。三行目は、'真の'8 ページ目から小文字のアラビア数字の前に "A-" という文字列がついたラベルをつけることを表します。論理ページ番号は、8 で始まります(そうでないならば、"A-1"というラベルになるでしょう)。
Example: java
com.lowagie.examples.objects.bookmarks.PageLabels
Creates a document with pagelabels: see PageLabels.pdf
Creates a document with pagelabels: see PageLabels.pdf
オプショナルコンテンツ
開き方を PageModeUseOC モードに設定すると(PDF version 1.5 以降のみ)、文書のさまざまなレイヤーの表示・非表示を切り替えることができるようになります。レイヤーについては、オプショナルコンテンツの章を参照ください。
先頭に戻る
Example: java
com.lowagie.examples.objects.bookmarks.Layers
Creates a document with text in different layers: see Layers.pdf
Creates a document with text in different layers: see Layers.pdf
しおり
開き方に、PageModeUseOutlines モードが設定されていると、目次やしおりのリストとしてアウトラインツリーが表示されます。このアウトラインツリーを構築するには、
Writer オブジェクトからルートアウトラインを取得しなければなりません。このルートに作成した
PdfOutline オブジェクトを加えます。
先頭に戻るPdfOutline root = writer.getDirectContent().getRootOutline(); new PdfOutline(cb.getRootOutline(), someDestination, "a bookmark");次の節では、'ある行き先'のようなオブジェクトを作成する方法を学びます。下の例では、新しい段落を文書に加えるごとに、アウトラインツリーにエントリーを加えるためにページイベントを使っています。
Example: java
com.lowagie.examples.objects.bookmarks.Bookmarks
Creates a document with Bookmarks for every new Paragraph that is added: see Bookmarks.pdf
Creates a document with Bookmarks for every new Paragraph that is added: see Bookmarks.pdf
行き先の作成
アンカーの章で、Chunk
オブジェクトに名前をつける(setLocalDestination)ことによる行き先の定義を紹介した。この
Chunk のページ上の位置が行き先として定義される。
この節では、次のコンストラクタで構築される Destination.XYZ, Destination.FIT, Destination.FITH, Destination.FITV, Destination.FITR, Destination.FITB, Destination.FITBH or Destination.FITBV のようなタイプの行き先を作成する。
先頭に戻るこの節では、次のコンストラクタで構築される Destination.XYZ, Destination.FIT, Destination.FITH, Destination.FITV, Destination.FITR, Destination.FITB, Destination.FITBH or Destination.FITBV のようなタイプの行き先を作成する。
- public PdfDestination(int type) は、FIT and FITBのタイプに使われる。FIT はページを指し示し、行き先のページが垂直、水平両方でウインドウに収まるように拡大・縮小します。FITB も同じようなものですが、バウンディングボックスがウインドウに収まるように拡大・縮小します
-
public PdfDestination(int type, float parameter)
は、FITH、FITV、FITBH、FITBV に使われます。
type が FITBVのときは、ページのバウンディングボックスの縦が Reader のウインドウに収まるようにします。パラメータは、ウインドウの左端の X 座標です。
type が FITV のときは、ページの縦がウインドウに収まるようにします。パラメータは、ウインドウの左端の X 座標です。
type が FITBHのときは、ページのバウンディングボックスの幅が Reader のウインドウに収まるようにします。パラメータは、ウインドウの上端の Y 座標です。
type が FITH のときは、ページの幅がウインドウに収まるようにします。パラメータは、ウインドウの上端の Y 座標です。
- public PdfDestination(int type, float left, float top, float zoom) は、行き先ウインドウの左上角を示す座標 (left, top) とページのコンテンツの拡大・縮小の仕方を示す拡大率を指定する XYZ で使われます。パラメータ left あるいは top のいずれかが負の値、あるいは拡大率 0 は、現在の値をそのまま保持することを表します。
- public PdfDestination(int type, float left, float bottom, float right, float top) は、左、下、右、上の座標によって指定される四角形によって定義される行き先となる FITR のために使われます。水平、垂直の拡大率が異なる場合はその小さいほうの値を使い、もう一方の辺がウインドウ内でセンタリングされます。
PdfDestination d1 = new PdfDestination(PdfDestination.XYZ, 300, 800, 0); PdfDestination d2 = new PdfDestination(PdfDestination.FITH, 500); PdfDestination d3 = new PdfDestination(PdfDestination.FITR, 200, 300, 400, 500); PdfDestination d4 = new PdfDestination(PdfDestination.FITBV, 100); PdfDestination d5 = new PdfDestination(PdfDestination.FIT);
Example: java
com.lowagie.examples.objects.bookmarks.Destinations
Creates a document with destinations that can be called from Bookmarks: see Destinations.pdf
Creates a document with destinations that can be called from Bookmarks: see Destinations.pdf
アウトラインとアンカー
先の例で、あるPdfDestination
へジャンプするアウトラインツリーを使ったが、PdfOutline
も
PdfAction のトリガーになりうる (アクションの章参照)。
先頭に戻るPdfOutline root = writer.getDirectContent().getRootOutline();
new PdfOutline(root,
new PdfAction("http://www.lowagie.com/iText"), "Bruno's iText site");
new PdfOutline(other,
PdfAction.javaScript("app.alert('Hello');\r", writer), "Say Hello");
Example: java
com.lowagie.examples.objects.bookmarks.OutlineActions
Creates a document with external destinations or actions that can be called from Bookmarks: see OutlineActions.pdf remote.pdf
Creates a document with external destinations or actions that can be called from Bookmarks: see OutlineActions.pdf remote.pdf
Chapter オブジェクトと Section オブジェクト
これまでのサンプルが機能過剰で、章と(その中の)節の単純なツリーの作成で十分なら、行き先の定義とルートアウトラインあるいは親アウトラインへの追加の必要はありません。単に
Chapter オブジェクトと
Section
オブジェクトを使うだけです。これにより、タイトルに番号付けされたツリーが自動的に構築されます。
先頭に戻る
If all the examples above are overkill, if you only need a simple tree with some chapters and (sub)sections, you needn't define destinations and add them to a rootoutline or a parent outline. You can simply use the objects Chapter and Section. They build a tree and number titles automatically.
Paragraph cTitle = new Paragraph("This is chapter 1", chapterFont);
Chapter chapter = new Chapter(cTitle, 1);
Paragraph sTitle = new Paragraph("This is section 1 in chapter 1", sectionFont);
Section section = chapter.addSection(sTitle, 1);
注意事項
- 完全な章(その下の節も含む)のコンテンツは、章を文書に追加した時点で Writer
に'フラッシュ'されます。
- avoid mixing Chapter.add() と Document.add の混在した呼び出しは避けなければなりません。Chunk1 を Chapter に最初に加えた後に、Chunk2 を Document に加え、最後に Chapter に加えると、Chunk2 は、得られる文書の中で、Chunk1 の前に配置されます。
- あまり大きな Chapter を作成することは避けなければなりません。Chapter コンテンツは、Document に加えられない限りメモリ上に保持されます。
- すべての Chapter は、自動的に新しいページから始まります。Chapter 中の Section を新しいページから始めたいならば、Chunk.NEXTPAGE を使わなければなりません。
Example: java
com.lowagie.examples.objects.bookmarks.ChapterSection
Creates a document with Chapters and Sections (automatic outlines): see ChapterSection.pdf
Creates a document with Chapters and Sections (automatic outlines): see ChapterSection.pdf