![](/img/trans.png)
[英]I want to add a hyperlink to an existing paragraph or text in word using openxml
[英]Add a hyperlink to paragraph using itextsharp
我有一個段落想要附加一個鏈接,通過執行以下操作,該段落在底部顯示了另一個文本,而不是將鏈接附加到現有文本。
Paragraph portfolioText = new Paragraph("View our Portfolio", new Font(Font.FontFamily.HELVETICA, 15, Font.NORMAL, iTextSharp.text.BaseColor.WHITE));
portfolioText.Alignment = Element.ALIGN_CENTER;
portfolioText.SetLeading(12.1f, 12.1f);
portfolioText.IndentationLeft = 90;
Anchor portAnch = new Anchor(portfolioText);
portAnch.Reference = "http://portfolio.xxxxx.com/";
doc.Add(portfolioText);
doc.Add(portAnch);
[![在此處輸入圖片描述] [1]] [1]
更新:
我嘗試用塊代替:
Chunk portText = new Chunk("View Portfolio");
portText.SetAnchor(new Uri("http://portfolio.xxxxx.com/"));
Paragraph p = new Paragraph();
p.Add(portText);
doc.Add(p);
它可以正常工作,但是如何像上一段一樣應用所有字體樣式/大小和位置?
UPD 2
我試圖給它這樣的樣式,但后來我什至在頁面上都看不到它
Chunk portText = new Chunk("View Portfolio");
portText.SetAnchor(new Uri("http://portfolio.xxxx.com/"));
Paragraph p = new Paragraph();
p.Alignment = Element.ALIGN_CENTER;
p.Font = new Font(Font.FontFamily.HELVETICA, 15, Font.NORMAL, iTextSharp.text.BaseColor.WHITE);
p.SetLeading(12.1f, 12.1f);
p.IndentationLeft = 90;
p.Add(portText);
您的問題直接來自“構建模塊”教程的第6章。
具有命名動作的示例:
Paragraph p = new Paragraph()
.add("Go to last page")
.setAction(PdfAction.createNamed(PdfName.LastPage));
document.add(p);
p = new Paragraph()
.add("Go to first page")
.setAction(PdfAction.createNamed(PdfName.FirstPage));
document.add(p);
GoTo操作的示例:
new Paragraph()
.addTabStops(tabstops)
.add(entry.getKey())
.add(new Tab())
.add(String.valueOf(entry.getValue()))
.setAction(PdfAction.createGoTo(
PdfExplicitDestination.createFit(entry.getValue())));
其中entry
是Map<String, Integer
的條目
適用於您的用例的iText7代碼是
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(PATH_TO_OUTPUT_FILE));
Document layoutDocument = new Document(pdfDocument);
Paragraph portfolioText = new Paragraph("View our Portfolio");
portfolioText.setFont(PdfFontFactory.createFont());
portfolioText.setFontColor(Color.ORANGE);
portfolioText.setFixedLeading(12.1f);
portfolioText.setFirstLineIndent(90f);
portfolioText.setAction(PdfAction.createURI("http://google.com/"));
layoutDocument.add(portfolioText);
layoutDocument.close();
上面的示例代碼包含所有單獨的工作部分,可以做您想要的事情,只是沒有正確地組合在一起 。 這是一個簡單的工作示例(像您一樣使用iTextSharp 5.5.12):
// [1] create a Chunk with font and colors you want
var anchor = new Chunk("View our Portfolio")
{
Font = new Font(
Font.FontFamily.HELVETICA, 25,
Font.NORMAL,
BaseColor.BLUE
)
};
// [2] set the anchor URL
anchor.SetAnchor("http://portfolio.xxxxx.com/");
// [3] create a Paragraph with alignment, indentation, etc
Paragraph p = new Paragraph()
{
Alignment = Element.ALIGN_CENTER,
IndentationLeft = 90
};
p.SetLeading(12.1f, 12.1f);
// [4] add chunk to Paragraph
p.Add(anchor);
// [5] add Paragraph to Document
document.Add(p);
結果PDF:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.