PNG JPG BMP TIFF PDF
Aspose.PDF  for Python

Добавление аннотаций свободного текста в PDF через Python SDK

API для добавления аннотаций в PDF-документы с использованием облачного Python SDK.

Get Started

Как добавить аннотации в PDF через облачный Python SDK

Чтобы добавить аннотации в PDF, мы будем использовать Aspose.PDF Cloud Python SDK. Этот облачный SDK помогает программистам на Python разрабатывать облачные приложения для создания, аннотирования, редактирования и конвертации PDF с использованием языка программирования Python через Aspose.PDF REST API. Просто создайте аккаунт на Aspose for Cloud и получите информацию о вашем приложении. Как только у вас будут App SID и ключ, вы готовы к использованию Aspose.PDF Cloud Python SDK. Если пакет Python размещен на Github, вы можете установить его напрямую с Github:

Установка с Github


     
    pip install git+https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-python.git

Команда консоли диспетчера пакетов

     
    pip install asposepdfcloud

Шаги для добавления аннотаций в PDF через Python

Разработчики Aspose.PDF Cloud могут легко загрузить и добавить аннотации в PDF всего за несколько строк кода.

  1. Установите Python SDK.
  2. Загрузите PDF в облачное хранилище.
  3. Создайте стилизованный текстовый блок (с шрифтами, цветами, выравниванием).
  4. Отправьте аннотацию на указанную страницу.
  5. Скачайте измененный документ для локального использования.
 

Добавление аннотаций свободного текста в PDF с использованием Python


    from annotations_helper import Config, PdfAnnotationsHelper, logging
    from asposepdfcloud import ApiClient, PdfApi, FreeTextAnnotation, Rectangle, TextStyle, Color, FreeTextIntent, Justification, AnnotationFlags, HorizontalAlignment

    class PdfAddFreeTextAnnotations:
        """Class for managing PDF annotations using Aspose PDF Cloud API."""
        def __init__(self, pdf_api: PdfApi, helper: PdfAnnotationsHelper):
            self.pdfApi = pdf_api
            self.helper = helper

        def append_text_annotation(self):
            """Append a new free text annotation to the PDF document."""
            if self.pdfApi:
                self.helper.uploadFile(Config.PDF_DOCUMENT_NAME, Config.LOCAL_FOLDER, Config.REMOTE_FOLDER)
                
                args = {
                    "folder": Config.REMOTE_FOLDER
                }

                text_style = TextStyle(
                    font_size=20,
                    font='Arial', 
                    foreground_color=Color(a=0xFF, r=0, g=0xFF, b=0),
                    background_color=Color(a=0xFF, r=0xFF, g=0, b=0)
                )

                new_annotation = FreeTextAnnotation(
                    rect = Rectangle(llx=100, lly=350, urx=450, ury=400),
                    text_style = text_style,
                    name = 'Free Text Annotation',
                    flags = [AnnotationFlags.DEFAULT],
                    horizontal_alignment = HorizontalAlignment.CENTER,
                    intent = FreeTextIntent.FREETEXTTYPEWRITER,
                    rich_text = Config.NEW_FT_ANNOTATION_TEXT,
                    subject = Config.NEW_FT_ANNOTATION_SUBJECT,
                    contents = Config.NEW_FT_ANNOTATION_CONTENTS,
                    title = Config.NEW_FT_ANNOTATION_DESCRIPTION,
                    z_index = 1,
                    justification = Justification.CENTER,
                )
                new_annotation.attribute_map["icon"] = "Icon"
                new_annotation.swagger_types["icon"] = "TextIcon"
                new_annotation.icon = "Help"

                try:
                    response = self.pdfApi.post_page_free_text_annotations(Config.PDF_DOCUMENT_NAME, Config.PAGE_NUMBER, [new_annotation], **args)
                    if response.code == 200:
                        logging.info(f"append_text_annotation(): annotation '{Config.NEW_FT_ANNOTATION_TEXT}' added to the document '{Config.PDF_DOCUMENT_NAME}'.")
                        self.helper.downloadFile(Config.PDF_DOCUMENT_NAME, Config.LOCAL_RESULT_DOCUMENT_NAME, Config.LOCAL_FOLDER, Config.REMOTE_FOLDER, "add_freetext_")
                    else:
                        logging.error(f"append_text_annotation(): Failed to add annotation to the document. Response code: {response.code}")
                except Exception as e:
                    logging.error(f"append_text_annotation(): Error while adding annotation: {e}")