
JavaでPDFにデジタル署名を追加する方法
この記事では、Javaプログラム内でIronPDFを使用してPDFにデジタル署名を追加する方法を学びます。
IronPDF - Java用PDFライブラリ
IronPDF Java 向け PDFライブラリの概要は、開発者がHTML文字列をPDFに変換、HTMLファイルをPDFに変換、WordをPDFに変換、またはURLから新しいPDFドキュメントを作成できるJavaライブラリです。 それは、PDFにコンテンツを追加または削除することで、簡単にPDFを操作するのに役立ちます。 それは、デジタル署名と共にセキュリティとデジタル署名オプションをPDFドキュメントに提供します。
IronPDFは、PDF関連のタスクを実行するのに他のサードパーティライブラリを必要としません。 それはまた、さまざまなファイル形式間の変換の機能を提供します。 Java、Scala、Kotlinに特に設計され、クロスプラットフォームのサポートを提供します。
JavaでPDFドキュメントにデジタル署名を追加する手順
前提条件
PDFドキュメントにデジタル署名を行うには、以下の前提条件が必要です:
- Java IDE(NetBeans、Eclipse、IntelliJのいずれかがインストールされている) - 本記事ではIntelliJを使用します。 Oracle Java SEダウンロードページからJava開発キットを個別にダウンロードできます。
- Maven Javaプロジェクトを作成 - これにより、Javaプログラム内で依存関係をダウンロードおよび管理するのに役立ちます。 Apache MavenダウンロードページからMavenをダウンロードできます。
- IronPDFライブラリをダウンロードしてインストール - IronPDFをダウンロードしてインストールするには、Maven依存関係アーティファクトを含めます。 次のコードスニペットを
pom.xmlファイルの依存関係タグに追加できます。
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2023.2.0</version>
</dependency>
-
もう1つ必要な依存関係はSlf4j-simpleです。 それは任意であり、次の依存関係を
pom.xmlファイルに追加して使用できます。<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.5</version> </dependency>XML
pom.xmlファイル
IronPDFインポートJavaパッケージ
メインファイルには次のインポートが必要です。これにより、PDFドキュメントにデジタル署名を追加するためのIronPDF機能の使用が可能になります。
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を使用してPDFドキュメントにデジタル署名を追加する準備が整いました。
PDFファイルを作成または既存のPDFファイルを開く
PDFにデジタル署名する方法を学ぶためには、ゼロからPDFドキュメントを作成するか、既存のPDFドキュメントを開く必要があります。 この記事では、[renderHtmlAsPdf Method](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String)を使用してPDF署名用の新しいPDFドキュメントを作成します。 コードは次の通りです:
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
PDFドキュメントは作成されましたが、まだ保存されていません。 次のステップは、デジタル署名を作成し、このPDFドキュメントに追加して最終的に保存することです。
デジタル署名を作成する
Adobe Readerを使用してデジタル署名証明書を作成する必要があります。これをJavaコードで使用して、これらの詳細でPDFドキュメントにデジタル署名します。 Adobe Readerでデジタル署名を作成する方法を確認できます。
Adobe Readerを開き、編集 > 環境設定をクリックします。 次に署名をクリックし、さらに"Identities and Trusted Certificates"に進んでください。
プロジェクトの環境設定
.pfxまたは.p12ファイルドキュメントを作成するために、次の署名フィールドを追加してください。
デジタルIDダイアログを追加
次のコードサンプルは、Windows用の.pfx証明書ファイルとMac用の.p12ファイルを使用し、そのプライベートキー(パスワード)を伴ったJavaコード内で新しい署名を作成します。
Signature signature = new Signature("Iron.pfx", "123456");
PDFファイルにデジタル署名をする
IronPDFはSignatureManagerクラスを使用して署名証明書を追加するのに役立ちます。 getSignature MethodはPDFドキュメントの以前の署名を取得するのに役立ち、その後[SignPdfWithSignature Method](/java/object-reference/api/com/ironsoftware/ironpdf/signature/SignatureManager.html#SignPdfWithSignature(com.ironsoftware.ironpdf.signature.Signature)を使用して署名ファイルを引数とする新しい署名を追加できます。 コードは次の通りです:
SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
PDF署名ファイルを保存
最後にPDFファイルを保存しましょう。そうしないと、PdfDocumentクラスを使用してPDFに署名されません。 コードは簡単で次の通りです:
pdf.saveAs("signed.pdf");
コードの完全なコンパイルおよび実行に成功した場合、出力にはデジタル署名された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());
完全なコードは以下の通りです:
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 class DigitalSignatureExample {
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");
}
}
PDF署名のコード例からデジタル署名に関するさらなる情報を確認できます。 セキュリティをさらに追加しメタデータを編集したい場合は、セキュリティとメタデータのコード例をご覧ください。
結論
この記事では、Java用IronPDFを使用してPDFドキュメントにデジタル署名を追加する方法をステップバイステップで説明しました。
まず、IronPDFを使用してJavaでPDFを操作するために必要なコンポーネントを紹介しました。 次に、HTML文字列を使用して簡単なPDFドキュメントを作成しました。 Adobe Readerから証明書ファイルが作成され、これを使用して元のPDFドキュメントに署名しました。 IronPDFはSignatureとSignatureManagerクラスを提供しており、ユーザーが証明書を追加し、署名フィールドでPDFに署名するのに役立ちます。
IronPDFは、開発者がPDF関連のタスクを簡単かつ迅速に実行するのを支援します。 それは、ピクセルパーフェクトなPDFで正確な結果を提供します。 Javaのような多用途で広く使用されているプログラミング言語にとって、IronPDFはPDFドキュメントの操作に適しており、ほとんどすべてのPDF操作をサポートしています。 さらに、.NETの成功した機能を基に構築されています。
IronPDFはさまざまなファイル形式からの簡単な変換を提供し、Java専用に設計された高速なIronPDFEngineを使用しています。 テキストを抽出または追加、イメージの読み込みと抽出、PDFにヘッダーとフッターを追加、注釈、チャートとグラフをPDFにレンダリング、PDFフォームの操作などが可能です。
Java PDFコード例ページからIronPDFの使用方法についての詳細情報を入手できます。
IronPDFは個人の開発には無料であり、透かしのない無料トライアルを提供してPDFドキュメントを生成します。 商用利用向けにライセンスが取得でき、ユーザーはこの詳しいライセンス情報ページからライセンスに関する詳細情報を入手できます。

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.
Related Articles


