Редактировать PDF онлайн

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

В этой статье мы рассмотрим шаги по редактированию PDF онлайн с использованием класса RedactionAnnotation из Aspose.PDF Cloud 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());
Отредактированный 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, передав в качестве аргументов данные 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());
Аннотация Redact обновлена

Изображение 2: Аннотация Redact обновлена.

Файлы ресурсов, использованные в примере выше, можно загрузить по следующим ссылкам.

заключение

В этой статье мы обсудили шаги по редактированию конфиденциальной информации из документов PDF. Помимо аннотации редактирования, API поддерживает множество других функций аннотации, и их подробности можно найти на Работа с аннотацией. Вы можете рассмотреть возможность посещения Домашней страницы продукта для получения дополнительной информации о его возможностях. Если у вас есть какие-либо связанные с этим вопросы, пожалуйста, свяжитесь с нами через Форум поддержки бесплатного продукта.