チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»pdfjavasecurity

Displaying items by tag: pdfjavasecurity

PDF におけるデジタル署名の検証は、ドキュメントが改ざんされておらず、署名者の真正性が確認できることを保証するために非常に重要です。この検証プロセスは、ドキュメントの整合性や信頼性を維持する上で不可欠です。また、デジタル署名の抽出を行うことで、署名画像や証明書情報などの詳細を取得でき、さらなる検証やアーカイブ目的に活用できます。本記事では、Java で Spire.PDF for Java ライブラリを使用して、PDF 内のデジタル署名を検証および抽出する方法を説明します。

Spire.PDF for Java をインストールします

まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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>10.11.2</version>
    </dependency>
</dependencies>

Java で PDF のデジタル署名を検証する

Spire.PDF for Java は、PdfSignature.verifySignature() メソッドを提供しており、PDF ドキュメント内のデジタル署名の有効性を確認できます。詳細な手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.Form プロパティを利用して、PDF ドキュメントのフォームを取得します。
  • フォーム内のすべてのフィールドをループ処理し、署名フィールドを見つけます。
  • PdfSignatureFieldWidget.getSignature() メソッドを使用して署名を取得します。
  • PdfSignature.verifySignature() メソッドを用いて署名の有効性を検証します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.fields.PdfField;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

public class VerifySignature {
    public static void main(String[] args) {
        // PdfDocumentオブジェクトを作成
        PdfDocument pdf = new PdfDocument();
        // PDFドキュメントを読み込む
        pdf.loadFromFile("Sample.pdf");

        // PDFドキュメントのフォームを取得
        PdfFormWidget formWidget = (PdfFormWidget) pdf.getForm();

        if(formWidget.getFieldsWidget().getCount() > 0)
        {
            // フォーム内のすべてのフィールドを反復処理する
            for(int i = 0; i < formWidget.getFieldsWidget().getCount(); i ++)
            {
                PdfField field = formWidget.getFieldsWidget().get(i);
                // 署名フィールドを見つける
                if (field instanceof PdfSignatureFieldWidget)
                {
                    PdfSignatureFieldWidget signatureField = (PdfSignatureFieldWidget) field;
                    // 署名を取得
                    PdfSignature signature = signatureField.getSignature();
                    // 署名を検証
                    boolean valid = signature.verifySignature();
                    if(valid)
                    {
                        System.out.print("署名は有効です!");
                    }
                    else
                    {
                        System.out.print("署名は無効です!");
                    }
                }
            }
        }
    }
}

Java で PDF のデジタル署名を検証する

Java で署名済み PDF が改ざんされたかを検出する

署名済みの PDF ドキュメントが改ざんされているかを確認するには、PdfSignature.VerifyDocModified() メソッドを使用します。詳細な手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.Form プロパティを利用して、PDFドキュメントのフォームを取得します。
  • フォーム内のすべてのフィールドをループ処理し、署名フィールドを見つけます。
  • PdfSignatureFieldWidget.getSignature() メソッドを使用して署名を取得します。
  • PdfSignature.VerifyDocModified() メソッドを用いて、署名後にドキュメントが改ざんされていないかを検証します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.fields.PdfField;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

public class CheckIfSignedPdfIsModified {
    public static void main(String[] args) {
        // PdfDocumentオブジェクトを作成
        PdfDocument pdf = new PdfDocument();
        // PDFドキュメントを読み込む
        pdf.loadFromFile("Sample.pdf");

        // PDFドキュメントのフォームを取得
        PdfFormWidget formWidget = (PdfFormWidget) pdf.getForm();

        if(formWidget.getFieldsWidget().getCount() > 0) {
            // フォーム内のすべてのフィールドを反復処理する
            for (int i = 0; i < formWidget.getFieldsWidget().getCount(); i++) {
                PdfField field = formWidget.getFieldsWidget().get(i);
                // 署名フィールドを見つける
                if (field instanceof PdfSignatureFieldWidget) {
                    PdfSignatureFieldWidget signatureField = (PdfSignatureFieldWidget) field;
                    // 署名を取得
                    PdfSignature signature = signatureField.getSignature();
                    // 署名を検証
                    boolean modified = signature.verifyDocModified();
                    if(modified)
                    {
                        System.out.print("ドキュメントは変更されています!");
                    }
                    else
                    {
                        System.out.print("ドキュメントは変更されていません!");
                    }
                }
            }
        }
    }
}

