JAVA向けIRONPDFの使用

JavaでPDFにデジタル署名を追加する方法

この記事では、JavaプログラムでIronPDFを使用してPDFにデジタル署名を追加する方法を学びます。

IronPDF - Java PDF ライブラリ

IronPDF Java PDFライブラリ概要は、開発者がHTML文字列をPDFに変換HTMLファイルをPDFに変換WordをPDFに変換、またはURLを通じてPDFドキュメントを新たに作成できるJavaライブラリです。 PDFからコンテンツを追加または削除して簡単に操作するのに役立ちます。 PDFドキュメントに対してセキュリティとデジタル署名オプションを提供し、デジタル署名を可能にします。

IronPDFは、PDF関連のタスクを実行するために他のサードパーティライブラリを必要としません。 また、異なるファイル形式間の変換機能も提供します。 クロスプラットフォーム対応を提供し、特にJava、Scala、およびKotlin向けに設計されています。

JavaでPDFドキュメントにデジタル署名を追加する手順

前提条件

PDFドキュメントにデジタル署名するには、以下の前提条件が必要です:

  • 任意のJava IDE(NetBeans、Eclipse、IntelliJ)のインストール - 本記事ではIntelliJを使用します。 Java開発キットは、Oracle Java SE Downloadsから個別にダウンロードできます。
  • Maven Java プロジェクトの自動化 - これは、Java プログラムで依存関係をダウンロードし、管理するのに役立ちます。 MavenはApache Maven Download Pageからダウンロードできます。
  • IronPDFライブラリのダウンロードとインストール - IronPDFをダウンロードしてインストールするには、Maven依存アーティファクトを含めます。 次のコードスニペットをpom.xmlファイルのdependenciesタグに追加できます:

    xml-mvn-install-ao

  • 追加の依存関係として必要なのは、Slf4j-simpleです。 それはオプションであり、以下の依存関係をpom.xmlファイルに追加して利用できます。
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
XML

JavaでPDFにデジタル署名を追加する方法、図1: pom.xmlファイル

pom.xmlファイル

IronPDF ジャバパッケージのインポート

メインファイルに以下のインポートが必要です。これにより、IronPDFの機能を使用してPDFドキュメントにデジタル署名を追加できます:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

これで、IronPDFを使用してJavaでPDFドキュメントにデジタル署名を追加するために必要なすべての準備が整いました。

PDFファイルを作成するか、既存のPDFファイルを開く

PDFにデジタル署名する方法を学ぶには、PDFドキュメントを新しく作成するか、既存のPDFドキュメントを開く必要があります。 この記事では、renderHtmlAsPdf メソッドを使用して、PdfDocument クラスのために新しいPDFドキュメントを作成します。 コードは次のようになります:

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
JAVA

PDFドキュメントは作成されていますが、まだ保存されていません。 次のステップはデジタル署名を作成し、それをこのPDFドキュメントに追加し、最終的に保存することです。

デジタル署名を作成

Adobe Readerを使用してデジタル署名証明書を作成し、その詳細でPDFドキュメントにデジタル署名するためにJavaコードで使用します。 Adobe Reader でのデジタル署名の作成方法については、こちらをご覧ください。

Adobe Readerを開き、編集 > 環境設定をクリックします。 その後、「署名」をクリックし、「個人情報」および「信頼された証明書」を選択します。

JavaでPDFにデジタル署名を追加する方法、図2: プロジェクトの設定

プロジェクトの設定

以下の署名フィールドを追加して、.pfx または .p12 ファイルドキュメントを作成してください。

JavaでPDFにデジタル署名を追加する方法、図3:デジタルID追加ダイアログ

デジタルID追加ダイアログ

以下のコードサンプルは、Windows用の.pfx証明書ファイルとMac用の.p12ファイル、およびそのプライベートキー(パスワード)を使用してJavaコードで新しい署名を作成します。

Signature signature = new Signature("Iron.pfx", "123456");
Signature signature = new Signature("Iron.pfx", "123456");
JAVA

デジタル署名でPDFファイルに署名

IronPDFは、SignatureManagerクラスを使用して署名証明書の追加を支援します。 [getSignature メソッド](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature()) はPDFドキュメントの以前の署名を取得するのに役立ち、その後、SignPdfWithSignature メソッドを使用して、署名ファイルを引数として新しい署名を追加することができます。 コードは次のようになります:

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
JAVA

PDF署名ファイルを保存

