我有一个段落,我想附加链接,通过执行以下操作,它会在底部显示另一个文本,而不是附加到现有文本的链接。
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而不是:
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);
答案 0 :(得分:2)
您的问题直接来自“构建基块”教程的第6章。
命名操作的示例:
class1
GoTo操作示例:
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);
其中new Paragraph()
.addTabStops(tabstops)
.add(entry.getKey())
.add(new Tab())
.add(String.valueOf(entry.getValue()))
.setAction(PdfAction.createGoTo(
PdfExplicitDestination.createFit(entry.getValue())));
是来自entry
您的用例的 iText7 代码
Map<String, Integer
答案 1 :(得分:1)
上面的示例代码包含所有个人工作部分,可以执行您想要的操作,而不是组合正确的方法。这是一个简单的工作示例(像你一样使用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: