如何添加到XWPFRun的超链接

时间:2016-06-20 17:23:20

标签: java apache-poi xwpf

我想将XWPF Run的文本格式化为超链接。我可以使用下面给出的代码将其添加到段落中,但是将其添加到单独的行中。

 public static void appendExternalHyperlink(String url, String text, XWPFParagraph paragraph){

    //Add the link as External relationship
    String id=paragraph.getDocument().getPackagePart().addExternalRelationship(url, XWPFRelation.HYPERLINK.getRelation()).getId();

    //Append the link and bind it to the relationship
    CTHyperlink cLink=paragraph.getCTP().addNewHyperlink();
    cLink.setId(id);

    //Create the linked text
    CTText ctText=CTText.Factory.newInstance();
    ctText.setStringValue(text);
    CTR ctr=CTR.Factory.newInstance();
    ctr.setTArray(new CTText[]{ctText});
    CTRPr rpr = ctr.addNewRPr(); 
    CTColor colour = CTColor.Factory.newInstance(); 
    colour.setVal("0000FF"); rpr.setColor(colour); 
    CTRPr rpr1 = ctr.addNewRPr(); rpr1.addNewU().setVal(STUnderline.SINGLE);

    //Insert the linked text into the link
    cLink.setRArray(new CTR[]{ctr});
}

我把它称为:

XWPFParagraph eduPara = doc.createParagraph();
eduPara.setAlignment(ParagraphAlignment.LEFT);
eduPara.setVerticalAlignment(TextAlignment.TOP);

XWPFRun eduRun7 = eduPara.createRun();
appendExternalHyperlink(center.getEduImpFile(), center.getEduImpFile(), eduPara);
eduRun7.addBreak();

此处 center 是一个包含我需要打印的值的对象.get函数以 String 格式提供输出。

我得到的输出如下:

Program Output

我希望超链接与上一次运行位于同一行,生成文字“文件已上传:”

1 个答案:

答案 0 :(得分:0)

这是我的一个错误,因为它没有足够的空间放置线。