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);
}
}
圖片水印效果:
(完)