Выбрать главу

       1. Here's the first footnote's text.

      </fo:block>

     </fo:footnote-body>

    </fo:footnote>

    refers to text at the bottom of this page.

   </fo:block>

   <fo:block font-size="24pt">

    This second;

    <fo:footnote>

     <fo:inline>footnote

      <fo:inline font-size="16pt" vertical-align="super">

       2

      </fo:inline>

     </fo:inline>

     <fo:footnote-body>

      <fo:block>

       2. And here's the second footnote's text.

      </fo:block>

     </fo:footnote-body>

    </fo:footnote>

    also refers to text at the bottom of this page.

   </fo:block>

  </fo:flow>

 </fo:page-sequence>

</fo:root>

Текст, дополненный верхними индексами для сносок 1 и 2, показан на рис. 12.4. Текст двух сносок внизу той же самой страницы показан на рис. 12.5.

Рис. 12.4. Текст со сносками 

Рис. 12.5. Текст сносок внизу страницы

Для создания текста сносок применяется элемент <fo:footnote>. При работе с процессором fop вы должны самостоятельно добавлять фактический номер сноски в верхнем индексе — такой, как 1 или 2. Вот как это выглядит в footnotes.fo, где для создания верхнего индекса я установил свойство vertical-align встроенного элемента в «super»:

<fo:block font-size="24pt">

 This:

 <fo:footnote>

  <fo:inline>footnote

   <fo:inline font-size="16pt" vertical-align="super">

    1

   </fo:inline>

  </fo:inline>

  .

  .

  .

</fo:block>

Чтобы создать текст сноски, появляющийся внизу страницы, нужно применить элемент <fo:footnote-body> внутри элемента <fo:footnote>. Сам процессор fop не нумерует сноски, поэтому за добавление номеров сносок отвечаете вы:

<fo:block font-size="24pt">

 This

 <fo:footnote>

  <fo:inline>footnote

   <fo:inline font-size="16pt" vertical-align="super">

    1

   </fo:inline>

  </fo:inline>

  <fo:footnote-body>

   <fo:block>

    1. Here's the first footnote's text.

   </fo:block>

  </fo:footnote-body>

 </fo:footnote>

 refers to text at the bottom of this page.

</fo:block> 

Этот код на XSL-FO создает и первый текст со сносками на рис. 12.4, и сам текст первых сносок, показанный на рис. 12.5.

Создание ссылок: <fo:basic-link>

Еще одним мощным средством XSL-FO является возможность использовать ссылки от документа к документу. В данный момент эта возможность поддерживается в процессоре fop при помощи элемента XSL-FO <fo:basic-link>, который действует во многом похоже на обычную гиперссылку. С элементом <fo:basic-link> можно применять следующие свойства:

• общие свойства доступа: source-document, role;

• общие звуковые свойства: azimuth, cue-after, cue-before, elevation, pause-after, pause-before, pitch, pitch-range, play-during, richness, speak, speak-header, speak-numeral, speak-punctuation, speech-rate, stress, voice-family, volume;

• общие свойства границ, заполнения и заднего фона: background-attachment, background-color, background-image, background-repeat, background-position-horizontal, background-position-vertical, border-before-color, border-before-style, border-before-width, border-after-color, border-after-style, border-after-width, border-start-color, border-start-style, border-start-width, border-end-color, border-end-style, border-end-width, border-top-color, border-top-style, border-top-width, border-bottom-color, border-bottom-style, border-bottom-width, border-left-color, border-left-style, border-left-width, border-right-color, border-right-style, border-right-width, padding-before, padding-after, padding-start, padding-end, padding-top, padding-bottom, padding-left, padding-right;

• общие встроенные свойства встроенных полей: space-end, space-start;

• общие свойства относительного расположения: top, right, bottom, left, relative-position;

• alignment-adjust;

• alignment-baseline;

• baseline-shift;

• destination-placement-offset;

• dominant-baseline;

• external-destination;

• id;

• indicate-destination;

• internal-destination;

• keep-together;

• keep-with-next;

• keep-with-previous;

• line-height;

• line-height-shift-adjustment;

• show-destination;

• target-processing-context;

• target-presentation-context;

• target-stylesheet.

Следующий пример, links.fo (листинг 12.6), содержит ссылку на документ PDF, созданный ранее в этой главе, graphics.pdf.

Листинг 12.6. links.fo

<?xml version="1.0" encoding="UTF-8"?>

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

 <fo:layout-master-set>

  <fo:simple-page-master margin-right="20mm" margin-left="20mm"

   margin-bottom="10mm" margin-top="10mm" page-width="300mm"

   page-height="400mm" master-name="page">

   <fo:region-body margin-right="0mm" margin-left="0mm"

    margin-bottom="10mm" margin-top="0mm"/>

   <fo:region-after extent="10mm"/>

  </fo:simple-page-master>

 </fo:layout-master-set>

 <fo:page-sequence master-name="page">

  <fo:flow flow-name="xsl-region-body">

   <fo:block space-after="12pt" font-weight="bold"

    font-size="36pt" text-align="center">

    Using Links

   </fo:block>

   <fo:block font-size="24pt">

    If you'd like to see some images, click

    <fo:basic-link external-destination="graphics.pdf">

     <fo:inline text-decoration="underline">here</fo:inline>

    </fo:basic-link>.

   </fo:block>

  </fo:flow>

 </fo:page-sequence>

</fo:root>

Документ PDF, созданный на основе links.fo, показан на рис. 12.6. Заметьте, что я явно подчеркнул ссылку, чтобы она была больше похожа на гиперссылку. Когда в Adobe Acrobat вы помещаете указатель мыши над ссылкой, он меняет свою форму и становится в точности такой формы, которую Internet Explorer использует для гиперссылок, как показано на рис. 12.6. При щелчке на ссылке Acrobat переходит на graphics.pdf (который для работы примера нужно поместить в тот же каталог, что и links.pdf), отображая этот новый документ.