Python で PDF アーティファクトをカウントする方法

特定のタイプのアーティファクトのカウント

PDF のページネーションアーティファクトの検査とカウント Document .NET 経由で Python 用 Aspose.PDF を使用する。ページネーションアーティファクトには、レイアウトや識別の目的でページに適用されるウォーターマーク、背景、ヘッダー、フッターなどの要素が含まれます。フィルタリングによって Artifact 上のオブジェクト Page そしてそれらをサブタイプごとにグループ化します(Artifact.ArtifactSubtype) を使うと、開発者はドキュメントの構造をすばやく分析し、特定の要素の存在を確認できます。

特定のタイプのアーティファクトの総数 (ウォーターマークの総数など) を計算するには、次のコードを使用します。この例ではページがフィルタリングされます。 Artifacts コレクション (と) 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)}")

アーティファクトの関連トピック