• Java 设置PDF平铺图片背景(水印)


    一、概述及环境准备

    本文介绍使用免费版PDF库-Free Spire.PDF for Java加载图片来设置成PDF平铺图片背景的效果,也可以作为平铺图片水印来使用;编辑代码前,需要先导入jar文件,有两种方法可供选着导入:

    1. 手动下载导入:可前往官网下载jar包,并解压,将lib文件夹下的Spire.Pdf.jar文件导入Java程序;

    2. Maven仓库导入:通过创建Maven项目,在pom.xml文件中配置Maven仓库路径并指定Free Spire.PDF for Java的Maven依赖,如下:

    <repositories>
            <repository>
                <id>com.e-iceblue</id>
                <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
            </repository>
        </repositories>
    
    <dependencies>
        <dependency>
            <groupId> e-iceblue </groupId>
            <artifactId>spire.pdf.free</artifactId>
            <version>2.6.3</version>
        </dependency>
    </dependencies>

    配置完成后,点击”Import Changes”即可导入Jar文件。(注:本文中使用的是IDEA,如果使用的是Eclipse,可参考导入方法

    Jar导入效果如下:

    二、Java代码示例

    import com.spire.pdf.*;
    import com.spire.pdf.graphics.PdfImage;
    import com.spire.pdf.graphics.PdfTilingBrush;
    
    import java.awt.*;
    import java.awt.geom.Dimension2D;
    import java.awt.geom.Rectangle2D;
    
    public class AddBackground {
        public static void main(String[] args) {
            //创建PdfDocument对象,并加载PDF测试文档
            PdfDocument pdf = new PdfDocument();
            pdf.loadFromFile("test.pdf");
    
            //遍历文档每一页,加载图片,并设置成平铺背景(水印)
            for (int i = 0; i < pdf.getPages().getCount();i++)
            {
                PdfPageBase page = pdf.getPages().get(i);
    
                Dimension2D dimension2D = new Dimension();
                dimension2D.setSize(page.getCanvas().getSize().getWidth()/4, page.getCanvas().getSize().getHeight()/3);
    
                PdfTilingBrush brush = new PdfTilingBrush(dimension2D);
                brush.getGraphics().setTransparency(0.2f);
                brush.getGraphics().translateTransform(brush.getSize().getWidth()/10,brush.getSize().getHeight()/10);
                brush.getGraphics().rotateTransform(30);
    
                PdfImage image = PdfImage.fromImage("logo.png");
                brush.getGraphics().drawImage(image,brush.getSize().getWidth()-image.getWidth()/2,(brush.getSize().getHeight())/2);
    
                Rectangle2D rectangle2D = new Rectangle2D.Float();
                rectangle2D.setFrame(new Point(0,0),page.getCanvas().getClientSize());
    
                page.getCanvas().drawRectangle(brush,rectangle2D);
            }
    
            //保存文档
            pdf.saveToFile("SetTiledBackground.pdf");
            pdf.dispose();
        }
    }

    平铺图片背景(水印)效果:

    : 平铺文本水印效果可参考这篇文章

    (完)

  • 相关阅读:
    VirtualBox 给虚拟机绑定IP
    【转】 wget 命令用法详解
    [转]python -m SimpleHTTPServer
    longene QQ 安装目录
    查看mininet交换机中的流表
    aircrack-ng 字典破解WPA / WPA2
    Win7 64 安装Visual Studio 2010和SQL Server 2008 R2
    Floodlight 防火墙是如何起作用的
    小米2000万买域名mi.com
    Windows JDK环境变量的配置
  • 原文地址:https://www.cnblogs.com/Yesi/p/13139779.html
Copyright © 2020-2023  润新知