Подсчёт артефактов PDF на Python

Подсчёт артефактов определённого типа

Проверьте и подсчитайте артефакты пагинации в PDF Document используя Aspose.PDF for Python via .NET. Артефакты пагинации включают такие элементы, как водяные знаки, фон, заголовки и нижние колонтитулы, которые применяются к страницам для целей оформления и идентификации. Фильтруя Artifact объекты на Page и группируя их по подтипу (Artifact.ArtifactSubtype), разработчики могут быстро проанализировать структуру документа и проверить наличие конкретных элементов.

Чтобы вычислить общее количество артефактов определённого типа (например, общее число водяных знаков), используйте следующий код. Пример фильтрует страницу Artifacts коллекция (an ArtifactCollection) по Artifact.ArtifactType а затем подсчитывает подтипы (Artifact.ArtifactSubtype).

  1. Откройте PDF-документ (см Document).
  2. Отфильтруйте артефакты пагинации, используя страницу Artifacts коллекцию.
  3. Подсчитайте артефакты по подтипу (Artifact.ArtifactSubtype).
  4. Выведите результаты.

from os import path
from collections import Counter
import sys
import aspose.pdf as ap

def count_pdf_artifacts(infile):
    """Count and display artifacts of different types on the first page."""
    with ap.Document(infile) as document:
        pagination_artifacts = [
            artifact
            for artifact in document.pages[1].artifacts
            if artifact.type == ap.Artifact.ArtifactType.PAGINATION
        ]

        subtypes = [artifact.subtype for artifact in pagination_artifacts]
        counts = Counter(subtypes)

        print(f"Watermarks: {counts.get(ap.Artifact.ArtifactSubtype.WATERMARK, 0)}")
        print(f"Backgrounds: {counts.get(ap.Artifact.ArtifactSubtype.BACKGROUND, 0)}")
        print(f"Headers: {counts.get(ap.Artifact.ArtifactSubtype.HEADER, 0)}")
        print(f"Footers: {counts.get(ap.Artifact.ArtifactSubtype.FOOTER, 0)}")

Связанные темы артефактов