当前位置: 首页 > 知识库问答 >
问题:

将指向XWPF段落的超链接插入到XWPF文档中的另一个段落

沈茂
2023-03-14

我想让XWPF段落(start)中的文本成为文档中另一个具体XWPF段落(end)的超链接。我发现了一个在XWPFcell中制作超链接的代码,但它不起作用(启动链接开始):

    private static void createHyperlink(XWPFParagraph start, XWPFParagraph end, String endText, String startText) {

    CTHyperlink cLink = end.getCTP().addNewHyperlink();
    cLink.setAnchor(startText);

    CTText ctText = CTText.Factory.newInstance();
    ctText.setStringValue(endText);
    CTR ctr = CTR.Factory.newInstance();
    ctr.setTArray(new CTText[] { ctText });


    cLink.setRArray(new CTR[] { ctr });
    start.getCTP().setHyperlinkArray(new CTHyperlink[] { cLink });
    end.getCTP().removeHyperlink(0);
}

共有1个答案

干稳
2023-03-14

我终于做到了。最初的想法是创建一个从一个XWPFParagraph到另一个XWPFParagraph的超链接,但由于我将始终链接到文档中具有唯一文本的段落,我发现它是这样的:

    private static void createHyperLink(XWPFParagraph start, String startTxt, String endTxt) {

        // Creating the hyperlink in the start paragraph
        CTHyperlink cLink = start.getCTP().addNewHyperlink();

        // Link to the end text in the doc
        cLink.setAnchor(endTxt);

        // Creating the String that will have the hyperlink
        CTText ctText = CTText.Factory.newInstance();
        ctText.setStringValue(startTxt);
        CTR ctr=CTR.Factory.newInstance();
        ctr.setTArray(new CTText[]{ctText});

        // Inserting the String in the doc
        cLink.setRArray(new CTR[]{ctr});            
    }
 类似资料:
  • 你知道有没有办法在段落完整填充文档(XWPFDocument)中插入段落(XWPFParagraph)?。 有一种方法可以将文档中已经存在的段落“更改”为另一个段落(XWPFDocument.setparagration()),但我不知道如何将新段落插入文档中的特定位置,而不是在XWPFDocument的末尾。创建段落()。

  • 假设我有两份文件。 一个是有大约2-3页的主模板。第二个只有一段文字与各种风格(粗体,斜体,下划线,字体大小等)。 我想用第二个文档中的段落替换模板中的一个参数。 null

  • 我有一个问题'XWPF文档'。程序的一部分获取docx文件,并将其中的所有内容复制到一个输出docx文件中。包括文字、表格、图片和公式。我在这方面有一个很好的结果,但是最近我有一个错误:一张图片没有复制到结果中。这是源代码,这是结果。结果你可以看到“3.1.6.2”部分的哪些图像被成功复制,但是不在“3.1.6.1”。 我是这样做的: 这里的关键是: 我从'运行'得到嵌入的图片。在坏的文件中,我有

  • 问题内容: 我正在尝试用Jade编写一些段落,但是当段落中有链接时会发现很难。 我能想到的最好的,我想知道是否有一种方法可以减少标记: 问题答案: 从jade 1.0开始,有一种更简单的方法可以解决此问题,但是不幸的是,我在官方文档中找不到它。 您可以使用以下语法添加内联元素: 因此,没有在ap中插入多行的示例将是这样的: 您还可以执行嵌套的内联元素:

  • 假设我的docx文档中有一个特定的段落,具有特定的文本格式,例如: Foo bar 我想制作一个类似于此段落的模板,以便多次将其复制到同一文档中。 复制文本,如 在示例中意味着文本格式丢失。 有没有任何通用的方法可以使用python docx库来实现这一点 我们还特别感谢python和django的其他解决方案<提前谢谢。

  • 我正在对一个。docx文件进行搜索和替换,在某些情况下,替换文本包含换行符。我已经尝试了几种技巧。第一种方法是将替换文本分成几行,并执行以下操作: 结果全部运行在单行上。 在光标位置添加一个新段落。光标必须位于文档主体子元素的XMLCursor.TokentYPE.Start标记上。完成此方法后,作为参数传递的游标将指向新插入段落的XMLCursor.TokentYPE.End。 我已经仔细检查了