Java で署名済み PDF が改ざんされたかを検出する

Java で PDF から署名画像と証明書情報を抽出する

PDF から署名画像および証明書情報を抽出するには、PdfFormWidget.extractSignatureAsImages() メソッドと PdfSignature.getCertificate().toString() メソッドを使用します。詳細な手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.Form プロパティを利用して、PDF ドキュメントのフォームを取得します。
  • PdfFormWidget.extractSignatureAsImages() メソッドを使用して署名画像を抽出し、各画像をファイルとして保存します。
  • フォーム内のすべてのフィールドをループ処理し、署名フィールドを見つけます。
  • PdfSignatureFieldWidget.getSignature() メソッドを使用して署名を取得します。
  • PdfSignature.getCertificate().toString() メソッドを用いて、署名の証明書情報を取得します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.fields.PdfField;
import com.spire.pdf.security.PdfCertificate;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class ExtractSignatureImage {
    public static void main(String[] args) {
        // PdfDocumentオブジェクトを作成
        PdfDocument pdf = new PdfDocument();
        // PDFドキュメントを読み込む
        pdf.loadFromFile("Sample.pdf");

        // PDFドキュメントのフォームを取得
        PdfFormWidget formWidget = (PdfFormWidget) pdf.getForm();

        // 署名画像を抽出
        Image[] images = formWidget.extractSignatureAsImages();
        // 画像を反復処理し、それぞれの画像をファイルに保存
        for (int i = 0; i < images.length; i++) {
            try {
                // ImageオブジェクトをBufferedImageに変換
                BufferedImage bufferedImage = (BufferedImage) images[i];
                // 出力ファイルのパスを定義
                File outputFile = new File("output\\cert\\signature_" + i + ".png");
                // 画像をPNGファイルとして保存
                ImageIO.write(bufferedImage, "png", outputFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        // 証明書情報を保存するテキストファイルを作成
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output\\cert\\certificate_info.txt"))) {
            if (formWidget.getFieldsWidget().getCount() > 0) {
                // フォーム内のすべてのフィールドを反復処理
                for (int i = 0; i < formWidget.getFieldsWidget().getCount(); i++) {
                    PdfField field = formWidget.getFieldsWidget().get(i);
                    // 署名フィールドを見つける
                    if (field instanceof PdfSignatureFieldWidget) {
                        PdfSignatureFieldWidget signatureField = (PdfSignatureFieldWidget) field;
                        // 署名を取得
                        PdfSignature signature = signatureField.getSignature();

                        // 署名の証明書情報を取得
                        String certificateInfo = signature.getCertificate() != null ? signature.getCertificate().toString() : "証明書がありません";

                        // 証明書情報をテキストファイルに書き込む
                        writer.write("証明書情報: \n" + certificateInfo);
                        writer.write("-----------------------------------\n");
                    }
                }
            } else {
                writer.write("署名フィールドが見つかりませんでした。");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Java で PDF から署名画像と証明書情報を抽出する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 保護
Tagged under

デジタル技術の急速な発展に伴い、多くの企業が情報を電子的に作成、保存、送信するようになっています。電子ドキュメントの信頼性と真正性を確保するために、デジタル署名が広く利用されています。本記事では、Spire.PDF for Java を使用して PDF に見えるデジタル署名または見えないデジタル署名を追加する方法、およびデジタル署名を削除する方法について解説します。

Spire.PDF for Java をインストールします

まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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>10.11.2</version>
    </dependency>
</dependencies>

PDF に見えないデジタル署名を追加する

以下は、Spire.PDF for Java を使用して PDF に見えないデジタル署名を追加する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfCertificate オブジェクトを初期化し、pfx 証明書ファイルを読み込みます。
  • PdfSignature オブジェクトを証明書に基づいて作成します。
  • PdfSignature.setDocumentPermissions() メソッドを使用してドキュメントの権限を設定します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfCertificate;
import com.spire.pdf.security.PdfCertificationFlags;
import com.spire.pdf.security.PdfSignature;

public class AddInvisibleSignature {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成
        PdfDocument doc = new PdfDocument();

        // サンプルPDFファイルを読み込む
        doc.loadFromFile("Sample.pdf");

        // pfx証明書を読み込む
        PdfCertificate cert = new PdfCertificate("gary.pfx", "e-iceblue");

        // PdfSignatureオブジェクトを作成
        PdfSignature signature = new PdfSignature(doc, doc.getPages().get(doc.getPages().getCount() - 1), cert, "gary");

        // ドキュメントの権限を設定(変更を禁止し、フォーム入力を許可)
        signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes);
        signature.setDocumentPermissions(PdfCertificationFlags.Allow_Form_Fill);

        // 別のPDFファイルとして保存
        doc.saveToFile("output/見えないPDF署名.pdf");
        doc.close();
    }
}

PDF に見えないデジタル署名を追加する

PDF に見えるデジタル署名を追加する

以下は、Spire.PDF for Java を使用して PDF に見えるデジタル署名を追加する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfCertificate オブジェクトを初期化し、pfx 証明書ファイルを読み込みます。
  • PdfSignature オブジェクトを作成し、ドキュメント内での署名の位置とサイズを指定します。
  • 署名の詳細を設定します(例:日付、名前、場所、理由、手書き署名画像、ドキュメント権限など)。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.*;
import com.spire.pdf.security.GraphicMode;
import com.spire.pdf.security.PdfCertificate;
import com.spire.pdf.security.PdfCertificationFlags;
import com.spire.pdf.security.PdfSignature;

import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;

public class AddVisibleSignature {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成
        PdfDocument doc = new PdfDocument();

        // サンプルPDFファイルを読み込む
        doc.loadFromFile("Sample.pdf");

        // pfx証明書を読み込む
        PdfCertificate cert = new PdfCertificate("gary.pfx", "e-iceblue");

        // PdfSignatureオブジェクトを作成し、その位置とサイズを指定
        PdfSignature signature = new PdfSignature(doc, doc.getPages().get(0), cert, "gary");
        Rectangle2D rect = new Rectangle2D.Float();
        rect.setFrame(new Point2D.Float(
                        (float) doc.getPages().get(0).getActualSize().getWidth() - 320,
                        (float) doc.getPages().get(0).getActualSize().getHeight() - 120),
                new Dimension(270, 100));
        signature.setBounds(rect);

        // グラフィックモードを設定
        signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);

        // 署名内容を設定
        signature.setNameLabel("署名者:");
        signature.setName("gary");
        signature.setContactInfoLabel("連絡先:");
        signature.setContactInfo("02881705109");
        signature.setDateLabel("日付:");
        signature.setDate(new java.util.Date());
        signature.setLocationInfoLabel("場所:");
        signature.setLocationInfo("CD");
        signature.setReasonLabel("理由:");
        signature.setReason("このドキュメントの証明書");
        signature.setDistinguishedNameLabel("DN:");
        signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());
        signature.setSignImageSource(PdfImage.fromFile("Signature.png"));

        // 署名フォントを設定
        signature.setSignDetailsFont(new PdfTrueTypeFont(new Font("Yu Gothic UI", Font.PLAIN, 10), true));

        // ドキュメントの権限を設定
        signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes);
        signature.setCertificated(true);

        // ファイルに保存
        doc.saveToFile("output/可視PDF署名.pdf");
        doc.close();
    }
}

PDF に見えるデジタル署名を追加する

PDF からデジタル署名を削除する

以下は、Spire.PDF for Java を使用して PDF からデジタル署名を削除する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.getForm() メソッドを使用して、ドキュメントからフォームウィジェットを取得します。
  • ウィジェットをループ処理し、特定のウィジェットが PdfSignatureFieldWidget であるかを確認します。
  • PdfFieldCollection.remove() メソッドを使用して署名ウィジェットを削除します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.widget.PdfFieldWidget;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

public class DeleteSignatures {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成(署名付きPDFをロード)
        PdfDocument doc = new PdfDocument("output/見えないPDF署名.pdf");

        // ドキュメントからフォームウィジェットを取得
        PdfFormWidget widgets = (PdfFormWidget) doc.getForm();

        // ウィジェットをループ処理
        for (int i = 0; i < widgets.getFieldsWidget().getList().size(); i++)
        {
            // 特定のウィジェットを取得
            PdfFieldWidget widget = (PdfFieldWidget)widgets.getFieldsWidget().getList().get(i);

            // ウィジェットがPdfSignatureFieldWidgetかどうかを判定
            if (widget instanceof PdfSignatureFieldWidget)
            {
                // 署名ウィジェットを削除
                widgets.getFieldsWidget().remove(widget);
            }
        }

        // ドキュメントを別のPDFファイルに保存
        doc.saveToFile("output/PDF署名の削除.pdf");
        doc.close();
    }
}

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 保護
Tagged under

PDF ドキュメントは、いくつかの方法でセキュリティを付加することができます。PDF が許可パスワードで保護されている場合、読者はパスワードを入力せずにドキュメントを開くことができますが、印刷やコンテンツのコピーなど、ドキュメントをさらに操作する権限を持っていないかもしれません。この記事では、Java で Spire.PDF for Java ライブラリを使用して PDF ドキュメントのセキュリティ権限を設定する方法について学びます。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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>10.1.9</version>
    </dependency>
</dependencies>

PDF ドキュメントにセキュリティ権限を追加

以下は、Spire.PDF for Java を使用して PDF ドキュメントにセキュリティ権限を適用する手順です。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.loadFileFile() メソッドを使って PDF ファイルを読み込みます。
  • 開くパスワードと権限パスワードを指定します。生成されたドキュメントを開く際にパスワードを必要としないように、開くパスワードを空に設定することができます。
  • ドキュメントを開くパスワードと権限パスワードで暗号化し、PdfDocument.getSecurity().encrypt() メソッドを使用してセキュリティ権限を設定します。このメソッドは PdfPermissionsFlags 列挙型をパラメータとして受け取り、暗号化されたドキュメントのユーザーアクセス許可を定義します。
  • PdfPermissionsFlags 列挙型をパラメーターとして受け取ります。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

import java.util.EnumSet;

public class ChangeSecurityPermissions {

    public static void main(String[] args) {

        //PdfDocumentオブジェクトを作成します
        PdfDocument doc = new PdfDocument();

        //サンプルのPDFファイルをロードします
        doc.loadFromFile("サンプル.pdf");

        //オープンパスワードを指定します
        String openPsd = "";

        //許可パスワードを指定します
        String permissionPsd = "password";

        //権限を指定します
        EnumSet permissionsFlags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Full_Quality_Print);

        //ドキュメントをオープンパスワードと許可パスワードで暗号化し、権限と暗号化キーサイズを設定します
        doc.getSecurity().encrypt(openPsd, permissionPsd, permissionsFlags, PdfEncryptionKeySize.Key_128_Bit);

        //ドキュメントを別のPDFファイルに保存します
        doc.saveToFile("output/セキュリティ権限.pdf");
    }
}

Java:PDF 文書にセキュリティ権限を追加する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 保護
Tagged under

パスワードで保護された PDF を開くとき、それはパスワードを入力する必要があります。しかし、時には、PDF を開く前に、PDF がパスワードで保護されているかどうかを知る必要があります。Spire.PDF for Java は、PDF ドキュメントがパスワードで保護されているかどうかを判断するためのメソッド PdfDocument.isPasswordProtected() を提供しています。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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>8.8.3</version>
    </dependency>
</dependencies>

PDF ドキュメントがパスワードで保護されているかどうかを検出する

詳しい手順は以下の通りです。

  • ファイルパスを取得します。
  • PdfDocument.isPasswordProtected() メソッドを使用して、PDF がパスワードで保護されているかどうかを検出します。
  • 結果を出力する。
  • Java
import com.spire.pdf.PdfDocument;

public class detectIfPDFIsPasswordProtected  {
    public static void main(String[] args) throws Exception {

        //ファイルパスを定義する
        String filePath ="Sample.pdf";

        //PDFドキュメントがパスワードで保護されているかどうかを検出する
        boolean isProtected = PdfDocument.isPasswordProtected(filePath);

        //結果を印刷する
        if(isProtected)
        {
            System.out.println("このドキュメントはパスワードで保護されています。");
        }
        else
        {
            System.out.println("このドキュメントはパスワードで保護されていません。");
        }

    }
}

Java:PDF ドキュメントがパスワードで保護されているかの判断

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 保護
Tagged under

機密情報や重要な情報を含む PDF ドキュメントには、パスワードを使って保護し、指定された人だけがドキュメント内の情報にアクセスできるようにすることができます。この記事では、Spire.PDF for Java を使用して PDF ドキュメントを暗号化し、パスワードで保護されたドキュメントを復号化する方法を説明します。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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>8.8.3</version>
    </dependency>
</dependencies>

PDF ファイルをパスワードで暗号化する

PDF ファイルを暗号化するためのパスワードには、「開くパスワード」と「権限パスワード」の2種類があります。前者は PDF ファイルを開くために設定し、後者は印刷や 内容のコピー、コメント付けなどを制限するために設定します。両方の種類のパスワードで PDF ファイルを保護した場合、どちらか一方のパスワードで開くことができます。

Spire.PDF for Java が提供する PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize) メソッドは PDF ファイルを暗号化するのに開くパスワードと権限パスワード両方を設定できるようにします。詳細な手順は次のとおりです。

  • PdfDocument クラスのインスタンスを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • 開くパスワード、権限パスワード、暗号化キーサイズと権限を設定します。
  • PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize) メソッドを使用して PDF ファイルを暗号化します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import java.util.EnumSet;

import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class encryptPDF {

    public static void main(String[] args) {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("C:/例.pdf");

        //ドキュメントを暗号化する
        PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;
        String openPassword = "e-iceblue";
        String permissionPassword = "permission";
        EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);
        pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);

        //ドキュメントを保存する
        pdf.saveToFile("ドキュメントの暗号化.pdf");
        pdf.close();

    }

}

Java:PDF ドキュメントの暗号化・復号化

パスワードを削除して PDF ファイルを復号化する

PDF ファイルのパスワードを削除する必要がある場合、PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize, java.lang.String originalPermissionPassword) メソッドを用いて開くパスワードと権限パスワードを空に設定することが可能です。詳細な手順は以下の通りです。

  • PdfDocument クラスオブジェクトを作成します。
  • PdfDocument.loadFromFile(java.lang.String filename, java.lang.String password) メソッドを使用して、暗号化された PDF ドキュメントをパスワード付きで読み込んでいます。
  • PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize, java.lang.String originalPermissionPassword) メソッドを用いて開くパスワードと権限パスワードを空に設定し PDF ファイルを復号化します。
  • PdfDocument.saveToFile() メソッドを使用して、結果のファイルを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class decryptPDF {

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

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //パスワードで暗号化されたPDFドキュメントを読み込む
        pdf.loadFromFile("ドキュメントの暗号化.pdf", "e-iceblue");

        //ドキュメントを復号化する
        pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "permission");

        //ドキュメントを保存する
        pdf.saveToFile("ドキュメントの復号化.pdf");
        pdf.close();
    }
}

Java:PDF ドキュメントの暗号化・復号化

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 保護
Tagged under