最後に、PDFファイルを保存しましょう。さもないと、PdfDocumentクラスの[saveAsメソッド](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#saveAs(java.lang.String)を使用してPDFに署名されません。 コードはシンプルで、次の通りです:

pdf.saveAs("signed.pdf");
pdf.saveAs("signed.pdf");
JAVA

コードのコンパイルと実行が成功すると、出力はデジタル署名されたPDFを生成します。

JavaでPDFにデジタル署名を追加する方法、図4: 出力PDFファイル

出力PDFファイル

IronPDFには、オプションで使用できる他の署名オプションもあり、デジタル署名にも使用できます。 手書き、コンピュータ生成のテキスト画像、デジタル化された画像などの署名画像も含まれます。 次のコードサンプルは、デジタル署名の追加のセキュリティオプションを追加するのに役立ちます:

signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
JAVA

コード全体は次のようになります:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

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

    // Step 1. Create a PDF File Doc
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

    // Step 2. Create a Signature.
    Signature signature = new Signature("Iron.pfx", "123456");

    // Step 3. Sign the PDF with the PdfSignature.
    SignatureManager signatureManager = pdf.getSignature();
    signatureManager.SignPdfWithSignature(signature);

    // Step 4. The PDF is not signed until saved to file, stream, or byte array.
    pdf.saveAs("signed.pdf");
}
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

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

    // Step 1. Create a PDF File Doc
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

    // Step 2. Create a Signature.
    Signature signature = new Signature("Iron.pfx", "123456");

    // Step 3. Sign the PDF with the PdfSignature.
    SignatureManager signatureManager = pdf.getSignature();
    signatureManager.SignPdfWithSignature(signature);

    // Step 4. The PDF is not signed until saved to file, stream, or byte array.
    pdf.saveAs("signed.pdf");
}
JAVA

デジタル署名に関する詳細な情報は、PDF署名コード例をご覧ください。 さらにセキュリティを強化し、メタデータを編集したい場合は、セキュリティとメタデータのコード例をご覧ください。

結論

この記事では、IronPDF for Javaを使用してPDFドキュメントにデジタル署名を追加する方法をステップバイステップで説明しました。

まず、この記事では、IronPDFを使用してJavaでPDFを扱うために必要なコンポーネントについて説明しました。 次に、HTML文字列を使用してシンプルなPDFドキュメントを作成しました。 Adobe Reader から証明書ファイルが作成され、この証明書ファイルを使用して元のPDFドキュメントに署名しました。 IronPDFは、SignatureおよびSignatureManagerクラスを提供しており、ユーザーが証明書を追加して署名フィールドでPDFに署名するのに役立ちます。

IronPDFは、開発者がPDF関連の作業を簡単かつ迅速に行うことを可能にします。 それはピクセルパーフェクトなPDFで正確な結果を提供します。 Javaのような多用途で広く使用されているプログラミング言語に対して、IronPDFは多用途であり、ほぼすべてのPDF操作をサポートしているため、PDFドキュメントの処理に最適です。 さらに、これはすでに成功している.NETの機能に基づいて構築されています。

IronPDFはまた、特にJava用に設計された高速なIronPDFEngineを使用して、異なるファイル形式からの簡単な変換を提供します。 IronPDFライブラリを使用すると、テキストを抽出または追加画像を読み込み抽出PDFにヘッダーとフッターを追加、注釈、チャートとグラフをPDFにレンダリングPDFフォームを扱うなど、さまざまな操作が可能です。

IronPDFの使用方法に関する詳細情報は、Java PDFコード例のページから取得できます。

IronPDFは個人開発に無料で提供されており、PDFドキュメントを生成するために透かしなしの無料試用版を提供します。 商業利用のライセンスが可能で、ユーザーはこの詳細ライセンス情報ページからライセンスに関する詳細情報を取得できます。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得しており、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに魅了され、コンピューティングを神秘的でありながらアクセスしやすいものと見なし、それが創造性と問題解決のための完璧な媒体であると感じました。

Iron Softwareでは、新しいものを作り出し、複雑な概念を簡単にすることでより理解しやすくすることを楽しんでいます。彼は常駐の開発者の一人として、学生に教えることを志願し、自分の専門知識を次世代と共有しています。

Darriusにとって、彼の仕事は評価され、実際に影響があることで充実しています。

< 以前
Java PDFコンバーター (コード例チュートリアル)
次へ >
JavaでPDFファイルを読み取る方法