gpt4 book ai didi

java - 如何使用 iText 将 URL 添加到 PDF 文档?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:21 25 4
gpt4 key购买 nike

我已经实现了一个创建 PDFPCell 的通用方法,它适用于文本字段。在这里,我正在寻找一些可以帮助我添加 url(热链接)的代码。提前致谢。

public PdfPCell createCell(String text, Font font, BaseColor bColor, int rowSpan, int colSpan, int hAlign, int vAlign) {
PdfPCell cell = new PdfPCell(new Phrase(text, font));
cell.setBackgroundColor(bColor);
cell.setRowspan(rowSpan);
cell.setColspan(colSpan);
cell.setHorizontalAlignment(hAlign);
cell.setVerticalAlignment(hAlign);
cell.setMinimumHeight(20);
cell.setNoWrap(true);
return cell;
}

最佳答案

请看LinkInTableCell例子。它演示了在单元格中添加链接的两种不同方法。

方法 #1: 添加指向(部分)短语的链接。

Phrase phrase = new Phrase();
phrase.add("The founders of iText are nominated for a ");
Chunk chunk = new Chunk("European Business Award!");
chunk.setAnchor("http://itextpdf.com/blog/european-business-award-kick-ceremony");
phrase.add(chunk);
table.addCell(phrase);

在此示例中,我们创建了一个单元格,其内容为“iText 的创始人被提名为欧洲商业奖!”。当您单击文本“欧洲商业奖!”时,您将转到 a blog post .

方法 #2:将链接添加到完整的单元格

在这种方法中,我们向单元格添加一个单元格事件:

PdfPCell cell = new PdfPCell(new Phrase("Help us win a European Business Award!"));
cell.setCellEvent(new LinkInCell(
"http://itextpdf.com/blog/help-us-win-european-business-award"));
table.addCell(cell);

单元格事件的实现如下所示:

class LinkInCell implements PdfPCellEvent {
protected String url;
public LinkInCell(String url) {
this.url = url;
}
public void cellLayout(PdfPCell cell, Rectangle position,
PdfContentByte[] canvases) {
PdfWriter writer = canvases[0].getPdfWriter();
PdfAction action = new PdfAction(url);
PdfAnnotation link = PdfAnnotation.createLink(
writer, position, PdfAnnotation.HIGHLIGHT_INVERT, action);
writer.addAnnotation(link);
}
}

无论您在单元格中的何处单击(不仅是在单击文本时),您现在都将转到 another blog post .

如果这个答案有帮助,您可能想给我和我的妻子投一票 European Business Awards

关于java - 如何使用 iText 将 URL 添加到 PDF 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288194/

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