Java 在PDF中添加文本水印、圖片水印(基於Spire.Cloud.SDK for Java)

Spire.Cloud.SDK for Java提供了接口pdfWartermarkApi可用於添加文本水印addTextWartermark()和圖片水印addImageWartermark()到PDF文檔。文本將通過Java示例介紹具體實現方法。首先請參考以下步驟準備程序運行環境:

一、導入jar文件。(有2種方式)

(推薦)方式1. 創建Maven項目程序,通過maven倉庫下載導入。以IDEA爲例,新建Maven項目,在xml文件中配置maven倉庫路徑,並指定spire.cloud.sdk的依賴,如下:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>cloud</name>
        <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
        <dependency>
            <groupId> cloud </groupId>
            <artifactId>spire.cloud.sdk</artifactId>
            <version>3.5.0</version>
        </dependency>

        <dependency>
        <groupId> com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.1</version>
        </dependency>

        <dependency>
            <groupId> com.squareup.okhttp</groupId>
            <artifactId>logging-interceptor</artifactId>
            <version>2.7.5</version>
        </dependency>

        <dependency>
            <groupId> com.squareup.okhttp </groupId>
            <artifactId>okhttp</artifactId>
            <version>2.7.5</version>
        </dependency>

        <dependency>
            <groupId> com.squareup.okio </groupId>
            <artifactId>okio</artifactId>
            <version>1.6.0</version>
        </dependency>

        <dependency>
            <groupId> io.gsonfire</groupId>
            <artifactId>gson-fire</artifactId>
            <version>1.8.0</version>
        </dependency>

        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.18</version>
        </dependency>

        <dependency>
            <groupId> org.threeten </groupId>
            <artifactId>threetenbp</artifactId>
            <version>1.3.5</version>
        </dependency>

</dependencies>

完成配置後,點擊“Import Changes” 即可導入所有需要的jar文件。如果使用的是Eclipse,可參考這裏的導入方法。

導入結果:

方式2手動下載jar包,然後解壓文件,手動導入jar,同時還需另行手動導入其他幾個jar文件。

 

二、登錄冰藍雲賬號,創建文件夾,上傳文檔。

三、創建應用程序,獲取App ID及App Key

完成以上步驟後,可參考以下代碼示例進行水印添加。

示例1:Java 添加PDF文本水印

import spire.cloud.pdf.sdk.ApiException;
import spire.cloud.pdf.sdk.Configuration;
import spire.cloud.pdf.sdk.api.*;
import spire.cloud.pdf.sdk.model.*;

public class TextWatermark {
    //配置App ID和App Key等應用賬號信息
    static String appId = "App ID";
    static String appKey = "App Key;
    static String baseUrl = "https://api.e-iceblue.cn";
    static Configuration configuration = new Configuration(appId, appKey, baseUrl);
    static PdfWartermarkApi pdfWartermarkApi = new PdfWartermarkApi(configuration);

    public static void main(String[] args) throws ApiException {
        String name = "sample.pdf";//用於測試的PDF文檔
        String outPath = "output/TextWartermark.pdf";//生成的結果文檔路徑(這裏保存在了冰藍雲的output文件夾路徑下)
        int pageNumber = 2;//指定需要添加文本水印的PDF頁面(第二頁)
        String folder = "input";//測試文檔所在的雲端路徑(將測試的PDF文件上傳到冰藍雲input的文件夾下)

        //創建水印文本、字體、字號等
        Text text = new Text();
        Font font  = new Font();
        font.setFontType(Font.FontTypeEnum.STANDARD);
        font.setFontFamily("Helvetica");
        font.setFontSize(16f);
        font.setFontStyle(Font.FontStyleEnum.REGULAR);
        text.setFont(font);
        text.setValue("This is a test.");

        //繪製水印,指定文本水印座標位置及高度、寬度
        RectangleF rect = new RectangleF();
        rect.setX(10f);
        rect.setY(10f);
        rect.setWidth(100f);
        rect.setHeight(50f);
        text.setRect(rect);

        TextWartermark textWartermark = new TextWartermark();
        RectangleF rec = new RectangleF();
        rec.setX(10f);
        rec.setY(10f);
        rec.setWidth(500f);
        rec.setHeight(500f);
        textWartermark.setRect(rec);
        textWartermark.setText(text);
        textWartermark.setHorizontalCopies(2);
        textWartermark.setVerticalCopies(3);
        textWartermark.setTransparency(0.3f);
        textWartermark.setRotationAngle(45f);

        //設置水印文本顏色
        Color c1=new Color();
        c1.setA(100);
        c1.setR(0);
        c1.setG(0);
        c1.setB(255);
        text.setBackgroundColor(c1);
        Color c2=new Color();
        c2.setA(100);
        c2.setR(255);
        c2.setG(0);
        c2.setB(0);
        text.setForegroundColor(c2);

        String storage= null;//冰藍雲提供的2G存儲空間,可設置爲null
        String password =null;//測試文檔密碼,測試文檔沒有密碼則設置爲null

        //調用方法添加文本水印
        pdfWartermarkApi.addTextWartermark(name, outPath, pageNumber, textWartermark,  folder, storage, password);
    }
}

 

文本水印添加效果:

 

示例2:Java添加PDF圖片水印

import spire.cloud.pdf.sdk.ApiException;
import spire.cloud.pdf.sdk.Configuration;
import spire.cloud.pdf.sdk.api.PdfWartermarkApi;

import java.io.File;

public class ImageWatermark {
    //配置App ID和App Key等應用賬號信息
    static String appId = "App ID";
    static String appKey = "App Key";
    static String baseUrl = "https://api.e-iceblue.cn";
    static Configuration configuration = new Configuration(appId, appKey, baseUrl);
    static PdfWartermarkApi pdfWartermarkApi = new PdfWartermarkApi(configuration);

    public static void main(String[] args) throws ApiException {
        String name = "sample.pdf";//用於測試的PDF文檔
        String outPath = "output/ImageWartermark.pdf";//生成的結果文檔路徑(這裏保存在了冰藍雲的output文件夾路徑下)
        int pageNumber = 2;//指定需要添加圖片水印的PDF頁面(第二頁)

        File file = new File("C:\\Users\\Administrator\\Desktop\\images\\logo\\java.png");//水印圖片的本地路徑

        //指定水印座標位置及寬度、高度
        float x = 10;
        float y = 10;
        float width = 500;
        float height = 500;

        String folder = "input";//測試文檔所在的雲端路徑(將測試的PDF文件上傳到冰藍雲input的文件夾下)
        String password = null;//測試文檔密碼,測試文檔沒有密碼則設置爲null
        String storage = null;//冰藍雲提供的2G存儲空間,可設置爲null

        //調用方法添加圖片水印到PDF
        pdfWartermarkApi.addImageWartermark(name, outPath, pageNumber, file, x, y, width, height, folder, storage, password);
    }
}

圖片水印效果:

(完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章