首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用iText 5.5.13.2在现有PDF中创建链接

使用iText 5.5.13.2在现有PDF中创建链接
EN

Stack Overflow用户
提问于 2022-02-07 07:27:34
回答 1查看 448关注 0票数 1

如何在PDF中添加外部链接并重定向到网页。。。。

示例图像描述如下

点击Goolge,用户应该重定向到网页https://www.google.com

这里是我的代码

代码语言:javascript
运行
复制
private void createPDFiText() {
        int margin = getResources().getDimensionPixelSize(R.dimen._5sdp);
        Document document = new Document(PageSize.A4, margin, margin, margin, margin);

        try {
            PdfWriter.getInstance(document, getOutputStream());
            document.open();

            for (int i = 12; i <= 17; i++) {
                
                Phrase phrase = new Phrase("Open ");
                Phrase phrase1 = new Phrase(" on Click On it.");

                Font anchorFont = new Font(Font.FontFamily.UNDEFINED, 25);
                anchorFont.setColor(BaseColor.BLUE);
                anchorFont.setStyle(Font.FontStyle.UNDERLINE.getValue());

                Anchor anchor = new Anchor("Google", anchorFont);
                anchor.setReference("www.google.com");


                phrase.add(anchor);
                phrase.add(phrase1);
                
                document.add(phrase);
                

            }
            document.close();

        } catch (DocumentException | IOException e) {
            e.printStackTrace();
        }

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-10 12:19:22

我指的是这个answer。看一看。使用iText 5.5.13.2修改现有的pdf文件很复杂。但推荐的解决方案更容易。iText 7有更好的方法来修改现有的pdf。还有其他几种方法。比如PdfStamper等等。

从引用的答案中,添加以下代码以形成锚点。

代码语言:javascript
运行
复制
Phrase phrase = new Phrase("Open ");
Phrase phrase1 = new Phrase(" on Click On it.");

Font anchorFont = new Font(Font.FontFamily.UNDEFINED, 11);
anchorFont.setColor(BaseColor.BLUE);
anchorFont.setStyle(Font.FontStyle.UNDERLINE.getValue());

Anchor anchor = new Anchor("Google", anchorFont);
anchor.setReference("www.google.com");

phrase.add(anchor);
phrase.add(phrase1);
document.add(phrase);

根据您的需要更改字体和颜色。

完整代码:

代码语言:javascript
运行
复制
try {
    PdfReader reader = new PdfReader("test.pdf"); //src pdf path (the pdf I need to modify)

    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test2.pdf")); // destination pdf path
    document.open();

    PdfContentByte cb = writer.getDirectContent();
    PdfImportedPage page = writer.getImportedPage(reader, 1);

    document.newPage();
    document.setPageSize(reader.getPageSize(1));

    cb.addTemplate(page, 0, 0);

    Phrase phrase = new Phrase("Open ");
    Phrase phrase1 = new Phrase(" on Click On it.");
    Font anchorFont = new Font(Font.FontFamily.UNDEFINED, 11);
    anchorFont.setColor(BaseColor.BLUE);
    anchorFont.setStyle(Font.FontStyle.UNDERLINE.getValue());

    Anchor anchor = new Anchor("Google", anchorFont);
    anchor.setReference("https://www.google.com");

    phrase.add(anchor);
    phrase.add(phrase1);
    document.add(phrase);

    document.close();

    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71014806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档