Использование текстовой аннотации для PDF через Python
Как добавить текстовую аннотацию в существующий PDF файл
Текстовая аннотация — это аннотация, прикрепленная к определенному месту в PDF документе. Когда аннотация закрыта, она отображается в виде значка; когда открыта, должна отображаться всплывающее окно с текстом заметки в шрифте и размере, выбранными читателем.
Аннотации содержатся в коллекции Annotations конкретной страницы. Эта коллекция содержит аннотации только для этой отдельной страницы; каждая страница имеет свою собственную коллекцию аннотаций.
Чтобы добавить аннотацию на конкретную страницу, добавьте ее в коллекцию аннотаций этой страницы с помощью метода add().
-
Сначала создайте аннотацию, которую вы хотите добавить в PDF.
-
Затем откройте входной PDF.
-
Добавьте аннотацию в коллекцию Annotations объекта ‘page’.
Следующий фрагмент кода показывает, как добавить аннотацию на страницу PDF.
import aspose.pdf as ap
document = ap.Document(input_file)
textAnnotation = ap.annotations.TextAnnotation(
document.pages[1], ap.Rectangle(300, 700.664, 320, 720.769, True)
)
textAnnotation.title = "Aspose User"
textAnnotation.subject = "Inserted text 1"
textAnnotation.contents = "qwerty"
textAnnotation.flags = ap.annotations.AnnotationFlags.PRINT
textAnnotation.color = ap.Color.blue
document.pages[1].annotations.append(textAnnotation)
document.save(output_file)
Получить текстовую аннотацию из PDF файла
import aspose.pdf as ap
document = ap.Document(input_file)
textAnnotations = [
a
for a in document.pages[1].annotations
if (a.annotation_type == ap.annotations.AnnotationType.TEXT)
]
for ta in textAnnotations:
print(ta.rect)
Удаление текстовой аннотации из PDF файла
import aspose.pdf as ap
document = ap.Document(input_file)
textAnnotations = [
a
for a in document.pages[1].annotations
if (a.annotation_type == ap.annotations.AnnotationType.TEXT)
]
for ta in textAnnotations:
document.pages[1].annotations.delete(ta)
document.save(output_file)
Как добавить (или создать) новую аннотацию свободного текста
Аннотация свободного текста отображает текст непосредственно на странице. Класс FreeTextAnnotation позволяет создавать этот тип аннотации. В следующем фрагменте кода мы добавляем аннотацию свободного текста выше первого вхождения строки.
import aspose.pdf as ap
# Загрузить PDF файл
document = ap.Document(input_file)
freeTextAnnotation = ap.annotations.FreeTextAnnotation(
document.pages[1], ap.Rectangle(299, 713, 308, 720, True), ap.annotations.DefaultAppearance()
)
freeTextAnnotation.title = "Aspose User"
freeTextAnnotation.color = ap.Color.light_green
document.pages[1].annotations.append(freeTextAnnotation)
document.save(output_file)
Получить свободную текстовую аннотацию из PDF файла
import aspose.pdf as ap
document = ap.Document(input_file)
freeTextAnnotations = [
a
for a in document.pages[1].annotations
if (a.annotation_type == ap.annotations.AnnotationType.FREE_TEXT)
]
for fa in freeTextAnnotations:
print(fa.rect)
Удалить свободную текстовую аннотацию из PDF файла
import aspose.pdf as ap
# Загрузить PDF файл
document = ap.Document(input_file)
freeTextAnnotations = [
a
for a in document.pages[1].annotations
if (a.annotation_type == ap.annotations.AnnotationType.FREE_TEXT)
]
for fa in freeTextAnnotations:
document.pages[1].annotations.delete(fa)
document.save(output_file)
Зачеркнуть слова, используя StrikeOutAnnotation
Aspose.PDF для Python позволяет добавлять, удалять и обновлять аннотации в PDF документах. Один из классов позволяет зачеркивать аннотации тоже. Когда StrikeOutAnnotation применяется к PDF, через указанный текст проводится линия, указывающая на то, что он должен быть удален или проигнорирован.
Следующий фрагмент кода показывает, как добавить StrikeOutAnnotation в PDF.
import aspose.pdf as ap
document = ap.Document(input_file)
strikeoutAnnotation = ap.annotations.StrikeOutAnnotation(
document.pages[1], ap.Rectangle(299.988, 713.664, 308.708, 720.769, True)
)
strikeoutAnnotation.title = "Пользователь Aspose"
strikeoutAnnotation.subject = "Вставленный текст 1"
strikeoutAnnotation.flags = ap.annotations.AnnotationFlags.PRINT
strikeoutAnnotation.color = ap.Color.blue
document.pages[1].annotations.append(strikeoutAnnotation)
document.save(output_file)
Получить StrikeOutAnnotation из PDF
import aspose.pdf as ap
document = ap.Document(input_file)
StrikeoutAnnotations = [
a
for a in document.pages[1].annotations
if (a.annotation_type == ap.annotations.AnnotationType.STRIKE_OUT)
]
for pa in StrikeoutAnnotations:
print(pa.rect)
Удаление StrikeOutAnnotation из PDF
import aspose.pdf as ap
document = ap.Document(input_file)
StrikeoutAnnotations = [
a
for a in document.pages[1].annotations
if (a.annotation_type == ap.annotations.AnnotationType.STRIKE_OUT)
]
for pa in StrikeoutAnnotations:
document.pages[1].annotations.delete(pa)
document.save(output_file)