PDF Adding Watermark Tool Guide
Note:Before learning how to use different functions, we recommend that read the Request Workflow to know a basic PDF processing process. When using different functions, you can set their own special parameters when uploading files. Other basic steps are consistent.
PDF Add Watermark:
{
"type": "text",
"scale": "1",
"opacity": "0.5",
"rotation": "0.785",
"targetPages": "1-2",
"vertalign": "center",
"horizalign": "left",
"xoffset": "100",
"yoffset": "100",
"content": "test",
"textColor": "#59c5bb",
"front": "",
"fullScreen": "111",
"horizontalSpace": "10",
"verticalSpace": "10",
"extension": ""
}| Parameter | Description |
|---|---|
| type | Watermark type (text: text type watermark, image: image type watermark) |
| scale | Zoom (image type attribute) |
| opacity | Transparency:0~1 |
| rotation | Rotation angle, a positive number means counterclockwise rotation |
| targetPages | Page number, page number starts from 1, for example:1,2,4,6,9-11 |
| vertalign | Vertical alignment(top、center、bottom) |
| horizalign | Horizontal alignment(left、center、right) |
| xoffset | Horizontal offset |
| yoffset | Vertical offset |
| content | Text |
| textColor | Text color, for example:#FFFFFF |
| front | Present on the front |
| fullScreen | Whether to fill the entire page |
| horizontalSpace | Horizontal spacing (supported only if --fullscreen exists) default value 50 |
| verticalSpace | Vertical spacing (supported only if --fullscreen exists) default value 50 |
| extension | Extended information, base64 encoding |
Request Example:
Replace apiKey with the publicKey obtained from the dashboard, file with the file you want to convert, and language with your preferred interface error prompt language type.
curl --location --request POST 'https://api-server.compdf.com/server/v2/process/pdf/addWatermark' \
--header 'x-api-key: apiKey' \
--header 'Accept: */*' \
--header 'Connection: keep-alive' \
--header 'Content-Type: multipart/form-data' \
--form 'file=@"file"' \
--form 'password="" \
--form 'parameter="{ \"type\": \"image\", \"scale\": \"1\", \"opacity\":\"0.5\", \"rotation\":\"0.785\", \"targetPages\":\"1-5\", \"vertalign\":\"center\", \"horizalign\":\"left\", \"xoffset\":\"100\", \"yoffset\":\"100\", \"front\":\"\", \"fullScreen\":\"111\", \"horizontalSpace\":\"10\", \"verticalSpace\":\"10\", \"extension\":\"\"}"' \
--form 'language="1"'import java.io.*;
import okhttp3.*;
public class main {
public static void main(String []args) throws IOException{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{{file}}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("<file>")))
.addFormDataPart("language","{{language}}")
.addFormDataPart("password","")
.addFormDataPart("parameter","{ \"type\": \"image\", \"scale\": \"1\", \"opacity\":\"0.5\", \"rotation\":\"0.785\", \"targetPages\":\"1-5\", \"vertalign\":\"center\", \"horizalign\":\"left\", \"xoffset\":\"100\", \"yoffset\":\"100\", \"front\":\"\", \"fullScreen\":\"111\", \"horizontalSpace\":\"10\", \"verticalSpace\":\"10\", \"extension\":\"\"}")
.addFormDataPart("image","",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("")))
.build();
Request request = new Request.Builder()
.url("https://api-server.compdf.com/server/v2/process/pdf/addWatermark")
.method("POST", body)
.addHeader("x-api-key", "{{apiKey}}")
.build();
Response response = client.newCall(request).execute();
}
}Response Information:
A successful request returns an HTTP 200 OK status code and a JSON response body showing the order details.
Response type:application/json
| Response Parameter | Data Type | Description |
|---|---|---|
| code | String | HTTP request status, "200" indicates success |
| message | String | Request message |
| data | Object | Return result |
| +taskId | String | Task ID |
| +taskFileNum | int | Number of files processed in the task |
| +taskSuccessNum | int | Number of files successfully processed in the task |
| +taskFailNum | int | Number of files failed in the task |
| +taskStatus | String | Task status |
| +assetTypeId | int | Used asset type ID |
| +taskCost | int | Task cost |
| +taskTime | int | Task duration |
| +sourceType | String | Original format |
| +targetType | String | Target format |
| +fileInfoDTOList | Array | Task file information |
| ++fileKey | String | File key |
| ++taskId | String | Task ID |
| ++fileName | String | Original file name |
| ++downFileName | String | Download file name |
| ++fileUrl | String | Original file URL |
| ++downloadUrl | String | Processed result file download URL |
| ++sourceType | String | Original format |
| ++targetType | String | Target format |
| ++fileSize | int | File size |
| ++convertSize | int | Processed result file size |
| ++convertTime | int | Processing time |
| ++status | String | File processing status |
| ++failureCode | String | File processing failure error code |
| ++failureReason | String | File processing failure description |
| ++fileParameter | String | Processing parameter |
Response Example:
"code": "200",
"msg": "success",
"data": {
"taskId": "f416dbcf-0c10-4f93-ab9e-a835c1f5dba1",
"taskFileNum": 1,
"taskSuccessNum": 1,
"taskFailNum": 0,
"taskStatus": "<taskStatus>",
"assetTypeId": 0,
"taskCost": 1,
"taskTime": 1,
"sourceType": "<sourceType>",
"targetType": "<targetType>",
"fileInfoDTOList": [
{
"fileKey": "<fileKey>",
"taskId": "<taskId>",
"fileName": "<fileName>",
"downFileName": "<downFileName>",
"fileUrl": "<fileUrl>",
"downloadUrl": "<downloadUrl>",
"sourceType": "<sourceType>",
"targetType": "<targetType>",
"fileSize": 24475,
"convertSize": 6922,
"convertTime": 8,
"status": "<status>",
"failureCode": "",
"failureReason": "",
"fileParameter": "<fileParameter>"
}
]
}Result:
| File Type | Description |
|---|---|
| The PDF file after add watermarks |
Asynchronous Request
If you need to use the file asynchronous processing flow, please read the Asynchronous Request Instructions.