フッターコンテンツにスキップ
JAVA用IRONPDFの使用

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

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

IronPDF - Java用PDFライブラリ

IronPDF for 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>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
XML
  • もう1つ必要な依存関係は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インポート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;
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

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

PDFファイルを作成または既存のPDFファイルを開く

PDFにデジタル署名する方法を学ぶためには、ゼロからPDFドキュメントを作成するか、既存のPDFドキュメントを開く必要があります。 この記事では、[renderHtmlAsPdfメソッド](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String))を使用してPDF署名用の新しい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を使用してデジタル署名証明書を作成する必要があります。これをJavaコードで使用して、これらの詳細でPDFドキュメントにデジタル署名します。 Adobe Readerでデジタル署名を作成する方法を確認できます。

Adobe Readerを開き、編集 > 環境設定をクリックします。 次に署名をクリックし、さらに"Identities and Trusted Certificates"に進んでください。

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/Iron Software/ironpdf/PdfDocument.html#getSignature()はPDFドキュメントの以前の署名を取得するのに役立ち、その後新しい署名を[SignPdfWithSignatureメソッド](/java/object-reference/api/com/Iron Software/ironpdf/signature/SignatureManager.html#SignPdfWithSignature(com.Iron Software.ironpdf.signature.Signature)を使用して署名ファイルを引数として追加できます。 コードは次の通りです:

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

PDF署名ファイルを保存

最後に、PDFファイルを保存しましょう。そうでないと、[saveAsメソッド](/java/object-reference/api/com/Iron Software/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 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");
    }
}
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");
    }
}
JAVA

PDF署名のコード例からデジタル署名に関するさらなる情報を確認できます。 セキュリティをさらに追加しメタデータを編集したい場合は、セキュリティとメタデータのコード例をご覧ください。

結論

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

まず、IronPDFを使用してJavaでPDFを操作するために必要なコンポーネントを紹介しました。 次に、HTML文字列を使用して簡単なPDFドキュメントを作成しました。 Adobe Readerから証明書ファイルが作成され、これを使用して元のPDFドキュメントに署名しました。 IronPDFは、証明書を追加し署名フィールドを持つPDFに署名するのに役立つSignatureおよび[SignatureManager](/java/object-reference/api/com/Iron Software/ironpdf/signature/SignatureManager.html)クラスを提供しています。

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

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

Java PDFコード例ページからIronPDFの使用方法についての詳細情報を入手できます。

IronPDFは個人の開発には無料であり、透かしのない無料トライアルを提供してPDFドキュメントを生成します。 商用利用向けにライセンスが取得でき、ユーザーはこの詳しいライセンス情報ページからライセンスに関する詳細情報を入手できます。

よくある質問

JavaでPDFにデジタル署名を追加するにはどうすればよいですか?

IronPDFを使用してJavaでPDFにデジタル署名を追加するには、PDFドキュメントを作成または開き、証明書ファイルでデジタル署名を生成し、IronPDFの`SignatureManager`クラスを使用して署名を適用します。最後に、署名済みのPDFドキュメントを保存します。

Javaライブラリを使用してHTMLをPDFに変換する手順は何ですか?

JavaでIronPDFを使用してHTMLをPDFに変換するには、PdfDocument.renderHtmlAsPdfメソッドを使用します。これにより、HTML文字列を直接PDFドキュメントに変換でき、その後PdfDocument.saveAsメソッドを使用して保存できます。

JavaプロジェクトでIronPDFを使用するために必要な前提条件は何ですか?

JavaプロジェクトでIronPDFを使用するには、IntelliJのようなJava IDE、依存関係を管理するためのMavenプロジェクト、そしてIronPDFライブラリが必要です。さらに、デジタル署名を追加するには、デジタル署名証明書が必要です。

JavaでIronPDFは他のファイル形式をPDFに変換できますか?

はい、HTMLのほかにも、IronPDFはWord文書やURLなどのさまざまなファイル形式をJavaアプリケーションでPDFに変換できます。

IronPDFはPDF機能に第三者ライブラリを必要としますか?

いいえ、IronPDFはそのコアPDF機能に第三者ライブラリを必要としないため、JavaにおけるPDF作成と操作の独立したソリューションです。

PDFに署名するためのデジタル署名証明書をどのように生成しますか?

デジタル署名証明書は、Adobe Readerを使用して「編集」>「環境設定」>「署名」へ進み、身元情報と信頼済み証明書を管理することで作成できます。

Javaでデジタル署名を管理するためにIronPDFで使用されるクラスは何ですか?

Javaでのデジタル署名管理に使用されるIronPDFのクラスはSignatureManagerです。これにより、新しい署名を追加し、PDFドキュメントから既存の署名を取得できます。

JavaでIronPDFを使用したデジタル署名の追加オプションは何ですか?

JavaでのIronPDFは、署名画像の追加、署名者の連絡先や場所、理由の指定、手書きやデジタル化された画像をデジタル署名に追加するオプションを提供します。

Java用のIronPDFの無料バージョンはありますか?

IronPDFは個人開発者向けに無料のトライアルを提供しており、透かしなしで使用できます。商用利用にはライセンスオプションが用意されています。

Java用のIronPDFの高度な機能には何がありますか?

IronPDF for Javaには、テキストと画像の抽出、ヘッダーとフッターの追加、グラフやチャートのレンダリング、PDFフォームの操作などの機能があります。

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

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。