Редагувати PDF онлайн

У нас є вимога видаляти конфіденційну інформацію з PDF-файлів через конфіденційність даних, тому ми зазвичай редагуємо (видаляємо текст, зображення тощо) з певної частини сторінки документа PDF. Однак, коли ми маємо справу з великим набором документів, нам потрібно використовувати API для виконання цієї вимоги.

У цій статті ми обговоримо кроки редагування PDF онлайн за допомогою класу RedactionAnnotation Aspose.PDF Cloud SDK for Java.

Встановлення SDK

Aspose.PDF Cloud SDK для Java – це API програмування, призначений для розробників Java, створений на основі Aspose.PDF Cloud API. Наші хмарні API можна використовувати з будь-якої платформи без встановлення спеціального програмного забезпечення. Однак, щоб використовувати SDK, його потрібно спочатку встановити в системі.

Cloud SDK доступний для завантаження через Maven і GitHub. Тепер додайте наступні відомості у свій файл pom.xml, щоб завантажити та використовувати Aspose.Pdf.jar у вашому проекті збірки Maven.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

Після встановлення SDK наступним кроком є отримання персонального ідентифікатора клієнта та секрету клієнта. Відвідайте інформаційну панель Aspose.Cloud і, якщо у вас є обліковий запис GitHub або Google, просто зареєструйтеся. В іншому випадку натисніть кнопку Створити новий обліковий запис і надайте необхідну інформацію. Тепер увійдіть на інформаційну панель за допомогою облікових даних і розгорніть розділ «Програми». Прокрутіть униз до розділу «Облікові дані клієнта», щоб переглянути деталі ідентифікатора клієнта та секрету клієнта.

Додати анотацію редагування за допомогою Java

У наведеному нижче розділі ми пояснили, як додати прямокутне поле, щоб видалити вміст PDF-файлів за допомогою Aspose.PDF Cloud SDK для Java.

  • Перш за все, нам потрібно створити об’єкт PdfApi, передаючи дані ClientId і ClientSecret, отримані з інформаційної панелі Aspose.Cloud.
  • По-друге, створіть об’єкт класу Rectangle, щоб вказати область на сторінці, куди буде додано анотацію.
  • По-третє, виберіть значення за замовчуванням із переліку AnnotationFlags і додайте його до списку типу AnnotationFlags.
  • Тепер створіть екземпляр класу RedactionAnnotation і встановіть прямокутну область за допомогою методу setRect(…).
  • Встановіть горизонтальне вирівнювання за допомогою методу setHorizontalAlignment(…) і виберіть Center у списку HorizontalAlignment.
  • Щоб заповнити кольором анотацію, використовуйте метод setFillColor(…) і передайте об’єкт Color.
  • Встановіть дату останньої зміни анотації за допомогою методу setModified(…).
  • Передостанній створіть список типу RedactionAnnotation і додайте об’єкт RedactAnnotation до цього списку.
  • Нарешті, викличте метод postPageRedactionAnnotations(…) PdfApi та передайте назву вихідного файлу, номер сторінки, до якої потрібно додати анотацію. Також передайте RedactionAnnotation List як аргумент, щоб ініціювати процес редагування.
// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// екземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// вхідний документ PDF
String sourcePDF = "PdfWithTable.pdf";

// сторінка PDF для розміщення анотації
int pageNumber = 1;

// створити прямокутний об’єкт, щоб указати область редагування анотації
// область обчислюється з нижнього лівого кута сторінки
Rectangle rect = new Rectangle()

// одиниця вимірювання - точка
  .LLX(100.)
  .LLY(700.)
  .URX(200.)
  .URY(600.);

// створити масив AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();

// встановити AnnotationFlag за замовчуванням
flags.add(AnnotationFlags.DEFAULT);

// створити ArrayList точок
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// створити об’єкт Redact Annotation
RedactionAnnotation annotation = new RedactionAnnotation();

// встановіть назву анотації. 
// Це корисно, коли в документі є кілька анотацій
annotation.setName("Name");
// встановити прямокутну область для редагування анотації
annotation.setRect(rect);
annotation.setFlags(flags);

// встановити горизонтальне вирівнювання по центру
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);

// встановіть ZIndex на 1. 
annotation.setZindex(1);

// Визначте колір SlateBlue у шістнадцятковому коді
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// вкажіть колір заливки для анотації
annotation.setFillColor(color);

// Дата й час останньої зміни анотації.
annotation.setModified("05/21/2021 12:00:00.000 AM");

// Встановіть масив 8xN чисел із зазначенням координат 
// області вмісту, яку планується видалити.
annotation.setQuadPoint(points);
			        
// створити об’єкт списку типу RedactAnnotation
List<RedactionAnnotation> annotations = new ArrayList<>();

// додати створений раніше об’єкт Annotations до масиву RedactAnnotation
annotations.add(annotation);

// додати RedactAnnotation до документа PDF
AsposeResponse response = pdfApi.postPageRedactionAnnotations(sourcePDF, pageNumber, annotations, null, null, true);
assertEquals(200, (int)response.getCode());
Відредагований документ PDF

Зображення 1: Редагувати анотацію додано до файлу PDF.

Завантажте зразки файлів, використаних у прикладі вище, з

Читайте анотації редагування сторінки

Aspose.PDF Cloud SDK для Java також пропонує можливості для читання інформації щодо наявної анотації Redact у документі PDF. Наведені нижче кроки визначають, як читати деталі анотації за допомогою Java.

// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// екземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// вхідний документ PDF
String sourcePDF = "PdfWithTable.pdf";

// Отримайте анотації редагування документа
RedactionAnnotationsResponse responseAnnotations = pdfApi.getPageRedactionAnnotations(sourcePDF,1, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// надрукувати кількість анотацій, доступних у документі
System.out.println(responseAnnotations.getAnnotations().getList().size());

Оновити наявну анотацію редагування

Якщо PDF-документ уже містить анотації Redaction, ми також можемо оновити їх за допомогою API. Нижче наведено відомості про те, як оновити наявну анотацію в документі PDF.

  • Створіть екземпляр PdfApi, передаючи ідентифікатор клієнта та секрет клієнта як аргументи.
  • Створіть об’єкт Rectangle, щоб визначити область анотації. Він обчислюється в нижньому лівому куті документа, а одиницею за замовчуванням є пункт.
  • Створіть список AnnotationFlags і додайте до списку значення AnnotationFlags.DEFAULT.
  • Тепер нам потрібно створити об’єкт RedactionAnnotation і викликати метод setRect(…), щоб визначити прямокутну область анотації.
  • Використовуйте метод setModified(…), щоб установити дату останньої зміни анотації.
  • Викличте метод getDocumentRedactionAnnotations(…) виклику PdfApi, щоб прочитати список анотацій із документа.
  • Отримати певний об’єкт Annotation за допомогою responseAnnotations.getAnnotations().getList().get(0).getId().
  • Нарешті, викличте метод putRedactionAnnotation(…) класу PdfApi, щоб оновити наявну анотацію Redaction у файлі PDF.
// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// екземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// вхідний документ PDF
String sourcePDF = "PdfWithAnnotations.pdf";	        
			        
// створити прямокутну область для анотації  
Rectangle rect = new Rectangle()
  .LLX(200.)
  .LLY(120.)
  .URX(150.)
  .URY(100.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// створити об’єкт Redaction Annotation
RedactionAnnotation annotation = new RedactionAnnotation();
// встановіть назву для анотації
annotation.setName("Name Updated");

// встановити прямокутну область для анотації
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setZindex(1);
annotation.setModified("01/01/2018 12:02:03.000 AM");
annotation.setQuadPoint(points);

// Визначте колір SlateBlue у шістнадцятковому коді
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);

// вкажіть колір заливки для анотації
annotation.setFillColor(color);

// отримати наявну анотацію з документа
RedactionAnnotationsResponse responseAnnotations = pdfApi.getDocumentRedactionAnnotations(sourcePDF, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// отримати анотацію під індексом 0
String annotationId = responseAnnotations.getAnnotations().getList().get(0).getId();

// оновити анотацію з індексом 0
AsposeResponse response = pdfApi.putRedactionAnnotation(sourcePDF, annotationId, annotation, null, null, true);
assertEquals(200, (int)response.getCode());
Редагувати анотацію оновлено

Зображення 2: – Редагувати анотацію оновлено.

Файли ресурсів, використані у прикладі вище, можна завантажити за наступними посиланнями

висновок

У цій статті ми обговорили кроки, як відредагувати конфіденційну інформацію з документів PDF. Окрім анотації Redaction, API підтримує безліч інших функцій анотації, і їх деталі можна знайти на сторінці Робота з анотацією. Ви можете відвідати домашню сторінку продукту, щоб отримати додаткову інформацію про його можливості. Якщо у вас виникнуть пов’язані запитання, зв’яжіться через безкоштовний форум підтримки продуктів.