Анотація PDF

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

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

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

Aspose.PDF Cloud SDK для Java – це програмний API, який дозволяє програмістам Java створювати, маніпулювати, а також перетворювати існуючі PDF-документи в інші підтримувані формати документів. 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>

Для отримання додаткової інформації відвідайте сторінку Як інсталювати Aspose.Cloud SDKs.

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

Закреслення тексту за допомогою Java

Іноді у нас є вимога позначити певний вміст у документі як застарілий, не видаляючи його з документа. Закреслення (він же закреслення) представлено словами з горизонтальною лінією через центр. Це означає, що текст неправильний або застарілий і був нещодавно видалений або позначений як такий. Ми можемо встановити параметри закреслених анотацій за допомогою властивості strikethroughSettings. Властивість strikethroughSettings використовується для встановлення властивостей кольору, непрозорості, автора, теми, modifiedDate та isLocked для закреслених анотацій.

// Отримайте 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";	        
			        
int pageNumber = 1;
// створити прямокутну область для анотації  
Rectangle rect = new Rectangle()
    .LLX(200.)
    .LLY(380.)
    .URX(250.)
    .URY(375.);

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

List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.));	// Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));

StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        

List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);

AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

Додати анотацію виділення

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

  • Перш за все, створіть екземпляр PdfApi, надаючи дані про ClientSecret та ClientId.
  • Ми створюємо екземпляр File для завантаження PDF-файлу з локальної системи, а потім викликаємо метод uploadFile(…) класу PdfApi, щоб завантажити документ у хмарне сховище.
  • Тепер створіть екземпляр класу Rectangle, щоб указати прямокутну область, куди можна додати анотацію.
  • Потім створіть ArrayList типу Point для зберігання інформації про точки для малювання HighlightAnnotation.
  • Створіть об’єкт класу HighlightAnnotation і встановіть назву, прямокутну область, тему, заголовок, чотири точки, дату зміни анотації.
  • Наступним кроком є створення списку типу HighlightAnnotation і додавання створеного вище об’єкта HighlightAnnotation до цього списку.
  • Нарешті, викличте метод postPageHighlightAnnotations(…) класу PdfApi та передайте вихідний PDF-файл, номер сторінки та список анотацій як аргументи.
Виділити попередній перегляд анотації

Зображення 1: - Виділіть анотацію у файлі PDF.

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

Як додати анотацію до рядка

Подібно до додавання закреслених і виділених анотацій, API також дає змогу додавати рядкові анотації до документів PDF. У нас є клас під назвою LineAnnotation для виконання цієї вимоги. Нижче наведено додаткові відомості про те, як виконати цю вимогу.

  • Перш за все, створіть екземпляр PdfApi, надаючи дані про ClientSecret та ClientId.
  • За бажанням ми створюємо екземпляр File для завантаження PDF-файлу з локальної системи, а потім викликаємо метод uploadFile(…) класу PdfApi, щоб завантажити документ у хмарне сховище. Якщо файл уже доступний у хмарному сховищі, ми можемо його використати.
  • Решта властивостей ініціалізації об’єкта такі ж, як згадано вище для HighlithAnnotation, за винятком того, що нам потрібно створити об’єкт класу LineAnnotation і встановити початкову та кінцеву точки лінії за допомогою методів setStarting(…) і setEnding(…).
// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// екземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// вхідний документ PDF
String sourcePDF = "PdfWithTable.pdf";	        
			    
// Завантажте файл з локальної системи
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// завантажити файл у хмарне сховище
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);

// номер сторінки, на яку буде додано анотацію				
int pageNumber = 1;

// створити прямокутну область для анотації  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(500.)
    .URX(400.)
    .URY(510.);

// створити об’єкт List типу AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// Створіть об’єкт «Лінійні анотації».
LineAnnotation annotation = new LineAnnotation();

annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// встановити початкову точку лінії
annotation.setStarting(new Point().X(100.).Y(100.));
// встановити кінцеву точку лінії
annotation.setEnding(new Point().X(20.).Y(680.));

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

// встановити дату зміни анотації			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Створити екземпляр списку рядкових анотацій
List<LineAnnotation> annotations = new ArrayList<>();
// додати об’єкт LineAnnotation до списку Line Annotations
annotations.add(annotation);

// викликати метод API, щоб додати рядкову анотацію до PDF-файлу
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);

Додавання анотації кола в PDF

Кругові анотації також часто використовуються в документах PDF, і API дуже добре підтримує цей тип анотацій. Щоб додати анотації кола, спробуйте використати клас CircleAnnotation. Для виконання цієї вимоги можна використовувати вказаний нижче код.

// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// екземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// вхідний документ PDF
String sourcePDF = "PdfWithTable.pdf";	        
			    
// Завантажте файл з локальної системи
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// завантажити файл у хмарне сховище
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// номер сторінки, на яку буде додано анотацію				
int pageNumber = 1;

// створити прямокутну область для анотації  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(700.)
    .URX(300.)
    .URY(500.);

// створити об’єкт List типу AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// Створіть об’єкт «Виділити анотації».
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// створити екземпляр кольору для staleblue
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// встановити колір анотації
annotation.interiorColor(color);

// встановити дату зміни анотації			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Створіть екземпляр списку для виділених анотацій
List<CircleAnnotation> annotations = new ArrayList<>();

// додати об’єкт CircleAnnotation до списку Circle Annotations
annotations.add(annotation);

// викликати метод API, щоб додати анотацію кола до файлу PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);
Анотація кола в PDF

Зображення 2: Анотація кола у файлі PDF.

Вхідний PDF-документ і отриманий PDF-файл, як показано вище, можна завантажити за такими посиланнями:

Коротка порада

Використовуйте наш безкоштовний онлайн-додаток PDF Annotation App, щоб видалити всі анотації з вашого PDF одним клацанням миші.

Висновок

У цьому блозі ми обговорили різні типи анотацій, які зараз підтримуються Aspose.PDF Cloud SDK для Java. Окрім анотацій, API підтримує безліч інших цікавих функцій, пов’язаних із форматом PDF. Для отримання додаткової інформації рекомендуємо додатково ознайомитися з Посібником розробника.

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

Схожі статті

Ми наполегливо рекомендуємо відвідати такі посилання, щоб дізнатися більше про: