iText - How to stamp image on existing PDF and create an anchor

后端 未结 1 1162
予麋鹿
予麋鹿 2020-12-10 17:23

I have an existing document, onto which I would like to stamp an image at an absolute position. I am able to do this, but I would also like to make this image clickable: whe

相关标签:
1条回答
  • 2020-12-10 17:35

    You are using a technique that only works when creating documents from scratch.

    Please take a look at the AddImageLink example to find out how to add an image and a link to make that image clickable to an existing document:

    public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
        PdfReader reader = new PdfReader(src);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
        Image img = Image.getInstance(IMG);
        float x = 10;
        float y = 650;
        float w = img.getScaledWidth();
        float h = img.getScaledHeight();
        img.setAbsolutePosition(x, y);
        stamper.getOverContent(1).addImage(img);
        Rectangle linkLocation = new Rectangle(x, y, x + w, y + h);
        PdfDestination destination = new PdfDestination(PdfDestination.FIT);
        PdfAnnotation link = PdfAnnotation.createLink(stamper.getWriter(),
                linkLocation, PdfAnnotation.HIGHLIGHT_INVERT,
                reader.getNumberOfPages(), destination);
        link.setBorder(new PdfBorderArray(0, 0, 0));
        stamper.addAnnotation(link, 1);
        stamper.close();
    }
    

    You already have the part about adding the image right. Note that I create parameters for the position of the image as well as its dimensions:

    float x = 10;
    float y = 650;
    float w = img.getScaledWidth();
    float h = img.getScaledHeight();
    

    I use these values to create a Rectangle object:

    Rectangle linkLocation = new Rectangle(x, y, x + w, y + h);
    

    This is the location for the link annotation we are creating with the PdfAnnotation class. You need to add this annotation separately using the addAnnotation() method.

    You can take a look at the result here: link_image.pdf If you click on the i icon, you jump to the last page of the document.

    0 讨论(0)
提交回复
热议问题