Создание гиперссылки на закладку (OpenXML / Word) - PullRequest
3 голосов
/ 18 августа 2011

Ух ты, мне кажется невероятно трудно найти примеры вставки гиперссылки в закладку.

Если я создаю простой документ Word со ссылкой на закладку, ссылка выглядит примерно так.

<w:p w:rsidR="00B61E6F" w:rsidRDefault="00E56782"
    xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:r>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> HYPERLINK \l "Text" </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r w:rsidRPr="00AC2FAA" w:rsidR="00AC2FAA">
    <w:rPr>
      <w:rStyle w:val="Hyperlink" />
    </w:rPr>
    <w:t>Link</w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:rStyle w:val="Hyperlink" />
    </w:rPr>
    <w:fldChar w:fldCharType="end" />
  </w:r>
</w:p>

Но какого черта это значение instrText (FieldCode) HYPERLINK \l "Text"?Это где-то описано?

Я попытался реализовать вышеуказанный шаблон как есть.В результате это работает, но в некоторых случаях текст не отображается как гиперссылка.

1 Ответ

2 голосов
/ 19 августа 2011

Элемент instrText документирован в части 1, раздел 17.16.23 стандарта Open XML, а конкретные коды HYPERLINK документированы в 17.16.5.25. Вы можете получить бесплатную копию этого стандарта в виде «ECMA-376 2nd edition» на веб-странице Ecma 376 .

Это не совсем точно объясняет, почему ваш код не работает при некоторых обстоятельствах - возможно, вы указываете на несуществующую закладку?

...