繁体   English   中英

如何使用iText在pdf的最后一页添加图片?

[英]How to add an image in the last page of pdf using iText?

如何在现有 PDF 文档的最后一页添加图像。 请帮我。

以下示例使用 Itext 5 将图像添加到现有 pdf 的第二页。

    String src = "c:/in.pdf;
    String dest = "c:/out.pdf";
    String IMG = "C:/image.jpg";

    try {

        PdfReader reader = new PdfReader(src);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
        com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance(IMG);
        image.setAbsolutePosition(36, 400);
        PdfContentByte over = stamper.getOverContent(2);
        over.addImage(image);
        stamper.close();
        reader.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

对我来说最好的解决方案是用我要添加的图像创建一个新的内存 PDF 文档,然后将此页面复制到原始文档。

 // Create a separate doc for image
var pdfDocWithImageOutStream = new ByteArrayOutputStream();
var pdfDocWithImage = new PdfDocument(new PdfWriter(pdfDocWithImageOutStream).setSmartMode(true));
var docWithImage = new Document(pdfDocWithImage, destinationPdf.getDefaultPageSize());

// Add image to the doc
docWithImage.add(image);

// Close the doc to save data
docWithImage.close();
pdfDocWithImage.close();

// Open the same doc for reading
pdfDocWithImage = new PdfDocument(new PdfReader(new ByteArrayInputStream(pdfDocWithImageOutStream.toByteArray())));
docWithImage = new Document(pdfDocWithImage, destinationPdf.getDefaultPageSize());

// Copy page to original (destinationPdf)
pdfDocWithImage.copyPagesTo(1, pdfDocWithImage.getNumberOfPages(), destinationPdf);

docWithImage.close();
pdfDocWithImage.close();

您可以使用相同的ITEXT库从 PDF 中读取文本。试试这个

    PdfReader reader = new PdfReader(INPUTFILE);
    int n = reader.getNumberOfPages();
    PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf"));
    parser.getTextFromPage(3); // Extracting the content from a particular page.

添加数据后,您可以从文件或 URL 加载图像,如下所示:

   Image image1 = Image.getInstance("watermark.png");
   document.add(image1);

   String imageUrl = "http://applause-voice.com/wp-content/uploads/2011/04/1hello.jpg";
   Image image2 = Image.getInstance(new URL(imageUrl));
   document.add(image2);

如果您将此代码添加到 Java Program 的末尾,则图像将自动出现在您的页面末尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM