首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PDFBox添加水印

使用PDFBox添加水印
EN

Stack Overflow用户
提问于 2012-01-20 00:50:25
回答 7查看 30.5K关注 0票数 22

我正在尝试添加一个水印的PDF格式,特别是与PDFBox。我已经能够让图像出现在每个页面上,但它失去了背景透明度,因为它看起来像是PDJpeg将其转换为JPG格式。也许有一种方法可以使用PDXObjectImage来实现。

到目前为止,我写了以下内容:

代码语言:javascript
运行
复制
public static void watermarkPDF(PDDocument pdf) throws IOException
{
    // Load watermark
    BufferedImage buffered = ImageIO.read(new File("C:\\PDF_Test\\watermark.png"));
    PDJpeg watermark = new PDJpeg(pdf, buffered);

    // Loop through pages in PDF
    List pages = pdf.getDocumentCatalog().getAllPages();
    Iterator iter = pages.iterator();
    while(iter.hasNext())
    {
        PDPage page = (PDPage)iter.next();

        // Add watermark to individual page
        PDPageContentStream stream = new PDPageContentStream(pdf, page, true, false);
        stream.drawImage(watermark, 100, 0);
        stream.close();
    }

    try 
    {
        pdf.save("C:\\PDF_Test\\watermarktest.pdf");
    } 
    catch (COSVisitorException e) 
    {
        e.printStackTrace();
    }
}
EN

Stack Overflow用户

发布于 2015-11-10 21:49:46

在util包中还有另一个overlay类,它使您不必创建与源文档具有相同页数的pdf,然后再进行覆盖。

要了解它的用法,可以查看pdfbox源代码,特别是OverlayPDF类。

票数 0
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8929954

复制
相关文章

相似问题

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