Небажані водяні знаки на зображеннях можуть робити документи PDF виглядати непрофесійно та ускладнювати подальшу обробку. GroupDocs.Watermark Cloud SDK for Java пропонує потужний API, який дозволяє Java‑розробникам програмно видаляти ці водяні знаки з PDF‑файлів. У цьому посібнику показано, як видалити зображення‑водяний знак з PDF у Java за допомогою кінцевої точки видалення SDK. Після завершення ви зможете інтегрувати автоматичне видалення водяних знаків у будь‑який Java‑додаток.

Середовище розробки Java - Передумови та налаштування

Перш ніж розпочати, переконайтеся, що у вас є наступне:

  • Java 17 або новішу встановлено.
  • Maven або Gradle для керування залежностями.
  • Обліковий запис GroupDocs Cloud з client ID та client secret.

Додайте SDK у ваш проєкт за допомогою наведеної нижче залежності Maven (ви також можете використати еквівалент Gradle). Останні бінарні файли доступні на сторінці завантаження.

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-watermark-cloud</artifactId>
    <version>23.8</version>
</dependency>

Ініціалізуйте клієнт API, використовуючи ваші облікові дані. Цей фрагмент взято безпосередньо з прикладу коду.

ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

Коли клієнт готовий, ви можете перейти до фактичного процесу видалення.

Покроковий посібник з видаленням зображення водяного знака з PDF у Java

Крок 1: Завантажте вихідний документ

Спочатку вкажіть PDF, який потрібно очистити. Об’єкт FileInfo повідомляє API, де знаходиться файл, і за потреби надає пароль.

FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.pdf");
// inputFile.setPassword("pdfPassword"); // Uncomment if needed

Крок 2: Визначте критерії водяного знака зображення

Створіть ImageSearchCriteria, який вказує на зображення водяного знака, яке ви хочете видалити. Це є ядром операції видалити зображення водяного знака з PDF у Java.

ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
imageCriteria.setImagePath("watermark.png");

Крок 3: Налаштування параметрів видалення

Об’єднайте інформацію про файл та критерії пошуку в об’єкт RemoveOptions. Ви також визначаєте, куди буде збережено очищений PDF.

RemoveOptions removeOptions = new RemoveOptions();
removeOptions.setFileInfo(inputFile);
removeOptions.setOutputPath("output.pdf");
removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

Крок 4: Виконайте виклик видалення

Викличте метод remove у WatermarkApi. Виклик повертає RemoveResult, який містить шлях до обробленого файлу.

RemoveResult result = watermarkApi.remove(removeOptions);
System.out.println("Watermark removal completed. Output file: " + result.getPath());

Крок 5: Обробка результату

Обробляйте будь‑які виключення, які можуть виникнути. SDK генерує ApiException для помилок на боці сервісу та загальний Exception для неочікуваних проблем.

try {
    // removal code above
} catch (ApiException e) {
    System.err.println("API exception occurred: " + e.getMessage());
} catch (Exception e) {
    System.err.println("Unexpected error: " + e.getMessage());
}

Повний приклад коду: Видалення водяного знака з зображення за допомогою GroupDocs

Наступний приклад демонструє повний робочий процес від ініціалізації клієнта до обробки результату.

import com.groupdocs.watermark.cloud.api.WatermarkApi;
import com.groupdocs.watermark.cloud.client.ApiClient;
import com.groupdocs.watermark.cloud.client.ApiException;
import com.groupdocs.watermark.cloud.model.FileInfo;
import com.groupdocs.watermark.cloud.model.ImageSearchCriteria;
import com.groupdocs.watermark.cloud.model.RemoveOptions;
import com.groupdocs.watermark.cloud.model.RemoveResult;
import java.util.Collections;

public class RemoveImageWatermarkFromPdf {
    public static void main(String[] args) {
        // Initialize API client with your credentials
        ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        WatermarkApi watermarkApi = new WatermarkApi(apiClient);

// Prepare input file information
        FileInfo inputFile = new FileInfo();
        inputFile.setFilePath("input.pdf");
        // If the PDF is password protected, uncomment the following line and set the password
        // inputFile.setPassword("pdfPassword");

// Define the image watermark to be removed
        ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
        imageCriteria.setImagePath("watermark.png");

// Set up removal options
        RemoveOptions removeOptions = new RemoveOptions();
        removeOptions.setFileInfo(inputFile);
        removeOptions.setOutputPath("output.pdf");
        removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

try {
            // Execute removal
            RemoveResult result = watermarkApi.remove(removeOptions);
            System.out.println("Watermark removal completed. Output file: " + result.getPath());
        } catch (ApiException e) {
            System.err.println("API exception occurred: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Unexpected error: " + e.getMessage());
        }
    }
}

Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності правильно встановлені, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.

Операція видалення водяного знака через REST API за допомогою cURL

Якщо ви віддаєте перевагу чистому підходу REST, ту ж операцію можна виконати за допомогою команд cURL.

  1. Пройдіть автентифікацію та отримайте токен доступу
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
  1. Завантажте вихідний PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@/local/path/input.pdf"
  1. Виконайте видалення водяного знака
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/remove" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": {"filePath":"input.pdf"},
           "outputPath":"output.pdf",
           "searchCriteria":[{"type":"Image","imagePath":"watermark.png"}]
         }'
  1. Завантажте очищений PDF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

Для повного довідника перегляньте Документація API.

Опції видалення тонкого налаштування

SDK надає кілька властивостей, які ви можете налаштувати відповідно до різних сценаріїв.

  • Захист паролем - Якщо вихідний PDF зашифрований, встановіть пароль у FileInfo.
  inputFile.setPassword("mySecret");
  • Кілька критеріїв пошуку - Видаліть кілька водяних знаків одним викликом, додавши більше об’єктів ImageSearchCriteria до списку.
  ImageSearchCriteria logoCriteria = new ImageSearchCriteria();
  logoCriteria.setImagePath("logo.png");
  removeOptions.setSearchCriteria(Arrays.asList(imageCriteria, logoCriteria));
  • Формат виводу - Хоча за замовчуванням використовується PDF, ви можете змінити формат виводу, встановивши outputPath з іншим розширенням (наприклад, output.docx).
  removeOptions.setOutputPath("output.docx");

Ці параметри дозволяють вам налаштувати процес видалення зображення водяного знака з PDF у Java відповідно до ваших точних потреб.

Висновок

Програмно видаляти водяний знак‑зображення з PDF‑файлів просто за допомогою GroupDocs.Watermark Cloud SDK for Java. Дотримуючись наведених вище кроків, ви можете інтегрувати видалення водяних знаків у будь‑який Java‑бекенд, працювати з зашифрованими PDF‑файлами та тонко налаштовувати операцію за допомогою гнучких параметрів. Не забудьте отримати належну ліцензію для використання у продакшн‑середовищі; деталі цін доступні на сторінці продукту, а тимчасову ліцензію можна запросити через сторінку тимчасової ліцензії. Почніть очищати ваші PDF‑файли вже сьогодні та надавайте користувачам відшліфовані документи.

Питання та відповіді

  • Як видалити зображення водяного знака з PDF у Java?
    Використовуйте метод remove класу WatermarkApi з ImageSearchCriteria, який вказує на зображення водяного знака. Повний приклад коду в цій статті показує точні кроки.

  • Що, якщо мій PDF захищений паролем?
    Встановіть пароль для об’єкта FileInfo (inputFile.setPassword("yourPassword")) перед викликом API видалення. SDK розшифрує, обробить і повторно зашифрує файл автоматично.

  • Чи можу я видаляти водяні знаки з інших форматів, таких як DOCX?
    Так. Той самий API працює з будь‑яким форматом, підтримуваним GroupDocs.Watermark. Просто змініть розширення filePath та outputPath відповідно.

  • Чи є обмеження щодо розміру PDF, який я можу обробляти?
    Хмарний сервіс обробляє файли розміром до 500 МБ за запитом. Для більших документів розгляньте можливість розділення PDF на менші частини перед обробкою.

Читати далі