
У нас есть требование удалять конфиденциальные данные из файлов PDF из-за секретности данных, поэтому мы обычно редактируем (удаляем текст, изображение и т. д.) из определенной области страницы документа PDF. Однако при работе с большим набором документов нам необходимо использовать API для выполнения этого требования.
В этой статье мы рассмотрим шаги по редактированию PDF онлайн с использованием класса RedactionAnnotation из Aspose.PDF Cloud SDK для Java.
- Установка SDK
- Добавить аннотацию редактирования с помощью 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 следующим шагом будет получение вашего персонального Client ID и Client Secret. Пожалуйста, посетите панель управления Aspose.Cloud и, если у вас есть учетная запись GitHub или Google, просто зарегистрируйтесь. В противном случае нажмите кнопку Создать новую учетную запись и укажите необходимую информацию. Теперь войдите в панель управления, используя учетные данные, и разверните раздел Applications. Прокрутите вниз до раздела Client Credentials, чтобы увидеть сведения о Client ID и Client Secret.
Добавить аннотацию редактирования с помощью 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 в качестве аргумента для инициирования процесса редактирования.
// Получите 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
RedactionAnnotation annotation = new RedactionAnnotation();
// задать имя аннотации.
// Это полезно, когда в документе есть несколько аннотаций.
annotation.setName("Name");
// установить прямоугольную область для аннотации Redact
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());

Изображение 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, передав в качестве аргументов данные Client ID и Client Secret.
- Создайте объект Rectangle для определения области аннотации. Он рассчитывается от нижнего левого угла документа, а единицей измерения по умолчанию является Point.
- Создайте список AnnotationFlags и добавьте в него значение AnnotationFlags.DEFAULT.
- Теперь нам нужно создать объект RedactionAnnotation и вызвать метод setRect(…), чтобы определить прямоугольную область аннотации.
- Используйте метод setModified(…) для установки даты последнего изменения аннотации.
- Вызовите метод getDocumentRedactionAnnotations(…) вызова PdfApi, чтобы прочитать список аннотаций из документа.
- Получите доступ к конкретному объекту аннотации с помощью responseAnnotations.getAnnotations().getList().get(0).getId().
- Наконец, вызовите метод putRedactionAnnotation(…) класса PdfApi, чтобы обновить существующую аннотацию редактирования в 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.));
// создать объект аннотации редактирования
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: Аннотация Redact обновлена.
Файлы ресурсов, использованные в примере выше, можно загрузить по следующим ссылкам.
заключение
В этой статье мы обсудили шаги по редактированию конфиденциальной информации из документов PDF. Помимо аннотации редактирования, API поддерживает множество других функций аннотации, и их подробности можно найти на Работа с аннотацией. Вы можете рассмотреть возможность посещения Домашней страницы продукта для получения дополнительной информации о его возможностях. Если у вас есть какие-либо связанные с этим вопросы, пожалуйста, свяжитесь с нами через Форум поддержки бесплатного продукта.