1
0

More than 1 year has passed since last update.

JavaでPDF文書のレイヤーを追加または削除する方法

Posted at

PDFレイヤー(可視レイヤーまたは追加レイヤーとも呼ばれる)は、PDF文書内のコンテンツの可視性を整理および制御するための方法です。 インタラクティブな文書の作成、機密情報の非表示、多言語版の作成などに使用できます。 レイヤーを追加したり削除したりすることで、ユーザーは必要に応じてPDF文書の表示や内容をカスタマイズできます。 この記事では、無料のFree Spire.PDF for Javaを使用してPDF文書にレイヤーを追加したり、PDF文書からレイヤーを削除する方法について説明します。

依存関係の追加

Free Spire.PDF for Javaは、公式サイトから手動でダウンロードしてプロジェクトに導入するか、Mavenで以下のコードを入力してインストールすることが可能です。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

PDFレイヤーの追加

PdfDocument.getLayers().addLayer() メソッドを使えば、 PDF文書内にレイヤーを作成することができす。 良いレイヤーを作成したら、要素を追加したいレイヤー上に描画することができます。 詳しい手順は以下のとおりです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使ってPDF文書を読み込みます。
  • PdfDocument.getLayers().addLayer() メソッドを使って文書内にレイヤーを作成します。
  • レイヤー上に絵を描きます。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。

コード例
Java

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import com.spire.pdf.graphics.layer.PdfLayer;

import java.awt.geom.Dimension2D;
import java.io.IOException;

public class addLayersToPdf {

    public static void main(String[] args) throws IOException {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("サンプル.pdf");

        //"ヘッダー"という名前のレイヤーを作成する
        PdfLayer layer = pdf.getLayers().addLayer("ヘッダー");

        //ページのサイズを取得する
        Dimension2D size = pdf.getPages().get(0).getSize();

        //ページ数を取得する
        int pageCount = pdf.getPages().getCount();

        //2つの変数を宣言する
        PdfPageBase page;
        PdfCanvas canvas;

        //すべてのページをループで処理する
        for (int i = 0; i < pageCount; i++) {

            //レイヤーに画像を描画する
            PdfImage pdfImage = PdfImage.fromFile("ヘッダー.jpg");
            page = pdf.getPages().get(i);
            float width = pdfImage.getWidth();
            float height = pdfImage.getHeight();
            float x = (float) size.getWidth() / 2 - width / 2;
            float y = 30;
            canvas = layer.createGraphics(page.getCanvas());
            canvas.drawImage(pdfImage, x, y, width, height);

            //レイヤーに線を描画する
            PdfPen pen = new PdfPen(PdfBrushes.getDarkGray(), 2f);
            canvas.drawLine(pen, x, y + height + 5, size.getWidth() - x, y + height + 2);
        }

        //ドキュメントを保存する
        pdf.saveToFile("レイヤーの追加.pdf");
        pdf.dispose();
    }
}

PDFレイヤーの追加

PDFレイヤーの削除

PdfDocument.getLayers().removeLayer() メソッドを使えば、レイヤーの名前で削除することができます。詳しい手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使ってPDF文書を読み込みます。
  • PdfDocument.getLayers().removeLayer() メソッドを使用して、" ヘッダー" レイヤーをその名前で削除します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。

コード例
Java

import com.spire.pdf.PdfDocument;

public class deleteLayers {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("レイヤーの追加.pdf");

        //指定したレイヤーをその名前で削除する
        pdf.getLayers().removeLayer("ヘッダー");

        //ファイルを保存する
        pdf.saveToFile("レイヤーの削除.pdf");
        pdf.close();
    }
}

PDFレイヤーの削除

この記事では、Spire.PDF for Javaを使ってPDF文書にレイヤーを追加したり削除したりする方法について説明します。無料のSpire.PDF for Javaは、PDFレイヤーの表示と非表示など、他の多くの機能もサポートしています。詳しくはSpire.PDF for Javaチュートリアルをご覧下さい。また、Spire.PDFフォーラムで議論やフィードバックをすることもできます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0