gpt4 book ai didi

docx - 在 docx 文件中创建超链接的允许方法是什么?

转载 作者:行者123 更新时间:2023-12-01 02:27:08 31 4
gpt4 key购买 nike

我目前正在开发一个将 docx 文件作为输入并使用它来构建 html 页面的库,由于 docx 的模糊和缺乏文档,我不得不严重依赖示例输出来决定如何处理某些事情。其中之一是超链接。

就我目前所见,docx 至少有两种处理超链接的方法:

  • anchor - <w:hyperlink w:anchor="_Toc000000000" history="1"></w:hyperlink>
    这似乎是执行诸如 toc-links 之类的事情的最喜欢的方式。
  • 编号 - <w:hyperlink w:id="rId7" history="1"></w:hyperlink>
    这似乎是为超链接指定 url 的唯一方法(在 .xml.rels 文件中定义了 id)

  • 到目前为止一切顺利,我的问题是我遇到过的文件,它们简单地指定了“超链接”的 rStyle(在 textrun 对象上)值,然后似乎相信这将使文本充当指向指定标题的超链接文本运行。

    例如,一个文档可以包含以下内容:
    <w:p>
    <w:pPr>
    <w:pStyle w:val="Heading1"/>
    </w:pPr>
    <w:r>
    <w:t>Introduction</w:t>
    </w:r>
    </w:p>

    然后再往下走:
    <w:p>
    <w:r>
    <w:t>This is a hyperlink to </w:t>
    </w:r>
    <w:r>
    <w:rPr>
    <w:rStyle w:val="Hyperlink"/>
    </w:rPr>
    <w:t>Introduction</w:t>
    </w:r>
    <w:r>
    <w:t>.</w:t>
    </w:r>
    </w:p>

    所以我的问题是,这些“超链接”( w:p 而不是 w:hyperlink )实际上有效还是只是我拥有的那个词或文件的作者做错了?

    最佳答案

    当你说 docx 格式模糊且缺乏文档时,你有没有看规范? http://www.ecma-international.org/publications/standards/Ecma-376.htm (尽管我确实发现它们在关键点上含糊不清。)

    我知道至少有两种方法可以创建链接。 w:超链接就是其中之一。
    w:hyperlink元素在内部或外部链接,并且或多或少地以您发现的方式工作。

    在外部超链接的情况下,它将有一个关系 id,以及这个文档的关系中的一个条目,标记为具有 uri 的外部。规范说如果超链接是外部的, anchor 属性应该被忽略,但在实践中,我发现Word会在这里粘贴外部url的 anchor 部分。例如。 http://example.com/page#myAnchor将在没有 #myAnchor 的情况下存储 uri在关系和anchor hyperlink 的属性将有没有“#”的“myAnchor”。您可能想要检查两者。

    对于内部超链接, anchor 应该匹配 name w:bookmarkStart 的属性元素,或者是像“_GoBack”或“_top”这样的特殊值。

    第二种情况是链接的图像,不幸的是,它要复杂得多。会有w:drawing对于将具有 docPr 的图像带有 hlinkClick 的元素元素,它将与目的地有一个关系 id。规范在这一点上似乎有点不清楚,但看看 Word 的作用,看起来如果关系是内部的,它将是一个书签名称(带有 '#' 前缀),如果是外部的,则是一个 uri。

    关于docx - 在 docx 文件中创建超链接的允许方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15456324/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com