Java を使用した PDF ヘッダーとフッターの管理

ヘッダーとフッターのアーティファクトは、繰り返しラベル、ページ識別子、レイアウトフレーミングなどに一般的に使用される、コンテンツではないページネーション要素です。

ヘッダーアーティファクトの作成

一貫したテキストスタイリングと配置を持つ再利用可能なヘッダーアーティファクトが必要な場合に、このヘルパーを使用してください。

  1. HeaderArtifact を作成してください。
  2. テキスト、フォント設定、および前景色を設定してください。
  3. 水平揃えを設定し、アーティファクトを返してください。
public static HeaderArtifact createHeaderArtifact(String text) {
    HeaderArtifact artifact = new HeaderArtifact();
    artifact.setText(text);
    artifact.getTextState().setFontSize(14);
    artifact.getTextState().setFont(FontRepository.findFont("Arial"));
    artifact.getTextState().setForegroundColor(Color.getNavy());
    artifact.setArtifactHorizontalAlignment(HorizontalAlignment.Center);
    return artifact;
}

フッターアーティファクトの作成

このヘルパーは、ヘッダーアーティファクトと同じスタイリングパターンを持つ再利用可能なフッターアーティファクトを作成します。

  1. FooterArtifact を作成してください。
  2. テキスト、テキスト状態、および前景色を設定してください。
  3. 配置を設定し、アーティファクトを返してください。
public static FooterArtifact createFooterArtifact(String text) {
    FooterArtifact artifact = new FooterArtifact();
    artifact.setText(text);
    artifact.getTextState().setFontSize(14);
    artifact.getTextState().setFont(FontRepository.findFont("Arial"));
    artifact.getTextState().setForegroundColor(Color.getNavy());
    artifact.setArtifactHorizontalAlignment(HorizontalAlignment.Center);
    return artifact;
}

ヘッダーアーティファクトの追加

ページに再利用可能なヘッダーアーティファクトを表示する必要がある場合は、この例を使用してください。

  1. ソース PDF の Document を開いてください。
  2. ヘルパーメソッドを通じてヘッダーアーティファクトを作成してください。
  3. アーティファクトをページに追加し、出力ファイルを保存してください。
public static void addHeaderArtifact(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        HeaderArtifact header = createHeaderArtifact("Sample Header");
        document.getPages().get_Item(1).getArtifacts().add(header);
        document.save(outputFile.toString());
    }
}

フッターアーティファクトの追加

ページが再利用可能なフォーマットでフッターアーティファクトを表示する場合は、この例を使用してください。

  1. ソース PDF の Document を開いてください。
  2. ヘルパーメソッドを使用してフッターアーティファクトを作成してください。
  3. アーティファクトをページに追加し、出力ファイルを保存してください。
public static void addFooterArtifact(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        FooterArtifact footer = createFooterArtifact("Sample Footer");
        document.getPages().get_Item(1).getArtifacts().add(footer);
        document.save(outputFile.toString());
    }
}

ヘッダーとフッターのアーティファクトの削除

既存のヘッダーおよびフッターのアーティファクトをページから削除する必要がある場合に、この方法を使用します。

  1. ソース PDF の Document を開いてください。
  2. ページのアーティファクトコレクションを逆順に反復処理してください。
  3. サブタイプがヘッダーまたはフッターであるページネーションアーティファクトを削除し、ドキュメントを保存してください。
public static void deleteHeaderFooterArtifact(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (int i = document.getPages().get_Item(1).getArtifacts().size(); i >= 1; i--) {
            Artifact artifact = document.getPages().get_Item(1).getArtifacts().get_Item(i);
            if (artifact.getType() == Artifact.ArtifactType.Pagination
                    && (artifact.getSubtype() == Artifact.ArtifactSubtype.Header
                    || artifact.getSubtype() == Artifact.ArtifactSubtype.Footer)) {
                document.getPages().get_Item(1).getArtifacts().delete(artifact);
            }
        }

        document.save(outputFile.toString());
    }
}